
  VMD Retarget   V1.21i8 
    　　　　　　               Copyright(c) F.Issiki 2022, 2026 

  
    モデルのボーン角度の違いを補正して、異なるモデル間で動きができ
　るだけ同じになるよう、VMD ファイルを変換するツールです。
　
    Miku Miku Dance (MMD) のモーションファイルである VMD ファイルを
　変換します。
　
　　「腕」「ひじ」「手首」「足」「ひざ」「足首」のボーン角度の違いの
　分だけ、VMD ファイルを補正します。
  (「手捩」「腕捩」ボーンがある場合には、事前に「腕」「ひじ」と統合
　 して、変換後に再分離します。) 

　　先行する類似ツールとして、VMD Sizing がありますが (PMX⇔PMX 変換)、
　VRM モデルおよび PMX モデルの間でも変換できるように意図したのがこの
　ツールです。


【 使用法 】

・VMD ファイルから VMD ファイルへ変換する場合

  (1) (VMD モーションファイルが作成された) 基準となるモデル(PMX,VRM) 
      を、変換元(Source)として、
　　　"learningSourcePMX" または "learningSourceVRM"　
　　　へドロップして、学習してください。
　　　（→ srcpose.ini (全身ボーンの位置・角度情報)が生成されます）
      
      もし、基準となるモデル(PMX,VRM) が(配布停止／終了等で)入手でき
　　　ない場合は、変換元の VMD ファイルを "learningSourceVMD" へ
　　　ドロップしてください。
　　　（→ 腕角度のみの srcpose.ini が生成されます。
　　　　　 (その場合は、手腕の角度のみ変換可能です。)）
　　　
  (2) これから動画等作成へ使用するモデル(PMX,VRM) を、 
      変換先(Target)として、
　　　"learningTargetPMX" または "learningTargetVRM"　
　　　へドロップして、学習してください。
　　　（→ trgpose.ini (ボーンの位置・角度情報)が生成されます）

　(3) 変換したい VMD ファイルを、本ツール VmdRetarget.exe へドロップ
    　してください。
　   （VmdRetarget.exe をダブルクリックして、起動後に VMD ファイルを
　　　　選択してもＯＫです。）

　　すると、ファイル名に「-ret」(ret は retarget の略) と追加された、
　　変換済ファイルが生成されます。


・BVH/VRMA ファイルから VMD ファイルへ変換する場合

  (1) BVH ファイル又は VRMA ファイルを、
　　　"learningSourceBVH" または "learningSourceVRMA"　
　　　へドロップして、学習してください。
　　　（→ srcpose.ini (全身ボーンの位置・角度情報)と、
　　　　　 ペアとなる中間 VMD モーションファイルと、
　　　　　 自動修正のための macro.ini ファイルが生成されます。）
　　　　　 (macro.ini 追加変換が不要の場合、macro.ini ファイルが
　　　　　　生成されないこともあります。) 
      
　　　（注: learningSourceBVH.exe/VRMA.exe は、フルキャプチャー
　　　　　　モーション版のセット内にのみ同梱されています）
　　　
  (2) これから動画等作成へ使用するモデル(PMX,VRM) を、 
      変換先(Target)として、
　　　"learningTargetPMX" または "learningTargetVRM"　
　　　へドロップして、学習してください。
　　　（→ trgpose.ini (ボーンの位置・角度情報)が生成されます）

　(3) 上で生成された中間 VMD モーションファイルを、
　　　本ツール VmdRetarget.exe へドロップしてください。
　   （VmdRetarget.exe をダブルクリックして、起動後に VMD ファイルを
　　　　選択してもＯＫです。）

　　すると、ファイル名に「-ret」(ret は retarget の略) と追加された、
　　変換済ファイルが生成されます。
　　
　　なお、BVH 変換終了後は、macro.ini ファイルを消去することをお勧め
　　します。
　　（BVH 特有の設定が含まれる為、他の変換時に悪影響する場合があり
　　　ます。なお、必要に応じて、事前にバックアップください。）
　　

　現バージョン(V1.21i)で標準対応している BVH ファイルは、Y-up (Y=高さ) 
　で、初期ポーズの左腕方向が +X 方向である (つまり＝X軸Y軸はMMD同方向)  
　の BVH ファイルです。
　
　なお、フルキャプチャーモーションの変換時は (BVH/VRMA は規格上、
　フルキャプチャーモーションの扱いとなります)、macro.ini 内で -FCAP 
　オプションが有効化されているかご確認ください。
　


【 足変換のキャンセル方法 (V1.20f6拡張) 】

　　足の各部の変換を、オプションで ON/OFF できるようにしました。
     (無指定の場合 ON となっています。(デフォルト)) 
　
　　・"-PCLUL=0"  左足　の変換 OFF 
　　・"-PCLLL=0"  左ひざの変換 OFF 
　　・"-PCLF=0" 　左足首の変換 OFF 
　　・"-PCRUL=0"  右足　の変換 OFF 
　　・"-PCRLL=0"  右ひざの変換 OFF 
　　・"-PCRF=0" 　右足首の変換 OFF 

　　各オプションを modsetup.ini 中へ追記することで、OFF できます。
    なお、「=1」を指定した場合は、ON となります。 


【 指変換のキャンセル方法 (V1.20f6拡張) 】

　　指の各部の変換を、オプションで ON/OFF できるようにしました。
     (無指定の場合 ON となっています。(デフォルト)) 

　　・"-PCFLT=0"  左親指１・２の変換 OFF 
　　・"-PCFLI=0"  左人差指の変換 OFF 
　　・"-PCFLM=0"　左中指　の変換 OFF 
　　・"-PCFLR=0"  左薬指　の変換 OFF 
　　・"-PCFLL=0"  左小指　の変換 OFF 
　　・"-PCFRT=0"  右親指１・２の変換 OFF 
　　・"-PCFRI=0"  右人差指の変換 OFF 
　　・"-PCFRM=0"　右中指　の変換 OFF 
　　・"-PCFRR=0"  右薬指　の変換 OFF 
　　・"-PCFRL=0"  右小指　の変換 OFF 
　　
　　各オプションを modsetup.ini 中へ追記することで、OFF できます。
　　なお、親指０(左親指０・右親指０)は、「親指０変換機能」を用いて
　　別に ON/OFF します。
    なお、「=1」を指定した場合は、ON となります。 


【 肩・腕変換のキャンセル方法 (V1.20f14拡張) 】

　　肩と腕の各部の変換を、オプションで ON/OFF できるようにしました。
     (無指定の場合 ON となっています。(デフォルト)) 

　　・"-PCLSL=0"  左肩　　の変換 OFF 
　　・"-PCLUA=0"  左腕　　の変換 OFF 
　　・"-PCLLA=0"　左ひじ　の変換 OFF 
　　・"-PCLW=0"   左手首　の変換 OFF 
　　・"-PCRSL=0"  右肩　　の変換 OFF 
　　・"-PCRUA=0"  右腕　　の変換 OFF 
　　・"-PCRLA=0"　右ひじ　の変換 OFF 
　　・"-PCRW=0"   右手首　の変換 OFF 
　　
　　各オプションを modsetup.ini 中へ追記することで、OFF できます。
    なお、「=1」を指定した場合は、ON となります。 


【 親指０変換機能  (V1.20f6より) 】

　　VMD Retarget は「親指０」の変換に対応しています。
　　解凍直後の modsetup.ini では、「親指０」変換は OFF されています。

　　親指０変換は、-PCLTZ -PCRTZ オプションを ON し、変換元/変換先の両方の
　モデルに「親指０」ボーンがある場合に、有効になります。

　　また、親指０変換は、-FPCTZ オプションを ON すると、変換元/変換先のモデル
　に「親指０」ボーンがない場合でも、強制的に有効にすることができます。その場合、
　-PC*ATZ* オプションで指定した親指０角度を仮定して、変換します。
　
　　また、親指０は、-F*TZR* オプションで、任意角度追加回転 (X/Y/Z) すること
　ができます。この追加回転は、上記の -PCLTZ -PCRTZ -FPCTZ オプション全てに
　対して、効果を追加する形で働きます。
　
　　親指０に関するオプションは 13 個あります。
　　
　　・"-PCLTZ=1"　左親指０のモデル間ボーン角度差補正 ON 
　　・"-PCRTZ=1"　右親指０のモデル間ボーン角度差補正 ON 
    ・"-FPCTZ=1"  (左右共通) 親指０のないモデルやモーションでの
　　　　　　　　　　　　　　 強制変換 ON 
    ・-PCPATZZ=36.5   // 強制変換時 PMX 親指０角度仮定値 (斜下角) 
    ・-PCPATZY=55.6   // 強制変換時 PMX 親指０角度仮定値 (前方開き角) 
    ・-PCVATZZ=38.2   // 強制変換時 VRM 親指０角度仮定値 (斜下角) 
    ・-PCVATZY=18.7   // 強制変換時 VRM 親指０角度仮定値 (前方開き角) 
　　
    ・"-FLTZRZ=20.01"   // 左親指０追加Z回転(斜下角)     (V1.20f17以降) 
    ・"-FLTZRY=-30.01"  // 左親指０追加Y回転(前方開き角) (V1.20f17以降)  
    ・"-FLTZRX=10.01"   // 左親指０追加X回転(軸捩り角)   (V1.20f17以降) 
    ・"-FRTZRZ=-20.01"  // 右親指０追加Z回転(斜下角)     (V1.20f17以降) 
    ・"-FRTZRY=30.01"   // 右親指０追加Y回転(前方開き角) (V1.20f17以降) 
    ・"-FRTZRX=10.01"   // 右親指０追加X回転(軸捩り角)   (V1.20f17以降) 
    
　　モデル間ボーン角度差補正 ON は、
　　　・モデルの「親指０」ボーン角度を参照して、モデル間の「親指０」
　　　　ボーン角度差を補正する
　という効果があります。

　　強制変換は、
　　　・モーションに「親指０」がない場合でも、「親指０」モーションを
　　　　(1点のみ)強制で作る、
　　　・モデルに「親指０」がない場合には、代表的モデルの親指０角度又は
　　　　オプションで指定(変更)された角度を用いて、「親指０」ボーンが
　　　　あったものとしてボーン角度補正する、
　という２つの効果があります。
　　-PCPATZY/Z, -PCVATY/Z は、その場合の代用ボーン角度を指定します。
　(単位は度(deg))
　　モデル間ボーン角度差補正が ON になってる場合のみ、この強制変換の指
　定も有効になります。
  (V1.20f11より追加) 

　　追加回転は、
　　　・「親指０」モーションを、強制的に追加で回転します
　　　　 (Z-Y-Xの順)(単位は度(deg)) 
　　　　 (モーション「親指０」がある場合のみ動作：強制変換時含む) 
  上記の全ての変換に加えて、追加回転の効果が加わります。
  (V1.20f17より追加) 
　
　　各オプションを modsetup.ini 中へ追記することで、変換を ON したり、
　値を変更することができます。
　なお、-PCLTZ、-PCRTZ、-FPCTZ は「=0」を指定した場合 OFF となります。 
　　
　　なお、-PCFLT -PCFRT 親指変換は「親指１・２」のみに作用し、
　-PCLTZ -PCRTZ 「親指０」の On/Off とは独立しました。(V1.20f17以降)
　(「親指１・２」の変換は OFF のまま、「親指０」の変換のみ ON すること
 　ができるようになりました。)

  

【 ボーン XYZ 移動量の拡大縮小  (V1.20f10より) 】

　　オプション指定することで、全ボーンの X/Y/Z 移動量を、一斉に
　定数倍することができます。
　　　　
　　・"-ALLKX=(値)"　全ボーンの X 移動量を、一斉に指定値倍する
　　・"-ALLKY=(値)"　全ボーンの Y 移動量を、一斉に指定値倍する
　　・"-ALLKZ=(値)"　全ボーンの Z 移動量を、一斉に指定値倍する
　　
　　各オプションを modsetup.ini 中へ追記することで、変換後の VMD 
  ファイルの X/Y/Z 移動量が変化します。
　　
  

【 センターボーンの XYZ 位置シフト機能  (V1.20f10より) 】

　　オプション指定することで、「センター」ボーンの X/Y/Z 位置を、
　一斉にシフトすることができます。
　　　　
　　・"-ADDCX=(値)"　センターボーンの X 位置を一斉に指定量シフトする
　　・"-ADDCY=(値)"　センターボーンの Y 位置を一斉に指定量シフトする
　　・"-ADDCZ=(値)"　センターボーンの Z 位置を一斉に指定量シフトする
　　
　　各オプションを modsetup.ini 中へ追記することで、変換後の VMD 
  ファイルの X/Y/Z 位置がシフトします。
　　値にはマイナス値も指定できます。 
　　


【 上半身2 ボーン名の書換え機能  (V1.20f10より) 】

　　オプション指定することで、「上半身2」「上半身２」ボーン名前を、
　どちらかに統一することができます。

　　・"-RENUB2=0"　 変換なし (標準) 
　　・"-RENUB2=1"　「上半身2」(半角2)へ統一する 
　　・"-RENUB2=2"　「上半身２」(全角２)へ統一する 

　一般に、MMD では、「上半身2」(2は半角) が良く使われています。
　UnityVMDPlayer ライブラリを用いたアプリ(VRM Live Viewer等)では、
　標準で「上半身2」のみ対応となっていて、"-RENUB2=1" を使うと、
　モーション再生の互換性が上がります。
　


【 VRM モデル向け変換時の腕角度仮定値の変更 
          　　　　　　　 (V1.20f10より、V1.21a2、V1.21i更新) 】

　　VRM モデルは T-pose 標準ですが、VRM 上で VMD を再生する際は、
　プレーヤー(アプリ)によって、A-pose の腕角度が仮定される場合が
　多く (UnityVMDPlayerの場合30度)、この角度を変更したい場合、
　"-PCVAA" オプションで変更することができます。
　　また、"-PCVAAS" "-PCVAAT" を使うと、変換元モデル用の -PCVAA  
　と変換先モデル用の -PCVAA を別の値へセットすることもできます。  

　　・"-PCVAA=30.0"　 腕角度仮定値30.0度とする (標準) 
　　　                  (変換元・変換先の VRM 共) 
　　・"-PCVAAS=30.0"　腕角度仮定値30.0度とする (標準) 
　　　                  (変換元 VRM のみ) (V1.21a2以降使用可)  
　　・"-PCVAAT=30.0"　腕角度仮定値30.0度とする (標準) 
　　　                  (変換先 VRM のみ) (V1.21a2以降使用可) 

  　0 なら水平、30 の場合は腕が 30 度斜め下向きと仮定されます。
　左上腕・左前腕・右上腕・右前腕の全部が同じ角度と扱われます。
　　"-PCVAA" で指定した場合、変換元／変換先のどちらも、モデルが 
　VRM であった場合、指定値が適用されます。
　　"-PCVAAS" の場合、変換元モデルが VRM モデルであった場合のみ
　指定値が適用されます。
　　"-PCVAAT" の場合、変換先モデルが VRM モデルであった場合のみ
　指定値が適用されます。
  　指定可能な角度範囲は -90.0 ～ 90.0 度です。
　
　　但し、VRMA ファイルを変換元として、指定・学習した場合
　(learningSourceVRMA で学習)、-PCVAAS=0 (腕水平なT-pose) の扱い
　へ強制的に固定されます。 



【 全ての親・センター統合機能 (V1.20f21、V1.20f23追加) 】

　　V1.20f21 より、-MXMTC オプションによって、全ての親ボーンの動き
　をセンターボーンへ統合できる機能が加わりました。
　　またその際、-EAP オプション併用によって、XYZ 移動を含むボー
　ン統合時の許容位置誤差を調節できます。
　　V1.20f23c から、「全ての親」の全方向の回転に対応しました。
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
　
　　例1）> VmdRetarget -MXMTC=1 -EAP=0.02 (ファイル名).vmd 
　
    例2) > VmdRetarget -MXMTC=1 -EAP=0.02 -CENTERH=8.2 
                       -nameLAK='左腕ＩＫ親' -nameRAK='右腕ＩＫ親' 
                       -nameLLK='左足ＩＫ親' -nameRLK='右腕ＩＫ親'
                       (filename).vmd 
  
　ここでは、
　
　・「 -MXMTC=1 」全ての親モーションのセンター統合ON  
　・「 -CENTERH=8.2 」センター高さの指定 (MMD長さ単位) 
　・「 -EAP=(位置誤差値) 」ボーン統合時の許容位置誤差指定
　・「 -nameLAK='(名前)' 」 左腕IKモーションのボーン名変更  
　・「 -nameRAK='(名前)' 」 右腕IKモーションのボーン名変更  
　・「 -nameLLK='(名前)' 」 左足IKモーションのボーン名変更  
　・「 -nameRLK='(名前)' 」 右足IKモーションのボーン名変更  
　・「 -nameLLKP='(名前)' 」左足IK親モーションのボーン名変更  
　・「 -nameRLKP='(名前)' 」右足IK親モーションのボーン名変更  
　
　の意味です。
　標準では、
　   -CENTERH=8.403, 
　   -EAP=0.06, 
     -nameLAK='左腕ＩＫ', 
     -nameRAK='左足ＩＫ', 
     -nameLLK='右腕ＩＫ', 
     -nameRLK='右足ＩＫ', 
     -nameLLKP='右腕IK親', 
     -nameRLKP='右足IK親', 
　へセットされています。  
　
　　-CENTERH の指定を省いた場合、VMD Retarget では、学習した変換先
　モデル情報 trgpose.ini から読み込まれた「センター」ボーンの位置
　へセットされます。
　
　　オプション -MXMTC -CENTERH と -EAP は "modsetup.ini" 中で無効化
　されていて、標準では指定 OFF になっています。



【 グルーブ・センター統合機能 (V1.20f23eより) 】

　　V1.20f23e より、-MXGTC オプションによって、グルーブボーンの動き
　をセンターボーンへ統合できる機能が加わりました。
　　またその際、-EAP オプション併用によって、XYZ 移動を含むボー
　ン統合時の許容位置誤差を調節できます。
　　またその際、-GRVDH オプション併用によって、グルーブ／センター間
　の位置差をより正確に補正できるようになりました。
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
　
　　例）> VmdRetarget -MXGTC=1 -EAP0.02 -GRVDH=0.2 (ファイル名).vmd 
　
　ここでは、
　
　・「 -MXGTC=1 」グルーブモーションのセンター統合ON  
　・「 -GRVDH=0.2 」グルーブとセンターの高さ差を 0.2 として補正する  
　・「 -EAP(位置誤差値) 」ボーン統合時の許容位置誤差指定
　
　の意味です。

　　GRVDH の標準値(デフォルト)は 0.2 (Tda式ミクさんモデルの場合の
　高さ差)で、単位は MMD 内の長さです。MMD 内の長さは、多くの場合、
　実長(メートル単位)の 13.5 倍付近になっています。
　　PMX モデルが学習されている場合は、PMX モデルに記録されている
　グルーブとセンターの高さ差が自動的に参照されます。
　　グルーブとセンターの高さ差分の自動補正を行いたくない場合は、
　-GRVDH=0 を指定することができます。
　
　　-MXGTC オプションと -MXGTM オプションを同時に指定すると、
　グルーブとセンターを一度統合し、その後 XYZ 移動の Y 成分だけを
　グルーブへ再振分けする処理が、他のグルーブ／センターの処理に
　先立って行われます。(V1.20f24a 以降、V1.21d 改善) 
　　シンプルにこの機能のみを有効にしたい場合は、-MXGTC=0 -MXGTM=0
　を指定してみてください。
　
　　オプション -MXGTC は "modsetup.ini" 中で無効化されていて、標準
　では指定 OFF になっています。



【 首／上半身2/3 統合機能 (V1.20f23eより、V1.20f24、V1.21c拡張) 】

　　V1.20f23e より、-MXUB2 オプションにより、上半身2 ボーンの動きを、
　上半身へ統合できる機能が加わりました。
　　V1.20f24 より、-MXNEK オプションによって、首ボーンの動きを、頭
　へ統合できる機能が加わりました。
　　本機能は、主に、VRM 1.0 以降の形式で、neck または chest ボーン
　が必須でなくなった (neck chest が存在しないモデルが認められる)  
　ことへ、VMD 変換でも対応できるようにしたものです。
　　V1.21c より、-MXUB3 オプションにより、上半身3 ボーンの動きを、
　上半身2 へ統合できる機能が加わりました。-MXUB3 と -MXUB2 を両方
　指定することで、上半身3 も 上半身2 も 上半身 へ統合することが
　可能です。 
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
　
　　例1）> VmdRetarget -MXUB2=1 -UBDH=1.09  (ファイル名).vmd 
　　例2）> VmdRetarget -MXNEK=1 -NECKDH=0.807  (ファイル名).vmd 
　　例3）> VmdRetarget -MXUB3=1 -MXUB2=1  (ファイル名).vmd 
　
　ここでは、
　
　・「 -MXNEK=1 」首ボーンモーションを頭ボーンへ統合ON  
　・「 -MXUB2=1 」上半身2ボーンモーションを上半身ボーンへ統合ON 
　・「 -MXUB3=1 」上半身3ボーンモーションを上半身2ボーンへ統合ON 
　・「 -NECKDH=0.807 」頭／首ボーンの高さ差 (MMD 長さ) 
　・「 -UBDH=1.09 」上半身2／上半身ボーンの高さ差 (MMD 長さ) 
　
　の意味です。
　
　　UBDH の標準値(デフォルト)は 1.09 (Tda式ミクさんモデルの場合の
　高さ差)で、単位は MMD 内の長さです。MMD 内の長さは、多くの場合、
　実長(メートル単位)の 13.5 倍付近になっています。
　　PMX モデルが学習されている場合は、PMX モデルに記録されている
　上半身2と上半身の高さ差が自動的に参照されます。
　　VRM モデルが学習されている場合は、VRM モデルに記録されている
　chest と spine の高さ差が自動的に参照されます。
　　
　　NECKDH オプションを指定した場合、他のモデル情報の値よりも優先
　して、このオプション指定値を用います。
　　頭-首高さ分の自動補正を行いたくない場合は、-NECKDH=0 を指定す
　ることができます。
　
　　UBDH オプションを指定した場合、他のモデル情報の値よりも優先
　して、このオプション指定値を用います。
　　上半身～上半身2 高さ分の自動補正を行いたくない場合は、-UBDH=0 
　を指定することができます。
　
　　オプション -MXNEK -MXUB2 は "modsetup.ini" 中で無効化されてい
　て、標準では指定 OFF になっています。
　　オプション -MXUB3 は VRM 用セット中の "modsetup.ini" では有効化
　されていますが、汎用 MMD (PMX) 用セット中の "modsetup.ini" では
　標準で無効化 (指定 OFF) されています。
　　これらのオプションは、小数値によるミキシング量の調節はなく、
　=0 か =1、つまり ON と OFF の２通りのみの選択となります。 



