언리얼 엔진 4.17 릴리즈!
2017. 8. 7.

언리얼 엔진 4.17 릴리즈!

저자 Jeff Wilson

게임이든, 단방향 매체든, 가상 현실이든, 언리얼 엔진 4.17 로 여러분의 이야기를 들려주세요. 새로운 도구, 작업방식 개선, 퍼포먼스 최적화를 통해 사용자가 원하는 퍼포먼스와 개발자가 기대하는 퀄리티 기준에 맞춰 프로젝트를 개발하고 발매하는 것이 전에 없던 수준으로 쉬워집니다. 새로운 플랫폼 지원 및 확장된 기능 세트로, 언리얼 엔진은 어느 플랫폼에서든 매력적인 경험을 선사합니다.

새로운 컴포셔(Composure) 합성 시스템과 이미지 플레이트(Image Plate) 플러그인이 제공하는 막강하고 유연한 기능을 통해 합성 콘텐츠를 실시간 렌더링하여 라이브 액션 영상으로 만들어낼 수 있습니다. 시퀀서의 여러가지 기능 향상으로 시네마틱이나 단방향 매체 제작을 위한 작업방식이 지속적으로 개선됩니다.

퀘스트나 영웅과 같은 게임 전용 콘텐츠 발견 및 로드를 위한 애셋 관리 프레임워크가 새로 추가되었습니다. 애셋 레지스트리의 새로운 블루프린트 접근자를 사용하면 블루프린트에서도 실행시간에 애셋 관련 정보 쿼리가 가능합니다.

플랫폼 지원이 개선되어 Microsoft 의 Xbox One X 콘솔 게임을 개발할 수 있게 되었습니다. 새로운 VR Spectator Screen(관람자 화면) 지원을 사용하면 VR 프로젝트에 소셜 체험을 불어넣을 수 있습니다. 안드로이드에서는 고사양 디바이스에서 여러가지 부분이 향상되었으며, 실행파일 크기를 더욱 줄일 수 있도록 지속적으로 노력하고 있습니다.

이번 릴리즈에는 GitHub 의 엄청난 언리얼 엔진 개발자들이 제출한 90 종의 개선사항이 포함되어 있습니다! 언리얼 엔진 4.17 에 기여해 주신 모든 분들께 감사드립니다:

0lento, Akihiro Kayama (kayama-shift), Andrea Catania (AndreaCatania), Andrew Armbruster (aarmbruster), Andrew Gaubatz (e-agaubatz), Andreas Schultes (andreasschultes), Angel Angelov (DexterLB), Artem V. Navrotskiy (bozaro), Brent Scriver (FineRedMist), Cengiz Terzibas (yaakuro), Chris Grebeldinger (cgrebeld), DaveC79, Dennis Wissel (dsine-de), erniea, GBX-ABair, Gryphon Myers (gryphonmyers), Igor Karatayev (yatagarasu25), Ilya (ill), irobot, Jared Hefty (jared-improbable), Jason Calvert (jasoncalvert), Jorge Martins (SNikon), Kalle Hämäläinen (kallehamalainen), Konstantin Nosov (gildor2), Laurie (laurie-hedge), Mario Zechner (badlogic), Mathias Hübscher (user37337), Matteo De Carlo (portaloffreedom), Mattias Cibien (mattiascibien), Max Shawabkeh (max99x), Michael Auerswald (flipswitchingmonkey), Michail Nikolaev (michail-nikolaev), Nako Sung (nakosung), Paul Eremeeff (PaulEremeeff), Piotr B?k (Pierdek), poiyomi, projectgheist, rfenner, Robert Khalikov (nbjk667), Roberto De Ioris (rdeioris), Ron van Essen (ronve), rooneym, Ryan Nielson (RyanNielson), Sam Hocevar (samhocevar), Satheesh (ryanjon2040), Sébastien Rombauts (SRombauts), Skylonxe, Stefan Zimecki (stefanzimecki), StefanoProsperi, Stormtide Ltd (StormtideGames), Timothee Besset (TTimo), Trent Polack (trentpolack), UpwindSpring01, wuyakuma

신기능

신규: 시퀀서 개선

image alt text

시퀀서의 기능, 안정성, 사용 편의성이 크게 개선되어, 여러분의 이야기 그대로를 사용자들이 경험할 수 있도록 제작하는 작업도 게임을 즐기듯 할 수 있습니다.

자동 키 설정

자동 키 설정 기능을 하나의 토글 상태로 단순화시켜 사용 편의성과 명확성이 향상되었습니다.

image alt text

시퀀서 편집 vs 레벨 편집

시퀀서에 새로 생긴 토글 옵션으로 프로퍼티 변경사항을 단일 샷에 적용할지 다른 샷에도 전파시킬지 하는 부분을 확실하게 할 수 있어 작업 분할이 수월해집니다. Allow Sequencer Edits Only (시퀀서 편집만 허용) 옵션을 켜면, 프로퍼티를 편집할 때 트랙 및/또는 키프레임이 존재하지 않는 경우 자동으로 생성합니다. 이러한 편집 내용은 작업중인 특정 샷에만 적용되며 다른 샷에 영향을 주지 않습니다. Allow Level Edits Only (레벨 편집만 허용) 옵션이 켜지면, 오브젝트의 기본 프로퍼티를 편집하게 됩니다. 시퀀서에 이미 트랙이 있는 프로퍼티는 모든 샷에 영향을 주는 전체 변경 작업을 하고자 할 경우 디테일 패널에 비활성화됩니다.

