昨日感想を投稿した visionOS TC 2025 の、手元でガーっとメモしたものを備忘録がてら整理してみた。聴くのに集中してメモしていないものもあり。アーカイブ動画配信いただけるようなので楽しみ。
イベントページ:https://visionos-tc.com
Transform your iOS app into an Immersive Experience
- iOSの既存アプリをどうイマーシブに落とし込んでいくか?
- visionOS 開発では既存コードベースをほぼそのまま利用できる、せっかくvisionOS に対応するならイマーシブな体験を追加しよう
- イマーシブとは?
- Part of the content
- Makes you want to reach out instinctively
- Seamless transition
- Experience that moves you
- 東京「舞浜」
- 流動的な体験フロー:京王線のドアが開いて、アトラクションに向かうまでの体験
- どのように iOS アプリをいまー支部な体験に落とし込むか
- iOSの複雑な画面遷移の構造を乗り越える:シーンの概念を使う
- コアな機能だけを持って行って、そこから広げていくことも可能
- Step 1:iPhoneのスクリーンを7台並べる(マルチウインドウ)
- 横に並べるだけではなく、扇形に。眼精疲労を防止
- Step 2:iPhone のかたちにとらわれないものを並べる(紙面をグリッド状に並べる)
- iOS で使っている技術、SwiftUI の modifier だけで実現できる、RealityKit 使わなくて良い
- Step 3:(震源地図)
- Step 4:Metal を使ったビジュアライゼーション(衛星のリアルタイムレンダリング)
- イマーシブっぽく見せる工夫、ウィンドウを斜めに表示する
- iOSの複雑な画面遷移の構造を乗り越える:シーンの概念を使う
- ウィンドウの工夫、手を上げて操作する(ゴリラ腕問題)を解消するために、自動スクロールさせる
- コンテンツの文字部分と大きな背景画像は分離、いっぱい動かすと画面酔いを引き起こすため
様々なジャンルの Apple Vision Pro 専用ゲームタイトル制作で直面した技術的課題と解決方法の紹介
- 未発表デバイスでの開発
- Gaze操作でのプロトタイプ検証として Meta Quest Proを使った
- Unity サポートを考えて Unity を採用
- 開発中の課題
- 実機がない、実機固有でシミュレーションではうまくいく現象
- どうにかして調達するか(空輸は関税トラブルがあり大幅に遅れるので現地行くのがおすすめ)
- Unity / Apple に問い合わせる(聞いたほうが絶対早い)
- バグなのか仕様なのか切り分けづらい、問い合わせる。
- 選考事例がない:めげずに頑張る、英語で調査する
- 実機がない、実機固有でシミュレーションではうまくいく現象
- ハンドトラッキングを組み込む際の注意点
- Unity:XRHand と visionOS とでボーン定義に差がある
- visionOS には後者にはPalmの定義がない
- 掌の法線ベクトルの推定は他のボーンから推定するしかない
- XRHand 側にはない
.handForearmArm/Wristの定義がないが解決可能
- visionOS には後者にはPalmの定義がない
- Unity:XRHand と visionOS とでボーン定義に差がある
- 検出しづらい速度や状況がある
- トラッキングする点がカメラ視点で被りが多い場合、同じポーズも画角に良い理NG
- ゲームデザイン時に誘導してあげる必要があり
- トラッキングする点がカメラ視点で被りが多い場合、同じポーズも画角に良い理NG
- メッシュと経路探索システムの連携方法
- トラッキングがここに分かれて取得される、ゲーム開発では
NavigationMesh(ナビメッシュ)を使うことが一般的- メッシュの頂点情報から頂点間の移動の重みを定義して、パスをもとに経路探索するアルゴリズム
- 空間メッシュにコライダーを当てることで実在感が出せる
- ゴミ箱をリアルタイムにおいてリアルタイムスキャンする(登場キャラクターが迂回したりジャンプしたり)することで敵を賢く見せられる
- トラッキングがここに分かれて取得される、ゲーム開発では
- パフォーマンス計測とチューニング
- Unity 上のパフォーマンスと実機上のパフォーマンス
- RealityKit Trace
- Apple Vision Pro はスキニング処理が苦手:ボーンに合わせてメッシュがどう変形するかの計算
- スキニング対象とポリゴン数を減らす、スキニングをやめる
- オブジェクト配置する際の注意:制約がないとめり込みや描画範囲外といいう問題が発生、没入感損ない
- 空間グリッドの導入:点スナップで移動せ、重なりや範囲外を防止
- 制約がないと微妙な位置ずらしで手振れ振動が発生するが、この方法で解決される。
- 魚の移動経路探索、NavMeshは空間に適用できず、パフォーマンス上良くない
How to create great User Experiences for visionOS
- Onboard comfortably
- Relate to the world around you
- Enhance interaction
- Create beautiful things
- Add some magic

