目次

工事現場パネル

UniVCI-0.15で作ったJointを含むVCIはUniVCI-0.16以降のバージョンでは正常にロードできません。 必ず最新のUniVCIを使用してエクスポートしてください。

FixedJointとHingeJointを使用して、アバターと同じ動きをする工事現場パネルを作ってみる

サンプルデータ

https://virtualcast.jp/products/846ad526c23884e7ef26571de11a373e55a7c69d47ce6dd07a788c30138f27e3

Unitypackage

panel.zip

オブジェクトの構成

オブジェクトの構成は次のようになっています。
hand_L、hand_R、shoulder_L、shoulder_R、arm_L、arm_Rはbodyの子に設定します。
GroupIDは全て1にします。

また、今回はスクリプトを使用しません。

Jointの設定について

JointはFixed JointとHinge Jointを使用します。
Fixed Jointがついたオブジェクトをつかんで動かすと、Connected Bodyの参照先Rigidbodyに指定したオブジェクトが同じように動きます。

今回の場合、ballを動かすことでhandの上下移動と回転が可能です。

SubItemのball_LにFixed Jointをつけて、Connected bodyにhand_Rを指定します。
同様にSubItemのball_RにFixed Jointをつけて、Connected bodyにhand_Lを指定します。

SubItemのbody、shoulder、armに合計6個Hinge Jointをつけます。
位置はそれぞれ、肩の中心、ひじの中心、手首の中心につけます。
Axis(回転軸の向き)はすべてX=0、Y=0、Z=1にしています。

bodyにつけたHinge Joint(画像➀➁)の、Connected Bodyの参照先Rigidbodyにshoulderを指定します。

同様に、shoulderにつけたHinge Joint(画像➂➃)の参照先Rigidbodyにarmを、armにつけたHinge Joint(画像➄➅)の参照先Rigidbodyにhandを指定します。

コンポーネント設定

各オブジェクトのコンポーネントは次のとおりです。

この時、SubItemの「body」「ball_L」「ball_R」のUse GravityをOFF、Is KinematicをONに設定して下さい。

また、子の「shoulder_L」「shoulder_R」「arm_L」「arm_R」「hand_L」「hand_R」のUse GravityとIs KinematicをどちらもOFFに設定して下さい。

この設定をしないと、各オブジェクトが正常に動作しません