유니티의 최신 개발 노하우를 들을 수 있는 '유니티 로드쇼'가 성남산업진흥재단 대강당에서 금일(4일) 진행됐다. 특히 오늘 강연은 전국 6개 도시를 다니며 진행된 '유니티 로드쇼'의 마지막 날로, 유니티 소속 개발자와 함께 YJM의 강범희 실장, iFunFactory의 김진욱 CTO, 스튜디오 HG의 한대훈 대표 등 유명 개발자들이 참가해 의미를 더했다.

올해 마지막 '유니티 로드쇼' 강연은 류태규 필드 엔지니어의 '유니티의 새로운 2D 기능 소개'로 시작했다. 류 엔지니어는 '유니티 5.6'과 '2017.1', '2017.2'에 업데이트된 주요 사항을 소개했다. 해당 업데이트에서는 그동안 유니티 개발자들이 불편했던 요소를 개선함은 물론, 새로운 기능 추가로 참석자들의 주목을 끌었다.

이어진 이일환 매니저의 '유니티 콜라보레이트&클라우드 빌드 소개' 강연은 소규모 프로젝트를 진행하는 개발팀에게 적합했다. 그동안 개발자들은 작업은 유니티로 하되, 협업은 다른 공유 프로그램을 사용했다. 하지만 이제, 개발과 공유 모두 유니티 안에서 가능해졌다. 그리고 이일환 매니저의 강연 중 말에 따르면 '별도의 빌드' 추가와 새로운 '소스 서버 머신' 역시 유니티로 해결할 수 있다.


유니티의 새로운 2D 기능 소개
불편함은 없애고, 편리함은 더했다

▲ 유니티 류태규 필드 엔지니어

독특한 비쥬얼 그래픽과 스토리로 좋은 평가를 받은 ‘나이트 인 더 우즈(Night in the Woods)'와 고전 카툰풍 그래픽에 어려운 난이도를 자랑하는 ’컵헤드(CUPHEAD)'의 공통점은 유니티로 개발된 2D 게임이라는 점이다. 특히 ‘컵헤드’는 다른 게임 개발 엔진으로 제작을 시도하다 프로젝트 규모가 커지자 도중에 유니티로 바꾸었다.

‘유니티 5.6’ 버전에는 2D 게임 개발을 도와주는 다양한 기능들이 포함되어 있다. 류 엔지니어가 먼저 소개한 ‘9-Slice’는 타일링 작업을 손쉽게 도와주는 기능이다. 하나의 타일 개체를 선택하면 아홉 등분 후 계산해서 모서리와 중앙 사이에서 이미지를 늘리는 작업을 도와준다. 유니티 엔진이 자동으로 선택하거나 사용자가 포인트를 이용해 이미지 영역을 조정할 수 있다. ‘9-Slice’는 2D 게임의 바닥이나 벽에 사용할 수 있다.

다음으로 소개된 ‘Outline editor’는 그림의 알파 영역을 선택하는 데 도움을 준다. 류 엔지니어는 “실제로 2D 게임 개발자들은 그림의 알파 영역을 폴리곤 문제보다 더 중요하게 여긴다”라고 말하며 'Outline editor'를 통해 문제를 더 편하게 해결할 수 있을 거라 기대했다. 해당 기능은 ‘Sprite Editor Window’ 아래 ‘Edit Outline’으로 사용할 수 있으며, 자동으로 알파 영역을 제외한 매쉬를 생성하거나 매뉴얼 작업을 할 수 있다. 원하는 영역의 포인트를 선택해 세밀한 포인트 변경 또한 가능하다.

2D 게임에서 원근감을 구현할 경우, 아래에 위치한 캐릭터는 가까이에 있고 위에 위치한 캐릭터는 멀리 있는 게 자연스럽다. ‘유니티 5.6’의 'Axis Distance sort'를 통해 2D 상에서 원근감을 쉽게 구현할 수 있게 됐다. 류 엔지니어는 “대형 게임사를 가 살펴봐도 아직 이 기능을 몰라 고생하는 개발자들을 볼 수 있다”라고 말하며 ‘Transparency Sort Axis’의 기준을 Y축으로 바꿔 2D 게임 캐릭터의 원근감을 손쉽게 구현했다.

류 엔지니어는 ‘유니티 5.6’에 추가된 'Physics 2D'를 소개하며, 이전까지 2D 게임 개발의 불편함을 상당 부분 해소했다고 말했다. ‘Physics 2D’에는 폴리곤끼리 충돌할 때 발상했던 문제를 해결한 ‘Contact API’, 복잡한 컬리더(Collider)를 하나의 컬리더로 추가해주는 ‘CompositeCollider2D’, 간단한 수치 조정으로 영역을 확장시키는 ‘EdgeRadius feature’ 등이다.

▲ 'Physics 2D'에 포함된 다양한 기능들

