스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
몰입형 Unity 앱 만들기
Unity로 visionOS에 매력적인 몰입형 경험을 만드는 방법을 살펴보세요. Unity가 Apple 프레임워크와 매끄럽게 통합되는 방식을 공유하고 플랫폼에 맞는 네이티브 방식으로 빌드할 때 사용할 수 있는 툴을 소개하며 볼륨 카메라로 기존 씬을 visionOS 윈도우와 볼륨, 공간으로 가져오는 방법을 살펴봅니다. 패스스루와 씬 이해 같은 visionOS 기능을 통합하고 셰이더 그래프로 비주얼을 사용자화하며 공간 입력과 어울리게 상호 작용을 조정하는 방법을 알아봅니다.
챕터
- 0:07 - Intro
- 2:13 - Achieve your visual look
- 6:18 - Play to device
- 7:48 - Explore volume cameras
- 10:00 - Build interaction
- 13:49 - Prepare for the platform
- 15:04 - Wrap-Up
리소스
관련 비디오
WWDC23
-
다운로드
♪ 감미로운 인스트루멘탈 힙합 ♪ ♪ 환영합니다 RealityKit를 담당하는 존이라고 합니다 저는 Unity 소속 블래드입니다 몰입형 앱을 위한 Unity 지원을 소개하게 되어 무척 기쁘군요 Unity는 완전한 Unity 경험을 이 새로운 플랫폼에 구현하고자 Apple과 협업해 왔죠 수많은 앱에 쓰이고 있는 Unity로 이제는 몰입형 앱을 빌드할 수 있습니다 Triband가 Apple Arcade에 선보인 'What The Golf?'도 Unity로 이 플랫폼에 빌드된 것입니다 iPhone으로 플레이하면 아주 재미있고 플레이하는 느낌도 훌륭하죠 이 플랫폼에서 Unity로 몰입형 경험을 만들려면 크게 두 가지 방법으로 접근할 수 있습니다 passthrough를 사용해 여러분의 콘텐츠와 현실 객체를 혼합한 경험을 만들 수 있는데 이는 몰입형 경험이 될 수도 있고 다른 앱과 함께 Shared Space에 만들어질 수도 있죠 이 플랫폼에는 완전 몰입형 Unity 경험을 구현할 수도 있습니다 이런 방법에 관심이 있다면 다음 세션을 추천합니다 'Unity VR 앱을 완전 몰입형 공간에 구현하기'죠 Shared Space를 위한 경험을 Unity로 만들어 보면 여러분의 앱에 흥미로운 기회가 생길 겁니다 블래드의 이야기를 더 들어 보시죠 고마워요, 존 Unity와 Apple은 지난 2년간 꾸준히 협업하며 이 플랫폼에서 Unity 콘텐츠가 멋지게 구현되도록 했습니다 기존 프로젝트로 시작하든 완전히 새로운 걸 빌드하든 Unity는 몰입형 경험 제작에 탁월한 도구입니다 익숙한 도구와 새로운 기능을 사용할 수 있죠 여러분이 원하는 비주얼을 이 플랫폼에 실현하려면 Unity의 셰이더와 머티리얼을 쓰면 됩니다 이번에 도입하는 기능으로는 플레이 모드를 기기에 바로 넣을 수 있어 반복 시간이 개선됩니다 볼륨 카메라라는 새로운 개념도 있습니다 Unity 씬의 콘텐츠가 현실에 어떻게 구현되는지 제어하는 걸 말하죠 새 기기에 입력하는 방식은 그저 보고 탭하는 것처럼 간단한 동작일 수도 있고 더 복잡한 상호 작용을 수반할 수도 있습니다 지금도 몇 가지 방법으로 공간 컴퓨팅에 맞는 Unity 콘텐츠를 준비할 수 있죠 이건 몇 가지 요소가 함께 작동하는 사례입니다 Unity 셰이더 그래프로 만든 머티리얼을 사용한 씬이 Shared Space에 나오고 있습니다 passthrough가 사용된 시뮬레이터에서요 캐릭터들은 리깅과 애니메이팅을 마친 상태입니다 뒤의 오거처럼요 물리 상호 작용은 익히 아시는 것과 같습니다 이 마을의 주민들은 모두 캐릭터 내비게이션으로 이동하죠 커스텀 동적 스크립트 행동으로 씬에서는 생동감이 느껴집니다 이건 2주 만에 만든 겁니다 Asset Store를 활용했는데 아주 좋아 보이죠 사용자의 스페이스에서 보면 가까이 다가가서 어떤 각도에서든 씬을 볼 수 있습니다 Shared Space의 모든 콘텐츠는 RealityKit로 렌더링했습니다 Unity 머티리얼과 셰이더는 이 새로운 환경으로 변환되어야 합니다 Unity가 만든 PolySpatial은 이런 변환을 관리하고 Unity 기능 다수를 이 환경으로 가져옵니다 PolySpatial로는 머티리얼뿐 아니라 일반 메시와 스킨드 메시 렌더링에 파티클 효과와 스프라이트까지 변환할 수 있죠 Unity 시뮬레이션 기능이 지원되며 MonoBehaviour와 ScriptableObject를 비롯한 표준 툴도 계속 사용하게 됩니다 머티리얼 세 종류가 변환되는데요 물리 기반 머티리얼과 커스텀 머티리얼 일부 특수 효과 머티리얼입니다 Unity 물리 기반 셰이더가 쓰인 머티리얼은 RealityKit로 바로 변환됩니다 유니버설 렌더 파이프라인을 사용하고 있다면 머티리얼에 모든 Lit와 Simple Lit Complex Lit 셰이더를 쓸 수 있고 내장 파이프라인으로는 스탠다드 셰이더를 쓸 수 있는데 모두 RealityKit의 PhysicallyBasedMaterial로 변환됩니다 커스텀 셰이더와 머티리얼 타입은 Unity 셰이더 그래프로 지원됩니다 Unity 셰이더 그래프는 MaterialX로 변환되는데 이는 복잡한 머티리얼에 쓰는 표준 인터체인지 포맷입니다 MaterialX 셰이더는 RealityKit에서 ShaderGraphMaterial이 됩니다 Unity 셰이더 그래프의 노드가 다수 지원되어 복잡하고 흥미로운 효과를 생성할 수 있습니다 RealityKit를 통한 렌더링에서는 직접 작성한 셰이더를 지원하지 않지만 Unity 렌더 텍스처로는 쓸 수 있습니다 이후 이 렌더 텍스처로 셰이더 그래프에 텍스처를 입력하면 RealityKit를 통해 나타나게 되죠 머티리얼 셰이더 타입은 두 가지가 추가로 지원됩니다 하나는 Unlit 셰이더로 이렇게 생성된 객체는 단일한 색상이나 텍스처를 지닙니다 조명에 영향을 받지 않죠 다음은 Occlusion 셰이더로 passthrough가 객체를 통해 나타나고 있습니다 Occlusion 셰이더를 월드 메시 데이터와 함께 쓰면 여러분의 콘텐츠가 현실과 한층 통합된 느낌이 날 겁니다 Unity의 메시 렌더러와 스킨드 메시 렌더러가 주된 방식으로 지원되어 비주얼 콘텐츠를 현실 공간에 가져올 수 있습니다 캐릭터 리깅과 애니메이팅도 가능합니다 유니버설 렌더 파이프라인을 쓰든 내장 렌더 파이프라인을 쓰든 콘텐츠는 Unity PolySpatial을 통해서 RealityKit로 변환될 겁니다 포스트 프로세싱 효과 같은 렌더링 기능과 커스텀 파이프라인 스테이지는 사용할 수 없습니다 최종 렌더링은 RealityKit에서 수행되니까요 Unity의 Shuriken 시스템을 활용한 파티클 효과는 RealityKit의 파티클 시스템으로 변환됩니다 호환이 가능하다면요 아니면 베이크드 메시로 변환됩니다 스프라이트는 3D 메시가 되지만 공간 콘텍스트에서 어떻게 사용할지 생각해야 합니다 PolySpatial은 Unity와 RealityKit 간에 렌더링을 최적화하고 변환합니다 Unity의 시뮬레이션 기능은 익히 아시는 대로입니다 물리, 애니메이션 및 타임라인과 경로 탐색, 내비메시와 커스텀 MonoBehaviour는 물론 렌더링이 아닌 다른 기능들도 있죠 보기 미세 조정을 쉽게 하고 반복 속도를 높일 수 있도록 Unity PolySpatial에서는 'Play to device'가 가능합니다 빌드 과정을 거치려면 시간이 듭니다 콘텐츠가 기기에서 어떻게 보이는지 확인해야 하죠 PolySpatial 덕에 Play to device의 사용이 처음으로 가능해졌습니다 Play to device로는 씬의 프리뷰를 즉시 확인하고 라이브로 변경할 수 있습니다 시뮬레이터는 물론이고 기기에서도 잘 작동하죠 Play to device를 사용하면 빠른 속도로 콘텐츠의 배치와 크기를 살펴볼 수 있습니다 엘리먼트 추가 및 삭제도 가능하고요 머티리얼과 텍스처를 변경하고 보기 미세 조정을 위해 셰이더 그래프까지 바꿀 수 있죠 passthrough가 적용되어 제자리에 있는 콘텐츠를 보면서요 상호 작용 테스트도 가능합니다 이벤트는 에디터로 돌려보내지거든요 시뮬레이션이 계속 실행되니 에디터에 첨부만 해도 쉽게 디버깅할 수 있죠 아까 보셨던 성이 나오는 씬입니다 왼쪽은 Unity에서 연 화면인데 Play to device 기능 덕에 오른쪽 시뮬레이터에서 실행되는 걸 볼 수 있습니다 제 씬에 드래그만 해도 오거가 추가되어 시뮬레이터나 기기에 즉각 나타나죠 원한다면 분홍 오거나 형광 초록 오거도 볼 수 있습니다 Play to device는 콘텐츠를 반복하기에 매우 효율적인 워크플로입니다 현재 Unity에서는 Shared Space 내 콘텐츠 생성에만 사용할 수 있습니다 Shared Space에 들어가는 볼류메트릭 콘텐츠 생성에 Unity를 사용하시는 만큼 새로운 개념인 볼륨 카메라를 사용하면 현실에 구현되는 씬을 제어할 수 있습니다 볼륨 카메라로 생성되는 볼륨은 두 가지입니다 특성이 다른 bounded volume과 unbounded volume이죠 응용 프로그램은 언제든 둘을 오갈 수 있습니다 bounded volume은 Shared Space에 다른 앱, 게임과 함께 있는 볼륨입니다 Unity에서 차원과 트랜스폼을 지니고 현실 내 크기도 구체적입니다 재배치할 수는 있지만 크기를 바꿀 수는 없죠 볼륨 카메라의 차원과 트랜스폼에 따라 사용자의 앱에 볼륨으로 나타날 씬의 구역이 정의됩니다 씬의 유닛 단위로 명시되죠 볼륨의 프리뷰는 초록색으로 Unity 씬 뷰에 나타납니다 볼륨 카메라의 차원과 트랜스폼을 어떻게 조작하는지에 따라 씬의 다른 부분이 볼륨에 들어오게 됩니다 카메라를 이동하거나 회전하면 새 객체가 제 공간에 나타나죠 크기를 키우면 뷰에 씬이 더 많이 들어옵니다 어떤 경우든 볼륨의 크기는 같습니다 내부에 보이는 콘텐츠가 달라질 뿐이죠 볼륨 카메라의 초기 배치에 주목해 주세요 스프링이 볼륨 측면과 교차해서 RealityKit에서는 콘텐츠가 잘립니다 콘텐츠가 가장자리와 교차해서 볼륨과 겹치면 동일한 메시를 뒤를 보는 머티리얼과 함께 씬에 다시 배치해서 잘린 부분을 채워 보세요 unbounded volume은 플랫폼의 Full Space에 나타나며 콘텐츠가 passthrough로 완전히 블렌딩되어 한층 몰입감 높은 경험을 선사합니다 전체 씬을 선택하기 때문에 차원은 없으며 트랜스폼에는 씬 유닛이 현실 유닛과 어떻게 매핑되는지 명시됩니다 unbounded volume 카메라는 한 번에 하나만 활성화할 수 있죠 unbounded volume의 예시는 상호 작용을 이야기할 때 보여 드리겠습니다 Unity는 이 플랫폼의 앱에서 다양한 입력 타입을 지원합니다 이 플랫폼에서는 눈과 손을 사용해서 콘텐츠를 보고 손가락으로 탭해 선택합니다 완전한 손 추적과 머리 자세 데이터로 실감형 상호 작용을 만들 수 있죠 ARKit의 증강 현실 데이터도 사용할 수 있습니다 블루투스 기기도 가능하니 키보드와 게임 컨트롤러도 쓸 수 있고요 탭 동작은 이 플랫폼에서 콘텐츠와 상호 작용 하는 가장 일반적인 방식입니다 객체가 이벤트를 받아들이려면 입력 콜라이더가 설정되어 있어야 합니다 보고 탭하는 동작으로 객체를 멀리서 선택하거나 팔을 뻗어 객체를 손가락으로 직접 만질 수도 있습니다 탭 동작은 최대 두 개까지 동시에 진행될 수 있습니다 Unity에서 탭 동작은 WorldTouch 이벤트로 가능합니다 2D 탭 이벤트와 유사하지만 완전한 3D 포지션을 지니죠 손과 머리 자세 추적으로 응용 프로그램에는 정확한 손가락 마디 정보가 제공됩니다 글로벌 추적 기준에 대한 뷰어의 머리 포지션도요 Unity의 Hands package는 저차원 손 데이터를 제공합니다 머리 자세는 입력 시스템으로 제공하고요 둘 다 unbounded volume에서만 사용할 수 있으며 손 추적에 액세스하려면 응용 프로그램에서 데이터 받기 허가를 요청해야 합니다 감지된 평면이나 월드 메시 이미지 마커 같은 증강 현실 데이터는 ARKit와 Unity AR 파운데이션에서 사용할 수 있습니다 손, 머리 자세와 마찬가지로 AR 데이터를 쓸 수 있는 건 오직 unbounded volume에서고 추가 허가도 필요합니다 끝으로 키보드와 게임 컨트롤러 등 블루투스 기기와 다른 지원 기기를 사용해 Unity 입력 시스템으로 액세스할 수 있습니다 일부 입력 타입은 사용 가능한 조건이 unbounded volume으로 한정되므로 만들고자 하는 상호 작용이 어떤 타입인지 정해야 합니다 보고 탭하기 동작을 사용한 콘텐츠는 다른 응용 프로그램과 나란히 갈 수 있는 bounded volume에서 실행되지만 액세스가 필요한 게 손 추적이나 증강 현실 데이터라면 unbounded volume을 사용하고 허가를 요청해야 합니다 각각은 Unity 응용 프로그램으로 적합한 메커니즘을 거쳐 전송됩니다 이 샘플은 unbounded volume 씬에서 탭 동작과 손 추적 평면 감지를 사용했습니다 ARKit 평면 감지로 찾은 표면이 보이고 평면을 따라 손가락을 끌면 꽃이 만들어집니다 꽃은 손 추적으로 그려지며 탭하면 자라납니다 사용자가 그린 꽃은 손동작에 반응합니다 Unity의 물리 시스템이 사용되죠 이런 방식으로 콘텐츠에 현실을 통합하면 훨씬 강한 몰입감을 창출할 수 있습니다 기존 상호 작용을 조정할 최적의 방법은 타입에 따라 달라집니다 이미 터치를 활용하고 있는 iPhone 같은 경우라면 적절한 입력 콜라이더를 추가해서 주 입력 메커니즘으로 탭 동작을 계속 쓸 수 있습니다 VR 컨트롤러를 사용한다면 상호 작용을 탭 동작이나 손 기반 입력으로 재정의해야 합니다 복잡도에 따라서요 기존 손 기반 입력은 변경 없이 작동할 겁니다 Unity의 UI 시스템을 사용한 기존 UI 패널이 있다면 패널을 이 플랫폼으로 가져올 수 있습니다 UGUI로 빌드한 UI 요소와 UI 툴킷이 모두 지원됩니다 다른 UI 시스템을 쓸 경우에는 메시와 메시 렌더러를 쓰면 문제가 없습니다 혹은 렌더 텍스처에 그려서 이후 메시에 배치해도 되죠 Apple 플랫폼 내 공간 컴퓨팅을 위한 지원은 Unity 2022 기반 베타에서 곧 만나실 수 있습니다 여러분의 콘텐츠는 지금부터도 준비하실 수 있죠 새로운 프로젝트를 시작하신다면 Unity 2022나 이후 버전을 사용하세요 기존 프로젝트가 있다면 2022로 업그레이드하시고요 프로젝트에 직접 작성한 셰이더가 있다면 해당 셰이더를 셰이더 그래프로 변환하세요 유니버설 렌더 파이프라인을 쓰는 것도 고려해 보시고요 내장 그래픽 파이프라인도 지원은 되지만 유니버설 파이프라인에서 모든 향후 개선이 이뤄질 겁니다 아직 안 하셨다면 입력 시스템 패키지를 써 보세요 혼합 모드 입력이 지원되지만 플랫폼 이벤트는 입력 시스템을 통해서만 전송됩니다 마지막으로는 기존 앱이나 게임을 공간 컴퓨팅으로 어떻게 구현할지 고민해 보세요 어떤 새로운 경험을 만들고 싶은지도요 Shared Space에 아이디어가 잘 맞아서 유연성을 높일 수 있을지 혹은 Full Space의 강력함이 앱에 필요할지도 고민해야 합니다 Unity가 이 플랫폼을 어떻게 지원하는지 더 자세히 알아보고 얼리 베타 액세스에 등록하실 분들은 unity.com/spatial을 방문해 주세요 Unity와 이 신규 기기로 여러분이 창조할 놀라운 결과물이 무척 기대됩니다 Unity는 열정에 불을 붙이고 몰입형 앱을 빌드하기에 더없이 좋은 수단입니다 이 새로운 플랫폼의 RealityKit와도 잘 맞고요 프로젝트 준비는 당장 시작하실 수 있습니다 Unity로 완전 몰입형 경험을 만들고 싶으시다면 다음 세션을 추천합니다 'Unity VR 앱을 완전 몰입형 공간에 구현하기'죠 '공간 컴퓨팅을 위한 멋진 게임 빌드하기'에서는 이 플랫폼에 맞는 게임 개발 기술을 개괄하니 놓치지 마시고요 여러분이 만들어 낼 결과물이 너무나 기대됩니다 시청해 주셔서 감사합니다 ♪
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.