【 足IK親／足ＩＫ 統合機能 (V1.20f23bより) 】

　　V1.20f23b より、-MXLIKP オプションによって、足IK親ボーンの動き
　を、足ＩＫへ統合できる機能が加わりました。
　　本機能は、足IK親ボーンを持たないモデルで、足IK親の動きを足ＩＫ
　へ反映するために使えます。
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
　
　　例1）> VmdRetarget -MXLIKP=1 -HEELH=1.62  (ファイル名).vmd 
　　例2）> VmdRetarget -MXLIKP (ファイル名).vmd 
　
　ここでは、
　
　・「 -MXLIKP=1 」足IK親ボーンモーションを足ＩＫボーンへ統合ON  
　・「 -HEELH=1.62 」かかと高さを 1.62 として補正する  
　・「 -MXLIKP 」→ -MXLIKP=1 と同じ  
　
　の意味です。
　
　　かかと高さ (HEELH) は、足IK親／足ＩＫボーン位置(高さ)の差を
　補正するために使われます。
　　HEELH の標準値(デフォルト)は 1.624 (Tda式ミクさんモデルの場合
　のかかと高さ)で、単位は MMD 内の長さです。MMD 内の長さは、多く
　の場合、実長(メートル単位)の 13.5 倍付近になっています。
　　VRM モデル(メートル単位で記録されてるものが多い)を用いる場合
　は、VRM モデルに記録されているのかかと高さの 13.5 倍にして指定
　する必要があります。
　　オプションの指定がない場合は、変換先(Target)モデルのかかと高
　さが自動的に trgpose.ini より読み込まれて、HEELH のデフォルト値
　として利用されます。(PMXモデルが学習されてる場合はかかと高さ、
　VRM モデルが学習されてる場合には足ボーン接点(かかと位置)の高さ
　の 13.5 倍へ、それぞれ自動的にセットされます。) 
　　
　　HEELH オプションを指定した場合、他のモデル情報の値よりも優先
　して、このオプション指定値を用います。
　　かかと高さ分の自動補正を行いたくない場合は、-HEELH=0 を指定する
　ことができます。
　
　　オプション -MXLIKP は "modsetup.ini" 中で無効化されていて、標準
　では指定 OFF になっています。(Unity向けセットを除く)
　　この -MXLIKP オプションは、小数値によるミキシング量の調節はなく、
  =0/=1 どちらか、つまり ON と OFF の２通りのみの選択となります。 



【 下半身／センター 統合機能 (V1.20f25より) 】

　　V1.20f25 より、-MXLBTC オプションによって、下半身ボーンの動きを
　センターへ統合できる機能が加わりました。
　　本機能は、VRM モデルなど下半身ボーンを持たないモデルで、下半身
　の動きをセンターへ反映するために使えます。
　　V1.21d より、-MXPLBTC オプションによって、下半身ボーンの動きの
　うち、Y(水平)回転とXYZ移動のみをセンターへ統合できる機能が加わり
　ました。
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
　
　　例1）> VmdRetarget -MXLBTC=1 -EAP0.02 
                       -LBCTRDH=4.75 -LBCTRDZ=-0.51  (ファイル名).vmd 
　
　　例2）> VmdRetarget -MXPLBTC=1 -EAP0.02 
                       -LBCTRDH=4.75 -LBCTRDZ=-0.51  (ファイル名).vmd 
　
　ここでは、
　
　・「 -MXLBTC=1 」下半身ボーンをセンターボーンへ統合ON  
　・「 -MXPLBTC=1 」下半身ボーンの動きのうちY(水平)回転とXYZ移動のみ
                     をセンターボーンへ統合ON  
　・「 -LBCTRDH=4.75 」 下半身とセンターの高さ差を 4.75 として補正  
　・「 -LBCTRDZ=-0.51 」下半身とセンターの前後差を 4.75 として補正  
　・「 -EAP=(位置誤差値) 」ボーン統合時の許容位置誤差指定
　
　の意味です。
　
　　下半身とセンターの高さ差 (LBCTRDH) や前後差 (LBCTRDZ) は、
　下半身／センターボーンの位置の差を補正するために使われます。
　　LBCTRDZ オプションの指定がない場合は、変換元(Source)モデルの
　下半身／センターボーンの前後差が自動的に srcpose.ini より読み込
　まれて利用されます。
　　LBCTRDH オプションの指定がない場合は、変換先(Target)モデルの
　下半身／センターボーンの高さ差が自動的に trgpose.ini より読み込
　まれて利用されます。
　　
　　LBCTRDH、LBCTRDZ オプションを指定した場合、他のモデル情報の値よ
　りも優先して、このオプション指定値を用います。
　　位置差の分の自動補正を行いたくない場合は、LBCTRDH=0、LBCTRDZ=0 
　を指定することができます。
　
　　オプション -MXLBTC、-MXPLBTC、-LBCTRDH、-LBCTRDZ は "modsetup.ini" 
　中で無効化されていて、標準では指定 OFF になっています。
　(Unity向けセットを除く)
　　この -MXLBTC/-MXPLBTC オプションは、小数値によるミキシング量の
　調節はなく、=0/=1 どちらか、つまり ON と OFF の２通りのみの選択と
　なります。



【 下半身／センター統合の打消し変換(逆変換)機能 (V1.21f21より) 】

　　V1.20f21 より、-REVLBTC オプションによって、-MXLBTC により下半身
　／センター統合されたボーンの動きを、再度下半身へ分離できる機能が
　加わりました。
　　本機能は、-MXLBTC によってモデル／環境依存性のある状態へ変換さ
　れたモーションを、より互換性の高いモーションへ変換する準備として、
　-MXLBTC による統合処理前に近い状態へ戻すために使えます。
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
　　この機能が働くためには、「下半身」ボーンが空いている (未使用で
  ある・実効的なキーが存在してない) ことが必要になります。また、
　腰・グルーブ (の回転) が使われてないことが正確な変換の要件になり
　ます。
　　もし、下半身ボーンがすでに使われている (キーが存在している) 場
　合や、腰・グルーブの回転が使用されてる場合は、-MXLBTC、-MXWTC、
　-MXGTC を用いて事前に統合し、空の状態にしてください。
 
　
　　例1）> VmdRetarget -REVLBTC  (ファイル名).vmd 
　
　　例2）> VmdRetarget -REVLBTC=1 -EAP0.02 
                       -LBCTRDH=4.75 -LBCTRDZ=-0.51  (ファイル名).vmd 
　
　ここでは、
　
　・「 -REVLBTC=1 」-MXLBTC の逆変換機能のON  
　・「 -REVLBTC 」   -REVLBTC=1 と同じ
　・「 -LBCTRDH=4.75 」 下半身とセンターの高さ差を 4.75 として補正  
　・「 -LBCTRDZ=-0.51 」下半身とセンターの前後差を -0.51 として補正  
　・「 -EAP=(位置誤差値) 」ボーン統合時の許容位置誤差指定
　
　の意味です。
　
　　下半身とセンターの高さ差 (LBCTRDH) や前後差 (LBCTRDZ) は、
　下半身／センターボーンの位置の差を補正するために使われます。
　　LBCTRDH オプションの指定がない場合は、変換先(Target)モデルの
　下半身／センターボーンの高さ差が自動的に trgpose.ini より読み込
　まれて利用されます。
　　LBCTRDZ オプションの指定がない場合は、変換先(Target)モデルの
　下半身／センターボーンの前後差が自動的に trgpose.ini より読み込
　まれて利用されます。
　　
　　LBCTRDH、LBCTRDZ オプションを指定した場合、他のモデル情報の値よ
　りも優先して、このオプション指定値を用います。
　　位置差の分の自動補正を行いたくない場合は、LBCTRDH=0、LBCTRDZ=0 
　を指定することができます。
　
　　オプション -REVLBTC、-LBCTRDH、-LBCTRDZ は "modsetup.ini" 中で
　無効化されていて、標準では指定 OFF になっています。
　(Unity向けセットを除く)
　　この -REVLBTC オプションは、小数値によるミキシング量の調節はな
　く、=0/=1 どちらか、つまり ON と OFF の２通りのみの選択となります。



【 腰／センター 統合機能 (V1.20f26より) 】

　　V1.20f26 より、-MXWSTC オプションによって、腰ボーンの動きを
　センターへ統合できる機能が加わりました。
　　本機能は、VRM モデルなど腰ボーンを持たないモデルで、腰の動きを
　センターへ反映するために使えます。
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
　
　　例）> VmdRetarget -MXWSTC=1 -EAP0.02 
                      -WAISTDH=3.92 -WAISTDZ=0.26   (ファイル名).vmd 
　
　ここでは、
　
　・「 -MXWSTC=1 」腰ボーンをセンターボーンへ統合ON  
　・「 -WAISTDH=3.92 」 腰とセンターの高さ差を 3.92 として補正  
　・「 -WAISTDZ=0.26 」 腰とセンターの前後差を 0.26 として補正  
　・「 -EAP=(位置誤差値) 」ボーン統合時の許容位置誤差指定
　
　の意味です。
　
　　腰とセンターの高さ差 (WAISTDH) や前後差 (WAISTDZ) は、
　腰／センターボーンの位置の差を補正するために使われます。
　　WAISTDZ オプションの指定がない場合は、変換元(Source)モデルの
　下半身／センターボーンの前後差が自動的に srcpose.ini より読み込
　まれて利用されます。
　　WAISTDH オプションの指定がない場合は、変換先(Target)モデルの
　下半身／センターボーンの高さ差が自動的に trgpose.ini より読み込
　まれて利用されます。

　　WAISTDH、WAISTDZ オプションを指定した場合、他のモデル情報の値よ
　りも優先して、このオプション指定値を用います。
　　位置差の分の自動補正を行いたくない場合は、WAISTDH=0、WAISTDZ=0 
　を指定することができます。
　
　　オプション -MXWSTC、-WAISTDH、-WAISTDZ は "modsetup.ini" 中で無
　効化されていて、標準では指定 OFF になっています。
　(Unity向けセットを除く)
　　この -MXWSTC オプションは、小数値によるミキシング量の調節はなく、
　=0/=1 どちらか、つまり ON と OFF の２通りのみの選択となります。



【 ＩＫ強制 OFF 機能 (V1.20f25より) 】

　　V1.20f25 より、-IKFZL、-IKFZLP、-IKFZT オプションによって、足ＩＫ
　を強制的に OFF できる機能が加わりました。
　　FK 焼込みがされているモーションで、IK を無視して、FK によりモデル
　を踊らせたい場合に使えます。
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
　
　　例）> VmdRetarget -IKFZL=1 -IKFZLP=1 -IKFZT=1  (ファイル名).vmd 
　
　ここでは、
　
　・「 -IKFZL=1 」      足ＩＫを強制 OFF 
　・「 -IKFZLP=1 」     足IK親を強制 OFF 
　・「 -IKFZT=1 」      つま先ＩＫを強制 OFF 
　
　の意味です。
　
　　コマンドラインから、=1 に代えて =0 とし、例えば -IKFZL=0 と指定
　した場合は、modsetup.ini の設定を上書きして本機能をキャンセルでき
　ます。
　　オプション -IKFZL は "modsetup.ini" 中で無効化されていて、標準で
　は指定 OFF になっています。(Unity向けセットを除く)



