今日やったこと~血が数秒後、フェードアウトする処理~
敵を攻撃した時に出た(スポーンした)返り血が、数秒後に消える処理です。
まず「BP_Blood」という名のBPを作りました。
StaticMeshで「Plane」を選択し、マテリアルは血のマテリアルを設定しました。
マテリアルはこんな感じです。
次に「BP_Blood」に以下の処理を組みます。
CreateDynamicMaterialInstanceで血のマテリアルのインスタンスを変数に格納。「DMI」と命名。
タイムラインでフェードアウトの調整を行ってます。
タイムラインの最大秒数は「5秒」にしてあります。「0秒」の値が「1」、「5秒」が「0」になってます。
タイムラインの値をSetScalarParameterValueのValueに渡してます。
ParameterValueは「Opasity」を指定してます。
つまり、BP_Bloodがスポーンされたとき、タイムラインが呼び出され、値が「1」から「0」になっていき、5秒経過するとOpasityの値が完全に「0」になり、血がフェードアウトするような処理にしてあるわけです。
プレイヤーのBPです。
「DamageEffect」という名のインターフェイスで敵に処理を送ってます。
プレイヤーの武器の当たり判定とオーバーラップしたらインターフェイスに処理が流れるわけです。
(DamageEffectインターフェイスにあるLocationピンは気にしなくっていいですw)
敵側のBPです。
イベントDamageEffectインターフェイスが呼び出され、SpawnActorFromClassで「BP_Blood」をスポーンさせてます。
あとはいろいろScaleやらスポーン位置やらをいじってます。
実際やってみると・・・
しっかり5秒経ったら血が綺麗にフェードアウトしてますね!
すごい些細な処理ですがw
それではまた!^^ノシ