妹でもわかるUnrealEngine4

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

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

Paper2D用のマテリアルを作る(4) StaticSwitchParameterで複数の処理を分岐させる

www.slideshare.net

「先日UE4のマテリアルの勉強会があったらしいんだけど、これによるとStaticSwitchParameterを乱用すると、マテリアルのサイズがめちゃくちゃ増えたり、シェーダーコンパイルに時間かかったりして大変らしいんだけど、StaticSwitchParameterをまだ使ったことがなかったので、使ってみた」

f:id:una_unagi:20170124232756p:plain
f:id:una_unagi:20170124232801p:plain
f:id:una_unagi:20170124233133p:plain

「ちょっと前に探してたマテリアル版Branchノードっぽい。昨日作ったマテリアルだと、元のままの色で表示っていうのは出来なくなるから、別マテリアルで作ろうかと思ってたんだけど、これで分岐出来そうだったのでやってみた。同じマテリアルから作ったマテリアルインスタンスだけど、片方だけカラーチェンジの処理が効いてるので成功」

妹「でもそれやると大変なことになるって話だったのでは?」

「普通のパラメータだとマテリアルは1つ分で済むけど、StaticSwitchParameterは2つ別々のマテリアルを作るのと同じ状態になってしまって、容量節約してるつもりなのに出来てない場合があるという話だった。今回は元々2つ作るつもりだったならあんまり関係なさそう」

妹「2つ作っちゃ駄目なの?」

「これだけで終わるならどっちでもいいんだけど、これにダメージで点滅する処理とかも付け加えられるようにしようと思うと、編集するマテリアルは1個の方が楽じゃないかと思う。無理して1個にするとかえってやりにくいだろうけど」

f:id:una_unagi:20170124233814p:plain

「StaticSwitchParameterとは別に、StaticSwitchというのもある。こっちの方がBranchの動作には近い。ValueがTrueなのかFlaseなのか、毎回調べないと駄目だからStaticSwitchParameterより遅いだろうけど、その分柔軟性がある。ifとかも組み合わせると、輝度が高い部分だけ計算方式を変えるとか、かなり高度なCG処理も出来そう」