Realistic 照明は、ゲーム内の3D環境をレンダリングするために使用できる最も高度で強力な LightingStyle です。これは、ピクセル単位の光の放出、詳細な影、現実の照明を模倣したスペキュラーハイライトを提供し、屋内および屋外の空間の両方に対応します。
Lighting Indoors - Start .rbxl ファイルを出発点として、Lighting Indoors - Complete を参照しながら、このチュートリアルでは、戦略的なグローバルおよびローカル光源の構成を利用して、プレイヤーをキャビンの出口に導くリアルで没入感のある屋内照明の挙動を生み出す方法を示します。具体的には以下の内容を含みます:
- 光沢のある表面が、環境が動的に変化するにつれて定期的に更新される正確な反射を持つことを確認します。
- 太陽と地球を新しい位置に移動させ、窓から特定の表面に日光を当てる角度を調整します。
- 雰囲気の環境色合いと密度をカスタマイズします。
- パフォーマンスと最適化を考慮して、特有の環境問題を解決するための光源を選択します。
- カメラがその照明の挙動をどのように認識するかに基づいて光源のバランスを取ります。
プロセスのどの時点でも行き詰まった場合は、Lighting Indoors - Complete を参照して進捗を比較できます。


グローバル照明を設定する
グローバル照明は、ゲーム内の太陽または月からの光です。このチュートリアルでは、太陽から覆われたキャビン内の照明を強化することに焦点を当てていますが、グローバル照明を設定することは重要です。なぜなら、それは屋内外に関係なく、ゲームの一般的な雰囲気の空気粒子に影響を与えるからです。
Lighting サービスとその子 Atmosphere オブジェクトのいくつかの主要なデフォルトプロパティを調整することで、プレイヤーにとっての雰囲気と窓から入る日光の見え方、さらにはゲーム内に配置した他のオブジェクトとの相互作用の仕方を劇的に変えることができます。
リアルな照明を有効にする
LightingStyle プロパティは、ゲーム内のグローバルおよびローカル照明の挙動を決定します。スタジオは、すべてのゲームを Soft 照明で開始し、これはよりフラットな外観を持ち、柔らかい光と影をレンダリングします。しかし、環境を強化し、ローカル光源が正確な影、照明、スペキュラーハイライトを生成できるようにするには、Realistic 照明を有効にする必要があります。
この照明設定により、グローバルおよびローカル照明が連携して、よりリアルで没入感のあるビジュアルを提供します。デモとして、Lighting Indoors - Complete が異なる照明スタイルを使用する際のラジオの照明挙動を確認してください。Soft 照明スタイルのキャンドルライトとラジオからのローカル照明は、太陽からのグローバル照明のように影を生成せず、ラジオの革と木の素材の詳細が消えてしまいます。
Realistic 照明システムが屋内空間を検出して適用可能な影を計算およびレンダリングする方法のため、屋内空間を少なくとも1スタッドの厚さを持つ Part オブジェクトで囲むことが最善です。これにより、望ましくない屋外の光がキャビンに漏れ込むのを防ぎます。たとえば、屋内と屋外の照明が混ざるのを避けるために、サンプル Lighting Indoors - Start は、日光が部屋に入ることができるように窓を妨げることなく、すべての MeshPart 壁と天井オブジェクトを囲むために、最小2.5スタッドの厚さを持つパーツを使用しています。


Realistic 照明を有効にするには:
Explorer ウィンドウで Lighting を選択します。
Properties ウィンドウで、LightingStyle ドロップダウンをクリックし、Realistic を選択します。