RealityKitエンジニアのためのUSDフォーマット基礎&実践編集テクニック
ばんじゅん🍓 さん
- USDとは:3Dシーンを記述できる拡張形式
- 編集経緯を重ねて記述できる
- RealityKit エンジニア向けの USD
- バージョン管理としての USD の扱いを覚える必要がある:
- 3D作る人がエクスポートしてくれるという前提
- .usdz. usda. usdc それぞれの違い
- z: zip(アセット、a, c), a: テキスト形式で人間リーダブル, c: バイナリ形式
- a, c は usdcat で相互変換可能(Apple USD Tools)
- 管理は、s c z どれでもOK
- usda を読めば USD を理解できる
- visionOS App のテンプレから紐解く
- 編集画面の左ペインにusda の中身が階層で表示される
- Xcode 上で usda を diff モードで表示するとテキスト表示可能
@xxx@は参照- RCP で編集して diff を見比べてみる
- RCP は USD を GUI で編集するエディタ
- usda の全体構成
- 複数の usda から構成、シーンが別のシーンを参照できる
- 参照とは?コピーやポインタではなく、参照したものを over して、参照シーンの中身を変更できる(非破壊編集:元のシーンに影響しない、リセットもできる)
- 最終シーンへの compose(stage):最終シーンとしてビルドする的な
- RealityKit にロードする際や、Xcode ビルドで発生
- USDZ の内部画像への参照はできない
- usdc の編集はバイナリの変更になるので差分が大きくなりお勧めしない
- usda を作って、非破壊編集する
- usdc に RealityKit 非対応のライトがあった場合はエラーっぽいのが出るが、usda にしてこの情報をもとに模倣を作ったり、相談できる
- usdz でもらった画像のカラバリやテクスチャ作りたい場合、usdz の外側に画像がある必要があるので分けて置いておく。必要な画像だけ unzip して取り出したりできる
- usd 自力編集できそうだが、、RCP を使うべきメリット
- Xcode ビルド時に最適化がかかる .reality ファイルにコンパイルされると、ランタイムのパフォーマンスが高い
Apple Vision Pro × Unity(PolySpatial)で作る MR ビジュアルアーツ実装ノウハウ
- アート周りの話
- AVP が得意な表現で最適な映像表現を
- 得意な表現
- 環境マップを利用した質感表現
- すりガラス表現 UI で利用されているが 3D モデルにも転用可能
- 苦手な表現
- ポストプロセスが使えない、ブルーム表現やレンズフレアなど
- 単色のようなのっぺりした表現になる
- ボリュームライト
- 光の筋の強調(スポットライト的な)
- 目線を向けるのに使いたいが、代替案必要
- ガラスなどの屈折表現
- リアルタイムレンダリングが苦手
- 他が良すぎることで違和感として目につく
- ポストプロセスが使えない、ブルーム表現やレンズフレアなど
- どうすれば良いのか?
- 苦手を避けて得意な表現に徹する
- 苦手でも創意工夫でなんとかなる場合も
- 意図を担保できるなら別の表現手法を
- 苦手を避けて得意な表現に徹する
- 苦手なビジュアル表現の解決例
- ブルーム問題
- 発光部分の照り返しをテクスチャにベイクする
- エフェクトをマテリアルに書き込む
- 加算パーティクルによる擬似ブルーム
- Billboard 設定するとボリューム感も
- 環境マップに Unity のキューブマップを合成することで、金属感強調できたり
- ブルーム問題
- AVP にできるが Unity にできないこと
- 環境光の変更
- 鏡面反射
In Search of the Perfect visionOS Workflow
- アプリをビジネスを Vision Pro という若いプラットフォームで構築するのはチャレンジングだが、AIによって解決できる
- AIがフルチームを構築するように感じさせてくれる
- 会社を作る上でのマインドセット
- XR は難しいが見返りが大きい
- AI を友達として取り入れる (embrace) する
- 成果と考えを、公開する (公開しないことには誰にも存在を知られない)
- マルチプラットフォームはexhausitnig、one platformからはじめるのがより賢い
- 専門家に会う
- hater は無視する
- context window matter:何を与えるか
- Apple公式のビデオやサンプルコード(sosumi.ai MCP)
- オープンソースやチュートリアル
- コミュティ情報
- セットアップ
- Repo prompt
- Swift plugin for cursor
- Xcode Build MCP for cursor
- generate build server config with SweetPad MCP
- プロトタイピングにおける 3D モデルの生成も AI 活用
- creating 3D models using Meshy AY
- making Skybox using Skybox.ai
- creating dialogs using ElevenLabs
- Cursor をインストールし、AGENTS.md を作り、プレイスホルダーを AI に作らせ、世の中に公開する
- ツールは月ごとに変わるので、効率の良いキャッチアップは、Twitterやコミュニティなどで成功したツールは必ず front page に登場する
Day 2 でツールのことを質問した際に、Vision Pro という高額なデバイスにおいてはやはりユーザーのコンテンツに対する期待値も伴って高いため、上記のAI生成のモデルなどはあくまでプレイスホルダーとして用いて、プロダクションに利用することはおすすめしないというアドバイスを頂いた。
LT 枠もあるが、いったんここまで。