Unity開発Tips

Unity開発者のためのメモ書き

簡単に画面ゆれを実装する【Unity】【iTween】

time 2016/03/13

概要

敵に攻撃したとき、攻撃を受けた瞬間に画面全体がゆれるエフェクトを入れると、プレイ時の気持ち良さが格段に向上する(気がする)。

iTweenのShakePositionを使ってカメラを揺らせば、非常に簡単に画面ゆれが実装できたのでご紹介。

下記のような感じ。ずっと見てたら酔う。。。

output

※素材提供

星乃だーつ グーテンベルグの娘様

http://darts.kirara.st/

実装方法

・Asset StoreからiTweenをインポート ※無料です。

・ObjectShaker.csを作成

using UnityEngine;
using System.Collections;

public class ObjectShaker : MonoBehaviour {

	public void Shake(GameObject shakeObj){
		iTween.ShakePosition(shakeObj,iTween.Hash("x",0.3f,"y",0.3f,"time",0.5f));
	}

}
 

ポイント

・ObjectShaker.Shake(GameObject)で引数に指定したGameObjectを揺らすことができる。(カメラ以外もOK)

・画面全体を揺らしたいときは、引数にカメラのGameObjectを渡せばOK

・iTween.Hashで画面揺れの方向、大きさ、時間などを指定できる。

つまづいたところ

iTween.ShakePosition(shakeObj,iTween.Hash(“x”,0.3f,”time”,0.5f));

iTween.ShakePosition(shakeObj,iTween.Hash(“y”,0.3f,”time”,0.5f));

最初は上みたいな書き方をしていたが、最後に渡したHashしか適用されないのか、y方向にしか画面がゆれず。

縦横に揺らしたい時は、iTween.Hash(“x”,0.3f, “y”,0.3f,”time”,0.5f)とx,y方向の揺れを一気に指定すれば良い。

iTween.Hash(“key”, “value”, “key”, “value”, “key”, “value”, …)みたいにアニメーションのパラメータをハッシュ値で指定できる。

アニメーションに渡せるパラメータはメソッドごとに異なるため、APIドキュメントをご参照ください。

※NGUIのSpriteは上記方法で揺らすことができないので、注意

※初めてiTweenを呼んだときにかくつくことがあるので、その場合はiTween.Init(揺らしたいGameObject)をStartかAwake時に実行しておくと良い。

 

down

コメントする




CAPTCHA


プロフィール

Magnagames

Magnagames

Unityでゲームを開発しています。開発中の気づきなど情報発信していきます。

プロフィール | Magnagames