2014년 7월 16일

언리얼 엔진 4.3 릴리즈!

저자: * Ian Shadden

언리얼 엔진 4.3 에는 크게 개선된 모바일 지원, 놀라운 신규 렌더링 기능, 향상된 블루프린트 작업방식, 맥과 랩탑 사용감에 있어서의 장족의 발전 내용이 포함되어 있습니다. 새로운 월드 컴포지션 툴, 스플라인 기능, 2D 툴세트 Paper2D 프리뷰를 확인해 보세요! 오늘부로 SpeedTree 7 지원, iOS 8 용 Metal API 최신 작업내용, 타임 워프같은 Oculus Rift 신기능도 선보입니다.

4.3 릴리즈에 코드를 기여해 주신 멋진 개발자분들 모두에게 감사의 마음을 전합니다.

3dluvr, abergmeier, alixSilkin, Allegorithmic, bigzer, Chris-Bond, CoherentUE4, EverNewJoy, Ixiguis, mpolaczyk, pzurita, raziel2001au, robert-wallis, RushPL, solid-angle, stephenwhittle, thk123, timdonkssbc100, vakathil, Xaklse, Zoubi

신기능

렌더링

신규: 무버블 스카이라이트

이제 스카이라이트에 무버블 모빌리티 세팅이 지원됩니다!

  • 이 라이트 유형은 동적인 씬 변화를 지원합니다.
  • SSAO 와 디스턴스 필드 AO 라는 신기능으로부터 그림자를 받습니다.
신규: 디스턴스 필드 앰비언트 오클루전

이 기능은 씬의 스태틱 메시를 표현하는 데 사용되는 Signed Distance Fields (부호화 디스턴스 필드)로부터 AO 를 계산하는 기능입니다. 실행시간에 스태틱 메시를 이동시켜도 AO 업데이트가 가능합니다.

원본:

Distance Field Example Original

디스턴스 필드 AO 적용:

Distance Field AO

신규: 스카이라이트 글로벌 일루미네이션

스테이셔너리 / 스태틱 스카이라이트에 대한 글로벌 일루미네이션을 라이트매스가 계산합니다!

원본:

Zen Gardens

글로벌 일루미네이션 적용:

Zen Gardens With Global Illumination

  • 스카이 라이트의 Indirect Lighting Intensity (간접광 명도)를 사용하여 반사광의 밝기를 조절할 수 있습니다.
  • 모든 스테이셔너리 라이트와 마찬가지로 실행시간에 색이나 명도를 변경하면 직사광에만 적용되는데, 반사광은 라이트맵에 구워지기 때문입니다.
신규: 스테이셔너리 라이트에서의 반투명 그림자

스테이셔너리 라이트가 이제 반투명 머티리얼 그림자를 제대로 처리합니다!

원본:

Transluceny shadow original

반투명에 대한 스태틱 섀도잉:

Static Shadowing for Translucency

  • 라이트의 영향력을 다루는 라이트매스 내 섀도우 뎁스 맵을 계산하여 이루어낸 것입니다.

2D 게임 툴 프리뷰

Paper2D 플러그인이 엔진에 기본으로 활성화되어, 4.3 에서는 콘텐츠 전용 게임에 사용할 수 있을 것입니다.

2D 횡스크롤 게임 템플릿도 추가되었습니다! (블루프린트 및 C++ 버전)

Paper2D Scroller Template

Paper2D in Editor

4.3 의 Paper2D 상태에 대한 적절한 메시지가 에디터 및 문서에 적용되었습니다.

  • 스프라이트와 플립북은 '베타', 즉 초기 접근 단계입니다.
  • 2D 콜리전/피직스, 터레인 스플라인, 아틀라싱 그룹, 타일 맵은 'Experimental', 실험단계 입니다 (숨겨져 있으며, 가능한 경우 플래그로 활성화시킬 수 있습니다).

AI 툴: 비헤이비어 트리

비헤이비어 트리 에디터에서의 블랙보드 편집 & 디버깅

이제 비헤이비어 트리 에디터 안에서 블랙보드 항목을 편집 및 디버깅할 수 있습니다. 새로운 '블랙보드' 모드로 전환하면 블랙보드 에디터를 열 수 있습니다:

Blackboard mode

거기서 키를 추가하여 블루프린트 변수화 비슷한 방식으로 블랙보드를 편집할 수 있습니다:

Editing Blackboard

단축키 & 우클릭 맥락 메뉴로 키 제거 및 이름변경도 가능합니다.

디버깅시 블랙보드 값이 표시되어 조사할 수 있습니다. 전과 마찬가지로 여전히 현재 및 (기존) 저장된 디버깅 맥락간의 전환이 가능합니다:

Switch to Current or Saved Blackboards

블랙보드는 비헤이비어 트리 모드에도 표시되어 빠르게 참고할 수 있습니다:

Blackboard TreeMode

신규: "새 노드" 단축키

비헤이비어 트리 에디터의 툴바에 버튼을 새로 추가할 수 있는 기능이 생겨, 사용자가 태스크, 데코레이터, 서비스에 대한 새 블루프린트 노드 유형을 빠르게 만들 수 있습니다:

New Mode Shortcuts

  • 이 새 노드에 대한 블루프린트는 현재 편집된 비헤이비어 트리 위치에 생성됩니다. 노드를 생성해 낼 수 있는 클래스 후보가 둘 이상 되는 경우, 드롭다운 버튼이 나타나 클래스를 선택할 수 있습니다.
신규: Oculus Rift 업그레이드
  • 최신 내용을 포함해서 Oculus SDK (0.3.3-pre.1 SDK) 로 업그레이드했습니다!
  • 풀 모션 트래킹 포함 Oculus Rift DK2 가 바로 지원됩니다.
  • 새로운 직접 렌더링 패쓰와 타임 워프로, 디바이스의 반응 지연시간을 획기적으로 줄여줍니다.
  • Oculus Rift DK2 의 성능 시연을 위해 제작된 "Couch Knights" 샘플을 확인해 보세요.

Couch Knights

신규: SpeedTree 7 지원

이제 SpeedTree (스피드트리) 애셋을 언리얼 엔진에 임포트할 수 있습니다!

SpeedTree 7

SpeedTree 나무와 식물 모두 라이트맵 UV, 다이내믹 LOD, 바람 이펙트를 포함합니다. 새 버전을 내려받으시는 분들은 여러가지 옵션이 있습니다:

  • 언리얼 엔진 4 멤버쉽 라이선스용 SpeedTree 는 윈도우와 맥 OS X 에서 매달 미화 $19 에 사용하실 수 있습니다. 로열티는 없으며, 타이틀별 또는 플랫폼별 요금이 적용됩니다.
  • 나무 세일중 - 계절에 따른 변종, 다양한 트라이앵글 갯수 버전이 지원됩니다.
  • 무료 샘플 나무를 UE 4.3 프로젝트에 세 개까지 드롭할 수 있습니다.
  • 이 모든 것은 SpeedTree Website 에서 받을 수 있습니다.

SpeedTree 7 Demo

대규모 월드 지원

신규: 월드 컴포지션

서브 레벨을 만들어 이 맵 어디에든 위치시킬 수 있습니다. 게임에서 자동 로드됩니다.

Level Composition

  • 레벨의 World Settings, 월드 세팅에서 Enable World Composition, 월드 컴포지션 켜기를 체크하여 이 기능을 활성화시킵니다 (먼저 레벨을 저장한 상태여야 합니다).
  • 레벨 브라우저 툴바의 미니맵 버튼을 사용하여 월드 맵에 접근할 수 있습니다.
    Level Browser
  • 문서와 샘플 게임을 준비중입니다.
  • 이 기능은 초기 빌드의 실험단계 기능인 World Browser, 월드 브라우저를 대체합니다.
레벨 브라우저 리디자인

창 메뉴를 통해 접근할 수 있는 Level Browser , 레벨 브라우저가 4.3 에서 크게 개선되었습니다.

Level Browser Redesign

  • 모든 (새로 생성, 저장, 다른 이름으로 저장, 추가, 병합 등) 파일 작업이 맥락 메뉴에서 툴바 버튼 레벨 로 이동되었습니다.
  • 상태 바에 뷰 옵션이 새로 생겼습니다: 각 레벨별 액터 수 표시풀 패키지 이름 표시 입니다.
  • 레벨 트랜스폼, 스트리밍 볼륨 관리 등 사용 빈도가 낮은 작업은 레벨 패널의 툴바에 있는 디테일 버튼을 클릭하여 띄울 수 있는 레벨 디테일 패널을 통해 가능합니다. 레벨 디테일 은 일반 디테일 패널과는 별개의 것으로, 선택된 레벨 디테일만 표시해 줍니다. 다중 선택도 지원합니다.
  • PIE레벨 패널에는 각 레벨의 시뮬레이션 상태가, 숨겨진 레벨은 표시여부 '눈' 아이콘이 닫혀서, 언로드된 레벨은 이름 색이 회색으로 표시됩니다.
  • 레벨을 블루프린트 그래프에 끌어놓으면 해당 레벨에 대한 GetStreamingLevel 노드가 생성됩니다.
  • 새로워진 레벨 툴에 무언가 빠져있거나 정상 작동하지 않는 경우 -oldlevels commandline 파라미터를 사용하여 구형 레벨 툴로 전환하면 됩니다.
신규: 렌더 투 텍스처 블루프린트

'RenderToTexture_LevelBP' 블루프린트로 새로운 텍스처 굽기 기능이 사용가능해 졌습니다. Engine\Content\ArtTools\ 디렉토리에 RenderToTexture_LevelBP 라는 이름의 블루프린트가 생겼습니다. 이 블루프린트에는 몇 가지 굽기 옵션이 제공됩니다.

사용법 관련 간략 노트:

  • RenderToTexture_LevelBP 위치는 월드의 0,0,0 이어야 합니다.
  • 플레이어 스타트도 월드의 0,0,0 위치에 로테이션도 0 이어야 하며, 그렇지 않으면 카메라는 에디터 뷰포트 로테이션을 받게 됩니다.
언래핑된 머티리얼을 텍스처에 렌더링

버텍스 셰이더를 사용해서 동반 머티리얼 함수를 가지고 언래핑합니다. World Aligned Textures 와 같은 결과를 구워내어 비용을 줄이거나 어떠한 이유로든 메시의 엔진 스태틱 라이트맵을 캡처하여 커스텀 작업을 하고자 할 때 좋습니다.

Unwrapped Material Textures

3D 임포스터 스프라이트 렌더링

임포스터(사칭자)는 3D 공간의 회전 및 라이팅이 가능하도록 모든 뷰 각도에서 표현된 스프라이트같은 것입니다.

Render 3D Imposter Sprites

임포스터 예제:

가운데 근처 메시 중 하나는 실제 스태틱 메시이고, 나머지는 임포스터 입니다.

Example Imposters

Single Rotation Axis, 단일 회전축이라는 모드도 지원하는데, 수평선상 원거리의 오브젝트에 대한 빌보드를 나타냅니다. 그 용도는 임포스터만 썼을 때보다 프레임이나 해상도를 높이기 위해 메시를 Z 축으로만 회전시키는 것입니다.

Single Rotation Axis

'단일 회전축' 임포스터를 사용한 테스트 씬입니다. 여기서 머티리얼은 월드 포지션을 사용하여 '플립북' 위치를 임의로 회전시키도록 설정, 각각 고유한 로테이션을 줍니다.

World Rotation

오브젝트별 섀도우 뎁스 텍스처 렌더링

이 모드는 지정된 라이트 뷰에서 뎁스 맵을 구워 머티리얼 안에서 오브젝트별 커스텀 섀도잉 작업을 하는 데 사용할 수 있습니다. 이 예제 나무 머티리얼은 라이팅제외 상태로 뎁스 텍스처에서 그림자를 얻고 있습니다. 애플의 젠 가든 데모에서 사용된 것입니다.

Render a Per Object Shadow Depth Texture

플립북 애니메이션

임포스터 스프라이트 기능과 매우 비슷한 모드입니다. 메시 로테이션 시리즈를 사용하지만 이번에는 블루프린트에 미리 설정된 대로가 아닌 사용자 입력으로 지정합니다.

원하는 이미지 유형을 플립북 텍스처로 렌더링하여, 파티클 이펙트처럼 엔진 내 어디든 스프라이트 애니메이션으로 적용할 수 있습니다.

Flipbook Animations

플립북에 버텍스 셰이더 애니메이션 렌더링을 위해 타겟 메시에 'Animation Phase' (애니메이션 페이즈) 파라미터를 전달하는 옵션도 있습니다.

Flipbook Animations

신규: 크레딧 (감사합니다!)

과거 및 앞으로 기여해 주시는 분들은 언리얼 에디터의 크레딧 화면에 영원히 함께할 것입니다. 대단히 감사합니다!"

Thank You Community Developers!

에디터에서 도움말 -> 크레딧 메뉴를 통해 새로운 크레딧 화면을 열어볼 수 있습니다.

블루프린트

