がとーしょこらの技術録(旧)

記録や技術的な記事を書いていきます

[VRChat] Avatars3.0のVRCAvatarDescriptor

Avatars3.0では従来のもの(Avatars2.0)と比べてVRCAvatarDescriptorの項目が大幅に変更されました。
本記事ではAvatars2.0とAvatars3.0のVRCAvatarDescriptorを比較しながらその内容を紹介していきます。

内容は以下に基づいています。

Avatars3.0のVRCAvatarDescriptor

Avatars3.0でのVRCAvatarDescriptorが持つ大まかな設定項目です

f:id:gatosyocora:20200805084206p:plain

Avatars2.0に比べ, Eye Look, Playable Layers, Lower Body, Expressionsが追加されました。

Eye LookはAvatars2.0で自動的に設定されていた目の動き(通称: EyeTracking)を設定できるようにしたものです。
Playable LayersはAvatars2.0におけるAnimatorOverrideController(通称: CustomOverrideEmpty)に代わるものです。
Lower Bodyはトラッキングされていない体の部位の動きに関するAvatars2.0にはなかった新しい設定項目です。
ExpressionsはAvatars3.0から利用可能になったドーナッツ型のメニュー(アクションメニュー)を拡張するための項目です。

InspectorにEditまたはPreviewボタンがある項目がありますが,
これは一度押すとボタンの文字が「Return」になり,
プレビュー&編集状態(勝手にこう呼んでいるだけ)になります。
この状態のときにSceneViewに表示されるGizmoを操作することで設定内容を変更できます。

f:id:gatosyocora:20200805082756p:plain
3Dモデル : 京狐

View

視点に関する設定項目です。

f:id:gatosyocora:20200801025118p:plain

  • View Position
    アバターの視点位置です。Avatars2.0にあったViewPositionと同じですが,
    Editボタンを押すことでScene上でGizmoを使って自由に動かして設定できるようになりました。

LipSync

話したときの口の動きに関する設定項目です。

f:id:gatosyocora:20200801025237p:plain f:id:gatosyocora:20200801025313p:plain

  • Mode
    口の動きを制御する方法を複数の中から選択できます。
    Avatars2.0に比べ, Viseme Parameter Onlyが追加されました。
〇 Jaw Flap Bone

顎のボーンを使って口を開閉する方法です。

f:id:gatosyocora:20200801025333p:plain

  • Jaw Bone
    顎のボーンです。

  • Rotation States
    口を開閉したときの顎ボーンの回転です。
    Previewボタンを押すと設定した回転が反映されます。
    Scene上に回転Gizmoが表示されるのでそれを操作することで設定を変更できます。

    • Closed
      口を閉じたときの顎ボーンの回転です。
    • Open
      口を開いたときの顎ボーンの回転です。
〇 Jaw Flap Blend Shape

顎を動かすBlendShape(シェイプキー)を使って口を開閉する方法です。

f:id:gatosyocora:20200801025411p:plain

  • Face Mesh
    顎を動かすBlendShapeを持つオブジェクトです。

  • Jaw Flap Blend Shape
    顎を動かすBlendShapeです。

〇 Viseme Blend Shape

口を様々な形に変更するBlendShape(シェイプキー)を使って口を動かす方法です。
Boothで販売される3Dモデルの大半はこれを使用すると良いです。

f:id:gatosyocora:20200801025455p:plain

  • Face Mesh
    口を様々な形に変更するBlendShapeを持つオブジェクトです。

  • Viseme: ○○
    口を特定の形に変更するBlendShapeです。
    それぞれの名称と口の形はOVRLipSyncに対応しています。

〇 Viseme Parameter Only

音声に対応した0~14の数値をAnimatorで使用して口の動きを制御する方法です?(未検証)

f:id:gatosyocora:20200801025516p:plain

Eye Look

目の動きに関する設定項目です。
Avatars2.0で自動的に設定されていた目の動き(通称: EyeTracking)を設定できるようにしたものです。

f:id:gatosyocora:20200801025553p:plain

デフォルトではEnableボタンだけが表示されており,
Enableボタンを押すことで設定項目が出てきます。
目の動きを設定しない場合はこのままで良いです。

f:id:gatosyocora:20200805120153p:plain

General

目の動きの全体に関連する設定項目です。

  • Eye Movements

    • Calm (穏やか) <---> Excited (興奮)
      瞬きの頻度

    • Shy (恥ずかしがり) <---> Confident (自信)
      他のプレーヤーを見る頻度、および目をそらすまで他のプレーヤーの顔に視線が留まる時間

Eyes

目の部分に関連する設定項目です。

  • Transforms

    • Left Eye Bone
      左目を動かすボーンです。
      Avatars2.0のLeftEyeという名称のボーンに対応するものです。
    • Right Eye Bone
      右目を動かすボーンです。
      Avatars2.0のRightEyeという名称のボーンに対応するものです。
  • Rotation States
    目のボーンの回転を設定します。

    • Looking Straight
      前を見ているときの目のボーンの回転

    • Looking Up
      上を見ているときの目のボーンの回転

    • Looking Down
      下を見ているときの目のボーンの回転

    • Looking Left
      左を見ているときの目のボーンの回転

    • Looking Right
      右を見ているときの目のボーンの回転

  • Eyelids
    まぶたに関する設定項目です。

    • Eyelid Type
      まぶたを動かす方法を選択できます。

f:id:gatosyocora:20200801025627p:plain

Bones

まぶたの動きにボーンを使った方法です。

f:id:gatosyocora:20200801025657p:plain

  • Transforms
    まぶたのボーンの回転を設定します。

    • Upper Left Eyelid
      左上まぶたを動かすボーンです。

    • Upper Right Eyelid
      右上まぶたを動かすボーンです。

    • Lower Left Eyelid
      左下まぶたを動かすボーンです。

    • Lower Right Eyelid
      右下まぶたを動かすボーンです。

  • Rotation States
    LeftとRightがひとつの項目にまとまっており,
    Upper EyelidsとLower Eyelidsを設定できます。

    • Default
      通常時のまぶたのボーンの回転です。

    • Closed
      目を閉じている時のまぶたのボーンの回転です。

    • Looking Up
      上を見ている時のまぶたのボーンの回転です。

    • Looking Down
      下を見ている時のまぶたのボーンの回転です。

〇 Blend Shapes

まぶたの動きにBlendShape(シェイプキー)を使った方法です。

f:id:gatosyocora:20200801025732p:plain

  • Eyelids Mesh
    目の動きに関するBlendShapeを持つオブジェクトです。
    Avatars2.0におけるBodyという名称のオブジェクトに対応するものです。

  • Blendshape States

    • Blink
      両目でまばたきするBlendShapeです。
      Avatars2.0におけるvrc.blink_leftとvrc.blink_rightに対応するものです。

    • Looking Up
      上を見るときにまぶたを動かすBlendShapeです。
      Avatars2.0におけるvrc.lowerlid_leftとvrc.lowerlid_rightに対応するものです。

    • Looking Down 下を見るときにまぶたを動かすBlendShapeです。
      Avatars2.0におけるvrc.lowerlid_leftとvrc.lowerlid_rightに対応するものです。

Playable Layers

Avatars2.0におけるAnimatorOverrideController(通称: CustomOverrideEmpty)に代わるものです。

f:id:gatosyocora:20200801025807p:plain

各ボタンを押すと, 自分で用意したAnimatorControllerを設定できるようになります。

f:id:gatosyocora:20200805113621p:plain

Base

  • Base
    Idle, 移動, 落下やジャンプなどの基本となるアニメーション(Humanoidのボーンを操作)
    Avatars2.0のCustomOverrideEmptyにおけるIDLEなどを設定します。

  • Additive
    呼吸などの付加的なアニメーション(Humanoidのボーンを操作)

  • Gesture
    手の動きなどのHumanoidの一部ボーンや耳や尻尾などのHumanoidのボーン以外の操作
    Avatars2.0のCustomOverrideEmptyにおけるHANDOPENなどの手の形の変更などを設定します。

  • Action
    Emoteなどの他のPlayableLayerでの変更を無視したTransformの操作
    Avatars2.0のCustomOverrideEmptyにおけるEMOTEなどを設定します。

  • FX
    Transform以外の操作。
    表情やゲームオブジェクトのアクティブ化, マテリアルやシェーダープロパティの変更など
    Avatars2.0のCustomOverrideEmptyにおけるHANDOPENなどで設定した多くの変更を設定します。
    これを最も変更することになると思います。

Special

  • Sitting
    座る位置に関する計算をするときの補正に使う?

  • TPose
    視点に関する計算をする時の補正に使う?

  • IKPose
    IKの計算をするときの補正に使う?

Lower Body

ラッキングされていない体の部位の動きに関する設定項目 Avatars2.0にはなかった新しい設定項目です。

f:id:gatosyocora:20200805085319p:plain

  • Use Auto-Footsteps for 3 and 4 point tracking
    オフにするとルームスケールの動きに対して, 下半身のアニメーションを無効化します。
    3点もしくは4点トラッキングの時に適用されます。

  • Force Locomotion animations for 6 point tracking
    オンのとき, Locomoting(ジョイスティックの移動など)はWalking/Runningアニメーションを再生します。
    オフのとき, これらを再生しません。
    また, オフのときはデフォルトのBaseLayerとAdditiveLayerを使用してはいけない。
    6点トラッキング(フルトラッキング)の時に適用されます。

Expressions

Avatars3.0から利用可能になったドーナッツ型のメニュー(アクションメニュー)を拡張するための項目です。

f:id:gatosyocora:20200801041206p:plain

  • Menu
    アクションメニューのボタンの種類と効果を設定するVRCExpressionsMenuです。

  • Parameters
    アクションメニューのボタン操作によって変更されるAnimatorParameterを定義するVRCExpressionsParametersです。

さいごに

Avatars2.0からAvatars3.0のアバターへ変換するEditor拡張「VRCAvatarConverterTo3」を作成しました。
こちらもあわせてお使いください。

gatosyocora.booth.pm

また、Avatars3.0に関する情報を共有するDiscordチャンネルもあるので、興味がある方は入ってみてください

discord.com

参考文献