콘솔 명령의 용도
콘솔 명령의 용도는 주로 다음과 같습니다.
1. 디버깅 정보를 화면에 UI로 표시
↓ 예 : stat fps / stat unit / stat unitgraph. 얼마나 처리 시간이 걸려 있는지를 표시한다.
↓ 예 : stat particles. 파티클 통계. 지금 얼마나 나와 있고, 얼마나 처리가 걸려 있는지를 표시합니다.
2. 디버깅에 그리기를 변경
↓ 예 : show bounds. 각 Actor의 바운딩 박스를 표시합니다.
3. 디버깅을 위한 움직임 전환
↓ 예 : ToggleDebugCamera. 디버깅 용 카메라를 자유롭게 움직일 수있다. 또한 화면 중앙에있는 Actor와 자료의 정보도 볼 수 있습니다.
4. 게임을하는 동안 작업을 수행 (예 : RestartLevel)
5. 편집기의 동작을 변경 (예 : culture = kr)
명령 사용 방법
명령을 입력하는 방법에는 여러 가지가 존재합니다. 주요 방법은 다음 네 가지입니다. 1 번과 2 번은 자주 사용하므로 기억합시다.
1. OutputLog (출력 로그) 창에서 사용
↓ 1 단계 : Output Log (출력 로그) 창을 표시한다.
↓ 2 단계 : 나온 창 하단에 입력한다.
2. 게임 실행 중에 Console Key를 누르면 나타나는 입력란
↓ 1 단계 : 프로젝트 설정 -> 입력 -> Console-> Console Keys 키를 추가합니다.
기본적으로 "`"를 사용합니다.
↓ 2 단계 : 게임 실행 중에 "`"키를 누르면 이렇게 명령 입력 필드가 표시됩니다.
3. Blueprint의 Execute Console Command 노드에서 입력
4. C ++에서 입력
다음의 방법으로 C ++에서도 명령을 보낼 수있다. PC는 PlayerController.
PC-> ConsoleCommand ( <Command>, true );
자주 사용하는 명령 목록
Basic
DumpConsoleCommands | 콘솔 명령 목록을 Output Log로 출력한다. 모든 명령이 출력되는 것은 아니기 때문에 주의. |
조작
Open <LevelName (MapURL)> | 이전 설정을 그대로 유지하면서 지정된 수준을 연다. (Persistent Level의 대체) |
Travel <LevelName (MapURL)> | 모든 설정을 초기화하고 지정된 레벨을 연다. (Persistent Level의 대체) |
RestartLevel | 현재의 수준을 다시로드. |
slomo <PlayRate> | 슬로우 모션 / 빨리 감기하는 ex. slomo 0.5 |
quit 또는 exit | 게임을 종료 |
일반적인 Debug 계 명령
getall <Class name> <Property name> | 대상 클래스의 속성을 OutputLog 창에 한 칸에 출력한다. |
obj list | OutputLog 창에 각 개체의 수와 사용 메모리 양을 출력한다.
주회 플레이 메모리 누수 (개체 수 증가) 검사에 사용할 수있다. |
DisableAllScreenMessages | 2D 스크린에서 디버그 표시를 비활성화 |
stat levels | 현재 로드된 Level보기. 로드에 걸린 시간도 표시된다.
녹색 : Unload 상태 빨간색 : Load 상태 |
ViewMode <ViewModeName> | 그리기 방법을 전환합
ViewModeName에는 다음의 것이있다. Lit / Unlit / Wireframe / LightingOnly / ShaderComplexity 등 |
ToggleDebugCamera | 게임 중의 카메라를 떠나 디버깅 다른 카메라로 전환한다.
동시에 주시 지점의 자산 정보를 화면에 표시한다. |
log list | 로깅 카테고리 |
log <category> <level> | category의 로깅 수준을 변경한다. <로그 수준> NoLogging Fatal Error Warning Display Log Verbose VeryVerbose All <편리 명령> log LogStreaming Verbose <- 자산로드 관련 로그를 출력 |
ce <EventName> | 표시되는 모든 레벨의 <EventName> 사용자 정의 이벤트를 호출한다. |
KismetEvent <Object 이름 or *> <EventName> | Blueprint의 이벤트를 직접 호출. <Object 이름>을 지정하는 장소에는 「*」을 지정하면 전체 BP에 날릴. |
Memory
stat MemoryPlatform | 종합적인 현재의 메모리 사용량과 남은 양 표시 |
stat MemoryAllocator | |
stat Memory | |
stat MemoryStaticMesh | |
stat ParticleMem | |
stat SceneMemory | |
mem Detailed | 로그에 메모리 사용량을 한꺼번에 출력 |
memreport (-full) | 메모리 상태를 Saved / Profiling / MemReports 폴더 아래에 파일로 출력한다. 확장자는 memreport, 단순한 텍스트. |
rhi.DumpMemory | RHI 자원 메모리 덤프. 모든 항목이 mem Detailed에 포함되어 있는
rhi : Render Hardware Interface |
Performance (공통)
stat fps | 화면에 FPS를 표시 |
stat unit | 화면에 Game 스레드 Draw 스레드, GPU 스레드 1 프레임 당 소요 시간을 표시 |
stat unitgraph | stat unit의 내용을 그래프로 표시 |
stat Raw | stat unitgraph의 내용을 필터링하지 않고 원시 데이터를 사용 |
stat hitches | 히치를 감지하고 기록 |
stat dumphitches | 히치시 로그를 덤프한다. 기본적으로 75ms 이상이지만 "t.HitchThreshold 0.075"고하여 값을 변경 |
stat game | 전반적인 Tick 시간을 몇 가지 항목으로 분류 해 볼 수 있습니다. Navi Tick Time / Net Tick Time / Post Tick Component Update / World Tick Time etc ... |
StartFPSChart / StopFPSChart | Saved / Profiling / FPSChartStats 다음에 FPS 정보의 로그를 출력한다. 출력되는 CSV를 사용하여 그래프도있다. |
Performance (CPU Time)
stat startfile / stat stopfile | ※ Session Frontend를 사용할 상황에서는 Session Frontend에서 같은 조작이 가능
start로부터 stop까지의 프로파일 결과를 파일에 ue4stats 형식으로 출력 Output Log 출력 경로가 표시된다. 출력 된 파일은 Session Frontend (Editor에서 Window → Developer Tools → Session Frontend)의 Profiler 탭에서 볼 수있다. 아마 UFUNCTION되어있는 함수가 프로파일 대상이지만, C ++ 코드에 QUICK_SCOPE_CYCLE_COUNTER매크로를 빚는 경우 핀 포인트로 프로필있다. |
Performance (GPU Time)
ProfileGPU |
GPU의 stats 정보를 그래프로 표시. |
stat SceneRendering | Draw call etc ... |
stat Cnvas | |
stat LightRendering | |
stat ShadowRendering | |
stat Particles | |
ViewMode ShaderComplexity | Viewport에서 Shader 부하가 걸려있는 곳을 붉게 표시 |
show <ElementName> | ↓ ElementName에는 다음 항목이 사용할 수있다.
AmbientOcclusion ※ 그 밖에도있다. "show"만 입력하면 로그 창에 목록이 표시 ※ Pause를 걸쳐 여러 Show 명령에서 표시 / 숨기기를하면 원인은 무엇 무거워지고 있는지 알기 쉽다. |
공식 문서 : GPU Profiling
Maniac
ParticleSystemAudit | Particle 모니터링 |
culture = [CultureID] | 에디터 지역 / 언어 설정을 즉시 변경한다.
CultureID는 북미 / 영어라면 "en" |