【Temtem】スパークチームの組み方1【サポーター編】

そもそもスパークチームとは何か?
スパークチームとは、技スパークを利用して特殊アタッカーの火力を上げて
高火力で押し切るパーティのこと。

スパーク
対象1体の特殊攻撃を1段上げる

スパークを使うと火力が1.5倍になるので、上昇量だけを見ればスパークをかけられた側が2回行動できるとトントン
スタミナ効率が良いのに加えて、スパークをかける側(サポーター)が攻撃以外に訓練値(TVs)を振ることができるので、
攻撃手が2回行動を最低限の目標としたい。

そこで大事になるのが、素早さだ。

相手よりも早ければ1回多く攻撃ができるし、
スパークを使うテムテムが攻撃側より先に動ければ1ターン早くSPATKを上昇させて行動することができる。
スパークチームを使うときは原則として「サポーターの方が先に行動すること」が大前提であることを気をつけよう。

下記にサポーター候補の素早さの最大実数値を乗せる。カッコ内はギア「脂肪燃焼薬」をもたせたときの数値だ
アンパティル 347 (381)
0b10 292 (321)
0b1 285 (313)
ガズマ 273 (300)
ネッセラ 272 (299)
ライグネット 251 (271)

BANされたときのことを考慮して、2-3体のサポーターを入れる事が基本だ。
最近の大会で上位に入っていたスパークチームは「ガズマ、ネッセラ、ライグネット」の3体を採用していた。

原則として、サポーターの中で一番遅いサポーターに素早さを調整するが、ライグネット等は遅く役割も明確にあるため
一部ライグネットより早いアタッカーがいるような構築でもいいかもしれない。

アタッカー側にギア「道徳的なムチ」をもたせるとサポーターの素早さラインがあがり、サポーター側のSTAは減っても痛くないため、
運用は難しくなるが、一考の余地がある。

また、同速の場合は敵と味方の場合はスピード矢印を持つ方が先制をするが、味方が同速の場合は左側から行動するため、同速運用するときは気をつけよう。
配置を意識しなくて良くなるため、アタッカーの素早さは1低い状態が運用がしやすいと思う。

「脂肪燃焼薬」ライグネットやネッセラなどは65族の最速であるすばやさ270を抜くことができる。
サンビやトゥルカン、ミックス等がいる(とはいえこの中で最速にするのはサンビくらいだが)

記事執筆時点では66族のトゥーワイアや60族のベンメットが調整先として有力。
構築時の環境にいる最速にするようなテムテムたちを基準に素早さを選定しよう。

また、Ob1とガズマは「速攻チャージ」を保有しているため、デジタルタイプの素早さが2段上昇する(1.5倍)
「脂肪燃焼薬」ガズマの場合、アタッカーは素早さ200で同速(サポーターを左に置く必要がある)、199でガズマが抜けるため調整は気をつけよう。

また初手にpriority3(>>>)の技を使う場合もスパークが抜けるかどうかは確認しておく必要がある。
例えば「脂肪燃焼薬」ガズマでミックスのクリスタルスパイクを抜く場合は、ミックスのSPDは200以下でなければならない(TVs152)

サポーターの素早さは「アタッカーを抜く以外にはあまり意味がない」ため、アタッカーを抜ける最低限のSPDを降って残りは耐久かSPATKに回したほうがよい。
※0b10のカバー・隠れ家など速度が高いといいこともあるが、明確な理由を持ってS調整する必要がある

最後にサポーターそれぞれの特徴

▼アンパティル
電気の苦手な緑を狩れる。
また、手錠による盤面の縛りやデジタルが弱点の水を上から殴ることができる。
自分自身のアタッカー運用もできる点が魅力

▼0b10
スパークに加えてカバーや隠れ家によるアタッカーのサポート
ニセのヒゲで元気を配る事で低酸素症などの高STAテムテムの場持ちをよくできる。
またVer0.8より追加された「リセット」がとてつもなく強力で、相手のバフを許さない。
またサブウエポンにシナジーが必要となるものの絶望を付与できることもあり、耐久パーティに対して強くできることが可能。
さらにリストアなどで仲間のスタミナも回復もできたりと何でも屋さん。

▼0b1
速攻チャージを使うことの出来る。
ちなみにリセットは覚えない。(覚えたら強かった・・・!)
速攻チャージがほしい場合はガズマがまずは採用されることから、あまり日の目を見ない。

▼ガズマ
デジタル多めで速攻チャージを絡める場合に採用される。
本人も竜巻を覚えるなど攻撃性能は高い。
アタッカーが早くなってしまうため、最も素早さが必要となり、「脂肪燃焼薬」をもたせる第一候補
鳥かごが打てるのも強み。

▼ネッセラ
雷を受けれる+強力な水打点があるため、アタッカーとして利用も出来る。
サポーターとしては交換よみとして強い「締め付け」も利用可能。

▼ライグネット
スパークサポーターの中では唯一の物理アタッカー(ネッセラもできなくはないが・・・)
鳥かごが使えることと、催眠術が打てること、相手を中和にしてゴリ押せるなどこいつにしかない動きが多い
一番の特徴は電気カストディアンでスパークチームで多くなりがちなデジタルや風テムテムを守る事が出来る。
欠点は明らかに他のサポーターよりも遅い足。「脂肪燃焼薬」をもたせて同ラインにしたり、
テーザーガンで攻撃を下げたり、転送デバイスでデジタルも受けれるようにする等、持ち物によって個性がかなり出るだろう。

次回はアタッカー候補について考える。

Temtemアーブリー追加キャラの感想

アプデ環境2日ほどあそんでの感想になるので、
今後変わるかもしれないし、間違ってる所もあるかもです。
またVer0.8.0-1時代は別ゲーやってたので、0.8.2の時代の話です。
餌とかスリングショットがぶっ壊れていたの遊べなかった・・・

辛口なコメントもあるかもしれないので苦手な人は戻るボタンをどうぞ

雑に5段階評価つけたけど指標などはない。

■Gharunder 4
なんか日本語訳されていない奴
特殊防御がとても硬い。
バフ用に下剤持っててついでに破滅対処される。
風が弱点じゃない毒。ヴォラくらいしかいなかった。

