【Blender2.82】Physical Starlight And Atmosphereで太陽や霧を表現する

この記事では、Blenderの有料アドオン「Physical Starlight And Atmosphere」を使い、太陽や霧を加えて空気感を演出する方法を説明します。

Physical Starlight And Atmosphereとは

https://blendermarket.com/products/physical-starlight-and-atmosphere

Physical Starlight And Atmosphereは、大気シミュレーションができるアドオンで、Blenderにデフォルトで搭載されているSun Lightよりもリアルな太陽や空を再現することができます。

Blender Marketにて有料で販売されています。Blender Marketでのアドオンの購入方法、インストールの仕方については、以下の記事をご覧ください。

アドオンの使い方

Blenderに標準で用意されているレンダリングエンジンにはCyclesとEeveeの2つがあります。

今回使用するモデルをアドオンを使わずにCyclesで表示すると、以下のような状態です。ライトは消しています。

アドオン適用前(Cycles)

アドオン適用前(Cycles)

これを以下のような見た目にしていきます。

完成(Cycles)

完成(Cycles)

アドオンをインストールしたら、[N]キーをクリックしてプロパティシェルフを表示します。

「Physical Atmosphere」タブをクリックし、「Atmosphere」の左のチェックマークをオンにします。

するとこれだけで、シーン全体が日の入り前の雰囲気に変わります。ライトは自動で追加されます。

チェックを入れた直後(Cycles)

チェックを入れた直後(Cycles)

ではここから、プロパティを詳しく見ていきましょう。

レンダリングエンジンは一部を除き、CyclesもしくはEeveeどちらを利用しても構いません。Unityなど他のソフトやSTYLYへエクスポートしたい場合は、Cyclesを利用してください(エクスポートに関しては後述します)。

Sun

太陽をシミュレーションするパラメーターは以下の通りです。

Sunのパラメーター

Sunのパラメーター

  • Azimuth:方位角
  • Elevation:標高
  • Angular Diameter:角径
  • Temperature:色温度(ケルビン)
  • Intensity:強さ

Elevationの値を上げると、だんだん昼のような明るさに変わっていきます。太陽の向きは、画面に表示されているランプの向きの通りです。

Elevation:23°(Cycles)

Elevation:23°(Cycles)

続いてAzimuthの値を上げ、影の方向を調整します。

Azimuth:-137°(Cycles)

Azimuth:-137°(Cycles)

Intensityを下げ、明るさを少し控えめにしました。

Intensity:200000(Cycles)

Intensity:200000(Cycles)

今回は利用しませんが、Temperature Kの数値を下げると赤〜黄、上げると青に近づきます。

Atmosphere

※Eeveeの場合、一つ下の項「Fog」から始めても構いません。

Atmosphereのプロパティでは、太陽光がオブジェクトや空にどのように影響を与えるかを調整することができます。

Atmosphereのパラメーター上段

Atmosphereのパラメーター上段

 

  • Density:密度
  • Height:高さ
  • Intensity:強度

 

  • Color:色
  • Inscattering:散乱色
  • Absorption:吸収色

Densityの値を上げると、水平線付近の色が滲んだようになります。

Density:5.0(Cycles)

Density:5.0(Cycles)

続いてIntensityの値を上げると、その下のInscatteringに設定した色味(今回は青)が増します。

Intensity:3.5(Cycles)

Intensity:3.5(Cycles)


Atmosphereのパラメーター下段

Atmosphereのパラメーター下段

 

  •  MieScattering:ミー散乱(霧やスモックが白く見える現象)
    • Intensity:強度
    • Anisotropy:異方性

 

  • Artistic Control
    • Distance Scalar:距離スカラー(距離ベクトル)
    • Falloff:減衰
    • Sun Radiance Gamma:太陽放射ガンマ

Distance Scalarの値を上げると、地面・空がより青くなります。

Distance Scalar:13.0(Cycles)

Distance Scalar:13.0(Cycles)

続いて、Falloffの値を下げました。

Falloff:0.6(Cycles)

Falloff:0.6(Cycles)

Eeveeに切り替えて確認しても、似た見た目になります。

Eeveeに切り替え

Eeveeに切り替え

Fog(Eevee)

Eeveeであれば、各マテリアルにStarlightAtmosphereノードを挟み込むと、霧の効果をより増幅することができます。(現時点では手動ですが、アップデートで自動化できるようになるとのことです。)

シェーダーエディターを開き、[Shift]+[A]から「Group」の「StarlightAtmosphere」を選択します。

ノードの新規追加

ノードの新規追加


ノードを間に挟み込む

ノードを間に挟み込む

StarlightAtmosphereノードが現れたら、「Material Output」から伸びている線の上にドラッグ&ドロップします。

すると、オブジェクト全体に霧がかかったようになります。

ノード接続直後(Eevee)

ノード接続直後(Eevee)

一つ上の項でも取り上げたAtmosphere Density、Distance Scalar、Falloff のパラメーターを調整すると、雰囲気もガラリと変わりますので試してみてください。

なお、StarlightAtmosphereノードを接続したままCyclesに切り替えると、マテリアルのベースカラーが見えなくなってしまいます。CyclesにするときはStarlightAtmosphereノードを外すとよいです。

ノード接続直後(Cycles)

ノード接続直後(Cycles)

ベイクしてSTYLYにアップロード

この色合いを適用したままSTYLYにアップロードしたり、Unityで利用したい場合は、テクスチャを「ベイク」する必要があります。

Blender2.82ではEeveeにベイク機能がないので、Cyclesに切り替えて作業します。

「UVEditing」のタブに移動し、下のバーから新しい画像を生成します。

新しい画像を生成

新しい画像を生成

「Name」を変更します。今回は“tokyotower”に変更しました。

新しい画像を生成

新しい画像を生成


画像が生成された

画像が生成された

画面左側に、黒の画像が生成されました。

右側の画面で編集モードに移動し、頂点を全選択したあと、[U]キーから「Unwrap」もしくは「Smart UV Project」を選択します。

Unwrapを選択

Unwrapを選択

すると、左側にUVが展開されました。

UVが展開された

UVが展開された

「Default」タブに戻り、ノードエディター上で[Shift]+[A]キーを押し、「Image Texture」を追加します。

Image Textureノードを追加

Image Textureノードを追加

Image Textureノードが追加されたら、赤線枠で囲んだボタンから先ほど追加した画像を選択します。

テクスチャはマテリアル単位で割り当てられるため、オブジェクトに使われているマテリアル全てでこの作業を行います。

画像を選択

画像を選択

右側のシーンプロパティから「Bake」をクリックします。

Bakeをクリック

Bakeをクリック

画面下部にインジケーターが表示されるので、100%になるまで待ちます。

ベイク中

ベイク中

UV Editingタブに戻ると、陰影がついた状態のテクスチャが生成されています。

テクスチャが生成された

テクスチャが生成された

最後に、先ほどテクスチャを指定したノードを、マテリアルに接続します。

ノードを接続

ノードを接続

以上でベイク作業は完了です。

同様に他のオブジェクトもベイクし、「File」の「Export」からglTF形式でエクスポートします。

glTF形式でエクスポート

glTF形式でエクスポート

エクスポートしたファイルをSTYLYにアップロードする方法は以下の記事をご参照ください。

STYLYにアップロードしても、Blenderでレンダリングした状態に近い見た目で配置することができました。

STYLYへのアップロード成功

STYLYへのアップロード成功