はじめに
今回は物理エンジンとコリジョンについて学んでいきます!とはいっても、難しい計算はすべてゲームエンジンが担ってくれますので、私たちはとても楽に使うことができます。
コリジョンはほとんどのゲームで必須となる要素ですので、是非マスターしましょう!
第20章 物理エンジンの世界
20.2.1 物理シミュレート
[詳細]パネルの [Physics] は [物理] に置き換え、[Collision] は [コリジョン] に置き換えて読んでください。
20.2.2 物理マテリアルで摩擦係数、反発係数、密度を調整する
手順2で物理アセットを作成する手順が変わっています。
[新規追加]ボタンをクリックし、[フィジックス]>[物理マテリアル]を選択した後、物理マテリアルクラスとして「PhysicalMaterial」を選択して、[選択]をクリックするとアセットが作成されます。
旧)4. [詳細]パネルで [スタティックメッシュの設定]>[Simple Collision Physical Material]…
新)4. [詳細]パネルで [コリジョン]>[Simple Collision Physical Material]…
この場合、[ウィンドウ]>[詳細]を選択して詳細ウィンドウを表示してください。
20.2.3 アクタのプロパティで作りこむ
20.3.1 乗ると落ちる床を作る
一旦2つのスタティックメッシュを削除し、SM_IronFloorをインポートし直します。
[FBXインポートオプション]にて、[メッシュ]>[Combine Meshes]にチェックを入れて[全てインポート]を選択してください。
旧)手順.9 [Utilities]>[Flow Control]>[Delay]を選択します。
新)手順.9 [ユーティリティ]>[フローコントロール]>[Delay]を選択します。
検索欄に[Delay]と入力するとすぐに見つけることができます。
20.4.1 スケルトンにソケットを埋め込む
20.4.2 物理アクタを飛ばす
旧)手順.3 アクションリストから[ゲーム]>[クラスからアクタをスポーンします]を選択し、
新)手順.3 アクションリストから[ゲーム]>[Spawn Actor from Class]を選択し、
20.5.4 自動復帰型スイッチを作っておく
[OnComponentEndOverlap]イベントを追加したあと、実行時にスイッチを踏んでも沈まなくなってしまった場合は、PNSwitchActorの[BoxTrigger]コンポーネントを[Mesh]の子ではなく[SceneRoot]の子になるように変更してみてください。旧)手順.7 アクションリストの一番上にある[変数へ昇格]を選択します。
新)手順.7 アクションリストの一番上にある[Promote to valiable]を選択します。
旧)手順.8 [編集可能]にチェックを入れます。
新)手順.8 [インスタンス編集可能]にチェックを入れます。
20.5.6 床スイッチに外枠をとりつける
オートコンベックスのパラメータ
手順.2でオートコンベックスコリジョンを設定する際に、ハルカウントを12に設定してください。
手順.4にて[Mesh]コンポーネントを選択した状態で[コンポーネントを追加]をしていますが、[SceneRoot]を選択した状態で追加するようにしてください。Meshの子ではなくSceneRootの子になるようにします。
第21章 実践!コリジョン講座
21.1 オブジェクト応答
ここではコリジョンの種類ごとの動作や組み合わせによる反応の違いを解説されています。今後コリジョン周りで期待した動作にならない時は、この節を読み直すとよいかと思います。
21.2.1 独自のオブジェクトチャンネルとプリセットを追加する
旧)手順.2 [エンジン]>[コリジョン]を選択します。
新)手順.2 [エンジン]>[Collision]を選択します。
21.3.1 敵キャラのアセットとポーンを準備する
旧)手順.2 [LOD 0]>[エレメント 0]に、仮のマテリアルとして…
新)手順.2 [Material Slots]>[エレメント 0]に、仮のマテリアルとして…
エンジンコンテンツが表示されない場合は、ダイアログの右下にある[表示オプション]から、[エンジンのコンテンツを表示]を選択します。
旧)手順.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 イベントグラフのノードネットワークを関数化する
旧)手順.2 アクションリストから[変数へ昇格]を選択します。
新)手順.2 アクションリストから[Promote to variable]を選択します。
まとめ
これで物理エンジン&コリジョンは終了です!
コリジョンの応答の組み合わせは頭で考えると混乱しやすいので、自分のゲームで使う際はノートなどでキチンと整理することをオススメします。
物理エンジンは本書であったとおり、演出で使うだけであれば簡単にそれっぽくなるので是非活用したいですね!