ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
visionOS向けQuick Lookの新機能
アプリでファイルのプレビューや編集を手早く行える、visionOSのQuick Lookについて説明します。アプリ内およびウインドウに表示されるQuick Lookの統合や、アプリでウインドウに表示されるQuick Look体験をカスタマイズするまったく新しいAPIもご紹介します。Quick Look内に3Dモデルを表示する最新の機能強化も取り上げます。
関連する章
- 0:00 - Introduction
- 2:20 - PreviewApplication API
- 9:15 - 3D preview enhancements
リソース
関連ビデオ
WWDC24
-
ダウンロード
皆さん こんにちは visionOS向け クイックルックの新機能へようこそ Quick Lookチームのソフトウェア エンジニア Naveenです 今日は クイックルックに追加された 最新機能をご紹介します また それらの機能をアプリケーションで 活用する方法も取り上げます クイックルックとは何でしょうか クイックルックは多目的な システムツールで ファイルのプレビューと編集をすべての Appleプラットフォームで可能にします ファイル メッセージ フリーボードなど 多くのシステムアプリで使用されています ファイルへの安全で確実なアクセスを 確保しながら 広く使用されている一般的な ファイルタイプを表示または編集できます 一部の主要なファイルタイプはFaceTime通話で SharePlayを使用できます visionOSは3Dに最適です URLを指定するだけで簡単に クイックルックで表示できます クイックルックで3Dをプレビューする 方法としては主に2種類あります 1つはアプリ内スタイルです クイックルックをシームレスに組み込み アプリ内でフルスクリーンカバー として表示します もう1つはウィンドウへの表示です この方法では3Dモデルが ボリュームで表示され アプリとコンテンツを並べた お互いが切り離された状態で マルチタスクでの作業を強化します 以前は この操作をドラッグ&ドロップで 実現していました
これを SwiftUIとSwiftの並行処理 を活用しながら クイックルック体験に対するアプリの制御を 強化することが目標です 今年 このすべての原則に基づいて構築された PreviewApplication APIを 新たに導入します 現在は わずか数行のコードでアプリに クイックルックを統合できます このAPIを使用すると 個々のファイルを プレビューできるだけでなく コレクションビューで複数のファイルを 開くこともできます デフォルトの編集オプションを カスタマイズすることができ プレビューするファイルのライフサイクルを 直感的に管理する方法を提供します
これは新しいAPIの概要に過ぎません 次のセクションでは 新しいPreviewApplication APIを 使用して クイックルック体験をアプリ用に カスタマイズする方法について 詳しく説明します
その後クイックルックの最新の3Dプレビューの 機能強化について説明します
では PreviewApplication APIの 使用方法について見ていきましょう
友人や家族と旅行体験を共有するアプリを 作成しました 友人のMichaelが最近のガラパゴス旅行の エントリを追加しました 彼はこの旅行で 多くの素晴らしい 空間ビデオを撮影しました このアプリでそれらのビデオを 写真アプリと同様に全画面表示して 空間上でプレビューするとします これにはクイックルックが最適です PreviewApplication APIを使用して いかにそれが簡単かをお見せしたいと思います
アプリにはThumbnailImageという カスタムビューを作成済みです これは エントリにある 1つのファイルを表します タップしたファイルがクイックルック ウインドウで開くようにします
そのためには onTapGestureを追加して
PreviewApplication.openを コールします
URLのパラメータとして 選択したファイルのURLを指定します
このコードを実行して 実際の動作を見てみましょう ファイルをタップすると
クイックルックがウインドウで表示されます
そして完全に空間上で再生できます
このビデオを楽しみながら アプリの操作も続けられます
エントリのファイルすべてを プレビューすることもできます 先ほど渡したURLは1つでしたが このAPIではURLの配列を 受け取ることができます
ここでは 現在のエントリにある すべてのURLをAPIに渡します
選択したURLには 選択したファイルのURLを指定します
これによりすべてのファイルが コレクションビューで開き 選択したファイルにフォーカスが 当たるはずです 確かめてみましょう 同じファイルをタップすると コレクションビューに ナビゲーションの矢印が表示されます この矢印を使用して エントリにある すべてのファイルを順番に表示できます
素晴らしいですね 個々のファイルを開かなくても すべてのビデオを楽しむことができます しかし タイトルの表示が 意図した内容になっていません また タイトルをタップするとトリミングなどの 編集オプションが表示されます
クイックルックは この便利な編集オプションを デフォルトでサポートしており 行われた編集内容は自動的に 元のファイルに書き込まれます
より細かく制御できるように このAPIにはPreviewItemを 使用するオプションが用意されています
URLには selectedURLを指定します
displayNameは 上部のメニューに表示されるタイトルです ここには現在のエントリの名前を指定します
editingModeを disableに設定すると
上部のメニューから 編集オプションを削除できます この他にも使用できる編集モードがあります 詳しくは このAPIに関する ドキュメントをご覧ください
最後に APIでpreviewItemを使用します
このコードを実行して どのように変わったかを確認します タイトルにはエントリの名前が 表示されています 上部のメニューにアクセスすると 編集オプションが表示されなくなっています まさに意図したとおりの動作です APIは 1つのファイルにつき 1つのプレビューのみ表示します 同じファイルをもう一度開いても 新しいプレビューは作成されず 既存のプレビューが隠れていれば それが最前面に移動します そのため 開いているプレビューを表す インジケータを表示したいと思います しかし プレビューが閉じたときには そのインジケータを削除する必要があります このAPIにはプレビューのライフサイクルを 管理する新しいオプションがあります PreviewApplication.openを呼び出すと セッションのインスタンスが得られます これをセッションの状態を表す変数に 格納します
このセッションには イベントとして Swift非同期データストリームが 含まれています
イベントを使用すると プレビューがいつ開き いつ閉じたかを知ることができます このイベントを監視する メソッドを作成します
開いているプレビューを 画面上で確認できるように クイックルックでファイルがプレビューされて いることを示す眼のアイコンを使用します
プレビューの状態に基づいて このアイコンの不透明度を変更します
この機能を実際に見てみましょう 新しいプレビューを開くと 開いたプレビューのサムネールに このアイコンが表示されます
プレビューを閉じると このアイコンは表示されなくなります 狙いどおりの動作ですね
これらはPreviewApplication APIを活用し アプリに合わせてクイックルック体験を カスタマイズする 素晴らしい方法です ここまで見てきたように アプリで空間メディアをプレビューする場合 クイックルックがきわめて効果的です アプリ用の空間写真や空間ビデオを作成する 方法の詳細については 「Building compelling spatial photo and video experiences」で Vedantの説明を参照してください
つづいて クイックルックで3Dコンテンツを表示する 最新の強化機能を見てみます 皆さんからいただいたフィードバックは とても貴重なものでした そして今年 皆さんからの要望の多かった 2つの機能を導入しました その一つは平面マッピングです ここにiPhoneの3Dモデルがあります 良くできていますね これを机の上に置きたいと思います クイックルックでは 床やテーブルのように水平な面に あらゆる3Dモデルをスナップできるので この操作が可能です
ウインドウのバーをピンチして 机の近くまでドラッグします これで iPhoneを 机にスナップできます この操作の確定を示すサウンドが聞こえます
スナップしたモデルは テーブル上で自由にドラッグできます
平面へのスナップはクイックルックのすべての 3Dモデルに対して自動的に有効になります 追加の作業は不要です テーブルや床などの水平な面で この機能を使用できます クイックルックでは 3Dモデルが面と交差しないように スナップ操作中は ピッチ方向の回転が無効になります 3Dモデルが面にスナップされているように 見せるには 必ずモデルの底部を原点に配置してください
これがクイックルックの 平面マッピング機能です ではもう一つの強化機能を見るために またiPhoneのモデルを取り上げます
ご存じの通り iPhoneには 多くのカラーオプションがあります これまで これらをプレビューするには 考えられる組み合わせごとに USDZファイルを用意する必要がありました これらの組み合わせがすべて 同じファイルにあれば便利だと思いませんか それが可能になります
クイックルックには単一ファイルにある さまざまな色からいずれかを 選択できる設定が用意されています クイックルックを使用した設定の 簡単なデモを見てみましょう 画面下部のメニューをタップすると このiPhoneの色を変更できる 新たなオプションが表示されます 色を選択してホワイトチタニウムに 変更してみます
素敵な色ですね クイックルックを使用すれば このように 簡単にさまざまな設定を表示できます クイックルックでは USDZと Realityファイルを設定に使用できます
各設定はUSDZのバリアントに相当します
visionOSでは 設定は FaceTime通話のすべての参加者間で 同期されます
設定はiOSやmacOSなど すべての プラットフォームでサポートされています 同じiPhoneをiOSで表示しています
クイックルックのプレビューから設定に 直接切り替えることができるので iPhoneを購入する前に すべての色を確認でき たいへん便利です
こちらは設定の別の活用例です クイックルックを使用して 太陽系のすべての 惑星について簡単に学ぶことができます USDZのバリアントの コード例を見てみましょう すでにお話したように クイックルックでの各設定は USDZファイルのバリアントに相当します これは USDZでiPhoneの モデルを記述したコードの抜粋です
すべてのバリアントをdefaultPrimに 定義したことを確認します この定義により クイックルックから バリアントを問い合わせて表示できます
タイトルに色を適用し デフォルトの色を ブラックチタニウムとしています この色がモデルと共に表示されるので 現在どの設定が 読み込まれているかがかわかります
設定のボタンをタップすれば 他の色を選択できます
ホワイトチタニアムを選択すると 選択した色に変更されたモデルが 再度読み込まれます
バリアント名には スペースを使用できないので 代わりにアンダースコアを使用します クイックルックで表示されるときには 自動的にスペースに変換されます 設定を作成するときには 読み込み時間への影響を考慮してください 重いテクスチャ 複雑なジオメトリ シェーダの多用は避けてください 迅速かつシームレスに読み込まれる設定を 目指し スムーズなクイックルック体験を 提供しましょう また 異なるデバイスやプラットフォームで 設定を十分にテストし 見た目や使い勝手が 満足行くものであることを 確認するとよいでしょう 詳しくは Scottのセッションで 空間コンピューティングでの3Dアセットの 最適化について説明しています 今日のお話をまとめたいと思います PreviewApplication APIを 使用することで ウィンドウ形式のクイックルック体験を アプリからより細かく制御できます この制御は コレクションビューや セッションの編集と管理にまで及びます 平面へのスナップにより 水平面に3Dモデルを容易に配置できます 最後に 設定を使用すると クイックルックで多彩なプレビューができ 製品 教育 デザインに 新たなユースケースが生まれます
クイックルックの新機能は以上です 皆さんがどのようなものを作るのか 楽しみにしています
-
-
12:22 - Variants USDZ
#usda 1.0 ( defaultPrim = "iPhone" ) def Xform "iPhone" ( variants = { string Color = "Black_Titanium" } prepend variantSets = ["Color"] ) { variantSet "Color" = { "Black_Titanium" { } "Blue_Titanium" { } "Natural_Titanium" { } "White_Titanium" { } } }
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。