戦闘アニメデータ
汎用戦闘アニメを使った戦闘アニメの表示方法を指定するデータです。animation.txt に記述します。また、戦闘アニメだけでなく、カットインや効果音、ディレイ、システムメッセージといったSRCでの特殊効果の全てを指定することが出来ます。
SRCはユニットが使用した武器に合わせて汎用戦闘アニメで用意されている戦闘アニメを自動選択して表示します。しかし、ユニットが持つ攻撃手段は多岐に渡るため、望むようなアニメ表示が行われない場合が多々あります。これを防ぐため、戦闘アニメデータを使って武器の使用時に表示する戦闘アニメーションを明示的に指定することが可能です。
戦闘アニメはVer.1.7以降でサポートされた新しい機能であるため、戦闘アニメデータが添付されたシナリオは限られています。戦闘アニメデータが指定されていないシナリオでも戦闘アニメを楽しめるようにするため、シナリオ側のDataフォルダ中に戦闘アニメデータファイルが存在しない場合は
SRC本体があるフォルダ\Data\System\animation.txt
を調べ、ファイルがあれば自動的に読み込むようになっています。ご活用ください。
汎用戦闘アニメは汎用データと一緒に提供されています。汎用戦闘アニメは戦闘アニメーション用の画像とイベントデータで記述されたサブルーチン集から構成されており、ユニットの戦闘アニメーションをマップ上で表示する機能を持っています。アニメーションがイベントデータを使って実現されているため、汎用戦闘アニメで提供されていないアニメーションを独自に作成することも可能です。汎用戦闘アニメ用サブルーチンは
SRC本体があるフォルダ\Lib\汎用戦闘アニメ
に格納されているので、戦闘アニメを自作する際はこちらを参考にすると良いでしょう。
書式
データ名称
シチュエーション, 特殊効果指定
シチュエーション・特殊効果指定の組の数に制限はありません。1パターンにつき1行ずつ記述してください。
各行が長くなりすぎた場合は途中で改行が可能です。この場合は行の末尾に「_」を付けて下さい。
「#」で始まる行はコメント行とみなされ、データ読み込みの際に存在しないものとして扱われます。また、「//」以降の文字列はコメント部分として無視されます。
例
主人公機
ブラックホールランチャー(準備), 粒子集中 黒
ブラックホールランチャー(攻撃), 画像前面発射 "Common_GravityBall01.bmp" - - 3
ブラックホールランチャー(命中), 重力圧縮;飛沫 黒
項目解説
(1)データ名称
戦闘アニメデータの対象を指定します。対象には以下のものが指定可能です。上のものほど戦闘アニメデータ検索の際の優先順位が高くなっています。
ユニット名称
ユニット愛称(を修正した文字列)
ユニットクラス
「汎用」
ユニット愛称を指定する場合は愛称から以下の文字列を削除して下さい(ユニットに様々なバリエーションが存在する際に一括して指定が出来るようにするための処理です)。
先頭の「~用」
先頭の「~型」
末尾の「(~)」
末尾の「改」
末尾の「カスタム」
例 アリス専用高機動型シルフィード改(Aモード) => シルフィード
ユニットクラスを指定する場合、専用指定や人間ユニットを表すための括弧は削除します。「汎用」を指定した場合、全てのユニットに対してそのデータが有効になります。
例 ユニットクラスが「(剣士(ロイ専用))」の場合、「剣士」を指定。
メッセージデータやダイアログデータと異なり、同じ対象に対して複数の戦闘アニメデータが定義されている場合、それらすべての戦闘アニメデータが有効になります。これは汎用的なユニットクラスの戦闘アニメデータを複数のデータファイルで記述できるようにするためです。
(2)シチュエーション
戦闘アニメが使用されるシチュエーションを指定したものです。
戦闘時のシチュエーション
武器名(準備)武器を使用する前(攻撃メッセージの直前)
武器名(攻撃)武器を使用する時(攻撃メッセージの直後)
武器名(反撃)武器を使用する時(反撃時)
武器名(命中)武器が命中した時
武器名準備、攻撃、命中のアニメを一括指定する
武器名(クリティカル)クリティカル(武器の特殊効果)が発生した時
武器名(とどめ)相手にとどめを刺した時
武器名(回避)指定した武器による攻撃が回避された時
武器名(切り払い)指定した武器による攻撃が切り払われた時
武器名(迎撃)指定した武器による攻撃が迎撃された時
武器名(阻止)指定した武器による攻撃が阻止された時
武器名(反射)指定した武器による攻撃が反射された時
武器名(攻撃無効化)指定した武器による攻撃がバリア等によって無効化された時
武器名(ダメージ表示)指定した武器による攻撃のダメージ表示時
本シチュエーションの特殊効果指定に「-」を指定するとダメージ表示が無効化できる
アビリティ名(準備)アビリティを使用する前
アビリティ名(使用)アビリティを使用した時
アビリティ名(発動)アビリティの効果がターゲットに適用された時
アビリティ名同上
回避ユニットが攻撃を回避した時
ダメージ小ユニットが小程度のダメージを受けた時(ダメージ小メッセージの直前)
ダメージ中ユニットが中程度のダメージを受けた時(ダメージ中メッセージの直前)
ダメージ大ユニットが甚大なダメージを受けた時(ダメージ大メッセージの直前)
破壊ユニットが破壊された時(破壊メッセージの直前)
脱出ユニットが破壊され、マップから取り除かれる時(脱出メッセージの直後)
射程外反撃可能な武器がない時
攻撃無効化バリア等で攻撃を無効化した時
ビーム無効化対ビーム用防御能力(対象がB属性の防御能力)でビーム攻撃を無効化した時
阻止阻止で攻撃を無効化した時
分身分身や超回避で攻撃を回避した時
緊急テレポート緊急テレポートで攻撃を回避した時
反射攻撃を反射した時
当て身技攻撃を当て身技で切り返した時
シールド防御シールドで攻撃を防御した時
バリア貫通ダメージ減少を伴わないバリアが貫通された時
バリア発動広域バリアを発動させた時
フィールド発動広域フィールドを発動させた時
プロテクション発動広域プロテクションを発動させた時
自動反撃自動反撃を発動させた時
追加攻撃追加攻撃を発動させた時
ダミーダミーを使って攻撃を回避した時
サポートアタック開始サポートアタックを開始した時
サポートアタック終了サポートアタックを終了した時
サポートガード開始サポートガードを開始した時(身代わり、かばうでも発動)
サポートガード終了サポートガードを終了した時(身代わり、かばうでも発動)
吹き飛ばし敵ユニットを吹き飛ばした時
非戦闘時のシチュエーション
変形(変形先名称)
変形(変形元名称=>変形先名称)
変形(変形の別名)
ハイパーモード(変形先名称)
ハイパーモード(変形元名称=>変形先名称)
ハイパーモード(ハイパーモードの別名)
ハイパーモード
ノーマルモード(変形先名称)
ノーマルモード(変形元名称=>変形先名称)
ノーマルモード
分離(分離元名称)
分離(分離の別名)
分離
破壊時分離(分離元名称)
破壊時分離(分離の別名)
破壊時分離
合体(合体後名称)
合体(合体の別名)
合体
テレポート
ジャンプ
チャージ
修理
補給
レベルアップ
特定の特殊能力を使った時にのみアニメを表示させたい場合は、シチュエーションの最後に「(特殊能力名)」を追加して下さい。
例 攻撃無効化(プロテクト・フィールド)
特殊効果データと同名のシチュエーションがある場合は戦闘アニメ表示が優先されます。また、メッセージデータのシチュエーションと同名のシチュエーションがある場合はメッセージ、戦闘アニメの順に表示されます。
(3)特殊効果指定
指定されたシチュエーションの際に表示する戦闘アニメやカットイン等の指定を行います。
戦闘アニメの表示を指定する場合は戦闘アニメ表示用サブルーチンとサブルーチンに渡す引数を指定します。指定可能な戦闘アニメの種類については汎用戦闘アニメ表示用インクルードファイルに添付されているドキュメントを参照して下さい。
SRC本体のあるフォルダ\Lib\汎用戦闘アニメ\*.txt
個々のサブルーチンに指定可能な引数についてもこのドキュメントに記述されています。
サブルーチンへの引数にはイベントデータ中で指定可能な任意の式を直接記述可能です。メッセージデータのメッセージ中に式を書く場合と異なり、式を「$()」でくくる必要はありません。
例 フェイスアップ Pilot()
ただし、メッセージデータの場合と同様に「$(式)」という形で式置換を使用することも可能です。この式置換の式評価は上記の引数評価と異なり、戦闘アニメの表示がマウスの右ボタンクリックでキャンセルされてもキャンセルされません。
「;」で項目を区切ることにより、複数の戦闘アニメを連続して表示することが可能です。例えば「重力圧縮;飛沫 黒」と指定すると「重力圧縮」のアニメを表示した後に「飛沫 黒」のアニメが表示されます。
特殊効果指定に「-」とだけ指定しておくと、その戦闘アニメが選択された際に戦闘アニメが表示されなくなります。戦闘アニメを表示させたくない場合に使ってください。
戦闘アニメで表示する画像ファイルの名称は EFFECT_ で始め(例 EFFECT_HolyLance.bmp)、
Bitmap\Anime\
のフォルダに格納しておくことをお勧めします。SRCはこのようなファイル名とフォルダの組み合わせの際に画像表示が最も高速に行えるように最適化がなされています。
特殊効果指定には戦闘アニメ以外にも以下の特殊効果が指定可能です。これらの特殊効果の引数は上のサブルーチン指定と異なり、式として評価されなので注意してください。式を使いたい場合は「$(式)」による式置換を使ってください。
カットイン
書式 ファイル名 幅 高さ X Y オプション
指定したファイルの画像をメインウィンドウに表示します。表示する画像ファイルの形式はビットマップファイル(.bmp)、JPEGファイル(.jpg)、GIFファイル(.gif)、PNGファイル(.png)が利用可能です。画像ファイルはBitmap\Cutinフォルダに格納しているものが使われますが、指定したファイルが見つからなかった場合は続いてBitmap\Eventフォルダ、Bitmap\Pilotフォルダ、Bitmap\Unitフォルダが検索されます。
ファイル名以外の引数は省略可能です。ただし幅と高さだけを省略することはできません。この場合はX,Yを指定したい場合は必ず幅と高さを指定して下さい。各引数を省略した場合、画像のサイズは元の画像のままになり、画面中央に表示されます。
例 Alice.bmp 128 128 だと画面中央に128×128の大きさで画像が表示される
オプションには透過等、PaintPictureコマンドで指定できるオプションが全て指定可能です。PaintPictureコマンドの解説を参照して下さい。なお、オプションを指定する場合は画像のサイズが4の倍数である必要があります。
カットイン描画による画面更新はメッセージ表示、もしくはディレイ実行時に行われます。ディレイ指定を行わず、連続してカットイン画像を指定すると最初の画像が表示されないので注意して下さい。
カットインの消去
書式 Clear
描画したカットインを消去します。戦闘アニメの表示が終わった際にカットインは自動的に消去されるので、消去指定は透過画像のカットインを切り換えるとき以外は必要ありません。
カットインの持続
書式 Keep
戦闘アニメの表示が終了しても描画したカットインが消去されないようにします。この指定は必ず特殊効果指定の最後に行ってください。
パイロット画像切り替え
書式 @ファイル名
指定したファイルの画像をメッセージウィンドウのパイロット画像画面に表示します。表示する画像ファイルの形式はビットマップファイル(.bmp)、JPEGファイル(.jpg)、GIFファイル(.gif)、PNGファイル(.png)が指定可能です。画像ファイルはPaintPictureコマンドの場合と同じ順序で各フォルダから検索されます。
例 @Alice.bmp
カットインアニメ
書式 カットイン及びパイロット画像切り替えと同一
カットイン及びパイロット画像切り替えの指定において、ファイル名を連番で指定することでアニメーションを簡単に行うことができます。
例 pic[01-04].bmp で pic01.bmp から pic04.bmp までの4枚の画像を連続描画
番号は必ず2桁で指定し、その間を「-」で結んで「[]」で囲ってください。ファイル名以外のオプションはそれぞれ通常のカットイン、パイロット画像切り替えの場合と同じです。
カットインアニメの表示に対してディレイが指定されている場合はアニメの描画全体にかかる時間がディレイの時間と等しくなります。ディレイが指定されなかった場合は待ち時間なしで連続で画像を切り替えます(PCによってアニメの表示時間が変わってしまうため、お勧めしません)。
効果音
書式 WAVEファイル名 or MP3ファイル名
指定したWAVEファイル(MP3ファイル)を再生します。WAVEファイル(MP3ファイル)はSoundフォルダに格納しておいてください。ファイル名に「Null.wav」を指定すると効果音の再生を停止する事が出来ます。
例 Sword.wav
ディレイ
書式 待ち時間
次のメッセージ、カットイン画像、効果音の表示の待ち時間を「指定した数値×0.1」秒に変更します。小数で指定することもできます。
待ち時間は必ず待ち時間を指定したいものの前に配置して下さい。
例 カットインCutin.jpgを0.3秒間表示するには「3;Cutin.jpg」
メッセージ
書式 「メッセージ」及び『メッセージ』
指定したメッセージを表示します。
例 『聖霊よ、我に癒しの力を…: ヒーリング!』
戦闘アニメデータでは戦闘アニメや上記の特殊効果だけでなく、戦闘時等に表示されるシステムメッセージの定義も可能です。「(解説)」を付けたシチュエーションを定義し、表示するメッセージを特殊効果指定の項目に記述してください。
例
奇妙な踊り(解説), $(ユニット)は奇妙な踊りを踊った!
システムメッセージにはメッセージデータのメッセージと同じ機能を使うことが出来ます(カットイン等)。
システムメッセージを定義可能なシチュエーションは以下のものに限られます。
武器名(解説)
攻撃(解説) 全ての武器による攻撃開始メッセージに適用される
武器名(命中)(解説)
アビリティ名(解説)
アビリティ(解説) 全てのアビリティによるアビリティ使用開始メッセージに適用される
回避(解説)
攻撃無効化(解説)
ビーム無効化(解説)
シールド防御(解説)
阻止(解説)
分身(解説)
反射(解説)
緊急テレポート(解説)
バリア発動(解説)
ダミー(解説)
復活(解説)
再生(解説)
浄化(解説)
分離(解説)
破壊時分離(解説)
破壊(解説)
※これから先の記述は汎用戦闘アニメを高度に活用しようという方や戦闘アニメ表示用サブルーチン自身を自作しようという方を対象にした物です。汎用戦闘アニメをそのまま使う場合は参考程度にご覧下さい。
戦闘アニメ指定の書式は次のようになっています。
書式
sub [parameter]
指定項目説明
sub呼び出される戦闘アニメ表示用サブルーチン名
parameterサブルーチンに渡される引数(省略可)
sub は指定されたシチュエーションの際に実行する戦闘アニメ表示用サブルーチンを表しますが、sub がそのまま呼び出されるサブルーチン名になる訳ではなく、実際には以下のような変換法則に基いて使用されるサブルーチン名が決定されます。
シチュエーションが武器名で、括弧指定有り
戦闘アニメ_sub括弧内容が呼び出されるサブルーチン名となります。
例えばシチュエーションが「光の剣(命中)」で、subが「斬撃」である場合、呼び出されるサブルーチン名は「戦闘アニメ_斬撃命中」となります。
シチュエーションが武器名で、括弧指定が無い
戦闘の段階に応じて戦闘アニメ_sub準備、戦闘アニメ_sub攻撃、戦闘アニメ_sub命中が呼び出されるサブルーチン名となります。
例えばシチュエーションが「氷の槍」で、subが「槍」である場合、呼び出されるサブルーチン名は「戦闘アニメ_槍準備」「戦闘アニメ_槍攻撃」「戦闘アニメ_槍命中」となります。
シチュエーションが武器名以外
戦闘アニメ_sub発動が呼び出されるサブルーチン名となります。
例えばシチュエーションが「癒しの歌」で、subが「音符」である場合、呼び出されるサブルーチン名は「戦闘アニメ_音符発動」となります。
これらの変換を無効化してsub に直接サブルーチン名を指定することもできます。この場合、サブルーチン名の前に「@」を付けて指定して下さい。
例 @戦闘アニメ_睡眠クリティカル
parameterはサブルーチンに渡される引数になります。parameterには式を指定することが可能です。
呼び出されたサブルーチン内では常に「対象ユニットID」が攻撃側ユニット、「相手ユニットID」が防御側ユニットを示します。アビリティの場合は「対象ユニットID」がアビリティを使用するユニット、「相手ユニットID」がそのターゲットになるユニットを示します。これ以外の非戦闘系のシチュエーションの場合、「対象ユニットID」と「相手ユニットID」が共に行動を行うユニットを示します。
サブルーチンの返り値はそのシチュエーションの戦闘アニメの表示後に画面をクリアするかどうかを指定するのに使われます。通常は自動的に画像が消去されるので、武器の準備画像を表示するときなど画像をそのまま表示したい場合は「Keep」を返してください。
例 Return "Keep"