妹でもわかるUnrealEngine4

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

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

マテリアル

ポストプロセスマテリアル製ディフュージョンフィルタ #UE4

この記事は「Unreal Engine 4 (UE4) その2 Advent Calendar 2017」の5日目として書いたものですqiita.com「今回はアドベントカレンダー用ということで、先日研究していたディフュージョンフィルタの作り方を、ちょっと忘れたので思い出しながら、改良したも…

サブサーフェスはムーバブルなライトをあてた時に本領発揮する

imoue.hatenablog.com「昨日の記事で肝心なこと書くの忘れてたんだけど、ムーバブルのライトを当てた時じゃないとああいう風にはならない」「色々実験したんだけど、ライトがムーバブルじゃないと、普通のDefaultLitとあんまり変わらない表示になった。光が…

サブサーフェス シェーディングの実験

「今日はサブサーフェス シェーディング(Subsurface)について。なんとなく雰囲気は知ってるど、実際どうなってるのはよくわかってなかった物」妹「どういう雰囲気なの?」「サブサーフェス スキャタリングという、物体内部で光が反射した場合の色を再現する…

ディフュージョンフィルタを作る(5) 本当にこれで合ってるのか確認する

「先日作ったディフュージョンフィルタなんだけど、本当にこれがディフュージョンフィルタっぽくなってるのかわからない、という問題が残っている」妹「わかんないの?」「なんか話にちらっと聞いただけだから……なので今日はもう少し真面目に確認する」www.p…

ディフュージョンフィルタを作る(4) 負荷を調べる

「あんまり速度のこと考えずに作ったポストプロセルマテリアルだから、最適化しようかとも思ったんだけど、下手にいじくるとかえって遅くなることがある」妹「速くなるようにしたのに遅くなるの?」「最近は内部的なアレコレで高速化してるから、よかれと思…

ディフュージョンフィルタを作る(3) さらにふんわり加工で

ディフュージョンフィルタ3号機 元の状態「さらに改良することで、かなりふんわりさせることに成功した」 /* 初期値。ループの中で増やしていく */ float4 total = SceneTextureLookup(uv, 14, true); float total_alpha = 1;/* ループ開始。表示中のピクセ…

ディフュージョンフィルタを作る(2) 輪郭が丸くなるように調整

「昨日作ってたポストプロセスマテリアルの……というか、ポストプロセスマテリアルで作ってるって書いてなかった気がしてきたけど、とにかくそれを改良した」 100% 50% 元の状態カスタムノードの中身 /* 初期値。ループの中で増やしていく */ float4 total = …

ディフュージョンフィルタを作る(1)

「AnswerHubでディフュージョンフィルタを作る方法はないか? という質問を見かけたんだけど、ディフュージョンフィルタが何かわからなくて調べていた」妹「なんだったの?」「それがよくわからないというか、細かい実装方法自体がバラバラで。基本的には明…

3Dウィジェットにはポストプロセスマテリアルが効くし、ライトもあてられる

「3Dウィジェットってポストプロセスって効くのかな……と思って試してみたら、特に何もしなくても普通に効いた」妹「普通のウィジェットは駄目だったよね。なんというか、一番手前の手前に来る感じだし」「そういうモードもあるよ」「Widgetコンポーネントの…

スタティックメッシュにくっつけた、マテリアルのテクスチャを傾ける方法

妹「マテリアルっていうのは、こう、傾かないもんなのかな?」「と、いいますと」妹「スタティックメッシュにマテリアルつけて、そしたらこう木目が思ってたのと違う方法だったんだよ」「スタティックメッシュごと回転させるというのが一番無難な方法だけど…

MODO修行編(3) マテリアルの設定方法?

「引き続き公式コラムのモデリングを真似してるんだけど、最後に適当にマテリアルを設定しましょうってあって、その方法がどこに書いてあるのかよくわからない……」妹「材質設定出来ないのはだめなのでは」「出来ないんじゃなくて、どこに書いてあるのかわか…

シェーダーコンパイルはコア数が多いCPUだと速い。たぶん速い

「新しいUE4プロジェクトを作ったらシェーダーコンパイルが始まったから、ちょっとリソースモニターで見てみたところ、16個のコアが全部使い切られてた。数字も結構素早く減ってるから、今までよりかなり速くなってるみたい」妹「どれぐらい速くなったの?」…

UMGウィジェットにポストプロセスは効かない

「ウィジェットを配置してて、ふと気になったので確認したんだけど、ウィジェットの表示にポストプロセスは効かないみたい。2値化を無視して元の色が出てくる」妹「それはポストプロセスマテリアルだけ? それともポストプロセスっぽいの全部?」「たぶん全…

ポストプロセスマテリアルによる簡易LUT

「ルックアップテーブル(LUT)による色変換で、色々情報をもらったんだけど、今のところ中間色が出ないようなLUTを使う方法は見つかってなくて、それでポストプロセスの標準機能ではなく、マテリアルでそういう処理を組めばいいのでは? と思ってやってみたの…

ポストプロセスマテリアルを使った2値化+輪郭線

「LUTによる2値化は上手く行かなかったので、ポストプロセスマテリアルで作ったみた」妹「白黒じゃないんだ」「原理的にはこれ何色でもいいから、今回は淡い色合いにして、それにプラスして先日作った輪郭線のマテリアルも入れた。どっちもタイミングの設定…

