Expression

ドキュメント:

Expression の設定 | VRM [公式]

概要

  • VRM-1.0 では旧「Blend Shape Proxy」機能は廃止された。VRM-1.0 では代わりに「Expression」機能を使う。
  • Unity 再生中のみ適用される。
  • Expression が設定されたブレンドシェイプは、再生中に手動で動かせない。
  • 基本的な値は 0.00.1 であるが、範囲外の値を指定して形状を外挿できる。

参考:

VRM 1.0 の表情について | Brand-new TOKYO

使い方

手順
  1. プロジェクトウィンドウでインポートした VRM-1.0 ファイルを選択し、インスペクターで「VRM」タブに切り替えて、「Extract Meta and Expressions」ボタンを押して、メタ情報及び Expression アセットを抽出する。
  2. プロジェクトウィンドウで Model_Name.vrm1.Assets ディレクトリ内に抽出された _vrm1_.asset を選択し、インスペクターを開いて、「Select GUI」で Expression に切り替える。
  3. プリセット Expression 及び、カスタム Expression に各 Expression アセット (旧 Blend Shape Clip) を割り当てる。
  4. 各 Expression は、Model_Name.vrm1.Assets ディレクトリ内に抽出された Expression アセットを選択して編集する。

ドキュメント:

Expression の設定 | VRM [公式]

設定

  • Morph Target
  • List
    • Morph Target
    • Material Color
    • Texture Transform
  • Options
    • Is Binary 挙動を二値化する/中間の値を取らない
    • Override オーバーライド
      • Blink 瞬きのオーバーライドを指定する
      • Look At 視線のオーバーライドを指定する
      • Mouth 口パクのオーバーライドを指定する

ドキュメント:

Expression の設定 | VRM [公式]

オーバーライド (Override)

グループ

プロシージャルに適用されるブレンドシェイプは、次の3つのグループに分けられる。

  • Blink瞬き
    • Blink両目閉じ
    • BlinkLeft左目閉じ
    • BlinkRight右目閉じ
  • LookAt視線制御
    • LookUp見上げる
    • LookDown見下ろす
    • LookLeft左を見る
    • LookRight右を見る
  • Mouthリップシンクに用いる口の形状
    • aa「あ」の形の口
    • ih「い」の形の口
    • ou「う」の形の口
    • ee「え」の形の口
    • oh「あ」の形の口
設定値
  • Noneプロシージャルなブレンドシェイプをそのまま適用する
  • Blockプロシージャルなブレンドシェイプを無効化する
  • Blendプロシージャルなブレンドシェイプを混合する

ドキュメント:

Override | VRM [公式]

参考:

VRM 1.0 の表情について | Brand-new TOKYO

ブレンドシェイプ

モデルにアタッチされている「VRM Blend Shape Proxy」コンポーネントの「Blend Shape Avatar」に設定されているアセットが表情モーフを管理するアセットである。設定されているアセット名をダブルクリックするとアセットを選択状態にしてインスペクターに表示することができる。

VRM モデルをインポートすると、インポートしたディレクトリ下にある [Model Name].Blendshapes ディレクトリ内に表情モーフのアセット BlendShape.asset 及びアニメーションクリップが作成される。

プレビュー

プロジェクトウィンドウで BlendShape.asset を選択すると、インスペクターウィンドウで表情モーフをプレビューできる。

  • 「Editor」タブ Blend Shape Clip を編集する
  • 「List」タブ Blend Shape Clip を一覧表示する
Blend Shape Clip
  1. Neutral基本 (ニュートラル)
  2. Aあ (口開け)
  3. Iい (口を横に引く)
  4. Uう (すぼみ口)
  5. Eえ (口を横に引く/下唇を下げる)
  6. Oお (口を開けて唇を突き出す)
  7. Blink両目閉じ
  8. Blink_L左目閉じ (ウインク)
  9. Blink_R右目閉じ (ウインク)
  10. Angry怒り (眉下げ/への字口)
  11. Fun楽しい (口角上げ)
  12. Joy喜び (目閉じ/口開き)
  13. Sorrow悲しい (困り眉/すぼみ口)
  14. Surprised驚き (目を見開く/口開き)
  15. Extra不等号目/「はぅ」 (><)
  16. LookUp上を見る
  17. LookDown下を見る
  18. LookLeft左を見る
  19. LookRight右を見る

15 ~ 18 の LookUp / LookDown / LookLeft / LookRight は目線をモーフで制御するタイプのモデルで使用する。

視線をボーンで制御するタイプのモデルでは、「VRMLookAtBoneApplyer」コンポーネントを使用する。視線をモーフで制御する場合は「VRMLookAtBoneApplyer」を削除して、 代わりに「VRMLookAtBlendShapeApplyer」コンポーネントを付与する。

