Unity 검색

프로덕션에서 참여까지: Drop in the Ocean 스토리

2022년 10월 21일 커뮤니티 | 17 분 소요
From production to participation: The story of Drop in the Ocean | Hero image
From production to participation: The story of Drop in the Ocean | Hero image

Conservation International과 파트너십을 맺은 Vision3에서 Unity로 개발한 Drop in the Ocean은 10분 길이의 소셜 VR 어드벤처로, 내레이션을 맡은 필립과 아슐란 쿠스토가 해파리를 타고 누비는 신비한 심해 세계로 사용자를 안내합니다. 가장 중요한 점은 참가자가 해양 생물의 관점에서 플라스틱 오염 사태를 경험할 수 있다는 사실입니다.

이 콘텐츠는 Targeting Cookies 카테고리를 수락해야만 동영상을 시청할 수 있도록 허용하는 타사 제공업체에서 호스팅합니다. 이러한 제공업체의 비디오를 보려면 쿠키 환경 설정에서 Targeting Cookies 카테고리를 수락하시기 바랍니다.

이 프로젝트를 소셜 VR 경험으로 개발하는 과정에서 큰 기술적 어려움이 있었지만, 팀은 사용자를 전신 아바타로 꼭 묘사하고 싶었습니다. Drop in the Ocean의 세계에서 사용자는 최대 4명의 참가자로 구성되는 팀의 일원이 되어 주변을 둘러싼 플라스틱 쓰레기를 치우게 됩니다. 그 과정에서 해양 세계에 닥친 위협과 그 해결에 도움이 될 수 있는 스스로의 역할을 새롭게 인식하게 됩니다. 이러한 메시지가 높게 평가되어 Drop in the OceanUnity의 Environment and Sustainability 지원금 프로그램으로 선정되었고 2021년에 프로젝트 지원금을 받았습니다.

이번 포스팅에서는 Drop in the Ocean의 개발 과정을 자세히 살펴보고 Vision3에서 Unity를 활용한 방식과 Environment and Sustainability 지원금을 통해 해낸 일들을 차례로 살펴보겠습니다.

제작 과정

몰입형 경험 안에서 실제 사람과 상호작용한다는 사실을 깨닫는 순간 마법과 같은 일이 일어납니다. 사용자를 미지의 장소로 안내하고 그 속에서 특별한 이야기를 가능케 하는 바로 이러한 마법이야말로 소셜 VR과 관련 기술이 가진 환상적인 역량입니다.

여러 순간을 친구들과 공유하고 서로에게 실시간으로 물리적인 반응을 전달하는 것이 몰입형 엔터테인먼트가 가진 특별한 요소라 할 수 있습니다. Drop in the Ocean과 같은 프로젝트를 시작하면서 Vision3 팀은 이용자에게 더 큰 보람을 선사하는 경험을 구현하는 방법을 지속적으로 제시하고 있습니다.

2019년에 PC-VR 경험으로 처음 출시된 Drop in the Ocean은 케이블로 연결된 전용 고사양 워크스테이션이 필요했습니다. 프로젝트가 진행됨에 따라 맞춤 RGB 카메라 기반 모션 캡처 시스템이 개발되어 경험 안에서 사용자가 서로를 전신 아바타로 볼 수 있게 되었습니다. 이 카메라 시스템과 고사양 로컬 네트워크는 별도의 Linux 기반 PC로 제어되었습니다.

모션 캡처 시스템을 통해 전과 달리 자유로운 이동과 마커리스(markerless) 트래킹이 가능해졌으나 당시의 기술 수준으로는 제약이 있었습니다. 또한 고정된 조명 조건에 의존해야 했으며 이는 배포 대상이던 장소와 호환되지 않는 경우가 많았습니다.

결과적으로 저희 팀은 설치 장소와 전달 방식 등 엄청난 장비 요구 사항과 제약을 없애고 이용자가 완전히 구현된 아바타로 상호작용하도록 매우 혁신적인 경험을 빌드할 수 있었습니다.

Shark still from Drop in the Ocean

3년이 지난 후 정말 대범한 과제를 목표로 선정하게 되었습니다. 작은 모바일 VR 기기에서도 실행할 수 있는 위치 기반의 멀티플레이어 경험에 시각적 정확도와 과학적으로 정밀한 해양 생물 모델, 전신 아바타를 그대로 담아내는 것입니다.

아래에서 그 방법을 자세히 살펴보겠습니다.

