LoginSignup
5
7

More than 5 years have passed since last update.

はじめてUnityでVRアプリを作ってみた時の話

Last updated at Posted at 2017-06-18

はじめに

2016年、VR元年ということもあり、興味があったVRアプリを
Unityで作ってみることにした。言語はC#で開発した。
(作ったのは去年のことだが、忘れないためのまとめ)

Unityを初めて触るので、本当に参考書を読んで、基本からイジリながらゲームを作ったのだが、意外と、直感的にサクサク地面や木なども作ることができて便利だった。

Unityは最新版を公式ホームページからダウンロードした。
https://unity3d.com/jp/get-unity/download/archive

プラグインの導入

unity_install05.png

これで、GoogleのCardboard用プラグインや、
iOSのAKKit用のプラグインなどをimportすることができる。

今回は、VRアプリを作るということで、
GoogleのCardboardプラグインをいれた。

スマホ画面が左右で2分割されるアレ。
IMG_1151.PNG

これをVR用のHMDでみるとVR空間へと誘われる仕組み。

(ちなみに、iPhone5sの画面で最初アプリの動作を試していたが、5sだと画面がかなり小さいので、7とかplus系が良さげ)

はじめての開発

1日あれば、自分が作った空間(上の写真のような森など)の中で
歩くようなことまでUnityだと簡単に試せる。

自分は角度を決めて、ある程度水平位置より下を向くと
カメラ視点が前に進んでいくように指定して歩いている感じを出した。

コード的には、これ。

using UnityEngine;
using System.Collections;

public class walk : MonoBehaviour {

    public Camera mainCamera;
    public float moveSpeed  = 12.0f;
    public float moveAngleX = 15.0f;

    float yOffset;

    // Use this for initialization
    void Start () {
        yOffset = mainCamera.transform.position.y;
    }

    // Update is called once per frame
    void Update () {
        // 1.カメラの傾きを取得
        float x = mainCamera.transform.eulerAngles.x;

        // 2.ある角度以内であれば前進させる
        if (moveAngleX < x && x < 35.0f) {
            moveFoward ();
        }
    }

    private void moveFoward() {
        Vector3 direction = new Vector3 (mainCamera.transform.forward.x, 0, mainCamera.transform.forward.z).normalized * moveSpeed * Time.deltaTime;
        Quaternion rotation = Quaternion.Euler (new Vector3 (0, -mainCamera.transform.rotation.eulerAngles.y, 0));
        mainCamera.transform.Translate (rotation * direction);
        mainCamera.transform.position = new Vector3 (mainCamera.transform.position.x, yOffset, mainCamera.transform.position.z);
    }

}

moveSpeedは、実際にVR空間内を歩いてみて
周りのオブジェクトから相対的に考えて
速度を決めた。

moveAnglexも、同様にアプリを触りながら
体感的に一番良さげなもので設定。(今回は15~35度の範囲)

最終的に作ったアプリはiOSプラットフォームで出力し、
自分のiPhoneにいれて遊べるようにした。

最後に

実際は、はじめてVRアプリを作成して完成するまでに
もっと色々なことを試してみた。省力下部分が多いので、その部分はまとめて また追記予定。
(Assetストアからフリーのassetを使う / ユニティーちゃんを自在に動かす / 物理判定 / 自分の視点をトリガーにアクションを起こすなど)

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7