Tips: VRM AnimationをVMagicMirrorで使用する
この機能はv3.4.0およびそれ以降のVMagicMirrorで利用できます。
従来のカスタムモーション機能(「カスタムモーションをVMagicMirrorで使用する」)に加え、VRMの標準定義となったVRM Animation形式のモーション(以下、VRMA)を適用できます。
NOTE
この機能は後述の制限等も踏まえ、実験的に導入しています。VRMAの仕様が今後変わりうることにも注意して下さい。
より安定した機能としては、上述しているカスタムモーション機能をご使用ください。
1. 適用できる機能と制限事項
モーションがどのようにループ再生されるかは機能によって異なるため、このページの下部を参照ください。
そのほか、下記の制限があることに注意してください。
- 表情のアニメーション情報は、ファイルに含まれたとしても使用されません。
- 「表情/モーション」機能でVRMAを使う場合、
Hips
ボーンについては位置が移動しないような制限がかかります。そのため、しゃがみ/ジャンプを含むような動きについては、元のモーションと異なる見た目になります。- ゲーム入力機能ではこの制限はかかりません。
- ターンを行うような、正面向きから大きく動くモーションの挙動は保証しかねます。
2. VRM Animation (.vrma) ファイルの入手方法
VRMAファイル (.vrma
) の入手方法については以下を参考にしてください。
- AnimationClipToVrmaSample のプロジェクトを使用すると、Unity上でHumanoid向けのモーションデータとして読み込まれたAnimationClipをVRMAファイルに変換できます。この方法を用いる場合、詳細な使い方はリンク先を参照ください。
- UniVRM v0.114.0以降のバージョンではBVHファイルを
.vrma
ファイルに変換できます。ただし、この方法では指のモーション情報が.vrma
ファイルに保存されません。 - VRM Animationに関するVRoid Newsでは、BOOTHで公開されているデータや、その他の入手方法が紹介されています。
3. ファイルの配置
VMagicMirrorを起動していない状態で、VRMAファイル(.vrma
)を(マイドキュメント)\VMagicMirror_Files\Motions
以下に配置します。
もしMotions
フォルダがまだない場合、フォルダを新規作成して下さい。
モーションをループ扱いで再生したい場合、Motions
フォルダ以下にさらにLoop
フォルダを作成します。Loop
フォルダ内に .vrma
ファイルを配置することで、ループ用モーションとして読み込まれます。
NOTE
MotionsフォルダはカスタムモーションをVMagicMirrorで使用すると共通です。ファイルの拡張子が従来のカスタムモーションと異なるため、VMagicMirrorでは適切に区別して読み込まれます。
MotionsフォルダとLoopフォルダに同名のファイルを置いた場合、Loopフォルダ内のモーションは無視されます。ファイル名を分けるようにしてください。
4. ゲーム入力機能での選択
VMagicMirrorを起動し、ゲーム入力機能の設定ウィンドウを開きます。
その後、入力方法に応じて以下のように設定します。
- ゲームパッドのボタン、マウスクリック: ボタンで実行するモーションの一覧に、VRMAのファイル名が選択肢として表示されます。
- キーボード: VRMAの各ファイルに対し、そのモーションを実行したいキーを割り当てることができます。
ゲーム入力機能では、モーションがループする/しないに応じて以下のように挙動が変化します。
連続でのパンチなど、短く繰り返すモーションではループモーションの使用が適しています。
- ループしないモーション: モーションは必ず最初から最後まで実行され、途中で中断することは出来ません。
- ループするモーション: モーションはボタンやキーを押し下げている間だけ実行され、ボタンを押し上げると停止します。
5. Word to Motion機能での選択
VMagicMirrorを起動し、表情/モーションにある手順で編集ウィンドウを開きます。
左側のモーション選択部分でカスタムモーション
をチェックし、選択一覧からモーションを選択します。
選択後はビルトインモーションと同様の手順で使用できます。
この機能では、モーションがループする/しないに応じて以下のように挙動が変化します。
- ループしないモーション: モーションは通しで1回実行され、実行中にほかのモーションを実行することで中断されます。
- ループするモーション: モーションを実行すると、他のモーションを呼び出さない限りはそのモーションが繰り返し実行されます。
とくに、ループするモーションを停止するには他のモーションを呼び出す必要があることに注意してください。
v3.7.0以降では、この用途で用いるためにビルトインモーションのReset
が追加されています。
NOTE
ここでモーションが表示されなかったり再生できない場合、VRMAのデータ形式が想定外になっている可能性があります。
- Animationファイルが表情のみのデータになっていないか確認してください。
- 可能な場合、UniVRMのサンプルプロジェクトで読み込めるかどうかの検証を行ってください。
- 第三者が制作したデータの場合、制作者への問い合わせをご検討ください。