投稿

VRChatでスタンド(使い)になれるギミック

Constraintを使用したWorld固定とアバター制御の切り替えによる,所謂スタンド表現の基本となるギミック構築方法を以下に記録します。 Connstraintを使用したWorld固定については,Beryllin様の記事「 VRCでConstraintを使ったワールド固定&ピックアップ(Unity2018対応) 」を使用しています。 1. アバターの準備 アバターを切り替えるために3種類のアバターを用意します。    1.Humanoidとして必要なBone以外のBoneやMeshを削除したアバター(以後Boneアバター)    2.常時見えるスタンド使い(本体)のアバター(以後アバター1)    3.スタンドとして使用するアバタ―(以後アバター2) 2.アバターの階層 アバター直下に対して以下の通りObjectを配置します。 Avater ┗Boneアバター ┗アバター1 World_C     ┗ Pickup_C     ┗アバター1 Hips ┗アバター2 World_C     ┗Pickup_C   ┗アバター2 Hips ┗World_Point 3.Constraintの設定 アバター1とアバター2のConstraintを設定していきます。 HispBoneよりも後のHumanoidBone全てにRotate ConstraintをAdd Componentし,対応するBoneアバターのBoneを設定します。 HispBoneはRotate ConstraintとPosition ConstraintをAdd Componentし,対応するBoneアバターのBoneを設定します。 この段階で設定したConstraintは全てIs Activeにチェク,Weight 1です。 注意としてTスタンス又はAスタンスを任意で揃えてください。 4.World_CとPickup_Cの設定 アバター1とアバター2のWorrd_CにRotate Constraint,Weight 1,Sources -0.5。Position Constraint,Weight 0.5,Sources -1をAdd Component及び設定。 両方共にIs Activeにチェク,SourcesにWorld_Pointを設