☆ serde-hkx CLI [ユーティリティ] ID:126214 Author:SARDONYX 2026-05-07 02:24 Version:1.0.0
- RATE: ★=5 [DOWNLOAD SITE]
-
TAG: [ツール] [変換] [MOD作成]
[編集する] [日本語化UP]🤖 AI要約原文からAIが自動生成した要約の為、内容は未検証です。 2026-09-07 [このMODの説明を記入する]

serde-hkx CLI
「hkx」と「XML」を相互に変換するコマンドライン版のツール。中身の解析と差分の確認もできます。
▼ 機能
・32ビットと64ビットの「hkx」と「XML」の相互変換
・バイト単位の確認
・16進ダンプの表示
・依存関係の木の表示
・「hkx」のバイト差分
▼ 使い方
・「defaultmale.hkx」のようなファイルを編集する場合は、まず「verify」で元へ戻せるかを試すよう勧めている。公式のSDKを使わないため復元の保証は無い
・「hkx」から「XML」を経て「hkx」に戻すと一部のデータが失われる。「hkx」から「hkx」への変換では失われない
▼ 注意
・「XML」の重複した項目は無視される
・「XML」で欠けている項目は初期値で埋められる
・「Fallout 4」の「hkx」への変換はおそらく不可。バイナリの構造がSDKの版に依存するため
▼ 既知の問題
・「QsTransform」の拡大縮小の欄が再現されない
・「hkxcmd」の索引の付け方とは異なる。本ツールは「hkRootLevelContainer」を起点とする直列化の順に従って1から振る
▼ 注記
・作者は開発に約800時間かけたとしており、当初の目的は達したため今後は重大な不具合以外は扱わないとしている
・画面付きの版として「Hkx Conversion Tool」「Composite HKX Conversion GUI」があり、関連ツールとして「D Merge (Diff and Merge json based hkx patcher)」があるSkyrim Special Edition Nexus, SARDONYX. 7 May 2026. serde-hkx CLI. 8 Aug 2024 <https://www.nexusmods.com/skyrimspecialedition/mods/126214>.スポンサーリンク
スポンサーリンク
上記説明は古い又は異なる場合があります。導入の際はDescriptionを確認の上、自己責任でお願いします。
説明はどなたでも編集する事が可能です、古い又は異なる場合は編集にご協力をお願いします。
To users except in Japan - コメントコメントだけでも投稿できます。気に入ったMODはNEXUSでもENDORSEしましょう。
[Spoiler]テキスト[/Spoiler]とする事で隠しテキスト、#や>>後、半角数字でアンカーを使用可。 -
-
▼ Version : 0.7.0#5名無しそれは非常に興味深い問題ですね
良ければGitHubのissueかどこかに問題のhkxを投下して頂けると助かります
ログを解析して原因を特定できるかもしれません ID:U4YWM4Y2 Day:0 Good:0 Bad:0- Good
- Bad
- 126214
#4名無し私の使用方法がいけないのかもしれませんがx64.hkx -> xmlではhkxに仕込んだannotationが復元されません。 ID:EzZTg0OD Day:1350 Good:0 Bad:0- Good
- Bad
- 126214
#3名無しDMCO.hkxの再変換バグ報告を受け流石にテスト数が足りないと思い、再現検証コマンドを実装したところ、残念ながら13944ファイル中988個のhkxが元に戻せないことが判明し、調査したところ 2つの修正が必要でした
- virtual_fixupsの奇妙な範囲指定 -> 単純な変数ミスでした
- 謎のalign16
-> これは新たに発見したhkxの仕様です。
どうやらポインタの先の書き込みが2回以上ネストした場合3回目は16の倍数のバイト列に書きこむという謎の仕様があるようです。
これ行わない場合98個のLEファイルのhkxの再現に失敗します。
新たにverifyサブコマンドの実装(v0.6.0)とプログレスバーの実装(v0.7.0)を行いました。
私のhkx変換が絶対正しいとは限らないため元のhkxに変換できるか検証できるサブコマンドが欲しいと考えたためです。
./hkxc verify ./defaultmale.hkx
./hkxc verify ./dir
のように使います。内部ではhkx -> Rustのデータ型 -> new_hkx -> hkxとnew_hkxを比較し、
ファイルを指定したとき -> 異なった場合16進ダンプで差異が表示されます。
フォルダ指定したとき -> 再現に失敗したパスを全列挙
します
基本的にまずこのverifyコマンドを使い編集予定のhkxを再現可能かテストしてから編集すると安心だと思います ID:U4YWM4Y2 Day:963 Good:1 Bad:0- Good
- Bad
- 126214
▼ Version : 0.2.0#2名無し0.2.0の現状において「このコマンドは使い物になるのかどうか?」についての日本語報告です。
現時点のまとめ:
- hkx変換器として使える可能性は非常に高いです
- hkxcmdと完全一致したXML出力はほぼ無理な状態です。(仕様上ツリー構造やデータ内の値は同じですが#0001などの順番付け方法が再現困難)
詳細:
これを利用したGUI版(Hkx Conversion Toolを書いている方のバグ報告により「配列内Classの中にClassがある」といったネストした配列のhkx変換が間違っていたことが判明し、これが修正されました。(これがエラーする限りhkanno64の代替品にはなれません)
この修正時点で3つのテストデータがhkxcmdによるhkx出力と完全一致することが確認されました。つまり現状は既知の致命的バグ全てを排除した状態であるといえます。(0.1.2でx86のptrサイズ修正とf16の独自仕様の誤解を修正したことも加えて)
またhkxcmdとの互換性テストを書いているときに気づいたのですが実は変換にXMLを介するとゲーム内にあった元のhkxを完全に復元することができなくなります。
これはXMLでは表現されないバイナリデータのみに存在する情報の損失が原因です。この損失がどのような影響をもたらすのかは現時点では不明です。
暫定処置としてこれを書いている段階でGitHub上でv0.3.0をリリースし、jsonおよびyamlへの変換を試験追加しました。内部で共通のデータ型に変換されるためjson -> hkxなども可能です。これらはRustの生データをそのまま出力しているため可読性も低いですがデータ損失率が極めて低いことが期待されます。 ID:U4YWM4Y2 Day:876 Good:2 Bad:0- Good
- Bad
- 126214
▼ Version : 0.1.0#1名無し皆さんこんにちは。
今回はhkxを研究する過程でちょっとしたCLIを作りました(日の目を見ることはないかもしれませんが)
以下が機能です。
- 32bit/64bitのhkxからXMLを作成(逆変換も対応)
- hkxやXMLのステートマシンから依存関係のtreeを表示(これで各indexのクラスの関係性が可視化できます)
- hkxやXMLへの変換途中の処理内容をログに書き込む
- バイナリデータの16進数表示(これとログとC++のクラス定義と照らし合わせてバイナリデータのどのバイト位置にどんな値が来るのかを割り出すことができます)
またGitHubの最新バイナリ(GitHub Actionのアーティファクト)では
- hkxやxmlのtreeが循環参照していた場合のエラーを表示
- 2つのファイルのdiffを表示
- hexdumpの逆変換
にも対応させています
かなりのテストと修正を行っていますが、正直hkxファイルについて不明な点が多くまだ実験的な扱いです。
そして以下のURLでは手作業でhkxファイルを読み取っていく試みの過程が書いてあります。(hkxのバイナリデータの内部構造が理解できるかもしれません)
https://github.com/SARDONYX-sard/serd… ID:U4YWM4Y2 Day:833 Good:4 Bad:0- Good
- Bad
- 126214
- 作者(SARDONYX)さんのMOD※Authorの検索結果のため別作者さんのMODが表示される場合があります。
- 機械翻訳 説明引用 [原文]
「x86x64 hkx <> XML の変換、デバッグ バイト、hexdump の表示、deps ツリーの表示、hkx バイト diff」
スポンサーリンク
スポンサーリンク