moyasiエフェクト館

主にエフェクト関係の記事を上げていこうかと思います。


エフェクトに関係する記事上げてきます
エフェクト関係の記事の内容は緩く募集中
自分がわかる範囲であれば書いていこうかなと。

【UE4】デカールエフェクト、基礎編

f:id:tktknkyo:20210504161850p:plain

Verは4.25です

 

【初めに】

今回はデカールエフェクトについてです。

いろいろ詰めると長くなるのが解りきっているので、ある程度まとめて記事を分けていきます、ご了承ください。

 

そもそもまずデカールエフェクトについて、というよりも「デカール」について

 

f:id:tktknkyo:20210504162458p:plain

アクタを配置、ビジュアルエフェクト、の中にあるデカールをレベル上に配置するとこのようになると思います。

マテリアルを上から平行投影でシールのように貼り付ける。

大きいメリットとして、地形の形状にそって描画をすることが出来ること。

 

これにより、地面から少し浮いてしまうことや、地面の中に突き刺さってしまう

という事を回避できます。

 

エフェクトとしての用途であれば、武器を地面に叩きつけたときの地割れ、ひび割れであったり

キャラクターの足元に出る魔法陣などが代表的です。

 

 

なお、今回の記事はBPでの制御をメインとしています。

 

 

【準備】

まずは必要なものの準備として、デカール用のマテリアルとBPを作ります。

 

f:id:tktknkyo:20210504163336p:plain

マテリアル側での準備としては非常にシンプルで

Material Domainを「Deferred Decal」に

Blend Modeは「Translusent」にします

BlendModeはこれでないといけないわけではないですが、今回はTranslusentにしておきます。

 

f:id:tktknkyo:20210504163647p:plain

また、何も設定していないとそもそもデカールが見えないのでなにか入れておきましょう。

また名前を指定して制御するので

RGBの色を「Color」アルファを「Alpha」にしておきます。

また動かす部分はScaleParameterやVectorParameterにしておきましょう

今回は色とアルファを制御できるようにしています。

 

f:id:tktknkyo:20210504164435p:plain

色とか数値は弄っていますが、この時点でそのままマテリアルをレベルに配置できます

確認のために一旦此処で配置してみるのが良いかと思います。

 

 

次にBPです

デカール用のBPを検索して作っても良いのですが

f:id:tktknkyo:20210504164952p:plain

レベルに配置したマテリアルから、このボタンを押してBpを作ってしまうのが、検索の手間も省けて早いと思います。

検索して出す場合はDecalと打つと直ぐ出てきます。

 

 

f:id:tktknkyo:20210504165311p:plain

ここで作られたBPをそのままレベルに配置すると、このようになります。

青の大きい矢印がデカールを貼る向きであり

それが横に向いています、環境によるものかもしれませんが...

 

準備としてはここまでとなります。

 

 

【各種制御】

ここからは実際に発生させていきます

 

f:id:tktknkyo:20210504170627p:plain

デカール用のBPを発生させる処理自体はSpawnActorのActorにデカール用のBPを設定します。

大きさや角度は今回は固定にしていますが、発生位置はプレイヤーキャラの座標をとってきています。

 

発生そのものは至ってシンプル

 

f:id:tktknkyo:20210504172313p:plain

次にMIDによる調整

SpawnActorのReturn Valueから検索していくとスムーズにノードが出てくると思います。

右側にある「Set Scalar parameter Value」などで、マテリアル側で設定している数値を調整出来ます

「Parameter name」の名前で判断するので、マテリアル側で付けた名前は覚えておきましょう。

「Create Dynamic Material Instance」ノードからでないと

「Set Scalar parameter Value」などには繋げれないのも注意です。

 

この時点で、色や透明度をBP上で設定できるようになりました。

 

 

f:id:tktknkyo:20210504173538p:plain

次は発生から消えるまでの処理

 

一番最初にSequenceというノードが増えていますが

これは単純に上から順番に処理を流しているだけです。

やっている事としては、Alphaを制御している数値をタイムラインで調整している、という事です。

 

注意として、PlayではなくPlay from Startに繋ぐという事

Playは、前回止まったところからの再スタートとなるので、基本的にはPlay from Startに

そしてUpdateは何度も処理が発生する

ここからの出力をSpawnActorに繋いでしまうと、大量のデカールが出続けることになるので、意図しない場合は注意したほうがよいです。

 

最後に、FinishedからDestoy Actorで、タイムラインが終わったらデカールを消す処理を入れて完成です。

 

 

今回はここまでとなります、ここまででデカールエフェクトとして作れるとは思います。

細かい制御周りはまた次の記事で書ければなと。