「Add Blend Shape Clip」ボタンを押して、新しい表情モーフを追加 (新規の Blend Shape Clip を作成) することができる。事前定義された表情モーフを追加する場合は「Preset」から該当するプリセットを選び、それ以外の表情モーフを追加する場合は Unknown を選ぶ。(スクリプトから表情モーフをコントロールする際に、事前定義された表情モーフはプリセット名で指定することができる。)

ドキュメント:

ブレンドシェイプの設定 | VRM [公式]

参考:

VRM の表情を追加 & 編集する | 神楽ゆのん

視線の制御 (LookAt)

ドキュメント:

LookAt | VRM [公式]

Blend Shape Proxy

※ VRM-1.0 では廃止された。VRM-1.0 では「Expression」機能を使う。

ゲーム再生中は、「VRM Blend Shape Proxy」コンポーネントに各ブレンドシェイプを 01 で操作するスライダーが現れ、簡易的に表情モーフのテストが行える。

注意事項
  • Unity 再生時のみ適用される。
  • 値は 0.00.1 の範囲のみで、外挿は適用できない。

参考:

UniVRM の VRMBlendShapeProxy で表情アニメーション処理を共通化する – Qiita

VRM で数秒後に表情を変化させる | まゆたまガジェット開発逆引き辞典

BlendShapeProxy の現状の問題点と解決案 · Issue #4 · vrm-c/vrm-specification – GitHub

BlendShapeProxy の現状の問題点と解決案 · Issue #126 · vrm-c/UniVRM – GitHub

Expression API

プロパティ
  • ExpressionKeys (読み取り専用)
  • Actual Weights (読み取り専用)
  • ActualEyeDirection (読み取り専用)
  • BlinkOverrideRate (読み取り専用)
  • LookAtOverrideRate (読み取り専用)
  • MouthOverrideRate (読み取り専用)
メソッド
  • GetEyeDirection
  • GetWeight
  • GetWeights
  • SetWeight
  • SetWeights
使用例
public void SetFacial(GameObject root)
{
    var controller = root.GetComponent<Vrm10Instance>().Runtime.Expression;
    var facial = new Dictionary
}Code language: C# (cs)

ドキュメント:

Expression – API | UniVRM Programming ドキュメント [公式]

リンク:

UniVRM 利用アプリケーションの VRM 1.0 への移行について (Santarh) – Speaker Deck

リップシンク

参考:

リップシンクと表情モーションを作る方法を徹底解説!! | コニーログ

フェイストラッキング

参考:

Meta Quest Pro で フェイストラッキングを試す | npaka

VRoid

参考:

モデルの表情調整と表情データの再利用方法 – Qiita

VRoid で出力した VRM ファイルの表情調整 | しま

VRoid Studio 製モデルには実は表情が6つある/牙も生やせるし2種類もある/これらの使い方と調整の方法 | 友黎火の note

VRoid Studio 産 VRM モデルに Unity で新規表情パターンを追加 & 微調整する方法/VMagicMirror 向け | Vtuber の雑学メモ帳

キャラクターの表情やまばたきの制御方法 | Unity でゲームを作ろう!

法線がおかしくなる

ドキュメント:

Blend Shape の法線を確認しよう | VRM ドキュメント [公式]

仕様

ドキュメント:

expressions.ja.md  – vrm-c/vrm-specification – GitHub

開発

[1.0] Expression、ignore系の名称変更およびblendの提案 · Issue #189 · vrm-c/vrm-specification – GitHub

[1.0] Expressionのneutral、結局どうするんでしたっけ? · Issue #185 · vrm-c/vrm-specification – GitHub

「各種名前の制約」の「ユニークにする」という制約は強すぎるので削除するかモーフターゲット名に限定したい · Issue #202 · vrm-c/vrm-specification – GitHub

資料

VRM で表情をこねくりまわす技術 (m2wasabi) – Speaker Deck

ソースコード

コード:

ExpressionExtensions.cs – GitHub

VRM10ObjectExpression.cs – GitHub

Vrm10RuntimeExpression.cs – GitHub

VRM10Expression.cs – GitHub

ExpressionKey.cs – GitHub

ExpressionPreset.cs – GitHub

ExpressionMerger.cs – GitHub

MorphTargetBinding.cs – GitHub

ExpressionSlider.cs – GitHub

LookAtEyeDirection.cs – GitHub

PreviewFaceRenderer.cs – GitHub

SerializedExpressionEditor.cs – GitHub

Vrm10InstanceEditorExpression.cs – GitHub

VRM Expression Playable

リポジトリ:

sanaftg/VRMExpressionPlayable: VRM-1.0 の Expression を Timeline で制御する – GitHub

Face Expressions Controller

※ VRM-0

リポジトリ:

kuni-0930/FaceExpressionsControllerVRM: Script to Reflect OVR Expressions – GitHub

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA