Skip to content

Class Pivot ja JP

bbfox0703 edited this page Jul 10, 2026 · 1 revision

🌐 English · 繁體中文 · 日本語

Class Pivot

実験的タブ(デフォルトでオフ)。キャプチャ済みの snapshot(またはライブの DataTable)上で動作します。

Class Pivot タブは、ゲームデータに対する**表計算スタイルのピボット(pivot)**です。1 つのクラスのインスタンスを key でグループ化し(ItemID のような key フィールドの値、またはオブジェクト同一性で)、**グループごとに値フィールドを射影(project)**します — なので、各インベントリアイテムを ItemID と その Count で、あるいは各敵をチームとそのステータスで一目で見られます。

同じグループ内で値が異なる場合は衝突(collision) ⟨N: v1, v2, +M⟩ として表示されます。snapshot キャプチャはすべて数値なので、key は int/enum の ID です。


どのクラスをピボットすべきか分からない? Discover から始める

🔍 Suggest targets — find what changed パネルは自動的な入口です:

  1. 分離したいゲーム内アクション(金を使う、ダメージを受ける、…)の前後で 2〜4 個の snapshot をキャプチャ — ピッカーでそれらにチェックを入れます(古い → 新しい = Before … After)。
  2. 🔍 Discover動いた (class, property) ターゲットをランク付けします — 各々がどれだけゲーム状態らしいか(名前付きフィールド、具体的な変化、低ノイズ)でスコアリング。
  3. 行を選んで Use → (pivot this) で下のピボットに読み込みます。クラス/key の推測は不要です。

Discover の結果の列:Class · Property · Changed · Δ · Category · Shape · Sample (oldest → newest) · Score

仕組みと制限:

  • アクションの前後で 2〜4 個の snapshot をキャプチャ(Before … After)。
  • 3〜4 個を使って、一度きりの変化を一定の毎フレームノイズ(回転、タイマー、位置)から分離します;2 個だけだと、どちらも単に「changed」に見えます。
  • 動いたフィールドのみが現れます — キャプチャ間で一度も変わらなかった値は表示されません。
  • ゲーム再起動をまたぐと、安定した同一性で再出現するオブジェクト(GameInstance / PlayerState / Pawn / コンポーネント / GAS)のみが確実に再接合します;ランダムにスポーンされる actor はできない場合があります。
  • スキャンは snapshot の数値フィールド上でサーバーサイドで実行されます;大きなキャプチャでは数秒かかることがあります(キャンセル可能)。

Pivot target — Source · Snapshot · Class

⚙ Pivot target セクション(折りたたみ可能)が何をピボットするかを選びます。Source を選択:

Source 何をピボットするか Key
Snapshot キャプチャ済み snapshot 内のあるクラスのインスタンス。 key フィールド値、またはオブジェクト同一性(Group by 参照)。
Snapshot Array キャプチャ済みの struct array(例:Cargo)を、その inner-key 値で。 Key = inner-key 値 — 並べ替え・セッションに不変。
DataTable ライブゲームの DataTable🔄 Find DataTables で一覧)。 Key = RowName — ゼロ設定、探索不要。

Snapshot ソースでは、Snapshot を選び Class リストを絞ります(入力して絞り、選択)。それから Run Pivot。基になるオブジェクトに到達するには、グループを選んで Open in Live Walker / Copy Address(グループの代表インスタンスを Cheat Engine に渡す)、または 🌍 / で GWorld / GameEngine 内に Locate します。

Group by(key モード)

単純な Snapshot ソースでは、Group by がインスタンスをどう key 付けするかを選びます(Snapshot ArrayDataTable ソースには Group by はなく、それぞれ常に inner-key 値/RowName で key 付けします):

  • Identity (object path) — スポーン正規化された兄弟(BP_Enemy_C_0 / _1 / …)を一緒にグループ化。「このクラスのすべてのインスタンス」に適しています。
  • FieldKey field 値でグループ化。オブジェクトパスが同一なtransient オブジェクト(例://Engine/Transient/Item)には、これが正しい選択です — Identity モードはそれらをすべて 1 グループに併合しますが、ItemID のような Field key は分けたままにします。

Field picker

どの列が重要かにチェックを入れます:

  • Value — このフィールドの値をグループごとに射影(ピボットの出力列)。
  • Key — このフィールドをグループ key に追加。複数チェックすると**複合 key(composite key)**になります — 例:(Team · Slot) は組み合わせでグループ化(Field モードのみ)。

ピッカーは各フィールドの Type · Distinct · Instances · Key score も表示します — Key score はどのフィールドが良い key かを示唆します(高カーディナリティで ID 形状のフィールドが最高スコア)。

Results

グループごとに 1 行、列は Count · Key · Projected values、そして filter results… ボックス。グループのメンバーが射影値で食い違う場合は衝突形式 ⟨N: v1, v2, +M⟩ を表示します。これ自体がシグナルです(グループ内で一定だがグループ間で変化するフィールドは、そのグループの同一性/ステータスである可能性が高い)。

Hidden classes (Pivot only)

Hide selected class from picker でクラスリストを絞れます;隠されたクラスは Hidden classes (Pivot only) の下に削除可能な chip として現れます。この denylist は Pivot タブに限定されます。


関連ページ

  • Snapshot — Class Pivot(と Discover)が動作する snapshot をキャプチャ。
  • SPC Query — 同じ snapshot の方向チェーンビュー(フィールドごと、N snapshot にわたって)。
  • Detect Stats — より速く、精度は劣る「どのフィールドが HP/MP/Gold か」推測器。
  • Live WalkerOpen in Live Walker / 🌍 / の着地先。

Clone this wiki locally