Apple Vision Proアプリ開発ガイド visionOSではじめる空間コンピューティング実践集

メモ

第1章 ノーコードorローコードで遊ぶvisionOS

 
  • Apple公式のページからいろいろなusdzを試せる
  • iPhoneでLumaAIで3Dスキャン→AirDropでApple Vision Proに送信、表示ができる
  • Reality Composer Pro
    • 3Dオブジェクトを複数配置したり動きを付けられる公式アプリ
    • コンポーネントの組み合わせでコード書かなくてもいろいろできる
  • パーティクルエミッターはローカル空間でシミュレーションされるから工夫が必要
  • Reality Composer ProとARKitを使ったサンプル

第2章 SwiftUIによるAI英会話アプリ開発

  • 選択できるボタンは16px以上あけることが推奨されている

第3章 空間を活用したタイマーアプリ開発

  • RealityViewは対象物がないとタップ操作ができない
  • WorldAnchorを使うとホームポジションをリセットしても位置を固定できる
  • ローカル通知

第4章 SunnyTuneの実装事例

  • Volumeは制限が多い
  • 空の描画
    • グラデーション
    • 法線と透過
    • 雲の表現
    • 太陽の位置や日光時間の計算

第5章 UnityによるvisionOSアプリ開発

  • そのままビルドするとWindowアプリになる
  • PolySpatialを使うとVolumesアプリが作れる
    • 最近はSwiftUIと連携する仕組みができた
    • SwiftUI側からUnityのstaticクラスのメソッドを呼び出せる
  • Spaceアプリは2024年2月時点で動いていなかった

第6章 PolySpatialによるUnityプロジェクトの移植

  • PolySpatialはサポートされていない機能が多くてつらい
    • 未サポートの機能はHierchy上でワーニングがでる
  • SwiftUI連携を頑張って使うといいかも
 

目次

  • Apple Vision Proから視える次なるコンピューティングの未来

第1章 ノーコードorローコードで遊ぶvisionOS

  • 1-1 3Dモデルを目の前に召喚!(ノーコード)
  • 1-2 Reality Composer Proでシーンを構築しよう!(ノーコード)
  • 1-3 3Dモデルを手に追従させよう!(ノーコード)
  • 1-4 RPG風のシーンを作ろう!(ノーコード)
  • 1-5 指先から魔法のパーティクル!(ローコード)
  • 1-6 剣に炎をまとわせて振るう!(ローコード)
  • 1-7 太陽で風船バレー!(ローコード)
  • 1-8 楽器を演奏しよう!(ローコード)
  • 1-9 本章のまとめ

第2章 SwiftUIによるAI英会話アプリ開発

  • 2-1 はじめに〜サンプルアプリの概要
  • 2-2 基本的なWindowsアプリの作成
  • 2-3 英会話機能の実装
  • 2-4 会話AI
  • 2-5 Multi Window対応
  • 2-6 本章のまとめ

第3章 空間を活用したタイマーアプリ開発

  • 3-1 My Spatial Timer
  • 3-2 マーカー表示と自己位置の追従
  • 3-3 タップ操作によるタイマーの追加と削除
  • 3-4 タイマーの画面デザインと機能
  • 3-5 UserDefaultsによるデータ永続化
  • 3-6 WorldAnchorを使用した空間への位置固定
  • 3-7 ローカル通知の送信と受信
  • 3-8 ScenePhaseによるアプリの状態制御
  • 3-9 本章のまとめ

第4章 SunnyTuneの実装事例

  • 4-1 Volumesアプリ開発の基礎
  • 4-2 空の表現
  • 4-3 光の表現
  • 4-4 風を表現する
  • 4-5 木の成長アルゴリズム
  • 4-6 本章のまとめ

第5章 UnityによるvisionOSアプリ開発

  • 5-1 環境構築
  • 5-2 Windowsアプリの作成
  • 5-3 Volumesアプリの作成
  • 5-4 Spacesアプリの作成
  • 5-5 簡単なゲームアプリを作ってみる
  • 5-6 本章のまとめ

第6章 PolySpatialによるUnityプロジェクトの移植

  • 6-1 PolySpatialのサポート状況の把握
  • 6-2 既存プロジェクトにPolySpatialをセットアップ
  • 6-3 既存プロジェクトの移植で起きる問題と解決方法
  • 6-4 インタラクションの変更
  • 6-5 既存プロジェクトの移植で発生しそうな問題
  • 6-6 SwiftUI連携の利用
  • 6-7 本章のまとめ