[KOR][100]101-Unreal-Engine-Tips-&-Tricks--The-Rec

https://www.youtube.com/watch?v=4w0PWcRwyOc

Frame at 0.00s
## 언리얼 엔진 101가지 팁과 트릭: "The Reckoning" 이 발표는 2019년 "100가지 언리얼 엔진 4 팁과 트릭" 발표의 후속작으로, 69개 팁을 발표했던 당시의 아쉬움을 딛고 101가지 팁을 제공하려는 "The Reckoning" (심판)이라는 이름으로 진행됩니다. ### 발표자 소개 * **Ari Arbjursson:** 2021년 유럽 언리얼 엔진 에반젤리스트, 현재 Epic Games 기술 개발자 관계팀 시니어 소프트웨어 엔지니어. --- ### **핵심 팁 및 트릭** #### **1. 에셋 관리 및 편집** * **속성 매트릭스 (Property Matrix):** * 다수의 에셋을 한 번에 편집할 수 있습니다. * 에셋 선택 후 마우스 오른쪽 버튼 클릭 > "속성 매트릭스에서 선택 항목 편집" 선택. * 특정 속성을 열로 고정하여 비교 및 편집 용이. * **예시:** Nanite 비활성화된 다수 에셋 일괄 활성화. * **실행 시점에 숨겨진 컴포넌트 표시:** * 건축 스크립트 또는 런타임 시점에 동적으로 추가된 컴포넌트가 편집기에서 보이지 않을 때 활용. * `편집기 설정 (Editor Preferences)` > `보기 (View)` > `숨겨진 건축 스크립트 컴포넌트 (Hide construction script component in details view)` 체크 해제. * **사용되지 않는 블루프린트 정리:** * 프로젝트에서 사용되지 않는 블루프린트를 찾아 삭제하여 최적화. * **요리(Cook) 로그 개선:** * `프로젝트 설정 (Project Settings)` > `요리사 (Cooker)` > `요리사 표시 모드 (Cooker display mode)`를 `이름 (Names)` 또는 `인스타이터 (Instigators)`로 설정. * `이름`: 현재 요리 중인 에셋 이름 표시. * `인스타이터`: 해당 에셋을 요리하도록 트리거한 요소 표시. * **인사이트 작업 채널 (Insights Task Channel):** * 프로파일링 시 "작업 완료 대기" 상태에서 어떤 작업인지 파악하기 어려울 때 유용. * `작업 추적 (Task Trace)`에 `, task` 추가 또는 `채널 보기 (Channels View)`에서 `작업 (Task)` 활성화. * 작업 간의 의존 관계 시각화. #### **2. 물리 및 렌더링 최적화** * **복잡한 물리 불필요 시 비활성화:** * `프로젝트 설정 (Project Settings)` > `물리 (Physics)` > `기본 형상 복잡도 (Default Shape Complexity)`를 `복잡한 충돌 사용 (Use Simple Collision as Complex)`으로 설정. * 충돌이 필요 없는 오브젝트의 복잡성 줄이기. * **물리 시뮬레이션 스레딩 활용:** * `미리 물리 (Pre-Physics)` 그룹의 일부 작업을 `물리 중 (During Physics)` 또는 `물리 끝 (End Physics)`으로 이동시켜 대기 시간 최소화. * **카오스 시각적 디버거 (Chaos Visual Debugger):** * `도구 (Tools)` > `디버그 (Debug)` > `카오스 시각적 디버거 (Chaos Visual Debugger)`에서 물리 시뮬레이션 상태, 충돌, 쿼리 등을 실시간으로 확인. * 최적화 문제 파악에 매우 유용. * **강제 MIP 레벨 상주 (Force MIP Levels to be Resident):** * 동적 메쉬 렌더링 시 텍스처 스트리밍 문제를 방지. 텍스처를 영구적으로 로드하도록 설정. * **고급 수자원 (Advanced Water) 플러그인:** * 사실적인 강, 바다 등 구현. * `얕은 물 강 (Shallow Water River)` 액터를 사용하여 나이아가라 시뮬레이션 기반으로 물 흐름 및 거동 구현. * 물 시뮬레이션을 컴포넌트로 베이킹하여 성능 최적화 가능. * **후처리 볼륨 설정:** * 후처리 볼륨 설정이 콘솔 변수를 무시할 수 있으므로 주의. * **디바이스 프로파일 (Device Profiles):** * 다양한 하드웨어 성능에 따른 렌더링 설정 관리. * `dp.override <프로파일 이름>` 콘솔 명령어로 즉시 테스트 가능. * **콘솔 변수 도움말:** * `콘솔 변수 ?` 명령어로 콘솔 변수 도움말 확인. * `dump CVARS` 명령어로 모든 콘솔 변수 값 확인. #### **3. 디버깅 및 개발 환경** * **쉬피 런처 (Shipping Launcher) 활용:** * `Visual Studio` 또는 `Rider`에서 실행 시 `기본 디렉터리 (Base Directory)`를 `Steamapps/common/<게임>/Binaries/Win64`로 설정하여 쉬핑 빌드 에셋 활용. * **EZArgs / UnrealVS 플러그인:** * `Rider`의 `EZArgs` 또는 `Visual Studio`의 `UnrealVS` 플러그인을 통해 시작 매개변수 간편 설정. * **글로벌 INI 파일 설정:** * `내 문서 (My Documents)\Unreal Engine\Engine\Config` 폴더에 `User.ini` 파일 생성 시 모든 프로젝트 및 게임에 적용되는 전역 설정 가능. * **예시:** 에셋 편집기 열기 위치, 라이브 코드 자동 컴파일 비활성화 등. * **솔루션 파일 이름 동기화:** * `Unreal Build Tool\BuildConfiguration.xml` 파일에서 `ProjectFileGenerator.PrimaryProjectNameFromFolder=true` 설정 시 폴더 이름과 동일한 솔루션 파일 이름 생성. * **콘텐츠 브라우저 단축키:** * `Ctrl + B`: 현재 선택된 에셋을 콘텐츠 브라우저에서 찾기. * `Ctrl + P`: 에셋 검색 및 열기. * `Ctrl + Tab`: 현재 탭과 이전 탭 전환. * `Ctrl + Shift + Tab`: 특정 탭 검색 및 열기. * `Ctrl + W`: 현재 탭 닫기. * **블루프린트 노드 비활성화:** * 단축키 (설정 필요)를 사용하여 특정 노드 및 로직을 일시적으로 비활성화. * **Shift Delete를 이용한 연결 유지:** * 노드를 삭제할 때 `Shift + Delete`를 누르면 실행 링크를 유지한 채 노드만 삭제. * **Ctrl + E (Asset Editor):** * 선택한 에셋의 에디터를 빠르게 엽니다. 레벨 에디터에서 스태틱 메시 액터를 선택하고 `Ctrl + E`를 누르면 해당 스태틱 메시 에셋을 엽니다. * **Shift + E (Select All of Class):** * 레벨 에디터에서 특정 클래스의 모든 액터를 선택합니다. * **`launch game` 명령:** * 에디터 없이 바로 게임을 실행합니다. (에셋은 자동으로 로드) * **액터 색상 지정 (Actor Coloration):** * `보기 모드 (View Mode)`에서 `속성 색상 지정 (Property Coloration View Mode)`을 선택하고 속성을 지정하면 해당 속성을 가진 액터들이 시각적으로 구분됩니다. * **기본 씬 루트 제거:** * 블루프린트 생성 시 기본 씬 루트 아이콘을 제거하고 싶을 경우, 새로운 씬 컴포넌트를 생성하여 기본 씬 루트 위에 드래그하면 동일한 효과를 얻을 수 있습니다. * **G-버퍼 접근 (Niagara):** * 나이아가라 파티클 시스템에서 G-버퍼 데이터를 읽어와 구름, 파괴 효과 등을 구현할 수 있습니다. * **에셋 새로고침 (Reload Asset):** * 에셋 편집기에서 `마우스 오른쪽 버튼 클릭 > 에셋 동작 > 새로고침`을 통해 에셋을 이전 상태로 되돌릴 수 있습니다. * **자동 저장 (Auto Save):** * `내 문서\Unreal Engine\Saved\Autosave` 폴더에 여러 버전으로 자동 저장되어 이전 상태로 복구 가능. * **Day Sequence / Celestial Vault 플러그인:** * 시간대별 날씨 및 일출/일몰 효과를 사실적으로 구현. * **임시 피벗 생성 (Alt + Middle Mouse Click):** * 객체의 피벗 포인트를 임시로 변경하여 특정 지점을 기준으로 회전 및 이동. * **런타임 셀 변환 스택 (Runtime Cell Transformer Stack):** * `월드 설정 (World Settings)`에서 플레이 시작 또는 쿠킹 전에 스크립트를 실행하여 에셋을 최적화. (예: 스태틱 메쉬를 인스턴스 스태틱 메쉬로 변환) * **PCG Shape Grammar:** * 텍스트 기반으로 포인트 및 메시 배치를 자동화. * **디버그 플로트 값 (Debug Float Values):** * 셰이더, PCG, Niagara 등에서 플로트 값을 씬에 직접 출력하여 디버깅. * **투과형 선택 활성화/비활성화 (Translucent Selection):** * `T` 키를 눌러 투과하는 오브젝트를 선택하거나 선택하지 않도록 설정. * **에셋 유효성 검사 도구 (Asset Validation Tool):** * 프로젝트 내 에셋 이름 규칙을 강제하는 규칙 설정 가능. * **Python 스크립트 활용:** * 에디터 기능 자동화, 도구 개발 등에 유용. * **Niagara 활용 (VFX 외):** * 군대 시뮬레이션, 발자국 시스템, 덩굴 물리, 텍스처 생성 등 다양한 용도로 활용. * **비동기 메시지 시스템 (Async Message System):** * 이벤트 디스패처와 유사하지만, 다른 블루프린트와의 명시적인 연결 없이 메시지 전달 가능. * **에디터 전용 액터 (Editor Only Actor):** * 에디터에서만 보이도록 설정하여 최종 빌드에서 제외. * **캐싱 (Caching):** * 데이터 테이블 조회 등 반복적인 작업을 Map에 저장하여 성능 최적화. * **작게 작업하기 (Work Smaller):** * 전체 프로젝트 대신 특정 레벨, 짐 단위로 작업하여 개발 속도 향상. * **블루프린트 "Get" 노드의 "Validated Get"으로 변환:** * 널 값 검사를 자동화하여 코드 간결화. * **커스텀 플레이어 카메라 매니저 (Custom Player Camera Manager):** * `Blueprint Update Camera` 함수를 사용하여 커스텀 카메라 로직 구현. * **메시-투-콜리전 (Mesh to Collision):** * 모델링 도구를 사용하여 자동으로 콜리전 메시 생성 (Convex Decomposition 활용). * **상태 트리 (StateTree):** * AI뿐만 아니라 다양한 로직에 사용할 수 있는 범용 상태 머신. * **UEFN (Unreal Engine For Fortnite):** * 멀티플레이어 게임 프로토타이핑에 용이. * **텍스트 렌더 액터 (Text Render Actor) 활용:** * 에디터에서만 보이는 텍스트 표시용으로 사용. * **데이터 테이블 검색 및 캐싱:** * 데이터 테이블 검색 결과를 Map에 저장하여 반복 호출 시 성능 최적화. * **버그 전달 (Bug It):** * 현재 카메라 위치 및 상태를 복사하여 클립보드에 저장. 버그 리포트에 유용. * **빌드 그래프 (Build Graph):** * 복잡한 빌드 프로세스를 XML 파일로 스크립팅. * **콘솔 명령 `jump ticks`:** * 레벨에서 틱을 사용하는 모든 액터 목록을 표시. * **블루프린트 디버거 (Blueprint Debugger):** * 실시간으로 블루프린트 변수 및 노드 상태 확인. * **블루프린트 디퓨징 (Blueprint Diffing):** * 블루프린트 파일 간의 차이점을 시각적으로 비교. * **노드 정렬:** * 블루프린트 노드를 깔끔하게 정렬하여 가독성 향상. * **메타 시피파이어 (Meta Specifier):** * C++ 함수에 `self` 노드 자동 삽입 등 메타데이터 활용. * **블루프린트 세트 멤버 (Set Members) 노드:** * 구조체 변수의 특정 멤버만 변경할 때 유용. * **에셋 썸네일 편집:** * 에셋 브라우저에서 썸네일 회전 및 각도 설정 가능. * **수학 표현식 노드 (Math Expression Node):** * 블루프린트에서 복잡한 수학 공식 간결하게 구현. * **에디터에서 재생 중 컴파일 (Allow recompiling during PIE):** * `프로젝트 설정`에서 클래스를 등록하면 플레이 중 블루프린트 컴파일 가능. * **블루프린트 예외 발생 시 중단 (Blueprint Break on Exceptions):** * 에디터 플레이 중 에러 발생 시 즉시 중단되어 디버깅 용이. * **함수 입력에 "Get" 노드 사용:** * 입력 파라미터를 함수 내에서 복사하여 사용 시 깔끔한 코드 구성. * **액터 색상 지정 (Actor Coloration):** * 특정 속성을 가진 액터를 시각적으로 구분. * **자산의 텍스처를 업데이트 할 때 자동 가져오기:** * `에디터 설정` > `자동 가져오기 설정`에서 폴더 지정 시 텍스처 변경 시 자동 업데이트. * **색조 조절 노드 (Desaturate Node) 활용:** * 음수 값 사용 시 색상 채도 조절 가능. * **컨트롤 리그 (Control Rig) 애니메이션:** * 블루프린트에서 사인 노드로 컨트롤 리그 애니메이션 구동. * **로컬 체인 다이내믹스 (Local Chain Dynamics) 노드:** * 뼈 체인의 부드러운 움직임 구현. * **하모닉스 노드 (Harmonics Node):** * 주기적인 움직임 생성. * **카메라 추적 (Camera Tracking):** * 특정 액터를 카메라가 계속 추적하도록 설정. * **구형 툴바 (Old Toolbar):** * `도구 메뉴 (Tool Menus)` > `뷰포트 (Viewports)` > `툴바 (Toolbars)` > `0`으로 설정 시 이전 버전 툴바 사용 가능. * **빌드 그래프 (Build Graph) 예시:** * Lyra, Titan, CitySample 등에서 활용 예시 확인 가능. * **물 시뮬레이션 베이킹:** * 나이아가라 기반 물 시뮬레이션을 컴포넌트로 베이킹하여 성능 향상. * **`bug it` 명령:** * 현재 카메라 위치를 복사하여 다른 사람에게 버그 보고 시 공유. * **자산의 썸네일 회전:** * 에셋 브라우저의 썸네일 편집 모드에서 에셋 썸네일 각도 조절. * **N`iagara` 활용 (VFX 외):** * 군대 시뮬레이션, 발자국 시스템, 덩굴 물리, 텍스처 생성 등 다양한 용도로 활용. * **정적인 데이터 저장:** * 자주 사용되는 정적인 데이터는 Map에 저장하여 성능 최적화. --- **총 팁 수: 109가지**