2014-6-4

언리얼 엔진 4.2 릴리즈

By Ian Shadden

감사의 말씀

이번 릴리즈에 코드를 기여해 주신 멋진 개발자분들 전원에게 감사의 말씀을 전합니다. 여러분의 엄청난 작업 내용을 보니 저절로 고개가 숙여집니다!

AKPWebDesign, Allar, AndrewScheidecker, cbuttner, crnobog, DiCoJamesTan, dotneB, finger, frogameleon, gatekeep, Hydrael, Ixiguis, jkantzer, kylawl, mekaknepley, Rama, sbc100, SRombauts, StephenWhittle, wshearn, Yelmond.

주요 신기능

신규: 샘플 비히클 게임

이제 비히클(Vehicle, 탈것)이 언리얼 엔진에 완벽 지원됩니다! 이 샘플 게임은 오프 로드 비히클 및 사막 환경에서의 순환 트랙이 특징입니다. 사막 모래언덕, 바위 절벽, 오래된 폐허를 가로지르는 경주를 통해 최고 기록을 세워 보세요!

New Sample Vehicle Game

  • 사륜/전륜/후륜 구동렬이 별다른 설정 없이 바로 지원됩니다.
  • 기본 구동렬 시뮬레이션은 바퀴가 넷 인 것으로 간주하지만, 몇 개든지 정상 작동합니다.
  • 원하는 어떤 기어도 가능합니다.
  • 자동/반자동 변속기가 지원됩니다.
  • 게다가 이 모든 것이 블루프린트에 전부 노출되어 있습니다!

Mechanical Setup for Vehicle Game

신규: 카메라 애니메이션 시스템!

이제 CameraAnims (카메라 애님)이 언리얼 엔진 4 에 지원됩니다! 언리얼 엔진 3 에서의 '카메라 애님'과 매우 비슷합니다만, 이제 블루프린트가 지원됩니다.

  • 개념적으로 '카메라 애님'이란 단순히 게임내 카메라에 레이어로 덧씌우는 애니메이션입니다. 카메라의 위치와 방향, FOV, 포스트 프로세스 세팅에 대한 애니메이션이 가능합니다.
  • 콘텐츠 브라우저에서 생성 가능하지만, 마티네에서 트랙을 변환시키거나, 마야같은 외부 툴에서 키프레임을 임포트할 수도 있습니다.

 

CameraAnim System

  • '카메라 애님'을 편집하려면 다른 애셋과 마찬가지로 콘텐츠 브라우저에서 애셋에 더블클릭하면 됩니다. 카메라 애님 에디터는 마티네가 약간 특화된 버전입니다.
  • 다수의 CameraAnimInsts (카메라 애님 인스턴스)가 현재 최대 8 개까지 활성화 가능하며, 그 모두 최종 카메라 세팅에 블렌딩되어 반영됩니다.
신규: 블루프린트용 사용자 정의 구조체

User Defined Structures (사용자 정의 구조체)는 에디터 안에서 사용할 수 있게 된 완전히 새로운 애셋입니다!

'사용자 정의 구조체'는 콘텐츠 브라우저에서 만들 수 있습니다.

User-Define Structures in Blueprints

콘텐츠 브라우저에서 그 애셋에 더블클릭하면 독립형 에디터에서 편집할 수 있습니다. 편집 완료 후, 블루프린트에서 새로운 '사용자 정의 구조체' 유형의 변수를 만들 수 있습니다.

Content Browser Blueprints

벡터, 로테이터, 기타 구조체처럼 '사용자 정의 구조체'는 Make 와 Break 노드를 갖게 됩니다. '사용자 정의 구조체'는 네이티브 구조체처럼 작동할 것입니다: USTRUCT(BlueprintType).

신규: 블루프린트 함수 라이브러리

이제 사용자가 블루프린트 함수 라이브러리 애셋을 만들 수 있습니다! 이 블루프린트 함수 라이브러리는 프로젝트 전반에 걸쳐 사용할 수 있게 됩니다!

Blueprint Library

블루프린트 매크로 라이브러리와는 달리, 블루프린트 함수 라이브러리는 부모 클래스가 필요치 않으며, 현재 프로젝트 내 모든 블루프린트에서 호출 가능합니다.

신규: FABRIK IK 솔버

FABRIKForward And Backward Reaching Inverse Kinematic 의 약자로, 앞뒤로 늘어나는 IK 라는 뜻입니다. 어떤 길이의 본 체인에도 통하는 IK 솔버입니다!

Fabrik Inverse Kinematics Solver

  • End Effector (엔드 이펙터) 세팅은 저희 TwoBone_IK 노드와 같습니다. 절대 트랜스폼이 될 수도 있고, (같은 스켈레톤의 다른 본을 기준으로 하는) 상대 트랜스폼이 될 수도 있습니다.
  • Solver (솔버) 섹션에서는 Root (루트)에서 Tip (팁, 끝)까지 사용할 본 체인을 정의합니다. '팁'이 엔드 이펙터 위치까지 도달하려는 것입니다.
  • End Effector Rotation Source (엔드 이펙터 로테이션 소스)로는 (컴포넌트 스페이스, 로컬 스페이스 유지 및 엔드 이펙터 타겟 로테이션 일치 등) 로테이션을 제어할 수 있습니다.
  • Precision (정밀도)는 얼마나 근접시킬지 입니다. 낮을 수록 '엔드 이펙터 타겟'에 가까워 지지만, 더욱 비싸집니다. (테스트에서는 정말 멋진 결과를 보여줬으며, CCD_IK 노드보다 훨씬 빨랐습니다).
  • MaxIterations (최대 반복처리 횟수)는 퍼포먼스 조절을 위한 것으로, 희귀한 사례가 프레임 속도를 늦추지 않도록 하기 위함입니다.

이 기능에 기여해 주신 GitHub 커뮤니티 일원 Stephen Whittle 님께 감사드립니다!

신규: 캔버스 렌더 타겟
  • 이제 Canvas UI 를 바로 텍스처에 그린 다음, 해당 텍스처를 씬의 오브젝트에 바로 매핑시킬 수 있습니다!
  • C++ 는 물론 블루프린트 방식에도 완벽 지원됩니다.
  • 이 기능을 제출해 주신 커뮤니티 회원 James Tan 님께 감사드립니다.
신규: 비히클 템플릿

비히클 기반 프로젝트를 새로 시작할 수 있도록 단순한 자동차가 제공되는 프로젝트 템플릿이 새로 생겼습니다. 블루프린트와 C++ 버전 모두 지원됩니다!

Vehicle Template

신규: 애니메이션 블루프린트 애셋 오버라이드 에디터

페르소나에, 자손 애니메이션 블루프린트에서 부모 블루프린트에 있는 노드를 Play (재생)하고 Evaluate (평가)하는 데 사용되는 애셋을 덮어쓰는 기능이 생겼습니다.

그 에디터는 페르소나의 '창' 메뉴에서 찾을 수 있습니다:

Asset OVerride

에디터에는 애니메이션 애셋 덮어쓰기가 가능한 모든 노드가 표시됩니다. 패널 오른쪽에 있는 선택기에서 새로운 애셋을 선택할 수 있습니다. 이 방법은 길이가 긴 상속 체인에서도 통하며, 계층구조 내 족보가 한창 높은 블루프린트를 기반으로 해당 블루프린트에 대해 가장 적합한 기본값을 표시해 줍니다. 마지막으로 "눈" 버튼은 덮어쓰려는 애님 그래프 노드로 링크시켜 줍니다:

AnimGraph

신규: 애님 노티파이 에디터 개선

페르소나에 Anim Notify (애님 노티파이)에 대한 다중 선택 기능이 추가되었습니다! Shift + 클릭 으로 선택에 추가, Ctrl + 클릭 으로 노티파이 선택을 토글시킵니다.

선택을 드래그하여 끌어도 스냅이 유지된 채 노티파이 패널 안에 남아있게 됩니다:

Image Notifier

그룹이 포함된 경우에도 복사하기/붙여넣기가 여러 옵션으로 작동됩니다:

어디서 복사되었는지에 따라 절대, 상대, 원래 시간에 붙여넣을 수 있습니다.

신규: 블루프린트 컴포넌트에 잘라내기/붙여넣기

컴포넌트 모드에 복사하기/잘라내기/붙여넣기 명령이 지원됩니다!

Blueprints Cute/Paste

  • 개별 컴포넌트를 선택한 다음 우클릭 메뉴나 키보드를 통해 잘라내기/복사하기 명령으로 컴포넌트를 복사 또는 이동시킬 수 있습니다!
  • 하나의 블루프린트에서 컴포넌트를 복사/잘라내기 한 다음 다른 블루프린트에 바로 붙여넣을 수 있습니다!
  • 선택에 계층구조가 포함된 경우, 복사된 사본에도 유지됩니다!
신규 실험단계 기능: 블루프린트용 수학 표현식 노드

블루프린트용 수학 표현식 노드에 사용할 수 있는 실험단계 플러그인이 추가되었습니다. 그냥 수식을 입력해 주기만 하면 입력 핀과 출력 핀, 그 수식이 들어있는 접힌 그래프가 노드에 자동으로 나타납니다.

Experimental Math Expression Node

  • 이 노드를 사용하려면, 플러그인 매니저에서 Math Expression (수학 표현식) 플러그인을 켜 주기만 하면 됩니다. 그러면 블루프린트 그래프 에디터의 우클릭 맥락 메뉴에 나타납니다.
  • 생성한 이후 표현식을 입력합니다. 실수를 한 경우, 노드 이름을 변경하는 것으로 표현식을 편집할 수 있습니다.
신규: SplineThicken 머티리얼 함수로 UV 시차

SplineThicken 머티리얼 함수를 사용하여 머티리얼에 UV 시차를 더할 수 있습니다. 오브젝트가 둥근 것처럼 보이게 만들어 줍니다!

SlineThicken Example

  • 함수의 노멀 부분을 재수정하여, 이제 모든 오브젝트 로테이션에 대해서도 정상 작동합니다. 라이팅과 스페큘러가 정확해집니다!
새 입력:
  • UVs for Thickness (V2): 두께용 UV - 두께(tip 에서 base 까지) 그레디언트를 다른 UV 채널에 저장할 수 있습니다. 파이프 또는 가지 하나만이 아닌 전체 나무 길이를 포함시켜야 하는 나무의 경우 두께를 UV1 과 2 에 저장하면 됩니다.
  • UVs for Texturing (V2): 텍스처용 UV - 파이프에 적용하고자 하는 텍스처에 대한 UV 입니다. 여기에는 수학식을 포함시켜 스케일을 적용하여 시차 적용량을 알려줘야 합니다. 3D 시차 보정 결과가 필요할 때만 필요한 옵션입니다.
  • DeriveNormalZ (Bool): 노멀 Z 파생 - 체크하면 셰이더는 DeriveNormalZ 를 사용하여 노멀의 높이를 계산합니다. 훨씬 예쁜 '둥근' 모양이 납니다. False 인 경우, 0 을 중심으로 한 구체의 절반 높이 평균인 0.62 라 가정합니다. 노멀을 구하기 위해 CustomUV 를 사용하려는 경우, DeriveNormalZ 를 False 로 하거나, 스플라인 메시 중앙에 버텍스가 한 줄 필요합니다. 버텍스를 추가하지 않고 CustomUV 를 사용한 경우, 전체 메시에 걸쳐 노멀의 높이가 0 으로 나올 것입니다.
  • AngleCorrectedNormals (Bool): 각도 보정 노멀 - 부가 노멀 ㅌ텍스처 적용시 각도 보정된 노멀을 사용할지 여부입니다. 정확도가 높아지지만 비용도 비싸집니다.
  • AdditionalNormal (V3): 부가 노멀 - 버텍스 노멀 트랜스폼에 편승하는 부가 노멀맵을 지정할 수 있습니다.
