vrchat アバター2体の動きを親子関係で追従させるには
VRChatのアバターで、ほかのアバターに同じ動きを追従させて動かすには、Rotation Constraintを使用する。頭の上に動くアバターを乗せる際やサブアーム追加も同様の手順になると思われる。
●大概要
やり方の解説動画はコレ。
手順
1.Rotation Constraint設定
●使用するツール
[VRC][アバター] Rotation Constraintを簡単に追加するためのUnityエディタ拡張
●ツール使用条件
ツールには、親のアバターと子のアバターをD&D指定し、同じGameObjectにRotation Constraintを設定するとのこと。その際、親子でGameObject名称は同一である必要がある。
つまり、Rotation Constraintを設定する時点では、同じアバターが2体必要である。
別のアバターに同じ動きをさせるためには、一度Rotation Constraintを設定したアバターに対しmesh削除などを行い、着せ替えの要領で別のアバターを合体させるという手順になる。
※アバター合体への注意
もし追加アバターの非表示制御や動き固定などのanimationを組みたい場合、大量のRotation Constraintコンポーネントに対するanimation設定を行うことになる。コンポーネントのついているGameObjectは大量のため、別アバター合体するまえにanimation設定をしてからのほうが楽。
2.Animation作成
動画にある追加:
1.分身1位置固定・戻りにFixed Joint追加、RigidBodyのUseGravity:off、IsKinematic:ON
2.子のHipsにPosition Constraint追加・親のHips割り当て
動画ではこの設定を行ったうえで、Radial Inventory経由でEXMenuに設定している。EXMenuがわかればAnimationやparameter追加などで手動で組み込んでもよい。
●追加のComponent
・ワールド固定
・分身1位置固定:FixedJoint
・分身のHips:Position Constraint
・戻り:Rigidbody
●Animation
「分身1ポーズ固定」:RotationConstraintぜんぶをdisableにする
「分身1ポーズ固定解除」:RotationConstraintぜんぶをenableにする
「分身1位置固定」:分身1位置固定のRidigBody.IsKinematicをTrue、Hips.Position ConstraintをDisable
「分身1位置固定解除」:分身1位置固定のRidigBody.IsKinematicをFalse、Hips.Position ConstraintをEnable
「分身終了」:子のアバタートップをdisable
「分身開始」:子のアバタートップをenable
3.EXMenu設定
●FXLayer
●Expression
・parameter
・menu
そんなふーな感じで。
この記事が気に入ったらサポートをしてみませんか?