Skip to content

SpecialSpellTimer

anoyetta edited this page Aug 29, 2018 · 15 revisions

ACT.SpecialSpellTimer

概要

「スペスペ」 見やすさを改善した特別なスペルタイマーです。

sample

使い方

DoTなどの設定方法が分からない

こちら に高度な設定例を示します。
正規表現をフル活用することになりますので各正規表現の意味を理解して使用してください。

そもそも正規表現が分からない

基本的には分からなくてよいです。正規表現とは専らプログラマなどがテキストを効率よく検索するときに使用する高度な検索キーワードで、開発用のエディタ内やプログラムの内部に埋め込んで使います。
よって一般の方には使いこなすのは難しいです。分からない場合は通常のキーワードマッチングの範囲内で使用するのがベターです。

どうしても正規表現を使いたい

下記で学習できます。

  • 正規表現とは?
    正規表現 - Wikipedia
    ざっくり説明すると * などのワイルドカードをより強力にしたものです。C#等のプログラミング言語とは独立して体系化されているため、C#, JavaScript, PHP, Bash など言語を問わず使用できます。

  • 正規表現のリファレンス
    正規表現の構文 - MSDN
    正規表現言語 クイックリファレンス - MSDN
    マイクロソフトの開発者向け情報(MSDN - Microsoft Developer Network)の正規表現のページです。分かりやすくまとまっているため学習には最適です。

  • 正規表現のテスト
    正規表現を書いていきなりゲームのログとマッチさせようとしてもうまくいかないでしょう。またマッチしない原因を探ることも出来ないでしょう。正規表現を書いたらチェックツール等を使用して正規表現をテストしましょう。
    regular expressions 101
    まずはスペスペでログを収集します。ヒットさせたいログが出力されていることを確認し、そのテキストを対象にして自分の書いた正規表現を前述のテストツールでテストします。これが基本です。
    仮にプログラマだったとしても複雑な文字列に対してはテストしながらパターンを作ります。よって誰かに質問する場合も検査したいテキストを添えて「このテキストに対してこのパターンで正規表現を設定したがマッチしない」と質問するとよいでしょう。

ゲーム内の <me> のようなプレースホルダは使えないの?

ゲーム内のプレースホルダとは異なりますが同等もしくは拡張したものを独自に搭載しています。
マッチング等に使用可能なプレースホルダを下表に示します。

<me> 使えます。
ただし、イニシャルにはマッチしません。
<2>~<8> 使えます。
ただし、イニシャルにはマッチしません。
オプションにてパーティメンバ代名詞をONにしてください。
<mex> <me>の拡張版です。フルネーム、イニシャルを問わずプレイヤーにマッチします。
正規表現をONにしてください。

ex. プレイヤーが Naoki Yoshida の例
(?<_mex>Naoki Yoshida|Naoki Y\.|N\. Yoshida|N\. Y\.)
に置換わってマッチングされます。
<nex> パーティの自分以外のメンバにマッチします。
正規表現をONにしてください。

ex. プレイヤーが Naoki Yoshida の例
(?<_nex>Taro Yamada|Jiro Sato|Saburo Suzuki)
に置換わってマッチングされます。
<2ex>~<8ex> <2>~<8>の拡張版です。フルネーム、イニシャルを問わずプレイヤーにマッチします。
正規表現とパーティメンバ代名詞の両方をONにしてください。

ex. パーティリストの2番目が Naoki Yoshida の例
(?<_2ex>Naoki Yoshida|Naoki Y\.|N\. Yoshida|N\. Y\.)
に置換わってマッチングされます。
<pc> パーティ内のいずれかのメンバにマッチします。
(<mex>|<nex>) と同様の動作になります。
正規表現をONにしてください。

ex. プレイヤーが Naoki Yoshida の例
(?<_pc>Naoki Yoshida|Taro Yamada|Jiro Sato|Saburo Suzuki)
に置換わってマッチングされます。
<petid> FF14が内部のオブジェクトに割当てている一意なIDに置換されます
このIDによってACTが生成している詳細なログにマッチさせると自分のペットだけを識別出来ます
<JOB>, <JOBn> パーティ内の特定のジョブの誰か、または特定のジョブのn番目のメンバーにマッチします。
フルネーム、イニシャルを問わずマッチします。
正規表現とパーティメンバ代名詞の両方をONにしてください。

ex. パーティメンバーが下記のとき・・・
Taro Paradin (ナイト)
Jiro Paradin (ナイト)

<PLD1> → Taro Paradin にマッチする
<PLD2> → Jiro Paradin にマッチする
<PLD> → Taro Paradin または Jiro Paradin にマッチする

<PLD1> は正規表現の (?<_PLD1>Taro Paladin|Taro P\.|~省略) に置換わってマッチングされます。
<PLD> は正規表現の (?<_PLD>Taro Paladin|Jiro Paladin|~省略) に置換わってマッチングされます。

