VRChatで使える表情をカスタマイズする (Avater2.0)
TL;DR
↓↓↓↓↓↓↓↓↓
前提
- 本記事はVRMモデルを扱う前提で書いています
- VRM以外のモデルを使う場合は「アニメーションのプロパティ名」だけ読み替えてください
- 本手順の前段となる「VRMを変換してVRCにアップロードする手順」は↓を参照してください
ソフトウェアバージョン
- Unity: 2017.4.28f1
- UniVRM: 0.53.0
- VRM Converter for VRChat: 17.1.0
初期状態
- Unityの画面
- VRChatへアップロードが終わったところ
- VRChatへアップロードが終わったところ
表情(アニメーション)を作る
下準備
- モデルを
Ctrl+D
等で複製します(※理由は後述)
- また、Inspectorタブから複製したモデル以外を非表示にしておくと良いです。
空のアニメーションファイルの作成
-
Assetsの中に「Animation」フォルダを作ります
Assets右クリック > Create > folder > 「Animation」と名前をつける
-
Animationフォルダを開く
Create > Animation > 「wink」と名前をつける
アニメーション編集ウィンドウを開く
-
メニュー > Window > Animation
を選択するとアニメーションウィンドウが開きます。↓↓↓↓↓
-
アニメーションウィンドウは別ウィンドウで開かれます (※スクショの関係で私は下のタブに合流させました)
アニメーションとモデルの関連付け
-
projectタブに戻って、先程作ったwinkをHierarchyタブの自分のモデル(のルート)にドラッグ&ドロップ
-
このタイミングで「モデル名(1)」というファイルがAnimationフォルダに生成される。
-
※スクリーンショットの例だと
santa3_VRC()
-
※アニメーションコントローラーと呼ばれるファイルが自動生成されているが、今回の作業では意識しないので無視する
-
Animationタブを開くと、winkが開かれた状態になっている
※もしも画像のように
Add Property
ボタンがグレーアウトしていた場合、Hierarchyタブで複製したモデルを選択し直してみてください
表情プロパティの追加
-
アニメーションウィンドウで
Add Property > Body > Skinned Mesh Renderer
> (一旦スクロールバーを右端まで持っていく) -
~.Face.M_F00_000_00_Fcl_EYE_Joy_R
の右端のプラスアイコンをクリック -
Animationタブに選択した表情の項目が追加される
表情の調整
-
記録ボタン(赤丸) をクリック
-
Sceneタブのモデルが地面にめり込んでしゃがみますが、そういう仕様なので気にしないでください(※詳細は後述)
-
矢印の部分の数値を100にしてみます。 キャラクターの表情が変化します。100以外の値も試して感覚を掴んでください。
-
VRCの表情コントロールの仕様で、キーフレームが2つ必要なため、0.01秒後の部分にも同じキーを作ります。
-
録画ボタンをクリックして記録モードを解除 このタイミングで wink (=アニメーションファイル) が上書き保存されます
VRC上の操作と関連付け
ウィンクしか作っていませんが、一旦VRC上で動作確認してみたいと思います
空のカスタムオーバーライドファイルを作成
プロジェクトタブを開き、
Assets > VRCSDK > Examples > Sample Assets > Animation
の中にある CustomOverrideEmpty を
Assets > Animation
フォルダにCtrl押しながらドラッグ&ドロップ
- CustomOverrideEmpty を適当にリネーム 私は識別しやすくするために、Emptyの部分を削除してキャラクター名を入れました
- ※本記事では
CustomOverrideYui
としました
カスタムオーバーライドとアニメーションの関連付け
-
Inspectorタブ > VRC_Avater Descriptor(Script) > Custom Standing Anims
欄の右端のターゲットアイコンをクリック -
先程作成した CustomOverride ファイルを選択する
-
Custom Standing Anims の欄が、上記で選択したカスタムオーバーライドファイルになっていることを確認しつつ、矢印のあたりをダブルクリック
-
Inspectorタブにカスタムオーバーライドの中身が表示される
-
まだ空っぽなので、 VICTORY のターゲットアイコンをクリック
-
一番下に wink があるのでダブルクリックして適用
動作確認
アップロード
- モデルに表情の設定ができたはずなので、いったん複製したモデル(Scene)をCtrl+Sで保存し、VRCへアップロードする。
- ※VRCへアップロードする手順は こちらを参照してください
VRCで確認
- 一旦別のアバターに切り替えてからアップロードしたアバターに着替え直す
- ※そうしないと変更が反映されない
- Shift+F5 で VICTORYモーションを呼び出してみる
\あざとい!/
ハンドサインと表情を同時に操作する
ここまででウィンクだけならできるようになりましたが、本当はピースしながらウィンクしたいですよね? その夢、叶えましょう
ハンドサインが入ったアニメーションを複製する
Assets > VRMConverterForVRChat > Editor
の中にある VICTORY をCtrl押しながらAnimationフォルダにドラッグ&ドロップ
複製した VICTORY ファイルは VICTORY_WINK
にリネームしておきます
※リネームは必須です。[^1]
モデルとアニメーションの関連付け
-
VICTORY_WINK
をモデルにドラッグ&ドロップする -
Animationタブ(ウィンドウ)を開く
wink
の文字のあたりをクリックする ↓の画像のように、VICTORY_WINK
が選択できるようになっている -
VICTORY_WINK
を選択すると、指の形に関するプロパティがたくさん設定されている
表情の調整
- ここに先程ウィンクを設定したのと同じ要領でウィンクを
Add Property
する - うまくいけば↓の画像のように、ピースしながらウィンクする状態になる
使える表情の数
- VRモードとデスクトップモード共通で、8個まで表情を設定できます
- https://twitter.com/twintail_vtuber/status/1191178567847010304 (ちなみにF1とF3はVIVEコンだとグリップ握り/開放で操作します)
他の表情設定
ハンドサインが入ったアニメーションを複製する
の手順を、ハンドサインを変えながら繰り返していけばOKです- ハンドサインの元となるファイルは以下にあります
Assets > VRMConverterForVRChat > Editor
※握りこぶし、自然に開く、大きく開く の3種類がどこにあるのか分からないため、ご存知の方からのコメントお待ちしておりますm(_ _)m
座った時の表情を設定する
- 本記事に従って設定しただけでは立ち状態での表情しか変更できません。
座ったときの表情を変更したい場合は、Custom Sitting Anims にも同じカスタムオーバーライドファイルをドラッグ&ドロップしてください。
しゃがみポーズから復帰する方法
ありません。
- なので最初にモデルを複製しました。
最終的にカスタムオーバーライドファイル (本記事中の
CustomOverrideYui
)だけをモデルに適用してあげれば良いので、複製したモデルは削除し、複製元のモデルにカスタムオーバーライドを適用してください。
おわりに
- 自撮りしてたら朝が来た
[^1]: リネームが必要な理由 https://twitter.com/kohack_v/status/981349557807202304