この記事でのバージョン
Unity 2017.4.7f1
はじめに
今回はスカイボックスやリフレクションプローブなどに使われる
キューブマップ(Cubemap)をシーンに配置されたカメラから作成する方法の紹介です!
なお、Oculus Go等のアプリをOculus Storeにリリースする際にも
キューブマップ用の画像が使える(必須ではない)のですが、この画像も作成出来る方法です!
(むしろそっちがメインだったり)
ちなみにこのキューブマップは、VR上でアプリの詳細を見る時に背景として使われます。
Oculus Integration
今回はOculus IntegrationというOculus公式から出ている無料のアセットを使います。
Oculus Integration - Asset Store |
キューブマップを作りたいだけなら、以下の2つだけで大丈夫です。
Oculus/VR/Editor/OVRScreenshotWizard.cs
Oculus/VR/Scripts/Util/OVRCubemapCapture.cs
アセットをインストールするとTools -> Oculus -> OVR Screenshot Wizard
からウィンドウを開けるようになります。
このウィンドウの右下にあるRender Cubemapボタンを押せばCubemapを作成する事が出来ます。
なお、各設定項目は以下の通り。
- Render From : 対象のカメラ(開いた時にシーンのメインカメラが自動で設定されている)
- Size : Cubemapのサイズ(申請用の場合は2048のままでOK)
- Save Mode : 作成するキューブマップの種類
- Save Cubemap Screenshot : 申請用のキューブマップ
- Save Unity Cubemap : Unityで使う用のキューブマップ
- Save Both : 両方
- Cube Map Folder : Unityで使う用のキューブマップをどこに保存するか
- 申請用の画像を作成する時は場所を聞かれる
- Texture Format : 申請用のキューブマップの拡張子(JPEG or PNG)
例えば以下のようなシーンで作成してみると、
Unityで使う用のキューブマップは以下のように作成され、
申請用のキューブマップは以下のように作成されます。
キューブマップをSkyboxで使う
ついでに作成したキューブマップをSkyboxで使う方法もご紹介!
同様の方法でストア申請前にどんな感じになるかを確認する事も出来ます。
まずはSkybox用のMaterial作ります。
MaterialのShaderはSkybox/Cubemapにし、撮ったCubemapを設定します。
次にWindow -> Lighting -> Settingsからウィンドウを開き、
Skybox Materialに先程作ったMaterialを設定します。
後はCameraのClear FlagsをSkyboxにすればOK。