忍者ブログ

きまぐれ猫の散歩道

どこにでもあるただのブログ。主に妄想を書き綴ると思われますよ。

VRCに挑戦・リップシンクと表情作り

まいど( ̄ー ̄)ゞ

喋った時に口が動くようになるリップシンク。
アニメーションによる表情切り替え。




リップシンクの設定

 

喋った時にキャラの口が動くようにしましょう。

まずはモデルを選択します。
【Inspecter】の項目の中から【VRC_Avatar Descriptor】にある【Lip Sync】を【Viseme Blend Shape】に変えます。

【Face Mesh】の項目が追加されます。
そこにシェイプキーの入ったメッシュ(大抵は顔)をドラッグ&ドロップ。

項目がズラーっと出てくるので割り当てますよ。
blenderで出来上がったシェイプキーを割り当てます。
同じ名前の所にポンポン入れていけばOKですよ。

これで完了です。
VRCに持って行って、鏡の前で喋ってみて口も動けば成功です。

アニメーションによる表情変化

 

VRCには予め表情アニメーションを登録しておいて、好きな時に表情を変えることが出来ます。
デスクトップだと、【F1】~【F8】で表情が切り替わるものです。
デフォルトだとハンドサインをするためのものですかね。
ハンドサインと同時に表情も変えようって事みたいですね。
「アニメーションオーバーライド」っていうらしいですよ。

やっていきましょう。
まずは、モデルの複製をします。
モデルを選択して【Ctrl】+【D】です。
どういう理屈か知らないですけど、アニメーションを作るとモデルがしゃがむのですよ。
そのためにモデルを複製して、そっちで作ろうという事です。
最終的には、元のモデルに適用するので、複製モデルは消してもいいみたいです。

アニメーションはシェイプキーを組み合わせて作ります。
unityでは【ブレンドシェイプ(BlendShapes)】、MMDでは【モーフ】って呼ばれてますね。
場所を確認しておきましょう。
『複製したモデル』の表情を登録してるメッシュを選択して、【Inspector】の【Skinned Mesh Renderer】にある【BlendShapes】をクリックします。
そうすると、表情の一覧が出てきます。
この数値が変わる事で表情が変わるって訳ですね。
ここで表情を変えてみて、数値をメモっておくと良いかもですね。
後でも出来ますけど。。

では作っていきましょう。
【Assets】内で右クリック。
【Create】→【Folder】を選択してフォルダを作ります。
分かりやすく【Animation】とでも付けましょうか。

次に作ったフォルダの中で【Create】→【Animation】を選択します。
新しいアニメーションファイルが出来ます。
ファィル名は好きな名前で。

次にメニューバーから【Window】→【Animation】を選択します。
アニメーションウィンドウが開きます。

「作ったアニメーションファイル」を「複製したモデル」にドラッグ&ドロップ。
アニメーションウィンドウの左上に「作ったアニメーションファイル」になってるのを確認します。
ここに表示されてるファイル名のアニメーションを編集するという事になります。
ドラッグ&ドロップすると、そのオブジェクトのanimeatorファイルも作成されますが気にしなくて良さそうです。

表情を入れていきますよ。
アニメーションウィンドウの左上にある【赤い●】をクリックします。
録音や録画といった感じのボタンですね。
これが押されてる間の変化がアニメーションとして登録される訳です。

次に『複製したモデル』の表情を登録してるメッシュを選択して、【Inspector】の【Skinned Mesh Renderer】にある【BlendShapes】にいきます。
変えたいように各項目の数値を入力しましょう。
そうすると、アニメーションウィンドウにも反映されます。
終わったら、【赤い●】をクリックして解除します。

作りたい表情が完成したら、これをすべてコピーします。
一番上の◇をクリックすると、その秒数の項目がすべて選択されるので【Ctrl】+【C】でコピーします。

次に0.01秒の所をクリックして秒数を進めます。
そして、0.01秒の所で【Ctrl】+【V】で貼り付けます。

これでアニメーションファイルの完成です。
ちなみに、変化のない表情も0数値で登録してるのは表情が被った時に崩れるのを抑えるためですね。

さて、アニメーション作りはこれで良いのですが、これをハンドサインキーに割り当てないとVRC内では表情が変えられません。
割り当てていきましょう!

【Asset】→【VRCSDK】→【Examples】→【Sample Assets】→【Animation】にある『CustomOverrideEmpty』を【Ctrl】+【D】で複製します。
複製したファイルを自分で作ったAnimationフォルダに移動させましょう。

複製した『CustomOverrideEmpty』をクリックすると【Inspecter】に項目が出ていきます。
この項目の中にハンドサインの項目があるので、割り当てたいハンドサインの所にに作ったアニメーションファイルをドラッグ&ドロップ。

使えるハンドサインは7種類です。

【Shift】+【F1】= 通常時
【Shift】+【F2】= FIST
【Shift】+【F3】= HANDOPEN
【Shift】+【F4】= FINGERPOINT
【Shift】+【F5】= VICTORY
【Shift】+【F6】= ROCKNROLL
【Shift】+【F7】= HANDGUN
【Shift】+【F8】= THUMBSUP

割り当てたら、最後に作った物を元のモデルに反映させます。
元のモデルをクリックします。
【Inspecter】の【VRC_Avater Descriptor】にある【Custom Standing Anims】にハンドサインを割り当てた『CustomOverrideEmpty』をドラッグ&ドロップ。
これで完成です。

あとはVRCで確認して表情が変われば成功ですね。

ちなみに、これだけだと表情変化時にハンドサイン(手の動き)が上書きされてるのです。
表情も変化させたいけどハンドサイン(手の動き)も維持したいという場合は、表情のアニメーションファイルの中にハンドサインのアニメーションも登録すればOKです。
自分で一つ一つ登録するのでも良いですが、面倒な人は既にあるハンドサインアニメーションからコピーしてきましょう。

【Asset】→【VRCSDK】→【Expamples】→【Sample Assets】→【Animation】の中にそれぞれのハンドサインのアニメーションがあります。
『コピーしたいハンドサインファイル』からアニメーションウィンドウでコピーしたい項目を選択して【Ctrl】+【C】でコピー。
(項目が多いのでコピーするのは最低限『Hand~』が付いた48種だけで良いかも)
『ハンドサインを付け加えたい表情ファイル』のアニメーションウィンドウで【Ctrl】+【V】で貼り付け。
(全項目コピーして後で『Hand~』以外を消した方が楽かも)
これで表情+ハンドサインのアニメーションが出来上がります。
ただし、モデルによってボーンの長さや位置が違いますので、適切な数値になるとは限りません。
綺麗にしたいのなら面倒でも自分で数値入力する必要がありますね。
もしくは、自動で割り当ててくれるアセットを誰かが作ってるかも???

もう一つ。
これだけだと、自動瞬きと干渉して表情が崩れたりするのですよねぇ。。
その辺りはまた次回。





拍手[0回]

PR