UDN
Search public documentation:

DevelopmentKitGemsInteriorMappingJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > Unreal Development Kit Gems > インテリアマッピング

インテリアマッピング


2011年8月に UDK に即して最終テスト実施済み PC 対応

概要


IM_01_BeautyShot.jpg

インテリアマッピングは、Joost van Dongen 氏によって開発された技術です。オリジナルのドキュメントは、 こちら に置かれています。インテリアマッピングとは、フラットなサーフェス上に、正しい遠近法のバーチャルな部屋を作成する技術です。この技術によって、建物の作成が強化されます。内部のすべてをモデリングするのに多大な時間を費やす必要がなく、建物をシーンに素早く追加することができるのです。テクスチャを使用し、このマテリアルを拡張することによって、昼から夜への遷移といった動的な反応を組み込むことことができ、また、バーチャルな壁や床でアニメートするテクスチャを使用することもできます。

マテリアルの作成


マテリアルは、van Dongen 氏が書いた CG プログラムに基づいて作成されました。ただし、CG 固有のインストラクションが拡張され、UDK 固有のコマンドに変換されました。このような関数の例に、 ステップ 関数があります。これは、UDK で次のように作成されます。

IM_02_StepFunction.jpg

これらのような CG 関数は、 マテリアル関数 として作成することができます。

レイトレーシングのためのパス

視差オクルージョンマッピングの技術 とほぼ同様に、本技術では、レイトレーシング (ray tracing) を使用することによって、マテリアルのサーフェスをレンダリングする際に使用するテクスチャの座標を見つけます。すべての Vector Transform (ベクター変換) が、ワールドからローカルに変換されます。レイトレーシングのパスは、次のようになります。

IM_03_RayTracePass_Thumbnail.jpg

天井およびフロアのテクスチャのためのパス

レイトレーシングが完了したら、次のステップは、天井 (ceiling) とフロア (floor) のテクスチャのためのパスです。天井とフロアはともに同一のテクスチャ座標系 (coordinates) をもつため、どちらがレンダリングされるかということは、テクセルがカメラの水平線よりも下にあるか否かに基づきます。

IM_04_CeilingFloorPass_Thumbnail.jpg

壁のテクスチャのためのパス

このマテリアルには 2 つのタイプの壁 (wall) があります。1 つは X 軸のためのもので、もう 1 つは、Y 軸のためのものです。両タイプともテクスチャの計算は、レイキャストの交点に基づく異なるテクスチャ座標を使用する点を除いて同じです。レベルデザイナーは、2 タイプのテクスチャ計算を使用することができます。1 つは、テクスチャアトラス (texture atlas) の方法を使用して、使用される壁テクスチャをランダムに選択します。この方法は、コストが高くなりますが、視覚的により趣向のあるものとなります。もう 1 つの方法はシンプルなもので、単一のテクスチャを各壁のために用います。

IM_12_WallPass_Thumbnail.jpg

光源処理のためのパス

光源処理のためのパスでは、単に、3 つの面のための法線マップが作成され、さらに静的な光源の方向について内積 (dot product) が計算されます。乗算パラメータ (multiplier parameter) と可算パラメータ (additional parameter) が追加されることによって、レベルデザイナーが光源処理をさらに調整できるようになっています。

IM_05_LightingPass_Thumbnail.jpg

光源のバリエーションのためのパス

光源バリエーション (light variation) のためのパスでは、各部屋のためのノイズサンプルが生成されます。さらに、閾値 (threshold) を使用しているため、光源の on/off を切り替えることができます。これにより、さらなるバリエーションを作ることができるため、建物がいっそう魅力的なものになります。いろいろな閾値を使用することによって、さまざまな強度のさまざまな光源を作ることができるととも、点滅するライトのような光源エフェクトなども作成することができます。

IM_06_LightVariationPass_Thumbnail.jpg

法線のためのパス

法線 (normal) のためのパスは、外壁 (outside wall) のために使用されるため、他のマテリアルと同様にセットアップされます。詳細な法線マッピング、すなわち、ガラス (glass) 反射のための法線の調整が含まれています。これによって、反射は完全なものではなく不安定なものにすることができます。

IM_07_Normal_Thumbnail.jpg

スペキュラおよびスペキュラパワーのためのパス

スペキュラ (specular) およびスペキュラパワー (specular power) のためのパスは、外壁 (outside wall) のために使用されるため、他のマテリアルと同様にセットアップされます。レンガが窓よりも高いスペキュラパワー値をもつようにセットアップされています。

