UnityでスマホVRアプリを作る方法
どうも、Linです。飴を打ちたいですね。
Unityでゲームアプリを作成したら、
スマホVR対応のゲームにしたい
と思うのが世の常ではないでしょうか??
何を隠そう、ぼくもつい先ほど、Unityで超原始版のゲームアプリを作成できたので、今度はこいつを、
スマホVRに対応させてみました。
スマホVRへの対応のさせ方はいたって簡単で、
VR用のカメラを導入して、
ジャイロ対応のスクリプトを、
カメラにアタッチするだけ。
ちょっと、自分でも説明していて訳が分からなくなったので、
今日は、そのスマホVRへ対応させるやり方を忘れないうちにメモしておきます。
よかったら参考にしてください。
UnityのゲームにスマホVRを導入する方法8つのステップ
早速整理していきましょう。
Unityで作ったゲームをスマホVR化したい時は次の8ステップを踏んでみてください。
Step1. 「Dive SDK」をダウンロードする
まずはVR用のカメラをダウンロードします。
DuviousというVRのヘッドセットを販売している会社のページからダウンロードできるようです。
ページ内の「Dive Unity Plugin Package 2.1.5 for Android/ IOS」をクリックして保存してみましょう。

Step2. 「 Dive Unity Plugin Package 」をProjectフォルダへ
次は、先ほどダウンロードした「 Dive Unity Plugin Package 」をProject配下に放り込みます。
うまい感じにドラック&ドロップしてあげましょう。

ドラッグ&ドロップに成功したら、次のようにインポート画面になります。
とりあえず、一旦全てのファイルをインポートしておきましょう。

API Update Required
というエラーが出てくるかもしれませんが、ここは強気に「I Made a Backup. Go ahead!」を選択しましょう。

Step3. 「Hierarchy」に「Dive_Camera」のプレハブをぶち込む
続いては、先ほどダウンロードしたDiveカメラのフォルダから、
Dive_Camera
というプレハブのファイルを探します。
こいつをHierarchyにぶち込むのです。
ドラッグ&ドロップ!

どこに「Dive_Camera」をぶち込むかは個人の自由ですが、あるプレイヤーの目の位置に設置したい場合は、そのプレイヤーの子要素の位置にいれます。
ぼくの場合、「Player」の目線にしたかったので、「Dive_Camera」を「Player」の子要素にしました。
そして、キャラクターの目線に合うように、Dive_Cameraのtransformのy軸の値を調整して完了です。

すると、ゲームビューには次のように2分割されたプレイヤー目線の映像が映し出されているではありませんか。

Step4. 「Main Camera」を消す
続いては、今まで照らしてくれていたカメラを消してしまいましょう。
UnityのデフォルトではMain Cameraだと思うので、そいつをHierachyから削除。
ぼくの場合、プレイヤーに追従する「FreeLookCameraRig」を使っていたので、こいつを削除しました。

Step5. 「Dive_Camera」にジャイロスクリプトをアタッチ
がしかし、このままではスマホをいくら振ったところで、Dive_Cameraは動いてくれません。
そこで、スマホのジャイロセンサーの挙動によってカメラが動くように設定します。
まず、新規C#のスクリプトで「GyroScript.cs」をProjectに作成します。
そのファイルを次のように編集します。
using UnityEngine; using System.Collections; public class GyroScript : MonoBehaviour { Quaternion currentGyro; void Start(){ Input.gyro.enabled = true; } void Update () { currentGyro = Input.gyro.attitude; this.transform.localRotation = Quaternion.Euler(90, 90, 0) * ( new Quaternion (-currentGyro.x, -currentGyro.y, currentGyro.z, currentGyro.w)); } }
この中身はぼくにはむずすぎて、こういうものだ・・・としか思うしかないですねw
このCSファイルを「Dive_Camera」にアタッチします。

Step6. 「Dive_Camera」の「Dive Mouse Look」のチェック外す
次は「Dive_Camera」にアタッチされている「Dive Mouse Look」というスクリプトを無効化します。
チェックを外せばいいですね。

このスクリプトは、マウスの動きによって視線が変わるようにするもの。
こいつが有効だとスマホのジャイロセンサーによってカメラの視線が動かない訳です。
Step7.スマホをPCにケーブルで接続
準備が整ったので、お手持ちのスマホを接続ケーブルでPCに接続です。
ぼくの場合、アンドロイドなので、アンドロイド用のケーブルで繋げました。
Step8. スマホで「Unity Remote」を起動
次はケーブルで繋いでスマホで「Unity Remote」を起動します。
まだインストールしてない方はしちゃいましょう。
起動すると、こんな画面になります。

Step9. デバイスの設定
続いては、再生デバイスの設定です。
Edit>Project Settings > Editorと進んでみましょう。

Deviceの部分を選択して変更しましょう。
自分が使うデバイスを選択すればオッケーです。
ぼくの場合、「Any Android Device」ですね。

Step10. プラットフォームの設定
さて、いよいよ再生プラットフォームの設定。
FileからBuilding Settingsと進んでください。

すると、下のような画面になると思うので、Platformから自分がゲームを再生したいプラットフォームを選択して、左下の「Switch Platform」を選択しましょう。

これで準備完了です!
ゲームを再生すると、次のように2分割されたゲーム映像が映し出されるはずです。

あとはお手持ちの簡易VRヘッドセットをかぶり、VRの世界を体験してみましょう。
UnityでスマホVR:カメラの設定とジャイロスクリプトをアタッチするだけ!
以上で、UnityでスマホVRを設定する方法でした。
- Dive Cameraダウンロード
- プロジェクトに入れる
- ヒエラルキーに入れる
- メインカメラ消す
- ジャイロスクリプトをアタッチ
- マウスコントローラー外す
- スマホ繋げる
- Unity Remote起動
- デバイス設定
- プラットフォーム設定
の10ステップで実現できましたね!
やってることはとてつもなくシンプルで、
VR用のカメラをダウンロードして、ジャイロ用のスクリプトをアタッチするだけ
です。
Unity初心者のぼくにもできたので、ぜひUnityでゲームを作ってみた方は試してみてくださいね。
それでは
Lin

おそらく、ブロガー。
今年でフリーランス 6年目。