새 출력:
  • UVs with Parallax: 시차 UV - 3D 시차를 내고자 하는 텍스처에 사용할 UV 를 줍니다.

현재 이 함수는 1 개의 텍스처 좌표만 처리하기에, 다수의 텍스처를 보정하려는 경우 모두 스케일이 같아야 합니다.

신규: 애니메이션 디버그 기능

사용할 수 있는 애니메이션 디버그 명령이 몇 가지 새로 생겼습니다. 우선 게임 내에서 스켈레탈 메시의 본을 렌더링하는 기능이 있습니다:

Animation Debug Features

이 기능은 ShowDebug Bones 명령으로 켭니다. 위에서 보듯이 각 본은 흰색 선으로 나타납니다.

  • 페르소나에 표시되는 본을 일치시키는 다른 방법이 있는데, ShowDebugToggleSubCategory 3DBones 명령으로 켤 수 있습니다.
  • ShowDebug Animation 명령으로 켤 수 있는 애니메이션 디버그 출력은 다음과 같습니다.
  • 다섯 개의 섹션으로 나뉘며, 각각에 대한 토글이 가능한데, ShowDebugToggleSubCategory 명령 뒤에 다음과 같은 카테고리 이름을 붙이면 됩니다. 예: ShowDebugToggleSubCategory SyncGroups
    • SyncGroups: 현재 최종 포즈에 기여하는 애니메이션 애셋을, 그 싱크 그룹별로 (그룹에 속하지 않는 경우 Ungrouped 로) 나타냅니다. 기본적으로 이 섹션에 나열되는 블렌드 스페이스는 기여하는 애니메이션 / 웨이트를 전부 표시합니다. 출력이 차지하는 화면 공간을 줄이려면, ShowDebugToggleSubCategory FullBlendspaceDisplay 명령으로 이 부분을 토글시킬 수 있습니다.
    • Montages: 캐릭터에 현재 사용중인 몽타주를 나열합니다. 활성 몽타주는 녹색으로 강조됩니다.
    • Curves: 재생중인 애니메이션에 의해 활성화된 커브 값을 (이름: 값 형태로) 나열합니다.
    • Notifies: 현재 발효중인 노티파이 스테이트를 표시합니다.
    • Graph: 활성 포즈 그래프를 표시합니다. 표시되는 내용은 최종 포즈를 나타내는 마지막 노드(루트 노드)로 시작해서, 그 최종 포즈를 만드는 데 들어가는 모든 노드가 나열됩니다. 노드는 계층구조를 유지하는 방식으로 표현되므로, 사용자는 원래 블루프린트 애셋을 참조하지 않고도 어떤 노드가 어디에 연결되었는지 알 수 있습니다. 활성 노드는 (ShowDebugToggleSubCategory FullGraph 명령으로 표시되도록 토글된 경우) 녹색으로, 비활성 노드는 회색으로 표시됩니다.
신규: 레벨 뷰포트 통계

유용한 엔진 통계 다수를 뷰포트 위에 시각화시킬 수 있습니다. 이제 뷰포트 "표시" 메뉴 아래 새로 생긴 "통계" 섹션에서 접할 수 있습니다.

Level Viewport Stats

  • 이 통계 중 대부분은 디버그 콘솔 프롬프트에 "Stat <name>" 를 입력해서도 토글시킬 수 있습니다.
  • 기본적으로 통계는 세션간에 유지되지는 않지만, 에디터의 뷰포트 개인설정에서 "Save Engine Stats" (엔진 통계 저장)을 선택하여 켤 수 있습니다.
신규: OBJ 메시 파일 포맷 지원

이제 스태틱 메시에 .obj 파일을 임포트할 수 있습니다!

파일 포맷은 매우 간하므로, 다음과 같은 기능은 지원하지 않는 다는 점에 유의해 주십시오:

  • 버텍스 컬러 임포트
  • 콜리전 임포트
  • 탄젠트 및 바이노멀 임포트
  • 트랜스폼: OBJ 임포트에는 소스 좌표 시스템을 구해올 수 있는 방법이 없기에, Z 를 위로 하여 모델링되지 않은 경우 회전됩니다.
신규: FBX 2014 로 업그레이드

FBX 임포터가 오토데스크의 2014 버전으로 업그레이드되었습니다.

  • 미러링된 메시의 탄젠트 및 바이노멀이 제대로 임포트됩니다.
  • 2014 이전 Maya / Max 의 기존 버전 FBX 플러그인을 사용해도 되지만, 너무 오래된 파일을 사용할 때는 임포트시 경고가 날 수 있습니다.
신규: 윈도 XP 지원 (프리뷰)

GitHub 에서 작업중인 개발자들의 경우, 프로젝트를 윈도우 XP 에 디플로이할 수 있게 되었습니다.

  • 이 기능을 켜기 위해서는, UnrealBuildTool 에서 WindowsPlatform.SupportWindowsXP 를 True 로 설정하고, 프로젝트 세팅에서 OpenGL 셰이더 지원을 켭니다.
  • 윈도우 XP 에서 실행할 때, 렌더링에 DirectX 11 대신 OpenGL 이 자동으로 사용됩니다.
  • 이 기능은 초기 단계라, 차차 개선될 예정입니다.
신규: 블루프린트에 액터 소멸 지원 개선

4.2 프리뷰 노트에 블루프린트에서 EndPlay 이벤트가 Destroyed 이벤트를 대체할 것이라고 나왔었지만, 실제 4.2 에서는 이렇습니다:

  • 블루프린트에서, 새로운 Event EndPlay 노드가 결국 Event Destroyed 를 대체합니다. 앞으로는 Event EndPlay 노드를 사용해야 할 것입니다.
  • EndPlay 발동 시점은 액터가 명시적으로 소멸될 때 뿐만 아니라, 액터가 더이상 월드에 존재하지 않게 될 때도 발동됩니다. 레벨 전환, 스트리밍 레벨 언로드, PIE 세션 종료, 액터에 Destroy 호출 등의 상황이 포함됩니다.
  • 또한 EndPlay 노드는 이제 실행 이유가 붙습니다 (액터 소멸, 레벨 전환, 에디터에서 플레이 종료, 월드에서 제거).
  • C++ 에서 AActor::Destroyed 가상 함수가 남아있지만, 주로 에디터 트랜잭션 기록 목적입니다.
  • C++ AActor::EndPlay 가상 함수는 액터가 월드에서 제거된 이유를 나타내는 열거형 파라미터를 받습니다.
  • 기존에 각 액터가 속한 스트리밍 레벨 언로드시 각 액터마다 호출되던 AActor::OnRemoveFromWorld 가상 함수는 제거되고, 그 함수성은 AActor::EndPlay 에 포함되었습니다.

릴리즈 노트

마켓플레이스

Stylized 렌더링 - Stylized 렌더링 쇼케이스를 마켓플레이스에서 무료로 받을 수 있습니다! 언리얼 엔진 4 의 렌더링 유연성을 확인할 수 있는 샘플 데모입니다.

stylized Demo

공상과학 통로 - Quixel 사에서 제작한 Deus Ex 컨셉의 영향을 받은 놀라운 공상과학 통로 씬입니다.

Sci-Fi Hallway

신규 피벗 페인터 콘텐츠 예제 맵 - 고정 그림 열 장, 이 예제 하나만 못합니다. 언리얼 엔진 4 의 피벗 페인터 기능은 일종의 지속적인 운동이 필요한 것이면 무엇이든 빠르고 효율적으로 생동감을 불어넣는 데 사용되는 기능입니다.

Pivot Painter

신규 오디오 콘텐츠 예제 맵 - 피벗 페인터 맵과 마찬가지로, 오디오 맵 역시도 그냥 로드하여 둘러보면 됩니다. 사운드 액터와 여러가지 사운드 이펙트의 기본을 표시해 줍니다.

Pivot Painter

학습 자료

비디오
문서
  • 신규: Vehicle Setup Guide - 언리얼 엔진 4 에서의 비히클 셋업 방법 안내서입니다.
  • 신규: Vehicle Content Guide - 비히클용 아트 콘텐츠 셋업 방법입니다.
  • 신규: Particle User Guide - 캐스케이드 사용 안내서 업데이트입니다.
  • 텍스처 페인팅 - 에디터 안에서 텍스처와 버텍스 칠하기 기능입니다.
  • 오디오 문서 업데이트 - 언리얼 엔진 4 의 청각 관련 모든 부분에 대한 참고서입니다.
  • 콘텐츠 예제 문서 정리 - 다양한 기능에 대한 콘텐츠 예제를 한 눈에 알아볼 수 있도록 목차 페이지를 새단장했습니다.
에디터내 튜토리얼
  • 신규: 디스트럭터블 메시 에디터 길잡이가 추가되었습니다.
  • 에디터내 튜토리얼 초기 창에 에디터내 튜토리얼이 전부 표시되도록 변경되었습니다.
  • 더이상 디스트럭터블 메시 에디터에 스켈레탈 메시 에디터 튜토리얼이 표시되지 않습니다.
API 문서
  • 신규: API 문서에 모든 모듈에 대한 간단한 설명이 추가되었습니다.

