この記事の要点
- TargetPoint は位置情報のマーカーとなる軽量アクター。AI 移動目標 / スポーン位置 / カメラ移動目標などに使う
- C++:
UGameplayStatics::GetAllActorsOfClass(World, ATargetPoint::StaticClass(), OutActors)で全 TargetPoint を取得 - Blueprint: Get All Actors Of Class ノードに
TargetPointを指定 - 特定の TargetPoint だけ欲しい場合は Actor Tag でフィルタする(
ActorHasTag("SpawnPoint")) GetAllActorsOfClassはレベル内の全アクターを走査するため毎フレーム呼ばない。BeginPlay でキャッシュ
1TargetPoint とは
TargetPoint は Unreal Engine 5 (UE5) に標準で含まれる軽量アクターで、レベル内に「位置と回転」を持つマーカーを置くために使います。実体的な描画やコリジョンを持たず、ゲームロジックから「ここに何かを移動・配置せよ」と参照するための目印として機能します。
| 用途 | 具体例 |
|---|---|
| AI 移動目標 | パトロール経路の中継点、追跡先 |
| スポーン位置 | プレイヤー / 敵 / 拾得アイテムの出現点 |
| カメラ移動目標 | カットシーンのカメラ経路 |
| イベント発生位置 | ステージ進行で重要な座標の記録 |
2C++ で取得する
1. ヘッダーをインクルード
#include "Engine/TargetPoint.h"
#include "Kismet/GameplayStatics.h"
2. レベル内の全 TargetPoint を取得
TArray<AActor*> TargetPoints;
UGameplayStatics::GetAllActorsOfClass(
GetWorld(),
ATargetPoint::StaticClass(),
TargetPoints
);
UE_LOG(LogTemp, Log, TEXT("TargetPoint count: %d"), TargetPoints.Num());
3. タグで特定の TargetPoint だけ抽出
ATargetPoint* SelectedTarget = nullptr;
for (AActor* Target : TargetPoints)
{
if (Target->ActorHasTag(FName("SpawnPoint")))
{
SelectedTarget = Cast<ATargetPoint>(Target);
break;
}
}
if (SelectedTarget)
{
FVector Loc = SelectedTarget->GetActorLocation();
UE_LOG(LogTemp, Log, TEXT("Spawn at: %s"), *Loc.ToString());
}
4. タグ別にまとめて取り出す
// GetAllActorsWithTag は AActor 配列、種別チェックは Cast で
TArray<AActor*> SpawnPoints;
UGameplayStatics::GetAllActorsWithTag(
GetWorld(), FName("SpawnPoint"), SpawnPoints);
3Blueprint で取得する
- Blueprint グラフを開く
- Get All Actors Of Class ノードを追加
- Actor Class に
TargetPointを指定 - 出力
Out Actorsを ForEachLoop に接続 - 各要素を
Get Actor LocationやActor Has Tagで処理
タグだけで絞りたい場合は Get All Actors With Tag ノードを使うと走査が一度で済みます。
4パフォーマンスのコツ
| 状況 | 推奨 |
|---|---|
| BeginPlay で一度だけ | GetAllActorsOfClass でキャッシュし、メンバ変数に保持 |
| 毎フレーム / Tick | キャッシュした配列を参照、再走査しない |
| 大量にある | 派生クラスを作って UPROPERTY(EditAnywhere) で個別参照 |
| 動的生成 | SpawnActor 時に登録、配列管理 |
5派生クラスで設計する(推奨)
用途別に ATargetPoint を継承したクラスを作ると、エディタ上で識別しやすく、誤って取得することも減ります。
// SpawnTargetPoint.h
#pragma once
#include "Engine/TargetPoint.h"
#include "SpawnTargetPoint.generated.h"
UCLASS()
class MYGAME_API ASpawnTargetPoint : public ATargetPoint
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, Category="Spawn")
int32 Priority = 0;
};
6まとめ
- レベル内の TargetPoint は
GetAllActorsOfClassでまとめて取得 - 個別識別は Actor Tag または派生クラスで行う
- 取得はBeginPlay で一度だけ、結果はキャッシュ
- Blueprint でも同等のノードが用意されている
子ページ
子ページはありません
同階層のページ
- 床の上に乗ったらイベントを発生させる方法
- OverlapAllDynamicとOverlapAllの違い
- タイトル画面を作る方法
- サードパーソンテンプレートでのキャラクター表示の仕組みと非表示にする方法
- ボタンに文字を記載する方法
- Event ActorBeginOverlapとOn Component Begin Overlapの違い
- キャラクターに特定のオブジェクトとの当たり判定を付ける
- 特定のオブジェクトに触れたとき、キャラクターが倒れるようにする
- 動いているオブジェクトに静止しているキャラクターが当たり判定を持たない原因と解決方法
- 「On Component Hit」に「Cast To ~」で複数のクラスを指定する方法
- Blenderファイルをインポートする方法
- 鏡を作成する方法
- レベルブループリントでキャラクターの出現を設定する方法
- サードパーソンテンプレートにおけるキャラクター出現の定義
- アイテムに近づいたらボタンを押してイベントを発火させる方法
- 画面の中央にメッセージを表示する方法
- どこからでも呼び出せるカスタムイベントを作成する方法
- カスタムイベントに引数を追加する方法
- 「Get Overlapping Actors」から特定のクラスの場合のみ処理を実行する方法
- オブジェクトに近づいている間だけメッセージを表示する方法
- PCの画面を操作するUIを作る方法
- コンテンツブラウザに画像を追加する方法
- SetInputMode_UIOnlyを取り消す方法
- 特定の画像の上にマウスカーソルを置いたら手マークにする方法
- オブジェクトがアウトライナーで選択できない原因と解決策
- PlayerStartを作成する方法
- メニュー画面を作成して開く方法
- 「Esc」キーを押してメニュー画面を開く方法
- イベントの「On Clicked」と「On Pressed」の違い
- 「Set Input Mode」の種類と使い方
- 「Set Game Paused」の使い方と詳細解説
- Motion Matchingとは?
- 「GameMode」と「GameModeBase」の違い
- マップに配置したTargetPointを取得する方法
- TargetPointにタグをつけて取得する方法
- Spawnしたインスタンスがイベントを実行する方法
- 特定の時間ごとに処理を実行する方法
- 数値をランダムで出力する方法
- ThirdPersonテンプレートでキャラクターの移動を歩くように変更する方法
- MaxWalkSpeedを変更する方法
- しゃがむ動作を導入する方法
- キャラクターのアニメーションを設定する方法
- 導入済みのプラグインを確認する方法
- Motion Matchingの導入と必要なプラグイン
- プレイヤーを非表示にする方法
- カメラを傾ける角度を制限させる方法
- 配列からランダムに重ならない要素を特定の数取得する方法
- カメラの映す画面に文字やエフェクトを付ける方法
- キャラクターやメッシュを非表示にした際にカメラが移動しなくなる問題の解決方法
- プライマリーデータアセットを活用する方法
- プレイヤーのHPといった変数を定義する最適な場所
- カメラに映った画面をスクリーンショットとして保存する方法
- ゲーム内のカメラ映像を保存して再表示する方法
- HighResShot を使って高解像度の画像を保存する方法(UE5)
- HighResShotで保存した画像のファイル名を取得する方法
- SceneCapture2DとFrameGrabberの画像保存方法の比較
- SceneCapture2Dを使用して画像を保存・取得する方法
- HighResShotとTake High Res Screenshotの違い
- ゲーム終了ボタンを作成する方法
- 「Save Game To Slot」の戻り値がfalseになる問題の解決方法
- 画面上にメッセージを指定された時間表示させる方法
- シェーダコンパイル時間を短縮する方法
- 「Take High Res Screenshot」実行時に「シェーダをコンパイル」に長時間待たされる問題とその解決策
- データベースを活用する方法
- UE5.5がインストールされた環境にUE5.4を追加で導入する方法
- World PartitionとWorld Compositionの違い
- オープンワールドテンプレートとは?
- ポーンをスポーンさせても視点を切り替えない方法
- キャラクター同士がすり抜けてしまう問題の解決方法
- キャラクターの外見を動的に変更
- World Partitionでインスタンスが「アンロード済み」になる問題
- データ アセットとデータ テーブルの違い
- コンポーネントイベントグラフ内で親クラスの変数にアクセスする方
- エディターのソースコードの自動保存の頻度を高める方法
- SpawnActorでSpawn Transform Rotationが反映されない理由
- ミニマップを表示しポーンの位置を反映する方法
- RInterp ToとVInterp Toの違い
- 毎秒実行するイベントの定義方法
- Niagara のエフェクトにコリジョンを持たせる方法
- 「Overlap」と「Hit」の違い
- OverlapはあるがHitがない原因
- Overlapした位置の座標を取得する方法
- ブループリントでレベル間のパラメータを受け渡す方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Oracle 19cのSAVEPOINT|部分ロールバック・COMMIT・DDLの境界 2026-10-26 15:51:40
- Oracle 19cのUPDATE文|更新件数・NULL・相関サブクエリ・MERGE 2026-10-26 15:51:40
- Oracle 19cのHAVING句|WHEREとの違い・NULL・集計条件 2026-10-26 15:51:40
- Oracleの制約|NOT NULL・UNIQUE・主キー・外部キー・CHECK 2026-10-26 15:51:38
- Oracle SQL関数まとめ|集計・文字列・日時・NULL・分析関数 2026-10-26 15:51:38
- Oracle 19cのROLLBACK|SAVEPOINT・DDLの暗黙COMMITと製品別の違い 2026-10-26 14:28:53
- Oracle 19cのDDLとは|CREATE・ALTER・DROPと暗黙COMMITの注意点 2026-10-26 14:28:53
- Unityで処理を一定時間待つ|WaitForSeconds・実時間待機と停止条件 2026-10-26 12:51:07
- Unityのビルドに時間がかかる場合の対処法|ログ・照明・シェーダーの確認 2026-10-26 12:51:07
- Blenderのモード変更|Object・Edit・Sculptと操作対象の違い 2026-10-26 11:58:16
- Blenderの頂点・辺・面の選択|旧画像・X-Ray・選択数の読取り 2026-10-26 11:58:16
- Blenderのカメラ移動|視点・配置・Fly/Walkと追従の違い 2026-10-26 11:58:16
- Blenderショートカットキー一覧|モード・テンキー・設定の違い 2026-10-26 11:58:16
- Metasequoiaでオブジェクトを結合する方法|旧画面と合成前後の確認 2026-10-26 11:17:22
- Metasequoiaとは|無償・EXの機能差と操作の入口 2026-10-26 11:17:22