妹でもわかるUnrealEngine4

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

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

UE4.18 preview版でWebAssembly出力が復活

forums.unrealengine.com

f:id:una_unagi:20170922235545p:plain

「4.18のプレビュー版が出てたんだけど、WebAssemblyが復活してた」

妹「いいやつだけどなんか途中でなくなったというやつだっけ」

「プレビュー版では使えたのに、正式版からは隠し機能扱いで、ランチャーからダウンロードした版では使えなくなってたやつ。ゲームの容量が小さく、動作も速くなる」

f:id:una_unagi:20170922234408p:plain

「それまで使ってたASM.js出力機能は完全に削除されたから、切り替えるチェックボックス自体が消えてなくなった」

妹「それはそれで困るのでは」

「実際いくつかのブラウザで動かなくはなる」

f:id:una_unagi:20170922235843p:plain

「こういう表示になる。だからってわざわざ遅くて大容量のバージョンを使う人はいそうもないから。動かない人は新しいブラウザ使ってくださいってことで、バッサリ削除した方がわかりやすくていいと思う」

妹「ほかには?」

「妹がつかいそうなのはあんまりないけど。色んな言語に対応したバージョンを作る用に、プレビューの時に言語指定できるやつとか。布の物理シミュレーション関連もいくつか追加があるみたい」

図解『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シーンのやつ。押してるブロックが上に戻っても、なかなか姿勢が戻ってくれなくて、姿勢を戻したいときに一時的に首の物理をオフにしたらいいんじゃないか? と思って試した、首がびよーん事件のやつ」

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

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

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

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

第8回UE4ぷちコンで参加賞を受賞!

「さっき発表の生放送みてきたんだけど、残念ながら……」

www.youtube.com

www.youtube.com

妹「やっぱ駄目か。今回はしかたないね。記憶を取り戻しつつ、Tシャツを貰うのが主目的だったから。っていうか108作品とか多い」

水滸伝の魔星でも集まったんですかね」

妹「わたしは幻想水滸伝のしか知らないけど」

「今回は参加賞がTシャツに加えて、スポンサーから全員にUSBメモリが贈られるらしい」

妹「それはご親切な。でもそれって108作品とか想定外だったのでは……」

「前回の倍ぐらいだからね」

妹「ところでノミネートされたやつ以外も紹介されたの?」

「惜しかったで賞的なのがいくつか。なぜか兄の動画も流れてたね」

妹「え、そうなの? わたしのは?」

「まあ、その」

妹「……」

「アニメーションの謎度が高かった分興味をひいたんじゃないかと思う。あれなんで動いてるのか本当に謎だから」

妹「物理で動くようにして、ブロックで上下に押してたのでは?」

「そうなんだけど、最初の設計だと全然思ったように動かなくて、おかしなことを色々試したら結果的にああなったというか」

妹「コワイ」

「一応作り方についても書くつもりだけど、これが腕立て伏せを作る以外に役立つかどうか疑問が」