UE4ゲーム制作入門八日目
一人UE4ゲーム制作入門アドベントカレンダー八日目です。
今日はプレイヤーが死ぬ処理を作りましょう。
死亡アニメーションをつくる
クマとかは死亡時のアニメーションを初めから持っていますが、グレーマンは持っていません(僕の把握してる限り
なので、今回は物理アセットアニメーションを使って、死亡時の動きを作ります。
グレーマンは初めから物理アセットアニメーションを持っているので、今回はそれを使います。あと、クマはとりあえずは邪魔なので消しておきましょう。
ステージをスタティックメッシュにする
ラグドールにすると、ジオメトリのままだとすり抜けるので、地面をスタティックメッシュにして、コリジョンを適用します。
この時、僕の作ったマップではコリジョンの適用が大変なことになって色々修正する羽目になったので皆さんも気をつけてください。
やり方は、Ctrlキーを押しながらクリックして複数選択した後スタティックメッシュ化して、その後、メッシュのウィンドウでコリジョンを適用します。単純な形ならBox、複雑ならば上のCollisionタブからAddConvexCollisionを選びます。すると右下にConvexDecompositionタブが出て来るので、そこの値をいじってApplyすることで複雑な形のCollisionを作ることができます。
Accuracyは正確さで、MaxHullVertsはコリジョン メッシュが持つ頂点数を増加、減少させます。これらを増やすと、より複雑なコリジョンメッシュになります。
作った後に気づいたことですが、できるだけ単純な形で分割してスタティックメッシュ化しましょう。あとで無理やりコリジョンメッシュを移動させたり、大きくしたりして対応する必要がでて、とても面倒です。
物理アセットアニメーションを再生する
ステージが終わったら、本題の物理アセットを適用します。まず、きちんと物理アセットが適用されているかを確認します。僕と同じマネキンを使っていたら初めから適用されているはずですが、確認はしておきましょう。
スケルタルメッシュのこの画面で左の詳細ウィンドウのスクロールを一番下に行ったところにある赤丸の部分を確認しましょう。
今回クマには攻撃やダメージ処理はつけていませんし、ちゃんと動くかどうかだけ見たいので入力があったら、物理を起動させる形にしました。
実際に物理アセットを有効にしている中身はこれです。物理シミュレーションを起動してから、メッシュのコリジョンをラグドール用に切り替えます。これをしないと、メッシュが床をすり抜けます。
その後に、CharacterMovementを無効化してます。倒れたのに移動してたらおかしいですしね。ちなみに、無効化しなければメッシュを置いてけぼりにしてBP_Playerが動き続けます。
確認してみる
— 故・白鳥隆士@一人UE4アドカレ (@shiratori1221) 2016年12月6日
無事動きました。