다이내믹 해상도 및 셰이더 최적화

당시 팀은 프로젝트를 스탠드얼론 기기로 포팅하고, 비용을 절감하며, 사용자 규모를 확장함과 동시에 PC-VR 버전의 화질을 최대한 유지해야 했습니다.

Drop in the Ocean의 오리지널 버전에는 해파리 모델의 여러 반투명 레이어, 거대 동물의 높은 폴리곤 수, 여러 씬에 담긴 엄청난 오브젝트 수, 고정된 타임라인 빌드, 오브젝트 상호작용에 적용된 다수의 물리 등 당시 모바일 개발 분야에서 어려운 문제로 꼽히던 대부분의 항목이 존재했습니다. VFX 개발자 콘래드 휴즈는 포팅 팀에서 정해진 프레임 내에 시각적 정확도를 최대한 유지하는 데 집중했습니다. 가장 먼저 해야 할 일은 Drop in the Ocean 실행을 고해상도 렌더 파이프라인(HDRP)에서 유니버설 렌더 파이프라인(URP)으로 전환하는 것이었습니다. URP를 사용하면 PC 버전에서의 품질을 일부 희생해야 했지만, 훨씬 더 빠른 실행이 가능했으며 기본적으로 스탠드얼론 기기로 진입하는 길을 열어 주었습니다.

최대한의 클로즈업 정확도를 유지하면서도 수면 아래에 있다는 느낌을 유지하는 것이 목표였습니다. 이를 위해 FFR(Fixed Foveated Rendering, 고정 포비티드 렌더링)과 같은 글로벌 성능 부스터를 활용하여 기기 화면의 중앙으로부터 점점 해상도 스케일을 줄였습니다. 일부 기기의 경우 매우 높은 해상도를 가진 한 쌍의 화면을 가지고 있으므로, 멀티뷰를 사용하여 VR 프로젝트 표준에 따라 두 번째 눈을 인스턴싱했습니다. 이는 디스플레이가 뛰어난 품질의 이미지를 표시할 수 있는 충분한 기능을 갖추고 있지만 모든 픽셀을 표시하려면 하드웨어에 부담이 가해질 수 있음을 의미합니다. FFR을 사용하면 사용자의 시야에 보이는 이미지의 정확도와 품질을 유지하면서 나머지 공간을 채우므로 상당한 도움이 됩니다.

Unity Editor screen capture from the making of Drop in the Ocean.

또한 프로젝트 전반에서 다이내믹 해상도 스케일을 사용했습니다. 화면에 오브젝트가 많으면 렌더 스케일이 감소하고, 주요 오브젝트만 몇 개 있으면 렌더 스케일이 증가합니다. 이런 방식으로 사용자가 초점을 맞추는 오브젝트가 100% 품질로 구현됩니다. 하지만 몇 백 마리의 해파리처럼 거대한 오브젝트에 초점을 맞추면 실제와 같은 느낌과 군중 속에 있다는 느낌을 모두 가질 수 있습니다.

처음부터 VFX 그래프를 사용해 에셋을 제작했고 몇 가지 맞춤 스크립트를 활용했기 때문에 플레이어의 손과 아바타, 기타 여러 VFX 오브젝트 등을 드로우하기 위해 역시 VFX 그래프를 사용해야 했습니다. 다시 VFX를 재구성하기에는 상당한 시간 제약이 있었을 것입니다. Open GL 3.1에서 VFX 그래프를 작동하기 위해 패키지에서 큐브맵 배열을 비활성화해야 했습니다(GLES 3.1에서 지원되지 않는 기능). 근본적으로 VFX 그래프 패키지를 Unity 2022에서 2021 LTS로 백포팅하고 기능이 작동하도록 몇 가지 부분을 조정했습니다. 그래프가 구현되자 필요에 맞게 매우 유연하게 사용할 수 있었습니다. 보다 최근에 구현된 여러 기능 덕분에 스크립트와 커스텀 제작에 대한 수요를 줄일 수 있었습니다.

그 외에도 비용을 절감하기 위해 그림자를 비활성화하고 조명 설정을 수정하여 동적 조명을 유지하되 지나치게 많은 광원이 한 표면에 동시에 영향을 미치지 않도록 했습니다. 또한 GPU 히칭(hitching)을 방지하기 위해 오브젝트 생성 시간에 시차를 두고, 하드웨어에서 프레임에 맞춰 게임이 실행되도록 표준 프랙티스 목록인 텍스처 크기 감소, 셰이더 복잡도 및 고비용 ALU 수학 연산 감소, 텍스처 탭 감소, 가능한 경우 텍스처 패킹, 스킨드 메시 대신 버텍스 애니메이션 사용, 가능한 단순화하기 등을 검토했습니다. 스탠드얼론 기기에서도 게임을 실행할 수 있도록 초기 콘솔 개발 시기에 나온 많은 기술을 적용하였습니다.

전체적으로 비용이 많이 드는 기술은 필요한 경우에만 사용하려 했고, 사용할 때에는 핵심 위치에 적용하여 성능 오버헤드가 발생하는 일이 없도록 주의했습니다.

네트워크에 새로운 접근 방식 구축

스탠드얼론 기기로 이전함으로써 네트워크의 설정 방식을 바꾸고 중재 제어를 크게 변경했습니다. 이전에는 전용 PC가 이더넷을 통해 계속 연결되어 있었고, 이제는 Wi-Fi 6 네트워크에 연결된 기기를 모니터링해야 했습니다. 게다가 기기 배터리 수명을 원격으로 관찰해야 했고 모든 기기에서 경험이 동시에 시작되어야 했습니다.

배포 측면에서 Drop in the Ocean은 방문자들이 찾는 다른 장소들처럼 끊김이나 재측정 과정 없이 그룹 사용자가 원활하고 지속적으로 유입되도록 해야 했습니다. 선임 개발자 고한 시브리카야는 우선 다양한 목적으로 사용할 수 있는 여러 유형의 기기와 앱을 지원하는 맞춤 솔루션을 빌드했습니다.

이를 통해 태블릿에서 실행되는 중재 앱을 추가함으로써 관리자가 영역을 살펴보며 기기 상태를 확인할 수 있게 되었습니다. 또한 벽의 타이머나 스탠드얼론 기기로 동작하는 다른 Wi-Fi 기기를 쉽게 추가하고 게임 내 상호작용이 일어날 때 햅틱 피드백을 제공할 수 있게 되었습니다.

Unity를 사용하여 최소한의 노력으로 다양한 기기와 운영체제에서 동일한 코드 베이스를 사용하여 배포할 수 있었습니다.

View of particle people inside the Drop in the Ocean experience

공간 앵커와 역운동학(IK)을 사용한 플레이어 위치 및 상호작용

모션 캡처 시스템을 제거하니 다른 플레이어의 움직임과 위치에 동기화될 수 있는 전신 아바타를 개발하는 중요한 과제가 남게 되었습니다. 팀은 역운동학(IK)을 사용해 게임에서 플레이어의 바디를 시뮬레이션하였고, 게임 내 플레이어의 위치를 실제 사람의 위치로 조정해야 했습니다.

우리가 사용하는 기기는 시작되면 자체적인 방향성(포워드 벡터)을 갖게 되며, 플레이어의 초기 위치는 좌표계에서 어디든 가능합니다. 일반적인 멀티플레이어 게임에서는 다른 플레이어가 대체로 자신의 집과 같은 멀리 떨어진 곳에 있게 되며, 생성 포인트를 사용하여 가상 월드에서 지정된 위치로 플레이어를 생성할 수 있습니다. 제작 중인 경험에서는 가상 월드와 실제 월드 및 두 월드에서 사람의 위치가 일치해야만 플레이어가 실제 세계에서 서로 부딪치지 않고 자유롭게 상호작용할 수 있습니다.

이를 구현하기 위해 공간 앵커를 사용했습니다. 모든 기기에서 앵커를 동일한 실세계 좌표에 배치했으며 기기는 플레이어의 상대적 위치를 서버로 전송했습니다. 그런 다음, 서버에서 이러한 상대적 위치가 기기로 다시 공유되고 모든 기기에서 가상 좌표계의 앵커에 대한 상대적 위치에 따라 이 문제를 해결합니다. 이렇게 설명하면 복잡해 보이지만 Unity의 핵심 라이브러리를 통해 이 문제를 해결할 수 있었습니다.

지원금 수령 후 계획

Picture of Drop in the Ocean's display at the Tribeca Film Festival

이제 프로젝트에 대한 액세스를 확장하여 더 다양한 이용자가 소셜 VR 경험에 참여할 기회를 가질 수 있도록 지원하고자 합니다. 이를 위해서는 더 빠르고 실용적인 방향으로 기술을 계속 발전시키고 해결책을 찾는 동시에 현재의 견고한 기반 위에 앞으로 개발할 콘텐츠를 구상하여 이용자를 한데 모을 완전히 새로운 방법을 찾아야 합니다.

