ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
空間コンピューティングのためのQuick Look
visionOSのQuick Lookを使って、3Dコンテンツや、空間画像、および空間動画などのパワフルなプレビューを実現する方法について確認しましょう。これらの体験をシステムで実現する上での様々な方法について解説し、Quick LookのコンテンツをアプリからWebサイトにドラッグアンドドロップし、そのコンテンツで別のウインドウを作成する方法を実践し、またアプリ内で直接Quick Lookを表示する方法について解説します。
リソース
関連ビデオ
WWDC23
WWDC20
-
ダウンロード
♪♪ ♪ こんにちは 「空間コンピューティングの ためのQuick Look」へようこそ Youssefと申します AR Quick Look Teamのエンジニアです 今日お話しするのは xrOSでの Quick Lookのすべての機能と それをプラットフォームで使って アプリやWebサイトでの新体験を 生み出す方法についてです 内容に入る前に まず Quick Lookについて説明しましょう Quick Lookはファイルのプレビューや編集を iOSやmacOS そして今ではxrOSで 簡単に行えるシステムフレームワークです Quick Lookにはパワフルな 編集機能が付いていて 例としては 動画のトリミングや PDFや画像でのマークアップが 初めからすぐに行えます また ファイルへの安心で 安全なアクセスを行うため アプリ内で信用されていないファイルを 開けてしまう心配もありません Quick LookはAppleのプラットフォームの いろんな場所で目にされます iOSでは メッセージスレッドの アタッチメントを開けば そこに出てきます macOSでは Finderかデスクトップで ファイルを選択して スペースバーを押すたびに Quick Lookが現れます xrOSでは ファイルベースのコンテンツの システムビューアです そして iOSやmacOSと同様 xrOSアプリもQuick Lookを利用して 機能満載なファイルの表示や編集が 簡単にできるようになります 具体的に見ていきましょう 最近は アパートの改装に手をかけていて プロジェクトの進捗を追ったり チームと共同作業をするのに アプリを使っています 一緒に作業をしている インテリアデザイナーの1人が 家の改装案の入った フォルダを送ってきました ここにフォルダを開いてあるので どんな案か見てみましょう どうやら彼が提案する居間の USDZモデルのようですね 開けてみましょう そのためには ファイルを ピンチ&ドラッグで出し アプリの外側にドロップします
USDZファイルをドロップすると そのドロップした場所に 3DのQuick Lookプレビューが現れます そしてすぐにインタラクションが可能です ピンチ&ドラッグのジェスチャで モデルを回転させ 美しいレンガのファサードを よく見る事ができます 居間をもう少し近くで見たければ モデルをズームインして拡大します デザイナーは家の周りの 近所の写真も送ってきたようです 最後は 書類が付いていて 家のために計画した機能の リストがあります どれも良さそうなのですが この最後の項目は疑問なので あとで話し合うためにメモを残します ウインドウのトップにあるメニューを開けて マークアップを選ぶと マークアップのパレットが出てきます あとで考えたい項目に丸をつけておきます
アプリからファイルを 外側にドラッグしてプレビューできました 複数のファイルを元のアプリの横に出し すべてが見られました Quick Lookでの この新しい ファイルの表示方法は Windowed Quick Lookと呼ばれます このセッションではさらに詳しく この表示スタイルや アプリやWebサイトへの 適用方法について確認していきます そのあと 直接アプリ内で Quick Lookプレビューを表示する 方法について見ていきます まず Windowed Quick Lookについて 詳しく見ていきましょう Windowed Quick Lookを使うと Quick Lookプレビューが アプリの外側に表示できます これは ファイルコンテンツを アプリの横に表示するような ノンブロッキング体験には最適です Windowed Quick Lookプレビューは 別のアプリがホストなので プレビューが出ている間にも アプリを閉じることができます Windowed Quick Lookは USDZやRealityファイルによる 3Dモデルに はるかにリッチな ビュー体験を与えてくれます アプリから切り離して3Dコンテンツを スケールしたり配置したりできます また 3Dモデルをスケールして 環境を暗くして ほかのシーンをすべて隠し 3Dコンテンツだけに 焦点を当てる事もできます Quick Lookウインドウに表示される 特定のファイルタイプは SharePlay体験もできるので ファイルを共有して FaceTimeで見る事もできます SharePlayで3Dコンテンツを共有すると Quick Lookは3Dモデルの オリエンテーションや スケールやアニメーションを同期します SharePlayで画像を共有すると ほかの人たちと一緒に その画像にマークアップができます Quick LookでファイルをSharePlayすれば グループと一緒に ファイルでコラボレーションするのが 簡単でシンプルになります アプリもWebサイトも Quick Lookウインドウで コンテンツを表示し Quick Lookの数多くの利点を 利用する事ができます まずは アプリがどのように Windowed Quick Lookを表示するか 見てみましょう アプリは URLを含む ドラッグソースを提供して Quick Lookウインドウに ファイルを表示します ドラッグ&ドロップのインタラクション中に ドロップターゲットがアプリの外側にある時 システムはみなさんが提供する URLを Quick Lookウインドウに コピーして表示します 提供されたURLが iCloudのような リモートの場所で ホストされているような場合は システムはまず ダウンロードします ですが これは提供ファイルの コピーが表示されているので 表示ファイルに施された 画像のマークアップなどの編集は 提供されたURLには書き戻されません では実際の動作を見るために Xcodeに行きましょう
アプリにドラッグのサポートを加える前に アプリの概要について簡単に説明します アプリでは プロジェクトの進捗や ほかのチームメンバーが共有した ファイルのリストが見られます ここでは FileViewを表示する リストビューが出ています 各ファイルをドラッグアウトしたいので 各FileViewをドラッグソースに 変える必要があります そのために FileViewに onDragモディファイアを追加します onDragモディファイアは NSItemProviderを期待するので FileViewで表示されるファイルの URLを含むアイテムプロバイダを戻します
シミュレータでアプリを ビルドして実行したので ビューファイルからドラッグアウトし そのファイルを新しい Quick Lookウインドウで表示できます そして アプリを閉じても ファイルのプレビューは ずっと表示されたままです ほんの数行のコードを加えれば アプリ内でドラッグ&ドロップが有効になり 別のウインドウで コンテンツを見る事ができて アプリも自由に使えます 今度は Webサイトでの方法を 見てみましょう iOS 12から Webサイトは AR属性でのリンクのマークアップで 3DコンテンツをiPhoneやiPadの Quick Lookで リンクを付けたり 見たり できるようになりました マークアップされた3Dコンテンツの リンクをxrOSで開くと Safariが新しいQuick Lookウインドウで 3Dコンテンツを表示します 既にiOSやiPadで ARコンテンツのリンク付けを サポートしているWebサイトは このビヘイビアが 余分に何の手を加えなくても xrOSに引き継がれます xrOSは コンテンツスケーリングを 無効にするなどの カスタマイズオプションも重視しています カスタマイズオプションの 詳細情報については WWDC19での「AR Quick Lookの 最新情報」の セッションをどうぞ Safariからの3Dコンテンツを 表示するWebサイトを まだ設定していない場合は 次のようにリンクのマークアップを するだけでいいのです rel="ar"をリンクやaタグに追加すれば Safariはタップでのナビゲートをしません 代わりにWebサイトの横に Quick Lookウインドウで 3Dファイルを表示します Safariに行ってチェックしてみましょう ここでは AR Quick Lookの ギャラリーページが Safariで開いています このページからリンクされている3Dモデルが たくさんあるので そのいくつかを開けてみましょう このティーポットのリンクをタップし Quick Lookウインドウに3Dモデルを ダウンロードし 表示します ダウンロードされるとモデルが現れます このマグカップのリンクをタップすると ティーポットとSafariの近くに マグカップが置かれます これは プロダクトを 共有スペースに置いてみて 自分に合っているかどうか確かめたい Eコマースのサイトにはピッタリです 以上 アプリの外側でファイルを プレビューするための Quick Lookウインドウでの ファイルの表示方法でした 時には アプリの中で直接 ファイルをプレビューしたい ユースケースもあるでしょう Quick Lookコンテンツのアプリ内表示は SwiftUIでquickLookPreview機能に URLを渡すだけの シンプルな作業です quickLookPreviewを使って表示されると プレビューはシートとして ビューコンテンツの上に表示されます 表示されたプレビューに さらにカスタマイズオプションが 欲しい場合は ここでは代わりに QLPreviewControllerを使います iOSアプリをxrOSに持ち込みたいなら quickLookPreviewや QLPreviewController APIの 既存の機能がそのまま 無料で引き継がれます シミュレータに行って Project Trackerアプリのどこで これが利用できるか確認しましょう チームの新しいデザインを 家主に送って承認を求める前に そのデザインをレビューできる ビューがあります 現在は ファイルのリストは見えますが どのファイルも実際には プレビューできません Xcodeに行って これを修正できるか見てみましょう これが今の私のビューです アプリ内で直接ファイルを プレビューするために まずは QuickLookをインポートします それから SwiftUIの quickLookPreview機能を追加し プレビューしたいファイルと 最初に選びたかった特定ファイルを すべて渡します
では 実行してみましょう
アプリに戻ってみて 今度はこのビューを選んでみると プレビューと一緒にシートが 直接アプリ内に現れるのが分かります ツールバーのナビゲーション コントロールを使い ファイルを一巡して 家主に送る前に すべて問題が無い事を確認します ファイルをアプリ内で 直接プレビューするのは quickLookPreview機能にURLを渡せば 簡単に表示できるものでした これでプラットフォームにおける Quick Lookの 両方の使い方を見たので サポート対象のプレビューを持つ ファイルタイプについて触れましょう Quick Lookがサポートする 最も一般的なファイルタイプには 画像や動画 PDFや USDZファイルが含まれています Quick Lookで表示された空間再現画像や動画は 「写真」での画像や動画と 同じくらい良質です xrOSでのQuick Lookを 簡単に見てみました では 今日の内容をすべて 見返してみましょう Quick Lookがアプリに提供する リッチなプレビューと 編集機能について説明しました そのあと Quick Lookを使って アプリがコンテンツをプレビューできる Windowed Quick Lookの話をし Windowed Quick Lookが 提供する機能について 例えばアプリの外側にコンテンツを表示する マルチビューサポートで実現される ボリュメトリックかつ イマーシブな3Dコンテンツの表示や SharePlayサポートについて話しました それから ドラッグ&ドロップの サポートを追加すれば アプリのワークフローを合理化し Quick Lookウインドウを 活用できるという事や Webサイトでも Quick Lookウインドウを利用して Safariの外側に3Dコンテンツを 表示できる事を見ました また アプリがSwiftUIのシーン内で Quick Lookコンテンツを表示するのが いかに簡単であるかも見ました 既にQuick Lookを使っている アプリを持ち込む場合は ほぼ何もせずに このプラットフォームでも 素晴らしいQuick Look体験が得られます 同様に 既にARコンテンツに リンクしているWebサイトは そのビヘイビアを無料で引き継げます Quick Lookはアプリに対し シンプルでパワフルかつ 安全なファイル表示体験を提供しますので 是非みなさんもxrOSでQuick Lookを使って 素晴らしいものを作成してください ♪
-
-
5:15 - drag support for quick look from apps
import Foundation import SwiftUI import UniformTypeIdentifiers struct FileList: View { @State var files: [File] @State var previewedURL: URL? = nil @State var selectedFile: File? { didSet { self.previewedURL = selectedFile?.url } } var body: some View { List(files, selection: $selectedFile) { file in Button(file.name) { selectedFile = file } .onDrag { return NSItemProvider(contentsOf: file.url) ?? NSItemProvider() } } } }
-
8:45 - swiftUI quick look preview function
import Foundation import SwiftUI struct FileList: View { @State var files: [File] @State var previewedURL: URL? = nil @State var selectedFile: File? { didSet { self.previewedURL = selectedFile?.url } } var body: some View { List(files, selection: $selectedFile) { file in Button(file.name) { selectedFile = file } } .quickLookPreview($previewedURL, in: files.map { $0.url }) } }
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。