신규: 스플라인 및 스플라인 메시 컴포넌트

이제 월드에서 바로 스플라인을 편집 할 수 있게 되었습니다! 블루프린트에 스플라인 컴포넌트 또는 스플라인 메시 컴포넌트 를 추가한 다음 해당 블루프린트의 인스턴스를 선택해 주기만 하면, 사용자는 레벨 안에서 스플라인을 편집할 수 있습니다.

Spline Mesh

Spline Mesh Component, 스플라인 메시 컴포넌트를 사용하여 스태틱 메시를 스플라인대로 변형시킬 수 있습니다. 디테일 패널에서 (또는 함수 호출을 통해) 시작과 끝 위치 및 탄젠트를 정의할 수 있습니다.

키를 클릭하면 선택됩니다.

  • 이동 위젯을 사용하여 이동시킵니다 ('탄젠트'는 기본적으로 자동 업데이트됩니다).
  • 키를 선택한 상태로 Alt-드래그 하면 새로운 키가 추가됩니다.

더욱 세밀한 제어가 필요하면:

  • 회전 위젯 으로 탄젠트를 회전시킵니다.
  • 스케일 위젯 으로 늘이거나 줄입니다.

키에 우클릭하여 맥락 메뉴를 확인할 수도 있습니다:

원한다면 AddSplineWorldPoint, SetSplineWorldPoints 함수를 사용하여 컨스트럭션 스크립트 안에서 스플라인을 구성할 수도 있습니다. 컨스트럭션 스크립트 안에서 이런 식으로 스플라인을 구성한다면, 블루프린트 디폴트에서 'Allow Spline Editing Per Instance' (인스턴스별 스플라인 편집 허용) 옵션을 꺼 줘야 합니다.

신규: Reroute 노드

이제 핀을 끌어 놓을 때 맥락 메뉴에 Reroute 노드 추가... 옵션이 나타납니다. 다른 것과 마찬가지로 Reroute 핀을 연결하거나, (주변을 드래그 또는 Ctrl + 드래그하여) 이동시키거나, Alt+클릭으로 제거할 수 있습니다.

아래 드래그 가능 영역에 더블클릭하거나 F2 키를 쳐서 Reroute 노드에 코멘트를 달 수도 있습니다.

Reroute Nodes

신규: 구조체 핀 분할

이제 사용자가 직접 Make / Break 노드를 삽입하지 않고도 구조체 핀을 그 자리에서 분할할 수 있게 되었습니다.

Split Struct Pins

이 기능은 어떤 구조체의 입력 핀이나 출력 핀에도 작동하며, 분할된 구조체에 또 구조체가 들어있는 경우, 마찬가지로 확장 가능합니다. 이 기능은 현재 실험단계 기능으로, 에디터 개인설정의 '실험단계' 부분에서 켜 줘야 합니다.

신규: 출력 핀에 대한 열거형 확장

이제 블루프린트 노드의 열거형 실행 핀을 확장시킬 수 있습니다. 입력 핀에는 얼마간 있었던 기능이나, 이제 출력 핀에도 가능하게 되었습니다:

Expand Enum for Output Pins

  • 이제 열거형을 생성한 다음, 함수에 대한 출력 파라미터를 하나 정하고, 그 출력 파라미터를 UFunction 메타데이터 (C++)에서 ExpandEnumAsExecs 으로 마킹하면 됩니다.
신규: 데이터 및 커브 테이블 지원

Evaluate Curve Table Row 는 XY 위치에 Row Name 에 대한 출력 값을 반환합니다:

Data and Curve Table Support

Get Data Table Row 는 개별 컴포넌트 변수들로 나눌 수 있는 Row 구조체를 반환합니다:

Get Data Tanble Row

신규: 블루프린트에서 애님 트레일 콘트롤

이제 애님 노티파이 없이도 블루프린트(와 코드)에서 '애님 트레일' 이미터를 제어할 수 있습니다.

  • 이 기능의 유일한 제한이라면 파티클 시스템 컴포넌트가 반드시 소켓 위치를 샘플링해 오려는 스켈레탈 메시 컴포넌트의 자손이어야 한다는 점입니다.
  • 컴포넌트의 Begin Trails 함수는 파티클 시스템 내 모든 애님 트레일 이미터를 시작시킵니다.

Blueprints Control of Anim Trails

  • 컴포넌트의 EndTrails 함수는 파티클 시스템의 모든 애님 트레일 이미터를 종료시킵니다.

EndTrails

  • 트레일 실행 도중 그 프로퍼티를 변경할 수도 있습니다. 여기서는 게임 시간을 사용해 매 틱마다 폭을 변경합니다.

Global Search

신규: 글로벌 블루프린트 검색

블루프린트에서 찾기 기능이 여러가지 기능 요청을 수용할 수 있도록 크게 개선되어 훨씬 안정되고 유용해 졌습니다.

검색이 전보다 훨씬 더 포괄적으로 바뀌어, 노드, 핀, 핀 값, 그래프, 변수, 변수 값은 물론 애니메이션 그래프까지 검색됩니다.

검색은 비동기식 프로세스라, 검색이 완료될 때까지 에디터 사용을 멈추고 기다릴 필요가 없으며, 동시에 다수의 블루프린트를 대상으로 복수의 검색도 가능합니다.

이제 블루프린트에서 찾기 기능은 검색가능 데이터에 DDC 를 활용합니다. 블루프린트가 업데이트되면 그 정보를 새로고쳐 다른 사용자가 그 블루프린트를 동기화시키면 다른 사용자는 접할 수 없습니다.

블루프린트가 시스템에 인덱싱되어있지 않으면, 아래 그림과같이 알려줄 것입니다:

Not Indexed in Blueprints

  • 주: 레벨 블루프린트 는 현재 레벨의 경우 문제없이 검색이 가능하긴 하지만, 완벽 지원되지는 않습니다.

Scalability(엔진 퀄리티) 업데이트

4.3 에서 에디터의 퍼포먼트와 CPU 사용량에 초점을 맞췄습니다.

  • 에디터 퍼포먼스 개선을 위해 이제 에디터 시작시 CPU 및 GPU 퍼포먼스를 측정하여 엔진 퀄리티 세팅을 자동 적용합니다.
    • 엔진 퀄리티 세팅으로 퍼포먼스 향상을 위해 일부 렌더링 세팅 퀄리티가 감소되고 뷰포트 실시간 미리보기 기능이 꺼질 수 있습니다. 적용 가능한 엔진 퀄리티 세팅 관련 상세 내용은 여기서 확인해 보실 수 있습니다.
    • 에디터에서 레벨 에디터 툴바의 퀵 세팅 메뉴를 통해 이 기능을 끄고 수동으로 엔진 퀄리티 세팅을 변경할 수 있습니다.

scalability Icon

Scalability in Editor

  • 에디터 최소화시 CPU 사용량이 현저히 감소했습니다.
  • 배터리로 작동하는 랩탑의 경우, 배터리 수명 보존을 위해 에디터 프레임 속도를 최대 60 hz 로 제한시킵니다.

스태틱 메시 에디터

신규: 커스터마이징 가능 스태틱 메시 콜리전

스태틱 메시 에디터는 이제 각기 다른 유형의 콜리전 프리미티브를 다수 추가하는 기능이 지원되어, 커스텀 콜리전 셋업을 빠르게 생성할 수 있음은 물론, 기존 콜리전을 수정하여 게임플레이에 영향을 끼치는 문제를 고칠 수 있습니다.

이를 통해 복잡한 지오메트리를 파헤치거나 가로지르기가 쉬워질 뿐만 아니라, 사용자가 못가게 하고픈 경우 장애물을 놓을 수도 있습니다. 예를 들어:

Static Mesh Example 1

Static Mesh example 2

스태틱 메시 에디터는 이제 캡슐/스필 콜리전 지오메트리도 지원합니다.

  • 어느 축에 평행을 맞추는 것이 옳은지, 메시에 가장 잘 맞는 것으로 계산을 시도합니다. 예를 들어:

Capsule/Sphyl Collision

  • 모든 콜리전 프리미티브는 마우스로 선택한 다음 (스페이스바 또는 W, E, R 키로 전환 가능한) 에디터 위젯으로 이동, 회전, 스케일 조절 가능합니다.
  • 또한 콜리전 프리미티브는 다중 선택 (Ctrl+LMB), 포커싱 (F 키), 복제 (Alt+드래그), 더이상 필요치 않으면 삭제 (delete 키) 까지도 가능하며, 모두 트랜잭션 기록됩니다.

릴리즈 노트

마켓플레이스

'블랙 잭'은 순전히 블루프린트로만 만들어졌으며, 모바일 지원됩니다!

BlackJack

학습 자료

  • 에디터내 튜토리얼
    • Paper2D 용 에디터내 튜토리얼 화면: 스프라이트와 플립북
  • SpeedTree 문서가 포함
  • Math 표현식 노드 문서 추가
  • 퍼포먼스 & 프로파일링 문서 추가
  • 월드 컴포지션 문서 추가
  • 마티네 트랙 참고서 추가
  • 안드로이드 퀵스타트 가이드 추가
  • 라이팅 문서 업데이트 & 개선
    • 라이팅 퀵스타트 가이드 추가
    • 디스턴스 필드 AO 정보 & 비디오 추가
  • 피직스 문서 업데이트 & 개선
    • PhAT
    • 콜리전
    • 보행가능 경사
  • 애니메이션 문서 업데이트 & 개선
    • 애님 노티파이 & 애님 트레일
    • FABRIK
    • 페르소나 애니메이션 에디터 모드
  • 에디터내 튜토리얼 홈 화면에 문서 / 비디오 튜토리얼 링크 추가
  • 캐스케이드 비디오 튜토리얼 시리즈 입문
  • UE4 프로그래밍 비디오 튜토리얼 시리즈 입문

언리얼 엔진 런처

  • 레이아웃 개선: 상단 내비게이션 요소들을 사이드바로 옮겨 오른편에 콘텐츠 표시를 위한 공간을 확보했습니다.
  • 라이브러리 도입: 라이브러리 탭을 클릭하면 모든 엔진, 프로젝트, 다운로드 콘텐츠에 대한 홈이 새로 뜹니다.
  • 저장소 도입: 저장소에는 마켓플레이스에서 다운로드한 모든 항목이 들어갑니다. 필요하면 저장소에서 새 프로젝트를 빠르게 만들 수도 있습니다. 저장소를 통해 이미 생성된 프로젝트에 영향을 끼칠 걱정 없이 저장소 항목을 쉽게 제거 또는 업데이트할 수 있습니다.
  • 에디터의 프리뷰 빌드 기능이 지원됩니다.
  • 사용자는 엔진 구버전이 아닌 최신 다운로드 버전을 보게 됩니다.
  • 4.3 에디터로 프로젝트 생성시 크래시가 날 수 있던 문제를 고쳤습니다.

신규 추가 사항

에디터 및 툴
  • 크레딧(제작진 목록)! 지금까지 커뮤니티에서 엔진을 만드는 데 기여한 모든 이들에 대한 크레딧 화면이 에디터에 생겼습니다.
  • 에디터에 낮은 FPS 감지 기능이 추가되었습니다.
  • '사용자 정의 구조체'의 기본값 편집을 위한 프로퍼티 에디터가 추가되었습니다.
  • '캐릭터 무브먼트 컴포넌트' 추가: 길을 따라가는 도중 동작 입력 & 외부의 힘을 가할 수 있습니다.
  • 브러시 와이어프레임 이동시 오브젝트 뒤에 있을 때는 반투명으로 렌더링됩니다.
  • 에디터에 '지원 플랫폼' 세팅이 추가되었습니다.
    • 여기서 프로젝트에 지원하려는 플랫폼을 나열할 수 있습니다.
  • '프로젝트에 코드 추가' 마법사 개선사항:
    • 클래스가 Public 또는 Private 이냐에 따라 통지받는 방식을 개선시켰습니다.
    • (빈 C++ 클래스, 슬레이트 위젯, 슬레이트 스타일 애셋 등) UObject 이외의 클래스 생성을 지원합니다.
    • (서브폴더 안에 클래스를 생성할 때의 문제 해결을 위해) 모듈 헤더가 이제 알려진 include 경로를 기준으로 include 됩니다.
  • Asset View, 애셋 뷰가 2차 소팅을 지원합니다.
  • 에디터의 Packaging, 패키징 세팅을 통해 부가 스테이징 디렉토리를 지정할 수 있습니다.
  • Alt+Shift+R 키를 누르면 레벨 에디터와 애셋 뷰어에 선택된 오브젝트에 대해 레퍼런스 뷰어를 띄웁니다.
  • 레퍼런스 뷰어 맥락 메뉴에 Edit Asset, 애셋 편집 옵션을 추가했습니다.
  • 캐스케이드의 랜덤 시트 세팅에 Randomly Select Seed Array, 시드 배열 임의 선택 기능을 추가했습니다.
  • Skeletal Mesh Component, 스켈레탈 메시 컴포넌트에 'local space cloth simulation', 로컬 스페이스 클로쓰 시뮬레이션 옵션을 추가했습니다.
  • 컨벡스 콜리전 볼륨에 대해 클로쓰 시각화를 추가했습니다.
  • 노드에 에디터 전용 아이콘 표시를 덮어쓸 수 있는 에디터 전용 함수를 추가했습니다.
  • 브러시에 고유 라벨이 생겼습니다.
  • 어느 노드가 로직에 블루프린트를 사용하는지 표시하는 블루프린트 아이콘을 추가했습니다.
  • 내 프로젝트 요청을 대기열 등록하고 처리는 매니저를 추가, 쿨다운도 추가했습니다. 이제 상태가 폴링됩니다.
  • 애셋을 삭제하면 모드 탭의 '최근 배치됨' 목록을 강제로 새로고칩니다.
  • 클로쓰에 시뮬레이션 위치와 스키닝 위치를 블렌딩하는 기능이 지원됩니다.
  • 클로쓰 버텍스/표면 시뮬레이션에서 파티클을 방출하는 기능이 지원됩니다.
  • 스켈레탈 메시의 LOD 패널이 스태틱 메시 LOD 같아 보이도록 단장했습니다.
  • 자동저장 개선 및 퍼포먼스 트윅:
    • 디스크에 .uasset 파일로 저장된 적이 없는 애셋 파일을 복원할 수 있게 되었습니다.
  • 직교 뷰에서 (보이는 프리미티브 컴포넌트의 바운드에 따라) 다른 종류의 액터를 범위 선택할 수 있게 되었습니다.
  • IES 루멘 디스플레이에 대한 썸네일 타일 크기에 따라 드롭 섀도우와 스케일을 조절하여 읽을 수 있도록 만들었습니다.
  • 비상호작용형 에디터내 튜토리얼이 다수의 페이지에 나뉘도록 했습니다.
  • 공통의 핀을 갖지 않은 프로퍼티 매트릭스에서 복사/붙여넣기해도 더이상 크래시가 나지 않습니다.
  • 유닛 그래프가 이미 켜지지 않은 경우에도 Raw / Unit Time 통계가 제대로 표시됩니다.
  • 색 선택기에서 테마 이름변경시 다른 것과 같은 이름으로 변경할 때 오류가 납니다.
  • 더이상 모든 콘텐츠 브라우저 위젯에 대해 소스 콘트롤 상태를 가져오지(fetch) 않도록 수정했습니다.
  • 세팅 에디터가 더이상 ini 파일의 읽기전용 상태에 영향받지 않도록 수정했습니다.
  • 개인설정에서 2 제곱수로 전환시 그리드 선이 올바르게 줌되도록 수정했습니다.
  • 현지화 세팅을 두 번 이상 접근할 때의 크래시를 고쳤습니다.
  • 콘텐츠 브라우저에서 루트 디렉토리를 동기화시킬때의 크래시를 고쳤습니다.
  • 블랙보드 키를 삭제한 다음 이름변경 시도할 때의 크래시를 고쳤습니다.
  • 비헤이비어 트리를 새로 열 때의 크래시를 고쳤습니다.
  • .jpeg 파일 임포트시의 크래시를 고쳤습니다.
  • 느린 태스크 진행상황 대화창으로 인해 발생하는 크래시를 고쳤습니다.
  • 블루프린트 메시 컴포넌트의 스태틱 라이팅을 고쳤습니다.
  • 빌드 스케일을 높일 때 ConvexElems 위치가 업데이트되도록 RescaleSimpleCollision 을 고쳤습니다 (기존에는 버텍스만 스케일 조절했습니다).
  • 에디터의 '패쓰 빌드' 옵션을 수정했습니다.
  • 컴파일러 에러 수정 및 자잘한 최적화가 있었습니다.
  • 콘텐츠 브라우저 소스 콘트롤 상태 델리게이트가 공유 포인터 시맨틱을 사용하도록 수정했습니다.
  • 비헤이비어 트리 버전비교가 거꾸로 나오던 것을 고쳤습니다.
  • 랜드스케이프 생성 되돌리기 후 랜드스케이프 에디터 모드가 꺼지던 것을 고쳤습니다.
  • 랜드스케이프 에디터의 랜드스케이프 드롭다운이 활성 랜드스케이프에 일치하도록 업데이트되지 않던 것을 고쳤습니다.
  • 폴리지에 사용되는 메시를 강제 삭제할 때의 크래시를 고쳤습니다. 주: 여전히 좋은 생각은 아닙니다!
  • 반투명 및 '콜리전 없음' 메시에 폴리지를 배치하는 것을 수정했습니다.
  • 'Orthographic' 오타를 수정했습니다.
페르소나 애니메이션 에디터
  • 애셋 선택기에 이름변경 기능이 지원됩니다.
  • 페르소나의 '메시 디테일' 탭에 클로쓰 피직스 프로퍼티에 대한 트윅 UI 가 추가되었습니다.
  • 키를 접근할 수 없게되는 것을 방지하기 위해 애니메이션 임포트 및 리임포트시 기존 애니메이션 커브를 감지하여 스케일을 조절하도록 수정했습니다.
비헤이비어 트리
  • Behavior Tree 노드 카테고리가 생겼습니다.
  • 비헤이비어 트리 에디터에 '새 노드' 버튼이 추가되었습니다.
  • 비헤이비어 트리 아이콘이 새로 추가되었습니다.
  • 새로운 비헤이비어 트리 블랙보드 유형으로 FRotator 를 추가했습니다.
  • 이제 비헤이비어 트리 에디터 안에서 블랙보드를 편집할 수 있습니다.
  • 개선된 블랙보드 에디터 추가 & 단순한 블랙보드 디버그 뷰를 대체했습니다.
  • 비헤이비어 트리 에디터용 고유 아이콘을 만들었습니다.
  • 블랙보드 애셋을 만들기 쉬워졌습니다. 콘텐츠 브라우저 우클릭 메뉴나 비헤이비어 트리 에디터 안에서 가능합니다.
  • 비헤이비어 트리 노드 되돌리기 후 분홍으로 변하던 것을 고쳤습니다.
  • 비헤이비어 트리 루트 노드에 올바른 툴팁이 생기도록 고쳤습니다.
씬 아웃라이너
  • 더블클릭 이벤트가 부모 위젯에까지 전파되지 않도록 막는 함수성을 추가했습니다.
  • 씬 아웃라이너 폴더 펼침 상태가 저장됩니다.
  • 씬 아웃라이너 비활성 선택 상태를 하드코딩시키기 보다는 주요 선택 상태에서 파생되도록 변경했습니다.
  • 아웃라이너 폴더에 대한 펼침 상태가 사용자별 임시 환경설정 파일에 저장되도록 변경했습니다.
스태틱 메시 에디터
  • 스태틱 메시 에디터에서 박스/스필 생성 및 다수의 콜리전 프리미티브를 만들 수 있으며, 조작도 가능합니다.
  • 구체 콜리전에 '빌드 스케일'이 적용되도록 고쳤습니다.
  • Ctrl+W 가 선택된 피직스 바디를 제대로 복제하도록 고쳤습니다.
머티리얼 에디터
  • 별다른 용도 없이 프리뷰가 있는 머티리얼 노드는 이제 기본으로 접히도록 설정됩니다.
  • 논-웨이드 블렌딩 사용시의 LandscapeLayerBlend 머티리얼 노드를 고쳤습니다. LB_AlphaBlend 를 사용하는 기존 콘텐츠는 LB_WeightBlend 를 사용하도록 자동 업데이트되며, LB_AlphaBlend 는 이제 논-웨이트 레이어에 대해 일반적인 알파 블렌딩을 수행합니다.
  • Scene Color 머티리얼 표현식 노드가 하양 단색을 반환할 수 있던 상황을 고쳤습니다.
    • "표면 머티리얼 영역만 Scene Color 노드를 사용할 수 있습니다."라는 머티리얼 컴파일러 오류를 새로 도입했습니다.
타일링된 랜드스케이프
  • 웨이트 블렌딩된 레이어에 대한 옵션을 추가했습니다.
  • (하이트맵, 웨이트맵) 타일링된 랜드스케이프 리임포트 기능을 추가했습니다. 리임포트 옵션은 '로드 및 선택된 레벨'의 맥락 메뉴에서 찾을 수 있습니다.

런처

  • 이제 하나의 앱에서 다수의 프로젝트를 생성할 수 있으며, 그 모두 '내 프로젝트' 섹션에 나열됩니다.

슬레이트

  • SMultiLineEditableText, SMultiLineEditableTextBox 를 추가했습니다.
    • 이들은 SEditableText 와 SEditableTextBox 로 패리티 역할이 가능하나, 아직 개발중이라 API 변경이 필요할 수도 있습니다.

블루프린트

  • 블루프린트에서 SplineComponent (스플라인 컴포넌트), SplineMeshComponent (스플라인 메시 컴포넌트)를 사용할 수 있습니다.
    • 레벨 내 '스플라인 컴포넌트' 편집 기능이 포함됩니다.
  • 블루프린트 배열 라이브러리에 범용 Array Shuffle (배열 혼합) 기능이 추가되었습니다./li>
  • 선 정리를 위한 Reroute 노드가 추가되었습니다.
    • 핀을 드래그하여 놓을 때 나타나는 맥락 메뉴에 'Reroute 노드 추가...'가 표시됩니다. Reroute 핀에는 평소처럼 연결이 가능하며, (그 근처로 드래그하거나 Ctrl+드래그로) 옮겨다닐 수도 있고, Alt+클릭으로 제거할 수도 있습니다.
    • 아래 드래깅 가능 영역에 더블클릭하거나 F2 키를 쳐서 Reroute 노드에 코멘트를 달 수도 있습니다.
  • Math 표현식 도느가 블루프린트에 추가되었습니다 (더이상 '실험단계' 기능이 아닙니다). 텍스트로 수식을 입력하면 일련의 노드 세트로 변환됩니다.
  • '블루프린트에서 찾기' 검색 결과 및 멀티스레드를 사용하도록 개선시켰습니다.
  • 블루프린트가 무한 루프에 걸리면 문제가 생긴 블루프린트를 알려주는 대화창으로 사용자에게 경고가 뜹니다.
  • 블루프린트 노드에서 구조체 핀에 우클릭하여 그 컴포넌트 엘리먼트 별로 분할시킬 수 있습니다.
  • 블루프린트는 이제 특정 컴포넌트나 액터가 씬 캡처에 숨겨지도록 요청할 수 있습니다. 커뮤니티 멤버 Neo 와 bigzer 님께 감사드립니다.
  • 블루프린트 에디터 시작 도중 현재 프로젝트가 블루프린트 기반인지 코드 기반인지 감지하는 검사를 추가했습니다.
  • 블루프린트 에디터 디테일 탭의 핀/변수 유형 메뉴가 비었을 때 하위트리가 숨겨집니다.
  • 부모 블루프린트나 네이티브 클래스 컴포넌트에 붙은 컴포넌트가 들어있는 자손 블루프린트 로드시 더이상 그 자손 블루프린트가 더티 마킹되지 않습니다.
  • 언리얼 엔진 4 에서 새로 생성되는 (인터페이스, 함수 라이브러리, 매크로 라이브러리) 애셋의 기본 이름을 짓는 방식을 변경했습니다.
  • 자손 블루프린트가 하나 이상인 블루프린트 컴파일 이후 UI 새로고침 동작이 중복되던 것을 고쳤습니다 (전체적인 블루프린트 컴파일 시간이 감소됩니다).
  • 로드시 컴파일 도중 인터페이스를 새로고칠 때의 크래시를 고쳤습니다.
  • 부모 클래스에서 변수를 제거한 다음 그 클래스를 기반으로 한 블루프린트에서 변수를 재생성 시도할 때의 크래시를 고쳤습니다.
  • 블루프린트 에디터에서 인스턴싱된 스태틱 메시 컴포넌트 선택시 컨스트럭션 스크립트를 통해 추가된 인스턴스가 있는 것을 선택할 때 발생하던 크래시를 고쳤습니다.
  • 블루프린트 에디터 내 컴포넌트 모드에서 부모 및 자손 노드가 둘 다 선택되었을 때 트랜스폼이 떨리던 것을 고쳤습니다.

렌더링

  • 스크린 스페이스 리플렉션에 대한 비주얼 및 퍼포먼스 튜닝을 위한 VisualizeSSR 표시 플래그를 추가했습니다.
  • 전체 씬 디렉셔널 섀도우 GPU 최적화가 있었습니다.
    • 스텐실보다는 (가능한 경우) 뎁스 바운드 테스트를 사용합니다. GTX780 에서 GPU 시간이 약 0.1ms 절약됩니다.
  • 저사양, 특히 모바일 디바이스용 r.RefractionQuality 옵션을 추가했습니다 (iOS, Android, HTML5 용으로는 기본적으로 꺼집니다).
  • Speedtree v7.0 이 통합되었습니다.
  • ShowLayer 명령 추가 - 레이어의 메시 표시여부를 토글시킵니다.
  • 스태틱 / 스테이셔너리 스카이라이트에 1회 반사되는 디퓨즈 GI 를 라이트매스로 계산합니다.
  • 반투명 머티리얼이 스테이셔너리 라이트의 그림자를 받습니다.
  • 모바일 렌더링 패쓰에 MSAA 가 지원됩니다.
  • 클리어 코트 셰이딩 모델을 추가했습니다.
  • 반투명 관련 굴절 순서를 변경했습니다 (독립 반투명이 아닌 것이 이제 굴절되어 모양이 바뀔 수 있습니다).
  • LensFlareIntensity 프로퍼티의 기본 세팅을 0 (꺼짐)으로 변경하여 퍼포먼스를 향상시키고 기본 모양새를 깔끔하게 만들었습니다. 1 로 설정하면 예전 방식을 살립니다.
  • 향상된 퍼포먼스를 위해 스크린 스페이스 리플렉션의 기본 퀄리티를 낮음(lower)으로 시작하도록 변경했습니다. 전처럼 포스트프로세스 세팅에서 변경 가능합니다.
  • 디스토션이 반투명 오브젝트와 정상 작동하지 않던 문제를 고쳤습니다.
  • ScreenSpaceAmbientOcclusion (가 더이상 적용되지 않던) 문제를 고쳤습니다.
  • 포인트 / 스포트 라이트에 노출된 Shadow Bias 가 효과가 없던 문제를 고쳤습니다. 유산된 값을 제거했습니다.
  • Owen 머티리얼이 매우 연했던(light) 문제를 고쳤습니다.
  • AffectsIndirectLight, '간접광 영향' 박스를 체크하고 LPV 를 켜지 않은 상태에서의 크래시를 고쳤습니다.
  • 잘못된 리플렉션 캡처 필터링을 고쳤습니다.
  • 템포럴 AA 가 꺼졌을 때의 SSR 노이즈를 고쳤습니다.
  • 디바이스에서 ES2 에 대한 캔버스 머티리얼 렌더링 트랜스폼을 수정했습니다.
  • Clamped Material 노드 입력이 음수 컬러값, NaN, 일관되지 않은 세이딩을 피하도록 수정했습니다. 기존에 물리적이지 않은 색 범위에 의존하던 반투명 머티리얼의 외양이 변경될 수 있습니다. 너무 어두운 파티클은 이미시브 출력을 사용해서 고칠 수 있습니다.
무버블 스카이라이트
  • 동적으로 변경 가능한 씬 메시에서 오클루전을 제공받는 신기능 '디스턴스 필드 앰비언트 오클루전'을 사용합니다.

게임플레이 및 프레임워크

  • 블루프린트를 통해 애님 트레일을 사용할 수 있게 되었습니다. 자세한 내용은 문서를 참고하세요.
  • SErrorText 위젯에 폰트 속성이 추가되었습니다.
  • 내비메시 라이브러리 (Recast/Detour) 가 UE4 모듈로 이동, 타겟 빌드 환경설정의 bCompileRecast 플래그에 따라 프로젝트에 자동 추가됩니다.
  • Detour 의 크라우드에 따라 크라우드 시뮬레이션을 추가했습니다.
    • CrowdFollowingComponent 포함 AIControllers 로 사용 가능합니다 (PathFollowingComponent 대체).
    • 커스텀 속도 샘플링 패턴을 지원합니다.
    • 에이전트 환경설정별로 자세한 내용이 추가되었습니다.
  • UBT XML 환경설정 개선사항:
    • XSD 주도형 IntelliSense.
    • 기본값을 코드에서 읽습니다 (기본 XML 파일이 다르면 UBT 시작시 재성성됩니다).
    • 환경설정 가능한 필드는 XmlConfig 속성으로 주석을 달아줘야 합니다.
  • 스레드별로 친밀성(affinity) 프로파일 설정을 가능하게 하는 신기능이 추가되었습니다.
  • FBox2D 유형이 추가되었습니다.
  • TActorIteractor 가 검색할 액터 클래스를 받도록 했습니다.
  • ArrowComponent 렌더링을 최적화시켰습니다.
  • 슬레이트 포함 언릿 머티리얼을 사용할 수 있는 기능을 추가했습니다. 머티리얼은 어느 브러시 유형에도 사용가능하며, 다이내믹 머티리얼용 브러시 유형이 새로 생겼습니다 (FSlateMaterialBrush).
  • 에디터 최소화시 CPU 사용량이 현저히 감소했습니다. 에디터가 보이기는 해도 백그라운드 상태일 때에도 이러한 사용량 감소를 적용시키는 세팅을 추가했습니다.
  • 폴리지에서 스태틱 섀도우를 드리우는 기능이 지원됩니다.
    • 주: 아직 폴리지 **자체의** 스태틱 라이팅 또는 섀도잉을 완벽 지원하는 것은 아닙니다.
  • Skel Vert/Surf Location 모듈을 사용하는 파티클은 이제 Inherit Vertex Color, 버텍스 컬러 상속 프로퍼티를 사용하는 메시 버텍스에서 컬러 정보를 상속받을 수 있습니다.
  • 오래된 셰이더 컴파일 잡이 컴파일 큐에서 제거되었습니다. 여러가지 경우에 컴파일되는 셰이더 수가 크게 줄어들어 머티리얼 에디터 작업방식이 개선될 것입니다.
  • 윈도으에서 UE4 게임 실행을 위해 필요한 재배포가능 패키지 요구사항(Visual Studio 및 DirectX DLL)이 독립형 인스톨러로 제공됩니다: Engine\Extras\Redist\en-us\UE4PrereqSetup.msi.
  • API 호환성 확인을 위해 언리얼 빌드 툴이 에디터 모듈에 'API 버전' changelist 번호를 삽입시킵니다. 더이상 Windows RC 파일의 커스텀 VERSIONINFO 섹션에 포함시킬 필요가 없습니다.
  • 엔진과 같은 루트 디렉토리에 생성된 외부 프로젝트에 대해서도 IDE 프로젝트 생성이 정상 작동합니다.
  • 컬처 세팅 변경시 FText 재생성이 가능하며, 심지어 연결된 FText 리빌드까지도 가능합니다.
  • .pak 파일에 압축 & 암호화된 파일을 저장하는 기능이 지원됩니다. UnrealPak 리스폰스 파일에 -compress 또는 -encrypt 를 붙이거나 UAT 에 -compressed 를 전달하여 활성화시킬 수 있습니다.
  • 애니메이션 평가를 그래프 태스크로 실행시킬 수 있게 되어, 부하를 워커 스레드에 분산시킬 수 있습니다.
  • 스켈레탈 메시 디테일 패널의 '애니메이션 블루프린트' 에 콘텐츠 브라우저(에서 찾기 등의) 버튼을 추가했습니다.
  • 몽타주 블렌딩 아웃/종료에 대한 블루프린트 이벤트를 추가했습니다.
  • 디테일 패널 / 프로퍼티 매트릭스를 통해 썸네일 정보 편집이 가능합니다.
  • Functional Testing 프레임워크가 새단장되어, 언리얼 프론트엔드의 자동화 관련 완벽 호환성 및 기능 다수가 추가되었습니다.
  • '패시브 사운드 믹스'에 대해 Max Threshold, 최대 한계치를 지정할 수 있게 되었습니다. OEM 키를 FKeys 로 바인딩할 수 있게 되었습니다. (StreamTracker, ImpulseTracker 등의) Mod Tracker 파일을 에디터에 임포트하여 재생할 수 있도록 하는 플러그인이 추가되었습니다.
  • 실험단계 페이퍼 플러그인을 사용하는 코드 / 블루프린트용 횡스클로 템플릿이 추가되었습니다.
  • '스플라인 컴포넌트' 비주얼라이저 개선: 이제 탄젠트 편집이 가능하며, 되돌리기/다시하기가 지원되고, 우클릭 맥락 메뉴를 통해 선분 유형을 (곡선, 직선, 상수로) 정의할 수 있습니다. 종점은 선택적으로 탄젠트가 없는 (고정된) 것으로 지정할 수 있습니다.
  • 블루프린트 인터페이스에 새로운 메소드를 추가했습니다.
  • 블루프린트에 Box Sweep 를 노출시켰습니다.
  • 모터에 '트위스트' 및 '스윙' 모드를 추가했습니다.
  • 블루프린트에 컨스트레인트 리밋과 유형을 노출시켰습니다.
  • 프로젝트 세팅에 기본 종단 속도(terminal velocity)를 추가했습니다.
  • 이제 폴리별로 스켈레탈 메시 콜리전 질의가 가능합니다.
  • Double Sided, 양면 플래그를 노출시켜 양면 지오메트리에 대한 씬 질의가 가능합니다.
  • RHI 에서의 네이티브 디바이스 접근을 제공, 내재된 디바이스를 사용하여 직접 렌더링하고자 하는 써드파티 플러그인에 좋습니다. 현재 D3D11 에만 노출되어 있습니다. GitHub 의 CoherentUE4 에 의한 199 번 pull 요청에 의한 것입니다.
  • 컴포넌트 이동 도중 히트 노티파이 블록 전 오버랩 / 터치 노티파이가 처리됩니다.
  • 예전 이벤트가 액터 또는 컴포넌트에 소멸 마킹한 경우 오버랩 보고를 중단하도록 합니다.
    • 스윕 이전 폭발하는 고속 이동 발사체와 같은 경우, 스윕 이후 오브젝트와의 잘못된 오버랩을 보고하지 않도록 합니다.
  • Character Movement Component 에 대한 최대 시뮬레이션 반복처리 횟수 및 최대 시뮬레이션 시간 단위 콘트롤을 노출시켰습니다.
  • CharacterMovementComponent 의 정상 업데이트 범위 밖의 위치 변화를 자동 감지하여 걷기 모드시 바닥을 강제 업데이트합니다.
  • CharacterMovement 낙하 모드에서 PhysicsVolume 종단 속도는 (하향으로 간주되는) 중력 방향으로만 적용됩니다.
    • 기존에는 종단 속도가 속도 중 속력을 전체적으로 제한시켜 틀리게 나오고 있었습니다.
    • 이제 가속도의 기여를 제한시킵니다. 종단 속도에 대한 초기 속도가 허용은 되지만, 추가적인 가속도가 적용되지는 않습니다.
  • 캐릭터는 이제 기본적으로 수영 가능합니다 (NavAgentProps 에서 bCanSwim = true 입니다).
  • PhysX 관통 처리가 개선, 관통시 보고되는 노멀이 개선됩니다.
  • 이제 프록시 메시 툴이 별도의 패키지에 애셋을 만듭니다.
  • '프록시 메시' 및 '액터 병합' 툴은 생성되는 애셋에 좀 더 일관된 이름을 사용합니다 (데모렛 작명 규칙).
  • 축 및 액션 매핑 그룹이 섞이지 않도록 고유한 이름으로 생성되도록 했습니다.
  • SoundWave Compression Quality 를 변경하여 대화식으로 프로퍼티를 변경할때 재압축되지 않도록, 다음 번 사운드 재생시 새로운 압축 세팅이 적용되도록 했습니다.
  • 월드를 애셋으로 간주하도록 지원하기 위해 더욱 많은 작업이 있었습니다. 앞으로 월드를 콘텐츠 브라우저에서 관리하게 될 것입니다.
  • 다수의 콘텐츠 브라우저 퍼포먼스 개선 및 코드 정리 작업이 있었습니다.
  • Recast 가 더이상 써드파티 모듈이 아닌 UE4 정규 모듈이 되었습니다.
  • 비히클 휠 바디를 더이상 PhAT 안에서 키네틱으로 설정할 필요가 없습니다. 기본으로 놔둬도 정상 작동합니다.
  • 파티클 이펙트가 있는 디스트럭터블 메시가 서브 스테핑으로도 정상 작동합니다.
  • UShapeComponent 에 DLL 익스포트가 추가되었습니다. UPrimitiveComponent 와 일부 UShapeComponent 서브클래스가 이미 익스포트되었으니, UShapeComponent 에 못할 이유가 없습니다.
  • 에디터 뷰포트에서 PIE 중일지라도 이제 게임 뷰포트가 이제 GetGameViewportWidget 에서 제대로 반환됩니다.
  • 플래튼 프리뷰 그리드 켬/끔 표시 토글을 위한 체크박스를 추가했습니다.
  • 랜드스케이프 경사로 툴에서 작은 경사로에 스프라이트가 들어오지 못하도록 스프라이트에 동적인 스케일을 적용하는 기능이 추가되었습니다.
  • 랜드스케이프 스트리밍 거리 배수가 음수일 경우 발생하던 크래시를 예방했습니다.
  • 액터 병합 툴에 옵션 대화창을 추가했습니다.
  • 폴리지 칠하기 퍼포먼스가 향상되었습니다.
  • 핀꽃힌 카메라 프리뷰가 있는 카메라를 선택하면 그 프리뷰가 강조됩니다.
  • 새로운 애셋과 필터에 대해 Blueprint 카테고리를 생성했습니다.
  • 모듈 시작 도중 태그 딕셔너리가 DefaultEngine.INI 파일에서 로드되어 복수의 딕셔너리가 가능합니다.
  • 디테일 패널에서 태그를 편집할 수 있도록 GameplayTag 커스터마이징이 추가되었습니다.
    • 블루프린트의 Gameplay Tag Variables 에 대한 기본값을 디테일 패널에서 설정할 수 있습니다.
  • 랜드스케이프가 양면 그림자를 드리우도록 하는 플래그가 추가되었습니다.
  • 기본적인 앱 내부 구매 기능이 지원니다.
    • 현재 프로그래밍을 통해서만 가능합니다. 블루프린트 노드도 지원되도록 노력중입니다.
  • 일부 종속성을 건너뛸 수 있도록 언리얼 엔진 런처 인스톨러를 변경했습니다.
  • 저사양 엔진 퀄리티의 경우 MSAA 세팅을 낮추거나 끌 수 있도록 변경했습니다.
  • 폴리지가 기본적으로 데칼을 받지 않도록 변경하였으며, 사용자가 원하는 경우 다시 켤 수 있는 체크박스를 추가했습니다.
  • 레벨 에디터의 익스포트 함수성에서 OBJ 가 아닌 FBX 가 기본이 되도록 변경했습니다.
  • 블렌드 스페이스 에디터의 편집 박스 채우기 코드에서 수치가 포맷을 따르지 않도록 변경했습니다.
  • Opus 포맷이 UE4 전용 용도에 대해 고유 식별자를 갖도록 개선시켰습니다.
  • 블루프린트 생성 컴포넌트에 폴리지 인스턴스를 배치했을 때의 크래시를 고쳤습니다.
  • 파티클 시스템 애로우 컴포넌트의 스케일이 그 액터 스케일에 영향받지 않도록 고쳤습니다.
  • 카메라 액터에 뷰포트 고정 기능이 카메라의 프로퍼티를 제대로 사용하도록 고쳤습니다.
  • 랜드스케이프 기즈모 액터가 다른 액터에 붙도록 수정했습니다.
  • 플레이어가 빠지던 랜드스케이프 콜리전 문제를 해결했습니다.
  • 동일한 에디터 실행시 페르소나를 두 번 열 때 발생하던 크래시를 고쳤습니다.
  • 레벨에 메시 추가를 되돌리기/다시하기/되돌리기 했을 때의 크래시를 고쳤습니다.
  • 페르소나의 모드 전환 이후 바닥/하늘 표시가 정상 작동하지 않던 문제를 고쳤습니다.
  • ToggleBetweenPIEandSIE 의 셈 오류로 인해 게임 모드가 플레이어는 없고 관람자만 있다고 생각하게 만들어 StartMatch 가 절대 호출되지 않던 문제를 고쳤습니다.
  • 익스포트시 본 이름 대소문자 문제를 고쳤습니다.
  • 스테이트 머신 트랜지션 생성 관련 문제를 고쳤습니다.
  • 애니메이션 콘텐츠 맵의 루트 모션 예제를 수정했습니다.
  • Distance CrossFade 에서 페이드 아웃 도중 사운드가 재생되지 않던 문제를 고쳤습니다.
  • 일부 플랫폼에서 사운드웨이브 메모리 및 중복 변수 관련 문제를 고쳤습니다.
  • 인풋 세팅 프로퍼티가 일관되지 않게 펼쳐지던 것을 고쳤습니다.

라이팅

  • 스포트라이트의 내부 원뿔 각도를 내부 원뿔 각도보다 크게 설정할 수 없도록 하는 코드를 추가했습니다.

Oculus

  • Oculus 에서 별도의 SDK 를 직접 끌어다 쓸 필요 없이 엔진에서 Oculus Rift DK2 를 바로 지원합니다.
  • Oculus Rift 통합에서 직접 렌더링 및 타임 워프를 포함한 LibOVR 0.3.3-pre.1 을 지원합니다.

애니메이션

  • 몽타주용 슬롯 노드에 대한 그룹이 지원됩니다 (작업중)
  • 한 번에 다수의 몽타주를 지원하기 위한 노력으로, 이렇게 그룹별로 하나의 몽타주를 재생할 수 있습니다. 슬롯별로 그룹을 할당할 수 있습니다.
  • 네이티브 클래스 이름과의 일관성을 위해 블루프린트 함수 SetAnimClass 이름을 SetAnimInstance 로 변경했습니다.
  • 오버라이드 프리뷰가 이제 부모 애님 그래프를 제대로 표시합니다.
  • 콘텐츠 예제에 애니메이션 오버라이드 예제가 새로 추가되었습니다.
  • 타이밍 적용 파티클 이펙트가 이제 이미터를 제대로 끕니다.
  • 진행중인 타임라인에서 삭제시 스테이트 노티파이가 제대로 종료됩니다.
  • 작은 프리뷰 툴팁에 더이상 그래프 스테이트 장식이 표시되지 않습니다.
  • 애니메이션 임포트시 프레임 수를 낮춰도 커브가 끊어지지 않고 안전하게 임포트됩니다.
  • 애니메이션 그래프가 이제 스테이트 및 스테이트 머신 내 서브그래프를 제대로 제거합니다.
  • 몽타주에서 분기점이 이동가능하도록 수정되었습니다.

디버깅

  • 블루프린트로 경유된 코드에서 어서션 실패가 발생하는 경우, 크래시를 추적하는 데 도움이 되고자 네이티브 콜스택에 추가로 블루프린트 콜 스택도 확인할 수 있게 되었습니다.
LiveEditor 플러그인
  • 배열 내 중첩된 수치 및 오브젝트 프로퍼티 편집 기능이 지원됩니다.
  • 이제 Remote LiveEdit 세션 시작 이후 스폰된 오브젝트 역시도 편집될 것입니다.

Paper 2D

  • Paper2D 횡스크롤 템플릿을 추가했습니다 (BP / C++ 버전 둘 다 제공됩니다)!
  • 4.3 에서 Paper2D 상태를 제대로 알리는 문서 작업이 있었습니다.
    • 4.3 에서 Paper2D 는 전반적으로 '베타 프리뷰', 즉 초기 접근 단계로 간주됩니다. 정식 출시 정도까지는 아니지만, '실험단계'는 넘어서서 앞으로 제공될 기능에 대한 미리보기 역할은 할 것입니다.
    • 스프라이트 및 플립북은 '초기 접근' 단계로 간주됩니다.
    • 2D 콜리전/피직스, 터레인 스플라인, 아틀라싱 그룹, 타일 맵은 '실험단계' 기능입니다 (숨겨져 있으며, 가능한 경우 체크박스로 켤 수 있습니다).
  • 스프라이트 에디터의 일반적인 폴리시 패스 및 정리작업
    • '소스 구역' 편집 모드를 추가, 커다란 스프라이트 시트 구역을 빠르게 선택할 수 있습니다.
    • 텍스처에 대한 콘텐츠 브라우저 맥락 메뉴에 '스프라이트 추출' 명령을 추가, 스프라이트 시트에서 해체된 스프라이트를 전부 식별하여 별도의 애셋을 만듭니다.
    • 지오메트리 편집용 '메시 에지' 프리뷰 모드를 추가했습니다.
    • 스프라이트 에디터 뷰포트에 스프라이트 렌더 바운드 치수 표시를 추가했습니다.
  • 플립북 에디터의 첫 번째 정식 버전
    • 일반적인 폴리시 패스 및 정리작업이 있었습니다.
    • 맥락 메뉴에 프레임 추가/삽입/삭제 가 추가되었습니다.
    • 타임라인에 스프라이트와 플립북을 드래그 앤 드롭하면 프레임이 삽입됩니다.
  • Paper2D 스프라이트용 머티리얼 제작이 쉬워졌습니다.
    • 'SpriteTexture' 라는 이름의 Texture2D Param 에 대한 별명으로 SpriteTextureSampler 머티리얼 표현식 노드를 추가했습니다.
  • 스플라인 기반 2D 터레인 툴에 대한 '실함단계' 기능이 지원됩니다.
    • 터레인을 커버하는 규칙이 경사 각도에 따라 각기 다른 스프라이트에 적용되어, 스플라인에 일치되도록 변형됩니다.
    • 스프라이트의 지오메트리를 트라이앵글화시킬 때 불필요한 버텍스 축소를 막는 임시 옵션을 추가했습니다.
  • 픽셀과 언리얼 유닛(uu) 사이의 1:1 상관관계를 피하기 위해 PixelsPerUnrealUnit 을 추가했습니다.
    • Project..Paper2D 의 프로젝트 전반적인 세팅으로 새로운 스프라이트에 대한 기본값을 설정할 수 있습니다.
  • UPaperFlipbookComponent 에 다수의 재생 콘트롤을 추가했습니다 (UTimelineComponent 에서 베꼈습니다).
  • 스프라이트 소스 사각형 편집 모드를 추가했습니다.
  • 텍스처 맥락 메뉴에 스프라이트 추출 옵션을 추가했습니다.
  • 플립북용 정확한 컴포넌트 바운드를 추가했습니다.
  • 빈 스프라이트를 새로 생성했을 때 소스 텍스처 첫 설정시 그 수가 자동 조절되도록 했습니다.
  • UPaperSprite UBodySetup 이 단순을 복합으로 사용하도록 마킹, (터치/커서 클릭과 같은) 복합 레이캐스트가 3D 스프라이트 콜리전에 성공할 수 있도록 했습니다.
  • 플래시 이외의 툴에서 익스포트된 스프라이트 시트를 임포트할 수 있도록 JSON 'app' 태그상의 제약을 완화시켰습니다.
  • 기본 스프라이트 머티리얼 퍼뮤테이션을 추가했습니다.
  • 스프라이트 / 플립북 에디터용 클래스 / 애셋 유형 아이콘 및 짤막한 문서를 추가했습니다.
  • 프레임 없는 플립북의 썸네일 미리보기가 이제 그냥 검정이 아닌, 배경과 경고를 표시합니다.
  • 스프라이트에 붙은 컴포넌트가 붙지 않은 것처럼 만들던 UPaperRenderComponent::GetSocketTransform 의 버그를 잡았습니다.
  • 유효하지 않은 모양이 생성되어 쿠킹 실패로 이어질 수 있었던 스프라이트에 대한 3D 컨벡스 헐 생성 코드의 오타를 수정했습니다.
  • Paper2D 에서 발생할 수 있었던 로드 순서 어서트를 고쳤습니다.
  • RF_Transactional 플래그가 없어 발생했던 Paper2D 되돌리기 관련 문제를 고쳤습니다.
  • 로드시 구형 스프라이트를 변환할 때 블록으로 인한 비동기 텍스처 생성으로 인하여 간헐적으로 스프라이트가 깨지던 문제를 고쳤습니다.
  • 완전 새로운 플립북 편집시 제로 섬 타임으로 인해 시간 누산기가 무한으로 가던 렌더링 문제를 고쳤습니다.
  • 'Show Src Tex' 뷰를 표시하는 컴포넌트가 소스 텍스처 변경시 새로고치지 않던 버그를 잡았습니다.
  • 디테일 패널의 버튼을 사용하여 배치된 플립북 또는 스프라이트 액터에서 블루프린트를 만들 때의 크래시를 고쳤습니다.
  • UPaperSprite::SpriteColor 의 효과가 없던 것을 고쳤습니다.
  • 플립북 컴포넌트가 렌더링되지 않던 것을 고쳤습니다.
  • 타일 맵 액터가 렌더링되지 않던 것을 고쳤습니다.
  • 최소값이 최대값보다 큰 박스가 생길 수 있었던 스프라이트 렌더 바운드 버그를 고쳤습니다.

피직스

  • 엔진 내 2D 피직스를 위한 여러가지 변경사항을 포함해서 Box2D 2.3.1 초기 '실험단계' 통합이 이루어졌습니다.
    • 완전 미지원 및 문서화되지 않은 프로토타입이라 사용에 극심한 주의가 요구되며, 제작 단계에서는 사용하지 마십시오.
    • (언리얼 콜리전 채널/필터링을 포함한) 콜리전 감지 및 반응, 시뮬레이션, 레이 캐스트가 구현되었습니다.
    • 논-제로 익스텐트 퀴리, 스윕 테스트, 오버랩 테스트는 아직 구현되지 않았습니다.
  • 다양한 콜리전 루틴을 정리하여 가급적 공용 패쓰를 통합시키고, 가능한 경우 PhysX 종속성을 감소/통합시켰습니다.
  • UStaticMeshComponent 뿐만이 아닌 어떠한 종류의 컴포넌트에 대해서도 연관된 애셋을 제공하도록 FBodyInstance 에 대한 디버그 텍스트를 일반화시켰습니다.
  • 다양한 내부 스윕/오버랩/퀴리 헬퍼 메소드 (Geom*) 가 이제 PhysX 전용이 아닌 언리얼 유형을 받습니다.

월드 브라우저

  • LOD 레벨 생성시, 랜드스케이프 액터는 raw 메시로의 익스포트용으로 최대 LOD 레벨을 사용하며, 별도의 단순화를 적용하지 않습니다.
  • LOD 레벨 생성기가 이제 노멀맵 적용 랜드스케이프 스태틱 메시를 생성합니다.
  • LOD 레벨용으로 생성된 애셋은 이제 LOD 맵 패키지 안에 저장됩니다.
    • 이제 스트리밍 레벨 발견시 짧은 패키지 이름이 아닌 긴 이름을 사용합니다.
    • 'stat levels' 콘솔 명령에 LOD 정보를 추가, 그에 관련된 여러가지 문제도 고쳤습니다.
    • LOD 레벨이 서버에 별도의 표시여부 상태를 리플리케이트시키지 않습니다.
    • 시뮬레이션 뷰 위치 표식에 로테이션을 추가했습니다. 월드 바운드 색을 빨강에서 노랑으로 변경했습니다.

에디터와 게임에 라이브 스트리밍 지원 (작업중)

  • 게임 라이브 스트리밍
    • 게임 비디오와 오디오에 대한 범용 인터넷 라이브 스트리밍이 가능합니다.
    • 웹 캡 비디오 피드를 게임 뷰포트 위에 자동으로 겹쳐놓을 수 있습니다.
    • 새로운 'Broadcast' 블루프린트 함수 라이브러리를 통해 게임 방속을 쉽게 시작할 수 있습니다.
    • 새로운 IGameLiveStreaming API 로 C++ 를 통한 방송을 시작할 수 있습니다.
  • 에디터 라이브 스트리밍
    • 라이브 스트리밍 서비스를 사용할 수 있는 경우, 에디터 UI 에 '방송' 버튼이 자동으로 표시됩니다.
    • 모든 데스크탑 에디터 창에 대한 방송이 지원됩니다 (개인설정에서 설정 가능).
    • 웹 캠이 있는 경우, 새 에디터 창에서 방송하는 도중 비디오가 자동으로 표시됩니다.
    • '라이브 스트리밍' 에디터 개인설정 탭이 추가, 방송에 대한 여러가지 환경설정 세팅이 가능합니다.
    • 새로운 IEditorLiveStreaming API 로 필요한 경우 에디터 방송을 직접 제어할 수 있습니다.
  • Broadcast.Start 및 Broadcast.Stop 콘솔 명령이 추가되었습니다.
    • UI 코드를 작성할 필요 없이 게임의 라이브 스트리밍을 쉽게 테스트할 수 있습니다.
    • 위 새로운 명령에 도움말이 내장되어 있습니다.
  • 라이브 스트리밍 플러그인 구현을 위해서는:
    • 새로운 ILiveStreamingService 인터페이스를 상속합니다.
    • IModularFeatures 시스템 포함 자신의 'LiveStreaming' 기능을 등록합니다.

FBX

  • 바인드 포즈 임포트 문제 : 바인드 포즈 임포트시 실패하는 경우, 재생성 시도합니다. 바인드 포즈 상대적 매트릭스가 일치하지 않는 경우 매우 유용합니다.
  • 씬 변환 옵션 추가 : 블렌더에 대한 씬 변환 옵션을 추가했습니다.
  • 블렌더에서 익스포트된 FBX 파일은 올바른 씬 데이터가 없습니다. 변환하면 작동하지 않습니다.

오디오

  • NGS2 오디오 패닝이 지원됩니다.
  • NaN, INF, XAudio 에서 비정상적으로 크거나 작은 값에 대해 자세한 경고를 몇 가지 추가했습니다.

플랫폼

  • BuildThirdPartyLibs 자동화 스크립트에 -SearchDir=PathToSomething 옵션 파라미터를 추가하여, 플러그인 또는 기타 비표준 위치에서 TPS 소프트웨어에 사용될 수 있도록 했습니다.
  • OS X 열기/저장 대화창 사용시에는 키 창을 트래킹 및 리셋시키는데, 그러지 않으면 포커스가 넘어가 되돌아오지 않습니다.
  • UE4 어플리케이션이 백그라운드가 아니 경우 커서를 숨겨, 다른 어플리케이션과의 작업시 사라지지 않도록 했습니다.
  • OS X 에서 약간의 퍼포먼스 향상을 위해 멀티스레드 OpenGL 맥락 사용시 glMapBuffer & glLabelObjectEXT 를 사용하지 않습니다.
  • 맥에서 SSE 인스트럭션을 사용할 수 있도록 PLATFORM_ENABLE_VECTORINTRINSICS 를 켰습니다.
  • OS X 하에서 매우 밀집도가 높은 프로젝트의 퍼포먼스 문제를 피하기 위해 다이내믹 메시 빌더의 버텍스 및 인덱스 버퍼를 풀링(pool)합니다.
  • -rpath 를 사용하여 @rpath/ 을 통해 dylib 을 링크시켜, .dylibs 공유 및/또는 맥 앱에 패키징시키는 작업이 쉬워졌습니다.
  • 컨테이너 클래스에 대한 레퍼런스 & 포인터에 자손이 표시되도록 LLDB 데이터 포매터 개선, FName & FString 요약 문자열에 포인터도 표시되도록, UObject 의 요약에 대한 오브젝트 이름을 사용하도록 만들었습니다.
  • OS X 에서 Alt+Enter 로 전체화면 전환시 모니터 크기에 맞게 창 스케일을 조절하도록 WindowedFullscreen 모드를 사용합니다.
  • 적합한 전체화면 모드에는 명시적인 CGL 백버퍼 크기와 마우스가 필요하며, 표시 좌표 변환에는 아직 그에 맞는 코드가 없습니다.
  • OS X 의 전체화면 모드에서 고해상도 마우스 모드 사용시 메인 메뉴 바와 도킹이 드러나지 않도록 했습니다.
  • OS X 에서 초기 툴팁 & 기타 창이 늘어나거나 왜곡되어 나타나지 않도록 했습니다.
  • 맥에서 편집->에디터 개인설정 메뉴 항목이 메뉴 바의 앱 메뉴로 이동되었습니다. 도움말->언리얼 엔진에 대하여, 도움말->종료 항목이 삭제되었습니다. 앱 메뉴에 중복되기 때문입니다.
  • Xcode 프로젝트 인덱싱 시간이 크게 향상되었습니다.
  • OS X 에서 Xcode 5.1.1 을 사용하여 코드 뷰에서 함수를 열 때를 수정했습니다.
  • OS X 에서 애셋 툴의 버전비교 명령 사용법을 수정, 이름으로 어플리케이션 번들을 찾아 실행할 수 있도록 만들었습니다.
  • OpenGL 사용시 각기 다른 맥락에 오브젝트를 동기화시키도록 수정했습니다. 먼저 GPU 에 flush 시킨 이후에야 다른 맥락에서 대기 시도해야 합니다.
  • 맥에서의 GL_TIMESTAMP 에뮬레이션 관련 버그를 약간 잡았으며, 일부 드라이버에서는 여전히 크래시가 나서 -EnableMacGPUTimestamp 명령줄 옵션으로 만들었습니다.
Mac
  • OS X 에 deprecation 매크로가 지원됩니다.
    • RadioEffectUnit AU 컴포넌트가 폐기된 ComponentManager API 가 아닌 새로운 AUPlugIn API 를 사용하도록 업데이트했습니다.
    • AVIWriter 가 폐기된 finishWriting 버전이 아닌 FEvent 를 사용하여 [AVAssetWriter finishWritingWithCompletionHandler:] 완료를 기다리도록 업데이트했습니다.
  • Xcode 의 컴파일러 옵션을 사용하여 다른 컴파일러도 사용 가능하도록 & analyze 기능을 최소한 지원하도록 했습니다.
    • Xcode 에서 선택된 컴파일러를 파싱 & 기본이 아닌 경우 실행시킬 실행파일이 들어있는 Xcode 플러그인을 찾습니다.
    • (독립형이든 빌드 세팅으로든) analyze 옵션이 켜진 경우 analyze clang 플래그를 통과해야 합니다.
    • Xcode 맥스를 통과해 들어갑니다. 병렬 빌드 태스크는 CPU 절반만 사용하는 것으로 간주하기 보다는 환경 변수를 통해 기본으로 UBT 를 사용하도록 했습니다.
Playstation 4
  • PS4 가 VS 2013 을 지원합니다.
  • libaudio3d 를 사용한 Positional Audio 가 지원됩니다.
  • 패키징 경로가 Engine 이 아닌 항상 프로젝트 안에 있도록, Shipping 이 .pkg 를 제대로 묶도록 수정했습니다.
Xbox One
  • XDK June 2014 QFE 1 로 업데이트했습니다.
Android
  • FOnlineAchievementsGooglePlay::QueryAchievements 함수가 안드로이드에서 작동합니다.
  • 기본 안드로이드 뎁스 버퍼 정밀도를 24 비트로 변경하고, Android Platform Setting 을 추가하여 개인설정을 선택하도록 했습니다.
  • 안드로이드 타블렛에서 세로방향 전용을 허용하되, 기본적으로 가로방향 출력 디바이스(NVidia Shield, Google TV, Kindle Fire TV, Ouya)에서는 가로방향을 강제시킵니다.
  • 패키징으로 생성되는 안드로이드 APK 용 인스톨 배치 파일은 이제 옵션으로 ADB 에 전해줄 디바이스 시리얼 번호를 받습니다.
  • 엔진은 이제 시작시 더 나은 EGL 환경설정을 선택, 신형 안드로이드 디바이스에서의 퍼포먼스 문제가 해결됩니다.
  • 안드로이드 인스톨 배치 파일의 오류 처리를 (출력에 제안사항을 포함시켜) 개선했습니다.
  • 안드로이드 스택에 함수 시그너처를 표시하도록 추가했습니다. addr2line 툴에 정확한 소스 파일과 행번호를 구하기 위하여 주소를 표시한 채 오프라인으로 사용 가능합니다.
  • 부동소수점 렌더 타겟을 지원하지 않은 안드로이드 디바이스에서의 크래시를 고쳤습니다.
  • 하프 플로트 텍스처를 지원하지 않는 안드로이드 디바이스에서 샘플 게임 내 빠진 텍스트를 수정했습니다.
iOS
  • 윈도우에서 iOS 로 디플로이 가능합니다 (현재 콘텐츠 전용 프로젝트만 가능하며, C++ 프로젝트는 안됩니다).
  • iOS 에 디스토션이 렌더링됩니다.
  • Metal API 가 지원됩니다 (Xcode 6 베타로 컴파일하는 경우).
    • 아직 Metal 이 기본적으로 켜진 것은 아니지만, 게임의 '프로젝트 세팅'에서 켤 수 있습니다!
  • iOS 에 기본 무비 재생 기능이 추가되었습니다.
  • iOS 용 Tapjoy 플러그인이 추가되었습니다.
  • 신형 PVRTexTool 로 업데이트, 기본적으로는 더 느립니다. 프로젝트 세팅에 새로 생긴 Cooker 섹션에 퀄리티 세팅을 추가했습니다 (0 은 가장 빠름, 4 는 가장 느림).
  • 모션 교정용 블루프린트 노드를 추가했습니다. iOS 디바이스용으로 구현되었습니다.
  • iOS 에 다른 것이 렌더링될 때까지 유지되는 스플래시 화면을 추가했습니다.
  • iOS 의 네손가락 콘솔을 개선시켰습니다 (히스토리가 제대로 저장/로드되며, 항상 가장 최근에 사용된 것이 처음 오도록 명령 순서가 정렬됩니다).
HTML5
  • GitHub 빌드에서 '실행:' 및 '파일/패키지' 에서 사용되도록 HTML5 가 업데이트되었습니다.
  • HTML5 용 즉석쿠킹이 지원, 거의 정상 작동합니다.
  • HTML5 용 여러가지 픽스 및 에디터 작업방식 개선사항이 있습니다.
  • HTTP 트랜스포트 문제가 수정되었습니다.

네트워킹

  • 네트워크 오브젝트에 대한 비동기 로드가 지원됩니다.
  • 애셋 디플로이가 필요한 써드파티 프레임워크 허용을 위해 UBT 를 변경했습니다.
  • 리플리케이트되는 FRotator 의 정밀도를 높였습니다.
  • 전체적인 네트워크 guid 관리가 향상되었습니다.
  • 서브오브젝트 네트워크 guid 관리가 개선되었습니다.
  • 서버에 스팸을 보내 클라이언트 접속이 끊기게 만드는 검사를 완화시켰습니다.
  • 네트워크 프로파일러가 개선되었습니다.
  • 심리스 트래블 발생시 매번 네트워크 guid 관련해서 발생하던 메모리 누수를 잡았습니다.

알려진 문제점

  • 마켓플레이스에서 다운로드한 코드 샘플에서 프로젝트 이름의 공백을 지우지 않으면 iOS 디플로이에 실패합니다.
  • 프로젝트 파일 경로에 공백이 있으면 Xbox One 용 패키징에 실패합니다.
  • 별도로 다운로드한 ShooterGame 의 경우, Config/DefaultGame.ini 의 ProjectID 가 같지 않으면 접속할 수 없습니다. 같은 배포 빌드를 사용중이라면 플레이어는 제대로 접속될 것입니다.
  • 에디터 개인설정에서 "enable window animations", 창 애니메이션 켜기 옵션이 켜진 경우, 메뉴 창이 열리지 않습니다. 우회법은 Engine\Config\BaseEditorUserSettings 아래 bEnableWindowAnimations 옵션을 false 로 설정하면 됩니다.

역주: API 관련해서는 번역 제공지 않습니다.

API Update Notes

Editor and Tools
  • New: Added AddForce to the CharacterMovementComponent.
  • New: Added new class metadata Experimental and EarlyAccessPreview, which will trigger a warning section in the actor details panel.
  • New: Added CanCheckIn() to ISourceControlProvider.
  • New: Editor mode tools refactor to allow multiple FEditorModeTools instances
  • New: Deprecated API still exists and works to some degree, but please update your code as this will be removed in the next release.
  • New: GEditorModeTools has been renamed to GLevelEditorModeTools to signify that it applies only to the level editor modes.
  • New: Mode registration and creation is now handled by FEditorModeRegistry. Modes are no longer registered with an instance of the mode, instead with a mode factory that is able to create a new mode of that type. Please update any usage of deprecated APIs to use FEditorModeRegistry.
  • New: Editor modes now operate on FEditorViewportClients rather than FLevelEditorViewportClients.
  • New: All existing UMG assets should be abandoned, no upgrade path is provided for them.
  • New: Materials with LandscapeLayerBlend material nodes using the LB_AlphaBlend blending mode will be automatically updated to LB_WeightBlend, which more accurately describes the weight-based blending that is occurring. There is a new LB_AlphaBlend which performs actual alpha blending when wanted, but LB_WeightBlend should be used for cases where the previous blending behavior is desired.
  • New: Added PlatformInfo to DesktopPlatform and improved the editors Supported Platform UI.
  • New: Added a comment explaining why CachedAutoWrapTextWidth was cached in OnPaint() rather than Tick().
  • New: Added the concept of a primary asset editor to the asset toolkit manager.
  • New: Re-added support for custom categories in the Project Browser.
  • New: Removed all animation classes from EnginePrivate.h and edited their files to include only their dependencies.
  • New: Changed 'Graph is linked to object(s) in external map' dialog to have a single 'OK' button.
  • New: GC TokenIndex is now tracked in non-shipping builds to easily identify its origin.
  • New: Added new BlueprintCategory property to UBlueprints, use this to categorize your behaviour tree nodes in the right-click palette menu.
  • New: Added option to TriangulatePoly to avoid discarding colinear points (useful when subdividing something that will later be deformed and need to retain specified detail, etc...)
  • New: Created a base class SCommonEditorViewportToolbarBase with common Options, View, Show, TransformBar, etc... sections for other in-viewport editor toolbars to extend from
  • New: Added UFactory::GetDefaultNewAssetName to allow customization of asset name generation during creation
  • New: Added source control checkout or add when creating a new rich tooltip excerpt via the 'create' link
  • New: Added UFactory::CanCreateNew and make bCreateNew a protected member
  • New: Added ENGINE_API to FFindFloorResult & extra bConstrainToPlane condition to UCharacterMovementComponent::DoJump().
  • New: CharacterMovementComponent: Fixed bug with water raycasts using incorrect bounds dimensions.
  • New: CharacterMovementComponent: Fixed glitches with based-movement on physics objects (no longer lags a frame behind).
  • New: Exposed Controller::LineOfSightTo() to Blueprint.
  • Changed AddMomentum to AddImpulse in the Character Movement Component.
  • Fixed the Content Browser so it now refreshes when package dirty state is updated.
  • Fixed the move/save pivot options for brushes to now only be available for ortho viewports.
  • Fixed GCycleStatsShouldEmitNamedEvents so it now enables/disables correctly.
  • Fixed Play In Editor in New Window to respect resolution request if r.FullScreen is 1.
  • Fixed "undo then redo" on duplicated scaled geometry to no longer result in a brush at the default scale.
  • Removed bogus MapCheck_Message_WorldTraceBlocked message.
  • Removed bogus method PostScriptCompile that is never called.
Landscape
  • New: Added RecreateLandscapeCollision command to recreate all landscape collision component.

Blueprint

  • New: UCanvas now has Blueprint API.

