妹でもわかるUnrealEngine4

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

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

AllRight Rig 2.0の動作確認(2) 手足の伸びと、リグの選択ミスについて

imoue.hatenablog.com

「思ったとおりに動かなくて調査が難航してたんだけど、だいぶ動かし方がわかってきた」

f:id:una_unagi:20181010002751p:plain

だいぶ動かし方をわかられた状態のグレーマン

f:id:una_unagi:20181010002805p:plain

実行時にはリグの表示消えるけど、存在はしてるっぽい

手足を伸ばすかどうか

f:id:una_unagi:20181010002928p:plain
Allow Streching = true

f:id:una_unagi:20181010002935p:plain
Allow Streching = false

「デフォルトだと手足の部分にはインバースキネマティクス(IK)が設定されてるから、手首を動かすと、肩や肘も適当な位置に移動してくれるようになってる」

妹「IKじゃないとどうなるの?」

「肩と肘と腕と、それぞれを回転させて、いい感じの場所になるまで試すしかなくなる。例えばドアノブをつかむアニメを作りたい時に、ドアノブのとこに手を置けばいいのと、ドアノブのとこに手がいくように肩や肘を動かすのとでは難易度が違う。ただ、その位置が手の届く範囲なら肘を曲げればいいけど、手の届かないところが指定された時が問題。で、デフォルトだと上の写真のように腕が伸びてしまった」

妹「伸びなくもできるんだ」

「設定を変えると、手が届く範囲ギリギリまでは伸ばして、あとは諦めるようになる。これは両手足それぞれに対応するアクターのプロパティで設定できる」

妹「デフォルトで伸びなくしとけばよかったんでは? 勝手に伸びられても困るし」

「それは用途にもよるし、アニメーションを派手に見せるためには一瞬手が伸びるぐらいで丁度よかったりもするから。そのへんは必要に応じて」

リグちゃんと選択できてない問題

f:id:una_unagi:20181010003840p:plain

「色々試してて、ちゃんと動くはずなのに動かないことがあって、その原因がこれだった。リグ自体は動かずに、そこにくっついてる目印のメッシュだけ動いてた」

妹「見た目じゃわかんないね」

「なんかダブルクリックすると個別のコンポーネントを選択しちゃうみたいで、密集したリグの中から目的のを選ぼうとしてる時に、ダブルクリックに近い操作になってしまうみたい。こういうことがあるとわかってれば、ちゃんと動かない時点でチェックできるし、ズレてもトランスフォームを0に戻せば大丈夫なんだけど」

妹「最初から選択できなくしてあればいいのでは?」

「アクターは動かしても、コンポーネント自体は動かしたくないってケースは他にもありそうなんだけど、今の所それができる方法は見つからなかった」

AllRight Rig 2.0の動作確認

「AllRightRigがマーケットプレイスにでないな……と思ってたら出たので、買ってきた」

www.unrealengine.com
youtu.be

妹「これは結局骨入れられるの?」

「いや結局骨は入れられない。けど、骨入れるのと動かすのと、両方ともややこしい問題で、どちらかというと動かす方がネックだった。UE4の中でまともにポーズとらせたりアニメーションさせる方法がなかったから」

妹「すばやく動かして録画するやつね」

「あれはつらいので兄としてはやりたくないし、それにBlenderで作ったのも問題があった」

www.youtube.com

妹「なつかしいものがでてきた」

「この時はBlenderでアニメーションも作ったんだよ。で、エビフライの動きはテキトーで、ピチピチさせとけばいいんだけど、猫の方は問題で、ちゃんと当たるように手を出さないといけないといけないのが難点で。微調整のたびにBlenderで動かして、UE4に入れて、やっぱりなんかズレてるというのを繰り返して」

妹「それで当たるようになったんだ」

「いやそれでも当たらなかったというか、見た目と当たり判定の両立が上手くいかなくて、UE4側で猫本体ごと移動させる処理を入れたりしたんだけど。UE4で調整すればその問題は発生しない」

f:id:una_unagi:20181005221923p:plain
f:id:una_unagi:20181005221928p:plain

「まずはインストール。プロジェクトじゃなくエンジン本体にインストールするタイプのやつだった。プラグインを有効にすれば使えるようになる。要らない時は無効にする」

http://alexallright.com/allrightrig/doc/

「あとは説明書をみながらやる。基本的にはアニメーションブループリントを作って、リグを設定して、動かす」

妹「リグというのは?」

「骨を動かす仕組みというか。手首を動かすと肘も曲がるとか、そういう骨同士の連動の仕方みたいな? 自分で設定してもいいんだけど、サンプルデータにも色々入ってて、グレーマン用のもある」

f:id:una_unagi:20181005224624p:plain
f:id:una_unagi:20181005224631p:plain
アニメーションブループリントはよくわからないのでドキュメント通りに作る

f:id:una_unagi:20181005224933p:plain
f:id:una_unagi:20181005224953p:plain
レベル上にスケルタルメッシュを置いて、選択した状態にして、RigToolsの画面を開く
アニメーションブループリントとリグを設定してからRigボタンを押せばいいけど
設定するのが面倒なのでサンプルから流用する

f:id:una_unagi:20181005224717p:plain
RigのデータはSaveGamesフォルダの中にできる
なので、サンプルのSaveGamesから丁度いいリグを持ってくることが出来る
自分が作った場合も同じ用に流用可能
レーマン用はManRig.savなので、これを自分のプロジェクトのSaveGamesにコピーした

f:id:una_unagi:20181005225119p:plain
ManRigをLoadしてからRigボタンを押す

f:id:una_unagi:20181005225128p:plain
適当に動かす

「一応ここまではできた。ちゃんとUE4の中でグレーマンを動かせてる。各関節を普通のアクターと同じ用に動かすことで動く」

妹「アニメーションも作れるの? 飛んだり歩いたり」

「それもできるはず。ただシーケンサーを使うみたいなんで、まずシーケンサーの使い方を調べる必要がある」

ボクセルでキャラクターをモデリング

f:id:una_unagi:20181001215301p:plain

「ボクセルの背景はなんとかなりそうだから、キャラクターも作ってみた。MagicaVoxelで、関節部分はわざとつなげてない」

妹「関節ないの?」

「ない。ボクセルでそこくっつけると、どうやってもヒビ入っちゃうから。ない方がよさそうな気がする。あんまりリアルに作ると気になるけど、デフォルメすればそんなもんだという気持ちになるんじゃないかな。ファミコンのドット絵と同じで。あとは足や手は左右同じのを反転させてる。リファレンスのコピーという機能で、中身が同じオブジェクトをたくさん作れるから」

妹「中身が同じだったら左右で同じになっちゃうのでは」

「そのオブジェクトの中身は一緒だけど、オブジェクトを回転させるというのはそれとは別だから。UE4のアクターとかと一緒だね」

妹「これどうやって動かすの?」

「そこが問題で。UE4用のAllRightRigはまだマーケットプレイスにでてこないし……それがあったとしても骨自体は先に入れとかないといけないのかもしれないけど。どういう方法があるか今から考える……」