libro
www.tuyano.com
初心者のためのUnreal Engine ブループリント入門

物理エンジンと衝突処理 (6/7)

作成:2015-03-14 10:47
更新:2015-03-14 10:47

■衝突イベントのノードについて

衝突に関するイベントは、ノードとして用意されています。詳細パネルでSimulation Generates Hit EventsGenerate Overlap EventのチェックをONにしたら、そのイベント用のノードを追加することでイベント処理を用意できます。

イベント用ノードは、その他のノードと同様、ブループリントエディタでグラフを右クリックし、現れたメニューから選んで作成します。が、この際に注意しておきたいのは、「レベルエディタで、イベントを組み込みたいアクタを選択してからノードを作成する」という点でしょう。

イベント用ノードは、それぞれのアクタごとに作成されます。アクタを選択した状態でイベント用ノードを作成すると、そのアクタのイベント処理を行うノードが作成されるのです。ですから、「どのアクタについてイベントを用意するか」を考えながらノードを追加しましょう。

では、用意されている衝突イベント用のノードについてまとめておきましょう。

●「On Actor Hit」ノード
ヒットイベントに関するノードです。アクタと他のアクタが衝突した瞬間にこのノードが呼び出され処理が実行されます。衝突に関する4つの出力項目が用意されています。

Self Actor――衝突した(自分自身)のアクタです。
Other Actor――衝突した相手のアクタです。
Normal Impulse Vector――衝突した力をVector値として取り出します。
Hit――衝突に関する情報を構造的にまとめた特殊なオブジェクトが渡されます。

●「On Actor Begin Overlap」ノード
 「On Actor End Overlap」ノード

オーバーラップイベントに関するノードです。他のアクタと重なった瞬間に実行されるのが「On Actor Begin Overlap」、重なったアクタと離れる瞬間に実行されるのが「On Actor End Overlap」です。いずれも、オーバーラップした相手のアクタを取り出すための「Other Actor」という出力項目が用意されています。


アクタどうしの衝突は、On Actor Hitを利用すればチェックできるでしょう。これは衝突している間、発生し続けます。つまり、「ぶつかった瞬間だけ」発生するわけではないので注意して下さい。

オーバーラップイベントは、他のアクタと重なり合うという、特殊な状況に対するものなので、単なる衝突処理では利用することはありません。オーバーラップイベントを利用するには、アクタの詳細パネルにある「コリジョンのプリセット」から「Overlap All」を選びます。

こうするとそのアクタは、他のアクタすべてとオーバーラップする(つまり衝突はしない)ようになります。たとえばアイテムの表示などのように、物として存在していないけど触れた時のイベント処理が必要、というような場合に用いられます。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。


※関連コンテンツ

「初心者のためのUnreal Engine ブループリント入門」に戻る