[WWDC 23] Meet Reality Composer Pro

inu
daily-monster
Published in
8 min readMar 25, 2024

안녕하세요 월요괴물 inu입니다. 오늘은 3D 콘텐츠를 구성 및 편집하고 프리뷰까지 가능한 도구인 Reality Composer Pro에 대해 설명한 WWDC 세션, Meet Reality Composer Pro를 감상하고 정리한 글을 가져왔습니다.

Project setup

생성방법은 두가지입니다. 메뉴에서 직접 Reality Composer Pro를 열어도 되고 Xcode에서 visionOS 프로젝트를 생성하면 관련 파일이 생성되기도 합니다.

Reality Composer Pro의 프로젝트는 일종의 패키지입니다. 기본 프로젝트를 생성해보면 이와 같이 Reality Composer Pro의 프로젝트가 패키지로 포함되어 있음을 알 수 있습니다. 내부에서도 간단한 수정작업이 가능합니다.

Finder에서 해당 프로젝트의 구조를 살펴봅시다. 파일은 USD(Universal Scene Description)으로 구성되어 있습니다. 아래 세션에서 관련 지식을 습득할 수 있다고 합니다.

  • Understand USD fundamentals
  • Create 3D workflows with USD

파일을 구성하면 .rkassets 폴더의 모든 USD가 프레임워크로 컴파일되어, 프로젝트 내부에서 활용할 수 있는 상태가 됩니다.

Package를 선택하면 default scene의 프리뷰가 나타납니다. 프로젝트 내부에서 확인은 가능하지만, 수정 및 더 자세한 정보를 원하는 경우 Open in Reality Composer Pro를 클릭하면 됩니다.

UI Navigation

가운데에는 ‘viewport’가 존재합니다. 씬의 3D 물체를 시각화할 수 있습니다. WASD키 혹은 화살표키로 이동이 가능합니다.

왼쪽에는 hierarchy panel이 있습니다. 여기서 3D 오브젝트를 검색, 선택, 구성하면 됩니다.

우측에는 inspector panel이 있습니다. 선택한 오브젝트의 프로퍼티를 쉽게 편집할 수 있습니다. (위치, 회전, 크기 등)

인스펙터 패널 하단의 컴포넌트 추가를 통해 오브젝트에 추가할 수 있는 내장 컴포넌트를 볼 수 있습니다.

밑부분은 editor panel입니다. 왼쪽에는 Project Browser가 존재합니다. 프로젝트에 담긴 파일을 탐색하도록 도와줍니다. (cf. 고급 편집에 쓰이는 Shader Graph, Audio Mixer, Statistics도 존재합니다.)

Composing scenes

에셋을 Reality Compser Pro project에 추가하는 방법은 3가지입니다.

  1. 이미 컴퓨터에 존재하는 에셋을 불러오는 방법 : 불러오기 버튼에서 불러오거나, 드래그 앤 드롭으로 불러옵니다.

2. 콘텐츠 라이브러리 : 자체적으로 제공하는 선별하여 제공해줍니다.

3. Object Capture : 실제 사물의 사진을 3D 모델로 변환합니다. (Meet Object Capture for iOS 세션 참고)

meterial이 존재하지 않은 오브젝트의 경우 따로 불러와서 선택하는 것 또한 가능합니다. 오브젝트들은 그룹화도 가능합니다. (왼쪽 패널에서)

Particle emitters

특수효과를 주는 것도 가능합니다.

특수효과는 파티클과 이미터 두가지 요소로 구성됩니다. 둘 모두 조정 및 수정이 가능한 다양한 섹션의 변수들을 지닙니다.

Reality Composer Pro 프로젝트는 얼마든지 많은 Scene을 포함할 수 있습니다. Scene은 Xcode에서 바로 사용할 수 있는 완성본이거나 재사용할 수 있는 콘텐츠입니다. 예를 들어, 여러 Cloud Chunk Scene을 조합해 완전한 Cloud Scene을 만들어낼 수 있습니다.

