2019.12.11こんにちは。制作部プログラマーの村田です。Engine4(以下UE4)のプチ便利機能についてお届けしたいと思います。※UE4のバージョンは4.23.1での確認となります。CustomizedUVsとはCustomizedUVs自体の説明をする前に↓のようなノードを作成した場合、Shaderコードはどうなると思いますか?↓こうなります。...}Shaderファイル名を見てもらえればわかるかと思いますが、、PixelShaderで計算が行われています。今回はテストで作成したものなので、内容もシンプルで計算コストもそこまで高くはありませんが、こういったPixelShaderの計算コストをVertexShaderに逃がすことをできるのがCustomizedUVsです。CustomizedUVsを利用した形にさっきのマテリアルノードを置き換えると↓のようになります。...}VertexShaderは↓こうなります。Local4;}先程PixelShaderで行われていた計算がVertexShaderに移っているのがわかるかと思います。UV(X)」が追加されます。(Xは格納するTEXCOORD番号)格納したCustomizedUVを使う時は通常通り「TexCoord」ノードを使用すればOKです。CustomizedUVsの弱点お手軽にピクセル負荷を減らせるCustomizedUVsですが、勿論弱点もあります。当たり前ですが、頂点負荷がかかります。最適化として使用する場合は、必ず事前に頂点負荷なのかピクセル負荷なのかの切り分けは行いましょう。頂点で計算を行うことで大きく見た目が変わる可能性があります。頂点間の値が線形で補間されるため↓のようなことが起こります。UV値を2乗して出力した結果です。左がPixelShaderで2乗した結果。対して右2つがVertexShaderでUV値を2乗した結果です。真ん中と右のPlaneの結果の違いは頂点数の違いによるものです。右のPlaneでは頂点数が4つなので、2乗の計算を行っても線形補間されてしまい、通常のUV値と変わらないものが出力されてしまっています。真ん中のPlaneは右のPlaneに比べて頂点数が多いため、左のPlaneに近い出力結果となっていますがブロック状の境目がかなり目立ってしまっています。いった問題があるので、使用場面はしっかり見極めましょう。使いこなせれば処理負荷の削減に繋がる便利な機能ですので、是非活用してみてください。株式会社ロジカルビートは一切の責任を負いません。コメントをキャンセルメールアドレスが公開されることはありません。understrap.com。