Oculus Rift・HTC vive対応ゲーム『VRchat』のwikiです。ここでは基本説明と自作アバターの追加方法などを載せていきます。

概要

リップシンクに必要な作業は2点あります。
1.3Dモデルに口の動き(モーフ/ブレンドシェイプ/シェイプキー)を設定する。
2.Unity上でモーフ(特定の動きを切り取ったもの、と理解してください)を設定する。

既成のモデル等で既に口の動きが入ってる場合は2の作業だけである程度動作します。
ここでは、どのようなモーフを作ればいいかだけを解説します。

1.3Dモデルに口のモーフを設定する。


Blenderの場合
*シェイプキーを作る前に必ずミラーリングモディファイヤを適用してください

【資料】 http://blender-cg.net/shape-keys/

Objectモードで口が含まれるメッシュを選択
Propertyウィンドウからメッシュのアイコンを選択
▼ShapeKeysで+ボタンを1回クリック、Basisができる もう一回クリックしてKey1ができる
これから作りたい任意のシェイプキーにリネーム

2.Unity上でモーフを設定する。

リップシンクの自動一括設定ツール
https://kumattass.booth.pm/items/946572



アバターに設定された[VRC_Avatar Descriptor]の[Lip Sync]に[Viseme Blend Shape]を選択して
右の○をクリック(もしくはHierarchyからシェイプキーが登録されたメッシュをD&D)
その後、下に出てくる各項目毎にシェイプキーを登録する
シェイプキーは兼用してもかまいませんが、noneではなくすべてVRC.v_〜で埋めること

資料

Blender to Unity Vrchat Avatar Creation
顔が含まれるメッシュに15のシェイプキーを作る必要があります
下の方に具体的な顔の形がありますので、お手元のモデルの口を近い形に変形させると良いでしょう
資料では瞬きのシェイプキーが一緒に書かれていますが、リップシンクは口の部分だけ用意すれば動作します

必要なシェイプキー一覧
VRC.v_sil :真顔
VRC.v_PP :Mをネイティブっぽく発音したエンムのム「にやり」か「ω」が近い
VRC.v_aa :「あ」 #最初に作る
VRC.v_oh :「お」か「う」下記より口を広げている方 #aaの横を圧縮
VRC.v_ou :「お」か「う」上記より口をすぼめている方 #ohの横を圧縮
VRC.v_ih :「あ2」ないし「あ3」それらがない場合「あ」か「□」のモーフを複製し適用 #aaの50%
VRC.v_TH :「ih」に近いので複製 #ihをコピー
VRC.v_nn :「ん」ないし「ih」か「dd」のモーフを複製 #ihの舌を持ち上げる
VRC.v_DD :控えめな「え」 #nnを少し下あごを閉じる
VRC.v_kk :「ih」と同じで口元が気持ち上がる感じ「ワ」も範囲に入る #ihの舌と上唇を上げる
VRC.v_FF :英語的なふの発音「□」が近い #aaの20%ぐらい 下唇を軽く噛む
VRC.v_E :「え」 #いの口
VRC.v_CH :「ss」よりも口をすぼめた「い」 #eの横を圧縮
VRC.v_RR :「□」が近いので「ff」を複製 #chの下あごを広げる
VRC.v_SS :「ch」よりも口を広げた「い」「ch」を複製しても良いかも #eの上唇をまっすぐ閉じる

以上の通り15種類のシェイプキーが必要ですが、最低限、sil、aa、thを作るだけでもそれなりにしゃべって見えるようになります。
sil=pp=ff、aa=oh=ou、これ以外をthで埋めます
ただし、Unityでリップシンクを設定する際、ohまたはouとaaに同じリップシンクを入れるとaaが全く反応しなくなるので、その点に注意して下さい


Unity でリップシンクができる OVRLipSync を試してみた
VRchatでは使いませんが理屈は同じです

瞬きについて

VRChat Tutorial - Eye Blinking Animation https://www.youtube.com/watch?v=jrfx3v45OJU

vrc.blink_left :左ウインク
vrc.blink_right :右ウインク
vrc.lowerlid_left :左下まぶた
vrc.lowerlid_right :右下まぶた

手順
Blender等でシェイプキーを作成
Unity上でAnimationを作成
アバターにAnimatiorを追加してAnimatiorControllerを登録

このページへのコメント

音を発して口が動いたあとに口が開きっぱなしになるんですけど何か解決策はありますかね?

6
Posted by 名無し(ID:8++8mn3KZA) 2018年07月05日(木) 22:35:54 返信

瞬きは自分でアニメーションを作る必要があるので
命名規則は特にありません。
[vrc.blink_left]などを4つ用意する必要はなく
両目閉じモーフが1つあればそれでアニメーションを作ればOKです

2
Posted by 名無し(ID:XIle1RSPqw) 2018年04月04日(水) 12:13:55 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます