※この記事で使用しているUnrealのVersionは04.21.1です。

※今回はプロジェクトのテンプレート「Third Person」を使用しています。

※記事が長くなってしまったので、2ページに分けて投稿します。@ページ1

後編はこちら

※この記事のサンプルプロジェクトは以下URLにアップされています
サンプルプロジェクト

【UE4】ポストプロセスマテリアルで簡単なセルシェーディングやってみた

でも紹介致しました、ポストプロセスマテリアル。このポストプロセスマテリアルはなかなか遊びがいがあるものなので、今回はまた違った使い方をご紹介します。

画面分割 レベル【★★☆】

まずは、ポストプロセス用のマテリアルを作成します。

コンテンツブラウザ左上の「新規作成」から「マテリアル」を選択します

作成したらマテリアルを開きます。

まずは「詳細」ウィンドウ内の「Material」→「Material Domain」を「Post Process」に設定します。

これで、このマテリアルはポストプロセス用のマテリアルになります。

ひとまずSceneTextureを作成し、SceneTextureIDを「PostProcessInput0」にします。

この状態で「エミッシブカラー」につないでみます。

とりあえずこの状態でプレイした時の見た目を確認してみます。

「Third Person」テンプレートを使用しているので、デフォルトで開かれているレベルに、あらかじめ「Post Process Volume」がレベル内にあるので、「アウトライナ」ウィンドウからそれを選択します。

その状態で「詳細」ウィンドウの「Render Features」→「Post Process Material」の配列のプラスボタンを押して配列を増やします。

そこで出てきたプルダウンで「」を選択してください。そうすることで、アセットを設定できる場所が出てきます。そこに作成したポストプロセス用のマテリアルを設定します。

とりあえずこれでプレイしてみます。

まあ当然のことながらこの状態でプレイしても何も変わりません。

では、マテリアルのグラフに戻って、今度は「TextureCoordinate」ノードを追加します。

そして、TextureCoordinateの詳細の「UTiling」 「VTiling」 を「2.0」にしてあげます。さらに「Frac」ノードで、整数部分を切り捨て小数点のみの値に変化させます。

それを「Scenetexture」ノードの「UVs」インプットにつないであげます。

さて、この状態でプレイするとどうなるでしょうか。

画面が4分割されたような見た目になりました。

このようにSceneTextureのUVをいじることで、画面内の表示位置や大きさをいろいろといじることが出来ます。色々と使い道がありそうです。

例えば、この4分割画面をちょっと改造して以下のようなノードを組みました

結果↓

4分割した画面それぞれに別の結果を出すことが出来ました。

また、こんな感じに組んだりすると。

こんなふうにすることも出来ます。

センスがある人が使えばもっといろんな見た目を出すことができそうです。

今度は分割する値を値を外から動的にいじって見ます。

今回は値を操作するために「マテリアルパラメーターコレクション」と言うアセットを使います。
詳しくはマテリアルパラメーターコレクション

作成方法はコンテンツブラウザ左上の「新規追加」→詳細なアセット内を作成内にある「マテリアル・テクスチャ」→「マテリアルパラメーターコレクション」から作成します。

作成したアセットを開くと、「ScalarParameters」と「VectorParameters」という配列が2つあります。ここに必要な数だけパラメータを登録することで、マテリアルBPでの参照BPからの上書きができるようになります。

試しにこんな感じでマテリアルBPを組みます。

また、レベルブループリントを開き、そこにも少し処理を書きます。

タイムラインの中身

結果↓

画面をボタンを押すことで分割したりすることが出来ました。

こんな感じで一工夫すればいろんな演出でも使えそうな感じです。

この外からパラメーターをいじる機能を使いもう少し遊んでみます。
長くなってしまったので後編に移行します。

後編はこちら

※この記事のサンプルプロジェクトは以下URLにアップされています
サンプルプロジェクト