Unityのヒンジ(Hinge Joint)による揺れる提灯&注連縄の実装

上の動画から分かるように、コココインで実装されている「台蹴り」を使うと、提灯や注連縄が揺れるようになっています。
これをUnityで実装するために使ったのがヒンジを実装するHinge Jointコンポーネントです。
これを使うことで隣接オブジェクト同士を一定の条件のもとに繋ぐ(実際はRigid Bodyに繋ぐ)事ができ、鎖や吊り電灯や扉の蝶番や数珠つなぎの物体などを表現できます。

1つの物体をある固定オブジェクトに吊るしたい場合は、固定先にRigidBody、吊るしたいオブジェクトにHingeJointを追加(RigidBodyも付きます)し、固定先のオブジェクトは拘束してしまうかIs Kinematicにします。
吊るしたい物体にはRigid BodyのMass、Drag、AngularDragを適当に設定してUse Gravityをチェックします。拘束はしません。Hinge Jointの方は固定先オブジェクトのRigid BodyをConnectedBodyに設定します。Anchorは吊るすオブジェクトの最上部に、Axisはオブジェクトの回転軸になりますので(オブジェクトのローカル座標系によって軸は異なりますので)Axisは真上を向くような感じに設定します。揺れるだけでなくバネのように跳ねさせたいならSpringやDamperなども設定します。これが今回の提灯に該当します。固定先オブジェクトはEmptyです。

注連縄は両端が固定されているので、両端の位置に固定用のEmptyを追加し、3つのオブジェクトの数珠つなぎ状態にします。
固定用オブジェクトL、注連縄、固定用オブジェクトRのConnectedBodyの参照は、(無し←固定用オブジェクトL←注連縄)あるいはその逆方向になります。両端オブジェクトはIs Kinematicにし、Axisは横向き、アンカーは注連縄に接する感じで、注連縄の方は拘束はせずUse Gravityにして、Axisは横向き、アンカーは注連縄の回転軸(注連縄本体から外れた位置です(下スクショの注連縄の上に見えるオレンジ色の小さな矢印)。大縄跳びの動きを想像してください)。

参考サイト

1 Star2 Stars3 Stars4 Stars5 Stars (まだ投票されていません)
Loading...

    コメント