image alt text

추가적인 개선사항

  • 액터에 붙은 오디오 섹션의 어테뉴에이션(감쇠) 세팅이 생겼습니다.
  • 어태치 섹션의 붙이고 떼는 규칙을 지정할 수 있습니다.
  • 레벨 시퀀서 플레이어에 시네마틱 옵션을 추가했습니다.
  • 벡터, 트랜스폼, 컬러 키 프로퍼티 에디터에 Key Time 을 추가했습니다.
  • 다음/예전 샷으로 한 단계씩 이동(step)하는 단축키가 생겼습니다 (Shift + 쉼표, Shift + 마침표).
  • 스크럽 이동으로 키에 스냅할 때 이제 허용치 밖으로의 스크럽 이동도 허용됩니다.
  • 이제 에디터 개인설정의 세팅을 사용하면 시퀀서로 전환할 때 실시간 뷰포트를 활성화시킬 수 있습니다.

버그 픽스

  • 키 설정이 크게 바뀌었습니다.
  • 픽스 - 스폰 해제/리스폰 시 스포너블 상태/프로퍼티가 저장/복원되지 않던 것을 고쳤습니다.
  • 픽스 - 필터링을 할 때 시퀀서 아웃라이너가 노드를 추가하던 것을 고쳤습니다.
  • 픽스 - 레벨 시퀀스 비동기 로드가 수정되었습니다.
  • 픽스 - 자동 키 기능이 (제대로 복원하기 위해 필요한) 키프레임 생성을 하지 않으면 프로퍼티 값을 저장하지 않던 것을 고쳤습니다.

시퀀서 월드 아웃라이너 통합

시퀀서가 이제 월드 아웃라이너와 더욱 유기적으로 통합되었습니다. 월드 아웃라이너에는 액터가 묶여있는 레벨 시퀀스가 무엇인지, 시퀀서가 스폰한 액터가 무엇인지 표시되므로, 한 곳에서 시퀀서에 묶인 모든 액터를 접근할 수 있습니다.

image alt text

시퀀서에서 블렌딩

이제 시퀀서에서 섹션을 블렌딩하여 부드러운 전환을 쉽게 만들 수 있습니다. 시퀀서의 여러 프로퍼티(2D/3D 트랜스폼, 벡터, 컬러, 플로트 등)에 대한 블렌딩이 가능합니다.

  • 지원되는 섹션 모두 이제 서로 겹칠 때 부드럽게 블렌딩되어 오브젝트에 적용되는 단일 값을 산출해 냅니다.
  • 같은 행에 겹치는 섹션은 이제 가능하면 한 쪽에서 다른 쪽으로 서서히 자동 보간됩니다.
  • 애니메이션 트랙 역시 이제 자동 보간됩니다.
  • 다수의 내장 이즈(ease) 함수를(선형, 다항, 지수형 이즈 인/아웃 등) 기본으로 사용 가능합니다. 또는, (BP 에서도 사용 가능한) IMovieSceneEasingFunction 인터페이스를 사용하여 별도의 커스텀 블렌드 함수를 구현하거나 커브 애셋을 지정할 수 있습니다.
  • 섹션 트랜스폼 작업은 이제 트랜스폼 나머지에 영향을 주지 않고 (위치+회전 같은) 어떤 식의 채널 조합에 대해서도 작업 가능합니다.

또한 블렌더블 프로퍼티에 새로운 블렌드 모드를 추가, 가중치 적용 절대적 / 상대적 / 더하기식 블렌딩이 가능합니다. 프로퍼티의 시작 값을 기준으로 한 프로퍼티 애니메이션이나, 절대 또는 상대 스페이스로/에서의 (컷씬 속으로 또는 컷씬 밖으로) 보간하는 등의 작업에 특히 유용합니다.

신규: 컴포셔 합성 플러그인 (얼리 액세스)

The Mill 및 General Motors 와 제휴하여 제작한 The Human Race GDC 2017 데모 에 이어, 언리얼 엔진 4.17 에 Composure (컴포셔) 엔진 플러그인이 새로 추가되었습니다. 복잡한 실시간 합성 파이프라인 제작을 쉽게 할 수 있도록 해주는 C++ / 블루프린트 프레임워크입니다.

유튜브에서 볼 수 있는 이 데모의 기술적 부분에 대한 GDC 강연에서, 언리얼 엔진 4 의 컴포셔 플러그인의 기반이 된 기술 관련 자세한 내용이 언급된 바 있습니다.