【 足ＩＫの足間隔補正 機能 (V1.21f20より) 】

　　V1.21f20 より、-CLIKLW、-LEGDW、-LEGDWR オプションによって、
　足ＩＫの間隔を補正できる機能が加わりました。

　　-CLIKLW オプションは、左足ＩＫと右足ＩＫの間隔の補正機能を ON 
　して、その補正方法を指定値によって選択するオプションです。

  　-LEGDW オプションは、単純に、変換後のモーションで、足間隔を
　任意に広げたい時に、広げ量を指定するオプションです。
　
  　-LEGDWR オプションは、正しい元モデルか変換先モデルが入手できな
　い場合に、実際のモデルの足間隔の差の代わりに、-LEGDWR の指定値を
　強制的に使うことを指定するオプションです。
　　モデルの足間隔は、モデルの左足ＩＫと右足ＩＫのボーン節点の間隔
　が基準となります。-LEGDWR には、その２つのモデルの差の値をセット
　します。  
　　通常、VmdRetarget では、-LEGDWR の値は自動的にセットされます。
  
　　これらのオプションは、modsetup.ini 中またはコマンドラインで指定
　できます。
　
    例1) > VmdRetarget -CLIKLW=1  (ファイル名).vmd 

    例2) > VmdRetarget -CLIKLW=1 -LEGDW=2.4  (ファイル名).vmd 

    例3) > VmdRetarget -CLIKLW=-1 -LEGDW=2.4  (ファイル名).vmd 

    例4) > VmdRetarget -CLIKLW=1 -LEGDWR=1.58 -LEGDW=2.4 
                                              (ファイル名).vmd 
  
  ここでは、 
　
　・「 -CLIKLW=1 」     足ＩＫの足間隔補正を ON (水平方向)
　・「 -CLIKLW=-1 」    足ＩＫの足間隔補正を ON (水平・垂直方向共) 
　・「 -LEGDW=2.4 」    足間隔の自由追加補正量 (単位はMMD長さ)
　・「 -LEGDWR=1.58 」  モデル足間隔差の補正量 (強制指定) 
　　　　　　　　　　　　　　　　　　　　　　　(単位はMMD長さ)
　の意味です。
　
　　もし、-LEGDW に 2.4 の代わりに -2.4 (負値) が指定された場合、
　足ＩＫ間隔を広げるのではなく、狭める方向へ補正されます。
　　また、-CLIKLW=2 のように「２」を指定した場合、補正は、足ＩＫ
　のキーのタイミングだけでなく、「左足」「右足」の付け根が体の姿
　勢の動きによって変化した場合、その動きも時間的に細かく反映して
　補正します。(足ＩＫキーの間隔がまばらなモーションで、補正がより
　正確になります) 
　　元モデルがどうしても入手できず、-LEGDWR を手動で調節する時は、
　モーション再生中の、前向きポーズと後向きポーズの両方で、足間隔
　が自然になるように調節してください。 
　　なお、足ＩＫの代わりに 足IK親 が主に使われてるモーションでは、
　足ＩＫの代わりに、足IK親 に対して補正がかかります。
　　オプション -CLIKLW は "modsetup.ini" 中で有効化されていて、
　標準で ON となっています。
　　オプション -LEGDW は "modsetup.ini" 中で無効化されていて、
　標準では指定 OFF になっています。



【 出力ファイル名固定機能 (V1.21e4より) 】

　　V1.21e4 より、-FNFIX オプションによって、出力ファイル名を強制的
　に固定できる機能が加わりました。
　　-FNFIX 指定時は、出力ファイル名を指定した名前にでき、保存フォル
　ダが VmdRetarget.exe と同じフォルダ内へ固定されます。
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
  
　　例）> VmdRetarget -FNFIX=tmp1  (filename).vmd 
  
　ここでは、
　
　・「 -FNFIX=tmp1 」      ファイル名を [tmp1.vmd] へ固定し、
　　　　　　　　　　　　　保存場所を VmdRetarget.exe と同じフォルダ
　　　　　　　　　　　　　内にする 
　の意味です。

　　指定するファイル名には、拡張子 (.vmd) は不要です。
  （省いてください。）
　　ファイル名に使える文字は、いずれも半角で、英文字 ('A'-'Z' と 
　'a'-'z')、数字 ('0'-'9')、アンダーバー ('_')、ハイフン ('-') (但し
　ハイフンは冒頭を除く)、に限られます。
　(それ以外の文字は禁止／無効)
　
　　この機能は、コマンドスクリプト (.bat／.cmd) 用の機能です。
  
　　オプション -FNFIX は "modsetup.ini" 中で無効化されていて、標準で
　は指定 OFF になっています。



【 ボーン統合オプションの自動設定機能 (V1.21e6より) 】

　　V1.21e6 より、-AS (Auto-setup) オプションによって、全ボーン統合
　用オプションを自動設定する機能が加わりました。
　　-AS を指定すると、ボーン統合用オプションである -MXNEK, -MXUB3, 
  -MXUB2, -MXLBTC, -MXGTC, -MXWSTC, -MXMTC, -MXLIKP, -MXSP, -MXTZ, 
  -RMXLA, -RMXLH, -RMXRA, -RMXRH の 14 個のオプションは、変換先モデル
　(PMX/VRM) のボーン有無を検出して、自動設定されます。
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
  
　　例）> VmdRetarget -AS  (filename).vmd 
  
　ここでは、
　
　・「 -AS 」      ボーン統合の自動設定許可
　
　の意味です。
　
　　-MXLBTC, -MXGTC, -MXWSTC, -MXMTC, -MXLIKP, -MXSP, -MXTZ オプ
　ションが０(ゼロ)でない値へ予めセットされてる場合は、それらの
　既存の設定値が優先され、-AS の自動セットから除外されます。
　　もし、それらいくつかのオプションを完全にゼロへ設定したい場合
　は、-AS を OFF して、各オプションを個別に手動でセットしてくだ
　さい。
　　
　　オプション -AS は、汎用 MMD 用セット中の "modsetup.ini" では
　有効化されていて、標準では指定 ON になっています。
　　一方、VRM Live Viewer 用セット中の "modsetup.ini" では無効化
　されていて、標準では指定 OFF になっています。



【 足長さによるボーン XYZ 移動量の自動スケーリング機能 
　　　　　　　　　　　　　　　　　　　　　　(V1.21e6より) 】

　　V1.21e6 より、-KA (Keep leg Angles) オプションによって、全ボー
　ンの XYZ 移動量として記憶される値を、足の長さに比例して自動定数
　倍する機能が加わりました。
　　-KA を指定すると、変換元モデルと変換先モデルの足の長さの比に
　応じて、全ボーンの XYZ 移動量を定数倍します。この方法は、づな
　うじ氏が提案してくださってた推奨補正方法(sm36413638)を、そのまま
　自動化実装したものです。
　　XYZ 移動量と足の長さが比例するので、モデルの足の角度が、変換
　前後で維持されるように見える変換となります。
　　この方法は、一部体幹ボーン(首～下半身)の各々で XYZ 移動＋回転
　する一部キャプチャーモーションにも安定して使用できます。
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
  
　　例）> VmdRetarget -KA  (filename).vmd 
  
　ここでは、
　
　・「 -KA 」      足角度を維持する自動スケーリング許可
　
　の意味です。
　　
　　なお、本機能は、-ALLKX=(値)、-ALLKY=(値)、-ALLKZ=(値) の値(上
　記) を同じ値へ自動セットする機能になります。
　　X/Y/Z の値をマニュアルで各方向個別に調整したい場合は、srcpose
　.ini/trgpose.ini 中の "LTY=(足高さ)" の値を参照して、手動で設定
　してください。(LTY: Leg Top Y) 
　　
　　オプション -KA は、汎用 MMD 用セット中の "modsetup.ini" では
　有効化されていて、標準では指定 ON になっています。
　　一方、VRM Live Viewer 用セット中の "modsetup.ini" では無効化
　されていて、標準では指定 OFF になっています。
　(VRM Live Viewer 中では独自の XYZ 移動量補正を行ってるため。) 



【 フルキャプチャモーション用変換機能  (V1.21gより) 】

　　V1.21g より、-FCAP オプションによって、Aポーズ→Tポーズ、Tポー
　ズ→Aポーズ変換時の変換精度を上げる機能が加わりました。
　(この機能は、以前より VMD Retarget for Full Capture Motion で
　 公開していた別版の機能を、標準版へ組み入れたものです。)
　　-FCAP オプションを指定すると、モーションのキー間補間がフルキャ
　プチャーモーションで不要／無視できることを前提として、Aポーズ／
　Tポーズ間のモーション変換精度が向上します。
　
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
  
　　例）> VmdRetarget -FCAP  (filename).vmd 
  
　ここでは、
　
　・「 -FCAP 」      フルキャプチャ用変換モードON 
　
　の意味です。
　　
　　通常は、フルキャプチャーモーションでは、-AI (自動キー挿入) の
　機能は必要ないことから、-FCAP 指定時は、代わりに -AI を OFF (無
  効化) して使うことが多くなります。
　　
　　オプション -FCAP は、通常版セット中の "modsetup.ini" では、
　無効化されていて、標準では指定 OFF になっています。
　　一方、フルキャプチャーモーションA→T/T→A変換用セット中の
　"modsetup.ini" では有効化されていて、標準では指定 ON になってい
　ます。



【 変換後捩り分離のキャンセル方法 (上級者用) 】

　　標準設定では、変換前の元モーションが、「左腕捩」「左手捩」「右
　腕捩」「右手捩」を使用したモーションだった場合、一度統合されて、
　変換後のモーションも、「左腕捩」「左手捩」「右腕捩」「右手捩」有
　りのモーションとなるよう、自動で捩り分離されます。(再分離)
　
　　この再分離を停止したい場合は、
　modsetup.ini 中に -RMXLA (左腕) -RMXLH (左ひじ) -RMXRA (右腕) 又は
  -RMXRH (右ひじ) オプションを書き加えておくと、
　腕捩りや手捩りが、「左腕」「左ひじ」「右腕」「右ひじ」と統合された
　まま残ります。



【 ポーズ角度許容誤差の指定 (上級) 】

　　モーションの「捩り成分」を分離すると、キーフレーム点上ではポー
　ズが完全一致しても、キーフレーム間で補間で生成されるポーズが、変
　換前の元のポーズとずれるという誤差が、MMD で原理的に避けられない
　誤差として発生します。(ニコニコ静画 mg188854 参照) 
　　
　　本ツールは、変換後の、キーフレーム間(キーフレームのない場所) 
　で起こるポーズの角度誤差を予測して、自動で中間キーフレームを打ち
　ます。
　(この機能は、「 modsetup.ini 」内の「-AI」を削除すると OFF にで
　 きます。その場合、キーフレーム自動追加はされず、補間曲線のみで
　 可能な限り調整を試みます。)
　
　　デフォルトでは、変換後の角度誤差が、最大 1.5 度を超える時に、
　自動でキーフレーム追加します。この 1.5 度の設定値は、
　「 angsetup.ini 」内に「 -EA1.5 」として書かれています。
　
　　この値を例えば「 -EA0.5 」へ変更すると、許容誤差角度が 0.5 度
　になり、より正確に変換できるようになります。（但し、モーションに
　よっては、フレーム間が追加キーで埋まってしまいます。）
　　
　　または、コマンドラインより起動して、オプション（追加指定）を
　入れることでも変更できます。