金属の反射を高める
リアルな照明を使用する主な利点の一つは、光沢のある金属表面にスペキュラーハイライトを生成する能力です。これにより、屋内環境のリアリズムが増し、3D空間内のオブジェクトに深みが与えられます。
デフォルトでは、すべての素材は 物理ベースのレンダリング (PBR) テクスチャを使用しており、単一のオブジェクトに複数のテクスチャマップを使用することで、さまざまな照明シナリオでリアルな表面を表示できます。これは、スタジオの組み込み素材を使用する場合:
- 特定の表面の金属感と粗さは、追加の手順なしにすでに定義されています。
- スタジオの組み込み素材を使用したオブジェクトは、環境内の照明に対してより正確に反応し、リアルな反射を生成します。
この効果をリアルな照明スタイルで強化するには、グローバル照明の Lighting.EnvironmentDiffuseScale および Lighting.EnvironmentSpecularScale プロパティを増加させます。特に、各プロパティを 1 に設定することが重要です。このステップは、このチュートリアルで特に重要であり、ゲーム内のすべてのPBRテクスチャが最良の見栄えを持ち、周囲を正確に反映することを保証します。
この概念を示すために、異なる Lighting.EnvironmentDiffuseScale および Lighting.EnvironmentSpecularScale プロパティ値を持つキャンドルの金属製のベースを確認してください。これらの値を増加させると、金属はグローバルおよびローカル光源からの照明をより正確に反映し、プレイヤーが環境を探索する際に素材がより具体的に感じられるようになります。
サンプル Lighting Indoors - Complete プレースファイルで金属の反射を再現するには:
- Explorer ウィンドウで Lighting を選択します。
- Properties ウィンドウで、EnvironmentalDiffuseScale と EnvironmentSpecularScale が 1 に設定されていることを確認します。そうであれば、ゲーム内の金属は正確に反射します。
時間帯を変更する
3D空間の一般的な雰囲気をカスタマイズすることに加えて、グローバル照明は、プレイヤーに探索してほしい環境内の興味のポイントを作成するための強力なツールです。この技術をローカル光源と組み合わせることで、プレイヤーをゲームプレイエリアの各セクションに間接的に導き、重要なものを見逃さないようにすることができます。
このプロセスを示すために、Lighting Indoors - Complete サンプルは、太陽の光がキャビンに斜めに差し込むように太陽を戦略的に再配置し、キャビンの唯一のドアを強調します。プレイヤーが部屋をスキャンすると、各光源が間接的にプレイヤーの注意を引き、時計回りに引き寄せます:最初は暖炉のローカル光源に、次に窓の近くのグローバルおよびローカル光源に、最後に出口に光を当てるグローバル光源に向かいます。

サンプル Lighting Indoors - Complete プレースファイルで時間帯を再現するには:
Explorer ウィンドウで Lighting を選択します。
Properties ウィンドウで、
- ClockTime を 15.6 に設定します。太陽は午後3時45分頃の位置に移動します。
- OPTIONALGeographicLatitude を 323 に設定します。

太陽の光線を強調する
太陽が窓を通して光を差し込む理想的な位置にあるので、Lighting サービスの子 SunRays オブジェクトを使用して、太陽の光の個々の光線を増幅することで、太陽の照明を誇張できます。他の静的な大気効果とは異なり、太陽光線は、オブジェクトがプレイヤーのカメラと太陽の間に入ると形が動的に変化し、リアルな光と影のビジュアルを作成します。
デモとして、光線の強度と広がりを増加させると、太陽光線の形がどのように変化するかを確認してください。デフォルト設定の太陽光線は窓に微妙に近づきますが、カスタム設定の太陽光線はキャビンに光を差し込みます。この効果は、視覚を強化するだけでなく、プレイヤーが空間を移動する際に、太陽光線がほぼすべての角度から空気粒子の密度効果を強調するため、後のチュートリアルでの効果も向上させます。