컴포셔의 기능적 특징은 다음과 같습니다:

  • 플레이어 컨트롤러와 텍스처 렌더 타겟 2D 사이의 바인딩을 엔진 기본 렌더링 파이프라인에서 프로젝트 전용 C++ / 블루프린트 구현 합성 플러그인 출력으로 대체하는 바인딩 메커니즘.
  • 포스트 무브 세팅 및 시퀀서 임포터가 지원됩니다.
  • 파라미터식 렌즈 디스토션: OpenCV 표준 카메라 교정 모델 에서 렌즈 디스토션 및 언디스토션에 대한 UV 디스플레이스먼트 맵을 생성합니다.
  • UVMap 패스 - UV 디스플레이스먼트 맵과 UV 행렬에 따라 텍스처에 디스토션을 적용하는 패스이며, 커스텀 머티리얼을 적용할 수도 있을 만큼 유연합니다.
  • 독립형 블룸 패스로 에지 라이트 랩과 같은 합성 이펙트 재현이 가능합니다.
  • 엔진 톤매퍼 독립 패스가 지원됩니다.
  • 색 보정(Color correction) C++, 블루프린트, 머티리얼 API 가 지원됩니다.
  • 색수차(Chromatic aberration) C++, 블루프린트, 머티리얼 API 가 지원됩니다.
  • 단순 합성 사용 예를 위한 블루프린트 헬퍼가 제공됩니다.
  • 샘플 프로젝트가 포함됩니다.

이에 따른 엔진의 기능적 특징은 다음과 같습니다:

  • 엔진 포스트 프로세싱 체인에 알파 채널이 실험단계로 지원됩니다: 원형 DOF, 템포럴 AA, 모션 블러, 블룸 등.
  • 컴포셔의 포스트 무브 모션 블러 지원을 위해 씬 캡처에 투영 행렬 기반 모션 블러가 지원됩니다.
  • 블루프린트 캔버스 드로잉 API 에 포스트 프로세스 머티리얼 도메인 및 그 알파 채널 출력이 지원됩니다.
  • 블루프린트 에디터에서 씬 캡처의 표시 플래그 편집이 지원됩니다.

신규: 이미지 플레이트 액터 및 시퀀서 (실험단계)

새로운 (실험단계) 이미지 플레이트(Image Plate) 액터를 카메라에 붙이면 프레임 단위로 정확한 이미지 시퀀스를 전체화면으로 표시하는 것이 가능합니다.

시퀀서에 같이 들어있는 트랙은 그런 이미지를 블루프린트 또는 C++ 구현 합성 파이프라인의 입력같은 텍스처 프로퍼티에 스트리밍해 주어, 에디터에서 플레이를 통해 재생할 때나 번아웃을 생성할 때 프레임 단위 정확성을 확보할 수 있습니다. 이미지 플레이트 액터와 시퀀서 트랙 모두 이미지 플레이트 플러그인에 포함된 부분입니다.

신규: 플러그인에 글로벌 셰이더 지원

이제 플러그인 및 프로젝트 안에 새로운 글로벌 셰이더를 추가할 수 있습니다! 셰이더 컴파일러와 셰이더 디렉토리 파일 구조 변화에 대한 이점을 활용하면, 플러그인 및 프로젝트에서 별도의 셰이더를 제공할 수 있습니다. 단순한 예제로 LensDistortion (Engine/Plugins/Compositing/LensDistortion) 플러그인을 살펴보시기 바랍니다.

주:

  • 글로벌 셰이더를 가진 플러그인 및 프로젝트 모듈은 PostConfigInit 로딩 페이즈를 사용해야 합니다.
  • 플러그인 및 프로젝트의 셰이더 지원은 아직 실험단계입니다.
  • 플러그인 및 프로젝트는 다른 플러그인의 Public 디렉토리에 있는 USH 파일을 자유롭게 포함할 수 있습니다. 플러그인 제작자는 플러그인간 종속성 처리를 제대로 할 책임이 있습니다.
  • USF 파일은 Private 디렉토리에만 있어야 합니다.
  • IMPLEMENT_SHADER_TYPE 에 대한 모든 호출은 이제 UDF 셰이더 파일 전체 경로를 (예: "/Engine/Private/Foo.usf" 또는 "/Plugin/FooBar/Private/MyComputeShader.usf") 포함해야 합니다.
  • C++ Generated 파일은 /Engine/Generated/ 가상 디렉토리에 매핑시켜야 합니다.
  • Shaders/ 디렉토리는 최소 하나의 Private/ 또는 Public/ 디렉토리가 필요합니다. Generated/ 디렉토리가 존재해서는 안됩니다.

셰이더 디렉토리 파일 구조

셰이더 파일은 확장자가 USF 와 새로운 USH 로 나뉘었습니다. USH 파일은 셰이더 엔트리 포인트를 포함하지 않아 다른 셰이더 파일에서 포함시켜야만 하는 헤더 파일에 사용되는 반면, USF 파일은 셰이더 엔트리 포인트가 있어 포함 가능하지 않은 파일에 대해서만 쓰입니다.

추가적으로, 셰이더 파일은 Public 과 Private 폴더로 나뉩니다. 엔진 소스 코드와 마찬가지로, 공용 API 는 Public 폴더 아래 파일에, 구현은 Private 폴더에 배치해야 합니다.

주: 셰이더 API 는 엔진 주요 버전 릴리즈 시 크게 바뀔 수 있습니다.

신규: 플러그인 사이 종속성

플러그인은 이제 엔진에서 사용하게 될 다른 플러그인에 대한 종속성을 선언하여 추가 플러그인을 자동으로 활성화시켜 로드하도록 할 수 있습니다. 종속성은 .uproject 파일과 같은 문법으로 .uplugin 에 나열하면 됩니다.

