안녕하세요 여러분, 저는 러셀 그레인입니다. 저와 제 팀은 호주에 있는 Opaque Multimedia (오파크 멀티미디어)라는 회사에 근무하고 있구요, 지난 여섯 달 동안 Kinect 4 Unreal (키넥트 4 언리얼) 플러그인 작업을 해 오고 있습니다. 키넥트 4 언리얼은 언리얼 엔진 4 에서 키넥트 2 센서의 모든 기능을 사용할 수 있도록 해 주는 플러그인입니다. 최근 저희 웹사이트에 플러그인 1.1 버전과 그에 관련된 콜렉션 콘텐츠 예제를 에픽 마켓플레이스에 공개한 바 있습니다.
키넥트 2 란?
기존에 사용해 볼 기회가 없던 분들을 위해 말씀드리자면, 키넥트 2 는 여러가지 색과 자외선, 시간비행 카메라를 조합해서 사용하여 월드의 디테일한 맵을 만드는 센서 장비입니다. 집음된 소리를 현지화시키는 데 사용되는 마이크도 장착되어 있습니다.
주로 여러 센서들을 통해 추론한 스켈레탈 정보에 따라 플레이어의 동작을 추적하는 데 사용합니다. 스켈레탈 추적은 키넥트 2 가 할 수 있는 능력에 비하면 정말이지 빙산의 일각일 뿐이지만, 주로 어디에 사용되는지에 대한 개괄적인 설명으로는 충분할 것입니다.
모두 어떻게 시작되었는가
키넥트 4 언리얼(K4U)은 내추럴 모션 인터페이스, 즉 사용자의 몸동작만이 유일한 입력이었던 인터페이스를 필요로 했던 여러 프로젝트의 내부용 툴로 시작했습니다. 키넥트 2 SDK 의 모든 부분에 걸쳐 시스템적으로 쏟아부은 기술적인 노력은 모두, 아티스트와 레벨 디자이너가 키넥트 2 의 모든 잠재력을 활용할 수 있도록 하는 데 주안점을 두었습니다.
처음으로 앉아서 K4U 를 사용했던 때가 기억납니다. 우리 기술자 중 한 명이 자유시간에 언리얼로 키넥트를 쓰고서는 포즈를 잡고 춤을 추며 작업을 하고 있었는데, 그 직원더러 주로 손 상태나 손 위치를 가지고 플레이해 볼 수 있는 것 좀 준비해 줄 수 있겠느냐고 부탁을 했습니다. 그 당시는 극초기였어서 지금 우리가 만든 기능 다수는 아직 만들어지지도 않았던 때이지만, 제가 원하는 것을 구하기 위해 뭐가 필요한지는 접할 수 있었습니다.
파이어볼을 던지고 싶다
다른 엔진으로 초기 버전 기술을 사용해서 키넥트 어플리케이션을 개발했던 경험을 토대로, 그 이후 바로 데모 제작 작업에 착수했습니다. 정말 놀라운 것은, 30 분 동안 노드 열 댓 개 추가했을 뿐인데, 저는 벌써 맨손으로 파이어볼을 던지고 폭발시키면서 상자더미가 날아다니게 만드는 마법사가 되어 있었습니다. 그 날, 오파크 멀티미디어 사무실에서 다른 일은 다 했지요. 사실 말이지, 직장에서 파이어볼 던지는 것만큼 재미난 일이 어딨겠어요.
하루 이상은 걸릴 것으로 생각했지만, 실제로 겨우 30 분 걸렸을 뿐입니다. 제가 별다른 작업을 할 필요도 없었습니다. 이미 다 되어 있었으니까요.
블루프린트로 만든 파이어볼 데모입니다.
사용자에게 힘을
파이어볼 데모 개발에는 K4U 의 모든 부분에 내재된 저희의 핵심 원칙 중 하나, 코딩 경험이 없는 분들도 누구나 쉽게 접근할 수 있도록 만들자! 하는 부분이 정말 강조되어 있습니다.
개발이 진행되면서 보다 많은 키넥트 2 함수성을 노출시켰고, 데이터를 게임으로 만들고자 하는 사용자들에게 어떻게 하면 데이터를 유용하게 만들어줄 것인가에 대해 보다 면밀히 알아보기 시작했습니다. 그래서 디자인 팀에게 직접 데모 게임 모음을 만들어 보도록 요청하고, 저희는 그들의 피드백을 토대로 반복처리작업을 할 수 있었습니다.
콘텐츠 예제의 스파이드론 카메라 콘트롤 데모. 많은 사랑을 받았습니다.
이 과정을 통해 인터페이스와 사용자들에게 원본 키넥트 데이터를 노출시키는 수단이 점차 세련되어져 갔습니다. 디자이너가 처음부터 끝까지 데모를 만들 수 있게 되는 시점에서는, 키넥트 2 의 모든 것에 사용자가 쉽고 편하게 접근할 수 있도록 해 주는 인터페이스를 개발했다는 확신이 들었습니다.
이 공동 접근법의 아주 좋은 예 중 하나로, 아바티어링 시스템을 들 수 있습니다. 원래는 키넥트 2 의 원본 스켈레탈 데이터를 그냥 노출시켰었습니다. 아티스트가 그 데이터를 사용해서 게임내 캐릭터를 직접 조종하는 데 별 문제가 없긴 했지만, 출력 역시도 너무 떨린다는 사실을 언급했습니다.
아바티어링 시스템 데모를 통해 원본 입력과 처리된 입력의 차이점, 아바티어링 입력과 언리얼 애니메이션을 합치는 방법에 대해 선보이고 있습니다.
지금까지 많은 사람들이 감사의 뜻을 표한 부분이라면, 키넥트 2 의 거의 해석 불가능한 쿼터니언 출력을 언리얼 로테이션으로 바로 자동 변환시켜 부드러운 동적 함수로 통합시키기도 했던 점입니다. 그 결과 읽기 쉽고 재사용성이 높은 정보가 되었지요.
앞으로 나아가
현재 플러그인 1.1 버전의 기능 세트는 꽤 오랜 기간 안정화되어 있는데, 거의 키넥트 2 에서 사용자들이 할 수 있는 일을 사실상 모두 할 수가 있기 때문입니다. 앞으로 키넥트 2 SDK 에 있을 공식 업데이트마다 모든 기능에 대한 호환성을 유지하기도 할 것입니다. 관심이 있으신 분들은 저희 1.1 소개 비디오를 통해 키넥트의 기본적인 기능 시연 및 약간의 신기능에 대한 상세 설명을 참고해 보시기 바랍니다.
앞으로 몇 달 간 펼쳐보이고자 계획된 개선사항이 많이 있으며, 그 중 일부는 옵션을 통한 플러그인 기능 확장이 될 것이고, 일부는 핵심 함수성에 대한 개선 내용이 될 것입니다.
곧 발매될 UE4 타이틀 Lost Pisces 의 개발사인 Sirenum Digital 분들과도 공동 작업을 통해, 플레이어가 전에 없던 방식으로 게임내 아바타와 교류할 수 있도록 하는 인터페이스를 제작하고 있습니다.
이제 언리얼 엔진 4 가 완전 무료가 되었으니, 이제 키넥트 2 와 언리얼 엔진을 함께 사용해서 재밌고 환상적인 작품이 많이 나올 것을 기대하고 있습니다!