※この記事で使用しているUnrealのVersionは04.21.1です。Person」を使用しています。※この記事のサンプルプロジェクトは以下URLにアップされていますサンプルプロジェクトポストプロセスとは、直訳すれば「後の処理」。マテリアルこのポストプロセスを使うか使わないかで一気に表現の幅が変わります。そんなポストプロセスをマテリアルを使って、最近Unrealで流行り(?)の「アニメ調な絵」を作成してみたいと思います。レベル【★★★】まずはマテリアルを作成しましょう。作成したら開き、「詳細」ウィンドウの以下の項目を編集します。Location」を「BeforeTranslucency」にするさて、早速Blueprintを書いていきますが、その前に...アニメ調な絵作りをするには、ディティールの細かいライティング情報を省き、メッシュが持つ色のみで絵を作るとそれっぽくなります。Texture」ノードを選択し、「詳細」ウィンドウの「SceneTextureID」を「DiffuseColor」にすることで使用出来ます。このノードの「Color」をそのまま「エミッシブカラー」につなげてみます。この状態でどんな見た目になるかを見てみましょう。ポストプロセスマテリアルを設定するには、まず適当なレベルを作成し、エディター上の「モード」ウィンドウから「ポストプロセスボリューム」というのをレベル上に置いてあげます。Materials」の「Array」の配列の+を1回押してあげ、出てきたプルダウンの中から「アセットリファレンス」を選択してあげます。することでマテリアルを選択できるようになるので、作成したポストプロセス用のマテリアルを設定してあげます。Extent(Unbound)」のチェックを入れてあげます。したマテリアルを設定した状態で見た目を確認するとこんな感じ↓になりました。↓通常の見た目と比較してみます。見ての通り、光を当てる前の、元のマテリアルの色そのものが出ているのがわかります。Model」というプロパティが「Unlit」になっているためです。Colorでは色が出力されないのです。これだけでは味気がないので、アニメ調な見た目ならよくある「アウトライン」を実装しましょう。基本編が、超絶わかりやすかったので、ほぼ丸パクリしました。ありがとうございます。詳しい説明は↑をどうぞ。MF_FilterFunctionDepthの中身MF_GetOffsetPixelDepthの中身MF_GetOffsetPixelの中身やっている内容としては、周囲の画素の深度情報を比較して、その値を元にアウトラインを作成するような感じです。基本編に乗っているままです。ありがとうございます。アウトラインをつけた見た目はこんな感じです。なんか一気にそれっぽい見た目になりました。後はDirectLightの向きを元に影を作ってみます。LightVector」を使用します。Light」のチェックがついているものの向きを取得してきます。Personプロジェクトの「ThirdPersonExampleMap」を使っている場合や、「NewLevel」で「Default」から作成している場合にはチェックがついています。自分で置いたDirectLightにはデフォルトでチェックが外れています。【注】DirectLightの詳細の「Light」→「Intensity」が0.0になっている場合には向きが取得できないので、何かしらの値を入れてあげましょう。IDから、Sceneの法線を取得し、そこから内積値を出してライトの当たり具合を割り出します。それを元に、影用のカラールックアップ用のテクスチャーをを作成し、それを使用して影をつけます。組んでみると以下のようになります。テクスチャーは以下を使用しました。出来た見た目がこんな感じです↓あとは、黒い部分(Unlitなマテリアル)をどうにかするために処理を追加していきます。して出来たのが↓こんな感じで簡易的ながらセルシェーダーっぽいのが出来ました。Unrealはリアル調な見た目を得意としていますが、やり方次第ではいろんな表現が可能です。Unrealを使用している人はこのセルシェーディングを使おうとしている人が多く、以下のリンクから、様々なセルシェーディングを扱っているサイトに飛べます。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。【UE4】【C++】独自の簡単なスクリプトシステムを作る-後編。