언리얼 엔진 4.20 출시!
2018년 7월 16일

언리얼 엔진 4.20 출시!

저자: Jeff Wilson

새 소식

언리얼 엔진 4.20 은 개발자의 성공에 필요한 다양한 툴을 제공한다는 약속을 지킵니다. 미래 지향적 모바일 게임을 만들고, 나이아가라의 영향을 탐구하며, 놀랍도록 사실적인 디지털 휴먼에 생명력을 불어넣으면서, 모든 플랫폼의 워크플로 최적화를 활용해보세요. 
 
이제 극도의 사실주의로 살아 숨쉬는 디지털 캐릭터와 현실같은 월드를 제작할 수 있습니다. 언리얼 엔진의 새로운 파티클 에디터, 나이아가라는 프로젝트 전반에 엄청난 디테일을 살려 비주얼 이펙트의 수준이 달라집니다. "Meet Mike" 및 "Siren" 데모 제작에 사용된 새로운 디지털 휴먼 기술로 사실주의에 대한 기준이 높아집니다. 새로운 시네마틱 뎁스 오브 필드를 사용하면 실시간으로 시네마 퀄리티의 카메라 이펙트를 얻을 수 있습니다. 
 
언리얼 엔진에는 원하는 스타일과 워크플로에 맞게 제작 프로세스를 커스터마이징하는 툴이 제공되어 나만의 작업 방식을 유지할 수 있습니다. 새로운 에디터 스크립팅 및 자동화 라이브러리를 통해, 툴과 워크플로에 대한 완벽 커스터마이징이 가능합니다. 액터와 콘텐츠 브라우저 컨텍스트 메뉴에 대한 스크립트 익스텐션으로 액터나 애셋에 적용되는 액션을 새로 추가할 수 있어 디자이너와 아티스트의 삶이 편해집니다. 
 
철저한 테스트를 거친 모바일 및 콘솔 지원이 제공된다는 것은, 한 번 제작으로 모든 디바이스에서 플레이할 수 있어 사용자가 원하면 언제 어디서든 즐길 수 있는 경험을 제공한다는 뜻입니다. 에픽은 언리얼 엔진의 모바일 게임 개발 부분 최적화를 위해 포트나이트 모바일 버전을 출시하는 데 총력을 기울였습니다. 하드웨어가 해야 하는 작업량을 줄이기 위해 하드웨어/소프트웨어 오클루전 쿼리를 둘 다 구현하는 등 엄청난 양의 퍼포먼스 향상 작업이 있었습니다. 이제 프록시 LOD 기능을 제작 단계에서 사용할 수 있으며,  렌더링해야 하는 지오메트리 복잡도를 한층 더 줄일 수 있게 되었습니다. 
 
에픽에서 직접 개발한 업데이트 외에도 이번 출시에는 GitHub 의 놀라운 언리얼 엔진 개발자 커뮤니티에서 제출한 165 개의 개선사항이 포함되어 있습니다! 언리얼 엔진 4.20 에 기여해주신 모든 분들께 감사드립니다: 
 
Adam Moss (adamnv), Akihiro Kayama (kayama-shift), Alan Edwardes (alanedwardes), Alan Liu (PicaroonX), Andrew (XenonicDev), Andrew Haselgrove (Dimpl), Anton Rassadin (Antonrr), arkiruthis, Begounet, Brandon Wilson (Brandon-Wilson), c4tnt, Changmin (cmheo), Christian Loock (Brainshack), Clinton Freeman (freemancw), Daniel Assuncao (dani9bma), David Payne (dwrpayne), Deep Silver Dambuster Studios (DSDambuster), Derek van Vliet (derekvanvliet), Eduard Gelbling (NachtMahr87), frankie-dipietro-epic, Gautier Boëda (Goutye), George Erfesoglou (nonlin), Giovanny Gutiérrez (bakjos), Gregor Gullwi (ggsharkmob), Hannah Gamiel (hgamiel), Hyuk Kim (Hybrid0), Ibraheem Alhashim (ialhashim), Ilya (ill), Jacob Nelson (JacobNelsonGames), Jaden Evanger (cyberblaststudios), Jared Taylor (Vaei), Jesse Yeh (jesseyeh), Jia Li (shrimpy56), Jørgen P. Tjernø (jorgenpt), June Rhodes (hach-que), Junichi Kimura (junkimu), Kalle Hämäläinen (kallehamalainen), kinolaev, Kory Postma (korypostma), krill-o-tron, Kryofenix, Lallapallooza, Layla (aylaylay), Lee Berger (IntegralLee), Leon Rosengarten (lion03), Lirrec, malavon, Marat Radchenko (slonopotamus), Marat Yakupov (moadib), Mathias L. Baumann (Marenz), Matt Hoffman (LordNed), Matthew Davey (reapazor), Maxime Turmel (maxtunel), Michael Allar (Allar), Michael Kösel (TheCodez), Michael Puskas (Mmpuskas), Mikayla Hutchinson (mhutch), mimattr, Mitsuhiro Koga (shiena), Muhammad A.Moniem (mamoniem), nakapon, Nicolas Lebedenco (nlebedenco), Paul Eremeeff (PaulEremeeff), Phillip Baxter (PhilBax), projectgheist, Rama (EverNewJoy), redfeatherplusplus, Rei-halycon, Robert Khalikov (nbjk667), Roman Chehowski (RChehowski), S-Marais, Sam Bonifacio (Acren), Satheesh  (ryanjon2040), Scott Freeman (gsfreema), SculptrVR, Sebastian Aaltonen, Sébastien Rombauts (SRombauts), Seokmin Hong (SeokminHong), Sertaç Ogan (SertacOgan), stephenwhittle, Temaran, Thomas Miller (tmiv), Trond Abusdal (trond), TWIDan, Tyler (tstaples), Usagi Ito (usagi), yama2akira, Yang Xiangyun (pdlogingithub), yehaike, Zachary Burke (error454)

주요 기능

신규: 모바일 플랫폼 출시를 위한 최적화 및 개선사항

모바일에서의 경험을 크게 향상시키고자 포트나이트 모바일 버전을 만드는 데 사용된 최적화 100 종 이상을 모든 언리얼 엔진 개발자들에게 공개합니다! 

  
 

모바일에서 하드웨어/소프트웨어 오클루전 쿼리
 
이제 ES 3.1 또는 Vulkan 을 지원하는 iOS 및 안드로이드 고사양 모바일 디바이스에 GPU 를 사용하는 하드웨어 오클루전 쿼리가 지원됩니다. 지원하는 디바이스면 기본적으로 활성화됩니다. 
 
소프트웨어 오클루전 쿼리는 CPU 를 사용하여 씬에서 프리미티브 컴포넌트를 컬링해 내는 실험단계 기능입니다. 보수적 접근법을 사용하므로, 어떤 모바일 디바이스에서도 사용할 수 있습니다.
 

   

왼쪽 - r.Mobile.AllowSoftwareOcclusion 1, r.SO.VisualizeBuffer1; 오른쪽 - 차폐된 부분 확인을 위해 렌더링을 멈춘 모습

소프트웨어 오클루전 쿼리를 사용하는 방법은 다음과 같습니다: 

  1. r.Mobile.AllowSoftwareOcclusion 1 로 활성화시킵니다.
  2. r.AllowOcclusionQueries 0 으로 비활성화시킵니다.
  3. 스태틱 메시 에디터에서 LOD for Occluder Mesh (오클루더 메시에 대한 LOD)를 true 설정하여 프리미티브를 오클루더로 만듭니다. 

고사양 모바일 모드에서 r.SO.VisualizeBuffer 1 로 활성화시키면 모바일 프리뷰어에 결과가 시각화되어 나옵니다. 

플랫폼 머티리얼 통계

머티리얼 에디터 내 플랫폼 통계 창을 사용하면 머티리얼 프로파일링과 최적화를 빠르게 할 수 있습니다! 이제 다수의 셰이더 플랫폼과 퀄리티 레벨에 대한 통계를 확인할 수 있습니다. 모바일 플랫폼의 경우, 오프라인 셰이더 컴파일러를 사용하여 보다 정확한 인스트럭션 및 텍스처 사용 정보를 얻습니다. 

