> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Button

> Button

# Button

プレイヤーのタッチ入力に応答できる基本コントロール。背景と face image の両方にカスタム アートワークを持つようスタイル設定できます。

## プロパティ

`type` - *"button"*。コントロールの種類を指定します。

`action` - *string*。プレイヤーがボタンに触れたときに呼び出される [Action](/ja-jp/reference/system/touchadaptationkit/types/game-streaming-touch-action)。

`enabled` - *boolean*、*省略可*。既定値は `true` です。コントロールの視覚的な状態を有効/無効に設定します。無効なコントロールは引き続きプレイヤーからの入力を受け取りますが、入力に基づいて視覚スタイルは *変更されません*。

`pullAction` - *string* または *object*、*省略可*。プレイヤーがタッチ中にボタンを引いたときに呼び出される [Action](/ja-jp/reference/system/touchadaptationkit/types/game-streaming-touch-action)。以下のサンプルで示すように pull アクションをオブジェクトとして定義すると、pull ボタンはセグメント化され、pull アクションの `items` 配列内の各項目がそのセグメントにアクションを割り当てます。セグメントはボタンの周囲に均等に配置され、最大 4 つのセグメントが許可されます。

* セグメント化された Pull アクションのプロパティ (v4.1 で導入)

  * `type` - *"segmented"*。pull アクションのタイプをセグメント化された pull アクションとして指定します。

  * `items` - *array*。最大 4 つの [Action](/ja-jp/reference/system/touchadaptationkit/types/game-streaming-touch-action) の配列であり、それぞれはプレイヤーがそのセグメント方向にタッチをドラッグまたはプルしてコントロールの端まで達したときに呼び出されます。

`toggle` - *boolean*、*省略可*。既定値は `false` です。

* `false` の場合、押されたときに入力が送信され、押されていないときには送信されません。
* `true` の場合、ボタンを押すたびに、対応するアクションに対して入力を送信するかどうかが切り替わります。

