언어:
페이지 정보
엔진 버전:
언리얼 엔진

언리얼 엔진 4.2 릴리즈 노트

언리얼 엔진
이 페이지의 내용:

주요 신기능

신규: 샘플 비히클 게임

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

veh02.png

  • 사륜/전륜/후륜 구동렬이 별다른 설정 없이 바로 지원됩니다.

  • 기본 구동렬 시뮬레이션은 바퀴가 넷 인 것으로 간주하지만, 몇 개든지 정상 작동합니다.

  • 원하는 어떤 기어도 가능합니다.

  • 자동/반자동 변속기가 지원됩니다.

  • 게다가 이 모든 것이 블루프린트에 전부 노출되어 있습니다!

vehicleProps2.png

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

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

  • 개념적으로 **카메라 애님**이란 단순히 게임내 카메라에 레이어로 덧씌우는 애니메이션입니다. 카메라의 위치와 방향, FOV, 포스트 프로세스 세팅에 대한 애니메이션이 가능합니다.

  • 콘텐츠 브라우저에서 생성 가능하지만, 마티네에서 트랙을 변환시키거나, Maya같은 외부 툴에서 키프레임을 임포트할 수도 있습니다.

cameraAnims.png

  • '카메라 애님'을 편집하려면 다른 애셋과 마찬가지로 콘텐츠 브라우저에서 애셋에 더블클릭하면 됩니다. 카메라 애님 에디터는 마티네가 약간 특화된 버전입니다.

  • 다수의 CameraAnimInsts (카메라 애님 인스턴스)가 현재 최대 8 개까지 활성화 가능하며, 그 모두 최종 카메라 세팅에 블렌딩되어 반영됩니다.

신규: 블루프린트용 사용자 정의 구조체

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

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

newStruct.png

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

stucts.png

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

신규: 블루프린트 펑션 라이브러리

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

blueprintFunctions.png

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

신규: 캔버스 렌더 타깃

  • 이제 Canvas UI 를 바로 텍스처에 그린 다음, 해당 텍스처를 씬의 오브젝트에 바로 매핑시킬 수 있습니다!

  • C++ 는 물론 블루프린트 방식에도 완벽 지원됩니다.

  • 이 기능을 제출해 주신 커뮤니티 회원 James Tan 님께 감사드립니다.

신규: 비히클 템플릿

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

VechicleTemp.png

신규: FABRIK IK 솔버

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

FABRIK.png

  • End Effector (엔드 이펙터) 세팅은 저희 TwoBone_IK 노드와 같습니다. 절대 트랜스폼이 될 수도 있고, (같은 스켈레톤의 다른 본을 기준으로 하는) 상대 트랜스폼이 될 수도 있습니다.

  • Solver (솔버) 섹션에서는 Root (루트)에서 Tip (팁, 끝)까지 사용할 본 체인을 정의합니다. '팁'이 엔드 이펙터 위치까지 도달하려는 것입니다.

  • End Effector Rotation Source (엔드 이펙터 로테이션 소스)로는 (컴포넌트 스페이스, 로컬 스페이스 유지 및 엔드 이펙터 타깃 로테이션 일치 등) 로테이션을 제어할 수 있습니다.

  • Precision (정밀도)는 얼마나 근접시킬지 입니다. 낮을 수록 '엔드 이펙터 타깃'에 가까워 지지만, 더욱 비싸집니다. (테스트에서는 정말 멋진 결과를 보여줬으며, CCD_IK 노드보다 훨씬 빨랐습니다).

  • MaxIterations (최대 반복처리 횟수)는 퍼포먼스 조절을 위한 것으로, 희귀한 사례가 프레임 속도를 늦추지 않도록 하기 위함입니다.

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

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

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

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

assetOverride.png

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

assetOverride03.png

신규 실험단계 기능: 블루프린트용 수학 표현식 노드

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

