Emissive Material 入力の使用方法

Unreal Engine 4 でマテリアル エディタの Emissive Material 入力を使用するための操作ガイドです。

Choose your operating system:

Windows

macOS

Linux

プロジェクト開発途中で、自己発光マテリアル、または輝くマテリアルが必要になることがあります。 Unreal Engine 4 (UE4) では自己発光マテリアルはエミッシブ マテリアルとして知られています。 以下の操作ガイドでは、Emissive 入力を使うためのマテリアルの設定方法に加えて、Emissive 入力を使って作成中のワールドを実際に照らす方法を説明します。

エミッシブ ライティング

エミッシブ ライティングまたは UE4 のエミッシブ マテリアルを使うと、アーティストは、まるでマテリアルが光をキャストしているようなイリュージョンを、非常に効率良く効果的に作ることができます。 その仕組みは、アーティストが Emissive 入力の値を 1.0 より高くして、 マテリアルを HDR へプッシュできるようにしているのです。

Lit (ライティングあり) と Unlit (ライティングなし) のエミッシブ マテリアル

エミッシブ マテリアルは自分で光る、つまり、Lit と Unlit の両方のシェーディング モデルに使用できるのです。 ただしエミッシブ マテリアルの場合は可能な限り、レンダリング負荷の低い Unlit シェーディング モデルを使うべきです。 この 2 つのシェーディング モデルは、エミッシブ マテリアルのレンダリング方法という点においては外見上に差異はありません。 従って、できる限り、Unlit シェーディング モデルを使ってください。

EM_Shading_Model.png

  • Lit シェーディング モデルの使用例 :エミッシブ マテリアルを Base Color 入力や Normal Map 入力と組み合わせて使用する場合は、 Lit シェーディング モデルを使ってください。例えば、光が当てられた銃のマテリアルを作成する場合などです。Normal Map 入力やその他のシェーダー入力がレベル内でまだ光源と作用するので、 Lit シェーディング モデルを使ったほうが良いかもしれません。

  • Unlit シェーディング モデルの使用例 :エミッシブ マテリアルを他のシェーダー入力を使用しなくて良い場合は、Lit シェーディング モデルを使ってください。例えば、エミッシブ マテリアルを、 ライトカードのような光源または電球の表面などを厳密にシミュレートするために使う場合です。

エミッシブ マテリアルの作成

エミッシブ マテリアルの作成方法は、その他の UE4 のマテリアルと全く同じです。次のセクションでは、Emissive 入力を活用するために必要なマテリアルの設定について説明します。

プロジェクトに スターター コンテンツ を入れれば、以下のセクションで使用するすべてのコンテンツは見つかります。以下で説明するテクニックは、どのテクスチャでも機能しますが、手順に従う場合はプロジェクトに スターター コンテンツ が含まれていることを確認してください。

  1. まず コンテンツ ブラウザ 右クリック し、ポップアップ メニューの [Create Basic Asset (基本アセットを作成)] セクションから [Material] を選択します。 選択すると新規 マテリアル が作成されるので、そのマテリアルに「 Emissive_Material 」という名前を付けます。

  2. マテリアルが作成されたら、コンテンツ ブラウザでそのマテリアルを マウスの左ボタン を使うか ダブル クリック して開きます。 マテリアルを開いたら、以下のマテリアル式ノードとテクスチャを追加します。

    • Vector Parameter x 2

    • Scalar Parameter x 2

    • Texture - T_Tech_Panel_M

    • Texture - T_Tech_Panel_N

    クリックしてフルサイズ表示。

    この操作ガイドで使用している Tech_Panel テクスチャが見つからなければ、プロジェクトに スターター コンテンツ を入れ忘れている可能性があります。 このコンテンツを見つけるには、新しいプロジェクトを作成し、必ずスターター コンテンツを有りに設定し、

    [Migrate ツール](Basics/AssetsAndPackages/Migrate)
    を使って そのプロジェクトからご使用のプロジェクトへテクスチャを移してください。

  3. 必要な Material Expression ノードはすべて追加されたので、マテリアルの設定を始めましょう。まず最初に、 Material Expression ノードに 名前を付けてデータを入力します。使用する名前と値は以下の通りです。

    • Vector Parameter - Base_Color - 1, 1, 1

    • Vector Parameter - Emissive_Color - 1, 0, 0

    • Scalar Parameter - Roughness - 0.5

    • Scalar Parameter - Emissive_Strength - 1.0

    完了すると以下のようになります。

    クリックしてフルサイズ表示。

  4. Material Expression ノードに名前が付きデータが入力されたので、次はすべてを接続していきます。正しい接続を確実に行うために重要となるのが、Emissive 入力です。 Emissive 入力がなければ、何も機能しません。完了すると、このような感じになっているはずです。

    クリックしてフルサイズ表示。

  5. マテリアルを接続したら、マテリアル エディタの上部にある [Apply (適用)] ボタンと [Save (保存)] ボタンの両方を押して、必ずマテリアルを コンパイル および 保存 してください。 以上の事が完了したら、マテリアルを閉じます。

    EM_Save_&_Compile.png

  6. マテリアルのコンパイルが完了し閉じたら、コンテンツ ブラウザ でマテリアルを見つけて 右クリック し、 [Create Material Instance (マテリアル インスタンスを作成)] オプションを選択して Emissive_Material マテリアルからマテリアル インスタンスを作成します。

    EM_Create_New_Material_Instance.png

  7. マテリアル インスタンス が作成されたら、その上で マウスの左ボタン ダブルクリック して開きます。次に [Parameter Groups] セクションを見てください。 Emisive_Color や Emissive_Strength などの親マテリアルに公開された全ての制御は、このセクションにあります。

    EM_Emissive_Material_Instance.png

  8. パラメータを変更するには、まずパラメータを有効にしなければなりません。有効にしたいパラメータ名の横にあるチェックマーク ボックスを マウスの左ボタン でクリックします。 クリックするとボックスにチェックマークが追加され、名前と入力欄のグレーアウトが解除されます。使用したい値を入力し、 マテリアル インスタンスを保存します。

