【UE4】物理処理をしてみる
今回は、Unreal Engine での物理シミュレーションについて紹介します。
ドミノを利用して説明します。
新規プロジェクトを作成します。
マップ上に、キューブを配置します。
キューブの拡大・縮小でドミノの形にします。
キューブを複製します。
1つめのドミノが倒れるように、角度を付けます。
ここまでの設定でプレイをした結果です。
物理処理を有効にしていないため、配置した場所にとどまっています。
1つ目のドミノを選択し、詳細 -> 物理 -> Simulate Physics にチェックを入れます。
これで、1つ目のドミノのみ、物理演算処理が動くようになります。
プレイした結果です。1つ目のドミノは傾いた状態で配置していたため、物理処理され倒れました。2つ目のドミノは物理処理を有効にしていないため、倒れず1つ目のドミノは立てかけられた状態になりました。
2つ目のドミノも物理処理を有効にします。
1つ目のドミノが2つ目のドミノにぶつかり、2つ目のドミノも物理演算が行われ倒れました。
配置したすべてのドミノ(キューブ)の物理処理を有効にし実行した結果です。
続いて質量の実験を行うため、平面でスロープを作成します。
スロープの上部に、スフィアト(ボール)を配置し物理処理を有効にします。
※1つ目のドミノの傾きは戻しておきます。
ボールは物理処理でスロープを転がり、ドミノに当たりドミノ倒しが始まりました。
ボールの質量を変更してみます。
詳細 -> 物理 -> Mass in KG で 質量を変更します。
500Kgに設定してみます。
ボールが重くなり、先ほどより勢いよくドミノが弾かれます。
逆に、軽くしてみます。
軽くしたため、ドミノが倒れなくなりました。
ここまで出来たら、一つ落ちを付けたくなりますよね。
旗を付けたドミノを作成し配置しました。
プレイした瞬間、ドミノが後ろから倒れてしまいました。
原因は、コリジョン(当たり判定)のエリアがざっくり設定されているためです。メッシュのコリジョンから確認することができます。
詳細 -> コリジョン -> CllisionComplexity -> Use Complex Collision As Simple で詳細なコリジョンを使えば解決!と思ってしまいますよね?
???旗付きドミノが倒れなくなってしまいました。
残念ながら、 Use Complex Collision As Simple は物理処理ではコリジョンが適用されなくなってしまいます。
色々回避方法はあるかと思いますが、今回は旗とドミノを分けることで回避します。
メッシュは分けたのですが、一緒に動いて欲しいためブループリントで、ドミノと旗のTransformを連動させました。
物理処理によるドミノ倒しが完成しました。
diprossではUnrealEngineを利用したコンテンツ開発・3D動画制作を請け負っています。