> ## 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.

# 建置觸控控制項的設計師指南

> 建置觸控控制項的設計師指南

## 目錄

1. [概觀](#overview)
   1. [為 XBOX 主機遊戲新增觸控控制項的優點](#benefits-of-adding-touch-controls-to-xbox-console-games)
2. [最佳做法](#best-practices)
   1. [先玩其他支援觸控的遊戲](#play-other-touch-supported-games-first)
   2. [使用觸控控制項遊玩未修改的遊戲](#use-touch-controls-to-play-your-unmodified-game)
   3. [從範本開始並保持精簡](#start-from-a-template-and-stay-minimal)
   4. [遵循控制項放置指導方針](#follow-control-placement-guidelines)
      1. [左側滾輪](#left-wheel)
      2. [右側滾輪](#right-wheel)
      3. [上方](#upper)
      4. [下方](#lower)
   5. [遵循特定控制項類型和進階情境的秘訣](#follow-tips-for-specific-control-types-and-advanced-scenarios)
      1. [4 向和 8 向方向鍵](#4-way-and-8-way-d-pads)
      2. [陀螺儀瞄準和射擊遊戲秘訣](#gyroscope-aiming-and-tips-for-shooter-games)
      3. [處理複雜和組合動作](#handling-complex-and-combination-actions)
   6. [使用觸控調整套件編輯器](#use-the-touch-adaptation-kit-editor)
   7. [變更觸控控制項以符合目前的遊戲內情境](#change-the-touch-controls-to-match-the-current-in-game-scenario)
   8. [使用電影式配置，在影片和過場動畫期間保持沉浸感](#use-a-cinematic-layout-to-keep-immersion-during-movies-and-cut-scenes)
   9. [使用原生觸控完整自訂觸控互動](#use-native-touch-to-fully-customize-touch-interactions)
   10. [使用自訂資產以符合遊戲的美術風格](#use-custom-assets-to-match-the-art-style-of-the-game)
   11. [針對觸控控制項變更遊戲內 UI、提示和控制項重新對應](#change-in-game-ui-hints-and-control-remapping-for-touch-controls)
   12. [檢查觸控控制項和 XBOX Game Streaming 的常見問題](#check-for-common-issues-for-touch-controls-and-xbox-game-streaming)
       1. [遊戲過程中中斷連線](#disconnection-during-gameplay)
       2. [與各種裝置類型的相容性](#compatibility-with-various-device-types)

## 概觀

本文說明為何為 XBOX 主機遊戲新增觸控控制項是有益的，並提供如何打造出色觸控控制項體驗的最佳做法。

觸控控制項一直是雲端遊戲作品中玩家最常要求的功能之一。XBOX Cloud Gaming (Beta) 和 XBOX 遠端遊玩都支援這些控制項。XBOX 觸控控制項為玩家開啟了與遊戲互動的新方式，讓玩家在遊玩方式和時機上有更多選擇。透過與遊戲開發人員合作，將觸控控制項整合到超過 200 款遊戲中，我們學到了很多。觸控控制項可協助開發人員更有創意、更靈活地設計玩家在不同裝置和平台上不使用遊戲台與遊戲互動的方式。在開發初期就考量觸控控制項和實體遊戲台對應，開發人員就能設計出更直覺、更容易使用的遊戲體驗，以滿足不同的偏好和情境。

### 為 XBOX 主機遊戲新增觸控控制項的優點

觸控控制項讓玩家無論身在何處，都能在不需要遊戲台的情況下享受遊戲。這讓更廣泛、更多元的玩家族群能夠接觸遊戲，尤其是可能沒有遊戲台或偏好不使用遊戲台遊玩的新手或休閒玩家。XBOX Game Streaming 遙測和資料顯示，已實作觸控控制項的遊戲在各種遊戲類型中，遊玩時間和使用者觀感都有明顯提升。百分之二十的 XBOX Cloud Gaming 玩家只使用觸控來玩遊戲。此外，在所有遊戲類型中，提供觸控控制項的遊戲平均遊玩量約為未提供觸控控制項之遊戲的兩倍。而且，使用觸控控制項的玩家對該遊戲整體串流觀感的滿意度平均而言相當，甚至更高。因此，支援觸控的遊戲必須切合需求，而最重要的是，要能以觸控控制項順暢遊玩。最後，支援觸控的遊戲在目錄中會以 \[以觸控遊玩] 篩選條件和 \[支援觸控] 標籤特別標示，如下列螢幕擷取畫面所示。綜合以上所有因素，讓遊戲支援觸控的重要性顯而易見，而更重要的是，要確保遊戲能以觸控控制項順暢遊玩。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/play-with-touch.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=069d73da606ef4c7fb6643f817bae080" alt="[以觸控遊玩] 遊戲列的螢幕擷取畫面" width="336" height="494" data-path="images/gdk/features/common/play-with-touch.png" />

## 最佳做法

本指南提供為遊戲建立觸控控制項的基本做法。這些做法著重於為觸控螢幕裝置上的玩家提供流暢、自然的體驗。大多數做法都可以輕鬆整合，不需要變更現有的遊戲程式碼。

### 先玩其他支援觸控的遊戲

目前已有許多支援觸控的優秀遊戲範例。雖然沒有兩款遊戲的輸入需求完全相同，但只要熟悉現有支援觸控的遊戲，就能了解哪種類型的觸控控制項和配置可能適合您的遊戲、如何使用原生觸控等等。如需如何使用觸控控制項玩遊戲的詳細資訊，請參閱[在雲端遊戲或遠端遊玩中使用 XBOX 觸控控制項](https://support.xbox.com/help/games-apps/cloud-gaming/use-touch-controls)。

### 使用觸控控制項遊玩未修改的遊戲

直接使用觸控控制項遊玩您的遊戲，以了解遊戲搭配觸控控制項的運作方式，這一點很重要。只要在內容測試應用程式中使用 Standard 配置，從開發套件串流到觸控裝置，即可輕鬆做到。如需如何設定串流開發環境的資訊，請參閱[遊戲串流測試必要條件](/zh-TW/build/core-features/common/game-streaming/game-streaming-stream-your-game)。

<Note>
  雖然 `Standard` 配置有助於感受遊戲搭配觸控控制項的效果，但我們一般不建議使用此配置來玩遊戲。若要為遊戲開發觸控控制項，請參閱下列指導方針。
</Note>

使用 Standard 配置時，您會清楚看出哪些地方難以控制遊戲，以及哪些地方可以建立更好的配置。下列最佳做法將逐步說明如何使用觸控達成更有趣、更流暢的體驗。

### 從範本開始並保持精簡

在遊戲中開始使用自訂觸控控制項非常簡單，不需要變更任何遊戲程式碼。只要幾分鐘，您就可以從 [XBOX GitHub](https://github.com/microsoft/xbox-game-streaming-tools/tree/main/touch-adaptation-kit/samples/sample-layouts) 的範本取得範例配置，或使用 [Create 命令](/zh-TW/build/core-features/common/game-streaming/tak-command-line-tool/game-streaming-tak-command-line-create-command)，根據遊戲的特定需求自訂配置。移除所有不必要的按鈕，然後自訂範本。雖然範本已套用許多控制項位置的最佳做法，但下一節將提供更深入的配置自訂指導方針。

### 遵循控制項放置指導方針

傳統的遊戲台控制配置通常最多會同時使用四個輸入。如下圖所示，遊戲過程通常需要在控制器上同時使用兩隻拇指和兩根手指。(綠色的控制項通常使用拇指操作，紅色的控制項則使用手指操作。)

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/controller-inputs.png?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=f5bb36ecbfa0d92387a2172581c27f84" alt="依拇指與手指區分的控制器輸入" width="800" height="534" data-path="images/gdk/features/common/controller-inputs.png" />

與遊戲台相比，觸控介面的限制要多得多。握持裝置時，通常只能使用左右拇指同時進行兩個輸入。觸控裝置的側面或背面通常沒有控制項，無法提供更多同時輸入。此外，觸控控制項無法像遊戲台那樣，在按下按鈕或扣動扳機時提供相同的實體回饋。仔細考量控制項的放置位置和對應方式，對於提供有趣的體驗至關重要。

下列標準控制器配置的影像顯示所有可能的按鈕。最常用的控制項位於玩家手指能舒適觸及的區域，如灰色帶狀區域所示。請注意，玩家拇指能伸向螢幕中央的範圍有限，而且舒適的移動區域通常幾乎是以握持裝置的位置為中心呈放射狀分布。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-arcs.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=82838bca83486d50c58bf0268c338333" alt="以灰色標示舒適區域的標準觸控控制項配置" width="800" height="358" data-path="images/gdk/features/common/tak-arcs.png" />

雖然 Standard 配置提供實體 XBOX 控制器的所有可用輸入，但它很可能不是遊玩您遊戲的好方式，對玩家來說可能也不太有趣。由於在大多數情況下，每款遊戲使用的控制項及其組合都不同，因此最好根據觸控調整套件提供的不同控制區域，自訂玩家最容易取用的控制項。下圖顯示可放置控制項的位置。區域內的控制項會放置在螢幕上不同位置排列的插槽中。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-slots.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=51375655eba2136b1ea4a5b4901c54f5" alt="觸控調整套件區域和插槽" width="800" height="462" data-path="images/gdk/features/common/tak-slots.png" />

在大部分遊戲過程中，玩家的拇指通常位於左側和右側滾輪上方。這些位置應放置遊戲的主要動作。相較之下，`upper` 和 `lower` 區域最適合較不常用的動作。玩家可能需要刻意移動拇指才能觸及這些控制項，尤其是在平板電腦等較大的裝置上。下一節將詳細說明每個區域，以及各種遊戲動作可以考慮放置的位置。

最後，遊玩您的遊戲並依使用頻率為所有動作排序非常重要。例如，在射擊遊戲的 FPS 模式中，常用動作包括射擊、重新裝填、瞄準和移動角色。較不常用的動作包括切換武器、投擲手榴彈和使用物品。最少使用的動作則是開啟選單和地圖。您可以運用此排序，依照下列以主要、次要和第三動作區分的指導方針來放置觸控控制項。

#### 左側滾輪

左側滾輪通常用於玩家移動或行進，以及需要在玩家移動時執行的動作。

##### **內部**

左側[內部滾輪](/zh-TW/reference/system/touchadaptationkit/layout/game-streaming-touch-inner-wheel)環通常保留給[僅一個控制項](/zh-TW/reference/system/touchadaptationkit/layout/game-streaming-touch-inner-wheel#pattern-1-one-control)，用來四處移動角色。這是主要的行進動作。

###### 秘訣

1. 在角色控制的遊戲中，使用非相對 (絕對) 左搖桿。\_相對\_一詞是指搖桿如何根據觸控開始的位置來回應觸控移動。如需詳細資訊，請參閱[搖桿](/zh-TW/reference/system/touchadaptationkit/controls/game-streaming-touch-joystick)。
2. 如果遊戲有根據左搖桿輸入量變更速度 (例如從走路變為跑步) 的系統，請改用相對左搖桿。在玩家需要逐漸改變輸入以變更速度的情況下，非相對搖桿的效果不佳。
3. 在可以使用方向鍵或左搖桿控制角色行進的 2D 遊戲中，請使用[方向鍵](/zh-TW/reference/system/touchadaptationkit/controls/game-streaming-touch-directionalpad)而非搖桿控制項。除非左搖桿提供方向鍵所沒有的功能 (例如速度或精細的角度方向)，否則請這麼做。使用搖桿而非方向鍵時，建議在 2D 角色行進中使用非相對搖桿。
4. 對於只用來瀏覽選單的特定配置，請盡可能使用方向鍵控制項。如果無法使用方向鍵，請使用非相對搖桿。
5. 簡單的配置請使用相對搖桿。習慣使用遊戲台的玩家對相對搖桿會比較熟悉。不過，非相對搖桿可讓玩家更快速地套用所需的輸入，而不必一直拖曳觸控，因此能提供更高的技術上限。請試用這兩種搖桿，充分了解哪一種最有樂趣。

##### **外部**

外部滾輪環適合其他常用動作。不過，最常用的動作通常屬於右側滾輪。

###### 秘訣

1. 為次要和第三動作建立[外環控制項叢集](/zh-TW/reference/system/touchadaptationkit/layout/game-streaming-touch-control-cluster-outer)。這可為此動作提供較大的點擊區域。在叢集中只使用單一控制項時，請考慮使用 `[<your secondary action control>, null]` 或 `[null, <your secondary action control>]` 的叢集語法，建立含有一個空白位置的雙控制項叢集，與 `[<your secondary action control>]` 相比，可有效地將單一控制項放置在環的稍內側或稍外側。
2. 將次要動作放在內環左上方的外側，即插槽 7 和插槽 8。這樣不需要往螢幕中央伸展就能輕鬆觸及。在滾輪中的所有其他插槽都已填滿且需要空間之前，請勿分割次要插槽 (控制項叢集)。
3. 將第三動作放在內環的正下方，即插槽 4 和插槽 5。這是從主要動作快速移動拇指的舒適位置。在滾輪中的所有其他插槽都已填滿且需要空間之前，請勿分割第三插槽 (控制項叢集)。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-left-wheel-secondary.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=3498c7d2ec1f0eaa700d30c8db942191" alt="觸控調整套件左側滾輪的次要和第三動作放置位置" width="800" height="334" data-path="images/gdk/features/common/tak-left-wheel-secondary.png" />

4. 考量哪些動作需要在玩家行進時同時按住 (例如按住以蹲下或衝刺)。建立具有 `action` 指派的搖桿控制項，讓兩個動作能同時發生，同時讓右拇指能空出來執行其他重要動作。如需範例，請參閱[超過閾值時從走路切換為衝刺的搖桿](/zh-TW/reference/system/touchadaptationkit/controls/game-streaming-touch-joystick#example-2-joystick-that-switches-from-walk-to-sprint-when-threshold-is-passed)。

#### 右側滾輪

右側滾輪最常用來執行鏡頭移動以及主要角色動作，例如攻擊、射擊、跳躍、使用物品或特殊技能。

##### **內部**

一般而言，請將右側[內部滾輪](/zh-TW/reference/system/touchadaptationkit/layout/game-streaming-touch-inner-wheel)環保留給[僅一個控制項](/zh-TW/reference/system/touchadaptationkit/layout/game-streaming-touch-inner-wheel#pattern-1-one-control)，用來執行最常用的動作，例如主要攻擊。雖然內部滾輪環可以叢集多個控制項，但最好保留一個大型點擊區域專門用於最常用的動作。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-right-wheel-primary.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=71ddd555db90e97e784d7bdbe9427dcf" alt="觸控調整套件右側滾輪的主要動作放置位置" width="800" height="424" data-path="images/gdk/features/common/tak-right-wheel-primary.png" />

###### 秘訣

1. 對於可能需要同時按住另一個動作的常用動作 (例如開鏡瞄準)，請考慮使用具有 `pullAction` 的[按鈕控制項](/zh-TW/reference/system/touchadaptationkit/controls/game-streaming-touch-button)，讓單次觸控就能同時啟動瞄準和射擊。

##### **外部**

外部滾輪環通常用於可在移動時執行的快速動作。這類動作的範例包括跳躍、衝刺閃避和重新裝填。

###### 秘訣

1. 為次要和第三動作建立[外環控制項叢集](/zh-TW/reference/system/touchadaptationkit/layout/game-streaming-touch-control-cluster-outer)，為此動作提供較大的點擊區域。在叢集中只使用單一控制項時，請考慮使用 `[<your secondary action control>, null]` 或 `[null, <your secondary action control>]` 的叢集語法，建立含有一個空白位置的雙控制項叢集，與 `[<your secondary action control>]` 相比，可有效地將單一控制項放置在環的稍內側或稍外側。在滾輪中的所有其他插槽都已填滿且需要更多空間之前，請勿在次要叢集中新增其他控制項。
2. 將次要動作放在主要動作右上方的外側，即插槽 1 和插槽 2。這樣不需要往螢幕中央伸展就能輕鬆觸及。在滾輪中的所有其他插槽都已填滿且需要空間之前，請勿分割次要插槽 (控制項叢集)。
3. 將第三動作放在內環的正下方，即插槽 4 和插槽 5。這是從主要動作快速移動拇指的舒適位置。在滾輪中的所有其他插槽都已填滿且需要空間之前，請勿分割第三插槽 (控制項叢集)。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-right-wheel-secondary.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=3820136d7784b4fe168cc4473f7f4986" alt="觸控調整套件右側滾輪的次要和第三動作放置位置" width="800" height="321" data-path="images/gdk/features/common/tak-right-wheel-secondary.png" />

4. 在第三插槽中使用類似跳躍的動作。

<Note>
  如果還有類似衝刺閃避的動作，請在插槽 4 使用衝刺閃避、在插槽 5 使用跳躍，而不要為第三動作使用控制項叢集。這樣可以有效地將空間一分為二，讓主要動作、跳躍、衝刺閃避和玩家移動之間能輕鬆組合。下圖顯示透過叢集，主要攻擊、衝刺閃避和跳躍之間可以輕鬆組合。
</Note>

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-wheel-slots-detail.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=12db2334010397f6a1e66699c641d544" alt="觸控調整套件右側滾輪中跳躍、衝刺閃避和主要攻擊動作的叢集" width="400" height="409" data-path="images/gdk/features/common/tak-wheel-slots-detail.png" />

5. 視其他動作需要與類似跳躍的動作多接近而定，考慮將它們放在次要插槽 (插槽 1 和 2 之間的叢集) 或插槽 6 中。在此基礎上，在插槽 5 和 6 之間建立叢集，即可在跳躍附近放置另一個動作。

下圖顯示在插槽 5 和 6 之間叢集三個動作，防禦和翻滾位於跳躍附近。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-wheel-slots-detail-2.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=2cef314bc99f062ec2e9711d8c5ba340" alt="觸控調整套件右側滾輪在跳躍附近叢集其他動作" width="400" height="388" data-path="images/gdk/features/common/tak-wheel-slots-detail-2.png" />

6. 盡可能使用[陀螺儀感應器控制項](/zh-TW/reference/system/touchadaptationkit/sensor-controls/game-streaming-touch-gyroscope)來控制鏡頭。這樣右拇指就能隨時空出來執行其他動作。不得已時，才使用相對右搖桿來控制鏡頭。

#### 上方

上方區域最適合不常用的選單或瀏覽類動作。此區域從右上角開始，並向中央延伸。

###### 秘訣

1. 在遊戲的電影式段落中，上方區域可用於略過動作。右上角是瀏覽動作的常見位置，而且很可能位於信箱模式或柱狀模式的黑邊內。
2. 左上角保留給系統按鈕。玩家會預期上方列中有類似暫停或瀏覽遊戲的動作。請考慮在此區域放置地圖、物品欄和選單等項目。

#### 下方

下方區域位於螢幕底部中央。此區域是控制項最不常使用的區域。在某些裝置上，可能很難觸及螢幕中央。

###### 秘訣

1. 雖然可以在下方區域放置空白控制項來調整控制項的位置，但請記住，各種裝置的外型規格可能會讓可見的控制項變少。請勿嘗試透過新增許多空白控制項，將控制項放置在底部角落。它們經常會與控制滾輪重疊。玩家經常會將滾輪稍微往下移，以取得舒適的遊玩姿勢。

### 遵循特定控制項類型和進階情境的秘訣

#### 4 向和 8 向方向鍵

方向鍵通常用於控制角色進行 4 向或 8 向移動。它也適合用來瀏覽選單。根據預設，方向鍵控制項的運作方式與實體方向鍵相同，可同時啟動多個方向。這也稱為 *8 向*。相較之下，4 向方向鍵一次只能啟動四個方向中的一個。若要將方向鍵限制為僅限 4 向，請將 `"interaction": {"activationType": "exclusive"}` 新增至控制項。

###### 秘訣

1. 當 2D 遊戲允許角色往包括斜角在內的八個方向移動時，請使用 8 向方向鍵。
2. 當 2D 遊戲只允許角色往左、右、上、下四個方向移動時，請使用 4 向方向鍵。
3. 控制選單時，請使用 4 向方向鍵。

#### 陀螺儀瞄準和射擊遊戲秘訣

將複雜遊戲調整為觸控控制項時，常見的情境是，雖然使用者只有兩隻拇指能合理地與觸控控制項互動，但可能需要一次啟動兩個以上的動作。為了協助處理這些較複雜的工作，可以使用陀螺儀來提供額外的輸入。

###### 秘訣

1. 使用陀螺儀來控制玩家視角鏡頭。能夠左右及前後傾斜裝置來精確控制鏡頭，對玩家來說很直覺。
2. 在遊戲中瞄準時，搭配滑鼠輸入使用陀螺儀 (指定 `"output": "relativeMouse"`) 遠優於使用搖桿 (指定 `"output": "relativeJoystick"`)，尤其是在第一人稱和第三人稱遊戲中。
3. 手機在實體空間中旋轉 90 度，通常會讓遊戲內角色轉動 120 度。此功能讓玩家在不同遊戲間切換時更容易上手，並讓控制項感覺更熟悉。
4. 建議搭配觸控板使用陀螺儀。較熟練的玩家會希望使用此組合來快速轉向，而大部分的精細瞄準則來自陀螺儀。
5. 考慮將搖桿與陀螺儀結合，提供更多遊玩方式。除了搖桿提供的功能之外，還可以使用陀螺儀控制項進行微調。
6. 「永遠開啟」樣式的陀螺儀具有最高的技術上限；不過，這種樣式不適合在行進中車輛上的玩家。
7. 在可行的情況下，針對選單和遊戲中不需要陀螺儀控制項的其他段落，使用不含陀螺儀控制項的不同配置。
8. 視動作以及遊戲如何支援這些能力而定，大多數按鈕可使用 `"renderAsButton": true` 的觸控板建立。瞄準+射擊是主要範例，但這也適用於格擋和投擲手榴彈等動作。以下是瞄準 (LT) + 射擊 (RT) 觸控板控制項的範例。

```JSON theme={null}
{
    "type": "touchpad",
    "axis": [
        {
            "input": "axisX",
            "output": "relativeMouseX",
            "sensitivity": 5
        },
        {
            "input": "axisY",
            "output": "relativeMouseY",
            "sensitivity": 2.5
        }
    ],
    "renderAsButton": true,
    "action": [ "rightTrigger", "leftTrigger" ],
    "styles": {
        "default": {
            "faceImage": {
                "type": "icon",
                "value": "fire"
            },
        }
    }
}
```

9. 一律將瞄準+射擊放在較靠近螢幕中央的位置，通常是右側滾輪外側的插槽 5。如果放在邊緣，當玩家無法將鏡頭完全轉向右側時，就會沒有空間可以滑動。
10. 為第一人稱或第三人稱射擊遊戲建置新的觸控配置時，請使用第一人稱射擊入門範本。每個動作的位置都經過充分分析。

Gears 5 使用陀螺儀和具有 `renderAsButton: true` 的觸控板作為瞄準+射擊控制項，以達成精確瞄準，如下列螢幕擷取畫面所示。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/gears-5-button-gyro.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=ae809ebbf213fd2672adf87bb935d962" alt="Gears 5 啟用陀螺儀之配置的螢幕擷取畫面" width="800" height="382" data-path="images/gdk/features/common/gears-5-button-gyro.png" />

#### 處理複雜和組合動作

只用兩隻拇指執行複雜動作，對玩家來說可能很有挑戰性。觸控調整套件提供數種機制，讓玩家能以觸控執行複雜動作。

###### 秘訣

1. 可以將[多個動作](/zh-TW/reference/system/touchadaptationkit/types/game-streaming-touch-action#example-2-action-is-pressing-the-left-bumper-and-the-right-bumper-buttons-simultaneously)指派給單一控制項。例如，同時按下左肩按鈕和右肩按鈕會啟動蹲下。下列按鈕定義可讓玩家按一下即可啟用蹲下。

<Note>
  將多個動作指派給控制項時，無法使用預設圖示。請務必自訂樣式，以指出控制項具有的語意動作，如下列範例所示。
</Note>

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

2. 可以將 `pullAction` 指派給[按鈕控制項](/zh-TW/reference/system/touchadaptationkit/controls/game-streaming-touch-button)。這可協助玩家使用一次觸控和拖曳動作來啟動兩個動作。例如，瞄準指派給 LT，射擊指派給 RT。下列按鈕定義可讓玩家在按住按鈕時瞄準，然後向外拉動來射擊。

```JSON theme={null}
{
    "type": "button",
    "action": "leftTrigger",
    "pullAction": "rightTrigger",
    "styles": {
        "default": {
            "faceImage": {
                "type": "icon",
                "value": "aim"
            }
        },
        "pulled": {
            "faceImage": {
                "type": "icon",
                "value": "fire"
            }
        }
    }
}
```

3. 具有 `action` 和 `actionThreshold` 的搖桿，除了其軸輸出之外，只有在達到 `actionThreshold` 的值時才會啟動指派的動作。例如，只有左搖桿輸入時會啟動走路，按下 RT 並搭配左搖桿輸入則會啟動衝刺。下列搖桿定義可讓玩家在超過閾值 2.5 時啟動衝刺。玩家只要使用左搖桿就能從走路切換為衝刺。

```JSON theme={null}
{
    "type": "joystick",
    "action": "rightTrigger",
    "actionThreshold": 2.5,
    "axis": {
        "input": "axisXY",
        "output": "leftJoystick",
        "deadzone": {
            "threshold": 0.05,
            "radial": true
        }
    },
    "styles": {
        "default": {
            "knob": {
                "faceImage": {
                    "type": "icon",
                    "value": "walk"
                }
            }
        },
        "activated": {
            "knob": {
                "faceImage": {
                    "type": "icon",
                    "value": "sprint"
                }
            }
        }
    }
}
```

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/yakuza-joystick-threshold.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=901640bc2b4fb144291abef8a5311445" alt="Yakuza Like a Dragon 使用搖桿動作閾值的螢幕擷取畫面" width="800" height="390" data-path="images/gdk/features/common/yakuza-joystick-threshold.png" />

在 Yakuza Like a Dragon 中，如果左搖桿輸入超過閾值 2.5，就會啟動右扳機以進行衝刺。

4. 具有 "action" 的搖桿可在使用搖桿時啟動指派的動作。例如，按下左肩按鈕會啟動環形選單，並可透過移動右搖桿進行選取。下列搖桿定義可讓玩家按住左肩按鈕，並使用右搖桿從環形選單中選取動作。

```JSON theme={null}
{
    "type": "joystick", 
    "action": "leftBumper",
    "axis": {
        "input": "axisXY",
        "output": "rightJoystick",
        "deadzone": {
            "threshold": 0.05,
            "radial": true
        }
    },
    "styles": {
        "default": {
            "knob": {
                "faceImage": {
                    "type": "icon",
                    "value": "inventory"
                }
            }
        }
    }
} 
```

在 Sea of Thieves 中，會使用具有 `action` 的搖桿，透過環形選單來選取裝備。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/sea-of-thieves-radial.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=23c34807b7afd61f5db6d82fae646a2b" alt="Sea of Thieves 使用環形選單的螢幕擷取畫面" width="800" height="355" data-path="images/gdk/features/common/sea-of-thieves-radial.png" />

### 使用觸控調整套件編輯器

[適用於 Visual Studio Code 的觸控調整套件 (TAK) 編輯器延伸模組](/zh-TW/build/core-features/common/game-streaming/tak-editor/game-streaming-tak-editor)是用於建立、預覽、驗證及封裝觸控調整套件組合 (TAB) 的工具。這些檔案的副檔名為 .takx。您可以在 VS Code 中針對 XBOX Game Streaming 上的遊戲使用 TAK 編輯器，而不需要進行中的遊戲串流。使用此 VS Code 延伸模組可提供內嵌 Intellisense，並簡化觸控控制項的撰寫體驗。

<img src="https://mintcdn.com/microsoft-4404708b/CwRBzaXvHw9zaPoe/images/gdk/features/common/tak-editor.png?fit=max&auto=format&n=CwRBzaXvHw9zaPoe&q=85&s=2207b64653f18267e0ee857707bc1681" alt="TAK 編輯器 Visual Studio Code 延伸模組的螢幕擷取畫面" width="800" height="522" data-path="images/gdk/features/common/tak-editor.png" />

### 變更觸控控制項以符合目前的遊戲內情境

遊戲可以在執行階段根據動態遊戲狀態，變更觸控配置或修改配置的狀態。這兩種方法可以搭配使用，為玩家打造最自然的體驗。如需詳細資訊，請參閱有關如何[根據遊戲狀態變更觸控配置或修改狀態](/zh-TW/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-touch-changing-layouts-game-state#change_layout)的文件。

例如，Minecraft Dungeons 會使用觸控配置狀態修改，隨著玩家學會新能力，逐步顯示遊戲機制。

<img src="https://mintcdn.com/microsoft-4404708b/nTPVBuko1tKGsd6P/images/gdk/features/common/minecraft-dungeons-1.webp?fit=max&auto=format&n=nTPVBuko1tKGsd6P&q=85&s=0dbaeb44b262947c80f730c8de76bc7d" alt="Minecraft Dungeons 只有最少控制項之觸控配置的螢幕擷取畫面" width="800" height="384" data-path="images/gdk/features/common/minecraft-dungeons-1.webp" />

在 Minecraft Dungeons 中，一開始只會顯示移動和近戰等基本控制項。

<img src="https://mintcdn.com/microsoft-4404708b/nTPVBuko1tKGsd6P/images/gdk/features/common/minecraft-dungeons-2.webp?fit=max&auto=format&n=nTPVBuko1tKGsd6P&q=85&s=c4543a9539dea36ab451de24ebe75c6d" alt="Minecraft Dungeons 新增其他控制項之觸控配置的螢幕擷取畫面" width="800" height="383" data-path="images/gdk/features/common/minecraft-dungeons-2.webp" /> 在 Minecraft Dungeons 中，第一次取得遠程武器時，會新增遠程攻擊控制項。

### 使用電影式配置，在影片和過場動畫期間保持沉浸感

影片和過場動畫的主要用途是讓玩家觀賞以享受遊戲的故事。必要的控制項通常僅限於暫停和略過等項目。為了打造最具沉浸感的觀賞體驗，盡可能移除控制項非常重要。

###### 秘訣

1. 可能的話，只在玩家需要時才顯示觸控控制項。
   1. 偵測玩家的觸控輸入相對簡單。如需詳細資訊，請參閱[使用 IGameInput 為遊戲建置原生觸控介面](/zh-TW/build/core-features/common/game-streaming/game-streaming-native-touch-igameinput)和完整的 [SimpleCloudAwareSample](https://github.com/microsoft/Xbox-GDK-Samples/tree/main/Samples/xCloud/SimpleCloudAwareSample) 遊戲範例。
   2. 即使顯示了觸控調整套件配置，仍可偵測觸控。透過使用原生觸控 API，玩家可以點選螢幕，讓遊戲顯示最精簡的電影式配置。在一段時間未偵測到觸控輸入後，遊戲可以隱藏此配置。

例如，Persona 3 Reload 具有搭配原生觸控偵測的自訂電影式配置。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/persona-3-cinematic-1.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=ac5ea63976b8ed8831ee90fe5378427d" alt="Persona 3 Reload 過場動畫期間空白觸控配置的螢幕擷取畫面" width="800" height="365" data-path="images/gdk/features/common/persona-3-cinematic-1.png" />

在 Persona 3 Reload 中，播放過場動畫時會隱藏觸控控制項。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/persona-3-cinematic-2.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=edfd7755a929611e2db4827e9d0ac8a5" alt="Persona 3 Reload 過場動畫期間電影式觸控配置的螢幕擷取畫面" width="800" height="352" data-path="images/gdk/features/common/persona-3-cinematic-2.png" />

在 Persona 3 Reload 中，偵測到原生觸控時會顯示觸控控制項，並顯示一小組可略過過場動畫的控制項。

2. 或者，也可以在不修改遊戲程式碼的情況下達成類似的效果。可以將右上方區域中控制項的[觸控配置圖層](/zh-TW/reference/system/touchadaptationkit/layout/game-streaming-touch-layer)，與使用 `toggle` 屬性和圖層動作的[按鈕控制項](/zh-TW/reference/system/touchadaptationkit/controls/game-streaming-touch-button)搭配使用。

### 使用原生觸控完整自訂觸控互動

原生觸控是在觸控螢幕裝置上玩遊戲最熟悉的方式。行動裝置上的玩家很熟悉內建直接觸控支援來控制遊戲的遊戲。透過使用 `GameInput` API，您可以在遊戲中啟用原生觸控。它提供更直覺、更自然的方式來與遊戲世界互動。原生觸控可以補充或取代重新對應至 XBOX 控制器按鈕和搖桿的觸控調整套件覆疊。如需詳細資訊，請參閱[使用 IGameInput 為遊戲建置原生觸控介面](/zh-TW/build/core-features/common/game-streaming/game-streaming-native-touch-igameinput)和完整的 [SimpleCloudAwareSample](https://github.com/microsoft/Xbox-GDK-Samples/tree/main/Samples/xCloud/SimpleCloudAwareSample) 遊戲範例。

以下是一些原生觸控支援的範例。

* **物品欄管理：** 原生觸控可讓玩家直接點選物品，甚至使用拖曳等技巧，讓選取和裝備物品變得更輕鬆、更快速。與傳統以控制器為基礎的管理方式相比，這可以大幅提升使用品質。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/minecraft-dungeons-inventory.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=45e406e944aed8d654cb88f2dc4ad39e" alt="Minecraft Dungeons 物品欄管理的螢幕擷取畫面" width="800" height="400" data-path="images/gdk/features/common/minecraft-dungeons-inventory.png" />

在 Minecraft Dungeons 中，物品欄管理是使用原生觸控完成的。

* **選單：** 在觸控螢幕上操作選單更加直覺。只要點選想要的項目即可，不必使用方向鍵或搖桿瀏覽到該項目。
* **完整原生觸控支援：** 有些遊戲支援完整的原生觸控，不需要使用觸控調整套件重新對應至控制器。這可讓玩家完全專注於行動遊戲體驗。這些遊戲通常已經有行動版本或支援觸控友善介面，因此支援原生觸控相對容易。主要設計為使用滑鼠遊玩的遊戲，通常也比較容易支援原生觸控。

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/fortnite-native-touch.png?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=17e7c2a85266dd9d5421134ef188fb1f" alt="Fortnite 觸控遊戲過程的螢幕擷取畫面" width="800" height="365" data-path="images/gdk/features/common/fortnite-native-touch.png" />

在 Fortnite 中，透過 XBOX Cloud Gaming 遊玩時支援原生觸控。

### 使用自訂資產以符合遊戲的美術風格

雖然您可以從內建的圖示集中為控制項選取資產，但最具沉浸感且最無縫的體驗，是使用與遊戲美術風格相符的圖稿來自訂控制項。這麼做能讓觸控調整套件覆疊感覺目的明確、自然，且是遊戲不可或缺的一部分。這與單純重新對應僅考量控制器而設計的遊戲形成對比。

例如，Minecraft Dungeons 使用反映遊戲內設計語言的方塊風格圖示。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/minecraft-dungeons-assets.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=19c7411ce1c7857fe44ec6e97e09f80a" alt="Minecraft Dungeons 使用自訂資產以符合遊戲風格的螢幕擷取畫面" width="800" height="379" data-path="images/gdk/features/common/minecraft-dungeons-assets.png" />

在 Minecraft Dungeon 中，自訂資產符合遊戲獨特的美術風格。

### 針對觸控控制項變更遊戲內 UI、提示和控制項重新對應

UI、提示和控制項重新對應通常會根據玩家使用的輸入類型而變更。例如，如果遊戲同時支援遊戲台以及鍵盤和滑鼠輸入類型，通常會在偵測到遊戲台輸入時顯示遊戲台專用的按鈕提示。偵測到鍵盤或滑鼠輸入時，遊戲通常會顯示鍵盤和滑鼠 UI。

這種以輸入類型為基礎的動態使用者體驗，也適用於觸控調整套件控制項。透過使用 [XGameStreamingGetGamepadPhysicality API](/zh-TW/reference/system/xgamestreaming/functions/xgamestreaminggetgamepadphysicality)，可以識別輸入是來自實體遊戲台，還是來自已轉譯為虛擬控制器輸入的觸控配置。據此，可以自訂使用者體驗，向玩家顯示最適當的圖像。

例如，Gears 5 會根據輸入類型動態調整遊戲內提示。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/gears-5-button-prompt.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=fa055a16a14022580bdc2ae42c7feda8" alt="Gears 5 遊戲台按鈕提示的螢幕擷取畫面" width="800" height="361" data-path="images/gdk/features/common/gears-5-button-prompt.png" />

在 Gears 5 中，使用遊戲台輸入類型時會提供 UI 和提示。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/gears-5-button-remapping.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=d88cb260eb07ee69c950b14afc7fb4c1" alt="Gears 5 遊戲台按鈕重新對應的螢幕擷取畫面" width="800" height="375" data-path="images/gdk/features/common/gears-5-button-remapping.png" />

在 Gears 5 中，使用已重新對應輸入的遊戲台輸入類型時會提供 UI 和提示。

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/gears-5-touch-prompt.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=fc2e7a47de33a028403cf922329ba208" alt="Gears 5 觸控提示的螢幕擷取畫面" width="800" height="369" data-path="images/gdk/features/common/gears-5-touch-prompt.png" />

在 Gears 5 中，觸控輸入類型會提供與觸控控制項圖示相符的 UI 和提示。Gears 5 會針對每種輸入類型智慧地處理重新對應，因此使用觸控遊玩時，不會顯示或使用重新對應的控制器輸入。

### 檢查觸控控制項和 XBOX Game Streaming 的常見問題

#### 遊戲過程中中斷連線

在行動裝置上，玩家有許多情況會短暫離開遊戲。例如，前往主畫面、查看訊息和新聞，以及撥打電話。這些情況會導致串流用戶端中斷連線或暫停。因此，可能會與遊戲產生狀態不一致的情形。

###### 秘訣

1. 確保遊戲從中斷連線狀態返回時，觸控控制項 (包括配置、資產和狀態) 能正確載入和運作。使用 API 控制觸控控制項的狀態時，這一點尤其重要。
2. 玩家中斷連線時，盡可能暫停遊戲，以避免進度遺失或遊戲結束的情況。這可以透過偵測[受限事件](/zh-TW/build/console-features/console-workflows/xbox-game-life-cycle)或串流用戶端的中斷連線來完成。

#### 與各種裝置類型的相容性

能夠使用觸控控制項的裝置類型有很多種，包括手機、平板電腦和二合一電腦。這些裝置的特性各不相同，包括螢幕大小的差異以及是否具有感應器，如果未考量這些差異，可能會無法舒適地遊玩。

###### 秘訣

1. 確保所有觸控控制項在各種螢幕大小的裝置上都能運作，且容易觸及。
2. 確認裝置上感應器的可用性。如果無法使用感應器，請提供不需要感應器的其他選項。例如，您的遊戲使用陀螺儀進行瞄準。如果裝置上沒有陀螺儀，請改用觸控板控制項。
3. 若要輕鬆測試不同的螢幕大小，可以使用電腦變更電腦版內容測試應用程式或網頁瀏覽器的視窗大小。如果手邊沒有支援觸控的電腦，內容測試應用程式提供將滑鼠點選視為觸控事件的設定，可進行基本測試。最後，使用 [TAK 編輯器延伸模組](/zh-TW/build/core-features/common/game-streaming/tak-editor/game-streaming-tak-editor)預覽視窗檢視，即可輕鬆檢視不同尺寸的觸控控制項。


## Related topics

- [Windows 與 ROG XBOX Ally 總覽](/zh-TW/paths/windows/overview.md)
- [XBOX 遊戲開發文件](/zh-TW/index.md)
- [标准 XBOX 控制器触控控制布局](/zh-CN/build/core-features/common/game-streaming/building-touch-layouts/samples/game-streaming-touch-tak-sample-full-layout.md)
- [使用 GDKX 建置並執行你的第一個主機遊戲](/zh-TW/home/build-first-title/first-console-title-walkthrough.md)
- [驾驶类触控控制布局](/zh-CN/build/core-features/common/game-streaming/building-touch-layouts/samples/game-streaming-touch-tak-sample-driving.md)