기존 프로젝트에서 새로운 Scene을 생성합니다. 새로운 Scene을 선택하면 같은 프로젝트 내에서 새롭게 콘텐츠를 구성할 수 있는 새로운 탭이 나옵니다.

Scene에 파티클 이미터를 추가하는 방법은 두가지입니다.

먼저 하단의 heierarchy 패널 하단에 존재하는 +버튼을 활용하거나

기존 Scene에 존재하던 오브젝트에 Particle Emitter Component를 추가하면 됩니다. 상단의 재생버튼을 누르면 재생이 가능합니다.

상단의 Preperences 세팅에서 viewport의 color도 조정이 가능합니다.

이런저런 프로퍼티로 실험하다보면 원하는 결과를 얻을때도 많습니다. 만드는것에 정답은 없습니다. 다만 파티클의 개수가 많아지면 성능에 영향을 줍니다.

파티클 이미터 컴포넌트에는 Particle과 Emitter 두가지 섹션이 있습니다. Particle은 개별 파티클의 형태를 제어합니다. Emitter 섹션은 파티클이 원점위치에서 나오는 방식을 제어합니다. 주로 이미터를 결정하고 파티클을 설정하는 편입니다.

  • 이미터 섹션의 isLocalSpace로 이동, 회전, 스케일 조정이 부모를 따라갈 수 있도록 조정합니다.
  • 파티클 섹션의 BirthRate로 동시에 존재하는 파티클의 개수를 조정할 수 있습니다. (2000 → 500으로 조절하고 볼만하자 성능생각해서 이렇게하자고 함)
  • 여러 옵션이 있으니 하나씩 살펴보는게 좋을 것 같습니다.

다양한 프리셋이 있으니 처음부터 시작할 필요는 없습니다.

Audio authoring

오디오를 넣는 방법. audio file, audio file groups, Aadio sources를 활용할 수 있습니다.

프로젝트 브라우저로 Scene에 불러온 오디오 파일 혹은 오디오 그룹은 loop 등을 기반으로 다양하게 동작할 수 있습니다.

  • 오디오는 하나의 오브젝트 이상에서 재생되며, 오브젝트는 여러 오디오를 보유할 수 있습니다.
  • 오디오파일 그룹은 씬에 있는 오디오파일로 구성됩니다. 이를 보유한 오브젝트가 오디오를 재생하면 이 중 하나가 랜덤으로 재생됩니다.

오디오 소스는 오디오 파일, 오디오 그룹을 씬으로 송출하는 방식을 결정합니다.

오디오 소스에는 세가지 종류가 있습니다. Spatial, Ambient, Channel.

  • 특정 위치에서 나는 소리
  • 특정 방향에서 나는 소리
  • 배경 음악

을 제공하기에 적절하다고 볼 수 있습니다.

하단에서 오디오소스를 추가할 수 있습니다.

Add Component를 통해 추가할 수도 있습니다. 추가적인 내용은 Work with Reality Composer Pro content in Xcode에서 더 자세히 알아보면 된다고 합니다.

Statistics

씬의 성능을 최적화하는 전용 에디터입니다.

카테고리는 위와 같이 나뉩니다.

하단 패널의 Statistics 탭을 클릭하면 카테고리 컬렉션이 나타납니다.

Geometry를 보면 이 씬을 위해 Triangle이 464107개가 사용되었고, Vertice는 237163개, Mesh는 16개 사용되었음을 알 수 있습니다. 아래 표를 통해 어떤 오브젝트에서 얼마나 많이 리소스를 사용중인지 볼 수 있습니다. 이를 통해 어떤 오브젝트에서 리소스를 많이 차지하는지 확인해서 성능을 최적화할 수 있습니다.

On-device preview

기기에서 씬을 프리뷰하려면 헤드셋을 컴퓨터에 연결하고

오른쪽 상단의 버튼에서 디바이스를 선택하고 프리뷰버튼을 클릭하면 됩니다.

--

--