概覽
除了使用 Steam 工作坊來託管配置檔案以外,也可以選擇透過遊戲 Depot 直接將配置與遊戲結合。 將配置與遊戲 Depot 結合能帶來數種好處:
- 可以將官方配置導入 Perforce 或其它版本控制工具
- 更容易管理遊戲在不同分支中,或在公共與私人 AppID 中的配置
- 更新是原子性(Atomic)的,無須透過 Steamworks 中的兩個發佈步驟完成
格式
動作資訊清單檔案是
遊戲內動作檔案的延伸,當中包含額外的區段,會根據類型列出官方配置:
"Action Manifest"
{
"configurations"
{
}
"actions"
{
}
"localization"
{
}
}
若希望了解有關動作和在地化區段的資訊,請見
遊戲內動作檔案一文。
配置列表
在控制器配置區段中,配置會先按照控制器類型排列,接著為載入優先順序。 「path」值是根據動作資訊清單檔案在磁碟上的相對位置所列出的。
"Action Manifest"
{
"configurations"
{
"controller_xboxone"
{
"0"
{
"path" "xbox_controller.vdf"
}
}
"controller_steamcontroller_gordon"
{
"0"
{
"path" "steam_controller.vdf"
}
"1"
{
"path" "steam_controller_motion_controls.vdf"
}
}
}
"actions"
{
}
"localization"
{
}
}
支援的控制器類型字串:
Steam Deck 控制器 | controller_neptune |
Steam 控制器 | controller_steamcontroller_gordon |
Xbox 360 | controller_xbox360 |
Xbox One | controller_xboxone |
Xbox Elite 控制器 | controller_xboxelite |
PlayStation 4 控制器 | controller_ps4 |
PlayStation 5 控制器 | controller_ps5 |
Nintendo Switch Pro 控制器 | controller_switch_pro |
通用手把 | controller_generic |
建立動作資訊清單檔案
動作資訊清單檔案主要有兩種建立方式,一種是從空白檔案開始,另一種是使用現有的 IGA 檔案。
從遊戲內動作(IGA)檔案開始
第 1 步 - 設定 Steam 輸入的開發者模式
在編輯動作資訊清單檔案之前,我們需要啟用 Steam 輸入的開發者模式,才能以開發者的身分匯出配置,以及在編輯動作清單的過程中出錯時,能收到錯誤訊息。
1) 進入 Steam Big Picture 模式 -> 設定 -> 系統,並開啟 Steam 的開發者模式
2) 前往開發者區塊,然後啟用「Steam 輸入配置開發者模式」
第 2 步 - 儲存配置
如果您已經有 IGA 檔案,前往控制器配置畫面即可將目前的配置儲存下來。
1) 點選齒輪圖示
2) 點選「匯出配置」
3) 為您的遊戲選擇標題和說明,然後匯出配置
提醒:您需要仔細檢查動作資訊清單檔案,是否有為您遊戲所有支援的語言建立在地化索引碼。
第 3 步 - 找到配置
接下來,執行以下 Steam 網址來將配置傾印至作業系統特定的文件資料夾中,例如 Windows 的「我的文件」。 網址:
Windows 命令列
start steam://dumpcontrollerconfig?appid=X
Linux 命令列
xdg-open steam://dumpcontrollerconfig?appid=X
將配置和既有 IGA 檔案複製到遊戲資料夾中選定的位置。
第 4 步 - 將 IGA 檔轉換為動作資訊清單檔
若要將 IGA 檔轉換為動作資訊清單,需編輯檔案加入「configuration」(配置)區段,當中包含剛剛匯出的控制器配置列表。 出自 Steamworks SDK 的範例如下:
"configurations"
{
"controller_xboxone"
{
"0"
{
"path" "xbox_controller.vdf"
}
}
"controller_steamcontroller_gordon"
{
"0"
{
"path" "steam_controller.vdf"
}
}
}
第 5 步 - 進行 Steamworks 設定
要在合作夥伴網站進行 Steamworks 設定,請前往「Steam 輸入」設定。 接下來在下拉選單中選擇「自訂配置(隨同遊戲)」,然後輸入動作資訊清單所在的路徑:
為使用動作資訊清單檔案的遊戲進行偵錯
透過 Steam 執行遊戲時,會自動從遊戲 Depot 抽取動作資訊清單檔案。 若是透過 IDE 執行並已安裝遊戲,Steam 也會使用 Steam Depot 中的動作資訊清單檔案。 然而,若在遊戲未安裝於 Steam 的情況下執行,或需要在本機進行更改,則可以使用 SetInputActionManifestPath API 呼叫來覆寫動作資訊清單路徑。 當次的 Steam 工作階段結束前都會記得覆寫設定。 以下為在 Steamworks SDK 中的使用範例:
char rgchCWD[1024];
if ( !_getcwd( rgchCWD, sizeof( rgchCWD ) ) )
{
strcpy( rgchCWD, "." );
}
char rgchFullPath[1024];
#if defined(_WIN32)
_snprintf( rgchFullPath, sizeof( rgchFullPath ), "%s\\%s", rgchCWD, "steam_input_manifest.vdf" );
#elif defined(OSX)
_snprintf( rgchFullPath, sizeof( rgchFullPath ), "%s/steamworksexample.app/Contents/Resources/%s", rgchCWD, "steam_input_manifest.vdf" );
#else
_snprintf( rgchFullPath, sizeof( rgchFullPath ), "%s/%s", rgchCWD, "steam_input_manifest.vdf" );
#endif
SteamInput()->SetInputActionManifestFilePath( rgchFullPath );