キューブマップ (Cubemap) は、周囲の環境のリフレクションを表現する正方形テクスチャが 6 つで一組になったものです。オブジェクトを囲む仮想の立方体の面である 6 つの正方形は、 それぞれの面が、ワールド軸の各方向 (上・下・左・右・前・後) の景観を表します。
キューブマップは、オブジェクトの反射や周囲環境を表すためによく使用されます。例えば、スカイボックス や リフレクションプローブ にはキューブマップが頻繁に用いられます。
キューブマップを作成する最も簡単な方法は、特別にレイアウトされた テクスチャ からそれらをインポートすることです。Project ウィンドウでテクスチャを選択し、Inspector ウィンドウで Import Settings を表示します。Import Settings で、Texture Type を Default、Normal Map、Single Channel のいずれかに設定します。そして、 Texture Shape で Cube を選択します。すると、Unity は自動的にテクスチャをキューブマップに設定します。
いくつかのよく使用されるキューブマップレイアウトがサポートされています (大抵、Unity は自動的にそれらを検出します)。
垂直方向と水平方向のクロスレイアウトに加え、キューブマップ面が行状と列状になった形式も使用可能です。
Latitude-Longitude
(緯度経度、Cylindrical) レイアウトも頻繁に使用されます。パノラマ画像では、このレイアウトがよく使用されます。
SphereMap
(球状の環境マップ) 画像も使用可能です。
デフォルトでは、Unity がインポートされたテクスチャのアスペクト比を判定し、上記の中からもっとも適切なレイアウトを選びます。 インポートが行われるとキューブマップが作成され、それをスカイボックスや反射に使用することができます。
Glossy Reflection
は、リフレクション プローブ によって使用されるキューブマップテクスチャに便利です。
Glossy Reflection
では、キューブマップのミップレベルが特殊な方法 (specular convolution・鏡面反射コンボリューション) で処理されています。
これは平滑度の異なるいろいろな面からの反射をシミュレートするのにも使用できます。
Unity では、6 つの別々の テクスチャ からキューブマップを作成することもできます。 メニューから Assets > Create > Legacy > Cubemap を選択し、インスペクターに 6 つのテクスチャをドラッグしてください。
プロパティ | 機能 |
---|---|
Right..Back Slots | 各キューブマップ面のテクスチャ |
Face Size | キューブマップの各面の幅と高さ (ピクセル単位)。このサイズに合うようにテクスチャのスケールが自動的に調節されます。 |
Mipmap | ミップマップを作成するかどうか |
Linear | キューブマップがリニアカラーを使用するかどうか |
Readable | スクリプトがピクセルデータにアクセスできるようにキューブマップを設定するかどうか |
キューブマップを作成するには、キューブマップテクスチャのインポートタイプ (上を参照) を使用することが望ましいと言えます。そのように設定すると、キューブマップのテクスチャデータが圧縮され、端の処理や光沢リフレクションのコンボリューションが実行でき、HDR キューブマップもサポートされます。
この他に、スクリプトを使用して Unity のシーンのコンテンツからキューブマップを生成する方法もあります。 関数 Camera.RenderToCubemap は、シーン内の好きな位置から6面の画像を記録することができます。 この関数のスクリプトレファレンスにあるサンプルコードを使用すれば、メニューコマンドを追加できるので、タスクをより簡単にすることができます。
2018–01–31 修正されたページ
Cubemap
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.