2018年10月21日

私は君の座標を変更した覚えはないぞ

今回はUE4の話題を。
前回シーケンサーについて触れたのですが、今回もそのことについて書こうかと思います。なにしろこの機能、普通に高機能なアニメーションツールと同等の能力を持っているため非常に奥が深く、ある意味で分かりにくいのです。
なのであくまで私が触ってて理解した事のみになりますが、幾つか汎用性の高い情報もあると思うので、今回改めてまとめようと思った次第です。
ちなみに使用しているバージョンは4.20です。


アニメーションのブレンド
スケルタルメッシュのアクタをシーケンサに配置して、該当するアニメーションを追加すると、紫のバーが追加されます。これがアニメーションファイルです。
複数のアニメーションをシームレスに繋げたい時は、別になにかする必要も無く、同じトラックに配置して単純にバーを重ねるだけ。お手軽。
ks_sequencer2_1.jpg


アニメーションの再生速度・分割
各アニメーションの再生速度を変えたいときは任意のアニメーションバーを選択して右クリックしてプロパティを出すと、Play Rateという項目があるので、そこを変更すれば再生速度を変えられます。
ちなみにシーケンサー全体のアニメーション速度を変えたいなら、シーケンサーファイル自体の詳細プロパティにもPlay Rateの項目があるのでそこをいじればOK。

さらにアニメーションを分割させたければ、分けたい箇所に再生カーソルを持ってきて、右クリックで編集を選ぶと「分割」という項目が出てくるので、これでアニメーションを分けることが出来ます。
再生開始位置を微調整したいなら、プロパティにStart Offsetという項目があるので、ここで時間を指定すれば、その箇所からアニメーションが再生されます。(分割したなら、Start Offsetの値が0以外の数値になってるハズ。ここをいじれば微調整が可能って事です。)
ks_sequencer2_2.jpg


パーティクルの再生・親子付け
パーティクルの再生管理もシーケンサーで可能です。パーティクルをシーケンサーの中の再生リストに含めるには、コンテンツフォルダから直接シーケンサーにドラッグ&ドロップします。
物自体は0座標にあるので、任意の箇所まで持ってくるか、他のアクタに親子付けします。
親子付けは簡単で、パーティクルのリストにある「+トラック」をクリックすると(左上にある緑のTrackというやつではない)親子付けというのが出るので、任意のアクタを選択するだけ。そうすると、黄色のバーが追加され、その範囲内の時のみ親子関係になる仕組みです。
親子付けすると、その瞬間にアクタの位置がずれたりするので、その前後でトランスフォームを微調整する必要が多々出てくるかも。
ks_sequencer2_3.jpg

ただこのままでは再生しないので、再生位置を指定します。やはりトラック内にある「+トラック」をクリックすると、パーティクルトグルトラックというのが出るのでクリックします。
パーティクルシステムというトラックが出来るので、任意の箇所にキーを打ち込むと、白いバーが出来ます。そこで再生されることになります。
ちなみにデフォでActivateになってますが、白いバーの途中の位置でDeactivateにすると、その位置から以降が消えます。
まあこんなことしなくてもバーを伸縮させれば同じことなんですが。
ks_sequencer2_4.jpg


アクタの表示・非表示
アニメーション再生中のどこかでアクタを非表示にさせたい、あるいは途中から出したい、という場合は、トラック内にある該当するアクタの「+トラック」でActor Hidden In Gameを選択すると、可視性というトラックが追加されます。
ここで任意の箇所にキーを打ち、そこで右クリックしてプロパティを出すと、Valueというチェックがあるので、ここのチェックを外すとそれ以降が非表示になります。逆にチェックを入れれば表示されるわけです。なので再生中に何度も表示非表示を切り替えたりも出来ます。
ks_sequencer2_5.jpg

ただしこれは瞬時に切り替えるものなので、徐々に非表示にするとかいう機能は無い模様。
そういうことをしたければマテリアルの方をいじる必要がありそうですね。
マテリアルの変更もシーケンサーで管理できるはずですが、こちらは左上の緑の+Trackアイコンで出てくる「マテリアルパラメータコレクショントラック」というものを使えばできたはず。
その前に、該当するマテリアルのパラメータ値が設定された「マテリアルパラメータコレクション」というファイルを作っておく必要があるのですが、まだ私はあまり詳しくないです。

また、パーティクルの時でもやった、アウトライナ上のアクタを持ってくるのではなく、コンテンツフォルダから直接アクタを持ってくると、Spawnedというトラックが出来るのですが、これを同じようにいじることによって表示非表示と同じ効果が得られるはず。
Spawnedトラックがあるアクタは、シーケンサーによるアニメーション再生が終わると自動的にレベル上から消えてしまうので、再生後はいなくなって欲しいという場合はこれで解決します。
後からでもSpawnedトラックは追加可能で、シーケンサー内の該当のアクタリスト上で右クリックすると、Spawnableに変換というのが出てくるのでそれをクリック。
ks_sequencer2_6.jpg


レベルを別名で保存すると、シーケンサーのアクタがリンク切れになる
これ、別名で保存すると、アクタの名前は同じでも、結局別レベルになることで中のIDは別になるので、違うアクタと判別されてしまうからなんですよね。つまり一つのシーケンサーで複数のレベルをまたいで管理することは出来ない訳で。
リンク切れを起こしてしまったら、一個一個「アクタの割り当て」で手動で当てなおすことも出来ますが、シーケンサーの上の方にある目のアイコン(一般設定)を右クリックすると、「アクタリファレンスを修正」というのがあるので、これを実行すると、この件で起きたリンク切れを一瞬で治すことが可能です。
万が一それでも治らなかったら、一個一個当てなおすしかないんですけどね・・・・。
ks_sequencer2_7.jpg


アクタを回転すると変な挙動になる
シーケンサーで回転アニメーションを付けようとすると、謎の意図しない変な回転挙動になることがあります。
これ、なんでこんなことになるかと言うと、例えばY軸回転させただけなのに、トランスフォーム値を見てみると、動かしてないはずのXZ軸まで値が変更されてたりすることがあるんです。これ、UE4上の仕様なんですよね。
なのでどうにもならないため、もし回転して動かしているときに、トランスフォーム値(黄色で囲んだ箇所)が動かしてない軸まで変更された場合、アクタを動かして回転させるのをやめて、トランスフォーム値に直接数字を入力してしてやるしかないです。(黄色で囲んだ値に直接書き込める)

また、360度以上回転させたりすると、これもまた変な挙動になることがあるので、90、180度毎に刻むみたいな処置が必要になるかもです。
刻むとキー毎に自動で動きの強弱がついてしまうので、シームレスにつなぐために間のキーを「リニア」で繋ぐと良いでしょう。
ks_sequencer2_8.jpg


というあたりで今回はこの辺で。
非常にマニアックな話題ですが、これでも全然シーケンサーの一部の機能を紹介しただけなんですよね。私も分からないことだらけなので、他になにか理解できたことが貯まってきたら、またここで紹介しようと思います。




web拍手 by FC2
posted by KS(Koumei Satou) at 21:53 | Comment(0) | UE4 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。