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と合わせて弱点部位や装甲部位の再現をすることが可能です。
他、親オブジェクトのダメージにあたらないようにするプロパティや方向/回転/スケール/フィルターなどを親オブジェクトと同期するように設定できます。