【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動画制作を請け負っています。

エンジニアリング事業部からの最新情報をお届けします