Emissive 入力用のテクスチャまたはスカラー

Emissive 入力へは、テクスチャ、数値、またはその両方の組み合わせを入力することができます。そのマテリアルのニーズによって、入力内容は異なります。エミッシブ マテリアルがライトのシミュレーションのためだけであれば、 テクスチャではなく数値を使うのが断然いいでしょう。ただし、オブジェクト上でライトをシミュレーションしたい場合は、照らしたい部分をマスク テクスチャで正確に定義できるので、 エミッシブ マスクとしてテクスチャを使うのが最善だと思います。上記の例では、マテリアルのエミッシブとなる部分を定義するためにテクスチャを使ったエミッシブ マスキングを使用しました。

テスティング マップの作成

  1. 先へ進む前に、以下の手順に従って、動作中のエミッシブ マテリアルを確認できる小さなテスティング ルームを設定しなければなりません。 [File] > [New Level] をクリックして、新規のレベルを作成します。 そして、新規レベルのダイアログ ボックスから [Default] オプションを選択します。

    EM_Create_New_Level.png

    キーボードのショートカット Crtl + N でも、新規レベルを作成できます。

  2. レベルが作成されたら、既存のフロアである SM_Template_Map_Floor を選び、4 回複製します。1 回選択したら、あとはキーボードで CRTL + W を 4 回押します。 すべてのフロア分を複製したら、部屋の横側を開けて屋根もずらして、光源が面白い状態になるように調整します。 完了すると、このようになるはずです。

    EM_Testing_Level.png

  3. 部屋が完成したら、キーボードの CTRL + S を使って作業を確実に保存します。

動作中のエミッシブ マテリアル

  1. 部屋が設定できたので、テスト用にメッシュを追加してみましょう。 「 Starter Content 」フォルダの中に「 Shapes 」という名前のフォルダがあります。そのフォルダの中に「 Shape_Cube 」という名前のメッシュがあります。 マウスの左ボタン でコンテンツ ブラウザからそのメッシュをレベル内へドラッグします。 そしてメッシュがレベル ビューポート上に来たら マウスの左ボタン をリリースします。この操作でレベル内にメッシュが置かれます。

    EM_Adding_Test_Box.png

  2. メッシュがレベルに追加されたら、ここで以下の手順に従いエミッシブ マテリアルを追加します。追加するには、 コンテンツ ブラウザ Emissive Material を探します。 そして マウスの左ボタン [Material Instance] を選択し、 コンテンツ ブラウザ からマテリアル インスタンスを Shape_Cube メッシュへドラッグします。

    EM_Applying_Material_Instance.png

  3. マテリアル インスタンス が Shape_Cube に適用されたら、その上で マウスの左ボタン を使ってマテリアル インスタンスを ダブルクリック して開きます。インスタンスが開いたら、 エミッシブの見え方が変わるようにマテリアルインスタンスのパラメータの調節を開始します。例えば、 Emissive_Strength を調節すると、エミッシブの影響を制御することができます。 Emissive_Strength の値を、左 0 、中央 1 、右 25 に設定すると、このようになります。

    EM_Different_Emissive_Values.png

  4. Emissive_Color Vector パラメータを変更すると、エミッシブの色が変わります。エミッシブの色を変更すると、このような感じになります。

    EM_Different_Emissive_Color.png

