ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
空間コンピューティング向けのアプリ構築のための準備
visionOS用のアプリやゲームを開発する準備を始めましょう。空間コンピューティングを構成する基本的な要素であるウインドウ、ボリューム、スペースについて解説し、これらの要素を使って魅力的でイマーシブな体験を構築する方法を紹介します。
リソース
関連ビデオ
WWDC23
-
ダウンロード
♪ 柔らかいインストゥルメンタル ヒップホップ ♪ ♪ Jim Tilander: こんにちは RealityKitチーム エンジニアのJimです 今日は ARKitチームの同僚 Christopherと 空間コンピューティングの アプリを構築する方法について解説します 始めましょう 私たちはこの空間コンピューティングの 新プラットフォームにワクワクしています このプラットフォームは アプリを開発する際に 皆さんが使う 慣れ親しんだ基盤を ベースに構築されています リアルとバーチャルの融合や 自然な入力による アプリのインタラクションなど 新たな可能性が広がります また システム全体が 人々のプライバシーに 配慮して設計されており 安心して アプリの体験に集中できます 空間コンピューティングの 基本となる用語と コンセプトについてお話します その後 アプリを制作し始める 様々な方法について説明します そして 同僚のChristopherが 空間コンピューティングを 深く掘り下げながら アプリの構築方法を説明します では 基礎から確認していきましょう まず 空間コンピューティングにおいて おなじみのUIコンセプトと 新コンセプトの両方について説明します デフォルトでは アプリは共有スペースで起動します ここでは Macのデスクトップのように 複数のアプリが並んでいます パススルーによって 周囲とのつながりを維持できます 各アプリが1つまたは複数の ウインドウを持つことができます これは SwiftUIのシーンで 通常のmacOSの ウインドウのように リサイズやリフローが可能です 従来型のビューとコントロール さらに3Dコンテンツを含めることができ 2Dと3Dを混在させることが可能です ユーザーは現在のスペースで 自分の好みに合わせて ウインドウを再配置できます ボリュームはアプリが定義した境界内で 3Dコンテンツを表示し 他のアプリとスペースを共有できます ボリュームは 例えばチェス盤のような 3Dコンテンツの提示に適しています ボリュームはスペースの中で 位置を変えることができ さまざまな角度から見ることができます. ボリュームはSwiftUIのシーンで 慣れ親しんだ方法で レイアウトすることができ RealityKitの力を借りて 3Dコンテンツを表示することができます 時には アプリのイマーシブ体験のレベルを よりコントロールしたいと 思うかもしれません 集中して動画を見たり ゲームをしたいと思うかもしれません これは 特定のアプリからの ウインドウ ボリューム 3Dオブジェクトのみが表示される 専用のフルスペースを開くことで 実現できます フルスペースでは ARKitのAPIを 活用することもできます 例えば システムが提供する ジェスチャに加えて より細やかな スケルタルハンドトラッキングを使うことで 人の手の構造を本格的に取り入れた 体験も構築できます アプリは様々な方法で フルスペースを使うことができます パススルーを使って コンテンツを 現実の世界と共存させ 周囲とのつながりを 保つことができます また RealityKitを使って 空間オーディオを再生したり 3Dレンダリングすると デバイスが 周囲の状況を継続的に理解し ビジュアルとサウンドを周囲に溶け込ませ 仮想オブジェクトが自分の部屋に 本当にあるかのように 感じさせることができます また 視野全体を埋め尽くすような フルイマーシブ空間の レンダリングを行うことも可能です これにより 仮想オブジェクトの ライティングをカスタマイズしたり オーディオ特性を選択したり アプリのクリエイティブな意図を 実現するための柔軟性を得ることができます これらが 空間コンピューティングの 基本的な要素となる ウインドウ ボリューム スペースです これが 継続したイマーシブ体験を実現する アプリを構築するための ツールセットになります Christopherが後ほど詳しく解説します 空間コンピューティングの 基本的な要素を紹介したところで ウインドウ ボリューム スペースの 活用法を探っていきましょう このプラットフォームでは 視線と手を使うだけで アプリとのインタラクションが可能です 例えば ボタンを見て 指を合わせて 選択する操作が可能になります 3Dスペースでは 手を伸ばして ボタンに 物理的に触れることが可能です 両方のインタラクションについて タップ 長押し ドラッグ 回転 ズームなど 様々なジェスチャが可能です システムはこれらを自動的に検知し アプリが反応する タッチイベントを生成します ジェスチャは SwiftUIに組み込まれています 同じジェスチャAPIは RealityKitエンティティとも シームレスに動作します これにより ユーザーは3Dシーンの要素と 直接簡単にやり取りが可能となります 例えば 3Dモデルに 直接旗を立てたり 仮想のファスナーを操作したり 仮想のチェスの駒を 手に持つことが可能です また ボーリングで遊んだり 人の手を仮想のこん棒に 変形させたりしたい場合は ARKitのスケルタルハンドトラッキング を使います ここでは タップで立方体を テーブルの上に積み上げ 手で叩いて崩す例を紹介しています これは アプリ独自の手の入力を 体験に取り込む方法です さらに ワイヤレスキーボード トラックパッド アクセシビリティ ハードウェアからの入力を 自動的にアプリに取り込むことができ Game Controllerフレームワークを使えば ワイヤレスゲームコントローラの サポートも追加できます 共同作業で一緒に物事を 掘り下げていくことは 空間コンピューティングの基本となります 私たちは SharePlayと Group Activitiesフレームワークで これを実現しています このプラットフォームでは macOSと同様 このQuick Look体験のように ウインドウを共有できます Quick Lookの3Dモデルを共有すると 参加者間で 向き スケール アニメーションが同期され 異なる場所にいても 簡単に共同作業が行えます スペースに表示され 物理的に指し示しているものを 共同制作する場合 SharePlayセッションに参加する全員が 同じ体験をすることが重要です これにより オブジェクトへの ジェスチャなどの自然な反応が可能となり 物理的に一緒にいるような 感覚を強化できます 共有コンテキストのコンセプトも システムに追加されています この共有コンテキストを システムが管理することで SharePlayセッションの 参加者全員が同じ方法でコンテンツを 体験できます Spatial Persona Templatesを使うと コンテンツを体験する方法を さらにカスタマイズできます 詳しくは このプラットフォーム向けの 空間的なSharePlay体験のデザインと 構築に関するセッションをご覧ください デバイスが周囲の環境や人々の情報を 多く取得することに配慮して 私たちはプライバシーを 守るためのアーキテクチャを導入しました 詳しく見てみましょう プライバシーは このプラットフォームの設計の 中核をなす原則です 同時に開発者として APIを活用して デバイスの多くの機能を 使用することを容易にするものです アプリがセンサーのデータに 直接アクセスする代わりに システムがこれを行い アプリにイベントや 視覚的なヒントを提供します 例えば システムが 3Dスペースにおける視線の位置や 手の動きを把握し それをタッチイベントとして送信します また システムは ユーザーが注目しているビューに ホバーエフェクトを付与しますが どこを見ているかは アプリには伝えられません 多くの場合 アプリが インタラクションに応答するには システムが提供する動作で十分です よりセンシティブな情報への アクセスが必要な場合は システムが最初に 許可を求めます 例えば 壁や家具を検出して 周辺環境を理解するためのアクセス許可や カスタムインタラクションを アプリに取り入れるための スケルタル ハンドトラッキングへのアクセスなどです アプリの機能をいくつか 見てきましたが 次はそのアプリを どのように開発するのかについて 確認していきましょう すべては Appleの 統合開発環境 Xcodeから始まります Xcodeは プロジェクト管理サポート UIのビジュアルエディタ デバッグツール Simulatorなど アプリ開発向けの 完全なツールセットを提供します 何よりも重要なことは Xcodeには アプリ開発に使用するフレームワークと 一連のAPIを提供する プラットフォームSDKも 付属していることです ソースファイルにSwiftUIプレビュー プロバイダが含まれている場合 プレビューキャンバスが 自動的にXcodeで開かれます プレビューキャンバスが 3Dサポートのために拡張され アニメーションや カスタムコードを含むシーンの RealityKitコードを ビジュアライズ出来るようになりました これにより 反復作業を短縮し ライブコードを編集しながら アプリの正しい見た目と フィールを見つけ 変更と調整の結果を直接確認できます それでは 地球を周回する 衛星のモデルを例として 軌道速度や衛星の大きさを変えてみましょう コードの変更がプレビューに反映され コードで実験した結果を すばやく確認することができます Xcode Previewには 3Dレイアウトをプレビューできる オブジェクトモードがあり 例えば レイアウトがビューの 境界内に収まるかを確認できます これは 従来のUIと新しい3Dの ビジュアルを備えた 緊密に統合された シーンの構築に適しています Xcode Previewは アプリの実行前に 正しいレイアウトを確認するという 素晴らしい方法を提供します Simulatorは アプリのインタラクティビティの テストにも最適です キーボード マウス 互換性のある コントローラを使って シーンの中を移動したり 見回すことが可能です そして シミュレートされた システムジェスチャでアプリと 簡単にインタラクションできます Simulatorには 3種類のシミュレートシーンが付属し 各シーンに昼と夜の照明環境が 用意されています これにより 様々な条件下で 簡単にアプリを確認できます Simulatorはほとんどのアプリの 実行とデバッグが可能で 環境の予測がしやすく 開発中の反復作業に最適です また Xcodeを拡張し デバッグ中の ランタイムのビジュアル化がサポートされ シーンを見るだけで 素早くバグを発見し 理解することができるようになりました ここでは平面推定を可視化し シーン内のコリジョンシェイプの セマンティックも含めて表示しています Xcodeのデバッガから フォーカスしたいビジュアルを 簡単に切り替えられます これらのビジュアルは Simulatorと デバイスの両方で効果を発揮します アプリのパフォーマンスと応答性を 向上させるには Instrumentsのような 使い慣れたツールが最適です InstrumentsはXcodeに付属する 強力なパフォーマンス解析ツールです Instrumentsを使って 実行中のアプリの 実用的な知見を得ることができます また Instruments 15には 空間コンピューティングのための 新しいテンプレート RealityKit Traceが含まれており プラットフォーム上での 新しい動作に関する より多くの 深い洞察を提供します RealityKit Traceテンプレートには 新たな機能が追加され 開発者は アプリがGPUやCPU システム電力に与える影響を理解し パフォーマンスに影響する 重要なポイントを特定できます フレームのボトルネックを 簡単に観察・理解し 表示トライアングル数や RealityKitエンティティの シミュレーション数などの 重要なメトリックスを把握できます これにより 潜在的なパフォーマンスの 問題点を素早く発見し 対処できます 詳しくは “RealityKit Traceについて”をご覧ください さらに 新しい開発者向けツール Reality Composer Proが導入されました アプリの3Dコンテンツを プレビューし 準備ができます Reality Composer Proでは すべてのアセットと それらがシーンでどのように 組み合わされているかを把握できます RealityKitに新たにパーティクル という新機能が追加されました Reality Composer Proの ワークフローを使えば オーサリングやプレビューが可能になります パーティクルをシーンに追加すると 動きや生命感が加わり 無限の可能性が生まれます 雲 雨 火花などを簡単に作れますが これらはほんの一例です シーンにオーディオを追加し オブジェクトと紐づけるのも簡単です シーン全体の形状や コンテキストを考慮して オーディオを空間的に プレビューできます ほとんどの仮想オブジェクトは RealityKitの 物理ベースのマテリアルを使用して 現実世界の材質を表現できます RealityKitは センサーデータを使用して 現実世界の照明情報をマテリアルに反映し 周囲の環境に配置できます RealityKitには アプリが一般的な用途で使用できる 追加の標準マテリアルも いくつか用意されています クリエイティブな用途など 特定のニーズに対しては オープンスタンダードのMaterialXを 使ったカスタムマテリアルを Reality Composer Proで作成できます コードを触ることなく 使いやすいノードグラフを通じて 作成することが可能で ビューポートで直接プレビューできます これについての詳細は “Reality Composer Proのにおける マテリアルの詳細”をご覧ください 3Dコンテンツが良い具合になったら シーンをデバイスに送信し コンテンツを直接テストできます アプリを作成する必要が無いため 反復作業に最適です 詳細については “Reality Composer Proについて”を ご覧ください もう1つの選択肢はUnityです Unityは 使い慣れたワークフローで プラグイン無しで 空間コンピューティングの アプリを制作できます 既存のコンテンツを使って 新しいイマーシブ体験を 実現できます こちらの詳細については Unityによるイマーシブなアプリ構築 に関するセッションをご覧ください 基本的な概念と 利用可能なツールを 理解したところで アプリの制作方法を見てみましょう 方法は2つあります 新しい空間アプリを 始めからデザインするか 既存のアプリを 新しい空間プラットフォームに 応用するかです まずは新規アプリの 作成方法を見てみましょう 始めから空間コンピューティングを念頭に アプリをデザインすることで そのユニークな機能を いち早く取り入れられます まずは このプラットフォームの新しい テンプレートを使ってみましょう アプリテンプレートには 2つの重要なオプションがあります まず Initial Scene Typeで “Window”か“Volume”の どちらかを選択します これで最初の開始用コードが生成され 後から簡単にシーンを追加できます 2つ目のオプションは アプリにイマーシブスペースの エントリーポイントを追加することです デフォルトでは アプリは共有スペースで起動します Immersive Scene Typeで “Space”を選択すると アプリに2つ目のシーンが追加され このフルスペースを起動するための サンプルボタンが表示されます アシスタントが終了すると RealityKitでレンダリングされた 3Dオブジェクトの中に 見慣れたボタンが配置された SwiftUIの初期作業用アプリが表示されます 詳細については “はじめてのイマーシブなアプリの開発”を ご覧ください サンプルコードも公開されており それぞれ異なる トピックを取り扱っているため すぐに使うことができます Destination Videoは 3Dビデオと Spatial Audioを組み込んであり 共有可能でイマーシブな 再生体験を構築することができます Happy Beamはカスタム ハンドジェスチャを使った イマーシブスペースを活用して 友達と楽しく遊べる ゲームを作ることができます そしてHello Worldでは 3Dの地球儀を使って 様々なビジュアルモードを 切り替えることができます 後ほどChristopherが Hello Worldについて詳しく説明します このプラットフォーム上でアプリを 構築・制作することで 空間コンピューティングの概念を 簡単に取り入れることができます しかし 既存のアプリを 空間コンピューティングに 応用したい方もいらっしゃるでしょう 確かに iPadやiPhoneのアプリは 見た目も使い勝手も最高です iPadとiPhoneの 両方をサポートしていますが iPadに対応しているアプリの方が iPhone専用アプリよりもより望ましいです ではSimulatorで レシピアプリを見てみましょう このプラットフォームには 独自のダークスタイルがありますが iPadとiPhoneのアプリは ライトモードを維持します ウインドウは使いやすいように 拡大縮小でき アプリの回転にも対応しているため さまざまなレイアウトを見ることができます 詳細については “共有スペースにおけるiPadと iPhoneアプリの実行”をご覧ください システムのビルトインの動作や 機能的な違い Simulatorを使ったテスト方法について 学ぶことができます しかし 既存のiPadやiPhoneアプリを 実行することはほんの始まりです Xcodeプロジェクトに このプラットフォームの デスティネーションをワンクリックで 簡単に追加できます その後 ターゲットとなるデバイスを選択し 再コンパイルして実行します
再コンパイルすると ネイティブのスペーシングが適用され リサイズと再レイアウトが行われます ウインドウとマテリアルは自動的に プラットフォームに合わせた ルック&フィールとなり どんな照明下でも読みやすくなります そして アプリでカスタムコントロールの ハイライトなどといった ビルトイン機能を活用できます では Christopherが ここまで説明したコンセプトを使って アプリをさらに進化させる方法を解説します ありがとう ジム ここまでで学んだ要素を組み込み アプリを構築する方法について解説します まずはHello Worldを使って アプリに素晴らしい機能を 統合してみましょう こちらが動作中のサンプルです Simulatorでアプリを実行すると Hello Worldが起動し 目の前の共有スペースに ウインドウが表示されます 見慣れたSwiftUIのウインドウで テキスト 画像 ボタンなど 異なる要素が含まれています タップジェスチャで ナビゲーションできます 新しいビューに 3Dコンテンツが埋め込まれています SwiftUIと3Dコンテンツは シームレスに連動しています メインウインドウに戻り Planet Earthを選択すると 新しいビューが表示されます 新しいエレメントが現れます これがボリュームです 地球の3Dモデルと いくつかのUI要素が含まれています ウインドウバーを動かすことで ボリュームを周囲の 好きな場所に移動できます
再びメインウインドウに戻り View Outer Spaceを選択すると 太陽系への招待が表示されます
ここから宇宙に移動することができ イマージョンスタイルが “フル”に切り替わります この例では 地球がレンダリングされ パススルーを暗くすることで 周囲に気を取られることなく コンテンツに集中できるようになっています 実際の動作を見たところで Hello Worldを機能ごとに分解して これらのコンセプトを 自分のアプリで使う方法を見てみましょう Jimが説明したように ウインドウ ボリューム スペースという 複数の要素が存在します アプリを使うユーザーにとって それぞれの瞬間に何が最適かを考え 没入度を調整するようにしましょう 共有スペースでは 1つまたは複数のウインドウを表示できます パススルーを使って 他のアプリと 並べることもできます あるいは よりイマーシブ体験のレベルを上げて アプリが空間を完全に占有することもできます 空間コンピューティングにおいては それぞれの場面ごとに アプリに最適な 体験を見つけ それらを柔軟に 行き来できるように デザインすることが重要です 次に 体験の一部として ウインドウをどう使うかを見てみましょう ウインドウは アプリの出発点として機能します シーンを使用して SwiftUIで構築され 従来型のビューと コントロールを有しています このプラットフォームのウインドウでは 2Dと3Dコンテンツを混在させられます つまり 3Dコンテンツを ウインドウ内の2DのUIと一緒に表示できます ウインドウは空間内で サイズを変更したり 位置を変えられます ユーザーの好みに応じて配置できます 例に戻ります Hello Worldでは コンテンツビューは SwiftUIの画像や テキスト ボタンを表示し よりイマーシブなコンテンツを 呼び出す操作が可能です ウインドウの作成はシーンに WindowGroupを追加するのと 同じくらい簡単です WindowGroupの中に ContentViewを表示します ContentViewには3Dコンテンツを追加でき アプリに新しい奥行きを与えます これは 新しいModel3Dビューで行います Model3Dは画像と似ており RealityKitでレンダリングされた 3Dコンテンツをアプリで 簡単に読み込み 表示できます Model3Dをビューに追加するには 衛星モデルの名前を Model3Dに渡し 初期化します これにより Model3Dがモデルを読み込み ビュー階層に配置します このウインドウでは 衛星がビューに埋め込まれ Z軸に表示されるのを確認できます アプリに新たな奥行きが加わりました 衛星を追加したので インタラクションを追加します インタラクションは基本的にシステムに 組み込まれており SwiftUIで提供されます SwiftUIは TapやonHover RotateGestureなど Appleのプラットフォームで おなじみの ジェスチャリコグナイザを提供します このプラットフォームでは 3D空間の回転や 3Dオブジェクトのタップなど 新しいジェスチャ認識機能が提供されます 衛星とのインタラクションを 可能にするコードを見てみましょう 空間タップジェスチャを有効にして 衛星をつかんで移動できるようにします Model3Dを使ってジェスチャを追加します 内部に衛星をターゲットにした DragGestureを追加します これで updateクロージャから 渡された値を使って衛星を動かせます 実際に見てみましょう 衛星がレンダリングされたビューに戻ると DragGestureによって モデルがタップに反応し 動かすことができます ご覧のように Model3Dでは 2Dと3Dコンテンツを 簡単に混在させられます これらは ウインドウの 機能のほんの一部です では 別のタイプのエレメント ボリュームを見てみましょう ボリュームの特徴を見てみましょう ボリュームはウインドウの延長線上にあり 同様の機能を提供します ボリュームは3Dコンテンツに最適な 新しいスタイルのウインドウです 2Dまたは3Dコンテンツを含む 複数のSwiftUIビューを処理できます ボリュームは フルスペースでも使用できますが 共有スペース向けに作られているため コンテンツはボリュームの 境界内に収める必要があります では シーンに ボリュームを追加してみましょう まず 新しいWindowGroupを作成し windowStyleをvolumetricに設定します 次に width height depthのプロパティで defaultSizeを指定します ボリュームの単位を ポイントかメートルで指定します Simulatorで実行してみましょう アプリが表示されると ボリュームが前方に配置されます このボリュームは指定した寸法で表示され プラットフォーム コントロールが表示されます アプリケーションタイトルバーは アプリ名を表示し このボリュームが どのアプリに属するかを識別できます ウインドウバーは ボリュームの位置決めを可能にします そして閉じるボタンを タップするとアプリが停止し ボリュームが閉じます 現在 ボリュームは地球の3Dモデルを レンダリングしていますが より多くの コンテンツや動作を追加できます これはRealityViewをアプリに 使用することで実現できます RealityViewはシーンに追加できる 新しいビューで 任意の数のエンティティを SwiftUI内で直接管理できます SwiftUIとRealityViewが SwiftUIの管理ステートと エンティティのプロパティをつなぐことで アプリを簡単に統合できます これにより アプリの データモデルをソースとして 3Dモデルの動作を簡単に実現可能です 空間の座標はRealityViewが提供する 変換関数で簡単に変換でき RealityViewで アタッチメントを通じて SwiftUIのエレメントを 3Dシーン内に配置することもできます ここで RealityView内での アタッチメントの使い方を見てみましょう これから使う RealityViewイニシャライザは makeクロージャ updateクロージャ アタッチメントViewBuilderの 3つのパラメータを使用します makeクロージャを使うと エンティティを作成し ルートエンティティに紐づけできます updateクロージャは ビューの状態が変化すると呼び出されます 最後に attachmentsクロージャは RealityViewがビューをエンティティに 変換できるようにする タグプロパティで SwiftUIのビューを追加する場所です では RealityViewでの attachmentsの使用例を見てみましょう RealityViewのattachmentクロージャ内に SwiftUIのビューを追加するのと 同じくらい簡単です このパンのアイコンを使って 3D地球儀の場所を表示してみましょう 各attachmentには名前を付ける タグを追加する必要があります ここでは“pin”にします attachmentを表示するには RealityViewの コンテンツに追加します updateクロージャで シーンのルートエンティティに追加します 先ほど作成したattachmentが 地球儀上でお気に入りのパン屋さんの 位置にレンダリングされています 今見たように RealityKitを使って Model3DやRealityView attachmentsなどの強力な機能を 使うことが可能になります これらをアプリに簡単に統合できます これはRealityKitで出来ることの ほんの一部にすぎません より詳しく知りたい方は “RealityKitによる空間体験 の構築"と “RealityKitによる空間コンピューティング アプリの拡張”をご覧ください ここまでの内容を振り返ります ボリュームは 2Dと3Dコンテンツの表示に最適です ボリュームは共有スペースのために 構築されたものであり ウインドウと共存でき 指定された境界内に制限されます 次に 最後のエレメント スペースについて説明します アプリが専用のフルスペースを開くと システムは他のすべてのアプリを隠し 特定のアプリだけが見えるようになります アプリのウインドウやボリューム コンテンツを好きな位置に配置できます ARKitとRealityKitのおかげで バーチャルコンテンツは 周囲の環境とインタラクションすることも できます 部屋で仮想のボールを投げて 壁に跳ね返ったり 転がる様子を見ることができます ハンドトラッキングを追加すると カスタムジェスチャや インタラクションを構築したり 手に対して相対的に コンテンツを配置できます これらの機能の多くは ARKitが提供します より深く掘り下げて アプリでの活用方法を学ぶには “空間コンピューティングのための ARKitについて"をご覧ください スペースの作成時に 選択するスタイルによって アプリは様々なレベルの イマーシブ体験を提供できます Jimはフルスペースで利用可能な 没入度の違いについて説明しました ここで アプリのイマーシブ体験を 高める方法について詳しく説明します イマージョンスタイルは フルスペースで使用できるパラメータです 2つの基本的なスタイルがあり .mixedと.fullと呼ばれています Mixedスタイルは パススルーの上に アプリのコンテンツを重ねます Fullスタイルはパススルーを隠し コンテンツのみを表示します Progressiveを選択すると この2つを組み合わせられます このスタイルでは ある程度のパススルーが表示され ユーザーはデバイス上部にある Digital Crownを回すことで イマーシブ体験のレベルを フルまで変更できます 例に戻り イマージョンスタイルを見てみましょう まずmixedスタイルから見てみましょう フルスペースはSwiftUIのシーンなので RealityViewを使って地球を表示できます これが高軌道から見た地球です これがアプリでシーンを表示した方法です イマージョンスタイルを指定していません ImmersiveSpaceを作成すると デフォルトでmixedスタイルが 選択されるからです では別のイマーシブスタイルを選択して アプリのイマーシブ体験を レベルアップしてみましょう 今回は“full”の イマージョンスタイルを選択します ImmersiveSpaceの最後に イマージョンスタイルを簡単に追加できます イマージョンスタイルをstate変数に格納し タイプをfullに設定します イマーシブ体験に入る タイミングを選べるように スタイルを変更するための ボタンを追加しておきます 新しいイマージョンスタイルを 見てみましょう このアプリでは Hello Worldを シングルウインドウから フルイマーシブに変更し あらゆる角度から 地球を見れるようにしました これは空間アプリで出来ることの ほんの一部です 次に進むステップを見てみましょう このセッションでは基礎について学びました 始め方 そしてアプリ制作の 基本的な内容を説明しました 今後も素晴らしい セッションが用意されています 空間デザインの原則について SwiftUIとRealityKitを使った アプリの構築の仕方について 3Dコンテンツの制作方法などです 空間コンピューティングを使えば 皆さんの創意工夫によって エキサイティングなアプリを制作できます ありがとうございました ♪
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。