언리얼 엔진 런처

  • 신규: 언리얼 엔진 런처 인스톨러가 한국어 및 일본어 현지화 되었습니다.
  • 신규: 언리얼 엔진 데스크탑 및 시작 메뉴 바로가기의 툴팁 설명이 제대로 현지화되었습니다.
  • 신규: 언리얼 엔진 런처 인스톨러가 사용자의 윈도우 7 에 SP1 이 설치되지 않은 경우 알려줍니다.
  • 신규: 런처 우하단에서 다수의 콘텐츠 문서와 기타 정보 전체에 대한 링크를 찾을 수 있습니다.
  • 신규: 콘텐츠에 커서를 올리면 제거(uninstall) 또는 확인(verify) 메뉴를 선택할 수 있습니다.
  • 초기 시작 속도가 향상되었습니다.
  • 런처가 콘텐츠 데이터를 요청하는 방식과 시간을 변경하여 시작 시간을 향상시켰습니다.
  • 런처가 "설치" 단계 도중 닫혔을 경우 UE4 다운로드 프로세스를 처음부터 재시작하지 않도록 수정했습니다.
  • 한국어 및 일본어에 대한 현지화 버그 다수를 수정했습니다.
  • 맥에서 런처가 항상 셀프 업데이트 이후 재시작하도록 수정되었습니다.
  • 오프라인 모드의 콘텐츠와 다운로드가 여러모로 일관되지 않던 문제를 고쳤습니다.
  • 인스톨러가 Win8 및 Win8.1 에서 실패하던 문제를 고쳤습니다.
  • 런처의 충분한 디스크 공간 검사 방식을 수정했습니다.
  • 기본 UAC 권한때문에 Win 8.1 에서 다운로드 위치를 선택할 수 없었던 문제를 고쳤습니다.
  • 윈도우에서 우클릭 .uproject 옵션이 작동하지 않던 것을 고쳤습니다.
  • UE_4.1 과 모든 4.1 샘플 다운로드 상태에서 1.1.0-2054669 에서 1.2.0-2064046 으로 업데이트할 때 런처 응답이 없던 문제를 고쳤습니다.
  • 런처에서 프로젝트를 열 때 더이상 업데이트 프로세스를 생략하지 않도록 수정했습니다.
  • 프로젝트 이름이 변경된 샘플 콘텐츠가 런처를 통해 열릴 수 있도록 런처를 수정했습니다.
피드
  • 신규: 이제 피드 한 곳에서 모든 뉴스와 소식을 접할 수 있습니다.
  • 신규: 소식에 꽂힌 핀을 통해 중요한 업데이트가 강조됩니다. 각 소식의 핀 아이콘을 클릭하여 해제시킬 수 있습니다.

에디터 툴

에디터
  • 신규: 버텍스 페인트 기능이 블루프린트에 작동합니다.
  • 신규: 액터를 붙일 때, 액터 선택기를 사용하여 어느 액터를 어디에 붙일 지 선택할 수 있습니다.
  • 신규: 에디터에서 지오메트리 그리기시 "게임 뷰" 검사 기능을 추가했습니다.
  • 신규: 이제 Alt + [ 또는 ] 키로 트랜스폼 기즈모 크기를 조절할 수 있습니다
  • 신규: 이제 콜렉션이 로컬 유저 세팅에 따른 맞춤형 색상을 저장 및 표시합니다.
  • 신규: 캐릭터 컴포넌트에 Flat Bottomed (하단 평면) 콜리전 옵션이 추가되었습니다.
  • 신규: 마켓플레이스에서 다운로드한 콘텐츠를 제거할 수 있는 옵션이 생겼습니다.
  • 신규: 콘텐츠 브라우저에서 드래그 앤 드롭으로 다수의 액터를 생성하는 작업이 한 번의 트랜잭션으로 되돌리기 가능합니다.
  • 신규: 프로젝트 브라우저 목록을 새로고치는 기능이 추가되었습니다.
  • 신규: 새 클래스 마법사를 통해 클래스 추가 위치를 선택할 수 있게 되었습니다.
  • 신규: FSimpleAssetEditor 생성시 디테일 뷰에 표시하고자 하는 오브젝트를 구하는 함수를 제공해 줄 수 있습니다.
  • 신규: Simple and Group Stat Exec 명령을 레벨 뷰포트 '표시' 메뉴를 통해 바로 발동시킬 수 있게 되었습니다.
  • 신규: 한 패널 (1x1) 에디터 뷰포트 레이아웃을 추가했습니다.
  • 신규: 이제 에디터가 사용자에게 임포트 및 익스포트 성공 여부를 알려줍니다.
  • 신규: FVector UProperties 에 대해 스캔하는 메타데이터 플래그는 AllowPreserveRatio 입니다. 에디터에 (스케일을 1 로 하는 등) 비율 고정이 되도록 만듭니다.
  • 신규: 언리얼 엔진 4 에 이제 머티리얼을 끌어다 놓는 서브 메시에만 머티리얼을 적용하는 기능이 지원됩니다. Shift 키를 누른 상태라면 (예전처럼) 모든 슬롯에 머티리얼을 적용합니다.
  • 신규: UMG 작업이 시작되었습니다. UMG / UMGEditor 모듈이 존재하기는 하지만, 현재 매우 불안한 상태입니다. 에디터 실행시 -umg 를 붙이면 켤 수 있지만, 극초기단계라 버그가 매우 많고 사용자 친화적이지 않습니다.
  • 신규: 디테일 패널에 위치, 회전, 스케일의 복사/붙여넣기 기능을 추가했습니다.
  • 신규: 게임 로드가 완료되었을 지라도 무비 로드를 강제 완료시키는 옵션이 추가되었습니다.
  • 신규: 무비 로드를 건너뛸지 말지 사용자가 토글시킬 수 있는 옵션을 추가했습니다.
  • 신규: 콘텐츠 브라우저에서 드래그시 바닥에 끌어붙이지 않도록 하는 옵션이 개인설정에 추가되었습니다.
  • 절대/상대 트랜스폼 컴포넌트 토글을 위한 UI 가 변경되었습니다. 이제 디테일 패널의 트랜스폼 프로퍼티 옆의 드롭 다운 화살표를 통해 토글 가능합니다.
  • 액터 변환시의 이름변경 방식을 변경했습니다. 커스텀 이름이 존재하지 않는 경우, 변환 프로세스에서 액터 이름변경이 가능할 것입니다.
  • FBX SDK 를 2014.2.1 로 업그레이드하여 에디터가 FBX 2014 파일과 호환됩니다.
  • 신규: 게임내 Slate UI 가 몰입 모드에 있을 때 에디터 뷰포트에 보입니다.
  • 신규: Radial Force 컴포넌트에 오브젝트 질의 유형 중 사용자 편집가능 배열을 추가했습니다.
  • FBX 임포트 유형 선택기에 약간의 글귀를 추가, 사용자에게 특정 임포트 유형이 자동 감지되었음을 알리고, 사용자가 이를 덮어쓰려 할 경우 경고를 띄웁니다.
  • 소켓 트랜스폼에 대한 변화가 이제 월드의 애셋 인스턴스에 즉시 반영됩니다.
  • '복제' 기능이 숨긴 액터에도 작동하도록 변경되었습니다.
  • Dynamic Expression Parameter 노드가, 다른 것의 이름 변경시 같이 업데이트되도록 변경되었습니다.
  • Based 이동이 캐릭터의 베이스를 사용하도록 변경되었습니다.
  • 캐릭터의 Based 이동이 쿼터니언을 사용하도록 변경되었습니다.
  • 노멀 맵 자동 감지시 평균낼 때 alpha=0 픽셀을 검정으로 간주하도록 (그래서 대부분이 파란 스프라이트를 노멀 맵으로 잘못 식별하지 않도록) 조정했습니다.
  • 프로젝트 세팅을 항상 기본으로 저장하도록 업데이트했습니다.
  • Source Code Access (소스 코드 접근) 함수성을 플러그인으로 이동시켰습니다.
  • 소스 코드 접근이 이제 메인 스레드에서 이루어집니다.
  • 스태틱 메시가 사용할 LOD 계산시 거리가 아닌 화면 크기를 검사하도록 변경했습니다.
  • 액터 이름변경시 그 유효성 검사를 할 때 앞뒤의 공백을 무시하도록 변경했습니다.
  • 디테일 탭의 "Range" 프로퍼티가 별도의 구조체 커스텀이 가능하도록 변경했습니다.
  • 캔버스에 머티리얼을 ES2 모드로 렌더링하도록 업데이트했습니다.
  • Engine Content 에서 "소스 콘트롤에 서밋...' 대화창이 나타나지 말아야 하는 상황에 나타나던 것을 고쳤습니다.
  • "서밋" 메시지 아이콘이 더이상 심볼을 "멈추지" 않도록 수정했습니다.
  • Instanced Static Mesh Components (인스턴싱된 스태틱 메시 컴포넌트)에 대해 스태틱 라이팅이 꺼지도록 수정했습니다.
  • 프로젝트 템플릿 이름과 설명에 현재 언어에 대한 번역이 없는 경우 영어로 대체되도록 수정했습니다.
  • '파일 서밋 대화창'이 다른 곳의 엔진 스타일을 따르도록 수정했습니다.
  • 캐스케이드 ToggleRealtime 툴팁이 다른 에디터 뷰포트와 일치하도록 수정했습니다.
  • '파타클 시스템 컴포넌트'가 표시여부를 올바르게 토글하도록 고쳤습니다.
  • 씬 아웃라이너 메뉴에서 뷰포트 위치 메뉴 항목을 제거했습니다.
  • 버텍스 페인트 사용시 Ctrl 선택 기능을 제거했습니다.
  • 씬 아웃라이너에 도킹시 정상 작동하지 않던 것을 고쳤습니다.
  • 새로운 소스 콘트롤 계정 생성시 발생하던 문제를 고쳤습니다.
  • Visual Studio 인스턴스가 여러 개 열리던 것을 고쳤습니다.
  • Mac 에서의 셧다운시 발생하던 크래시를 고쳤습니다.
  • 경로에 공백이 포함된 경우 Subversion 이 제대로 된 사본에 연결되지 못하던 것을 고쳤습니다.
  • 폰트 에디터 툴바 아이콘이 빠져있던 것을 고쳤습니다.
  • 일부 액터 유형에 대한 에디터 스프라이트가 너무 커서 그 크기를 조정했습니다.
  • 레벨 뷰포트를 너무 멀리 줌아웃시킬 때 발생하던 divide by 0 오류를 고쳤습니다.
  • Stat url 명령이 정상 작동할 때까지 잠시 제거했습니다.
파티클 및 캐스케이드
  • 신규: 자취 VFx 제작용 Anim Trails 타입 데이터를 구현했습니다.
콘텐츠 브라우저
  • 신규: 콘텐츠 브라우저에서 Enter 키와 Space Bar 키를 리매핑할 수 있게 되었습니다.
머티리얼 에디터
  • 신규: 릴리즈 통계내장 통계 툴바 버튼에 아이콘이 생겼습니다.
  • 내장 통계 - 이 통계는 그래프에 노드 없이 셰이더의 기본 비용을 나타냅니다.
  • 릴리즈 통계 - 이 통계는 그래프의 노드를 포함한 셰이더의 비용을 나타냅니다.
  • 신규: 머티리얼 에디터애 찾기 결과 탭이 추가되었습니다.
  • 신규: 컴포넌트 마스크에 대한 단축키 Shift+C 가 추가되었습니다.
텍스처 에디터
  • Use Specified Mip Level (bUseSpecifiedMipLevel, 지정된 밉 레벨 사용) 프로퍼티의 기본값을 False 로 변경했으며, True 일 경우 시네마틱 밉은 UI 에서 무시됩니다.
페르소나
  • 읽기 전용 그래프 편집시 디폴트 및 디테일 인스펙터가 꺼지도록 변경했습니다.
  • CPF_DisableEditOnTemplate 플래그가 잘못 설정되던 것을 지우도록 하는 코드를 추가하여 수정했습니다.