mathExpNode.png

  • 이 노드를 사용하려면, 플러그인 매니저에서 Math Expression (수학 표현식) 플러그인을 켜 주기만 하면 됩니다. 그러면 블루프린트 그래프 에디터의 우클릭 컨텍스트 메뉴에 나타납니다.

  • 생성한 이후 표현식을 입력합니다. 실수를 한 경우, 노드 이름을 변경하는 것으로 표현식을 편집할 수 있습니다.

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

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

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

animNotify1.png

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

animNotify2.png

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

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

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

CopyandPasteBlueprint01.png

  • 개별 컴포넌트를 선택한 다음 우클릭 메뉴나 키보드를 통해 잘라내기/복사하기 명령으로 컴포넌트를 복사 또는 이동시킬 수 있습니다!

  • 하나의 블루프린트에서 컴포넌트를 복사/잘라내기 한 다음 다른 블루프린트에 바로 붙여넣을 수 있습니다!

    선택에 계층구조가 포함된 경우, 복사된 사본에도 유지됩니다!

신규: SplineThicken 머티리얼 함수로 UV 시차

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

spline1.png spine2.png

  • 함수의 노멀 부분을 재수정하여, 이제 모든 오브젝트 로테이션에 대해서도 정상 작동합니다. 라이팅과 스페큘러가 정확해집니다!

새 입력:

  • 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 개의 텍스처 좌표만 처리하기에, 다수의 텍스처를 보정하려는 경우 모두 스케일이 같아야 합니다.

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

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

animDebug1.png

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

  • 페르소나에 표시되는 본을 일치시키는 다른 방법이 있는데, ShowDebugToggleSubCategory 3DBones 명령으로 켤 수 있습니다.

  • ShowDebug Animation 명령으로 켤 수 있는 애니메이션 디버그 출력은 다음과 같습니다.

AnimationDebug02.png

  • 다섯 개의 섹션으로 나뉘며, 각각에 대한 토글이 가능한데, ShowDebugToggleSubCategory 명령 뒤에 다음과 같은 카테고리 이름을 붙이면 됩니다. 예: ShowDebugToggleSubCategory SyncGroups

    • SyncGroups: 현재 최종 포즈에 기여하는 애니메이션 애셋을, 그 싱크 그룹별로 (그룹에 속하지 않는 경우 Ungrouped 로) 나타냅니다. 기본적으로 이 섹션에 나열되는 블렌드 스페이스는 기여하는 애니메이션 / 웨이트를 전부 표시합니다. 출력이 차지하는 화면 공간을 줄이려면, ShowDebugToggleSubCategory FullBlendspaceDisplay 명령으로 이 부분을 토글시킬 수 있습니다.

    • Montages: 캐릭터에 현재 사용중인 몽타주를 나열합니다. 활성 몽타주는 녹색으로 강조됩니다.

    • Curves: 재생중인 애니메이션에 의해 활성화된 커브 값을 (이름: 값 형태로) 나열합니다.

    • Notifies: 현재 발효중인 노티파이 스테이트를 표시합니다.

    • Graph: 활성 포즈 그래프를 표시합니다. 표시되는 내용은 최종 포즈를 나타내는 마지막 노드(루트 노드)로 시작해서, 그 최종 포즈를 만드는 데 들어가는 모든 노드가 나열됩니다. 노드는 계층구조를 유지하는 방식으로 표현되므로, 사용자는 원래 블루프린트 애셋을 참조하지 않고도 어떤 노드가 어디에 연결되었는지 알 수 있습니다. 활성 노드는 (ShowDebugToggleSubCategory FullGraph 명령으로 표시되도록 토글된 경우) 녹색으로, 비활성 노드는 회색으로 표시됩니다.

신규: 레벨 뷰포트 통계

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

ViewportStats.png

  • 이 통계 중 대부분은 디버그 콘솔 프롬프트에 "Stat <name>" 를 입력해서도 토글시킬 수 있습니다.

  • 기본적으로 통계는 세션간에 유지되지는 않지만, 에디터의 뷰포트 개인설정에서 "Save Engine Stats" (엔진 통계 저장)을 선택하여 켤 수 있습니다.

