새 소식
언리얼 엔진 4.16 에는 흥미로운 렌더링 및 애니메이션 신기능, 모바일 및 콘솔 플랫폼 퍼포먼스의 비약적인 향상 은 물론, 개발자 여러분 삶의 질 향상을 위한 수많은 개선사항 이 포함되어 있어, 보다 많은 플랫폼에서 부드럽게 실행되는 눈부신 배경이나 매력적인 체험을 더욱 쉽게 만들 수 있습니다.배경의 분위기를 한층 강화시킬 수 있는 놀라운 볼류메트릭 포그 신기능을 사용하면, 스케일을 키워도 씬 어디서든 일관된 라이팅을 보이는 사실적인 포그 및 스모크 이펙트를 자동으로 렌더링해 줍니다.
새로운 다이내믹 라이트웨이트 리짓 바디 및 로우 레벨 클로스 시뮬레이션 툴로 캐릭터에 생명력을 불어넣어 보세요! 애니메이션 모디파이어, 스플라인 IK 솔버, 업데이트된 포즈 드라이버를 비롯한 애니메이션 시스템의 여러 개선사항을 활용하여 동작의 흐름을 보다 세밀하게 제어할 수 있습니다.
가비지 컬렉션 속도가 두 배 빨라졌습니다! UI 렌더링 퍼포먼스와 UMG 위젯 생성 속도가 크게 향상되어 보다 현란한 인터페이스 제작이 가능합니다. VR 모드, 애니메이션, 시퀀서, 기타 툴의 인터페이스와 작업방식도 업데이트되어 개발 프로세스 효율성이 크게 높아졌습니다.
4.16 부터 Nintendo Switch 가 완벽 지원되어 실제 제작단계에서 사용할 수 있게 되었습니다! 에픽게임즈는 Nintendo 와의 협업을 통해 공인된 개발자들에게 Nintendo Switch 용 풀 소스 코드를 무료 배포했습니다. 개발 시작을 위한 자세한 내용은 여기서 확인해 보세요.
이제 Xbox One 의 기본 렌더러를 DirectX 12 로 설정, 해당 플랫폼을 지원하는 엔진 퍼포먼스와 피처 두 마리 토끼를 동시에 잡았습니다. 게다가 HTML5 게임 개발에 WebAssembly 와 WebGL 2 가 지원되기 시작하였으며, 이 부분은 UE4 에서 지속적으로 발전시켜 나갈 것입니다.
모바일에서는, 이제 안드로이드 가상 키보드가 지원되며, 실행시간 권한 요청 기능을 블루프린트와 코드 양쪽에서 쓸 수 있습니다. 게다가 모바일 앱 실행파일 크기를 한층 더 줄일 수 있게 되었습니다!
에픽에서 직접 공개한 업데이트 수백종 이외에도, 이번 출시에는 놀라운 언리얼 엔진 개발자 커뮤니티가 GitHub 를 통해 제출한 개선사항이 160 종 포함되어 있습니다! 언리얼 엔진 4.16 에 기여해 주신 분들께 감사드립니다:
0lento, Akihiro Kayama (kayama-shift), Alice Robinson (Valkrysa), Altrue, Andreas Rønning (Sunjammer), Andrew Gaubatz (e-agaubatz), Angus Jones (crumblycake), Artem V. Navrotskiy (bozaro), Black Phoenix (PhoenixBlack), Cedric Neukirchen (eXifreXi), Cengiz Terzibas (yaakuro), Chris Varnz (chrisvarns), Christopher P. Yarger (cpyarger), Damian Nowakowski (zompi2), DarkSlot, DeanoC, Derek van Vliet (derekvanvliet), devbm, dodgyville, drelidan7, Gabriel Lima (Gabriel-Lima-O), Gyeonghwan (conquests), Hao Wang (haowang1013), Ilya (ill), Jackblue (JohnsonJackblue), James Horsley (mmdanggg2), Jeff Rous (JeffRous), Jon Watte (jwatte), Jørgen P. Tjernø (jorgenpt), jostster, Kalle Hamalainen (kallehamalainen), katze7514, Kevin Kuegler (FrostByteGER), KrisRedbeard, looterz, Manmohan Bishnoi (manmohanbishnoi), Marat Radchenko (slonopotamus), Markyroson, Martin Treacy-Schwartz (the1schwartz), Matt Edmonds (cleaver404), Matthew Casey (mdcasey), Matthias (haimat), Matthias Holzl (hoelzl), Matthias Huerbe (MatzeOGH), Michael Schoell (MichaelSchoell), Michał Siejak (Nadrin), Milan ??astny (aknarts), Moritz Wundke (moritz-wundke), Mustafa TOP (MSTF), Narendra Umate (ardneran), Nathan Stocks (CleanCut), NaturalMotionTechnology, Nick Verenik (nverenik), Paul Murray (awesomeness872), pfontain, Phil Christensen (Rastaban), PrimalJohnScott, projectgheist, Rafael Ortis (rafortis), Rajko Stojadinovic (rajkosto), Rama (EverNewJoy), rhughesgeomerics, Ricardo Rodrigues (RicardoEPRodrigues), Robert Hagglund (hagglund), Robert Segal (robertfsegal), Ryan Pavlik (rpav), sangpan, Sanjay Nambiar (sanjay-nambiar), Satheesh (ryanjon2040), Sean Campbell (scampVR), Sebastian Axinte (ENiGMA9), Sebastien Rombauts (SRombauts), SiebenCorgie, Stefan Zimecki (stefanzimecki), StefanoProsperi, Stephen Johnson (megasjay), TaeYoung Cho (valval88), Timothee Besset (TTimo), Timothy Hagberg (thagberg), Tom Kneiphof (tomix1024), Tom Ward (tomwardio), TRS-justing, unwitherer, Vladimir (VladimirPobedinskiy), Vladimir Alyamkin (ufna), wyhily2010, Yaroslav Shmelev (SoulSharer), yeonseok-yi
주요 기능
신규: 볼류메트릭 포그
새로운 Volumetric Fog (볼류메트릭 포그) 기능으로 환경에 놀라운 배경 효과와 분위기를 연출해 보세요! 다양한 농도 설정이 지원되어 빛줄기 사이로 흐르는 먼지나 연기 구름 시뮬레이션이 가능하며, 이 볼류메트릭 포그에는 다수의 라이트가 동시에 영향을 줄 수 있습니다. 볼류메트릭 포그가 받을 수 있는 라이팅은 다음과 같습니다:
- 단일 디렉셔널 라이트, 캐스케이드 섀도우 맵의 섀도잉 또는 스태틱 섀도잉, 라이트 함수.
- 다수 포인트 및 스포트 라이트, Cast Volumetric Shadow 옵션이 켜진 경우 다이내믹 또는 스태틱 섀도잉.
- 단일 스카이라이트, 섀도잉은 Distance Field Ambient Occlusion 이 켜진 경우.
- 파티클 라이트, 'Volumetric Scattering Intensity' 값이 0 보다 큰 경우.
볼류메트릭 포그 구성 관련 정보는 문서 를 참고하세요.
신규: 블룸에 이미지 기반 (FFT) 컨볼루션
새로운 이미지 기반 (FFT) 컨볼루션(합성곱) 기능으로 물리 법칙에 맞는 사실적인 블룸 포스트 프로세스 이펙트를 만들 수 있습니다! 언리얼 엔진 4.16 에 포함된 FFT 블룸 기능으로, 아티스트는 커스텀 블룸 커널 모양을 사용할 수 있을 뿐 아니라, 원하는 결과를 낼 수 있도록 그 세기도 완벽히 제어할 수 있습니다. 소스 이미지의 수학 컨볼루션 연산에 커널 이미지를 사용하는 이 블룸 기법을 통해, 별모양 광채에서부터 일정 구역의 디퓨즈 글로우에 이르기까지 다양한 반응 연속체 효과를 낼 수 있습니다. 이미지 기반 합성곱으로 사실감을 더할 수 있는 것은, 시각적으로 흥미로운 비대칭 커널 이미지를 사용할 수 있기 때문입니다. 보통은 방사형으로 퍼지는 별모양 광채같아 보이지만, 속눈썹 실루엣, 보케, 기타 부작용같은 모양을 포함시킬 수도 있습니다.
주: 이미지 기반 합성곱 블룸은 시네마틱이나 고사양 하드웨어용으로, 대부분의 게임에서는 기존의 (표준) 블룸이 적합할 것입니다.
신규: 디스턴스 필드 라이팅 최적화
디스턴스 필드 앰비언트 오클루전 및 레이 트레이스드 디스턴스 필드 섀도우 가 현 세대 콘솔과 중간 사양 PC 에서 30-50% 빨라졌습니다! 씬에 보다 사실적인 앰비언트 라이팅과 다이내믹 메시에 에리어 섀도우를 드리울 수 있도록 해주는 기능입니다. 게다가, Intel 의 Embree 레이 트레이싱 라이브러리를 사용하여 메시 디스턴스 필드 생성 시간도 2.5 배 빨라졌습니다. 프로젝트 세팅 중 Eight Bit Mesh Distance Fields (8비트 메시 디스턴스 필드) 및 Compress Mesh Distance Fields (메시 디스턴스 필드 압축) 옵션을 사용하면 메모리 사용량 역시 크게 감소합니다.
신규: 라이트웨이트 리짓 바디 시뮬레이션
새로운 라이트웨이트 리짓 바디 캐릭터 시뮬레이션 으로 물리 시뮬레이션 캐릭터 군단을 만들 수 있습니다! 이제 새로운 고성능 즉시 모드 PhysX API 로 애니메이션 블루프린트 안에서 피직스 애셋 시뮬레이션이 가능합니다. 이 시뮬레이션을 사용하는 캐릭터는 월드의 스태틱 지오메트리와의 콜리전 생성도 가능합니다.신규: 로우 레벨 클로딩 시뮬레이션
Nvidia 의 새로운 로우 레벨 NvCloth 클로딩 솔버를 사용하여 보다 세밀한 클로딩 시뮬레이션 제어가 가능합니다! 기존 APEX 클로딩 솔버를 보다 낮은 수준에서 동작하는 솔루션인 Nvidia 의 NvCloth 로 대체했습니다. 이 새로운 솔버는 작동방식에 약간의 차이를 제외하고 기존 APEX 솔루션의 코어 솔버와 비슷하지만, 시뮬레이션 데이터에 더욱 쉽게 접근할 수 있고 관성 세팅에 몇 가지 추가 파라미터가 노출되어 있습니다.신규: Nintendo Switch 게임 출시 지원!
등록한 개발자들은 이제 Nitendo Switch 용 게임 제작 및 출시가 가능합니다! 언리얼 엔진 4 는 Nintendo Switch 검증 사항을 준수하며, 네트워크 멀티플레이어 게임은 물론, 디퍼드 / 모바일 포워드 / 클러스터드 포워드와 같은 멀티 렌더링 파이프라인 접근도 지원하여, 사실상 어떤 유형의 게임도 쉽게 제작할 수 있습니다.신규: VR 모드 UI 및 인터랙션 업데이트
언리얼 에디터의 VR 모드가 대폭 개선되어 보다 직관적인 작업방식과 편집 환경을 제공해 줍니다. 새로운 비대칭 컨트롤러 셋업으로 한 손에는 새롭게 개선된 원형 메뉴를, 다른 한 손에는 보다 정밀해진 인터랙션 레이저로 레벨의 오브젝트 작업을 빠르고 쉽게 할 수 있습니다.
모든 주요 에디터 기능과 UI 패널을 포함한 모든 VR 동작을 이제 새로워진 원형 메뉴에서 열어볼 수 있습니다. 텔레포트도 업데이트되어 어느 한 위치로 순간 이동한 뒤 기본 스케일로 크기를 조정하여 플레이어 관점에서 확인할 수 있도록 하기도 했습니다. 자세한 정보는 관련 문서 를 참고하세요.
신규: VR 에서 시퀀스 편집
시퀀서 시네마틱 에디터를 이제 VR 에서 사용할 수 있습니다! 새 시퀀스 생성, 레벨에서 오브젝트 이동 작업을 하면, 그 트랜스폼에 대한 시퀀스 키를 자동 생성해 줍니다. 타임라인 스크러빙 후 이 키를 설정하는 것으로, 시네마틱 시퀀스를 만들고 재생하는 작업을 VR 안에서 모두 해낼 수 있습니다. 시퀀서 UI 나 원형 메뉴를 통해서도 기존 레벨 시퀀스를 열거나 재생할 수 있습니다.- 신규! 키 조정을 통해 월드의 궤도를 물리적으로 조절할 수 있습니다.
- 원형 메뉴의 Scrub Time (시간 스크럽) 옵션을 통해 썸스틱이나 터치패드 입력으로 시퀀스 재생 방향과 속도를 정할 수 있습니다. 트리거를 다시 한 번 누르면 시간 스크럽 모드를 빠져나갑니다.
신규: VR 모드 피직스 시뮬레이션
이제 VR 모드에서 모션 컨트롤러로 레벨의 오브젝트와 상호작용하면서 피직스 시뮬레이션 적용 이 가능합니다! 피직스 시뮬레이션 설정된 액터를 배치한 뒤 물리 시뮬레이션을 통해 액터가 사실적으로 퍼지도록 하거나, 모션 컨트롤러로 건드리거나 하면 됩니다.신규: VR 모드 스마트 스내핑
스마트 스내핑은 오브젝트의 바운드를 사용하여 씬의 다른 액터와 줄을 맞춰주는 기능으로, 미리 그리드를 신경쓸 필요 없이 모듈식 애셋 제작을 할 수 있습니다. 이 기능은 현재 VR 모드에서만 가능하나, 앞으로 데스크탑 편집도 지원할 계획입니다.신규: Xbox One 기본 렌더러 DirectX 12
DirectX 12 가 Xbox One 의 기본 렌더러가 되었습니다! DirectX 12 에 가한 여러가지 안전성 및 퍼포먼스 개선사항 덕에 Xbox One 의 기본 RHI 로 활용하여, CPU 및 GPU 퍼포먼스 향상 효과를 누릴 수 있게 되었습니다.D3D11 로 돌아가기
D3D11 로 돌아갈 필요가 있는 타이틀의 경우 그 방법은 다음과 같습니다:- 타이틀 defaultengine.ini 에서 bBuildForD3D12 옵션을 변경합니다.
- 게임을 Xbox One 용으로 다시 빌드합니다.
- 콘텐츠를 다시 쿠킹합니다.
신규: WebAssembly 및 WebGL 2 용 HTML5 지원
언리얼 엔진 4 가 이제 HTML5 의 새로운 WebAssembly 표준(다른 명칭으로는 WASM)을 지원하여, 웹에서도 C++ 코드를 가장 빠르고 효율적으로 컴파일하고 실행할 수 있게 되었습니다! Mozilla 의 최신 (v1.37.9) Emscripten 툴체인을 사용하고 있습니다. 이 기능은 아직 모든 브라우저에 지원되지 않는 신기술이라 베타 기능으로 간주되고 있으며, GitHub 접근 권한이 필요합니다. WASM 은 웹 앱에 사용되는 새로운 JavaScript 코드-투-바이너리 포맷으로, 앱 다운로드 크기와 시작 시간 및 메모리 소모량을 감소시켜 퍼포먼스를 크게 향상시켜 줍니다. WASM 및 브라우저 지원 관련 자세한 내용은 http://webassembly.org/페이지를 참고하세요.
UE 4.16 에는 OpenGL ES 3.0 기반 WebGL 2.0 지원도 추가되어 한 층 높은 렌더링 퍼포먼스 최적화와 시각 충실도 향상과 아울러 다음과 같은 렌더링 기능도 추가로 지원합니다:
- UE4 고사양 모바일 피처 레벨 대부분의 기능
- 파티클과 폴리지에 인스턴스드 지오메트리 드로잉
- 멀티 렌더 타겟(MRT) 지원
- 3D 또는 볼륨 텍스처, 2D 배열 텍스처와 같은 텍스처 기능, 2 제곱 텍스처 금지 제약 없음
HTML5 프로젝트 세팅의 Emscripten 부분에서 이 옵션을 변경할 수 있습니다. 가급적 폭넓은 브라우저 지원을 위해서라면 아직은 ASM.js 와 WebGL 1 을 사용하세요. 하지만 ASM.js 및 WebGL 1 지원은 앞으로 나올 엔진 버전에서 폐기 상태에 접어든 이후 제거될 것입니다 (정확한 시기는 브라우저 추가 지원에 따라 달라집니다).
Firefox 또는 Chrome (위 지원 버전) 브라우저에서 HTML5 에서 실행되는 Zen Garden 데모 를 통해 직접 확인하실 수 있습니다.
신규: 가비지 컬렉션 속도 2 배 향상
가비지 컬렉션 퍼포먼스가 크게 향상되어 이제 두 배 이상 빨라졌습니다! 구체적인 개선사항은 다음과 같습니다:- 도달가능성 분석 멀티스레딩 작업을 새롭게 디자인하여 태스크 관리 비용을 감소시켰습니다.
- 가비지 컬렉션 클러스터 작업이 블루프린트 생성 클래스 및 선택된 액터 유형을 지원합니다.
- UObject 언해시 코드 최적화를 통해 액터 소멸에 걸리는 시간을 단축시켰습니다.
신규: 시뮬레이팅 부모 포함 키네마틱 바디
시뮬레이션 부모를 포함한 키네마틱 피직스 바디를 만들 수 있는 기능을 추가했습니다. 이제 캐릭터의 손과 같은 자손 본은 순수히 애니메이션 데이터로 구동시키면서, 그 본의 부모 역시도 피직스 시뮬레이션 데이터로 구동되도록 만들 수 있습니다. 플레이어가 턱을 오르면서 낙석이 바디에 충돌하는 경우 그에 반응하도록 하는 등의 멋진 이펙트를 만들 수 있습니다!신규: 플랫폼 SDK 업그레이드
매 번 출시마다 플랫폼 파트너사의 최신 SDK 버전을 지원할 수 있도록 엔진을 업그레이드하고 있습니다.- Visual Studio: 중요: Visual Studio 2013 은 윈도우에서 이번 출시에 더이상 지원되지 않습니다. Visual Studio 2015 또는 Visual Studio 2017 로 업그레이드해 주세요.
- Nintendo Switch: Nintendo SDK 1.3.1 을 지원합니다.
- Xbox One: October 2016 QFE3 XDK 버전 대상으로 빌드했습니다.
- PlayStation 4: PSR SDK 4.508.001 SDK 로 업그레이드했습니다.
- Android: Updated CodeWorks for Android 1R6u1
- GoogleVR: 플러그인 1.3 버전으로 업그레이드했습니다.
- GoogleVR: SDK 1.40.0 버전으로 업데이트했습니다.
- GoogleVR: Mode 기본값이 Daydream & Cardboard 로 변경되었습니다.
- Vulkan: 배포 파일과 glslang 을 SDK 1.0.39.1 로 업그레이드했습니다.
신규: 시퀀서 샷 트랙 개선
시퀀서의 샷 트랙이 시네마틱 및 영화 제작에도 유용하도록 여러모로 개선되었습니다!- 샷 별 계층형 바이어스 - 기본적으로 레벨 시퀀스 계층구조 내 하위 레벨의 트랙이 우선권을 갖습니다. 이를 통해 영화 제작자는 자신에게 익숙한 파이프라인을 만들어, 샷에서 수정을 가하면 그것이 들어있는 시퀀스의 트랙을 덮어쓰도록 할 수 있습니다.
- 모든 트랙에 When Finished 프로퍼티 노출 - 애니메이션 이전 상태의 값으로 되돌릴지 아니면 시퀀스 종료 상태의 값을 유지할지를 트랙에 지정할 수 있습니다. 영화 제작 환경에서는 보통 샷에서 애니메이션이 적용된 값을 애니메이션 전 상태로 되돌려 다음 샷으로 새어나가지 않도록 합니다. 시네마틱에서는 값을 유지시켜 시퀀서 애니메이션 상태에서부터 게임을 계속할 수 있도록 하는 것이 좋을 것입니다.
- 프리/포스트 롤 - 이제 모든 트랙에 프리 / 포스트 롤이 일반적인 개념이 되었습니다. 어떤 트랙에는 그에 맞는 작동방식이 있을텐데, 예를 들어 카메라 컷 트랙은 프리 롤 평가 기간의 카메라 컷 예상 위치를 스트리밍 시스템에 알려주는 것입니다.
신규: 시퀀서에서 머티리얼 파라미터 컬렉션 애니메이션
이제 시퀀서에서 머티리얼 파라미터 컬렉션에 대한 애니메이션을 통해, 다수의 머티리얼에서도 레퍼런싱할 수 있는 스칼라 및 벡터 파라미터 애니메이션 완벽 제어가 가능합니다. 더이상 애니메이션 공유를 위해 각 머티리얼 인스턴스마다 별개의 파라미터 값 애니메이션을 줄 필요가 없습니다.신규: UI 렌더링 퍼포먼스 개선
이제 게임에서 Invalidation Panel 을 사용하면 렌더 데이터가 아닌 위젯 엘리먼트만 캐시에 저장하는 옵션으로 텍스처 배치 작업을 향상시켜 드로 콜 수를 크게 줄일 수 있습니다. 모바일 디바이스에서 퍼포먼스가 크게 향상될 것입니다!위의 배틀 브레이커스 영웅 선택 UI 에서, 각 영웅의 논리 엘리먼트를 캐시에 저장시켜 함께 배치 처리되도록 할 수 있습니다. 이 모드를 켜는 콘솔 변수는 Slate.CacheRenderData=0 으로, 모바일 디바이스에서는 기본값입니다.
신규: 애니메이션 포즈 드라이버 개선
포즈 드라이버 기능 개선을 통해, 본 세트의 포즈를 레퍼런스 '타겟' 세트와 비교하는 식으로 블렌드 셰이프나 본을 절차적으로 구동시킬 수 있게 되었습니다. 어깨처럼 상박과 어깨 포즈에 따라 모프 타겟을 자동 교정하면 좋은 곳에 특히 좋습니다.- 이제 포즈를 읽어 들일 '입력'으로 다수의 본을 선택할 수 있습니다.
- 이제 노드가 변경할 본을 선택할 수 있습니다.
- 각 타겟 가동 방법에 대한 '커스텀 커브' 지정이 가능합니다.
- 포즈 애셋 필요 없이 (모프, 머티리얼) 커브를 바로 구동시키도록 선택할 수 있습니다.
- UI 에 타겟 포즈 생성/편집, 타겟 가동 표시 바 등이 개선되었습니다.
- 뷰포트에서 타겟 위치를 클릭하여 선택할 수 있습니다.
신규: 머티리얼 플래트닝용 오파시티 및 오파티시 마스크
블렌드 모드 옵션을 사용하여 머지 액터와 HLOD 로 오파시티 (마스크) 값을 구워내는 기능이 지원됩니다. 결과 (인스턴싱된) 머티리얼은 set blend mode 를 사용하여 올바른 렌더 패스를 따르도록 합니다. 마스크드 머티리얼을 구워낸 예제입니다:신규: 메시 페인트 툴 개선
메시 페인트 시스템이 대폭 개선되어 사용하기 쉽고 명확해졌으며, 에디터 다른 부분의 기능을 재사용할 수 있게 되었습니다. 또, 스켈레탈 메시에 페인트 툴을 사용할 수 있게 되었습니다. 참고로 페인트는 (스태틱 메시와 마찬가지로) 인스턴스 단위가 아니며 스켈레탈 메시 애셋에 직접 적용됩니다.신규: 스플라인 IK 솔버
캐릭터 스플라인 또는 본 체인 제어에 좋은 Spline IK 노드가 애니메이션 블루프린트에 추가되었습니다!신규: 메시 표면의 머티리얼 감지
컴포넌트에 추가된 'Get Material From Face Index' (면 인덱스에서 머티리얼 구하기) 함수로 (복합) 라인 트레이스 이후 컴포넌트에 적용된 머티리얼을 구할 수 있습니다. 스태틱 메시, 프로시저럴 메시 컴포넌트, BSP 에 적용됩니다.신규: 'Look At' 애니메이션 노드 개선
이제 Look At 노드의 Look At Location 프로퍼티를 본 또는 소켓 기준으로 사용할 수 있습니다. 기존에는 본이나 소켓을 지정해도 이 값을 무시했었습니다. Look At 컨트롤에 대한 시각화 역시 개선되었습니다. 예를 들어, 경사 각도, 타겟 위치, 보간 등을 확인할 수 있습니다.신규: 애니메이션 익스포트 개선
스켈레탈 메시에 할당된 포스트 프로세스 그래프에서 생성된 부가 애니메이션 데이터, 이를테면 피직스 시뮬레이션용 애님 다이내믹스같은 것을 포함하는 애니메이션을 만들고 익스포트하는 기능이 지원됩니다.이 부가 데이터를 포함시키려면, 애니메이션 생성 또는 애니메이션 익스포트 에서 프리뷰 메시 를 선택하면 됩니다.
신규: 언리얼 오디오 엔진 (베타 프리뷰)
GDC 에서 발표된 새로운 언리얼 오디오 엔진이 PC, Mac, iOS, Android, Switch 에서 베타로 접할 수 있습니다. 새로운 멀티플랫폼 EQ 및 Reverb 마스터 이펙트와 함께, 기존 오디오 엔진 피처 세트 하위 호환이 완벽 지원되는 멀티 플랫폼 오디오 믹서가 포함되어 있습니다. 추가로, 새로운 언리얼 오디오 엔진에는 서브믹스 그래프, 서브믹스 이펙트, 소스 이펙트, 실시간 합성, 오디오 플러그인 지원 강화 등의 새로운 기능이 도입되어 있습니다.새로운 언리얼 오디오 엔진은 4.16 에 기본으로 켜져있지 않은데, 콘솔 플랫폼, 리눅스, HTML5 용 백엔드 구현과 아울러 특히나 모바일 플랫폼에서의 안전성과 퍼포먼스 향상을 위한 작업이 계속 이루어지고 있기 때문입니다.
오디오 믹서를 켜려면, "-audiomixer" 명령줄 인수를 붙여주면 됩니다.
주: 대부분의 언리얼 오디오 엔진 신기능은 오디오 믹서를 켜지 않고 에디터를 실행시키면 숨겨져 있습니다.
신규: Synthesis 플러그인 (베타)
새로운 synthesis 플러그인에는 두 가지 새로운 리얼타임 신디사이저가 들어있습니다. 하나는 새로운 언리얼 오디오 엔진의 "SynthComponent" 클래스를 사용하여 구현한 완전판 서브트랙티브 신디사이저(감산 합성)이고, 다른 하나는 리얼타임 그래뉼레이터입니다. 새 신디사이저는 절차적인 음악이나 사운드 디자인에 유용한 툴일 뿐 아니라, 써드 파티 플러그인 제조사나 심지어 사운드 디자이너도 자신만의 신디사이저를 구현하기 위해 참고할 수 있는 예제 역할을 하기도 합니다. synthesis 플러그인에는 새로운 언리얼 오디오 엔진에서 사용할 수 있는 DSP 소스 및 서브믹스 이펙트 호스트도 들어있습니다:- 소스 이펙트: 스테레오 딜레이, 비트 크러셔, 다이내믹스 프로세서, 엔벨롭 팔로워, EQ 필터, 버추얼 아날로그 필터 (래더/스테이트 베리어블), 웨이브 셰이퍼, 코러스, 페이저
- 서브믹스 이펙트: 리버브, EQ, 다이내믹스 프로세서
신규: Steam Audio (베타)
에픽과 Valve 가 팀을 이뤄 새로운 언리얼 오디오 엔진의 신기능을 활용하여 처음으로 완벽 통합 구현한 Steam Audio SDK 를 발매했습니다. Steam Audio 는 새로운 언리얼 오디오 엔진의 공간화, 오클루전, 리버브 시스템과 근본적인 수준에서 통합되어 UE4 의 VR 을 위한 차세대 물리 기반 오디오 체험을 선사할 수 있습니다. 이번 버전은 Steam Audio 베타 버전이며, 4.17 에 중요 업데이트, 추가 예제 프로젝트, 작업방식 개선사항이 계획되어 있습니다. 개선을 위한 피드백, 질문, 아이디어는 언제든 환영입니다.
Steam Audio 관련 자세한 정보, 문서, 기술지원 도움말은 https://valvesoftware.github.io/steam-audio/ 페이지를 참고하세요.
신규: 컬러 그레이딩 툴 개선
컬러 그레이딩 유저 인터페이스가 사용하기 쉽도록 개선되었습니다!- 새로운 HSV 모드가 추가되었습니다.
- Ctrl+슬라이더 드래그로 유형에 따라 최소/최대값을 동적으로 변경할 수 있습니다.
- 새로 추가된 리셋 버튼으로 전체 컬러 그레이딩 카테고리를 리셋시킬 수 있습니다 (예: 글로벌, 섀도우, 미드톤, 하이라이트).
신규: 애니메이션 블렌드 스페이스 에디터 개선
이제 블렌드 스페이스 에디터에서 그리드 안의 Show Animation Names (애니메이션 이름 표시) 버튼으로 각 샘플의 애니메이션 이름을 표시할 수 있습니다. 이제 기존 애니메이션 위에 새 애니메이션을 끌어 놓아 대체할 수도 있습니다.신규: 현지화용 스트링 테이블
UE4 에 이제 현지화 스트링 테이블이 지원됩니다! 스트링 테이블은 현지화 텍스트를 하나( 또는 여러 개)의 알려진 위치에 몰아두고 스티링 테이블 안의 항목을 다른 애셋이나 코드에서 안정적인 방식으로 레퍼런싱하여 현지화 텍스트를 쉽게 재사용할 수 있습니다. 스트링 테이블은 C++ 에서 정의하거나, CSV 파일을 통해 로드하거나, 애셋으로 생성할 수 있습니다.
신규: 애니메이션 모디파이어 (베타 프리뷰)
애니메이션 모디파이어는 주어진 애니메이션 시퀀스 또는 스켈레톤에 액션 시퀀스를 적용할 수 있습니다. 이를테면 오른발이 바닥에 오는 것이 몇 프레임인지 정확히 지정한 뒤, ball_r 본이 최저점에 오는 (바닥에 닿는) 프레임에 애니메이션 싱크 마커를 추가하는 것입니다. 새로운 함수 세트로 애니메이션 블루프린트 함수 라이브러리에 사용할 수 있는 특정 애니메이션 데이터를 접근할 수 있습니다. 애니메이션 모디파이어 접근 및 적용은 스켈레톤 에디터와 애니메이션 에디터에서 찾을 수 있는 새 탭에서 이루어집니다. 애니메이션 모디파이어는 스켈레톤 또는 애니메이션 시퀀스에 추가할 수 있습니다. 애니메이션 시퀀스의 경우, 애니메이션 모디파이어는 시퀀스 자체에만 적용됩니다. 스켈레톤에 적용하면, 그 스켈레톤을 기반으로 한 모든 애니메이션 시퀀스에 적용됩니다.신규: 안드로이드 가상 키보드 (베타 프리뷰)
이제 팝업 입력 대화창 대신 안드로이드 운영 체제의 가상 키보드를 지원합니다!가상 키보드 활성화는 프로젝트 세팅 > 플랫폼 > Android > APK Packaging 아래 옵션을 체크하면 됩니다. 이 옵션은 가상 키보드 기본 지원을 활성화시키지만, 입력 요소가 보이면서 가상 키보드 뒤에 가리지 않도록 하기 위해서는 제공된 OnVirtualKeyboardShown 와 OnVirtualKeyboardHidden 이벤트 핸들러를 앱에서 사용해 줘야 합니다. 주: 사용자 언어가 IME 를 필요로 하는 경우 Android.NewKeyboard 콘솔 명령으로 가상 키보드를 끄는 것이 나을 수 있습니다.
안드로이드 실행시간 권한 요청 지원
이제 언리얼 엔진 4 에 안드로이드 23 이상에서 필요로 하는 런타임 퍼미션을 지원합니다. 여기에는 연락처, 사진, 폰 상태, 외부 저장장치, 카메라, 위치 서비스에 대한 접근이 포함됩니다. 자세한 내용은 다음 웹페이지를 참고하세요: https://developer.android.com/guide/topics/permissions/requesting.html.안드로이드 23 을 타겟으로 삼는 경우, Android Runtimes Permission 플러그인에 네이티브 코드나 Check Android Permission 블루프린트 노드를 사용하여 권한이 이미 부여되었는지 검사하는 기능이 제공됩니다. 권한이 아직 부여되지 않은 경우, 앱에서는 Request Android Permissions 블루프린트 노드를 사용하여 사용자에게 요청한 뒤, On Permissions Granted Dynamic 델리게이트에 바인딩된 이벤트를 사용하여 결과를 구할 수 있습니다. 그러면 게임이 권한이 필요한 기능을 사용하기 직전에 권한을 요청하도록 하여, 사용자 경험 향상에 도움이 됩니다. 안드로이드 23 이전 버전을 타겟으로 삼는 경우, 예전처럼 Android Manifest 에 지정하여 권한을 부여해야 합니다.
주: 4.16 은 Android SDK 23 이상이 설치되어 있어야 합니다. 기존 버전을 사용하시는 경우 SDK 매니저를 사용하여 안드로이드의 Upgrade Note 부분 안내에 따라 설치해 주시기 바랍니다. 또한 Android SDK 프로젝트 세팅에서, Android SDK API Level 을 "matchndk" 에서 "latest" 으로 변경해 주세요. 그러면 Android SDK 플랫폼 디렉토리에 설치된 최신 SDK 를 사용합니다. NDK API Level 은 변경할 필요 없습니다. Lollipop (Android 5.0) 이전 버전 안드로이드에 APK 를 설치할 수 있도록 하려면 "android-19" 가 맞습니다. 이 값을 높여 설정하면 Android 5.0 이상이 필요합니다.
패키지 크기 감소를 위한 셰이더 코드 라이브러리
이제 Share Material Shader Code 프로젝트 세팅으로 모든 셰이더 코드의 공유 저장 위치를 지정할 수 있습니다. 그러면 같은 셰이더 코드를 생성하는 머티리얼 또는 머티리얼 인스턴스에 대해 하나의 사본만 저장하게 됩니다.iOS, TVOS, MacOS 의 Metal 에서는 보다 효율적인 플랫폼 전용 셰이더 라이브러리를 지원합니다. Shared Material Native Libraries 프로젝트 세팅을 켜면 이 네이티브 라이브러리 포맷을 활용하여 패키지 크기가 한 층 더 줄어듭니다.
신규: FBX 에서 캡슐 콜리전 임포트
이제 FBX 파일에서, 이미 박스, 구체, 컨벡스 심플 콜리전을 임포트하듯, 캡슐 심플 콜리전을 임포트할 수 있습니다. 캡슐 폴리 메시의 'UCP' 접두사를 사용하면, 임포트할 때 제거되면서 그에 해당하는 캡슐 콜리전 셰이프로 대체됩니다.신규: 공유 vs 로컬 애셋 뷰어 프로파일용 별도 옵션
이제 언리얼 에디터에서 공유 또는 로컬 레벨에 애셋 뷰어 프로파일을 저장, 팀원들과 프로파일 세트를 공유하고, 아트 애셋 감정을 위한 통합 씬으로 사용할 수 있습니다. 로컬 레벨에 프로파일을 저장하면 팀에는 필요치 않지만 개인적으로 선호하는 프로파일 커스텀 세트를 유지할 수 있습니다. 공유 프로파일은 DefaultEditor.ini 에 저장되며, 체크 아웃 또는 쓰기 가능으로 만들어야 합니다.신규: 애니메이션 프리뷰 씬 개선
애니메이션 툴용 프리뷰 씬이 여러모로 개선되었습니다:- 프리뷰 씬 세팅이 뷰포트 숨김 메뉴가 아닌 기존 세팅 탭으로 이동되었습니다. 이 세팅 탭은 이제 기본으로 표시됩니다.
- 메인 툴바에 프리뷰 메시를 빠르게 전환할 수 있는 바로가기가 추가되었습니다. 모든 애니메이션 에디터에 적용됩니다.
- 프리뷰 씬을 편집할 때, 더이상 여분 메시 미리보기만을 위한 "프리뷰 씬 컬렉션"을 만들 필요가 없습니다. 메시 셋업이 마음에 들면 애셋에 저장할 수도 있습니다.
신규: 애님 뷰어에 기본 카메라 옵션 추가
이제 스켈레탈 메시의 '기본 카메라' 위치를 저장할 수 있습니다. 메시를 열 때 사용되며, Shift+F 키를 눌러 점프할 수도 있습니다.신규: Play Montage 블루프린트 노드
Play Montage 는 어느 블루프린트 로직에서도 애님 몽타주 재생에 쓸 수 있는 새로운 비동기 노드입니다. 이를 통해 몇몇 콜백 이벤트에 쉽게 접근할 수 있어, 몽타주가 블렌드 아웃 되거나 중단되는 등의 경우에 다른 노드를 발동시킬 수 있습니다.- OnCompleted 는 몽타주 재생이 완료되고 완전히 블렌드 아웃 되면 호출됩니다.
- OnBlendOut 는 몽타주가 자동이든 수동이든 중지되어 Blend Out 시작할 때 호출됩니다.
- OnInterrupted 는 몽타주가 다른 몽타주 재생에 의해 중단되어 Blend Out 시작할 때 호출됩니다.
- OnNotifyBegin 및 OnNotifyEnd 는 몽타주 애셋에서 Play Montage Notify 나 Play Montage Notify Window 를 사용할 때의 콜백입니다. 이 애님 노티파이들은 Notify Name 을 추가로 붙여 같은 몽타주에서 온 다수의 콜백을 구분할 수도 있습니다.
신규: 포즈 리타겟용 옵션 추가
이제 리타겟 베이스 포즈를 설정할 때 사용할 포즈 애셋에서 포즈를 임포트할 수 있습니다. 현재 포즈를 변경 및 저장하고 (Use Current Pose) 본 트랜스폼을 레퍼런스 포즈로 리셋시키는 (Reset) 기존 옵션도 여전히 사용 가능합니다.주: 애니메이션 에디터에서 포즈 애셋을 생성하고 이름을 할당한 포즈 애셋에 아무 포즈나 삽입할 수 있습니다.
신규: 스태틱 메시 에디터의 콜리전 뷰 옵션
스태틱 메시 에디터 툴에 스태틱 메시의 단순 및 복합 콜리전 표시를 위한 별도의 옵션이 생겼습니다.신규: LOD 에 포즈 굽기
이제 언리얼 엔진 4 에 Bake Pose 라는 새로운 감소 세팅을 사용하여 LOD 레벨에 포즈를 구워 넣는 기능이 지원됩니다. 이 세팅을 단일 프레임 애님 시퀀스로 설정하면 결과 LOD 메시에 적용됩니다. 본은 제거하면서 포즈는 계속 유지하고자 할 때 유용하게 쓰일 수 있습니다. 주: 이 기능은 Simplygon 이 필요합니다.신규: 시퀀서 유저 인터페이스 개선사항
이제 오디오 트랙 썸네일에 내부 (스무딩 적용된) RMS 커브로 피크 샘플이 렌더링됩니다. 오디오 트랙 세로 크기조정도 가능합니다! 기타 시퀀서 UI 개선사항:
- 시퀀서 제어 액터는 이제 레벨에 스트림 인 될 때 제대로 틱 됩니다.
- 이제 이벤트 트랙에 대한 부가 이벤트 리시버 (예: 액터 블루프린트) 지정이 가능합니다.
- 바인딩이 개선되었습니다. 이제 블루프린트에서 레벨 시퀀스에 대한 바인딩을 드래그/드롭/설정 가능합니다. 예를 들어 블루프린트에서 오브젝트를 스폰하고 그것을 기존 트랙에 할당할 수 있습니다.
신규: 모바일 VR 렌더링 개선
GearVR 에 다이렉트 멀티뷰가 지원됩니다. 모바일 멀티뷰를 사용할 때 렌더 타겟을 추가로 사용하지 않고 전체 화면 사본이 필요치 않아 전반적인 퍼포먼스가 향상되고 메모리 사용량이 줄어듭니다.이제 GearVR 에서 멀티뷰가 켜진 상태에서는 모노스코픽 파 필드를 사용하여 씬의 스테레오 렌더링 부분의 최적 렌더링이 가능합니다.
Google Daydream 은 앞으로 나올 버전에서 다이렉트가 지원되는 표준 모바일 멀티뷰를 지원합니다.
신규: Playstation VR 용 소셜 스크린 (베타 프리뷰)
PSVR 소셜 스크린 프리뷰에 소셜 스크린 분리 모드가 지원됩니다. 모니터와 HMD 디스플레이에 다른 것을 표시하는 모드입니다.이 프리뷰는 30fps 소셜 스크린 출력을 지원하며, 다수의 출력 모드 전환이 가능합니다. 구현된 샘플 모드는 다음과 같습니다:
- SystemMirror (항상 있었던 기본 미러링 모드입니다).
- SeparateTest (소셜 화면의 단순한 흑백 전환입니다).
- SeparateTexture (블루프린트 지정 텍스처, 예를 들어 씬 캡처 컴포넌트가 쓰고 있는 렌더 타겟 같은 것을 표시합니다).
- SeparateMirror (전체 VR 렌더 버퍼를 표시합니다).
이 기능을 사용하려면 새로 생긴 Morpheus 프로젝트 세팅 bEnableSocialScreenSeparateMode 를 true 로 설정해야 합니다. 그러면 소셜 스크린용 스크린 버퍼가 추가로 할당됩니다. 이 기능 제어를 위한 블루프린트 함수는 SocialScreen 으로 검색하면 됩니다.
신규: 안드로이드 실행파일 크기 감소
컴파일러와 링커 세팅을 다수 최적화시켜 안드로이드 바이너리 실행파일 크기를 줄였습니다. Build with hidden symbol visibility 옵션을 켜면 안드로이드 실행파일을 만들 때 언리얼 엔진에서 사용하지 않는 코드를 보다 적극적으로 제거해줍니다. 심볼 테이블에서 함수 심볼도 벗겨내어 실행파일 크기를 한층 더 줄여줍니다. 최종 APK 크기가 약 7MB 줄어드는 것을 확인했습니다.주: 이 옵션은 디바이스의 바이너리에서 심볼을 제거하므로, logcat 출력에는 네이티브 크래시 콜 스택이 심볼 없이 나타날 것입니다. 디버깅이 가능하도록 하기 위해, 빌드 시스템에서는 디버그 심볼을 벗겨내지 않은 바이너리도 출력 디렉토리에 복사한 뒤, 콜 스택에 심볼을 붙이는 배치 파일을 추가로 생성합니다.
신규: Vertex Interpolator 머티리얼 표현식 노드
머티리얼 그래프에 Vertex Interpolator 노드가 추가되어 버텍스 및 픽셀 작업의 값 보간 제어가 더욱 확실해졌습니다. 이는 작업방식상의 개선으로, 인터폴레이터의 한계나 셰이더 변경은 없습니다.기존에 버텍스 셰이더 작업을 덜어내는 방식은 Customized UV 출력을 활용하는 것이었습니다. 데이터 수동 패킹 작업이 수반되는 약간 번거로울 수 있는 작업이었지요. 아래 예제 머티리얼은 미리 스키닝된 메시 데이터를 패킹한 후 언패킹하여 이펙트에서 사용하는 것입니다:
새로운 인터폴레이터 노드는 패킹을 자동 처리해 주어, 그래프가 단순하고 깔끔해집니다:
기존에 Customized UVs 를 통해 패킹하던 작업은 VS (버텍스 셰이더) 핀에 걸어주고 PS (픽셀 셰이더) 핀에서 구합니다.
머티리얼 통계 출력도, 인터폴레이터의 현재 패킹된 것과 가능한 최대 사용량을 표시하도록 업데이트했습니다. 참고로 위 예제에서 인스트럭션 수와 인터폴레이터 사용량은 그대로입니다. 통계를 보면 2 개의 스칼라가 TexCoord[0] 노드, 나머지 6 개는 미리 스키닝된 데이터에 예약되어 있어, 총 2 개의 벡터에 8 개의 스칼라가 패킹되어 있음을 알 수 있습니다.
이 기능은 Customized UVs 와 호환되며, 결과를 같이 패킹합니다.
신규: 애셋 관리 프레임워크 (베타 프리뷰)
Asset Manager (애셋 매니저)는 에디터에서나 실행시간에 게임 전용 애셋 유형과 맵을 발견, 로드, 검사하는 데 사용할 수 있는 새로운 글로벌 오브젝트입니다. 퀘스트, 무기, 영웅과 같은 것들을 만들고 요청이 있을 때 로드하는 작업을 수월하게 해주는 프레임워크를 제공합니다. 아직 활발히 개발중인 기능이라, 숙련되지 않은 개발자나 블루프린트 전용 게임에서 사용하기에는 아직 이르며, 4.17 이나 되어야 할 것입니다. 프로젝트 세팅의 애셋 매니저 탭에서 게임의 규칙을 구성할 수 있습니다: 애셋 매니저가 검색한 주요 애셋 유형은 로드 직전 실행시간에 쿼리한 뒤, 요청이 있을 때 비동기 로드 가능합니다. 또한 애셋 매니저 세팅을 통해 게임을 패키지 제작 및 출시할 때 쿠킹 및 청크 규칙을 구성할 수 있습니다. AnswerHub 에서 이 기능에 대해 작성중인 문서를 참고해 보실 수 있습니다: https://answers.unrealengine.com/questions/595580/what-is-the-asset-manager.html신규: 애셋 검사 창 [베타 프리뷰]
애셋 관리 프레임워크 기반으로 제작된 Asset Audit (애셋 검사) 창을 사용하여 디스크 크기, 메모리 사용량, 다수 애셋에 대한 일반적인 애셋 프로퍼티를 한꺼번에 검사할 수 있습니다. 콘텐츠 브라우저의 특수 버전으로, 창 > 개발자 툴 메뉴에서, 또는 콘텐츠 브라우저나 레퍼런스 뷰어의 우클릭 메뉴에서 접할 수 있습니다. 창을 연 이후에는, 버튼으로 애셋을 추가하고, 플랫폼 드롭다운으로 쿠킹된 애셋 레지스트리에서 로드한 플랫폼 데이터를 로드할 수 있습니다. PS4 에서 ShooterGame 샘플의 텍스처를 검사하는 예제입니다:VR: VR 용 콘솔 명령 통합
각 플랫폼마다 다른 다양한 VR 플랫폼용 콘솔 명령을 한 데 모아 통합시켜, 개발자가 쉽게 작업할 수 있는 공유 레이어를 만들었습니다.여기에는 여러가지 장점이 있습니다:
- 새로운 플랫폼의 독자 처리가 쉬워집니다.
- HMD 마다 다른 인수의 뜻 일관성이 높아집니다.
- 현재 HMD 구현 상의 중복이 줄어듭니다.
- 모든 VR 관련 콘솔 명령에 "vr." 이라는 공통 접두사가 붙습니다. 특정 업체 전용 익스텐션은 명령 이름만 보고도 쉽게 알 수 있습니다.
- 업데이트된 콘솔 명령은 탭 완료 기능과 내장 사용법 도움말을 지원합니다.
커스텀 하드웨어 커서
이제 플랫폼에 내장된 커스텀 하드웨어 커서가 윈도우, 맥, 리눅스에 지원됩니다! 프로젝트의 UserInterface 세팅에서 사용할 하드웨어 커서 구성이 가능합니다.이 시스템에서는 커서에 여러가지 포맷을 제공할 수 있습니다. 예를 들어, 세팅에서 "Slate/FancyPointer" 를 기본 포인터로 쓰고싶다고 지정할 수 있습니다. 게임 content 폴더의 Slate 디렉토리에 FancyPointer.png + .cur + tiff 를 넣어두면 특정 플랫폼의 다중 해상도 지원이 가능합니다. Tiff 는 맥에서, cur/ani 파일은 윈도우에서 사용되며, 해당 플랫폼에 맞는 포맷을 찾지 못한 경우 png 를 찾습니다.
빠른 위젯 생성
UMG 위젯 생성이 최대 3 배 빨라졌습니다! 쿠킹할 때, 이제 위젯 컴파일러는 생성된 블루프린트 클래스와 같은 패키지 안에 저장되어 위젯 생성 도중 사용되는 위젯 템플릿/아키타입을 생성합니다.테크니컬 디테일
컴파일 도중, 모든 하위 유저 위젯 및 그 트리를 포함해서 거의 완벽히 초기화된 위젯 트리를 생성하고, 모든 멤버 변수를 걸어주고(hookup), 네임드 슬롯을 초기화하고, 애니메이션 셋업 등의 작업을 합니다. 이렇게 생성 작업이 거의 완료된 위젯을 아키타입으로 사용하여 인스턴싱을 하면, 그에 해당하는 느린 버전의 StaticDuplicateObject 패쓰를 통하지 않아도 됩니다.
이 메소드에는 제약이 있는데, 이제 위젯의 컴파일 단계 일부에서 인스턴싱이 성공했는지, 또는 사용자가 서브오브젝트 프로퍼티에서 Instanced 구성을 깜빡해서 GLEO 레퍼런스가 생길 것인지 조사합니다. 다행히 그런 경우는 극히 드물텐데, UVisual (위젯 & 슬롯)은 모두 DefaultToInstanced (기본으로 인스턴싱)이므로, Instanced 플래그를 요하는 대부분의 경우는 알아서 처리해주기 때문입니다. 네이티브 코드에서 BindWidget 을 사용하는 대량 작업의 경우라면 더더욱 그렇습니다.
나머지 자세한 업데이트 내역은 출시 노트 문서를 참고해 주시기 바랍니다.