サンプル Lighting Indoors - Complete プレースファイルで大気中の太陽光線を再現するには:
- Explorer ウィンドウで、Lighting サービスの子 SunRays オブジェクトを選択します。
- Properties ウィンドウで、
- Intensity を 0.023 に設定して、太陽のハローの不透明度を増加させます。
- Spread を 0.266 に設定して、空に広がる太陽光線の広がりを広げます。
環境光の色を調整する
環境光の色、つまり3D空間内の一般的な間接光の色をカスタマイズすることは、環境のムードを設定し、その照明が暖かいか冷たいかを決定する一般的な方法です。環境光の色を制御する Lighting プロパティは2つあります:
- Lighting.OutdoorAmbient は、空が見える場所の環境光を制御します。
- Lighting.Ambient は、屋内環境など、空を遮るものがある空間内の環境光を制御します。
デフォルトでは、両方のプロパティは冷たい灰色の色合いを生成するように設定されていますが、これはキャビン内の光源と一致しません。この問題を解決するために、Lighting Indoors - Complete サンプルは、Lighting.Ambient を調整して、暖炉やキャンドルの火の暖かさ、さらには沈む太陽の輝きに合った暖かいオレンジ色の色合いを生成します。この変更は微妙ですが、間接的に照らされたエリア、たとえば床の影において大きな違いが見られます。


サンプル Lighting Indoors - Complete プレースファイルで環境光の色を再現するには:
Explorer ウィンドウで Lighting を選択します。
Properties ウィンドウで Ambient を 83, 70, 57 に設定します。環境光がより暖かく、暗いオレンジ色に変わります。

補完的なスカイボックスを選択する
Lighting サービスには、ゲームの空を構成する6つの個別のプロパティを持つ子 Sky オブジェクトがあります。スカイボックスは、環境の見た目や雰囲気に大きな影響を与える可能性があるため、ゲームの視覚的品質を向上させるスカイボックスを慎重に選択することが重要です。特に、屋内空間に浸透する全体的な雰囲気に影響を与えます。
Lighting Indoors - Complete サンプルは、暖かい雰囲気が必要なため、主に空の近くで暖かい色合いを優先するスカイボックスを使用します。明るい黄色、鮮やかなオレンジ、そしていくつかの明るい緑が含まれます。スカイボックスの作成とカスタマイズ方法については、Skyboxes を参照してください。






サンプル Lighting Indoors - Complete プレースファイルでスカイボックスを再現するには:
Explorer ウィンドウで、Lighting サービスの子 Sky オブジェクトを選択します。
Properties ウィンドウで、
- SkyboxBk を rbxassetid://162001887 に設定します。
- SkyboxDn を rbxassetid://161998893 に設定します。
- SkyboxFt を rbxassetid://162001897 に設定します。
- SkyboxLf を rbxassetid://162001904 に設定します。
- SkyboxRt を rbxassetid://162001919 に設定します。
- SkyboxUp を rbxassetid://162001926 に設定します。

空気粒子の密度を増加させる
Lighting サービスには、太陽光をユニークな方法で散乱させるプロパティを持つ子 Atmosphere オブジェクトがあります。これらのプロパティのいくつかは、空のシルエットや遠くのオブジェクトのブレンドに影響を与える屋外環境でより明白ですが、他のプロパティは、屋内外に関係なく、3D空間内に存在する空気粒子の密度と色に影響を与えます。
たとえば、Atmosphere.Density プロパティは、ゲーム内の空気中に存在する粒子の数を制御します。このプロパティを増加させると、追加の粒子が3D空間に厚みと重さを生み出し、プレイヤーがあなたの世界を探索する際に具体的に感じられるようになります。これは、明確なローカル照明オブジェクトなしで環境にテクスチャと間接照明を追加するのに役立ちます。
この技術を示すために、異なる空気粒子密度を持つ Lighting Indoors - Complete キャビンの2つの画像を確認してください。Atmosphere.Density が 0 に設定されていると、キャビンは寒く暗いですが、ローカル光源があっても、Atmosphere.Density が 0.5 に設定されていると、キャビンは暖かくかすんでいます。この効果は特に影響力があり、Atmosphere オブジェクトはスカイボックスの色に基づいて空気粒子に暖かいオレンジ色の色合いを追加します。

サンプル Lighting Indoors - Complete プレースファイルで大気の空気粒子の密度を再現するには:
Explorer ウィンドウで、Lighting サービスの子 Atmosphere オブジェクトを選択します。
Properties ウィンドウで Density を 0.5 に設定します。空気がかすんで見えます。

