敵の検知距離を 800 に設定したのに、目の前のプレイヤーに反応しない。数値が正しく入っていても、その範囲がゲーム画面のどこまで届くかは、思い描きにくいものです。
そんなときは、敵の周りに半径800の球を描いてみましょう。プレイヤーが球の外にいるなら、まず距離を調べられます。球の内側にいるなら、向きや壁の遮りなど、次の条件へ進めます。
この記事では、確認用の線や球を描く Draw Debug 系ノードを試します。Print String で値を読み、Draw Debugで位置関係を見る。2つを組み合わせると、ゲーム内部の動きを追いやすくなります。
この記事でわかること
- 位置・半径・向きを、球や円錐として表示する
- Durationと、描画を呼ぶタイミングの関係
- エディタ標準の表示と、自分で描く表示の使い分け
- Visual Loggerで、記録された時点を読み返す
数値をゲーム世界の大きさに結びつける
UEの標準の長さの単位はcmです。半径 800 は8mで、中心から球の表面まで の距離を表します。端から端までの直径は16mになります。

分かりにくいのは数値そのものより、「どこを中心に」「どの方向へ」「どこまで」測っているかです。たとえば、攻撃判定の中心が手ではなく足元になっていたり、見張りの正面がモデルの顔とは違う方向を向いていたりすることがあります。
実際の判定で使っている位置や距離を、そのまま描画にも渡す と、この食い違いを探せます。表示用に別の数値を入れると、図だけ正しく見えることがあるので注意しましょう。
Draw Debug系ノードの使 い分け
BlueprintのEvent Graphで Draw Debug と検索すると、図形ごとのノードを選べます。

| ノード | 描くもの | 使いどころ |
|---|---|---|
| Draw Debug Sphere | 球の輪郭 | 敵の検知距離、爆発の範囲 |
| Draw Debug Line | 始点から終点への線 | 敵とターゲットの位置関係 |
| Draw Debug Box | 箱の輪郭 | 部屋やトリガーの範囲 |
| Draw Debug Arrow | 矢印 | 移動やノックバックの向き |
| Draw Debug Cone | 円錐の輪郭 | 正面へ広がる視界の目安 |
| Draw Debug String | 3D空間の指定位置に文字 | 敵の近くに現在の状態を出す |
まずは 位置・大きさ・色・表示時間 を押さえれば試せます。Boxの「Extent」は箱全体の幅ではなく、中心から各面までの半分の大きさです。Coneは平面の扇形ではなく、上下にも広がる円錐を描きます。
Draw Debug Stringでは「Text Location」に文字を出す位置を指定します。たとえばActorの位置に (0, 0, 120) を足せば、その位置より120cm上へ出せます。このように世界全体の座標を 渡す場合は「Test Base Actor」を未指定にします。相手を指定した場合は、そのActorを基準にした位置になるため、2つの指定方法を混ぜないようにします。
Line Traceには専用の表示設定があります。 Line Traceは、始点から終点へ線を伸ばして、何に当たるか調べる処理です。
Line Trace by Channelの「Draw Debug Type」を「For Duration」にすると、調べた線とヒット位置を表示できます。トレース自体を調べるなら、この設定が手軽です(→ Line Traceの記事)。
Durationは、線を残す秒数
Duration は、一度描いた図形を何秒残すかの設定です。ここではSphereやConeなど、線で図形を描くノードを扱います。0 は「1フレームだけ」。フレームは、ゲームの画面を1回更新する単位です。