■マグムット 2
2ターン目に耐久2段上げる技どちらも覚えるし、怒りまかせも覚える。
特性も耐久よりだが、こいつで耐久してメリットがなにがあるか分からない。
スリップダメージもDoomも仲間サポートもなく自分が固くなるだけなので、
使うにしてもアタッカー?君じゃなくてもできるよ

■アオヒ 3
強そうに見えたけど思ったより強くなかったけど弱くもない。
物理と特殊どっちもいる。
催眠コントロールに入れる。
今いないけど、ギャリスキラー的なタイプしている。弱点つけて格闘とクリスタルを半減・等倍できるやつって珍しい

■アウリー 2
みたことない。
格闘飛行2匹なぜだしちゃったのか。
5点爆撃うてるくらいの印象しかない。

■シャオラント 4
特性の歓迎者(隣にいるやつ1回回避)がちょっとうざい。
特殊格闘アタッカーなので竜のたましいとかはギャグみたいな打点が出る。
また、5点爆撃・回復も覚えるのでコントロールとしても採用できそう。

■ゴロン 1
激震おじさん。スムージー買いに行くときHP削ってくる以外でみたことがない

■サンビ 3
テクニカルなことできそうで惜しいテムテム。
催眠コントロールやるときは使えなくはないのか・・・?
普通のアタッカーとしては★2
レベル上げのお供に。

■ブロッコーレム 2
アプデ後討伐数推定1位
ランクマでは何回かみたけど強さは感じなかった

■バリアル ?
かっこいいし好きだけどなんもしらん。ランクマにもいない

■トゥツ 3
通りがかりにマッサージしてくるやつ。
ちゃんと調べてないけどあんまり驚異に感じなかった
そもそも格闘がそこまで強い環境じゃないのかも

■モーメンス 4
草デジタルはタイプが優秀。
回復に強いコントロール向けのテムテム

■バズラット 3
電気タイプに見える炎毒。
下剤持ってる。
打点そこそこ耐久低めで採用はされるけど強テムではない気がする

■ミノソール 4
強い人が使ってるテクニカルな牛
下剤の補助、ブラックホールのバフ剥がし、SPD生かした催眠など
クリスタルに絶望的に弱い以外はタイプもそこそこ良い
★5にするか迷ったけど、1ターン目に使える技などからとりあえずこいつだけいれれば強いわけじゃなく
チーム構成に制限がつくので★4

■マオアラ 3
入場時睡眠や攻撃バフまけたり、ウェイト無し睡眠など環境ぶっ壊すかと思ってたけど全然見ないたぬき
実際使われると、個性以外があまり使えない子だった。
ヒートアップなど無理やり1ターン作る価値の大きいテムテムの横におけばきっと使えると期待を込めて★3

■ベンクス 2
なんか進化後よりパワフルな奴。でも進化後でいいってなりそうな感じする

■ベンメット2
パリイで物理防いだり交換するたびに攻撃あがるやつ。精神4倍。
あんまりみない。スカンチでよくね?って場面が多そう。

2022/01/23 追記 使われたら強すぎて鼻水がでた

■ベンタル 4
中立・精神。
スピリチュアルで入場するたびにSPATKが上がる。見えない打撃とバッジでそれなりの火力が出る。
うまいこと詰めたときの突破力はたかい。
★4にしてるけど経験上★3になりそう

■チムリアン 5
交換すると不名誉だって騒いだり、ラッシュで小突いてきたり交換に対して厳しい姿勢の鳥。自分は逃げる。
大体は敵意を使って、火に気をつければクリスタルの打点がなかなかいい奴。
こいつ自身は★4くらいの性能だけど、環境に刺さってるのもあって★5

■アラクナイト 4
デジタル弱点のくせに実質抵抗みたいにできる特性を持ってる。
もう一個の特性はタイプが変わるため、催眠術でねない。
破滅をつけて安眠ネットで眠らさてくるコントロール系のクモ
技のタイプが豊富なので4倍弱点は気をつけること

■モンッコ 3
魂の叫びをぶっぱするのが楽しかった。
ろくなデジタル技がないのとシャオラントっていう対抗馬がいるのがなんともいえない
速攻チャージ対象なので、速攻チャージしてスパーク叫びするの楽しかった。
もうちょっと技くれ

■アナターン
みたことない

★おまけ
技追加されて使用感変わった奴ら

■ゼノレス
クリスタル大洪水もらった。ただこいつでやるならワスピーンで良い気がする

■ジーザレ
催眠コントロールの席をもらったヘビ
催眠コントロールは電気に弱いので守れるのがいいね。
あと1ターン目地面技もらった。ありがとう。

■ピラニアント
範囲回復をもらったのでリバイタライズと交互にうてるようになった。
モーメンスもできるけど、こっちは応援や下剤が打てる。
コントロールのお供に。

■サクゥ
ロアリとかぶっているという理由から物理に転向させられた植物
別に用途そんなかぶってなかった気もするが。。。。?
使ってる人みかけない。僕は使ったけど攻撃技もってないからアプデ恩恵少なかった。

■モモ
ノックバック取得により2ターン目以降は高火力連打できるようになった。
1ターン目に打てる技があれば完全なモンスターになれる。見えない打撃とかあれば覇権とれるのでは?(遠い目)

■ヴォラレンド
消えた毒鳥。バージョンアップのインフレについて来れなかったソシャゲの初期★5キャラって感じ
下剤もらったので攻撃バフが積めるっちゃ積める。

2022/01/23 追記 つめたい風覚えてるみたいでくそつよでした

■グランパー(地)
なんかコントロール技や精神打点もらった

■カウレン
なんか破滅もらった

■ワスピーン
コントロールにより特化した。
催眠コントロールや固定割合ダメージなどでランクマで中の人が布教活動してる。
弱点が多いのが課題で色々やるにはもう一声足りない感じするけど、実用ラインまではきた。

■ピゲピッグ
専用技で範囲20%回復+SPDEFバフというぶっ壊れ技をもらった。
モーションが可愛いけど長期戦になるとこの技を連打するので相手は腹たってると思う。