신규: 벤트 노멀 맵 및 리플렉션 오클루전

벤트 노멀이란 앰비언트 오클루전(AO) 계산 시 활용할 수 있는 부가 정보입니다. AO 는 지오메트리에 닿지 않는 셰이딩 지점 주변 반구에 복사된 광선의 백분율입니다. 다른 말로, 차폐되(가려지)지 않은 환경광의 양을 뜻합니다. 가려지지 않은 환경광의 평균 방향도 알아낼 수 있습니다. 최적의 퀄리티를 내면서 UE4 의 가정에 일치하도록 하기 위해서는 이 두 가지 맵 모두 선택한 패키지의 코사인 분포를 사용하여 계산해야 합니다. 머티리얼에서 Bent Normal 출력 노드를 사용하여 이 맵을 사용합니다.

이 정보가 있으면 간접광 개선을 위한 여러가지 작업이 가능합니다. AO 와 함께 벤트 노멀을 사용하면 디퓨즈 간접광을 개선시켜 글로벌 일루미네이션(GI)에 근접해 보이도록 만들 수 있습니다. 벤트 노멀은 간접광에 노멀 대신 사용됩니다. 여기에 디테일 노멀이 사라지지 않도록 하기 위한 약간의 마법같은 부가 효과를 더한 것 이외에 나머지 개념은 똑같습니다. 보통 가장 큰 영향을 주는 부분이라면 빛샘 현상을 줄이는 것입니다.

전통적인 방식에서는 살짝 벗어나지만, 이 정보를 활용하는 또 한가지 강력한 방식이 있는데, 바로 리플렉션 오클루전 입니다. AO 는 디퓨즈 간접광의 오클루전에 쓰이는 반면, 리플렉션 오클루전은 스페큘러 간접광의 오클루전에 쓰입니다. 작동 원리는 스페큘러 로브와 가시 원뿔(visible cone, 즉 벤트 노멀을 원뿔 축으로 하고 AO 양을 원뿔 각도로 하여 반구의 가려지지 않은 부분을 나타내는 원뿔)을 교차시킵니다. 그러면 스페큘러 라이트의 빛샘 현상을, 특히나 SSR 데이터를 사용할 수 없는 경우 특히 더 줄일 수 있습니다.

마지막으로 오클루전에 다중 반사(bounce) 추정 기법을 추가했습니다. 첫 번째 반사에 대한 섀도잉에 AO 또는 리플렉션 오클루전이 아닌, 다중 반사의 결과가 어떠할지에 대한 추정치를 사용하는 것입니다. 밝은 머티리얼은 덜 어두워지고 컬러 머티리얼은 채도가 높아집니다.

image alt text

image alt text

AO

다중 반사

신규: Xbox One X 지원

Xbox One X 게임 개발을 위한 초기 지원이 추가되었습니다!

image alt text

Xbox One X 용 개발에는 별도의 빌드 플랫폼이 필요치 않습니다. Xbox One 용으로 컴파일하는 것으로 충분하며, Xbox One 용으로 쿠킹된 데이터는 Xbox One X 에서도 작동할 것입니다.

신규: Oculus, Vive, PSVR 용 VR 관람자 화면 지원

언리얼 엔진 4.17 에 Spectator Screen (관람자 화면) 기능이 지원됩니다. Oculus 와 HTC Vive 가 새로 지원되며, PSVR 은 기존에 지원되던 부분이 향상되었습니다!

관람자 화면은 VR 디바이스에 연결하는 '보통' 출력 디바이스를 말하며, 일반적으로 TV 또는 컴퓨터 모니터가 됩니다. 플레이어 한 명이 HMD 를 사용하는 도중 다른 사람들도 그 체험을 관람 또는 접할 수 있습니다.

GhostPaint 에서 작업중인 VR 플레이어를 보여주는 관람자 화면 뷰입니다. Video by Shane Caudle | GhostPaint.com

이제 관람자 화면에는 렌더 타겟이나 UI 를 포함한 어떤 텍스처 뿐만 아니라 (또는 대신) VR 에 표시되고 있는 뷰를 표시할 수도 있습니다. 단순한 레이아웃 시스템이 블루프린트에 노출되어 있습니다. 이제 모든 플랫폼에서 대부분의 디버그 모드를 사용할 수 있습니다.

프로젝트에서 VR 관람자 화면을 지원하는 방법은 가상현실 관람자 화면 문서를 참고하세요.

신규: ARKit 지원 (실험단계)

언리얼 엔진 4.17 에 iOS 용 ARKit 의 초기 실험단계 버전이 지원됩니다! 이 플러그인은 Apple WWDC 프레스 컨퍼런스 무대에서 선보인 바 있던 Wingut 팀의 작품을 기반으로 한 것입니다. 개발자 여러분께서는 올해 말 Apple iOS 11 의 공식 지원에 앞서 이 새로운 피처 세트를 시험해 보실 수 있습니다.

참고로 이 기능은 실험단계이며, API 와 인터페이스가 바뀔 수 있습니다.

신규: 애셋 관리 프레임워크 사용 준비 완료

