UE4 / BP例:Box領域内のランダムな表面位置を取得
スポーン可能な場所を自動で探すなどに使える。
概要
ActorにBoxコリジョンコンポーネントを追加し、GetScaledBoxExtentでBoxのサイズを取得し、RandomPoint in BoundingBoxでBox内のランダムな位置を得て、LineTraceByChannelでなにかにヒットするまで繰り返す。
実行結果
作ったActorをレベルに配置。
実行するとDrawDebugTypeの効果でトレース結果が表示される。
メモ
- LineTraceの出力ピンは「右クリック>ピンを分割」で画像のように要素毎に出力ピンを表示できる
- この例だとStart位置はBox内だがEnd位置がBox内とはかぎらないので要注意
- LineTraceByChannelのDrawDebugTypeをNone以外にするとトレース状況を可視化できる。赤線がトレーステストしたラインで、ヒットした位置に四角が描画される。by durationだと5秒程度表示される。
元ネタ
公式のLiveTraining動画 26分あたり
www.youtube.com