エンジニア的ゲーム理論

FFXIVやPCが好きなITスペシャリストの屁理屈とか

オフェンシブなシナジースキルのリキャストと効果時間表示(5.0対応)

パーティメンバーの与えるダメージに影響を与えるスキル・アビリティ(=シナジースキル)のリキャスト表示用パネル、およびその恩恵を受けている状態を示すパネルの設定例です。パッチ5.0、漆黒のヴィランズに対応したバージョンです。

以前にも似たような記事を書きましたが、内容が古くなっているので新しく投稿します。

サンプルの追記・修正履歴

2019/10/15 だまし討ち:効果のマッチングワードが誤っていたので修正

2019/10/14 エンボルデンの効果を受けたあと4秒おきに効果時間カウントがリセットされてしまう問題の修正。単純にバトルログを参照するようにした

はじめに

意外と要望が多かったもので、頼りにして頂けるのは大変嬉しいことなのですが、同時に少し困惑もしています。

公開しているスペルパネルというのは私が「こんなもんかなー」という感じで適当に作ったものであって、これが正解です、というような性質のものではありません。

気に入らない項目や過不足があれば、そこは自分が使いやすいように、自分の思い通りの挙動になるようにカスタマイズしてください。これらのトリガーの作成というのは別に高度なプログラミング技術が必要になるようなものではなく、誰にでも簡単に作れるものです。本記事でもトリガー定義のサンプルとして、インポートすればそのまま使えるものを提供しますが、作り方の参考資料以上の価値を期待しないでもらえると有り難いです。

設定例

単純な読み上げと効果時間表示の2つのパネルに分けて、それぞれに役割を持たせています。

f:id:hackermind:20191014015950j:plain

シナジースキルのリキャスト表示+読み上げ

リキャストタイマーの表示部分です。発動したことを知らせるためにこちらのパネル内で定義したトリガーで読み上げを行っています。

このスペルパネルは水平レイアウトとし、ソート順は「表示順を最優先にする」としています。内部のトリガー個別に定義した表示優先順位に基づいて並び替えられます。私はなんとなくリキャスト時間>ジョブでソートして、左からそれぞれリキャスト時間 60秒 → 90秒 → 120秒 → 180秒 という並びになるようにしてみました。お好みで優先度を変えて試してみてください。

また、見た目の問題ですが、暗転してリキャスト時間が表示される以外の機能をアイコンに持たせたくなかった(不必要な文字を並べたくなかった)ので、スペスペのOption内の設定でデフォルトに指定されている 正方向のスペルのカウント完了時のテキスト「Ready」逆方向のスペルのカウント完了時のテキスト「Over」 をそれぞれ空白にしています。

対象にしたアクション

  • 忍者の「だまし討ち」
  • モンクの「桃園結義」
  • 赤魔道士の「エンボルデン」
  • 占星術師の「ディヴィネーション」
  • 学者の「連環計」
  • 召喚士の「エギの加護」
    • マッチング条件は召喚士の「エーテルパクト」
  • 踊り子の「テクニカルステップ」
  • 竜騎士の「ドラゴンサイト」
  • 竜騎士の「バトルリタニー」
  • 吟遊詩人の「バトルボイス」

ぜんぶ並べるとこんな感じです。実際にはパーティ構成を評価して必要なものだけアクティブになります。

f:id:hackermind:20191014015817p:plain

個別トリガー設定例

General
項目 設定値
マッチングワード ^00:<id4>:<nex>の「アクション名」$
正規表現を使用する true
リキャスト時間 当該アクションのリキャスト時間
パーティメンバのジョブによるフィルタ 当該アクションを使用できるジョブにチェック
パーティ構成によるフィルタ Light Party, Full Party(T1), Full Party(T2)

マッチング文字列におけるプレースホルダには自分以外のパーティメンバーを示す <nex> を指定しています。

例えば自分が忍者でパーティに忍者が二人いて、だまし討ちの読み上げを <NIN> でマッチングさせていた場合、自分の使っただまし討ちもマッチングしてしまいます。使ったのは自分なので読み上げなんかしなくても分かっているわけですし、ホットバーを見ればリキャストも分かります。多くの場合、可視化したい対象は自分以外の方だと思います。

また、正規表現において文字列の先頭を示す ^ 、文末を示す $ を組み合わせてマッチング条件を厳密に定義することで、想定外の場面でトリガーが動き出すことを抑止しています。