エミッシブ マテリアルを使ってワールドを照らす

マテリアルで Emissive 入力を使える機能が Unreal Engine 4に追加され、ワールドを照らしやすくなりました。この機能を有効にするには、マテリアルの Emissive 入力に必ず何かを送って、 そのマテリアルをワールド内のオブジェクト上に配置します。ライトをビルドすると、マテリアルの Emissive 入力によって、 ワールド内の静的オブジェクトが照らされているように見えることが分かります。黄色のエミッシブ ライトを使って、黄色いライトでテスティング レベル内の暗い部分を照らしてみると、こうなります。

クリックしてフルサイズ表示。

エミッシブのワールドへの影響を制御する

Emissive 入力を使ってワールドを照らすとき、エフェクトが弱すぎる、あるいは強すぎと感じることがあります。そこを修正するために、作成されたマテリアルはすべて、 ワールドへキャストされているエミッシブの影響を調節することができます。上記で作成したシェーダーでは、 Emissive_Strength と呼んでいたのがこのパラメータです。Emissive_Strength を 増やす と、 ライトのビルド時にワールドへキャストされるライトの量が増加します。Emissive_Strength を 減らす と、ワールドへのライトのキャスト量が減少します。以下の画像を見ると、 Emissive_Strength を増加するとワールド内の Emissive エフェクトがどのように増えるのかが分かります。1 つめの画像は、Emissive_Strength の値が 1.0 に設定されています。2 つめの画像は、右側は、Emissive_Strength の値を 100.0 に設定しました。

Emmisive_Strength 値の更新を見るには、スライダをドラッグします。

エミッシブのワールドへの影響を切り替える

ワールドの中にエミッシブ マテリアルへライトをキャストしたい場合と、そうでない場合があると思います。以下の手順に従って、ライトキャスト機能のオンオフを行います。

  1. まず最初に、ワールドの Emissive からライトをキャストしたくないメッシュを選びます。

  2. 次に [Lighting] セクションの [Details (詳細)] パネルで、 マウスの左ボタン をクリックして [Use Emissive for Static Lighting (静的ライティングにエミッシブを使用)] と表示されているボックスにチェックを入れます。

    EM_Turn_Off_Use_As_SL.png

    [Use Emissive for Static Lighting] は、ワールド内にお置かれたすべてのメッシュ上でデフォルトで無効に設定されています。使用する時に毎回有効にします。

  3. Use Emissive for Static Lighting の使用例です。左が無効、右が有効の状態です。

    Not Using Emissive for Static Lighting

    Using Emissive for Static Lighting

ワールドでエミッシブが持つエフェクトを確認するには、レベルの光源をビルドする必要があります。これを行わないと、変更部分を見ることができません。つまり、エミッシブ マテリアルに変更を行う都度、その変更を確認するためには光源をリビルドする必要があります。

エミッシブの影響とブルーム

マテリアル インスタンス内で Emissive 入力の強度を高めるほど、マテリアルの [Emissive] セクションで生成されるブルームは明るくなっていきます。 マテリアル インスタンス内の値を下げずにブルームの影響を落とすには、 [Post Process Volume] [Bloom] 設定を調整します。

EM_Bloom_On_PP.png

エミッシブ値をかなり高くしてワールドのエミッシブ マテリアルからさらに静的ライトを得ようとする場合に、この値を調節することで補正がしやすくなります。下の画像の左側は、 エミッシブ値が 100 と非常に高く、ブルームが未調整の場合を示しています。右側は、ブルーム設定が 1 から 0.1 に調整されています。 こうすることで、エミッシブはワールドへ大量の静的ライトをキャストしつつ、ブルームを押さえることができます。

High Emission with High Bloom

High Emission with Low Bloom

間接ライティングを複数回バウンスさせる設定

[Emissive for Static Lighting] を有効にしたメッシュから間接ライトを複数回バウンスさせるには、 [World Settings] > [Lightmass] [Num Sky Lighting Bounces] で設定を行います。

LightmassSettings.png

EmissiveMultiBounce.png

エミッシブな Static Lighting (静的ライティング) が間接ライティングを複数回バウンスさせたシーンの例

まとめ

エミッシブ ライティングをマテリアルへ追加すれば、小さい負荷で、ライトを新規に追加せずに効果的に光源をシミュレートを行うことができます。 ただし、エミッシブ ライティングを使う場合、エミッシブ ライティングはキャラクターのような動的オブジェクトを照らさず、ライトと同じように照らすということを覚えておいてください。 また、輝きが強すぎる場合は、Post Process ボリューム上でブルーム設定を調節できることも覚えておいてください。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる