VRChatアバターのリップシンクの作成方法&設定方法

3D

概要

VRChatアバターのリップシンクを作成する際に必要な情報をまとめました。
この記事はVRChatのアバター制作をしようとしてる人向けの内容です。

VRChatのリップシンク

VRChatのソースコードを見たわけではないのですが、おそらく内部的にはOVRLipSyncというライブラリが使用されていると思われます。
なので、より詳細な事が知りたければOVRLipSyncのドキュメントを見るのがいいです。
下記にリンクを掲載しておきます。

【3D】シェイプキーの作成

シェイプキーはOVRLipSyncが想定しているリップシンク用のシェイプキーを15個作成する必要があります。この作業は3Dモデリングソフトで行います。
数が多いですが、Blenderについてはシェイプキーを複製する方法があるので後述します。
作成しなければならないリップシンクの形状を示したリファレンスを下記に掲載します。

OVRLipSync 口刑素15種類

上記の画像はOVRLipSyncに含まれてるサンプルモデルとシェイプキー名の対応表です。
これらに加えて、既存の販売アバターの口の形状も参考にできると非常によいです。
1~15の番号はVRCAvatarDescriptorの表示を上から順に並べた時の番号です。

バットノウハウ「あ・い・う・え・お の5個のキーを無理やり割り当てる」とか「頂点の変形の無いダミーキーを作成する」とか「作成してないキーは割り当てない」といった対応は推奨しません。
取り急ぎ問題なかったとしても、何かしらのエラーの原因になり得る可能性があります。また、その手のエラーが出て停止しない不具合は原因究明が難しい傾向にあります。

【3D】シェイプキーの推奨名

VRChatアバターの設定をする時の下記の条件を満たすシェイプキー名だと、設定の際に自動的に割り当てられます。(2022年7月時点の仕様)
VRCAvatarDescriptorEditor3LipSyncのソースコードを読むとわかります。

  • 前方に「vrc.v_」か「v_」を含んで、後方に「sil」「PP」「FF」「TH」「DD」「kk」「CH」「SS」「nn」「RR」「aa」「E」「ih」「oh」「ou」を含むキー(完全一致で検索している。大文字と小文字は区別してない。)
  • 「sil」「PP」「FF」「TH」「DD」「kk」「CH」「SS」「nn」「RR」「aa」「E」「ih」「oh」「ou」を含むキー(完全一致・後方一致・部分一致で検索してる。大文字と小文字は区別してない。)

「vrc.v_sil」や「v_sil」にすると間違いないですが、「Lip_sil」や「Mouth_sil」や「sil_Lipsync」でも問題なく自動で割り当てられます。
ただし、リップシンク以外のキー名に条件が一致するキーが含まれてると、想定外の割り当てになるのは少し意識したほうがいいと思います。
リップシンクの検索は上から順に行われて一致した時点で検索を終了するので、VRChatでの利用を意識するのであればリップシンクのキーは上に配置するのを推奨します。

下記のような名称は推奨しません。

  • 「あ」「い」「う」「え」「お」等の全角文字を使った名称
  • VRChatでの利用を想定しているのに、上記の命名規則から大きく異る名称(上記の15音素に加えて追加のキーとして存在してる場合は例外)

【3D】Blenderでシェイプキーをコピーする

Blender 新規シェイプをミックスから作成

15個もキーを作るのは一見めんどくさくて大変そうですが、Blenderの場合だと既存のシェイプキー同士を組み合わせて新規のシェイプキーを作成する事ができます。
なので、ベースとなる口のシェイプキーを作った後は、組み合わせで15個分を埋めればOKです。

シェイプキーのパラメータを変更して作りたい形の口を作ってから、▽のマークからメニューを開いて「新規シェイプをミックスから作成」を押すと、現在のシェイプキーを結合したものが新規のシェイプキーとして作成されます。

【Unity】ブレンドシェイプの設定

VRC Avatar Descriptor

「VRC Avatar Descriptor」の「LipSync」の「Mode」を「Viseme Blend Shape」に設定した上で、「Face Mesh」にリップシンクのシェイプキーを含むメッシュを割り当てればOKです。

各Visemeについては上記の推奨名に一致していれば自動で割り当てされますが、そうでない場合は手動でドロップダウンから対応するように設定してください。

コメント

タイトルとURLをコピーしました