# マニュアル：アクション – オブジェクトプロパティの変更

**URL:** <https://guild.rpgmakerofficial.com/t/topic/389>\
**Category:** チュートリアル\
**Tags:** manual, english\
**Created:** [2025 年 6 月 22 日午前 8:40 UTC](https://guild.rpgmakerofficial.com/t/topic/389 "2025-06-22T08:40:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Moonling](https://sea2.discourse-cdn.com/flex002/user_avatar/guild.rpgmakerofficial.com/moonling/32/369_2.png) [@Moonling](https://guild.rpgmakerofficial.com/u/Moonling)\
**Post date:** [2025 年 6 月 22 日午前 8:40 UTC](https://guild.rpgmakerofficial.com/t/topic/389/1 "2025-06-22T08:40:38Z")

</div>

この実行アクションでは、以下の 3 種類のデータを修正できます。

1. オブジェクト変数 / スイッチ
2. データベースデータ（プロジェクト全体の変数やスイッチを含む）
3. ノードのプロパティ

それぞれについて以下で説明します。

* * *

## 1. オブジェクト変数 / スイッチ

オブジェクトの `VariableSettings` または `SwitchSettings` ノードで定義された変数やスイッチを修正できます。

ただし、以下の変数とスイッチは **読み取り専用** であり、 **変更できません** 。

| 種類 | 名前 |
| --- | --- |
| スイッチ | `is_locked`, `is_touching_portal` |
| 変数 | `object_id`, `stayed_area_id`, `visible_direction`, `x_speed`, `y_speed`, `player_id`, `controller_id`, `taken_damage` |

### なぜこれらの読み取り専用変数 / スイッチが存在するのか？

これらは「変数/スイッチが変更された」などの **リンク条件** に必要です。  
リンク条件ではノードのプロパティを直接監視できないため、内部変数/スイッチとしてミラーリングされています。

* * *

## 2. データベースデータ

以下のエントリを修正できます。

- ユーザーデータベース
- プロジェクト変数
- プロジェクトスイッチ

このアクションを通じて **タイププリセット** や **サウンドデータベース** にはアクセス **できません** 。

### 「変数でレコードを指定」オプション

変数の値に基づいてレコード（行）を選択できます。  
例えば、変数の値が 5 の場合、選択された列の 5 行目が対象となります。

**使用例** ：  
アイテムデータベースがあり、入手したアイテム ID に基づいて情報を表示したい場合、この機能を使えば、各 ID ごとに分岐させるのではなく、単一のステートですべてのアイテムを処理できます。

* * *

## 3. ノードのプロパティ

ACTION GAME MAKER が提供するノードだけでなく、 **あらゆるノード** のプロパティを修正できます。

例：

- `MoveAndJumpSettings` で「ブースト移動」を有効にして、移動タイプを動的に変更する。
- `Sprite2D` の `Visible` プロパティを使って表示/非表示を切り替える。
- `HitCollision` ノードの `Disabled` プロパティを設定して、当たり判定を無効化する。
- データベースから取得した文字列データを使って、`Label` ノードのテキストを更新する。

* * *

## 親オブジェクトを対象とした場合の動作

**親オブジェクト** が選択されている場合のみ、システムは **ターゲットシーンのパスを確認しません** 。  
実際のシーンが指定されたものとは異なっても、プロパティが存在すれば動作します。  
これにより、汎用的なダメージ検出器のような共有子オブジェクトを使用できます。

* * *

## ⚠ プロパティ変更の使用に関する重要な注意点

### 変更はインデックス順序に基づきます

Godot の設計により、このアクションは **インデックスベースのターゲット指定** を使用します。  
つまり、「上から N 番目のプロパティ」を修正します。

**順序を変更した場合** （変数を削除したりノードを移動したりするなど）、 **既存のアクションが間違ったプロパティを指す可能性があります** 。

### シーンパスは自動更新されません

「ロックされたオブジェクト」または「指定されたオブジェクト」を対象とする場合、以下の操作を行うと：

- シーンファイルを移動する
- ファイル名またはそのフォルダ名を変更する

→ アクションが機能しなくなる可能性があります。

これは、パスが動的参照ではなく **プレーンテキスト文字列** として保存されているためです。  
Godot はパスを自動的に更新しますが、ACTION GAME MAKER はこの場合、 **再帰的なループエラーを回避するため** に自動更新を行いません。
