Steamworks 문서
동작 매니페스트 파일

개요

Steam 창작마당 사용하여 구성을 호스팅하는 것 이외에도, 게임은 직접 게임 디포에 구성을 묶도록 선택할 수도 있습니다. 게임 디포에 구성을 묶으면 얻을 수 있는 장점이 여러 가지 있습니다.
  • 공식 구성을 Perforce 또는 다른 버전 제어 도구로 체크인할 수 있습니다.
  • 서로 다른 게임 브랜치 간 또는 공개 및 비공개 AppID 간의 구성 관리가 더 쉬워집니다.
  • 업데이트는 Steamworks의 두 가지 게시 단계가 아닌 단일 방식으로 진행됩니다.

형식

동작 매니페스트 파일은 인-게임 동작 파일의 확장 파일로써 추가 섹션에 공식 구성이 유형에 따라 나열되어 있습니다.
"Action Manifest" { "configurations" { } "actions" { } "localization" { } }
동작 및 현지화 섹션에 대한 자세한 사항은 인-게임 동작 파일 문서를 참고해 주세요.

구성 목록

컨트롤러 구성 섹션에는 컨트롤러 유형과 불러오기 우선순위에 따라 구성이 나열되어 있습니다. '경로' 값은 디스크 내 동작 매니페스트 파일의 위치를 기준으로 나열되어 있습니다.
"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 Controllercontroller_neptune
Steam Controllercontroller_steamcontroller_gordon
Xbox 360controller_xbox360
Xbox Onecontroller_xboxone
Xbox One Elite 컨트롤러controller_xboxelite
PlayStation 4 컨트롤러controller_ps4
PlayStation 5 컨트롤러controller_ps5
Nintendo Switch Pro 컨트롤러controller_switch_pro
일반 게임패드controller_generic

동작 매니페스트 파일 설정

매니페스트 파일을 설정하는 주요 방법은 2가지가 있습니다. 처음부터 설정하거나 기존의 IGA 파일을 사용해서 설정하는 방법입니다.

게임 내 동작 파일을 사용하여 시작

Step 1 - Setting up Dev-mode for Steam Input

Before editing the Action Manifest File, we need to enable Steam Input dev-mode so that we can export configurations as a developer and receive error messages if we make mistakes when editing the actions manifest.

1) Go to Steam Big PIcture Mode ->Settings->System and turn on Dev mode for Steam

export_prestep_1.png

2) Go to the developer section and turn on "Steam Input Layout Dev Mode"

export_prestep_2.png

Step 2 - Save a configuration

If you have an existing IGA file you can save your current configuration out in the controller configuration screen.

1) Select the Gear Icon

export_step_1.png

2) Select "Export layout"

export_step_2.png

3) Select a Title and Description for you game and export the configuration.
Reminder: you will want to double check that you've setup localization tokens in the action manifest for each language supported by your game

3단계 - 구성 찾기

Next you will run the following Steam URL to dump the configuration into your OS-specific documents folder, ex: My Documents on Windows. URL:

Windows Commandline
start steam://dumpcontrollerconfig?appid=X
Linux Commandline
xdg-open steam://dumpcontrollerconfig?appid=X

Copy both the configuration and your existing IGA file into the desired location inside the game folder.

4단계 - IGA 파일을 동작 매니페스트 파일로 변환

To convert your IGA file to an Action Manifest edit the file and add a "configuration" section including a listing for the controller configuration you just exported. This is an example from the Steamworks SDK:
"configurations" { "controller_xboxone" { "0" { "path" "xbox_controller.vdf" } } "controller_steamcontroller_gordon" { "0" { "path" "steam_controller.vdf" } } }

Step 5 - Set the Steamworks settings

To set your Steamworks settings in the partner site, navigate to the Steam Input settings. Next set the dropdown to "Custom Configuration (Bundled with game)" and enter the path where the action manifest is located:

gamebundledconfigdropdown.PNG

동작 매니페스트 파일을 사용하는 게임 디버깅

When running the game through Steam the Action Manifest file will automatically be pulled from your game depots. If you're running via the IDE and have the game installed Steam will also use the Action Manifest file from your Steam depots. However if you're running without the game installed in Steam or have local changes you need to make then you can override the Action Manifest path with the SetInputActionManifestPath API call. This override will be remembered for the rest of the Steam session. There's an example of it's use in the 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 );