<ROLE>, <ROLEn> パーティ内の特定のロールの誰かにマッチします。
フルネーム、イニシャルを問わずマッチします。
正規表現とパーティメンバ代名詞の両方をONにしてください。

ex. パーティメンバーが下記のとき・・・
Taro Yamada (ナイト)
Jiro Sato (戦士)
Sabro Suzuki (白魔道士)
Shiro Honda (学者)
Goro Toyota (モンク)
Rokuro Nissan (竜騎士)
Shichiro Mazda (吟遊詩人)
Hachiro Mitsuoka (黒魔道士)

<TANK> → Taro Yamada または Jiro Sato にマッチする
<TANK1> → 1番目のTANKである Taro Yamada にマッチする
<HEALER> → Sabro Suzuki または Sabro Suzuki にマッチする
<DPS> → Goro Toyota または Rokuro Nissan または Shichiro Mazda または Hachiro Mitsuoka にマッチする
<MELEE> → Goro Toyota または Rokuro Nissan にマッチする
<RANGE> → Shichiro Mazda にマッチする
<MAGIC> → Hachiro Mitsuoka にマッチする

<TANK> は正規表現の (?<_TANK>Taro Yamada|Jiro Sato) に置換わってマッチングされます。
<TANK1> は正規表現の (?<_TANK1>Taro Yamada) に置換わってマッチングされます。
ex.
<TANK> → (?<_TANK>Taro Yamada|Jiro Sato)
<TANK1> → (?<_TANK>Taro Yamada)
<HEALER> → (?<_HEALER>Sabro Suzuki|Sabro Suzuki)
<HEALER1> → (?<_HEALER>Sabro Suzuki)
<DPS> → (?<_DPS>Goro Toyota|Rokuro Nissan|Shichiro Mazda|Hachiro Mitsuoka)
<DPS1> → (?<_DPS>Goro Toyota)
<MELEE> → (?<_MELEE>Goro Toyota|Rokuro Nissan)
<RANGE> → (?<_RANGE>Shichiro Mazda)
<MAGIC> → (?<_MAGIC>Hachiro Mitsuoka)

各種プレースホルダの詳細はゲーム実行中に Infomation タブで確認出来ます。

<1>~<8> がゲームの順序と一致しない

resources\PCOrder.txt を編集して、ソート順を設定してください。

俺の歌を聞かせたい

resources\wav にwaveファイルを投入するとスペスペで使用できるようになります。

テキストコマンド

FF14の内部からテキストコマンドで一部の機能を制御できます。
/e コマンド
の書式でコマンドを発行してください。

例) 全てのスペルを無効にする
/e /spespe changeenabled spells all false

コマンド 説明
/spespe on スペスペのオーバーレイの表示を有効にする(スペスペボタンONと同様)
/spespe off スペスペのオーバーレイの表示を無効にする(スペスペボタンOFFと同様)
/spespe refresh spells スペルリストパネルを一度閉じてリフレッシュする
/spespe refresh telops テロップを一度閉じてリフレッシュする
/spespe refresh me プレイヤー名のキャッシュを更新する
/spespe refresh pt パーティメンバー名のキャッシュを更新する
/spespe refresh pet 自身のペットIDのキャッシュを更新する
/spespe changeenabled spells "サンプルパネル" true 指定したパネルのスペルを有効にする。falseで無効
/spespe changeenabled spells "サンプルスペル" true 指定したスペルを有効にする。falseで無効
/spespe changeenabled telops "サンプルテロップ" true 指定したテロップを有効にする。falseで無効
/spespe changeenabled spells all true 全てのスペルを有効にする。falseで無効
/spespe changeenabled telops all true 全てのテロップを有効にする。falseで無効
/spespe set placeholder "tag" 文字列 <tag>から文字列への置き換えを有効にする
/spespe clear placeholder "tag" <tag>による置換を無効にする
/spespe clear placeholder all 全ての置換を無効にする
/spespe log on 戦闘ログの記録を有効にする(offで無効にする)
/spespe log open 戦闘ログを開く
/spespe phonetic "{PCName}" "{Phonetic}" PC名にTTS向けの読み仮名を設定する
/spespe pos ログにプレイヤーの座標を出力する

ライセンス

三条項BSDライセンス
Copryright (c) 2014-2018, anoyetta
https://github.com/anoyetta/ACT.SpecialSpellTimer/blob/master/LICENSE

Special Thanks

・GB19xx様
https://github.com/GB19xx/ACT.TPMonitor
のFF14ヘルパークラスを流用させていただきました

・魔王魂様
http://maoudamashii.jokersounds.com/
音楽素材といったら魔王魂。
同梱されたwaveサウンドファイルの著作権は魔王魂に帰属します