2014年4月7日

マテリアル パラメータ コレクション

作成 Shane Caudle

マテリアル パラメータ コレクションは、アンリアル・エンジン 4 で極めて役立つ機能です。これは、他の任意の数のマテリアルまたは ブループリントから参照できるスカラーおよびベクターのパラメータが集まったものです。つまり、これらのパラメータはグローバルに変更されるということです。したがって、その値を変更すると、パラメータを利用するあらゆるものが自動的に変更されます。またこのことは動的に行われるため、飛び抜け便利です!

このようなものを作ることができます。

Creating a Material parameter collection

スカラーのパラメータは、1 個の浮動小数点値です。またベクターのパラメータは、4 個の浮動小数点値です。これは、ベクターとして、アルファチャンネル付きカラーを設定するために、あるいは好きな用途に使用できます。

サンプルゲームの Tappy Chicken で私は、スカラー パラメータ コレクションを大量に使って、通常であればもっと負荷がかかるようなマテリアルの処理に対応しました。このゲームはライティングされていない 8 ビットのような 2D ゲームであるため、私としては、霧や時刻の変化、スクリーンフラッシュ、マテリアルにおける黒へのフェードなどをシミュレートしたかったのです。また、スカラー パラメータ コレクションによって、これらのものがどこでどのように使用されるかということについても完全に制御できるようになります。たとえば、時刻の変化をシミュレートするためにスクリーンをティントしたい場合は、UI グラフィックスで 50% にティントするだけです。

下の画像は、私が使用した設定です。

MPC for TappyCHicken

マテリアルエディタでマテリアル コレクション パラメータを使用するには、何もないところで右クリックして、[Parameter/CollectionParameter] を選択します。

Search for Collection Parameter screenshot

次の設定をご覧になると、パニングする背景要素のためのマテリアルでこれらのスカラー パラメータを私がどのように使用したかが分かります。

シーンを構成するメッシュの頂点カラーの赤チャンネルを使用してフォグ カラーを背景の山に加えることによって、シーンの深度をシミュレートしました。

Shader

ブループリントで、3 色全部を設定する SetSkyColor という関数を作って、時刻を簡単に変化させることができました。

Blueprints Screen2

さらに、SetSkyColor を使って時刻をランダムに選択する別の関数 ChooseSkyColor を作りました。

Blueprints Screen 3

ゲームの中では次のように見えます。

TappyChicken Screenshot

これまで見てきたものは、マテリアル パラメータ コレクションの使用法のほんの数例にすぎません。これはツールボックスに入れておくべき非常に便利なツールです。いろいろ試し、創造的に使ってゲームを強化させる方法を見つけてください。

質問またはご意見はありませんか?私たちのフォーラムを訪れて、お話しましょう!