妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

シーケンサーでスタティックメッシュを動かす方法

「AllRight Rigを使ってアニメーションを作るには、シーケンサーを経由しないとダメだということで、まずシーケンサーの動かし方を調査する」

妹「それもアニメーション関係のやつだっけ?」

「そうなんだけど、映像作品とか、ゲーム中のイベントシーンみたいなので使いそうなやつ。アクターを動かしたり、カメラを動かしたり。スケルタルメッシュのアニメーションも出来るけど、もともと存在するアニメーションを再生させるだけ」

f:id:una_unagi:20181022232102p:plain

「で、色々調査したけど、いまいちよくわからないこともあったので、一番簡単なところからやってみる。レベル上にあるなんの変哲もないスタティックメッシュを動かすというのをやってみる」

1・Level Sequenceを作る

f:id:una_unagi:20181022232116p:plain

まずLevel Sequence(レベルシーケンス)というのを作る。それを編集するのがシーケンサーだから、これがないと始まらない」

妹「そのレベルというのは、レベルブループリントのレベルなの?」

「そのレベル。レベルシーケンスはアセットだけど、基本的にレベルシーケンスとレベルは紐付いてるから、別のレベルにもっていってもそのままでは動かない。レベルの名前を変えた時もダメらしい。そのへんの話はこの記事に書いてあった」

chenjesu.seesaa.net

妹「他で使えないんだったら、最初からレベルブループリントみたいに、アセットじゃなくて中に入れとけばいいような」

「複数のレベルシーケンスを使い分けたり、レベルシーケンスの中に別のレベルシーケンスを入れたり、なんかそういうのをやるための仕組みらしい」

2・トラックの追加

f:id:una_unagi:20181022232126p:plain

「動かす物はすべて、トラックとして扱われてる。Actor To Sequencerで、動かす物、今回の場合は円柱のスタティックメッシュを追加すればいい」

妹「トラックってどういう意味?」

「それはよくわからない。音楽編集とかでも使われるから、UE4用語っていうよりは、編集関連の用語かなと思う」

f:id:una_unagi:20181022232133p:plain

「動かすのが1個とかなら手動で追加してもいいんだけど、AllRightRigの場合関節1つ1つがアクターなんで、これをいちいち手動で追加するのは現実的じゃない。というか絶対イヤだったのでもっとズルが出来る方法を探した結果、動かしたアクターを自動でトラックに追加できるという見つかった」

妹「ちゃんとあったんだ」

「一週間ぐらい探したら見つかった。ただ、いまいちわからないのが、エディタの環境設定からじゃないとAuto Trackに設定できないこと。ここを変えるとシーケンサーの鍵マークのとこも変わるから、ここが関係してるのは間違いないんだけど。ここを何回押してもAuto Trackはならない。これも何か方法がありそうだけど見つかってない」

3・キーフレームの追加

f:id:una_unagi:20181022232159p:plain

シーケンサーの仕組みはキーフレームアニメーションなので、適度な感覚でキーフレームを置いて、その間は自動的に補完して、なめらかにうごくようになる」

妹「キーフレームアニメーションというのは」

「3Dアニメはだいたいそうなんだけど、妹が知ってるやつでいえばSpriteStudioとかもそう。アクターを動かしても、それをキーフレームとして保存しておかないと意味がない。マウスでクリックしてもいいけど、ボタン小さいし、Enterキーで押すか、Trackの追加と同じで自動でやるのがいいと思う」

妹「線が出てるのが軌道かな」

「キーフレームのとこが少し大きい丸になってて、それがどういう風に補完されるかわかりやすいようになってる。補完方法に関しても設定できるはずだけど、それは今回はやってない。アニメーションの始めと終わりを決めて、とりあえず動いたというのがわかるレベルに」

「1つ注意が必要なのは、なにか動かす時は、動く前の位置もキーフレームとして作っておかないといけないということ。そうしないとゆっくり動かずに最初からそこにあった感じになっちゃうから。これはキーフレームアニメーション全般で注意しとかないといけないこと」

4・レベル上に配置

f:id:una_unagi:20181022232216p:plain

「これまでの操作はアセットを作っただけだから、これをレベルに配置しないと動かせない。普通のアセットと同じように配置できるけど、場所は関係ない。そして設定もできる。今回はAuto Playにしたから自動再生される」

妹「手動再生はどうやるの?」

「ブループリントでどうにかすれば出来るんだと思う。そのへんはまだ調べてないから、今日は自動で」

5・実行

f:id:una_unagi:20181022234756p:plain

「プレイボタンを押すと、円柱が適当に動きはじめる。無限ループ設定だから、終点までいくと最初の位置に瞬間移動して、また動き始める」

妹「これは当たり判定もあるのかな?」

「ある。体当たりして動きを止めようとしたけどダメだった。逆に押されるかんじ」

妹「再生中も動けるんだ」

「TPSテンプレートで作ってるから、普通にTPS操作で動かせる。円柱が動いてるだけの状態。だから動けなくして映像を見てもらうなら、動けないようにブループリントとかで設定しないとダメだと思う。あとシーケンサー用のカメラも設定しないといけない。ただ今回の主目的のアニメーション作りには不要」

6・シーケンサーを閉じる

シーケンサーで動くようにしたアクターには、元々の位置というのがある。シーケンサーでの初期位置とは関係なく」

妹「そもそも、レベルシーケンスを使わない場合もあるわけだよね。作るだけ作って」

「そういうこともある。だから元の位置というのは別にあって、レベルシーケンスを動かした時点でそこに瞬間移動する。ただシーケンサーのウィンドウを開いた状態だと、元の位置がよくわからなくなるので、使い終わったらこのウィンドウを閉じる。そうすると元の位置に戻る」

妹「シーケンサーを開いてる間に動かしたのは、全部リセットされるのかな?」

「そういうわけではなく、動かしたら動かした位置にいくんだけど……シーケンサーのタイムライン上でカーソルを動かすと、それに合わせてアクターが動く場合があって、それを元の位置に戻せる。このへんは何回かやって感覚をつかまないとむずかしそうな部分」