Line Trace By Channel は、所定のラインに沿ってコリジョン トレースを実行し、トレースがヒットした最初のオブジェクトを返します。以下では、Single Line Trace By Channel を設定します。
ステップ
Starter Content を含めて Blueprint First Person テンプレートを使用してプロジェクトを作成し、そのプロジェクトを開きます。
「FirstPersonBP/Blueprints」 フォルダ内で BP_FirstPersonCharacter ブループリントを開きます。
グラフ内で右クリックして、 Event Tick ノードを探して追加します。
こうすることで、フレーム毎にトレースが実行されるようになります。
実行ピンからドラッグして、Line Trace By Channel ノードを探します。
Ctrl キーを押したまま、 First Person Camera コンポーネントをドラッグします。
ここがトレースの開始点となるカメラになります。
First Person Camera ノードを引き出し Get World Location ノードを追加したら、それをトレースの Start に接続します。
First Person Camera ノードを再び引き出して Get World Rotation ノードを追加します。
ここで First Person Camera の位置からトレースを開始し、 First Person Camera の回転を追加します。
Get World Rotation ノードを引き出して Get Forward Vector を追加したら、それを引き出して Vector * Float ノードを追加し 1500 に設定します。
回転と forward ベクターができて、そこから 1500 (この値はトレースの長さです) だけ外へ伸ばします。
Get World Location ノードを引き出して Vector + Vector ノードを追加し、以下のように Line Trace By Channel ノードの End に接続します。
First Person Camera の位置をここにして、回転と forward ベクターに合わせて 1500 ユニット伸ばします。
Line Trace By Channel ノード上で、 Draw Debug Type を For One Frame に設定します。
これで、ライン トレースを確認するためにインゲームを再生しながら、デバッグ ラインが見えるようになります。
Line Trace By Channel から実行出力ピンをドラッグして Print String ノードを追加します。
Out Hit ピンを引き出して Break Hit を検索し、 Break Hit Result ノードを追加します。
Break Hit Result の Hit Actor ピンを引き出して To String (Object) ノードを追加したら、それを Print String ノードに接続します。
これで、トレースでヒットしたオブジェクトを画面に表示することができます。
[Compile] ボタンをクリックし、エディタで再生し、レベル内のキューブを見ます。
トレースがキューブにヒットすると、キューブが画面へ印字されるのが分かります。
最終結果
上の例では、提供されている Trace Channel に反応するように設定されている全オブジェクトを返しますが、所定のオブジェクトだけを返したい場合もあると思います。上の例では、トレースで無視するアクタの Array を受け取る Actors to Ignore ピンを使うことができます (無視する個々のアクタを指定しなければなりません) 。
指定した Object Types のみを返す Line Trace by Object を実行することもできます。こうすると、特定のオブジェクトだけをトレース対象にすることができます。