-
Notifications
You must be signed in to change notification settings - Fork 6
Options and CE Export Options ja JP
UE5CEDumper には、何を読み取り、Cheat Engine データをどう書き出すかを制御する2 つの独立した設定グループがあります。これらは 2 つの異なるメニューに存在し、混同しやすいため、本ページでは各項目を 1 つずつ説明します。
| メニュー | 場所 | 制御する内容 |
|---|---|---|
| ⚙ Options(上部ツールバー) | ウィンドウ上部ツールバーの Address: セレクタの隣 —— すべてのタブから見える | グローバルな読み取り/表示/エクスポートの形状上限(配列/プレビュー上限、ドリル深度、CE 文字列長、ロケート深度)。エクスポートセッションごとに一度設定すればよい。 |
| Options(Live Walker) | Live Walker タブのツールバー内、ウォークがデータを読み込むと表示される | Copy CE XML と Copy CE Field に対するエクスポート単位の CE メモリレコード整形(説明フォーマット、チェーン折りたたみ、構造体フラット化、重複排除など)—— 一般に CE Export Options と呼ばれるパネル。 |
どちらのメニューも再起動後も保持されます(%LOCALAPPDATA%\UE5CEDumper\ui-options.json に保存)。ただし後述の 2 つの例外(AOB と Guess? はセッション限りで有効)があります。
上部ツールバーの ⚙ Options をクリックしてポップアップを開きます。これらの設定はエクスポートセッションごとに一度だけ調整するもので、頻繁に切り替えるものではないため、1 つのボタンの背後にまとめられています。各スライダーのライブ値はラベルの隣に表示されます。
⚙ Options ボタンのすぐ左にある Address: ドロップダウンは、ポップアップの一部ではありませんが、すべてのアドレスの表示とコピーのされ方を決定します。3 つの形式があります:
-
Hex (no prefix) —— 生の実行時アドレス、例:
7FF71B7A1820。 -
Hex (0x prefix) —— 同じアドレスに先頭
0xを付けたもの、例:0x7FF71B7A1820。 -
Module+Offset ——
"module.exe"+RVA(モジュールベースからのオフセット、0xプレフィックスなし)。ゲーム再起動後も有効なまま(モジュールベースは移動するが、オフセットは変わらない)。
チェックボックス。オンにすると、CE XML エクスポート内のポインタチェーンのグループノードにマークが付き、Cheat Engine がデフォルトでその子項目を折りたたむ(隠す)ため、貼り付けたアドレスツリーがすっきりします。これはエクスポートされる XML にのみ影響し、Live Walker 内部でのドリル方法は変えません。
スライダー、2^N(範囲 2 – 16384、デフォルト 128 = 2^7)。TArray / コンテナのプレビュー時にインラインで読み取る要素の上限。より大きな配列も一覧表示はされますが、一度にメモリへ読み込むのはこの数までです。値が高いと ⚠ High memory usage — may cause crash の警告が表示されます —— 巨大な配列を本当に深く見る必要があるときだけ上げてください。
スライダー、2^N(範囲 64 – 8192、デフォルト 512 = 2^9)。Cheat Engine の DropDownList(CE がレコード上に表示する enum/値ピッカー)に出力するエントリ数の上限。単一のエクスポートレコードが持てる列挙ドロップダウンの大きさを制限します。
スライダー、2^N(範囲 16 – 4096、デフォルト 256 = 2^8)。Copy CE XML / Copy CE Field が生成する CE String フィールドの表示長(文字数)。余裕のある値でも、より短いライブ文字列を切り詰めることはありません(Cheat Engine は null 終端で停止します)—— 単に、セーブ間で長くなる文字列のための余地を確保するだけです。
スライダー、2^N(0 = オフ、それ以外は 2 – 4096)。Copy CE Field 専用。 設定すると、選択された最上位の TArray がこの数の要素行までパディングされます —— 配列のライブ Num を超える null ポインタとインデックスは、解決済み要素のフィールドレイアウトから捏造されるため、後のセーブやゲームバージョンが保持する項目のためのスロットが CE テーブルにあらかじめ用意されます。注意点:
- パディングされるのは選択された配列のみで、その要素内部のネストされた配列は決してパディングされません。
-
TArrayのみ ——TMap/TSetは疎(sparse)であり、決して捏造されません。 - 現在の
Numを超える行は、ゲームが配列を拡張するまで終端超えのメモリ(無害)を読み取ります。 - 256 を超える値は「自己責任」 —— 非常に大きなテーブルを生成し、Cheat Engine を遅くしたり、エクスポートエントリ上限に達したりする可能性があります。
スライダー(範囲 0 – 6、デフォルト 2)。フィールドグリッドの Value 列に構造体のサブフィールドをいくつインラインで表示するか。0 でプレビューを無効化します。純粋に表示上の利便性で、エクスポートされる内容は変わりません。
スライダー(範囲 0 – 8、デフォルト 0)。CSX export と Copy CE XML / Copy CE Field のポインタドリル深度:各レベルで、すべてのオブジェクトポインタフィールドが独自のサブツリーへ展開されます。
- 0 = フラット(ドリルなし)。
- 1 – 4 = 通常。
-
5 – 6 = 深い —— 出力サイズはレベルごとに指数的に増加します(
UWorldに対する深度 6 は数 MB の CE XML を生成しうる)。深度が高いとスライダー値がアンバー/赤に変わり、サイズへの影響を知らせます。
スライダー(範囲 1 – 32、デフォルト 7)。下に Deep (nested containers) チェックボックスがあります。Locate in GWorld / Locate in GameEngine の前方探索を制御します(Live Walker ページ参照):
- Depth —— 幅優先探索が GWorld から下向きに辿るポインタホップ数の上限。大きいほど深いターゲットを見つけられますが、遅くなります。
-
Deep (nested containers) —— デフォルトはオフ。オンにすると、探索は 1 レベルの struct-array / struct-set / struct-map 要素内に格納されたオブジェクトポインタも辿るため(例:
Inventory[3].ItemActorからのみ参照される Actor)、通常は到達できないオブジェクトも特定できます。訪問した各ノードで struct-array の要素を読み取るため、より重くなります。
未接続時でもこれらは編集可能なままなので、ロケートを実行する前に調整しておけます。
スライダー、2^N(範囲 16 – 4096、デフォルト 256)。Instances タブの Lookup deep スキャン —— ネストされたコンテナ(例:SaveSlotList[1]…Tunes[N])に埋もれた値を見つける再帰的な下降 —— のコンテナごとの要素プローブ上限。高速な浅いルックアップが何も見つけられなかったときにのみ実行されます。高いほど高い要素インデックスの値に到達できますが、遅くなります。
Live Walker タブ内で、ウォークがデータを読み込むと、パネルツールバーに Options ドロップダウンが表示されます(ツールチップはこれを Copy CE XML / Copy CE Field options と呼びます)。ここのすべての項目は、エクスポートするフィールドが Cheat Engine のメモリレコードにどうなるかを変えます —— ブラウズ中に見えるものは変えません。
特記のない限り、各項目は Copy CE XML と Copy CE Field の両方に適用されます。
各ノードのフィールドオフセット(16 進数)を CE Description に付加します —— 例:AbilitySystemComponent (7E0)。CE アドレスツリー内での位置把握に役立ちます。オフ = 名前のみ。
各ノードのクラス/構造体/要素の型を CE Description に付加します —— 例:AbilitySystemComponent (LSAbilitySystemComponent) または [0] (ShieldAttributeSet)。折りたたまれた(Collapse chain)背骨には型が付くことはありません。オフ = 名前のみ。
(区切り線が、上記 2 つの Description オプションと下記の構造的オプションを分けます。)
ハードコードされた絶対値の代わりに、AOB スキャンで得た GWorld シンボルでエクスポートのルートアドレスを固定するため、エクスポートがゲーム再起動後も生き残ります。ウォークのルートが GWorld でかつ AOB シンボルが利用可能な場合にのみ選択でき、それ以外ではこの項目はグレーアウトします。(セッション限り —— 再起動後は保持されません。)
多レベルの GWorld → … → target ポインタホップを単一の CE 多レベルポインタエントリ(ベース + 統合された 1 つの背骨ノード + ドリルダウン付きのターゲットフィールド)に折りたたみます。よりフラットで読みやすい CE 構造を生成します。Copy CE XML / Copy CE Field のみ。
GAS の GameplayAttributeData 構造体(HealthPoint、Mana、…)は通常 BaseValue / CurrentValue の子を持つ親ノードとしてエクスポートされますが、これらの子を結合オフセット上の例えば HealthPoint ▸ BaseValue という名前の兄弟リーフへ昇格させます —— ノードが減り、CE で読み書きしやすくなります。GameplayAttributeData 構造体のみが対象で、他の構造体はネストされたグループを保ちます。▸ セグメントは Append +Offset に従い、構造体の型(Append +Type)は最後に一度だけ表示されます。
Flatten GAS attributes のスーパーセット。 全内容が基本的なインライン値(int / float / bool / enum)であるあらゆる終端構造体 —— 例:Vector(X/Y/Z)、Rotator、あるいは単純な {Min, Max} のペア —— を結合オフセット上の Struct ▸ Field 兄弟リーフへフラット化します。ポインタ/オブジェクト、文字列(FString / FName / FText)、またはコンテナを含む構造体は、ネストされたグループを保ちます(ポインタに裏打ちされた値は決してフラット化されません)。
Flatten primitive-leaf structs のスーパーセット。 基本的なスカラーに加えて、FName と FString(FString / FUtf8String / FAnsiString)フィールドもリーフとして受け入れます —— そのため {Score, Time, Rank, MsID (FName), PilotName (FString)} のようなセーブデータレコードは、TMap / TArray 内に格納されたレコードを含め、すべてのフィールドが Struct ▸ Field 兄弟リーフへ昇格されます(要素ごとのグループはフラットな行へ折りたたまれます)。FName はその 4 バイトインデックスとして、FString は CE String(Data ポインタの 1 回の逆参照)としてレンダリングされます。それでもポインタ/オブジェクト、FText、コンテナ、または未解決のネスト構造体を含む構造体は、ネストされたグループを保ちます。
Record Colors エディタを開きます。レコードの TMap / TArray が(上記のオプションで)フラット化されると、各要素の行がインデックスの偶奇で色付けされ、要素ごとのフォルダが消えてもレコードが CE 内で視覚的に区別できるようになります。偶数インデックス(struct[0]、[2]、…)と奇数インデックス(struct[1]、[3]、…)の行は異なるテキスト色になります —— 中立的なプリセットパレットまたは 16 進値から選ぶか、Reset で CE のテーマを使います。デフォルト:偶数 = アズール(azure)、奇数 = 未設定。保持されます。
ドリルされたポインタのターゲットが単一の監視可能な値を保持しているとき、それを 1 レベル折りたたみます。Object/Weak などのポインタが、唯一のフィールドがスカラー、FName、または FString であるオブジェクトへ解決される場合、それは単一の子を含むフォルダの代わりに、ポインタオフセット上で逆参照チェーンを持つ 1 つの Pointer ▸ Field レコードとして出力されます(「文字列へのポインタ」のケース)。ターゲットに 2 つ以上のフィールドを持つポインタは、そのグループを保ちます(そのオブジェクトの同一性は境界を設ける価値があります)。
デフォルトはオン。 ドリルされた各オブジェクトを一度だけ展開します:複数のフィールドから(または後方参照経由で)到達される共有オブジェクトは、最初の一度だけ完全に展開され、以降はフラットな (shared) ポインタとして表示されます。これにより、ドリルダウンが密に接続されたオブジェクト(例:World)に到達したときに起こる巨大/メモリ不足のエクスポートを防ぎます。オフ = すべての参照を完全に展開 —— 高い Drill Depth では非常に大きくなりえます。
デフォルトはオン。 ポインタ/構造体の子へドリルするとき、オブジェクトクラスがシステム/エンジンアセット(Widget、SoundBase、Texture、Material、ParticleSystem、Niagara、AnimInstance)であるフィールドをスキップし、CE エクスポートをゲームプレイデータに集中させます。明示的に選択したフィールドは常に保持されます —— フィルタされるのは解決された子のみです。ゲームプレイクラス(Actor / Pawn / Character / コンポーネント / Controller / PlayerState / GameInstance)は決してスキップされず、コンテナ(array/map/set)の要素もフィルタされません。何かが除外されたときは「N system fields hidden」の注記が表示されます。
既知の UPROPERTY フィールド間の隙間を、推測したデータ型(pointer、float、int など)で埋めます —— リフレクションメタデータを持たないネイティブ(非リフレクション)C++ メンバーを浮かび上がらせるのに便利ですが、ノイズが多くなります。デフォルトはオフ。パネルは一部の状況で自動的にチェックすることがあります。(セッション限り —— 再起動後は保持されません。)
| 設定 | Copy CE XML | Copy CE Field | CSX export | CE AA script |
|---|---|---|---|---|
| Collapse Pointer Nodes | ✅ | — | — | — |
| Array Limit / Preview | 表示 + インライン読み取り | 表示 + インライン読み取り | — | — |
| String Len | ✅ | ✅ | — | — |
| Fabricate | — | ✅ | — | — |
| Drill Depth | ✅ | ✅ | ✅ | — |
| Append +Offset / +Type | ✅ | ✅ | — | — |
| Collapse chain | ✅ | ✅ | — | — |
| Flatten GAS / primitive-leaf / leaf records | ✅ | ✅ | — | — |
| Collapse single-leaf pointers | ✅ | ✅ | — | — |
| Dedup shared objects | ✅ | ✅ | — | — |
| Skip system components | ✅ | ✅ | — | — |
| AOB | ✅ | ✅ | — | ルートを固定 |
- Live Walker —— Copy CE XML / Copy CE Field と CE Export Options がある場所。
- Instances —— Deep container scan cap が制御する Lookup ディープスキャン。
- Value Search —— その Deep オプションは Locate in GWorld → Deep に対応します。