Niagaraの入門(12) ParameterとNamespace
Niagaraの入門(12)
※なおこの段階ではNiagaraはアーリーアクセスなので
※今後内容がかわるかもしれないのでご注意ください
ParameterとNamespaceについて
EmitterやModuleとのやりとりで主に扱うParameterについてなのですが
これらはNamespace管理されています。
Namespaceとはプログラムなどで変数やClassなどの定義が
名前でされるのですが、プロジェクトやプラグインなどによって
同名のような名前がある場合に、競合をさけるために
複数の名前の集合で管理することによって回避するためのものです。
例)xxxx.aaaa.hogehoge
Emitter内で定義するところがここにあたります。
ここで定義されているカテゴリーが主に、
namespaceの最初につける必要があります。(一部例外あり)
例)Emitter.hogehogeA
例)Particles.hogehogeB
この一番最初の名前にさえ従えば基本あとは自由な名前設定と型のタイプを指定できます。
主に使用するものはSystem. Emitter. Particles. でパラメーターを定義して
使用することが多いかと思われます。
Engine.は参照することはあって定義することはそうそうないかとは思います。
こちらはゲームでの経過時間などUE4の内部から必要な値を使うがほぼほぼかと思われます。
※「ParameterCollection」 「 User」 「Other」に関しては、もう少し情報が集まってから再度書くかもしれません。
・ParameterCollection
http://crabpunch.hatenablog.com/entry/2018/08/14/071940
・User
http://crabpunch.hatenablog.com/entry/2018/08/16/221858
なぜ今更この話をしたか?
単にパラメーターとは変数なようなものですよ程度の理解さえしておいて
いただければ説明することもないかとは思っていたのですが、
前回の記事のNormalの時の話と手順前後となってしまい恐縮です。
お気づきのかたも居られたかと思いますが、
前回の記事の途中で出てきた、
[Particles.SampleStaticMesh.MeshNormal]
これはどこから出てきたのか?
定義はしているがどこで値を設定しているのか?
SampleStaticMeshの中をみても、一見設定されているようには見えません。
ただ似たような名前の[Particles.Module.MeshNormal]というものは設定されています。
実験
新規にEmitterを作成して
3つのパラメーターを定義します。
次にModuleの2つ作成します。
中身は以下の通りで、
Module名前をMyTestColorAとMyTestColorBとします。(中身はまったく同じものです)
次に[Particles.MyTestColorA.Color]と[Particles.MyTestColorB.Color]
のパラメーターをそのままColorModuleにて代入すると結果がわかるかと思います。
つまりModuleのMyTestColorAの内部で設定された
[Particles.Module.Color]は[Particles.MyTestColorA.Color]となり
MyTestColorBの内部で設定された
[Particles.Module.Color]は[Particles.MyTestColorB.Color]となっていることが
わかります。
よって
[Particles.SampleStaticMesh.MeshNormal]
これはどこで設定されたものか?
SampleStaticMeshで設定されていた
[Particles.Module.MeshNormal]で代入されたものである
ということがわかります。
Bitmaskついて
たとえばParticlesモジュール内でEmitterの値をMapSetしようとしても
候補にでてきません。
※下流から上流への書き込み制限だと思っていました。
左上のモジュールの詳細パネルのBitmaskにて
Emitter項目を追加します。
こうすることによってMapSetにてEmitterを返すことができるようになります。