-
Notifications
You must be signed in to change notification settings - Fork 6
Related ja JP
Related タブは、シードオブジェクトに直接接続された固定の前方所有関係を表示します。具体的には、そのクラス、Outer、Controller↔Pawn リンク、および所有されたコンポーネント / GAS AbilitySystemComponent / AttributeSet が表示されます。これはヘルパー機能であり、完全な参照グラフではありません。このパネルが明示的に収集する関係のみをたどり、すべての逆参照を見つけるわけではありません。
- アクター/オブジェクトのアドレスを持っています([Instances]、[Value-Search]、[Live-Walker] または CE から取得)。そのコンポーネント、GAS AttributeSet、または Controller/Pawn のカウンターパートなど、関連するオブジェクトにすばやくジャンプしたいと考えています。
- 現在ターゲットにされている敵または NPC を自動検出し、クラス名を知らなくても、その関連オブジェクトを検査したいと考えています。
- 使用しない場合:「このオブジェクトを参照しているのは誰か」の網羅的な検索を行う場合は、[Live-Walker] でFind Refsを使用してください。値ベースの検出を行う場合は、[Value-Search] または [Instances] を使用してください。完全なグラフ走査を行う場合は、[Live-Walker] の手動ナビゲーションを使用してください。
Addressフィールドに UObject アドレス(16進数、例:0x7FF6AA000000)を入力するか、[Instances]、[Value-Search]、または [Live-Walker] から🔗 Relatedボタンをクリックして、アドレスを自動的に渡します。
Address ヒント: "UObject / アクターアドレス(16進数)— または別のタブから引き継ぎ"
Loadをクリックします(またはアドレスフィールドで Enter を押します)。シードオブジェクトの関係をスキャンします。
パネルに表示される内容:
- 現在のクラス名(ティール色のテキスト、ロード後に「Self」行から取得)
- スキャン中の進捗バー
- ステータステキスト(例:「5個の関連オブジェクト」)
🎯 Detect targetをクリックして、DLL がプレイヤーが現在ターゲットにしているアクターを推測します。ヒューリスティック:
- プレイヤーチェーンをたどります(GWorld → LocalPlayer → PlayerController → Pawn)
- 候補を肯定的なキーワード(「Enemy」、「Target」、「Creature」)、is-Actor/is-Pawn 構造ゲート、および否定的なキーワード(「ViewTarget」、「Owner」、「Camera」)でスコアリングします
- スコアが明らかに優れている場合(ランナーアップ以上 ≥20 ポイント)、
resolved: trueで最大候補を返します - より弱い候補を「灰色のゲス」として表示します。自動選択が間違っている場合はユーザーがクリックできます
候補はロードボタンの下のリストボックスに表示されます(最良優先)。候補をクリックすると、下のグリッドに読み込まれます。
ツールチップ: "プレイヤーが現在ターゲットにしているアクターを自動検出します(GWorld → PlayerController → Pawn → ターゲットフィールド)および関連するオブジェクトを読み込みます — クラス名の推測なし"
テーブルは関連オブジェクトごとに 1 行を表示します:
| 列 | 説明 |
|---|---|
| Relation | 関係の種類:Self、Class、Outer、Controller、Pawn、AbilitySystem (ASC)、AttributeSet、Owned Component、Owned Object
|
| Object | 表示ラベル(Name : ClassName、またはいずれかが空でない方) |
| Field | このオブジェクトを指している親オブジェクトのフィールド/パス(Self/Class/Outer の場合は空。既知の場合はオフセットヒントを表示、例:AbilitySystem @ 0x2A8) |
| Address | このオブジェクトの 16進数アドレス |
| Action buttons(右端) | 行ごとに 5 つのクイックアクセスボタン(以下の Row Actions を参照) |
- Self — シードオブジェクト自体(開始点)
- Class — オブジェクトの UClass 定義
- Outer — オブジェクトの Outer(UE ヒエラルキー内のコンテナ/所有者)
- Controller — Pawn の場合:制御中の PlayerController / AIController
- Pawn — Controller の場合:制御される Pawn
- AbilitySystem (ASC) — 所有される AbilitySystemComponent(GAS ゲームのみ)。深さ 1 で到達
- AttributeSet — ASC に接続された属性。深さ 2~3 で到達(ASC が統計コンポーネントの後ろにネストされている場合)
- Owned Component — シードによって直接所有される任意の UActorComponent(深さ 1)
- Owned Object — 境界のある走査で発見された他の所有サブオブジェクト(深さ 1~3)
パネルはOuter チェーン所有テストを使用して深さ 3 まで走査します。Outer チェーンがシードにトレースバックする部分オブジェクトのみが含まれます。
各行には 5 つのボタンがあります(左から右へ):
| ボタン | ツールチップ / アクション |
|---|---|
| 🌍 (Locate in GWorld) | GWorld から このオブジェクトまでの最短ポインターパスを見つけ、[Live-Walker] に表示します。ワールドアクター(ポーン、敵、アイテム)に便利です。 |
| ⚙ (Locate in GameEngine) | ライブ UGameEngine からこのオブジェクトまでの最短ポインターパスを見つけます。GWorld グラフが到達できないエンジン層オブジェクト(GameInstance、LocalPlayer、エンジンサブシステム)に到達します。ワールド以外のオブジェクトの場合は、GWorld で検索するのではなくこれを使用してください。 |
| Live (Open in Live Walker) | [Live-Walker] タブでこのオブジェクトに直接ジャンプして、フィールドごとの検査とドリルダウンを行います。 |
| finder (Find Instances) | [Instances] タブを開き、このオブジェクトのクラスのすべてのライブインスタンスを検索します。 |
| Addr (Copy Address) | このオブジェクトのアドレスをクリップボードにコピーし、ステータスメッセージを表示します。 |
任意の列ヘッダー(Relation、Object、Address)をクリックしてその列でソートします。再度クリックすると順序が逆になります。Field列はソートできません(可変長メタデータです)。
- **[Instances]:**行を選択し、🔗 Relatedボタンをクリックします → オブジェクトのアドレスが Related タブに引き継がれ、自動的に読み込まれます。
- **[Value-Search]:**ヒット行で、🔗 Relatedボタンをクリックします → 値のフィールドではなく、所有するオブジェクトが読み込まれます。
- **[Live-Walker]:**ポインターまたはオブジェクト行を選択し、🔗 Relatedボタンをクリックします → ターゲットオブジェクトが読み込まれます。
- **Locate in GWorld / GameEngine:**結果は [Live-Walker] にパンくずパスとして表示されます(クリック時に最新)。
- Open in Live Walker:[Live-Walker] タブに切り替わり、オブジェクトが表示されます。
- Find Instances:[Instances] タブに切り替わり、クラス名が事前入力され、検索が実行されます。
- **Copy Address:**アドレスがクリップボードにコピーされます。ステータステキストがアクションを確認します。
このパネルは意図的に制限されており、前方所有関係のみです:
- 逆参照なし:シードを指しているすべてのオブジェクトを見つけません。[Live-Walker] でFind Refsを使用してください。
- **弱い/ソフトポインターなし:**弱いポインター、ソフトオブジェクトポインター、およびレイジーポインターはトラバースされません(強い所有リンクのみ)。
- **任意のグラフ走査なし:**所有されていないフィールドをウォークしません(例えば、ポーン の Target フィールドが別のアクターを指している)。[Live-Walker] の手動ドリルダウンを代わりに使用してください。
- **シードに依存:**パネルはオブジェクトアドレスから始めるために必要です。ゲーム内のすべてのオブジェクトを列挙することはできません。[Instances] または [Value-Search] を使用してシードを最初に発見してください。
- **ヒューリスティックターゲット検出:**🎯 Detect target機能はキーワードスコアリングと構造ヒューリスティックを使用します。間違ったアクターを選ぶことができます(例えば、真のターゲットと同じキーワードを共有する NPC)— 失敗した場合は、[Instances](クラス名を検索)または [Live-Walker] の手動ナビゲーションに戻ってください。
敵アクター BP_Enemy_C_0 があり、アドレス 0x7FF6AA000000 である場合:
-
アドレスを入力し、Loadをクリックします
-
行が表示されます:
-
Self:
BP_Enemy_C_0@0x7FF6AA000000 -
Class:
BP_Enemy_C@0x7FF6BB000000 -
Outer:
PersistentLevel(またはレベル) -
Owned Component: Health コンポーネント @
0x7FF6CC000000 -
AbilitySystem (ASC):
AbilitySystem@0x7FF6DD000000(フィールド @ オフセット 0x2A8) -
AttributeSet:
HealthAttributeSet@0x7FF6EE000000(ASC が所有)
-
Self:
-
AttributeSet 行のLiveボタンをクリック → [Live-Walker] が開き、そのフィールド(MaxHealth、CurrentHealth など)が表示されます
-
AbilitySystem 行の⚙ボタンをクリック → [Live-Walker] が GameEngine から ASC へのパスを見つけます
- **オフライン/ライブでないオブジェクト:**アドレスがライブ(割り当てられた)UObject でない場合、ステータスに「関連するオブジェクトが見つかりません(アドレスはライブ UObject ですか?)」と表示されます。
- **破損した Outer チェーン:**オブジェクトの Outer ポインターが無効であるか、解放されたメモリを指している場合、ウォークが早期に停止する可能性があります。
- **GAS が使用されていない:**非 GAS ゲームでは、AbilitySystem / AttributeSet 行は表示されません(ウォークはスキップします)。
- **深いネスト(深さ 3 キャップ):**ゲームが 3 レベルより深くコンポーネントをネストしている場合、それらに到達しません。
- Live-Walker — フィールドごとの検査、ポインタードリルダウン、パス検索、およびFind Refs
- Instances — フィルタと検索を使用したクラスベースのオブジェクト検出
- Value-Search — グループモードと深いコンテナスキャンを使用した値駆動検索
- Object-Tree — 完全なクラス/オブジェクトヒエラルキーの参照