ディップ Advent Calendarの2日目担当の大屋です。
普段はディップ株式会社でネイティブアプリエンジニアとして働いています。
先日、都内某所で開催されたVRイベントで初めてVR体験しました。
イベントの最後にVR体験会があって運よく体験できたんですが、ヘッドセットをつけると目の前には見たことない世界が広がってました。
今日お話ししたいのはUnityでVRアプリ(Android)を簡単にビルドする話を紹介していきます。
VRの開発環境構築
まずは環境構築です。
-
Unityのダウンロードとインストール
- 推奨は5.4.2です。最低でもGoogle VR SDK for Unityが対応している5.2.1が必要です。
- Unityインストール時のオプションでAndroid Build Supportも追加コンポーネントも同時にインストールしておく
- Google VR SDK for Unityのダウンロード
- ユニティちゃんのデータダウンロード
- AndroidStudioとJavaのインストール
仮想空間に物体配置
続いて、仮装空間に物を配置していきます。
今回配置したのは地面となる平面、中心に四角、Unityのマスコットキャラのユニティちゃんです。
平面上をランダムで移動する動作を追加する。
物体を配置できたら、独自スクリプトをキャラクタにセットします。
どのような処理をコーディングしているかというと、キャラクタが歩いていく行き先を乱数で平面上のどこかに設定して、5秒たったら再度設定して平面上を行ったり来たりするようにしています。
下のファイルはその時のコードとなります。
using UnityEngine;
using System.Collections;
public class MoveControl : MonoBehaviour {
RaycastHit hit;
Ray ray;
NavMeshAgent agent;
Animator animator;
// Use this for initialization
void Start () {
agent = GetComponent<NavMeshAgent> ();
animator = GetComponent<Animator> ();
StartCoroutine (RePositionWithDelay());
}
IEnumerator RePositionWithDelay() {
while (true) {
SetRondomPosition ();
yield return new WaitForSeconds (5);
}
}
void SetRondomPosition() {
float x = Random.Range (-5.0f, 5.0f);
float z = Random.Range (-5.0f, 5.0f);
Debug.Log ("X,Z: " + x.ToString("F2") + ", " + z.ToString("F2"));
agent.SetDestination( new Vector3 (x, 0.0f, z));
animator.SetFloat ("Speed", 0.2f);
}
// Update is called once per frame
void Update () {
if (agent.destination == transform.position) {
animator.SetFloat ("Speed", 0.0f);
}
}
}
build and Run
最後に実行です。
UnityのFile>BuildSettingを選択して表示される画面でplatformにAndroidを選択してBuild&Runすればオッケーです。
終わりに
今回、ご紹介したのはAndroidアプリでVRアプリの作る時のざっとした流れでした。
VR体験するには対応する携帯端末が必要だったり、VR用のヘッドセットが必要だったりしますが、とても身近な存在になりつつあるなと感じています。ご興味ある方是非やって見てください。