コンテンツにスキップ

Avatars 3.0で尻尾を振る機能の作り方

この記事では下の動画のようなメニューを作って、コントローラーで尻尾を振る方法を解説します。

前提条件

SDK2のアバターをAvatars 3.0へ移行するまでの、最低限のアバターセットアップが完了しているところからの解説になります。まだの人はこちらからチェックしてください。

今回の記事では、アバターの表情設定まで完了している以下のアバターで進めていきます。

尻尾振り用のアニメーターを作成する

まず、VRCSDK/Examples3/Animation/Controllersvrc_AvatarV3HandsLayerCtrl+Dで複製します。

複製されたvrc_AvatarV3HandsLayer 1の名前を適当に改名して、アバターのフォルダに移動しておきましょう。今回は[アバター名]_Gestureという名前にしました。

これを、アバターPlayable LayersGestureスロットに入れます。

尻尾振り用のアニメーションを作成する

アニメーターの作成

次に、尻尾振り用のアニメーションを作成します。まずは先ほど作成した[アバター名]_GestureのAnimatorをモデルのAnimatorコンポーネントContorollerにセットします。これは最終的にアバターをアップロードするときには外します。ここにセットしておくことでアバターをアップしなくてもUnity上でアニメーションのチェックができます。

登録が出来たら、[アバター名]_GestureをダブルクリックしてAnimatorウィンドウを開きます。

パラメーターの追加

Parameterタブを開き、+ボタンからFloatを選択してパラメータを2つ追加しそれぞれTailXTailYとします。

BlendTreeの設定

次に、Layersから+ボタンを押して新たにレイヤーを作成し、名前をTail Motionとします(名前は適当でOKです)。

Tail Motionの歯車マークをクリックして、Weightを1にします。忘れやすいので注意!

Tail Motion内で右クリック→From New Blend Treeを選択しBlend Treeを作成します。

Blend Treeを選択し、InspectorMotionにあるBlend Treeをダブルクリックします。

するとInspectorの内容が変わります。次に、Blend Type2D Freeform Directionalに変更し、ParametersTailXTailYを選択します。

Motion+ボタンAdd Motion Fieldで5つ作成します。

それぞれのPosXPosYを以下のように設定します。

アニメーションの作成

次に、一度Projectウィンドウに戻り、右クリック→CrateAnimationで新たにAnimation Clipを作成し、名前をTail_Idleにします。

Tail_IdleBlend Treeの一番上に追加します。

次に、ツールバーからWindowAnimationAnimationを選択して、Animationウィンドウを出し、Sceneビューでアバターを選択状態にします。

次に、AnimationウィンドウTail_Idleを開きます。

Add Propertyより、尻尾を曲げるボーンのTransform/Rotationの右側の+ボタンを押しプロパティを追加します。

右端のキーフレームを選択してDelで削除して最初のフレームのみにします。

Projectウィンドウに戻り、Tail_Idleを選択してCtrl+Dで4つ複製します。それぞれ、名前をTail_UpTail_DownTail_RightTail_Leftとします。

新しく出来たAnimation ClipBlend Treeに以下のように登録します。

アバターを選択状態にして、Animationウィンドウを開き、赤丸のRecodeボタンを押して、それぞれの状態になるようにボーンの回転を変更します。完了したらもう一度Recodeボタンを押し、PreviewをオフにすればOKです。

Tip

値を変更してもすぐに戻される!
DynamicBoneの影響下のボーンをRecodeモードで操作すると戻されます。一時的にコンポーネントのチェックを外せばOKです。変更後に戻しましょう。

Tail_Down

Tail_Left

Tail_Right

Tail_Up

動作確認

ここまで設定が完了したら、動作確認をします。シーンを再生し、Blend Treeの赤丸を動かせば、どのように動くか確認できます。後は納得がいくまで数値を調整します。

調整が完了したら、アバターのAnimatorから[アバター名]_Gestureを外します

Expressoin ParametersExpressions Menuを作成する

まず、Projectウィンドウで右クリック→CreateAvatarsExpressionsMenuと、Expression Parametersを作成します。

出来たら、アバターのInspectorに戻り、ExpressionsCustomizeボタンを押します。

すると画面が切り替わり、先ほど作成したVRCExpressionParametersVRCExpressionsMenuを追加します。

VRCExpressionParametersを選択し、TailXTailYを追加します。型をFloatにするのも忘れないようにします。

次に、VRCExpressionsMenuを選択し、Add Controlをクリックします。

最後に、黄色で塗った部分を以下のように設定します。

これですべてのセットアップが完了しました。

VRChatでテスト

アバターを読み込んだら、デスクトップモードならR長押しでAction Menuが開きます。 ExpressionsTail Controlでコンロールが開き、入力で尻尾が動きます。

Tip

今回作ったバージョンは、アクションメニューを閉じても尻尾の角度が保持されるバージョンです。メニューを閉じたらリセットしたい場合は、ここを参考にしてみてください。

問題なく動けば完成です!

参考サイト

Avatar3.0の導入