4.16 에 얼리 액세스 기능으로 처음 도입된 애셋 매니저 기능이 이제 블루프린트 접근이 가능하며, 제작 단계에서 사용할 준비가 완료되었습니다! 애셋 매니저는 에디터나 런타임에 게임 전용 애셋 유형 및 맵을 발견, 로드, 검사하는 데 사용되는 글로벌 오브젝트입니다. 제공되는 프레임워크를 통해 퀘스트, 무기, 영웅 등의 생성 및 요청 시 로드 작업을 쉽게 할 수 있으며, 게임 패키징 및 릴리즈 시 쿠킹 및 청킹 규칙을 구성하는 데도 사용할 수 있습니다. 프로젝트 세팅의 애셋 매니저 탭에서 게임의 규칙을 설정할 수 있습니다:

image alt text

애셋 매니저가 검색한 Primary Asset Types (주요 애셋 유형)은 로드하기 전에도 런타임에 쿼리 후, 요청 시 비동기 로드할 수 있습니다. 애셋 매니저를 사용하려면, 네이티브 (게임에 맞게 서브클래스 확장도 가능한) UAssetManager 클래스에서 함수를 호출하거나, 블루프린트 Asset Manager 카테고리에서 Async Load Primary Asset 블루프린트 함수를 호출하면 됩니다.

신규: 블루프린트의 애셋 레지스트리

블루프린트에서 이제 애셋 레지스트리를 사용하여 애셋 관련 정보를 빠르게 찾을 수 있습니다!

image alt text

신규: 비동기 PhysX 쿠킹 지원

PhysX 콜리전 데이터 쿠킹을 이제 워커 스레드에서 할 수 있습니다. 런타임에 하는 경우 좋습니다. ProceduralMeshComponent 가 옵션을 통해 이 기능을 활용할 수 있도록 수정했습니다. 그러면 다수의 ProceduralMeshComponent 가 게임 스레드 외부에서 병렬 처리되어, 런타임에 순간 과부하 현상을 피할 수 있습니다.

신규: 모바일 지원 런타임 PhysX 쿠킹 플러그인

이제 모든 플랫폼에서 엔진 디파인/리컴파일 필요 없이 플러그인을 통해 PhysX 콜리전 데이터의 런타임 쿠킹을 켜고 끌 수 있습니다.

신규: 피직스 최적화

이제 PhysX 태스크 일괄 처리를 통해 과부하가 줄어듭니다. p.BatchPhysXTasksSize 로 조정할 수 있습니다. 일괄 처리 크기를 키우면 태스크 당 부하가 줄어드는 대신 병렬 처리 이득도 줄어듭니다. 이 부분의 균형은 게임에서 벌어지는 다른 작업에 따라 맞춰야 합니다.

신규: 투 본 IK 개선

이제 Two Bone IK 로 제어되는 조인트에 보다 미세한 조정이 가능합니다. 새로 생긴 'AllowTwist' (트위스트 허용) 옵션으로 중간 조인트의 트위스트 여부를 조절할 수 있습니다. 기계 팔과 같은 것에 특히나 유용하게 쓰일 수 있습니다.

 

image alt text

image alt text

트위스트 허용 꺼짐

트위스트 허용 켜짐

'Maintain Effector Relative Rotation' (이펙터 상대 회전 유지) 옵션 수정 및 'Enable Debug Draw' (디버그 드로 활성화) 옵션도 새로 추가했습니다:

image alt text

신규: 애니메이션 블루프린트의 Make Dynamic Additive 노드

애니메이션 블루프린트에 새로 생긴 Make Dynamic Additive 노드는 베이스와 타겟 포즈를 입력으로 받아 평가 도중 애디티브 포즈를 생성합니다.

신규: 애니메이션 블루프린트 라이브 편집 (실험단계)

애니메이션 블루프린트가 이제 에디터에서 플레이 도중 라이브 편집 및 리컴파일 가능하여, 반복처리 시간이 훨씬 빨라집니다.

레벨에서 디버깅할 애니메이션 블루프린트 인스턴스를 선택하면 이제, 애니메이션 블루프린트 에디터 뷰포트가 해당 인스턴스에 '연결'되어 그 인스턴스의 애니메이션 상태 미러가 표시됩니다.

신규: 클로딩 툴 (실험단계/얼리 액세스)

  • 클로딩 페인트 툴 프레임워크 리팩터링 작업을 통해 에디터 확장성을 높였습니다.
  • 클로딩 피직스 애셋이 한 번 추출하는 대신 레퍼런싱을 하도록 변경, 생성 이후 수정해도 클로딩 시뮬레이션에 수정 내용이 제대로 반영되도록 했습니다.
  • 클로딩 '마스크' 지원
    • 마스크는 클로딩 버텍스 파라미터에 직접 칠하는 것 이외의 간접적인 방식입니다. 다중 마스크를 정의한 뒤 여러 환경설정을 테스트하면서 개발 도중 교체하는 것이 가능합니다.
  • 클로스 페인터에 대한 툴 프레임워크 작업을 재정비했습니다.
    • 스무드 클로딩 페인트 툴을 추가했습니다.
    • 채우기 클로딩 페인트 툴을 추가했습니다.
    • 클로딩 탭에 클로딩 환경설정 편집 패널을 추가하여 '애셋 디테일' 탭을 오가지 않아도 됩니다.