Source Control
  • 신규: 에디터에서 소스 콘트롤의 디렉토리를 동기화시키는 기능을 추가했습니다.
  • 신규: OpenSSL 1.0.1g 포함 P4 API 2014.2 를 추가했습니다.
BSP
  • 신규: BSP 액터는 이제 그 표면이 선택된 것이 없으면 선택 해제됩니다.
  • Slate Property Editor Combo 요소가 (SPropertyEditorCombo) 열리기 전 선택을 업데이트합니다.
AI 및 Navmesh
  • 신규: 비헤이비어 트리가 이제 하위 트리에서 루트 레벨 데코레이터를 사용합니다.
UI
  • 전체 화면 모드 해제시 원래 창의 위치로 설정됩니다.
뷰포트
  • 신규: 게임내 Slate UI 가 몰입 모드일 때 에디터 뷰포트에 보입니다.
씬 아웃라이너
  • 신규: 현재 레벨에 있지 않은 액터를 숨기는 필터를 추가했습니다.
  • 신규: 씬 아웃라이너 폴더에 그 안의 모든 액터를 선택하는 메뉴 옵션이 새로 생겼습니다.
  • 신규: '복제' 기능이 숨은 액터에도 작동합니다.
  • 행이 선택된 경우, "눈" 표시여부 아이콘이 현재 선택에 대해 작동하도록 변경했습니다.
  • 씬 아웃라이너 메뉴에서 뷰포트 위치 메뉴 항목을 제거했습니다.
랜드스케이프
  • 신규: 인스턴싱된 스태틱 메시에 대해 내비게이션 지오메트리 익스포트를 구현했습니다.
  • 신규: 랜드스케이프 스플라인에 대한 FBX 익스포트 기능이 지원됩니다.
  • 신규: LODBias/ForcedLOD 가 라이트매스 지오메트리에 영향을 끼치도록 하는 기능이 추가되었습니다.
  • 신규: 적당한 트랜지션과 함께 트라이앵글이 쉽게 감소되는 새로운 LOD 감쇠 모델을 추가했습니다.
  • 신규: 스플라인 툴 UI 에 Auto Rotate on Join (합류시 자동 회전)을 노출시켰습니다.
  • 신규: 랜드스케이프 스플라인을 스트리밍 레벨로 이동시키는 기능을 추가시켰습니다.
  • 랜드스케이프 레이어 임포트 시간을 감소시켰습니다.
  • 재등록시 선택 렌더링을 수정했습니다.
  • LODDistanceFactor 적용 문제를 고쳤습니다.
  • 일부 랜드스케이프 컴포넌트가 머티리얼 컴파일에 실패하던 문제를 고쳤습니다.
  • 기존 랜드스케이프의 LandscapeMaterial 프로퍼티를 비울 때 발생하던 크래시를 고쳤습니다.
  • 구멍이 있는 랜드스케프 컴포넌트를 스트리밍 레벨로 이동한 이후에의 렌더링 문제를 고쳤습니다.
  • 페인트 모드에서 평탄화 툴의 조각 전용 옵션을 제거했습니다.
월드 브라우저
  • 신규: 타일링된 랜드스케이프 임포트 기능을 추가했습니다. 타일링된 하이트맵/웨이트맵은 World Machine 같은 어플리케이션에서 익스포트 가능합니다.
오디오
  • 신규: 언리얼 엔진 3 의 Omni Radius 를 통합시켰습니다.
애니메이션
  • 신규: 네이티브 '애님 노티파이' 와 스테이트가 지원됩니다.
  • 신규: 캐릭터와 다른 클로딩 오브젝트(예: 커튼) 사이의 상호작용을 가능하게 해 주는 클로쓰 콜리전 유형을 새로 추가했습니다. "Collide with Environment" (환경과 충돌) 체크 박스를 켜 주기만 하면 작동합니다.
  • 부가적인 클로쓰 시각화 메뉴를 추가했습니다. 페르소나에서 '표시' 메뉴 클릭시 '클로딩' 서브메뉴를 확인할 수 있습니다. 캐릭터에 클로딩이 있을 때만 나타납니다.
트랜슬레이션 에디터
  • 신규: 번역 에디터에 검색 탭으로 검색 기능을 추가했습니다.
  • 신규: 써드 파티 어플리케이션에서의 번역이 가능하도록 Portable Object (.po) 포맷으로 임포트/익스포트하는 기능을 추가했습니다. 임포트시 변경내용이 'Changed on Import' (임포트시 변경내용) 탭에 표시됩니다.
  • 현지화 프로젝트에 검색되는 디렉토리 갯수를 늘려 환경설정 파일에 지정된 'LocalizationPath' 디렉토리를 포함하도록 했습니다.
블루프린트
  • 신규: 블루프린트 에디터의 컴퓨넌트 모드에서 선택된 컴포넌트에 대한 복사하기/붙여넣기 기능이 지원됩니다.
  • 블루프린트 그래프 노드에 발생하는 중복 이동 호출을 수정했습니다.
렌더링
  • 신규: 스태틱 메시 스트리밍 텍스처 인수 계산시 빌드 스케일이 고려됩니다.
  • 신규: GPU 스프라이트에 대해 Color Over Life 와 함께 파티클 파라미터 분포를 사용할 수 있게 되었습니다.
  • 신규: Mesh Modifies Material Position (메시가 머티리얼 위치 변경)이 머티리얼 트랜슬레이터의 결과를 사용합니다.
  • 신규: Particle Lights (파티클 라이트)에 (뷰마다의) 카메라 오프셋이 적용됩니다.
  • 신규: 스피드트리에서 임포트된 모든 스태틱 메시 애셋을 나열하는 커맨드렛이 추가되었습니다.
  • 신규: Atmospheric Fog (애트머스페릭 포그) 액터에 하늘의 태양 원반 크기 조절을 위한 Sun Disc Scale 프로퍼티를 추가했습니다.

블루프린트

  • 신규: 다른 블루프린트 애셋을 블루프린트 그래프에 드래그 앤 드롭하여 Add Child Actor Component 노드를 구할 수 있습니다.
  • 신규: HUD 블루프린트에 Deproject 노드를 추가, 플레이어 콘트롤러 블루프린트에 Deproject Screen Position to World 를 추가했습니다.
  • 블루프린트 함수의 로컬 변수가 이제 Get/Set 노드를 활용합니다.
  • 스카이 라이트는 이제 블루프린트 클래스입니다.
  • EnumLiteral 노드를 추가했습니다.
  • 블루프린트 변수 핀 유형 선택 및 컴포넌트의 드롭다운 메뉴 이동시 화살표키를 사용할 수 있습니다.
  • 우클릭 '액터로 대체' 메뉴를 통해 액터를 블루프린트로 대체할 때, 그 블루프린트가 해당 액터의 자손인 경우, 에디터는 프로퍼티 복사를 시도할 것입니다.
  • UEdGraphSchema::GetGraphContextActions 의 기본 GetMenuEntries 작동방식에 폐기된(deprecated) 노드를 숨겼습니다.
  • 디버그 필터 위젯에서 패상된 클래스를 선택할 수 있도록 했습니다.
  • (쿠킹 도중과 같은) 커맨드렛으로 컴파일할 때, 사이트 생성 디버깅 및 트레이스를 껐습니다.
  • 블루프린트 컴파일러 오류가 에디터에서 플레이 시작시 한 번만 표시되고, 그 블루프린트가 변경될 때까지 다시 나타나지 않도록 수정했습니다.
  • Spring Arm Component 를 로테이션 랙 포함, 특정 컴포넌트에서의 로테이션만 상속하는 옵션으로 업데이트했습니다.
  • Game Mode 에 Pawn 을 지정하지 못하도록 업데이트했습니다.
  • 블루프린트에 프리미티브 컴포넌트의 Set Phys Material Override 노드를 노출시켰습니다.
  • 타임라인 복제시의 크래시 수정 및 외부 그래프 제작시의 작업방식을 개선시켰습니다.
  • 셀프 핀 유형이 없거나 알려져 있지 않을 때의 블루프린트 컴파일 오류 메시지를 수정했습니다.
  • '선택된 액터를 기반으로 블루프린트 생성' 기능이 애셋이 연결되지 않은 액터 유형에도 작동하도록 수정했습니다.
  • 블루프린트 클래스와 구현된 인터페이스 사이에 순환 종속성이 있을 때 발생하는 serialize 크래시를 고쳤습니다.
  • 블루프린트 함수 노드 출력 핀이 내부 스켈레톤 클래스 유형에 잘못 매핑된 것을 고쳤습니다.
  • 핀 연결 문제를 고쳤습니다 / 입력이 연결된 SpawnActor 노드상의 스폰 클래스 유형 변경시 크래시가 날 수 있었습니다.
  • 블루프린트 중단점이 걸렸을 때 게임 스레드의 실행 완료를 기다리느라 바빴던 로직 오류를 고쳤습니다.
  • 네이티브 C++ 클래스에서 파생되는 이주된 블루프린트 애셋을 배치하려할 때의 크래시를 고쳤습니다.
  • TriggerBox 에서 파생된 새 블루프린트를 열려고 할 때의 크래시를 고쳤습니다.
  • 클래스 선택기에서 내부 'SKEL_*' 클래스를 제거했습니다.

