tam_sugano
(tam_sugano)
September 16, 2015, 12:30pm
1
はじめまして。
最近UnrealEngineを利用し始めたものです。
表題の通り、パーティクルシステムからのDynamicParameterを使用したマテリアルパラメーターの操作がうまくいかず苦労しています。
解決方法のご教授をいただけないでしょうか。
UnrealEditor バージョン: 4.8.3-0+++depot+UE4-Releases+4.8
以下の手順でデータの作成をしています。
DynamicParameterを使い、色を変えられるマテリアルを作成します。
新規作成したエミッタに先ほど作成した(1)のマテリアルを適用します。さらに、EmitterDurationを3.0にしてエミッタの時間を延ばします。
エミッタにDynamicモジュールを追加し、Use Emitter TimeをチェックしてParam0を時間0.0~3.0の間で変化するようにします。
この手順で作成したデータを確認しますと、
0.0~1.0秒の間は色の変化が起こりますが、以降の1.0~3.0秒の間は変化が起こりません。
作成意図としてはエミッタ時間0.0~3.0秒の間で変化が起こってほしいのですが、何か良い解決方法はあるでしょうか。
宜しくお願い致します。
こちらDynamic ParameterのParam1自体は、3秒の経過中に合わせて0.0〜3.0まで変化しているものと思います。なのですが、LerpのAlphaは0.0〜1.0の範囲での変化に対してA〜Bへと変化するため、Alphaが1.0を超えた場合も出力はBの値で止まっているように見えているものと思います。
InValを1.0にしてみると、3秒間の間に0.0〜1.0まで変化する事が確認いただけるのではと思います。
マテリアルの挙動が不可解な場合の一番簡単なデバッグ方法は、エミッシブカラーやベースカラーにDebug用のノードを繋いでいただいて、Debug用のノードに結果の怪しい値を入れていただくと分かりやすいかと思います。
よろしくお願いします。
nullponull
(nullponull)
September 17, 2015, 2:30pm
3
0~1 秒で想定している前後の変化が起こっているならそれは仕様です。
3秒かけて0~1の値を変化させるようにタイムライン等を使って見てはどうでしょう?
takanyan7
(takanyan7)
September 18, 2015, 3:39pm
4
問題になっている部分は、Use Emitter Timeの設定による、(重要
パーティクルシステム全体のスタート時間を使用する時
InValに入る値が1Durationに設定した時は問題ないのですが、
1Duration以上の設定にするとその値が入っていない様子なんですよね?
こちらでも確認しました、自分はバグなような気がします。
追記(判り難いので書き直した。
takanyan7
(takanyan7)
September 18, 2015, 3:39pm
5
追記
4.9のバージョンでも同様に起きている様子です。
HUB書き込み失敗多い。
tam_sugano
(tam_sugano)
September 18, 2015, 3:40pm
6
ご回答ありがとうございます。
Colorですと判別がしにくいため、UV座標をスクロールする形で確認できるようにマテリアルを変更致しました。
結果はうまくいきませんでした。InValを変更するなどしてみましたが、どうにも良い結果が得られません。
Use Emitter Timeのチェックを外しますと、ご指摘いただいた通り InVal 0.0~1.0の間の出力が LifeTime に合わせてきちんと動作していることを確認致しましたが、
エミッタ時間をベースにしたマテリアルアニメーションを作成したいので、望む動作とは少し違います。
勉強不足なため、まだどこか勘違いをしているかもしれません。いただいた情報をもとに方法を探しつつ、別アプローチも検討致します。
tam_sugano
(tam_sugano)
September 18, 2015, 3:40pm
7
ご回答ありがとうございます。
0.0秒から1.0秒の間では確かに変化が起こっています。ですがカーブの InVal を変更して1.0以上に動かしても1.0秒以降の変化がやはり起こりません。
1.0秒以降は、1.0秒の結果がそのまま出力され続けているように見えます。
Use Emitter Timeをチェックしない場合は By life 系モジュールのように Life Time に合わせて0.0~1.0の出力が得られるので、
はじめはエミッタ時間に合わせた結果が得られるのかと考えていましたが、どうも違うようです。
まだまだ勉強不足なので、見落としがないか調べてみようと思います。
tam_sugano
(tam_sugano)
September 24, 2015, 7:15am
8
コメントありがとうございます。
返信が大変遅くなりました。申し訳ありません。
パーティクルシステムだけではどうにもうまくいかないので、ブループリントから値を渡すことでうまく動かすことができるようになりました。
とりあえずこの方法で進めたいと思います。