Unity 검색

유니티 5.4 출시 – 새로운 버전에서는 다음과 같은 기능을 만나볼 수 있습니다

2016년 7월 28일 테크놀로지 | 12 분 소요
다루는 주제
공유

Is this article helpful for you?

Thank you for your feedback!

드디어 유니티 5.4가 출시되었습니다! 여기에서 다운로드 할 수 있습니다!

지난 3월에 발표한 바와 같이 최상의 품질과 안정성을 보장하기 위해 유니티 5.4 베타 테스트에 추가 리소스를 확보하였습니다. 베타 테스터 여러분들의 도움이 없었다면 불가능했을 것입니다. 여러분들의 피드백과 버그 신고에 감사 드립니다.

지난 몇 달 동안 유니티 5.4 마무리 작업을 하며 현재 진행 중인 프로젝트를 지원하기 위해 유니티 5.3.x 버전도 지속적으로 향상시켰습니다.

유니티 5.4의 개요는 다음과 같습니다:

  • 그래픽과 렌더링 성능 향상:
    • 멀티스레드 렌더링 개선
    • GPU 인스턴싱의 드로우 콜(draw call) 감소 – 윈도우, OSX, 리눅스, 플레이스테이션4, Xbox One 지원
    • 저사양 그래픽 기능 향상: 텍스처 어레이(Texture Array), 컴퓨트 쉐이더(Compute Shader) 등
  • 아티스트를 위한 개선사항:
    • 사이징 컨트롤, 새 트리거 모듈, LPPV(Light Probe Proxy Volumes)의 향상된 광원으로 인한 파티클 커스텀 기능 강화
    • 모션 벡터 렌더링을 위한 자체 엔진 지원
  • VR 개선사항: 내장 멀티플랫폼 VR 지원과 성능 향상
  • 안드로이드 IL2CPP 공식 지원 (이전 버전에서는 '시험적' 지원)
  • 에디터의 맥 레티나 디스플레이 지원(윈도우 HiDPI 지원은 현재 개발 중), 확대/축소가 가능한 게임 뷰 기능 추가(OSX, 윈도우)
  • 클라우드 빌드 설치가 에디터 내에서 가능  
  • 성능 리포팅(Performance Reporting) 기능이 에디터에 완벽하게 통합되어 플러그인이나 코드 없이 단 한 번의 클릭으로 활성화 가능
  • 대시보드의 애널리틱스 기능의 대대적인 업데이트(Ads, Livestream, Heatmaps, Raw Data Export 데이터)
  • 아마존 앱스토어의 인앱구매 지원
  • iOS 6 지원과 함께 웹플레이어 PS3 빌드 대상 옵션 제거(iOS 7.x  및 상위버전 지원)

상세 내용은 다음과 같습니다:

그래픽과 렌더링 성능 향상

멀티스레드 렌더링

유니티 5.4는 한 차원 향상된 멀티스레드(multithread) 렌더링 지원을 자랑합니다. 프로젝트와 플랫폼에 따라 현저한 프레임 속도 향상을 경험할 수 있습니다.
유니티 5.3의 메인 스레드에서 파티클, 스프라이트, 플레어, 후광, 선, 트레일을 제외시키는 작업을 기반으로 병렬 커맨드 리스트 생성(parallel command list generation) 기법을 도입하였습니다. 물리와 스크립트가 사용하는 CPU 코어 스크립트에 하나의 그래픽 커맨드 리스트를 구축하는 대신 작업이 다수의 CPU 코어로 할당되어 병목현상을 예방하고 복잡한 장면의 실행 속도를 향상시켰습니다..

GPU 인스턴싱을 통한 드로우콜의 감소

드로우콜(draw call)이 줄어들면 그 만큼 성능이 향상됩니다. GPU 인스턴싱(instancing) 지원을 통해 같은 재질을 공유하는 많은 수의 동일한 지오메트리를 렌더링할 때 드로우콜을 현저히 감소시켰습니다.
GPU 인스턴싱은 현재 윈도우(DX11/12의 Shader Model 4.0 이상), OSX, 리눅스 (OpenGL 4.1 이상), 플레이스테이션4, Xbox One에서 지원되며 앞으로 더 많은 플랫폼에서도 지원될 예정입니다.

