妹でもわかるUnrealEngine4

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

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

今月だけ無料になってる『POLYGON - City Pack』を使ってみる

www.unrealengine.com

「今月からUE4の無料アセットが増えたらしい」

妹「UE4作ってる会社が作ってたゲームのやつ?」

「今回のはEpic Gamesが作ったアセットではなくて、アセットストアで売ってるやつを期間限定で無料したのが5つと、ずっと無料にしたのもある」

妹「ぷちコンとかでも使っていいやつなのかな」

「説明を見る感じだと普通に買った場合と同じ扱いだから、コンテストに応募しようが、ゲームを売り出そうが問題はないはず」

妹「でも期間限定だったら、期間すぎたら有料になるんでは?」

「有料になるけど、無料のうちに買った人は、そのあともずっと買ったのと同じ扱いになる。割引セールみたいなもので、100%OFFになってるというか」

妹「でもそれじゃあセット作ってる人は大損なのでは」

「それは色々あるんじゃないかな。たぶんマーケットプレイスと特別な契約をして、ゼロ円ってことはないと思う。他にも興味ある人は連絡してって書いてあったから、条件が折り合ったところで参加するみたいな」

www.unrealengine.com

f:id:una_unagi:20181103003137p:plain
www.youtube.com

「とうぜん無料になった分は全部購入してあるんだけど、まずダウンロードしてみたのがこのPolygon-city-packというやつ」

妹「カクカクしてるね。ボクセル……ともちょっと違うような」

「ポリゴン数少なめの、ローポリゴンのモデルなんだけど、単純にポリゴン数を減らすんじゃなくて、わざと角ばったところを残したりしてるから。ボクセルに近い雰囲気の画風……こういうのを画風っていうのかわからないけど。容量も少ないからすぐダウンロードできる。モチーフは現代風の都市」

妹「ファンタジーとかじゃないね。こういうのは今までの無料アセットにはなかった気がする」

「MOTHERとかシムシティみたいなゲームとかに合いそう」

f:id:una_unagi:20181103010725p:plain
f:id:una_unagi:20181103010738p:plain

「遠景はこんな感じのハリボテが、周囲をぐるっと取り囲んでる。通常はここまでカメラがよる前に別のマップにワープさせるとかするんだろうけど」

「こういうアセットで気になるのは、決まったバリエーションのマップしか作れないのは困るなってことなんだけど、このアセットはその点も考えてある。まず建物自体がパーツ化されてて、これを積み上げて建物を作る形になってる。だから組み合わせ方や積み上げる高さで、建物のバリエーションを作りやすい。サンプルのマップで組み方もわかるし」

f:id:una_unagi:20181103011158p:plain
f:id:una_unagi:20181103011204p:plain

「そしてマテリアル変更によるバリエーションもある。これはエミッシブにしてるからだいぶ変わるけど、もっと微妙な違いも出せる。あんまり違いすぎると不自然になって使いにくいから、微妙なバリエーションを出せるのは大事。UV展開がシンプルだから自分でテクスチャを塗りかえるのもむずかしくない」

妹「これ普通はいくらぐらいするんだろ?」

「他のアセットを見るかぎり、何千円かはするやつだと思う」

妹「他のもあるんだ」

ヴァイキング風とか日本風とか色々。こうやって無料のを使ってみると、使い方わかるし、他のもだいたいこういう感じで作ってあるんだろうなと想像できるから、アセットが足りないなって時に買いやすくなる。そういう相乗効果も狙ってるんだと思う」

AllRight Rig 2.0の動作確認(3) キックモーション

f:id:una_unagi:20181027220245g:plain

imoue.hatenablog.com

「苦労の末に、ようやく自作モーションが作れた」

妹「……これは何のモーションなの?」

「見ればわかるでしょ。キック、キック」

妹「そんなキックする人っているかな」

「えー、ファミコンのゲームだとよくあったでしょ」

妹「ファミコン……」

「よく考えてみるとキャラに動きをつけるのは苦手だった。実際問題として、ちゃんとした動きにするなら既存モーションを元に修正するとかした方がいいと思うんだけど、今回は1から動かす感じで試しに」

f:id:una_unagi:20181027220707p:plain
空のレベルシーケンスを作る

f:id:una_unagi:20181027220717p:plain
適当にキーフレームを設定して、関節のリグを動かす

f:id:una_unagi:20181027220731p:plain
Bake To Anim Assetで、アニメーションとして保存

imoue.hatenablog.com

「動かす時の基本的なやり方はこの記事に書いたのと同じ。で、最後にアニメーションとして保存する。こうするとレベルシーケンスとは関係なく普通のアニメーションアセットとして使えるようになる。レベルシーケンスは削除してもいい」

妹「アニメーション作るためにシーケンサー使ってるだけってこと?」

「今回の用途だとそう。AllRight Rig自体はアニメーションエディタをもってないから、編集にシーケンサーの仕組みを使ってる。逆に普通のアニメーションをシーケンサーにもってきて、修正して、それをまたアニメーションに保存ということもできるらしい。既存モーションを元にするならそういうやり方になる」

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

「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・シーケンサーを閉じる

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

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

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

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

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