妹でもわかるUnrealEngine4

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

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

図解『Push-ups 60』の謎アニメーションの作り方

f:id:una_unagi:20170921223132p:plain

www.youtube.com

「腕立て伏せのゲームを作ろうと思って、とりあえずポーズまでは作ったけど、それをどうやって動かすのかというのが問題だった」

妹「普通にアニメーションとして作ったら駄目なの?」

「上手くいかなかった場合はそうするつもりだった。Mixamoに腕立て伏せのアニメーションがあったし。でもそれだといまいち笑いが取れない。なるべく意味不明で、かつギリギリ腕立て伏せのように見えるやつがいいと」

historia.co.jp

「最初はIK(インバースキネマティクス)というやつを試してみた。足が動くなら、肩も動くだろうから、肩を上下させればいい感じになるんじゃないかと。しかしこれは上手くいかなかった」

妹「どのへんが」

「それがよく覚えてないんだけどね……なんか上手くいきそうな感触がなかった。これはこれで再調査の必要があるんだけど。でもその時はあまり時間もなかったんで、他にもっとお手軽な方法がないかと思って、この記事にたどり着いた」

unrealengine.hatenablog.com

妹「物理アニメーション?」

「キャラクターの各パーツを物理で動かそうっていうの。ここで例に上がってる、壁に押されてるグレーマンを見て、じゃあ上からいい感じの壁で押して、戻してってやれば、腕立て伏せに見えるのでは? と考えた。グレーマンだから物理アセットもきっちり調整済みのがサンプルに入ってるし」

f:id:una_unagi:20170921230118p:plain
f:id:una_unagi:20170921230421p:plain

「これが最初の状態」

妹「押しすぎたの?」

「いやこれまだ押してない。押して無いけど重力に負けてる。まっすぐ立ってると足<身体<頭と支えてるからこんな風にはならないんだけど、ねそべってるとすぐ潰れちゃう。想定外。それで重力をオフにすればいいのでは? と思ってやったのがこれ」

f:id:una_unagi:20170921230854p:plain
f:id:una_unagi:20170921230753p:plain

「重力を切るとたしかに潰れなくはなるんだけど、宇宙遊泳状態になって、手足も地面から離れてしまった。一応押せば動くけど、これはもう腕立て伏せでもなんでもないなと。ただ浮いてる人を押しつぶしてるだけだな、という状態になった」

妹「重力ないから浮くっていうのはわかるけど、なんで腕まで広がっちゃうんだろ?」

「ポーズつけた時に肩のあたりに無理な力がかかってて、その窮屈さを物理エンジンが解消させようとしたのかも。重力がないから妨害もゼロだし。全体の重力のオンオフはスケルタルメッシュの詳細から設定できる。物理アセットの方で個別のオンオフもできるけど、オンにした部分が潰れるだけで何もいいことはなかった」

f:id:una_unagi:20170921231642p:plain
f:id:una_unagi:20170921231652p:plain

「そしてこれが最終形態。まずは最初のと同じで、root以下を全部物理で動く設定にして、その後両手と両足の、先の部分だけ物理で動かない設定に戻した。手足もどのボーンを固定するかで微妙に動きが変わるから、試行錯誤したけど、今回はこれが一番良さそうだという判断」

妹「重力は?」

「重力はオフ。だから普通なら手足が浮き上がるけど、物理オフだからそこは動かない。そして身体は潰れない。押された時だけ動く。完璧」

f:id:una_unagi:20170921232209p:plain

「物理設定をするボーンが、pelvisじゃなくrootになってるのも理由があって、pelvisだとこうなったから」

妹「腰が……」

f:id:una_unagi:20170921232604p:plain

「rootにしてても実は微妙おかしいんだけど、そんなに目立つカメラ角度じゃないし、レーマンだからたぶん大丈夫。そもそも指が地面にめりこんでるとか他にも色々問題はあるから、これはもう許容範囲内だって割り切った」

妹「そういう割り切りは大事なのかもしれない」

f:id:una_unagi:20170921232746p:plain

「もう1個NGシーンのやつ。押してるブロックが上に戻っても、なかなか姿勢が戻ってくれなくて、姿勢を戻したいときに一時的に首の物理をオフにしたらいいんじゃないか? と思って試した、首がびよーん事件のやつ」

妹「物理をオフにしたら伸びるってどういう理屈なんだろ?」

「イメージとしては胴体ふにゃふにゃで、首だけ硬くなるって感じのつもりだけど、実際は全身が物理挙動してない場合の位置に固定されるみたい。手足は他の動きに関係なく地面につけておくから物理オフでいいけど、首は胴の物理アニメーションの影響が避けられないから、この方法では上手くいかなかった」

妹「なんかすっごい大変だね」

「何かに応用できそうな気もするけど、姿勢によって色々調整しないといけないから大変そう」