ローカル照明を設定する
ローカル照明は、ゲーム内のローカル 光源 からの光です。たとえば、PointLight、SpotLight、および SurfaceLight オブジェクトです。グローバル照明をゲームの一般的な照明と雰囲気の要件に合わせて設定した後、3D空間内で照らしたいシーン内の特定の照明ニーズを満たすために、これらのローカル光源を利用することが重要です。
以下のセクションでは、各タイプのローカル光源を作成し、そのデフォルトプロパティのいくつかを調整して、ローカル照明がグローバル照明をどのように補完し、全体の環境と相互作用するかを大きく変える方法を示します。
キャンドルに光を当てる
シーン内で空間を照らす必要がある最初のオブジェクトは、窓の近くのドレッサーのキャンドルのグループです。Lighting Indoors - Start サンプルのデフォルト設定には、炎に優しい動きを加えるために以下の ParticleEmitter オブジェクトが含まれています:
- CandleFire - キャンドルの炎を模倣するために光を放つ粒子を生成します。
- CandleSmoke - キャンドルの煙を模倣するために暗い粒子を生成します。
- CandleFillLight - キャンドルの柔らかい輝きを模倣するために円形の粒子を生成します。
これは素晴らしいスタートですが、キャンドルは近くのエリアを完全に照らすリアルな照明挙動を生成していません。これを解決するために、Lighting Indoors - Complete サンプルは、キャンドルのグループの中央に PointLight オブジェクトを導入します。
PointLight オブジェクトは、太陽のように、単一のポイントからすべての方向に球状に光を放出します。この照明挙動は、むき出しの電球、トーチ、キャンドルライトなど、全方向に光を放つオブジェクトに便利です。以下の2つの画像を確認して、ポイントライトの有無でシーンがどのように変化するかを示します。ポイントライトがないシーンは、キャンドル自体だけを照らす柔らかい照明を生成しますが、ポイントライトがあるシーンは、キャンドル、近くの壁、そして像の微細な詳細を照らす強い照明を生成します。


ポイントライトは、すべての方向に投影するため、低スペックのデバイスでは他のローカル光源よりもパフォーマンスに影響を与える可能性があります。ゲームを最適化するために、理想的な照明挙動を損なうことなく、どれだけのポイントライトが必要かを考慮してください。たとえば、サンプルでは、キャンドルの炎が小さすぎるため、各キャンドルの炎の中に個別のポイントライトを配置することは、ゲームプレイエリア内の視覚を著しく向上させません。
サンプル Lighting Indoors - Complete プレースファイルでキャンドルのローカル照明を再現するには:
キャンドルのグループの1つにポイントライトを挿入します。
- Explorer ウィンドウで Candle_Group_A モデルを展開します。
- FillLight パーツにカーソルを合わせ、⊕ アイコンをクリックします。コンテキストメニューが表示されます。
- コンテキストメニューから PointLight を挿入します。
新しいポイントライトを選択し、Properties ウィンドウで、
- Brightness を 0.7 に設定して、キャンドルライトにより適した光の強度にします。
- Color を 255, 202, 156 に設定して、光を桃色に染め、キャンドルの暖かさを再現します。
- Shadows を有効にして、キャンドルライトが影を生成できるようにします。
このプロセスを Candle_Group_B に対して繰り返します。
- OPTIONAL前のステップの同じ技術を使用して、暖炉で燃えている火を照らすために、独自の設定を持つポイントライトを追加します。
デスクランプを点灯する
シーン内で空間を照らす必要がある2番目のオブジェクトは、キャビンの後ろの隅にあるデスクランプです。どのローカル光オブジェクトを使用するかを決定する際には、光源のタイプと形状が現実世界でどのように光を照らすかに影響を与えることを確認することが重要です。たとえば、Lighting Indoors - Start サンプルのデスクランプには、曲がった暗緑色のフードの下に白い電球が含まれているため、ランプは2種類の光を生成する必要があります:
- デスクの方向にのみ照らす明るい白色光。
- 明るい白色光以外のすべての方向に暗緑色のフードを通して漏れる微妙な緑色の光。
最初の照明ニーズを解決するために、Lighting Indoors - Complete サンプルは、ランプのフードから露出している場所から外向きに光を照らすために SpotLight をデスクランプに導入します。SpotLight オブジェクトは、円錐形の形状で単一の方向に光を放出し、光がどの面/軸から放出されるかを決定する Face プロパティを含みます。これにより、ストリートランプ、懐中電灯、ヘッドライトなど、方向性の光を生成するオブジェクトに便利です。
2番目の照明ニーズを解決するために、サンプルは、明るい白色光の中であまり目立たないように、キャビンの隅全体を照らす微妙な緑色の光を生成する PointLight を使用します。以下の2つの画像を確認して、ポイントライトの有無でシーンがどのように変化するかを示します。両方のシーンには比較可能な明るい白色光が含まれていますが、ポイントライトのあるシーンは、近くの像や本棚に反射してキャビンの隅を見えるようにするリアルな照明挙動を生成します。


