ゲーム内に相互作用を必要とするオブジェクトがある場合、光線検出を使用して、キャラクターとオブジェクトが条件を満たす(向き合っている、特定の距離内にあるなど)かどうかを判断できます。
最初に像を作成し、2つのパーティクルシステム、煙と火、回転するテキストを追加します。
彫像に近づき、正面を向いた状態でマウスの左ボタンを押すと、煙、炎、テキストがアクティブになります。
像の青写真:
彫像の設計図は上記のとおりで、ゲームの最初は煙、火、テキストは見えません。
すべてアクティブな関数を記述しました。受信値がtrueの場合、3つの値が可視に変更され、テキストを回転するかどうかを制御するテキスト回転ブール値もtrueに変更されます。
次に、光線の検出があります。アイデアは、最初に光線の開始点としてキャラクターにスロットを作成し、次にコントロールの回転をビューの方向として使用することです。
この方法で放出される光線の開始点はスロットであり、終了点はベクトル*制御回転の長さ+スロットの開始点です。手順は次のとおりです。
キャラクターのスケルトンで頭を見つけ、socket_headという名前のスロットを作成します(図に示すように、必ずしも頭ではなく、ハンドルを通してスロットの位置をカスタマイズできます)
ロールブループリントのトレースを右クリックすると、光線検出の多くの機能が見つかります。ここでは、チャネルごとにライントレースを使用します。
レイの開始点と終了点は上記で決定され、ここでのレイの長さは400です。出力は、レイがブロックされているかどうかのブール値です。レイがブロックされている場合、レイをブロックしているオブジェクトは強制的にステータスに変換されます。変換が成功した場合、それは像のブロックです。光線の後で、そのactive all関数を呼び出して、煙、火、およびテキストをアクティブにします。
ちょうどこのようにゲームに入った:
閉じて、マウスの左ボタンをクリックしてアクティブにします。
通常の選択はコントロールの回転であるため、画面の中央を彫像に合わせる必要があることに注意してください。
法線は他の方向も選択できます。たとえば、以下はシーン内のマウスの3次元座標に基づいており、方向はカメラへのポイントです。
描画デバッグタイプをオンにして、レイの特定の場所を確認することもできます。
別の例として、法線方向を常にキャラクターの前方向にすることで、コントロールを回転させても光線の放出方向が変化しないようにします。