렌더링

  • 한 프레임에 걸친 렌더 타겟 풀을 시각화시키는 r.RenderTargetPool.Events 를 추가했습니다.
  • 모빌리티가 스태틱인 스카이 라이트를 구울 수 있게 되었으며, 모바일에서도 지원됩니다.
  • r.AmbientOcclusionSampleSetQuality cvar 를 추가시켜, 넓은 범위와 적은 레벨에서도 사용할 수 있게 되었습니다.
  • 파티클 스폰 및 데쓰 이벤트 생성시 orbit offset 을 고려하도록 하는 기능이 지원됩니다.
  • 머티리얼 에디터에 디스턴스 필드 섀도우 없이 모바일 라이트매핑된 셰이더에 대한 인스트럭션 수가 표시됩니다.
  • 디렉셔널/포인트/스포트 라이트 기여를 끄는 표시 플래그를 추가했습니다.
  • 퍼포먼스 테스트용 r.OptimizeForUAVPerformance 를 추가했습니다.
  • 익스포넨셜 포그 내부산란에 대한 디렉셔널 라이트 선택 프로세스를 업데이트, 'IsUsedAsAtmosphereSunlight' 로 환경설정된 첫 라이트를 사용하도록 했습니다.
  • Point Attractors 가 축에 따른 이동 필터링이 가능하도록 업데이트했습니다.
  • 메시 파티클 CPU 렌더링이 ES2 용으로 최적화되도록 업데이트했습니다.
  • 탄젠트 스페이스 계산이 xNormal 에 더욱 잘 맞도록 변경되었습니다.
  • 게임 콘솔 자동 완성이 에디터와 더욱 비슷해지도록 개선시켰습니다.
  • 디더 노이즈와 샘플 수를 적게 사용하도록 Screen Space Ambient Occlusion 이 최적화 및 개선되었습니다.
  • 할당 및 해제된 GBfferTargets 가 이제 요청시 재사용 가능하도록 업데이트했습니다. 그러나 가능하면 포스트 프로세싱 전에 해제할 수 있도록 해 줘야 할 것입니다.
  • OpenGL 4 지원 업데이트:
    • ARB_vertex_attrib_binding
    • ARB_buffer_storage
    • Re-enabling redix sort on OpenGL
    • Depth bounds test
    • NVX_gpu_memory_info
    • ARB_tessellation_shader
  • '렌더 타겟' 사용법을 최적화시켜 '타일 디퍼드 라이팅'에 대한 패스를 하나 없애, '라이트 누적'을 소모시키는 것이 하나 줄게 되었습니다.
  • 일부 Light Propagation Volume 프로퍼티 이름을 보다 명확하게 변경했습니다.
  • SSAO Occlusion 기본 세팅을 광륜이 덜하도록 변경했습니다.
  • 파티클 라이트가 Camera Offset 모듈과 정상 작동하도록 변경되었습니다.
  • GPU 이미터에 대해 파티클 파라미터 분포가 Color Over Life 모듈과 정상 작동하도록 변경되었습니다.
  • 변수에 스태틱 키워드를 사용하여 수동 작성한 셰이더는 이제 그 선언에서 const 로 선언되도록 변경되었습니다.
  • 크로스 컴파일러에서의 복잡도 감소를 위해 필요한 것으로, 고정적이지 않은 부분은 대안을 통해 이룰 수 있습니다.
  • 리플렉션이 서브서피스 스캐터링 머티리얼에 작동하도록 수정했습니다.
  • 셰이더 복잡도 뷰 모드를 수정했습니다.
  • 아주 작은 오브젝트에 발생하던 그림자 부작용을 고쳤습니다.
  • 새로운 셰이더로 시작시 발생하던 크래시를 고쳤습니다. 리소스 초기화에 RHIClear 가 사용되고 있었습니다.
  • 분할화면 리플렉션 인바이언먼트 렌더링을 고쳤습니다.
  • 리플렉션 인바이언먼트가 껴졌을 때의 렌더링을 고쳤습니다.
  • SM4 패쓰에 SSR 이 적용되던 것을 고쳤습니다.
  • 레이어드 리플렉션 캡처 관련 블렌딩 버그를 고쳤습니다.
  • LPV 가 꺼진 경우, LPV 가 비활성화되는 최적화가 전처럼 작동하도록 하는 최적화를 고쳤습니다 (새도우 맵 렌더링이 빨라집니다).
  • 캐릭터의 미리계산된 GI 적용시 사용되는 모든 라이트 프로브가 절반 밝기로 되던 버그를 고쳤습니다.

게임플레이 및 프레임워크

  • UBT 가 이제 환경 변수가 아닌 XML 파일을 사용하도록 환경설정되었습니다.
  • 특정 빌드 환경설정이 지원되지 않을 때 UBT 가 오류 메시지와 함께 일찍 종료됩니다.
  • '카메라 애님'이, 블루프린트 안에서도 지원됩니다.
  • 활성 '애님 그래프'에 대한 게임내 디버그 디스플레이를 추가했습니다.
  • Portable Object (.PO) 파일에 대한 현지화 임포트 기능을 추가했습니다.
  • 네이티브 애니메이션 노티파이가 지원됩니다.rted.
    • UAnimNotify 또는 UAnimNotifyState 에서의 상속하면 그 클래스가 노티파이 메뉴에 나타나 애니메이션에 추가시킬 수 있게 됩니다.
  • 페르소나의 노티파이 패널에 다중 선택이 지원되며, 그 상태에서 드래그 앤 드롭, 복사/붙여넣기도 작동합니다.
  • 부모 애니메이션 블루프린트의 애니메이션 애셋 레퍼런스를 이제 자손 블루프린트에서 덮어쓸 수 있게 되었습니다.ints.
    • 페르소나의 창 메뉴를 통해 열 수 있으며, 새로운 탭의 이름은 '애셋 오버라이드 에디터' 입니다.
  • 루핑 파티클 이미터 상의 시작/중지 제어를 위한 네이티브 애니메이션 노티파이 스테이트를 추가했습니다.
  • 모션 축을 이제 C++ 와 블루프린트 양쪽에서 입력 컴포넌트에 바인딩할 수 있습니다.
  • 게임별로 비동기 로딩 시간 제한을 설정할 수 있습니다. UEngine 의 AsyncLoadingTimeLimit 또는 PriorityAsyncLoadingExtraTime 을 변경하면 됩니다. 심리스 트래블같은 상황 도중 우선권 로드가 발생하는 경우, I/O 에 블로킹된 경우에도 일정 CPU 비용에 훨씬 높은 처리량으로 사용가능한 모든 시간을 사용합니다.
  • 신규: ULevelStreamingCreateInstance 함수를 추가하고, 블루프린트에 노출시켰습니다. 이를 통해 기존 레벨 스트리밍 오브젝트에 대한 고유 이름 사본 생성이 가능하여, 사용자는 특정 맵 패키지에 대한 다중 인스턴스의 스트림 인/아웃이 가능합니다.
  • 신규: Behavior Trees 를 블루프린트 유형으로 만들어 블루프린트 제작자가 프로퍼티로 사용할 수 있도록 했습니다.
  • AIController 에 대해 블루프린트 구현 가능한 이벤트 'OnPosses' 를 추가했습니다.
  • 이동이나 EQS 질의와 같은 AI 요청과 사용할 수 있는 범용 AIRequestID 개념을 도입했습니다.
  • AIController 에 '비헤이비어 트리'와는 별도로 지정된 '블랙보드 애셋'을 사용하도록 만드는 함수를 추가했습니다.
  • 이제 캐릭터 이동이 외부의 힘에 영향을 받을 수 있습니다.
    • Radial Force 컴포넌트 포함입니다.
  • 신규: 터치 입력이 HUD 히트 박스에 지원됩니다.
  • 입력 프로젝트 세팅에서 FOV 프로퍼티에 따른 마우스 스무딩 기능을 사용할 수 있습니다.
  • 애셋 레지스트리의 애셋에 대한 질의시 메모리 내 애셋을 포함시키지 않고 가능합니다. 거의 쓰게 될 일이 없겠지만, 특수한 경우에 퍼포먼스 이득이 쏠쏠합니다.
  • SCOPE_LOG_TIME 로그와 같지만 ms 가 아닌 초 단위로 하는 SCOPE_LOG_TIME_IN_SECONDS 를 추가했습니다.
  • 모바일 디바이스와 APEX 빌드가 아닌 것에 대해 서브 스테핑이 지원됩니다.
  • 비히클 애님 인스턴스와 비히클에 대한 휠 핸들러를 추가했습니다.
  • 단순한 Look at 콘트롤을 추가했습니다.
  • 조각 모드에서 폴리지가 현재 레벨에 있는 랜드스케이프 뿐만 아니라 변경되는 *모든* 랜드스케이프 컴포넌트에 달라붙도록 만들었습니다.
  • 일부 카메라 지터링 현상 해결을 위해 SpringArmComponent 틱을 PostPhysics 안으로 이동시켰습니다.
  • NVTT (nVidia Texture Tools) 를 v2.0.8 로 업그레이드했습니다.
  • PVCT 익스포터가 치수가 4096 을 초과하는 이미지를 익스포트하도록 업데이트되었습니다. 소스 이미지는 가장 큰 치수가 4096 이하인 밉 체인의 첫 번째 이미지에서 옵니다.
  • 공식 릴리즈를 위해 다수의 비히클 튜닝 데이터를 재정비했습니다.ease.
    • 단위를 cm 에서 m 으로 변경했습니다.
    • 공식 릴리즈를 위해 튜닝 변수를 추가 및 이동시켜, 기존 튜닝은 약간의 수정이 필요할 것입니다.
  • 이제 HUD hit box click 와 Component OnClick 이벤트가 싱글/더블 클릭 모두에 반응합니다.
  • 표시여부 트레이스가 명시적으로 막히지 않는 이상 Radial Damage 의 기본값이 'unblocked' 가 되도록 업데이트했습니다. 대미지 여부 토글은 bCanBeDamaged 를 사용합니다.
  • CreatePlayer 가 블루프린트에서 호출 가능하도록 업데이트했습니다.
  • PlayerStart 선택이 개선되었습니다. 모든 Player Start 는 'unoccupied' (선점되지 않은) 시작 지점인 것으로 간주됩니다.
  • 스트리밍 매니저가 너무 텍스처 의존적이 되지 않도록 리팩터링했습니다.
  • 부분만 사용하기 보다는 전체 섀도우 타겟을 클리어 / 리졸브 가능하도록 섀도우 클리어 / 리졸브를 최적화시켰습니다.
  • 트리 재생성시 고아가 된 비헤이비어 트리 노드를 정리하도록 업데이트했습니다.
  • 에디터에서 플레이 용으로 복제할 때, 에디터에서 플레이 오브젝트에 대한 레퍼런스를 제대로 감지하여 수리할 수 있도록 '스트링 매셋 레퍼런스'를 업데이트했습니다.
  • 소유된 (자신의 Outer 계층구조에 액터를 갖는) 컴포넌트가 액터 자신 이외의 Outer 를 가질 수 있도록 변경했습니다.
  • Audio Compression Info 클래스가 쿠킹된 플랫폼에 선택될 수 있도록 변경했습니다.
  • '언리얼 버전 선택기' (와 일반적으로 .uproject 에 연결된 엔진 버전)가 퍼포스 배포 버전과 호환됩니다.
  • 버전이 맞지 않는 바이너리로 에디터를 실행시키면 이제 자동으로 컴파일 시도하도록 변경되었습니다.
  • 전과 다른 위치에 있는 에디터로 프로젝트를 열면, 바로 복사/업그레이드한 다음 필요한 대로 프로젝트를 재생성하고 바이너리를 다시 컴파일하겠냐고 묻습니다.
  • 크래시 리포트가 확인할 수 있는 콜스택 조각이 있는 경우, 항상 클라이언트 측이 평가되도록 수정했습니다.
  • 레벨 에디터 뷰포트에서 '스켈레탈 메시 컴포넌트'가 그 LOD 를 올바르게 업데이트하도록 수정했습니다.
  • 월드의 표시여부가 꺼졌다 켜졌다 할 때마다 에디터 오프셋이 있는 월드에 오프셋이 재적용되도록 만들던 문제를 고쳤습니다.
  • 게임 모드 생각에 플레이어 없이 관람자만 있다고 생각하여 StartMatch 가 호출되지 않도록 만들던 ToggleBetweenPIEandSIE 내의 셈 관련 오류를 고쳤습니다.
  • PC 에서의 태피 치킨 실행 관련 문제를 고쳤습니다.
  • 비히클 게임 샘플의 콘트롤 메뉴 관련 문제를 고쳤습니다.
  • 언리얼 엔진 설치해제 도중 일부 폴더가 제대로 제거되지 못하게 만드는 문제를 고쳤습니다.
  • DirectoryWatcher 셧다운시의 크래시를 고쳤습니다. 취소된 I/O 요청은 핸들을 닫고 요청을 삭제하기 전에 완료되어야 합니다.
  • 어서트가 아닌 크래시가 로그에 콜스택을 생성하지 못하도록 하는 버그를 고쳤습니다.
  • 블루프린트 로딩시의 if 문 로직이, 변수가 !NULL 일 때가 아니라 NULL 인 경우에만 접근하도록 하던 것을 고쳤습니다.
  • 네트워크 접속이 에디터에서 플레이 도중에는 타임 아웃 되지 않도록, 결국 서버는 로컬이 되도록 수정했습니다.
  • 페르소나에서 소켓이 남는 디스플레이 버그를 고쳤습니다.
  • 파생된 블루프린트에 상속된 프로퍼티가 표시되지 않던 버그를 고쳤습니다.
  • 스켈레탈 메시 로딩시 붙은 애셋을 찾을 수 없는 경우 발생하던 크래시를 고쳤습니다.
  • Layered Blend Per Bone 에서 0.0 으로 이동하면 포즈 업데이트가 제대로 되지 않던 버그를 고쳤습니다.
  • 메시가 삭제된 경우 랜드스케이프 스플라인의 안보이는 콜리전을 수정했습니다.
  • 기존 랜드스케이프로의 8 비트 하이트맵 리임포트를 고쳤습니다.
  • 여러가지 랜드스케이프 에디터 명령이 PIE 월드에 실수로 실행되(어 크래시가 나)던 문제를 고쳤습니다.
  • 경사로 및 랜드스케이프 스플라인 툴이 랜드스케이프 콜리전/내비메시를 업데이트하지 못하던 것을 고쳤습니다.
  • 랜드스케이프 스플라인 상의 '카메라' 및 '표시여부' 트레이스 플래그를 수정했습니다.
  • 모바일 디바이스에서 래그돌 렌더링이 제대로 업데이트되지 않고있던 버그를 고쳤습니다.
  • 데디케이티드 서버에 대한 서브 스테핑 지원 사항을 수정했습니다.
  • 반투명 선택이 꺼진 경우 PhAT 바디 선택이 되지 않던 문제를 고쳤습니다.
  • 디스트럭터블 메시 청크군이 제대로 업데이트되지 않던 문제를 고쳤습니다.
  • Form 확장된 디스트럭터블 메시의 크래시를 고쳤습니다.
  • 인스턴싱된 스태틱 메시에 대한 콜리전 감지를 고쳤습니다.
  • 카메라 컨스트레인트 검정 바가 표시중일 때와 해상도 스케일(r.ScreenPercentage)을 사용중일 때 텍스처 시각화가 정상 작동하도록 수정했습니다.
  • 페인트 모드에 있을 때 랜드스케이프 에디터 평탄화 툴에서 조각 전용 옵션을 제거했습니다.
  • '마우스 휠 회전' 입력 매핑을 제거했습니다.
  • 스켈레탈 메시에서 bUseSingleBodyPhysics 를 제거했습니다.