이 장면에는 3가지 유형의 암석 메시가 포함되어 있습니다. 각 암석은 재질 속성 블록을 사용하는 회색 계열의 색상이 적용되어 있습니다. 첫 장면은 표준 쉐이더의 인스턴스된 버전을 사용하고 있고 두 번째 장면은 내장 표준 쉐이더를 사용합니다. 이 데이터는 다음과 같은 사양에서 캡처되었습니다: 유니티 5.4 베타, 윈도우 / D3D11, Intel Core i7-4980HQ@2.8GHz CPU, nVidia GeForce GT 750M GPU

저사양 그래픽 기능 향상: Texture Array, Compute Shader 등

쉐이더를 직접 제작하는 그래픽 프로그래머에게 2D Texture Array는 큰 장면을 최적화시키고 렌더링 시스템을 실행하는데 도움이 됩니다. GPU가 동일한 크기와 형식을 가진 2D 텍스처를 단일 개체로 처리하게 됩니다.
또한, 다양한 저사양 그래픽 기능도 향상시켰습니다. Compute Shader는 DispatchIndirect를 통해 연결되고 Compute Buffer Counter도 향상되었으며 디버그 정보가 Compute Shader 디버깅에 활용됩니다. 새로운 CopyTexture 기능으로 텍스처 복사를 더 빨리 수행할 수 있으며 Uniform Array를 쉐이더 매개변수로 지원하는 기능이 추가되었습니다. Metal, OpenGL, D3D9 플랫폼에는 Alpha-to-coverage를 구현하였으며 iOS에서는 Metal 그래픽을 위한 멀티스레드 렌더링을 지원합니다. 마지막으로 새로운 ImageEffectAllowedInSceneView 속성이 도입되어 장면 뷰 카메라에서 이미지 효과를 적용할 수 있습니다.

아티스트를 위한 기능: 향상된 시네마틱 이미지 효과로 파티클 광원과 모션 벡터가 향상되었습니다.

파티클 컨트롤

유니티 5.4에는 새로운 파티클 사이징 컨트롤(sizing controls for particles) 기능이 도입되어 파티클의 너비와 높이를 독립적으로 조정하고 메시 파티클의 완전한 3D 형체를 제어할 수 있습니다.

또한 새로운 트리거 모듈을 추가하여 충돌체 목록 내에서 파티클 속성을 수정할 수 있습니다. 가장 단순한 형태로 파티클이 충돌체와 접촉하면 파괴시킬 수 있지만 커스텀 콜백을 사용하면 모든 파티클의 속성을 수정할 수 있습니다. 아래 점성 볼륨 이펙트 (viscous volume effect)영상을 통해 이를 확인할 수 있습니다.

LPPV(Light Probe Proxy Volumes)는 대규모 파티클 시스템의 광원효과를 더욱 실감나게 표현해줍니다. 이는 베이크된 라이트맵을 사용할 수 없는 커다란 동적 개체에 베이크된 광원 정보를 적용해줍니다.

LPPV는 바운딩 볼륨 안에 보간된 광원 프로브들의 3차원 그리드를 생성 (by generating a 3D grid of interpolated light probes inside a bounding volume)하여 동작하며 또한 그리드 해상도를 설정할 수 있습니다. 그렇게 하면 프로브 광원 개체에 공간 그라디언트를 추가할 수 있습니다. LPPV는 파티클 뿐만 아니라 크기가 큰 동적 개체에도 사용이 가능합니다.

시네마틱 이미지 효과와 모션 벡터 지원

마지막으로 에셋 스토어에서 오픈 소스 패키지로 제공되는 시네마틱 이미지 효과 (Screenspace Raytraced Reflections, Depth of Field, Tonemapping and Colour Grading 등)도 있습니다. (저희의 저장소(repository)에 오픈 소스 형태로 제공됨). 시네마틱 이미지 효과는 아래 Adam 데모에서 확인할 수 있습니다.

Adam_DoF

5.4버전은 또한 모션 벡터(Motion Vector)를 지원합니다. 모션 벡터는 픽셀 단위에서 프레임-투-프레임 모션을 추적하여 모션 블러와 TXAA(Temporal Anti-Aliasing)와 같이 후처리 효과를 낼 때 유용합니다. 예를 들어 현재 시네마틱 이미지 효과 패키지의 베타 버전은 이러한 기능을 활용하여 실감나는 모션 블러 효과를 낼 수 있습니다:

멀티플랫폼 VR 지원 추가와 향상된 성능

유니티 5.4는 OpenVR (SteamVR/HTC Vive), 오큘러스 리프트, 기어 VR, 플레이스테이션 VR 플랫폼의 최적화된 내장 렌더링을 지원합니다. 단일 API를 통해 다중 플랫폼 빌드를 쉽게 구축할 수 있으며 장치 별 조정 작업을 최소화시켜 줍니다.