サンプル Lighting Indoors - Complete プレースファイルでランプのローカル照明を再現するには:
キャンドルのグループの1つにスポットライトを挿入します。
- Explorer ウィンドウで Bankers_Lamp モデルを展開し、次に Lamp_Hood メッシュを展開します。
- Lightbulb メッシュにカーソルを合わせ、⊕ アイコンをクリックします。コンテキストメニューが表示されます。
- コンテキストメニューから SpotLight を挿入します。

新しいスポットライトを選択し、Properties ウィンドウで、
- Face を Bottom に設定して、デスクに向かってスポットライトを照らします。
- Angle を 140 に設定して、光を円半球の形状で投影します。
- Brightness を 4 に設定して、光の強度を増加させます。
- Color を 255, 238, 202 に設定して、光を薄いタン色に染め、ランプの微妙な暖かさを再現します。
- Range を 12 に設定して、スポットライトが照らすエリアのサイズを減少させ、床に触れるようにします。
- Shadows を有効にして、ランプの光が影を生成できるようにします。

ランプのフードからの間接的な緑色の光を模倣するポイントライトを挿入します。
- Explorer ウィンドウで FillLight パーツにカーソルを合わせ、⊕ アイコンをクリックします。コンテキストメニューが表示されます。
- コンテキストメニューから PointLight を挿入します。

新しいポイントライトを選択し、Properties ウィンドウで、
- Range を 12 に設定して、ポイントライトが照らすエリアのサイズを増加させ、デスクの後ろの壁を照らせるようにします。
- Color を 142, 157, 125 に設定して、光を薄い苔色に染め、間接的に明るさを減少させます。

ラジオの画面を照らす
シーン内で空間を照らす必要がある最後のオブジェクトは、ドレッサーの中央にあるクラシックなラジオです。前のセクションと同様に、どのローカル光オブジェクトを使用するかを決定する際には、光源のタイプと形状が現実世界でどのように光を照らすかを確認することが重要です。たとえば、前のローカル光オブジェクトのいずれもこのラジオには適していません。なぜなら、ラジオの画面は PointLight オブジェクトのようにすべての方向に光を放出することはなく、SpotLight のように単一の方向から光を放出することもないからです。


代わりに、この照明を解決するために、Lighting Indoors - Complete サンプルは、ラジオの画面全体から外向きに光を照らす SurfaceLight オブジェクトを導入します。SurfaceLight オブジェクトは、Attachment または BasePart の面から光を放出し、どの面/軸から光が放出されるかを決定する Face プロパティを含みます。これにより、テレビやコンピュータの画面、ビルボード、蛍光パネルなど、ほぼ平らな表面から方向性の光を生成するオブジェクトに便利です。
重要な点は、サーフェスライトとスポットライトの両方が光を放出する面を決定する Face プロパティを使用しているにもかかわらず、サーフェスライトは親オブジェクトの表面サイズに応じて光の放出が変化するため、スポットライトとは異なるということです。このことを示すために、以下の画像を確認して、サーフェスライトが親ブロックパーツのサイズに対してどのように光を放出するかを示します。


