언리얼 인사이트 처음 다뤄봐서 틀린 부분 있을 수 있습니다!!
언리얼 4.27.2 버전입니다.
(참고 사이트)
언리얼 엔진에서 프로젝트 런처 사용하기
Get Started with Unreal Insights on Meta Quest
https://developer.oculus.com/documentation/unreal/ts-unreal-insights/?locale=ko_KR
Unreal Insight에 대해...
데이터를 수집해 시각화하고, 병목 상태를 찾게 도와주는 프로파일링 시스템이다.
💻 프로그램 실행하기
경로는 엔진 폴더의 Binaries의 Win64폴더에 있다. 실행하면 오른쪽과 같이 하나의 창이 뜬다.
🪢 연결하기
연결하게 되면 Insights 창에서 Session이 하나 생긴다. 정확하게는 확장자가 utrace인 파일이 만들어지고 계속 계속 기록되고 있는 것이며 이게 Session에 표시되는 것이다.
어떻게 기록되는지 궁금해서 메모장으로 열어봤는데, 메모장이 멈춰서 확인 못해봤다.
파일에 기록하고 언리얼 인사이트로 열어본다는 개념이므로, 실시간으로 보지 않더라도 나중에 다시 열어서 볼 수 있다.
utrace 파일을 기록하기 위해서는 아래의 커맨드라인을 넣어주는 게 핵심이다.
-tracehost=127.0.0.1 -cpuprofilertrace -statnamedevents
아래의 커맨드라인은 세부적이게 더 알려준다.
-trace=Log,Bookmark,Frame,Cpu,Gpu,LoadTime,File,memory -statnamedevents -cpuprofiletrace -tracehost=127.0.0.1 -NoVerifyGC
아래로는 각 상황마다 커맨드라인을 넣는 법을 적었다.
언리얼 에디터
Advanced Settings에서 커맨드를 입력해준다.
언리얼 인사이트를 실행시킨 상태에서 Standalone Game으로 실행시켜주면 자동으로 연결된다.
Oculus 기기
아래 2가지를 하면 연결이 된다.
1. 오큘러스 기기에서 PC에 데이터를 보낼 수 있도록 포트 연결을 해줘야 한다.
pc에서 cmd를 켜서 연결해준다. cmd 위치는 상관없다. 처음 이 명령어를 입력하면 '1980' 이라고 콜백 메세지가 뜬다. 연결이 끊기거나하면 다시 해줘야 한다. 파일이 잘 만들어지다가 갑자기 안 만들어진다면, 한번 더 연결시켜주자.
adb reverse tcp:1980 tcp:1980
2. 언리얼 에디터 Project Launcher에서 아래 Command Line을 부르도록 세팅해줘야 한다.
실행할 때 자동으로 Command Line을 불러주도록 하기 위해서 Project Launcher를 사용해서 APK를 빌드할 것이다. Project Luancher 사용법은 공식 문서에 있다.
https://docs.unrealengine.com/5.0/ko/using-the-project-launcher-in-unreal-engine/
기본 세팅에서 바꾼 건 별로 없다.
Cook 탭에서 By The Book으로 바꿔주었다.
Cooked Platforms : 안드로이드로 할 거라서 Android_ASTC에 체크.
Cooked Cultures : 안 건드림.
Cooked Maps : 사용하는 레벨들 체크. (테스트용으로 만들어 놓은 레벨이 있어서 포함 안 시켰음.)
Deploy 탭에서 원하는 디바이스를 선택해주었다. 빌드가 끝나고 바로 디바이스에서 넣어서 실행해주는 옵션인 것 같다.
제일 밑에 있는 Launch 탭의 AdditionalCommand Line Parameters에 Command Line을 입력해준다. 이거 하려고 Project Launcher를 사용하고 있는 것이다.
설정 다 했으니 Launch로 빌드해주면, 끝이다.
👨💻 사용하기
Session에서 더블 클릭하거나 Open 버튼을 누르면, 인사이트 창이 뜬다.
트랙 왼쪽 부분에 보면 GPU, Game Thread라고 적혀있다. GPU는 GPU고, Game Thread는 CPU 쪽이라 생각하면 되겠다. 창 위쪽에 있는 프레임 막대를 클릭하면, 프레임에 해당하는 트랙이 선택된다. 이 때 단축키 F를 누르면 포커싱이 된다.
막대를 더블 클릭하면, 같은 이름을 가진 막대를 활성화 할 수 있다. 조그만한게 많을 때 한번에 확인하기 쉽다. 취소할 때는 트랙 빈 공간을 더블클릭하면 된다.
CPU
프레임 막대 중에서 시간이 오래 걸린 막대를 선택해보면 증상을 알 수 있다. 막대가 아래 쪽으로 갈수록 자세히 볼 수 있다. 아래 이미지에서는 Spawn Actor가 엄청나게 많이 잡아먹고 있는 걸 볼 수 있다. 막대 중에 CPU Stall은 무시해도 된다고 한다.
GPU
GPU는 BasePsss, Transluncency, PostProcessing 처럼 큰 단위로는 나오지만, CPU처럼 세부적으로는 볼 수 없다. 병목 현상을 발견하고 제일 큰 원인을 추정해서 제거해야 한다.
아래 글에서 원인을 추정할 수 있도록 설명이 되어있다.
https://docs.unrealengine.com/4.27/en-US/TestingAndOptimization/PerformanceAndProfiling/GPU/
GPU를 보는 다른 방법으로는 GPU Visualizer, RendorDoc이 있다.
Android는 GPU 트랙을 볼 수 없는 것 같다...
https://forums.unrealengine.com/t/unreal-insights-and-stat-gpu-not-showing-any-gpu-data/539030
'Unreal' 카테고리의 다른 글
PSO 사용하기 (1) | 2023.06.15 |
---|---|
RendorDoc 사용하기 (0) | 2023.06.01 |
언리얼 VR 최적화 삽질하기 (0) | 2023.05.26 |
[Unreal C++] Visual Studio 디버깅하기 (0) | 2021.06.28 |
블루프린트로 만든 예제 C++로 옮겨보기 (0) | 2021.06.23 |