🕶️

visionOS Apple Samples

2024/10/04に公開

Update: 2024/12/17
現在 52個 のサンプルがあります

New!

visionOS

Introductory visionOS samples

難易度: ★☆☆☆☆ - ★★☆☆☆

Title Image
Creating 2D shapes with SwiftUI
Creating 3D entities with RealityKit
Creating SwiftUI windows in visionOS
Creating 3D models as movable windows
Displaying text in visionOS
Adding a depth effect to text in visionOS
Creating an interactive 3D model in visionOS
Creating an immersive space in visionOS
Creating a 3D painting space
Tracking and visualizing hand movement
Displaying an entity that follows a person’s view
Applying mesh to real-world surroundings
Obscuring virtual items in a scene behind real-world items
Generating procedural textures
Implementing adjustable material
Displaying a stereoscopic image
Playing spatial audio
Displaying a 3D environment through a portal

Hello World

難易度: ★★★☆☆
https://developer.apple.com/documentation/visionos/world

VolumeとImmersive Space表示への遷移があり、SystemとComponentを使った制御もある、参考になる要素が多い内容。画面要素の組み立て方も必見。

Destination Video

難易度: ★★★☆☆
https://developer.apple.com/documentation/visionos/destination-video

動画再生とその制御で参考にするのはこちら。背景を完全に置き換えた空間内で再生する状態もあり。

Diorama

難易度: ★★★☆☆
https://developer.apple.com/documentation/visionos/diorama

Reality Composer Proで構築された2つの箱庭的3Dオブジェクトの表示とその切り替え。サウンドやAttachmentの実装も参考になる。

Happy Beam

難易度: ★★★★☆
https://developer.apple.com/documentation/visionos/happybeam

Hand Gestureの作り方、ゲーム的進行の制御、ARKitの扱いが盛り込まれた内容。

Swift Splash

難易度: ★★★★☆
https://developer.apple.com/documentation/visionos/swift-splash

Reality Composer Proで作られたコンポーネントを接続する。要素選択画面や接続処理など。

BOT-anist

難易度: ★★★☆☆
https://developer.apple.com/documentation/visionos/bot-anist

キャラクタカスタマイズの部分とアニメーションとインタラクション。

Placing content on detected planes

難易度: ★★★☆☆
https://developer.apple.com/documentation/visionos/placing-content-on-detected-planes

4種のモデルを空間に配置。永続化と復元も処理している。

Incorporating real-world surroundings in an immersive experience

難易度: ★★☆☆☆
https://developer.apple.com/documentation/visionos/incorporating-real-world-surroundings-in-an-immersive-experience

空間をタップするとキューブが生成され物理演算される。タップの制御やModel生成や物理の設定など参考になる。

Exploring object tracking with ARKit

難易度: ★★☆☆☆
https://developer.apple.com/documentation/visionos/exploring_object_tracking_with_arkit

オブジェクトトラッキング。Appleのキーボードのテストデータがある。任意のモデルをトラッキングしたい場合は自分で追加する必要あり。

Building local experiences with room tracking

難易度: ★★☆☆☆
https://developer.apple.com/documentation/visionos/building_local_experiences_with_room_tracking

部屋を移動する際の制御。目の前に追従するインターフェイスなど。

Placing entities using head and device transform

難易度: ★★☆☆☆
https://developer.apple.com/documentation/visionos/placing-entities-using-head-and-device-transform

鳥が自分に追従してきたり、自分の目の前の固定位置に居続けたりする。
シミュレータでも実行可能。

Accessing the main camera

難易度: ★★☆☆☆
https://developer.apple.com/documentation/visionos/accessing-the-main-camera

Enterpriseライセンスが必要。
MainCamera(左側カメラ)から映像取得する処理。
CameraFrameProvider。

Locating and decoding barcodes in 3D space

難易度: ★★☆☆☆
https://developer.apple.com/documentation/visionos/locating-and-decoding-barcodes-in-3d-space

Enterpriseライセンスが必要。
空間内でのバーコード、QRコードの位置取得処理。
BarcodeDetectionProvider。

RealityKit

Transforming entities between RealityKit coordinate spaces

難易度: ★★☆☆☆
https://developer.apple.com/documentation/realitykit/transforming-entities-between-realitykit-coordinate-spaces