VR 장치들간에 중복된 기능을 가진 불필요한 코드를 제거하기 위해 VR 하위 시스템을 리팩터링(refactoring)하였습니다. 성능 면에서는 최적화된 싱글패스 스테레오 렌더링(Optimized Single-Pass Stereo Rendering) 기능(기존의 Double Wide Rendering)을 추가하여 양 뷰포트를 싱글패스로 렌더링하여 높은 프레임 속도를 유지할 수 있도록 하였습니다.

VR 작업을 처음 시작하는 사람들을 위한 편리한 튜토리얼과 관련 무료 에셋 덕분에 작업을 신속하게 진행할 수 있습니다. 

마지막으로 구글 IO에서 발표한 바와 같이 유니티는 기본적으로 데이드림 플랫폼을 지원하게 됩니다. 통합이 이루어지기 전까지 구글 개발자 포털에서 유니티용 Google Daydream VR Dev Kit를 받아 사용할 수 있습니다.

안드로이드용 IL2CPP

IL2CPP는 유니티 프로젝트의 스크립트와 어셈블리 IL(Intermediate Language) 코드를 C++코드로 변환하여 플랫폼의 기본 컴파일러를 사용하여 컴파일 하는 스크립트 백엔드입니다. 이를 통해 유니티에서 스크립트(게임 로직) 실행 시 성능 향상이 향상됩니다. 유니티 5.0에서 도입되어 WebGL과 사용을 위해 처음 실행된 IL2CPP은 현재 iOS, PS4, PS Vita에서 완벽 지원되며 윈도우 스토어/UWP와 Xbox One에서 시험 지원되고 있습니다.

IL2CPP는 이제 시험 지원을 마치고, 안드로이드 플랫폼에서 정식 지원이 가능하게 되었습니다.

WebGL 빌드 시간의 단축과 WebGL 2.0의 시험 지원

5.4에서는 WebGL의 구축 시간을 단축시키는데 중점을 두었습니다.  IL2CPP 아티팩트를 캐싱하고 개발 빌드에서 사전 런타임 구성요소를 사용할 수 있는 옵션을 제공하여 오직 사용자 코드만 다시 빌드될 것입니다. 첫 번째 빌드는 같은 시간이 소요되지만 후속 빌드의 작업 시간은 점진적으로 단축되어 작업을 빠르게 진행할 수 있습니다. (아래와 같이 빌드를 클라우드 빌드로 쉽게 전환 가능합니다.)

WebGL은 완벽하게 지원되며 웹 게임 제작이 가능한 실행 가능한 빌드입니다. 개발자들이 WebGL을 게임의 배포 옵션으로 채택하고 있습니다. 예를 들어 Unite Europe 2016에서 TopNordeus는 Top Eleven의 WebGL 개발을 소개하며 WebGL에 대한 많은 유용한 정보를 제공하고 있습니다. [*스포일러 주의*]는 30%의 매출 증가를 발표하기도 했습니다.

또한 유니티에서 WebGL 2.0이 시험 타겟으로 제공됩니다. WebGL 2.0 사양은 아직 시험 단계에 있고 웹브라우저의 현재 출시버전에는 포함되어 있지 않지만 파이어폭스크롬에서 구현이 가능합니다. "Auto Graphics API" 속성 선택을 해제하고 목록 상단에 "WebGL 2.0"을 추가하면 됩니다.

WebGL2.0Settings

레티나 에디터 지원과 확대/축소가 가능한 게임 뷰

레티나 디스플레이를 지원하는 맥용으로 게임을 제작하고 있다면 유니티 에디터에서 확인이 가능합니다. 윈도우 사용자를 위한 HiDPI 지원도 현재 개발 중입니다.

또한 고해상도 장치를 위한 게임을 개발하고 있다면 에디터의 게임 뷰에서 확대/축소를 통해 전체 해상도로 화면 출력이 가능합니다. OSX와 윈도우 버전 에디터에서 적용이 가능합니다.

이제 에디터에서 클라우드 빌드 설정을 직접 할 수 있습니다

클라우드 빌드를 사용하면 플랫폼마다 빌드를 컴파일하고 구축하는 프로세스가 필요 없어 반복작업 시간을 단축할 수 있습니다. 유니티 5.4에서는 클라우드 빌드 설정을 에디터에서 구현하여 설치를 단순화시켰습니다. 또한 서비스 탭에서 클라우드 빌드의 상태를 확인할 수 있어 대시보드를 오가는 수고를 덜 수 있습니다.

