はじめに
今回はGestureについて解説します。
この記事を見る事でGesture Layerが闇の深さが深い事が分かります。
ぜひご覧ください。
Gestureの機能について
現状、手の形を変えるためだけの物と思ってください。
色々な説明がありますがその裏にはかなり複雑な黒い歴史があります。
Gestureがなぜ分からないのか
それは、公式に書かれてる説明と実際の内容が違うからです。
こちらの公式ドキュメントを要約すると下記のようになります。
・FxレイヤーはTrancformが設定できない
・Transformは『位置、回転、スケール』を意味する。
・ボーン変形はTransformによるもの(ボーンの位置、回転、スケールの操作)
・なので、Fxレイヤーではボーンの動作は設定できない。
・そこで、尻尾、翼、耳などの非HumanoidボーンのアニメはGestureを使う
しかし、まさかのこれが偽情報です。
正確な挙動はこのようになります。
・FxレイヤーでHumanoidボーンは動かない
・しかし、Fxレイヤーで非Humanoidボーンの動作は動く
・逆に、Gestureでは非Humanoidボーンの動作は記録できない
・Gestureは現状ハンドサインの表情変化ぐらいにしか使え無い。
・なので尻尾、翼、耳などの非HumanoidボーンのアニメはFxを使う
どうしてこうなった(推測)
端的に言うと公式やらかし案件です。(多分)
Avatars 3.0が実装された当初はWrite Defaultsがオンの状態を想定してリリースされました。
Write Defaultsがオンの時はGesture Layerは正しく動作してました。
しかしリリース後、様々な不具合が発覚したようです。
そして現在ではWrite Defaultsはオフが推奨になりました。
Write DefaultsがオフになるとGestureが正しく動かなくなりました。
その応急処置として色々試した結果、Write DefaultsがオフならFxで非Humanoidボーンが動く事が分かったのだと思います。
詳細はこちらに書かれています。
公式ドキュメントについてはWrite Defaultsがオンの時に書かれたまま更新されてないのだと思います。更新されてない理由としては下記の2つが考えられます。
・忘れられてる
・現在もバグと戦っていてオフを標準の仕様にしたくない
いずれにしてもGestureに関しては、理解しようとすると上手く行きません。
分からなくても、動いてる物が正しい世界です。
よく分からないけど動いたからヨシ!的なスタンスで向き合ってください。
レイヤーの使い分け
使い分けとしては下記のようなイメージです。
・Humanoid以外の動きははFX Layer
・Humanoidの手以外の動きはAdditive Layer
・Humanoidの手の動きはGesture Layer
・Humanoidを含めた完全なポーズの上書きはAction Layer
非Humanoidボーンの使い方(Fx)
尻尾、羽、耳などのボーンの動作はFx Layerで設定してください。
設定方法はこちらで解説。
公式の説明を見るとFxはトランスフォームは記録できない。
ボーン変形はトランスフォーム。
なのでボーン記録できないと思いますが…何故か動きます。
…動いたものが正しい。Avatar3.0はそんな世界です。
Humanoidボーンの動かし方(Additive)
HumanoidのボーンはFxでは動かないのでAdditiveLayerを使います。
使い方はこちらで解説。
手の動かし方(Gesture)
手はHumanoidボーンの1つです。
そして、手はハンドサイン機能があります。
これはVRChat公式側で設定した形で配布しています。
Additiveで設定するとGestureの設定と干渉する問題起ります。
2つのレイヤーを使った干渉設定は分かりにくく手間です。
なので手の形のみGestureを使うメリットがあります。
使い方はこちらで解説。
完全なポーズの上書き(Action )
特定の動きを再生する場合はAction Layerを使います。
Humanoidや手などの違いに関係なくActionを使います。
使い方はこちらで解説。
どうしてもGestureでアバターを動かしたい場合
HumanoidボーンをGestureで動かしたい場合はAvatar Maskをかける必要があります。
Right Handの歯車マークを押します。
アバターマスクが入ってる事が確認できます。
Inspectorを確認。Humanoidの▶ボタンをクリック。
すると動かすパーツのみが有効になってる事が確認できます。
何故か分かりませんがこの設定が必要です。
関連情報はこちらに書かれています。
新しいアバターマスクはProjectを右クリック。
Create → Avatar Maskより作成できます。
まとめ
今回はGesture Layerの闇について紹介しました。
またハンドサイン関係の知識についてはこちらで解説。
ぜひこちらもご覧ください。
コメント