신규: 본 제거 시 포즈 굽기

이제 스켈레탈 메시 LOD 의 버텍스 리스킨 작업에 쓸애니메이티드 포즈를 지정하여, 그 원래 본을 가장 가까운 부모 본에 가중치 설정하는 대신 제거하도록 할 수 있습니다.

image alt text

신규: CopyPose 를 사용한 프리뷰 '부가 메시'

애니메이션 툴에서, 모듈식 메시 미리보기용 '부가 메시' 기능이 'MasterPose' 대신 'Copy Pose' 노드를 사용합니다. 즉 스켈레톤을 공유하지 않고, 이름으로 본이 복사되는 메시를 지원하여 유연성이 높아졌다는 뜻입니다.

신규: 애님 애셋 브라우저의 폴더 필터

애니메이션 애셋 브라우저에서 이제 선택된 폴더 수에 따라 뷰 필터를 적용할 수 있습니다. 사용가능한 필터 수는 에디터 개인설정의 세팅으로 조절 가능합니다.

image alt text

신규: 메시 에디터 머티리얼 및 섹션 패널 개선

머티리얼 및 메시 섹션 편집 인터페이스가 간소화되어 아티스트의 메시 편집 생산성이 향상됩니다. 이 변화는 스태틱 메시 에디터와 스켈레탈 메시 에디터 양쪽에 적용됩니다.

 

image alt text

image alt text

머티리얼 슬롯 4.17

머티리얼 슬롯 4.16

LOD 컨트롤을 같은 패널에 합쳐 스크롤 필요성을 줄임으로써 아티스트가 한 번에 하나의 LOD 작업을 하면서 편집중인 LOD 를 뷰포트 LOD 와 동기화시킬 수 있게 되었습니다. 사용자가 편집중인 LOD 를 뷰포트에서 항상 볼 수 있도록 해줍니다.

신규: 머티리얼 굽기 개선 (실험단계)

스태틱 메시 인스턴스의 머티리얼을 구워내는 기능을 추가했습니다. 스태틱 메시 또는 스켈레탈 메시 애셋의 머티리얼을 구워내는 기능 지원을 실험단계 기능으로 추가하기도 했습니다.

주: 애셋의 머티리얼 굽기는 에디터 개인설정의 실험단계 부분 아래 Asset Material Baking (애셋 머티리얼 굽기) 세팅을 켜야 합니다.

신규: VR 모드 카메라 프리뷰

씬의 카메라, 또는 캐릭터처럼 카메라를 포함한 액터를 선택하면, 이제 그 카메라가 보는 월드 내 시야를 얻을 수 있습니다. 이 프리뷰는 데스크탑 카메라 프리뷰처럼 핀 고정시키거나 월드 내 다른 곳으로 패널 이동이 가능합니다.

신규: 스테레오 레이어 통합 교차 플랫폼

모든 VR 플랫폼이 이제 UE4 기본 에뮬레이션 구현을 통해, 별다른 설정 없이도 스테레오 레이어를 지원합니다!

이제 어느 플랫폼이든 관계 없이 스테레오 레이어를 사용할 수 있으며, 각 플랫폼마다 기본 기능이 다르지는 않을까 걱정할 필요가 없습니다. 레이어를 자사 API 핵심 개념으로 노출시키는 제조사들은 해당 구현 부분을 같은 인터페이스를 지원하도록 제조사의 API 전용 구현으로 대체할 수 있을 것입니다.

레이어 그리기 순서

모든 플랫폼에서 스테레오 레이어 순서 결정에 비슷한 작동방식을 제공하기 위해, 면 고정(face locked) 레이어는 우선권에 관계없이 항상 최상 위에 그리도록 변경했습니다. 면 고정 레이어는 종종 게임 UI 에 쓰이며, 보통 그렇게 하려 하기 때문입니다. 기존에 지원했던 플랫폼의 경우, vr.StereoLayers.bMixLayerPriorities 를 1 로 설정하여 예전 방식으로 돌아갈 수 있습니다.

신규: Daydream 용 다이렉트 멀티뷰 지원

이제 Daydream 플랫폼에 다이렉트 멀티뷰를 사용할 수 있습니다. 다이렉트 멀티뷰는 Daydream 컴포지터를 통해 전체 화면 사본을 제거하여, 이 기능의 퍼포먼스가 향상되고 메모리 사용량이 감소합니다.

신규: UE4 용 Google Tango 플러그인 (실험단계)

언리얼 엔진 4.17 에는 안드로이드용 Google Tango 프로젝트의 초기 실험단계 지원이 포함되어 있습니다. 이 플러그인은 6 축 모션 트래킹, 영역 학습, 환경 재구성, 기타 Google Tango 기능을 지원합니다.

주: 이 기능은 실험단계 기능으로 간주되며, 앞으로 나올 엔진 버전에서 API 와 인터페이스가 바뀔 수 있습니다.

신규: UMG / Slate 클리핑 2.0

Slate 에 새로운 클리핑 시스템이 도입되어 임의의 트랜스폼 값을 가진 복합 레이어 클리핑 쿼드를 제대로 지원합니다. 추가적으로 이제 위젯은 각각 자신의 자식 위젯을 클리핑할지 선택할 수 있습니다.

