View in English

  • メニューを開く メニューを閉じる
  • Apple Developer
検索
検索を終了
  • Apple Developer
  • ニュース
  • 見つける
  • デザイン
  • 開発
  • 配信
  • サポート
  • アカウント
次の内容に検索結果を絞り込む

クイックリンク

5 クイックリンク

ビデオ

メニューを開く メニューを閉じる
  • コレクション
  • トピック
  • すべてのビデオ
  • 利用方法

WWDC19に戻る

ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。

  • 概要
  • トランスクリプト
  • ARKit 3の紹介

    ARKitはiOSのための革新的な拡張現実(AR)プラットフォームで、人が周囲の世界とつながる方法を一変させます。ARKit 3の最先端の機能と、ARKit 3がどのようにRealityKitのための革新的な基盤となるかについてご確認ください。このセッションでは、ARKitを使用してモーションキャプチャとピープルオクルージョン向けに身体の位置や動きを把握することにより、より魅力的なARを生み出す方法について説明します。複数のフェイストラッキング、共同セッションの構築、オンボーディング用のコーチングUIなどのための追加機能についてご確認ください。

    リソース

    • ARKit
    • Occluding virtual content with people
    • RealityKit
      • HDビデオ
      • SDビデオ
    • プレゼンテーションスライド(PDF)

    関連ビデオ

    WWDC20

    • ARKit 4について

    WWDC19

    • 人をARに組み込む
    • 共同のAR体験を構築する
    • AR Quick Lookの最新情報
    • Platforms State of the Union
    • Reality ComposerによるAR体験の構築
    • RealityKitでAppを構築する
    • RealityKitとReality Composerの紹介
    • USDを使用する
  • このビデオを検索

    (音楽)

    こんにちは (拍手) 皆さん 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体験についてです

    残りのセッションもお楽しみに ありがとうございました (拍手)

Developer Footer

  • ビデオ
  • WWDC19
  • ARKit 3の紹介
  • メニューを開く メニューを閉じる
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    メニューを開く メニューを閉じる
    • アクセシビリティ
    • アクセサリ
    • App Extension
    • App Store
    • オーディオとビデオ(英語)
    • 拡張現実
    • デザイン
    • 配信
    • 教育
    • フォント(英語)
    • ゲーム
    • ヘルスケアとフィットネス
    • アプリ内課金
    • ローカリゼーション
    • マップと位置情報
    • 機械学習
    • オープンソース(英語)
    • セキュリティ
    • SafariとWeb(英語)
    メニューを開く メニューを閉じる
    • 英語ドキュメント(完全版)
    • 日本語ドキュメント(一部トピック)
    • チュートリアル
    • ダウンロード(英語)
    • フォーラム(英語)
    • ビデオ
    Open Menu Close Menu
    • サポートドキュメント
    • お問い合わせ
    • バグ報告
    • システム状況(英語)
    メニューを開く メニューを閉じる
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles(英語)
    • フィードバックアシスタント
    メニューを開く メニューを閉じる
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(英語)
    • News Partner Program(英語)
    • Video Partner Program(英語)
    • セキュリティ報奨金プログラム(英語)
    • Security Research Device Program(英語)
    Open Menu Close Menu
    • Appleに相談
    • Apple Developer Center
    • App Store Awards(英語)
    • Apple Design Awards
    • Apple Developer Academy(英語)
    • WWDC
    Apple Developerアプリを入手する
    Copyright © 2025 Apple Inc. All rights reserved.
    利用規約 プライバシーポリシー 契約とガイドライン