언리얼 엔진 4.7 은 지금까지 있었던 것중 가장 큰 출시로, 대규모 월드에 엄청난 수의 오브젝트 인스턴스 렌더링, 아름다운 잎사귀와 초목 렌더링, HDR 텍스처 지원, 에디터내 애니메이션 편집 기능과 아울러 수백종의 최적화와 개선사항이 포함되어 있습니다.
요청이 많았던 기능도 다수 추가되었습니다: 이제 레벨에서 바로 컴포넌트를 사용하여 새로운 액터를 조립할 수도, 블루프린트 비주얼 스크립팅이나 C++ 를 사용하여 별도의 커스텀 컴포넌트 유형을 만들 수도 있게 되었습니다! 스크립팅에 대해 말할 것 같으면, 블루프린트 에디터 UI 가 깔끔하게 통일된 레이아웃으로 개편되었습니다. 프로젝트에 콘텐츠를 임포트해 오는 방법도 전에 없이 쉬워졌습니다. 이제 언리얼 에디터가 새로운 애셋 파일을 자동으로 감지하여 임포트해 줍니다!
HTML5 플랫폼 + WebGL 이 사용 준비가 완료되었습니다. 한 번의 클릭으로 게임을 호환되는 브라우저에서 실행시킬 수 있습니다! 이제 안드로이드 개발자들도 맥에서 빌드, 쿠킹, 디플로이 가능합니다. 가상 현실 제작자들의 경우, 새로운 “VR 프리뷰” 기능으로 에디터에서 바로 월드에 몰입이 가능합니다. 추가로 코드 기반 프로젝트를 만드는 경우 Leap Motion 에 접근할 수 있습니다. 마지막으로 모든 출시마다 풀 C++ 엔진 소스 코드를 제공하여 학습과 디버깅이 전에 없이 쉬워집니다!
이번 출시에는 언리얼 엔진의 놀라운 개발자 커뮤니티에서 제출된 뛰어난 변경사항 38 개가 포함되어 있습니다. 에픽에서는 언리얼 엔진 이번 출시에 Git 소스 콘트롤 플러그인을 기여해 주신 커뮤니티 일원 Sébastien Rombauts 께 특별히 감사드리고자 합니다. 놀라운 작업물입니다! 아래 기여자분들께도 모두 감사드립니다:
Artem V. Navrotskiy (bozaro), ArneBezuijen, Black Phoenix (PheonixBlack), codetackler, Daniel Zeligman (dzeligman), Derek van Vliet (derekvanvliet), Fazouane Marouane (fazouane-marouane), Jesus Fernandez (jsfdez), Lukasz Baran (iniside), Moritz Wundke (moritz-wundke), Michael Kösel (TheCodez), Michael Allar (Allar), Marat Radchenko (slonopotamus), Pedja Lubomirovic (3dluvr), Pierdek, Quadtree, Rama (EverNewJoy), Robert Wallis (robert-wallis), Rick Yorgason (Skrapion), Simon Taylor (simontaylor81), Stephen Whittle (stephenwhittle), Tobias Mollstam (mollstam), yaakuro
주요 신기능
현실적인 폴리지 라이팅
새로운 Foliage Shading Model (폴리지 셰이딩 모델)을 통해 빛이 풀, 잎, 종이, 기타 재질을 투과할 수 있게 되었습니다.
반대 표면의 디퓨즈 라이팅은 셰이딩되는 면에서 투과(transmissive) 라이팅이 됩니다.
- 투과 라이팅은 감아올린(wrap-around) 디퓨즈와 후방 산란을 위해 뷰 의존적인 엽(lobe)을 혼합한 것입니다.
- 서브서피스 컬러는 이 라이팅을 필터링하여 (잎맥 등의) 다양한 두께를 나타내는 데도 사용할 수 있습니다.
- 참고로 이 셰이딩 모델에 오파시티를 사용하면 그림자 감쇠 거리에만 영향을 끼칩니다.
대규모 월드용 폴리지 렌더링
폴리지 시스템이 대규모 야외 환경을 지원하도록 최적화되었습니다!
이제 백만 단위 인스턴스의 폴리지 관리 및 컬링을 위해 계층구조식 시스템을 사용합니다! 또한 LOD 전환시 거슬리게 튀는 현상을 없애기 위해 일시적 페이드를 포함해서 메시 LOD 간의 부드러운 전환을 이끌어냅니다!
월드내 컴포넌트 편집
이제 컴포넌트를 레벨에 배치된 액터에 바로 추가시킬 수 있습니다. 이를 통해 클래스 블루프린트를 먼저 만들지 않고도 컴포넌트로부터 새로운 액터를 조립할 수 있습니다. 레벨 안에서 바로 컴포넌트로 실험하면서 새로운 오브젝트를 조립해 보기에 좋습니다.
이제 3D 레벨에서 개별 컴포넌트를 선택한 다음, 익숙한 기즈모를 사용하여 옮기고, 프로퍼티를 편집할 수 있습니다.
멋진 것을 만든 이후에는 “블루프린트 / 스크립트 추가”를 클릭하여 재사용가능 클래스로 저장하거나 거기에 스크립트를 추가합니다. 그러면 그 액터를 자동으로 해당 클래스의 인스턴스로 대체합니다.
배치가능 공백 액터
이제 레벨에 바로 “공백 액터” 를 드래그 앤 드롭으로 배치할 수 있습니다!
공백 폰과 캐릭터도 지원됩니다. 새로운 월드내 컴포넌트 편집 기능을 사용하여 레벨에서 바로 재미난 액터를 만들 수 있습니다.
블루프린트 가능 컴포넌트
블루프린트 스크립팅을 사용하여 자신만의 컴포넌트 유형을 만들어 보세요! 이러한 컴포넌트를 저장하여 어느 액터에도 재사용할 수 있습니다!
”컴포넌트 추가” 를 클릭한 다음, 바로 상단에 있는 “새 블루프린트 스크립트 컴포넌트...”를 선택합니다. 이 작업은 레벨에 있는 액터상에서, 액터 클래스 블루프린트 안에서, 콘텐츠 브라우저의 “새 블루프린트...” 창 안에서도 가능합니다.
새 컴포넌트의 부모 클래스를 선택합니다. “씬 컴포넌트” 에는 액터 안에 3D 위치가 있으나, “액터 컴포넌트” 에는 오직 스크립팅 로직만 있습니다.
재밌는 부분은 여기, 새 컴포넌트에 대한 블루프린트 스크립트 코드 작성 부분입니다. 이 예제에서, Tick 이벤트를 사용하여 매 프레임마다 컴포넌트의 오너(액터)를 yaw 축 중심으로 회전시킵니다. 이 컴포넌트 이름은 액터를 스핀시키므로 “Spinner” 라 붙였습니다!
이제, 씬의 어느 액터에도 컴포넌트를 드랍하면 게임 시작시 회전을 시작할 것입니다. 예! 재사용 가능한 모듈식 함수성 완성입니다!
보통의 액터 클래스 블루프린트에 드롭할 수도 있습니다. 새 컴포넌트는 항상 “컴포넌트 추가” 메뉴에서 (”Custom” 카테고리 아래), 또 다른 애셋과 마찬가지로 콘텐츠 브라우저에서도 찾을 수 있습니다.
자동 애셋 임포트
메시, 사운드, 텍스처 임포트가 더욱 쉬워졌습니다. 그냥 프로젝트의 Content 폴더 아래에서 소스 아트 파일을 저장하기만 하면, 에디터가 자동으로 새로운 파일을 임포트해 주므로, UE4 에서 바로 사용할 수 있습니다!
외부 어플리케이션에서 이 파일을 업데이트하면, 에디터가 자동 감지하여 콘텐츠를 리임포트할 것입니다! 게임 콘텐츠 반복처리 작업이 훨씬 빨라집니다.
이 기능은 기본으로 켜져있으나, 에디터 개인설정의 “로드 & 저장” 섹션의 “Monitor Content Directories” (콘텐츠 디렉토리 모니터링) 옵션으로 토글시킬 수 있습니다.
블루프린트 에디터 UI 디자인 변경
블루프린트 에디터의 디자인이 더욱 사용하기 쉽도록 변경되었습니다! 세 가지 모드 전부 하나의 화면으로 통합되어 작업의 흐름을 더욱 매끄럽게 파악할 수 있을 뿐만 아니라, 여러가지 개선사항도 포함되어 있습니다.
뷰포트나 그래프 뷰와 같은 패널을 자유롭게 재배치할 수 있으며, 심지어 둘 다 동시에 화면에 띄울 수도 있습니다!
”내 블루프린트” 뷰가 더욱 깔끔하고 넓직하게 개조되어, 새로운 함수와 변수를 추가하기가 쉬워졌습니다.
컴포넌트 패널에서 액터의 이름을 선택하면 (또는 툴바의 “클래스 디폴트”를 클릭하면) 클래스의 기본값이 표시됩니다. 블루프린트 세팅을 확인하려면, 툴바의 “클래스 세팅” 버튼을 사용하세요 (기존에는 “블루프린트 속성” 버튼이었습니다).
HTML5 및 WebGL 지원 (윈도우 전용)
이제 런처를 통해 얻을 수 있는 바이너리 툴을 통해 게임을 웹 브라우저에서 패키징 및 실행시킬 수 있습니다.
간단히 Emscripten SDK 를 설치한 다음, 에디터와 런처를 재시작하고, 런처 드롭다운 메뉴에서 웹 브라우저를 선택하면 됩니다!
HTML5 지원 관련 참고사항:
- 개발 도중에는 파이어폭스, 사파리, 64 비트 크롬이 필요합니다 (쉬핑 빌드는 32 비트 크롬에서도 정상 작동합니다).
- 현재 HTML5 지원을 위해서는 윈도우가 필요합니다. 앞으로 맥도 지원하도록 작업중입니다.
- 게임을 HTML5 용으로 준비할 때, 특히나 처음에는, 프로젝트의 애셋과 코드를 웹브라우저용으로 최적화시키느라 시간이 조금 걸릴 수 있습니다.
OpenEXR: HDR 텍스처
2D High Dynamic Range (HDR) 텍스처를 OpenEXR 파일 에서 임포트할 수 있게 되었습니다! 채널별로 최대 16 비트 데이터까지의 이미지를 (약 30 번의 노출) 저장할 수 있습니다.
(기존에는, 큐브 맵 텍스처만 OpenEXR 파일에서 임포트할 수 있었습니다.)
맥에서의 안드로이드 개발
언리얼 엔진 OS X 버전이 이제 안드로이드 개발을 완벽 지원합니다!
이제 맥 사용자도 안드로이드용으로 빌드, 쿠킹, 패키징 뿐만 아니라 에디터 또는 명령줄을 통해 안드로이드 디바이스에 디플로이도 가능합니다.
- OS X 용 Java 및 Android SDK 가 필요합니다 (Engine/Extras/Android 의 TADP 인스톨러를 사용하여 설치 가능합니다).
- 설치 이후에는 에디터를 재시작하거나, 프로젝트 세팅에서 새로 생긴 Android SDK 섹션에 SDK 경로를 설정하면 됩니다.
풀 엔진 C++ 소스 코드 및 디버그 심볼
이제 런처를 사용하여 언리얼 엔진을 설치할 때도 풀 엔진 C++ 소스 코드 및 디버깅 심볼이 포함됩니다!
이를 통해 디버깅 도중 매끄럽게 엔진 코드를 단계별로 살펴볼 수 있으며, 크래시 이후 온전한 콜스택을 얻을 수 있을 것입니다. 더이상 제대로 된 엔진 디버깅 파워를 얻기 위해 엔진을 직접 컴파일할 필요가 없습니다.
참고로 엔진을 직접 다시 컴파일하려는 경우라면, 여전히 GitHub 로 이동 하여 필수 파일을 전부 구해야 합니다.
가상 현실 플레이
에디터에 “VR 프리뷰” 버튼을 추가했습니다! 오큘러스 리프트 디바이스가 연결된 상태라면, 게임을 가상 현실 모드에서 바로 플레이할 수 있습니다.
”VR 프리뷰” 를 클릭하면 에디터 창이 최소화되고, 오큘러스 리프트 디바이스에서 게임에 바로 뜹니다.
Leap Motion 플러그인 *베타*
이제 UE4 의 플러그인을 통해 Leap Motion 디바이스 가 지원됩니다. 이를 통해 Leap 의 손 추적 기술을 프로젝트에 바로 사용할 수 있게 되었습니다. 해당 API 는 블루프린트와 코드 양쪽에 노출되어 있어, 어떤 프로젝트에서도 해당 기술을 활용할 수 있습니다.
플러그인 사용법 관련 예제는, https://www.leapmotion.com 를 참고해 주세요. 현재 이 플러그인은 GitHub 에서 엔진을 빌드하신 분들, Leap 웹사이트에서 플러그인을 직접 다운로드하신 분들만 사용 가능합니다.
콘텐츠 브라우저에서 C++ 클래스
게임의 C++ 클래스가 이제 콘텐츠 브라우저에 보입니다!
손쉽게 콘텐츠 브라우저 안에서 바로 새로운 C++ 클래스 생성이 가능합니다! 자동으로 컴파일되고 에디터에 표시되어, 바로 사용할 수 있습니다!
C++ 클래스 아이콘에 더블클릭하면 Visual Stuio 또는 Xcode 에서 해당 소스 코드에 바로 점프하거나, 우클릭하면 선택된 클래스를 기반으로 새 클래스를 만들 수도 있습니다.
모프 타겟 과장
모프 타겟의 웨이트를 100% 이상으로 하여 과장된 포즈를 만들거나, 0% 미만으로 하여 반대 포즈를 만들 수 있습니다.
피처 팩 및 콘텐츠 팩
이제 콘텐츠 브라우저를 사용하여 새로운 “피처” 및 콘텐츠를 게임에 언제든지 추가시킬 수 있습니다! 팩에는 어떠한 콘텐츠, 블루프린트 클래스, C++ 클래스 조합도 포함 가능합니다.
모든 기존 템플릿 프로젝트 피처는 ‘피처 팩’으로 사용 가능합니다. 그래서 일인칭 피처 팩을 게임에 추가한 다음, 나중에 비히클 피처 팩을 추가하면 프로젝트에 두 피처 모두 사용 가능합니다!
콘텐츠 브라우저에서, ‘신규 추가’를 클릭한 다음 ‘피처 또는 콘텐츠 팩 추가...’ 를 선택합니다. 파일이 프로젝트에 바로 주입됩니다. 여러 팩에 튜토리얼도 내장되어 있을 수가 있습니다!
시작용 콘텐츠도 언제든지 프로젝트에 추가시킬 수 있습니다. 사실 “모바일 최적화된” 시작용 콘텐츠 팩도 있습니다.
애니메이션 편집 시스템
이제 페르소나 애니메이션 툴 안에서 바로 애니메이션을 편집할 수 있습니다!
타임 슬라이더를 잡아끌고, 본을 선택한 다음 기즈모를 사용하여 이동 및 회전시키고, 어느 프레임에든 키를 설정합니다. (힌트: 단축키는 ‘S’ 입니다)