フィルタを設定すると、マップ移動やパーティ構成の変化など、トリガーのコンパイル時にそのフィルタの条件をクリアしていた場合にのみ当該トリガーがアクティブになります。アクティブなトリガーが増えれば増えるほど、1行のログに対する文字列検索処理が増えます。ハイエンドな構成であればCPU処理負荷は大したことありませんが、余計なトリガーをアクティブにしておく理由もないので適切なフィルタ設定をしておくことをおすすめします。

  • パーティメンバのジョブによるフィルタ
    • 自分以外のパーティメンバに当該ジョブがいる場合にのみ有効なトリガーになります。例えばバトルリタニーのトリガーなら竜騎士がパーティにいるときだけ有効になるようにします。
  • パーティ構成によるフィルタ
    • ライトパーティ、フルPT(タンク1)、フルPT(タンク2)のときのみアクティブになるようにします。それ以外の適当な構成で挑むようなコンテンツにおいて攻撃バフが重要になる場面ってそんなにないと思うので。
  • 現在のゾーンによるフィルタ
    • プレイヤーが現在いるゾーンにチェックが入っているときだけアクティブになります。そこで表示してどうすんの?って思ったら必要なゾーンだけチェックすればOKです。私は面倒だったのでパーティ構成によるフィルタで済ませています。
Visual
項目 設定値
フォント、カラー お好み
Circle Style true
リキャスト中はアイコンを暗くする true
スペル名を表示しない true
リキャスト完了後も表示し続ける true

Circle Styleにチェックを入れるとバーが直線から円形になります。情報量を落とさずに見た目がスッキリするのでおすすめです。アイコンのサイズと合わせて、バーがちょうどアイコンを囲む形になるまで調整します。アイコン見れば何のスキルだか分かると思うので私はアイコンとバーのみ表示するようにしています。

Notice
項目 設定値
マッチしたときの通知 読み上げたい文字列

被シナジーの効果時間表示

f:id:hackermind:20191014021321g:plain

パーティメンバーがシナジースキルを使ったことと、その恩恵を享受しているかどうかはまた別の問題です。例えば竜騎士がバトルリタニーを使ったけれど自分がその効果範囲から漏れていた場合、だまし討ちの方向指定をミスして不発した場合。効果は受けていないけれど、しかしリキャストは回っている状態です。これはこれで自身やパーティメンバーの立ち回りをリアルタイムに検討する材料になるので、前述のリキャスト表示パネルの方で読み上げをしておきます。

同時に、別のパネルで自身や対象が受けた効果の時間を見やすく表示しておくことで、バフ欄まで視線移動をすることなく「自身または対象が効果を受けているかどうか」「その効果時間の残り秒数」を視認することが出来ます。私はこのパネルを画面の中央上部付近、戦闘の邪魔にならず、かつ視界に入りやすい位置に表示しています。

このスペルパネルは「残りリキャスト時間でソートする(昇順)」としています。内部のトリガーは表示優先度に関わらず、残りリキャスト時間(=効果時間)が短い順に整列します。

対象にしたアクション

  • 忍者の「だまし討ち」
  • モンクの「桃園結義」
  • 赤魔道士の「エンボルデン」
  • 占星術師の「ディヴィネーション」
  • 踊り子の「攻めのタンゴ」
  • 踊り子の「テクニカルフィニッシュ」
  • 学者の「連環計」
  • 召喚士の「エギの加護」
  • 竜騎士の「ドラゴンサイト」
  • 竜騎士の「バトルリタニー」
  • 吟遊詩人の「バトルボイス」

個別トリガー設定例

General
項目 設定値
マッチングワード バフ: <mex> gains the effect of アクション効果名
デバフ: gains the effect of アクション効果名 from <JOB>
正規表現を使用する true
リキャスト時間 当該アクションの効果時間
パーティメンバのジョブによるフィルタ 当該アクションを使用できるジョブにチェック
パーティ構成によるフィルタ Light Party, Full Party(T1), Full Party(T2)

マッチング条件を自分がその効果を受けたかどうか(または、対象がその効果を受けたかどうか)に置き換えた以外はリキャスト表示パネルと同じです。こちらはアクションの効果が掛かっているかどうか、を見るものなので、敵に与えるデバフの場合にはプレースホルダにはジョブ名を使用し、発生源が自分であれ他人であれ関係なくマッチングするようにしました。

Visual
項目 設定値
フォント、カラー お好み
Circle Style true
進行方向を逆にする true
リキャスト中はアイコンを暗くする true
スペル名を表示しない true
リキャスト完了後も表示し続ける false

進行方向を逆にする のチェックを入れることで、リキャスト完了(効果時間終了)までのカウントダウン表示にしています。視覚的に好みの設定にすれば良いと思います。また、リキャスト完了後も表示し続ける のチェックを外すことで、効果時間が終了したら消えるようにしています。効果が消えてから表示が消えるまでの時間はスペスペの Optionsタブ>トリガー>リキャスト完了後に消去するまでの時間 で定義した秒数です。

サンプル

また例のごとくGistに上げときました。

パーティメンバーのシナジースキルのリキャスト表示用トリガー群 · GitHub

シナジースキルの残り効果時間を表示するトリガー群 · GitHub