Gameplay and Framework

  • New: Significant Changes to Engine Headers
    • Engine.h has had lots of headers removed to reduce game compile times. We have tried to only remove classes that are unlikely to be used by a game project, but if you see compile errors, you may need to include additional headers.
    • Slate.h no longer included by Engine.h, so if you are using Slate, you will need to include yourself.
    • EnginePrivate.h is now actually private to Engine module and should not be used externally
  • New: 'Gameplay Tags' have undergone a large refactor in API and data storage that alter how they behave.
  • New: Added the ability to customize any low level UProperty type.  The IPropertyTypeCustomization interface replaces the IStructCustomization interface.  All customization functionality related specifically to structs has been deprecated but will still continue to function for this build.
  • New: Within *.Build.CS files, UEThirdPartyDirectory is now obsolete and should be replaced with UEThirdPartySourceDirectory. An error message will appear when attempting to build if this is not heeded.
  • New: Add ENGINE_API to UBodySetup::GetPhysMaterial().
  • New: Optimized FBox::TransformBy()
  • New: Added 'IsWalking' helper to CharacterMovementComponent.
    • Equivalent to IsMovingOnGround()
  • New: Tags are no longer explicitly FNames, but instead FGameplayTags
  • New: FGameplayTagContainer only stores 'leaf-most' tags instead of every tag in a hierarchy. As an example, pre-refactor if a user specified a container to hold the tag 'Root.Child.Leaf,' the container would actually have 'Root,' 'Root.Child,' and 'Root.Child.Leaf' within it as separate tags. This caused logical problems during certain types of comparisons. The container in this example will now explicitly only hold the tag 'Root.Child.Leaf' and none of the parent tags. The API has changed accordingly to allow queries against tags with or without their parents included.
  • New: Gameplay tags are now required to be located in existing data-driven dictionaries and cannot be individually created in code on the fly. Code can request a tag from the dictionary, but not explicitly create a tag by itself. This change allows for verification and ensures that tags used by code are also visible in editor.
  • New: Split non-EdGraph.h types out of EdGraph.cpp into individual files.
  • New: Change UKismetSystemLibrary::GetDisplayName to use UActorComponent::GetReadableName on components.
  • New: Added a helper function GetSimulationTimeStep(float RemainingTime, int32 Iterations) that computes the timestep given the total remaining time and current iteration.
    • During the final iteration, if there is not enough time within the time step limit, all remaining time is used and a warning is logged.
  • New: Added streamed audio chunk storage for runtime streaming or from DDC in editor.
  • New: Added blueprint exposed helper functions for interacting with tags/containers in BlueprintGameplayTagLibrary.
  • New: In Default Engine.ini declare the section [GameplayTags] and then add tag tables to GameplayTagTableList .
    UI

    Rendering

    Automation

    Unreal Frontend
    Physics

    EQS (Environment Query System) changes

    Shootergame

    Vehicle game

    Foliage is Being Refactored

    LiveEditor Plugin

    Paper 2D

    Core

    Slate API Updates

    Physics

    질문이나 코멘트 환영합니다. forums 또는 네이버 카페 에 남겨주시기 바랍니다!

    • For Example: +GameplayTagTableList=/Game/DataTables/GameplayTagTable.GameplayTagTable.
      • New: Changed Gameplay Tag Pin to now only allows single select.
      • New: The list of enabled plugins is now stored in each game's .uproject file. The EnabledPlugins list in the engine config files is no longer used.
        • Game plugins are now enabled by default.
        • To enable an engine plugin, use the plugins window in the editor or manually edit the plugin list in your game's .uproject file:
        • 'Plugins': [ { 'Name': 'LiveEditor', 'Enabled': 'true' } ]
        • To make an engine plugin enabled by default, set 'EnabledByDefault': 'true' in the plugin's .uplugin descriptor.
      • New: The 'Packaging' settings in the editor now store the 'additional directories to cook' relative to your project Content directory.
        • If you are using this feature, then you'll need to update your paths.
      • New: All of non-navigation AI code has been moved to a separate module, AIModule
        • May require including some headers in code using engine-level AI classes
      • New: World Browser was removed from Experimental section and now enabled by default. It replaces old Levels Browser. Old Levels Browser can still be activated using -oldlevels startup parameter. World Browser views were separated into three independent windows, each window can be summoned from a Levels Browser toolbar. World Browser managed worlds can now be toggled on through WorldSettings -> bEnableWorldComposition. Once enabled persistent level will be treated as a world root. No more '?worldcompistion' parameter workarounds. 'Open World' command was removed, all levels saved with world composition option can be opened through 'Open Level' command. Added bEnableWorldOriginRebasing parameter to WorldSettings, which controls whether world origin shifting should be used.
      • New: FString::IsNumeric() now accepts a leading '+' in numeric strings.
      • New: Made TMap::RemoveAndCopyValue and TMap::FindAndRemoveChecked move the value out instead of copying as an optimisation.
      • New: Made FText movable
      • New: Swap() is now implemented in terms of moves rather than copies by default.
      • New: Renamed variable UPrimitiveComponent::CanBeCharacterBase to CanCharacterStepUpOn, and UPrimitiveComponent::CanBeBaseForCharacter() to CanCharacterStepUp().
        • Made UCharacterMovementComponent::StepUp() check the surface it lands on with CanStepUp(), and reject if false and trying to step higher.
      • New: Level Browser can now summon details panel for a selected streaming levels. Details panel can be used for managing level transformations, streaming volumes and other streaming settings.
      • New: Renamed FStatusMessageContext to FScopedSlowTask which describes its purpose much more clearly.
      • New: CharacterMovementComponent: Exposed CalcVelocity(), and GetMaxJumpHeight() to blueprints.
      • New: Removed inner worlds processing from level streaming.
      • New: InstancedStaticMesh/Foliage now stores relative to component transformations in per instance data.
      • New: Changed OVERRIDE and FINAL macros to keywords override and final. The usage of macros is now deprecated.
      • New: Changed checkAtCompileTime into static_assert macro. The usage of checkAtCompileTime is now deprecated.
      • New: Removed DependsOn from the code. Now the DependsOn usage is forbidden -- instead user have to use proper #include..
      • New: Removed landscape/foliage headers from Engine.h, if you reference landscape or foliage classes in code you will need to add the appropriate includes.
      • New: Added support for touch in Puzzle template.
      • New: Added file to enable creation of puzzle projects from template.
      • New: Re-factored folder structure for game templates. Now use Public and Private and folders.
      • New: Added code to ensure OnlineBlueprintSupport is loaded during the LoadStartupCoreModules to ensure BP only projects that have online functionality work correctly.
      • New: Deprecated MovementComponent functions and variables related to speed modifiers.
        • Old implementations and uses of these functions should use GetMaxSpeed() and GetMaxAcceleration() instead, and apply the multiplier internally in their implementations or by changing the base values. The old functions are no longer used by engine code and only remain to maintain compilation and provide the deprecation message.
        • Deprecated functions UMovementComponent::GetMaxSpeedModifier(), UMovementComponent::GetModifiedMaxSpeed(), UCharacterMovementComponent::GetModifiedMaxAcceleration()
        • Deprecated variable UCharacterMovementComponent::CrouchedSpeedMultiplier.
        • Added MaxWalkSpeedCrouched - max walk speed when crouched. For older content, the initial value will be MaxWalkSpeed * CrouchedSpeedMultiplier (now deprecated).
        • Added MaxCustomSpeed - max speed used in custom movement mode (previously used MaxWalkSpeed, and will default to that value for existing content).
        • Added UCharacterMovementComponent::GetMaxAcceleration().
      • New: CharacterMovementComponent::bAlwaysCheckFloor now defaults to true.
        • Performance is only affected for Characters when they are not moving (by adding a floor check every update when standing still).
        • Some users may wish to set this back to false (especially for AI) for a small performance gain if they can verify that this is not needed for stationary characters in their games.
      • New: Revised assets causing Automation error in content examples.
      • New: Revised card cleanup in blackjack sample.
      • New: General improvements to network PIE game launching. Added waiting to connect message for editor. Fixed number of spawned instances. Improved window positions to accommodate multiple monitors.
      • New: Moved the project locations array into the game .ini for launcher created projects.
      • New: Removed assumption from GetBrush that second actor is always a brush and renamed it to GetDefaultBrush. Replaced GetBrush with GetDefaultBrush and made GetBrush deprecated. Revised comments appropriately.
      • New: Revised handling of incorrect commandlet. Now shows console and exits if commandlet is invalid.
      • Moved landscape MICs and textures to have the UWorld as their outer instead of the UPackage.
      • New: Revised exploding car blueprint in platformer game to prevent 'super jumps.'
      • New: Removed the optional parameter in FInterpCurve::Eval, EvalDerivative, EvalSecondDerivative.
        • Previously it was possible to supply an optional int32 pointer, into which the segment index used by the spline evaluation would be put.  The method for obtaining the spline segment was recently changed and now yields different results, so it was decided not to expose this to users as it is an implementation detail.
      • New: ICU has been upgraded to 53.1 and modified to use loose files rather than a single data archive/package.
      • New: Reduced complexity setting when encoding Opus audio for voice chat. Better performance with negligible loss of quality.
      • New: Changed cubemap clearing logic to stop race condition on initializing render targets.
      • New: Stopped multiple transition nodes between 2 state nodes being placed on top of each other.
      • New: CookOnTheFly caching reliability improved.
      • New: Adding touch support for Slate List View, TreeView, and TileView.
      • New: Components created via the construction script are no longer transactional.  Use the component instance cache to store values to be reapplied after the component has been recreated.
      • New: Child Actor Component has been significantly stabilized and will no longer result in duplicate actors under any scenario.
      • New: Added support for handles in the timer manager.
        • The timer manager can now identify timers by handle. Timers with a handle do not need, but my still have, a delegate that gets called when the timer expires.
      • Fixed Crash, Non-unity and Linux Editor build fixes.
      • Fixed memory leak in FFoliageEdModeToolkit.
      • Fixed crash from existing foliage that's based on blueprint components when running an uncooked game.
      • Fixed possible crash due to Foliage UI holding pointers to data inside a TMap which can be reallocated.
      • Fixed various undo-related crashes in landscape spline tool
      • Fixed crash caused by getting a duplicate landscape gizmo.
      • Fixed a bug in Morph Target importing that caused far more verts to be created than necessary.
      • Fixed landscape brush outline is still visible in orthographic viewports when switching from landscape tool.
      • Fixed an issue where SwitchEnum nodes who have their enums set during reconstruction on load would not have the correct friendly name.
      • Fixed an edge case where during async loading a Blueprint Generated Class could be created, but not yet preloaded at the time another object is loading it as an import.
      • Fixed auto generated Materials that used the old layout.
      • Fixed 'Flatten to Target' for landscapes with a non-zero Z coordinate.
      • Fixed the flatten preview grid getting stuck on.
      • Fixed Misaligned Material Comments.
      • Fixed crashes caused by shared pointer delegate bindings when reloading the level editor.
      • Fixed undo issues with any class derived from UDataAsset due to missing RF_Transactional flag.
      • Fixed BlendRot (used in SmoothTargetViewRotation) to return a float instead of int32 (still very magic).
      • Fixed various issues with swimming in CharacterMovementComponent.
      • Fixed various float errors in several content examples.
      • Fixed lack of SlideAlongSurface() code when StepUpFails, or when it is not going to help (now very similar to Flying implementation).
        • CanEverSwim() wasn't checked for various workflows (initially starting in a water volume, or when landing after falling).
        • Characters more reliably jump out of water when colliding with BSP.
        • Fixed issues with vertical moving platforms starting below the character and then moving up through the character and being ignored.
      • Fixed GetAllocatedSize() for FNavLinkRenderingProxy and FLandscapeSplinesSceneProxy
      • Fixed an issue that stopped Tappy chicken from rendering.
      • Fixed potential crash from enabling collisions from standalone window.
      • Fixed and issue with splitscreen coordinate adjustment that affected HUD clicks.
      • Fixed miscellaneous errors in various samples games.
      • Fixed bug with gameplay tag editor widget not being correctly rebuilt after reimporting the backing data table.
      • Fixed the DefaultPhysicsVolume to no longer appear in the convert actor list in the details panel for Brushes/Volumes.
      • New: Escape will now still first close a HUD UI even if it has lost focus.
      • New: Release GBuffers early during the frame to allow reuse, PostProcessMaterial can hold on to it longer, granularity is all GBuffers, could be per texture but might not be worth the tracking.
      • New: Byte address buffer support for vertex buffers.
      • New: Made UMaterialExpression and several derived types extendable from outside of Engine.
      • Added ENGINE_API on several classes that are desirable to derive from.
      • New: Unreal Automation Tool now uses the game .ini files to add additional directories to cook and stage.
      • New: Automation test history visualization added.
        • Users can now choose to track history of tests and will see an overview in the test table.
        • This option to 'Track History' is on the automation toolbar.
      • New: Improved tool tips for automation tests to show the machine instance they were completed on.
      • New: Added the ability to repeat a test a number of times.
      • New: Added Editor Screen Shot Capture console command.
      • New: Added a new test to find all Static Meshes with overlapping and out of bounds UV's.
      • New: Added a test to cycle through the Static Mesh Editor toolbar to test its functionality.
      • New: You can now setup presets in the Automation tab.  This allows you to setup your own test groups for potential test runs.
      • New: You can now enable full size screenshots instead of just thumbnails. The Screenshot Compare tool fully supports this.
      • New: The Screenshot Compare tool can be set to Show only Nth Image.
      • New: You can now cluster the testing and results for a groups of devices based on certain criteria (e.g. GPU, machine name, CPU, OS, etc.).
      • New: Added a Test Results Report Card. The test results will now show a color graph for each device group or machine that had ran a test.
      • Updated the Load all Maps in Editor/Game test to take screen shots.
      • New: Added in the automation test times for those which have failed. The durations were not reflective of this.
      • New: Updated the tooltips, for tests, to show which machine their operations were on.
      • New: Unused method UWorld::ComponentSweepSingle has been removed, use UWorld::ComponentSweepMulti instead if necessary
      • New: Unused method UWorld::ComponentOverlapTest has been removed, use UWorld::ComponentOverlapMulti instead if necessary
      • New: Added new optional ThirdParty library: Box2D 2.3.1, zlib license (https://code.google.com/p/box2d)
      • NOTE: Using the EQS now is NOT recommended. It is still in heavy flux due to early development, and it's completely disabled by default. If you do use it, be warned that we don't guarantee backwards compatibility in changes yet.  We will announce when it's moved into the 'Experimental' section in a future release.
        • Significant changes have been made to UEnvQueryTest and related files. If you are using EQS, you need to resave your Environment Query assets.
        • EQS Tests now support filtering on a range as well as just Min/Max.
        • EQS Test Details UI is significantly changed (hopefully improved), with more improvements to come. Filtering and Scoring are now handled in a more distinct fashion with less implicit reliance on each other.
      • New: Added code to assign created light component as RootComponent in ExplosionEffect - this prevented explosion effects from showing were not shown explosion blueprint was opened.
      • New: Added error handlers when joining a pending net game. Also added text wrap value on shooter message text.
      • New: Renamed ShooterExplosionEffects to ShooterExplosionEffect to match the class name and header file.
      • New: Revised bot behaviour. Bots now check LOS and look for another target if there is no LOS to the current one.
      • New: Revised OnEquipFinished so weapons auto reload on switching if ammo was collected with another weapon active.
      • Fixed a crash when running shootergame menu in PIE and trying to host a game.
      • New: Added VehicleGameState and VehicleGameViewportClient.
      • New: Added code to controls remap menu to restrict certain bindings for certain controls.
      • New: Added function in UInputSettings to force an update of the keymaps after a mapping has been added/removed.
      • New: Added code to Remap button names and make them more user friendly.
      • New: Revised settings ini so that throttle/brake and be remapped in controls menu.
      • Fixed 'stuck' GO text and best lap display on vehicle game client.
      • Fixed control menus in Vehicle game. Also increased width of same.
      • New: UInstancedFoliageSettings is now broken into UFoliageType and UFoliageType_InstancedStaticMesh
      • New: The FoliageMeshes map is now keyed on a UFoliageType*, not a UStaticMesh*
      • Fixed a crash when opening the LiveEditor Control Panel.
      • New: Several C++ classes were renamed to better match engine standards
        • Existing content should upgrade with no changes, but C++ code will need to be updated to match the new names:
        • Renamed UPaperRenderComponent to UPaperSpriteComponent
        • Renamed UPaperAnimatedRenderComponent to UPaperFlipbookComponent
        • Renamed FPaperAnimatedRenderSceneProxy to FPaperFlipbookSceneProxy
        • Renamed APaperRenderActor to APaperSpriteActor
      • New: The Paper2D plugin is now enabled by default so that content-only games can use it in cooked builds.
      • New: Moved tile map data from the component to a new class UPaperTileMap, and added a per-cell tile set pointer.
      • New: Switch mobility setup for sprite components to match static mesh components; UPaperSpriteComponent now defaults to Moveable and APaperSpriteActor defaults to Static.
      • New: Refactored the public interface of UPaperFlipbook (FramesPerSecond and KeyFrames must now be accessed via getters or a FScopedFlipbookMutator instance)
      • New: FThreadSingleton can be used outside of Core now.
      • New: Added LockFreeList using 128-bit CAS operation (disabled by default, may be enabled via setting USE_LOCKFREELIST_128 to 1) Stats.
      • New: Stats files are now compressed, ratio for regular stats 30%, for raw stats 16%.
      • New: Better support for task graph stats.
      • New: Added options to access the stat description as an ansi and a wide string, for the external profilers.
      • New: C++ coding standard: We now use "override" and "final" keyword on all platforms (not "OVERRIDE", etc.)
      • New: Allowed optimized code to be debugged more easily on Windows.
        • Sets undocumented compiler command-line switch that enables debugging of optimized code (/d2Zi+)
      • New: Added HashCodeHelper to UBT for creating reasonable GetHashCode implementations.
      • New: Improved error message enforcing SListView item types are a pointer type.
      • New: TSets are now constructible from TArrays, and move semantics has been extended to TSet::Append and TSetElement.
      • New: TArray::FilterByPredicate function has been added and returns a new array containing a copy of all elements which passed the predicate.
      • New: TUniquePtr is now constructible and assignable from TUniquePtr.
      • New: MakeUnique now has more overloads on Visual C++ to compensate for the lack of variadic templates.
      • New: Cooked sandbox paths have changed from Game\Saved\Sandboxes\Cooked-Platform to Game\Saved\Cooked\Platform.
      • New: Default subobjects can no longer be created using NewObject, all existing cases will need to be replaced with PCIP.CreateDefaultSubobject.
      • New: Changes have been made to the #includes in generated code.
        • Includes are always relative to the module they came from, where possible.
        • All modules' roots are now on the include path and having same-named headers in your project may now pick up different files depending on the include order.
        • Plugin intermediate files are now written out to the project's Intermediate folder, rather than an Intermediate folder inside the plugin folder.
      • New: Moved XmlParser module from 'Developer' to 'Runtime' so it can be used in shipping games
      • New: Eliminated broken screen quad drawing functions; replaced with publicly-exposed DrawRectangle()
      • New: FTransaction now supports default constructors when deserializing objects, rather than just zeroing the memory.
      • New: FString::Replace will now assert on a null replacement string, rather than crashing.
      • New: TBigInt has been fixed for multiple-of-32-bit shifts, and ToString() no longer ignores significant lower-order zero words.
      • New: Added UStruct::GetStringMetaDataHierarchical
      • New: Made FBox2D Min and Max public to match how FBox works.
      • New: Converted ULinkerLoad::CreateActiveRedirectsMap to be static and externally callable.
      • Fixed a crash when using FInterpCurve::EvalSecondDerivative near the last point on the curve.
      • Fixed statically linking plugins in monolithic builds.
      • Removed bCompileNetworkProfiler. USE_NETWORK_PROFILER is now true whenever STATS is also true. You may safely remove this flag from all Target.cs files.
      • New: SComboRow RowContent is now replaced by a default slot as it matches Slate convention better.
      • New: Paint is now the non-virtual entry point to OnPaint to support required pre/post functionality.
        • New: Widgets override OnPaint as usual, but calls to tell a widget to paint should be 'Paint' not 'OnPaint'.
        • New: ArrangeChildren renamed OnArrangeChildren. ArrangeChildren is now the non-virtual entry point for the same reason as Paint/OnPaint.
        • New: OnPaint and OnArrageChildren are now private so they are not accidentally called.
        • New: Added Stats for Paint time and ArrangeChildren time.
        • New: If SComboRow::OnGenerateWidget is not bound, a default STextBlock is generated reminding the user to bind that delegate instead of failing to compile.
      • Removed SCheckBox ReadOnly attribute.
        • Represented a general feature that all widgets do no support.
      • Removed MenuWidth and MenuHeight from SComboButton.
        • Removes unnecessary extra widget layer from almost all SComboButtons.
      • Removed Actor.bWantsInitialize has been.
      • New: Changed CalculateMass to use GetSimplePhysicalMaterial with the richer set of override points.
      • New: Added UE_WITH_PHYSICS as a shorthand for (WITH_PHYSX || WITH_BOX2D).
      • Replaced many FCollsionShape switches with a FPhysXShapeAdaptor helper.