향상된 안드로이드 디버깅
 
UE4 프로젝트를 다시 패키징하지 않고도 안드로이드에서 반복처리작업과 디버깅이 가능합니다!
안드로이드 컴파일 시, 이제 Gradle 프로젝트 파일을 생성하며, 이 파일을 Android Studio 에서 열 수 있습니다. C ++ 및 Java 코드에 중단점을 배치하고 Android Studio 를 사용하여 디버그 세션을 시작할 수 있습니다. C ++ 소스 코드를 변경하고 다시 컴파일할 수도 있습니다. 새로운 디버그 세션을 시작하면 Android Studio 에서 변경 사항을 확인하고 빠르게 새 공유 라이브러리를 디바이스에 업로드합니다.

모바일 랜드스케이프 개선
 

이제 모바일에서도 흥미로운 지형을 만들 수 있습니다. 모바일 디바이스에 랜드스케이프 레이어가 무제한 지원되기 때문입니다! 물론 최적화가 가장 잘 되는 것은 셋인 경우지만, 텍스처 샘플러만 충분하다면 랜드스케이프 레이어는 몇 개든 만들 수 있습니다. 
 
이제 랜드스케이프 머티리얼의 Feature Level Switch 머티리얼 노드를 사용하면 하나의 랜드스케이프 머티리얼을 모든 플랫폼에 쓸 수 있습니다. 

1 - 모바일 랜드스케이프; 2 - PC 랜드스케이프

기타 모바일 개선사항
 

포트나이트 모바일 버전 출시를 위해 했던 작업 중 모든 개발자들과 공유하기 위해 언리얼 엔진 4.20 에 포함시킨 부분은 다음과 같습니다:

  • 플랫폼 별 최소 스태틱 메시 LOD 
  • 플랫폼 별 최소 스켈레탈 메시 LOD
  • 하드웨어 오클루전 개선
  • HLOD 툴 및 워크플로 최적화
  • 오디오 퀄리티 노드
  • 오디오 베리에이션 컬링
  • 플랫폼 별 오디오 다운샘플링
  • 플랫폼 별 오디오 압축 퀄리티
  • PC 와 더욱 잘 맞도록 셰이딩 모델 트윅
  • 리플렉션 캡처 밝기 수정
  • 랜드스케이프 레이어 4 개 지원
  • 랜드스케이프 테셀레이션 개선
  • 미사용 LOD 에 대한 메모리 비용 제거:
    • 스태틱 메시
    • 스켈레탈 메시
    • 머티리얼 퀄리티 레벨
    • 그래스 및 폴리지
    • 하이 디테일 컴포넌트 및 메시
    • 캐스케이드의 하이 디테일 이미터
  • 디바이스 메모리에 따른 세팅
  • 머티리얼 메모리 감소
  • 대량 애셋 변경 작업을 위한 에디터 스크립트 작성 기능
  • 파티클 컴포넌트 풀링
  • 머티리얼 파라미터 컬렉션 업데이트 비용

신규: 닌텐도 스위치 출시를 위한 최적화 및 개선사항

닌텐도 스위치 개발 방식을 크게 향상시키고자 포트나이트 닌텐도 스위치 버전을 만들 때 사용한 최적화 100 종 이상을 모든 언리얼 엔진 개발자들에게 공개합니다!

 포함된 내용은 다음과 같습니다:
  • 동적 해상도 및 템포럴 업샘플링 지원
  • 컨트롤러 입력에 대한 저지연 프레임 동기화
  • 상당한 CPU 렌더링 최적화
  • 스레딩 향상
  • 텍스처 압축 개선
  • 메모리 프로파일링 지원
  • 도킹 모드에서 1080p 백버퍼 지원
  • 그 외 다수의 수정사항!

신규: 프록시 LOD 개선

새로운 프록시 LOD 툴“실험단계”를 벗어나 실제 제작 단계에서 사용할 수 있게 되었습니다! 폴리곤 수, 드로 콜, 머티리얼 복잡도로 인한 렌더링 비용을 줄여 퍼포먼스를 향상시켜주는 툴로, 모바일 및 콘솔 플랫폼에서 개발할 때 퍼포먼스가 크게 향상됩니다. 이 툴은 서드파티 프로그램인 Simplygon 에 대한 대안이 되며, 언리얼 엔진의 레벨 오브 디테일(LOD) 시스템과 같이 사용할 수 있습니다.

프록시 LOD 툴은 복잡한 소스 지오메트리 모델 집합의 시각적인 부분을 추정하여 단일 로우 폴리 파라미터화 메시와 관련 텍스처로 이루어진 프록시를 생성하는 방식으로 단순한 표현을 만듭니다. 그리고서 해당 지오메트리가 화면상에 차지하는 픽셀이 얼마 되지 않아 모델 퀄리티가 낮아도 괜찮은 경우 그 프록시로 실시간 대체합니다.
 
참고: 현재 윈도우 빌드만 지원합니다.

위 그림은 포트나이트 배틀로얄에서 빌딩과 주차장 부분에 프록시 LOD 툴을 사용한 것으로, Gap-Filling (틈 채우기) 및 Hard-Edge Splitting (하드 에지 분할)을 사용했습니다. 

프록시 LOD 툴의 제작 단계에서 사용할 수 있는 버전은 4.19 의 실험단계 버전에 비해 기능이 많이 향상되었습니다. 특히 프록시 지오메트리 위의 노멀에 대한 사용자 제어나, 틈 채우기를 통해 문이나 창문을 자동으로 닫아 훨씬 단순한 프록시를 생성해주는 기능이 개선되었습니다. 
 
노멀 제어 개선: 하드 에지 분할 노멀
 
포트나이트에서는 메모리 사용량이 극도로 제한되었기에 LOD 효율을 높여야 했습니다. 대부분 프록시의 경우, 베이스 컬러 텍스처는 아주 조금 생성하고 노멀 맵은 사용하지 않았는데, 이러한 접근법에는 프록시 메시 자체에 낼 수 있는 최고 퀄리티의 노멀이 필요합니다.
 

1 - 하드 에지 앵글 = 80; 2 - 하드 에지 앵글 = 0

위 gif 는 버텍스 노멀에 대한 하드 에지 분할 효과를 보여줍니다. 그림 2 는 플러그인 4.19 실험단계 버전에서 계산한 부드러운 버텍스 노멀을 나타내는데, 집 아래 어두운 구역에 부족한 부분을 확인할 수 있습니다. 비교 대상인 그림 1 은 사용자가 지정한 하드 에지 컷오프 앵글로 하드 에지 버텍스 노멀을 분할한 것입니다. 
 
하드 에지 컷오프 앵글에 추가로, 이제 버텍스 노멀 계산에 사용되는 메서드도 다음과 같이 사용자가 지정할 수 있습니다: Angle Weighted (앵글 가중치), Area Weighted (영역 가중치), and Equal Weighted (동일 가중치). 
 
Gap Filling (틈 채우기)
 
틈이 없는 지오메트리의 경우, 프록시 시스템은 접근할 수 없는 구조물(, 예로 닫힌 집 안의 내벽이나 가구 등)을 자동으로 버립니다. 이상적인 경우라면, 소스 지오메트리를 구성 또는 변경할 때 이러한 점을 염두에 두는 것이 좋겠지만, 게임 제작 상의 제약으로 인해 항상 가능한 일은 아닙니다. 거의 틈이 없는 지오메트리에서 효율적인 프록시 LOD 를 쉽게 생성할 수 있도록 하기 위해서, 프록시 LOD 툴은 팽창과 침식으로 틈을 메우는 레벨 세트 기반 기법을 옵션을 통해 사용할 수 있습니다. 원래 의도는 주로 먼 건물의 문과 창에 사용하는 것입니다.

1 - 원본 메시; 2 - 틈 채우기 없음; 3 - 틈 채우기

위 gif 는 틈 채우기를 사용한 효과를 보여줍니다. 모든 그림은 텍스처 스페이스를 조금만 사용해야 한다는 제한이 있습니다. 2 번 그림은 틈 채우기를 사용하지 않은 프록시 LOD 결과로, LOD 에 건물 인테리어가 포함되어 있습니다 (보이지 않는 트라이앵글과 텍셀에도 비용이 듭니다). 3 번 그림은 같은 건물에 틈 채우기를 사용하여 문과 창문을 자동으로 닫아, 결과적으로 트라이앵글 수가 줄어 제한된 리소스 사용 효율이 좋아졌습니다. 

신규: 시네마틱 뎁스 오브 필드

새로운 시네마틱 뎁스 오브 필드(DoF)를 사용하면 실시간 환경에서 영화 퀄리티의 씬을 렌더링하는 꿈같은 일이 가능해집니다! 이 새로운 방식은 원형 DoF 방식의 하이 퀄리티 대체 버전으로 디자인되었으며, 보케와 같은 다른 대부분의 DoF 방식보다 빠릅니다. 시네마틱 DoF 를 사용하면 뎁스 오브 필드 이펙트가 더 깔끔해져, 프로시저럴 보케 시뮬레이션을 사용한 시네마틱 느낌을 냅니다. 이 새로운 DoF 구현은 알파 채널, 동적 해상도 안정성도 지원하며, 콘솔 프로젝트에 맞게 퀄리티를 낮추는 세팅도 지원합니다.

 

1 - 시네마틱 뎁스 오브 필드 활성화; 2 - 비활성화

시네마틱 뎁스 오브 필드는 기본적으로 활성화되어 있으며 CameraPost Process 세팅의 원형 DoF 대신 사용됩니다.

  • 시네마틱 DoF 가 지원하는 플랫폼은 다음과 같습니다:
    • D3D11 SM5, D3D12 SM5, Vulkan SM5, PlayStation 4, Xbox One, Mac
  • 프로시저럴 보케 시뮬레이션이 지원하는 기능은 다음과 같습니다:
    • 조리개 날 수에 대한 환경설정.
    • 렌즈의 가장 큰 조리개(최소 F스탑)와 함께 날의 굴곡에 대한 직접 환경설정.
    • 포스트 프로세스 볼륨, 카메라 액터, 시네 카메라 액터의 Camera 세팅에서 환경설정 가능.
  • r.DOF.* 콘솔 변수를 사용하여 여러가지 설정가능한 퀄리티 세팅으로 하드웨어의 한정된 자원에 맞게끔 프로젝트의 퀄리티를 조절할 수 있습니다. 

자세한 정보는 뎁스 오브 필드 문서를 참고하세요.

신규: 나이아가라 비주얼 이펙트 에디터 (베타)

이제 나이이가라 비주얼 이펙트(VFX) 에디터를 베타 플러그인으로 사용할 수 있습니다! GDC에서 자랑스럽게 선보였던 이 흥미로운 툴로 프로젝트의 잠재력을 끌어내 보시기 바랍니다.

참고: 베타라는 것은 충분히 오랫동안 개발 되었기에 고객과 공유하고 가급적 많은 피드백을 수렴한 뒤 UE4 표준 기능으로 공개하려 한다는 뜻입니다. 그렇다고 실제 제작 단계에서 사용해도 된다는 뜻은 아닙니다. 아직 퍼포먼스 최적화나 수정해야 할 버그가 많기 때문입니다. 그럼에도 많은 개발자분들이 나이아가라를 배우기 시작하고 함께 최고의 VFX 에디터를 만들어나갈 수 있었으면 하는 바람입니다. 

나이아가라 관련 개요는 GDC 2018 프리젠테이션 중 Programmable VFX with Unreal Engine’s Niagara(영어) 및 나이아가라 (영어) 문서를 참고해 주시기 바랍니다.

이펙트 디자인 및 생성 방법 개선


왼쪽 - Dynamic Input 모듈을 활용한 파티클 시스템, 오른쪽 - Dynamic Input 모듈

  • 스켈레탈 메시는 표면에서 이미시브를 지정할 수 있으며, 머티리얼 이름 또는 네임드 본 인플루언스 구역으로 구동시킬 수 있습니다.
  • 모듈의 기본 값 지정 방식이 개선되어, 함수 호출에서부터 기본 동적 입력 사용까지 여러가지 다양한 방식을 사용할 수 있습니다.
  • 메시 파티클에 이제 각속도가 지원됩니다.
  • 리본 렌더러에 빔이 새로운 모듈과 함께 지원됩니다.
  • 이제 모듈 사이 종속성을 정의할 수 있어, 사용자가 잘못된 구성으로 스택을 쌓는 경우 경고를 띄울 수 있습니다. 또한 사용자에게 자동 수정 옵션이 제공됩니다.
  • 시스템 이미터와 베이스 이미터 병합이 여러모로 개선되어 전반적인 안정성이 향상되었습니다.
  • 이제 드래그 앤 드롭으로 스택 내 모듈 위치를 위아래로 옮길 수 있습니다. 상속된 모듈 이동은 병합이 복잡해지므로 불가능합니다.
  • 이제 스택 안에서 모듈을 활성화/비활성화시킬 수 있습니다. 상속에도 작동합니다.
  • 시퀀서블루프린트에 나이아가라 유저 네임스페이스 변수를 설정하는 기능이 지원됩니다.
  • 파라미터를 구동시킬 때, 커스텀 HLSL 표현식이나, 동적 입력(그래프 스니펫)이나, 다른 변수로의 링크나, 으로 구동시킬 수 있습니다.
  • 옵션으로, 이제 파티클은 Persistent ID 를 가질 수 있으며, 해당 이미터에 대한 고유성이 보장됩니다. 
  • 유형이 각기 다른 다수의 렌더러를 이미터에 적용할 수 있습니다. 각 인스턴스는 주어진 파라미터에 대한 값을 가져 오는 위치를 조정할 수 있습니다. 예를 들어 이미터에는 두 개의 스프라이트 렌더러가 있을 수 있습니다. 하나는 파티클 위치에서 그 위치를 끌어오고 다른 하나는 파티클의 오프셋 위치에서 그 위치를 끌어옵니다. 
  • 또한 나이아가라 엑스트라 플러그인에는 다양한 파티클 별 파라미터를 대화창 같은 디스플레이로 표시해주는 디버그 머티리얼이 들어있습니다.
  • Houdini 가 나이아가라에 간단한 CSV 임포터를 제공했는데, GDC 2018 데모 콘텐츠에 쓰이기도 했습니다.
  • 나이아가라용 여러가지 다양한 기능이 Automated Testing (자동화 테스팅) 시스템 아래 추가되었습니다. 

유저 인터페이스 업데이트

나이아가라 인터페이스는 복잡한 이펙트를 직관적으로 만들 수 있도록 설계되었습니다. 주로 스크립트 로직 조각을 조립하는 스택 방식을 사용합니다. 스택 안에서, 타임라인으로 일정 시간에 걸친 이펙트의 다양한 부분을 제어하고, 파라미터 패널로 이펙트에 사용할 수 있는 변수에 쉽게 접근하며, 어트리뷰트 스프레드시트로 이펙트를 실행하면서 관련 정보를 빠르게 찾아 대응할 수 있습니다. 

새 모듈

나이아가라의 모든 모듈을 업데이트 또는 다시 작성하여 게임용 이펙트 제작 시 흔히 사용되는 작동방식을 지원하고 일관된 코딩 표준 규칙을 준수하도록 했습니다. 새로운 UI 에 또 한가지, 개발자가 C++ 로 다른 변수의 상태에 따라 변수 표시를 인라인 활성화/비활성화시키는 UProperties 관련 옵션을 본뜬 기능을 나이아가라 스택에 추가했습니다.

GPU 시뮬레이션

이제 나이아가라는 GPU 시뮬레이션을 지원하며, 대상 플랫폼은 다음과 같습니다: DX11, PS4, Xbox One, OpenGL (ES3.1), Metal. VulkanSwitch 의 GPU 시뮬레이션은 향후 출시에서 지원할 계획입니다. GPU 시뮬레이션 관련 현재 제한 사항과 알려진 이슈는 다음과 같습니다:

  • 나이아가라를 완벽 지원하기 위해서는 GPU 에서 데이터를 리드백(read-back)하는 기능이 필요합니다. 현재 DX11, PS4 렌더링 인터페이스만 이 기능을 지원하며, OpenGL, Metal 에 대해서는 작업 중입니다
  • 콜리전, 커브, 컬 노이즈 필드(Curl Noise Field)가 GPU 에서 지원됩니다. 메시, 스킨 입힌 메시, 스플라인 컴포넌트, 특수 데이터 인터페이스 등은 아직 지원되지 않습니다. UNiagaraDataInterface 와의 상호작용을 위한 GPU 셰이더용 API 역시 다시 설계했습니다. 
  • 스프라이트, 인스턴스드 스태틱 메시를 파티클에서 렌더링하는 기능이 GPU 시뮬레이션에 지원됩니다. 현재 파티클에서 라이트 생성 및 리본은 GPU 에서 작동하지 않습니다.
  • 이벤트는 GPU 에서만 작동하며, 언리얼 엔진 4.20 이후 큰 변화가 있을 것입니다.

CPU 시뮬레이션 & 컴파일

나이아가라 CPU 시뮬레이션은 이제 PC, PS4, Xbox One, OpenGL (ES3.1), Metal 에서 작동합니다. 현재 Vulkan, Switch 는 지원하지 않습니다.

  • CPU 가상 머신(VM)은 이제 백그라운드 스레드에서 콘텐츠를 DDC 에 컴파일하여, 전반적인 컴파일 속도와 팀 효율이 크게 향상됩니다. 최종적이고 비싼 VM 최적화 단계로 ShaderCompileWorker 를  최적화 하는 추가 작업이 필요한데, 스레드 안전성이 없는 라이브러리에 종속되어 있기 때문입니다. 컴파일 종속성은 여러 모듈 사이에 제대로 트래킹되므로, 스택 특정 부분을 다시 컴파일해야 하는 시기를 명확히 알 수 있습니다. 
  • CPU 에서의 피직스 시뮬레이션이 마찰력과 복원력(탄력성)에 대한 피직스 머티리얼 값을 제대로 모델링합니다.
  • 이미터는 이제 워커 스레드에서 병렬 시뮬레이션 가능합니다.

신규: 디지털 휴먼 개선

포토리얼리스틱 캐릭터 예제로 시작된 디지털 휴먼 개발을 위한 에픽의 캐릭터 탐구 과정에서, 현실적인 실사 캐릭터에 생명력을 불어넣기 위한 여러가지 렌더링 개선사항이 이루어졌습니다.

 이 캐릭터 개발 도중 피부, 눈, 라이팅, 서브서피스 스캐터링에 있었던 렌더링 변경사항은 다음과 같습니다: 
  • Double Beckman Dual Lobe 메서드 적용 스페큘러 모델을 새로 추가했습니다.
  • 서브서피스 프로파일에 Backscatter(후방 산란)을 사용한 빛 투과 방식이 지원됩니다.
  • Boundary Bleed Color(바운더리 누출 색) 적용 서브서피스 스캐터링으로 컨택트 섀도가 개선되었습니다.
  • 포스트 프로세스 머티리얼을 통한 단거리 다이내믹 글로벌 일루미네이션이 지원됩니다.
  • 홍채에 별도의 노멀 맵을 사용하여 눈의 디테일을 높였습니다.

자세한 내용은 디지털 휴먼 (영문) 문서를 참고하세요.

신규: 렉탱귤러 에리어 라이트

렉탱귤러 에리어 라이트(직사각 영역 조명)는 머리 위 형광등, 텔레비전, 불 켜진 사인과 같이 커다란 광원이 있는 환경에 보다 현실적인 라이팅을 낼 수 있도록 해줍니다. 렉탱귤러 에리어 라이트는 모드 패널에서 다른 라이트 유형과 같이 볼 수 있습니다. 

  • 현재 디퍼드 렌더러만 지원합니다. 
  • Source Width / Height (소스 너비 / 높이)로 발광 영역을 제어할 수 있다는 점을 제외하고는 포인트 라이트와 거의 비슷합니다. 
  • 스태틱 및 스테이셔너리 모빌리티에 대한 섀도잉은 무버블 에리어 라이트 소스의 다이내믹 섀도잉처럼 작동하며, 현재는 에리어 없는 포인트 라이트에 가깝습니다. 

퍼포먼스 고려사항:

  • 그림자를 드리우는 무버블에서 대부분의 비용이 발생할 때는 포인트 또는 스포트 라이트보다 전반적으로 조금 더 비쌉니다. 그림자는 보통 비용이 같습니다.
  • 스테이셔너리 라이트 모빌리티 또는 그림자를 드리우지 않는 라이트는 비용이 두 배가 될 수 있으며, 사용되는 플랫폼에 따라 달라집니다. 스태틱 라이트를 사용한다면, 비용은 들지 않습니다.

신규: 혼합현실 캡처 (베타)

혼합현실(MR) 어플리케이션의 관람용 체험을 만들 때 새로운 증강현실 캡처 기능을 사용하면, 실제 플레이어를 가상 플레이 공간에 합성하는 작업이 쉬워집니다!

베타 단계인 혼합현실 캡처 기능은 비디오 입력, 보정, 게임 내 합성의 세 단계로 이루어집니다. 다양하게 지원되는 웹 캠 및 HDMI 캡처 디바이스를 통한 여러 소스에서 현실의 크로마 키 비디오를 언리얼 엔진으로 가져올 수 있습니다. Vive Tracker 또는 비슷한 트래킹 디바이스가 있는 경우, 혼합현실 캡처는 카메라 위치를 게임 내 카메라와 일치시켜 보다 역동적이고 흥미로운 씬 연출이 가능합니다. 구성 및 보정은 다른 언리얼 엔진 4 타이틀에서도 재사용할 수 있는 독립형 보정 툴을 통해 이루어집니다. 촬영 위치를 구성하고 나면 모든 어플리케이션에서 사용할 수 있습니다. 

이 기능은 베타 단계이기는 하지만, 피드백을 통해 시스템을 계속해서 발전시켜 나갈 수 있었으면 합니다. 혼합현실 캡처 구성 관련 자세한 정보는 혼합현실 개발 (영문) 문서에서 확인할 수 있습니다.

신규: nDisplay, 유연한 멀티 디스플레이 렌더링

새로운 nDisplay 시스템을 사용하면 대형 시각화 장비를 위한 비디오 벽을 손쉽게 제작할 수 있습니다! 이 시스템은 언리얼 엔진 인스턴스를 호스트 컴퓨터 수만큼 자동 실행합니다. 각 인스턴스는 예상하는 그대로의 콘텐츠와 프레임 단위로 시간이 정확하게 동기화되며, 별도의 프로젝터 또는 모니터 디스플레이에 구동됩니다. 액티브/패시브 스테레오스코픽 렌더링을 통한 3D 씬으로 시청자 몰입도 향상은 물론, 내장 VRPN 지원을 통해 모바일 VR 컨트롤러로 시스템을 구동시킬 수 있습니다.

자세한 정보는 문서 (영어)를 참고하세요.

신규: 서브믹스 오디오 녹음

새로운 오디오 엔진에는, 엔진 출력이나 개별 서브믹스의 출력을 *.wav 또는 사운드웨이브 애셋으로 녹음하는 기능이 추가되었습니다.

서브믹스 출력을 사운드웨이브 애셋으로 익스포트합니다.


서브믹스 출력을 *.wav 파일로 익스포트합니다.

신규: 공유 스켈레탈 메시 LOD 세팅

새로운 LOD 세팅 애셋을 사용하면 한 번 설정해 둔 LOD 세팅을 여러 스켈레탈 메시 애셋에 재사용할 수 있습니다! 스켈레탈 메시의 애셋 디테일 패널 내 LOD Settings (LOD 세팅) 아래에서 이제 사용할 LOD 세팅 애셋을 선택할 수도, 현재 세팅에 따라 새 애셋을 만들 수도 있습니다.

자세한 정보는 스켈레탈 메시 애셋 디테일 페이지의 LOD 세팅 공유 부분을 참고하시기 바랍니다. 