‘유니티 2017.1’에 추가된 ‘Sprite Atlas’는 이전의 ‘Sprite Packer’를 개선한 기능이다. 개발자는 손쉽게 오른쪽 버튼을 눌러 ‘create sprite atlas’를 선택해 생성하면, 자동으로 에셋이 만들어져서 사용할 수 있다. 이외에도 ‘Sprite Mask’ 기능을 이용해 카드 게임에서 동적인 이미지를 담은 카드를 만들 수 있다. 마지막으로 개발자는 ‘Physics shape Editor’ 기능으로 메쉬의 윤곽선을 효율적으로 편집할 수 있다. 'Physics shape Editor'의 수정 방법은 두 가지로, 직접 tolerance 값을 조정하는 것과 포인트를 이용해 선택 영역을 줄이는 방법이다.

‘유니티 2017.2’에 추가된 ‘Tilemap’ 기능은 정해진 타일은 마치 브러쉬처럼 그려나가듯 맵을 만들 수 있는 기능이다. 현재 다양한 맵 브러쉬가 준비되어 있으며, 개발자가 원하는 게임 로직에 맞게 직접 만들 수도 있다. 이 기능을 통해 개발자는 게임 디자인을 빠르게 시험할 수 있게 됐다.


▲ 'Tilemap' 사용 영상(제공: 유니티)

마지막으로 류 엔지니어는 ‘Smart sprite’가 곧 추가된다고 언급했다. ‘Smart sprite’는 게임 내 자연 환경을 표현하기 좋은 기능으로, 이를 통해 레벨 디자이너는 빠르게 환경을 만들고 시험할 수 있게 될 전망이다.


유니티 콜라보레이트&클라우드빌드 소개
이제, 개발은 유니티 안에서 다 한다

▲ 유니티 이일환 매니저

게임 개발 규모가 커져 인력이 늘어날수록 공동으로 작업하는 환경은 복잡해지기 마련이다. 이런 경우에 ‘유니티 콜라보레이트(Unity Collaborate)’와 ‘클라우드 빌드(Cloud Build)’가 도움이 될 수 있다. 현재 따로 나온 두 프로그램은 곧 ‘유니티 팀즈(Unity Teams)’로 통합된다.

이전까지 개발 환경에서는 디자이너와 개발자가 협업을 하게 된다면, 디자이너는 개발자의 환경을, 개발자는 디자이너의 환경을 이해하는 트레이닝 작업이 필요했다. 이후 개발자는 자신의 기기와 빌드 머신을 따로 구축하고 나중에는 안드로이드와 iOS 환경에서 단말기 테스트 작업을 시행했다. 서버 구축과 개발에 필요한 시간과 금전적인 소모가 일어날 수 밖에 없었다.

곧 통합될 ‘유니티 팀즈’는 이전까지 번거로웠던 작업을 손쉽게 해결한다. 복잡한 소스 컨트롤 시스템 설정이 필요없기 때문이다. 현재 개발된 ‘유니티 팀즈’는 소규모 프로젝트에 활용할 수 있으며 점차 업그레이드를 통해 대규모 프로젝트에서도 활용될 전망이다. 또한 OS 차이에 따른 테스트도 복잡한 빌드 머신 없이 apk, ipa 빌드를 통해 가능하다.

▲ 복잡한 과정이 'Unity Teams'로 해소된다

‘유니티 팀즈’의 사용 방법은 간단하다. 먼저, ‘유니티 엔터’에 들어가 협업할 사용자의 아이디를 추가하면 된다. 관리자는 초대한 사람의 권한을 설정할 수 있다. 관리자가 ‘유니티 클라우드’에 작업물을 업로드하면, 초대된 사람은 마찬가지로 ‘유니티 클라우드’를 통해 다운로드 받을 수 있다.

클라우드 서비스를 통해 작업을 하다보면 종종 컴파일러 에러를 겪을 수 있다. 이 경우 클라우드에 이전 작업물이 저장되어 있어 손쉽게 이전 버전으로 되돌릴 수 있다. 전체 작업물은 물론 특정 파일만 이전 버전으로 내려받는 것 또한 가능하다.

윈도우 환경의 개발자가 새로운 맥 개발 환경 꾸리기에는 부담이 될 수 있다. ‘유니티 클라우드’는 맥 환경에서 테스트할 수 있는 기능을 제공해 이런 부담을 덜 수 있다. 단, 공식적으로 출시할 때는 실제 맥 기기에서 개발자 아이디를 발급받아 진행해야 한다.

지금까지 개발이 어느정도 완료돼 주변 사람에게 테스트를 받고 싶을 때는 apk를 압축해 이메일을 보내거나 가상의 드라이브에 업로드해 다운받도록 유도했다. ‘유니티 팀즈’는 테스트용 링크를 생성할 수 있는 기능을 제공한다. 테스트 사용자가 해당 링크로 접속하면 ‘유니티 팀즈’를 통해 다운로드 받아 설치할 수 있다.

이일환 매니저는 “별도의 빌드, 소스 서버 머신을 구매하지 않아 비용을 절감할 수 있고 시간 절약 또한 가능하다”라고 소개하며 협업 프로젝트에 사용하길 권했다. 마지막으로 이일환 매니저는 OS 업그레이드에 따라 개발 환경이 변화는 상황을 소개하면서 'Unity Teams'는 자체적으로 OS 업데이트 환경을 맞춰주기 때문에 걱정할 필요가 없다며 발표를 마무리했다.


▲ 'Unity Teams'는 플러스와 프로에는 기본, 퍼스널은 제한적으로 사용할 수 있다