anoyetta の開発記録

FINAL FANTASY XIV 向けのプラグイン「補助輪」の開発をしています。セットアップ、便利な使い方、その他デバイスなどの情報を扱っています。

FFXIV patch 6.0 ENDWALKER に伴うログの書式変更について

FFXIV patch 6.0 ENDWALKER に伴う FFXIV_ACT_Plugin の仕様変更によって、補助輪が判定の対象とするログの書式が一部変更となりました。その変更点について解説いたします。

f:id:anoyetta:20211208170544p:plain

概要

ENDWALKER(以後、EWと表記する)に伴って、FFXIV_ACT_Plugin(以後、ACTと表記する) の内部の仕様が大きく変わりました。それによって、一部の種類のログについては patch 5.x 時代とは書式を変えています。

5.x までに定義したスペルやテロップ(Ticker)及びスペスペたいむファイルについては、概ねそのまま使えるように互換性を持たせていますが、一部書き換えが必要となるケースがあります。

簡単な書き換えで解決しますのでユーザの皆さま自身で対応してください。

目次

クリティカルな変更点

00:ChatLog の変更

旧)00:0039:戦闘開始!
新)00:0039::戦闘開始!

このようにFFXIVから出力されるシステムメッセージなどの話者が存在しないログについて、:が1つ増えました。

この定義はスペスペたいむファイルのstartタグに開始条件としてよく設定されている定義です。したがって、5.x以前に製作されたスペスペたいむ定義を使用する場合はstartタグを書き換えて使用する必要があります。

00:0044:タイタン:横暴なるヒトの子よ…… お主を屠り、我が子らの嘆きを止めようぞ!

これはタイタンのセリフです。このようにFFXIVから出力されるログについては:区切りによる下記のような形式になっています。

1. "00" → FFXIVからのログを示すコード
2. "0044" → NPCのセリフを示すFFXIV内部のメッセージ種別
3. "タイタン" → 話者の名前
4. "メッセージ" → ゲーム内で表示される実際の文章

このように2と4に間に話者が出力されます。しかし、システムメッセージの場合は話者の概念が存在しません。5.x向けのACTでは話者が存在しないメッセージのときはそのフィールドを除外して出力する処理が含まれていました。6.0向けのACTからはその除外する機能が省かれ、話者が存在しない場合は何もないフィールドがそのまま出力される処理に変更になりました。

結果として、00:0039::戦闘開始!のようにコロンが2つ連続するログが出力されるようになりました。

[00:18:25.559] 00:082B::Rin H.の「ルインラ」
[00:18:26.118] 00:08AE::Rin H.に「エーテルフロー」の効果。
[00:18:26.465] 00:082B::Rin H.の「エーテルフロー」

このように、すべてのシステムメッセージが影響を受けています。メッセージの全文に対してトリガを仕掛けている人は定義の修正が必要となります。

1B:Sign などの行末の:が除去された

旧)1B:12345678:Rin Hojo:0000:DF9F:00E6:0000:0000:0000:
新)1B:12345678:Rin Hojo:0000:DF9F:00E6:0000:0000:0000

このように新しい書式では行末の:が除去されました。コロン区切りのCSVファイルとして行末の:は不自然だったためです。

スペル、テロップ(Ticker)及びスペスペたいむにログの全文でパターンを定義してる場合はこれに合わせて行末の:を削除してください。

またこの変更は、区切りのデータの羅列となっているすべてのログ行が対象となっています。最近では下記の種類のログを判定対象としている場合もあります。これらも影響範囲に含まれることをご理解ください。要するにこれらに対してパターンを仕掛けている場合は修正が必要になります。

  • 0x15:Ability(単体攻撃の予兆)
  • 0x16:AOEAbility(範囲攻撃の予兆)
  • 0x23:Tether(いわゆる線ギミック)
  • その他、文章化されていないすべてのログ

機能が拡張されたログ

1A: gains effects the ~ の拡張

1A:4000A9FB:タイタン gains the effect of 蠱毒法 from Rin Hojo for 30.00 Seconds. BuffID: 0767-00

発生したEffectのID(16進数)を加えました。この変更によって既存のパターンがヒットしなくなることは原則的にありません。

14: starts using ~ の拡張

14:0555:タイタン starts using ジオクラッシュ on タイタン. Duration: 2.70 Pos: (-0.02,-0.02,0.00) Heading: 3.08

詠唱の長さと使用者の座標、顔の向きを加えました。この変更によって既存のパターンがヒットしなくなることは原則的にありません。

まとめ

「スペルが動かない!」「スペスペたいむが動かない!」という場合はまずはこの影響を確認してください。どこから入手したスペスペたいむファイルだったとしても、あなたのPCにダウンロードした時点であなた自身がメンテナンスすべきものです。

スペルを公開している人や、スペスペたいむを公開している人は自分のノウハウをお裾分けしているだけに過ぎず、動作の保証や将来的なサポートを提供してはいません。「自分が使う道具は自分でメンテナンスをする。」この基本的なスタンスについて間違いのないようにお願いいたします。

私は、基本的な立場を理解した上で改善のための自ら努力する方への協力は惜しみません。

参考情報

実際に判定しているログ

f:id:anoyetta:20211208181506p:plain

実際に判定対象としているログ(ParsedLog)については、スペスペのオプションからこのように設定することでファイルに出力することが出来ます。スペルなどがヒットしない場合はParsedLogを出力して、実際のログと定義されているパターンを突合せてください。

なお、スペルなどがヒットしないという問合せの際にはこのParsedLogが必須となります。「ParsedLogを提出してください。」と言われたら、これのことです。これが提供されない場合の問合せには対応いたしません。実際に発生している状況を掴めないからです。

ログ行とトリガについて(Log Lines and Triggers)

github.com

ACTが出力するログの種類とその内容についての詳細は cactbot の開発者である quisquous がWikiにまとめてくれています。こちらを参照するとよいでしょう。

©2019 anoyetta