`visible` - *boolean*、*省略可*。既定値は `true` です。プレイヤーが操作できるようにコントロールを表示するかどうかを決定します。ゲーム プレイ中に変更するには、[ゲーム状態を使用したタッチ レイアウトの変更](/ja-jp/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-touch-changing-layouts-game-state#change_state) を参照してください。

`styles` - *object*、*省略可*。コントロールの視覚的表現のカスタマイズ。スタイルは、スタイル設定可能な状態ごとのオブジェクトとして表されます。

button コントロールは次の状態のスタイルを設定できます。

* `default` - 基本スタイル。
* `disabled` - コントロールが無効な場合のスタイル。指定されていない場合、コントロールが無効になると、既定のスタイルに変換が適用されて無効に見えるようになります。
* `idle` - プレイヤーがコントロールを操作していないときに適用されます。
* `activated` - プレイヤーがボタンに触れているときに適用されます。
* `pulled` - プレイヤーがボタンに触れて引いているときに適用されます。セグメント化された pull アクションの場合、引かれている単一のセグメントのみがこの状態でスタイル設定され、他のセグメントは `activated` のスタイルを維持します。
* `toggled` - ボタンがトグル状態にあり、プレイヤーがボタンに触れていないときに適用されます。

**状態ごとのスタイル設定プロパティ**

`opacity` - *number*、*省略可*。コントロールに適用される不透明度。`disabled` を除くすべての状態で既定値は 1.0 です。

`faceImage` - *object*、*省略可*。[icon](/ja-jp/reference/system/touchadaptationkit/types/game-streaming-touch-icon) または [image asset](/ja-jp/reference/system/touchadaptationkit/types/game-streaming-touch-asset) のいずれかを指定できます。

`background` - *object*、*省略可*。[color](/ja-jp/reference/system/touchadaptationkit/types/game-streaming-touch-color) または [image asset](/ja-jp/reference/system/touchadaptationkit/types/game-streaming-touch-asset) のいずれかを指定できます。idle 状態と disabled 状態では表示されません。

**アセットの寸法**

画像アセットを受け入れる各スタイル オブジェクトについて、指定されたアセットはベース解像度と、そのベース解像度の 1.5x、2.0x、3.0x、4.0x のスケールで提供されます。指定された画像の解像度は、次の最大解像度以下である必要があります。

| オブジェクト | @1.0x | @1.5x | @2.0x | @3.0x | @4.0x |
| :- | :- | :- | :- | :- | :- |
| faceImage | 60x60 | 90x90 | 120x120 | 180x180 | 240x240 |
| background | 60x60 | 90x90 | 120x120 | 180x180 | 240x240 |

## 補足

ボタンは、通常物理コントローラー上の 1 つ以上の物理ボタンで行うアクションをプレイヤーに実行させるためによく使用されます。

複数のアクションを利用すると、プレイヤーが組み合わせアクションを簡単に再現できるようになります (たとえば、左バンパーと右バンパーを同時に押すなど)。

**スタイル設定に関する補足**

`activated` 状態のとき、`faceImage` は 25% 小さく表示されます。

カスタム アセットを使用せず、`gamepadX`、`gamepadY`、`gamepadA`、または `gamepadB` の単一アクションを持つボタンには、ラベルおよび背景色の既定のスタイルがあります。

## サンプル

#### 例 1: A ボタンにマッピングされたジャンプ ボタン

![ボタンを押すユーザー](https://mintcdn.com/microsoft-4404708b/-_0FrcE2bDxzGxv-/images/gdk/reference/game-streaming-touch-control-images-button.gif?s=585c8746250b36534c236117851e82f4)

```JSON theme={null}
{
    "type": "button",
    "action": "gamepadA",
    "styles": {
        "default": {
            "faceImage": {
                "type": "icon",
                "value": "jump"
            }
        }
    }
}
```

#### 例 2: 左バンパーと右バンパーの同時押しにマッピングされたしゃがみボタン

![2 つのアクションにマッピングされたボタンを押すユーザー](https://mintcdn.com/microsoft-4404708b/-_0FrcE2bDxzGxv-/images/gdk/reference/game-streaming-touch-control-images-button-2.gif?s=0c9485ee05b533ae100e8edaee6882b6)

```JSON theme={null}
{
    "type": "button",
    "action": [ "leftBumper", "rightBumper"] ,
    "styles": {
        "default": {
            "faceImage": {
                "type": "icon",
                "value": "crouch"
            }
        }
    }
}
```

#### 例 3: カスタムの face image と背景画像を持つボタン

![カスタム アセットを持つボタンを押すユーザー](https://mintcdn.com/microsoft-4404708b/-_0FrcE2bDxzGxv-/images/gdk/reference/game-streaming-touch-control-images-button-3.gif?s=4503a193449c834d72a50e19a111e9d2)

```JSON theme={null}
{
    "type": "button",
    "action": "gamepadA",
    "enabled" : true,
    "styles": {
        "default": {
            "background": {
                "type": "asset",
                "value": "hex_background"
            },
            "faceImage": {
                "type": "asset",
                "value": "one"
            }
        },
        "activated": {
            "background": {
                "type": "asset",
                "value": "hex_background_glow"
            }
        }
    }
}
```

#### 例 4: セグメントごとにカスタム スタイルを持つセグメント化された pull アクション

> [!NOTE]
>
> セグメント化された pull ボタンにスタイルを設定する場合、`pullIndicator` 配列はセグメントを定義した `items` プロパティと同じ長さである必要があります。つまり、各セグメントにはスタイル定義が必要か、特定のセグメントについてスタイル オーバーライドを省略するために `null` を使用する必要があります。

![セグメント化された pull アクションを持つボタンを押すユーザー。](https://mintcdn.com/microsoft-4404708b/-_0FrcE2bDxzGxv-/images/gdk/reference/game-streaming-touch-control-images-button-segmented-pull.gif?s=d28b3799cc728ed15d8af352b009bb46)

```JSON theme={null}
{
    "type": "button",
    "action": "gamepadA",
    "pullAction": {
       "type": "segmented",
       "items": [
          "gamepadB",
          "gamepadY"
       ]
    },
    "styles": {
        "default": {
           "pullIndicator": [
               {
                 "faceImage": {
                    "type": "icon",
                    "value": "sword"
                 }
               },
               {
                 "faceImage": {
                    "type": "icon",
                    "value": "block"
                 }
               }
            ]
        },
        "idle": {
           "pullIndicator": [
               null,
               {
                 "opacity": 0.5
               }
            ]
        }
    }
}
```

## 要件

**最小レイアウト バージョン:** 1.0 以上 (スタイル設定サポートは 2.0 以上)。

## 関連項目

[Touch Adaptation Kit リファレンス](/ja-jp/build/core-features/common/game-streaming/game-streaming-touch-touch-adaptation-kit-overview)


## Related topics

- [GAMEPAD_BUTTONS Enumeration](/reference/tools/xtf/xtfinput/enumerations/GAMEPAD_BUTTONS-typedef-xtfinput-xbox-windows-t.md)
- [GAMEPAD_MORE_BUTTONS](/reference/tools/xtf/xtfinput/enumerations/gamepad_more_buttons.md)
- [Enumeración GAMEPAD_BUTTONS](/es/reference/tools/xtf/xtfinput/enumerations/GAMEPAD_BUTTONS-typedef-xtfinput-xbox-windows-t.md)
- [Énumération GAMEPAD_BUTTONS](/fr-CA/reference/tools/xtf/xtfinput/enumerations/GAMEPAD_BUTTONS-typedef-xtfinput-xbox-windows-t.md)
