[カスタムアクション] Bazノードプロパティ変更アクション

変換済みの投稿です。ダッシュとセミコロンを削除し、複合語を分解しました。


BazChangeNodePropertyAction

シーン内の任意のノード(AGMakerオブジェクトでないノードも含む)に、modulatevisiblepositionscaletext といった実際の型を持つGodotプロパティを設定します。

これはネイティブのChange Object Propertyの欠けていた半分のようなものです。Game Scene内部のノードや、名前付きノードからノードを取得できます。

私の活動を支えるために、パトロンになることを検討してください。 :folded_hands:

ダウンロード:
BazChangeNodePropertyAction.gd (34.8 KB)

要件

AGMaker 1.3.0以上

インストール

  1. BazChangeNodePropertyAction.gd(以下に添付)をダウンロードします。
  2. プロジェクトの custom_actions/ フォルダに配置します。そのフォルダが存在しない場合は、プロジェクトのルートに作成してください。 custom_actions/object/ などのサブフォルダでも問題ありません。
  3. これだけです。Add Action ダイアログの Object / オブジェクト グループに表示されます。有効化などの追加操作は不要です。

機能

AGMakerの浮動小数点のみを対象とするプロパティ変更を拡張し、プロパティが実際に必要とする ColorVector2Stringbool、または数値といった本来のGodotプロパティとその実際の型で設定できるようにします。

  • 任意の型付きプロパティ。 modulate (Color)、position/scale (Vector2)、text (String)、visible/flip_h (bool)、z_index (int)、rotation (float)。値の型を選択すると、そのままノードに書き込まれます。
  • 単一チャンネル。 特定の部分のみを変更するためにチャンネルを追加できます:modulate:a はアルファのみを設定し、position:x はX座標のみを設定します。チャンネルはFloat値を受け取るため、ベクトリ全体を作り直すことなく1つの軸のみを微調整できます。
  • 3つのターゲット指定方法。 シーンから特定のノードを1つ選択するか、現在アクティブなシーン内で名前に一致する最初のノードを指定するか、グループの全メンバーを一度に変更するかを選択できます。
  • クラッシュ安全。 書き込み前にプロパティの存在と値の適合性をチェックするため、タイプミスがあってもロジックが停止するのではなく、スキップされてログに記録されます。
  • エディタの利便性。 プロパティを選択または入力すると、型が既知の場合はValue Typeが自動入力されます(いつでも上書き可能)。Node Typeの Browse All Classes… エントリは、エディタ独自のAdd Nodeクラスツリーを開きます。
  • 自己完結型で共有可能。 1つのファイル、オートロードなし、Project Settings不要、管理すべき追加要素はありません。

使用方法

ステートやトランジションに追加し、上部でノードのターゲット指定方法を選択してから、プロパティと値を選択します。

  • ターゲット指定 はノードの検索方法です。Pick From Scene = シーンとそのノードの1つを選択し、そのシーンがアクティブな間のみ実行されます。By Node Name = 現在アクティブなシーン内で、入力した名前の最初のノード。In Group = 現在アクティブなシーン内のグループの全メンバー。
  • Target Scene / Target Node (Pick From Scene)。シーン、その後ドロップダウンからノードを選択します。配置されたオブジェクト内部にアクセスするために、より深いパス(例:SceneLayer/BaseLayer/Player/Sprite2D)を手動で入力することもできます。
  • Node Search Name (By Node Name)。検索する名前。*? はワイルドカードとして機能します(Torch*Torch2 に一致)。
  • Node Type + Group (In Group)。変更されるメンバーを持つグループ。Node Typeはオプションであり、Property Nameの提案を補完するためだけに使用されます。
  • Property Name。Godotのプロパティ名。例:modulate、または単一チャンネルの場合は modulate:a
  • Value Type + value。値の種類(Float、Integer、Boolean、Text、Vector2、Color)とその値自体。一致する値のフィールドのみが表示されます。

例:画面全体のフェード。In GroupLights グループ → プロパティ modulate:a → Value Type Float0.0 と設定すると、部屋のすべてのライトを同時に暗くします。

ヒント

  • チャンネルはFloatのみ。 modulate:aposition:xscale:y はすべてFloat値を受け取ります。これにより、他の軸を乱すことなく1つの軸のみをアニメーション化できます。
  • Pick From Scene は意図的にシーンゲートされています。 選択したシーンがアクティブな間のみ発火するため、共有オブジェクトに同じアクションを配置しても、他の場所では静かに保たれます。
  • 名前の命名規則。 各部屋で同じノードに同じ名前(AmbientLightMusic など)を付けると、By Node Name を使用して「現在の部屋のそれ」をシーンごとの設定なしで変更できます。
  • GameObjectの visible は抵抗します。 AGMakerはGameObject自身の visible を再設定するため、非表示にしてその状態を維持したい場合は、子ノードをターゲットにするか(または modulate:a を使用してください)。
  • Debugをオンにする と、設定中にスキップされたもの(プロパティの欠落、型の不一致、シーンゲート)と一致するものがすべて出力され、Outputパネルに表示されます。
「いいね!」 1