連載
» 2016年12月19日 05時00分 公開

Unityで始めるVR/AR開発入門(2):Gear VRの基本的な使い方、動画の撮り方、タッチパッドでUnityのオブジェクトを操作する方法 (2/3)

[薬師寺国安,PROJECT KySS]

UnityでGear VRコンテンツを作る

 ここからは、UnityでGearVRコンテンツを作る。まず、舞台を作り、タッチパッドでタップするSphereオブジェクトを作る。そして、それをタップしたときのイベントのスクリプトを書く。「戻るボタン」を押したときの設定も行う。

舞台を作る

 Hierarchyの「Create」→「3D Object」→「Sphere」と選択して1個のSphere(球体)オブジェクトを配置する。少しサイズを大きくする意味で、Inspector内の「Transform」→「Scale」の「x」「y」「z」の値を全て「2」に設定しておこう(図8)。

図8 「Scale」が「2」のSphereオブジェクトを配置した

マテリアルを作成し、Sphereオブジェクトに適用

 次に、このSphereに色を付けるために、Projectの「Create」→「Material」と選択して、「赤系統色」と「青系統色」のMaterialを作成する。作成するMaterialの名前は「red」「blue」にし、Assetsフォルダ内に作成しておく(図9)。

図9 「red」「blue」というマテリアルの元を作成する

 各Materialに色を設定していこう。まず「red」のマテリアルを選択し、Inspectorから「Main Maps」にある「Albedo」の横の白い長方形をクリックする。すると、「Color」が起動するので、その中から赤系統色を選択する。すると「red」のMaterialが赤系統色の球体に変化する(図10)。

図10 「red」マテリアルに色を指定した

 同じ手順で「blue」マテリアルにも色を設定しておく。図11のようになる。

図11 「red」「blue」のマテリアルを設定した

 Scene上に配置されているSphereオブジェクトに、今作成したマテリアルを適用する。色は「red」でも「blue」でも、どちらでも構わない。読者の好きなマテリアルを適用させるといい。筆者は「red」のマテリアルをScene上の「Sphere」上にドラッグ&ドロップして、適用した(図12)。

図12 Scene上のSphereオブジェクトに「red」のマテリアルを適用した

タッチパッドをタップしたときのイベントのスクリプトを記述する

 図13のタッチパッドの中心をタップするごとに、Sphereの色が青や赤に変化する処理を記述する。

図13 Gear VRのタッチパッドの中心

 Hierarchyの「Sphere」を選択して、Inspectorから「Add Component」→「New Script」と選択して、「Name」に「ChangeColorScript」、「Language」に「C#」と指定して「Create And Add」ボタンをクリックする。すると、Sphereに「Change Color Script(Script)」が追加されるので、「Script」の「ChangeColorScript(薄いグレー表示)」をダブルクリックする。

 すると、Visual Studioが起動するので、リスト1のコードを記述する。そして、必ずビルドしておくことを忘れないでほしい。

    public Material color1;
    public Material color2;
    private GameObject obj;
 
    // Use this for initialization
    void Start()
    {
        obj = GameObject.Find("Sphere");
    }
 
    void Update()
    {
        var material = obj.GetComponent<Renderer>().material;
        if (Input.GetMouseButton(0))
        {
 
            if (material.color == color1.color)
            {
                material.color = color2.color;
            }
            else
            {
                material.color = color1.color;
            }
        }
    }
リスト1 Sphereの色をタッチパッドのタップで切り替える処理(ChangeColorScript.cs)

 スクリプトの中身を解説していこう。

 publicでMaterial型の変数「color1」「color2」を宣言する。publicで宣言しておくと、UnityのInspector内にプロパティとしてcolor1とcolor2が表示されて、値を指定できるようになる。

 次に、GameObject型の変数「obj」を宣言しておく。

 「Start」関数内では「Find」メソッドを使ってScene上に配置した「Sphere」をobj変数で参照しておく。

 「Update」関数内では、変数「material」をmaterialコンポーネントとして宣言しておく。「Input.GetMouseButton(0)」という記述で、Gear VRの側面の図13の赤い円で囲った部分がタップされたかどうかを判別する。

 「Sphere」の色がcolor1であった場合は、color2に変化させ、color2であった場合はcolor1に変化させる。

 Unityに戻り、「Sphere」のInspector内の、「Change Color Script(Script)」の中を見ると、図14のように、color1とcolor2の項目が追加されている。

図14 color1とcolor2の項目が追加されている

 ここに、先に作った「red」「blue」のマテリアルをドラッグ&ドロップする。どちらに、どの色を指定しても問題はない、筆者は図15のように指定した。

図15 color1とcolor2にMaterialを指定した

 ここで、今まで作ったSceneを保存しておこう。Unityメニューの「File」→「Save Scene as」と選択して「色の変化」という名前で保存しておく。名前は何でも構わない。

Gear VRの「戻るボタン」の実装

 通常、Unityで作成したGear VRコンテンツは、Gear VRで動作させた場合、Gear VRに付いている「戻るボタン」を押しても、各種設定の画面は表示されない。そこで、Gear VRで各種設定画面を表示させる処理を追加する。各種設定画面では、「動画の録画」「音量の調節」、その他いろいろな設定ができるので、表示ができないと何かと不便だ。

 まず、Unityメニューの「GameObject」→「Create Empty」と選択して、Hierarchy内に空のGameObjectを作成する。次に、Projectの「Assets」→「OVR」→「Scripts」と選択して、表示されるスクリプトファイルの中から、「OVRPlatformMenu.cs」ファイルを、Hierarchy内のGameObject上にドラッグ&ドロップする(図16)。

図16 Hierarchy内の「GameObject」に、「OVRPlatformMenu.cs」ファイルをドラッグ&ドロップする

 次に、Hierarchyから「GameObject」を選択してInspectorを表示し、「Over Platform Menu(Script)」→「Cursor Timer」の右端隅にある「○に・」のアイコンをクリックして、「Select GameObject」を表示させて、その中から、「Cursor_Timer」を選択する(図17)。

図17 「Cursor_Timer」を選択した

 以上で「戻るボタン」の設定は完了だ。これでGear VRを使用している途中でも「戻るボタン」を長押しすると、各種設定の画面が表示されるようになる。ここまでのSceneを上書き保存しておこう。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。