신규: OBJ 메시 파일 포맷 지원

이제 스태틱 메시에 .obj 파일을 임포트할 수 있습니다! 파일 포맷은 매우 간하므로, 다음과 같은 기능은 지원하지 않는 다는 점에 유의해 주십시오:

  • 버텍스 컬러 임포트

  • 콜리전 임포트

  • 탄젠트 및 바이노멀 임포트

  • 트랜스폼

  • OBJ 임포트에는 소스 좌표 시스템을 구해올 수 있는 방법이 없기에, Z 를 위로 하여 모델링되지 않은 경우 회전됩니다.

신규: FBX 2014 로 업그레이드

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

  • 미러링된 메시의 탄젠트 및 바이노멀이 제대로 임포트됩니다.

  • 2014 이전 Maya / Max 의 기존 버전 FBX 플러그인을 사용해도 되지만, 너무 오래된 파일을 사용할 때는 임포트시 경고가 날 수 있습니다.

신규: Windows XP 지원 (프리뷰)

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

  • 이 기능을 켜기 위해서는, UnrealBuildTool 에서 WindowsPlatform.SupportWindowsXP 를 True 로 설정하고, 프로젝트 세팅에서 OpenGL 셰이더 지원을 켭니다.

  • Windows 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 가상 함수는 액터가 월드에서 제거된 이유를 나타내는 Enum 파라미터를 받습니다.

  • 기존에 각 액터가 속한 스트리밍 레벨 언로드시 각 액터마다 호출되던 AActor::OnRemoveFromWorld 가상 함수는 제거되고, 그 함수성은 AActor::EndPlay 에 포함되었습니다.

릴리즈 노트

마켓플레이스

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

StylizedMap.png

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

ScifiHallway.png

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

PivotPainterMap.png

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

AudioContentMap.png

학습 자료

비디오

문서

  • 비히클 사용 안내서 - 언리얼 엔진 4 에서의 비히클 셋업 방법 안내서입니다.

  • 비히클 아트 셋업 - 비히클용 아트 콘텐츠 셋업 방법입니다.

  • 파티클 시스템 사용 안내서 - 캐스케이드 사용 안내서 업데이트입니다.

  • 텍스처 페인팅 - 에디터 안에서 텍스처와 버텍스 칠하기 기능입니다.

  • 오디오 & 사운드 - 언리얼 엔진 4 의 청각 관련 모든 부분에 대한 참고서입니다.

  • 콘텐츠 예제 문서 정리 - 다양한 기능에 대한 콘텐츠 예제를 한 눈에 알아볼 수 있도록 목차 페이지를 새단장했습니다.

에디터내 튜토리얼

  • 신규: 디스트럭터블 메시 에디터 길잡이가 추가되었습니다.

  • 에디터내 튜토리얼 초기 창에 에디터내 튜토리얼이 전부 표시되도록 변경되었습니다.

  • 더이상 디스트럭터블 메시 에디터에 스켈레탈 메시 에디터 튜토리얼이 표시되지 않습니다.

API 문서

  • 신규: API 문서에 모든 모듈에 대한 간단한 설명이 추가되었습니다.