Blutility(블류틸리티)를 통해 LOD 세팅을 할당하고 블루프린트에서 LOD 를 재생성할 수도 있습니다. 

신규: GeomCache 스트리밍 및 Alembic 임포터 개선 (실험단계)

지오메트리 캐시 시스템의 안정성과 퍼포먼스를 지속적으로 향상시키고 있습니다: 

  • I이제 개별 버텍스 애니메이션 프레임 압축 시 허프만 인코딩 기반 인트라 프레임 코덱을 사용합니다. 압축 데이터는 디스크에서 스트리밍되어, 긴 시퀀스도 약간의 메모리 부담으로 재생할 수 있습니다. 새로운 구현은 아직 초기 실험단계이며, 제작 단계에서는 사용할 준비가 되지 않았습니다.
  • Alembic 임포터의 임포트 방식이 모든 프레임을 대량 임포트하던 것에서 프레임 단위 반복처리하는 방식으로 변경되었습니다. PCA 파이프라인 및 전반적인 안정성과 속도가 향상될 것입니다. 

신규: 액터 및 콘텐츠 브라우저 컨텍스트 메뉴에 확장기능을 스크립트로 추가

코드 한 줄 작성하지 않고도 쉽게 컨텍스트 메뉴 툴을 만들고, 워크플로를 개선해보세요! 블루프린트 유틸리티, 다른 말로 Blutility(블류틸리티)를 사용하여 브라우저에서 콘텐츠 애셋과 액터에 대한 컨텍스트 메뉴를 확장하면 됩니다. 

  • 새로운 부모 클래스 중 하나를 사용하여 Blutility(블류틸리티)를 새로 만듭니다. AssetActionUtility (는 콘텐츠 브라우저 확장용), 또는 ActorActionUtility (는 액터 확장용)입니다. 
  • GetSupportedClass 함수로 액터나 애셋 어느 유형에 액션을 적용할지 지정할 수 있습니다. 
  • 이벤트(또는 함수)에 반환 값 없이 로직을 추가하고, “Call In Editor” (에디터에서 호출) 마킹하여 컨텍스트 메뉴에 표시되도록 하면, 이벤트가 발동되었을 때 팝업창이 떠 이벤트에 정의한 파라미터 값을 설정할 수 있습니다.

신규: 애니메이션 리타겟 매니저 개선

애니메이션 리타겟 매니저에 이제 매핑 데이터의 저장과 로드가 지원되어, 저장된 매핑 데이터를 여러 메시에 재사용할 수 있습니다. 이 기능으로 다양한 애니메이션의 여러 Rig(릭) 데이터를 빠르게 저장하고 재사용할 수 있습니다. 

자세한 정보는 리타겟 매니저 페이지를 참고하세요. 

신규: 리짓바디(RigidBody) 애님 노드 개선

이제 '로컬 스페이스' 시뮬레이션을 사용하는 스켈레탈 메시 컴포넌트가 월드에서 움직일 때 시뮬레이션 바디에 동작이 적용되는 것을 볼 수 있으며, 시뮬레이션 안정성이 높아집니다. 이제 컴포넌트의 월드 스페이스 선 속도와 가속도를 살펴보는 옵션을 몇 가지 추가하여, 로컬 스페이스 시뮬레이션에 (스케일 및 클램프와 같이) 적용할 수 있도록 했습니다. 

어떤 조인트도 시뮬레이션의 베이스가 되도록 하는 옵션을 추가하고, 다이내믹스를 쉽게 리셋하는 기능도 지원합니다.

신규: 클로딩 개선

피직스 애셋은 이제 클로딩 시뮬레이션의 콜리전으로 테이퍼드(가늘어지는) 캡슐을 지원합니다.

참고: 리짓 바디 시뮬레이션의 콜리전에는 지원되지 않습니다.

이제 스켈레탈 메시 버텍스 컬러를 선택된 클로딩 파라미터 마스크에 복사할 수도 있습니다.

신규: 가비지 컬렉션 개선

가비지 컬렉션 퍼포먼스가 최적화되어, 13 배나 빨라진 작업도 있습니다! 구체적인 개선사항은 다음과 같습니다: 

  • “Mark”(마킹) 단계가 최적화되었고, 이제 멀티스레드가 지원됩니다. 멀티 코어 머신에서 오브젝트를 도달불가(unreachable) 마킹하는 비용이 오브젝트 약 50 만 개에 대해 8 ms 에서 0.6 ms 로 줄었습니다. 
  • “BeginDestroy”(소멸시작) 단계가 (오브젝트 언해싱 작업이) 이제 여러 프레임에 걸쳐 실행되며, 프레임 당 2 ms 이상 사용하지 않습니다. 마킹 단계나 도달가능성 분석과 달리 오브젝트 언해싱 비용은 더 이상 같은 프레임에 포함되지 않습니다. 
  • 개발 빌드에서 실행되는 가비지 컬렉션 가정 확인(verification)은 이제 레퍼런스 수집과 동일한 멀티스레드 코드를 사용합니다. 그 결과 개발 빌드에서 가비지 컬렉션 시간이 향상될 것입니다. 에픽의 테스트 결과, 오브젝트 약 50만 개에 대한 샘플링 시간이 320 ms 에서 80 ms 미만으로 감소되었습니다. 

신규: Visual Studio 2017

UE4 는 이제 Visual Studio 2017 컴파일러를 사용하며, 엔진은 기본적으로 Visual Studio 2017 용 프로젝트 파일을 생성합니다. Visual Studio 2015 역시 지원은 되지만, 약간의 환경설정이 필요합니다. 추가적으로, Windows 10 SDK 도 지원합니다. 

참고: Visual Studio 2017 은 여러 버전의 컴파일러를 설치해 두고 선택하는 기능을 지원합니다. 

자세한 정보는 하드웨어 & 소프트웨어 사양 문서를 참고하세요. 

신규: GitHub 의 개발 스트림

언리얼 엔진 개발 스트림이 이제 GitHub 에 라이브 업데이트됩니다. 개발 코드 최신 버전이 필요한 경우, 에픽에서 개발 팀 변경사항을 메인 브랜치로 병합시켜줄 때까지 기다릴 필요 없이 바로 스트림에서 가져올 수 있습니다. 참고로 이 라이브 스트림은 메인 브랜치나 바이너리 출시와 달리 QA 프로세스를 거치지 않습니다. 

자세한 내용은 블로그 게시물을 확인하세요.

신규: UMG 세이프 존 개선

UMG 와 에디터에서 플레이(PIE) 세팅에서 선택한 화면 크기는 이제 디바이스 프로파일과 연동되어, Mobile Content Scale Factor (모바일 콘텐츠 스케일 인수)도 고려합니다. 선택한 디바이스 화면 크기에 따라 최종 해상도와 DPI 스케일이 변한다는 뜻입니다. 

 

UMG 세이프 존 워크플로 관련 개선사항은 다음과 같습니다: 

  • TV 와 모니터 화면 크기 테스트를 위해 1 미만의 값을 사용하면 타이틀 세이프 존 디버그에 세이프 존 프리뷰가 자동 활성화됩니다.
  • r.MobileContentScaleFactor 명령을 사용하면 UMG 프리뷰와 PIE 모드에서 폰과 태블릿 해상도를 스케일 조절합니다. 
  • 이제 화면의 특정 부분을 접근할 수 없는 아이폰 X 같은 디바이스에 비균등 세이프 존이 지원됩니다.
  • 세이프 존, 스케일 박스, 커먼 보더 위젯이 비균등 세이프 존과 UMG 디자이너 크기에 제대로 반응합니다. 
  • 이제 UMG 에 선택된 디바이스, 그 화면 크기, 균등 스케일 인수가 표시되어 디자이너 그래프에서 쉽게 참조할 수 있습니다.
  • r.MobileContentScaleFactor 명령으로 UMG 와 PIE 모드의 폰 및 태블릿 해상도 스케일을 조절합니다.

자세한 정보는 UMG 세이프 존 (영문) 문서를 참고하세요.

신규: 머티리얼의 커브 아틀라스

