今から始めるUE4極め本⑨ 〜物理エンジン・コリジョン編〜

UE4極め本

はじめに

今回は物理エンジンとコリジョンについて学んでいきます!とはいっても、難しい計算はすべてゲームエンジンが担ってくれますので、私たちはとても楽に使うことができます。

コリジョンはほとんどのゲームで必須となる要素ですので、是非マスターしましょう!

第20章 物理エンジンの世界

20.2.1 物理シミュレート

表記が異なる箇所
P.335
[詳細]パネルの [Physics] は [物理] に置き換え、[Collision] は [コリジョン] に置き換えて読んでください。

20.2.2 物理マテリアルで摩擦係数、反発係数、密度を調整する

最新版と異なる箇所
P.336
手順2で物理アセットを作成する手順が変わっています。
[新規追加]ボタンをクリックし、[フィジックス]>[物理マテリアル]を選択した後、物理マテリアルクラスとして「PhysicalMaterial」を選択して、[選択]をクリックするとアセットが作成されます。
表記が異なる箇所
P.336
旧)4. [詳細]パネルで [スタティックメッシュの設定]>[Simple Collision Physical Material]…
新)4. [詳細]パネルで [コリジョン]>[Simple Collision Physical Material]…
物理マテリアルのアセットをダブルクリックしてウィンドウを開いた際に、私の環境だけかもしれませんが、ウィンドウが真っ黒で何も表示されませんでした。(UE4.25.1だけかもしれません)
この場合、[ウィンドウ]>[詳細]を選択して詳細ウィンドウを表示してください。

20.2.3 アクタのプロパティで作りこむ

最新版と異なる箇所
P.339
[Override Mass]のチェックボックスがなくなり、[MassInKg]の左にあるチェックボックスをチェックすると有効になるようになりました。

20.3.1 乗ると落ちる床を作る

Architextureフォルダの中に[SM_IronFloor]スタティックメッシュではなく、[SM_IronFloor_tetsukousi01_01]と[SM_IronFloor_tetsukousi01_02]のスタティックメッシュに分かれていた場合、インポート時の設定を見直す必要があります。
一旦2つのスタティックメッシュを削除し、SM_IronFloorをインポートし直します。
[FBXインポートオプション]にて、[メッシュ]>[Combine Meshes]にチェックを入れて[全てインポート]を選択してください。
最新版と異なる箇所
P.341
[SM_IronFloor]メッシュをブループリント化する際に詳細ウィンドウが表示されますので、下図を参考に入力してください。
表記が異なる箇所
P.341
旧)手順.9 [Utilities]>[Flow Control]>[Delay]を選択します。
新)手順.9 [ユーティリティ]>[フローコントロール]>[Delay]を選択します。
検索欄に[Delay]と入力するとすぐに見つけることができます。

20.4.1 スケルトンにソケットを埋め込む

P.345
ビューポートの移動ツールの方向がおかしい場合は、ローカル座標になっています。下図のアイコンをクリックしてワールド座標に変更してください。

20.4.2 物理アクタを飛ばす

表記が異なる箇所
P.345
旧)手順.3 アクションリストから[ゲーム]>[クラスからアクタをスポーンします]を選択し、
新)手順.3 アクションリストから[ゲーム]>[Spawn Actor from Class]を選択し、

20.5.4 自動復帰型スイッチを作っておく

[OnComponentEndOverlap]イベントを追加したあと、実行時にスイッチを踏んでも沈まなくなってしまった場合は、PNSwitchActorの[BoxTrigger]コンポーネントを[Mesh]の子ではなく[SceneRoot]の子になるように変更してみてください。

表記が異なる箇所
P.352
旧)手順.7 アクションリストの一番上にある[変数へ昇格]を選択します。
新)手順.7 アクションリストの一番上にある[Promote to valiable]を選択します。

旧)手順.8 [編集可能]にチェックを入れます。
新)手順.8 [インスタンス編集可能]にチェックを入れます。

20.5.6 床スイッチに外枠をとりつける

オートコンベックスのパラメータ

手順.2でオートコンベックスコリジョンを設定する際に、ハルカウントを12に設定してください。

最新版と異なる箇所
P.353
手順.4にて[Mesh]コンポーネントを選択した状態で[コンポーネントを追加]をしていますが、[SceneRoot]を選択した状態で追加するようにしてください。Meshの子ではなくSceneRootの子になるようにします。

第21章 実践!コリジョン講座

21.1 オブジェクト応答

ここではコリジョンの種類ごとの動作や組み合わせによる反応の違いを解説されています。今後コリジョン周りで期待した動作にならない時は、この節を読み直すとよいかと思います。

21.2.1 独自のオブジェクトチャンネルとプリセットを追加する

表記が異なる箇所
P.361
旧)手順.2 [エンジン]>[コリジョン]を選択します。
新)手順.2 [エンジン]>[Collision]を選択します。

21.3.1 敵キャラのアセットとポーンを準備する

表記が異なる箇所
P.367
旧)手順.2 [LOD 0]>[エレメント 0]に、仮のマテリアルとして…
新)手順.2 [Material Slots]>[エレメント 0]に、仮のマテリアルとして…

エンジンコンテンツが表示されない場合は、ダイアログの右下にある[表示オプション]から、[エンジンのコンテンツを表示]を選択します。

表記が異なる箇所
P.368
旧)手順.8 [Character Movement]>[Orient Rotation to Movement]にチェックを入れます。
新)手順.8 [キャラクタ移動(回転設定)]>[Orient Rotation to Movement]にチェックを入れます。
カテゴリ名がわからなくても、検索欄に[Orient Rotation to Movement]と入力すると見つけることができます。

21.3.6 トレースヒット情報を活用する

本書のノードの組み方では、トレースがヒットしていない際にもHit Resultから情報を取得しようとしてエラーが出力されます。

下図のように[Line Trace]ノードの[Return Value]の成否を[Branch]ノードで切り分けてヒット時のみ通るようにしてください。

21.3.7 イベントグラフのノードネットワークを関数化する

表記が異なる箇所
P.373
旧)手順.2 アクションリストから[変数へ昇格]を選択します。
新)手順.2 アクションリストから[Promote to variable]を選択します。

まとめ

これで物理エンジン&コリジョンは終了です!

コリジョンの応答の組み合わせは頭で考えると混乱しやすいので、自分のゲームで使う際はノートなどでキチンと整理することをオススメします。

物理エンジンは本書であったとおり、演出で使うだけであれば簡単にそれっぽくなるので是非活用したいですね!

わんちゃん
次回は敵のAIに命を吹き込んでいきます!