サンプル Lighting Indoors - Complete プレースファイルでラジオのサーフェスライトを再現するには:
ラジオの画面にサーフェスライトを挿入します。
- Explorer ウィンドウで Radio_Noise モデルを展開し、その子 Radio モデルを展開します。
- Radio_Backglow メッシュにカーソルを合わせ、⊕ アイコンをクリックします。コンテキストメニューが表示されます。
- コンテキストメニューから SurfaceLight を挿入します。

新しいサーフェスライトを選択し、Properties ウィンドウで、
- Face を Left に設定して、時計の表面から光を照らします。
- Brightness を 2 に設定して、光の強度をわずかに増加させます。
- Color を 146, 255, 251 に設定して、光をティールブルーに染めます。
- Range を 4 に設定して、サーフェスライトが照らすエリアのサイズを減少させ、テーブルにのみ触れるようにします。

光源のバランスを取る
環境を照らすことは、光源とカメラの照明の認識とのバランスです。光源が現実世界で空間を照らすための適切な設定を持っていても、理想的な照明挙動を達成するために、カメラがその照明をどのように認識するかを調整し、再バランスを取る必要があるかもしれません。
たとえば、現在の状態のシーンはキャビン全体に意図的に暖かい輝きを持っていますが、その色と影はどちらも鈍く、彩度が低く見えます。この問題を解決するために、Lighting Indoors - Complete サンプルは、プレイヤーのカメラ内での豊かさを増加させるためにグローバル照明を調整し、3D空間全体で明るい色と暗い色の間の詳細やコントラストを失わないようにします。
光の露出を調整する
実際のカメラのレンズが写真のためにどれだけ長く開いているかをカスタマイズするのと同様に、Lighting サービスの ExposureCompensation プロパティを使用すると、カメラに到達する光の量を調整できます。このプロパティを使用することは、Brightness プロパティを調整することとは異なります。なぜなら、ExposureCompensation は、環境の明るい部分の効果を増加させるバイアスを適用するからです。
たとえば、以下の画像を確認して、キャビンの明るさをグローバル照明の Brightness または ExposureCompensation プロパティを増加させることでどのように変化するかを確認してください。Brightness プロパティが高いキャビンは、空間全体の明るさを増加させ、影の中の明るさも増加させるため、キャビン内に意図しない濁りを引き起こします。逆に、ExposureCompensation プロパティが高いキャビンは、光と影の明るさを均等に増加させず、空間が明るく見える一方で、暗い色を完全に洗い流すことはありません。



サンプル Lighting Indoors - Complete プレースファイルで露出レベルを再現するには:
Explorer ウィンドウで Lighting を選択します。
Properties ウィンドウで ExposureCompensation を 0.5 に設定して、シーンに追加の露出を適用します。

色のコントラストを調整する
カメラにフィルターを適用するのと同様に、Lighting サービスに ColorCorrectionEffect ポストプロセッシングオブジェクトを追加して、カメラが色をどのように認識するかを調整できます。これは、特定のオブジェクトやゲームプレイエリアだけでなく、環境全体に影響を与える色の調整を行いたいときに便利です。
Lighting Indoors - Complete サンプルは、ColorCorrectionEffect を使用して、すべての暗い色と明るい色の間の鮮やかさとコントラストを増加させます。これは、プレイヤーにとって魅力的な暖かく彩度の高い空間を作成するのに役立ちます。
サンプル Lighting Indoors - Complete プレースファイルでカメラが色を認識する方法を再現するには:
Explorer ウィンドウで Lighting サービスにカーソルを合わせ、⊕ アイコンをクリックします。コンテキストメニューが表示されます。
コンテキストメニューから ColorCorrectionEffect を挿入します。
新しいポストプロセッシング効果を選択し、Properties ウィンドウで、
- Contrast を 0.05 に設定して、暗い色と明るい色のコントラストを増加させます。
- Saturation を 0.1 に設定して、すべての色をより鮮やかにします。