페르소나 안에서 애니메이션 커브에 대한 편집 내용은 전부 “더하기식 레이어”로 저장됩니다. 원본 애니메이션을 리임포트하기로 결정한 경우, 변경 내용이 보존됩니다! 이 레이어는 페르소나에서만 존재합니다. “적용” 툴바 버튼을 클릭하기만 하면 변경 내용이 적용되어 게임에서 애니메이션을 확인할 수 있습니다!
전체 새로운 커스텀 애니메이션을 저장하는 것도 가능합니다! “애셋 생성” 툴바 버튼을 사용하여 레퍼런스 포즈에서든, 아니면 현재 포즈 또는 애니메이션에서든 애니메이션을 만들 수 있습니다.
기타 참고사항:
- 애니메이션 커브는 필요치 않은 경우 비활성화 또는 삭제 가능합니다.
- 굽고나면 익스포트는 최종 구워진 애니메이션에 작동합니다. 애디티브 커브는 익스포트되지 않습니다.
- 리타게팅시 커브는 전송되지 않습니다. 하지만 최종 구워진 애니메이션은 리타게팅될 것입니다.
즉석 본 콘트롤러 프리뷰
Bone Controller 노드는 이제 뷰포트 기즈모를 사용하여 대화식으로 조절 가능하며, 매번 컴파일할 필요가 없습니다!
현재 이 기능은 TwoBoneIK, ModifyBone & Fabrik 노드에서만 작동하나, 현재 추가 작업중입니다.
피직스에서 애니메이션 제작
피직스 에디터(PhAT)에서 물리 시뮬레이션을 녹화하여 애니메이션으로 저장 가능합니다!
툴바의 “녹화” 버튼을 클릭하여 시작한 다음, 뷰포트에서 오브젝트를 만져 재미난 시뮬레이션을 만듭니다. 다 됐으면 “중지”를 눌러 시뮬레이션을 애니메이션으로 저장합니다.
레벨에서 바로 애니메이션을 캡처할 수도 있습니다!
- 레벨 에디터에서 ‘플레이’ 툴바 드롭다운의 “시뮬레이트” 버튼을 클릭합니다.
- 씬에서 시뮬레이션되는 스켈레탈 메시를 찾습니다.
- 메시에 우클릭한 다음 “시뮬레이션 변경사항 유지” (또는 ‘K’ 키)를 선택하여 애니메이션을 저장합니다!
프로젝트 런처
새로운 프로젝트 런처 인터페이스를 통해 더욱 많은 옵션으로 게임을 더욱 쉽게 실행 또는 패키징 가능합니다!
프로젝트 런처에는 여러가지 유형의 디바이스와 환경설정으로 게임 테스트를 도와주는 기능이 있을 뿐만 아니라, 다중 세션을 동시에 실행시킬 수도 있습니다. 쉽게 커스터마이징 가능한 빌드 유형과 쿠킹 설정을 통해 연결된 디바이스에서 프로젝트를 실행시켜 보세요.
Custom Launch Profiles (커스텀 실행 프로파일)을 통해 필요에 맞는 빌드를 만듭니다.
- 고급 옵션이 전부 노출됩니다.
- 빌드하고자 하는 콘텐츠만 딱 선택합니다.
- 한번에 복수의 플랫폼을 빌드합니다.
- 다른 사람이, 또는 나중에 실행할 수 있는 빌드를 패키징하고 저장합니다.
물론 여전히 메인 툴바에 있는 편리한 “실행” 버튼을 사용하여 게임을 실행시킬 수도 있습니다. 하지만 보다 유연한 환경을 위해서는, “실행” 툴바 드롭다운 메뉴나 메인 창 메뉴에서 프로젝트 런처를 여는 것이 좋습니다.
블루프린트 병합 툴
새로운 블루프린트 병합 툴을 사용하여 여러가지 블루프린트를 병합시킬 수 있습니다.
이 툴은 두 블루프린트를 시각적으로 비교해 주어 그 둘을 합치는 데 도움이 됩니다! 각기 다른 팀원이 하나의 블루프린트를 변경한 경우, 그 내용을 병합시키고자 할 때 좋습니다.
이 툴을 사용하는 방법은 세 가지입니다:
- 블루프린트 에디터에서 파일 -> 병합 을 선택합니다.
- 소스 콘트롤 병합 충돌이 있는 애셋에 우클릭한 다음 병합 을 선택합니다.
- 명령줄 에서 UE4Editor.exe -diff [옵션] <파일 A> <파일 B> <공통 조상 파일> <출력 파일> 을 실행시킵니다.
Git 소스 콘트롤 플러그인 (베타!)
뛰어난 Git 소스 콘트롤 플러그인을 언리얼 엔진에 기여해 주신 커뮤니티 일원 Sébastien Rombauts 께 감사드립니다!
Git 저장소에 프로젝트를 연결한 경우, 파일 추가 및 제거, 변경사항 제출, 파일 히스토리 표시, 파일 버전비교, 애셋의 소스 콘트롤 상태 표시와 같은 대부분의 소스 콘트롤 작업이 에디터에 지원됩니다.
AI 인지 시스템: 블루프린트 스크립팅
AI 인지(Perception) 시스템은 이제 블루프린트 스크립트를 통해 환경설정 가능합니다! AI 에 AI Perception 컴포넌트를 추가한 다음, 그 프로퍼티와 이벤트를 조사하고 조절해 주면 됩니다.
새 프로젝트 템플릿에 대한 튜토리얼
새 프로젝트 템플릿 각각에 해당 템플릿의 애셋과 클래스 작동방식에 대한 간략 개요가 제공되는 개요 튜토리얼 이 포함되어 있습니다.
콘텐츠 브라우저에서 튜토리얼 썸네일에 ’재생’ 버튼을 클릭 하기만 하면 시작됩니다!
콘텐츠 팩 및 피처 팩 역시 자체적으로 튜토리얼을 포함시킬 수 있습니다! 프로젝트에 팩을 추가한 경우, 재생할 수 있는 튜토리얼이 있나 찾아보면 해당 피처 또는 콘텐츠 팩에 대해 쉽게 알아볼 수 있습니다!
새로운 썸네일 모양과 느낌
에디터에 새로운 형형색색 스타일 을 사용하여 애셋 썸네일 이 표시됩니다.
또한, C++ 클래스와 블루프린트 클래스 둘 다 가능한 경우 라이브 3D 썸네일 뿐만 아니라, 구석에는 부모 클래스가 무엇인지 나타내는 작은 아이콘 이 표시됩니다.
Paper2D: 개선된 타일 맵 레이어 편집
타일 맵 에디터에 유용한 레이어 편집 기능 을 다수 추가했습니다!
- 레이어 각각을 기준으로 올리거나 낮추어 순서를 변경할 수 있습니다.
- 레이어 브라우저의 선택을 통해 이제 항상 최상위 레이어에 칠하기 보다는 어느 레이어에 칠할지 조절할 수 있습니다.
- 선택된 레이어는 서로 다른 편집 세션간에도 유지됩니다.
- 선택된 레이어는 이제 올바른 깊이에 헬퍼 그리드가 렌더링되며, 선택되지 않은 모든 레이어에 대해 와이어프레임 윤곽선이 그려집니다.
- 레이어 이름변경은 월드 아웃라이너에서의 액터 이름변경과 똑같은 방식으로 작동하며, 비주얼 스타일이 더욱 명확해지고 클릭 반응도 보다 직관적입니다.
- 이제 레이어를 복제 가능합니다.
- 타일 맵은 이제 애셋으로 승격 명령으로 레벨에 재사용가능 애셋 또는 인스턴스가 될 수 있습니다.
- 새로 추가된 레이어의 이름이 보다 유의미해 졌습니다.
- 주: 타일 맵은 이번 언리얼 엔진 버전에서도 여전히 ‘실험단계’ 기능입니다.
Paper2D: 플립북 콜리전 감지
플립북을 통해 시퀀스로 재생되는 이미지에서 2D 애니메이션 생성 이 가능합니다. 이제 애니메이션 프레임에 대한 콜리전 프로퍼티 를 정의할 수 있습니다!
플립북 애셋에 플립북에 대한 콜리전 데이터(가 있다면 그) 소스를 조절하는 Collision Source 프로퍼티가 새로 생겼습니다.
- No Collision: 콜리전 없음 - 플립북에 콜리전이 없습니다.
- First Frame Collision: 첫 프레임 콜리전 - 애니메이션의 첫 프레임을 기준으로 플립북에 애니메이션이 적용되지 않는 콜리전이 있습니다.
- Each Frame Collision: 각 프레임 콜리전 - 애니메이션에 따라 플립북 콜리전도 매 프레임 변합니다 (주: 이 세팅은 매 프레임 물리 상태 재생성이 필요하므로 비쌀 수 있습니다).
사용법 관련 참고사항:
- 여러가지 경우 소스 프레임에서 콜리전을 직접 생성하는 것 보다는, 플립북 컴포넌트의 소켓에 (박스 컴포넌트 등의) 콜리전 컴포넌트를 붙이는 것이 나을 수 있습니다. 일부 콜리전 구역이 다른 블록과 겹치도록 하려는 경우에는 특히나 그렇습니다.
- 캐릭터 이동은 여전히 콜리전 캡슐에 의존하므로, 플립북에는 대부분의 경우 BlockAll 이외의 콜리전 채널을 사용해야 캡슐이 플립북에 달라붙어 꼼짝 못하게 되는 경우를 방지할 수 있습니다 (이동은 캡슐에 따라 블록시키고, 발사체 관련 겹침이나 충돌 검사는 플립북을 기준으로 합니다).
UI: 커스텀 커서 지원
이제 커스텀 위젯 을 만들어 프로젝트에 소프트웨어 커서 로 사용할 수 있습니다. UMG 의 모든 기능을 사용하여 텍스트, 생명력 바, 툴팁 등 원하는 대로 커서에 추가시킬 수 있습니다.
소프트웨어 커서는 여러가지 경우에 유용하게 쓰일 수 있습니다:
- 하드웨어 커서가 없는 플랫폼에 커서를 추가합니다. 콘솔에서 가상 마우스 커서를 예로 들 수 있습니다.
- 시각적으로 풍부하고 애니메이션이 있거나 복합적인 상호작용의 커서를 추가합니다.
- 각 플랫폼의 포맷 제한을 걱정할 필요 없이 PC, 맥, 리눅스에 일관된 모양의 커서를 추가합니다.
프로젝트 세팅 의 새로운 유저 인터페이스 섹션을 사용하여 게임의 소프트웨어 커서 위젯을 구성할 수 있습니다. 커서를 지정하지 않는다면, 기본 하드웨어 커서가 나옵니다.
주: 소프트웨어 커서 모션은 운영체제에 의해 렌더링되는 일반 마우스 커서와는 달리 게임의 프레임 속도의 제한을 받습니다. 선택시 가장 크게 고려해야할 부분입니다.
언리얼 모션 그래픽: 새로운 위젯 바인딩 시스템
위젯에 대한 바인딩 시스템이 대규모 개조 공사를 거쳐 위젯의 하위 프로퍼티 및 함수에 대한 바인딩이 가능해짐은 물론 퍼포먼스도 크게 향상되었습니다!
새로운 위젯 바인딩 관련 참고사항
- 바인딩은 블루프린트 스크립트 사용을 통해서가 아닌, 필드 세트에 대한 동적인 계산을 통해 이루어집니다.
- C++ 과 블루프린트 함수 양쪽에 대한 직접 바인딩이 지원됩니다!
- 사소한 변환은 자동으로 처리됩니다 (예: Linear Color 에서 Slate Color 로, Texture2D 에서 Slate Brush 로).
- 이러한 변화로 인해 프로퍼티에 대한 바인딩이 훨씬 빨라졌습니다 (약 10 배)!
- 예전 바인딩도 여전히 작동은 하지만, 퍼포먼스 향상 적용을 위해서는 새로운 시스템으로 업데이트해야 합니다.
비주얼 로거 (AI 시각화 툴)
비주얼 로거 툴이 여러가지 기능으로 완전히 새로워졌습니다. 프로젝트의 AI 디버깅 및 미세조정을 돕기 위해 디자인되었습니다!
- 이벤트를 기록한 다음, 강력한 툴을 사용하여 타임라인 검색을 합니다. 예제는 이 비디오 에서 확인할 수 있습니다.
- 타임라인 항목 중 경고가 있으면 노랑으로, 오류가 있으면 빨강으로 표시됩니다.
- 게임 일시정지 도중 특수한 디버그 카메라를 사용하여 날아다닐 수 있습니다.
- 비주얼 로거 이벤트에서 생성된 ‘리포트’를 저장합니다. 리포트의 하이퍼링크를 통해 로그에 필터를 적용하여 더욱 쉬운 분석이 가능합니다.
반투명 오브젝트 순서 제어
반투명 오브젝트의 렌더링 순서를 설정할 수 있도록 해주는 신기능입니다. 2D 게임에 정말 좋습니다!
프로젝트의 렌더링 세팅에서 새로운 Translucent Sort Policy (반투명 소팅 정책) 옵션을 확인합니다.
- Sort by Distance: 거리별 소팅 - 카메라에서 오브젝트의 바운딩 구체 중심까지 거리에 따라 소팅합니다. 기본 옵션으로, 3D 게임에 최적입니다.
- Sort by Projected Z: 투사된 Z 별 소팅 - 카메라에 사후-투사 Z 거리에 따른 소팅입니다. 카메라 회전에 따라 튀어보일 수 있습니다.
- Sort Along Axis: 축에 따른 소팅 - 고정된 축상의 투사에 따른 소팅입니다. 보통 2D 게임에 최적인 옵션입니다. 소팅 기준이 되는 축을 Translucent Sort Axis (반투명 소팅 축)이라고 하며, 렌더러 프로젝트 세팅을 통해 수정할 수도 있습니다 (기본값은 -Y 입니다).
블루프린트 순환 종속성 해결
블루프린트가 순환(cyclic)하는 상황을 처리할 수 있도록 로딩 방식 디자인을 고쳤습니다. 블루프린트는 원하는 모든 방식으로 혼합하거나 상호 통신 가능하며, 가중 중요한 점은, 다음 번에도 제대로 로드될 것입니다.
이를 통해 여러가지 블루프린트 로드시 발생하는 크래시 및 기형적인 상태로 로드되는 상황이 해결될 것입니다!
언리얼 C++ 프로그래밍 개선사항
언리얼 엔진에서 모두가 C++ 를 보다 쉽고 친숙하게 사용할 수 있도록 지속적인 작업을 하고 있습니다.
- 별도의 생성자가 필요치 않습니다! 클래스 생성자는 더이상 Object Initializer 인수를 받을 필요가 없습니다.
- 언리얼 클래스에 대한 서브 오브젝트 생성을 위한 간단한 문법이 새로 생겼습니다.
- 하나의 C++ 헤더 파일에 하나 이상의 언리얼 클래스를 가질 수 있습니다.
- 헤더 파일에 (언리얼 열거형이나 델리게이트같은) 특수 언리얼 유형을 정의할 수 있으며, 심지어 그 파일에 언리얼 클래스가 없어도 됩니다.
- 더이상 소스 파일 이름을 언리얼 클래스 이름과 똑같이 지을 필요가 없습니다.
- 이제 프로퍼티에 아무 이름이나 사용해도 됩니다! 기존에는 “Color” 같은 이름은 예약되어 있어 사용할 수 없었습니다.
멀티 스레드 애니메이션
애니메이션 포즈 계산이 멀티 코어 CPU 에 분산되어 엔진이 애니메이션을 계산하느라 걸리는 총 시간이 줄었습니다.
애니메이션 스켈레탈 메시가 많은 게임의 퍼포먼스가 향상됩니다!
안드로이드에서 데스크탑 퀄리티 렌더링 *베타* (OpenGL ES 3.1 w/ AEP)
(Android Extension Pack 이 결합된) OpenGL ES 3.1 를 통해 안드로이드 디바이스에서도 데스크톱 수준의 렌더링 느낌을 내는 기능을 대부분 사용할 수 있습니다! 이 기능은 현재 베타 테스팅 단계이니, 피드백을 주시면 고맙겠습니다.
- 이제 빌드와 쿠킹 타겟에 ES3.1+AEP 를 선택할 수 있습니다.
- Tegra K1 디바이스 (예: NVIDIA Shield Tablet) 가 테스팅 및 개발에 사용되었습니다. 앞으로 AEP 를 지원하는 디바이스가 많아질 것입니다!
- 안드로이드 프로젝트 세팅에서 “Enable OpenGL ES31 + AEP” 옵션을 통해 활성화시킵니다.
- 주: 현재 이 기능을 사용하기 위해서는 GitHub 의 소스를 통해 엔진을 직접 컴파일해야 합니다.
- 주: 블루프린트 전용 프로젝트는 엔진의 BaseEngine.ini 파일 내 bBuildForES31 옵션을 켜서 OpenGL ES 3.1 기능이 지원되는 베이스 UE4Game 실행파일을 리컴파일해야 합니다.
다운로드가능 콘텐츠 (DLC) 패키징 *베타*
이제 다운로드가능 콘텐츠 (DLC) 를 배포용으로 패키징 가능합니다!
현재 이 기능은 베타 테스팅 단계이며, 명령줄 툴이 필요합니다. 게임 플러그인 Content 폴더 안에서 애드온 DLC 를 만든 다음, 새로운 패키징 툴을 사용하여 “쿠킹” 하고 선택한 플랫폼에 맞게 콘텐츠를 최적화시킵니다.
이 기능은 게임의 애셋 레지스트리 를 활용하여 발매된 게임에 이미 제공된 콘텐츠가 무엇인지 알아낸 다음, 게임 콘텐츠에서 필요한 것들을 DLC 에 쿠킹해 넣습니다.
이 기능을 사용하려면, 메인 게임에 대한 쿠킹 유틸리티에 -CreateReleaseVersion=x.y 옵션을 붙여 실행한 다음, 각 DLC 플러그인에 대해 다시 -BasedOnReleaseVersion=x.y -DLCName=MyPluginName 옵션을 붙여 실행합니다.
안드로이드 무비 재생
이제 로딩 무비 와 스타트업 무비 가 안드로이드 디바이스에서 재생됩니다! 프로젝트 세팅 에서 재생할 스타트업 무비 설정이 가능합니다.
안드로이드 무비는 정상 재생을 위해 MP4 포맷이어야 합니다. 또한 무비 재생 기능은 안드로이드 4.0 이상의 디바이스가 필요합니다.
에디터에서 Android SDK 경로 셋업
안드로이드 개발에 필요한 SDK 컴포넌트 위치 설정을 프로젝트 세팅의 “Andoird SDK” 섹션에서 바로 할 수 있게 되었습니다. 초기 셋업 절차를 대폭 간소화시킬 수 있습니다!
이 세팅은 이미 설정된 환경 변수를 덮어씁니다 (원래 방식이 마음에 드는 경우 공란으로 비워두면 환경 변수를 사용합니다).
편집불가 블루프린트 변수 접근
다른 블루프린트의 변수를 “Editable”, 편집가능으로 만들지 않고도 다시금 접근할 수 있게 되었습니다. 이는 4.6 에서 이미 가능했으나, 4.7 에서는 안됐었습니다. 그 점 사과드립니다!
AI 블랙보드 동기화
블랙보드 애셋에 정의된 키는 이제 ‘synced’ (동기화됨) 마킹을 통해 그것을 사용하는 모든 AI 에 걸쳐 그 값을 동기화시킬 수 있습니다. 이를 통해 복수의 AI 에 작동방식을 동기화시키거나, 그 사이의 통신에 사용할 수도 있습니다.