이 개선사항으로 인해 작동방식 상의 어쩔 수 없는 변화가 몇 가지 있었는데, 자세한 내용은 forum 게시물 을 참고하시기 바랍니다.

신규: 블루프린트 컴파일 매니저

새로 구현된 블루프린트 컴파일 매니저로 블루프린트 컴파일 시의 로드 시간이 40-50% 단축되었습니다! 오래 남아있던 컴파일 버그도 몇 가지 처리되었습니다. 자식 유형으로의 형변환 노드를 갖는 블루프린트에 잘못된 경고가 나던 것을 예로 들 수 있습니다.

주: 기존 프로젝트와 이슈가 생기는 경우 프로젝트 세팅에서 새로운 컴파일 매니저를 끌 수 있습니다.

신규: 블루프린트 프로퍼티 접근자

네이티브 멤버 변수는 이제 UProperty 마크업을 활용하여 UFunction 접근자(Accessor)를 통해 블루프린트에 노출시킬 수 있습니다. 심지어 그 프로퍼티가 BlueprintReadOnly 또는 BlueprintReadWrite 마크업을 사용하여 기존에 직접 노출시킨 적이 있는 경우에도 그렇습니다.

image alt text

신규: 고아 핀

새로운 고아(Orphan) 핀 기능을 추가, 핀 제거로 인해 원인불명 콘텐츠가 깨지는 현상을 피할 수 있습니다!

image alt text

사용중인 핀이 노드에서 제거될 때마다, 그 핀을 소리없이 사라지게 만들어 모든 연결을 끊는 대신, 핀을 고아로 유지해 두고 연결되어 있으면 오류를, 기본값이 아닌 입력 핀이면 경고를 냅니다.

신규: 소볼 블루프린트 및 머티리얼 노드

소볼(Sobol) 의사 난수열을 사용하여 지점 위치를 생성하는 노드를 다수 추가했습니다.

소볼 수열은 다수의 독립 차원 지점 생성이 가능합니다. Random Sobol Float 블루프린트 노드는 일차원 값이 나옵니다. 이를 합쳐 2D 또는 3D 분포를 만들 수 있습니다.

image alt text

Random Sobol Cell 2D 블루프린트는 2D 그리드 셀 형태로 2D 소볼 지점을 배치합니다. 각 셀에 들어가는 지점 수를 각기 다르게 하여 밀도를 제어할 수 있습니다. Sobol 머티리얼 노드는 Random Sobol 2D 블루프린트 노드와 같은 2D 지점 위치를 고정 256x256 셀 그리드로 제공해 줍니다. 위는 각 셀마다 가변적인 수의 나무가 배치된 예제로, 바닥의 머티리얼은 셀을 나타내고, 각 셀마다 처음 배치되는 나무 아래에는 점이 표시되어 있습니다.

Random Sobol Cell 3D 블루프린트 노드는 3D 그리드의 3D 지점에 대해 같은 역할을 합니다. 피라미드 내 각 셀에 네 개의 구체를 넣은 예제입니다.

image alt text

Temporal Sobol 머티리얼 노드는 각 픽셀 위치에서 다양한 2D 소볼 수열을 사용, 각 프레임마다 각기 다른 지점 세트를 순환하고 있습니다. 템포럴 안티앨리어싱(TAA)과 함께 여러 프레임에 걸쳐 블렌딩되도록 디자인된 이펙트를 만드는 데 좋습니다.

 

image_32.png

image_33.png

image_34.png

픽셀 당 1 샘플, TAA 없음

픽셀 당 4 샘플, TAA 없음

픽셀 당 4 샘플, TAA 있음

신규: 텍스처 기반 임포턴스 샘플링 블루프린트 노드

임포턴스 샘플링은 주어진 밀도 함수에 따라 지점을 배치합니다. 텍스처 기반으로 배치되는 유연한 2D 배치를 위한 블루프린트 노드를 추가했습니다. Make Importance Texture 블루프린트 노드는 사용할 텍스처를 처리하고, Importance Sample 블루프린트 노드는 제공된 밀도에 따라 지점 위치를 산출해 냅니다.

네 가지 다른 텍스처 휘도에 따라 구체를 배치하는 예제입니다. 첫 번째는 중앙의 높은 밀도가 외곽으로 가면서 서서히 낮아지고 있습니다. 두 번째는 중앙에서 균일하다 테두리 부분으로 가면서 밀도가 낮아지고 있습니다. 세 번째는 육각형 내 지점이 모두 균일합니다. 네 번째는 하양 고리 부분의 밀도가 높고, 빨강 고리 부분의 밀도가 낮습니다.

image alt text

아래는 빨강 하양 타겟 텍스처에 따라 여덟 개의 광원을 배치한 것입니다. 광원 크기와 색은 국소적 밀도에 비례합니다.

image alt text

신규: 안드로이드 툴체인 및 SDK 업데이트

안드로이드 툴체인이 이제 NDK 14b 를, NDK 15 는 실험단계로 지원합니다. Google Play Service 가 이번 릴리즈에서 필수 안드로이드 지원 라이브러리와 함께 9.8.0 으로 업그레이드되었습니다.