■バルフィー
寝かせる技覚えた。

■ティラナク
成長でスタミナ叩けるようになった。
破滅と相性はいいけど成長は抜いちゃった

■ボルゴン
専用技で範囲疲弊ができる。
疲弊→巻き付きで2ターン拘束できるのが面白い。
友情なら防げたけど、味方も動けなくなるので使い所は難しそうではある。

総評としては良アプデだけど、コントロール系は難しそう。
チパンク初期のアグロ環境より楽しそうな感じあるしバランスもいいと思うけど、格闘炎のマンモスとかまだ修正の余地ありそうなやつも。
この環境勝ち抜けるかはわからん・・・豚に期待している。

スプレッドシートを疑似wikiとして活用した話

本記事はWeb API Advent Calendar 2021の12日目の記事となります。

■概要
最近、スプレッドシートを活用して複数人で情報修正編集できる機能を活用し、twitchという動画配信サイト向けのプラグインを作った。
スプレッドシートをプログラム側で制御する手順等は日本語の記事がそれなりにあるので,そちらに任せるとして、
スプレッドシートを活用するまでの至った経緯などを紹介。
実際に使ってみたい方はGoogle Sheets APIで検索することをおすすめする。

■ツール概要
temtemというポケモンのようなモンスター同士を戦わせるゲームを生配信する際に視聴者が任意のモンスターの情報をカーソルをあわせることで配信上(overlay)で確認ができるというもの。

↓実際に動いている様子

プラグイン配信ページ(twitch)

ハースストーンというカードゲームでは有名な「HearthStone Deck Tracker」というプラグインがあり、プラグインの種類としてはにたようなもの。

格闘ゲームのような画面に動きがあるゲームは、そのゲームを知らない人でもなんとなくみることができる。
ただ、ターン制ゲームの視聴者はどうしても実際にそのゲームを今遊んでいる人が対象になってしまう課題がある。
なぜなら、プレイヤーであればカードゲームの絵柄を見るだけで、一体そのカードがどんなカードなのかわかるが、しばらくプレイしていない人ややったことがない人は何が起きているか分からないからだ。
(配信者も親切に使うときに効果を読み上げてくれたりはしない。遊戯王は親切だった。)

そのため、視聴者毎の知識差を埋めるためにこのプラグインを開発した。

視聴者の言語設定に応じて表示する言語を変えてくれる機能もつけることができる。(この機能は実装中)

■スプレッドシートはどこにでてくるの?
さて、ここまで来るとスプレッドシートが何も関係ないように思える。
スプレッドシートを使うに至る経緯を説明させてほしい。

■スプレッドシートを使うにいたった経緯
情報を表示するということは情報を入力する必要がある。

上であげたハースストーンというカードゲームはゲーム自体がログを出力しており、
それを集計するツールを利用してユーザーに表示する情報を取得している。

メモリを参照するようないわゆるリバースエンジニアリングは利用規約で禁止されている。
悪いことをしないホワイトなプログラマーとして、リバースエンジニアリングは行わない。

ではどのように情報入力をするか?

人間の力で解決する。

つまり配信者が”JSON形式で入力”である

ただ、この情報を毎回配信者が入力しているようではとてもじゃないが、不便である。

そのため、表示したい情報を選択すると自動でjson化してくれるサイトを作成した。(例えば技名を選べば、技の威力や説明などは自動で用意される。)

実際のJSON出力するサイト
HTMLを出力するgulpソース

使うモンスターを選べば覚える技リストが表示され、そこから選ぶ仕組みだ。
モンスターの情報を入れ終わった後に「CSV」というボタンを押せば何故かJSONが出力される。
(以前はCSV出力だったので残ったままだった・・・今気づいた)
出力されたJSONをtwitchの配信管理画面にコピペすれば、視聴者側に反映される。

ただ、それすらも私はめんどくさいと思うので、ゲームのスクリーンショットをアップロードすれば自動で入力される仕組みにした。
プログラマーたるもの怠けるべきで、簡単に”人間の力で解決する”などとはいってはいけない。

open CVとGCPのCloudFunctionを利用した仕組みになっているが、この記事のテーマとずれるため、
興味ある方は12/19にきっと更新されるであろう下記、AdventCalendarからどうぞ。
opencv AdventCalendar

じゃあそのサイトに乗せる情報はどこから持ってくるのか。
公式wikiからスクレイピングする。(selenium)
※ちなみにwikiの情報はCC BY-NC-SA 3.0で利用することができるので、ホワイトなプログラマーからジョブチェンジはしていない

スクレイピングした情報をcsvとしてローカルで管理し、gulpというタスクランナーでHTMLに変換している。

海外のゲームなので、wikiの情報は基本的に英語である。

しかし、日本ユーザーに日本語で表示したいし、日本語ユーザーが英語で情報入力するのはとても大変だ。

Google Translate APIなどを利用し、翻訳するロジックをいれたい所だが、
ゲーム内では日本語設定があり、独自の日本語訳があるため、自動翻訳は難しい。

ではどうするか。

人間の力で解決する。

しかし、僕一人でゲーム内の情報を確認して、この英語に対応する日本語はなにかなと入力する作業は現実的でないし、ホワイトなプログラマーのタイピング速度を持ってしても指が辛い。

英語のリストはスクレイピングで取得したので作成できる。
あとは日本語の情報入力を有志の方々にやっていただく。(この場を借りてお礼申し上げます。)

ある程度のアカウント管理が出来て、誤った修正を戻す事ができて、
ないとは思うが、万が一悪意ある修正が行われた時、誰が行ったかわかるようにしたい。
また、情報入力する人はITに詳しくない方もいるので、タグや区切り文字など気にせずに作業をしてもらいたい。

このwikiのような機能を自前で実装するのは大変だ。

そこで登場するのがスプレッドシートだ。

ご存知のとおり、スプレッドシートは多人数でブラウザ上から編集できるEXCELのようなもの。

