https://dev.epicgames.com/documentation/ko-kr/unreal-engine/command-line-arguments-in-unreal-engine
- Additional Launch Parameters라고도 불린다.
- 시작 시 Engine의 실행 방식 Customize 한다.
- Project를 Test 및 Optimize하기에 유용한 툴
- 이러한 Setting은 전반적인 조작부터 상세한 옵션까지 그 범위가 다양하다.
- Unreal Editor가 Full Editor Mode가 아닌 GameMode로 실행 되도록 장제
- 특정 맵이 게임 내에서 특정 해상도 및 Frame Rate로 실행되도록 선택
Command로 Command-line Argument 전달
-
더보기
<EXECUTABLE> [URL_PARAMETERS] [ARGUMENTS]
- EXECUTABLE
- 실행파일 이름
- URL_PARAMETERS
- URL 파라미터
- ARGUMENTS
- Command Flag 또는 Key-Value Pair
- EXECUTABLE
-
더보기
UnrealEditor.exe MyGame.uproject /Game/Maps/BonusMaps/BonusMap.umap?game=MyGameMode -game -fullscreen
Unreal Editor로 Command-line Argument 전달
- Unreal Editor는 Command-line Argument로 Standalone Game Customize를 지원한다.
- Editor에서 Command-line Argument는 Additional Launch Parameter라 불린다.
- 이 옵션은 Play in Standalone Game 모드에서만 지원된다.
- 또한 Multiplay Game Test 목적으로 Dedicated Server로만 Command-line Argument를 전달하는 작업도 지원한다.
- Dedicated Server를 위한 Command-line Argument는 다음과 같다.
- Server Map Name Override
- Map Name을 URL Parameter로 전달
- Additional Server Game Options
- 추가 URL Parameter 전달
- Additional Server Launch Parameters
- URL Parameter 외의 추가 Command-line Flag, Key-Value Pair를 전달
- Server Map Name Override
Game Launch Parameter
- Edit -> Editor Preferences -> Level Editor -> Play로 이동해 Play in Standalone Game 이름의 Section 탐색
- 이 Section의 Additional Launch Parameter를 위한 TextBox에 Command-line Argument를 입력한다.
Server Launch Parameter
- Edit -> Editor Preferences -> Level Editor -> Play 로 이동해 Multiplayer Options 이름의 Section 탐색
- Launch Separate Server 항목을 활성화하고, Run Under One Process 항목을 비활성화
- 위 조건을 충족해야 Dedicated Server에 대한 Command-line Argument를 지정할 수 있다.
- Run Under One Process가 비활성화 된 경우,
각 Client가 Editor의 개별 Instance를 Spawn하기 때문에 Client의 실행 속도가 느려진다.
- Multiplayer Options Section에서 Server로 이동
- 이 Section에서 3 종류의 Command-line Argument를 지정할 수 있다.
- Server Map Name Override
- Additional Server Game Options
- Additional Server Launch Parameters
- 이 Section에서 3 종류의 Command-line Argument를 지정할 수 있다.
Shortcut으로 Command-line Argument 전달
- 실행 파일에 대한 Shrotcut 생성
- Shortcut을 우클릭하여 Properties 선택
- Properties의 Shortcut 이름의 Section에서 Target 이름의 Field 끝에 Command-line Arrgument 추가
- 이후 해당 Shortcut을 실행할 경우, 원본 실행 파일로 Command-line Argument가 전달된다.
Custom Command-line Argument 생성
- Comamnd-line에 원하는 Flag나 Key-Value Pair를 전달하여 자신만의 Argument를 생성할 수 있다.
- 이를 위해서는 Code 내 Command-line에서 해당 Argument를 읽어야만 한다.
- Project Code가 Custom Command-line Argument를 읽지 않고 파싱하는 경우,
해당 Argument는 무시된다.
Flag
-
더보기
UnrealEditor.exe MyGame.uproject -game
- 위 예시에서 -game가 Flag이다.
- -game은 대상을 Game Mode로 실행하고 싶다는 의미이다.
Flag Parsing
-
더보기
UnrealEditor.exe MyGame.uproject -myflag
bool bMyFlag = false; if (FParse::Param(FCommandLine::Get(), TEXT("myflag"))) { bMyFlag = true; }
Key-Value Pair
-
더보기
UnrealEditor.exe MyGame.uproject -game -windowed -ResX=1080 -ResY=1920
- Key-Value Pair는 특정 값을 지정하는 Setting Switch이다.
- Switch에는 현재 상태 뿐 아니라 setting도 동반되어야 한다.
- Key-Value Pair는 특정 값을 지정하는 Setting Switch이다.
Key-Value Pari Parsing
-
더보기
UnrealEditor.exe MyGame.uproject -mykey=42
int32 myKeyValue; if (FParse::Value(FCommandLine::Get(), TEXT("mykey="), myKeyValue)) { // 프로그램이 이 'if' 명령문을 입력하는 경우 mykey가 명령줄에 존재했던 것입니다 // myKeyValue는 이제 명령줄을 통해 전달된 값을 포함합니다 }
- Engine/Source/Runtime/Core/Public/Misc/CommandLine.h에서
Command-line과 상호작용 할 수 있는 함수들에 대한 더 자세한 정보를 확인할 수 있다.
Command-line Argument Reference
URL Parameter
- URL Parameter는 Game이 시작될 때 특정 Map을 로드하도록 강제한다.
- 비록 선택사항이지만, 제공될 경우에는 실행 파일 이름을 따르거나 존재하는 모든 Flag를 따른다.
Map Name
- Map Directory 내에 위치한다면 어떤 Map Name이든 표현 가능
- 선택적으로 .umap 확장자를 포함할 수 있음
- Map Directory 경로 내에 없는 Map을 다음 두가지 조건을 만족해야 한다.
- 절대 경로를 사용 혹은 Map Driectory 기준의 상대 경로 사용.
- Map 뒤에 반드시 .umpa 파일 확장자 요구
Server IP Address
- Server IP Address를 URL Parameter로 사용해 Game Client를 Dedicated Server에 연결 할 수 있다.
Additional Parameter
- Map Name 혹은 Server IP Address에 덧붙이는 방식으로 Additional Parameter 지정 가능
- 각 옵션은 ?로 시작하고 =로 값이 설정된다.
- 옵션 앞에 -를 붙이면 캐시된 URL Option에서 해당 Option이 제거된다.
Example
- Map Directory에 위치한 Map으로 게임 열기
-
더보기
MyGame.exe MyMap
-
- Map Directory 외부에 위치한 Map으로 게임 열기
-
더보기
MyGame.exe /Game/Maps/BonusMaps/BonusMap.umap
-
- Map Directory 외부에 위치한 맵으로 Unreal Editor에서 Game 열기
-
더보기
UnrealEditor.exe MyGame.uproject /Game/Maps/BonusMaps/BonusMap.umap?game=MyGameMode -game
-
- Game Client를 Dedicated Server에 연결
-
더보기
UnrealEditor.exe MyGame.uproject /Game/Maps/BonusMaps/BonusMap.umap -server -port=7777 -log UnrealEditor.exe MyGame.uproject 127.0.0.1:7777 -game -log
-
Flag and Key-Value Reference
Read Command-line Argument from File
- 다음 상황에서 매우 유용함
- 매우 많은 수의 Command-line Argument를 사용하는 경우
- 동일한 Argument들을 자주 재사용하는 경우
- Windows Command line 길이 제한에 걸리는 경우
-
더보기
<EXECUTABLE> -CmdLineFile=ABSOLUTE\PATH\TO\FILE.txt
유용한 Command-line Argument
- Common
- Rendering 및 GPU
- CPU 및 Memory
- Debugging
'UE5 > Architecture' 카테고리의 다른 글
[Architecture] Version Control of Asset and Package (0) | 2024.05.07 |
---|---|
[Architecture] Config File (0) | 2024.05.06 |
[Architecture] Task System (0) | 2024.05.06 |
[Architecture] Programming Subsystem (0) | 2024.05.06 |
[Architecture] String (0) | 2024.05.06 |