이제 머티리얼은 커브 아틀라스 애셋을 사용하여 선형 색 커브 데이터를 저장하고 접근할 수 있으며, 블루프린트를 통한 추가 기능도 지원합니다. 커브 아틀라스는 전과 같은 선형 커브 색을 사용하지만, 지정된 아틀라스 크기로 원하는 만큼의 선형 색 커브를 사용할 수 있다는 점이 다릅니다.   

커브 아틀라스를 새로 생성하려면, 콘텐츠 브라우저에서 신규 추가 > 기타 부분의 커브 아틀라스를 선택하면 됩니다. 

커브 애셋 에디터를 열면, 커브의 색상, 채도, 명도, 채도보정(Vibrance), 알파 클램프를 조정할 수 있습니다. 추가로 콘텐츠 브라우저의 프리뷰 썸네일에 커브로 설정되는 그레이디언트가 표시됩니다. 

자세한 정보는  머티리얼의 커브 아틀라스 (영문)문서를 참고하세요. 

신규: 메시 설명 메시 포맷

UE4 는 엔진에서 어떤 유형의 메시 애셋이든 표현할 수 있는 새로운 하이 레벨 중간 포맷으로 전환하고 있습니다. 이 프로세스 진행에 따라 워크플로가 향상되고 엄청난 신기능을 사용할 수 있게 될 것입니다.

새로운 메시 포맷으로 전환하는 목적은 다음과 같습니다: 

  • 모든 (스태틱/스켈레탈은 물론 지형이나 BSP 처럼 메시형 오브젝트라 볼 수 있는) 메시에 내부적 표현을 동일하게 하여 일정 수준 상호 교환이 가능해집니다. 
  • 대부분의 UE4 지오메트리 툴은 지오메트리 포맷에 따라 어떤 유형의 메시에도 작동할 것입니다.
  • 새 포맷을 사용하는 메시는 표준 API 를 통해 확인 및 변경할 수 있어, 실행시간 또는 네이티브 또는 스크립트 방식의 변경이 가능해지므로, 콘텐츠의 절차적 자동 생성 방식에 많은 가능성이 생깁니다.
  • 메시를 이 포맷으로 바로 임포트해도 쿼드나 에지 하드니스같은 보다 상위 레벨의 메시 표현 정보를 보존할 수 있습니다. 현재 스태틱/스켈레탈 메시를 임포트할 때 이와 같은 정보는 손실되고 있습니다. 
  • 새로운 메시 포맷은 아무리 복잡한 메시일지라도 실시간 변경이 가능하도록 내부 구조가 짜여져 있습니다. 이러한 형태는 개발 중인 메시 편집 기능의 기반이 되고, 마찬가지로 스크립트를 지원하며, 앞으로의 출시에 공개될 예정입니다.

이번 출시에는 스태틱 메시만 새로운 메시 포맷을 사용하도록 변환되었습니다. 사용자가 일상적인 작업에 차이를 느끼지는 못할 것이고, 애셋 자체도 변한 것은 없습니다. 현재, 새 데이터는 이전 포맷에서 자동 생성하여 DDC 에 캐시 저장하고 있습니다.

신규: 색 선택 툴 저장된 색에 라벨 붙이기

이제 테마 바 또는 테마 메뉴에 저장된 색에 라벨을 붙여 쉽게 알아볼 수 있습니다! 라벨은 저장된 색 견본에 우클릭하고 이름을 입력하는 것으로 쉽게 설정할 수 있습니다. 

자세한 정보는 C색 선택 툴 문서를 확인하세요.

신규: 콘텐츠 브라우저의 최근 열림 필터

콘텐츠 브라우저에 새로 생긴 최근 열림 필터를 사용하면 최근 열었던 애셋을 빠르게 찾을 수 있습니다! 이 필터에는 최근 열었던 애셋이 20 개까지 저장됩니다. 

 

최근 열림 필터는 필터 목록의 기타 필터 아래에서 찾을 수 있습니다. 최근 열었던 애셋 저장 개수는 에디터 개인설정 > 콘텐츠 브라우저 에서 Number of Assets to Keep in the Recently Opened Filter (최근 열림 필터에 저장할 애셋 개수) 옵션으로 설정합니다. 

자세한 정보는 콘텐츠 브라우저 필터 문서를 확인하세요.

신규: Shotgun 통합 (베타)

언리얼 엔진 4 에 새로 통합된 Shotgun 으로 제작 파이프라인 효율을 높이세요!

포함된 기능: 

  • Shotgun 런처에 언리얼 에디터가 추가되어, 아티스트는 Shotgun 프로젝트에 맞는 언리얼 엔진 버전을 안정적으로 열 수 있습니다.
  • 언리얼 에디터 인터페이스에서 Shotgun 패널을 열 수 있어, Shotgun 프로젝트 작업 최신 내용 업데이트를 받을 수 있습니다.
  • Shotgun 로더에 후킹되어, 애셋을 언리얼 프로젝트로 쉽게 가져올 수 있으며, 콘텐츠 브라우저에 저장할 위치를 제어할 수 있습니다.
  • 레벨의 액터나 콘텐츠 브라우저의 애셋에 우클릭했을 때 나오는 컨텍스트 메뉴에 Shotgun 동작 명령도 추가됩니다.

Note: We're working out the last details before we can share our integration on GitHub. Check back soon for updates and documentation!

New: Editor Scripting and Automation Libraries

에디터 스크립팅 유틸리티 플러그인이 모든 언리얼 엔진 사용자에게 공개되었습니다. 이 플러그인은 언리얼 에디터의 자동화 및 스크립트 작성, 콘텐츠 브라우저에서 애셋 관련 작업, 현재 레벨의 액터 관련 작업, 스태틱 메시 애셋의 프로퍼티 관련 작업을 단순화시켜주는 인터페이스를 제공합니다.

**참고:** GitHub 통합 공유를 위한 마지막 작업 중입니다. 곧 문서와 업데이트를 제공해 드리겠습니다!

신규: FBX 를 통한 애셋 메타데이터 임포트

언리얼에 FBX 파일을 임포트할 때, 이제 그 파일 안에 저장된 FbxProperty 데이터도 같이 가져옵니다. 언리얼 에디터에서 실행되는 Python 스크립트 또는 블루프린트에서 이 메타데이터를 접근할 수 있습니다. 이렇게 하면 콘텐츠 제작 툴에 있던 애셋 관련 정보에 따라 언리얼 자체 애셋 관리 파이프라인을 커스터마이징하는 데 도움이 될 수 있습니다.

자세한 내용은 FBX 애셋 메타데이터 파이프라인 (영문) 문서를 참고하세요.

신규: 스태틱 메시의 LOD 및 콜리전에 대한 접근 개선

언리얼 에디터에서 실행되는 Python 스크립트 및 블루프린트가 이제 더 많은 수의 스태틱 메시 애셋 프로퍼티를 변경할 수 있습니다. 스태틱 메시 에디터의 유저 인터페이스가 제공하는 툴의 일정 부분을 자동화시킬 수 있게 되었습니다. 예를 들면:

  • 이제 지오메트리의 레벨 오브 디테일(LOD)을 자동 생성하여, 카메라 시점에서 지오메트리까지 거리가 멀어질수록 지오메트리 디테일을 적극적으로 떨어뜨리는 방식으로 씬의 렌더링 퍼포먼스를 향상시킵니다. 자세한 내용은 블루프린트와 Python 으로 레벨 오브 디테일 생성 (영문) 문서를 참고하세요.
  • 이제 피직스 시뮬레이션에서 스태틱 메시 애셋을 표현하는 콜리전 메시를 자동 생성할 수 있습니다. 자세한 내용은 블루프린트와 Python 으로 스태틱 메시의 콜리전 구성 (영문) 문서를 참고하세요.

신규: 블루프린트 북마크 (실험단계)

블루프린트 북마크 기능은 블루프린트 에디터의 아무 함수 그래프에 이름붙인 북마크를 만들 수 있는 기능입니다. 만든 북마크는 새 UI 창에 나열되며, 클릭하면 뷰포트가 (그리고 보고 있던 활성 탭도) 해당 위치와 줌 레벨로 돌아갑니다. 북마크를 만드는 것에 더해, 별도의 목록에서 코멘트를 선택하면 블루프린트의 코멘트 노드로 빠르게 점프할 수도 있습니다. 북마크는 머신 로컬 위치에 저장되므로, 블루프린트 자체에는 영향이 없고, 콘텐츠를 동기화시켜도 다른 사용자의 북마크까지 동기화되지는 않습니다.