スプレッドシートの編集はGoogleアカウントで実施し、編集履歴の確認などもできる。
シートの所有者がどのアカウントに閲覧権限をつけるか、保護されない箇所の編集を許可するかを決めることができる。
保護箇所も修正・編集できる管理者、編集者、閲覧者をアカウントごとに指定できる。
※ただし、細かいロールのような仕組みは企業アカウントでないとできないようで、自前で別に管理シートを用意すればプログラム上で制御できそうだが、今回は用意していない。

そしてgoogleスプレッドシートをソースコード上から制御するのがGoogle Sheets APIである。

■処理の流れ
今回作ったバッチは以下の処理を行える。
Wikiからスクレイピングで取得した情報(英語)をCSVとして保存

CSVの情報をスプレッド載せる

プログラムで管理しているフラグ列やwikiから取得した情報にはロックをかけて編集できないようにする(現在列ロックは手動)

有志の方々に日本語訳を入力してもらう

プログラム側からスプレッドシートの情報を取得し、CSV化

作成したCSVを元にgulpでHTML(情報入力サイト)を出力

といった処理の流れでwikiのような仕組みを作った。

実際に有志の方に入力してもらう画面(一般ユーザーは閲覧のみが可能)

翻訳スプレッドシート
ローカルで動かすスプレッドシートを管理しているソースコード

複数人での文章編集作業が必要なコンテンツの作成に利用してみてはいかがでしょうか!

このプラグインにまつわる話は、他にも
GCPの無料枠でe-Sports配信をリッチにした話Google Cloud Platform Advent Calendar 2021
ゲームのステータス画面のスクショをデータ化して活用した話OpenCV Advent Calendar 2021
などでご紹介するつもりです!

以上、スプレッドシートをwikiのように活用した話でした!

なお、MMOポケモン、TemtemはSteam/PS5で好評販売中です。

CloudFunctionのアクセス制限メモ

特にアクセス制限を設けず、設定の権限でallUserが「Cloud Functions 起動元」の権限を持つと外部から無制限にアクセスすることができる。
想定外の実行をされたくない場合はロールを設定する。
ただしロールを決めると認証を1時間おきにやらないといけなくてめんどくさい
そのため、同VPC内のみにアクセス制限をかけて、allUserに「Cloud Functions 起動元」の権限をもたせるなどのやり方がある

windowsのvimからwslのファイルを使う上で困ったこと

windowsのvim上からwsl内のファイルを編集したい。

■背景
gulpでのビルドが非常に遅く、原因を調べていたところ、
win上のファイルをwsl上のgulpで更新した場合、ファイル形式の変換が走るためめちゃくちゃ遅くなる現象があった。
基本はwsl内のファイルはwsl内のvimから実施するべきだが、win上のvimでないと利用できないプラグイン等があるため、wsl上のファイルを編集したい

■事前知識
wslからwinのファイルを操作する場合は /mnt/c/hogehogeにアクセスすればいい。
逆にwinからwsl上のファイルにアクセスする場合は \\wsl$にアクセスすればいい。

■問題と解決策
nerdTreeで\\wsl$配下のファイルが取得できない。
→vimfilerなら取得できたのでそちらに移行した。

【ポケモンユナイト】ゲーム上手くない奴がソロでマスターになるには【ソロマスター】

先日、ポケモンユナイトでソロにてマスターランクに到達した。(到達時世界ランキング191位)
僕は決してリアルタイムで進行するゲームは上手くなく、どちらかと言えば平均以下だ。
これは謙遜でもなんでもなく一緒に遊んだことがある人ならわかると思うがマジで下手くそに部類される人間なのだ。
真面目に勝つためのプレイをしてスプラはAいけるか行けないかくらい。
ましてやMOBA系はほぼ未経験、一緒にやってくれる友達はβテストで満足してしまった。(僕は未プレイ)

では何故そんな僕がソロでマスターランクにまでこれたのか?
考え方ややってきた事を紹介しよう。

もくじ
・勝率51%を目指せ。プレイ時間でカバーしよう。
・味方が弱い!?仲間運ゲー?萎えないためのマインド
・仲間のバリューを最大化する
・強いキャラを使う。使うキャラをゲームの最初に交換する。
・アイテムレベルを上げる。
・最後まで諦めない。アクティブポイントを意識しよう。
・リスクはとらない

■勝率51%を目指せ。プレイ時間でカバーしよう。
マスターになれる人はどんな人だろう?
強い人?うまい人?課金した人?
どれもあっているが、間違ってもいる。
マスターランクになれる人は正確には
「一定以上の勝率を出すことができ、規定の試合数をこなした人」だ。
このゲームは勝てば1増えて、負けると1減るポイントが一定数貯まるとランクアップする。

では、”一定以上の勝率”とは何か?
その基準となるのは切り上げて51%だ。
※実際にはプレイヤーに有利に働くアクティブポイントの存在から50%、または50%を若干下回っていてもマスターに到達できるが、一旦はアクティブポイントについては考慮しないものとする。

ビギナーランクまでは負けてもポイントが下がらないので、スーパーからが本番だ。
スーパー4クラス、ハイパー以降は5クラス、各クラス3ポイントと、計57ポイント分勝ち越せばマスターに上がることができる。
勝率が100%の人であればビギナー+57試合でマスターになることができ、勝率51%の人はその50倍の試合をこなせばマスターに上がることができる。
ちなみに勝率60%ある場合は100%の人に比べて5倍の試合数をこなすだけで良い。
実際にはアクティブポイントの存在によってこの試合数よりは遥かに少ない数でマスターにあがることができる。

メインのカビゴンが56%、ほぼ同じ数使ったサブのワタシラガが52%、どちらも取られたときに使う他の面々が20%程度の勝率で平均勝率が53%しかないが、マスターにあがれた。
今マスターに上がっている人は勝率70-75、低くても60%だ。

では何故勝率がそこまで高くない僕がマスターになったのか?
僕のマスター到達時点での試合数が420試合だからだ。(強い人は大体250試合以下)
サービス開始から6日でマスターに上がったが、1日およそ70試合回している。僕がマスターになれた理由はそこに尽きる。
あなたのトレーナーカードをみてほしい。ゲーム慣れしている人は僕よりも勝率が高いと思うが、結構やっている人と比べても試合数は僕の方が多いだろう。(記事掲載時点)

