はじめに
NiagaraでRibbon Rendererを追加した時、デフォルトだと常にカメラの方を向くようになっています。
これを、Niagara Systemの向きのローカル座標系に合わせて一定の方向に向かせたいと思うことはよくあると思いますが、意外とやり方がパッとわからなかったりします(自分はわかりませんでした)。
今回は、Niagaraが提供している基本機能で簡単にできる方法が分かったので紹介します。
手順
手順はたったの2ステップです。
① Ribbon RendererのFacing ModeをCustomにする
② Ribbon Facing Vectorの値をSystemZ(or X or Y)Axisにする
まず①については、下記画像のFacing Modeを、デフォルトでScreenになっているところをCustomに変えます。そうすることで、Ribbon Facingというパラメータに指定したベクトルの向きを常に向くようになります。
※ちなみに、ここでCustom Side Vectorを指定すると、Ribbon Facing Vectorの向きがRibbonの横方向に常になるようになります。
あとは、Ribbon Facingに向かせたいベクトルの値を設定すればOKです。普通に、パラメータを直接設定しても問題ないですが、Initialize ParticleのRibbon Facing Vectorでも設定できるので、そこで設定してみます。
Ribbon Facing ModeをDirect Setに変えると、Ribbon Facing Vectorはデフォルトで(0,0,1)に設定されます。つまり、Z軸方向をRibbonが常に向くようになります。
しかしこれは、ワールド座標系なので、ワールドのZ軸方向=上方向を常に向き、Niagara Systemを以下のように回転させたりしてもRibbonの向きは変わりません。
ここで、安易にPropertiesのLocal Spaceにチェックを入れてしまいたくなりますが、そうするとParticleの位置もNiagara Systemの位置に追従してしまうので、Ribbon自体生成されなくなります。
※SplineでRibbonを作る際など、そもそもNiagara Systemを動かさないでRibbonを作っている場合は、Local Spaceにチェックを入れ、Ribbon Facing Vectorに好きな値を設定するので問題ないです。
ワールド座標系のままにしておいて、Niagara Systemの向きの情報を取得したいということになります。
自身のNiagara Systemの情報が欲しい時は、とりあえず検索でsystemと入力してみると、意外と使えるパラメータがヒットしたりするので、覚えておくと他のケースでも役立つかもしれません。
ここで使うのも、SystemZAxisというパラメータになります。これは、Niagara SystemのZ軸方向のワールド座標系の値を返してくれます。
これを、Initialize ParticleのRibbon Facing Vectorに設定してあげることで、そのParticleが発生した時のNiagara SystemのZ軸方向を向いてくれます。
これで、Niagara Systemの向きに、Ribbonの向きを合わせることができました。
めでたし、めでたし!