今日やったこと~血が数秒後、フェードアウトする処理~

敵を攻撃した時に出た(スポーンした)返り血が、数秒後に消える処理です。

 

まず「BP_Blood」という名のBPを作りました。

StaticMeshで「Plane」を選択し、マテリアルは血のマテリアルを設定しました。

f:id:Free_Gamer:20180702030106p:plain

マテリアルはこんな感じです。

f:id:Free_Gamer:20180702030128p:plain

 

次に「BP_Blood」に以下の処理を組みます。

f:id:Free_Gamer:20180702030514p:plain

CreateDynamicMaterialInstanceで血のマテリアルのインスタンスを変数に格納。「DMI」と命名。

タイムラインでフェードアウトの調整を行ってます。

f:id:Free_Gamer:20180702030821p:plain

タイムラインの最大秒数は「5秒」にしてあります。「0秒」の値が「1」、「5秒」が「0」になってます。

タイムラインの値をSetScalarParameterValueのValueに渡してます。

ParameterValueは「Opasity」を指定してます。

f:id:Free_Gamer:20180702031237p:plain

つまり、BP_Bloodがスポーンされたとき、タイムラインが呼び出され、値が「1」から「0」になっていき、5秒経過するとOpasityの値が完全に「0」になり、血がフェードアウトするような処理にしてあるわけです。

 

プレイヤーのBPです。

f:id:Free_Gamer:20180702031908p:plain

「DamageEffect」という名のインターフェイスで敵に処理を送ってます。

プレイヤーの武器の当たり判定とオーバーラップしたらインターフェイスに処理が流れるわけです。

(DamageEffectインターフェイスにあるLocationピンは気にしなくっていいですw)

 

敵側のBPです。

f:id:Free_Gamer:20180702032112p:plain

イベントDamageEffectインターフェイスが呼び出され、SpawnActorFromClassで「BP_Blood」をスポーンさせてます。

あとはいろいろScaleやらスポーン位置やらをいじってます。

 

実際やってみると・・・

youtu.be

しっかり5秒経ったら血が綺麗にフェードアウトしてますね!

 

すごい些細な処理ですがw

 

それではまた!^^ノシ