# マニュアル：DisplayDirection と FaceDirection

**URL:** https://guild.rpgmakerofficial.com/t/topic/1147
**Category:** チュートリアル
**Tags:** manual, english
**Created:** [2026 年 2 月 6 日午前 11:18 UTC](https://guild.rpgmakerofficial.com/t/topic/1147 "2026-02-06T11:18:04Z")
**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: [2026 年 2 月 6 日午前 11:18 UTC](https://guild.rpgmakerofficial.com/t/topic/1147/1 "2026-02-06T11:18:04Z")

</div>

ACTION GAME MAKER では、各ステートに **DisplayDirection** と呼ばれるシステムが含まれており、オブジェクトの向きに応じてアニメーションを再生します。

本マニュアルでは、 **DisplayDirection** の制御方法について説明します。

DisplayDirection をサポートするアニメーションセットの詳細については、以下をご覧ください：

> [@Manual: Detailed Animation Set Settings](https://guild.rpgmakerofficial.com/t/topic/463):
>
> This manual explains how to configure the animations used in Visual Scripts in more detail. Animation Setup Workflow Create animation data with an AnimationPlayer node. (Reference: [Manual: Utilizi…](https://guild.rpgmakerofficial.com/t/topic/352)

* * *

## DisplayDirection システムの概要

DisplayDirection は **8方向** で設定可能です。

* * *

## DisplayDirection の設定

DisplayDirection は、各ステートの **「DisplayDirection」** 設定で変更できます。

さらに、 **FaceDirectionSettings ノード** で設定した **FaceDirection** を使用することで、より詳細な制御が可能です。

* * *

## 各ステートの「DisplayDirection」設定

DisplayDirection は以下のいずれかに設定できます：

- **移動方向** ：常に現在の移動方向と同期します。
- **移動キー方向** ：常にオブジェクトに割り当てられた移動キー入力の方向と同期します。
- **右/左** ：常に右または左を向きます。
- **FaceDirectionSettings を使用** ：FaceDirectionSettings ノードで設定された FaceDirection に従って向きます（以下で説明）。

設定された DisplayDirection は、オブジェクトが同じステートにいる間維持されます。

* * *

## FaceDirectionSettings ノード（FaceDirection 設定）

このノードは **FaceDirection** を指定するために使用されます。

**オブジェクトの子** として配置することで機能します。

FaceDirectionSettings で利用可能な設定は以下の通りです：

- **移動方向** ：常に現在の移動方向と同期します。
- **移動キー方向** ：常にオブジェクトに割り当てられた移動キー入力の方向と同期します。
- **変更しない（自由）** ：アクションやスクリプトで変更されるまで、DisplayDirection を変更しません。
- **指定オブジェクトの方向** ：指定されたオブジェクトの方向を向きます。
- **指定グループ** ：指定されたグループ内の最も近いオブジェクトの方向を向きます。

FaceDirectionSettings の各設定は、実行アクション **ChangeObjectProperty** を使用して変更することもできます。

**FaceDirection** は **DisplayDirection** とは別変数ですが、前述の通り、 **各ステートの DisplayDirection 設定で FaceDirection を使用できます** 。

* * *

## 実行アクション：ChangeFaceDirection

このアクションは **FaceDirection** を変更します。

DisplayDirection を直接変更するわけではなく、FaceDirection そのもののみを変更します。

したがって、ステートの DisplayDirection 設定が **「FaceDirectionSettings を使用」** であり、FaceDirectionSettings が **「変更しない（自由）」** に設定されていない場合、手動での変更が直ちに上書きされる可能性があります。ご注意ください。

**ChangeFaceDirection** で利用可能なオプションは以下の通りです：

- **角度** ：0° から 360° の角度を指定します（右が 0°）。
- **方向** ：8方向から直接選択します。
- **変数** ：変数の値を度数として使用して方向を指定します。
- **移動方向** ：実行時の移動方向を向きます。
- **指定オブジェクト** ：指定されたオブジェクトの方向を向きます。

* * *

## DisplayDirection と DisplayDirection 変数（visible\_direction）

**visible\_direction** 変数は、45度刻みで現在の向きを表します。

例：

- 右：0°
- 右下：45°
- 下：90°

この変数は、現在の向きを便宜的に示すための値であり、値を代入しても何の変化も起こりません。

したがって、現在の向きに対して相対的に方向を変更したい場合は、以下の手順を実行します：

1. **visible\_direction** 変数を別の変数 A に代入します。
2. 変数 A に希望する角度値を加算します。
3. **ChangeFaceDirection** アクションを使用して、変数 A に基づいて向きを変更します。

* * *

## 実用的な使用例

### マリオ風のスライド移動

MoveAndJumpSettings で移動モードを **加速度** に設定し、Face Direction を **移動キー方向** に設定することで、キャラクターが反対方向を向いたままブレーキをかけるマリオ風の移動を実現できます。

* * *

### 移動せずに任意のスティック方向を向く

**ChangeAngleSettings** とグループへの向き設定を使用して実現できます。

**手順：**

1. GameObject の子として **Node2D** を追加し、名前を `TargetRoot` に変更します。
2. `TargetRoot` の子としてもう一つ **Node2D** を追加し、名前を `Target` に変更します。
3. `Target` ノードのインスペクターで、Transform の位置を **x = 100, y = 0** に設定します。
4. `Target` ノードに任意のグループ名を追加します。
5. GameObject の子として **ChangeAngleSettings** を追加します。
6. ChangeAngleSettings のインスペクターで、 **右スティックを使用** または **左スティックを使用** を有効にし、`TargetRoot` をターゲットノードに設定します。
7. FaceDirectionSettings で、`Target` ノードに割り当てられたグループを追従するように設定します。

* * *

**動作の仕組み**

ChangeAngleSettings ノードは、スティック入力に応じて `TargetRoot` ノードを回転させます。  
`Target` ノードは `TargetRoot` の右にオフセットされているため、`TargetRoot` を回転させると `Target` は円軌道上を移動します。  
FaceDirectionSettings はこの回転する `Target` ノードを追従するため、オブジェクトがスティックの方向を向くことになります。

* * *

### マウスカーソルを向く

まず、マウスカーソル用のオブジェクトを作成します。

**手順：**

1. テンプレート **GDScript\_sample** を使用して新しい GameObject を作成し、タイプを **SimpleCursor** に選択します。  
SimpleCursor は、マウス位置を常に追従するスクリプトを持つノードです。
2. SimpleCursor を保存し、ゲームシーンの **UI レイヤー** に配置します。  
（通常のレイヤーに配置すると、オフセットやその他の変形の影響を受ける可能性があります。）
3. FaceDirectionSettings で、ターゲットオブジェクトを SimpleCursor に設定します。

* * *

**追加の注意点**

前述の例（「移動せずに任意のスティック方向を向く」）で、ChangeAngleSettings の **マウスを使用** を有効にすることで、同様の動作を実現できます。