マスター以降はレーティングとなるため、同じようにはいかないが、マスターに到達するだけであれば、強い人がなれるものではないと理解いただけたと思う。
さらにこのゲームはなぜか2ランク下の人とも普通にマッチングするため、エキスパート10人の中で平均戦果を出す必要がない。エキスパート帯はエキスパート帯としかマッチングしないのであれば僕は勝ち越せなかったと思う。

勝率55%の人よりも勝率60%の方が強いが、試合数を倍以上こなせば勝率55%の方が先にマスターに到達する。
強い人間がマスターになるのでなく、”勝率に見合った試合数を先にこなした人”がマスターになるのだ。
勝率60%の固定を組める時間の倍の時間勝率55%のソロを回すことができるのであれば、マスター到達はほぼ同時になる。

とはいえ、勝率が高ければ試合数も少なく済むためどうやって上手くないなりに勝率をあげるか以下にまとめる。

■味方が弱い!?仲間運ゲー?萎えないためのマインド
とんでもない動きをして敗因を作っているように見える味方にあたることがある。
ソロは味方運ゲーと言われる事もあるが、ちょっと待ってほしい。

このゲーム、というかランダムマッチ系のゲーム全てにおいて共通していえることがある。
実は”ゲームを破壊するような弱い人”が味方にくる確率より、敵に行く確率の方が高いのだ。
なぜなら、敵は5人いるが、味方は4人のため、単純に抽選枠が少ないからだ。

勝率を80%目指したい人は仲間に引っ張られて勝率をあげられないかもしれない。
しかし、マスターを目指す上でとればいい勝率は51%だ。
そして目指すのは勝利でなく勝率なので、(実際にそうかどうかはおいておいても)ある特定の味方で負けたとしても、
同レベルの人が敵に行って勝つ確率の方が高い。
勝率51%+αを目指す場合は長期的にみて味方がルールをわかっていなくて負けたとしても、関係がないのだ。

とはいいつつ、僕はプレイしているときはとても配信できないような言動と小学生並みの語彙力でプレイしているが、それはそれである。
一定の勝率を出しつつ、試合数を稼ぐことが大事なので萎えない心が大事なので、誰にも聞こえない・見えない所でこっそりキレ散らかそう。

■仲間のバリューを最大化する
5対5のゲームなので、1人が試合に貢献できる総量はたかがしれている。
もちろん、圧倒できる強さやゲームの上手さがあれば試合に蹂躙して圧倒できるかもしれない。
ただし、この記事の趣旨はそんな蹂躙する強さを持たない人がどのようにマスターに行くか?だ。
最低限の知識やタブーを覚える事は必要だが、それ以上に大切なことがある。
それは仲間のバリューを最大化することだ。
相手の5人の平均戦力と、コチラの4人の平均戦力はランダムマッチの性質上ほとんど同じといえる。
勝率51%を目指すのであれば、各々のバリューをしっかりとだしてもらうことで、自分がたとえ平均以下の実力でも勝率51%を超えることは容易だ。
なぜなら、仲間のバリュー最大化ができていない人が多いので、最大化していない相手の試合は勝ち越すことができるからだ。

仲間のバリュー最大化を簡単にできる方法が2つある。

・好きなモンスターを選ばせる。
・意思の疎通をとり、クイックチャットを活用する

以上2つだ。

まず、「好きなモンスターを選ばせる」について。
こういったキャラクターを選ぶゲームは少なからず、”○○専門”と言った人が必ずいる。
1キャラだけ熱心に練習している人たちだ。
特にこのゲームはアイテムレベルの存在から、普段プレイしていないモンスターを使うときに不利になりやすい。
なので、最低2キャラ、できれば3キャラは使えるようにして、仲間に好きなモンスターを選んでもらった後に自分は選ぼう。
これをやれるかどうかで、相手が専門被りした試合は勝ち越せるので勝率51%を超えることが容易になる。

そしておすすめは中央レーン以外でタイプが異なるモンスターを使えるようにすることだ。

なぜなら中央レーンは勝利に直結しやすいから。
ゲームがうまい人なら絶対にアタッカーや中央レーンをやることがおすすめだ。
しかし、この記事はゲームが上手くない人へ向けたものなので、中央レーンは選んではならない。
勝率70%を目指すなら間違いなく中央レーンを練習したほうがいい。
逆にいえば自分が中央レーンになった場合、相手の中央レーンに勝ち越せないと勝率が大きく下がるため
そのため中央レーン以外をやったほうがいい。自分でプレイしなければ敵の中央レーンより味方の中央レーンがうまい確率はほぼ50%になる。
勝率51%を目指す場合は”勝利に直結しないポジションで平均戦果を出す”そして、”仲間のバリューを最大化させる”だけでいい。

次に「意思の疎通を取り、クイックチャットを活用する」について。
簡単にいえば仲間に指示を出すということ。
マイナスボタンでマップを開くと、”拠点の防衛”であったり、クイックチャットで撤退の意思表示ができる。
クイックチャットをいったところで意味のない味方も頻繁に遭遇するかもしれないが、その味方の事は考えなくていい。
なぜなら敵にいったところで同じような行動をするからだ。
だが、”クイックチャットをくれれば気づく・動ける・撤退できる”といった層は決して少なくない。
そんな味方がきたときにちゃんとクイックチャットを打てるチームと打てないチーム、勝てるチームはどちらだろうか。
ちょっと自分一人が良いプレイをする以上にクイックチャットをすることは価値のある行動といえる。

今の環境でのおすすめクイックチャットは
・前に出すぎた味方に対して”撤退”を打つ
・カジリガメが湧く45秒前に”下レーンに移動を打つ”、20-30秒前に”集合”を打つ
この2つを意識するだけで平均以下の実力でも勝率51%を出すことは容易だ。なぜならやらない人が多いから。

全てに言えることだが、”他人を変える事は難しい。一番簡単に変えることができるのは自分の行動と環境”である。
自分一人の行動改善によって勝率を数%上げるより、環境を変えることで味方の行動改善し勝率を上げるほうが容易と思う。

