x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Office Holiday

Epic Games' offices will be on holiday from June 22nd to July 7th. During this period support will be limited. Our offices will reopen on Monday, July 8th. 

マテリアルインスタンスのパラメータをウィジェットで変更できるようにしたい

大変お世話になっております。

表題のとおり、マテリアルなどに作成したスカラーパラメータを、プレイゲーム中にウィジェットなどで数値を変更して、動的に見た目の変化を確認できるようにしたいのですが、マテリアルのスカラーパラメータをレベルBPなどに読み込み及び値の設定をする手段はありますでしょうか。

マテリアルパラメータコレクションを使用して同様の動作はできたので、これで実装するかと思ったところ、作ってもらっていたマテリアルが、コレクションを使用していないパラメータがほとんどだったので、これを個別にコレクションに置き換えるのは骨が折れそうだ。何かいいやり方はないかと思い、質問させていただきました。 alt text

ご存知の方いらっしゃいましたらお伺いできると幸いです。

毎度大変申し訳ありませんがよろしくお願いいたします。

Product Version: UE 4.13
Tags:
more ▼

asked Mar 22 '17 at 08:32 AM in Japanese

avatar image

itanorik
43 14 9 17

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

スカラ/ベクタパラメータを弄る際は、動的マテリアルインスタンス(MaterialInstanceDynamic)を利用します。

元となるマテリアルから下図の様に動的マテリアルインスタンスを生成して、そこから各パラメータにアクセ スします。

メッシュ等に割り当てる場合はコンストラクションスクリプトで動的マテリアルインスタンスに差し替えるのが良いかと思います。

alt text

more ▼

answered Mar 22 '17 at 03:32 PM

avatar image

motayoshi.san
751 30 3 8

avatar image itanorik Mar 23 '17 at 02:00 AM

画像つきでのご説明ありがとうございます!ノードでダイナミックに変換できるのですね。勉強になります。

理解が足らずお恥ずかしいのですが、運用につきまして、

①動的変化させたいパラメータ分記載いただきました画像のノード群を作成して、それぞれのParameterNameに変更する。

②マテリアルパラメータコレクションを作成して、そこに先ほど入力したParameterNameをそれぞれ入力し保存。

③運用先でMateriallibraryがターゲットのSetScalarParameterValueで呼び出し、任意の設定をしていく。

alt text といった手順でよろしかったでしょうか。私の理解が足らずお手を煩わせてしまい申し訳ありません。お時間ございましたらお伺いできると幸いです。

以上よろしくお願いいたします。

avatar image motayoshi.san Mar 23 '17 at 04:44 AM

ちょっと例としては雑だったので、ThridPersonTemplateで一例を。

まずベクタパラメータを持つマテリアルを用意します。(パラメータ名はColorとする) alt text

次にThirdPersonCharacterブループリントのConstructionScriptでマテリアルの差し替えを行う。 alt text

Jumpボタンが押される度にスカラパラメータにアクセスして色を替える。 alt text

これがスカラ/ベクタパラメータにアクセスする一連の流れです。

コレクションに関しては一意見なんですが、本当にアプリ全体で必要な機能ではない限り利用しません。

利用することになったとしても本当に必要なのか慎重に考えます。

dm00.jpg (57.9 kB)
dm01.jpg (47.8 kB)
dm02.jpg (77.9 kB)
avatar image itanorik Mar 23 '17 at 06:52 AM

画像つきでとてもわかりやすくご説明いただきありがとうございます! ダイナミックはコレクションでないと操作できないと思い込んでいましたので、今回やり方をお伺いできて大変勉強になりました。

コレクションはやはり同名の全パラメータに影響を及ぼすため、好まれないということでしょうか…ともあれ教えていただいた手法のほうがアセットのやり取りが少なくなり分かりやすいと思いましたので、さっそくこちらで作業を進めていこうかと思います。

重ねてになりますがお礼申し上げます。この度はご丁寧にありがとうございました。

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question