　　例１）> vmdtms -EA0.5 (ファイル名).vmd 
　　例２）> vmdtms -EA3.0 (ファイル名).vmd 

　これらでは、

　・「 -EA 」許容角度誤差(単位：度(deg)) 
　
　の意味です。
　　ポーズずれが気にならない場合、-EA は 3～5 度程度まで許容すると、
　キーの追加を最低限にできます。



【 ダイアログの非表示化 (上級) 】

　　確認メッセージ(ダイアログ)の「ＯＫ」ボタンを押す手間を省きたい
　場合、「 modsetup.ini 」中にある、「 -ND0 」(エヌ・ディ・ゼロ) 
　の値「０」を、メモ帳等で書き換えることで、ダイアログがスキップで
　きるようになります。

　・「 -ND0 」：確認メッセージを表示します(通常)
　・「 -ND1 」：変換前の確認メッセージをスキップします
　・「 -ND2 」：変換前/終了時の確認メッセージをスキップします

　ND は no dialogue の略です。
　　また、この機能を用いることで、スクリプトによるバッチ処理化がで
　きます。



【 ボーン名／モーフ名リストの生成機能  (V1.21g7より) 】

　　V1.21g7 より、-LIST オプションによって、VMD ファイル中に記録さ
　れてるボーンやモーフの名前のリストを生成できる機能が加わりまし
　た。
　　このオプションは、modsetup.ini 中またはコマンドラインで指定で
　きます。
  
　　例）> VmdRetarget -LIST  (filename).vmd 
  
　ここでは、
　
　・「 -LIST 」      全ボーンとモーフのリストを生成する 
　
　の意味です。
　　リストファイルには、全てのボーン／モーフの名前と、その16進数
　コードが一覧化されます。例えば、
     -- 
     bone 1 (    1 keys): 操作中心    %91%80%8D%EC%92%86%90%53
     bone 2 (    2 keys): 全ての親    %91%53%82%C4%82%CC%90%65
     bone 3 (   67 keys): 腰          %8D%98
     bone 4 (  395 keys): 上半身      %8F%E3%94%BC%90%67
     -- 
     morph 1 (   7 keys): まばたき    %82%DC%82%CE%82%BD%82%AB
     morph 2 (  12 keys): 笑い        %8F%CE%82%A2
     morph 3 (   4 keys): ウィンク    %83%45%83%42%83%93%83%4E
     -- 
　といったファイルとなります。
　　これらは、マクロスクリプト(macro.ini)処理通過後のボーン名／
　モーフ名のリストである点にご注意ください。すなわち、このリスト
　は、正しく処理できてない (未処理の) ボーンやモーフをチェックす
　る用途でも使えます。
　　16進数コードは、マクロスクリプト(macro.ini)中で、日本語環境で
　は入力できないコードの文字のボーン名やモーフ名を指定する際にも
　使えます。 
　　-LIST オプションは、"modsetup.ini" では無効化されていて、標準
　では指定 OFF になっています。



【 マクロスクリプト機能   (V1.20f8より、1.21f4、V1.21f6、V1.21f7、
                   V1.21f10、V1.21f12、V1.21f15、V1.21g、V1.21g4、
                   V1.21g5、V1.21g7、V1.21i、V1.21i5、V1.21i8拡張) 】

　　V1.20f8 より、テキストファイルを読み込んで、記述されたコマンドを
　順に実行する、マクロスクリプト機能が追加されました。

　　"macro.ini" というファイルが、VMDRetarget.exe と同じフォルダ内に 
  存在すると、VMD ファイル変換ごとに自動実行されます。    

　　"macro.ini" 内では、以下のコマンドが使えます。
      
      b"(ボーン名)"+= <x y z>  --- 一連のボーンを指定量平行移動する
      
      b"(ボーン名)"+= (X 角度値)  --- 一連のボーンを指定量X回転する
      b"(ボーン名)"+= (Y 角度値)  --- 一連のボーンを指定量Y回転する
      b"(ボーン名)"+= (Z 角度値)  --- 一連のボーンを指定量Z回転する
                                        (角度値の単位は°度 (deg))
                                        (方向+/-は MMD と同じ)
      b"(統合先ボーン名)" = b"(親ボーン名)" + b"(子ボーン名)" 
                                --- ２種類の一連のボーンを統合(ミキ
                                    シング)して、統合先ボーンへ格納
                                    する            (new V1.21f12) 
      b"(ボーン名)".x *= 値   --- ボーンのX移動量に指定値を乗算する 
      b"(ボーン名)".y *= 値   --- ボーンのY移動量に指定値を乗算する 
      b"(ボーン名)".z *= 値   --- ボーンのZ移動量に指定値を乗算する 
      b"(ボーン名)".xz *= 値  --- ボーンのXZ移動量に同時に指定値を 
                                     乗算する 
      b"(ボーン名)".xyz *= 値 --- ボーンのXYZ移動量に同時に指定値を 
                                     乗算する 
      b"(ボーン名)".rot *= 値 --- ボーンの回転角に指定値を乗算する 
      b"(ボーン名)".x += 値   --- ボーンのX移動量に指定値を加算する 
      b"(ボーン名)".y += 値   --- ボーンのY移動量に指定値を加算する 
      b"(ボーン名)".z += 値   --- ボーンのZ移動量に指定値を加算する 
                                                      (new V1.21g) 
      
      m"(統合先モーフ名)" = m"(モーフ名1)" + m"(モーフ名2)" 
                                --- ２種類のモーフを加算(ミキシング)
                                    して、統合先モーフへ格納する
                                                     (new V1.21g4) 
      m"(モーフ名)"+= 値   --- 一連のモーフ値に、指定値を加算する
      
      m"(モーフ名)"-= 値   --- 一連のモーフ値から、指定値を減算する
      
      m"(モーフ名)"*= 値   --- 一連のモーフ値に、指定値を乗算する
      
      m"(モーフ名)"/= 値   --- 一連のモーフ値を、指定値で除算する
      
      m"(モーフ名)"~= 値   --- 一連のモーフ値の上限を、指定値で
　　　　　　　　　　　　　　　 リミットする。指定値を超えるモーフ値
　　　　　　　　　　　　　　　 は、指定値へリセットされる。
                               
      m"(モーフ名)"_= 値   --- 一連のモーフ値の下限を、指定値で
　　　　　　　　　　　　　　　 リミットする。指定値を下回るモーフ値
　　　　　　　　　　　　　　　 は、指定値へリセットされる。
      
      cam += <x y z>        --- 一連のカメラ位置を指定量平行移動する
                               
      cam += (X 角度値)     --- 一連のカメラ角度Xに指定値を加算する 
      cam += (Y 角度値)     --- 一連のカメラ角度Yに指定値を加算する 
      cam += (Z 角度値)     --- 一連のカメラ角度Zに指定値を加算する 
      
      cam *= 値            --- 一連のカメラ位置XYZおよびカメラ距離に 
　　　　　　　　　　　　　 　　 指定値を乗算する 
                                  ( cam.pos *= (値)  と同じ) 
                                                  (new in V1.20f10) 
      cam.x *= 値          --- 一連のカメラ位置Xに指定値を乗算する 
      cam.y *= 値          --- 一連のカメラ位置Yに指定値を乗算する 
      cam.z *= 値          --- 一連のカメラ位置Zに指定値を乗算する 
      cam.xz *= 値         --- 一連のカメラ位置XZに指定値を乗算する 
      cam.xyz *= 値        --- 一連のカメラ位置XYZに指定値を乗算する 
      cam.dist *= 値       --- 一連のカメラ距離に指定値を乗算する 
      cam.va *= 値         --- 一連のカメラ視野角に指定値を乗算する 
      cam.rx *= 値         --- 一連のカメラX回転角に指定値を乗算する 
      cam.ry *= 値         --- 一連のカメラY回転角に指定値を乗算する 
      cam.rz *= 値         --- 一連のカメラZ回転角に指定値を乗算する 
      cam.x += 値          --- 一連のカメラ位置Xに指定値を加算する 
      cam.y += 値          --- 一連のカメラ位置Yに指定値を加算する 
      cam.z += 値          --- 一連のカメラ位置Zに指定値を加算する 
      cam.dist += 値       --- 一連のカメラ距離に指定値を加算する 
      cam.va += 値         --- 一連のカメラ視野角に指定値を加算する 
      cam.rx += 値         --- 一連のカメラX回転角に指定値を加算する 
      cam.ry += 値         --- 一連のカメラY回転角に指定値を加算する 
      cam.rz += 値         --- 一連のカメラZ回転角に指定値を加算する 
                                                      (new V1.21g) 
      
      light += <x y z>      --- 一連のライト位置を指定量平行移動する
      
      light += (X 角度値)   --- 一連のライト位置を指定量X回転する
      light += (Y 角度値)   --- 一連のライト位置を指定量Y回転する
      light += (Z 角度値)   --- 一連のライト位置を指定量Z回転する
                                        (中心は原点(0,0,0))
                                        (角度値の単位は°度 (deg))
                                        (方向+/-は MMD と同じ)
                                                  (new in V1.20f10) 
      light.x *= 値         --- 一連のライト位置Xに指定値を乗算する 
      light.y *= 値         --- 一連のライト位置Yに指定値を乗算する 
      light.z *= 値         --- 一連のライト位置Zに指定値を乗算する 
      light.xz *= 値        --- 一連のライト位置XZに指定値を乗算する 
      light.xyz *= 値       --- 一連のライト位置XYZに指定値を乗算する 
      light.rgb *= 値       --- 一連のライト色RGBに指定値を乗算する 
      light.r *= 値         --- 一連のライト色Rに指定値を乗算する 
      light.g *= 値         --- 一連のライト色Gに指定値を乗算する 
      light.b *= 値         --- 一連のライト色Bに指定値を乗算する 
      light.x += 値         --- 一連のライト位置Xに指定値を加算する 
      light.y += 値         --- 一連のライト位置Yに指定値を加算する 
      light.z += 値         --- 一連のライト位置Zに指定値を加算する 
      light.r += 値         --- 一連のライト色Rに指定値を加算する 
      light.g += 値         --- 一連のライト色Gに指定値を加算する 
      light.b += 値         --- 一連のライト色Bに指定値を加算する 
                                                      (new V1.21g) 
      ALLB.xyz *= 値        --- 全ボーンのXYZ移動量に同時に指定値を
                                     乗算する 
      ALLM *= 値            --- 全モーフ値に、指定値を乗算する
                                                      (new V1.21i) 
      ren b"(元ボーン名)" b"(新ボーン名)" 
　　　　　　　　　　　　   --- 一連のボーンキーを、別名へ変更する
      ren m"(元モーフ名)" m"(新モーフ名)" 
　　　　　　　　　　　　   --- 一連のモーフキーを、別名へ変更する
      
      copy b"(元ボーン名)" b"(コピー先ボーン名)" 
　　　　　　　　　　　　   --- 一連のボーンキーを、別名で複製する
      copy m"(元モーフ名)" m"(コピー先モーフ名)" 
