[WEB App] PMX Scale & Transform Adjuster - PMXモデルのスケール調整&バイナリパッチツール

[WEB App] PMX Scale & Transform Adjuster - PMXモデルのスケール調整&バイナリパッチツール

概要

PMX(MikuMikuDance モデルフォーマット)ファイルのスケール変更、Y軸回転、原点補正をブラウザ上で完結させるWebツール。 アップロード不要で、ファイルはローカル環境(ブラウザ内)で処理され、外部サーバーには送信されません。

PMXバイナリを直接パースしてオフセットを記録し、エクスポート時にFloat32値を直接書き換えるバイナリパッチ方式を採用。ファイル構造を一切変更しないため、他のツールとの互換性を維持したままスケール調整ができます。

🔗 ツールを開く: PMX Scale & Transform Adjuster

[WEB App] PMX Scale & Transform Adjuster - PMXモデルのスケール調整&バイナリパッチツール [WEB App] PMX Scale & Transform Adjuster - PMXモデルのスケール調整&バイナリパッチツール

開発の経緯

3D Scale & Transform Adjuster(GLB版)を作った直後に、本来作りたかったPMX版を作成しました。

lain-lab.com ではMMD関連のツール MMD to GLBVRM to MMDPMX Checker)を複数公開しており、PMXモデルのスケール調整が必要になる場面が多くありました。

  • VRM to MMDで変換したモデルのサイズ微調整
  • 異なるスケールのモデルを統一サイズに揃えたい
  • PMXエディタを使わずにブラウザだけでスケール変更を完結させたい

PMX Checkerで実装済みのバイナリパーサーをベースに、スケール書き換え機能を追加して作りました。

使い方

1. モデルを読み込む

左サイドバーの「モデル読み込み」エリアからファイルを読み込みます。

  • ドラッグ&ドロップ — PMXファイルまたはPMXを含むZIPファイルを破線エリアにドロップ
  • クリックで選択 — エリアをクリックしてファイル選択ダイアログから選ぶ

読み込みが完了すると、右側の3Dビューポートにモデルのプレビューが表示されます。ZIP入力の場合はテクスチャ付きで表示、PMX単体の場合はシルエット表示になります。

[WEB App] PMX Scale & Transform Adjuster - PMXモデルのスケール調整&バイナリパッチツール ( 1. モデルを読み込む )

2. スケールを調整する

一括スケール (Uniform)

スライダーまたは数値入力でモデル全体のスケールを調整します。よく使うスケール値はプリセットボタンから一発で設定できます。

プリセット用途
0.01 (cm to m)PMXモデル(cm単位)をメートル単位に変換
0.1 (10%)10倍サイズのモデルを正規化
0.5 (50%)モデルを半分のサイズに縮小
1.0 (等倍)デフォルト
2.0 (2倍)モデルを2倍に拡大
100 (m to cm)メートル単位のモデルをcm単位に変換

軸別スケール (X / Y / Z)

「軸ごとのアスペクト比を固定」チェックを外すと、X・Y・Z軸を個別に調整できます。

[WEB App] PMX Scale & Transform Adjuster - PMXモデルのスケール調整&バイナリパッチツール ( 2. スケールを調整する )

3. 原点・位置・向きを補正する

オプション内容
Y軸回転 (向き)0° / 90° / 180° / 270° でモデルの向きを変更
XZ軸を中心に自動配置モデルのXZ中心を原点 (0, 0) に移動
底面を Y=0 に自動配置モデルの底面を地面(Y=0)に揃える
[WEB App] PMX Scale & Transform Adjuster - PMXモデルのスケール調整&バイナリパッチツール ( 3. 原点・位置・向きを補正する )

4. 適用範囲を選択する

スケール・回転の適用先を個別にON/OFFできます。

対象内容
頂点座標メッシュの頂点位置と法線
ボーン座標ボーンの位置とテールオフセット
モーフオフセット頂点モーフ・ボーンモーフの移動量
剛体(位置・サイズ)物理演算用剛体の位置とサイズ
ジョイント(位置・制限)ジョイントの位置と移動制限値

通常は全てONで問題ありませんが、剛体やジョイントだけスケールしたくない場合など、柔軟に対応できます。

[WEB App] PMX Scale & Transform Adjuster - PMXモデルのスケール調整&バイナリパッチツール ( 4. 適用範囲を選択する )

5. サイズを確認してエクスポート

画面下部の「サイズ情報 (Bounding Box)」で、元のサイズと調整後のサイズをリアルタイムに確認できます。

調整が完了したら「💾 調整済み PMX をエクスポート」ボタンでPMXファイルをダウンロードします。ファイル名は 元のファイル名_adjusted.pmx になります。ZIP入力の場合はZIPに再パッケージされます。

[WEB App] PMX Scale & Transform Adjuster - PMXモデルのスケール調整&バイナリパッチツール ( 5. サイズを確認してエクスポート )

テクスチャプレビュー

PMXのテクスチャは外部ファイル参照(相対パス)のため、テクスチャ付きプレビューはZIP入力時のみ対応しています。

  • ZIP入力 — ZIP内のテクスチャファイルを自動検出してマテリアルに適用。Shift_JISファイル名にも対応
  • PMX単体入力 — テクスチャなしのシルエット表示(マテリアルのdiffuseカラーは反映)

スケール調整の動作自体はどちらの入力方式でも同一です。テクスチャプレビューは見た目の確認用で、エクスポートされるPMXデータには影響しません。

バイナリパッチ方式について

一般的なスケール変更ツールはモデルデータを完全にパース → 変換 → 再シリアライズしますが、本ツールはバイナリパッチ方式を採用しています。

  1. PMXバイナリをパースし、スケール対象データ(頂点座標、ボーン位置など)のバイトオフセットを記録
  2. エクスポート時にオリジナルバッファのコピーを作成
  3. 記録済みオフセットのFloat32値を直接書き換え

この方式のメリット:

  • ファイル構造が一切変わらない(モーフ、表示枠、剛体、ジョイント等のセクション構造が保持される)
  • 再シリアライズによるデータ欠落のリスクがない
  • 処理速度が速い(必要な箇所だけを書き換え)

関連ツール

ツール用途
3D Scale & Transform AdjusterGLB/GLTFモデルのスケール調整&ベイク
PMX CheckerPMXファイルのチェック&修復
MMD to GLBPMX + VMDからアニメーション付きGLBを生成
VRM to MMDVRMモデルをPMX形式に変換
VRM OptimizerVRMモデルのWebP + Draco圧縮

技術仕様

項目内容
PMXパース独自実装バイナリリーダー(DataView)
対応バージョンPMX 2.0 / 2.1
対応ウェイトBDEF1 / BDEF2 / BDEF4 / SDEF / QDEF
スケール方式バイナリパッチ(構造非破壊)
3DプレビューThree.js r128(頂点・面データから直接メッシュ構築)
テクスチャZIP入力時にBlobURL経由で読み込み
ZIP処理JSZip(Shift_JISファイル名対応)
フレームワークAstro
データ処理全てブラウザ内、サーバー通信なし

対応ブラウザ

WebGL対応のモダンブラウザ(Chrome / Edge / Firefox / Safari)。 大規模モデル(頂点数10万以上)の処理にはPC環境での利用を推奨。

利用上の注意

  • スケール変更はPMXバイナリの数値を直接書き換えるため、元ファイルのバックアップを推奨します
  • テクスチャファイル自体は変更されません。テクスチャ付きプレビューはZIP入力時のみ対応しています
  • MMDモデルの利用にあたっては、各データの利用規約を遵守してください