신규: 블루프린트 감시 창

블루프린트 감시 창 은 감시하고자 하는 변수와 노드, 심지어 다른 블루프린트에 있는 것도 접근할 수 있도록 하여 디버깅 속도를 높일 수 있도록 설계되었습니다. 에디터에서 여는 모든 블루프린트, 현재 콜 스택의 일부인 감시 데이터를 하나의 목록으로 통합시켜 한 번에 변수와 함수 출력을 조사할 수 있습니다. 또한, 블루프린트 사이를 쉽게 점프해 다닐 수도 있습니다. "노드 이름" 열의 항목에 클릭하면 어느 블루프린트에 있든 그 이름의 노드로 이동할 수 있는 반면, "오브젝트 이름" 열의 항목을 선택하면 그 항목에 연관된 오브젝트 인스턴스가 선택됩니다. 배열, 세트, 맵, 그 외 데이터 구조체를 펼쳐, 그 안에 들어있는 데이터를 빠르고 편리하게 낱낱이 살펴볼 수 있습니다.

신규: 내비게이션 시스템 코드를 모듈로 이동

대부분의 내비게이션 시스템 관련 코드를 엔진 코드에서 새로운 내비게이션 시스템 모듈로 이동시켰습니다. 내비게이션 시스템 함수 기능을 사용하는 게임 전용 코드에 업데이트가 필요할 수 있습니다.

Python (3.5) 스크립트 를 통해 프로젝트의 소스 코드를 파싱하여 업데이트가 필요한 줄을 확인할 수 있습니다. 옵션으로 스크립트에서 바로 변경하도록 할 수도 있지만, 이 옵션을 사용할 때는 버전 컨트롤 시스템 하에서 신중히 사용하시기 바랍니다. 스크립트 옵션은 파일 상단에서 찾을 수 있습니다.

이와 관련해서 프로젝트를 업그레이드하는 방법 세부 사항은 Programming Upgrade Notes 부분을 참고하시기 바랍니다.

신규: 모바일 스페큘러 라이팅 모델 개선

모바일 스페큘러 반응이 기본적으로 GGX 라이팅 모델을 사용하도록 변경되었습니다. 모바일 스페큘러 퀄리티가 향상되며 SM5 와 더욱 잘 일치되지만 셰이더 처리 시간이 약간 늘게 됩니다. 

1 - 4.20 기본 GGX 스페큘러; 2 - 4.19 스페리컬 가우시안 스페큘러

예전 스페리컬 가우시안 스페큘러 모델은 여전히 ‘Use legacy shading mode’ (레거시 셰이딩 모드 사용) 옵션으로 접근할 수 있습니다. 프로젝트 옵션 > 렌더링 > 모바일 에서 찾을 수 있습니다.

신규: 모바일 스카이라이트 리플렉션

이제 모바일 렌더러는 연관된 리플렉션 캡처 가 없는 경우 스페큘러 리플렉션 스카이라이트 큐브맵 을 사용합니다.

1 - 모바일, 리플렉션 캡처 없음; 2 - PC, 리플렉션 캡처 없음

신규: 리플리케이션 드라이버 / 리플리케이션 그래프

 리플리케이션 그래프 플러그인은 액터와 플레이어 수가 많은 게임에 최적화된 리플리케이션 시스템을 제공해줍니다. 이 시스템은 데이터와 연산을 중앙집중화시키는 커스텀 노드 시리즈를 만드는 식으로 작동합니다. 이 노드는 여러 프레임에 걸쳐 지속되며 접속된 클라이언트에 공유시켜 중복 CPU 작업을 제거하고 게임에 지정된 업데이트 규칙에 따라 액터를 노드에 그룹으로 묶는 것이 가능합니다. API 를 변경할 수도 있어 4.20 에서는 실험단계이지만, 포트나이트 배틀로얄에 사용되고 있어 곧 정규 기능이 될 예정입니다.

신규: Steam 인증

Steam 인증이 추가되었습니다! 이제 게임에 Steam 인증 API 와 인터페이스 역할을 하는 패킷 핸들러 컴포넌트를 추가시켜, 게임 서버를 제대로 알리기, VAC/퍼블리셔 밴 처리, 유효 클라이언트 확인 개선 등을 할 수 있습니다. 활성화하면, 서버에 참가하는 클라이언트는 이제 Steam 인증을 받아야 게임에 들어갈 수 있게 됩니다. 기본적으로 인증에 실패한 클라이언트는 서버에서 추방됩니다.

신규: 시퀀서 프레임 정확도 개선

이제 시퀀서는 모든 내부 시간 정보를 정수로 저장하여, 프레임 단위 정확도가 필수인 경우를 안정적으로 지원해줍니다. 키, 섹션 바운드와 같은 데이터는 항상 내재된 사용자 제어 가능 시퀀스 해상도로 고정됩니다. 그 해상도는 사용되는 곳의 요구에 따라 높을 수도 낮을 수도 있습니다. 해상도가 매우 높으면 키 배치와 서브 프레임의 충실도가 높아지지만, 전체 시퀀스 범위는 줄어듭니다. 

핵심 업데이트 내용: 

  • 시퀀서의 시간 커서가 이제 현재 평가 대상 틱 전체 범위를 나타내는 블록으로 표현되어, 어떤 프레임에 평가되는 키가 무엇인지 매우 명확히 알 수 있습니다. 
  • “Force Fixed Frame Interval” (고정 프레임 간격 강제) 재생을 “Frame Locked” (프레임 고정) 옵션으로 재편했습니다. 엔진 최대 FPS 를 시퀀스의 표시 속도로 설정하고, 시간을 (서브 프레임 보간 없이) 전체 프레임 번호에 고정시킵니다. 
  • (UMG 애니메이션처럼) 프레임 정확도를 고려할 필요가 없는 상황을 위해 서브 프레임 평가도 그대로 완벽 지원합니다. 
  • 실행시간 평가를 위해 이제 엔진 시계(월드 일시정지 지원), 오디오 시계, 플랫폼 시계와 같은 다양한 소스의 시간이 지원됩니다.
  • 이제 UI 를 논 드랍 프레임 (NDF) 타임코드 및 드랍 프레임 (DF) 타임코드로 볼 수 있습니다. NDF 타임코드는 모든 프레임 속도에 사용할 수 있으며, 프레임 번호를 시간, 분, 초, 나머지 프레임으로 직접 변환합니다. DF 타임코드는 NTSC 속도(23.976, 29.97, 59.94)에만 지원됩니다. 표시 형태는 키보드 단축키 Ctrl + T 또는 프레임속도 UI 메뉴에서 바꿀 수 있습니다.

자세한 정보는 새로운 시퀀서 시간 리팩터 노트 (영문) 문서를 참고하세요. 

신규: 시퀀서의 미디어 트랙

시퀀서에 미디어 소스 재생을 위한 트랙이 새로 생겼습니다. 무비를 위한 오디오 트랙 같은 것입니다. 단순히 미디어 소스 애셋을 끌어 트랙 뷰에 놓거나 트랙 추가 메뉴에서 미디어 트랙 을 생성하면 됩니다. 이 기능은 현재 이미지 시퀀스, 특히 EXR 과 함께 할 때 가장 좋습니다. 미디어 트랙의 이미지 시퀀스는 렌더링 출력과 프레임이 정확히 동기화됩니다.

자세한 정보는 미디어 트랙 사용법 (영문) 문서를 참고하세요.

신규: 시퀀서 커브 에디터 및 평가 개선

시퀀서의 커브 에디터, 평가 방식이 여러가지 개선되었으며, 구체적으로 다음과 같습니다:
 
가중치 적용 탄젠트가 플로트 커브에 지원됩니다.

시퀀서 커브 에디터에 가중치 적용 커브 사용