프로파일러
  • 스레드 뷰의 첫 버전을 추가했습니다. 게임 내 데이터 캡처를 위해서는 stat startfileraw 콘솔 명령을 사용합니다.
디버그 헬퍼 그리기
  • 플로트 값에 대한 막대그래프를 표시하는 기능이 추가되었습니다. FDebugFloatHistory 로 샘플을 기록한 다음, DrawDebugFloatHistory 로 게임내에서 그립니다. 블루프린트에서도 사용할 수 있습니다.

오디오

  • Override Attenuation 은 이제 프로퍼티에 사용가능한 감쇠 옵션을 토글합니다.
  • Sound Cue 카테고리 이름과 Sound Actor 카데고리 순서를 변경했습니다.
  • 기존에 UE3 에 추가되었던 사운드 관련 Omni Radius 를 통합시켰습니다.
  • 추후 스트리밍 사운드에 사용될 Opus 오디오 포맷을 만들었습니다.

코어

  • 플러그인을 통한 스크립팅 언어 통합이 지원됩니다.gins.
    • 현재 실험 기능으로 Lua 통합이 진행되고 있습니다.
  • 구형 C++ API 폐기 지원을 위해 DEPRECATED 매크로를 추가했습니다.
  • SYSTEM 으로 로그인했을 때 비주얼라이저 복사시의 오류를 수정했습니다.

Paper 2D

  • Paper2D 스프라이트용 표시 플래그를 추가했습니다.
  • 프로토타입 스프라이트 아틀라스 생성 기능을 추가했습니다 (미해결 데이터/작업방식 문제가 여럿 있습니다).
  • 플레이스홀더 세팅 패널을 추가했습니다.
  • UPaperSprite 애셋에 대한 커스텀 아카이브 버전을 추가했습니다.
  • 스프라이트가 이제 와이어프레임 모드에서 렌더링됩니다.
  • UPaperRenderComponent 기본 모빌리티를 스태틱으로 설정했습니다.
  • Paper2D 모듈이 쿠킹된 게임에서 사용할 수 있도록 실행시간으로 마킹되었습니다 (주: 플러그인은 BaseEngine.ini 에서 켜 줘야 엔진에 콘텐츠 전용 게임에서 사용할 수 있도록 다시 컴파일됩니다).
  • Paper2D 렌더 컴포넌트에 연결된 애셋을 반환하도록 하는 AdditionalStatObject 를 구현했습니다 (통계화 오류 메시지에 사용됩니다).
  • 내장 머티리얼이 작은 텍스처를 가리키도록 업데이트하고, 반투명으로 변경된 경우 오파시티 링크를 연결했습니다.
  • JSON 스프라이트 시트 프레임 임포트시 생성되는 애셋 이름을 정상화시켰습니다.
  • Paper2D 뷰포트 클라이언트에서 직교 및 원근 모드 둘 다 강제로 VMI_it 모드가 됩니다.
  • 내장 머티리얼이 작은 텍스처를 가리키도록 업데이트하고, 반투명으로 변경된 경우 오파시티 링크를 연결했습니다.
  • 타일 맵 렌더링 로테이션을 부분 수정했습니다 (아직 제대로 렌더링되지 않고 있습니다).
  • 네가티브 볼륨 3D 콜리전 버그를 수정했습니다. NAN 매스와 콜리전이 소실되던 문제가 있었습니다.
  • UPaperRenderComponent::GetSocketTransform 의 RTS_Actor / RTS_Component 스페이스 지원을 수정했습니다.
  • Paper2D 플러그인을 켜고 쿠킹했을 때의 크래시를 고쳤습니다.
  • 타일 세트 뷰포트의 보거스 선택 사각형을 수정했습니다.
  • 스프라이트/플립북 에디터 뷰포트에서 스프라이트가 나타나지 않던 것을 고쳤습니다.
  • 스프라이트와 플립북 에디터에서 빠져있던 툴바 아이콘을 고쳤습니다.
  • 느린 진행상황 대화창의 오타를 고쳤습니다 (git 제외).
  • UPaperRenderComponent 에서 불필요한 틱을 제거하고, 프로퍼티 코멘트를 약간 추가했습니다.

네트워킹/h4>

  • 여러 레벨에 유지되어야 하는 비컨에 데이터를 저장하는 BeaconState 클래스를 추가했습니다.
  • 심리스 트래블 도중의 음소거를 수정했습니다.
  • 데디케이티드 서버에서 PlayerController 가 잘못된 IsLocalPlayerController() 결과를 반환하던 것을 고쳤습니다.
    • PlayerController 는 생성되었지만 Role/RemoteRole 는 아직 설정되지 않은 Login()PostLogin() 사이 잠깐동안 결과가 유효하지 않습니다.
    • PlayerController 생성/소멸 도중 IsLocalPlayerController 가 호출되는 경우의 경고를 추가했습니다.
온라인 서브시스템
  • 모듈에 DestroySubsystem 호출을 추가, OSS 의 단일 인스턴스 소멸이 가능합니다.
  • null 온라인 서브시스템에 VoIP 가 활성화되었습니다.
데디케이티드 서버
  • Autologin 가 이제 OnLoginComplete 델리게이트만 사용하도록 수정했습니다.
  • 'autologin' 플로우에서 OnLoginStatusChanged 를 제거했습니다. 실제 로그인하려 해 보니 옳지 않습니다.

플랫폼

  • IPv6 를 지원하는 새로운 소켓 시스템이 추가되었습니다.
  • 윈도우 XP 지원이 실험단계 기능으로 추가되었습니다.
  • 쿠킹된 윈도우 빌드용으로 OpenGL 이 사용 가능합니다.
  • 편집 -> 프로젝트 세팅 -> [플랫폼 | 윈도우] 에 윈도우용 타겟 RHI 옵션이 추가되었습니다.
  • GL3 하드웨어 지원이 개선되었습니다.
  • 모바일 광고 지원 프레임워크가 추가되었습니다.
    • iOS 와 안드로이드 모두에 대한 기본적인 프레임워크가 지원됩니다.
    • iOS 초기 지원을 통해 플러그인과 모듈을 통한 symlink 및 파일 스테이징 기능 지원 포함 써드 파티 프레임워크가 가능합니다.
    • iOS 용 TapJoy 광고 플러그인 초기 지원이 가능합니다.
  • GL3 하드웨어 지원이 개선되었습니다.
  • 개발 도중의 로드 시간 관련 문제 해결을 위해 서버 접속시의 타임아웃 시간을 늘렸습니다.
  • 아웃바운드 번치에 데이터 쓰기를 처리하는 코드를 정리했습니다.
  • 심리스 트래블 버그를 고쳤습니다.
  • 아웃바운드 번치에 데이터 쓸 때 희귀 조건 하에서 어서트가 발생할 수 있었던 꽤나 큰 버그를 잡았습니다.
  • 부분 번치 시퀸스 id 가 잘못 묶이게 만들던 문제를 고쳤습니다.
안드로이드
  • 안드로이드 Google Play 서비스 라이브러리가 포함되었습니다.
  • 안드로이드 Google Play 용 업적 및 점수판이 새로운 OnlineSubsystemGooglePlay 를 통해 노출됩니다.
  • 언리얼 엔진 4 에서 ES2 랜드스케이프 버텍스를 최저 LOD 에서부터 최고 LOD 까지, 처음 사용된 순서대로 소팅합니다. 각 LOD 에서의 드로 콜에 대한 MaxVertexIndex 범위를 최소화시켜, Mali GPU 디바이스의 퍼포먼스를 크게 향상시킵니다.
  • 안드로이드용 AdMob 이 지원됩니다. 안드로이드 프로젝트 세팅에 AdMob Ad ID 를 추가한 다음 블루프린트 ad 인터페이스를 사용하여 광고를 표시하고 숨길 수 있습니다.
  • ES 3.0 을 지원한다 보고된 모든 안드로이드 디바이스에 ES 3.0 GLSL 셰이더를 활성화, 리플렉션 큐브맵 러프니스 룩업이 가능해졌습니다.
  • 부동소수점 렌더 타겟을 지원하지 않는 디바이스에서의 크래시를 고쳤습니다.
  • 설치용 배치 파일에 생성되는 rm 명령에서 -f 를 제거했습니다. (Galaxy S III 같은) 일부 디바이스에서는 -f 를 인식하지 못해 예전 버전 파일을 제거하지 못합니다.