■強いキャラを使う。使うキャラをゲームの最初に交換する。
2-3キャラ使うとして何を使えばいいだろう?
それは強いと言われているキャラを使うことだ。
もちろん、[モチベーションを維持するために好きなモンスターを使う]といった観点も大事だ。
なぜなら[プレイしなくなったらマスターにはなれない]から。モチベーションを維持できる範囲で強いモンスターを持ちキャラにしよう。
また、1-2キャラまでは人に譲るため、ポジションがかぶらないほうがいい。
例えば、カビゴンメインの、サブヤドランにすると、ヤドランを使うときはカビゴンが必ずチームにいるため、バランスが悪い。
また、上レーン用キャラであれば、サブは下レーン用キャラが良い。(なぜなら、上レーンを譲るということは余る湧く上1下2になるから。)
今のおすすめはディフェンス+サポート。アタッカーは中央レーンにいかされがちなので、アタッカーを使う場合は上下レーンを先に宣言して中央レーンに行かない宣言をしよう。

また、このゲームのキャラクター選択画面は”ライセンス取得順”で並んでいる。(早いもの勝ちの仕様も微妙だけど、この仕様が微妙さに拍車をかける)
そのため、メインかサブキャラが可能な限り少ない操作で選べる場所に配置されている必要がある。
まずメインキャラにカーソルがあってる状態にし、同じライセンスを最初にとった人は”何もモンスターを選んでいない”ような表示になる。
その状態でいることはチェックマークが付くまで持ちキャラからカーソルが外れるのを待っている状態だ。
サブキャラが誰も使っていないようなら、メインは譲ってあげよう。
サブキャラが誰かに取られている場合は空気を読まずにメインをそのまま選択する。なぜなら自分が使えないキャラを使うより、○○専門勢のサブの方がまともな確率が高いから。
逆に自分のメインが先に選択されている場合は、急いでサブキャラを選択しにいく。
そしてメインもサブも全部取られている場合はアタッカーキャラクター以外はクイックチャットをうつといい
「サポート型のポケモンで戦うよ!」「ディフェンス型のポケモンで戦うよ!」である。どちらも2回くらい言えば、複数キャラ使える人が譲ってくれる可能性が高い。
それでも譲ってもらえない場合は適当なモンスターを使おう。その試合は負けても良い。
なんにしても、たくさん持ちキャラを持たないのであれば、自分の持ちキャラが最初にカーソルがあっていることは非常に大事だ。

■アイテムレベルを上げる。
このゲーム、アイテムレベルが20あるかないかでかなりの違いがでる。
そのため、利用するアイテムは全て最低でも20、可能なら30を目指そう。
特に課金を気にしないのであればまずはジェム購入して、アイテムきょうかキットをひたすら交換したほうがいい。
課金した人が勝つゲームではないが、課金すれば勝率があがるので、51%を目指す上では課金してしまうのが手っ取り早い。
というかゲームが上手くない自覚があってマスターに行きたいのであれば課金しよう。「そんなに変わらないよー」ってレベル以上の差はある。
上限も比較的安いため、あなたがマックスまで課金すればチームの平均道具レベルは相手より上になる。

■最後まで諦めない。アクティブポイントを意識しよう。
このゲームは今の環境だと亀を2-3匹倒すゲームである。
しかし、亀を倒したチームが勝つわけではなく、レベル差3以上あってもサンダーで逆転したりと逆転することも多い。
そのため、本当に詰むまで最後まで諦めてはいけない。
ただ、もうまず無理な試合のとき、針の穴の勝利を目指したり、降参したりするよりもやることがある。
アクティブポイントの獲得(ゴール)だ。

アクティブポイントとはゲーム参加で10点、連勝や獲得したゴールポイント数によって試合後にもらえるポイントのこと。
例えばエキスパート帯では、
・100ポイント以上ある場合は100ポイントを失いランクダウンをしない。(実質1敗がなくなる)
・400ポイント貯まると400ポイント消費し、1勝したことになる。
このポイントは非常に大事で、勝ったら1増えて負けたら1減るゲームだとポイントの総量はほとんど変わらない。
しかしこの制度によってポイントの総量はめちゃくちゃ増えている。
これが勝率50%をちょっと切っていてもマスターになれる所以だ。

ではアクティブポイントの獲得とはなにか?
アクティブポイントはゲーム中に獲得したゴールの点数によって、最後の5ポイント~のポイントがもらえる。
50ポイント、100ポイント、200ポイント・・・がその基準だ。
そのため、勝ち確の場面や負け確の場面では放棄せずにしっかりとポイントを入れて上記点数を超えるように意識するといい。
特にラストスパート中は得点が2倍になるので、50点にぎりぎり届いていない場合は特攻してでもポイントを入れよう。
※だたしその行動によって試合結果が変わるようなことがあってはならない
50点いれていない試合を入れるように、100点入れてない試合を入れるように意識を変えるとどうなるか?
なんと20試合で1敗がなくなる分のポイントがたまるのだ。
これは本当に大きくて、勝率1%あげるよりも簡単に勝率1%以上の価値がでる。
もうだめな試合でも諦めずに勝ちを目指すこと、そしてどうあがいても勝てない試合はポイントをとることを意識する。

■リスクはとらない
対戦ゲームにおいて全てにいえることだが、勝因を作る事よりも敗因を作らない事を意識したほうがいい。
常にリスクには敏感になる。ファインプレーよりもクソプレイをしないことを心がける。
ワンチャンかける(ハイリスクハイリターン)はもうそうしないと負けるときだけでいい。どっちが勝つか分からない状態でリスクをとってはいけない。

やってはいけないことを知ることが大事なので、そのあたりは僕ではなくうまい人のガイドを参考にすると良い。

temtemのLairs攻略と雑感

シパングアップデートみなさんは楽しんでいますか?

僕はとても楽しんでいます。

昨日、3回くらいLairsで遊んできたので、気づいた事とか個人的な意見をまとめておこうと思います。
これはアーリーアクセスのゲームver0.7.0に基づいた記事のため、今後変更される可能性があります。