ポストプロセス LUTの弱点・階調化フィルタ

「昨日はピクセルの場所に関係ないフィルタならいけるって書いちゃったけど、厳密に言うとそれでも駄目なやつがある。例えば上のスクリーンショットは2値化フィルタを書けたLUTを使ってるんだけど」妹「2値になってないね。グレーがいっぱいある」「グレー部…

ポストプロセスのカラーグレーディング

「ポストプロセスは色々面白そうなので、引き続き調査中」妹「これは画面の色調を変えたの?」「いやこれは変えない設定にしたつもりなのに、何故か変わっちゃってる件の調査」docs.unrealengine.com「この中のルックアップテーブル(LUT)というやつを試して…

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

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

マテリアルによるトゥーンアウトライン研究(9) 外側にアウトライン生成するポストプロセスマテリアル

「研究の結果、だいたい納得のいくマテリアルが出来た」妹「これは外側に線入ってるの?」「多分そうなってる……と思う。虫眼鏡でじっくり調べたわけじゃないけど、線を太くしても中のキャラクタの大きさ変わらなかったから上手くいってるはず」ポストプロセ…

マテリアルによるトゥーンアウトライン研究(8) 内側と外側のどちらに線を入れるか

妹「線を内側に出すのと外側に出すのって、そんなに違うものなの? お絵かきソフトとかでやる時はあんまり変わんなかったと思うんだけど」「内側と外側というのは、より手前にある物体の表面に線があるか、奥にある物体の表面に線があるかという違いなんだけ…

マテリアルによるトゥーンアウトライン研究(7) 先行事例の研究

qiita.com「UE4を使ったトゥーンレンダリング(ノンフォトリアル)の事例はいくつかあるんだけど、説明が日本語で、かつ導入が簡単なのがEpicのシモダさんが作った物。ポストプロセスマテリアルがすぐ使える状態で公開されてる」「これは線がみやすいように…

マテリアルによるトゥーンアウトライン研究(6) 法線データの参照

「アウトラインを出す方法には、深度(奥行き)を使った方法の他に、法線を使った方法もあるらしい。法線が急に大きく変化してる場所は、ポリゴンの角度がきつい場所なんだから、そこに線を入れとけばいいという考え方」妹「法線ってなんだっけ? 聞いたこと…

マテリアルによるトゥーンアウトライン研究(5) シンプルすぎるアウトライン表示

「まずはサンプルのマテリアルを調べようかと思ったけど、必要のなさそうな部分がかなりあってわかりにくいかったら、まずは細かいことを考えずに深度から単純に線を引くようなマテリアルを作ってみた」妹「線でてないとこが結構あるね」「深度差のとこを100…

マテリアルによるトゥーンアウトライン研究(4) サンプルのマテリアルを別プロジェクトに入れてみる

「しばらく脱線してたけど、今日からはまたトゥーンアウトラインの方をやる予定」前回の記事 imoue.hatenablog.com「まずはStylizedRenderingのポストプロセスマテリアルを、テンプレートプロジェクトに移行する。これで線がどういう感じになるかの確認」「…

色んなポストプロセスマテリアルを見て回る

「ラジアルブラーのポストプロセスマテリアルは上手くいったけど、他にももっと色々良いのあるんじゃないかと思って調べてみた」docs.unrealengine.com unrealengine.hatenablog.com「まずマテリアルを使わなくても、標準のポストプロセスで出来ること、とい…

ポストプロセスマテリアルで中心以外をぼかす(8) マテリアルブループリント版のラジアルブラー

「妹がラジアルブラーのやつでもう少し綺麗にぼかしたやつが欲しいというので、マテリアルブループリントに移植したやつを作った。なかなか大変だった」妹「いいじゃんいいじゃん、こういう感じ」「今回は見栄えをよくするために、サンプルのSunTempleプロジ…

マテリアル用デバッグ命令

「マテリアルを編集してると、この計算合ってるのかな? と不安になることがあるんだけど、そういう時に便利なのがDebugなんとかという命令。例えばDebugFloat2Valueノードと使うと、Vector2の数字が画面に表示できる。ウィンドウが小さいと上手く表示されな…

ポストプロセスマテリアルで中心以外をぼかす(7) ラジアルブラーでぼかす

「海外フォーラムでラジアルブラーという、中心から広がるようなボカシ方の、カスタムマテリアルを見つけたから、今日はそれを試してみた。中心からだんだんボケていくというのは、こっちのイメージが近いんじゃないかと思って」妹「それはいいと思うけど、…

ポストプロセスマテリアルで中心以外をぼかす(6) Customノードでぼかしをかける

妹「こりゃ妹にはわかりませんな……」「やってることはマテリアルブループリントで作ってたのと同じで、周囲81ピクセルの色を均等に混ぜるやり方。昨日までのはプログラムといっても1行だけだったけど、ループをさせるとなるとなかなかそうもいかなくて。ブ…

ポストプロセスマテリアルで中心以外をぼかす(5) CustomノードからSceneTexture:PostProcessInput0を取得する

「とりあえずCustomノードから、PostProcessInput0の数字を調べることに成功した。そのままだとちゃんと計算出来てるのか、それともマテリアルが無効になってるのかわからなかったから、とりあえず✕3して、明るくなるようにした」SceneTextureLookup(uv, 14,…