VRCSDK2.0と3.0では別物?アニメーションを設定したい!【上級編】

未分類

こんにちは!みなさんVRChatやってますか?

今回はハンドジェスチャー表情を変えたり、グーチョキなどの手の形を設定する方法を紹介していきます。
初心者トラップが多いUnityと和解していきましょう!

Unityが一切分からないという方は下記を確認してから挑戦してくださいね!

VRChatにアバターをアップロードしたい!Unityの使い方を理解しよう!【入門編】
こんにちは!みなさんVRChatやってますか?今回はVRChatユーザーにとって簡単なようで案外分かりにくいUnity入門の足掛かりとなればと思いまとめました!購入したアバターのアップロード方法や自作アバターのアップロード方法など、紹介して

今回も前回に引き続き、2.0向けアバター京狐さんを現在主流VRCSDK3.0再設定しつつ、
アバターをVRChatにアップロードする際の仕組みを紹介します!

3Dのオリジナルアバターを作ってみたものの、VRChatにアップロードする方法が分からない・・・
そんな時の解決方法になればと幸いです!

ハンドジェスチャーって?

VRChatでは、右手左手の動きをコントローラで再現することができます。

制御方法はプレイ方法やコントローラーによって変わり、一概には言えませんが、
画像の様にOculus系のコントローラーは直感に近い形で制御ができます。

デスクトップモードでは
SHIFT(R SHIFT)を押しながらF1~F8を押すことで手の形を変えることができます。

ハンドジェスチャーで表情を変えるには?

VRCSDK2.03.0では仕組みが違う為、現在主流の3.0の仕組みの大枠をまず解説します。

VRC Avatar Descriptorの中には“Customize”をクリックすることで現れる項目があります。

主にFXにはシェイプキーオブジェクトのオンオフなどトランスフォーム(移動回転スケール)を使わないものの制御で使います。※表情の変化等

※もし一部項目が現れない場合は元モデルとなるRigデータがHumanoid以外になっている可能性があります。
例:Actionが消えてFXが2つある等

(オリジナルアバターをアップロードする際などによく遭遇します)

DefaultAnimation Controller差し替えることで意図した挙動に変更するといったことができます。

Animation Controller(アニメーションコントローラ)とは

アニメーションコントローラ入力があったら別の出力をするというプログラム的な制御を視覚的に分かりやすくしたUnityのシステムです。

まず、Playable LayersAnimation Controllerを割り当てるのですが、

今回やりたいこと「京狐さん(2.0)の仕組みを3.0に移行する」ことなので

・ハンドジェスチャーで表情を変える

という仕組みを解説しながら設定していきます。

実際にAnimation controllerに触れていく

やりたい事の手順としては

  1. VRChatデフォルトハンドジェスチャー用コントローラを、コピーして活用する
  2. ハンドジェスチャー出力から表情に切り替える
  3. FX表情変更レイヤーを割り当てする

上から順番に進めていきます。

ハンドジェスチャーを複製する

まず、1からAnimation Controllerを用意するのは面倒くさいので

手の入力と出力を制御しているコントローラを複製します。

VRCSDK3.0をインポートしたUnityプロジェクトであれば

Assets > VRCSDK . Examples3 > Animation > Controllers

の中に”vrc_AvatarV3HandsLayer2“というコントローラがあるはずです。

これを複製活用していきます。
※(Ctrlキーを押しながらAsset直下に持っていくと複製される上に一番上層にファイルを用意できるため作業がしやすいです。)

コピー元と差別化をするために名前を変更しておきましょう。

“vrc_KyokoV3HandsLayer2″など自分が把握しやすいようにします。なんでもいいです。

“vrc_KyokoV3HandsLayer2″をダブルクリックすると

Animatorというタブが開かれます。

VRChatの仕様なのか“AllParts”“Left Hand” “Right Hand”などのレイヤーを削除する不具合が起こるようなのでやめておきましょう。

また、次から紹介する情報は何度も紹介するので耳にタコを作ってください。 ※慣れても何回も間違えます。

①VRChatではレイヤー下から優先して表現される。
②レイヤーウェイト1にしないと反映されない。
③制御マスク動く/動かないを設定でき制限されてると反映されない。

どういうことかというと

①デフォルトでは、LeftHandで表情割り当てをしていても、RightHandの入力があれば、そっちの表情が優先される。

レイヤーを新規追加すると、初期値が0になっていることがあるため動かないという結果になる

③マスクで移動制限がされていることで、意図した部分が動いてくれない
もしくは意図した部分以外が動いてしまう

ハンドジェスチャー出力を手から表情に切り替える

切り替えるにはまず、表情に関するアニメーションを作らなければなりません。

