2013年2月21日木曜日

[Unity3D]HingeJointを使った揺れモノ設定

キャラクタのヘアを揺らすための設定を
Hinge jointで考えてみました。











Hinge jointはグローバル座標でないとただしく動作しないので、
シーンに直接作成しています。
Sphereを作成してジョイントの代わりにPysicsコンポーネントを追加します。
Sphere1は物理の影響を受けさせたくないのでisKinematicをオンに
しておきます。

  • Sphere1にRigidBodyコンポーネントを追加
  • Sphere2,3,4にHinge jointを追加
  • Hinge joint>Connected Bodyに親のジョイントを設定
















次にCube1にHinge jointの親(Sphere1)にコンストレインさせるため
コンストレイン用のスクリプトを作成します。
using UnityEngine;
using System.Collections;

public class Constraint : MonoBehaviour {
	public Transform tr;
	private Quaternion rot;

	// Update is called once per frame
	void Update () {
		this.transform.position= tr.position;
		this.transform.rotation= Quaternion.Euler(	tr.eulerAngles.x,
													tr.eulerAngles.y,
													tr.eulerAngles.z );
	}
}
Sphere1にコンストレイントのコンポーネントを追加してターゲットに
Transform(Cube1)を設定します。

シーンを再生してCube1,Cube2を動かすと確認できます。

0 件のコメント:

コメントを投稿