ACTION GAME MAKER には独自の機能として、親オブジェクトと子オブジェクトというものがあります。これは、いわゆるプレイヤーや敵の子機の概念を実現するために作成されたもので、Godot の親ノード/子ノードとは全く異なる概念です。
オブジェクトの親子関係では何ができるの?
- 親オブジェクトに自動で追従
- 攻撃が当たったときに親オブジェクトにダメージを転送
といった処理を行うことができます。また、実行アクション、オブジェクトのプロパティを変更 (ChangeObjectProperty)、条件、スイッチ・変数が変わった (SwitchVariableChanged) で親オブジェクトを指定することができます。
親子関係を作成するには
親オブジェクト側の設定
実行アクションや AGMaker 用ノードを経由して特定のオブジェクトを子オブジェクトとして生成できます。
実行アクション
- オブジェクトを生成
- 弾を発射
注意:これらのアクションでの生成先は生成元オブジェクトの子ノードではなく、このオブジェクトの弟ノード、または MountTarget で指定したレイヤーとなります。MoutTarget については以下のマニュアルをご確認ください。マニュアル: MountTarget - IDによるオブジェクトの生成先レイヤーの指定機能
AGMaker 用ノード
- BindObjects
BindObjects はオブジェクト同士をくっつけてしまうノードです。このノードでも子オブジェクトとして生成することができます。
子オブジェクト側の設定
子オブジェクトとしての振る舞いを設定するためには、子オブジェクト側が AGMaker 専用ノード ChildSettings を子ノードとして持っている必要があります。
ChildSettings で設定できる機能
追従タイプ (Follow Type): 常に追従、一定距離または一定時間開けて追従から設定できます。追従速度などは子オブジェクトの移動速度を参照します。
被ダメージ時の設定 (Damaged Behavior): 自身の HP を減らすか、親オブジェクトの HP を減らすかを設定できます。親オブジェクトの HP を減らす場合は子オブジェクトのダメージ倍率を適用することもできますので、BindObjects と合わせて弱点部位や装甲部位の再現をすることが可能です。
その他、親オブジェクトのダメージを受けないようにするプロパティや、方向/回転/スケール/フィルターなどを親オブジェクトと同期するように設定できます。