また、攻略情報みてやったわけじゃないので間違いとかあるかもしれない。

■どんなコンテンツ?
Lairsは複数箇所にあり、現在挑戦出来るダンジョンは1つ
毎週クリア報酬を獲得でき、そこでしか手に入らないテムテムがいる
参加人数は3-5人。randomマッチはないのでローカルチャット募集かTwitter募集などに参加する必要あり
アイテム・テムは持ち込み不可。ダンジョン内で入手したもので戦う。

■ビルド方針
チームは基本的に宝箱からの入手か、敵と戦闘後にランダム入手か、テムテム取得ポイント(序盤のみ)から入手する。
個性はおそらくランダムで、技はタマゴ技、わざマシンなど含めて覚えるすべてから選択が可能
技は弱点をつけるようにするため、色々タイプを用意したほうがよさそう。
また、ランクマッチをやっていると忘れがちだが、「TVsが適当振りの個体」となるため、普段は特殊技しか使わないテムテムでも物理技が候補になりうる。(トゥーロックの竜巻など)
基本はクリア時には6匹にしておきたい。5匹でもクリアできるとは思うが、ダイヤの数がやばくない限りは6匹を目指す。
7匹を超えた場合は入れ替えるテムを自分で選ぶ事になる。
道中楽にすすめるテムテム(例えば高火力であったり、回復持ちであったり)は大事だが、長期的に意識しておくことがある。

ボスをどう倒すか?だ。
ボスは炎緑タイプで弱点が毒のみ。毒特攻を持っている(もっていないときもある?相手の能力は固定ではない模様)ので、毒も辛い。
セルニーフは道中は強いが、炎と草弱点はボスでは活躍しにくいと思う。
またボスは状態異常が入らないので、疲弊や睡眠は効果がない。
ただし、ステータス変化は効果があるので、ライカーンやムシュックなどで攻撃ダウンを入れると楽になる。
注意することはゲージを割るたびにリセットされるので、ゲージ割るたびに入れる必要があること。
1回入れるだけでだいぶ楽になる。2回目以降、どんどん効果は薄くなるので、乱発すればいいわけではない。

そのため、ボスに有効なデバフや耐性、攻撃手段を持っている事が大事。

ただほとんどの場合、もらえるテムテムは固定なので運では?と思われるかもしれない。
もらえるテムテムはある程度操作することができる。

敵を倒した際に入手出来るテムテムは「その敵が使っていたテムテムからランダム」だ。
特に序盤の敵の数が少ない時は何がもらえるか分かりやすい。
なので、すごい序盤でも欲しいテムがいない場合はテムではなく、宝石をもらっておくほうが良い。
またどうしてもボスが倒せなさそうなときはテムを7-8匹目を取得して入れ替えても良い。

とはいえ数は正義なので序盤ではやめに6匹にしたいところ。

■買い物方針
敵を倒したときにもらえるお金で買い物ができる。
この資産はメンバー全員で共通だ。
買い物で気をつけていることは以下
・全滅するくらいなら多く買い物しておいたほうがいい。全滅は重い。
・チームが弱い人はとにかく買い物したほうがいい
・蘇生や全回復はボスクリア時に1つ以上もって終わるくらいの気持ちでいい。(それでも足りなくなる)
・買い物中でもリアルタイムでお金は増えるので、チームが弱いときは「他の人がすすめるのを待ってお金が入ってから買う」と良い。
・クリアが難しい(チーム状況やプレイヤースキルの問題どちらの場合でも)人は遅れて進めて増えたお金でアイテムを買うといい
・マップを開くとその先で発生するイベントがすべてわかるので、「連戦がある場合は多めにアイテムを購入する」と良い。特に3連戦はアイテムないと無理。
・ボスはチームが強くないとアイテムありきなので、「そもそもある程度は購入が必要」
・共有資産なので使うの気が引ける人は稼いだ額の6-7割くらいは使う気持ちでいいと思う。全滅は重い。
・マップをみて、「仲間全員が最後のショップより先」にいる場合は全額自分で購入していい。残す意味はない。
・炎ダメージ減がボスにめっちゃ強いので買いたい。

あとボスまでが遠足のゲームなので非常に悲しい事実なのですが、
・野良でボスに挑戦できるダイヤがたまるなら最後のショップはかなり多めに買ったほうがいい。
・ボスより前の戦闘では仲間の資産が減るとクリアできなくなる可能性があるが、ボスに挑戦した後は個人ゲームなので、クリア率には関係しない。
→というか買わないと買われるので戦争。クソゲーかな?
→とはいえ協力ゲームなので節度持ってやりたいですね。

■進行ペース方針
基本進められるなら可能な限り早いほうがいい。
全滅しそうな場合などで、買い物の価値を最大化したいなら待ってもいい。
早いほうがいいメリットは以下
・仲間にバフやお金を多く配れる。遅い人が楽になる
・ボスに挑戦する権利は「ダイヤを18個集めてクリアすること」ではない。
→ 「ダイヤが18個あるとき、自分が最後の地点で試合開始ボタンを押す」ことだ。
→ どういうことかというと、18個溜まった段階で出発しないでいて、誰かが死んで復活すると「14個になって出発できなくなる」。クソゲーかな?
→ そのため、18になったらすぐボスに挑戦するべきなので進行ははやければ早いほど自分が得。(出発すると部屋から抜けた扱いになるが、ボスに挑戦できる段階で仲間の手助けはもう出来ないので早く抜けても迷惑にはならない)
→ 連絡取り合える同士でプレイしているときはこの仕様を注意し、復活するときは声かけたほうがいい。(最後のチームギア調整中に数減って出撃できないとか目もあてられない)

■退出方針
相当頑張れば3回、おおよその場合2回まで全滅出来る。それ以上の全滅はボスには挑戦できないと思っていい。
→ボスのことを考えると全滅1回調整で残りバフ選んだほうがいい気もする。そのへんはチーム内で相談。
何回死んだら退出するかは相談しておいた方がいい。なんにせよ、全滅は重い。
ボス挑戦権が獲得できないのに他の人を待たせて試合続行するのは一声かけたほうがいい。
→ 自分が勝てば18個貯まるなら、それを伝えたほうが良いと思う。

