Unityの学習 part8

今回は、最後となるモデルを追尾するカメラの設定になります

ちなみにロードマップは以下のようになっております

モデルを使用したアニメーションのロードマップ
1. モデルの取得と配置 
2. モデルにアニメーションの設定
3. モデルの移動に合わせたアニメーションの設定
4. モデルを追尾するカメラの設定 ←今回の記事

目標は、モデルの動かし方、アニメーションの設定、カメラの向きに合わせた移動の仕方を学習することです

モデルの追従

初めにカメラの初期位置を、自分の好きな位置で良いので決めます
私は、この位置を初期位置としました
初期位置

初期位置を基準にして、モデルに合わせてカメラも動くようにしていきます

位置を決定したカメラオブジェクトにスクリプトコンポーネントを追加します
そして、スタート時にモデルとの差を取得するようにします

public class cameraController : MonoBehaviour {

    private Vector3 offset;
    [SerializeField]
    private unitychan model;

	// Use this for initialization
	void Start () {
        //カメラ初期位置とモデル初期位置との差を取得
        offset = transform.position - model.transform.position;
	}
}

 

次に、フレームの更新時に初期位置の差と現在のモデルの位置を計算して、カメラの位置を移動するようにします

    private void Update()
    {
        transform.position = offset + model.transform.position;
    }

 

これで完了です
cameraMove

今回は、前後の移動のみと制限しているので単純な実装となりました
しかし、モデルに回転の要素を加えると、カメラも回転をしなければいけませんし、モデルの向きにあったカメラの移動をしないといけないので、今回の処理とは違ったことをしないと、カメラは思ったように動かないので注意が必要でとなります

終わりに

ロードマップを作ることで、次になにをすればいいか明確になるために、作業がしやすかったです

モデルの取得と配置では、公式からパッケージを取得して、ユニティちゃんを配置しました

アニメーションの設定では、最初にアバターがセットされておらず、動かなくて困りましたが、そこも一つ勉強になりました

モデルの移動に合わせたアニメーションの設定では、操作が終わってもアニメーションが完了していないので、次のアニメーションに遷移しないことがありましたが、Has Exit Timeのチェックをはずすこときれいなアニメーションになることがわかりました

そして、今回でモデルの移動に合わせてカメラの移動をするようにしました
前後移動のみなので、単純な実装で終わりました

次回は、モデルに回転も加えたもので、また違ったプロジェクトを作っていきたいと思います

火曜日担当:poppy



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム