Choose your operating system:
Windows
macOS
Linux
LineTraceByChannel は、所定のラインに沿ってコリジョン トレースを実行し、トレースがヒットした最初のオブジェクトを返します。以下では、SingleLineTraceByChannel を設定します。
ステップ
Starter Content を含めて Blueprint First Person テンプレートを使用してプロジェクトを作成し、そのプロジェクトを開きます。
「FirstPersonBP/Blueprints」 フォルダ内で FirstPersonCharacter ブループリントを開きます。
グラフ内で右クリックして、 Event Tick ノードを探して追加します。
こうすることで、フレーム毎にトレースが実行されるようになります。
実行ピンからドラッグして、LineTraceByChannel ノードを探します。
Ctrl キーを押したまま、 FirstPersonCamera コンポーネントをドラッグします。
ここがトレースの開始点となるカメラになります。
FirstPersonCamera ノードを引き出し Get World Location ノードを追加したら、それをトレースの Start に接続します。
FirstPersonCamera ノードを再び引き出して Get World Rotation ノードを追加します。
ここで FirstPersonCamera の位置からトレースを開始し、 FirstPersonCamera の回転を追加します。
Get World Rotation ノードを引き出して Get Forward Vector を追加したら、それを引き出して Vector * Float ノードを追加し 1500 に設定します。
回転と forward ベクターができて、そこから 1500 (この値はトレースの長さです) だけ外へ伸ばします。
Get World Location ノードを引き出して Vector + Vector ノードを追加し、以下のようにトレース ノードの End に接続します。
FirstPersonCamera の位置をここにして、回転と forward ベクターに合わせて 1500 ユニット伸ばします。
Trace ノード上で、 Draw Debug Type を For One Frame に設定します。
これで、ライン トレースを確認するためにインゲームを再生しながら、デバッグ ラインが見えるようになります。
トレースから実行出力ピンをドラッグして 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 ピンを使うことができます (無視する個々のアクタを指定しなければなりません) 。
指定した ObjectTypes のみを返す Line Trace by Object を実行することもできます。こうすると、特定のオブジェクトだけをトレース対象にすることができます。