언리얼 엔진 런처

  • 신규: 언리얼 엔진 런처 인스톨러가 한국어 및 일본어 현지화 되었습니다.

  • 신규: 언리얼 엔진 데스크톱 및 시작 메뉴 바로가기의 툴팁 설명이 제대로 현지화되었습니다.

  • 신규: 언리얼 엔진 런처 인스톨러가 사용자의 Windows 7 에 SP1 이 설치되지 않은 경우 알려줍니다.

  • 신규: 런처 우하단에서 다수의 콘텐츠 문서와 기타 정보 전체에 대한 링크를 찾을 수 있습니다.

  • 신규: 콘텐츠에 커서를 올리면 제거(uninstall) 또는 확인(verify) 메뉴를 선택할 수 있습니다.

  • 초기 시작 속도가 향상되었습니다.

  • 런처가 콘텐츠 데이터를 요청하는 방식과 시간을 변경하여 시작 시간을 향상시켰습니다.

  • 런처가 "설치" 단계 도중 닫혔을 경우 UE4 다운로드 프로세스를 처음부터 재시작하지 않도록 수정했습니다.

  • 한국어 및 일본어에 대한 현지화 버그 다수를 수정했습니다.

  • Mac에서 런처가 항상 셀프 업데이트 이후 재시작하도록 수정되었습니다.

  • 오프라인 모드의 콘텐츠와 다운로드가 여러모로 일관되지 않던 문제를 고쳤습니다.

  • 인스톨러가 Win8 및 Win8.1 에서 실패하던 문제를 고쳤습니다.

  • 런처의 충분한 디스크 공간 검사 방식을 수정했습니다.

  • 기본 UAC 권한 때문에 Win 8.1 에서 다운로드 위치를 선택할 수 없었던 문제를 고쳤습니다.

  • Windows에서 우클릭 .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 플래그가 잘못 설정되던 것을 지우도록 하는 코드를 추가하여 수정했습니다.

소스 컨트롤

  • 신규: 에디터에서 소스 컨트롤의 디렉터리를 동기화시키는 기능을 추가했습니다.

  • 신규: OpenSSL 1.0.1g 포함 P4 API 2014.2 를 추가했습니다.

  • 신규: 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 이 최적화 및 개선되었습니다.

  • 할당 및 해제된 GBufferTargets 가 이제 요청시 재사용 가능하도록 업데이트했습니다. 그러나 가능하면 포스트 프로세싱 전에 해제할 수 있도록 해 줘야 할 것입니다.

  • 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) 파일에 대한 현지화 임포트 기능을 추가했습니다.

  • 네이티브 애니메이션 노티파이가 지원됩니다.

    • 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_Lit 모드가 됩니다.

  • 내장 머티리얼이 작은 텍스처를 가리키도록 업데이트하고, 반투명으로 변경된 경우 오파시티 링크를 연결했습니다.

  • 타일 맵 렌더링 로테이션을 부분 수정했습니다 (아직 제대로 렌더링되지 않고 있습니다).

  • 네가티브 볼륨 3D 콜리전 버그를 수정했습니다. NAN 매스와 콜리전이 소실되던 문제가 있었습니다.

  • UPaperRenderComponent::GetSocketTransform 의 RTS_Actor / RTS_Component 스페이스 지원을 수정했습니다.

  • Paper2D 플러그인을 켜고 쿠킹했을 때의 크래시를 고쳤습니다.

  • 타일 세트 뷰포트의 보거스 선택 사각형을 수정했습니다.

  • 스프라이트/플립북 에디터 뷰포트에서 스프라이트가 나타나지 않던 것을 고쳤습니다.

  • 스프라이트와 플립북 에디터에서 빠져있던 툴바 아이콘을 고쳤습니다.

  • 느린 진행상황 대화창의 오타를 고쳤습니다 (git 제외).

  • UPaperRenderComponent 에서 불필요한 틱을 제거하고, 프로퍼티 코멘트를 약간 추가했습니다.

네트워킹

  • 여러 레벨에 유지되어야 하는 비컨에 데이터를 저장하는 BeaconState 클래스를 추가했습니다.

  • 심리스 트래블 도중의 음소거를 수정했습니다.

  • 데디케이티드 서버에서 PlayerController 가 잘못된 IsLocalPlayerController() 결과를 반환하던 것을 고쳤습니다.

    • PlayerController 는 생성되었지만 Role/RemoteRole 는 아직 설정되지 않은 Login()PostLogin() 사이 잠깐동안 결과가 유효하지 않습니다.

    • PlayerController 생성/소멸 도중 IsLocalPlayerController 가 호출되는 경우의 경고를 추가했습니다.