　　　　　　　　　　　　   --- 一連のモーフキーを、別名で複製する
      
      del b"(ボーン名)"    --- 一連のボーンキーを削除する
      
      del allbut b"(ボーン名1)" b"(ボーン名2)" ...  
                           --- 指定ボーン以外の全ボーンキーを削除する
                                                       (new V1.21i8) 
      del ALLB             --- 一連の全ボーンキーを削除する
                                                       (new V1.21f12)       
      del m"(モーフ名)"    --- 一連のモーフキーを削除する 
      
      del allbut m"(モーフ名1)" m"(モーフ名2)" ...  
                           --- 指定モーフ以外の全モーフキーを削除する
                                                       (new V1.21i8) 
      del ALLM             --- 一連の全モーフキーを削除する
                                                       (new V1.21f12)       
      del cam              --- 一連のカメラキーを削除する 
                                                       (new V1.21f10) 
      del light            --- 一連のライトキーを削除する 
                                                       (new V1.21f10) 
      del shadow           --- 一連のセルフ影キーを削除する
                                                       (new V1.21f12)       
      del showik           --- 一連の表示・IK制御キーを削除する
                                                       (new V1.21f12)       
      
      inskey b"(ボーン名)"= <x y z> (qx qy qz qw) [Lx Ly Rx Ry] 
                                                    to (フレーム時間) 
      inskey b"(ボーン名)"= <x y z> (X 角度値) (Y 角度値) (Z 角度値) 
                                 [Lcx Lcy Rcx Rcy]  to (フレーム時間)  

　　　　　　　　　　　　   --- ボーンキーを１点作成する
                               (指定ボーン名、指定値、指定フレーム時間) 
                           
      inskey m"(モーフ名)"=(値) to (フレーム時間) 