blog_54_cloudbuild

시간이 되면 이 "시작하기" 영상을 한번 시청해보세요.

에디터에 통합된 성능 리포팅, 단 한 번의 클릭으로 활성화 가능

유니티 성능 리포팅(Performance Reporting)은 모든 장치와 플랫폼에 걸쳐 자동으로 애플리케이션 오류를 수집하여 실시간으로 문제를 파악하고 해결할 수 있습니다. 유니티 5.4에서는 이 기능을 에디터에 통합시켜 단 한 번의 클릭으로 활성화시킬 수 있습니다. 단 몇 초 만에 가능합니다. 영상을 통해 확인해보세요:

오류 로그가 개발자 대시보드에 나타납니다:

이것은 단지 시작에 불과합니다. 성능 리포팅은 게임의 내적인 부분을 더 잘 이해할 수 있도록 도와주는 툴로 개발될 예정입니다. 이를 위해 예외 보고(exception reporting) 기능을 구축하였고 더 많은 기능들이 추가될 예정입니다. (더 자세한 사항은 블로그를 확인하세요.)

애널리틱스의 기능 업데이트: 수익 보고, 실시간 이벤트, 새 히트맵, 로우 데이터 내보내기

유니티 5.4에는 애널리틱스(Analytics) 기능도 대폭 업데이트되었습니다. 새로운 애널리틱스 대시보드를 통해 광고 수익과 ARPDAU (일일 활동 사용자당  평균수익)를 확인할 수 있으며 라이브스트림 기능으로 실시간 게임 이벤트를 파악할 수 있습니다(유니티 플러스, 프로 사용자만 지원). 또한 새로운 히트맵(heatmap) 기능으로 원하는 주요 게임 수치를 맵핑하고 로우 데이터 내보내기(Raw Data Export) 기능으로 모든 데이터를 손쉽게 다운로드 하여 원하는 정보로 구성할 수 있습니다(유니티 프로만 지원).

아마존 앱스토어의 인앱구매 지원

크로스 플랫폼 인앱구매 기술인 유니티 IAP아마존 앱스토어가 추가되었습니다. 유니티 IAP는 하나의 API로 다수의 스토어 지원을 통합할 수 있습니다.

Web Player, PS3 배포와 iOS 6 지원의 중단

먼저 발표된 대로 브라우저 제공자들이 플러그인 없는 웹으로 전환함에 따라 유니티 5.3은 Web Player 배포를 지원하는 최종 버전이 되었습니다. 물론 유니티 5.3.x 버전을 사용하여 Web Player 게임을 제공할 수 있습니다. 하지만 이제 WebGL에 집중해야 합니다!

아이폰 사용자들은 iOS 최신 버전으로 빠르게 업데이트를 진행하는 것으로 나타났습니다. (“Games by the Numbers”의 2016년도 2분기 보고에 따르면 iOS 게임 중 99.2%가 iOS 7.x 이상의 버전에서 다운로드 된 것으로 나타났습니다.) 따라서 이번 버전에서 iOS6는 빌드 타겟에서 제외되었습니다. 

또한 PS3 배포 지원을 중단하고 PS4 게임 지원에 집중하기로 결정했습니다.

테스트와 버그를 보고해주신 베타 사용자 여러분들께 감사 드립니다!

베타 프로그램에 참여해주신 모든 분들께 감사의 말씀을 전합니다. 기존의 프로젝트를 업그레이드하여 문제점을 보고해주신 여러분들께 감사드립니다. 유니티는 매우 다양한 방법으로 사용되기 때문에 리그레션 버그(regression bug)를 찾아내기가 가장 어렵습니다.

유효한 버그를 제출해주셨던 모든 분들께 유니티 5.4 베타 티셔츠를 받을 수 있는 이메일을 보내드리고 에셋 스토어에서 사용하실 수 있는 100달러 바우처 100장을 추첨을 통해 드릴 예정입니다.

이메일을 확인해주세요!

5.4Beta-shirt_v2

유니티 5.5 베타가 곧 여러분을 찾아갑니다.

유니티 5.5 베타도 곧 선보일 예정입니다. 저희 Roadmap 페이지를 통해 베타 테스터 가이드와 유니티 5.5의 새로운 기능들을 확인하실 수 있습니다.

유니티 5.4에 대한 자세한 사항은 릴리스 노트를 확인하시기 바랍니다.

2016년 7월 28일 테크놀로지 | 12 분 소요

Is this article helpful for you?

Thank you for your feedback!

다루는 주제