14
12

More than 5 years have passed since last update.

OculusGoプロジェクトで最初にやること

Last updated at Posted at 2018-07-01

OculusGoのプロジェクトを作成したときに、最初に毎回おこなう基本設定をまとめてみました。

開発環境を整える方法はこちらなどが参考になると思います。
https://qiita.com/culage/items/7be7b3e229fe41a6aaec

環境: Unity 2018.1.5f1 (64-bit) / OculusUtilities(1.26.0 2018/06/20)

設定すること

ビルド設定で、ターゲットをアンドロイドにする

File→BuildSetting
 Androidに設定
 SwitchPlatformボタンを押す

プロジェクトのパッケージ名などを設定

Edit→ProjectSettings→Player
 OtherSettings
  PackageName: プロジェクト名 「username.test.proj_name」
  ※不明ソースの表示順に影響するので、書式を決めておくといい。
  MinimumApiLevel: Android7.0 (Lv24)
 XR Setting
  VirtualRealitySupotted:ON
  VisualRealitySKDs:
   Oculusを追加

Oculus Utilities for Unity をインポート

https://developer.oculus.com/downloads/package/oculus-utilities-for-unity-5/
からダウンロードしたユーティリティを、unityを起動中にダウンロードしたOculusUtilities.unitypackageをダブルクリックしてインポート。

以下チェックは外しても問題ない。
  Oculsu/VR/Plugins
  Plugins

VR用カメラ追加

Hierarchyで以下操作を行う。

MainCameraを削除。
Prefabから、OVRCameraRigを追加。
OVRCameraRig.TrackingSpace.CenterEyeAnchorのCameraのClippingPlanes Nearを0.01に設定。(目の直前までポリゴンを透明化しない)
RightHandAncher、LeftHandAncherにTrackedRemoveを追加。
左手用のTrackedRemoveは、インスペクタかr「L_TrackedRemote」に設定を変更しておく。

git用設定

テキスト形式で保存できるようにする

(これは最初からそうなっているので不要?)
Edit→ProjectSettings→Editor …… から右のInspectorで、
 VersionControl / Mode: Visible Meta File
 Asset Serialization / Mode: Force Text

.gitignoreをプロジェクト直下に追加

unity用の.gitignore。(http://freesworder.net/unity-git/ を参考にさせてもらいました)

/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/Assets/AssetStoreTools*

# Visual Studio 2015 cache directory
/.vs/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb

# Unity3D generated meta files
*.pidb.meta

# Unity3D Generated File On Crash Reports
sysinfo.txt

# Builds
*.apk
*.unitypackage

git管理に追加する

$ git init
$ git add .
$ git ci -m 'initial import'

OculusGoの初期設定

以下スクリプトを作成して適当なゲームオブジェクトへアタッチ。
これはデフォルト設定でも問題ないので、細かい設定が必要な場合のみでよい。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Startup : MonoBehaviour {

    private void Awake()
    {
        // 画面解像度 scale 1.0 == 1024x1024 ~ 1.25 == 1280x1280(物理的な解像度の限界) 0.5fなどもフレームレートを稼ぐのに有効。
        UnityEngine.XR.XRSettings.eyeTextureResolutionScale = 1.25f;

        // 外枠側のレンダリングを荒くすることで速度を稼ぐ。 Off/LMSLow/LMSMedium/LMSHigh 外側の解像度が減っていく
        OVRManager.tiledMultiResLevel = OVRManager.TiledMultiResLevel.LMSHigh;

        // 72Hzモード(綺麗になるがフレームレート安定が犠牲になる)
        //OVRManager.display.displayFrequency = 72.0f;

        // CPU,GPUのパフォーマンスレベル。0~3の大きいほど放熱が高く高スペックな動作をする。既定値は2。
        //OVRManager.cpuLevel = 2;
        //OVRManager.gpuLevel = 2;

        // テクスチャ解像度 デフォルトは1.0 上げれば上げるほどVR内のジャギーが消えてなめらかに描画できる。(効果は絶大だが劇的に重くなる)
        //UnityEngine.XR.XRSettings.eyeTextureResolutionScale = 2.0f;

        // 画面端の方が赤っぽくなることへの補正を入れる (adb shell setprop debug.oculus.forceChroma 1 相当)
        //OVRPlugin.chromatic = true;

        // アンチエイリアシング。あまり実感できない
        // QualitySettings.antiAliasing = 4;

        // シングルパスステレオレンダリング (普通は右目用と左目用の2回レンダリングを行うところを、1シーンにそれを無理やり押し込める手法)
        // Edit > ProjectSettings > Player
        //   XRSettings > StereoRenderingMethod: MultiPass→SinglePass

        // ・OVRCameraRigのOVR ManagerにあるEnable Adaptive Resolutionをオフにする
        // GPUの使用率が高くなるとフレーム落ちしないように自動的に解像度を下げる機能
        // かなり効果があったとのこと
    }

}
14
12
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
14
12