　　　　　　　　　　　　   --- モーフキーを１点作成する
                               (指定モーフ名、指定値、指定フレーム時間) 
      
      extract b"(元ボーン名)".x m"(新モーフ名)" 
      extract b"(元ボーン名)".y m"(新モーフ名)" 
      extract b"(元ボーン名)".z m"(新モーフ名)" 
                            --- ボーンの x/y/z 成分をモーフとして抽出
                                する                  (new V1.21i8) 
      
      option "(オプション指定)"   
                            --- madsetup.ini またはコマンドライン指定 
                                より優先して追加オプション指定する 
                                                       (new V1.21i5) 
                           
      mirrorX b"(ボーン名)" --- 指定ボーンの動きをX軸に対して反転する 
                           
      mirrorX ALLB          --- 全ボーンの動きをX軸に対して反転する 
                           
      mirrorX cam           --- 一連のカメラの動きをX軸に対して反転する 
                                                       (new V1.21f10) 
      mirrorX light         --- 一連のライトの動きをX軸に対して反転する 
                                                       (new V1.21f10) 
      
      timeshift  値         --- 全てのキーを指定フレーム数(値)だけ
                                タイムシフトする 
                                    (ボーン、モーフ、カメラ、ライト、
                                     セルフ影、IK on/off ) 
                                    (値(フレーム数): ＋なら後方へ移動) 
                                    (値(フレーム数): －なら前方へ移動) 
                                                       (new V1.21f10) 
      
      timestretch x 倍率値   --- 全てのキーを時間軸方向に、指定倍率
                                 拡縮する  (倍率= 0.0-100.0) 
                                    (ボーン、モーフ、カメラ、ライト、
                                     セルフ影、IK on/off ) 
                                    (倍率:＞1.0001 なら動きはスロー) 
                                    (倍率:＜0.9999 なら動きは速く) 
                                                       (new V1.21f15) 
      timestretch from __ to __ fitto __ 
                            --- 'from'～'to' 間の全キーが、 
                                'from'～'fitto' の間へ収まるよう 
                                時間軸方向に拡縮する
                                    (ボーン、モーフ、カメラ、ライト、
                                     セルフ影、IK on/off ) 
                                                       (new V1.21f15) 
                                   
      // (コメント)        --- '//' 以降は行末までコメントとして無視
      
      type b"(ボーン名)"   --- ボーンのフレームキー情報を表示する 
      
      type ALLB            --- 全ボーンのフレームキー情報を表示する 
                           
      type m"(モーフ名)"   --- モーフのフレームキー情報を表示する 
                           
      type ALLM            --- 全モーフのフレームキー情報を表示する 
      
      setmodelname "(モデル名)" 
                           --- VMD 中に記録される元モデル名を変更する
                                                       (new V1.21f16) 
                           
    
      if (条件):        --- 後続のコマンドは、(条件) 成立時にのみ実行
                              する
      ifnot (条件):     --- 後続のコマンドは、(条件) 成立しない時に
                              のみ実行する
      -- 
        if    VMDFILENAME="(vmdファイル名)": 
        ifnot VMDFILENAME="(vmdファイル名)": 
            -- 変換中の .vmd ファイル名が指定ファイル名(拡張子なし) 
               に一致する(しない)時は、後続のコマンドを実行
        if    VMDMODELNAME="(vmd記録モデル名)": 
        ifnot VMDMODELNAME="(vmd記録モデル名)": 
            -- 変換中の .vmd ファイルに記録されてるVMD作成モデル名
               に一致する(しない)時は、後続のコマンドを実行
        if    SRCMODELNAME="(src学習モデル名)": 
        ifnot SRCMODELNAME="(src学習モデル名)": 
            -- Sourceとして学習したモデル内のモデル名
               に一致する(しない)時は、後続のコマンドを実行
        if    TRGMODELNAME="(trg学習モデル名)": 
        ifnot TRGMODELNAME="(trg学習モデル名)": 
            -- Targetとして学習したモデル内のモデル名
               に一致する(しない)時は、後続のコマンドを実行
        if    SRCMODELTYPE="PMX": 
        if    SRCMODELTYPE="VRM": 
        if    SRCMODELTYPE="VMD": 
        ifnot SRCMODELTYPE="PMX": 
        ifnot SRCMODELTYPE="VRM": 
        ifnot SRCMODELTYPE="VMD": 
            -- Sourceとして学習したモデルのファイル形式(PMX/VRM/VMD)
               に一致する(しない)時は、後続のコマンドを実行
        if    TRGMODELTYPE="PMX": 
        if    TRGMODELTYPE="VRM": 
        ifnot TRGMODELTYPE="PMX": 
        ifnot TRGMODELTYPE="VRM": 
            -- Targetとして学習したモデルのファイル形式(PMX/VRM/VMD)
               に一致する(しない)時は、後続のコマンドを実行
        if    EXIST b"(ボーン名)": 
        ifnot EXIST b"(ボーン名)": 
            -- モーションにボーン名のキーが含まれる(含まれない)場合 
               後続のコマンドを実行
        if    EXIST m"(モーフ名)": 
        ifnot EXIST m"(モーフ名)": 
            -- モーションにモーフ名のキーが含まれる(含まれない)場合 
               後続のコマンドを実行
        if    USED b"(ボーン名)": 
        ifnot USED b"(ボーン名)": 
            -- モーションに有効な回転移動のあるボーン名のキーが 
               含まれる(含まれない)時に、後続のコマンドを実行
        if    USED m"(モーフ名)": 
        ifnot USED m"(モーフ名)": 
            -- モーションに有効な回転移動のあるモーフ名のキーが 
               含まれる(含まれない)時に、後続のコマンドを実行
      -- 
      "if"/"ifnot" 指定子は、２重／３重に重ねて指定可能です。 
        if SRCMODELTYPE="PMX": if TRGMODELTYPE="VRM": ... 
      "vmdファイル名", "vmd記録モデル名", "src/trg学習モデル名" 
        には、ワイルドカード (?/*) を含めることができます。 
   
　　
   コマンドの後ろに、"from (フレーム番号)"  "to (フレーム番号)" 
   をつけておくと、そのコマンドが影響を与えるフレーム区間を制限する
   ことができます。
   
   スクリプト例は以下のようになります。
     
　　 例)
         del m"びっくり" 
         del m"がーん"           from 1000 to 2000
         copy m"瞳小" m"がーん"  from 1000 to 2000 
         m"瞳小" += 0.61         from 1000 to 2000 
         m"瞳小" ~= 1.0 
         m"瞳小" _= 0.0 
           // → 0.61 を加算、最小０～最大１へ制限  
   　　　inskey m"にっこり"=0.123 to 456 
           // →「にっこり」 456 フレームに値 0.123 でキー１点作成  
   　　　inskey b"全ての親"= <1.2 0 0> to 0 
           // →「全ての親」 0 フレームに位置シフト +X値 1.2 
           //     でキー１点作成 (全体が +1.2 右方向へシフト) 
         b"左腕" += (Y-10)  from 453 to 473 
         b"右腕" += (Y+10)  from 453 to 473 
           // 体の正面で、左手と右手を近づける (453-473フレーム間)  
         b"センター" += <0 +1.2 0>  from 520 to 530  
           // フレーム520～530間だけ身体全体の高さを +1.2 上げる 
         timeshift +3  from 1000  
           // フレーム1000以降のキーを全て後方へ３フレームずらす 
         timestretch x0.5  from 1000 to 1500   
           // フレーム1000～1500間の動きを２倍速にする  
         timestretch  from 1000 to 1500  fitto 1400   
           // フレーム1000～1500のキーを1000～1400へ収めるよう拡縮 
   
   
   ボーン名の前の「b」は、後続が「ボーン名」であることを示す接頭辞
   です。
   モーフ名の前の「m」は、後続が「モーフ名」であることを示す接頭辞
   です。
   「 ALLB 」は、すべての名前のボーン(全ボーン) を意味します。
   「 ALLM 」は、すべての名前のモーフ(全モーフ) を意味します。
   「 cam 」は一連のカメラ制御キーを意味します。
   「 light 」は一連のライト制御キーを意味します。
   「 shadow 」は一連のセルフ影制御キーを意味します。
   「 showik 」は一連の表示・IK制御キーを意味します。
   
   スペースは、行頭、モーフ名と演算子の間、演算子と値の間に挿入されて
　 いても、適宜スキップされます。(スペースを挟んでも大丈夫です)
   
   ボーン名／モーフ名以外は、全角文字は不可です。
     (国際環境互換の為)(全角スペースは不可のためご注意ください) 
   
   "inskey" コマンドで指定する補間曲線は、[Lx Ly Rx Ry] に代えて、 
   X,Y,Z,R の曲線を別々に指定することもできます。その場合、 
     [X Lx Ly Rx Ry]   [Y Lx Ly Rx Ry] 
     [Z Lx Ly Rx Ry]   [R Lx Ly Rx Ry] 
   の４つの指定に分けて書けます。 
  
   "inskey" コマンド内の指定値の、
     <x y z> (qx qy qz qw) [Lx Ly Rx Ry]
   各項目は、それぞれ省略可です。 
   (省略された場合、標準値＝無効値 (<0 0 0>, (0 0 0 1), [20 20 107 107] 
    が指定されたことと同じになります。) 
   
   ボーン名／モーフ名で(日本語)漢字コードを使用する場合、スクリプト
   全体を UTF-8 か SJIS としてください。(Windows 10/11 メモ帳では SJIS 
   は ANSI というモード名になっています。)  
   もし、言語環境の違いなどで、VMD に記録されてるボーン名／モーフ名の
   文字をうまく入力できない場合、16進数 (HEXコード) でも記載できます。
   例えば、
       del b"%91%53%82%C4%82%CC%90%65"  
   と記入することは、
       del b"全ての親" 
   と同じことになります。
   VMD ファイル中に記録されてるボーン名／モーフ名の16進数コードが分か
   らない (他国の言語コード等が混ざってる) 場合は、-LIST オプションで
   リストファイル(list.txt)を生成して確認することができます。  



【 セットアップ (設定記憶用) ファイルについて 】

　　以下のファイルが、設定の保存用に、本ツールフォルダ内に自動生成
　されることがあります。

　「 srcpose.ini 」  変換元モデルのボーン角度の学習結果 
　「 trgpose.ini 」  変換先モデルのボーン角度の学習結果 
　「 angsetup.ini 」 起動時のオプション指定 (許容角度誤差用) 
　「 modsetup.ini 」 起動時のオプション指定 (変換モード(ON/OFF)用) 
　「 timsetup.ini 」 起動時のオプション指定 (変換時間範囲用) 
　


【 その他使用法補足 】
　
　　srcpose.ini と trgpose.ini は、モデルのボーン角度を記録した
　ファイルであるため、このファイルを保存しておけば、変換元モデルや
　変換先モデルの学習を省くことができます。
　　

【 動作環境 】

　OS: Windows 8, 8.1, 10, 11  (x32, x64)   
 　　　(Windows 10 以降の UTF-8 モードにも対応 (V1.11から))
  RAM: 0.6 GB 以上 

　・本ソフトは、Windows 95 互換形式のソフトウェアです。
　　ランタイム等が不要で、インストールのトラブルが少ない利点があ
　　りますが、(標準設定では) OS により SJIS 互換モードで起動され
　　るため、
　　UniCode でしか表せない特殊文字をファイル名またはフォルダ名に
　　含む(親フォルダ含む)場合、正しく動作しない場合があります。
　　その場合、ファイル名／フォルダ名を SHIFT-JIS コード互換文字へ
　　名前変更するか、又はデスクトップ上へ移動して実行するか、又は 
　　Windows 10 であれば「ワールドワイド言語サポートで UTF-8 使用」
　　する OS モード設定へ切り替えて実行してください。 
　　 (一般的に、ファイル／フォルダ名に顔文字を含まなければ大丈夫
　　　です。)
　　（「UTF-8」モードは、Windows 10 の設定＞地域(追加設定)で、
　　　再起動により追加・解除できる機能として提供されています。）

　・旧 Symantec 社のアンチウィルスソフト (Norton Sonar) 等によって、
　　ウィルス等の付着がなくても、未知の実行ファイルとして「危険」判定
　　される場合があります。手動で再スキャンを行って、安全であると確認
　　できた場合は、お手数ですが Norton の処理メニューから復元・除外
　　指定を行ってください。


【 VMD Retarget 履歴 】
　
 V1.20f4   初公開版
 V1.20f5   捩り分離の軸計算が正しくなかったバグ修正。
           肩ボーン(左肩・右肩)補正を PMX 同士での変換でサポート。
 V1.20f6   手指の全ボーンの変換に対応。
           -PCLUL  -PCLLL  -PCLF
           -PCRUL  -PCRLL  -PCRF 
           -PCLTZ  -PCRTZ  -FPCTZ  
           -PCFLT  -PCFLI  -PCFLM  -PCFLR  -PCFLL 
           -PCFRT  -PCFRI  -PCFRM  -PCFRR  -PCFRL 
　　　　　 オプションのサポート。
           (-PCLF -PCRF は V1.20f6-V1.20f22 間は強制無効化)
 V1.20f7   -FPCTZ 指定時の角度バグ修正。 
 V1.20f8   マクロスクリプト機能 "macro.ini" のサポート。 
 V1.20f9   ren/inskey コマンドのサポート。  
 V1.20f10  -ALLKX  -ALLKY  -ALLKZ 
           -ADDCX  -ADDCY  -ADDCZ 
           -RENUB2  -PCVAA  オプションのサポート。
 V1.20f11  -PCPATZY  -PCPATZZ 
           -PCVATZY  -PCVATZZ  オプションのサポート。 
 V1.20f12  ダイアログメッセージの変換ファイル名表示が消えてしまうケー
           スがあったバグ修正。
 V1.20f14  -PCLSL  -PCLUA  -PCLLA  -PCLW 
           -PCRSL  -PCRUA  -PCRLA  -PCRW 
　　　　　 オプションのサポート。
 V1.20f15  腕・ひじの姿勢変換を -PCLUA -PCLLA -PCRUA -PCRLA で OFF 
           した際、捩りの自動統合が OFF になっていなかったバグ修正。
 V1.20f16  VRM 1.00 仮仕様に対応。(VRM 1.0-β) 
           VRM 仕様中 rotation, scale を使用するフォーマットへ対応。 
           PMX ファイルの "左腕ＩＫ" "右腕ＩＫ" XYZ位置記録に対応。   
 V1.20f17  VRM ボーン構造のローカル回転記述に対応。(VRM 1.00 用)
           -FLTZRX/Y/Z -FRTZRX/Y/Z オプションのサポート。(親指０追加回転) 
           変換後 VMD に記録される対応モデル名の書換え。
 V1.20f20  国際言語対応が不完全だったバグ修正。
           blender の一部エクスポーターの出力する VRM ファイルに対応。
           複数ドロップ(複数ファイル連続変換)した場合のダイアログメッセージ修正。
 V1.20f21  -nameLAK -nameRAK -nameLLK -nameRLK 
           -MXMTC オプションのサポート。
           一部英語化されてなかったメッセージの修正。 
 V1.20f22  全ての親ボーンの記録、ini ファイルバージョン番号の記録に対応。
           Windows 11 Power Shell のコンソールログが欠ける OS bug への暫定対策 
           追加。 
 V1.20f23  VRM 変換時、右人差指～小指の変換に内在してたバグの修正。 
           オプション -PCLF -PCRF の動作有効化。 
           V1.20f17 で追加したモデル名置換機能は、オプション -MNREP 指定時のみ 
           動くようにした。  
           左足IK親、右足IK親を使用した一部モーションへ対応。
           Windows 95 互換モードに加え、UTF-8 日本語/英語モードへ対応。  
　　　　　learningSourceVMD.exe を追加、VMD からの手腕角度のみの学習に対応。
 V1.20f23a 複数 VMD ファイルをドロップ／選択して変換した際に、２つめ以降の
　　　　　変換後の VMD ファイルの上半身データが壊れていたバグを修正。 
 V1.20f23b 「左足IK親」「右足IK親」と「左足ＩＫ」「右足ＩＫ」への統合
　　　　　 機能を追加。-MXLIKP -HEELH オプション追加。  
 V1.20f23c 全ての親／センター統合機能で、センター高さを反映して変換を
           正確化。-CENTERH オプションの追加。 
           統合時許容誤差の標準値を 0.02→0.06 へ変更。  
           ボーン統合時の補間曲線処理の安定性向上。 
 V1.20f23d V1.20f23c で -MXLIKP オプション指定時に、足IK親と足ＩＫの
           統合に失敗することがあったバグを修正。 
 V1.20f23e グルーブ／センター統合機能で、グルーブ-センター間高さ差を反映
           して変換を正確化。-GRVDH オプションの追加。 
           上半身2／上半身統合機能で、上半身2-上半身間高さ差を反映して
           変換を正確化。-UBDH オプションの追加。
 V1.20f24  上半身2 (半角)／上半身２(全角)のデータが混在する場合、ダイア
　　　　　 ログが表示されて、どちらかを削除できるようにした。
           (削除せずそのまま残すことも可能)
           首／頭統合機能で、頭-首高さ差を反映して変換を正確化。
           -NECKDH オプションの追加。
           learningSourceVRM/learningTargetVRM で、VRM 1.0 読込時に、
           親指ボーンの姿勢が正しく読み込めていなかったバグ修正。
 V1.20f24-2  learningSourceVRM/learningTargetVRM で、ファイル選択ダイアログ
　　　　　　 の標準拡張子が正しくなかったバグを修正。
 V1.20f24a VMDファイルを開くことに失敗した場合に、文字コード問題の可能性
           がある場合メッセージ表示を追加。
 V1.20f25  下半身／センター統合機能追加。
           足ＩＫ、足IK親、つま先ＩＫの強制 OFF 機能追加。
           -MXLBTC、-LBCTRDH、-LBCTRDZ、-IKFZL、-IKFZLP、-IKFZT オプション
           追加。
 V1.20f26  腰／センター統合機能追加。
           -MXWSTC、-WAISTDH、-WAISTDZ オプション追加。
           下半身／センター統合時に、腰ボーンのデータが削除されてしまう
           ことがあった V1.20f25 のバグを修正。
 V1.20f27  UTF-8 モード (Windows 10/11) での実行時に、ダイアログメッセージ
           上のファイル名表示を OFF するよう変更。(OS がダイアログメッ
           セージを ANSI で表示するモードとなっていた際に、OS 側の処理が
           不安定になることを避けるため。) 
 V1.21     UTF-16 ファイルパス (自動 ANSI/UTF-8/UTF-16 切替) に対応。
           IK ボーンの使用判定を改善。 
           learningSourceVMD の腕角度学習を改善。 
 V1.21a    同名の出力ファイル名が既に存在する場合、自動で (1) (2) 番号付
           の別名で保存するよう変更。 
           (-ret.vmd => -ret(1).vmd, -ret(2).vmd, etc.) 
           上半身および下半身で、XYZ 移動を含むボーンの動きがある場合へ
           対応。
           IK 以外のボーンに XYZ 移動を含む場合に表示される警告(注意)
           メッセージを短縮。 
 V1.21a2   -PCVAAS、-PCVAAT オプション追加。 
 V1.21b    肩P統合機能で、回転角が大きいと変換後の肩/腕角度が、MMD と
           異なっていたバグを修正。 
 V1.21c    上半身3 統合機能を追加。オプション -MXUB3 追加。
           ０フレーム目にキーが無い VMD モーションの変換がエラーとなって
           いたバグ修正。 
 V1.21d    下半身／センター統合機能で、下半身の水平回転とXYZ移動成分のみ
           をセンターへ統合する機能を追加。
           -MXPLBTC オプション追加。
           leaningSoucePMX/learningTargetPMX で上半身3 の記録に対応。
           グルーブ／センター統合機能で、さらに全ての親へのグルーブ加算
           (-MXGTM) が同時指定されて、かつセンターに水平回転以外の回転が
           含まれていた場合に、変換がずれていたバグを修正。
           腕以外の統合機能が指定されてても、腕変換が全 OFF されている
           場合に、変換が強制中断されていたバグを修正。
           Windows のコード署名に対応。  
           企業内での使用について、ライセンスに追加条項を付加。
 V1.21e    フォルダ名に環境依存文字があるフォルダの内部へ VmdRetarget を
           置いて実行した場合、起動に失敗することがあったバグを修正。
 V1.21e2   -FCAP オプションの警告表示追加。(本版では無視)
 V1.21e4   -FNFIX オプション追加。
 V1.21e6   -AS オプション、-KA オプション追加。
 V1.21e7   フルキャプチャーモーション以外で -MXPLBTC オプションによる下
           半身の統合が失敗してたバグ修正。
           XYZ 移動＋回転を同時に含むボーンの自動キー挿入における変換精
           度向上。
 V1.21f    変換後の表示メッセージを改善 (統合処理を反映)。
 V1.21f2   ボーン変換なしでIK設定変更のみの動作を可能にするよう変更。
 V1.21f3   フォルダ名に環境依存文字があるフォルダの内部へ VmdTms を置い
           て実行した場合、設定ファイル (.ini) の読込みに失敗することが
           あったバグを修正。
           空行を含む macro.ini の読込みに失敗してたバグを修正。
 V1.21f4   macro.ini 内のボーン操作コマンド、
           del b"(ボーン名)" 
           ren b"(元ボーン名)" b"(新ボーン名)" 
           copy b"(元ボーン名)" b"(複製ボーン名)" 
           inskey b"(ボーン名)" 
           を追加。
           inskey m"(モーフ名)" 実行時、既存のモーフ名が存在してた場合、
           キー挿入が失敗することがあったバグ修正。
 V1.21f6   macro.ini 内の操作コマンド、
           b"(ボーン名)"+= ... 
           type b"(ボーン名)"
           type m"(モーフ名)"
           を追加。 
 V1.21f7   macro.ini 内の操作コマンド、
           mirrorX b"(ボーン名)" 
           mirrorXALLB 
           を追加。 
           360度腕捩れ検出時の表示メッセージ改訂。
 V1.21f8   PMX モデル用変換時に、センターボーン回転が打消されてしまう
           バグを修正。(V1.21d-1.21f7で発生)   
 V1.21f10  処理の一部シンプル化／高速化。
           macro.ini 内の操作コマンド、 
            mirrorX cam 
            mirrorX light 
            del cam 
            del light 
            cam *= (値) 
            cam += <x y z> (X )(Y )(Z ) 
            light += <x y z> (X )(Y )(Z )  
            timeshift (値) 
           を追加。 
 V1.21f11  複数ファイル処理360度捩れ時のファイル名表示修正。
           左足/右足の delete コマンドの腰統合の併用時バグの修正。 
 V1.21f12  macro.ini 内の操作コマンド、 
            del shadow 
            del showik 
            del ALLB 
            del ALLM 
            type ALLB 
            type ALLM 
           および２ボーン間の統合(ミキシング)コマンドを追加。 
           複数 VMD ファイルの結合ツール AllVMDMix.exe を新規追加。 
           360度腕捩れ区間の開始フレームが正しく表示されてなかった
           バグを修正。
 V1.21f14  macro.ini コマンド type／del で from-to 指定が無効だったバグ
           を修正。
 V1.21f15  macro.ini 内の操作コマンド、 
            timestretch 
           を追加。 
           カメラモーションの変換に対応。 
           損傷のある VMD ファイルに対する耐性向上。 
             (同一ボーン同一フレームに複数キーがあるデータ等)  
           「ひざ」「足首」の姿勢変換(補正)の安定化およびバグ修正。
           表示メッセージの改善(3ヵ所)。 
 V1.21f16  macro.ini 内の操作コマンド、 
            setmodelname 
           を追加。 
           準標準ボーンの欠けたモーションやモデルへの耐性向上。 
 V1.21f17  macro.ini 内のいくつかのコマンドで、ボーンキー総数が 32768 
           を超えるデータを正しく扱えてなかったバグ修正。 
 V1.21f18  変換速度向上 (標準的モーションで約1.2倍速) 
 V1.21f18a modsetup.ini 標準設定を、-PCLSL=0 -PCRSL=0 へ変更。
           (左肩/右肩の変換 OFF (保持))
 V1.21f20  足IKの足間隔補正 (-CLIKLW／-LEGDW オプション) 追加。 
           ファイル出力を Windows 11 に合わせて調整。 
 V1.21f20a -LEGDWR オプションの初期値を、より正確な足IK補正となるよう
           変更。
           ゼロでない -LEGDW オプションの初期値が、デフォルトで自動
           セットされることがあったバグを修正。 
 V1.21f21  -REVLBTC オプションによる、-MXLBTC 下半身／センター統合の
           逆変換機能追加。
           srcpose.ini と trgpose.ini の読込みを、-PC によるボーン角度
           補正 OFF 時でも有効化し、各ボーン統合／分離機能で正確なモデ
           ル体型を反映できるよう改善。
           ボーン名の別名指定機能を、IK ボーンを除いて廃止。
           (-nameCC, -nameC, -nameGV, -nameLAT, -nameLA, -nameLB, -nameLE, 
           -nameLF, -nameLHT, -nameLLL, -nameLSP, -nameLS, -nameLT0, -nameLT1, 
           -nameLT2, -nameLUL, -nameLWT, -nameLW, -nameMT, -nameRAT, -nameRA, 
           -nameRE, -nameRF, -nameRHT, -nameRLL, -nameRSP, -nameRS, -nameRT0, 
           -nameRT1, -nameRT2, -nameRUL, -nameRWT, -nameRW オプション) 
 V1.21g    フルキャプチャモーション用変換モード機能を標準版へ統合。
           -FCAP オプション追加。 
           macro.ini 中のコマンドのいくつかに、座標成分の個別識別子 
           (.x .y .z .rot (ボーン), .x .y .z .dist .va .rx .ry .rz (カメラ), 
            .x .y .z .r .g .b .rgb (照明)) を追加し、座標成分や回転量を個別
           に操作できるよう拡張。  
           "angsetup.ini" 添付を廃止し modsetup.ini へ統合。 
           (使用は今後も可能) 
           [~] (チルダ) 記号を含むファイル名やモデル名へ対応できない場合が
           あったバグを修正。 
           ライセンス改訂。
 V1.21g2   macro.ini の bone/cam/light 直接代入／直接加算／直接乗算操作で、
           .y/.z 指定子が無効だったバグを修正。 
           macro.ini の COPY と INSKEY コマンドで、bone/morph 操作時にデータ
           の先頭付近が壊れることがあったバグを修正。 
 V1.21g3   macro.ini の INSKEY コマンドで、(X 角度値) (Y 角度値) (Z 角度値) 
           表記による回転指定に対応(拡張)。
 V1.21g4   macro.ini で、２モーフ間の統合(ミキシング)コマンドを追加。
 V1.21g5   macro.ini で IF/IFNOT コマンドと、８つの条件指定子を新規追加。 
           (VMDFILENAME/VMDMODELNAME/SRCMODELNAME/TRGMODELNAME
            /SRCMODELTYPE/TRGMODELTYPE/EXIST/USED)
 V1.21g6   目高さ (EYL: eye level) の記録を追加(srcpose.ini/trgpose.ini) 
 V1.21g7   -LIST によりVMD中に記録されてるボーン名／モーフ名の一覧を出力で
           きる機能を追加。("list.txt")
           macro.ini コマンド中で、16進数表記でボーン名／モーフ名を指定でき
           るよう拡張。
 V1.21g8   -FCAP オプションの効果が V1.21f-g7 間で有効となってなかったバグ
           修正。
 V1.21i    VRMA モーションの読込みに対応。
            (learningSourceVRMA)(フルキャプチャモーション版のみ) 
           macro.ini 中の ALLB ALLM の定数倍操作を追加. 
           -ALLKX/KY/KZ 指定による位置座標の定数倍操作で、効果が２重(２乗)
           で掛かっていた V1.21f12-V1.21g8 におけるバグを修正。
 V1.21i2   BVH モーションの読込みに対応。
            (learningSourceBVH)(フルキャプチャモーション版のみ) 
           ドロップ(指定)されたファイルの拡張子チェック機能を追加。
           局所的に姿勢変換を OFF した場合に、OFF 部分で元のモデルの初期
           ボーン角度を基準とするモーションへ変換されていたバグを修正。
 V1.21i3   PMX/VRM 以外のモデルを変換元または変換先に用いた場合に、親指の
           角度が正しく変換されないことがあったバグ修正。  
 V1.21i4   learningSourceBVH が自動出力する macro.ini へ、指が５本でない
           BVH 時に必要に応じて、指モーションのコピーを行うコマンドを自動
           追記するよう改訂。
           BVH 用の古い macro.ini ファイルが残っている場合に、自動バック
           アップ及び消去を行うかダイアログを表示するよう改訂。
           親指０/１/２の変換を PMX/VRM/BVH 互換性のため更新. 
 V1.21i5   macro.ini コマンド "option" 追加. 
           learningSourceBVH が自動出力する macro.ini へ、親指０変換オプ
           ションの指定を追加. 
           手指の姿勢変換のモデル指構造に対する安定性向上、BVH 互換性の
           為の全体的改訂. 
 V1.21i6   オプション -PCLTZ=0 または -PCRTZ=0 指定による親指変換 OFF 時に 
           変換が正しくなかったバグ修正。
 V1.21i7   learningSoucePMX/learningTargetPMX の PMX 学習で、使用されない 
           (正しくない)左手先／右手先ボーンがある場合でも、左手首／右手首  
           の表示先相対座標より正しく角度を読むよう改善。(代表的にTda式
           モデルの一部で発生する症状の改善)  
 V1.21i8   macro.ini コマンド "del allbut"、"extract" 追加。 
 

【 著作権・使用条件について 】
　
　本ツールに関しては、作者 (F.Issiki）が著作権を保持します。
　本バージョンはフリーウェアとします。
　使用に伴う一切の損害については免責とさせて頂きます。
　
  This software is provided 'as-is', without any express or implied
  warranty.  In no event will the authors be held liable for any damage 
  arising from the use of this software nor inability to use the program. 
  
　ソフトウェアにおいて、入力に対し出力を定義することは「プログラム設計」
　に当たり、本ソフトウェアの入力と出力を AI (neural network) へ学習させ
　ることにより、本ソフトウェアの動作やプログラム設計をコピーする行為は、
　事前に我々が書面で許可した場合を除き、著作権法違反となりますので、
　ご注意ください。(本ソフトウェアは著作権は放棄しておりません) 
　AI のような多次元学習では、プログラムの中身がブラックボックスのまま、
　反復された複数の入力と出力データを用いて、入力と出力がほぼ同じ機能を
　複製することができますが、手段は違っても「プログラム設計」をコピーす
　る行為であるためです。
　また本ツールの実行ファイル自体を AI への入力とすることも禁止します。  
　
　PMX モデル使用時は、モデルの使用条件にお気を付けください。
  
  (V1.21d-1.21g3 間の、企業使用における社内チェックへのご協力をお願い
　 する付加条項は、V1.21g4 で撤廃致しました。) 

  
【 謝辞 】

　VMD Retarget の元となる VMDTMS の作成にあたり、針金P氏の VMD ファイル
　公開情報を参考にさせて頂きました。
　また learningSourcePMX, learningTargetPMX の作成にあたり、極北P氏の PMX 
  ファイル仕様の情報を参考にさせて頂きました。
　また、キルロボ氏(@kirurobo)にご協力頂き、Moven (Xsens MVN) システムに
　より F.Issiki のモーション収録、および同モーションの FBX/BVH/VMD 形式
　ファイルを頂きましたこと、お礼を申し上げます。 
　足長に応じ全ボーンの XYZ 移動量を定数倍する方法について、かねてより公
　開 (sm35292780) してくださったづなうじ氏(@dunauzi)に感謝しますとともに、
　本ツールに先行して類似の方法を検討・公開してくださってた各位に感謝致し
　ます。
　
  初音ミクの名称は、Crypton Future Media Inc. によります。
  また各ツール・モデル・音楽映像を公開されてきた皆さんに、この場にて
　お礼申し上げます。
  

Feb 6, 2026
F.Issiki
Finekit, Artist Support
https://finekit.co.jp/base/