Volumetric内のEntityとImmersive Space内のEntityの相互移動処理。

Transforming RealityKit entities using gestures

難易度: ★★☆☆☆
https://developer.apple.com/documentation/realitykit/transforming-realitykit-entities-with-gestures

様々なパターンでのEntityのdrag、scale、rotateの設定処理。

Animating entity rotation with a system

難易度: ★★☆☆☆
https://developer.apple.com/documentation/realitykit/animated-rotation-with-a-system

RealityKitでEntity Component Systemを使って回転制御する処理。
回転処理実装で悩んだらここを参照しそう。

Packageの方で実装し本体からはシンプルな呼び出しにしている構成も参考になる。

Responding to gestures on an entity

難易度: ★☆☆☆☆
https://developer.apple.com/documentation/realitykit/responding-to-gestures-on-an-entity

SpatialEventGestureの使い方。
RealityViewを使って表示したEntityのタップ処理を実装するミニマムな実装。
Attachmentの有無を切り替えている。
誰かにこのあたりの処理を説明する時に良さそうな内容。

Composing interactive 3D content with RealityKit and Reality Composer Pro

難易度: ★★★☆☆
https://developer.apple.com/documentation/realitykit/composing-interactive-3d-content-with-realitykit-and-reality-composer-pro

Presenting an artist’s scene

難易度: ★★☆☆☆
https://developer.apple.com/documentation/realitykit/presenting-an-artists-scene

Creating a spatial drawing app with RealityKit

難易度: ★★★★★
https://developer.apple.com/documentation/realitykit/creating-a-spatial-drawing-app-with-realitykit

Generating interactive geometry with RealityKit

難易度: ★★★☆☆
https://developer.apple.com/documentation/realitykit/generating-interactive-geometry-with-realitykit

インタラクティブなメッシュ生成。Low-level MeshとLow-level Texture使用。

Combining 2D and 3D views in an immersive app

難易度: ★★☆☆☆
https://developer.apple.com/documentation/realitykit/combining-2d-and-3d-views-in-an-immersive-app

Rendering a windowed game in stereo

難易度: ★★☆☆☆
https://developer.apple.com/documentation/realitykit/rendering-a-windowed-game-in-stereo

Creating a Spaceship game

難易度: ★★★★☆
https://developer.apple.com/documentation/realitykit/creating-a-spaceship-game

Simulating physics with collisions in your visionOS app

難易度: ★★☆☆☆
https://developer.apple.com/documentation/realitykit/simulating-physics-with-collisions-in-your-visionos-app

Simulating particles in your visionOS app

難易度: ★★☆☆☆
https://developer.apple.com/documentation/realitykit/simulating-particles-in-your-visionos-app

Simulating physics joints in your RealityKit app

難易度: ★★☆☆☆
https://developer.apple.com/documentation/realitykit/simulating-physics-joints-in-your-realitykit-app

Construct an immersive environment for visionOS

難易度: ★★☆☆☆
https://developer.apple.com/documentation/realitykit/construct-an-immersive-environment-for-visionos

Group Activities

Customizing spatial Persona templates

難易度: ★★★☆☆
https://developer.apple.com/documentation/groupactivities/customizing-spatial-persona-templates

TabletopKit

Creating tabletop games

難易度: ★★★☆☆
https://developer.apple.com/documentation/tabletopkit/tabletopkitsample

Compositor Services

Interacting with virtual content blended with passthrough

難易度: ★★★☆☆
https://developer.apple.com/documentation/compositorservices/interacting_with_virtual_content_blended_with_passthrough

AVFoundation

Reading multiview 3D video files

難易度: ★★☆☆☆
https://developer.apple.com/documentation/avfoundation/media_reading_and_writing/reading_multiview_3d_video_files

Converting side-by-side 3D video to multiview HEVC and spatial video

難易度: ★★☆☆☆
https://developer.apple.com/documentation/avfoundation/media_reading_and_writing/converting_side-by-side_3d_video_to_multiview_hevc_and_spatial_video

Image I/O

Writing spatial photos

難易度: ★★☆☆☆
https://developer.apple.com/documentation/ImageIO/writing-spatial-photos

Spatial Photo生成のコマンドラインツール。引数でオプション指定可能。生成されるのはheic。

Discussion