PR

召喚士の験術・幻術を支援するWindowerアドオンを作ってみた

Lua

こんにちは。今回は、召喚士(SMN)で戦う時の「験術の掛け直し」や「幻術・神獣の攻撃の指示出し」を手伝ってくれる、自作のWindowerアドオンを紹介します。

きっかけ

召喚士で戦っていると、地味に忙しい瞬間があります。

  • 験術(パーティ強化の効果)がいつ切れるか、常に気にしていないといけない
  • 召喚獣を切り替えるたびに、帰還→召喚→験術、という手順を毎回打つ
  • 幻術(攻撃技)や神獣の攻撃も、タイミングを見て指示を出す必要がある

これを全部手作業でやるのはなかなか大変なので、「切れていそうな験術があれば教えてくれて、必要な操作をこちらの代わりに送ってくれる」補助ツールを作ることにしました。あくまで指示を代わりに出してくれるアシスト役であって、判断そのものを丸投げする仕組みではありません。

どういう仕組みで動いているか

験術が切れているかどうかの見極め方

一番悩んだのがここです。験術を撃った瞬間の効果を、パケットを直接見て検知するやり方も試したのですが、複数人でのプレイだと他のメンバーに付いた無関係な効果まで拾ってしまい、誤判定が多発しました。

最終的に落ち着いたのは「タイマー+裏取り」という二段構えの方式です。

  1. 験術を撃ったら、その効果のだいたいの持続時間(例: 3分)を覚えておく
  2. その時間が経過するまでは、何も確認せずそのまま信用する(無駄な確認をしない)
  3. 時間が経過したら、念のため実際に自分のバフ一覧を見て、本当に効果が切れているか確認する
  4. 切れていなければ何もしない。切れていれば掛け直す

この「本当に切れているか、名前を指定して確認する」部分がけっこう曲者で、効果によっては見た目の技名とバフの表示名が違うことがあり(たとえば「○○の咆哮」という技が、実は別の名前の状態異常耐性バフを付与している、など)、ここがズレていると「本当は掛かっているのに切れたと誤判定して、何度も撃ち直してしまう」という不具合につながります。地道にひとつずつ実際の効果を確認しながら直していく必要がありました。

召喚獣の切り替え

「帰還→召喚→験術」という一連の流れも、指示を出すだけでは終わりません。特に混戦中は、麻痺などで技が不発になることがあります。なので、各段階で「本当に成功したか」を確認し、失敗していたら数回まで自動的に送り直す、という作りにしています。ただし、これも「見なかったことにして先に進む」のではなく、あくまで「一度失敗したものを、こちらの代わりに撃ち直してくれる」補助です。

エレメントサイフォン(MP回復)の扱い

MPが減ってきたら、精霊を呼んでMPを吸い上げる技も使えます。ただしこれは「召喚獣を一時的に手放して、精霊を呼んで、技を使って、また帰す」という一連の動作になるため、途中で戦闘が終わってしまうと中途半端な状態で止まってしまうことがありました。

今の作りでは、この一連の流れが始まったら、途中で戦闘状況が変わっても最後まで(帰還・精霊召喚・技・帰還)を通しでやりきるようにしています。ただし、エリア移動やログアウトのように召喚獣自体がゲーム側で強制的に消えてしまう場面では、そこで打ち切ります(意味のない指示を送らないためです)。

動きを見えるようにする工夫

不具合を調べる時に一番困るのは、「実際に何が起きたか」を後から追いにくいことです。なので、判断の過程(何を確認して、どう動いたか)をログファイルに残すようにしました。プレイに集中しながら、後からログだけ見て動きを振り返れるので、原因調査がかなり楽になりました。

まとめ

召喚士のプレイを丸ごと肩代わりするものではなく、あくまで「験術の切れ目に気づいて、代わりに指示を出してくれる」「切り替えの手間を減らしてくれる」補助ツールとして育ててきました。地味な作業をアシストしてくれる分、本来やりたい立ち回りに集中しやすくなったと感じています。

同じように召喚士の験術管理で困っている方の参考になれば嬉しいです。

ダウンロード

このアドオンはこちらから入手できます。

(記事の下部にファイルを添付しています。ダウンロードしたAutoSMN.luaを、下記の手順で導入してください。)

導入手順

  1. Windowerのaddonsフォルダの中にAutoSMNという名前のフォルダを作る
  2. その中にダウンロードしたAutoSMN.luaを置く
  3. ゲーム内で以下のコマンドを打って読み込む
//lua load autosmn

初回はUIパネルの位置がずれていることがあるので、その場合は//smn resetui//smn pos <x> <y>で見やすい位置に調整してください。設定はキャラクターごとに保存されるので、複数キャラで使う場合もキャラごとに一度だけ調整すれば大丈夫です。

基本的な使い方

導入するとチャット欄の近くに[ SMN: OFF ]というボタンと、召喚獣の一覧が表示されます。

  1. 使いたい召喚獣にチェックを入れる(験術を任せたい召喚獣だけでOK)
  2. [ SMN: OFF ]ボタンをクリックして[ SMN: ON ]にする
  3. あとは戦闘に入れば、チェックした召喚獣の験術が切れていないか見張って、必要な時だけ代わりに掛け直してくれます

召喚獣一覧の右側にある秒数の欄をクリックすると、その験術の持続時間を手動で調整できます(効果時間が実際と違うと感じた時に使います)。

一覧の下には、以下のチェックボックスもあります。

  • コンバート自動使用 → HPが減った時に、召喚獣とHP/MPを入れ替えるコンバートを代わりに使ってくれます
  • ケアル自動使用 → HPが減ったパーティメンバー(または自分)に、ケアルを代わりに唱えてくれます
  • エレメントサイフォン → MPが減った時に、精霊を呼んでMPを回復する動作を代わりにやってくれます

主なコマンド一覧

チャットに//smn <コマンド>の形で打ちます。困った時に使うものを中心にまとめました。

コマンド内容
//smn on / //smn offON/OFFの切り替え(ボタンのクリックと同じ)
//smn pos <x> <y>召喚獣一覧の表示位置を変更
//smn panelpos <x> <y>操作パネルの表示位置を変更
//smn resetui表示がおかしくなった時のリセット
//smn interval <秒>験術が切れていないか確認する間隔
//smn cinterval <秒>幻術・神獣の攻撃の指示を出す間隔
//smn cureケアル自動使用のON/OFF切り替え
//smn curehp <割合>ケアルを使うHPのしきい値(%)
//smn curespell <呪文名>使うケアルの呪文を指定
//smn convertコンバート自動使用のON/OFF切り替え
//smn siphonエレメントサイフォンのON/OFF切り替え
//smn siphonmp <割合>サイフォンを使うMPのしきい値(%)
//smn setduration <技名> <秒>験術の持続時間を手動で指定
//smn forget覚えている効果時間などの記録をリセット
//smn buffs今チェックしている験術の一覧と状態を表示
//smn whyなぜ今その召喚獣を選んでいるかの理由を表示
//smn logログファイルの場所を表示
//smn logclearログファイルを空にする
//smn save現在の設定を保存

うまく動かない時は、まず//smn why//smn buffsで今どう判断しているかを確認してみてください。それでも解決しない場合は、//smn logで場所が分かるログファイルの中身を見ると、実際に何が起きたかを時系列で追えます。

コメント