ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
ARKit 3の紹介
ARKitはiOSのための革新的な拡張現実(AR)プラットフォームで、人が周囲の世界とつながる方法を一変させます。ARKit 3の最先端の機能と、ARKit 3がどのようにRealityKitのための革新的な基盤となるかについてご確認ください。このセッションでは、ARKitを使用してモーションキャプチャとピープルオクルージョン向けに身体の位置や動きを把握することにより、より魅力的なARを生み出す方法について説明します。複数のフェイストラッキング、共同セッションの構築、オンボーディング用のコーチングUIなどのための追加機能についてご確認ください。
リソース
関連ビデオ
WWDC20
WWDC19
-
ダウンロード
(音楽)
こんにちは (拍手) 皆さん ARKit 3のセッションへようこそ ARKitチームの アンドレアスです 今日はリリースが決まった― ARKitの第3弾をご紹介します
2017年にARKitを紹介した時 iOSは世界最大の ARプラットフォームになりました そして多くのiOSデバイスに ARをもたらしました この影響は著しく― Appやゲームを 多くのユーザに届けました
我々の使命は最初から 開発初心者でも Appを作れるように 作業をシンプルにすること そして高度なARを作るために 必要なツールを提供することです
現在のApp Storeを見ると― 面白いAppや ゲームがたくさんあります 少し見てみましょう
ARを取り入れることで “アングリーバード”のような 体感ゲームも楽しめます プレイする際は障害物を回避して 敵を狙うのに 最適な場所を探します そしてパチンコで アングリーバードを飛ばします
ARKitは現実の風景と 合わせても使えます “iScape”はガーデニングに最適です 自宅の庭に木や やぶを植えて ARでシミュレーションを することができます
昨年紹介したARKit 2とUSDZは ARデータをやりとりするための 新3Dフォーマットです Wayfairはこれを 家具のバーチャル配置に利用 環境テクスチャリングなどの シーン理解の機能で 家具が部屋にうまく溶け込みます
LegoもARKitの 3D検出機能を使っています 実物をARで強化できます マルチユーザサポートで 友達とも遊べます
これらはほんの少しの例です ARkitは技術的な詳細に対し すべての面倒をみます 技術面を担うARKitを 使用すれば 皆さんはユーザ体験の開発に 集中できます ではARKit機能の主要な3本柱を 簡単にご説明しましょう
まずはトラッキング
トラッキングはデバイスの 環境内の位置を把握します バーチャルコンテンツを正しく配置し リアルタイムで更新します まるでイリュージョンかのように 仮想コンテンツを リアルワールドに合成します ARKitには多様な トラッキング技術があります ワールドトラッキングや フェイストラッキング イメージトラッキングなどです
トラッキングを土台として シーンを理解します
シーン理解では オブジェクトの表面や 画像 シーンにおける3Dオブジェクト を認識し それらの上に バーチャルコンテンツを配置します さらに環境の中で 明るさやテクスチャーを学習し コンテンツをよりリアルに見せます 最後はレンダリング 3Dに臨場感を与えます
SceneKitやSpriteKit Metalなどレンダラーをサポート それに加え今年発表したRealityKitは ARを念頭に入れ ゼロから設計しました
今年のARKitは 大きな飛躍を遂げています よりリアルな体験が できるだけではありません 新しいユースケースを作り 不可能だった体験を可能にします ARKit 3の新機能のおかげです 例えばピープルオクルージョンや モーションキャプチャ 共同セッションも可能に フロントとバックカメラでの 同時使用や 複数のフェイストラッキング機能も あります 説明したい事がたくさんあるので ピープルオクルージョンから始めます
これを見てください 満足のいくAR体験のために バーチャルコンテンツの配置は 重要です 照明も大事でしょう バーチャルエスプレッソマシンを テーブルの上に置きます しかしフレーム内に人がいると イリュージョンは成功しません 現実では 手前の人が マシンに重なるからです
ARKit 3の ピープルオクルージョン機能で 解決することができます (拍手) ありがとう
この方法を説明します
初期設定ではカメラ画像の上に レンダリングされます このとおり テーブルだけなら問題ありません でもフレームの手前に人がいると リアルには見えません ここでARKit 3は 機械学習を使います フレーム内に存在する人を認識し 人物の部分だけの レイヤを作成します これがセグメンテーションです これを物体の上にレンダリングします
画像を合成してみましょう よくなりましたね? でも まだ完成ではありません 手前の人はマシンに重なります しかしズームすると奥の人物も― 物体上にレンダリングされています テーブルの後ろにいるので 仮想マシンは彼女の上に 重なるはずです
これはカメラが人との距離を― 考慮しなかったために発生しました
ARKit 3の機械学習で さらに深度を予測して― カメラとの距離についても判断します レンダリングを修正し カメラに近い人だけを最前面にします Neural Engineが 毎フレームごとの リアルタイム実行を可能にします
合成画像を見てみましょう バーチャルコンテンツが 人に隠れて 期待するAR体験の結果となります (拍手) どうもありがとう
ピーブルオクルージョンは― バーチャルコンテンツを 人物の奥にレンダリングできます シーン内で複数の人物にも有効で 一部しか見えない人物にも使えます 例えば後ろにいた女性の 全身が見えていなくても 機能するのです これは重要な機能です 以前より リアルに見えるだけではなく 今まで不可能だった体験を 作ることができるからです マルチプレイヤーゲームで バーチャルコンテンツと人物が 同時に映る場合などが例です
ピープルオクルージョンは ARViewとARSCNViewに統合されます 深度予測のおかげで カメラで検出された― 人物との距離の概算値を提供できます
これにはNeural Engineを使います よってピープルオクルージョンは A12以降のデバイスで動作します
APIでの使用方法を説明します
ARConfigurationには FrameSemanticsという 新しいプロパティがあります 現フレーム内にある― 異なる種類の セマンティック情報を提供します また特定の構成やデバイス上での セマンティックの使用可否が 確認できます ARConfigurationの 追加メソッドによってです ピープルオクルージョンには 2つの使用方法があります
1つ目はPerson Segmentation これは画像上で レンダリングされた人物の セグメンテーションのみ提供します これが最適なのは 人が常に一番手前にいて バーチャルコンテンツが 常に奥にある場合です グリーンバックは もう使う必要はありません
2つ目は深度による セグメンテーションです これは人物とカメラの距離について さらに深度を予測するものです これが最適となるのは― 人物がバーチャルコンテンツの 前後にいる場合です
Metalや高度なユースケースを使い レンダリングする場合 各ARFrameのセグメンテーションと 推定深度データと共に Pixel Bufferに直接アクセスできます
ピープルオクルージョンのデモを 見てみましょう
(拍手)
Xcodeには新しいRealityKit APIの サンプルプロジェクトが入ってます 簡単に見ていきましょう viewDidLoadメソッドでは 水平面を検出する AnchorEntityを作成します そしてシーンに追加します
モデルのURLを取得して ModelEntityの非同期モードAPIで ロードします
エンティティをアンカーの子として追加します
オブジェクトをドラッグするため ジェスチャーをインストールします
RealityKitのおかげで ワールドトラッキングが 自動設定されます 平面予測には ワールドトラッキングが必要だからです 平面が検出されると コンテンツは自動配置されます まだピープルオクルージョンを 使用していません 今は停止状態にしてあります これはtogglePeopleOcclusionと呼ばれ ユーザは画面タップで オンオフを切り替えられます では実装してみましょう
まず確認が必要です ワールドトラッキング設定で― personSegmentationWithDepth frameSemanticsをサポートしているか いつも確認してください Neural Engineがなく frameSegmanticをサポートしない デバイスでコードを実行した場合には 適切にケースを処理してください
その場合は “ピープルオクルージョンが―” “このデバイスでは利用不可”と メッセージを表示します
トグルを実装してみましょう frameSemanticsプロパティに対し switch文を入力します personSegmentationWithDepthが frameSemanticsの一部なら削除 ピープルオクルージョンを無効にします
他も同様に実行します personSegmentationが無効の場合 frameSemanticsを― 別のプロパティに挿入し ピープルオクルージョンをオンにします
そして更新された 構成を再実行
ARViewからセッションを取得し 更新した構成で 実行します これでtogglePeopleOcclusionの 実装が完了 ユーザが画面をタップすると 呼び出せるようにします TapGestureRecognizerは インストール済みです onTapメソッドで togglePeopleOcclusionを 呼びだします
やることはこれだけです それでは先に進んで コードをビルドし デバイスで実行しましょう
平面が検出され コンテンツが配置されています 追加したジェスチャーで 物体を動かすことができます RealityKitで影もつけられます それでは―
ピープルオクルージョン を確認してみましょう 今はオフ状態です 手を差し出しても コンテンツは手の上に見えます これはARKit 2でも同じです
オンにして再び手を伸ばします バーチャルコンテンツが 完全に覆われました (拍手) これが― ARKit 3のピープルオクルージョンです
ありがとう (拍手) もう1つARKit 3の魅力的な新機能 モーションキャプチャを説明します
モーションキャプチャは 体をトラッキングし バーチャルキャラクターに リアルタイムでマップできます 以前は特別な機器でしか できませんでした 今ではARKit 3のコードを使えば iPadやiPhoneでも使用できます
モーションキャプチャを使い 2Dと3Dの両方で 人体をトラックできます
そして人物の骨格情報を提供します
たとえばバーチャルキャラクターを 動かすことができます Neural Engine上で実行される― 機械学習アルゴリズム がこれを可能にします よってA12以降のデバイスで 利用できます まずは2Dボディディテクションを見てみましょう
オンにする方法は? bodyDetectionという frameSemanticsオプションがあります これはワールドトラッキングで サポートされており 画像や方向のトラッキングが 設定できます frameSemanticsを追加し 実行します
ではデータを見てみましょう
人物が検出された場合 全てのARFrameが detectedBodyプロパティ経由で ARBody2Dオブジェクトを提供します
このオブジェクトは2D骨格を含みます これは正常化された画像空間で 関節のランドマークを提供します 最も効率的な処理なので フラットな配列で返されます そして骨格の定義も得られます この定義のおかげで 骨格を判断する情報が入手できます 特に 手の関節が ひじの関節の子であるなど 関節の階層に関する情報も含まれます 関節の名前も提供され アクセスが簡単になります それでは見てみましょう フレーム内で検出した人物です これがARKitの2D骨格
前述したように 重要な関節や特定の関節には 名前がついています 頭や右手などです
これが2Dです 続いて 3Dモーションキャプチャを 紹介します
3Dモーションキャプチャは 3D空間で人体をトラックし 3次元の骨格情報を提供します またトラッキングされた人物の 大きさを予測する機能も持っています そしてワールド座標でアンカーされます ではAPIでの操作方法です
ARBodyTrackingConfigurationという 新しい設定を導入しました
3Dボディトラッキングもできますが なじみのある 2Dボディディテクションも使用可能です よって初期設定では frameSemanticsがオン状態 この構成は デバイスの位置と方向も追跡します そして平面検出や画像検出などの ワールドトラッキング機能を提供します AR appで ボディトラッキングを使うことで 可能性が広がります
設定方法は ボディトラッキング 構成を作成し セッションを実行 構成が 現在のデバイスで― サポート対象か APIで確認できます
ARKitの実行後 人物を検出すると ARBodyAnchorが追加されます
他のアンカー同様に セッションのコールバックで 提供されます そして他のアンカーと同じように 検出された人物の ワールド座標上の位置や方向といった transformを保持します
さらにスケール因子と 3D骨格の参照が得られます
それでは見てみましょう 2D骨格よりもはるかに複雑ですね 黄色の関節が モーションキャプチャデータとともに ユーザに送られます 白いものはリーフ関節で 骨格に追加された情報です 能動的にトラックされないため 親に対する変化は静的です もちろん各関節へのアクセスを指示し ワールド座標も取得できます さらに重要なラベルもあります 名前で照会できるAPIです これで簡単に 興味のある関節を見つけられます
この新APIは様々な優れた ユースケースに利用できます ここで皆さんの関心が高い― ユースケースを説明します 3Dキャラクターの アニメーションです
ARKitとRealityKitの組み合わせで 3D骨格に基づきモデルを 簡単にアニメーションできます 必要なのはリグ入りメッシュです サンプルAppが ホームページから ダウンロードできます もちろんツールを使って 自作もできますよ
コードでの実現が どれほど簡単か見てみましょう RealityKit APIに組み込まれています 使用するクラスは BodyTrackedEntityです
これはRealityKit APIを使った例です まずBodyタイプの AnchorEntityを作り そのアンカーをシーンに追加します 次にモデルをロードします robotというモデルです そして非同期ロードAPIを使用します completionHandlerで BodyTrackedEntityを取得します bodyAnchorに 子として追加するだけです これで完了です ARKitがセッションに ARBodyAnchorを追加します すると3D骨格の動きは リアルタイムで バーチャルモデルに適用されます ARKit 3でのモーションキャプチャは これほど簡単です
ありがとう (拍手) それでは次に フロントとバックカメラの 同時使用です
ARKitはバックカメラで ワールドトラッキング― フロントのTrueDepthカメラで フェイストラッキングができます 皆さんからの要望が 非常に多かったユーザ体験は 前後カメラの同時使用です これがARKit 3で可能になります
AR体験で カメラを同時に使用できます 要するにこれで 2つの新しいタイプのユースケースが 構築できるのです まずワールドトラッキング体験を 作ります バックカメラを使用しますが フロントカメラでキャプチャされた フェイスデータも使えます またはフェイストラッキング体験で 6DoFでデバイスの向きと 位置を使用することもできます
これはA12以降で使用可能です ご覧ください 平面予測で ワールドトラッキングを使い 平面上にフェイスメッシュを配置します フロントカメラでキャプチャした表情が リアルタイムで反映されています フロントとバックカメラを 同時に使う方法を説明します
まず ワールドトラッキングを 作ります ここで どのカメラ映像を 画面に表示するか決定します 今回の場合はバックカメラです userFaceTrackingEnabledをオンにして セッションを実行
フェイスアンカーが受け取れます これらのアンカーからの情報を 使用できます フェイスメッシュ ランドシェイプ アンカーのtransformなどです
ワールド座標を使っているので 顔はカメラの背後に位置します つまり顔を視覚化するには カメラの前に 顔を持ってくる必要があります
次はフェイストラッキングです いつもと同様に フェイストラッキングを設定 worldTrackingEnabledをtrueにします 構成を実行後は どのフレームにもアクセス可能です 例えばセッション内の didUpdate frameコールバックで
カメラの現在位置の tranformが得られます どんなユースケースでも使えます これがARKit 3の フロントとバックカメラの同時使用です この新しいAPIで 様々な優れたユースケースを 実現できます (拍手) ありがとう (拍手) 次はトーマスによる 共同セッションの説明です
(拍手) ありがとう アンドレアス こんにちは ARKitチームのトーマスです 共同セッションを説明します ARKit 2では WorldMapの保存やロードで マルチユーザ体験が作れました ユーザが同じ体験に 再びアクセスするには マップを別デバイスに 送る必要がありました これは1回限りのマップ共有体験であり ほとんどのユーザは 以降は同じ情報を共有しません
ARKit 3の共同セッションでは マップ情報をネットワーク上で 継続的に共有できます
アドホックなマルチユーザ体験を 提供することが可能になり ユーザは簡単に同じセッションに アクセスできるようになります さらに 全てのデバイスで ARAnchorsを共有することも可能です 全てのアンカーは セッションIDで識別できます この時点で内部で情報を共有しても 座標システムは独立しています 実際に見てみましょう
2人のユーザがいますね 色に ご注目 1人は特徴点を緑色で表示し もう1人は赤色で表示します
彼らが動き回ることで
環境をマッピングし 特徴点を追加します
これは彼らの 内部マップの表示です 互いのマップは知りません
動き回るにつれて 多くの特徴点を集めます
特徴点をシーン内で集め続け マッチングポイントに達すると 内部マップの色が変化する点に 注目してください 内部マップがマージされ 1つのマップを形成します これは各ユーザの相互理解と シーン理解につながります
動くほど情報を得られ― 内部で共有し続けます
これに加えARKit 3は ARParticipantAnchorを提供します これにより他のユーザの居場所が リアルタイムに分かります これが便利なのは アイコンやユーザを示すものを 表示する場合です
前述したように ARKit 3は ARAnchorを内部で共有します つまりアンカーを共有や追加すると 自動的に他のデバイスに表示されます コードを見てみましょう
アンドレアスが述べたように ARKitはRealityKitと統合されています 共同セッションは RealityKitで簡単に使用できます まずMultipeerConnectivityセッションを 設定
Multipeer Connectivityフレームワークは P2P接続を可能にする Appleのフレームワークです
次にMultipeerConnectivity セッションを arView.scene.synchronizationService に送信
最後は他のARKitと同様に ARWorldTrackingConfigurationを設定 isCollaborationEnabledをtrueにして 構成を実行 以上です
何が起こるのでしょう isCollaborationEnabledフラグを trueにすると ARKitはセッション上で 構成を実行します そしてデータ転送のため ARSessionDelegateで新メソッドを作ります RealityKitを使用する場合 システムが面倒を見ますが 別のレンダラーで使ってる場合は ネットワークを通して データを送る必要があります
このデータが AR CollaborationDataです ARKitはいつでも AR CollaborationDataを作り 他のユーザに転送します ユーザ数に制限はなく 大勢のユーザでも使用できます
この過程で― ARKitは追加の AR CollaborationDataを作成 それを他のデバイスに転送します
コードを見てみます
まずMultipeerConnectivityの設定です または任意の ネットワークフレームワークを設定して デバイスがセッションを共有していることを確認します
次にisCollaborationEnabledを trueにして ARWorldTrackingConfigurationを 有効にします そして構成を実行 この時点でデリゲートで利用可能な 新メソッドを入手し コラボレーションデータを受信します
データを受信したら 他の参加ユーザに ネットワーク上でデータを送信します
他のデバイスでデータを受信したら ARセッションを更新します 新データの認識のためです 以上です
このCollaborative Session Dataは 自動的にユーザが作った ARAnchorの情報を交換します 各アンカーは セッションIDで識別できるので デバイスやARセッションが 正しく確認できます
ARParticipantAnchorはリアルタイムで 参加者の位置を表すため 様々なユースケースで有用です
共同セッションでした (拍手) コーチングの話をします 皆さんがAR体験を作成する時 コーチングは重要です 皆さんが心からユーザを AR体験に導きたいなら必須です 簡単ではありません 自身が理解することや ユーザを 新体験に導くことは時に困難です 特定のトラッキングイベントへの 対応が必要です ユーザの動きが速すぎる場合 トラッキングが制限されたりもします
Human Interface Guidelinesで オンボーディング体験に関する ガイドラインを提供しています
今年 コーチングをUIViewに 埋め込みました
AR Coaching Viewと呼びます ビルトインのオーバーレイです ARアプリケーションに直接埋め込み 素晴らしいトラッキング体験へと 導きます
なじみ深くするため アプリケーションで 一貫したデザインを提供します 見覚えがあるでしょう AR Quick Lookや計測と同じです
この新UIオーバーレイは トラッキングイベントに基づいて 自動で切り替わります また特定のコーチング目標の 調整もできます 例を見てみましょう
ARCoachingViewには オーバーレイが複数あります オンボーディングUIでは 探している物を把握できます 体験の多くは サーフェスを必要とするので 平面検出が有効にした場合 このオーバーレイが自動で表示されます
次のオーバーレイです ユーザを動かして トラッキングを機能させ さらなる特徴を集めます
最後のオーバーレイです トラッキングのロスト時や Appがバックグラウンドになった時など 特定の環境に対し ローカライズを試みます
例を見てみましょう
ここでは ユーザにデバイスを移動させ 平面の検知をするように促します ユーザが移動して 特徴を収集すると コンテンツを配置し ビューを非アクティブにします 全て自動的に処理されます (拍手)
設定方法の説明です これは本当に簡単です 単純なUIViewなので 他のUIViewの子として設定します ARViewの子とするのが理想です
次にcoachingViewに セッションを接続して イベントに反応できるようにします または セッションプロバイダアウトレットを セッションプロバイダに接続します 例えばストーリーボードを 使っている場合などです
特定のイベントに対応する場合は デレゲートで設定します
最後に 特定の機能を無効にしたい時は 特定のコーチング目標を設定します
実際に見てみましょう
ARCoachingOverlayViewDelegateに 3つの新しいメソッドがあります うち2つがアクティーベーションと ディアクティベーションです よって皆さんが体験を 有効にしておきたいのか 無効でいいのか選ぶことができます 再ローカライズの中断リクエストに 対応させることもできます UICoachingViewはデフォルトでは UIButtonを表示し ユーザに対し 再ローカライズと セッションの再開を促します 新しいビューは とても扱いやすくなったので 一貫した体験を提供できます
次はフェイストラッキングです ARKit 1でのフェイストラッキングは 1つのみ可能でした ARKit 3では3つの顔を 同時にトラッキングできます
それに加えて― フレームを離れて 戻ってきても認識ができ 同じフェイスアンカーIDが 与えられます
(拍手) マルチフェイストラッキングは 3つの顔を同時追跡できます 永続的に フェイスアンカーIDを提供するので セッション中に確実に ユーザを認識できます 新セッションを再開すると IDは消え 新しいIDが表示されます
設定は非常に簡単です ARFaceTrackingConfigurationには 新プロパティが2つあります 1つ目は特定のデバイス上の セッションで 何個の顔が同時追跡可能かを 確認することができます 2つ目は同時に追跡する数を 設定できます
これがマルチフェイストラッキングです (拍手) ARPositionalTrackingConfiguration と呼ばれる― 新トラッキングの説明をします この新トラッキングは トラッキングのみを行う ユースケースを想定しています カメラからの入力を レンダリング不要という ユースケースがあったでしょう これはそのために作られました レンダリングレートを60ヘルツに 維持しながら キャプチャーフレームレートを 下げたり カメラの解像度を下げることで 省電力を実現できます
シーン理解の 改良について説明します
画像の検出や追跡は 以前からありました 今は同時に最大100枚の画像を 検出できるようになりました
たとえばプリントされた画像の縮尺を 検出する機能もあります アプリケーションで画像の上に コンテンツを配置する場合 コンテンツを画像サイズに合わせて 拡大縮小するケースを考えます 画像が異なるサイズで プリントされることが想定できます 自動スケール推定機能によって 画像のサイズを検出し コンテンツのスケールを調整できます
ARKitに渡す画像の品質を 実行時に確認することも可能です ARReferenceImageを 作るときに使えます
物体検出アルゴリズムも 改良しました 機械学習により 物体検出アルゴリズムを強化 より早く認識できます 安定した環境ばかりでなく あらゆる環境に対応します 多くの場合は環境内で 特定オブジェクトのスキャンが 必要でした 今はもっと柔軟です
もう1つ重要なシーン理解の分野は 平面予測です コンテンツの配置には不可欠です 機械学習で正確さを上げ 平面を速く検出できるようにしました
例を見てみましょう
機械学習により平面を拡張して― 特徴を検出するだけでなく フローをさらに進めます 特徴点がまだ得られていない場合 であっても― 両側の壁も検出します 機械学習のおかげです
(拍手) 先ほどのビデオで分かるように 我々は平面をいくつかに分類します こちらも機械学習で行われます 昨年は5種類の識別が可能でした 壁 床 天井 テーブル 座席です 今年はさらに2つ追加します ドアや窓を検知する機能です
先に述べたように 平面の識別は重要です また平面予測も同じく重要です オブジェクトを配置する際 物体はサーフェスに置くべきです 今年のレイキャスティングAPIで コンテンツの正確な配置が 簡単になりました あらゆるサーフェスの アライメントをサポートし 垂直と水平には縛られません
またレイキャストをいつでも追跡できます
ARKitでデバイスを移動すれば ARKitは環境の情報を検出します 平面を考慮して オブジェクトを配置できます
実際に見てみましょう
raycastQueryのようですね
パラメータが3つあります 一つ目は レイキャストを どこから実行するかを決定します ここではscreenCenterを使いましょう
そしてコンテンツの配置や 変換を元に戻すため 許可するものを指示してください
さらにアライメントを選びます 水平 垂直 任意に設定が可能です
次にクエリをARセッションの trackedRaycastに送ります
メソッドのコールバックが 新しいtransformに反応して レイキャストで結果を得られます そしてコンテンツや アンカーを調整できます
レイキャストが完了したら終了します
これが 今年改良した レイキャスティングの一部です
次はVisual Coherence Enhancementsです
今年は新しいARViewを用意しました これでレンダリングオプションを オンデマンドでアクティブ化できます またデバイスにおける サポートに応じて 自動的に有効化 無効化も可能です これがその例です 見たことがあると思います クアッドコプターにご注目 オブジェクトの動きは とてもリアルです
すべてが消えても オブジェクトが バーチャルだと思えません
これがVisual Coherence Enhancementsです
冒頭部分をご覧ください ボールがテーブルの上を 転がっている時に停止します
この被写界深度エフェクトは RealityKitの新機能です
AR体験は部屋の大きさに応じて 設計されます
iOSのカメラは 環境に合わせて焦点を調整し
被写界深度機能は バーチャルコンテンツと 現実の物体とが完全に一致するよう 焦点を当てるので オブジェクトは環境に溶け込みます
またカメラやオブジェクトを すばやく動かすと ぼけが発生します 通常のレンダラーで モーションブラー効果がない場合 バーチャルコンテンツが目立ちます 環境にうまく調和できません VIOカメラの動きと パラメータのおかげで モーションブラーを合成できます ビジュアルオブジェクトで応用すると 環境にも溶け込みます
これはARSCNViewと ARViewで変数があります
では もう一度見てみましょう
Visual Coherence Enhancementsに 今年さらに追加する2つAPIは HDR Environment Texturesと Camera grainです
コンテンツの配置時 リアルワールドへの 反映を望みますね HDRの使用により 明るい場所でもキャプチャできます そして 画像の明るい部分が コンテンツを鮮やかに見せます 今年のARKitは HDR Environment Texturesにより コンテンツをよりよく見せます
さらにCamera grain APIもあります
弱光の環境でARを使用すると 他のコンテンツがとても光って見えます
どんなカメラでも粒子が出ます 特に暗い場所では粒子が多くなります
CameraGrain APIは バーチャルコンテンツにも 同じ粒子パターンを適用します これでもう目立ちません
Visual Coherence Enhancementsの 一部を紹介しました
まだあります 皆さんが望む機能がありますよね
AR体験を開発する時 プロトタイプやテストは 特定の場所で行うと思います
ほとんどの時間 机に戻って開発を進めるでしょう Reality Composer Appで 体験やシーケンスを記録できます 自分の好きな場所へ行き 環境をキャプチャしながら 体験を進めることができます ARKitはセンサーデータを ビデオと一緒に
動画コンテナに保存します Xcodeにそれを 持ち込むことができます
その時点で Xcodeのスキーム設定の 新しい機能により ファイルを選択できるようになりました
ファイルを選択して Xcodeにつなげたデバイスで 実行します
するとデスクでも再生可能です プロトタイピングにも便利 AR構成のパラメータ調整や AR体験にも使えます トラッキングにも対応してます (拍手)
すばらしいことに ARKit 3は 多様なツールがそろっています 共同セッションで マルチユーザ体験や 複数のフェイストラッキング RealityKitの新コヒーレンス効果で AR Appをリアルにします ARWorldTrackingConfigurationの 視覚効果もあります モーションキャプチャでは 新しいユースケースが作れます フロントとバックカメラの 同時使用もお忘れなく もちろん既存の機能にも 改良点は多くあります 物体検出や機械学習です
そして最後に― 記録と再生のワークフローです デザインやプロトタイピングは さらに優れたものになるでしょう
ぜひサンプルを ダウンロードしてください
今後のセッションは2つ 明日と木曜に開かれます もし質問があれば その時にどうぞ お気軽に さらに詳細なセッションが2つ 1つ目はARへの導入編として ピープルオクルージョンと モーションキャプチャについて 2つ目は Collaborative AR体験についてです
残りのセッションもお楽しみに ありがとうございました (拍手)
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。