京狐さんの場合は、一部アニメーションに2.0時代の回りくどい設定が行われている(そもそも2.0向けはほとんど)ので1から設定していきましょう。

「特定のシェイプキーをオフからオンに切り替える」
というアニメーションを表情分作る必要がありますが、

まずは一連の流れを説明するために以下の作業を行います。

  1. 笑顔のシェイプキーをオン(100)にするアニメーションを作る
  2. 笑顔アニメーションを”vrc_KyokoV3HandsLayer2“の右手レイヤーに追加する
  3. 右手ピース(例)の出力を笑顔アニメーションに切り替える

これらを行うことで右手ピースをVRChatで行うと顔が笑顔になるという制御の変更ができます。

笑顔のシェイプキーをオン(100)にするアニメーションを作る

まずはアニメーションを作る為にはアニメーションファイルを作る必要があります。

追加したらわかりやすいように名前を「笑顔」などに変えておきます。

アニメーションを作るためにはアバターアニメーションファイル紐づける必要がありますが、まずは表情を作ること最優先なので簡易的に紐づけます

※この紐づけは後で消してやり直します

ヒエラルキーのモデルアニメーションファイルドラッグします。

するとkyoko_modelというファイルが追加されます。

「笑顔」は追加された”kyoko_model”というコントローラを介して京狐さん連結されたことになります。

この状態で
今度はヒエラルキーのkyoko_modelを選択している状態アニメーションを作ることができます。

Add Property“で笑顔のシェイプキーを読み込み、数値100にしましょう。

以上でアニメーションの完成です。

紐づけで追加された“kyoko_model”というコントローラ使わないので削除してください。

コントローラの出力を切り替える

手のピースアニメーション笑顔のアニメーションに切り替えます。

最初に追加した“vrc_KyokoV3HandsLayer2”を開き、AnimatorタブからRight Handを選択してください。

この“vrc_KyokoV3HandsLayer2”手のジェスチャーから複製したのですが、

“✖ 手の形”ではなく”〇 顔の表情”を変えるためのコントローラにしたいので

手を動かしてしまう不要なアニメーション“vrc_KyokoV3HandsLayer2″から削除しておきます。

※Motionに割り当てられているデフォルトアニメーションをDeleteで消してます。=何も読み込む対象がない状態になる

ついでに手だけになっているマスクnoneにしておきましょう。

笑顔アニメーションをコントーラに入れる

まずは先ほど作ったアニメーションコントローラ(vrc_KyokoV3HandsLayer2)の”Right Hand”レイヤーにドラッグします。

Any Stateから笑顔右クリック”Make Transition”矢印でつなげます。

矢印内部の設定をピースと笑顔を同じにする

矢印でつなげられていますが、中身はプログラミングの様な内容になっています。

Any Stateから4という入力を受け取るとPeaceになる流れを
笑顔に矯正したいので、Peaceを削除して”笑顔“につなげます。

▼この画像あたりをクリックして左端に持っていくとクロスフェードをなかったことに出来ます。

以上でコントローラ内のピース(ハンドジェスチャ)表情(シェイプ)に変更することが出来ました。

最後にWrite Defaultsをオフにしておきます。

今回の様にアニメーション作成の時に1点”100″を追加した場合などはオフに、”100″と”0″2点追加した場合はオンでも問題ありません。

違いに関しては別の機会に紹介します。

FXに表情変更レイヤーを割り当てする

FXコントローラ(vrc_KyokoV3HandsLayer2)を割り当てします。

 

以上がハンドジェスチャ表情に変更する手順になります。

まとめ

Unityの操作方法を把握しないといけない為、いきなり難易度があがりましたが、アニメーションを攻略することで、デフォルト以外の表情を作ることもできます。

京狐さん100にも及ぶほど表情やシェイプキーが用意されているため、デフォルトの表情だけでは活かしきっていないと思いませんか?
今回は笑顔だけを変えましたが、他も同様な作業で変更できます

エクスプレッションメニューを使うことでハンドジェスチャ以外でも表情を再現できたり、左手と右手を組み合わせて表情を変えたり

などUnityの機能は沼の様に深いです。

一緒に楽しみながら学んでいきましょう!

コメント

  1. たま より:

    Vtuberの解剖学の皆様、お疲れ様です。
    ハンドジェスチャーを利用して表情の変更をする記事を読ませていただきました。
    アバターの表情変更のしかたがさっぱり理解出来ず、途方に暮れたいましたが、こちらの記事のお陰でもう一度チャレンジしようという気持ちになれました。
    本当にありがとうございます。

    寒暖差が激しく、日によって夏のようにも冬のようにも気温が変動する日々が続きますね。
    お忙しいかとは存じますが、どうかお体に気を付けてお過ごしください。

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