iOS
  • iOS 에 모션이 지원됩니다.
  • 패키징되어 설치된 앱을 수동 실행한 다음 시작시 XCode 디버거를 붙이게끔 기다리도록 할 수 있는 -waitfordebugger 명령줄 옵션을 추가했습니다.
Mac
  • UE4 에 Mac OS X 상의 svn-1.8.1 자체 스태틱 빌드가 포함됩니다.
  • Mac OS X 에 OculusRift 지원을 활성화시킬 수 있게 되었습니다.
  • OS X 에서 다중 모니터 표시 처리방식을 개선시켰습니다.
  • Mac OS X 에서 에디터에 마우스 커서를 올릴 때의 퍼포먼스가 향상되었습니다.
  • 셰이더 모델 4 에서의 반투명 셀프 섀도잉을 활성화시켜 Mac OS X 의 장점을 활용하도록 했습니다.
  • 3D 또는 2D 배열 텍스처로의 렌더링을 지원하지 않는 Mac GL 3.3 이하 드라이버에 대한 지원이 개선되었습니다.
    • ATi 4xx0, Nvidia 9xx0/1xx/3xx, Intel HD 3000 시리즈같은 구형 GPU 도, 퍼포먼스는 신형 GPU 에 비해 떨어지겠지만 렌더링은 될 것입니다.
  • OS X 이하 Nvidia 카드에서의 스카이 라이트 복사 조도를 고쳤습니다.
  • Mac OS X 10.9.3 에 채택된 AMD FirePro 카드에서 스키닝된 모델이 잘못 렌더링되게 만들던 OpenGL 드라이버 퇴보를 (우회법을 통해) 고쳤습니다.
    • 이 우회법에는 약간이긴 해도 퍼포먼스 손해가 있어, 드라이버 버그에 대한 픽스가 공개되면 제거될 예정입니다.
  • Mac OS X 에서 신형 Mac Pro 의 AMD FirePro 카드에 있던 여러가지 자잘한 렌더링 오류를 고쳤습니다.
  • 드라이버 버그 우회를 위해 Mac OS X 에서의 Emulate sRGB 렌더링을 고쳤습니다.
Xbox One
  • VisualizeTexture 로그 출력과 외부 RHI 에 ESRam 할당을 노출시켰습니다.
  • FOnlineSessionLive 의 일부 함수가 구현되어 Xbox Live 의 멀티플레이용으로 사용 가능합니다:
    • CreateSession, FindSessions, JoinSession, DestroySession.
    • 이 부분에 대한 Lionhead 의 기여에 감사드립니다.
  • Xbox One 용 HTTP 구현을 통합시켰습니다. Lionhead 덕입니다.
  • 현지화 리소스 추가 기능 지원, 디플로이 및 패키징을 위한 appxmanifest 템플릿 분리 등, 3월 이후 XDK 와 정상 작동하도록 패키징 시스템이 업데이트되었습니다.
    • ShooterGame 의 Build\XboxOne\ServiceConfigurations 에서 샘플 서비스 환경설정을 찾아보면 언리얼에서 작동하는 통계 설정 방법 예제를 확인할 수 있습니다.
  • 볼륨/3D 텍스처 상의 할당이 가능하도록 VRam 을 변경했습니다. 사실상 지원되지만, LPV 용으로 재활성화시켰습니다.
  • 디버그/인증 드라이버의 D3D 경고를 몇 가지 고쳤습니다.
  • GPU 이미터 스폰시 가끔씩 발생하던 거대 파티클을 고쳤습니다.
  • 최소/최대 밝기가 같을 때 톤 매핑이 너무 밝던 문제를 고쳤습니다.
Playstation 4
  • Morpheus 지원! PS4 와 PC 에서 실행됩니다.
  • UAV 가 append/consume 카운터를 제대로 유지합니다.
  • PS4 에서 LPV 가 실험단계로 지원됩니다.
  • Sulpha 를 사용한 호스트측 오디오 디버깅이 지원됩니다.
  • Depth Bounds Testing 이 지원됩니다.
  • 커맨드 버퍼가 kick 되지 않았을 때 타겟 리졸브를 위한 사본 처리가 개선되었습니다.
  • Razor GPU 캡처 사용시의 유저 마커 push/pop 불일치가 수정되었습니다.
  • profilegpu 콘솔 명령이 수정되었습니다.
  • GSVS 사이즈가 중간 프레임에 제대로 업데이트되지 않던 문제를 고쳤습니다 (리플렉션 캡처가 깨지던 문제가 해결됩니다).
  • PS4 에서의 스피드트리 크래시를 고쳤습니다.
스팀
  • 스팀 코드가 -queryport=xxx 파라미터를 받도록 업데이트시켰습니다.
리눅스
  • 크로스컴파일이나 네이티브 방식을 통해 특정 (SlateViewer, UnrealFrontend, 등의) 개발자 툴이 리눅스용으로 컴파일 가능하도록 업데이트했습니다.

API 변화

에디터 및 툴
  • 키즈멧 모듈로 새로운 컴파일러 등록이 가능하도록 블루프린트 컴파일러 파이프라인이 개선되었습니다.
  • 게임 이름 길이를 (20 자로) 제한시키고, 그에 따라 쿠킹 경로 길이 예측 및 이름 길이가 제한됩니다.
  • UEditorEngine::GetContentBrowserAssetTreePath 를 제거했습니다.
  • 실험 기능 SlateComponentWrappers 모듈을 제거했습니다.
게임플레이 및 프레임워크
  • Can JumpACharacter 에 노출, 블루프린트에서 덮어쓸 수 있습니다.
  • Character::OnWalkingOffLedge() 이벤트를 추가했습니다.
    • 이동 모드에서 동일한 전환이 생길 수 있는 점프나 기타 작업이 배제되어, 보행 -> 낙하 전환 감지가 쉬워집니다.
  • ACharacter 에 "hold-to-jump-higher" (누른 만큼 더 높이 점프하는) 함수성을 추가했습니다.
  • GameModeMatch 스테이트 머신이 명시적이 되고, 일정 불리언 세트가 아니라 MatchState 네임스페이스를 기반으로 하도록 변경했습니다. GameState 와 GameSession 의 여러가지 함수 이름도 변경했기에, 네이티브 서브클래스가 있는 경우 함수 이름을 변경해 줘야 할 수도 있습니다. 스테이트 및 변경된 내용은 이렇습니다:
    • EnteringMap 은 초기 스테이트입니다. 액터는 아직 틱 이전이며, 월드 초기화가 완료되지 않았습니다. 전부 로드되면 다음 스테이트로 트랜지션 됩니다.
    • (구 bWaitingToStartMatch 였던) WaitingToStart 가 다음 스테이트로, 진입시 HandleMatchIsWaitingToStart 가 호출됩니다. 액터는 틱 중이며, 플레이어는 아직 스폰되지 않았습니다. ReadyToStartMatch 에 True 반환 또는 누군가 StartMatch 를 호출하면 다음 스테이트로 트랜지션 됩니다.
    • (구 bMatchIsInProgress 였던) InProgress 가 다음 스테이트로, 진입시 (StartMatch 에서 떨어져 나온) HandleMatchHasStarted 가 호출되며, 그러면 모든 액터에서 BeginPlay 를 호출합니다. 보통의 게임플레이가 진행됩니다. ReadyToEndMatch 가 True 반환 또는 누군가 EndMatch 호출시 다음 스테이트로 트랜지션 됩니다.
    • WaitingPostMatch 가 다음 스테이트로, 진입시 (구 PerformEndGameHandling 였던) HandleMatchHasEnded 가 호출됩니다. 액터는 여전히 틱 중이지만 새 플레이어가 수락되지 않습니다. 맵 전환 시작시 다음 스테이트로 트랜지션 됩니다.
    • (구 bLevelChange 였던) LeavingMap 이 마지막 스테이트로, 진입시 (구 GameEnding 였던) HandleLeavingMap 이 호출됩니다. 새 맵으로의 전환 도중에는 경기가 이 스테이트로 대기합니다.
    • Aborted 는 실패 스테이트로, AbortMatch 로 시작됩니다. 회복 불가능한 오류가 있을 때 설정됩니다.
  • AGameMode::bDelayedStart 를 새로운 플래그 bStartPlayersAsSpectators 로 변경했습니다. True 면 새 플레이어는 관람자로 스폰되며, False 면 바로 폰으로 스폰됩니다. bDelayedStart 는 경기가 즉시 시작되기 보다는 영향만 끼칩니다.
  • Physics Material Surface Types (피직스 머티리얼 표면 유형) 최대 갯수를 64 개로 변경했습니다.
  • FCoreDelegates::OnObjectPropertyChanged 가 프로퍼티 변경 이벤트를 추가 파라미터로 받도록 변경했습니다.
  • AActor::BeginPlay 가 일부 상황에서 더욱 일찍 발생하도록 변경했습니다. 게임 스테이트 트랜지션이 WaitingToStart 또는 InProgress 로 처음 발생할 때 일어나며, 기존에는 경기 시작시만 발생했었습니다. UWorld::BeginPlayAActor::BeginPlay 를 호출하는 것이 되도록 이름을 변경했습니다.
  • Blackboard Component 의 레퍼런스를 BehaviorTreeComponent 에서 BrainComponent 로 이동했습니다.
  • Nav Movement Component 의 GetActorLocation 이름을 보다 적합하게 GetActorFeetLocation 으로 변경했습니다.
  • 미리보기용으로 붙은 애셋 유형을 Raw 포인터에서 TAssetPtr 로 변경했습니다.
  • FAssetTools::CreateDiffProcess() 시그너처가 파일 경로를 별도의 파라미터로 명시적으로 받도록 변경했습니다.
    • 공용 API 와 diff 제공사 사이의 추상화가 추가됩니다. API 가 더이상 diff 명령줄 포맷을 노출하지 않습니다.
  • FAssetTools::CreateDiffProcess 를 업데이트했습니다. 이미 사용된 경우 인수에서 파일명을 제거한 다음 새로운 New 및 Old 파일명 변수를 통해 전달해 줘야 합니다.
  • ULightComponentBase 서브클래스 이외의 것에서는 '스테이셔너리' 모빌리티가 표시되지 않도록 수정했습니다.
  • 파일별로 애셋 전부가 없을 때 FCoreStyle 초기화 및 실패를 고쳤습니다 (iPhone4 에서 Slate 를 사용하지 않는 게임의 로드 시간이 1-2 초 절약됩니다).
  • UCanvas::DrawTile() 의 쓰이지 않게 된 Z 파라미터를 제거했습니다.