■トレード方針
ランダムでなにか差し出すともらえるやつ。
バフやリバイブが大量にもらえたり、ダイヤがもらえることがある。
ダイヤの数がやばい時は狙うのはあり。HP50%払って効果するやつはだいたいめちゃくちゃ美味しいので、トレードするタイミングがマップをみてあるなら中回復を多めに買っておくといいかも。

■戦闘方針
負けないこと
次に戦闘があるなら被弾を極力さけること
バフは引き継がれるので、(全回復取ると消える)生命力吸収使ってから倒すとかは強い
被弾量をへらすことが大事、リバイタライズがいる場合は回復ループして終わると節約出来る(時間はかかる)

■初心者へ
初めての挑戦に向けて、事前調査でこの記事を読んでいるかもしれない。
とても大事なことだと思うけれど、「数回やってアイテム購入のさじ加減覚えないとクリアは大変」と思われる。
また、普段レート戦とかしない人はテムの型とかわからなくて大変だと思います。(しかも図鑑登録してないと自分のテムのタイプみえなくてつらい)
なので、まずはプレイすることが大事!プレイ自体は3-4人でもできるので(クリアは5人が圧倒的に楽)練習や様子見募集とかするといいかも。
参加するときは事前に「未プレイ」で大丈夫か確認したほうが良いです。この人口でだめって言われることそうそうないと思いますけど、
調べていても初見クリア結構たいへんなので、気遣い大事。

■楽しい?
一人か2-3人でやれるならもっとやりたかった。(ローグライク大好きマン)
毎回違うチーム楽しいし、リソース考えながら進めていく、「ランクマにはない考えるプレイ」が楽しかった。
ランクマがストーリーのバトル1試合を濃くしたものなら、これはストーリー全体を濃くしたものだ。
5人だし時間の価値観違う人同士でやるのは苦手な人には合わないかも。

助けるよりも足手まといにならない事を意識しないといけないルールなのでしんどい。リソース管理が仲間とシェアだけでなく、テムエキスの瓶1回とか欲しかった。

一人の全滅が重く難易度は高め。そのくせタイプ偏るとマジできつい回がある。
でも特別ルール系としては良い作りだと思うので、バトルフロンティアに個人的には期待。
人を集める事が苦じゃないならおすすめ出来るけど、改善の余地ありな部分はみえてる(特にダイヤ減ると出撃できなくなるとか、最後アイテムいっぱい買ったやつが得するとか)

しばらくは週1で遊ぼうと思う。

hapi.jsフレームワークのエラー解消法

node js関連のフレームワーク勉強中。

'use strict';

const Hapi = require('hapi');

const server = new Hapi.Server();
server.connection({ port: 3000, host: 'localhost' });

server.route({
    method: 'GET',
    path: '/',
    handler: function (request, h) {
        reply('Hello, ' + encodeURIComponent(h.params.name));
    }
});

server.start((err) => {

    if (err) {
        throw err;
    }
    console.log(`Server running at: ${server.info.uri}`);
});

公式が配布しているhello worldを動かすと下記エラーが出る

TypeError: server.connection is not a function
    at Object. (/home/ユーザー名/temp/server.js:6:8)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

下記部分を書き換え

server.connection({ port: 3000, host: 'localhost' });

const server = new Hapi.Server({ port: 3000, host: 'localhost' });

理由としてはhapi v17.0.0から単一サーバーの複数接続のサポートが削除されたため。

さて、これで実行すると下記エラーが出る。

Debug: internal, implementation, error 
    TypeError: reply is not a function
    at handler (/home/ユーザー名/temp/server.js:11:9)
    at module.exports.internals.Manager.execute (/home/ユーザー名/temp/node_modules/hapi/lib/toolkit.js:31:106)
    at Object.internals.handler (/home/ユーザー名/temp/node_modules/hapi/lib/handler.js:46:48)
    at exports.execute (/home/ユーザー名/temp/node_modules/hapi/lib/handler.js:31:36)
    at Request._lifecycle (/home/ユーザー名/temp/node_modules/hapi/lib/request.js:312:68)
    at process._tickCallback (internal/process/next_tick.js:68:7)

これはHapiのバージョン17でAPIが大幅に変更されたかららしい。(https://hapijs.com/api/17.1.0)
仕様変更したら変更前のソース実行時にエラーメッセージ出すとかしてほしいね?

    handler: function (request, h) {
        reply('Hello, ' + encodeURIComponent(h.params.name));
    }

上記を下記に書き換える。

    handler: function(request) {
            return 'Hello, ' + encodeURIComponent(request.params.name);
    }

そして以下が完成形のHello worldソース

'user strict';
  
var Hapi = require('hapi');
const server = new Hapi.Server({ port: 3000, host: 'localhost' });
server.route({
    method: 'GET',
    path: '/{name}',
    handler: function(request) {
        return 'Hello, ' + encodeURIComponent(request.params.name);
    }
});
server.start(function() {
    console.log('Server running at:', server.info.uri);
});

動作確認

node server.js

実行したまま、別画面を開き、実行したサーバー内部から下記コマンドを実行

pc:~$ url -X GET localhost:3000/shibamata
Hello, shibamata

shibamataは適宜変更すればその文字が返る。

日本語の情報少なすぎませんかね?

Hello worldから躓いて解決策分からないと辛いので、誰かの助けになれば。

google検索するときに変換候補を選ぶ事ができない

知人のPCで起きた問題を解決したのでメモ。

【症状】
google検索のトップページで文字入力し、ある程度まで入力してから変換候補を選んでも、
画面下のブックマークを選択してしまったり、候補が選ばれずにひらがなの入力が完了するだけになる。
サジェストが選べない。

また、シークレットモードではこの事象は発生せず、正常に候補を選択することができる。
ひらがな入力を完了させてからなら候補を選ぶことができる。

【原因】
最新のMicrosoft IMEがクソ

【解決策】
MicrosoftIMEの設定で以前のバージョンを利用するにチェックを入れる。