本記事では、VRMエクスポート時の表情変換の仕様について説明します。(対象バージョン:2.0.2~)
着せ替え機能では、VRChatアバターを使ったデータをVRMエクスポートするとき、表情をVRMに沿うように自動で変換を行っています。
VRMの表情はExpressionsと呼ばれ、VRMアプリケーションで基本的に用いられるEmotion、LipSync、Blink、LookAtの4種類があります。
また、対応しているVRMアプリケーションであれば、アバター固有のCustom Clipsが利用可能です。
https://vrm.dev/en/univrm1/vrm1_tutorial/expression/
着せ替え機能では、VRMエクスポート時に元のアバターのフェイシャルからExpressionに該当するデータを推定し、自動的に設定する仕組みを採用しています。
各項目の推定方法は以下の表をご確認ください。
素体がVRMファイルの場合は元のデータのExpressionsの情報を利用します。
Emotion
Playable Layersに設定された各種AnimatorControllerのAnimationClip名から推定します。
Expression | 推定方法 |
---|---|
Happy | AnimationClip名から該当するデータを設定、もしくはハンドサインのピースに割り当てられているAnimationClipを設定 |
Angry | AnimationClip名から該当するデータを設定 |
Sad | AnimationClip名から該当するデータを設定 |
Relaxed | AnimationClip名から該当するデータを設定 |
Surprised | AnimationClip名から該当するデータを設定 |
- 明らかに該当する表情が見つからなかった場合は設定されません。
Sad, Angryで起こりやすいです。 - 設定されなかったAnimationClipはその他のCustom Clipsとして設定します。
LipSync
LipSyncはVRCAvatarDescriptorに登録されている内容から設定したのち、設定されなかったものについてだけ、BlendShape名から推定します。
Expression | 推定方法 |
---|---|
Aa | AvatarDescriptorのaaを確認し、なければBlendShapeのfcl_mth_a、”あ”、などを設定 |
Ih | AvatarDescriptorのihを確認し、なければBlendShapeのfcl_mth_ih、”い”、などを設定 |
Ou | AvatarDescriptorのouを確認し、なければBlendShapeのfcl_mth_ou、”う”、などを設定 |
Ee | AvatarDescriptorのeeを確認し、なければBlendShapeのfcl_mth_ee、”え”、などを設定 |
Oh | AvatarDescriptorのohを確認し、なければBlendShapeのfcl_mth_oh、”お”、などを設定 |
Blink
BlinkはVRCAvatarDescriptorに登録されている内容から設定したのち、設定されなかったものについてだけ、BlendShape名から推定します。
Expression | 割当方法 |
---|---|
Blink | AvatarDescriptorのBlinkを確認し、なければBlendShapeのfcl_eye_close、"まばたき”を設定 |
Blink Left | Blendshape名から推定し、該当するBlendshapeがなければ、Blinkを分割して新規にBlendShapeを作って設定* |
Blink Right | Blendshape名から推定し、該当するBlendshapeがなければ、Blinkを分割して新規にBlendShapeを作って設定* |
*推奨オプションの「左右のまばたきを個別に制御可能にする」にチェックが入っている場合
LookAt
LookAtはAvatarDescriptorに含まれないため、VRM Expressionに設定しません。