| 呼ぶ場所 | Duration | 見え方 |
|---|---|---|
| Event BeginPlay:開始時に1回 | 10.0 | 描いた場所に10秒残る |
| Event BeginPlay:開始時に1回 | 0.0 | 1フレームで消える |
| Event Tick:毎フレーム | 0.0 | 毎回描き直すので、動く対象を追える |
BeginPlayで描いた球は、その後Actorが動いても追いかけません。動く敵に合わせたいなら、Tickから毎回、その時点の位置を渡します。逆に、TickでDurationを長くすると古い線も残り、軌跡のように重なって見えます。
標準のBlueprint用Draw Debug Sphereには「Persistent Lines」という設定はありません。静止した図形をゆっくり見たいときは、まずDurationを長くしましょう。C++向けの記事に出てくる設定と混同しないことが大切です。
先にエディタの表示を試す
既にある当たり判定やライトの範囲なら、描画ノードを作らなくても確認できる場合があります。
| 見たいもの | 方法 |
|---|---|
| 当たり判定の形 | ビューポートの「Show → Collision」や、Play中のコンソールコマンド show collision |
| NavMesh:AIが経路を探すための歩行可能領域 | レベルのビューポートで P。表示するにはNavMeshが用意されている必要がある |
| Point Lightなどの影響範囲 | ライトActorを選択する |
| Sphere / Box Collisionの形 | Blueprintエディタやレベルで、そのコンポーネントを選択する |
コリジョン は当たり判定、コンポーネント はActorに付ける部品です。Sphere Collisionを選んで半径を変えるだけでも、大きさを目で確かめられます。
Draw Debugが役立つのは、Play中に動く範囲を追うときや、変数・計算結果から作った位置を見たいときです。今回の実践は、半径を覚える変数から球を 描きます。

実践:半径800の範囲と、正面の向きを描く
Third Personテンプレートの試験用レベルで、範囲を表示する BP_Guard を作ります。まずは 表示だけを作り、AIの発見・追跡処理は付けません。球を描くことと、その中に入った相手を検知することは別の処理だからです。
① 確認用Actorを置く
Actorは、レベルへ配置するものの基本となるクラスです。ここでは見張りの代わりに、箱を目印にしたActorを用意します。
- コンテンツブラウザで「Blueprint Class → Actor」を作り、
BP_Guardと名付けます。 - 開いて「Add」から「Static Mesh」を追加し、Static Mesh欄に
Cubeを選びます。これは位置が分かるように置く目印です。 - 「My Blueprint → Variables」で、Float型の
SightRangeを作ります。Floatは小数を扱える数値型です。 - Compileしてから初期値を
800.0にし、保存します。 - レベルへ1体配置し、広く歩ける床の上へ置きます。ActorのScaleは
(1, 1, 1)、Rotationは(0, 0, 0)にします。箱が床に埋まらないよう位置を調整し、レベルを保存します。
SightRange は範囲を表すために自分で作った変数名です。UEがこの名前を見て、自動でAIの視覚機能を有効にするわけではありません。
② 球を描く
BP_GuardのEvent Graphで、Event Tick の白い実行ピンから Draw Debug Sphere を追加します。次のように入力を設定します。

図の「次のConeへ」は、後の手順でつなぐ先を示す注記です。今はSphereまでで試せます。
| 入力 | つなぐ値・設定 |
|---|---|
| Center | Get Actor Location のReturn Value。TargetはSelf |
| Radius | 変数 SightRange のGet |
| Segments | 16 |
| Line Color | 青 |
| Duration | 0.0 |
| Thickness | 2.0 |
Selfは、このグラフを動かしているBP_Guard自身 です。Get Actor LocationはそのActorの位置を読み出し、Return Valueから渡します。ここでの位置はモデルの見た目の中心とは限らず、Actorの基準点です。
変数のGetは、変数をグラフへドラッグして「Get」を選ぶ と置けます。Get Actor Locationや変数のGetには白い実行ピンがなく、値の出力をSphereの対応する入力へつなぎます。白い実行線はTickからSphereへ直接つなぎます。
Compile・SaveしてPlayすると、箱の位置を中心に青い球が出ます。カメラを動かし、球の内側と外側を歩いて比べてみてください。床に隠れる下半分があっても、球全体の中心は箱のActorの位置です。
次にPlayを止め、SightRangeの初期値を 1200.0 に変えて再度Playします。球が広がれば成功です。範囲が8mから12mへ変わったことを、周囲の床や壁と見比べられます。
③ 正面へ円錐を描く
Playを止め、Draw Debug Sphereの白い出力から Draw Debug Cone へつなぎます。今度は距離だけでなく、Actorの向きも使います。

| 入力 | つなぐ値・設定 |
|---|---|
| Origin | Get Actor Location のReturn Value。TargetはSelf |
| Direction | Get Actor Forward Vector のReturn Value。TargetはSelf |
| Length | SightRange のGet |
| Angle Width / Angle Height | どちらも 45.0 を入力 |
| Num Sides | 16 |
| Line Color |