코어
  • 라이선시 엔진 버전 지원 (Changelist 부분)
    • UpdateLocalVersion UAT 스크립트가 라이선시 버전 및 커스텀 Changelist 설정이 가능하도록 변경되었습니다.
  • 이제 TWeakPtr<Base>TWeakPtr<Derived> 를 비교할 수 있으며, 모든 TWeakPtrs 는 이제 nullptr 과 비교 가능합니다.
  • 이제 TArray 를 ExtraSlack 파라미터로 복사하여 엘리먼트 복사 이후 공간을 보존할 수 있습니다.
  • FString 함수성 추가:
    • null 로 끝나지 않은 스트링이나 부분 스트링을 사용할 수 있도록 AppendChars 가 캐릭터 카운트를 받을 수 있습니다.
    • const TCHAR* + FString 연산자가 추가되었습니다.
    • 더 많은 rvalue 를 인식합니다.
  • UnrealHeaderTool 이 #ifdef/#ifndef/#elif/#else 디렉티브를 처리합니다.
    • UHT 는 이 블록의 내용을 통째로 건너뜁니다. 제대로 지원되는 것은 아니지만, 추가적인 네이티브 코드 컴파일이 가능합니다.
  • 빌드 시스템이 generated 코드 빌드를 처리할 수 있도록 변경되었습니다. Changed the build system to now take care of building generated code.
    • 더이상 *.generated.inl 파일을 사용자가 include 할 필요가 없습니다.
    • .generated.inl 파일을 include 하면 제거하라는 컴파일러 경고가 뜹니다.
    • 앞으로의 엔진 릴리즈에서, 경고를 내는 .generated.inl 는 완전히 제거되고 #include 는 실패할 것입니다.
    • 델리게이트와 멀티캐스트 델리게이트가 UFunction 바인딩을 지원합니다.
    • 스크립트 델리게이트 상의 SetObject() 와 SetFunctionName() 를 BindUFunction() 안에 합쳤습니다.
    • TWeakObjPtr 이 적합한 할당 연산자를 갖도록 업데이트, UObject 값을 명시적으로 규정(box)하는 작업이 더이상 필요치 않습니다.
    • GIsBenchamrking, GUseFixedTimeStep 을 FApp::IsBenchmarking, FApp::UseFixedTimeStep 로 각각 리팩터링했습니다.
  • 1 바이트 캐릭터 유형으로 인스턴싱되었을 때 FCrc::StrCrc32 가 더이상 경고를 내지 않습니다.
  • ExtraSlack 포함 FString 생성자는 더이상 소스 스트링 말미를 읽어내지 않습니다.
  • FString::Replace 는 더이상 (스레드 안전성 문제상) const 소스 스트링을 치환하지 않습니다.
  • BOM 없는 파일은 이제 ANSI 가 아닌 UTF-8 로 간주됩니다.
  • TSharedPtr, TWeakPtr, TSharedRef 는 이제 이동을 인식합니다.
  • TSharedPtr 할당이 다수 들어있는 함수의 빌드 시간이 개선되었습니다.
  • 이름변경된 애셋을 블루프린트 CDO 에서 레퍼런싱하는 경우, 더이상 코드에 레퍼런싱되는 것에 대해 잘못된 경고가 나지 않습니다.
  • raw 포인터 유형의 UPropertyTAssetPtr 로 변경할 수 있게 되었으며, 그 프로퍼티는 태깅된 프로퍼티 serialize 도중 고쳐질 것입니다.
  • SpawnParameters 칸에 약간의 문서를 추가했습니다.
  • 관련된 블루프린트가 프레임 독립적인 turn/look 을 갖도록 리팩터링했습니다.
  • APawn::EnableInput 의 문제를 고쳤습니다.
  • 전략 게임 미니맵 버그를 고쳤습니다.
  • 슈팅 게임 샘플의 로켓 런처(및 ammo)를 복귀시켰습니다.
  • 콘텐츠 브라우저에 월드 애셋 표시를 지원하고 월드를 보통의 애셋으로 취급하도록 인프라스트럭처를 업데이트했습니다.
    • 로드는 되었지만 현재 레벨 에디터에서 편집중이지는 않은 월드를 나타내기 위한 EWorldType::Inactive 를 추가했습니다.
    • 기본 브러시에 해당하는 UBrush 오브젝트는 이제 월드 패키지 내 최상위 레벨 오브젝트 대신 기본 브러시와 같은 outer 로 저장됩니다.
슬레이트
  • (UDK Remote iOS 앱용) 슬레이트 리모트 서버가 플러그인이 되었습니다 (기본적으로 켜집니다).
  • 슬레이트 모듈이 UMG 에 대한 준비 차원에서 Slate 와 SlateCore 로 분리되었습니다. 이 변화에 대한 상세 업그레이드 노트입니다:
    • 모듈이 전에 'Slate' 에 대한 모듈 종속성이 있었던 경우, Build.cs 파일에서 'SlateCore' 에 대한 PrivateModuleDependency 역시도 필요로 합니다.
    • 이제 SlateCore 에 선언된 Public 헤더 파일 유형에 모듈이 노출되는 경우, 'SlateCore' 로의 PublicModuleDependency 도 필요로 합니다.
    • SWidget 의 ToolTip 프로퍼티 유형이 SToolTip 에서 IToolTip 으로 변경되었습니다. 로컬 변수의 경우 필요에 따라 TSharedPtr<SToolTip> 대신 TSharedPtr<IToolTip> 로 변경합니다.
    • IToolTip 은 위젯이 아닙니다. 툴팁을 나타내는 실제 위젯에 대한 접근이 필요한 경우, IToolTip::AsWidget() 을 사용하세요. 툴팁의 내용에 접근할 필요가 있는 경우, IToolTip::GetContentWidget() 를 사용하세요.
    • 이 Changelist 에 동기화한 이후에는 /Engine/Intermediate/Build/ 디렉토리를 비운 후 전체 프로젝트를 리빌드해야 할 수도 있습니다.
    • 프로젝트에 현재 SlateCore 에 선언되어 있는 미해결 유형에 대한 링커 오류가 발생하는 경우, 'SlateCore' 에 대한 종속성이 빠져있을 수도 있습니다.
    • 엔진 코드에서 현재 SlateCore 에 선언되어 있는 미해결 유형에 대한 링커 오류가 발생하는 경우, 전체 엔진을 리빌드해야 할 수도 있습니다.
    • 눈에 더욱 잘 띄도록 하기 위해 Slate 와 SlateCore 모듈에 대한 디렉토리 레이아웃을 업데이트했습니다.
  • 마티네에 모프 타겟이 재생되지 않는 것을 고쳤습니다.
  • 커스텀 세팅에 대한 오브젝트 복사시 콜리전 세팅을 잃던 버그를 고쳤습니다.
  • ß
렌더링
  • StreamingPauseRendering 은 로드가 막힌 와중에 게임이 멎은 것처럼 보이지 않도록 일부 렌더링이 가능합니다. 기본적으로는 구석에 위젯 애니메이션을 포함하여 기존 프레임을 표시하는 것입니다. 이 부분은 커스텀 BeginStreamingPauseDelegateEndStreamingPauseDelegate 으로 덮어쓸 수 있습니다.
블루프린트
  • UOnlineBlueprintCallProxyBase 서브클래스의 모든 스태틱 팩토리 메소드에 대한 항목을 자동 생성해 주는 UK2Node_LatentOnlineCall 을 추가했습니다.
  • UK2Node 서브클래스의 ExpandNode() 에서 사용자는 스키마의 Move/CopyPinLinks 대신 CompilerContext 의 MovePinLinksToIntermediate/CopyPinLinksToIntermediate 를 사용해야 합니다.
  • 사용자가 check() 에 실패하는 경우 런타임 check() 가 발동됩니다. 좀 더 정확한 블루프린트 디버깅을 위한 것으로, 생성된 핀을 블루프린트 사용자가 그래프에서 보게 되는 것에 쉽게 매핑할 수 있게 됩니다.
  • UK2Node_BaseAsyncTask 를 업데이트, 확장하기 훨씬 쉬워집니다.
UnrealHeaderTool
  • 모든 헤드 그룹 생성 헤더는 물론 HeaderGroup 키워드가 제거되었습니다.
  • HeaderGroup 키워드를 사용하는 UCLASS 선언은 수정해 줘야 합니다 (키워드 제거).
  • 라이선시 코드 내 HeaderGroupNameClasses.h 생성 헤더로의 모든 #include 는 제거해 주지 않으면 코드가 컴파일되지 않습니다.
플랫폼

iOS

  • PC 에서의 iOS 는 PC 에서만의 콘텐츠 전용 프로젝트를 빌드할 것이지만, 이제 사용자가 PC 에 개발자 인증서를 추가해야 합니다. 이 작업은 IPP 를 해 가능합니다.
  • 앱에서 광고를 숨기라는 요청 이후 지연된 성공 광고가 표시되는 것을 방지했습니다.
  • iOS 업적 구현 내 다양한 스레드 / 로직 문제를 고쳤습니다.

Xbox One

  • 이제 2014 년 5월 XDK 가 지원됩니다.
  • Xbox One 바이너리의 위치는 이제 패키징 또는 디플로이시 Game\Binaries\XboxOne 폴더 아래 위치합니다.
온라인
  • 블루프린트에 업적을 노출시켰습니다: WriteAchievementProgress, CacheAchievements, GetCachedAchievementProgress, CacheAchievementDescriptions, GetCachedAchievementDescription.
  • iOS 와 안드로이드용 ShowPlatformSpecificAchievementsScreen 및 ShowPlatformSpecificLeaderboardScreen 를 노출시켰습니다.
PlatformMath 리팩터링
  • Trunc, Round, Floor, Ceil 이름을 TruncToInt, RoundToInt, FloorToInt, CeilToInt 로 변경했습니다. *ToFloat 버전을 추가했습니다.
    • 구버전도 컴파일은 되지만 경고가 발생되며, 제거해 주지 않으면 나중에는 컴파일되지 않을 것입니다.

코멘트, 질문 환영합니다. 포럼 에 들러 피드백 남겨 주세요!

Recent Posts

2018년 4월 NVIDIA Edge 프로그램 수상자

4월에도 NVIDIA Edge 프로그램에 멋진 작품들이 많이 제출되었으며, 그 중에서 세 개의 작품을 뽑아 수상작으로 선정하였습니다. ...

언리얼 엔진으로 BMW 차량 디자인에 혼합 현실 구현

리얼타임 기술과 VR이 자동차 제조의 새로운 시대를 열고 있는 가운데, 자동차 디자인 분야는 빠르게 변화하고 있습니다. BMW와 MIN...

스모 디지털이 말하는 닌텐도 스위치 게임 출시하기

언리얼 엔진으로 Snake Pass 를 개발한 스튜디오가, 닌텐도 스위치 플랫폼으로 게임을 발매하는 것에 대해 이야기합니다.