TRLE Level BOX
This Site is an unofficial site by TRLE fan.

TRLE講座

■カスタムオブジェクト作成(その4)

ここではカスタムアニメーション作成について書いています。
前項を理解した上での解説ですので、説明が分からない部分は前項を参照してください。

ここまでは静的オブジェクト、動的オブジェクトの違いがありましたが、動きのないオブジェクトについて説明してきました。
ここからは動きのある(動きをつける)オブジェクトについて説明していきます。
その前に説明上必要な用語を解説しておきます。

アニメーションを作成する上で必要な用語集

■FrameRate
アニメーションの表示速度。数値が大きいほど遅くなる。
■StateID
ゲームエンジンがアニメーションの表示を切り替える際に認識する値。
同じStateIDでもオブジェクトにより動作が異なる。
ちなみのララオブジェクトでStateID「89」はキー入力を無効にする。
私もよく理解していないので、変更はしない方が良いでしょう。
■Next Animation
表示されているアニメーションが終了した後に表示されるアニメーションの値。
例:
Animation0のNext Animationが1ならば、Animation0のアニメーションが終了するとAnimation1が表示されます。
Animation0のNext Animationを0にすると、Animation0がループして表示されます。
■Speed
全体のアニメーションを動かすために使用されます。
歩くアニメーションでは15。走るアニメーションでは47といった具合です。
それ以外で使用されている場合は良く分かりません。
ANIMATINGオブジェクトはSpeed値に対応していないようです。
Speed値の設定されているANIMATINGオブジェクトをトリガした状態でデータをセーブし、そのセーブデータをロードするとトリガしたはずのアニメーションが最初から繰り返されます。
面倒でもANIMATINGオブジェクトはフレームごとに移動させてください。
フライバイカメラのHEAYVトリガでトリガするとうまくいく場合もあります。
■Accel
アニメーションを半歩進めたり、後退させたりするのに使われているようですが、私もよく理解していないので、変更はしない方が良いでしょう。
■Next Frame
表示されているアニメーションが終了した後に表示されるアニメーションのフレーム数。
例:
Animation0のNext Animationが1で、Next Frameが0ならば、Animation0のアニメーションが終了するとAnimation1のフレーム0から表示が開始します。
Animation0のNext Animationが1で、Next Frameが10ならば、Animation0のアニメーションが終了するとAnimation1のフレーム10から表示が開始します。
■アニメーション番号
Animation0、Animation1、のこと。
■フレーム
パラパラ漫画でいう所の1枚の静止画のこと。
1枚の静止画を少しずつ動かすことでアニメーションにしてゆくのと同じように、TRでもフレームを少しずつ動かすことでアニメーションにしています。
■AnimCommands
オブジェクトを動かしたり、音を演奏したり、効果を加えたりするコマンドのこと。
ANIMATINGオブジェクトはAnimComanndsのSet Positionに対応していないようです。
Set Positionの設定されているANIMATINGオブジェクトをトリガした状態でデータをセーブし、そのセーブデータをロードするとトリガしたアニメーションの位置が再度変更されます。
面倒でもANIMATINGオブジェクトはフレームごとに移動させてください。
■Status Change Editor
一つのアニメーションから複数のアニメーションに表示を分岐させたい時に使用します。
通常アニメーションは表示が終了するとNext Animationの値とNext Frameの値にしたがって次のアニメーションを表示(またはループ)させますが、一つのアニメーションから複数のアニメーションに表示を分岐させたい場合があります。
(ララが立っている状態から走っている状態のアニメーションや歩いているアニメーションに分岐させたいなど。)
そういった場合にStatus Change Editorを使用します。
ここでは、チュートリアルレベルのDOOR_TYPE4を例にとって説明します。
  1. StateIDが変更されるまで同一アニメ「Animation0」が呼ばれる。
    (閉ったドアのアニメが表示されつづける。)
  2. ドアがトリガされてドアのStateIDが「1」に変化したとします。
  3. Animation0のNextAnimationは「0」なのでループするはずですが、Status Change Editorで設定されています。
    (フレームに青いバーがついているのがその証。)
    trle705_01.jpg
    するとゲームエンジンはStatus Change Editorの設定を優先するので、変化したStateID「1」に対応するアニメ「Animation2」を呼びます。
    (ドアの開くアニメが表示。)
  4. Animation2のNextAnimationは「1」ですし、Status Change Editorの設定もないので
    (フレームはすべて灰色。)
    「Animation1」が呼ばれる。
  5. StateIDが変更されるまで同一アニメ「Animation1」が呼ばれる。
    (開いたドアのアニメが表示されつづける。)
といった具合です。
同じ様なことがWADMergerのAnimationEditorのマニュアル
「3.2 - Basics of the state changes」
「3.3 - Setting up state changes」にも書かれています。