1 Formats and assets
darask edited this page 2026-10-19 15:16:03 +00:00

資産・ファイル形式の解析結果

このページは固定コミットに保存された解析記録の要約です。全ファイルが読めることと、ゲームでの意味や表示が一致することを区別します。

パックと検索

PFH5の索引読込と境界検査を実装し、調査時の549パックについてパック全体と格納ファイルのSHA-256を記録しています。格納本文後の256バイトは確認していますが、署名の暗号学的検証は実施していません。同じ仮想パスに異なる内容がある場合、抽出時にパックを指定しなければ拒否します。

後続では索引名の復号をC++へ移し、1,551ケースの原本比較を記録しています。ハッシュ・検索・優先比較は2,053ケース。優先関係のグラフ、descriptor種別、検索順序を扱いますが、実ゲーム全体で競合資産の最終採用結果を再現できたという意味ではありません。manifestの行順だけで優先順位を決めません。

根拠: 形式、索引名、provider経路、優先比較。

DB・テーブル

GUID、版、エンコード識別子、行数を読み、全行とEOFを検査して、再エンコードしたバイトが一致するか確認します。公開schemaは候補として扱い、原本と合わない列順はそのまま採用しません。重複する new_field を辞書にして消すことも避けています。

対象 分かったこと 意味が未確定の部分
unit_fatigue_effects v3 10行。fatigue_level → float value → statの順 文字列の疲労状態とruntime enumの全対応
ground_types v8 15行の構造・再生成一致 アイコン候補や末尾文字列などの意味
ground_type_to_stat_effects v3 97行。地面・倍率・対象group・stat、地面参照の整合 元の内部ID生成との接続
arena_unit_trees v21 361行、live317行のTier・色・消耗品枠・勢力・配置 購入・研究条件・成長処理の全仕様

空表の空本文を確認したことは、非空の行形式を解析したことにはなりません。名前が分かる列でも、適用順・単位・戦闘式は別に確認します。形式の詳細

モデル・描画

RMV2 v5/v6のLOD、標準材質ヘッダー、頂点、三角形、テクスチャ参照をC++で読めます。v1や一部の独自材質・ブロック順には未対応です。

  • lorica_segmentata_a のhalf4位置はW=0。XYZへWを掛けると潰れるため、観測したデータでは無倍率として扱い、宣言境界との一致を確認しました。
  • 2影響の頂点ウェイトは最初の値と 1-w。隣のpaddingを第2ウェイトとして使うと形状が崩れます。
  • 4影響では量子化後の合計が256になる例があり、ビューアーでは超過1刻みを正規化します。原シェーダーの厳密な扱いは未検証です。
  • 色マスク、法線の固有packing、損傷・布・植生、特殊材質、原作の光源処理には差が残ります。

variantの同名SLOTは候補として保持し、プレビューでは非upgradeの最初の候補を選びます。原作の確率・選択規則を復元したものではありません。形式と観測した差

アニメーション・地形

v3/v4/v5/v6について宣言された骨数・チャンネル・フレームでEOFまで消費し、親番号や範囲を検査しています。TWAのv6には骨格名の直後にフラグ文字列リストがあり、観測した1,437件へ対応しています。攻撃・発射・効果音のイベント接続、遷移・blend・root motionと戦闘時間の統合は別の残件です。

LOCの日英データ、BMDのカメラ・配置・領域、限定的な地形materialをプレビューへ接続しています。建物の画面表示には暫定的なpiece選択があり、建物定義・破壊状態の完全再現ではありません。形式、動作・運動

建物reader・provider

建物取得・生成前半、reader本体、キャッシュ、生成後登録、metadata、buffered streamの限定経路を段階的にC++化しています。実pack metadata124件の通常読込とcold backend初回生成の比較記録があり、cold側はcleanup入口までが一致範囲です。Windows API等を試験境界に置く経路もあります。

一般remap、圧縮backend、排他解放や一部の診断分岐、生成前後を含むworld/Godotへの接続は資料ごとの残件を確認します。reader単体の成功を建物全体の完成としません。reader、providerの正式比較、限定chunk読込