새 소식
언리얼 엔진의 차세대 버추얼 프로덕션 툴과 향상된 리얼타임 레이 트레이싱 덕분에 영화 및 TV 제작이 변화되고 있습니다. 이제 nDisplay 가 탑재된 LED 벽으로 실제 배우와 소품을 UE4 환경에 배치할 뿐만 아니라, 라이팅과 리플렉션(베타)을 통해 또한 VR 스카우팅 툴(베타), 라이브 링크 실시간 데이터 스트리밍 강화, iPad 또는 기타 디바이스에서 UE4 를 원격으로 제어할 수 있는 기능(베타)이 추가되었습니다. 레이 트레이싱은 안정성과 퍼포먼스를 향상시키고 랜드스케이프 지오메트리, 인스턴스드 스태틱 메시, 프로시저럴 메시 및 나이아가라 스프라이트 파티클을 포함한 추가 머티리얼과 지오메트리 유형을 지원하기 위해 여러가지 기능을 향상 시켰습니다.
언리얼 엔진으로 무한히 사실적인 세계를 만들 수 있습니다. 새로운 카오스 피직스 및 디스트럭션 시스템을 사용하면, 조각 내고, 부수고, 파괴하는 압도적 스케일의 장면에서도 전례 없는 수준의 예술적인 제어가 가능합니다. 폴리지 툴을 사용한 인터랙티브 액터 배치, 랜드스케이프 변경 유지 편집, 런타임 버추얼 텍스처링을 통해 놀라운 경관을 만들 수 있습니다.
시스템 최적화, 새롭게 추가된 툴과 기능을 통해 적은 노력으로 많은 일을 할 수 있습니다. 버추얼 텍스처링은 라이트맵 및 아티스트가 제작한 디테일 텍스처에 드는 메모리 오버헤드를 줄이고, 각각 프로시저럴 또는 레이어 방식 머티리얼의 렌더링 퍼포먼스를 향상시킵니다. 애니메이션 스트리밍은 현재 사용 중인 애니메이션에만 런타임 메모리를 제한하여 보다 많은 애니메이션을 사용할 수 있습니다. 언리얼 인사이트를 사용해 UE4 비헤이비어에 대한 데이터를 수집, 분석 및 시각화하여 프로파일링하면, 라이브 또는 사전 녹화된 세션에서 엔진 퍼포먼스에 대한 이해도를 높일 수 있습니다.
이번 버전에는 GitHub 의 놀라운 언리얼 엔진 개발자들이 제출한 192개의 개선 사항이 포함되어 있습니다! 언리얼 엔진 4.23 에 기여해 주신 모든 분들께 감사드립니다:
Doug Richardson "drichardson", Morva Kristóf "KristofMorva", Reece Dunham "RDIL", "projectgheist", Jorgen P. Tjerno "jorgenpt", Ondrej Hrusovsky "Skylonxe", Miguel Fernandez "muit", Geordie Hall "geordiemhall", Artem Umerov "umerov1999", Marat Radchenko "slonopotamus", "AgentOttsel", Eric Spevacek "Mouthlessbobcat", Danny de Bruijne “danskidb”, Sertaç Ogan “SertacOgan”, Trond Abusdal “trond”, Joe Best-Rotheray “cajoebestrotheray”, Nick Edwards “NEdwards-SumoDigital”, Marcel “Zaratusa”, Mark Whitty “Mosel3y”, “YuchenMei”, Branislav Grujic “grujicbr”, “Rei-halycon”, Michael Hills “MichaelHills”, Nick Pearson “Nick-Pearson”, “mastercoms”, Zhi Kang Shao “ZKShao”, Nick “eezstreet”, “temporalflux”, Vladislav Dmitrievich Turbanov “vladipus”, Daniel Marshall “SuperWig”, Brian Marshall “TurtleSimos”, Sergey Vikhirev “Bormor”, Robert Rouhani “Robmaister”, Maxime Griot “”yamashi”, Igor Karatayev “yatagarasu25”, “Zeblote”, Hesham Wahba “druidsbane”, Joe Best-Rotheray “cajoebestrotheray”, MoRunChang “MoRunChang2015”, Sébastien Rombauts “SRombauts”, JinWook Kim “zelon”, Riley Labrecque “rlabrecque”, Дмитрий “Yakim3396”, “DanMilwardSumo”, Wesley Barlow “Wesxdz”, Franco Pulido “Franco Pulido”, Kimmo Hernborg “KimmoHernborg”, John Dunbar “Volbard”, Michał Siejak “Nadrin”, kalle Hämäläinen “kallehamalainen”, “KaosSpectrum”, Evan Hart “ehartNV”, Skyler Clark “sclark39”, Thomas Miller “tmiv”, Stephen A. Imhoff “Clockwork-Muse”, David Payne “davidpayne-cv”, “CyberKatana”, “roidanton”, Milan Šťastný “aknarts”, Alex P-B chozabu, Marco Antonio Alvarez “surakin”, Taikatou, Doğa Can Yanıkoğlu “dyanikoglu”, “Kalmalyzer”, “phi16”, Mikhail Zakharov “zz77”, Paul Hampson "TBBle", “NextTurn”, “Punlord”, kalle Hämäläinen “kallehamalainen”, Robert Pröpper “rproepp”, Yohann Martel “”ymartel06”, Francis J. Sun “francisjsun”, Eric Wasylishen “ericwa”, Phillip Baxter “PhilBax”, Alan Liu “PicaroonX”,Mathias Hübscher “user37337”,Daisuke Ban “exceed-alae”, Brandon Wilson “Brandon-Wilson”, Marcin Gorzel “mgorzel”, “prolenorm”
주요 기능
신규: 카오스 - 디스트럭션 (베타)
GDC 2019 데모에서 공개된 Chaos (카오스)는 언리얼 엔진이 새로 선보이는 고성능 피직스 및 디스트럭션 시스템으로, 4.23 버전부터 베타로 미리 만나볼 수 있습니다. 카오스를 사용하면 실시간으로 시네마틱 퀄리티의 대규모 파괴 씬을 만들 수 있으며, 콘텐츠 제작에도 전례 없는 수준의 예술적인 제어가 가능합니다.
언리얼 엔진 4.23 에서 카오스 기능은 소스 빌드를 사용해서 활성화하고 컴파일해야 합니다. 활성화 방법 안내는 이 가이드 페이지를 참고하세요.
Chaos Destruction (카오스 디스트럭션) 관련 자세한 정보는 Chaos Destruction (영문) 문서를 참고하세요. 런처의 학습 탭에 추가된 카오스 디스트럭션 데모 샘플에서 다양한 유형의 시뮬레이션과 이펙트 구성 방법을 확인할 수 있습니다.
지오메트리 컬렉션
언리얼에 파괴 가능한 오브젝트 애셋 유형이 새로 생겼습니다. 하나 이상의 스태틱 메시로 만들 수 있으며, 블루프린트 또는 심지어 중첩 블루프린트에서 조립한 것도 포함됩니다. 이 Geometry Collections (지오메트리 컬렉션)으로 아티스트는 시뮬레이션 대상 선택은 물론, 파괴되는 모습을 더욱 유연하게 만들고 구성할 수 있습니다.
왼쪽 - 벽 섹션 1개 - 지오메트리 컬렉션 31개, 오른쪽 - 스태틱 메시 분해도
프랙처
지오메트리 컬렉션이 있다면 Fracturing (균열, 프랙처) 툴로 분해할 수 있습니다. 각 조각마다 별도로 균열을 만들거나, 여러 조각에 한 패턴을 적용할 수도 있습니다. 일반적인 보로노이 균열 외에도 방사형 균열, 클러스터 보로노이 균열, 절단된 평면에 노이즈를 사용하여 더욱 자연스러운 결과를 낼 수 있습니다.
왼쪽 - 원래 지오메트리 컬렉션, 중간 - 메시 전체에 균열 적용, 오른쪽 - 큰 조각만 세부 균열
클러스터
최적화를 고려해서 Sub-fracture (세부 균열)을 사용하면 복잡도를 더할 부분을 제어할 수 있습니다. 세부 균열을 사용할 때마다 지오메트리 컬렉션에 레벨이 추가됩니다. 카오스 시스템은 이후 각 레벨을 트랙하며 해당 정보를 사용자가 제어할 수 있는 Cluster (클러스터)에 저장합니다. 다음은 각 균열 레벨이 자체 클러스터 세트로 합쳐진 메시의 예시입니다.
연결 그래프
파괴 시뮬레이션과 패러다임이 약간 다른 경량 연결 맵입니다. 아래 이미지에서 앵커로 고정된 몇몇 정적인 조각과 다이내믹이 될 수 있는 모든 나머지 요소를 확인할 수 있습니다.
키네마틱을 다이내믹으로 교체하는 대신, 카오스 시스템은 압력(strain)을 적용해서 연결부가 끊기면 카오스 파괴를 진행합니다. 활성화된 리지드 바디의 수를 제어하면서 상호작용을 최대화하기에 좋습니다.
필드
필드(Field)를 사용하면 시뮬레이션을 직접 제어 및 상호작용할 수 있습니다. 지오메트리 컬렉션 어느 부분 어느 특성을 제어할 때도 사용할 수 있습니다. 예를 들어 인스턴스의 질량 변경, 또는 특정 부분만 파괴되지 않도록 만들기, 가운데보다 구석을 더 잘 부서지게 만들기, 힘 가하기 등 이 모든 것을 장으로 제어할 수 있습니다.
시뮬레이션 캐시
캐시 기능을 사용하면 현실적인 시뮬레이션을 미리 캐시에 저장한 뒤 실시간으로 재생해 키네마틱 지오메트리 컬렉션을 만들 수 있습니다. 즉 플레이어와 환경의 상호작용이 유지되는 대규모 파괴 이벤트를 만들 수 있다는 뜻입니다.
나이아가라 통합
카오스 시스템은 언리얼 엔진 4의 주요 기능으로, 나이아가라를 비롯한 월드를 시뮬레이션하는 기타 모든 시스템과 공존합니다. 시뮬레이션에 시각 효과를 더하면 월드에 깊이와 현실성을 더할 수 있습니다. 예를 들어, 건물이 부서질 때는 대량의 먼지와 연기가 생기게 됩니다. 파괴와 시각 효과를 통합하려면 오브젝트가 충돌 및 파괴됐을 때 피직스 시스템의 데이터를 나이아가라로 보낸 다음 해당 데이터를 바탕으로 흥미로운 부가 이펙트를 만들 수 있습니다.
신규: 실시간 레이 트레이싱 개선 (베타)
레이 트레이싱 기능이 다수 최적화되고 안정성이 개선되었으며 중요한 신기능도 몇 가지 추가되었습니다.
퍼포먼스 및 안정성
이번 버전에서는 언리얼 엔진 레이 트레이스 기능의 안정성, 퍼포먼스, 퀄리티 향상에 중점을 두었습니다. 즉:
- 전체적으로 DirectX 12 지원을 강화했습니다.
- 레이 트레이스 기능에 대한 디노이저(Denoiser) 퀄리티를 향상했습니다.
- 레이 트레이스 글로벌 일루미네이션 (RTGI) 퀄리티가 증가되었습니다.
추가 지오메트리 및 머티리얼 지원
이제 다음과 같은 추가 지오메트리 및 머티리얼 형식을 지원합니다.
- 랜드스케이프 지형 (KiteDemo에서 2080Ti로 측정한 퍼포먼스: 지오메트리 업데이트 시간 ~2ms, 비디오 메모리 ~500MB)
- 계층형 인스턴스드 스태틱 메시 (HISM) 및 인스턴스드 스태틱 메시 (ISM)
- 프로시저럴 메시
- 서브서피스 머티리얼을 사용한 투과
- 랜드스케이프 및 스켈레탈 메시 지오메트리에 월드 포지션 오프셋 (WPO) 지원
다중 반사 리플렉션 보완
다중 반사(bounce) 레이 트레이스 리플렉션 (RTR) 지원을 개선하여, 필요한 경우 리플렉션 캡처를 사용하도록 했습니다. 내부 리플렉션(리플렉션 안의 리플렉션)이나 최대 리플렉션 거리로 설정한 곳에서 검게 나오던 것을 래스터 기법을 통해 보완하도록 한다는 뜻입니다.
이제 여러 번의 레이 트레이스 반사 없이도 리플렉션 퀄리티가 미묘하게 향상되며, 퍼포먼스도 크게 향상됩니다.
신규: 버추얼 텍스처링 (베타)
이번 버전에 추가된 버추얼 텍스처링 베타 지원을 사용하면, 큰 텍스처를 만들어 사용해도 런타임 메모리 사용량은 더 적게 고정됩니다.
스트리밍 버추얼 텍스처링
Streaming Virtual Texturing (스트리밍 버추얼 텍스처링)은 버추얼 텍스처 애셋을 사용해 기존의 밉 기반 스트리밍 대신 디스크에서 텍스처를 스트리밍하는 대안을 제공합니다. 기존 밉 기반 텍스처 스트리밍 작동 방식은 머티리얼 UV 사용을 오프라인 분석한 후, 런타임에 오브젝트 가시성 및 카메라 거리에 따라 로드할 텍스처의 밉 레벨을 결정합니다. 버추얼 텍스처에 대해서는, 모든 밉 레벨을 작은 고정 크기 타일로 나눠 두어 GPU 가 화면에 보이는 모든 픽셀에 필요한 버추얼 텍스처 타일을 결정할 수 있습니다.
버추얼 텍스처링 스트리밍은 텍스처 메모리 오버헤드를 줄이고 (라이트맵 및 UDIM 텍스처를 포함한) 아주 큰 텍스처를 사용할 때의 퍼포먼스를 향상시킵니다. 그러나 버추얼 텍스처 샘플링은 일반 텍스처를 샘플링할 때보다 비용이 많이 듭니다.
자세한 정보는 Streaming Virtual Texturing(영문) 문서를 참고하세요.
런타임 버추얼 텍스처링
Runtime Virtual Texturing (런타임 버추얼 텍스처링)은 런타임 버추얼 텍스처 애셋과 레벨에 배치된 볼륨을 사용합니다. 동작 방식은 기존 텍스처 매핑과 비슷하지만 런타임에 GPU를 사용해 요청 즉시 렌더되는 점이 다릅니다. 런타임 버추얼 텍스처는 넓은 영역에 걸친 셰이딩 데이터를 캐시에 저장해서 랜드스케이프 셰이딩에 적합합니다.
자세한 정보는 Runtime Virtual Texturing(영문) 문서를 참고하세요.
신규: 언리얼 인사이트 (베타)
(현재 베타인) Unreal Insights (언리얼 인사이트)를 이용하면 개발자가 일정한 방식으로 언리얼 엔진의 비헤이비어를 수집, 분석할 수 있습니다. 이 시스템은 크게 두 부분으로 이루어집니다.
- Trace System API (트레이스 시스템 API)는 일정한 형식으로 런타임 시스템에서 정보를 수집하고 나중에 처리할 수 있도록 저장합니다. 여러 라이브 세션에서 데이터를 동시에 받을 수 있습니다.
- Unreal Insights Tool (언리얼 인사이트 툴)은 분석 API로 처리한 데이터의 상호작용형 시각화를 제공하여, 개발자는 통합 인터페이스로 애플리케이션의 통계, 로그, 지표를 확인할 수 있습니다.
동시에 여러 개의 라이브 세션에 연결하거나 언리얼 인사이트 탭의 Trace Sessions (트레이스 세션) 창에서 라이브나 이전에 기록된 세션 데이터를 선택해서 확인할 수 있습니다.
확인할 세션 데이터를 선택한 후에는 Timing Insights (타이밍 인사이트) 및 Asset Loading Insights (애셋 로딩 인사이트) 탭에서 살펴볼 수 있습니다.
신규: HoloLens 2 네이티브 지원 (베타)
이제 HoloLens 2 개발을 시작할 수 있습니다. 플랫폼 고유 기능에 대한 API 에 액세스할 수 있으므로, 스트리밍 및 네이티브 디플로이, 손가락 트래킹, 제스처 인식, 메싱, 음성 입력, 공간 앵커 핀 설정 등이 가능합니다. AR 게임이든 엔터프라이즈 애플리케이션이든 만들어 보세요. 탄탄한 에뮬레이터 지원으로 디바이스가 이미 있든 배송을 기다리는 중이든 상관 없습니다. UE4 만 있으면 HoloLens 2 개발을 바로 시작할 수 있습니다.
자세한 정보는 Microsoft HoloLens 2 Development 페이지를 참고하세요.
신규: 버추얼 프로덕션 파이프라인 개선
언리얼 엔진은 계속해서 버추얼 프로덕션 파이프라인이 나아갈 길을 이끌고 있습니다. 가상으로 환경을 스카우팅하고 장면을 합성하며, 가상 세계를 사용해 현실 세계에 빛을 밝히고, 생방송 요소와 디지털 표현을 결합시켜 매끄러운 체험을 만드는, 그 모든 작업을 사용자가 직접 만든 인터페이스로 제어할 수 있습니다.
인 카메라 VFX (베타)
개선된 인 카메라 VFX 로, LED 벽에 언리얼 엔진 씬을 표시하거나 UE4 에서 실시간 합성을 위한 디지털 그린스크린으로 사용해서, 언리얼 엔진 환경 배경과 실제 배우, 소품을 합친 최종 장면을 라이브로 얻을 수 있습니다.
카메라 프러스텀 기반 렌더링으로 실제 배우, 소품이 CG 환경의 라이팅과 리플렉션을 받도록 하면, 경우에 따라 포스트 프로덕션 워크플로가 없어져 프로덕션 전체가 크게 빨라집니다. 무대에 직접 그린스크린을 설치하지 않고도 버튼 하나로 빠르게 LED 벽에 디지털 방식으로 그린스크린을 배치해 시간을 절약할 수 있습니다. nDisplay 멀티 디스플레이 기술 덕분에 LED 벽의 크기나 구성과 상관 없이 전체 솔루션 스케일을 맞출 수 있습니다.
영화 제작자용 VR 스카우팅 (베타)
새로운 VR Scouting (스카우팅) 툴은 버추얼 프로덕션 환경의 영화 제작자들이 새로운 방식으로 VR로 버추얼 월드를 탐색하고 상호작용할 수 있게 해주며, 덕분에 더 나은 창의적 결정을 내릴 수 있습니다.
감독과 촬영 감독은 손쉽게 장소를 찾아 장면을 합성하고 씬 블로킹을 구성하며 촬영 장소를 정확하게 살펴볼 수 있는 반면, 아티스트와 세트 디자이너는 VR로 촬영 장소를 직접 경험하며 세트를 만들고, 측정 및 상호작용 툴을 사용해 거리를 확인하며 월드를 수정할 수 있습니다. 가상 세계에서 이미지를 캡처하면, 프로덕션 팀 전체가 VR 세션 도중 내린 의사 결정을 추적하는 데 도움이 됩니다. C++에서 엔진을 리빌드할 필요 없이 블루프린트에서 컨트롤러와 세팅을 커스터마이징할 수 있습니다.
자세한 내용은 Virtual Scouting (영문) 문서를 참고하세요.
라이브 링크 데이터 유형 및 UX 개선
라이브 링크 플러그인이 처리하는 정보의 종류가 많아졌으며 언리얼에서 동기화된 데이터를 씬 엘리먼트에 적용하기도 쉬워졌습니다! 이제 프로덕션 파이프라인의 다른 애플리케이션과 데이터 소스로 캐릭터 애니메이션, 카메라, 라이트, 기본적인 3D 트랜스폼을 동적 구동할 수 있습니다.
각 씬 엘리먼트에 role (역할)을 정하면, 라이브 링크가 해당 엘리먼트에 대해 동기화하는 정보를 결정합니다. 라이브 링크 플러그인에는 캐릭터 애니메이션, 카메라, 라이트, 기본 3D 트랜스폼에 대해 내장된 역할이 있습니다. 액터를 새로운 라이브 링크 컨트롤러 컴포넌트에 할당하면 어떤 라이브 링크 소스로도 더욱 쉽게 언리얼 엔진 레벨의 액터를 구동할 수 있습니다.
기타 개선:
- 라이브 링크를 통해 들어오는 데이터를 (예를 들면 축 변환 적용을 위해) 전처리한 뒤 씬에 적용하고, 한 역할에서 다른 역할로 소스를 매핑할 때 데이터 변환 방식을 제어합니다. 자체 커스텀 전처리기와 변환기 클래스를 생성해 할당할 수도 있습니다.
- 여러 소스를 버추얼 서브젝트로 결합해, 여러 라이브 링크 소스에서 받은 정보를 바탕으로 언리얼의 씬 엘리먼트 하나를 구동합니다.
- 자주 반환할 라이브 링크 구성 프리셋을 저장 및 로드합니다.
- 상태 표시에 현재 언리얼 엔진으로 데이터를 보내고 있는 라이브 링크 소스가 한눈에 표시됩니다.
- 라이브 링크를 통한 ART 트래킹이 지원되므로, VR, AR, 모션 캡처와 같은 애플리케이션에서 다양한 트래킹 용도로 ART 기술을 활용할 수 있습니다.
자세한 정보는 라이브 링크 플러그인 문서를 참고하세요.
HTTP를 통한 원격 제어 (베타)
이제 HTTP를 통해 원격으로 언리얼 엔진과 언리얼 에디터에 명령을 보낼 수 있습니다!
덕분에 프로젝트 콘텐츠의 변경을 유발하는 자체 커스텀 웹 유저 인터페이스를 만들 수 있습니다. 어떤 브라우저나 현대 웹 표준을 지원하는 커스텀 앱에서도 언리얼 엔진을 제어할 수 있으며, 이 자체 컨트롤을 다른 커스텀 패널에 통합시켜 환경 내 다른 애플리케이션을 제어할 수도 있습니다.
원격 제어 인터페이스에 제공된 다양한 엔드포인트를 호출하면, 액터와 애셋의 프로퍼티를 설정하고 얻어오며 블루프린트와 Python에 노출된 함수를 호출할 수 있습니다.
자세한 내용은 Web Remote Control (영문) 문서를 참고하세요.
신규: 곡면 nDisplay 워프 및 블렌드
이제 nDisplay를 사용해 언리얼 엔진 콘텐츠를 더욱 다양한 실제 장비로 투영할 수 있으며, 곡면과 구형 스크린은 물론 투영이 겹치는 곳에 복잡한 블렌딩이 필요한 상황도 포함됩니다.
nDisplay는 여러 프로젝트의 2D 이미지를 휘고 굽은 표면에 투영하고 블렌드하는 방법을 두 가지 내장하고 있습니다.
- Scalable Display Technologies가 개발한 스케일러블 메시 파일 (.smf) 포맷.
- VESA가 개발한 다중 투영 일반 데이터 교환 (MPCDI) 표준.
게다가 이제 서드파티 개발자도 렌더링 인터페이스의 확장 세트를 구현해 nDisplay가 UE4 콘텐츠를 렌더하는 방법을 커스터마이징할 수 있습니다.
nDisplay 관련 자세한 정보는 nDisplay, 멀티 디스플레이 렌더링 문서를 참고하세요.
신규: 나이아가라 개선 (베타)
카오스 피직스와 통합
이제 카오스의 피직스 시뮬레이션으로 나이아가라 파티클 시스템을 생성할 수 있습니다! 오브젝트에 균열이 발생할 때마다 연기와 먼지는 물론 작은 균열 조각을 생성하여 피직스 시뮬레이션의 비주얼을 향상시킬 수 있습니다. 새로 생긴 카오스 디스트럭션 리스너는 이벤트를 관련 파티클 시스템에 전송하고 파괴(break), 충돌, 흔적 등 카오스 상호작용 이벤트에 관한 정보를 제공합니다. Chaos Destruction Content Example hallway 예제를 참고하세요.
GPU 시뮬레이션 개선
GPU 시뮬레이션 퍼포먼스가 크게 향상되어 유휴 시간이 단축되었습니다. 데이터 관리를 개선하고 컴퓨트 작업 간 명시적인 프리미티브 동기화를 높이는 이 방식 덕에 GPU 작업을 상당량 중첩시킬 수 있어, 처리량이 크게 늘어나고 컴퓨트 셰이더를 다른 연산 작업과 병렬 실행할 수 있는 기회도 많아집니다.
스태틱 및 스켈레탈 메시 샘플링 GPU 지원
이제 GPU 시뮬레이션에서 메시의 표면을 샘플링하고, UV 좌표를 얻어, 텍스처에서 샘플링한 뒤, 이를 통해 복잡한 시뮬레이션 로직을 구동시키는 방식으로, CPU와 GPU에서 할 수 있는 작업의 차이를 좁히고 GDC 트롤 데모에서 선보인 요정처럼 초당 60만 개 이상의 파티클을 스폰하는 이펙트를 만들 수 있습니다.
나이아가라 스프라이트 이미터 레이 트레이싱 지원
이제 나이아가라 시뮬레이션이 레이트레이싱 중 리플렉션과 섀도에 쓰이는 지오메트리를 생성할 수 있으며, 이는 GDC 트롤 데모에서 요정이 물 위를 날아갈 때 수면에 빛이 반사되는 장면에 쓰였습니다.
현재는 스프라이트 이미터 파티클만 지원합니다.
이미터 상속
이제 나이아가라에서 이미터를 생성할 때 프로젝트의 기존 이미터를 상속해서 생성할 수 있습니다. 이제 목적이 비슷한 이미터에 대해 기능 상속 트리를 생성할 수 있어 콘텐츠 재사용이 쉬워집니다.
예를 들어 무기 이펙트에 쓰이는 기초적인 총구 화염 이미터가 존재할 때, 그 강약 베리에이션을 만들고 싶을 수 있습니다. 이때 상속을 통해 강약 베리에이션 이미터를 새로 만들면서, 둘 다 원본 총구 화염과 동일한 기반 기능과 렌더러를 상속할 수 있습니다.
컴파일 및 쿠킹 개선
이제 새로 추가된 콘솔 명령어 2개를 사용해 로드 및 쿠킹 작업 중 나이아가라 애셋의 오래된 데이터를 지우고 불필요한 리컴파일을 방지할 수 있습니다.
- fx.PreventSystemRecompile 단일 시스템과 종속된 모든 이미터에 대한 데이터를 비웁니다(flush).
- fx.PreventAllSystemRecompiles 프로젝트에서 모든 나이아가라 시스템을 찾아 이 시스템과 종속된 이미터를 비웁니다.
영향받은 애셋을 비운 뒤 다시 저장하고 나면 로드와 굽기 프로세스 속도가 빨라지고 오래된 데이터로 발생하는 실패를 없앨 수 있습니다.
오류 보고 개선
나이아가라 스크립트 및 이미터/시스템 에디터에 추가된 메시지 로그에 최근 컴파일에서 발생한 메시지, 경고, 오류가 표시되며 스크립트 그래프에서 경고나 오류가 발생한 노드나 핀으로 이동할 수 있습니다.
이는 나이아가라 스크립트로 새로운 함수 기능이나 비헤이비어를 작성하는 테크니컬 아티스트와 VFX 아티스트 또는 나이아가라 스크립트를 시스템으로 합쳐 스크립트 에디터 반복처리 능력을 높이려는 사람에게 특히 유용합니다. 게다가 메시지는 오류 소스로 가는 하이퍼링크 역할을 하기에 스크립트 또는 시스템의 문제를 빠르게 찾고 해결할 수 있습니다.
스태틱 스위치
이제 나이아가라에 지원되는 Static Switch (스태틱 스위치) 노드로 그래프의 최종 출력물에 영향을 주지 않는 인스트럭션과 파라미터를 제외시켜 컴파일 시간을 단축하고 런타임 퍼포먼스를 향상할 수 있습니다. 스태틱 스위치 노드는 값 전달, 메타데이터 지원, 파라미터 컬링, 컴파일 시간 상수 평가 등 여러 고유 기능을 지원합니다.
캐스케이드 기능 추가
이번 버전에서는 더 많은 캐스케이드 기능이 나이아가라에 추가되었습니다. 그 중 몇 가지는 다음과 같습니다:
- 스프라이트 컷아웃 - 쿼드 전체를 렌더링하는 대신 파티클에 대해 더 작은 바운딩 모양을 생성해 오버드로를 줄일 수 있습니다.
- GPU 소팅 - 이미터 내 투명한 오브젝트의 순서를 제대로 정렬할 수 있습니다.
- AnimNotify 이벤트 - 애니메이션 트랙에 파티클을 생성하고 수명을 적절하게 관리할 수 있습니다.
- 표준화된 활성화/비활성화 - 기존 파이프라인에 간단하게 나이아가라 이펙트를 추가할 수 있습니다.
- 블루프린트에서 스태틱 메시와 스켈레탈 메시 타깃 설정 - 기존 파이프라인에 간단하게 나이아가라 이펙트를 추가할 수 있습니다.
- 샘플링된 본 및 소켓 트랜스폼 - 스켈레탈 메시를 사용하는 이펙트를 더 낮은 사양의 하드웨어에서 실행할 수 있습니다.
신규: 플랫폼 익스텐션
Platform Extensions (플랫폼 익스텐션)이라는 개념을 추가했으며, 개별 플랫폼에 대한 모든 코드를 한 곳에 캡슐화하여 메인 엔진 코드와 분리한다는 점에서 속성상 플러그인과 유사합니다. 엔진 및 그 빌드 시스템 작동 방식에 몇 가지 근본적인 변화가 생겨, 엔진을 수정한 정도에 따라 영향을 받을 수도 있습니다. 플랫폼 익스텐션 관련 자세한 내용은 이 가이드(영문) 를 참고하시기 바랍니다.
신규: 스킨 웨이트 프로파일
새로운 스킨 웨이트 프로파일 시스템은 스켈레탈 메시에 저장된 원본 스킨 웨이트를 오버라이드하고 퍼포먼스를 이유로 다이내믹 캐릭터 파츠가 비활성화되는 일부 플랫폼의 시각 충실도를 향상합니다. 스켈레탈 메시 에디터에서 프로파일을 임포트할 수 있으며 사용할 스킨 웨이트, 프로파일 이름, 선택적으로 LOD 인덱스가 포함된 FBX 파일을 제공해야 합니다. 새로 추가된 블루프린트 노출 API를 사용하면 Skinned Mesh Component (또는 자손 클래스)에도 스킨 웨이트 프로파일을 할당할 수 있습니다.
자세한 정보는 스킨 웨이트 프로파일 문서를 참고하세요.
신규: 애니메이션 스트리밍 (실험단계)
이제 애니메이션을 스트리밍해 메모리 사용량과 관리 방식을 향상시킬 수 있습니다. 이는 장편 시네마틱 애니메이션을 재생할 때 특히 유용합니다.
이제 애니메이션 압축 시스템은 애니메이션을 청크 단위로 압축하여 스트리밍을 원활하게 하는 동시에, 새로운 애니메이션 스트림 매니저는 스트리밍 애니메이션 데이터의 메모리 로드 및 저장을 관리하며 새 UAnimStreamable (애님 스트리머블) 애셋은 스트리밍 가능한 애니메이션을 나타냅니다.
신규: 다이내믹 애니메이션 그래프 (실험단계)
다이내믹 애님 그래프는 레이어를 사용하여 애니메이션 그래프의 서브 섹션을 동적 전환을 제공하며, 이는 레이어 노드를 통해 애님 그래프에 연결할 수 있는 별개의 그래프입니다. 이를 통해 사용자 여러 명이 협업할 수 있으며 더는 필요없는 함수 기능에 쓰이는 메모리를 절약할 수 있습니다.
레이어는 애니메이션 레이어 인터페이스 애셋으로 정의하며, 이는 기능이 제한된 애니메이션 블루프린트로 블루프린트 인터페이스 와 유사합니다. 여기서 레이어의 수, 이름, 소속 그룹, 입력을 정의합니다.
또한, 서브 인스턴스 노드가 UAnimInstance 의 SetSubInstanceClassByTag 를 사용해 실행 중인 클래스를 동적으로 전환할 수 있게 되었습니다. 이제 서브 인스턴스 노드는 서브 그래프의 여러 입력 포즈를 노출할 수도 있습니다.
애니메이션 블루프린트와 서브 애니메이션 블루프린트 모두 애니메이션 레이어 인터페이스를 구현해야 레이어 그래프를 생성하고 레이어 노드를 인스턴스화할 수 있습니다.
신규: 오픈 사운드 컨트롤 (베타)
Open Sound Control (OSC, 오픈 사운드 컨트롤) 플러그인은 오픈 사운드 컨트롤 표준 네이티브 구현을 제공합니다. 여기에 제공되는 애플리케이션 상호간 및 머신 상호간 통신을 위한 공통 프레임워크를 통해 UDP 로 파라미터를 실시간 제어할 수 있습니다.
신규: 웨이브테이블 합성 플러그인
언리얼 엔진의 커브 에디터를 활용하는 모노 웨이브테이블 신디사이저를 추가했습니다. 타임 도메인 웨이브테이블을 작성해 게임플레이 파라미터가 이끄는 폭넓은 사운드 디자인이 가능합니다. 테이블 인덱스를 비롯한 모든 파라미터는 C++와 블루프린트로 제어할 수 있습니다.
신규: CSVToSVG 툴 (베타)
CSVToSVG는 .CSV 파일로 벡터 그래픽 이미지 파일 (.SVG)을 만들어 퍼포먼스 데이터를 시각화할 수 있게 해주는 새로운 명령줄 툴입니다. 툴은 숫자 통계 데이터를 처리하고 스무딩, 예산선과 막대 그래프를 지원합니다. 언리얼 엔진에 포함된 퍼포먼스 툴이 출력한 데이터나 자체 툴의 데이터로 그래프를 만들 수 있습니다.
신규: 시퀀스 커브 에디터 개선 (베타)
시퀀서 커브 에디터가 크게 개선되어 많은 요청을 받은 기능 다수와 확장성 지원이 추가되었습니다! 이제 엔진 코드를 수정하지 않아도 새로운 툴 모드, 새로운 툴바 버튼, (스무딩 등) 맞춤형 데이터 필터로 커브 에디터를 확장할 수 있습니다. 게다가 이제 커브 에디터를 시퀀서와 따로 도킹할 수 있으며, 스케일은 물론 키 리타이밍 툴도 있는 트랜스폼 툴이 포함됩니다.
업데이트된 커브 에디터를 사용하려면 시퀀서 또는 UMG (언리얼 모션 그래픽) 애니메이션을 열고 커브 에디터 버튼을 누릅니다. 새로운 트랜스폼 툴과 리타임 툴은 기본 활성화된 플러그인에 제공됩니다. 이제 어디든 커브 에디터를 끌어 붙일 수 있으며, 시퀀서 또는 에디터를 닫으면 위치가 저장되었다가 시퀀서를 다시 열 때 복원됩니다.
커브 에디터 확장
업데이트된 커브 에디터는 엔진 코드 수정 없이 플러그인으로 확장할 수 있습니다. 커브 에디터를 확장할 수 있는 주된 방법 3가지는 다음과 같습니다.
- 툴 모드 - 에디터에서 먼저 사용자 입력을 포착해 다양한 툴을 생성할 수 있게 해주는 독점 모드입니다. 예제 코드: FCurveEditorTransformTool, FCurveEditorRetimeTool. 맞춤형 툴을 새로 생성하려면 ICurveEditorToolExtension 을 구현하고 커브 에디터 모듈로 익스텐션을 등록하세요 (예제는 FCurveEditorToolsModule::StartupModule() 을 참고하세요).
- 툴바 버튼 - 커브 에디터 툴바에 새로운 버튼을 삽입할 수 있으며, 추가한 버튼을 사용해 커브 에디터를 원하는 대로 조작할 수 있습니다. (기본 포커스를 선택하는 대신) 데이터 포커스 옵션을 추가를 구현하는 예제가 있습니다. 새로운 툴바 버튼을 생성하려면 ICurveEditorExtension을 구현하고 커브 에디터 모듈로 등록하세요. (예제는 FCurveEditorToolsModule::StartupModule() 을 참고하세요).
- 데이터 필터 - 사용자 지정 세팅으로 동작 한 번에 선택한 커브를 조작하는 새로운 방식을 만들 수 있습니다. 현재 선택에 작동하는 데이터 필터 3개를 기본으로 제공합니다:
- Bake 굽기 (UCurveEditorBakeFilter)
- Simplify 단순화 (UCurveEditorReduceFilter)
- Smoothing 스무딩 (UCurveEditorFFTFilter)
UCurveEditorFilterBase 에서 클래스를 파생하면 새 필터를 구현할 수 있습니다. 모듈 등록은 필요하지 않습니다. 새 구현은 사용자 필터 대화창에 자동으로 나타납니다. EditAnywhere 마킹된 모든 UPROPERTY 가 자동으로 나타나므로, 필터를 적용하기 전에 조작할 수 있습니다.
뷰 모드
새롭고 재밌는 방법으로 커브를 볼 수 있습니다! 커브 에디터 왼쪽에 있는 트리 뷰로 커브를 볼 수 있으며, 아래처럼 뷰 모드 버튼을 클릭하면 선택한 커브를 어떻게 볼지 정할 수 있습니다. 뷰 모드는 3개입니다.
- 절대 뷰 - 모든 커브를 절대 공간에 표시합니다. 모두가 익숙한 기존 방식과 같습니다.
- 중첩 뷰 - 각 커브를 정규화하고 겹치지 않게 그립니다.
- 정규화 뷰 - 각 커브를 (중첩 뷰처럼) 정규화하지만, 모두 겹쳐 그립니다.
신규 필터 메뉴
신규 필터 메뉴는 전체 디테일 패널과 폭넓은 세팅으로 선택에 다양한 필터를 적용합니다. 적용 버튼을 누르면 지속되기 때문에 세팅을 쉽게 반복처리할 수 있습니다. UCurveEditorFilterBase 를 파생한 새 클래스에 함수를 구현하면 이 대화창에 새 옵션을 추가할 수 있습니다.
여러 프레임 옵션
이제 여러가지 다양한 프레임 옵션을 사용할 수 있습니다.
- Frame Selection (선택 프레임, 선택이 없으면 Frame All (모두 프레임))은 내장된 옵션으로, 기본 설정은 F 입니다.
- 재생 커서에 프레임 및 재생 범위에 프레임 은 새 옵션입니다. 플러그인을 사용해 툴바를 확장하는 좋은 예제입니다.
- 예전 가로 프레임/세로 프레임 옵션은 모두 포커스 이후 ALT + SHIFT + 우클릭 해서 각 축을 개별 확대 및 축소하는 것으로 대체되었습니다. 모두 포커스 이후 ALT + 우클릭 해서 스케일을 비례 조정할 수 있습니다.
리타임 툴
리타임 툴로 일차원 격자를 만들어 키 타이밍을 조정할 수 있습니다. 그리드 스냅과 다중 선택 등을 지원합니다! 이 툴은 기본 플러그인에 제공됩니다.
트랜스폼 툴
트랜스폼 툴은 선택한 키의 이동 및 (적합한 경우) X, Y 양축 스케일 조정을 지원합니다. ALT 를 누르면 앵커 포인트를 반대쪽 에지에서 중앙으로 변경할 수 있습니다.
신규: 시퀀서 사용성 개선
여러가지 워크플로 및 사용성 개선이 이루어진 부분은 다음과 같습니다:
- 트랙에 필터 및 검색 - 이제 트랙 및 액터에 필터를 적용하고 검색할 수 있습니다.
- 프레임 늘이기/줄이기 - 이제 겹치는 엘리먼트가 없는 한 섹션과 키 사이 시간 양을 더하고 뺄 수 있습니다.
- 여러 트랙 추가 및 편집 - 이제 Shift 또는 Ctrl 키로 여러 트랙을 그룹 추가 및 편집할 수 있습니다.
- 여러 행에 오디오 섹션 블렌드 - 이제 오디오 섹션을 블렌드하여 크로스 페이드 이펙트를 낼 수 있습니다. 이는 트랜스폼 섹션 블렌드와 비슷하게 동작합니다.
- 스켈레탈 애니메이션 포즈에 상태 복원 또는 상태 유지 - 이 옵션은 When Finished 프로퍼티를 사용해 애니메이션 섹션을 평가한 뒤 스켈레탈 메시를 바인드 포즈로 복원하거나, 마지막 애니메이션 섹션의 애니메이션 포즈를 유지할 수도 있습니다.
- UMG 멀티바인딩 - 이 기능은 4.23 이전부터 있었지만, 이제 여러 위젯 바인딩을 기존 바인딩에 추가할 수 있습니다. 위젯 하나를 애니메이트하여 다른 위젯에 사용할 수 있습니다.
신규: 데이터 유효성 검사 확장
Data Validation (데이터 유효성 검사) 플러그인을 확장하여 애셋의 유효성을 검사할 때 C++, 블루프린트, Python 기반 규칙을 지원합니다. 덕분에 블루프린트 또는 Python을 사용하는 테크 아티스트도 C++ 구현을 요청하는 대신 애셋 유효성 검사 스크립트를 생성할 수 있습니다. 이제 기본 엔진 클래스가 유효성 검사 패스를 거칠 수 있습니다.
신규: 디버그 카메라 컨트롤러 개선
이번 버전에서 DebugCameraController (디버그 카메라 컨트롤러)에 새로운 기능을 추가했습니다.
- Orbit (궤도) 기능으로 선택한 위치 또는 선택한 액터를 중심으로 궤도를 돌며 자세하게 애셋을 살펴볼 수 있습니다.
- 버퍼 시각화 개요에는 선택한 버퍼를 전체화면으로 볼 수 있는 옵션이 있어 그래픽 카드 버퍼 콘텐츠를 살펴볼 수 있습니다.
- 뷰 모드 순환 으로 다양한 유형의 씬 데이터가 처리되는 모습을 살펴볼 수 있습니다.
이 새로운 기능은 에디터에서 플레이(PIE) 중 디버그 카메라 컨트롤러를 사용할 때 게임 내 디버깅 능력을 증강합니다. 뷰 모드와 그래픽 버퍼를 살펴보면 게임 내에서 예상하지 못한 씬 결과를 진단할 수 있습니다.
PIE에서 디버그 카메라 컨트롤러를 열려면 콘솔 명령어에 ToggleDebugCamera를 입력하거나 새로운 세미콜론 단축키를 사용하세요.
신규: 멀티 유저 편집 개선 (베타)
실제 프로덕션 사용 사례에 더 알맞도록 멀티 유저 편집을 크게 개선했습니다.
- 유저 인터페이스를 간소화해 불필요한 대화창을 없애고 세션 관리에 필요한 모든 정보와 조작 방법을 한곳에 모았습니다.
(툴바의 멀티 유저 편집 아이콘이 기본 숨김으로 변경되었습니다. 창 > 개발 툴 메뉴에서 새로 추가된 멀티 유저 편집 브라우저 를 열거나 프로젝트 세팅 대화창에서 툴바를 다시 활성화할 수 있습니다. 멀티 유저 편집 레퍼런스 문서를 참고하세요.)
- 모든 세션 참가자의 트랜잭션 시스템 안정성을 크게 개선했습니다.
- 세션을 종료하기 전 세션 소유자에게 변경 사항을 유지할지 확인하여 사용자 오류로 세션 데이터를 잃을 가능성을 최소화했습니다. 이제 세션이 종료되면 서버가 자동으로 실행중인 모든 라이브 서버를 아카이브로 저장하며 필요하다면 나중에 아카이브에서 데이터를 복구할 수 있습니다.
- 애셋 잠금 시스템을 개선해 여러 유저가 같은 애셋에서 작업하기 쉽도록 했습니다. 이제 같은 세션의 다른 유저가 잠근 애셋을 수정하려고 하면 알림이 표시됩니다. 해당 유저가 잠금을 해제하면 자동으로 해당 애셋의 잠금 권한이 자신에게 넘어와 다음에 저장할 때까지 유지됩니다.
멀티 유저 편집 시스템에 관한 자세한 정보는 문서 를 참고하세요.
신규: 작업 복구 (실험 단계)
새로운 Disaster Recovery (작업 복구) 시스템은 에디터의 기존 자동 저장 시스템을 증강해 예상치 못하게 작업이 종료되더라도 프로젝트 콘텐츠에 적용한 변경 사항을 복구할 수 있습니다.
작업 중 멀티 유저 편집 시스템과 동일한 트랜잭션 시스템을 사용해 편집 내용을 기록합니다. 변경 사항을 저장하지 않은 상태로 에디터가 종료된다면 프로젝트를 다시 열었을 때 마지막으로 저장한 이후 진행한 트랜잭션 목록이 표시됩니다. 목록에 있는 모든 변경 사항, 아니면 선택한 복구 지점까지의 변경 사항을 복구할 수 있습니다.
신규: 드래그 앤 드롭으로 배열 채우기
이제 콘텐츠 브라우저에서 애셋을 여러 개 선택해 배열 헤더로 드래그 앤 드롭하면 배열을 채울 수 있습니다. 배열로 만들고 싶은 같은 유형의 애셋을 여러 개 선택하고 콘텐츠 브라우저에서 배열 헤더로 드래그하세요. 애셋을 저장하는 배열에 사용할 수 있으며, 큰 배열로 작업할 때 워크플로를 단순화합니다.
자세한 정보는 배열 컨트롤 문서를 참고하세요.
신규: EditConditions 메타데이터 개선 (베타)
이제 간단한 부울 표현식으로 디테일 패널의 프로퍼티 편집을 활성화 또는 비활성화할 수 있으며, UPROPERTY 시스템의 EditCondition 메타데이터에 대해 새 표현식 파서를 사용합니다. 열거형과 숫자 유형도 지원하므로, 오버헤드를 최소로 하면서 비교적 복잡한 표현식을 작성할 수 있습니다.
사용자가 편집할 수 있는 클래스를 작성하는 경우, 예를 들면 Actor 나 Component 처럼 특정 프로퍼티가 조건부로 유효한 경우, 세부사항 전체를 커스텀 클래스로 작성하지 않고도 더욱 직관적인 UI를 생성할 수 있습니다.
이제 EditCondition 메타 태그가 거의 모든 유효한 C++ 표현식을 받습니다. 예를 들어 이번 변경 이후 유효한 프로퍼티 정의는 다음과 같습니다.
UPROPERTY(EditAnywhere, Category=EditCondition, meta=( EditCondition="IntegerEditCondition >= 5" ))
다른 유효한 표현식의 예는 다음과 같습니다.
MyInteger > 5 && MyFloat <= 10
MyEnum == EnumType::B
MyBool == true || MyInteger == MyFloat + 5
신규: 에디터 유틸리티 블루프린트 업데이트 (베타)
에디터 유틸리티 블루프린트 업데이트를 통해 블루프린트를 사용한 에디터 확장성이 개선되어, Python 및 C++ 확장성과 비슷해졌습니다. 이제 에디터 유틸리티 위젯으로 기존 에디터 유틸리티 블루프린트의 자동 생성 버튼보다 더욱 자세하게 UI를 커스터마이징할 수 있습니다.
개선 사항은 다음과 같습니다.
- 부모 클래스는 위젯이 아닌 어떤 에디터 전용 클래스도 될 수 있습니다.
- 함수 호출에 대한 인스턴싱이 필요한 에디터 유틸리티의 인스턴스를 생성할 수 있습니다.
- 에디터 유틸리티 블루프린트 또는 에디터 유틸리티 위젯에 Run 함수를 추가하는 기능으로 에디터 시작 시 스크립트를 실행할 수 있습니다. 이렇게 하면 인스턴스 생성 및 상태 저장 에디터 이벤트에 바인딩할 수 있습니다.
신규: 관련 없는 노드 숨기기
이제 노드를 선택하고 관련 없음 숨기기 기능을 사용해 선택한 노드와 연결되지 않은 다른 모든 노드를 흐리게 만들 수 있어, 머티리얼과 블루프린트를 더욱 깔끔하고 정확한 방식으로 디버깅하고 이해할 수 있습니다.
신규: 랜드스케이프 스플라인 개선
이제 ALT + 좌클릭 드래그 를 사용해 새로운 스플라인 컨트롤 포인트와 세그먼트를 생성할 수 있습니다. 이는 새로운 스플라인을 추가하는 CTRL + 좌클릭 동작에 추가된 것입니다. ALT + 좌클릭 드래그 의 장점은 커서를 드래그하면서 새로운 스플라인이 어떻게 생겼는지 확인할 수 있다는 것입니다. 이 동작으로 스플라인을 나눌 수도 있습니다.
새로운 컨트롤 포인트를 추가하려면 기존 컨트롤 포인트를 선택하고 새로운 포인트를 만들고 싶은 방향으로 ALT + 좌클릭 드래그 합니다. 기존 스플라인을 나누려면 세그먼트 한 쪽 끝의 스플라인 포인트를 선택하고 경로를 나눌 기존 선분 쪽으로 커서를 ALT + 좌클릭 드래그 합니다.
신규: 에디터 퍼포먼스 개선
아주 큰 씬을 작업하는 일이 자주 있다면 퍼포먼스가 크게 개선되어 작업이 더욱 빠르고 부드러워졌다는 걸 알 수 있을 겁니다. 한 번에 수백, 수천 개의 앵커를 선택하거나 선택 취소할 때, 액터가 수천 개 포함된 레이어를 표시하거나 숨길 때, 다른 액터 수천 개의 부모인 액터를 선택해 작업할 때, 액터 수천 개가 든 레벨을 로드할 때 등 작업이 훨씬 빨라졌습니다.
신규: 머티리얼 에디터 업데이트
머티리얼 에디터와 머티리얼 인스턴스 에디터 워크플로가 개선되었으며, 머티리얼과 머티리얼 인스턴스 스크립트 작성 능력을 향상했습니다.
- 이제 머티리얼 에디터 툴바의 계층구조 버튼을 누르면 메뉴가 나타나 모든 직계 자손이 표시되므로, 빠르게 액세스해 편집할 수 있습니다.
- 이제 머티리얼 인스턴스 에디터의 계층구조 메뉴에 머티리얼과 머티리얼 인스턴스의 부모 체인에 더해 모든 직계 자손이 표시됩니다.
- 머티리얼 스크립팅 라이브러리에 에디터 유틸리티 위젯, 에디터 유틸리티 블루프린트, Python, C++에서 사용할 수 있는 노드를 추가했습니다.
- 머티리얼 인스턴스: GetStaticSwitchParameterValue
- 머티리얼: GetMaterialDefaultScalarParameterValue, GetMaterialDefaultVectorParameterValue, GetMaterialDefaultTextureParameterValue, GetMaterialDefaultStaticSwitchParameterValue, HasMaterialUsage (머티리얼에 주어진 사용 플래그가 있는지 확인할 때), GetChildInstances, Get___ParameterNames (스칼라, 벡터, 텍스처 또는 스태틱 스위치 파라미터 이름 배열을 구할 때), Get___ParameterSource (소스 애셋을 찾아, 함수인지 머티리얼인지, 파라미터가 어디서 정의되었는지 알아내며, 마찬가지로 스칼라, 벡터 등에 대한 버전도 있습니다).
- 머티리얼 인스턴스에 표시된 파라미터 이름에 마우스를 올리면 파라미터가 정의된 애셋의 이름을 볼 수 있습니다. 여러 단계로 중첩된 함수가 있는 머티리얼 작업이 쉬워집니다.
신규: UMG 접근성 슬레이트 스크린 리더 지원 (실험단계)
이제 UE4 는 Windows 에서 서드파티 스크린 리더 또는 iOS 에서 VoiceOver 를 지원하여, 게임 UI 접근성을 높이고 CVAA 표준을 준수할 수 있도록 돕습니다. NVDA, JAWS 와 같은 스크린 리더는 소프트웨어 애플리케이션의 UI 를 사용자에게 읽어줄 수 있습니다. 시각 장애인들이 소프트웨어 애플리케이션을 사용하고 조작할 수 있도록 돕는 필수 기능입니다.
4.23 이후 UE4 에 포함된 API 를 통해 서드파티 스크린 리더로 UI 텍스트를 읽을 수 있습니다. 텍스트 블록, 편집가능 텍스트 블록, 슬라이더, 버튼, 체크박스와 같은 일반 UMG 위젯 다수를 지원합니다. 이 내장 기능 덕에 텍스트 투 스피치 기술을 별도 구현할 필요가 없어, 스크린 리더 지원이 쉬워집니다.
스크린 리더 지원을 활성화하려면, 프로젝트 또는 엔진 콘솔 변수 환경설정 파일로 가야 합니다. 그 안에 Accessibility.Enable=1 변수를 추가하면 됩니다.
자세한 정보는 Supporting Screen Readers (영문) 문서를 참고하세요.
신규: Wacom 태블릿 지원 (실험단계)
페인팅 플러그인이나 모델링 툴 등 기능을 사용한다면 새로운 플러그인을 사용해 Wacom 스타일 태블릿과 스타일러스 시스템이 제공하는 펜 압력과 기울기 등 추가 스타일러스 입력 방식에 액세스할 수 있습니다.
모든 태블릿이 API가 지원하는 모든 값을 지원하는 건 아닙니다. 서브시스템이 모든 지원값을 노출하도록 작성된 것은 의도된 사항입니다. 어떤 값에 초점을 맞춰야 하느냐는 서브시스템 사용자에게 달려있습니다.
실험단계인 기능으로, 현재 언리얼 엔진 툴에 지원되지 않습니다.
신규: UMG 위젯 비교
블루프린트 비교 기능을 확장 및 개선하여 위젯 블루프린트는 물론 액터와 애니메이션 블루프린트도 지원합니다! 새로운 툴은 블루프린트의 구조 변경, 프로퍼티 및 함수 플래그, 클래스 세팅, 부모 클래스, 컴포넌트 추가 외에도 (이제 위젯 및 위젯 슬롯의 기본 프로퍼티를 포함하는) 기본 프로퍼티 값과 블루프린트 그래프 변경사항도 표시합니다.
이미 작성한 커스텀 블루프린트 서브클래스를 비교하려면, FindDiffs 함수를 오버라이드해서 표시하려는 구체적인 변경사항을 나열하고, 비교할 서브오브젝트를 요청하면 됩니다.
신규: 변경 유지 랜드스케이프 편집 (실험단계)
이제 변경 유지 레이어로 랜드스케이프 하이트 맵과 페인트 레이어를 편집할 수 있습니다. 랜드스케이프에 여러 레이어를 추가해도 서로 독립적으로 편집할 수 있습니다. 이 새 레이어 기능은 랜드스케이프 조각 및 페인트 작업에 대한 토대로 작동하여, 랜드스케이프 조작 및 유지 효율이 높아집니다.
레이어를 추가할 때도 변경하고 싶지 않은 레이어는 잠그고 한 번에 하나에만 집중할 수 있습니다. 다른 레이어를 숨겨서 특정 레이어에만 집중하거나 특정 레이어가 없으면 랜드스케이프가 어떻게 될지도 확인할 수 있습니다. 마지막으로 Layer Contribution (레이어 기여)를 활성화하면 레이어가 뷰포트에서 강조되어 해당 레이어 안에서 일어나는 모든 조각 및 페인트 작업을, 심지어 레이어를 추가하자 마자 볼 수 있습니다. 레이어 순서나 레이어 알파 블렌딩 조정과 같은 옵션도 새로 생겼습니다.
이제 랜드스케이프 스플라인 터레인 변경 및 페인트도 스플라인에 대한 레이어가 유지되어 변경 유지 편집이 가능합니다. 이제 스플라인을 편집, 변경, 이동해도 랜드스케이프에 길게 뻗은 도로나 길이 유지된다는 뜻입니다.
자세한 정보는 Non-Destructive Landscape Layers and Splines (영문) 문서를 참고하세요.
신규: 폴리지 툴로 인터랙티브 액터 배치
이제 폴리지 툴에 스태틱 메시 말고도 인터랙티브 액터로 씬을 채우는 기능을 지원합니다. 폴리지 툴로 배치한 액터는 스태틱 메시와 같은 방식으로 동작하므로, 지형을 조각하거나 페인트한 스태틱 메시를 옮기면 자동으로 퍼집니다.
예를 들어 이 동영상에 흩어진 나무는 상호작용 로직과 스태틱 메시 컴포넌트를 갖는 블루프린트 액터입니다. 나중에 지형을 수정하면 나무 액터가 지형의 새로운 높이에 맞게 자동으로 업데이트됩니다.
폴리지 액터가 인스턴스 메시로 렌더되지 않는 이유는 렌더러가 볼 때 레벨에 직접 각각 배치한 것처럼 취급하기 때문입니다.
자세한 정보는 폴리지 모드를 참고하세요.
신규: HDRI 백드롭 액터
새로운 HDRI 백드롭(배경막) 액터를 사용하면 HDRI 이미지 하나로 레벨에 현실적인 배경과 라이팅 환경을 더욱 쉽고 빠르게 만들 수 있습니다. 레벨에 액터를 배치하고 배경막에 투영하고 싶은 이미지를 HDRI 텍스처로 할당하면, 스카이 라이트가 자동 구성되어 이미지에서 끌어온 주변광, 정확한 리플렉션, 레벨 콘텐츠가 드리우는 그림자를 포착하는 바닥 표면을 제공합니다.
워크플로와 투영을 제어할 수 있는 세팅에 대한 자세한 정보는 HDRI Backdrop 문서를 참고하세요.
신규: 익스포넨셜 하이트 포그용 듀얼 하이트 포그
익스포넨셜 하이트 포그 볼륨을 사용할 때 추가 포그 레이어에 안개 농도, 고도 감쇠, 고도 오프셋 파라미터를 추가해 포그 제어를 개선했습니다.
1 - 익스포넨셜 하이트 포그 없음; 2 - 익스포넨셜 하이트 포그; 3 - 듀얼 익스포넨셜 하이트 포그
신규: 다이내믹 섀도 바이어스 개선
이번 버전에서는 무버블 라이트의 섀도 바이어스를 개선하기 위해 몇 가지 파라미터를 새로 추가했으며, 라이트별로 설정하거나 콘솔 변수를 사용해 라이트 유형별로 전역 설정할 수도 있습니다. 상수 섀도 바이어스 파라미터 말고도 기울기(Slope) 바이어스를 추가해서 (전부는 아니라도) 일부 그림자 아티팩트 및 애크니를 해결할 수 있도록 했습니다. 디렉셔널 라이트의 경우, 특별 추가된 깊이 바이어스 파라미터의 섀도 캐스케이드 바이어스 분포(Shadow Cascade Bias Distribution)로 전체 캐스케이드의 바이어스 세기를 제어할 수 있습니다.
1 - 기울기 바이어스 및 섀도 캐스케이드 바이어스 분포 조정 이전; 2 - 기울기 바이어스 및 섀도 캐스케이스 바이어스 분포 조정 이후
고려할 부분이 두 가지 있습니다. 섀도 맵 렌더 도중에는 기울기 바이어스가, 섀도 맵 읽기 도중에는 리시버 바이어스가 쓰인다는 것입니다. 기울기 바이어스는 라이트마다 제어할 수 있으며 섀도 (상수) 바이어스에 비례합니다. 상수 바이어스와 기울기 바이어스를 사용할 때는 섀도 퀄리티와 정확도 중 하나를 선택해야 하며 이렇게 하면 일부 아티팩트를 해결할 수 있습니다.
리시버 바이어스를 제어하려면, r.Shadow.* 콘솔 변수 값을 0 (정확도가 높지만, 아티팩트 많음)과 1 (정확도가 낮지만, 아티팩트 적음) 사이로 설정해 라이트 유형별로 전역 설정할 수 있습니다. 어떤 라이트 유형의 상수 및 기울기 바이어스도 콘솔 변수를 사용해 전역 설정할 수 있습니다.
신규: Pre-Skinned Local Bounds 머티리얼 표현식
스켈레탈 메시의 Pre-Skinned Local Bounds (스키닝 전 로컬 바운드)를 반환하는 새로운 머티리얼 표현식을 추가했습니다. 이 표현식으로 머티리얼을 통해 액터의 바운드 내 상대 위치를 계산할 수 있습니다. 이 바운드는 애니메이션을 적용한 경우에도 바뀌지 않으므로, 머티리얼을 일관된 또는 고정된 방식으로 적용할 수 있으며, 무기나 비히클에 적용되는 장식성 래핑같은 패턴을 예로 들 수 있습니다. 애니메이션 에디터 캐릭터 드롭다운의 메시 카테고리 아래 메시의 스킨을 입히기 전 로컬 바운드를 시각화할 수 있습니다.
신규: 커스텀 프리미티브 별 데이터 저장
이제 머티리얼 인스턴스 단위 대신 프리미티브 단위 수준에 데이터 저장을 지원하여, 프리미티브가 자동으로 다이내믹 인스턴스 드로잉 대상으로 간주하도록 할 수 있습니다.
프리미티브 별 Use Custom Primitive Data (커스텀 프리미티브 데이터 사용) 옵션으로 데이터를 저장하면 비슷한 지오메트리에 필요한 드로 콜의 수가 감소하는 이점이 있으며, 이는 각 프리미티브에 자체 커스텀 데이터가 있더라도 마찬가지입니다.
신규: From Material Expression 셰이딩 모델
새로운 From Material Expression 셰이딩 모델을 사용하면 머티리얼 하나에 셰이딩 모델 다수를 사용할 수 있습니다!
Material Output 및 Material Attribute 노드를 사용하는 이전 워크플로는 물론, If 문, BlendMaterialAttribute, 스태틱 스위치, 머티리얼 인스턴스를 사용하는 일반적인 워크플로도 완벽 지원합니다.
이는 애셋 하나에 머티리얼이 둘 사용되어 레벨의 해당 애셋 각 인스턴스마다 드로 콜이 두 번 발생하는 경우, 사용되는 드로 콜 수를 최적화하여 줄일 수 있습니다. 두 셰이딩 모델을 사용하는 하나의 머티리얼을 통해 드로 콜을 하나로 줄일 수 있기 때문입니다.
자세한 정보는 From Material Expression (영문) 문서를 참고하세요.
신규: IES 프로파일 개선
이번 버전에는 에디터에서 IES 프로파일을 사용하고 다양한 라이트 유형에 사용하는 방식을 개선했습니다.
- 이제 IES가 할당된 포인트 및 스포트 라이트가 포토메트릭 데이터를 3D로 시각화해서 보여줍니다.
- C 타입 IES 파일 지원이 향상되어 축 대칭 디스플레이가 아티팩트 없이 개선됩니다.
- 이제 콘텐츠 브라우저의 IES 텍스처 아이콘에 포토메트릭 데이터 프리뷰가 표시됩니다.
자세한 정보는 IES 라이트 프로파일 문서를 참고하세요.
신규: 렌더 종속성 그래프
Rendering Dependency Graph (렌더 종속성 그래프, RDG) 또는 줄여서 "렌더 그래프"는 최신 그래픽 API의 장점을 활용하도록 설계되어, 자동 비동기 연산 스케줄링은 물론 보다 효율적인 메모리 및 배리어 관리를 통해 퍼포먼스를 향상시킵니다.
언리얼 엔진의 렌더러를 RDG로 이식하고 있으며 이후 새로운 기능의 렌더 패스를 만들 때 해당 API를 주로 사용할 예정입니다. 아직 구현이 개발 초기고 현재 퍼포먼스 이점은 많이 부족하지만, 프로덕션에 쓰일 정도로 안정적인 API입니다.
자세한 정보는 Rendering Dependency Graph (영문) 문서를 참고하세요.
신규: 컴포셔 개선
이번 버전에서는 컴포셔에 새로운 옵션을 추가했습니다.
- AlphaHoldOut 블렌드 모드 - 오브젝트의 머티리얼 알파를 사용하여 해당 오브젝트 뒤에 구멍을 뚫는 새로운 머티리얼 블렌드 모드입니다.
- 컬러 그레이딩 - 이제 컴포셔가 부동 소수점 포스트 프로세싱 룩업테이블(LUT)을 사용하는 화이트 밸런스와 컬러 그레이딩을 지원합니다.
- 컴포셔 레이어가 씬 카메라에서 포스트 프로세스 파라미터 상속 - 이제 컴포셔 레이어가 씬 카메라에서 포스트 프로세싱 파라미터를 상속해, 각 CG 레이어마다 색 보정 컨트롤을 선택적으로 활성화할 수 있습니다.
학습 탭에서 사용할 수 있는 컴포셔 샘플 역시 언리얼 엔진의 최신 합성 워크플로를 반영하도록 업데이트되었습니다!
신규: Python 임포트/익스포트 FBX
이제 Python 스크립팅이 FBX 애니메이션 임포트와 익스포트를 지원합니다.
신규: 프로 비디오 코덱
언리얼 엔진이 지원하는 비디오 코덱을 늘려 언리얼 엔진과 전문 동영상 프로덕션 파이프라인과 워크플로를 통합하기 쉽도록 했습니다.
이제 Apple ProRes Encoder로 Pro Media 파일을 익스포트할 수 있습니다.
- 코덱의 모든 포맷을 지원합니다. 4444 XQ, 4444, 422 HQ, 422, 422 LT, 422 Proxy
- 여러 프레임 속도와 해상도를 지원합니다.
- 임베드한 타임코드 트랙을 지원합니다.
- 임베드한 오디오는 지원하지 않습니다. 오디오가 다운 믹스되며 별개의 .wav 파일로 익스포트됩니다.
- Windows 플랫폼에서만 지원합니다.
자세한 정보는 새로운 하우투 가이드인 Exporting Pro Media Files to Apple ProRes (영문) 페이지를 참고하세요.
이제 미디어 프레임워크가 HAP 코덱으로 인코딩된 파일을 재생할 수 있습니다.
- 코덱의 모든 포맷을 지원합니다: HAP, HAP Alpha, HAP Q, HAP Q Alpha
- 1x 4K 60 FPS 동영상 또는 2x 4K 30 FPS 동영상 재생을 지원하며, 2x 4K 60 FPS 동영상까지 늘릴 수 있습니다.
- 알파 채널을 완벽 지원합니다.
- 다중 프레임 속도와 해상도를 지원합니다.
- 오디오 또는 타임코드 삽입은 지원하지 않습니다.
- 현재 8K와 16K는 지원하지 않습니다.
자세한 정보는 미디어 프레임워크 테크니컬 레퍼런스의 HAP 코덱 재생 지원 항목을 참고하세요.
신규: 스테레오 파노라믹 캡처 툴 개선 (실험단계)
스테레오 파노라믹 캡처 툴을 업데이트해, 이제 훨씬 쉽게 가상 세계의 고퀄리티 스테레오스코픽 스틸 샷과 동영상을 산업 표준 형식으로 캡처하고, Oculus 또는 GearVR 헤드셋에서 감상할 수 있습니다. 렌더 세팅, 비트 깊이, 퀄리티 제어를 확장했습니다. 캡처할 그래픽 버퍼를 선택해 다른 애플리케이션에서 이미지를 합성하거나 후처리할 수도 있습니다.
신규: 플랫폼 SDK 업그레이드
새 출시 버전마다 플랫폼 파트너의 최신 SDK 버전을 지원하도록 업데이트하고 있습니다.
- 빌드 팜 컴파일 대상 IDE 버전
- Visual Studio - Visual Studio 2017 v15.9.11 toolchain (14.16.27023) 및 Windows 10 SDK (10.0.16299.0)
- 최소 지원 버전
- Visual Studio 2017 v15.6
- NET 4.6.2 Targeting Pack 필수
- 최소 지원 버전
- Xcode - Xcode 10.3
- Visual Studio - Visual Studio 2017 v15.9.11 toolchain (14.16.27023) 및 Windows 10 SDK (10.0.16299.0)
- Android
- Android NDK r14b (새 CodeWorks for Android 1r7u1 인스톨러가 Windows 및 Mac 의 이전 CodeWorks 를 대체하며, Linux 는 1r6u1에 수정 사항을 더해 사용합니다.)
- ARCore
- 1.7
- HTML5
- Emscripten 1.38.31
- Linux "SDK" (cross-toolchain)
- v14_clang-8.0.1-centos7 - 다운로드: cdn.unrealengine.com/CrossToolchain_Linux/v14_clang-8.0.1-centos7.exe (이제 인스톨러가 포함되었습니다!)
- Oculus Runtime
- 1.37
- OpenXR
- 1.0
- Google Stadia
- 1.34
- Lumin
- 0.19.0
- Steam
- 1.42
- SteamVR
- 1.5.17
- Switch
- SDK 8.3.0 + optional NEX 4.6.3 (Firmware 7.x.x-x.x)
- 지원 IDE: Visual Studio 2017, Visual Studio 2015
- PS4
- 6.508.001
- 펌웨어 버전 6.510.011
- 지원 IDE: Visual Studio 2017, Visual Studio 2015
- XBoxOne
- XDK: July 2019 QFE-9
- 펌웨어 버전: May 2019 10.0.18362.3055
- 지원 IDE: Visual Studio 2017
- MacOS
- SDK 10.14
- iOS
- SDK 12
- tvOS
- SDK 12
업그레이드 노트
에디터
마티네
- 언리얼 엔진 4.23 부터 마티네가 더이상 지원되지 않으며 추후 엔진에서 제거될 예정입니다. 제거된 이후에는, 마티네 파일을 열 수 없게 될 것입니다. 마티네 시퀀스를 가능한 한 시퀀서 시퀀스로 변환하는 방법은 Converting Matinee Files to Sequencer 문서를 참고하세요.
VR 에디터
- GDC 2017 에서 선보였던 VR 메시 에디터는 더이상 지원되지 않습니다. 메시 에디터 플러그인은 추후 엔진에서 제거될 예정입니다.
플랫폼
HTML5
- HTML5 플랫폼 지원이 GitHub 에 커뮤니티 지원 플랫폼 익스텐션 으로 이주되어 앞으로는 더이상 에픽이 공식 지원하지 않습니다.
iOS
- iOS 10 지원이 제거되었습니다. 이제 최소 지원 버전은 iOS 11 입니다.
- iOS 에서 OpenGL 지원이 빠르면 4.24 에서 제거될 예정입니다. 제거되면, Metal 이 iOS 디바이스에서 지원되는 유일한 렌더링 패스가 됩니다.