개요
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 Controller | controller_neptune |
Steam Controller | controller_steamcontroller_gordon |
Xbox 360 | controller_xbox360 |
Xbox One | controller_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
2) Go to the developer section and turn on "Steam Input Layout Dev Mode"
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
2) Select "Export layout"
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:
동작 매니페스트 파일을 사용하는 게임 디버깅
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 );