이번 릴리즈부터 실험단계 빌드 옵션으로 Gradle 이 지원됩니다. 안드로이드 프로젝트 세팅에서 "Enable Gradle instead of Ant [Experimental]" 체크박스를 통해 프로젝트별로 활성화시킬 수 있습니다. 자세한 정보는 forum 게시물 을 확인하세요.

이번 릴리즈에서 Gradle 관련 이슈를 겪으신 경우 알려주시기 바랍니다. Ant 는 Google 에서 더이상 지원하지 않으므로 지원하지 않을 계획입니다.

신규: iOS 및 안드로이드 모바일 실행파일 크기 감소

안드로이드 shipping 빌드에 대해 -ICF 플래그를 활성화시켰습니다. 엔진의 .so 크기가 약 5 MB 감소되어, 80 MB 에서 약 75 MB 가 되었습니다. 이는 미압축 기준이며, .apk 파일 내 압축의 경우 그 차이는 24.8 MB vs 23.6 MB 입니다.

이제 iOS 에서 기본적으로 ObjectiveC 에 대한 예외를 비활성화시켜, 실행파일 크기가 약 6.5 MB 감소되었습니다. 최적화된 shipping 빌드 크기는 52 MB 에서 46 MB 로 감소됩니다.

iOS 빌드의 경우 강제 코드 인라인 기능을 비활성화시키는 옵션도 추가했습니다. 크기 최적화와 같이 할 때 궁합이 가장 좋으며, 추가적으로 약 2.5 MB 정도 감소 효과가 있습니다. 즉 크기 최적화된 shipping 빌드의 경우 45 MB 에서 37 MB 까지 감소됩니다.

4.18 에서도 추가적인 실행파일 크기 감소 소식이 있을 것입니다.

신규: 모바일 독립 반투명

"Mobile Separate Translucency" (모바일 독립 반투명) 마킹된 반투명 오브젝트는 블룸 및 뎁스 오브 필드 이후 독립적으로 렌더링됩니다.

이 옵션은 머티리얼 에디터의 Translucency (반투명) 섹션에서 찾을 수 있습니다. 독립 반투명은 MobileHDR 옵션은 켜고 MSAA 옵션은 꺼야 합니다. 그렇지 않으면 보통 반투명으로 렌더링됩니다.

image alt text

신규: 고사양 안드로이드의 sRGB

OpenGL ES3.1 또는 Vulkan 으로 빌드된 안드로이드 어플리케이션은 이제 에뮬레이션이 아닌 네이티브 sRGB 샘플링을 사용합니다. 디바이스에서 보다 나은 텍스처 색 인지 해상도를 기대할 수 있습니다.

신규: 안드로이드 울트라 와이드 종횡비 지원

image alt text

언리얼 엔진 4.17 에는 울트라 와이드 종횡비가 지원, 삼성 갤럭시 S8 과 같은 넓은 화면을 지원합니다.

기본적으로 지원되는 최대 화면 종횡비는 2.1 (폭 / 높이) 입니다. 안드로이드는 종횡비가 더 큰 디바이스에서 어플리케이션에 자동으로 레터박스를 적용합니다. 기본 종횡비는 프로젝트 세팅의 안드로이드 섹션에서 바꿀 수 있습니다.

신규: PVS-Studio 정적 분석

이제 UE4 에 (별도로 사용 가능한) PVS-Studio 정적 분석이 지원됩니다. PVS-Studio 정적 분석을 사용하려면, UnrealBuildTool 명령줄에 -StaticAnalyzer=PVSStudio 를 붙이면 됩니다.

PVS-Studio 관련 자세한 정보는 블로그 게시물 을 참고하세요.

신규: 신규 플랫폼 다수에 언리얼 오디오 지원 (얼리 액세스)

이제 안드로이드에 새로운 언리얼 오디오 시스템이 지원, 퍼포먼스가 향상되고 소리 끊어짐 현상이 수정되었습니다. 뿐만 아니라 PlayStation 4, Xbox One, iOS, Mac OS 도 지원됩니다. 언리얼 오디오는 아직 얼리 액세스 단계이며, 버그가 있을 수 있고 앞으로 나올 버전에 변경될 수 있으니 유의해 주시기 바랍니다.

신규: 오디오 스트리밍 기능 실험단계 탈피

언리얼 엔진의 오디오 스트리밍 기능이 '실험단계' 딱지를 떼고, 이번 릴리즈에 픽스가 다수 포함되었습니다.

릴리즈 노트 세부 내역은 문서 원문 을 참고해 주시기 바랍니다.

최근 게시글

Chris Murray와 Craig Barr가 함께 하는 두번째 제품 디자인 시각화 웨비나

Chris와 Craig는 다양한 CAD 시스템의 애셋들을 활용해, 언리얼 엔진이 리얼타임 시각화 및 상호작용의 위력을 모든 분야의

...

언리얼 데브 데이 몬트리올 프레젠테이션 공개

에픽게임즈의 숙련된 개발자들은 최근 첫번째 언리얼 데브 데이 몬트리올에서 최고의 실습과 고급 기술을 공유하는 자리를 가졌

...

Hello Neighbor 모드킷 공개 및 모드 콘테스트 발표

tinyBuild는 오늘 Hello Neighbor의 모드킷을 공개해, 모드 제작자들이 이 게임의 새 콘텐츠를 제작할 수 있게 했

...