IM_08_SpecularAndSpecularPower_Thumbnail.jpg

エミッシブおよびインテリアのためのパス

エミッシブ (emissive) のためのパスは、天井およびフロア、壁、光源処理、光源バリエーションのための各パスで生成されたインテリアのためのパスをレンダリングするために使用されます。テクスチャサンプルを解放させるならば、外壁のためのエミッシブ テクスチャを使用することもできます。

IM_09_EmissiveAndInterior_Thumbnail.jpg

ディフューズのためのパス

ディフューズ (diffuse) のためのパスは、外壁 (outside wall) のために使用されるため、他のマテリアルと同様にセットアップされます。

IM_10_Diffuse_Thumbnail.jpg

ディフューズ、スペキュラ、法線テクスチャのスケーラー

ディフューズ、スペキュラ、法線テクスチャのスケーラー (scaler) によって、レベルデザイナーは、テクスチャをスケーリングして、RoomDimensions (部屋のサイズ) によってセットされている部屋の数に合わせることができます。(訳注 : 部屋のサイズを小さくすれば、部屋の数を増やすことができます)。

IM_11_OutsideWallTextureScale.jpg

完成したマテリアル

これらをまとめると、次のような結果となります。

IM_12_CompleteMaterial_Thumbnail.jpg

マテリアルのパラメータ


