# TIPS: タイル効果のエリア変数(Area Value)を使ったアイデア - すり抜けられる足場/はしご

**URL:** <https://guild.rpgmakerofficial.com/t/topic/249>\
**Category:** チュートリアル\
**Tags:** 日本語, manual\
**Created:** [2025 年 6 月 16 日午前 5:16 UTC](https://guild.rpgmakerofficial.com/t/topic/249 "2025-06-16T05:16:05Z")\
**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 月 16 日午前 5:16 UTC](https://guild.rpgmakerofficial.com/t/topic/249/1 "2025-06-16T05:16:05Z")

</div>

ACTION GAME MAKERのタイル効果のエリア変数(Area Value)とは、触れたオブジェクトの変数、現在のエリアID(stayed\_area\_id)を自動で更新してくれる機能です。

つまり、事前にタイル側で指定をしていることで、今触れている（もしくは重なっている）タイルのIDがいくつなのか？ということをオブジェクトが把握することができます。

## タイル効果についてはこちら:

> [@マニュアル: タイル効果](https://guild.rpgmakerofficial.com/t/topic/82):
>
> ACTION GAME MAKERでは、独自の機能としてタイル効果が利用可能です。 タイル効果とは、当該のタイルの上に乗っている場合オブジェクトに反映される特殊効果です。 タイル側の設定 タイルセットでタイル効果を適用したいタイルを選択します。 TileEffectプロパティを展開して任意の効果を設定します。 各プロパティの解説 Collision Pattern: …

**マニュアルに記載がある通り、効果を受けたいオブジェクトのGameObjectでタイル効果の有効化、タイル効果側で対象グループの指定が必須なのでご注意ください。**

## すり抜けられる足場のアイデア

特定のエリア変数の場合、下キーを押すと一時的にコリジョンが無効になる、という処理を作れば、特定の足場タイルのみすり抜けるということが可能になります。

### タイル側の設定

1. 足場として利用したいタイルを用意します。
2. 判定を接触、グループを指定します。
3. 足場のエリア変数を有効化し、任意の値を設定します。  
 ![image](https://us1.discourse-cdn.com/flex002/uploads/rpgmaker_community/original/1X/789d4fa209762c2e69d9fb6e614f84702213fbde.png)
4. (オプション)Physics\>Physics Layer\>Polygonにある一方通行(OneWay)を有効にし、方向を上とすると、下から上へはすり抜けられるという設定にできます。  
 ![image](https://us1.discourse-cdn.com/flex002/uploads/rpgmaker_community/original/1X/3a4b5858c4bb7737c6bdc17bdd2cf963f75b80d6.png)
5. タイルの設定は以上で、 **上から下へのすり抜けはオブジェクト側** で設定します。

### オブジェクト側の設定

1. 設定したいオブジェクトのヴィジュアルスクリプトを開きます。
2. すり抜け用の新しいステートを作ります。
3. 待機モーションから新ステートへの遷移条件は、自身の変数Area\_idが指定の値のときAND下方向の入力がされたとき。とします。
4. 新ステートでは、3つのアクションを設定します。自身のプロパティを変更で  
①壁判定(CollisionShape2D)の**無効(Disabled)プロパティを有効化**  
②0.3秒ウェイトを入れる。  
③壁判定(CollisionShape2D)の**無効(Disabled)プロパティを無効化**  
とします、これにより **0.3秒間壁判定が消えるため、重力に従って足場をすり抜けて落下します。**
5. 新ステートからは、 **0.3秒の時間経過で落下モーション用アクションに遷移** するようにします。

これらの設定により、特定の足場タイルに乗っている場合のみ、下キー入力ですり抜けるが実装できます。

- すり抜けがひっかかる場合はウェイトの長さを調整して長くしてみましょう。
- すり抜け用モーションを作る場合、アニメーションプレイヤーのキーで壁判定の無効化/有効化処理を行う事もできます。その場合は、 **有効化が終わらないうちに遷移しないように注意** しましょう。

## はしごのアイデア

概ね、足場と同じアイデアになります。  
特定のエリア変数の場合、上キーを押せば重力が無効になりキャラクターが登る、という設定をすることで実現できます。

### タイル側の設定

1. はしごとして利用したいタイルを用意します。
2. 判定を接触とし、グループを指定します。
3. 足場のエリア変数を有効化し、任意の値を設定します。

### オブジェクト側の設定

1. 設定したいオブジェクトのヴィジュアルスクリプトを開きます。
2. はしご登り用の新しいステートを作ります。
3. 待機モーションから新ステートへの遷移条件は、自身の変数Area\_idが指定の値のとき **AND** 上方向の入力が **された瞬間** 。とします。
4. 新ステートでは、 **重力を無効** にしておきます。その上で、アクション「指定方向に移動」で上方向(270度方向)へ移動するように指定しましょう。
5. 新ステートからは、自身の変数Area\_idが指定の値**以外(!=)のときOR** 入力がない場合、としましょう。

これらの設定により、 **上方向キーを押している間は登り、入力をやめる、もしくは頂点に達しArea\_idが別の値になった際には上昇がとまります。**

- 新ステートへの遷移条件を上方向の入力がされている間とすると離すまで無限に上昇してしまいます。
- はしごの頂点には、一方通行設定をしたタイルを置くか、Collisionshape2Dを別途設置しておけば登りきったあとに自然に立つことができます。
- はしごの途中で止まりたい場合は、重力を無効にした停止用のステートを用意して新ステートからつなぐとよいでしょう。上キーで再開する場合は新ステートに戻し、キャンセルすればFallに遷移するようにすればより自然な動作になります。
