ememan0912
(ememan0912)
1
http://unrealengine.hatenablog.com/entry/2015/07/12/220000
こちらのサイトを参考に、ダメージを受けるとキャラクターが点滅するような処理を作りたいのですが上手くいきません。
キャラクターのマテリアル内にDamageというオパシティマスクのパラメータを設定し、そのアルファ値を変更することでキャラクターを透明にしようとしています。しかしキャラクターが複数のマテリアルを使っているので、そのすべてに同じ処理をさせなければいけません。ForLoopでMaterial変数内に格納してあるマテリアルを読み込んでやってみましたが、これではできませんでした。
画像ではテスト用にキー入力で実行するようにしています。
Might
(Might)
2
こんにちは。
質問を要約すると、
「一つのマテリアルインスタンスしか点滅しない。複数のマテリアルインスタンスを点滅させたい。」
という事でしょうか?それであれば、下記のようにつないでみてはどうでしょう?
※下記Mキーではなく1キーで確認
もしそういった意図でないのであれば、
点滅しない原因を切り分ける必要があります。
ブループリント上でブレイクポイントを仕掛けた後に実行することで、
その部分に到達したか、また値が正しいかを確認することが可能なので、一度確認してみてはどうでしょう。
(恐らく範囲を狭めないと他の方も回答出来ないと思います。)
- Mキーの入力が効いていない
→ そもそもPossesが出来ていない。PawnではなくActorにMキーの入力処理を入れているなど。
- Mキー入力後ApplyColorイベントに何故かイベント遷移が出来ていない。
- タイムラインがオートプレイとなっており、Mキーを押下した時には既にタイムラインが終了している。→ Playではなく、Play from startに線を繋げタイムライン内の「オートプレイ」チェックが入っている場合は外す。ブループリントのスクリーンショットを見る限りは自動再生されてそう。
あとはDamagedMaterialsに正しくマテリアルインスタンスが設定されていない、
マテリアルが正しくない、タイムラインに設定した値が正しくない、あたりだと思います。
Might
(Might)
3
マテリアルとタイムラインも置いておきますね。
α値しか使っていないのでSetVectorParameterValueじゃなくてSetScalarParameterValueの方がいいかもしれませんね。。。
ememan0912
(ememan0912)
4
回答ありがとうございます。貼っていただいた画像を参考に頑張ってみましたが、どうにも私には理解しきれず上手動いてくれませんでした。まだ私には原因を探るほどの能力が無いので、また次回使う機会があるときに参考にさせていただきます。