Main Logo
hero-background.jpg

VRChatでAnimationを追加設定してExpression Menuから再生/停止する

UnityでAnimation ClipとAnimator Controllerを使い、VRChatアバターのExpression Menuからアニメーションを再生・停止する方法を解説します。

VRChat Avatar 3.0でアニメーションを再生できるようになるまでを、必要なファイル作成から設定まで順番に説明します。


Unityで作ったAnimationをVRChatのActionで再生する

VRChatアバターで「Expression Menuのボタンを押したらアニメーション再生」を実装する手順です。
今回は Animation ClipAnimator Controller を使い、Action レイヤーで制御します。

Note

本記事ではアニメーションの再生方法に絞って説明します。 表情変更(BlendShape/Visemeの設定)は扱いません。

目標

Expression Menuからアニメーションを再生できるようにする

前提条件

  • VRChat Creator Companionで作成したAvatar 3.0プロジェクトがある
  • アバターがUnity上で表示できる
  • VRChat SDKにログイン済み
Note

Unityの対応バージョンはVRChat側で更新されます。 新規プロジェクト作成時は、VCCが提示する推奨バージョンを使ってください。

全体像

今回必要になるのは次の4点です。
この4つを作成・設定して、アニメーションが再生される状態にします。

  1. Animation Clip
  2. Animator Controller
  3. Expression Parameters
  4. Expression Menu
unity-vrchat-playanimation-items

Animationを再生させるために必要なもの

Animation Clip だけでは再生できません。
再生を制御するControllerとParameter、さらに操作用のExpression Menu設定が必要です。

1. アニメーションを用意する

自作アニメーションの場合は、fbx をUnityに取り込み、FBXモデルのAnimation Clipを複製して使います。

Warning

アニメーション用のFBXも RigHumanoid を選択する必要があります。 unity-vrchat-playanimation-rig-humanoid

unitypackage の場合は気にしなくても問題ありません。今回はFBXから取り込む手順で進めます。
BOOTHのアニメーション素材をお借りします。

2. Animation Controllerを作成する

次に、アニメーションを制御するAnimation Controllerを作成します。
ゼロから作るのは手間が大きいので、VCCでSDKを導入済みならPackages内のものを複製して使うのが簡単です。

unity-vrchat-playanimation-sdkpackage unity-vrchat-playanimation-sdk-animation-controller

vrc_AvatarV3ActionLayer を複製し、名前を変更して分かりやすいフォルダーに移動してください。

3. Parameterを作成する

パラメータも用意します。ここもSDKから複製するのが無難です。

unity-vrchat-playanimation-parameters-path2 unity-vrchat-playanimation-parameters-path

DefaultExpressionParameters を複製して使います。

4. Expression Menuを作成する

Expressions Menu は新規作成します。右クリックメニューから作成します。

unity-vrchat-playanimation-menu-create

これで最低限必要なファイルがそろいました。次にそれぞれ設定します。

設定を変更する

4つのファイルを作成したら、アバター側に設定します。
まずアバターを選び、次の3つを設定します。

  • Action
  • Menu
  • Parameters
unity-vrchat-playanimation-avator-setting unity-vrchat-playanimation-3point-set

Expression Menuの設定

Expression Menuに項目を追加します。
Parameters を設定し、Controls にトグルを作成します。

unity-vrchat-playanimation-expression-menu-add
Note

Animation Controllerで VRCEmote (Int) を使うため、 Parameterも VRCEmote (Int) を選択します。

Animation Controllerの設定

最後にAnimation Controllerを設定します。
今回は「VRCEmote の値が特定の値のときにアニメーションを再生する」構成にします。

  1. 再生したいアニメーションをドラッグ&ドロップで追加します。 unity-vrchat-playanimation-controller-add-animation

  2. WaitForActionOrAFK から Prepare Standing への流れを参考に、追加したアニメーションへ遷移をつなぎます。 unity-vrchat-playanimation-controller-make-transition

  3. 追加した遷移条件を VRCEmote Equals 1 に設定します。 unity-vrchat-playanimation-controller-animation-controll

Note

WaitForActionOrAFKPrepare Standing の間で制御されるため、9以上は設定できません。 既存条件(Less 9)を修正すれば9以上でも可能になります。

  1. 最後に BlendOut Stand へつなげて完了です。 unity-vrchat-playanimation-controller-connect-blendout-stand

テストする

  1. Gesture Manager を使います。ない場合は Tools から追加します。 unity-vrchat-playanimation-gesturemanager

Tools に見当たらない場合は、VCCから Gesture Manager をインストールしてください。
unity-vrchat-playanimation-vcc-gesture-manager-install

  1. Gesture Managerで対象アバターを指定します。 unity-vrchat-playanimation-gesturemanager-setting

実行してテストします。 unity-vrchat-playanimation-gesturemanager-start

アニメーションが再生されない場合は、5秒ほどクリック長押ししてみてください。
アニメーションが短いと、遷移タイミングによって再生が見えにくい場合があります。 unity-vrchat-playanimation-gesturemanager-emulate

まとめ

UnityでVRChat用アニメーションを再生するには、次の4つが必要です。

  1. Animation Clip
  2. Animator Controller
  3. Expression Parameters
  4. Expression Menu

また、アバターには次の3つを適用します。

  • Action
  • Menu
  • Parameters

再生されない場合は、Actionに設定したAnimator Controllerの遷移条件を見直してください。
Baseレイヤー(Default Locomotion )にAnimation Controllerを設定すると再生だけはできるかもしれません。(テスト用として利用してください。)

関連記事

コメントを読み込み中...