閃光絵巻ラボ

脱出ゲームの作り方などの技術系のブログです。

Unityで脱出ゲームの作り方(6)「物体を滑らかにアニメーションで動かす」

      2015/08/02

kNwswyi7KA第6回は物体のなめらかなアニメーション(トゥイーン)を実装します。
脱出ゲームにおいてアニメーションは絶対必須というわけではありませんが、
あるとぐっとゲームとして見栄えが良くなるので、ぜひ取り入れておきたい技術ですね。

iTweenをいれよう

アニメーションする上で便利なiTweenというプラグインを入れましょう
Window > Asset store でアセットストアの画面を開きます。
アセットストアとはUnityで使えるプラグインや3Dモデルのセットなどが有料/無料でダウンロードできるショップです。

iTweenで検索します。有料版のiTweenもありますが、ここでは無料版です。
20150617230620232+

インポートをクリック。
20150617230620234+

 

全てにチェックが入ったままでOKです。右下のImportをクリックします。
20150617220641231

 

インポートが終わるとPluginsフォルダが増えていますね。これがiTween一式です。
20150617230634235+

 

カギを天井から床に移動(落下)させよう

カギを天井に持っていきます。z=116ぐらいで。
20150617230624236+

そして赤スイッチをクリックした時の処理をiTweenに置き換えます。

	public void searchRoom(){
		selectedGameObject=null;
		ray = Camera.main.ScreenPointToRay(Input.mousePosition);
		if (Physics.Raycast(ray, out hit, 10000000,1 << 8)) {
			selectedGameObject = hit.collider.gameObject;
			switch(selectedGameObject.name){
				case "redSwitch":
					iTween.MoveTo(item_key,iTween.Hash(
						"z",0.6, "time", 0.2, "islocal", true, "easeType", iTween.EaseType.linear
					));
					break;
			}
		}
	}

iTween.MoveToで移動ができます。
これでカギが0.2秒かけてz=0.6へ移動、つまり天井から床に落ちてきます。
q0TOYCI9JC↑の動画だとカクついてますが、実際は滑らかに見えています…

 

ついでにカメラの回転も滑らかにしよう

iTweenは移動だけでなく回転もできます。
これまでは左ボタンを押すとカメラがパッと回転していましたが、これも滑らかにしてみましょう。
turnLの中身をまるっと書き換えます。

	public void turnL () {
		switch(standName){
			case "centerN":
				iTween.RotateTo(GameObject.Find("mainCamera"),iTween.Hash(
					"x",0, "y",270, "z",0, "time", 0.4, "islocal", true
				));
				iTween.MoveTo(GameObject.Find("mainCamera"),iTween.Hash(
					"x",-1, "y",7, "z",-20, "time", 0.4, "islocal", true
				));
				standName = "centerW";
				break;
			case "centerW":
				iTween.RotateTo(GameObject.Find("mainCamera"),iTween.Hash(
					"x",0, "y",180, "z",0, "time", 0.4, "islocal", true
				));
				iTween.MoveTo(GameObject.Find("mainCamera"),iTween.Hash(
					"x",-1, "y",7, "z",-20, "time", 0.4, "islocal", true
				));
				standName = "centerS";
				break;
			case "centerS":
				iTween.RotateTo(GameObject.Find("mainCamera"),iTween.Hash(
					"x",0, "y",90, "z",0, "time", 0.4, "islocal", true
				));
				iTween.MoveTo(GameObject.Find("mainCamera"),iTween.Hash(
					"x",-5, "y",7, "z",-20, "time", 0.4, "islocal", true
				));
				standName = "centerE";
				break;
			case "centerE":
				iTween.RotateTo(GameObject.Find("mainCamera"),iTween.Hash(
					"x",0, "y",0, "z",0, "time", 0.4, "islocal", true
				));
				iTween.MoveTo(GameObject.Find("mainCamera"),iTween.Hash(
					"x",-6, "y",7, "z",-26, "time", 0.4, "islocal", true
				));
				standName = "centerN";
				break;
		}
	}

再生するとこんな感じです。動きがつくとなかなか見栄えがよくなりますね。
kNwswyi7KA

 

 

»第7回に続く

 - Unityで脱出ゲームの作り方

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

Unityで脱出ゲームの作り方(1)「3Dの部屋を作る」

Unityで脱出ゲーム講座 初回は3Dの部屋づくりからはじめます。 このパートで …

Unityで脱出ゲームの作り方(5)「3Dオブジェクトをクリックで取得」

これまでのパートでUIボタンのクリックはできました。 このパートでは上の画像の、 …

Unityで脱出ゲームの作り方(4)「部屋の中を移動する・UIでカメラ回転編」

第4回はカメラ回転のスクリプトを実際に書いていきます。 上の画像のようにぐるりと …

Unityで脱出ゲームの作り方(3)「部屋の中を移動する・下準備編」

このパートでは脱出ゲーム定番の移動ボタンを追加します。 画面上に固定で表示するU …

Unityで脱出ゲームの作り方(2)「UnityにSketchupの3Dの部屋をインポート」

第2回からはUnityという今話題のゲーム作成ソフトを使っていきます。 とても高 …

Unityで脱出ゲームの作り方(8)「アイテムを選択(装備)する」

アイテムリストクリックでアイテムを装備する アイテムリストのカギをクリックしたら …

Unityで脱出ゲームの作り方(7)「アイテムリストを作る」

前回まででスイッチを押すとカギが降ってくるようにしました。 ここで落ちてきたカギ …