動作しない可能性あり(確認中)Avatar3.0でGenericリグをアニメーションさせる
Avatar3.0でGenericアバターを動かそう!
* 2020年11月9日追記:アプデにより動作しなくなっているみたいです。確認中です
- はじめにAvatar3.0とは
- 下準備
- モデルのインポート&Sceneへの配置
- アニメーションの作成
- アバターの設定
- AnimationControllerの設定
- EXMenuとEXParameterの設定
- アバターのアップロード
- VRChatで動作を確認する。
- デバックメニューで状態を確認する
- 使用したファイルのDLリンク
はじめにAvatar3.0とは
VRchatで先日Avatar3.0が公開されました。
Avatar3.0は簡単に言うと、アニメーションの状態と遷移条件を自分で作れるようになって、条件に使っている値をVRCの中から操作できるようになった感じです。
詳しいところや内容の詳細等は日本語の解説記事をたくさん公開していただいているので、そちらを参考にしてください。
Avatar3.0ではなんと、Genericリグのアバターもアニメーションさせることができるようになりました!
なので今回はGenericリグのモデルを使ってアニメーションのさせ方を説明したいと思います。
下準備
Genericリグのモデル詳細
作成したモデルは以下からダウンロードできます
https://drive.google.com/drive/folders/1lj_opAGs_5ygxhG8tZmRJ0bqop3syXxl?usp=sharing
環境準備
今回は以下の環境で行います。
Unity:Unity2018.4.20f1
VRCSDK:VRCSDK3-AVATAR-2020.08.13.17.48_Public.unitypackage
事前にプロジェクトを作成し、VRCSDKをインポートしておいてください。
モデルのインポート&Sceneへの配置
モデルをプロジェクトにインポート
FBXファイルをProjectウィンドウの適当な位置にドラッグアンドドロップしてください。(今回はAsset直下に持ってきました)
モデルの設定
Projectウィンドウ内のFBXファイルを選択すると、Inspectorウィンドウにモデルの設定画面が出ます。
「Rig」を選択し、AnimationTypeを「Generic」にします。
「Material」を選択肢、「Extract Materials ...」を選択し、モデルに使用しているマテリアルを展開します。
モデルの配置
ProjectウィンドウのモデルをHierarchyウィンドウにドラッグアンドドロップします。
アニメーション作成用にモデル複製(やらなくても良い)
今回はHierarchyウィンドウにあるモデルを複製して、アバターに設定する用、アニメーションを作る用の2つで説明します。
Hierarchyウィンドウにあるモデルを選択し、Shift+Dでモデルが複製できますので、位置をずらして見やすくします。
アニメーションの作成
Animationファイルの作成
Hierarchyウィンドウで右クリックし、「Create」→「Animation」でAnimationファイルを作成します。
今回はLEFTという名前に変更します。
アニメーション用のモデルへの適用
先程複製したアニメーション用のモデル(Generic(1))に、AnimationファイルのLEFTをドラッグアンドドロップします。
(これで、アニメーション用のモデルをつかってアニメーションを作ることができるようになりました)
アニメーションの作成
(詳しいアニメーションの作り方は「アニメーション 作り方」などでググってください)
今回はアバターを周期的に曲げるようなアニメーションを作ります。
アニメーション用のモデル(Generic(1))をHierarchyウィンドウで選択すると、AnimationウィンドウでLEFTのアニメーションを選択できるようになります。
「Add Property」を押し、「▶」で展開していきながら、「Bone.001」の「Rotation」の横にある「+」を押します。
すると、0:00と1:00の地点に◇のマークが配置されます。この◇の場所でアバターを変形させたりできます。
今回はアバターを曲げて戻したいので、もう一点◇を作って曲がった状態を設定します。
Animationウィンドウで右クリックし、「Add Key」を押すと、右クリックした場所に新たな◇を作ることができます。今回は0:15の位置に作成しました。
(この画面のように縦に◇が5個並んでいない場合は、Bone.001:Rotationの左にある「▶」で展開してください。)
(このとき、Previewボタンを押しておくと、配置したモデルで曲がり具合が確認できます)
アニメーションファイルをループ設定に
Projectウィンドウで作ったアニメーション(LEFT)を選択し、InspectorウィンドウのLoopTimeにチェックを入れます。
(チェックを入れないと、1回だけしか曲がらなくなります)
アバターの設定
必要ファイルのコピー
VRC内からアニメーションを開始するために、アニメーション設定ファイルとメニューファイルを設定する必要があるのですが、
今回はVRCSDKに備え付けられているものをコピーして使用します。
Projectウィンドウで「Assets」→「VRCSDK」→「Example3」→「Animation」→「Controllers」にある「vrc_AvatarV3LocomotionLayer」を複製します。
「Assets」→「VRCSDK」→「Example3」→「Expressions Menu」にある「DefaultExpressionParameters」と「DefaultExpressionsMenu」も複製します。
今回は複製したものをそれぞれ「GenericAV3_Locomotion」「GenericAV3_Parameters」「GenericAV3_EXMenu」にリネームしておきます。
アバター用のモデル(Generic)をHierarchyウィンドウで選択し、Inspectorウィンドウで「Add Component」から「VRC Avatar Descriptor」を選択します。
追加されたVRC Avatar Descriptorの「Playable Layers」「Expressions」の2つの「Customize」を押し、展開します。
先程のファイルをPlayable Layersの「Base」、Expressionsの「Menu」と「Parameter」にドラッグアンドドロップします。
AnimationControllerの設定
Projectウィンドウで「GenericAV3_Locomotion」を選択すると、Animatorウィンドウに四角と矢印でできた図が表示されます。
(ここで歩いたときの動きなどが設定されていますが、詳細の説明はしません)
四角(State)にそれぞれアニメーションが設定されていて、矢印(Transition)に沿って順番に再生されていくと考えてください。
矢印には条件をつけることができ、条件が正になったら次の四角に移行します。
曲げアニメーションが動くStateを作成する
Animatorウィンドウ内の四角と矢印のある画面で、なにもないところを右クリックし、「Create」→「Empty」で新しいStateを作成します。
作成したStateを選択しておき、Inspectorウィンドウの「Motion」に曲げアニメーション(LEFT)をドラッグアンドドロップします。
曲げアニメーションに遷移するためのParameterを作成する
Animatorウィンドウ左上の「Parameter」を押し、「+」→「Int」を押すと新しいパラメーターを追加できます。
今回作成したパラメーターは「Emote」という名前にリネームしておきます。
曲げアニメーションに遷移するためのTransitionを作成する
Animatorウィンドウにある、「Standing」というStateを右クリックし「Make Transition」を押すと矢印が作成できるので、作成した「NewState」をクリックし、2つのStateを矢印で結びます。
NewStateからも同様にして矢印で結びます。
一番下の「Conditions」にある「+」をクリックします。
矢印で遷移する条件を設定できるので、今回は「Emote」「Equals」「1」とします。(Emoteパラメーターが1になると遷移するという意味)
NewStateからStandingの矢印には「Emote」「Equals」「0」を設定します。
EXMenuとEXParameterの設定
VRC内から先程設定したEmoteというパラメーターを1に変更できれば、矢印に沿って曲げるアニメーションを再生でき、0に戻せれば最初の状態に戻せそうな気がしてきました。
これを設定するのが、先程コピーしたEXMenuとEXParameterです。
まず「GenericAV3_Parameters」を選択し、InspectorウインドウでParameter4の欄に「Emote」「int」を設定します。
次に「GenericAV3_EXMenu」を選択し、Inspectorで「Add Control」をクリックします。
追加されたNewControlの▶をクリックして展開し、Typeを「Toggle」Parameterを「Emote,Int」に設定し、Valueを「1」にします。
アバターのアップロード
VRCSDKウィンドウのBuildタブからアップロードするのですが、今回作成したアバターでエラーが発生しているので、!の右側の「AutoFix」をクリックしてエラーを解消します。
エラーが解消できたら「Build&Publish for Windows」を押し、アバター名を入力し、一番下のチェックを入れ、「Upload」でアップロードする。
Update Complete!が表示されたら、Okeyを押しUnityでの作業は終了です。
VRChatで動作を確認する。
VRChatを起動後MyCrerationにある、今回作成したアバターに着替え、アクションメニューを起動する。
(デスクトップだと「R」キー、Viveだとメニュー長押し)
Expressionsを開くと、「NewControl」が追加されているのでこれを押すことで曲げアニメーションが起動します。
もう一度「NewControl」を押すと曲げアニメーションが終了します。
これで、Genericアバターでもアニメーションができました!お疲れ様でした!
VRChat内でアニメーションがどのように動いているか確認する方法もお伝えしておきます。
デバックメニューで状態を確認する
アクションメニューを起動し、「Config」→「Debug」とすることで画面にデバッグメニューが表示される。
StateやParameterの中身も表示されるので見てみる。
アニメーションが起動していないとき、Parameters欄の「Emote」は0、Base欄の「State」はStandingになっています。
アニメーションを起動させると、「Emote」が1、「State」がNew Stateに変化していることが確認できます。
使用したファイルのDLリンク
今回使用したFBXやUnityPackageのDLリンクもおいておきます。
色々見て試してみてください。
https://drive.google.com/drive/folders/1lj_opAGs_5ygxhG8tZmRJ0bqop3syXxl?usp=sharing