moyasiエフェクト館

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


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

【Niagara】レベルで正しくエフェクトを再生させる為に

f:id:tktknkyo:20190915210744p:plain

Verは4.23です

 

【初めに】

 

記事のタイトルに悩みましたが、所謂サムネイルみたいになってしまう

という時の対処みたなものです。

今回は最近の記事より初歩的な内容だと思います。

今更と思われるかもしれませんが、ちゃんと記事として書いてなかったので...

 

ただし、今回はアニメーション通知でのNiagaraのエフェクトを発生させる内容については触れません、そこはご了承を。

この記事の続きみたいな感じで書くのを予定しています。

 

 

f:id:tktknkyo:20190915211726p:plain

例えば、BPで攻撃ボタンを押すと、剣を振るモーションが再生され

エフェクトが発生する

 

という処理をこの用に作ったとします。

f:id:tktknkyo:20190915211859p:plain

このBPは、操作するプレイヤーのBPと仮定します

なので、プレイヤーの座標と角度を取得して

それを使ってエフェクトを再生します。

なお、Scaleの接続がありません。

(アニメーション通知で再生する場合にはあります)

 

f:id:tktknkyo:20190915212105p:plainf:id:tktknkyo:20190915212144p:plain

同じ条件で、プレイヤーを違う位置、違う向きで再生しても。

エフェクトの位置と向きが固定されています。

 

【座標、角度の指定】

 

Niagaraのエフェクトを発生させる「SpawnSystematLocation」

LocationとRotationの接続がありますが

これは発生させるエフェクトそのものを動かす、という内容ではありません

f:id:tktknkyo:20190915214002p:plain

ここにあるパラメータの

Locationの接続は

「Engine.Owner.Position」

Rotationの接続は

「Engine.Owner.Rotation」

に情報が入ってきます。

 

Niagaraでの座標を指定する「Particle.Position」

これを新しく作ってときに、最初から設定されているので

こちらは、特に気にしてなくても、座標がずれること自体は、少ないと思います。

※古いVerでは、自分で設定する必要があります。

 

「Engine.Owner.Position」はVectorではなくVector4となります。

これはRotationのVector型が、クォータニオンのVector4型に自動的に変換された

と考えると解りやすいと思います。

f:id:tktknkyo:20190915215650p:plain


メッシュ型の場合

角度を指定するのは「Particles.MeshOrientation」というパラメータですが

これがVector4のクォタニオンを指定するので

ここに直接指定してあげると。

角度を綺麗に変換してくれます。

 

【角度を使った座標変換】

 

f:id:tktknkyo:20190915220654p:plainf:id:tktknkyo:20190915220753p:plain

次はこういう場合の対処です。

 

f:id:tktknkyo:20190915221142p:plain

 

座標の指定はこうなっています。

キャラの前方にパーティクルを出そうとして

キャラの座標にY軸+0~500の位置に出したとしても

この座標には、キャラの向きの計算が入っていないので、キャラの向きを無視した方向に出てきてしまいます。

 

f:id:tktknkyo:20190915221556p:plain

 

なので、この座標自体を、キャラの角度からとってきた

角度を使って回します

(キャラの前方に出すのはY軸ではなくX軸でした...)

 

こうする事で、キャラ座標からX軸0~500の座標を、キャラの向きで回した結果が。

発生位置となりました。

 

f:id:tktknkyo:20190915222242p:plainf:id:tktknkyo:20190915222328p:plain

 

今回はここまでとなります。

Niagaraでの基本的な内容だと思います。

 

アニメーション通知関係は、また記事書いていきたいと思います。