회전 값을 변경할 때 Euler Angle (오일러 각도) 연속 변화를 지원합니다. 오일러 각도가 더 이상 -180 에서 180 까지로 제한되지 않습니다. 기존에는 애니메이션이 뒤집히는 것을 방지하기 위해 필수였습니다.

이제 트랙의 프로퍼티 메뉴를 통해 3D Transform Section (3D 트랜스폼 섹션)의 Quaternion Rotation (쿼터니언 회전) 옵션을 켜면, 두 회전 값을 보간할 때 쿼터니언 보간을 사용하여 부드럽게 보간합니다. 기존 마티네에 있었던 기능과 비슷합니다.

신규: 시퀀서에서 애님 인스턴스의 변수에 애니메이션 지원

이제 Possessable(포제서블)을 통해 애님 인스턴스의 변수 값을 변화시켜, 애님 블루프린트 변수나 함수 및 여러 콘텐츠를 직접 제어할 수 있게 되었습니다. 시퀀서에 애님 인스턴스 바인딩 추가는, 스켈레탈 애니메이션 컴포넌트의 [+트랙] 버튼에서 이름을 찾아 선택하면 됩니다. 시네마틱에 노출되는 변수는 그 트랙 선택 툴에 표시됩니다. 

자세한 정보는 C시퀀서로 애님 인스턴스 제어하기 (영문) 문서를 참고하세요. 

신규: 시퀀서에서 Final Cut Pro 7 XML 임포트/익스포트

이제 시퀀서 무비 씬 데이터를 Final Cut Pro 7 XML 포맷으로 임포트/익스포트할 수 있습니다. 그 덕에 FCP 7 XML 을 지원하는 Adobe Premiere Pro 와 같은 편집 소프트웨어와 데이터를 쉽게 주고받을 수 있습니다. 편집 소프트웨어에서 했던 샷 트림/오프셋 작업이 임포트 도중 시퀀서에 자동으로 매핑됩니다. 

참고: 현재 오디오는 지원하지 않습니다.

신규: 시퀀스 레코더 개선

시퀀스 레코더는 이제 퍼시스턴트 레벨에 저장되는 프로파일 시스템을 지원합니다. 레코딩 프로파일은 녹화하고자 하는 액터와 그 세팅 뿐만 아니라, 녹화 데이터를 저장할 출력 경로도 저장할 수 있습니다. 또한 시퀀스 레코더는 이제 선택된 액터 각각에 대한 다중 테이크 녹화도 지원합니다. 

자세한 정보는 시퀀서 레코더 문서를 참고하세요. 

신규: 시퀀서 트랙 사용 편의성 개선

S시퀀서 안에서 트랙을 더욱 편하게 사용하기 위한 여러가지 업데이트가 있었습니다. 이제 트랙, 액터, 폴더 순서를 변경할 수 있고, 이벤트 트랙 이름이 이벤트 키프레임 옆에 표시되며, 섹션을 소스 길이에 맞춰 크기를 조절하거나, 트랜스폼 채널 별로 마스크를 적용할 수도, 블렌드된 포즈에서 포즈 애셋을 생성할 수도 있습니다. 

자세한 정보는 시퀀서에서 트랙 작업 (영문) 문서를 참고하세요. 

신규: 인스턴스드 스테레오 렌더링에 반투명 지원

로보 리콜을 위해 만들었던 인스턴스드 스테레오 렌더링(ISR) 패스를 개선시켜, 엔진의 다른 여러 기능과도 작동하도록 만들었습니다. 언리얼 엔진 4.20 에는 인스턴스드 스테레오 렌더링을 사용해서 반투명 렌더링 패스(pass)를 수행하는 기능이 지원되어, 반투명이 많이 사용되는 씬의 CPU 비용을 크게 줄일 수 있습니다. 콘텐츠를 변경할 필요는 없습니다. 프로젝트 세팅에서 인스턴스드 스테레오를 활성화시킨 프로젝트는 자동으로 인스턴스드 스테레오 렌더링 효과를 볼 것입니다.

신규: Magic Leap One™ 베타 지원

GDC 에서 Magic Leap One™: Creator Edition 에 대한 베타 지원을 발표한 바 있습니다. 이 툴은 Magic Leap 의 개인 공간 컴퓨팅 플랫폼용 체험을 빠르게 개발할 수 있는 소프트웨어 툴키트이며, 양사간 대규모 파트너십의 일환으로 제공되었습니다. 이제 언리얼 엔진 4.20 버전부터 완벽 지원되는 버전으로 Magic Leap One™ 개발이 가능합니다.  

Magic Leap One 지원은 카메라 컨트롤, 월드 메시, 모션 컨트롤러, 포워드 및 디퍼드 렌더링 등에 언리얼 엔진 4 내장 프레임워크를 사용합니다. 아이 트래킹 및 제스처와 같은 기능도 더욱 안정적으로 지원합니다.

Magic Leap 소프트웨어 개발 키트와 시뮬레이터 다운로드는 developer.magicleap.com 에서 할 수 있습니다. 하드웨어 접근 권한이 있는 개발자의 경우, 언리얼 엔진 4.20 에서 디바이스에 바로 디플로이하고 실행시킬 수 있으며, 에디터에서 플레이 기능을 통한 실시간 반복처리 워크플로도 지원합니다. 

신규: Apple ARKit 2.0 지원

이제 Apple 의 ARKit 2.0 이 지원됩니다. 여기에는 트래킹 퀄리티 향상, 수직면 감지, 면 트래킹, 2D 이미지 감지, 3D 오브젝트 감지, 지속적인 AR 체험 및 공유 AR 체험 지원 등이 포함됩니다. 그 덕에 더욱 다양한 표면에 AR 오브젝트 배치, 면 위치와 방향 트래킹, 2D 이미지 인식 및 생동감 부여, 3D 오브젝트 감지, 새로운 유형의 협력형 AR 체험 지원이 가능해졌습니다.

신규: Google ARCore 1.2 지원 

이제 Google 의 ARCore 1.2 가 지원됩니다. 여기에는 수직면 감지, 증강 이미지, 클라우드 앵커 지원이 포함됩니다. 그 덕에 더욱 다양한 표면에 AR 오브젝트 배치, 이미지 인식 및 생동감 부여, 새로운 유형의 협력형 AR 체험 지원이 가능해졌습니다. 

신규: 플랫폼 SDK 업그레이드

매 번 출시마다 플랫폼 파트너들이 발표한 최신 SDK 를 지원하도록 엔진을 업데이트하고 있습니다.

 
  • 빌드 팜의 컴파일 대상 IDE 버전
    • Visual Studio:  Visual Studio 2017 v15.6.3 툴체인 (14.13.26128), 윈도우 10 SDK (10.0.12699.0)
      • 최소 지원 버전
        • Visual Studio 2017 v15.6
        • Visual Studio 2015 Update 3
    • Xcode:  Xcode 9.4
  • 안드로이드: 
    • NDK 12b (출시 전 CodeWorks for Android 1r6u1 인스톨러 새 버전으로 이전 CodeWorks for Android 1R5 버전을 대체할 예정입니다. 아직 NDK 12b 입니다.)
  • HTML5: Emscripten 1.37.19
  • LInux: v11_clang-5.0.0-centos7
  • Lumin: 0.12.0
  • Steam: 1.39
  • SteamVR: 1.39
  • Oculus Runtime: 1.25
  • 스위치:
    • SDK 4.5.0 + 옵션 NEX 4.2.1 (펌웨어 4.1.0-1.0)
    • SDK 5.3.0 + 옵션 NEX 4.4.2 (펌웨어 5.0.0-4.0)
    • 지원하는 IDE: VS 2015 / 2017
  • 플스4:
    • 5.508.031
    • 펌웨어 버전 5.530.011
    • 지원하는 IDE: Visual Studio 2015, Visual Studio 2017
  • 엑스박스원 (XB1, XB1-S, XB1-X):
    • XDK: April 2018
    • 펌웨어 버전: April 2018 (버전 10.0.17133.2020)
    • 지원하는 IDE: Visual Studio 2017
  • macOS: SDK 10.13
  • iOS: SDK 11
  • tvOS: SDK 11
출시 노트 전문은 포럼 또는 문서 페이지를 참고하세요.