読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

ポストプロセスマテリアル実行のタイミング

f:id:una_unagi:20170410230351p:plain
After Tonemapping

f:id:una_unagi:20170410230523p:plain
Before Tonemapping

f:id:una_unagi:20170410230613p:plain
Before Translucency

f:id:una_unagi:20170410230713p:plain
Replacing the Tonemapper

「これは昨日作ったポストプロセスマテリアルの、空の網目模様を消したバージョンなんだけど、同じマテリアルでも実行のタイミングで全然見た目が違う、というのが今日のテーマ」

f:id:una_unagi:20170410230907p:plain

「設定場所は、マテリアルのエディタの中で、どのノードも選択してない時に出る詳細の欄にあるBlendableLocation。4種類の設定から選ぶ」

妹「なんだか見た目が違うというのはわかる」

「ポストプロセスは途中で色んな処理が入ってるから、どのタイミングでやるか、というので結果が違ってくる。ちなみに今まで作ったポストプロセスマテリアルは、全部AfterTonemappingで作ってた。これが初期値だから。タイミングとしては最後。ここで設定したエミッシブカラーはそのまま最終結果になる」

妹「他のは違うの?」

「BeforeTonemappingの場合だと、トーマッピングの前だから、その後に明るさとかの調整がある。だから線の色が黒のままじゃなく、少し薄くなってる部分がある」

妹「BeforeTranslucencyは線が消えちゃってるように見えるけど……」

「消えてはないんだけど、奥にある物体をぼかす処理の前に線を書き込んでる。それで線も含めてぼかしがかかってる。キャラクターの足元とかは線がわりと残ってる」

妹「そういえば線の部分の奥行きってどうなってるんだろ?」

「ポストプロセスマテリアルでは深度の上書きはしてないから、元々その場所にあった物体の奥行きになる。内側に線を入れる場合は物体と同じ奥行きだけど、外側に入れる場合は背景の部分の値のままだと思う」

妹「足元だけ線が残るのもそのせい?」

「足の部分は背景が手前側の床だから、わりと近い。でも頭や体は遠くの床とか階段だから、そっちと同じ強度のぼかしがかかってる状態」

妹「それもなんだか不自然な」

「そのへんの問題も考えて、どのタイミングでやるのが一番見栄えがいいかを考える必要がある」

妹「ReplacingTonemappingというのは? なんかこれだけ妙にどす黒いけど」

「これはトーマッピングの最中に割り込む設定。これはちょっと特殊だから、それ専用のマテリアルを作る場合以外は使わないはず。普通にやるとポストプロセスを無視した素の状態の色が出てくる」

f:id:una_unagi:20170410232100p:plain

f:id:una_unagi:20170410232109p:plain

「複数のポストプロセスマテリアルを併用する場合も、順番をどっちが先にするかは大事。ぼかしと輪郭線、どっちもAfterTonemapptingで、ただ順番だけが違うという設定」

妹「これだったら、上の方がいいかなあ」

「その場合は、輪郭線マテリアルを先にして、ボカシは後にする」

f:id:una_unagi:20170410232503p:plain

「BlendbleLocationが同じマテリアル同士の場合、BlendblePriorityでどっちが先か決まる。数字が大きい方が後で、初期値は0。他のより先にしたい時にマイナスを入れるのもあり」

妹「その数字も同じだった場合は?」

「その場合でもやっぱり順番にやってるみたいけど、どういう仕組みで順番が決まってるのかはわからなかった」