온라인 서브시스템

  • 모듈에 DestroySubsystem 호출을 추가, OSS 의 단일 인스턴스 소멸이 가능합니다.

  • null 온라인 서브시스템에 VoIP 가 활성화되었습니다.

데디케이티드 서버

  • Autologin 가 이제 OnLoginComplete 델리게이트만 사용하도록 수정했습니다.

  • 'autologin' 플로우에서 OnLoginStatusChanged 를 제거했습니다. 실제 로그인하려 해 보니 옳지 않습니다.

플랫폼

  • IPv6 를 지원하는 새로운 소켓 시스템이 추가되었습니다.

  • Windows XP 지원이 실험단계 기능으로 추가되었습니다.

  • 쿠킹된 Windows 빌드용으로 OpenGL 이 사용 가능합니다.

  • 편집 -> 프로젝트 세팅 -> [플랫폼 | Windows] 에 Windows용 타깃 RHI 옵션이 추가되었습니다.

  • 모바일 광고 지원 프레임워크가 추가되었습니다.

    • iOS 와 Android 모두에 대한 기본적인 프레임워크가 지원됩니다.

    • iOS 초기 지원을 통해 플러그인과 모듈을 통한 symlink 및 파일 스테이징 기능 지원 포함 써드 파티 프레임워크가 가능합니다.

    • iOS 용 TapJoy 광고 플러그인 초기 지원이 가능합니다.

  • GL3 하드웨어 지원이 개선되었습니다.

  • 개발 도중의 로드 시간 관련 문제 해결을 위해 서버 접속시의 타임아웃 시간을 늘렸습니다.

  • 아웃바운드 번치에 데이터 쓰기를 처리하는 코드를 정리했습니다.

  • 심리스 트래블 버그를 고쳤습니다.

  • 아웃바운드 번치에 데이터 쓸 때 희귀 조건 하에서 어서트가 발생할 수 있었던 꽤나 큰 버그를 잡았습니다.

  • 부분 번치 시퀀스 id 가 잘못 묶이게 만들던 문제를 고쳤습니다.

Android

  • Android Google Play 서비스 라이브러리가 포함되었습니다.

  • Android Google Play 용 업적 및 점수판이 새로운 OnlineSubsystemGooglePlay 를 통해 노출됩니다.

  • 언리얼 엔진 4 에서 ES2 랜드스케이프 버텍스를 최저 LOD 에서부터 최고 LOD 까지, 처음 사용된 순서대로 소팅합니다. 각 LOD 에서의 드로 콜에 대한 MaxVertexIndex 범위를 최소화시켜, Mali GPU 디바이스의 퍼포먼스를 크게 향상시킵니다.

  • Android용 AdMob 이 지원됩니다. Android 프로젝트 세팅에 AdMob Ad ID 를 추가한 다음 블루프린트 ad 인터페이스를 사용하여 광고를 표시하고 숨길 수 있습니다.

  • ES 3.0 을 지원한다 보고된 모든 Android 디바이스에 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 파라미터를 받도록 업데이트시켰습니다.

Linux

  • 크로스컴파일이나 네이티브 방식을 통해 특정 (SlateViewer, UnrealFrontend, 등의) 개발자 툴이 Linux용으로 컴파일 가능하도록 업데이트했습니다.

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 와 Android용 ShowPlatformSpecificAchievementsScreen 및 ShowPlatformSpecificLeaderboardScreen 를 노출시켰습니다.

PlatformMath 리팩터링

  • Trunc, Round, Floor, Ceil 이름을 TruncToInt, RoundToInt, FloorToInt, CeilToInt 로 변경했습니다. *ToFloat 버전을 추가했습니다.

    • 구버전도 컴파일은 되지만 경고가 발생되며, 제거해 주지 않으면 나중에는 컴파일되지 않을 것입니다.