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の使用率が高くなるとフレーム落ちしないように自動的に解像度を下げる機能
// かなり効果があったとのこと
}
}