次のリストは、パラメータの役割をまとめたものです。

  • BackWallTextureScale (後ろの壁テクスチャスケール) - 壁テクスチャの座標の 1 つをスケーリングすることができます。
  • CeilingTextureScale (天井テクスチャスケール) - 天井テクスチャの座標をスケーリングすることができます。
  • FloorTextureScale (フロアテクスチャスケール) - フロアテクスチャの座標をスケーリングすることができます。
  • LeftAndRightWallTextureScale (左右壁テクスチャスケール) - 壁テクスチャの座標の 1 つをスケーリングすることができます。
  • LightColorAddition (光源カラー追加) - 光源処理のトータルの結果に加えることができます。この光源の値が 1.f を超える場合は、その残りがブルームの係数に渡されます。
  • LightColorMultiplier (光源カラー乗数) -光源処理のトータルの結果に乗ずることができます。この光源の値が 1.f を超える場合は、その残りがブルームの係数に渡されます。
  • LightParameterA (光源パラメータ A) - インテリアの光源の方向を定義します。
  • MaxLightColor (最大光源カラー) - 光源の結果が取り得る最大カラーです。
  • MinLightColor (最小光源カラー) - 光源の結果が取り得る最小カラーです。
  • OutsideWallTextureScale (外壁テクスチャスケール) - 外壁テクスチャをスケーリングすることができます。
  • RoomDimensions (部屋のサイズ) - 部屋の大きさを調整することができます。部屋が小さくなると、より多くの部屋が作成されます。
  • BackTextureAtlasMagicConstantA (後ろテクスチャ アトラス マジック 定数 A) - テクスチャアトラスを使用してテクスチャの座標をそろえる場合に調整することができる、すばらしく効果的な定数です。
  • BackTextureAtlasMagicConstantB (後ろテクスチャ アトラス マジック 定数 B) - テクスチャアトラスを使用してテクスチャの座標をそろえる場合に調整することができる、すばらしく効果的な定数です。
  • DetailNormalDepth (詳細法線深度) - 詳細法線の深度を調整することができます。この値が高くなると、詳細法線がより際立ちます。
  • DetailNormalScale (詳細法線スケール) - 詳細法線のスケールを調整することができます。
  • DiffuseSpecularPower (ディフューズ スペキュラパワー) - ディフューズ スペキュラパワーの値を調整することができます。
  • GlassDepth (ガラス深度) - ガラスの法線の強さを調整することができます。これによって、反射の曲がりの強度を調整します。
  • GlassDiffuseStrength (ガラスディフューズ強度) - ガラスのディフューズに関する強度を調整することができます。
  • GlassNormalScale (ガラス法線スケール) - ガラスの法線をスケーリングすることができます。
  • InteriorLightingVariationTextureScale (インテリア光源バリエーションテクスチャスケール) - インテリア光源バリエーションテクスチャのスケールを調整することができます。
  • LeftAndRightWallTextureAtlasMagicConstantA (左右壁テクスチャアトラスマジック定数 A) - テクスチャアトラスを使用してテクスチャの座標をそろえる場合に調整することができる、すばらしく効果的な定数です。
  • LeftAndRightWallTextureAtlasMagicConstantB (左右壁テクスチャアトラスマジック定数 B) - テクスチャアトラスを使用してテクスチャの座標をそろえる場合に調整することができる、すばらしく効果的な定数です。
  • LightVariationThreshold (光源バリエーション閾値) - ノイズバリエーションのためのパスに基づいて、光源を on/off にするための閾値を調整することができます。
  • ReflectionStrength (反射強度) - 反射の強度を調整することができます。
  • SpecularMultiplier (スペキュラ乗数) - スペキュラの強度を高めることができます。
  • WindowSpecularPower (窓スペキュラ強度) - 窓のためのスペキュラ強度を調整することができます。
  • DetailNormal (詳細法線) - 詳細法線のために使用されるテクスチャです。
  • DiffuseWithWindowAlpha (窓アルファをともなうディフューズ) - 外壁に使用されるテクスチャです。アルファチャンネルは、窓と外壁のためのマスクとして使用されます。
  • GlassNormal (ガラス法線) - ガラス法線のために使用されるテクスチャです。
  • InteriorBackWall (インテリア後ろの壁) - 壁の 1 つのために使用されるテクスチャです。
  • InteriorBackWallAtlas (インテリア後ろの壁アトラス) - テクスチャアトラスのためのパスを使用する際に、壁の 1 つのために使用されるテクスチャです。
  • InteriorBackWallVariation (インテリア後ろ壁バリエーション) - テクスチャアトラスを変化させるために使用させるテクスチャです。
  • InteriorCeiling (インテリア天井) - 天井のために使用されるテクスチャです。
  • InteriorFloor (インテリアフロア) - フロアのために使用されるテクスチャです。
  • InteriorLeftAndRightWall (インテリア左右壁) - 壁の 1 つのために使用されるテクスチャです。
  • InteriorLeftAndRightWallAtlas (インテリア左右壁アトラス) - テクスチャアトラスのためのパスを使用する際に、壁の 1 つのために使用されるテクスチャです。
  • InteriorLeftAndRightWallVariation (インテリア左右壁バリエーション) - テクスチャアトラスを変化させるために使用されるテクスチャです。
  • InteriorLightingVariation (インテリア光源バリエーション) - 光源処理を変化させるために使用されるテクスチャです。
  • Normal (法線) - 法線のために使用されるテクスチャです。
  • Reflection (反射) - 反射のために使用されるキューブマップテクスチャです。
  • Specular (スペキュラ) - スペキュラのために使用されるテクスチャです。
  • Has Light Variations (光源のバリエーションをともなう) - マテリアルが光源バリエーションのためのパスを使用するか否かを制御するために使用するスイッチです。
  • Has Interior (インテリアをともなう) - マテリアルがインテリアのためのパスを使用するか否を制御するために使用するスイッチです。
  • Has Outside Wall (外壁をともなう) - マテリアルがディフューズおよびスペキュラ、スペキュラパワー、法線のための各パスを使用するか否を制御するために使用するスイッチです。
  • Has Specular Texture (スペキュラテクスチャをともなう) - マテリアルがスペキュラのためのテクスチャを使用するか否を制御するために使用するスイッチです。
  • Use Texture Atlas For Back Wall (後ろの壁のためにテクスチャアトラスを使用する) - マテリアルがテクスチャアトラスのためのパスを使用するか否を制御するために使用するスイッチです。
  • Use Texture Atlas for Left And Right Wall (左右の壁のためにテクスチャアトラスを使用する) - マテリアルがテクスチャアトラスのためのパスを使用するか否を制御するために使用するスイッチです。

スクリーンショットの比較


次のスクリーンショットは、インテリアマッピングが有効になっているものです。インテリアの部屋が作成されているため、余分な作業をほとんど必要とせずに、シーンにディテールがもたらされています。

IM_13_InteriorMappingOn.jpg

次のスクリーンショットは、インテリアマッピングが無効になっています。光源バリエーションのためのパスを使用して、光源のいくつかを有効にすることはできますが、それでも、インテリアマッピングによってもたらされる必要な深みには及びません。

IM_13_InteriorMappingOff.jpg

ダウンロード


  • 本開発キットドキュメントで使用されているコンテンツは、 ここから ダウンロードすることができます。