Unity의 지원금 혜택 덕분에 지역 커뮤니티를 넘어 더 많은 사람이 경험할 수 있도록 Drop in the Ocean을 제공할 수 있었습니다. 초기 구상에서 프로젝트의 이상적인 이용자층은 두 부류였습니다. 첫 번째는 실질적인 체험을 통해 해양 세계를 더 잘 이해하게 될 일반 이용자들이었고, 두 번째는 정부 및 비즈니스의 주요 의사 결정권자들이었습니다.

현재는 더 많은 대중에게 다가가기 위해 전 세계의 주요 아쿠아리움, 과학 박물관, 갤러리와 파트너십을 통해 문화 기관과 통행량이 많은 장소에 Drop in the Ocean을 설치하는 데 지원금을 어떻게 사용할지 고민하고 있습니다. 위치를 기반으로 한 이 프로젝트는 각 상영마다 4~6명의 게스트로 구성된 그룹을 수용할 수 있습니다. 사용자는 기기를 벗은 후에도 새롭게 느낀 유대감을 바탕으로 Drop in the Ocean에서 얻은 경험을 넘어 지구의 해양을 보호하는 운동에 참여할 방법을 모색하게 될 것입니다.

아울러 2023년에는 가장 중요한 환경 및 기후 행동 컨퍼런스와 이벤트에서 Drop in the Ocean을 설치할 방안을 구상 중이며, Conservation International의 봉사 활동도 지원할 예정입니다.

Drop in the Ocean해양 보호 구역(MPA, Marine Protected Areas)을 통해 2030년까지 해양의 30% 이상을 보호하기 위한 전 세계적인 노력을 지원하는 데 핵심적인 역할을 할 수 있기를 바랍니다.

Still from Drop in the Ocean

애자일을 적용한 위치 기반 프로젝트인 Drop in the Ocean을 공개하게 되어 기쁩니다. 현재 이 프로젝트는 호스팅할 위치를 폭넓게 살펴볼 수 있는 수준까지 도달했습니다. 하지만 목적지를 직접 방문하기 어려운 사용자를 위해 교실과 같은 환경을 이용하는 등 경험을 활용할 수 있는 다른 방안도 구상하고 있습니다.

경험이 스탠드얼론 기기에 성공적으로 포팅되었으므로 이제 Drop in the Ocean의 연결성이 제공하는 이점을 그대로 전달해주는 온라인 버전을 통해 북미와 유럽 외 이용자도 경험을 공유할 수 있도록 구현하고자 합니다.

Drop in the Ocean을 통해 성취하고 싶은 것 중 하나는, 지구 반대편에 위치한 학교들이 온라인으로 함께 경험에 참여할 수 있는 방법을 제시하고, 서로 다른 문화권의 학생들이 더 건강한 해양 생태계에 대한 희망을 공유하는 플랫폼을 제공하는 것입니다.

많은 사용자들에게 아직 VR이 생소할 수 있다는 점도 유념하고 있으며, 따라서 필요한 경우 상호작용을 저해할 수 있는 요소를 제거하는 방안도 고려하고 있습니다. VR에서는 식물성 플랑크톤을 손에 쥐는 간단한 동작조차도 사용자로 하여금 실제로 체험하는 느낌을 주며, 이와 같은 행동은 다른 참여자에게 Drop in the Ocean 경험의 일부로 인식될 수 있습니다. 이 경험이 제공하는 사회적 실재감으로 사용자들은 포용의 감성을 느낄 수 있고, 헤드셋을 벗은 후에도 해양 보호 운동의 일원이라는 소속감을 느끼게 됩니다.

앞으로 몰입형 경험은 이러한 개념을 넘어 더 발전할 거라 믿습니다. Vision3는 사용자가 이야기 속에서 하나의 유산을 만들어 내는 기분을 느낄 수 있도록 꾸준히 노력하고 있습니다.

11월 2일 수요일 오후 4시(동부 표준시)에 진행될 Unity for Humanity Summit 2022 프레젠테이션 '해양과 XR: 해양 보존과 교육, 지원'에서 아담의 이야기를 더 들으실 수 있습니다. 놓치지 않도록 지금 등록해 두세요.

2022년 10월 21일 커뮤니티 | 17 분 소요
관련 게시물