Single Line Trace (レイキャスト) by Channel を使用する

この操作ガイドでは Single Line Trace by Channel ブループリント ノードを使って Visibilityチャンネルに反応するヒットした最初のアクタを戻し、名前をプリントする方法を説明します。

コンテンツ

Line Trace By Channel は、所定のラインに沿ってコリジョン トレースを実行し、トレースがヒットした最初のオブジェクトを返します。以下では、Single Line Trace By Channel を設定します。

ステップ

  1. Starter Content を含めて Blueprint First Person テンプレートを使用してプロジェクトを作成し、そのプロジェクトを開きます。

  2. 「FirstPersonBP/Blueprints」 フォルダ内で BP_FirstPersonCharacter ブループリントを開きます。

  3. グラフ内で右クリックして、 Event Tick ノードを探して追加します。

    Add an Event Tick node

    こうすることで、フレーム毎にトレースが実行されるようになります。

  4. 実行ピンからドラッグして、Line Trace By Channel ノードを探します。

    Search for the Line Trace By Channel node

  5. Ctrl キーを押したまま、 First Person Camera コンポーネントをドラッグします。

    Drag in the First Person Camera component

    ここがトレースの開始点となるカメラになります。

  6. First Person Camera ノードを引き出し Get World Location ノードを追加したら、それをトレースの Start に接続します。

  7. First Person Camera ノードを再び引き出して Get World Rotation ノードを追加します。

    Add a Get World Rotation node

    ここで First Person Camera の位置からトレースを開始し、 First Person Camera の回転を追加します。

  8. Get World Rotation ノードを引き出して Get Forward Vector を追加したら、それを引き出して Vector * Float ノードを追加し 1500 に設定します。

    Drag off the Get World Rotation node and add a Get Forward Vector then drag off that and add a Vector Multiple Float node set to 1500

    回転と forward ベクターができて、そこから 1500 (この値はトレースの長さです) だけ外へ伸ばします。

  9. Get World Location ノードを引き出して Vector + Vector ノードを追加し、以下のように Line Trace By Channel ノードの End に接続します。

    Drag off the Get World Location node and add a Vector Plus Vector node connecting to the End of the Line Trace By Channel node

    First Person Camera の位置をここにして、回転と forward ベクターに合わせて 1500 ユニット伸ばします。

  10. Line Trace By Channel ノード上で、 Draw Debug TypeFor One Frame に設定します。

    Set the Draw Debug Type to For One Frame on the Line Trace By Channel node

    これで、ライン トレースを確認するためにインゲームを再生しながら、デバッグ ラインが見えるようになります。

  11. Line Trace By Channel から実行出力ピンをドラッグして Print String ノードを追加します。

    Drag off the execution out pin of the Line Trace By Channel node and add a Print String node

  12. Out Hit ピンを引き出して Break Hit を検索し、 Break Hit Result ノードを追加します。

    Drag off the Out Hit pin and search for Break Hit then add a Break Hit Result node

  13. Break Hit ResultHit Actor ピンを引き出して To String (Object) ノードを追加したら、それを Print String ノードに接続します。

    画像をクリックして全画面表示にします。

    これで、トレースでヒットしたオブジェクトを画面に表示することができます。

  14. [Compile] ボタンをクリックし、エディタで再生し、レベル内のキューブを見ます。

    Play in the Editor and look at the cubes in the level

    ここでは一人称視点から離れているので、トレースの視野角を見ることができます。

    トレースがキューブにヒットすると、キューブが画面へ印字されるのが分かります。

最終結果

上の例では、提供されている Trace Channel に反応するように設定されている全オブジェクトを返しますが、所定のオブジェクトだけを返したい場合もあると思います。上の例では、トレースで無視するアクタの Array を受け取る Actors to Ignore ピンを使うことができます (無視する個々のアクタを指定しなければなりません) 。

指定した Object Types のみを返す Line Trace by Object を実行することもできます。こうすると、特定のオブジェクトだけをトレース対象にすることができます。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル