FF14 スペスペタイムラインの書き方・読み方、超入門

詳しく取り上げてくれてる他の記事はたくさんあるので
自分で書くというよりは、既存の定義ファイルを読み解いたり、いじったりするためのメモ

スペスペ作者の絶アレキサンダーの定義ファイルを参考に進めていきます

https://github.com/anoyetta/spespetime/blob/master/ult_VS_Alexander.xml

公式に丁寧なリファレンスもありました。

https://github.com/anoyetta/ACT.Hojoring/wiki/spespetime_reference

公式リファレンス内の文章は当然、XMLの書き方がわかる人向けなので
ここではできるだけくだけた感じで書けたらと思ってます。

sタグ (sub routine)

複数のactivityやtriggerをまとめるタグ。
リキッド、2体フェーズ、最終フェーズ、みたいな区切りを定義しています。

  • name: サブルーチン名。(ex: リキッド)
  • enabled: 有効かどうか。デフォルトtruefalseの場合はコメント扱いになる

子要素にはa,t, importが利用可能

aタグ (activity)

敵の攻撃とか、ギミック開始とかそういうのを定義する。

<a time="011" text="フルイドスイング" sync="リビングリキッドの「フルイドスイング」" notice="次、フルイド。" />
  • time: このアクティビティが発生する時間。秒数でもいいし、分と秒でもいい(1分10秒後のイベントなら70 or 01:00 )
  • text: パネルにこのテキストが表示されます。
  • sync: ACTが収集しているログとマッチングさせて、強制的に同期させるためのテキスト。
  • notice: 通知。テキストならTTL(ゆっくりとか)wavファイル(音声ファイル)の指定も可能
  • goto: 別のactivityやsub routineへジャンプさせる。フェイズ移行とかに使う

tタグ (trigger)

タイムライン中に、特定のログにマッチさせるのに利用します。
通知にランダムギミックに役立ちます。

<t text="エンボラス" sync="Added new combatant エンボラス" notice="エンボラス">
    <v-notice
        duration="5"
        duration-visible="false"
        icon="Bomb.png"
        order="-1" />
</t>

v-noticeタグ

通常のタイムラインのパネルとは別にオーバーレイで通知する。

  • icon: 通知するアイコンのファイル名
  • text: 通知するテキスト
  • duration: 表示する秒数
  • duration-visible: 残り時間を表示するか
  • order: オーバーレイの表示順。デフォルト0
  • sync-to-hide: ログにマッチした場合に強制的に非表示にする

同じような用途でi-noticeというタグもあるみたいです。カンペを表示したりするのにいいかも。

expressions, set, preタグ

ちょっとむずかしい。基本的にはs,a,tの3種類あれば
定義できるが、このタグは(多分)ちょっと慣れてる人向け。

expressiontまたはa内で利用できる。
set,preexpression内で利用できる。

どういう用途に使えるか、というと
AとBという2種類のギミックがあった時に、

  • 先にAがきたら、あとでBがくる
  • 先にBがきたら、あとでAがくる

そういうのを判定できます。

<t text="ギミックA" sync="ギミックA">
    <expression>
        <set name="first_is_A" value="true">
    </expression>
</t>
<t text="ギミックB" sync="ギミックB">
    <expression>
        <set name="first_is_B" value="true">
    </expression>
</t>
<t text="ギミックA" sync="ギミックA">
    <expression>
        <pre name="first_is_B" value="true">
    </expression>
</t>
<t text="ギミックB" sync="ギミックB">
    <expression>
        <pre name="first_is_A" value="true">
    </expression>
</t>

絶アレキではtableタグを利用して、サイコロの判定とかやってるっぽいけど
こればかりは全部説明するより、リファレンス読んだほうが早そうです。

https://github.com/anoyetta/ACT.Hojoring/wiki/spespetime_reference#table

更に上級者向け

あとスペスペタイムラインの定義ファイルであるXMLにはASP.NETのRazorという構文が
利用できるようです。

これも全て説明することは難しいので、公式リファレンスや既存の定義ファイルを参考にして
利用してみてください。

XMLとちょっとしたプログラミングができれば利用できると思います。

Razor構文のリファレンス
https://docs.microsoft.com/ja-jp/aspnet/core/mvc/views/razor?view=aspnetcore-6.0

定義ファイル内で利用できるモデル
https://github.com/anoyetta/ACT.Hojoring/wiki/spespetime_reference#razor%E3%81%AE%E6%A7%8B%E6%96%87

とくに

@if (Model.Player.InRole("DPS")) 

この構文はロールに応じてtriggerを切り替えたりするのに便利そうです。
よくあるギミックです。
辺獄4層の線取,毒のギミックとか使えるかなー?

(おまけ)定義ファイルのもとになるログを見る

素のログの保存場所

ここに保存されているログを頑張って読むのもいいんですが、すごい量だし、いい感じにパースされていないしで
かなりしんどいです。

スペスペがいい感じにログを区切ってパースしてくれる機能があるので利用しましょう。

「自動タイムライン分析」と「分析結果の自動保存」をしておくと、ACT上でパースされたログを
見ることもできるし、あとからゆっくり確認することもできます。
(テキストファイルとエクセルのファイルを戦闘ごとに記録してくれます。)

ここでバトルログやら、バトルログには表示されないマーカーやデバフのIDが確認できると思います。

上部へスクロール