###はじめまして
Qiita初めてなので、ちょっとビビりながら書いてます。実は私、プログラマではないので、
このような場所に投稿してよいものか、正直いまだに躊躇いがあります。なのでシッタカブッタような生意気なこと書くかもしれません。デザイナー視点ではありますがUE4への愛を綴っていければと思っておりますので、お手柔らかにお願いします。
###複数のマテリアルパラメータを同時に触る
キャラクターなどのメッシュにはマテリアルが複数アサインされていることがほとんど。今回はアイテムを拾った時などに、キャラクターが一瞬光ったりするのを作ってて発見したので、メモっておくことにします。
同じ共通のパラメータ名にしておくと set *** Parameter Value のノードがひとつで済むというものです。
既出でしたらすみません。
Grayちゃんのデータで試しました。 Grayちゃん公式サイト: http://www.gray-chan.com/
まずプロジェクトを読み込んでメッシュをエディタで開くと、マテリアルが5つほど付いています。
名前でなんとなくアタリをつけて、Element の 1、2、4 番を触ることにします。
下のようなパラメータを仕込みました。
モデルのフチを黄色く光らせようかと。
Emissive Color のピンがちょうど空いていたので、そこにつなぎました。
調整の効率を考えたらマテリアルファンクションとか、マテリアルパラメータコレクションにした方が良さそう。
とりあえず、これと同じノードを全部で3つのマテリアルに仕込みました。コピペなので簡単です。
getget というのが、Scalarパラメータの名前です。後からタイムラインで値を渡します。
で、GrayちゃんのEventGraphに、カスタムイベントをおいてタイムラインノードをつなぎ、パラメータをいじるためのノードをつなぎます。
Target に ”Mesh”オブジェクトをつないでますが、これは Set ScalarParameter Value on Materialsノード を取り出すときにくっついてきます。
コンポーネントとしてブループリントが抱えているのを拾ってるだけだと思うけど、こういう気遣いがとても好きですUE4。
よくみたら、この Set Scalar Parameter ~ の最後が Materials と 複数形になってるんですよね。
これだけで、3つのマテリアルに仕込んだパラメーターが同時に変化してくれます。
この便利な Set Scalar Parameter~ ですが、古いアンリアルエンジンのバージョン(4.16以前)だと、まとめて触ること自体は可能でしたが、Material Instance Dynamic を使う必要があったりして、ちょっと面倒でした。
ConstructionScript で、MeshのマテリアルをMaterialInstanceDynamic化。
てなわけで、Qiita初体験でしたが、Wikiみたいな書式で楽しいですね。もっといろいろ書いていきたいです。とりあえずアドカレ目指して頑張ろう。