凛(kagring)のUE4とUnityとQt勉強中ブログ

2016 年から UE4 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE4 レイとチャンネルのコリジョンとのヒット判定(Line Trace By Channel、Multi Line Trace By Channel)

レイとコリジョンのあたり判定です。
今回は指定したチャンネルに属するコリジョンに対してのものになります。
ここらへんを参考にさせてもらいました。

・UE4 マウスの位置をワールド座標に変換する
http://qiita.com/nkdtr/items/3a6768f6a60996136794

・ブループリントにおけるレイキャスト(トレーシング)の使い方
https://docs.unrealengine.com/latest/JPN/Gameplay/HowTo/UseRaycasts/Blueprints/index.html

レイとコリジョンのあたり判定は「Line Trace By Channel」ノードを使います。
LineTraceByChannel000.jpg
「Start」から「End」に向かうレイでチェックを行います。
「Trace Channel」は判定を行うコリジョンのチャンネルを指定します。
デフォルトでは「Visibility」になっていて「表示しているもの」と受け取りそうですが
存在しているチャンネルのデフォルトが「Visibility」になっているだけなので、
自分でチャンネルを増やして指定することができます。
「Trace Complex」はComplex コリジョンと判定をするかのチェックです。
「Actors to Ignore」は判定を無視するアクター配列です。
「Draw Debug Type」はこのノードの処理をしたときに画面上に結果を表示するかどうかです。
「None」は表示なし、「For One Frame」は1フレームだけ表示。
「For Duration」は一定時間表示、「Persistent」は永続表示となります。
「Ignore Self」は自分自身を判定から除外するかどうかです。

「Complex コリジョン」についてはこちらを。

・Simple コリジョンと Complex コリジョン
https://docs.unrealengine.com/latest/JPN/Engine/Physics/SimpleVsComplex/index.html

「Line Trace By Channel」は最初にヒットした結果を返します。
結果の取得はこんな感じに取得できます。
LineTraceByChannel001.jpg

「Line Trace By Channel」は最初にヒットした結果を返しますが
「Multi Line Trace By Channel」を使うとすべてのヒットした結果を受け取れます。
LineTraceByChannel002.jpg

と、こんな感じでしょうか。
マウスでクリックした位置のワールド座標でのヒット判定はこんな感じになります。
LineTraceByChannel003.jpg

レイ関係の判定はゲームで使うことが多そうですね。
スポンサーサイト

| UE4 | 15:48 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/229-530cf921

TRACKBACK

PREV | PAGE-SELECT | NEXT