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を例にとって説明します。
-
StateIDが変更されるまで同一アニメ「Animation0」が呼ばれる。
(閉ったドアのアニメが表示されつづける。) - ドアがトリガされてドアのStateIDが「1」に変化したとします。
- Animation0のNextAnimationは「0」なのでループするはずですが、Status Change Editorで設定されています。
(フレームに青いバーがついているのがその証。)
するとゲームエンジンはStatus Change Editorの設定を優先するので、変化したStateID「1」に対応するアニメ「Animation2」を呼びます。
(ドアの開くアニメが表示。) - Animation2のNextAnimationは「1」ですし、Status Change Editorの設定もないので
(フレームはすべて灰色。)
「Animation1」が呼ばれる。 - StateIDが変更されるまで同一アニメ「Animation1」が呼ばれる。
(開いたドアのアニメが表示されつづける。)
同じ様なことがWADMergerのAnimationEditorのマニュアル
「3.2 - Basics of the state changes」
「3.3 - Setting up state changes」にも書かれています。 -
StateIDが変更されるまで同一アニメ「Animation0」が呼ばれる。