No03.親子関係

はじめに

本項目では、ノード間の親子関係について学びます。

子ノードの生成

新規作成をした後の直後のノードを「ノードツリー」画面で右クリックします。そうすると「ノードの追加」という項目が表示されます。その項目をクリックします。そうするとノードに子のノードが生成されます。

このままだと表示は全く変わりません。それなので、追加したノードの方に対して、「生成数」を10、「生存時間」を5、「位置」を「位置・速度・加速度」に変更し、「速度」のx方向を0.2と指定します。そうすると、x方向に対して伸びるようなエフェクトになりました。この状況では、通常の親子関係が関係ないエフェクトと状況は一緒です。

それでは、今度は親の方のNodeを選択し、「回転」を「角度・速度・加速度」に変更し「角速度」のy方向を1としてみましょう。そうすると子のノードから生成されたインスタンスも回転するようになりました。これが親子関係です。途中、親が100フレームに達し消滅すると、子も回転を停止し、そのまま移動していきます。この際、子のノードの「共通」から「親削除時削除」にチェックを入れます。そうすると自動的に親のインスタンスが消滅した際に子のインスタンスも消滅するようになります。このエフェクトは、「tutorial03_1.efkproj」として保存されています。

親子関係

次に、子のノードの「共通」の「回転への影響」を「常時」から「生成時のみ」に変更します。そうすると、わかりにくいですが、常に親の影響を受けるのではなく、生成時の親の状態のみに影響を受けます。例えば、親が回転していて、子が移動している場合、子の移動方向は子が生成したときの親の方向に移動することになります。このエフェクトは、「tutorial03_2.efkproj」として保存されています。

親の影響を受ける主な項目として、親の位置、回転、拡大、そして「位置への影響」「回転への影響」「拡大への影響」「親削除時削除」、最後に親のインスタンス数があります。子のインスタンスは親のインスタンスの数だけ生成されます。具体的に言うと、先ほどのサンプルでは親が1個で子が10個でしたが、親を10個にすると子は合計100個生成されます。先ほどまでの例の親の「生成数」を10、「位置」をある程度ランダムな範囲に設定してみます。そうすると子が大量に生成されているのがわかります。このエフェクトは、「tutorial03_3.efkproj」として保存されています。

最後に

今回は親子関係ついて述べました。注意点としては、ある親から子が100個生成される場合、親を10個生成するようにすると全体のインスタンスの個数は10倍に増えます。あまりにも増やしすぎてゲーム中では使いものにならない負荷だった、ということにならないようにしましょう。