例証の目的のために、これから、特定の例示的実施形態が、図面と共に以下でより詳細に説明される。
例示的eコマースプラットフォーム
いくつかの実施形態では、本明細書中で開示される方法は、コマースプラットフォームにおいて、またはそれに関連付けられて実装され得、コマースプラットフォームは、本明細書中で、eコマースプラットフォームと称される。したがって、eコマースプラットフォームの例が説明される。
図1は、一実施形態によるeコマースプラットフォーム100を例証している。eコマースプラットフォーム100は、商人の製品およびサービスを顧客に提供するために用いられ得る。本開示は、製品およびサービスを購入するための装置、システムおよびプロセスを用いることを構想しているが、本明細書中の説明は、単純化のため、製品に言及する。この開示全体にわたる製品への全ての言及は、物理的製品、デジタルコンテンツ、チケット、サブスクリプション、提供されるサービス等を含む製品および/またはサービスにも言及していることを理解されるべきである。
本開示は、全体にわたって、「商人」および「顧客」は、個人より多いこともあることを構想しているが、単純化のため、本明細書中の説明は、概してそのように商人および顧客に言及する。商人および顧客への全ての言及が、この開示全体にわたって、個人、会社、企業、コンピューティングエンティティ等の群に言及し、製品の営利または非営利の交換を表し得ることも理解されるべきである。さらに、本開示は、全体にわたって、「商人」および「顧客」に言及し、そのように彼らの役割を説明するが、eコマースプラットフォーム100は、eコマース環境においてユーザをより一般的にサポートすることを理解されるべきであり、この開示全体にわたる商人および顧客への全ての言及は、ユーザが、商人ユーザ(例えば、製品の売り手、小売業者、卸売業者、またはプロバイダ)、顧客ユーザ(例えば、製品の買い手、購入エージェント、または製品のユーザ)、潜在的ユーザ(例えば、閲覧しているユーザおよびまだ購入を確約していないユーザ、製品をマーケティングし販売することにおける潜在的な使用についてeコマースプラットフォーム100を評価するユーザ等)、サービスプロバイダユーザ(例えば、配送プロバイダ112、金融プロバイダ等)、会社ユーザまたは企業ユーザ(例えば、製品の購入、販売、または使用を代表する会社、事業者ユーザ、顧客関連または顧客管理の代理人等)、情報テクノロジーユーザ、コンピューティングエンティティユーザ(例えば、製品の購入、販売、または使用のためのコンピューティングボット)である場合等のユーザに言及していることも理解されるべきである。
eコマースプラットフォーム100は、商人に彼らのビジネスを管理するためのオンラインリソースおよびオンラインファシリティを提供する集中型システムを提供し得る。本明細書中で説明されるファシリティは、プラットフォーム100の一部または外部であり得る1つ以上のプロセッサにおいてコンピュータソフトウェア、モジュール、プログラムコード、および/または命令を実行する機械を通じて部分的または全体的に展開され得る。商人は、例えば、オンラインストア138を通じて、チャンネル110A-Bを通じて、物理的場所にあるPOSデバイス152(例えば、キオスク、端末、リーダ、プリンタ、3Dプリンタ等を通じて物理的な店頭または他の場所)を通じて、顧客におけるeコマース体験を実装することによって、eコマースプラットフォーム100を通じて彼らのビジネスを管理することによって、eコマースプラットフォーム100の通信ファシリティ129を通じて顧客と相互作用することによって、またはこれらの任意の組み合わせによって、顧客とのコマースを管理するために、eコマースプラットフォーム100を活用し得る。商人は、顧客との唯一のコマースプレゼンスとして、または物理的店舗(例えば、「ブリックアンドモルタル」小売店)、プラットフォーム外の商人のウェブサイト104(例えば、コマースインターネットウェブサイト、またはeコマースプラットフォームとは別個で商人によって、またはその代理でサポートされた他のインターネットもしくはウェブプロパティまたはアセット)を通じて等、他の商人コマースファシリティと共にeコマースプラットフォーム100を活用し得る。しかしながら、これらの「他の」商人コマースファシリティも、eコマースプラットフォーム内に統合され得る(例えば、商人の物理的店舗内のPOSデバイス152がeコマースプラットフォーム100につながれる場合、プラットフォーム外の商人のウェブサイト104からオンラインストア138にコンテンツをつなぐ「買うボタン」を通じて、プラットフォーム外の商人のウェブサイト104がeコマースプラットフォーム100内に結び付けられている場合等)。
オンラインストア138は、複数の仮想的店頭を備えているマルチテナントファシリティを表し得る。実施形態では、商人は、例えば商人デバイス102(例えば、コンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス等)を通じて、オンラインストア138内の1つ以上の店頭を管理し、数多くの異なるチャンネル110A-B(例えば、オンラインストア138、POSデバイス152を通じた物理的店頭、(ソーシャルネットワーク、ソーシャルメディアページ、ソーシャルメディアメッセージシステム等のウェブサイトまたはソーシャルメディアチャンネルに統合された電子的買うボタンを通じた電子的市場等)を通じて製品を顧客に提供し得る。商人は、チャンネル110A-Bを横断して販売し、そして、eコマースプラットフォーム100を通じて彼らの販売を管理し得、チャンネル110Aは、eコマースプラットフォーム100の内部に、またはeコマースチャンネル110Bの外部から提供され得る。商人は、例えば彼らの物理的小売店で販売し、ポップアップで販売し、卸売りを通して販売し、電話で販売し、そして、eコマースプラットフォーム100を通じて彼らの販売を管理し得る。商人は、これらの全てまたは任意の組み合わせを使用し、POSデバイス152を活用している物理的店頭を通してビジネスを維持し、オンラインストア138を通じて仮想的店頭を維持し、顧客相互作用に影響を与えるために通信ファシリティ129を活用し、販売の利益を向上させるために分析132を活用し得る。この開示全体にわたって、オンラインストア138および店頭という語は、同義的に、eコマースプラットフォーム100を通じた商人のオンラインeコマース提供主体を指すために用いられ得、オンラインストア138は、(例えば、複数の商人のための)eコマースプラットフォーム100によってサポートされた店頭のマルチテナント集合体、または個々の商人の店頭(例えば、商人のオンラインストア)を指し得る。
いくつかの実施形態では、顧客は、顧客デバイス150(例えば、コンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス等)、POSデバイス152(例えば、小売りデバイス、キオスク、自動勘定システム等)、または業界で知られている任意の他のコマースインタフェースデバイスを通じて相互作用し得る。eコマースプラットフォーム100は、オンラインストア138を通じて、物理的場所(例えば、商人の店頭または他の場所)にあるPOSデバイス152を通じて、顧客に到達すること、電気通信ファシリティ129を介した顧客との対話を通じて顧客とのコマースを促進すること等を可能とし得、顧客に到達し顧客と相互作用するために利用可能な実通路または仮想通路に関して、顧客に到達し商人サービスを促進するためのシステムを提供する。
いくつかの実施形態では、本明細書中でさらに説明されるように、eコマースプラットフォーム100は、プロセッサおよびメモリを含む処理ファシリティを通じて実装され得、処理ファシリティは、一連の命令を記憶しており、命令が実行されたとき、eコマースプラットフォーム100は、本明細書で説明されるようにeコマースを実施し、機能をサポートする。処理ファシリティは、サーバ、クライアント、ネットワークインフラストラクチャ、モバイルコンピューティングプラットフォーム、クラウドコンピューティングプラットフォーム、固定コンピューティングプラットフォーム、または他のコンピューティングプラットフォームの一部であり、eコマースプラットフォーム100の電子コンポーネント、商人デバイス102、支払いゲートウェイ106、アプリケーション開発者、チャンネル110A-B、配送プロバイダ112、顧客デバイス150、販売時点管理デバイス152等の間の電子的接続および通信を提供し得る。eコマースプラットフォーム100は、ソフトウェアがサブスクリプションベースでライセンスを与えられ、一元的にホストされた(たとえば、Webブラウザまたは他のアプリケーションを介してクライアント(例えば、シンクライアント)を用いてユーザによってアクセスされる、POSデバイスによってアクセスされる等)ソフトウェアおよび送達モデル等における、クラウドコンピューティングサービス、ソフトウェア・アズ・ア・サービス(SaaS)、インフラストラクチャ・アズ・ア・サービス(IaaS)、プラットフォーム・アズ・ア・サービス(PaaS)、デスクトップ・アズ・ア・サービス(DaaS)、管理型ソフトウェア・アズ・ア・サービス(MSaaS)、モバイル・バックエンド・アズ・ア・サービス(MBaaS)、情報テクノロジ管理・アズ・ア・サービス(ITMaaS)等として実装され得る。いくつかの実施形態では、eコマースプラットフォーム100の要素は、種々のプラットフォーム、およびiOS、Android等のオペレーティングシステムにおいて、ならびにWeb上等で動作するように実装され得る(例えば、アドミニストレータ114は、多くの場合、iOS、Android用の所与のオンラインストア、およびWebにおいて実装され、各々は同様の機能を有する)。
いくつかの実施形態では、オンラインストア138は、eコマースプラットフォーム100のサーバによって提供されるウェブページを通じて顧客デバイス150にサービス提供され得る。サーバは、ブラウザまたは顧客デバイス150にインストールされた他のアプリケーションからウェブページの要求を受信し得、ブラウザ(または他のアプリケーション)は、IPアドレスを通じてサーバに接続し、IPアドレスは、ドメイン名を翻訳することによって取得される。これに対し、サーバは、要求されたウェブページを送り返す。ウェブページは、Hypertext Markup Language(HTML)、テンプレート言語、JavaScript(登録商標)またはこれらの任意の組み合わせで記述されているか、またはそれらを含み得る。例えば、HTMLは、ウェブページのレイアウト、フォーマット、およびコンテンツ等のウェブページに関する静的情報を記述するコンピュータ言語である。ウェブサイトの設計者および開発者は、テンプレート言語を用いて、複数のページで同一である静的コンテンツと、1つのページから次のページへと変化する動的コンテンツとを組み合わせるウェブページを構築し得る。テンプレート言語は、オンラインストアからのデータでページを動的に追加する一方で、ウェブページのレイアウトを画定する静的要素を再利用することを可能とし得る。静的要素は、HTMLで書かれ得、動的要素は、テンプレート言語で書かれ得る。ファイル内のテンプレート言語要素は、プレースホルダーとして機能し、それによって、ファイル内のコードは、コンパイルされて顧客デバイス150に送られ、その後、テンプレート言語は、テーマがインストールされるとき等に、オンラインストア138からのデータによって置き換えられる。テンプレートおよびテーマは、タグ、オブジェクト、およびフィルタを考慮し得る。そして、クライアントデバイスウェブブラウザ(または他のアプリケーション)は、それに応じて、ページをレンダリングする。
いくつかの実施形態では、オンラインストア138は、eコマースプラットフォーム100によって顧客に提供され得、顧客は、種々の取り扱い製品を閲覧および購入し得る(例えば、製品をカートに追加する、買うボタンを通じて即購入する等)。オンラインストア138は、製品が(直接商人から購入するのではなく)eコマースプラットフォーム100を通じて提供されていることを顧客が必ずしも気付かない透明な手法で顧客に提供され得る。商人は、商人が構成可能なドメイン名、カスタマイズ可能なHTMLテーマ等を用いて、彼らのオンラインストア138をカスタマイズし得る。商人は、テーマシステムを通じて彼らのウェブサイトの見た目および雰囲気をカスタマイズし得、例えば、商人は、オンラインストア138の製品のヒエラルキー内に示される同一の下位の製品およびビジネスデータを示しながらオンラインストアのテーマを変更することによって、彼らのオンラインストアの見た目および雰囲気を選択および変更し得る。テーマは、テーマエディタおよびデザインインタフェースを通じてさらにカスタマイズされ得、デザインインタフェースは、ユーザが彼らのウェブサイトのデザインを柔軟にカスタマイズすることを可能にする。テーマは、特有の色、フォント、および予め構築されているレイアウトスキーム等の側面を変更するテーマ特有の設定を用いることによってもカスタマイズされ得る。オンラインストアは、ウェブサイトコンテンツのためのコンテンツ管理システムを実装し得る。商人は、ブログ投稿または静的ページを作り、ブログ、記事等を通じて彼らのオンラインストア138にそれらを発信するのみならず、ナビゲーションメニューも構成し得る。商人は、システムによる格納(例えば、データ134)等のために、画像(例えば、製品の画像)、ビデオ、コンテンツ、データ等をeコマースプラットフォーム100にアップロードし得る。いくつかの実施形態では、eコマースプラットフォーム100は、画像をサイズ変更し、画像を製品に関連付け、画像にテキストを追加し関連付け、新たな製品バリエーションの画像を追加し、画像を保護するため等の機能を提供し得る。
本明細書中で説明されるように、eコマースプラットフォーム100は、オンラインストア138、電話を介してのみならず、本明細書中で説明されるような物理的POSデバイス152も含む多くの異なるチャンネル110A-Bを通じて、製品の取引ファシリティを商人に提供し得る。eコマースプラットフォーム100は、ビジネスサポートサービス116、アドミニストレータ114等を含み、それらは、彼らのオンラインストアに関連付けられたドメインサービス118、顧客との取引を促進するための支払いサービス120、購入された製品の配送オプションを顧客に提供するための配送サービス122、製品の保護および信頼性に関連付けられたリスクおよび保証サービス124、商人の請求等を提供する等、オンラインビジネスを営業することに関連付けられ得る。サービス116は、支払処理のための支払いゲートウェイ106、製品の配送を捗らせるための配送プロバイダ112等を通じて、eコマースプラットフォーム100を介してまたは外部ファシリティに関連付けられて提供され得る。
いくつかの実施形態では、eコマースプラットフォーム100は、リアルタイムの最新情報、追跡、自動的レート計算、バルクオーダ―準備、ラベル印刷等を商人に提供する等、統合型配送サービス122を(例えば、eコマースプラットフォーム配送ファシリティを通じて、または第三の配送キャリアを通じて)提供し得る。
図2は、アドミニストレータ114のホームページに関する非限定的な実施形態を描写し、日ごとのタスク、店舗の現在の活動、および商人が彼らのビジネスを構築するために取るべき次のステップについての情報を示し得る。いくつかの実施形態では、商人は、商人デバイス102を介して(デスクトップコンピュータまたはモバイルデバイスから等)アドミニストレータ114にログインし、商人のオンラインストア138の局面(オンラインストア138の現在の活動を視認すること、オンラインストア138のカタログを更新すること、注文、現在の訪問者の活動、および全体の注文活動等を管理すること等)を管理し得る。いくつかの実施形態では、商人は、例えば図2に示されるようなサイドバーを用いることによって、アドミニストレータ114の異なるセクションにアクセスすることが可能であり得る。アドミニストレータ114のセクションは、注文、製品、顧客、取り扱い報告および割引を含む商人のビジネスの核となる局面にアクセスし、それを管理するための種々のインタフェースを含み得る。アドミニストレータ114は、店舗のための販売チャンネルを管理するためのインタフェースも含み得、インタフェースは、オンラインストア、店舗にアクセスするために顧客に利用可能にされたモバイルアプリケーション(単数または複数)(モバイルアプリ)、POSデバイス、および/または買うボタンを含む。アドミニストレータ114は、商人のアカウントにインストールされたアプリケーション(アプリ)を管理するためのインタフェース(商人のオンラインストア138およびアカウントに適用される設定)も含み得る。商人は、製品、ページ、または他の情報を見つけるために検索バーを用い得る。商人が使用しているデバイス102またはソフトウェアアプリケーションに依存して、商人は、アドミニストレータ114を通じて異なる機能を可能とされ得る。例えば、商人がブラウザからアドミニストレータ114にログインする場合、彼らは、彼らのオンラインストア138の全ての局面を管理することが可能であり得る。商人が彼らのモバイルデバイスから(例えばモバイルアプリケーションを介して)ログインする場合、彼らは、オンラインストア138の現在の活動を眺める、オンラインストア138のカタログを更新する、注文を管理する等、彼らのオンラインストア138の側面の全てまたは一部を視認することが可能であり得る。
コマースおよびオンラインストア138への訪問者に関するより詳細な情報は、商人のビジネス全体に関する売上概要、活動している販売チャンネルに関する特定の売上および従業員データ等を表示する等、獲得レポートまたはメトリクスを通じて見られ得る。レポートは、獲得レポート、行動レポート、顧客レポート、金融レポート、マーケティングレポート、売上レポート、カスタムレポート等を含み得る。商人は、ドロップダウンメニュー等を用いることによって、様々な期間(例えば、日、週、月等)から様々なチャンネル110A-Bに関する売上データを見ることが可能であり得る。概観ダッシュボードも、店舗の売上および契約データのより詳細な図を望む商人に提供され得る。ホームメトリクスセクションにおける活動フィードは、商人のアカウントにおける活動の概観を例証するために提供され得る。例えば、「全ての現在の活動を見る」ダッシュボードボタンをクリックすることによって、商人は、彼らのアカウントにおける現在の活動のより長いフィードを見ることが可能であり得る。ホームページは、例えばアカウントステータス、成長、現在の顧客の活動等に基づいて、商人のオンラインストア138についての通知を示し得る。通知は、支払いを取り込む、履行された注文をマーキングする、完了した注文をアーカイブする等のプロセスを通じたナビゲーションで商人を支援するために提供され得る。
eコマースプラットフォーム100は、商人、顧客、商人デバイス102、顧客デバイス150、POSデバイス152等の間の通信相互作用を収集し分析するための電子メッセージ集約ファシリティを活用する等、電子通信を提供しマーケティングをするための通信ファシリティ129および関連付けられた商人インタフェースを提供し、製品の販売を提供するポテンシャルを増加させる等のために通信を集約し分析し得る。例えば、顧客は、製品に関連する質問を有し得、質問は、顧客と商人(または商人を代理する自動化されたプロセッサベースの代理人)との間の対話を生み出し得、通信ファシリティ129は、相互作用を分析し、販売に関する利益をどのように向上するかについて商人に分析を提供する。
eコマースプラットフォーム100は、例えばセキュアカードサーバ環境を通じて、顧客との安全な金融取引のための金融ファシリティ120を提供し得る。eコマースプラットフォーム100は、例えば、支払いカードインダストリーデータ(PCI)環境(例えば、カードサーバ)等にクレジットカード情報を記憶し得、金融情報を照合し、商人に請求書を送り、(例えば、現金を用いているとき)eコマースプラットフォーム100金融機関口座と商人の銀行口座との間の自動決済(ACH)振替を実施する。これらのシステムは、Sarbanes―Oxley Act(SOX)コンプライアンス、および、それらの開発および動作において要求される高いレベルの注意を有し得る。金融ファシリティ120は、例えば資金の貸し出し(例えば、貸出ファンド、現金前貸し等)および保険の付保を通して、商人に金融サポートも提供し得る。加えて、eコマースプラットフォーム100は、マーケティングおよびパートナーサービスのセットを提供し、eコマースプラットフォーム100とパートナーとの間の関係を制御し得る。それらは、新たな商人をeコマースプラットフォーム100に接続し、搭載し得る。これらのサービスは、商人がeコマースプラットフォーム100を横断して作業することを容易にすることによって商人の成長を可能とし得る。これらのサービスを通じて、商人は、eコマースプラットフォーム100を介したヘルプファシリティを提供され得る。
いくつかの実施形態では、オンラインストア138は、数多くの独立して運営される店頭をサポートし、毎日の各種の製品に関する大量の取引データを処理し得る。取引データは、顧客連絡先情報、請求情報、配送情報、購入された製品の情報、与えられたサービスの情報、およびeコマースプラットフォーム100を通したビジネスに関連付けられた任意の他の情報を含み得る。いくつかの実施形態では、eコマースプラットフォーム100は、データファシリティ134内にこのデータを記憶し得る。取引データは、分析132を生み出すために処理され得、ひいては、商人または第三のコマースエンティティに提供されて、顧客の傾向、マーケティングおよび売上の洞察、売上を向上するための推薦、顧客行動の評価、マーケティングおよび売上のモデル化、詐欺の傾向等を提供し、オンラインコマースに関連付けられ、レポートを通してダッシュボードインタフェースで提供され得る。eコマースプラットフォーム100は、ビジネスおよび商人の取引についての情報を記憶し得、データファシリティ134は、データを強化し、データに貢献し、データを精錬し、データを抽出する多くの手段を有し得、収集されたデータは、経時的にeコマースプラットフォーム100の局面の改善を可能とし得る。
図1を再度参照すると、いくつかの実施形態では、eコマースプラットフォーム100は、コンテンツ管理、タスク自動化、およびデータ管理のためのコマース管理エンジン136で構成され、(例えば、製品、在庫、顧客、注文、提携、供給者、レポート、金融、リスクおよび詐欺等に関連付けられた)複数のオンラインストア138のサポートおよびサービスを可能とし得るが、eコマースプラットフォーム100は、アプリケーション142A-Bを通して拡張可能であり得、アプリケーション142A-Bは、多種多様な商人オンラインストア、POSデバイス、製品、およびサービスに適応するために要求されるより高い柔軟性およびカスタム処理を可能にし、アプリケーション142Aが、eコマースプラットフォーム100の内部に提供され得、または、アプリケーション142Bが、eコマースプラットフォーム100の外部に提供され得る。いくつかの実施形態では、アプリケーション142Aは、プラットフォーム100を提供する同じパーティによって、または異なるパーティによって提供され得る。いくつかの実施形態では、アプリケーション142Bは、プラットフォーム100を提供する同じパーティによって、または異なるパーティによって提供され得る。コマース管理エンジン136は、例えば顧客識別子、注文識別子、オンラインストア識別子等による機能およびデータの分配(例えば、分割)を通じた柔軟性およびスケーラビリティのために構成され得る。コマース管理エンジン136は、店舗特有のビジネスロジックに適応し得、いくつかの実施形態では、アドミニストレータ114および/またはオンラインストア138を統合し得る。
コマース管理エンジン136は、eコマースプラットフォーム100のベースまたは「核となる」機能を含み、そのため、本明細書中で説明されるように、オンラインストア138をサポートする全ての機能が、含めるのに適切であるわけではないこともある。例えば、コマース管理エンジン136内に含まれる機能は、「核となる」機能性のしきい値を超える必要があり得、「核となる」機能性のしきい値を通して、機能がコマース体験にとっての核であること(例えば、横断チャンネル、アドミニストレータインタフェース、商人の場所、産業、製品タイプ等のオンラインストア活動の大部分の共通性)、機能がオンラインストア138を横断して再利用可能であること(例えば核となる機能を横断して再利用/修正され得る機能)、同時に単一のオンラインストア138のコンテキストに限定されること(例えば、オンラインストア「分離原理」を実装し、この原理において、コードは、同時に複数のオンラインストア138と相互作用することが可能であるべきではなく、分離原理は、オンラインストア138が互いのデータにアクセスできないことを保証する)、取引仕事量を提供すること等が決定され得る。多くの要求される特徴が、コマース管理エンジン136によって直接提供されるか、または、アプリケーション142A-Bおよびチャンネル110A-Bへのアプリケーションプログラミングインタフェース(API)接続を通じたその拡張等によってインタフェース140A-Bを通して可能とされる(インタフェース140Aは、eコマースプラットフォーム100内のアプリケーション142Aおよび/またはチャンネル110Aに提供され、または、インタフェース140Bは、eコマースプラットフォーム100の外部のアプリケーション142Bおよび/またはチャンネル110Bに提供され得る)かのいずれかである場合、どの機能が実装されるかということの制御をメンテナンスすることが、コマース管理エンジン136が応答可能であり続けることを可能とし得る。概して、プラットフォーム100は、(拡張機能、コネクタ、API等であり得る)インタフェース140A-Bを含み得、インタフェース140A-Bは、他のプラットフォーム、システム、ソフトウェア、データソース、コード等への接続およびそれらとの通信を促進する。そのようなインタフェース140A-Bは、さらに概略的に、コマース管理エンジン136のインタフェース140A、またはプラットフォーム100のインタフェース140Bであり得る。ケアがコマース管理エンジン136内の規制機能に与えられない場合、低速データベースまたは致命的ではないバックエンドの破壊を通じたインフラストラクチャの劣化を通して、オフラインになっているデータセンター等による致命的なインフラストラクチャの破壊を通して、新たなコードが展開され、それが予期されるより実行するために長い時間を要することを通して、応答性が損なわれ得る。これらの状況を防ぐためにまたは軽減させるために、コマース管理エンジン136は、例えばタイムアウト、クエリ、劣化を防ぐバックプレッシャー等を活用する構成を通じて応答性を維持するように構成され得る。
オンラインストアデータを分離することは、オンラインストア138間および商人間のデータプライバシーを維持するために重要であるが、例えば注文リスク査定システムまたはプラットフォーム支払いファシリティ(注文リスク査定システムおよびプラットフォーム支払いファシリティの両方は、うまく実施するために複数のオンラインストア138からの情報を要求する)において相互店舗データを収集し使用する理由が存在し得る。いくつかの実施形態では、分離原理に違反することなく、これらのコンポーネントをコマース管理エンジン136の外部に移動させること、およびeコマースプラットフォーム100内のそれら自身のインフラストラクチャ内に移動させることが好まれ得る。
いくつかの実施形態では、eコマースプラットフォーム100は、プラットフォーム支払いファシリティ120を提供し得、プラットフォーム支払いファシリティ120は、コマース管理エンジン136からのデータを活用するが分離原理に違反しないように外部に配置され得るコンポーネントの別の例である。プラットフォーム支払いファシリティ120は、オンラインストア138と相互作用する顧客が、コマース管理エンジン136によって安全に記憶された彼らの支払い情報を有することを可能とし、それによって、彼らは一度しか支払い情報を入力する必要がない。顧客が異なるオンラインストア138を訪問するとき、彼らが以前にその店舗に行ったことがない場合であっても、プラットフォーム支払いファシリティ120は、彼らの情報を回収し、より迅速で正確な勘定を可能にする。これは、クロスプラットフォームネットワーク効果を提供し得、例えば顧客の購入に関する使用の容易さのおかげでより頻繁に勘定をするより多くの顧客が存在するので、eコマースプラットフォーム100は、より多くの商人が参加するにつれてその商人により有用となる。このネットワークの効果を最大化するために、所与の顧客に関する支払い情報は、オンラインストアの勘定から回収可能であり得、情報がオンラインストア138にわたって全体的に利用可能となることを可能にする。各オンラインストア138が任意の他のオンラインストア138に接続してそこに記憶された支払い情報を回収することが可能であることは、困難であり、誤りを起こしやすい。結果的に、プラットフォーム支払いファシリティは、コマース管理エンジン136の外部で実装され得る。
コマース管理エンジン136内に含まれていない機能に関して、アプリケーション142A-Bは、eコマースプラットフォーム100に特徴を追加する手段を提供する。アプリケーション142A-Bは、例えば、商人のオンラインストア138にあるデータにアクセスし、これを修正し、アドミニストレータ114を通じてタスクを実施し、ユーザインタフェースを通じて商人のための新たなフローを創出し得る(例えば、それは、拡張機能/APIを通じて示される)。商人は、アプリケーション検索、推薦およびサポート128を通じてアプリケーション142A-Bを発見しインストールすることが可能とされ得る。いくつかの実施形態では、核となる製品、核となる拡張ポイント、アプリケーション、およびアドミニストレータ114が、共に作業するように開発され得る。例えば、アプリケーション拡張ポイントは、アドミニストレータ114の内部に構築され得、それによって、核となる特徴が、アプリケーションによって拡張され得、アプリケーションは、拡張機能を通じて機能を商人に送達し得る。
いくつかの実施形態では、アプリケーション142A-Bは、インタフェース140A-Bを通じて機能を商人に送達し得、例えば、アプリケーション142A-Bは、取引データを商人に示すことが可能であり(例えば、アプリ:「エンジン、内臓アプリSDKを用いてモバイル管理およびウェブ管理内の私のアプリデータを示して」)、および/またはコマース管理エンジン136は、要求された作業を実施することをアプリケーションに依頼することが可能である(エンジン:「アプリ、この勘定に関する地方税計算を私に提示して」)。
アプリケーション142A-Bは、例えば、オンラインストア138およびチャンネル110A-Bをサポートし、商人サポートを提供し、他のサービスと統合し得る。コマース管理エンジン136がオンラインストア138にサービスの基盤を提供し得る場合、アプリケーション142A-Bは、商人が特定のニーズおよび時には独自のニーズを満足させるための手段を提供し得る。異なる商人は、異なるニーズを有するため、異なるアプリケーション142A-Bから恩恵を受け得る。アプリケーション142A-Bは、アプリケーション分類(カテゴリ)の開発を通じてeコマースプラットフォーム100を通してより見出され得、アプリケーション分類は、例えば、検索、ランキング、および推薦モデルをサポートするアプリケーションデータサービスを通じて、およびアプリケーションストア、ホーム情報カード、アプリケーション設定ページ等のアプリケーション発見インタフェースを通じて、アプリケーションが商人のために実施する機能のタイプによってアプリケーションがタグ付けされることを可能にする。
アプリケーション142A-Bは、インタフェース140A-Bを通じてコマース管理エンジン136に接続され得、例えば、APIを活用して、(REST、GraphQL等を通じて)コマース管理エンジン136を通じてまたはその中で利用可能な機能およびデータをアプリケーションの機能に公開する。例えば、eコマースプラットフォーム100は、アプリケーション拡張機能、プロセスフローサービス、開発者向けリソース等を含む商人およびパートナー向けの製品およびサービスにAPIインタフェース140A-Bを提供し得る。顧客がより頻繁にモバイルデバイスをショッピングのために用いることによって、モバイル使用に関連しているアプリケーション142A-Bは、関連する増大するコマーストラフィックをサポートするためのAPIのより拡張的な使用からの恩恵を受け得る。(例えばアプリケーション開発のために提供されるような)アプリケーションおよびAPIの使用を通じて提供される柔軟性は、eコマースプラットフォーム100が、コマース管理エンジン136に継続的な変更を要求することなく商人(および内部APIを通じた内部開発者)の新しい独自のニーズにより良く適応することを可能にし、従って、商人が必要とするものを商人が必要とするときに商人に提供する。例えば、配送サービス122は、配送またはキャリアサービスAPIを通じてコマース管理エンジン136と統合され得、従って、eコマースプラットフォーム100がコマース管理エンジン136で実行しているコードに直接的に影響を及ぼすことなく、配送サービス機能を提供することを可能にする。
バックオフィス動作に関連する問題(商人向けのアプリケーション142A-B)およびオンラインストア138における問題(顧客向けのアプリケーション142A-B)等、多くの商人の問題は、パートナーがアプリケーション開発を通じて商人ワークフローを改善および拡張することによって解決され得る。ビジネスをする一部として、多くの商人は、バックオフィスタスク(例えば、販促、在庫、割引、履行等)およびオンラインストアタスク(例えば、彼らのオンラインストアショップに関連したアプリケーション、フラッシュセール、新製品の注文等)のために毎日モバイルおよびウェブ関連のアプリケーションを用い、アプリケーション142A-Bは、拡張機能/API140A-Bを通じて、急速に成長する市場において製品を容易に見て購入することを助ける。いくつかの実施形態では、パートナー、アプリケーション開発者、内部アプリケーションファシリティ等は、例えばアプリケーションインタフェースをサンドボックスするアドミニストレータ114内のフレームを創出することを通じて、ソフトウェア開発キット(SDK)を提供され得る。いくつかの実施形態では、アドミニストレータ114は、フレーム内で発生することを制御せず、発生したことに気付かないこともある。SDKは、ユーザインタフェースキットと共に用いられ、例えばコマース管理エンジン136の拡張機能として機能するeコマースプラットフォーム100のルックアンドフィールを模したインタフェースを生成し得る。
APIを活用するアプリケーション142A-Bは、要求されたデータをプルし得るが、それらは、更新が発生するときにデータがプッシュされる必要もある。例えば顧客創出、製品変更、または注文取消等の更新イベントは、サブスクリプションモデルにおいて実装され得る。更新イベントは、ローカルデータベースを同期させること、外部統合パートナーに通知すること等のためにコマース管理エンジン136の変更された状態に関して必要とされる更新を商人に提供し得る。更新イベントは、例えば更新イベントサブスクリプションを通じて更新を確認するためにコマース管理エンジン136を常にポーリングする必要なく、この機能を可能とし得る。いくつかの実施形態では、更新イベントサブスクリプションに関連する変更が発生すると、コマース管理エンジン136は、予め定義されたコールバックURL等に要求を送り得る。この要求の本体は、オブジェクトの新たな状態と、アクションまたはイベントの記述とを含み得る。更新イベントサブスクリプションは、アドミニストレータファシリティ114において手動で、または(例えばAPI140A-Bを介して)自動で創出され得る。いくつかの実施形態では、更新イベントは、待ち行列に入れられ、それらをトリガした状態変更から非同期で処理され得、それは、リアルタイムで分配されない更新イベント通知を生み出し得る。
いくつかの実施形態では、eコマースプラットフォーム100は、アプリケーション検索、推薦およびサポート128を提供し得る。アプリケーション検索、推薦およびサポート128は、アプリケーションの開発において支援するための開発者製品およびツールと、(例えば、開発インタフェースを開発者に提供するため、アドミニストレータのアプリケーションの管理のため、商人のアプリケーションのカスタマイズのため等の)アプリケーションダッシュボードと、(例えば、インストールされる前に基準が満たされなければならない公衆アクセスのため、または商人による私的な使用のため等の公共アクセスのための)アプリケーション142A-Bへのアクセスを提供することに関する許可をインストールおよび提供するためのファシリティと、商人のオンラインストア138のニーズを満足させるアプリケーション142A-Bを商人が検索することを容易にするためのアプリケーション検索と、商人がどのようにして彼らのオンラインストア138を通じたユーザ体験を改善し得るかについての提案を商人に提供するためのアプリケーション推薦と、コマース管理エンジン136内の核となるアプリケーション能力の記述と等を含み得る。これらのサポートファシリティは、任意のエンティティによって実施されるアプリケーション開発によって活用され得、任意のエンティティは、彼ら自身のアプリケーション142A-Bを開発する商人、アプリケーション142A-Bを開発する第三開発者(例えば、アプリケーション142A-Bは、商人によって契約され、公衆に提供するために独自で開発され、eコマースプラットフォーム100に関連付けられた使用のために契約される)、またはeコマースプラットフォーム100に関連付けられた内部パーソナルリソースによって開発されるアプリケーション142Aもしくは142Bを含む。いくつかの実施形態では、アプリケーション142A-Bは、例えば、アプリケーションに(例えばAPIを通して)リンクするために、アプリケーションを検索するために、アプリケーション推薦を作成するために、アプリケーション識別子(ID)を割り当てられ得る。
コマース管理エンジン136は、eコマースプラットフォーム100のベース機能を含み、これらの機能をAPI140A-Bを通じてアプリケーション142A-Bに公開し得る。API140A-Bは、アプリケーション開発を通じて構築されたアプリケーションの異なるタイプを可能とし得る。アプリケーション142A-Bは、商人の多様なニーズを満足させることを可能とし得るが、大まかに3つのカテゴリにグループに分けられ得る:顧客向けアプリケーション、商人向けアプリケーション、統合アプリケーション等。顧客向けアプリケーション142A-Bは、オンラインストア138またはチャンネル110A-Bを含み得、オンラインストア138またはチャンネル110A-Bは、商人が製品をリストアップしそれらを購入してもらうことが可能な場所(例えば、オンラインストア、フラッシュセールのためのアプリケーション(例えば、商人製品または第三者リソースによる突発的なセールス機会からのもの)、モバイルストアアプリケーション、ソーシャルメディアチャンネル、卸売り購入を提供するためのアプリケーション等)である。商人向けアプリケーション142A-Bは、商人が、(例えば、ウェブもしくはウェブサイト、またはモバイルデバイスに関連するアプリケーションを通じて)彼らのオンラインストア138を管理すること、彼らのビジネスを(例えばPOSデバイスに関連するアプリケーションを通じて)営業すること、(例えば配送(例えば置き配)に関連するアプリケーション、自動化されたエージェントの使用、プロセスフロー開発および改善の使用を通じて)彼らのビジネスを成長させること等を可能にするアプリケーションを含む。統合アプリケーションは、配送プロバイダ112および支払いゲートウェイ等のビジネスの営業に関する有用な統合を提供するアプリケーションを含み得る。
いくつかの実施形態では、アプリケーション開発者は、アプリケーションプロキシを用いて、外部の場所からデータをフェッチし、それをオンラインストア138のページに表示し得る。これらのプロキシページにおけるコンテンツは、例えば動的であり、更新されることが可能であり得る。アプリケーションプロキシは、画像ギャラリ、統計、カスタムフォーム、および他の種類の動的コンテンツを表示するために有用であり得る。eコマースプラットフォーム100の核となるアプリケーション構造は、アプリケーション142A-Bで構築される増加した数の商人体験を可能とし、それによって、コマース管理エンジン136は、より一般的に活用されるコマースのビジネスロジックに焦点を当て続けることができる。
eコマースプラットフォーム100は、商人が柔軟で透明性のある態様で顧客に接触することを可能にする洗練されたシステムアーキテクチャを通じてオンラインショッピング体験を提供する。典型的な顧客体験は、例示的な購入ワークフローの実施形態を通じてより理解され得、ワークフローにおいて、顧客は、チャンネル110A-Bにある商人の製品を閲覧し、彼らが買いたい物を彼らのカートに追加し、勘定に進み、彼らのカートのコンテンツの支払いをし、商人への注文の創出をもたらす。そして、商人は、注文をレビューおよび履行(または取消)し得る。そして、製品は、顧客に送達される。顧客が満足しない場合、彼らは製品を商人に返却し得る。
例示的な実施形態では、顧客は、チャンネル110A-Bにある商人の製品を閲覧し得る。チャンネル110A-Bは、顧客が製品を見て買い得る場所である。いくつかの実施形態では、チャンネル110A-Bは、アプリケーション142A-B(可能な例外は、コマース管理エンジン136内に統合されるオンラインストア138である)としてモデル化され得る。販促コンポーネントは、商人が、彼らが販売したい物および彼らがそれを販売する場所を説明することを可能とし得る。製品とチャンネルとの間の関連付けは、製品出版物としてモデル化され、例えば製品リストアップAPIを介してチャンネルアプリケーションによってアクセスされ得る。製品は、サイズおよび色、ならびに、極小かつ緑であるバリエーション、または大きいサイズかつ青であるバリエーション等、利用可能なオプションを全てのオプションの特定の組み合わせに拡大する多くのバリエーション等の多くのオプションを有し得る。製品は、少なくとも1つのバリエーション(例えば、「デフォルトバリエーション」は、どのオプションもない製品として創出される)を有し得る。閲覧および管理を促進するために、製品は、例えば、コレクションにグルーピングされ、製品識別子(例えば、在庫品維持ユニット(SKU))等を提供され得る。製品のコレクションは、例えば手動で製品を1つのコレクションに分類すること(例えば、カスタムコレクション)か、または自動的な分類(例えばスマートコレクション)のためのルールセット等を構築することのいずれかによって構築され得る。製品は、例えば仮想現実または拡張現実インタフェースを通じて、2D画像、3D画像、回転図画像として閲覧され得る。
いくつかの実施形態では、顧客は、彼らが買いたい物を彼らのカートに追加し得る(代替となる実施形態では、製品は、本明細書中で説明されるように、例えば買うボタンを通じて直接購入され得る)。顧客は、彼らのショッピングカートに製品バリエーションを追加し得る。ショッピングカートモデルは、チャンネル特有であり得る。オンラインストア138カートは、複数のカートラインアイテムから構成され得、各カートラインアイテムは、製品バリエーションに関する量を追跡する。商人は、カートスクリプトを用いて、顧客のカートのコンテンツに基づいて顧客に特別なプロモーションを提供し得る。製品をカートに追加することは、顧客または商人からの何らかの約束を意味せず、カートの予測される寿命は数分の単位(日ではない)であり得るので、カートは、短期データ記憶装置に持続させられ得る。
そして、顧客は、勘定に進む。勘定コンポーネントは、顧客向けの注文創出プロセスとしてウェブ勘定を実装し得る。勘定APIは、いくつかのチャンネルアプリケーションによって用いられるコンピュータ向けの注文創出プロセスとして提供され、(例えば、販売時点情報管理として)顧客に代わって注文を創出し得る。勘定は、カートから創出され、eメールアドレス、請求書、および配送詳細等の顧客の情報を記録し得る。勘定の時、商人は、価格設定を確約する。顧客が彼らの連絡先情報入力したが、勘定に進まない場合、eコマースプラットフォーム100は、顧客に再び係合するための機会(例えば破棄された勘定の特徴)を提供し得る。それらの理由のため、勘定は、カートより遥かに長い寿命(時間またはさらに日)を有し得、したがって持続される。勘定は、顧客の配送先住所に基づいて税および配送費用を計算し得る。勘定は、税コンポーネントに税の計算を委任し、送達コンポーネントに配送費用の計算を委任し得る。価格設定コンポーネントは、商人が割引コード(例えば、勘定において入力されると、勘定されるアイテムに新たな価格を適用する「秘密の」文字列)を創出することを可能とし得る。割引は、顧客を引き付け、マーケティングキャンペーンの成果を評価するために、商人によって用いられ得る。割引および他のカスタム価格システムは、例えば価格ルール(例えば、満たされたときに一連の資格を示す一連の必須条件)を通じて、同一のプラットフォームピースの上部に実装され得る。例えば、必須条件は、「注文の小計が$100より高い」または「配送費用が$10を下回る」等のアイテムであり得、資格は、「注文全体の20%割引」または「$10引き製品X、YおよびZ」等のアイテムであり得る。
そして、顧客は、彼らのカートのコンテンツの支払いをし、これは、商人への注文の創出をもたらす。チャンネル110A-Bは、コマース管理エンジン136を用いて、お金、通貨または店舗の価値の蓄え(ドルまたは暗号通貨等)を顧客と商人との間で移動させ得る。種々の支払いプロバイダ(例えば、オンライン支払いシステム、モバイル支払いシステム、デジタルウォレット、クレジットカードケートウェイ等)との通信は、支払い処理コンポーネント内で実装され得る。支払いゲートウェイ106との実際の相互作用は、カードサーバ環境を通じて提供され得る。いくつかの実施形態では、支払いゲートウェイ106は、例えば主要な国際クレジットカードプロセッサを組み込んだ国際支払いを承認し得る。カードサーバ環境は、カードサーバアプリケーション、カードシンク、ホステッドフィールド等を含み得る。この環境は、機密クレジットカード情報のセキュアゲートキーパーとして機能し得る。いくつかの実施形態では、ほとんどのプロセスは、支払い処理ジョブによって組織化され得る。コマース管理エンジン136は、サイト外支払いゲートウェイ106を通じたもの(例えば、顧客が別のウェブサイトに向け直される)、手動によるもの(例えば、現金)、オンライン支払方法(例えば、オンライン支払システム、モバイル支払いシステム、デジタルウォレット、クレジットカードゲートウェイ等)、ギフトカード等、多くの他の支払い方法をサポートし得る。勘定プロセスの最後に、注文が創出される。注文は、商人と顧客との間の販売契約であり、商人は、注文にリストアップされた商品およびサービス(例えば、注文ラインアイテム、配送ラインアイテム等)を提供することに同意し、顧客は、(税を含む)支払いを提供することに同意する。このプロセスは、販売コンポーネントでモデル化され得る。コマース管理エンジン136勘定によらないチャンネル110A-Bは、注文APIを用いて注文を創出し得る。注文が創出されると、通知コンポーネントを介して、注文確認通知が、顧客に送られ得、注文完了通知が商人に送られ得る。売り過ぎを回避するために、注文処理ジョブが始動するとき、在庫が予約され得る(例えば、商人は、各バリエーションの在庫方針からこの行動を制御し得る)。在庫予約は、短い時間スパン(数分)を有し得、フラッシュセール(例えば、ターゲットインパルス購入等の短時間提供される割引またはプロモーション)をサポートするために、非常に高速かつスケーラブルである必要があり得る。支払いが失敗した場合、予約が解除される。支払いが成功し、注文が創出されたとき、予約が、特定の場所に割り当てられた長期在庫確約に変換される。在庫コンポーネントは、バリエーションが保管される場所を記録し得、在庫追跡が可能であるバリエーションに関して、量を追跡する。在庫は、在庫アイテム(量および場所が管理されるアイテムを表す商人向けコンセプト)から製品バリエーション(製品リストのテンプレートを表す顧客向けコンセプト)を切り離し得る。在庫レベルコンポーネントは、販売取り扱い量、注文が確約された量、または在庫転送コンポーネントから(例えば、ベンダーから)の仕入れ量を追跡し得る。
そして、商人は、注文をレビューし、履行(または取消)し得る。レビューコンポーネントは、ビジネスプロセス商人の使用を実装し、実際にそれらを履行する前に注文が履行に適していることを保証し得る。注文は、詐欺であり得、確認(例えばIDチェック)を要求し、彼らの資金を受領することを確実するために待つことを商人に要求する支払い方法を有し得る。リスクおよび推薦は、注文リスクモデルで永続化され得る。注文リスクは、例えば、詐欺検出ツールから生成され、注文リスクAPIを通じて第三者によって提出され得る。履行に進む前、商人は、支払い情報(例えば、クレジットカード情報)を捕捉するか、または(例えば、銀行送金、小切手等を介して)それを受領することを待って注文が支払われたことをマークする必要があり得る。それから、商人は、送達のために製品を準備し得る。いくつかの実施形態では、このビジネスプロセスは、履行コンポーネントによって実装され得る。履行コンポーネントは、在庫場所および履行サービスに基づいて作業の論理的履行単位に注文のラインアイテムをグルーピングし得る。商人は、作業の単位をレビューし、これを調節し、商人が箱から製品を取り出して梱包するときに用いられる(例えば、商人に管理された場所における)手動履行サービスを通じて、関連する履行サービスをトリガし、配送ラベルを購入してその追跡番号を入力するか、または、単に履行されたことをアイテムにマークし得る。カスタム履行サービスは、eメールを(例えば、API接続を提供しない場所に)送り得る。API履行サービスは、第三者をトリガし得、第三者が、履行記録を作成する。レガシー履行サービスは、コマース管理エンジン136から第三者へのカスタムAPIコールをトリガし得る(例えば、Amazonによる履行)。ギフトカード履行サービスは、ギフトカードをプロビジョニングし(例えば、番号を生成する)、アクティブにし得る。商人は、注文プリンタアプリケーションを用い、梱包票を印刷し得る。履行プロセスは、アイテムが箱に梱包され、配送の準備がされるとき、配送されるとき、追跡されるとき、送達されるとき、顧客によって受領されたことが確認されるとき等に実行され得る。
顧客が満足しない場合、彼らは、製品(単数または複数)を商人に返却し得る。商人が、アイテムを「販売できない」ことを経験し得るビジネスプロセスは、返却コンポーネントによって実装され得る。返却は、各種の異なるアクションから成り得、各種の異なるアクションは、例えば、再入庫(販売された製品が実際にビジネスに復帰し、再び販売可能である場合)、払い戻し(顧客から集めたお金が部分的または全額返却される場合)、どのくらいのお金が払い戻されたかを通知する会計調節(例えば、何らかの再入庫料金が存在する場合、または商品が返却されておらず、顧客の手元に残っている場合を含む)等である。返却は、販売契約(例えば注文)の変更を表し得、eコマースプラットフォーム100は、(例えば、税に関する)法規違反に関するコンプライアンスの問題を商人に知らせ得る。いくつかの実施形態では、eコマースプラットフォーム100は、商人が経時的に販売契約の変更を追跡することを可能とし、これは、販売モデルコンポーネント(例えば、アイテムに発生した販売関連のイベントを記録する追加専用の日にちベースの台帳)を通じて実装される。
eコマースプラットフォームにおける拡張現実の実装
拡張現実(AR)は、向上させられた顧客体験を提供するために、コマースにおいて用いられ得る。eコマースプラットフォーム100は、各種の異なる用途(その例は、本明細書中のあらゆる場所で説明される)のうちのいずれかのためのARを実装し得る。図3は、図1のeコマースプラットフォーム100であるがARエンジン300を含むeコマースプラットフォームを例証している。ARエンジン300は、eコマースプラットフォーム100、顧客デバイス150および/または商人デバイス102による使用のためのARコンテンツを生成するコンピュータ実装システムの例である。
ARエンジン300は、図3において、eコマースプラットフォーム100の明確なコンポーネントとして例証されているが、これは単なる例である。同様に、または、代わりに、ARエンジンは、eコマースプラットフォーム100の内部または外部に常駐する別のコンポーネントによって提供されることもある。いくつかの実施形態では、アプリケーション142A-Bの一方または両方が、顧客および/または商人に利用可能なARエンジンを提供する。さらに、いくつかの実施形態では、コマース管理エンジン136が、ARエンジンを提供する。eコマースプラットフォーム100は、1つ以上のパーティによって提供される複数のARエンジンを含み得る。複数のARエンジンは、同一の方式で、同様の方式で、および/または別個の方式で実装され得る。加えて、ARエンジンの少なくとも一部は、商人デバイス102および/または顧客デバイス150において実装され得る。例えば、顧客デバイス150は、ソフトウェアアプリケーションとしてARエンジンを記憶し、ローカルで実行し得る。
ARエンジン300は、本明細書中で説明される機能のうちの少なくともいくつかを実装し得る。以下で説明される実施形態は、eコマースプラットフォーム100等(しかし、これに限定されない)のeコマースプラットフォームに関連付けられて実装され得るが、以下で説明される実施形態は、図1~図3の具体的なeコマースプラットフォーム100に限定されない。さらに、本明細書中で説明される実施形態は、必ずしもeコマースプラットフォームに関連付けられて実装される必要も、eコマースプラットフォームを伴う必要もない。概して、ARの任意のアプリケーションが、本明細書中で開示されるシステムおよび方法を実装し得る。
コマースにおけるARの用途
ARは、ユーザの実世界環境に仮想コンテンツを補い、ユーザの実世界環境の知覚を変更し得る。simultaneous localization and mapping(SLAM)として知られているプロセスを通じて、ユーザの実世界環境の表現、およびその実世界環境内のユーザの位置が、ARエンジンによって継続的にまたは断続的に決定され得る。本明細書中で用いられる場合、位置が向きおよび場所の両方を含み得ることが、留意されるべきである。そして、ユーザのためのAR体験が、実世界環境の表現に1つ以上の仮想モデルをマッピングすることによって生成され得る。ユーザのためのARコンテンツは、実世界環境上に重ねられる仮想モデルのレンダリング表現を含み得る。レンダリング表現は、実世界環境におけるユーザの相対的位置、および実世界環境への仮想モデルのマッピングを反映するように生成される。この方式では、ARコンテンツは、ユーザのための実世界空間との仮想モデルのほぼシームレスな統合を提供し得る。
ARは、顧客が物理的製品と相互作用することが可能でないとき、顧客が仮想製品を視認し、それと相互作用することを可能にし得る。例えば、ARは、画像内で捕捉された実世界環境上に、製品の仮想表現を重ね合わせ得、それは、製品が実世界環境内に存在するように見えるようにし得る。画像は、顧客の家、または顧客に関係する別の場所の画像であり得、それは、顧客が彼らにとって関心がある環境内で製品を視認することを可能にする。いくつかの実装では、家具販売者は、顧客が彼らの家の中で仮想家具を視認することを可能にするために、ARを用い得る。例えば、テレビの仮想表現が、ARを用いて顧客のリビングルームのビデオストリーム上に重ね合わせられ得、それは、リビングルームにおけるテレビのサイズおよび見た目が認識されることを可能にする。
従来、AR体験は、単一のユーザおよび/または単一のユーザデバイスに限定されていた。テレビの仮想表現が顧客のリビングルームのビデオストリーム上に重ね合わせられる例を考慮されたい。この例では、AR体験は、リビングルームのビデオを捕捉している顧客に限定される。これは、いくつかの場合、AR体験の機能を限定し得る。例えば、顧客が遠隔の商人(すなわち、顧客と同一の場所にいない商人)に、テレビについての特定の質問を尋ねることを望むこともある。顧客が、テレビの仮想表現を視認しながら商人と話すこと、または商人とコミュニケーションすることが可能である場合であっても、顧客は、彼らの質問を商人へ明確に表現することが依然として困難であり得る。商人は、顧客が視認しているAR体験を見ることができない。したがって、商人は、顧客がテレビのどの部分に言及しているのか分からず、顧客によって尋ねられている質問のための限定されたコンテキストを有する。例えば、顧客は、テレビの特定のコンポーネントについての質問を有し得るが、彼らがテレビのどのコンポーネントに言及しているのかを商人に説明することに苦闘し得る。同様のコメントが商人に当てはまり、商人も、テレビを(実世界において、または仮想的に)視認しているが、商人がテレビのどのコンポーネントに言及しているのかを顧客が分からない場合、商人は、彼らの応答を顧客に明確に説明することに苦闘し得る。
単一ユーザAR体験の限定は、顧客と商人との間の相互作用に及ぶ。顧客が彼らのリビングルームのビデオストリーム上に重ね合わせられたテレビの仮想表現を視認している例に再度言及すると、このリビングルームは、別の個人と共有され得る。顧客と他の個人とは、2つの異なる場所にいることもあるが、テレビを視認しているとき、共同することを望み得る。顧客および他の個人の両方が、それぞれのAR体験においてテレビを視認しており、互いに話すことが可能である場合であっても、顧客および他の個人は、依然として、他方がテレビのどのコンポーネントまたは側面を視認しているのかを決定することが困難であり得る。これは、顧客と他の個人との間のコミュニケーションおよび協働を妨げ得る。
さらに、顧客と他の個人の両方が、同一の場所からそれぞれのAR体験においてテレビを視認している場合であっても、難題が存在し得る。いくつかの場合、顧客および他の個人は、両方とも同一の部屋(例えば、共有のリビングルーム)に位置しながらテレビを協働して共にショッピングすることを望み得る。ARコンテンツは、典型的に、1人のユーザの観測点のために生成されるので、1人のユーザのために生成されたARコンテンツを別のユーザと共有することは、困難である。モバイルデバイス、眼鏡のセット、またはヘッドセットの観測点は、他のデバイスが同一の部屋にある場合であっても、別のデバイスと共有することが難しい。
複数のユーザにAR体験を拡張することは、AR体験内での協働を可能にし、AR体験の機能全体を向上させ得る。しかしながら、複数のユーザを同時に適応させ得るAR体験を提供することには技術的難題が存在する。例えば、2人以上のユーザが異なる所からAR体験にアクセスしているとき、効果的なコミュニケーションを可能にする態様でのAR体験における各ユーザの位置決めおよびマッピングは、困難であり得る。
いくつかの実施形態がコマース用途のコンテキストで説明されるが、本開示は決してコマースに限定されないことが留意されるべきである。本明細書中で開示されるシステムおよび方法は、ARの他の用途においても実装され得る。
マルチユーザAR
本開示は、部分的に、マルチユーザARコンテンツを生成するためのシステムおよび方法に関している。マルチユーザARコンテンツは、異なる物理的位置にいる複数のユーザのための共有型AR体験を提供し得る。ユーザ間の物理的分離にもかかわらず、共有型AR体験に関するARコンテンツは、各ユーザのために生成され得る。共有型AR体験は、例えば仮想アイテム等の仮想コンテンツを含む単一の仮想座標系を実装し得る。仮想座標系を画定した後、(例えば)SLAMプロセスが、各ユーザを仮想座標系にマッピングし、ユーザのためのARコンテンツを生成し得る。よって、このようにして、各ユーザは、共有型AR体験の独自の視点を通じて同一の仮想コンテンツを体験し得る。
いくつかの実施形態では、共有型AR体験において各ユーザのために生成されるARコンテンツは、他のユーザの仮想表現を含み得る。これは、異なるユーザ間のコミュニケーションを向上させ、それによって、共有型AR体験内での協力および協働を促進することを助け得る。例えば、ユーザの仮想表現は、複数のユーザがAR体験において仮想アイテムの互いの視認を認識することを可能にし、ユーザ間のコミュニケーションのためのコンテキストを提供し得る。各ユーザは、共有型AR体験において仮想アイテムを視認し、他のユーザがどのように仮想アイテムを視認しているのかを見ることが可能であり得る。コマース用途において、これは、例えば、複数のユーザが製品を視認し、他のユーザが製品をどのように視認しているのかを見ることを可能にし得る。
共有型AR体験におけるユーザのためのマルチユーザARコンテンツは、音響コンテンツをさらに含み得る。この音響コンテンツは、例えば、共有型AR体験における他のユーザから取得され、他のユーザの発話の録音を含み得る。いくつかの実装では、音響コンテンツは、共有型AR体験において音響コンテンツが関連しているユーザまたはオブジェクトの位置に対応する方向性を含む。方向性音響は、ユーザが共有型AR体験における他のユーザまたはオブジェクトの相対的位置をより良く決定することを助け得る。一例では、第1のユーザがAR体験において第2のユーザの視界にいない場合、方向性音響は、AR体験における第1のユーザの位置の指示を第2のユーザに依然として提供し得る。別の例では、ユーザが共有型AR体験において異なる位置で複数の他のユーザの仮想表現を見ることができ、かつ、他のユーザのうちの1人が話している場合、方向性音響は、他のユーザのうちの誰が話しているのかをユーザが決定することを助け得る。
いくつかの実施形態では、マルチユーザARコンテンツは、仮想ユーザ相互作用を描写する。つまり、共有型AR体験内の1人のユーザの仮想相互作用が、AR体験における他のユーザ(単数または複数)に伝達される。そのような相互作用の例は、ユーザがAR体験における仮想アイテムに向かってジェスチャすること、および、さらにユーザが仮想アイテムにタッチすることも含む。AR体験において仮想相互作用を表示することは、異なるユーザ間の非言語コミュニケーションを可能にすることを助け得る。
図4は、ある実施形態による、共有型AR体験のためのARコンテンツ402を表示するユーザデバイス400を例証している。共有型AR体験における第1のユーザは、ユーザデバイス400を動作させ、ARコンテンツ402を視認している。ユーザデバイス400は、示されるように、第2のユーザが共有型AR体験に存在していることの指示410も表示する。第2のユーザは、異なるユーザデバイスを通じて共有型AR体験にアクセスしており、第1のユーザと異なる物理的場所に存在し得る。ユーザデバイス400は、示されるように、共有型AR体験を退出するためのオプション412と、第2のユーザが第1のユーザの話を聞こえないようにユーザデバイス400のマイクロフォンをミュートにするためのオプション414と、他の機能にアクセスするためのオプション416とをさらに表示し得る。
ARコンテンツ402は、直立したキッチンミキサの仮想表現404と、第2のユーザの仮想表現406と、第2のユーザとミキサとの間の相互作用の仮想表現408とを含む。第2のユーザの仮想表現406は、モバイルフォンを保持する手の形態であり、相互作用の仮想表現408は、ミキサを指し示している手の形態であるが、これらは単なる例である。
仮想表現404、406、408は、仮想コンテンツの例である;しかしながら、ARコンテンツ402は、触覚コンテンツおよび/または音響コンテンツをさらに含み得る。例えば、ARコンテンツ402は、第1のユーザと第2のユーザとが互いに話すことができるように第2のユーザの声の記録を含み得る。
ARコンテンツ402は、第1のユーザのキッチンの画像上に重ねられ、それによって、仮想表現404は、キッチンのカウンター上に実際に置かれているミキサを示している。いくつかの実装では、ARコンテンツ402は、少なくとも部分的にSLAMプロセスを用いて生成される。ミキサの仮想表現404は、共有型AR体験の仮想座標系内に画定されるミキサの3次元(3D)モデルのレンダリング表現であり得る。仮想座標系は、ミキサのモデルがキッチンのカウンター上に位置付けられるように、第1のユーザのキッチンの表現にマッピングされる。この第1のユーザのキッチンの表現は、例えば、ユーザデバイス400におけるカメラまたは他のセンサを用いて取得されている。仮想座標系が第1のユーザのキッチンの表現にマッピングされた後、キッチン内の第1のユーザの位置が、決定され、仮想座標系にマッピングされ得る。そして、モデルのレンダリング表現が、仮想座標系における第1のユーザおよびミキサの相対的位置に基づいて生成され得る。
ARコンテンツ402を用いて、第1のユーザは、仮想表現404を通じてミキサを視認することと、仮想表現406に基づいて第2のユーザがどのようにミキサを視認しているのかを決定することと、仮想表現408を通じて第2のユーザがどのようにミキサと相互作用しているのかを決定することとを同時に行うことが可能である。このようにして、仮想表現404、406、408は、共有型AR体験における第1のユーザと第2のユーザとの間のコミュニケーションおよび協働を向上させ得る。
ARコンテンツは、共有型AR体験における第2のユーザのためにも生成され得る。このARコンテンツは、ミキサの仮想表現、第1のユーザの仮想表現、および/または第2のユーザとミキサとの間の相互作用の仮想表現を含み得る。第2のユーザのためのARコンテンツは、第2のユーザを囲む実世界環境の表現上に重ねられ得る。
いくつかの実施形態では、共有型AR体験は、ARコンテンツと他の仮想コンテンツとの組み合わせ物を提供する。例えば、図4の共有型AR体験において、第2のユーザは、ARコンテンツを提供されないこともある。その代わり、第2のユーザは、仮想環境上に重ねられたミキサのモデルのレンダリング表現を含むVRコンテンツを提供され得る。あるいは、第2のユーザは、単に、モデルを操作する(例えば、回転させる、およびズームインする)性能を有するデバイスにおいて、ミキサの3Dモデルを視認し得る。
本開示の実施形態は、これから、図5~図29を参照してより詳細に説明される。
マルチユーザARコンテンツを生成すること
図5は、共有型AR体験のためのマルチユーザARコンテンツを提供するための例示的システム500を例証するブロック図である。システム500は、ARエンジン502と、ネットワーク520と、複数のユーザデバイス530a、530bとを含む。
ネットワーク520は、ARエンジン502およびユーザデバイス530a、530bを含む異なるデバイス間の有線および/または無線の接続を実装するコンピュータネットワークであり得る。ネットワーク520は、当該技術分野において公知である任意の通信プロトコルを実装し得る。通信プロトコルの非限定的な例は、ローカルエリアネットワーク(LAN)、無線LAN、インターネットプロトコル(IP)ネットワーク、セルラーネットワークを含む。
ARエンジン502は、マルチユーザARコンテンツを含むARコンテンツの生成をサポートする。例証されるように、ARエンジン502は、プロセッサ504と、メモリ506と、ネットワークインタフェース508とを含む。プロセッサ504は、メモリ506内または別の非一過性のコンピュータ読み取り可能な媒体内に記憶されている命令を実行する1つ以上のプロセッサによって実装され得る。あるいは、プロセッサ504のうちのいくつかまたは全てが、特定用途向け集積回路(ASIC)、グラフィックス処理ユニット(GPU)、またはプログラムされたフィールドプログラマブルゲートアレイ(FPGA)等の専用回路を用いて実装されることもある。
ネットワークインタフェース508は、ネットワーク520上での通信のために提供される。ネットワークインタフェース508の構造は、実装特有である。例えば、ネットワークインタフェース508は、ネットワークインタフェースカード(NIC)、コンピュータポート(例えば、プラグまたはケーブルが接続する物理的アウトレット)、および/またはネットワークソケットを含み得る。
メモリ506は、仮想モデルレコード510、ユーザ空間レコード512、画像分析部514、仮想コンテンツ生成部516を記憶している。
仮想モデルレコード510は、アイテム、建物、場所、風景、人々、解剖学的特徴、動物、および/または任意の他のタイプのオブジェクトの仮想モデルを記憶している。これらの仮想モデルは、AR体験において実装され得る。例として、1人以上のユーザは、仮想モデルレコード510内に記憶されている仮想モデルを検索し、選択することによって、AR体験を構築し得る。そして、仮想モデルは、1人以上のユーザのためにAR体験内で実装され、ユーザが仮想モデルを視認し、それと随意に相互作用することを可能にし得る。図4のAR体験における直立したキッチンミキサのモデルは、仮想モデルレコード510内に記憶され得る仮想モデルの例である。
仮想モデルレコード510内に記憶されている仮想モデルのうちのいずれか、それらのうちの1つ、それらのうちのいくつか、またはそれらの全てが、3次元(3D)モデルであり得る。3Dモデルは、長さ、幅、および高さで定義されたエンティティの数学的表現である。3Dモデルは、3D仮想座標系内に位置付けられ、さもなければ画定され得、3D仮想座標系は、例えば、デカルト座標系、円筒座標系、または極座標系であり得る。3Dモデルは、3Dモデルが仮想座標系の中心にあるように仮想座標系の原点につなぎ止められ得る。3Dモデルは、全体的にコンピュータ生成され得るか、または実世界エンティティの測定値に基づいて生成され得る。実世界エンティティから3Dモデルを生成するための可能な方法は、写真測量(一連の2D画像から3Dモデルを創出する)、および3Dスキャン(オブジェクトの周りでスキャナを移動させ、全ての角度を捕捉する)を含む。
3Dモデルは、オブジェクトがAR体験において種々の異なる角度で視認されることを可能にする。さらに、ユーザが3D性能(例えば、ヘッドセット等)を有するデバイスを用いてARコンテンツを視認している場合、3Dモデルは、オブジェクトの3D表現がARコンテンツ内で生成され、そこに含まれることを可能にする。例えば、オブジェクトの3D表現は、ユーザの各眼にオブジェクトのわずかに異なる視点を表示し、オブジェクトに3D効果を与えることによって達成され得る。
仮想モデルレコード510内に記憶されているモデルは、音響コンテンツおよび/または触覚コンテンツにも関連付けられ得る。例えば、仮想モデルレコード510は、モデルによって作成された音もしくはモデルに関連付けられた音、および/または、モデルの感触を提供し得る触覚フィードバックを記憶し得る。
仮想モデルレコード510内の仮想モデルは、数多くの異なる方式のうちの任意の方式で取得され得る。いくつかの実装では、仮想モデルのうちの少なくともいくつかが、例えば顧客または商人から等、ARエンジン502のユーザから取得される。商人は、彼らの店舗で販売されている製品のうちのいずれか、それらのうちの1つ、それらのうちのいくつか、またはそれらの全てのための仮想モデルを生成し得る。これらの仮想モデルは、商人によってARエンジン502に直接提供され得るか、または、ARエンジン502は、eコマースプラットにおける商人のアカウントからおよび/または商人のオンラインストアから仮想モデルを取得し得る。仮想モデルは、例えばソーシャルメディアプラットフォーム等の他のプラットフォームからも取得され得る。加えて、いくつかの仮想モデルは、ARエンジン502でローカルに生成され得る。例えば、ARエンジン502によって取得された画像またはスキャンは、3Dモデルを生成するために用いられ得る。
ユーザ空間レコード512は、実世界空間および/または仮想空間の表現を記憶している。実世界空間の表現は、ARコンテンツを提供するために仮想コンテンツに重ねられ得る実世界環境を画定し得、仮想空間の表現は、VRコンテンツを提供するための仮想コンテンツに重ねられ得るコンピュータ生成環境を画定し得る。空間の表現は、ユーザ特有であり得る。例えば、空間の表現は、特定のユーザから取得され、および/または特定のユーザのために特別に生成され得る。しかしながら、これは、いつもそうではないこともある。その代わり、空間の表現は、一般的または非個人的であり得る。
空間の表現は、概して、空間の境界(例えば、部屋の壁)および空間内のオブジェクト(例えば、部屋内の構造物および人々)を含む空間の特徴を描く空間的情報を提供する。空間的情報は、空間における特徴のうちのいずれか、それらのうちのいくつか、またはそれら全てを識別し、空間における特徴の位置(場所および向きを含む)および寸法を提供し得る。そのような特徴の非限定的な例は、空間における表面、辺、および角を含む。つまり、空間の表現は、空間の地形図、レイアウト、またはモデルを3Dで提供し得る。
いくつかの場合、実世界空間の表現は、実世界の部屋、建物、領域、または他の物理的環境に対応する。例えば、実世界空間の表現は、ユーザデバイスによって捕捉された測定値を含み、または測定値から生成され得る。これらの測定値は、例えば、空間の1つ以上の光画像、レーダスキャン、lidarスキャン、および/またはソナースキャンを含み得る。実世界空間の表現は、新たな測定値が受信されると、継続的または断続的に更新され得る。いくつかの実装では、実世界空間の表現は、SLAMプロセスによって生成され得る。
上で留意されるように、ユーザ空間レコード512内に記憶されている空間の表現は、コンピュータ生成され得る。コンピュータ生成される空間の表現の例は、仮想空間と仮想空間内の任意のオブジェクトとの境界を画定するコンピュータ生成3Dモデルである。
画像分析部514は、ARエンジン502によって受信されおよび/または記憶されている画像を分析するために提供される。いくつかの実装では、画像分析部514は、実世界空間の1つ以上の画像に基づいて実世界空間の表現を生成するために用いられる。画像分析は、実世界の表面、辺、および/または角を含む実世界空間の特徴を検出し得る。画像分析は、実世界空間のこれらの特徴の寸法および相対的位置も3Dで決定し得る。そして、実世界空間の表現は、特徴のサイズ、形状および位置に基づいて生成され、ユーザ空間レコード512内に随意に記憶され得る。
さらなる実装では、画像分析部514は、例えば、写真測量を通じてオブジェクトの仮想モデルを生成するために用いられる。これらの仮想モデルは、仮想モデルレコード510内に記憶され得る。
2つ以上画像が同時に画像分析部514に入力され得る。例えば、異なる位置から撮影された実世界空間の複数の画像は、境界の決定および実世界空間のより正確な表現を可能にし得る。複数の画像は、例えば、ビデオストリームから、または複数の異なるカメラから取得され得る。画像分析部514が実世界空間のためのビデオストリームを受信する場合、画像分析部514は、実世界空間の特徴の位置を特定するために、初期特徴検出動作を実施し得る。そして、これらの特徴は、リアルタイムでビデオストリームから受信されたその後の画像において追跡され得る。その後の画像において検出された新たな特徴は、実世界空間の表現を拡張するために、実世界空間の表現に追加され得る。
画像分析部514は、プロセッサ504によって実行可能なソフトウェア命令の形態で実装され得る。数多くの異なるアルゴリズムのうちのいずれかが、画像分析部514内に含まれ得る。そのようなアルゴリズムの非限定的な例は:
・表面、角、および/または辺検出アルゴリズム;
・オブジェクト認識アルゴリズム;
・運動検出アルゴリズム;および
・画像セグメンテーションアルゴリズム
を含む。
画像分析アルゴリズムに関するさらなる詳細は、Richard SzeliskiによるComputer Vision:Algorithms and Applications, ISBN:978-1―84882-935-0(Springer, 2010)に見出され得、その内容は、それら全体が参照によって本明細書中に援用される。
仮想コンテンツ生成部516は、1人以上のユーザのための仮想コンテンツを生成することが可能である1つ以上のアルゴリズム(可能ならば、プロセッサ504によって実行可能なソフトウェア命令の形態)を採用し、および/またはそれを実装する。この仮想コンテンツは、共有型AR体験においてユーザのために生成されるARコンテンツの基礎を形成し得る。仮想コンテンツの非限定的な例は:
・図4における直立したキッチンミキサの仮想表現404等、1つ以上のオブジェクトの仮想表現;
・図4における第2のユーザの仮想表現406等、1人以上のユーザの仮想表現;および
・図4における第2のユーザとミキサとの間の相互作用の仮想表現408等、1つ以上のユーザ相互作用の仮想表現
を含む。
特定のユーザのための仮想コンテンツを生成するために、仮想コンテンツ生成部516への可能な入力は、
・仮想座標系内に画定される1つ以上の仮想モデル。仮想モデルは、例えば、仮想モデルレコード510から取得され得る。
・ユーザに関連付けられる実世界空間または仮想空間の表現。空間の表現は、例えば、ユーザ空間レコード512から取得され得る。
・仮想座標系を空間にマッピングするための空間の表現内の仮想座標系のためのアンカーポイント。アンカーポイントは、例えば、ユーザデバイスから受信され得る。
・(例えばARエンジンによって決定される)仮想座標系内のユーザの場所。
・(例えばARエンジンによって決定される)仮想座標系内の1人以上の他のユーザの場所。
・(例えばARエンジンによって決定される)仮想座標系内の1つ以上ユーザ相互作用の場所。
を含む。
仮想コンテンツ生成部516による仮想コンテンツ出力は、視覚コンテンツ、触覚コンテンツ、および/または音響コンテンツを含み得る。視覚コンテンツは、ユーザがAR体験内で仮想オブジェクトを視認することを可能にし得、触覚コンテンツは、ユーザがAR体験内で仮想オブジェクトにタッチし、触れることを可能にし得、音響コンテンツは、ユーザがAR体験内で音を聞くことを可能にし得る。いくつかの実装では、視覚コンテンツ、触覚コンテンツおよび/または音響コンテンツは、AR体験の仮想座標系内の1人以上のユーザの位置(場所および向きを含む)に基づいて生成される。例えば、ユーザのための仮想コンテンツは、仮想座標系内のオブジェクトのモデルに対するユーザの相対的位置に基づいて、オブジェクトを描写し得る。触覚コンテンツは、仮想座標系内のオブジェクトに接しているユーザの1つ以上の解剖学的特徴に基づいて、オブジェクトにタッチしまたは触れる感覚を提供し得る。触覚コンテンツは、例えば、少なくとも部分的に嵌め込みハプティクスを有する衣服を用いて実装され得る。音響コンテンツは、仮想座標系内の音響コンテンツの源に対するユーザの位置に対応する方向性を有する空間的音響を実装し得る。いくつかの実装では、空間的音響は、ユーザの各耳内へ再生される音を独立して制御することによって生み出される。
AR体験において特定のユーザのために生成される仮想コンテンツの例を考慮されたい。仮想コンテンツは、AR体験におけるオブジェクトを描写する視覚コンテンツ、オブジェクトの触感を提供する触覚コンテンツ、およびオブジェクトによって作製される音を提供する音響コンテンツを含み得る。視覚コンテンツとして描写されるオブジェクトのサイズおよび位置は、AR体験の仮想座標系におけるオブジェクトに対するユーザの位置に対応し得る。同様に、音響コンテンツの方向性は、仮想座標系におけるオブジェクトに対するユーザの位置に対応し得る。オブジェクトがユーザの左にある場合、オブジェクトに関する音響コンテンツは、ユーザの左耳においてより大きくあり得る。触覚コンテンツは、ユーザがオブジェクトにタッチしている部分(例えば、ユーザが指または掌でオブジェクトに接触しているかどうか)およびユーザが仮想座標系においてタッチしているオブジェクトの部分に基づき得る。
仮想コンテンツは、仮想コンテンツ生成部516によって継続的または断続的に更新され、AR体験における変更および/または修正を反映し得る。ユーザがAR体験の仮想座標系内で移動する場合、新たな仮想コンテンツが、仮想座標系内のユーザの新たな位置を反映するために生成され得る。例えば、ユーザが仮想座標系において仮想モデルに対して移動すると、モデルのレンダリング表現のサイズおよび向きがそれに応じて変化し得る。同様のコメントは、ユーザのための仮想コンテンツに含まれる音響コンテンツおよび触覚コンテンツにも当てはまり、それらも、ユーザが移動すると変化し得る。
いくつかの実装では、仮想コンテンツ生成部516によってユーザのために生成される仮想コンテンツは、ARコンテンツである。ARコンテンツは、ユーザを囲む実世界空間上に重ねられ、AR体験をユーザに提供する。これは、例えばカメラによって捕捉された実世界空間の画像上にARコンテンツを重ねることを含み得る。あるいは、ARコンテンツは、例えば、ARヘッドセット内の透明ディスプレイを用いて実世界空間上に重ねられ得る。ARコンテンツは、ユーザ空間レコード512内に記憶されている実世界空間の表現に基づいて生成され得る。
いくつかの実装では、仮想コンテンツ生成部516によってユーザのために提供される仮想コンテンツは、VRコンテンツである。VRコンテンツは、仮想空間の表現上に重ねられるオブジェクト、ユーザ、および/またはユーザ相互作用の1つ以上の仮想表現を含む。よって、VRコンテンツは、全体的にコンピュータ生成され得る。仮想空間の表現は、例えばユーザ空間レコード512から取得され得る。
いくつかの実装では、仮想コンテンツ生成部516は、複数のユーザのための共有型AR体験を提供する。複数のユーザの各々のために生成される仮想コンテンツは、オブジェクト、ユーザ、および/またはユーザ相互作用の1つ以上の仮想モデルを画定する単一の仮想座標系に基づき得る。共有型AR体験における各ユーザは、仮想座標系内の位置(場所および向きを含む)を有し、各ユーザのために生成される仮想コンテンツは、彼らの位置に依存し得る。
ARコンテンツは、常に共有型AR体験における全てのユーザのために生成されるわけではないこともあることが留意されるべきである。いくつかの実装では、共有型AR体験は、ARコンテンツおよびVRコンテンツの組み合わせ物を提供する。例として、顧客が共有型AR体験において商人と相互作用しているとき、顧客は、彼らの実世界周囲環境に重ねられるARコンテンツを受信し得、商人は、全体的にコンピュータ生成されるVRコンテンツを受信し得る。顧客および商人の両方が、共有型AR体験における商人によって販売される製品のモデルを視認し得る。顧客は、彼らの家の中で製品がどう見えるかを見ることを望み、したがって、彼らの実世界周囲環境上に重ねられるためのARコンテンツを選択し得る。一方、商人は、単に顧客を支援するために共有型AR体験内にあり得、顧客が製品をどのような環境で視認するかに関心がないこともある。したがって、商人は、VRコンテンツを選択し得る。あるいは、商人のための仮想コンテンツは、まったく環境に重ねられないこともある。商人は、単に、別の空白の空間において1つ以上の3Dモデルを視認していることもある。ARコンテンツおよびVRコンテンツの両方が、商人/顧客の表現を含み、それは、協働型AR体験を可能にし得る。
画像分析部514および仮想コンテンツ生成部516は、別個のモデルとして例証されるが、これは単に例である。いくつかの実施形態は、画像分析部514および仮想コンテンツ生成部516の機能をメモリ506内または別の非一過のコンピュータ読み取り可能な媒体内に記憶されている単一のソフトウェアインスタンスとして組み合わせ得る。
ARエンジン502によって生成されるARコンテンツおよびVRコンテンツを含む仮想コンテンツは、ユーザデバイス530a、530bの一方または両方に出力され得る。そのため、ユーザデバイス530a、530bは、それぞれのユーザが共有型AR体験と係合することを可能にし得る。ユーザデバイスの非限定的な例は、モバイルフォン、タブレット、ラップトップ、プロジェクタ、ヘッドセット、およびコンピュータを含む。ユーザデバイスは、例えば、顧客によって所有されおよび/または動作させられる顧客デバイスであることも、商人によって所有されおよび/または動作させられる商人デバイスであることもある。いくつかの実装では、ユーザデバイス530a、530bの一方または両方は、衣服材料に埋め込まれたデバイス等の植え込みデバイスもしくはウェアラブルデバイス、または、眼鏡等のユーザによって着用されるデバイスを含み、それらに嵌め込まれたディスプレイは、ユーザが、実世界を視認し、同時に、実世界上に重ねられる仮想コンテンツを視認することを可能にする。
ユーザデバイス530aは、プロセッサ532aと、メモリ534aと、ユーザインタフェース536aと、ネットワークインタフェース538aと、センサ540aとを含む。同様に、ユーザデバイス530bは、プロセッサ532bと、メモリ534bと、ユーザインタフェース536bと、ネットワークインタフェース538bと、センサ540bとを含む。ユーザデバイス530aは、以下で例として説明される。しかしながら、ユーザデバイス530aの説明はユーザデバイス530bにも当てはまり得ることが留意されるべきである。
ユーザインタフェース536aは、例えば、ディスプレイスクリーン(タッチスクリーンであり得る)、ジェスチャ認識システム、スピーカ、ヘッドフォン、マイクロフォン、ハプティクス、キーボード、および/またはマウスを含み得る。ユーザインタフェース536aは、例えば、衣服および/またはアクセサリ内に埋め込まれたウェアラブルデバイスによって少なくとも部分的に実装され得る。ユーザインタフェース536aは、視覚コンテンツ、触覚コンテンツ、および音響コンテンツを含む仮想コンテンツをユーザに提示し得る。ネットワークインタフェース538aは、ネットワーク520上の通信のために提供される。ネットワークインタフェース538aの構造は、ユーザデバイス530aがどのようにネットワーク520とインタフェース接続するかに依存する。例えば、ユーザデバイス530aがモバイルフォン、ヘッドセット、またはタブレットである場合、ネットワークインタフェース538aは、ネットワーク520へ無線伝送を送信し、ネットワーク520から無線伝送を受信するためのアンテナを有するトランスミッタ/レシーバを含み得る。ユーザデバイスがネットワークケーブルでネットワークに接続されるパーソナルコンピュータである場合、ネットワークインタフェース538aは、例えば、NIC、コンピュータポート、および/またはネットワークソケットを含み得る。プロセッサ532aは、ユーザデバイス530aによって実施される動作の全てを直接実施し、またはそれを命令する。これらの動作の例は、ユーザインタフェース536aから受信されたユーザ入力を処理することと、ネットワーク520上での伝送のために情報を準備することと、ネットワーク520上で受信されたデータを処理することと、ディスプレイスクリーンに情報を表示することを命令することとを含む。プロセッサ532aは、メモリ534a内に記憶されている命令を実行する1つ以上のプロセッサによって実装され得る。あるいは、プロセッサ532aのうちのいくつかまたはその全てが、ASIC、GPU、またはプログラムされたFPGA等の専用回路を用いて実装され得る。
センサ540aは、ユーザデバイス530aを囲む実世界環境の測定値を取得するために提供される。これらの測定値は、例えば、実世界空間および/またはオブジェクトの3Dモデルの表現を生成するために用いられ得る。実世界空間の表現は、ユーザ空間レコード512内に記憶され得、オブジェクトの3Dモデルは、仮想モデルレコード510内に記憶され得る。
センサ540aは、例えば、1つ以上のカメラ、レーダセンサ、lidarセンサ、およびソナーセンサを含み得る。カメラの場合、捕捉された画像は、画像分析部514によって処理され得る。レーダセンサ、lidarセンサ、およびソナーセンサから取得された測定値も、ARエンジン502によって処理され得る。センサ540aはユーザデバイス530aのコンポーネントとして示されるが、センサ540aは、同様に、または、代わりに、ユーザデバイス530aから分離して実装され得、例えば有線接続および/または無線通信を介してユーザデバイス530aおよび/またはARエンジン502と通信し得る。
いくつかの実装では、ユーザデバイス530aが、AR性能を有する。例えば、ARエンジン502と同様のARエンジンは、ユーザデバイス530aにおいて部分的にまたは全体的に実装され得る。ソフトウェアアプリケーションまたはインスタンスは、仮想コンテンツをローカルで(すなわち、ユーザデバイス530aで)生成するユーザデバイス530aにインストールされ得る。ソフトウェアアプリケーションは、ARエンジン502から、仮想モデルレコード510、ユーザ空間レコード512、画像分析部514、および/または仮想コンテンツ生成部516を受信し得る。
図5では、2つのユーザデバイスが例として示される。2つより多くのユーザデバイスが、ARエンジン502と通信し得る。
ARエンジン502は、例として提供される。ARエンジンの他の実装も想定される。いくつかの実装では、ARエンジンは、eコマースの核となる機能としてか、または、eコマースプラットフォームによってもしくはそれと通信してサポートされるアプリケーションもしくはサービスとして、少なくとも部分的にeコマースプラットフォームによって提供される。いくつかの実装では、ARエンジンは、顧客デバイスまたは商人デバイス等のユーザデバイスによって少なくとも部分的に実装される。いくつかの実装では、ARエンジンは、ARコンテンツを生成するためのスタンドアロン型サービスとして実装される。ARエンジン502は、単一のコンポーネントとして示されているが、ARエンジンは、代わりに、ネットワークを介して通信している複数の異なるコンポーネントによって提供され得る。
ユーザの仮想表現を有するマルチユーザARコンテンツを生成すること
図6は、ある実施形態による共有型AR体験のためのARコンテンツを生成する方法600を例証するフロー図である。方法600は、図5のARエンジン502によって実施されるように説明され、共有型AR体験は、ユーザデバイス530aのユーザ(「第1のユーザ」と称される)と、ユーザデバイス530bのユーザ(「第2のユーザ」と称される)とを少なくとも含む。しかしながら、方法600の一部は、代わりに、例えば、ユーザデバイス530aおよび/またはユーザデバイス530b等の別の場所で実施され得る。
ステップ602は、プロセッサ504がユーザデバイス530a、530bの一方または両方から受信された命令に基づいて共有型AR体験を開始することを含む随意のステップである。共有型AR体験は、数多くの異なる方式のうちのいずれかで開始され得る。一例では、第1のユーザが、ユーザデバイス530aにおいて個人的AR体験を開始し得る。そして、第1のユーザは、AR体験に第2のユーザを招待し、共有型AR体験を創出し得る。別の例では、AR体験は、第1のユーザおよび第2のユーザのために同時に開始され得る。したがって、AR体験は、マルチユーザAR体験として開始される。
ステップ604は、プロセッサ504が共有型AR体験のためのアイテムのモデルを取得することを含む。このモデルは、3Dモデルであり得る。いくつかの実装では、アイテムのモデルは、仮想モデルレコード510から取得される。第1のユーザおよび/または第2のユーザは、第1のユーザおよび/または第2のユーザが共有型AR体験において視認することを望む特定のアイテムに基づいて、仮想モデルレコード510からモデルを選択し得る。例えば、第1のユーザが商人によって販売されている特定の製品を視認することを望む場合、ステップ604は、第1のユーザが仮想モデルレコード510内のこの製品を検索し、製品のモデルを選択することを含み得る。他の実装では、アイテムのモデルは、ユーザデバイス530a、530bのうちの1つから直接取得され得る。
ステップ604において取得されたアイテムのモデルは、仮想座標系内に位置付けられまたはさもなければ画定され得る。モデルは、仮想座標系の原点につなぎ留められ得、それによって、モデルは、仮想座標系の中心にある。アイテムの寸法は、モデルによって画定され得、それは、アイテムがアイテムの物理的サイズを反映するように仮想座標系内に適切にスケーリングされることを可能にする。
いくつかの実装では、アイテムの複数のモデルが、ステップ604において取得され、共有型AR体験内に含まれ得る。これらの複数のモデルは、一度に、または異なるときに取得され得、第1のユーザ、第2のユーザ、または両者によって選択され得る。
ステップ606は、プロセッサ504が仮想座標系内の第1のユーザの位置を決定することを含む。仮想座標系における第1のユーザの位置が、仮想座標系における第1のユーザの座標のみならず、仮想座標系における第1のユーザの向きも含み得ることが、留意されるべきである。ステップ606に続いて、アイテムのモデルおよび第1のユーザが、仮想座標系内に画定されたそれぞれの位置を有し、それは、第1のユーザに対するモデルの位置が決定されることを可能にする。
いくつかの実装では、第1のユーザの位置は、ユーザデバイス530aによって取得された第1の情報に基づいて決定される。第1の情報は、ネットワーク520を介してユーザデバイス530aによってARエンジン502に伝送され得る。第1の情報の形態は、本明細書中で限定されない。いくつかの実装では、第1の情報は、第1のユーザに関連付けられた空間の表現を含むかまたはそれを提供する。この空間は、第1のユーザがアイテムのモデルを視認し得る設定または環境を提供する。そして、仮想座標系は、仮想座標系内の第1のユーザの位置を決定するために、空間の表現にマッピングされ得る。
いくつかの場合、第1のユーザに関連付けられた空間は、第1のユーザが物理的に存在している3Dの実世界空間である。例えば、実世界空間は、第1のユーザの家の部屋であり得る。第1の情報は、ユーザデバイス530aによって収集される実世界空間の測定値を含み得る。そして、実世界空間の表現は、これらの測定値から生成され得る。測定値が光画像を含む場合、画像分析部514は、実世界空間の表現を生成するために画像を処理することを助け得る。測定値の他の例は、実世界空間のレーダスキャン、lidarスキャン、およびソナースキャンを含む。実世界空間の表現は、ユーザ空間レコード512内に記憶され得る。
他の場合、第1の情報は、ユーザ空間レコード512からの空間の以前に生成された表現の選択物を含み得る。この空間は、第1のユーザに特有の場所(例えば、第1のユーザの家の部屋等)に対応し得、第1のユーザから以前に取得された測定値に基づき得る。
ステップ606において、空間における第1のユーザの位置(場所および向きを含む)が、おそらく、ユーザデバイス530aによって取得された第1の情報に基づいて決定され得る。例えば、第1の情報は、空間内の第1のユーザの位置の指示を含み得る。いくつかの場合、第1のユーザの位置は、ユーザデバイス530aの位置に等しいとみなされる。そのような場合の例は、ユーザデバイス530aが、第1のユーザによって保持され、取り付けられ、および/または動作させられるスマートフォンまたはヘッドセットであるときを含む。これらの場合、ステップ606は、空間におけるユーザデバイス530aの位置を決定することを含み得、第1のユーザの位置は、ユーザデバイス530aの位置から推測される。
空間の表現がユーザデバイス530aによって取得された測定値に基づいて決定される場合、第1のユーザの位置も、測定値から決定され得る。例えば、測定値の分析は、空間における第1のユーザまたはユーザデバイス530aから1つ以上の表面までの距離の決定を可能にし得る。Lidarおよびレーダは、表面への距離を決定するための測距性能を有する。さらに、画像分析部514によって実施される画像分析は、加えて、または、あるいは、表面までの距離を光画像から決定するために用いられることもある。第1のユーザまたはユーザデバイス530aから空間内の1つ以上の表面までの距離が既知であるとき、空間内の第1のユーザおよび/またはユーザデバイス530aの位置は、三角測量または他の手段を通じて決定され得る。同様に、または、代わりに、全世界位置システム(GPS)データが、空間内のユーザデバイス530aの位置を決定するために用いられ得る。いくつかの場合、実世界空間の表現を生成し実世界空間内の第1のユーザの位置を決定するプロセスは、SLAMプロセスを用いて実施され得る。
同様に、または、代わりに、空間内の第1のユーザの位置の明示的な指示は、第1の情報によって提供され得る。例えば、空間内の第1のユーザおよび/またはユーザデバイス530aの座標は、ARエンジン502に直接提供され得る。
第1の情報が空間の表現を提供する場合、ステップ606は、空間の表現に仮想座標系をマッピングすることを含み得る。これは、空間内のステップ604で取得されたモデルの位置(場所および向きを含む)を取得することを伴い得る。いくつかの場合、第1の情報は、空間内のモデルの所望される位置の選択または指示を含む。例えば、第1のユーザは、ユーザデバイス530aを用いて、彼らが空間内に特定の場所および向きでアイテムのモデルを位置付けることを望むことを示し得る。モデルのこの位置は、空間に仮想座標系をマッピングするためのアンカーポイントとして用いられ得る。そして、仮想座標系およびモデルは、空間に対して固定され得る。
ステップ606において、空間の表現を取得し、空間内の第1のユーザの位置を決定し、空間に仮想座標系をマッピングした後、仮想座標系内の第1のユーザの位置が決定され得る。
ステップ608は、プロセッサ504が仮想座標系内の第2のユーザの位置を決定することを含む。仮想座標系における第2のユーザの位置は、仮想座標系における第2のユーザの座標のみならず、仮想座標系における第2のユーザの向きも含み得る。ステップ608に続いて、第1のユーザ、第2のユーザ、およびアイテムのモデルは、仮想座標系内に画定されるそれぞれの位置を有する。これは、第2のユーザに対する第1のユーザの位置、およびモデルに対する第1のユーザの位置が決定されることを可能にし得る。
仮想座標系における第2のユーザの位置は、ステップ606に関して上記で説明されるそれらと同様の方法、および仮想座標系における第1のユーザの位置の決定を用いて決定され得る。いくつかの実装では、仮想座標系における第2のユーザの位置は、ユーザデバイス530bによって取得された第2の情報に基づいて決定され、ネットワーク520を介してARエンジン502に伝送され得る。第2の情報は、第2のユーザに関連付けられた空間の表現を含み得る。いくつかの場合、第2のユーザに関連付けられた空間は、第1のユーザに関連付けられた実世界空間と異なる実世界空間である。例えば、第1のユーザに関連付けられた実世界空間と第2のユーザに関連付けられた実世界空間とは、互いに物理的に離れていることもある。よって、第1のユーザおよび第2のユーザは、異なる部屋、異なる建物、異なる街、または、さらに、異なる国にいることもある。
いくつかの実装では、第2のユーザのための空間の表現は、仮想空間のコンピュータ生成表現である。仮想空間は、第2のユーザに関連付けられている空間を表現し得るが、これは、必ずしも当てはまらないこともある。その代わり、仮想空間は、非個人的であるか、または一般的な空間であり得る。例えば、一般的な部屋が、仮想空間のコンピュータ生成表現として描写され得る。
ステップ608は、第2のユーザの関連付けられた空間内の第2のユーザの位置に基づいて、仮想座標系内の第2のユーザの位置を決定することを含み得る。第2のユーザの空間内の第2のユーザの位置は、例えば、ユーザデバイス530bから受信された測定値または明示的な指示を用いて決定され得る。いくつかの実装では、プロセッサ504は、ユーザデバイス530bから第2のユーザに関連付けられた空間内のアイテムのモデルの位置を取得する。そして、プロセッサ504は、空間内のモデルの位置に基づいて、第2のユーザの空間に仮想座標系をマッピングし得る。このマッピングは、仮想座標系内の第2のユーザの位置が決定されることを可能にし得る。
ステップ604、606、608にしたがって、単一の座標系における第1のユーザ、第2のユーザおよびアイテムのモデルのそれぞれの位置が、取得されている。仮想座標系は、第1のユーザおよび第2のユーザに関連付けられた異なる空間にマッピングされ得る。したがって、第1のユーザおよび第2のユーザは、彼らが選択した環境におけるアイテムのモデルと相互作用することができる。
ステップ610において、プロセッサ504は、第2のユーザの音響を取得する。例えば、第2のユーザ声が、ユーザデバイス530b内のマイクロフォンによって記録され、ARエンジン502に伝送され得る。第2のユーザの画像等の第2のユーザに関する他の情報も、ステップ610において収集され得る。例えば、ユーザデバイス530bは、モバイルデバイスであり得、モバイルデバイスは、第2のユーザを囲む実世界空間の画像を捕捉するための後向きカメラと、第2のユーザの顔の画像を捕捉するための前向きカメラとを有する。
ステップ612は、プロセッサ504が第1のユーザのためのARコンテンツを生成することを含む。ARコンテンツは、とりわけ、ステップ604において取得されたモデルのレンダリング表現、第2のユーザの仮想表現、音響コンテンツ、および/または触覚コンテンツを含み得る。いくつかの実装では、ARコンテンツは、仮想コンテンツ生成部516を用いて生成される。
アイテムのモデルのレンダリング表現は、仮想座標系内の第1のユーザの位置に基づいて生成される。例えば、レンダリング表現において描写されるモデルの向きは、仮想座標系におけるモデルの第1のユーザの視点に対応し得る。さらに、レンダリング表現のサイズは、仮想座標系におけるモデルからの第1のユーザの距離に対応し得る。例えば、第1のユーザが仮想座標系におけるモデルからさらに離れて移動すると、第1のユーザのためのARコンテンツにおけるモデルのサイズは減少し得る。
第2のユーザの仮想表現は、仮想座標系における第1のユーザの位置および第2のユーザの位置に基づき得る。例えば、仮想座標系における第1のユーザの位置に対する第2のユーザの位置は、第1のユーザと第2のユーザとの間の距離と、第1のユーザに対する第2のユーザの向きとを決定し得る。そして、この距離および向きは、第2のユーザの表現を生成するために用いられ得る。仮想座標系における第1のユーザと第2のユーザとの間の距離は、第2のユーザの仮想表現のサイズに反映され得る。第2のユーザの仮想表現は、仮想座標系における第2のユーザの向きの指示も含み得る。
ステップ612において生成されたARコンテンツにおける第2のユーザの表現およびモデルのレンダリング表現は、仮想座標系におけるモデルに対する第2のユーザの位置を反映し得る。よって、第1のユーザのARコンテンツは、モデルによって描写されるアイテムの第2のユーザの視点を伝達し得る。
いくつかの実装では、第2のユーザの表現は、第2のユーザを描写または表現するモデルを用いて生成される。このモデルは、仮想モデルレコード510から取得され、第2のユーザの位置において仮想座標系にマッピングされ得る。第2のユーザのモデルのレンダリング表現は、第2のユーザの表現として用いられ得る。第2のユーザのモデルは、第2のユーザの仮想アバターとみなされ得る。
第2のユーザの表現の形態は、本明細書中で限定されない。第2のユーザの表現は、第2のユーザの全身、第2のユーザの身体の一部(例えば、ユーザの顔)、および/または第2のユーザに関連付けられたいくつかのオブジェクトを描写し得る。しかしながら、第2のユーザの表現は、第2のユーザをまったく描写しないこともある。その代わり、第2のユーザの表現は、第2のユーザを表現するシンボルまたはオブジェクトであり得る。いくつかの場合、第2のユーザの表現は、仮想ユーザデバイスを含む。これらの場合のうちの少なくともいくつかでは、ステップ608で決定された第2のユーザの位置は、ユーザデバイス530bの位置に対応し得る。仮想ユーザデバイスの例は、図4の仮想表現406である。
いくつかの実装では、第2のユーザの仮想表現は、ステップ610で取得される第2のユーザの画像の少なくとも一部を含み得る。この画像は、第2のユーザの顔の画像であり得、第2のユーザの顔の画像は、第1のユーザのためのARコンテンツにおける第2のユーザの表現に組み込まれ得る。そのため、第1のユーザは、第2のユーザのリアルタイムの顔の表情を視認し、それによって、より没入感のあるマルチユーザAR体験を提供し得る。いくつかの場合、第2のユーザの顔の3Dモデルが、ユーザデバイス530bによって捕捉された複数の画像に基づいて生成され得る。この3Dモデルは、第2のユーザの顔の異なる図を生成し、仮想座標系における第1のユーザに対する第2のユーザの向きを反映するために用いられ得る。
第1のユーザのためのARコンテンツにおける音響コンテンツは、ステップ610において取得された第2のユーザの音響を含むか、またはそれに基づき得る。この方式において、第1のユーザは、共有型AR体験における第2のユーザに話を聞くことが可能であり、これは、ユーザ間の言語的コミュニケーションを可能にし得る。加えて、または、あるいは、アイテムのモデルに関連付けられた音等の他の音響コンテンツが、ARコンテンツに含まれ得る。
いくつかの実装では、音響コンテンツは、第1のユーザの位置、および、ユーザまたはオブジェクトが音響コンテンツにおける音を発生させる位置に基づいて空間化され得る。空間化された音響は、ユーザデバイス530a内の複数のスピーカによって伝達され得る方向性を有する。例として、ステップ610において取得された第2のユーザの録音に基づく音響コンテンツは、仮想座標系内の第1のユーザの位置に対する第2のユーザの位置に対応する方向性を含み得る。第2のユーザの位置が仮想座標系における第1のユーザの左にある場合、第2のユーザの録音は、ユーザデバイス530aの左のスピーカにおいてのみ再生され得る。これは、第1のユーザが音響コンテンツに基づいて第2のユーザの相対的位置を認識することを可能にし、より没入感のあるAR体験を提供し得る。
ステップ612で生成されたARコンテンツに含まれる触覚コンテンツは、第1のユーザが、例えばアイテムのモデルおよび第2のユーザを含む共有型AR体験における他のオブジェクトに仮想的にタッチし、および触れることを可能にし得る。
ステップ614において、ARコンテンツは、ユーザデバイス530aでの提示のために、プロセッサ504によって出力される。これは、ネットワーク520を介してユーザデバイス530aにARコンテンツのうちの少なくともいくつかを伝送することを含み得る。例えば、ARコンテンツにおける視覚コンテンツは、ユーザデバイス530aのスクリーンに表示され得、ARコンテンツにおける音響コンテンツは、ユーザデバイス530aのスピーカで再生され得る。
いくつかの実装では、ARコンテンツは、第1のユーザのための実世界空間の表現の少なくとも一部を含む。例えば、ユーザデバイス530aでの提示の間、ARコンテンツのうちの少なくともいくつか(例えば、モデルのレンダリング表現および第2のユーザの仮想表現を含む)は、ステップ606において取得された実世界空間の画像上に重ねられ得る。そのため、ARコンテンツは、第1のユーザの実世界周囲環境上に重ね合わせられ得る。
ARコンテンツを実世界空間の画像上に重ねることは、ARエンジン502またはユーザデバイス530aで実施され得る。例として、モデルのレンダリング表現および第2のユーザの仮想表現は、ARエンジン502で生成され、そしてユーザデバイス530aに伝送され得、モデルのレンダリング表現および第2のユーザの仮想表現は、ユーザデバイス530aによって捕捉された画像上に重ねられる。あるいは、ARコンテンツは、第1のユーザのための実世界空間の表現を含まないこともある。その代わり、ARコンテンツは、ユーザデバイス530aにおける透明ディスプレイで提示され、第1のユーザがARコンテンツと実世界とを同時に視認することを可能にし得る。
図6においてステップ614からステップ606へのフィードバック矢印で例証されるように、ステップ606、608、610、612、614は、複数回繰り返され得る。これは、例えば、第1のユーザが共有型AR体験内でナビゲートし、応答として新たなARコンテンツを受信することを可能にし得る。ステップ614の各段階で、第1のユーザのための更新されたARコンテンツが、ユーザデバイス530aに出力され、更新されたARコンテンツは、アイテムのモデルの更新されたレンダリング表現、第2のユーザの更新された表現、新たな音響コンテンツ、および/または新たな触覚コンテンツを含み得る。
仮想座標系内の第1のユーザの位置が実世界空間内の第1のユーザの位置に基づいて決定される場合、AR体験内でのナビゲーションは、第1のユーザが実世界空間内で彼ら自身または彼らのユーザデバイス530aを物理的に移動させることを含み得る。ユーザデバイス530aからの測定値に基づいて、実世界空間における第1のユーザの更新された位置が、ステップ606の各段階で決定され得、その更新された位置が、実世界空間において固定されたままである仮想座標系にマッピングされ得る。仮想座標系における第2のユーザの更新された位置も、ステップ608の各段階で決定され得る。第1のユーザのための更新されたARコンテンツは、そして、第1のユーザおよび第2のユーザの更新された位置に基づいて、ステップ612において生成され得る。ユーザデバイス530aがステップ606の繰り返しを通じて実世界空間のより多くの測定値を捕捉すると、実世界空間の表現も、更新され得る。これは、実世界空間の表現に新たな特徴および/または領域を追加し得る。しかしながら、仮想座標系におけるアイテムのモデルの位置は、経時的に固定されたままであり、したがって、方法600において一度だけ画定される必要があり得る。
図6におけるステップ602、604、606、608、610、612、614の順序が例としてのみ示されていることが留意されるべきである。ステップ602、604、606、608、610、612、614の異なる順序も想定される。例えば、ステップ608は、ステップ606の前に実施され得る。加えて、または、あるいは、ステップ602、604、606、608、610、612、614のうちの2つ以上が、同時に実施され得る。
方法600は、第1のユーザのためのARコンテンツの生成に関しているが、仮想コンテンツは、ARエンジン502によって第2のユーザのためにも生成され得る。さらなるユーザも、共有型AR体験に存在し、ARエンジン502によって生成される関連付けられた仮想コンテンツを受信し得る。第2のユーザのための仮想コンテンツは、例えば仮想コンテンツ生成部516を用いて生成されるARコンテンツまたはVRコンテンツであり得る。そして、仮想コンテンツは、ユーザデバイス530bでの提示のために出力され得る。仮想コンテンツは:
・仮想座標系内での第2のユーザの位置に基づくモデルのレンダリング表現;
・仮想座標系内での第1のユーザの位置および第2のユーザの位置に基づく第1のユーザの表現;
・音響コンテンツ;および
・触覚コンテンツ
のうちのいずれか1つ以上を含み得る。
ARコンテンツが第2のユーザのために生成される場合、ステップ610、612、614と同様のステップが、ARコンテンツを生成するために実装され得る。あるいは、他の仮想コンテンツが、例えばモデルのレンダリング表現および/または第1のユーザの表現を仮想空間に加えることによって、第2のユーザのために生成され得る。仮想空間は、ユーザ空間レコード512から取得され得る。第2のユーザは、ユーザインタフェース536bを用いて共有型AR体験内でナビゲートし得る。例えば、ユーザインタフェース536bは、仮想座標系内の第2のユーザの位置を移動させるためのボタンを含み得る。
ここで、ある実施形態による、顧客および商人のための共有型AR体験を例証している図7~図10への参照がなされる。顧客および商人は、異なる物理的場所にいるが、彼らのそれぞれのデバイスを用いて共有型AR体験における直立したキッチンミキサと仮想的に相互作用しているユーザである。図7は、第1の時点での共有型AR体験の仮想座標系700の斜視図であり、図8は、第1の時点での共有型AR体験のためのARコンテンツ802を表示する顧客デバイス800を例証しており、図9は、第2の時点での共有型AR体験の仮想座標系700の斜視図であり、図10は、第2の時点での共有型AR体験のためのさらなるARコンテンツ1002を表示する顧客デバイス800を例証している。図8および図10において、顧客デバイス800は、商人が共有型AR体験に存在していることを示す指示810、共有型AR体験を退出するためのオプション812、商人が顧客の話を聞こえないように顧客デバイス800のマイクロフォンをミュートにするためのオプション814、および他の機能にアクセスするためのオプション816も表示している。図7~図10の共有型AR体験は、少なくとも部分的に方法600を用いて提供され得る。
図7~図10に例証されている商人および顧客のための共有型AR体験は、数多くの異なる方法のうちのいずれかで開始され得る。いくつかの実装では、共有型AR体験は、方法600のステップ602で開始される。一例では、顧客は、顧客デバイス800において個人的AR体験を開始し、彼らのキッチンにおいて仮想的にミキサを視認し、および/またはそれと相互作用し得る。そして、顧客は、例えば顧客が商人にミキサに関する質問を有している場合、AR体験に商人を招待し得る。AR体験に商人を招待する行為が、マルチユーザAR体験を開始し得る。別の例では、AR体験は、顧客と商人とのために同時に開始され得る。そのため、AR体験がマルチユーザAR体験として開始される。顧客は、商人にミキサに関する質問を尋ねるために、商人との共有型AR体験を開始し得る。あるいは、顧客が、商人にミキサに関する質問を送り得、商人は、顧客の質問に答えることに役立つように、顧客との共有型AR体験を開始し得る。
図7および図9に示されるように、仮想座標系700は、x軸、y軸およびz軸を含むデカルト座標系である。直立したキッチンミキサの3D仮想モデル702は、仮想座標系700の原点に位置付けられている。モデル702の位置は、第1の時点と第2の時点との間で変化しない。そのため、モデル702は、仮想座標系700につなぎ止められているとみなされ得る。いくつかの実装では、モデル702は、方法600のステップ604において取得される。
顧客の3D仮想モデル704および商人の3D仮想モデル706も、仮想座標系700内に位置付けられる。モデル704、706の各々は、仮想ユーザデバイスを保持する仮想の手を描写している。仮想座標系700におけるモデル704の位置は、方法600のステップ606で決定され得る顧客の位置に対応し、モデル706の位置は、方法600のステップ608で決定され得る商人の位置に対応する。例えば、顧客デバイス800から取得された情報に基づいて、仮想座標系700内の顧客の位置が決定され得る。顧客デバイス800は、光画像、lidarおよび/またはレーダを通じて顧客のキッチンの表現を取得し、キッチン内での顧客の位置を決定し得る。顧客は、彼らがミキサのモデル702が特定の向きでキッチンカウンター上に位置付けられるべきことを望むことを示し得る。そして、仮想座標系700は、図8および図10に示されるように、キッチンカウンター上にミキサのモデル702を位置付けるために、キッチンの表現にマッピングされ得る。同様に、仮想座標系700内の商人の位置は、商人デバイス(示されず)からの情報に基づいて決定され得る。
仮想座標系700におけるモデル704、706の一方または両方の位置は、第1の時点と第2の時点との間で変化し得、位置の変化は、仮想座標系700内での顧客および/または商人の移動に対応する。例えば、図7および図8に示されるように、第1の時点で、顧客および商人が、仮想座標系700においてミキサのモデル702の概して反対側に位置付けられている。その後、図9および図10に示される第2の時点において、顧客および商人は、仮想座標系700において、ミキサのモデル702の同一の側に概して位置付けられる。第1の時点と第2の時点との間の顧客の移動は、顧客が彼らのキッチン内で物理的に移動することに対応し得る。顧客デバイス800は、継続的に、測定値を通じてキッチンにおける顧客の位置を決定し、キッチンのカウンター上のミキサの固定位置を用いて、この位置を仮想座標系700にマッピングし得る。
ARコンテンツ802、1002は、方法600のステップ612の別の段階で生成され得るARコンテンツの例である。ステップ612の第1の段階で、ARコンテンツ802が生成され得る。ARコンテンツ802は、ミキサの仮想表現804と、商人の仮想表現806とを含む。仮想表現804は、第1の時点での仮想座標系700における顧客の位置に基づいて生成されたミキサのモデル702のレンダリング表現である。同様に、仮想表現806は、第1の時点での仮想座標系700における顧客の位置および商人の位置に基づいて生成されたモデル706のレンダリング表現である。ステップ612の第2の段階で、ARコンテンツ1002が生成され得る。ARコンテンツ1002も、ミキサの仮想表現1004を含み、ミキサの仮想表現1004は、第2の時点での仮想座標系700における顧客の位置に基づいて生成されたミキサのモデル702のレンダリング表現である。
例証されるように、ARコンテンツ802、1002は、顧客デバイス800によって捕捉された顧客のキッチンの画像上に重ねられる。そのため、顧客は、仮想表現804、1004を通じて、彼らのキッチンにおいてミキサを視認し得る。さらに、顧客は、商人の仮想表現806を通じて、第1の時点で商人がどのようにミキサを視認しているかを見ることができる。仮想表現806において描写されるモバイルデバイスの位置に基づいて、顧客は、商人の視点を認識し得る。仮想表現806において描写されるモバイルデバイスの向きは、仮想座標系700における商人の向きの指示の例である。共有型AR体験によって、商人および顧客は、互いのミキサの視認を認識することが可能であり、それは、彼らのコミュニケーションのためのコンテキストを提供する。
図9に示されるように、商人は、第2の時点で、仮想座標系700における顧客の視界にいない。したがって、ARコンテンツ1002は、商人の仮想表現を含まない。しかしながら、ARコンテンツ1002は、依然として、第2の時点での仮想座標系700における商人の位置の指示を提供し得る。例えば、商人の声の記録に対応する音響コンテンツが、ARコンテンツ1002に含まれ得る。この音響コンテンツは、仮想座標系700における顧客の位置に対する商人の位置に対応する方向性を含み得る。したがって、顧客は、音響コンテンツの方向性に基づいて、第2の時点での仮想座標系700における商人の位置を決定することが可能であり得る。
図7~図10に示されていないが、仮想コンテンツは、共有型AR体験において商人のためにも生成され得る。いくつかの実装では、商人のための仮想コンテンツは、ARコンテンツである。しかしながら、仮想コンテンツは、その代わり、VRコンテンツであるか、または単にミキサの3Dモデル702の図であり得る。商人のための仮想コンテンツは、商人デバイスに出力され得る。いくつかの実装では、商人のための仮想コンテンツは、顧客デバイス800によって捕捉された画像を含み得る。これは、顧客が製品を使用することを望む実世界空間(すなわち、顧客のキッチン)への視界を商人に提供し得る。
ユーザ相互作用の仮想表現を有するマルチユーザARコンテンツを生成すること
図6~図10は、マルチユーザAR体験における異なるユーザの仮想表現を実装することに関しており、それは、AR体験内でのユーザコミュニケーションを向上させることに役立ち得る。しかしながら、AR体験における複数のユーザ間のコミュニケーションを向上させる方法は、ユーザの仮想表現の実装に限定されない。本開示の別の側面は、仮想ユーザ相互作用を含むマルチユーザARコンテンツを生成することに関している。このマルチユーザARコンテンツは、複数の同時ユーザのための共有型相互作用可能AR体験を提供し得る。AR体験内での1人のユーザの仮想相互作用が、AR体験における他のユーザ(単数または複数)に伝達される。そのような相互作用の例は、ユーザがAR体験における仮想アイテムに向かってジェスチャをすること、および、さらに、ユーザが仮想アイテムにタッチすることも含む。AR体験において仮想相互作用を表示することは、異なるユーザ間の非言語的コミュニケーションを向上させることを助け得る。
図11は、ある実施形態による。仮想ユーザ相互作用を有する共有型AR体験のためのARコンテンツを生成する方法1100を例証するフロー図である。方法1100は、図5のARエンジン502によって実施されるように説明され、共有型AR体験は、ユーザデバイス530aの第1のユーザと、ユーザデバイス530bの第2のユーザとを少なくとも含む。しかしながら、方法1100の少なくとも一部は、代わりに、例えばユーザデバイス530aおよび/またはユーザデバイス530b等の別の場所で実施されることもある。
ステップ1102は、プロセッサ504が共有型AR体験における第1のユーザへの提示のための初期仮想コンテンツを生成することを含む随意のステップである。例えばARコンテンツまたはVRコンテンツであり得るこの初期仮想コンテンツは、本明細書中で開示される任意の方法を用いて生成され得る。例えば、初期仮想コンテンツは、図6の方法600を用いて生成されるARコンテンツであり得る。初期仮想コンテンツは、共有型AR体験の仮想座標系内に画定された3Dモデルのレンダリング表現を含み得る。初期仮想コンテンツは、第2のユーザの仮想表現、音響コンテンツ、および/または触覚コンテンツ等の他のコンテンツも含み得る。
ステップ1104において、プロセッサ504は、ユーザデバイス530aでの提示のために初期仮想コンテンツを出力する。そのため、第1のユーザは、ユーザデバイス530aを介して初期仮想コンテンツを視認し、および/またはそれと相互作用することが可能である。いくつかの実装では、ステップ1102において生成される初期仮想コンテンツは、第2のユーザのために生成されるARコンテンツである。したがって、第1のユーザは、第2のユーザがステップ1104において視認しているARシーンを見ることができる。
ステップ1106は、プロセッサ504が第1のユーザとユーザデバイス530aで提示される初期仮想コンテンツとの間の相互作用の位置を取得することを含む。そして、相互作用の位置は、メモリ506内、または別の非一過性のコンピュータ読み取り可能な媒体内に記憶され得る。第1のユーザと初期仮想コンテンツとの間の相互作用は、初期仮想コンテンツに関する第1のユーザによって実施される任意の行動を含み得る。例として、相互作用は、第1のユーザが初期仮想コンテンツにおいてモデルのレンダリング表現を仮想的に指し示すこと、それを掴むこと、または、それにタッチすることすら含み得る。モデルのレンダリング表現は、仮想座標系内に画定されるので、相互作用の位置は、仮想座標系内で決定され得る。いくつかの場合、相互作用のタイプも、ステップ1106で決定される。例えば、相互作用は、指し示す相互作用、掴む相互作用、またはタッチする相互作用として分類され得る。
第1のユーザと初期仮想コンテンツとの間の相互作用の位置は、数多くの異なる方式のうちのいずれかで決定され得、方式は、仮想コンテンツの形態に依存し得る。例えば、VRコンテンツとのユーザ相互作用は、ARコンテンツとのユーザ相互作用と異なり得、その結果、相互作用の位置を決定する方法は、ARコンテンツのためとVRコンテンツのためとで異なり得る。
いくつかの実装では、第1のユーザと初期仮想コンテンツとの間の相互作用は、第1のユーザがユーザデバイス530aを用いて初期仮想コンテンツにおける2次元(2D)ポイントを選択することを含む。例えば、ユーザデバイス530aは、第1のユーザに初期仮想コンテンツの少なくとも一部を表示する2Dディスプレイスクリーンを含み得る。第1のユーザは、初期仮想コンテンツにおける2Dポイントに対応するディスプレイスクリーン上でのポイントを選択し得る。ディスプレイスクリーンがタッチスクリーンである場合、2Dポイントは、タッチアクションを用いて選択され得る。あるいは、2Dポイントは、例えばマウスカーソル等のカーソルを用いて選択され得る。いくつかの場合、第1のユーザは、初期仮想コンテンツにおけるモデルのレンダリング表現における特定のコンポーネントを指し示し得、2Dポイントは、モデルのレンダリング表現におけるこのコンポーネントに対応し得る。
第1のユーザによって選択される初期仮想コンテンツにおける2Dポイントは、仮想座標系内の相互作用の位置を決定するために、仮想座標系にマッピングされ得る。このマッピングは、仮想座標系内の第1のユーザの位置(場所および向きを含む)に基づき得る。方法600のステップ606、608は、仮想座標系におけるユーザの位置を取得する例を提供する。
いくつかの実装では、初期仮想コンテンツにおける2Dポイントは、仮想座標系内の第1のユーザの位置に対応する仮想座標系の平面内の2Dポイントにマッピングされる。平面への法線ベクトルは、仮想座標系における第1のユーザの観測点または視点を画定する。そのため、平面内の2Dポイントを通って伸びる法線ベクトルは、仮想座標系における第1のユーザの視点の方向に伸びる3Dラインを提供し得る。法線ベクトルは、仮想座標系においてモデルと交差し得、仮想座標系において結果として生じる交差の3Dポイントは、第1のユーザと初期仮想コンテンツとの間の相互作用の位置の基礎を形成し得る。
よって、第1のユーザと初期仮想コンテンツとの間の相互作用が初期仮想コンテンツにおける2Dポイントの選択物を含むとき、相互作用の位置は、仮想座標系内の第1のユーザの位置のみならず、初期仮想コンテンツにおける2Dポイントの位置にも基づき得る。そのような場合、ステップ1106は、仮想座標系内の第1のユーザの位置に基づいて、仮想座標系の平面内の2Dポイントに初期仮想コンテンツ内の2Dポイントをマッピングすることを含み得る。そして、仮想座標系の平面内の2Dポイントを通って伸び、仮想座標系の平面に垂直であるベクトルが決定され得る。第1のユーザと初期仮想コンテンツとの間の相互作用の位置は、ベクトルがモデルと交差する仮想座標系内の交差の3Dポイントに基づき得る。相互作用の向きは、仮想座標系内のモデルに対するベクトルの向きに基づき得る。
いくつかの実装では、第1のユーザと初期仮想コンテンツとの間の相互作用は、共有型AR体験の仮想座標系にマッピングされる第1のユーザの特徴(例えば、第1のユーザの手)を用いて発生する。この第1のユーザの特徴は、第1のユーザが初期仮想コンテンツと相互作用するための任意の手段を含み得、いくつかの場合、ステップ1102で生成された初期仮想コンテンツの形態に依存する。第1のユーザの特徴は、3Dで制御可能であり得、それは、仮想座標系内の特徴の第1のユーザの拘束されない移動を可能にし得る。
第1のユーザと初期化王コンテンツとの間の相互作用が第1のユーザの特徴を用いて発生する場合、仮想座標系内の相互作用の位置は、仮想座標系内の特徴の位置に基づき得る。そのため、ステップ1106は、仮想座標系内の特徴の位置を取得することを含み得る。いくつかの実装では、仮想座標系内の特徴の位置は、第1のユーザに関連付けられた実世界空間または仮想空間内の特徴の位置に基づいて決定される。この空間の表現および空間内のモデルの位置が取得され得、それは、仮想座標系が空間内のモデルの位置に基づいて空間にマッピングされることを可能にし得る。このマッピングは、仮想座標系内の特徴の位置が、空間内の特徴の位置に基づいて決定されることを可能にする。空間内および/または仮想座標系内の第1のユーザの特徴の位置を決定することは、特徴の向きを決定することを含み得ることが留意されるべきである。仮想座標系を実世界空間または仮想空間にマッピングすることに関するさらなる詳細は、本明細書の他の場所でも見出され得る。
いくつかの実装では、第1のユーザのための初期仮想コンテンツは、ARコンテンツを含み、第1のユーザの特徴は、実世界空間から仮想座標系へマッピングされる実世界特徴である。実世界特徴の例は、ユーザの手等の解剖学的特徴である。仮想座標系が第1のユーザを囲む実世界空間の表現にマッピングされる場合、仮想座標系における実世界特徴の位置が決定され得る。
いくつかの実装では、第1のユーザを囲む実世界空間の表現は、ユーザデバイス530aによって捕捉された画像に基づいて生成される。ここで、空間内の第1のユーザの特徴の位置を決定することは、画像において画像分析を実施することを含み得る。画像分析は、画像分析部514を用いて実施され得る。例として、ユーザデバイス530aは、第1のユーザの手を認識し得る画像または他の測定値を取得し、実世界空間内の手の位置を決定し得る。第1のユーザは、実世界空間における彼らの手の検出可能性を向上させることに役立つように、AR専用グローブを着用し得る。そして、第1のユーザの手の位置は、仮想座標系にマッピングされ得る。第1のユーザは、実世界空間内の彼らの手を移動させ得、それは、仮想座標系における第1のユーザの手の対応する移動をもたらし得る。したがって、第1のユーザは、例えば仮想座標系においてモデルを指し示し、またはそれにタッチすることによって、ARコンテンツと相互作用し得る。
仮想座標系における第1のユーザの解剖学的特徴の位置は、第1のユーザと初期仮想コンテンツとの間の相互作用の位置に対応し得る。いくつかの実装では、実世界空間における第1のユーザの解剖学的特徴の検出が、初期仮想コンテンツとの相互作用とみなされ得る。したがって、仮想座標系における解剖学的特徴の位置は、継続的に決定され得る。いくつかの実装では、実世界空間における解剖学的特徴の測定値は、初期仮想コンテンツとの相互作用と解釈される解剖学的特徴によって実施される個別の行動を検出するために分析される。例えば、解剖学的特徴が第1のユーザの手である場合、指し示すことおよび掴むこと等のジェスチャが、検出され、相互作用と解釈され得る。そして、これらのジェスチャを実行するときの手の位置が、決定され得る。
第1のユーザの特徴は、常に実世界特徴であるわけではないこともある。その代わり、特徴は、ユーザデバイス530aを用いて第1のユーザによって収集された仮想特徴であり得る。これは、初期仮想コンテンツが第2のユーザのために生成されたVRコンテンツであるかまたはARシーンである場合に当てはまり得る。仮想特徴のある例は、ユーザデバイス530aを用いて第1のユーザによって制御されるカーソルである。ユーザデバイス530aは、カーソルの移動を可能にする1つ以上のコントロール(ジョイスティック等)を含み得る。カーソルは、共有型AR体験の仮想座標系にマッピングされ、第1のユーザがカーソルを仮想座標系内の3Dポイントにナビゲートすることを可能にし得る。カーソルは、初期仮想コンテンツと相互作用するために用いられ得、従って、カーソルの位置は、仮想座標系内での第1のユーザと初期仮想コンテンツとの間の相互作用の位置に対応し得る。
ステップ1106において第1のユーザと初期仮想コンテンツとの間の相互作用の位置を取得することは、ユーザデバイス530aから情報を取得することを含み得る。この情報の形態は、第1のユーザと初期仮想コンテンツとの間の相互作用のタイプに依存する。相互作用が、第1のユーザデバイスを用いた初期仮想コンテンツにおける2Dポイントの選択を含む場合、ユーザデバイス530aから取得された情報は、この2Dポイントの指示を含み得る。例えば、初期仮想コンテンツにおける2Dポイントに対応する座標またはピクセルは、ユーザデバイス530aから取得された情報に含まれ得る。相互作用が、仮想座標系にマッピングされている第1のユーザの特徴の使用を含む場合、ユーザデバイス530aから取得された情報は、第1のユーザの特徴の位置の指示を含み得る。そのような情報の例は、実世界空間における第1のユーザの解剖学的特徴の測定値、および/またはユーザデバイス530aを用いて第1のユーザによって制御されるカーソルの位置の指示を含む。
いくつかの場合、ステップ1106が、共有型AR体験の仮想座標系における複数のユーザ相互作用の位置を取得することを含み得ることが、留意されるべきである。これらのユーザ相互作用は、共有型AR体験において、第1のユーザ、第2のユーザおよび/または他のユーザによって実施され得る。
いくつかの実装では、ステップ1106のうちの少なくともいくつかが、ユーザデバイス530aによって実施され得る。例えば、ユーザデバイス530aは、実世界空間および/または仮想座標系内の第1のユーザの解剖学的特徴の位置を取得することに役立つように用いられ得る。ユーザデバイス530aは、画像分析を実施し、実世界空間内の特徴の位置を決定することに役立ち得る。
ステップ1108は、プロセッサ504が第2のユーザのためのARコンテンツを生成することを含む。ARコンテンツは、仮想座標系内の第2のユーザの位置に基づく共有型AR体験におけるモデルのレンダリング表現を含む。ユーザの位置を決定する例は、方法600のステップ606、608において提供される。ARコンテンツは、ステップ1106において決定された相互作用の位置、および随意に、仮想座標系における第1のユーザの位置に基づく、第1のユーザと初期仮想コンテンツとの間の相互作用の仮想表現をさらに含む。よって、ステップ1108において生成されたARコンテンツを通じて、第2のユーザは、仮想座標系における第1のユーザの相互作用を視認し得る。これは、共有型AR体験におけるモデルを参照することを通じて第1のユーザと第2のユーザとが非言語的にコミュニケーションすることを可能にし得る。他のユーザ相互作用(共有型AR体験において、第1のユーザ、第2のユーザ、および/または別のユーザによって実施される)の仮想表現、第1のユーザの仮想表現、音響コンテンツ、および/または触覚コンテンツも、ステップ1108において生成されたARコンテンツに含まれ得る。
ステップ1108において生成されたARコンテンツは、仮想座標系内の第1のユーザ、第2のユーザ、第1のユーザの相互作用、およびモデルの相対的位置を反映し得る。そのため、第1のユーザと初期仮想コンテンツとの間の相互作用がモデルの特定のコンポーネントに対応する仮想座標系内の位置で発生する場合、ARコンテンツは、このモデルの特定のコンポーネントでの相互作用を描写し得る。つまり、ARコンテンツは、相互作用がモデルの特定のコンポーネントに対応することを示し得る。
ARコンテンツにおける相互作用の仮想表現の形態は、本明細書中で限定さない。1つ以上のオブジェクト、シンボル、光、および/または色が、ARコンテンツにおける相互作用の仮想表現を提供するために用いられ得る。一例では、相互作用が、第1のユーザがディスプレイスクリーンを用いて初期仮想コンテンツにおける2Dポイントを選択することを含む場合、相互作用の仮想表現は、仮想座標系における相互作用の位置が照射され、円で囲まれ、または異なる色に変化させられることを含み得る。別の例では、相互作用が、第1のユーザの手を用いて実施される実世界の指し示すジェスチャを含む場合、相互作用の仮想表現は、指し示すジェスチャを実施する手の形状のオブジェクトを含み得る。手の形状は、第1のユーザの手の測定された形状を反映し得る。
いくつかの実装では、ARコンテンツにおける相互作用の仮想表現は、仮想座標系における相互作用の向きの指示を含む。相互作用の位置が2Dポイントから伸びるベクトルに基づいて決定される場合、相互作用の向きは、ベクトルの方向に基づき得る。相互作用の仮想表現は、例えば矢印を用いたベクトルの向きの指示を提供し得る。相互作用の位置が第1のユーザの特徴の位置に基づいている場合、相互作用の表現は、特徴の向きの指示を含み得る。例として、相互作用の仮想表現が仮想的な指し示すジェスチャを含む場合、指し示すジェスチャの向きは、仮想座標系における相互作用の向きに基づき得る。あるいは、指し示すジェスチャの向きは、第2のユーザの位置に(例えば、それにのみ)基づき得、それによって指し示すジェスチャは、第2のユーザに対して固定された向きにある。例えば、指し示すジェスチャの方向は、顧客が指し示すジェスチャの方向をより良く認識し得るように、顧客の観測点に対して垂直であり得る。
ステップ1110は、プロセッサ504がユーザデバイス530bでの提示のためにARコンテンツを出力することを含む。いくつかの場合、ステップ1110は、方法600のステップ614と同様の態様で実施される。
ステップ1110からステップ1102への矢印を用いて例証されるように、方法1100は、複数回繰り返され得る。方法1100の各段階において、更新された仮想コンテンツが、生成され、第1のユーザに提示され得、第1のユーザと仮想コンテンツとの間の相互作用の位置が、取得され得る。そして、相互作用の表現を含む更新されたARコンテンツが、生成され、第2のユーザに提示され得る。第1のユーザは、方法1100の複数の段階の間、彼らの相互作用を開始し、停止し、および/または変更し得、彼らの相互作用は、第2のユーザのために生成された更新されたARコンテンツにおいて伝達され得る。
方法1100が第2のユーザと第2のユーザのためのARコンテンツとの間の相互作用の仮想表現を含む第1のユーザのためのARコンテンツを生成するためにも実施され得ることが、留意されるべきである。これらの場合、ステップ1102、1104は、ステップ1108、1110と同様であり得るが、第2のユーザのためではなく第1のユーザのためのARコンテンツを生成し得、ステップ1106は、第2のユーザとARコンテンツとの間の相互作用の位置を決定し得る。
図12~図16は、共有型AR体験におけるユーザ相互作用の例を例証しており、共有型AR体験は、図7~図10を参照して上記で議論されたものと同一のAR体験である。共有型AR体験は、顧客および商人が仮想座標系700において直立したキッチンミキサのモデル702と相互作用することを含む。図12~図16の共有型AR体験は、少なくとも部分的に方法1100を用いて提供され得る。
図12は、共有型AR体験のための仮想コンテンツ1202を表示する商人デバイス1200を例証している。仮想コンテンツ1202は、空白の空間上に重ねられたミキサのモデル702のレンダリング表現1204を含む。モデル702のレンダリング表現1204は、仮想座標系700におけるモデル702に対する商人の位置に基づいて生成される。仮想コンテンツ1202は、商人を囲むどの実世界空間上にも重ねられず、したがって、仮想コンテンツ1202は、VRコンテンツとみなされ得る。いくつかの実装では、仮想コンテンツ1202は、方法1100のステップ1102において生成される。商人デバイス1200は、顧客が共有型AR体験に存在することの指示1208をさらに表示する。
商人は、商人デバイス1200を用いて仮想コンテンツ1202と相互作用し得、商人と仮想コンテンツ1202との間のこの相互作用の位置は、方法1100のステップ1106において決定され得る。
図13および図14は、商人と仮想コンテンツ1202との間の相互作用の第1の例を例証している。図13は、第1の例示的相互作用の間の共有型AR体験のための仮想座標系700の斜視図である。図13は、ミキサのモデル702と、顧客のモデル704と、商人のモデル706とを含む。商人と仮想コンテンツ1202との間の第1の例示的相互作用において、商人は、彼らの指またはカーソルを用いて、仮想コンテンツ1202において2Dポイント(図12において1206で示される)を選択する。選択された2Dポイント1206は、ミキサのつまみに対応する。仮想座標系700における第1の例示的相互作用の位置を決定するために、仮想コンテンツ1202における選択された2Dポイント1206が、図13に示される仮想座標系700の平面1300における2Dポイントにマッピングされる。平面1300は、仮想座標系700における商人の位置および視点に対応する。ベクトル1302は、平面1300における2Dポイントから伸び、平面1300に対して垂直である。ベクトル1302は、仮想座標系700においてミキサのモデル702と交差する。図13において1304で示される交差の3Dポイントは、ミキサのつまみに対応する。そして、商人と仮想コンテンツ1202との間の第1の例示的相互作用の位置が、仮想座標系700における交差の3Dポイント1304と、随意にベクトル1302の向きとに基づいて決定され得る。
図14は、商人と仮想コンテンツ1202との間の第1の例示的相互作用中の共有型AR体験のためのARコンテンツ1402を表示する顧客デバイス800を例証している。ARコンテンツ1402は、仮想座標系700における顧客、商人、およびミキサのモデル702のそれぞれの位置に基づくミキサのレンダリング表現1404と商人の仮想表現1406とを含む。ARコンテンツ1402は、商人と仮想コンテンツ1202との間の第1の例示的相互作用の仮想表現1408をさらに含む。ARコンテンツ1402における仮想表現1408は、顧客の位置に対する仮想座標系700における交差の3Dポイント1304に基づいている。仮想表現1408は、ミキサのつまみの周りの円として描写されており、ミキサのつまみは、図12の仮想コンテンツ1202において選択された2Dポイント1206で示される同じつまみである。したがって、商人および顧客は共有型AR体験において異なる視点を有するが、商人と仮想コンテンツ1202との間の第1の例示的相互作用は、顧客のためのARコンテンツ1402において正確に描写される。いくつかの実装では、ARコンテンツ1402は、方法1100のステップ1108で生成される。
図15および図16は、商人と仮想コンテンツ1202との間の相互作用の第2の例を例証しており、商人は、彼らの実世界の手を用いて、ミキサのつまみを指し示している。図15は、第2の例示的相互作用の間の共有型AR体験のための仮想座標系700の斜視図である。図15は、商人の手のモデル1500を含む。モデル1500の形状および位置は、ミキサのモデル702上のつまみを商人が指し示すジェスチャを描写する。
いくつかの実装では、商人デバイス1200のカメラまたは別のセンサが、商人の手を検出し、商人を囲む実世界空間における商人の手の位置を決定するために用いられる。そして、仮想座標系700における商人の手の位置が、本明細書中の別の場所で説明されるように、実世界空間に仮想座標系700をマッピングすることによって決定され得る。
図16は、商人と仮想コンテンツ1202との間の第2の例示的相互作用中の共有型AR体験のためのARコンテンツ1602を表示する顧客デバイス800を例証している。ARコンテンツ1602は、仮想座標系700における顧客およびミキサのモデル702のそれぞれの位置に基づくミキサのモデル702のレンダリング表現1604を含む。ARコンテンツ1602は、商人と仮想コンテンツ1202との間の第2の例示的相互作用の仮想表現1606をさらに含む。ARコンテンツ1602における仮想表現1606の位置は、顧客の位置に対する仮想座標系700における商人の手のモデル1500の位置に基づいている。仮想表現1606は、ミキサのつまみを指し示す仮想の手を描写するモデル1500のレンダリング表現である。いくつかの実装では、ARコンテンツ1602は、方法1100のステップ1108において生成される。
商人と仮想コンテンツ1202との間の第1の例示的相互作用および第2の例示的相互作用が商人のために生成されるさらなる仮想コンテンツにおいても提示され得ることが、留意されるべきである。
共有型AR体験を修正すること
本開示のいくつかの実施形態は、共有型AR体験を修正する方法を提供する。これらの方法は、共有型AR体験における1つ以上のユーザの観測点または視点を修正することを含み得る。概して、共有型AR体験における各ユーザは、共有型AR体験の仮想座標系内のユーザの位置に部分的に基づく共有型AR体験内の異なる観測点を有し得る。ユーザの観測点は、ユーザのために生成される仮想コンテンツに反映されている。例えば、仮想アイテムの描写は、共有型AR体験における仮想アイテムのユーザの視点に基づく。本明細書中で開示される共有型AR体験への修正は、共有型AR体験における1つ以上のユーザ観測点を変更し、異なるユーザ間の協力および協働を潜在的に向上させ得る。
本開示のある側面によると、共有型AR体験の仮想座標系における1人のユーザの位置は、別のユーザの位置に合致するように修正され得る。そして、2人のユーザは、AR体験内で共有された観測点または共通の観測点を有し得る。有利なことに、ユーザ観測点が共有されることを可能にすることは、AR体験内でのコミュニケーションおよび協働を向上させ得る。2つのユーザ観測点が少なくとも一時的に重なる場合、2人のユーザは、AR体験内で実質的に同じ基準系を有し得る。これらの実質的に同じ基準系は、2人のユーザ間でのコミュニケーションのために有意なコンテキストを提供し得る。例えば、図4の共有型AR体験を参照すると、第1のユーザは、第2のユーザと実質的に同じミキサの図を有するために、第2のユーザの視点からミキサを視認することを要求し得る。
図17は、ある実施形態による共有型AR体験におけるユーザの観測点を修正する方法1700を例証するフロー図である。方法1700は、図5のARエンジン502によって実施されるように説明され、共有型AR体験は、ユーザデバイス530aの第1のユーザと、ユーザデバイス530bの第2のユーザとを少なくとも含む。しかしながら、その代わり、方法1700の少なくとも一部が、例えばユーザデバイス530aおよび/またはユーザデバイス530b等の他の場所で実施されることもある。
ステップ1702は、プロセッサ504が第1のユーザのための第1のARコンテンツを生成することを含む。第1のARコンテンツは、共有型AR体験の仮想座標系内につなぎ留められまたは画定されるモデルの第1のレンダリング表現を含む。このモデルは、例えばアイテムの3Dモデルであり得る。随意に、第1のARコンテンツは、第2のユーザの仮想表現、1つ以上の仮想ユーザ相互作用の仮想表現、音響コンテンツ、および/または触覚コンテンツも含み得る。ステップ1704において、プロセッサ504は、ユーザデバイス530aでの提示のために第1のARコンテンツを出力する。
いくつかの実装では、ステップ1702、1704は、方法600のステップ602、604、606、608、610、612、614のうちのいずれか、それらのうちのいくつか、もしくはそれらの全てと同様であり、ならびに/または、方法1100のステップ1106、1108、1110のうちのいずれか、それらのうちのいくつか、もしくはそれらの全てと同様である。
ステップ1702において生成されるARコンテンツにおけるモデルの第1のレンダリング表現は、共有型AR体験の仮想座標系内の第1のユーザの初期位置に基づいている。仮想座標系における第1のユーザの位置は、第1のユーザの座標および向きを含み得る。そのため、第1のレンダリング表現は、仮想座標系における第1のユーザの初期位置における第1のユーザの観測点からのものである。
いくつかの場合、ステップ1702は、ユーザデバイス530aによって取得された第1の情報に基づいて、仮想座標系内の第1のユーザの初期位置を決定することを含む。例えば、ユーザデバイス530aから受信される第1の情報は、第1のユーザを囲む実世界空間の表現を含み得る。そして、仮想座標系内の第1のユーザの初期位置を決定することは、空間内のモデルの位置を取得することと、空間内のモデルの位置に基づいて空間に仮想座標系をマッピングすることと、空間内の第1のユーザの位置を決定することとを含み得る。仮想座標系内の第1のユーザの初期位置は、空間内の第1のユーザの位置に基づいて決定され得る。仮想座標系内のユーザの位置を決定することのさらなる詳細および例は、方法600のステップ606を参照して上記で提供される。
仮想コンテンツは、共有型AR体験における第2のユーザのためにも生成され得、仮想コンテンツは、仮想座標系における第2のユーザの位置に基づくモデルのレンダリング表現を含み得る。仮想座標系における第2のユーザの位置は、第2のユーザの座標および向きを含み得る。第1のユーザは、最初、仮想座標系内で第2のユーザと異なる位置にいる。したがって、第1のユーザおよび第2のユーザは、異なる視点からモデルを視認し得る。しかしながら、異なる視点からモデルを視認することは、いくつかの状況においてコミュニケーションを妨げ得る。例えば、第2のユーザは、第1のユーザのための視界にないモデルの特定のコンポーネントに言及することもある。よって、第1のユーザは、仮想座標系内の第2のユーザの位置および観測点からモデルを視認するための要求を生成し得る。あるいは、第2のユーザが、彼らの位置から第1のユーザがモデルを視認する要求を生成することもある。
ステップ1706は、プロセッサ504が仮想座標系内で第1のユーザを第2のユーザの位置に位置替えするための命令を取得することを含む。そして、命令が、メモリ506内または別の非一過性のコンピュータ読み取り可能な媒体内に記憶され得る。ステップ1706で取得される命令の例は、第1のユーザが仮想座標系内の第2のユーザの観測点からモデルを視認するための要求である。上記で留意されるように、命令は、ユーザデバイス530aを介して第1のユーザから、および/またはユーザデバイス530bを介して第2のユーザから、受信され得る。
数多くの異なる動作のうちのいずれかが、第1のユーザまたは第2のユーザによって実施され、仮想座標系内での第2のユーザの位置への第1のユーザの位置替えをトリガするように作用するユーザデバイスへの命令を生成し得る。ある例では、ステップ1702において第1のユーザのために生成されるARコンテンツは、仮想座標系内の異なる位置における第2のユーザの表現を含む。ユーザデバイス530aを通じて、第1のユーザは、ARコンテンツにおける第2のユーザの表現を選択し得る。そして、ユーザデバイス530aは、仮想座標系内で第2のユーザの位置に仮想的に移動するためのオプションを表示し得る。
ステップ1708は、プロセッサ504が第1のユーザのための第2のARコンテンツを生成することを含む。第2のARコンテンツは、仮想座標系内の第2のユーザの位置に基づくモデルの第2のレンダリング表現を含む。つまり、第1のユーザは、仮想座標系において第2のユーザの位置に移動しており、第1のユーザは、第2のユーザの視点からモデル(および潜在的にAR体験における他の仮想オブジェクト)を視認している。ステップ1710は、ユーザデバイス530aでの提示のために第2のARコンテンツを出力することを含む。
いくつかの実装では、ステップ1708は、ユーザデバイス530bによって取得された第2の情報に基づいて、仮想座標系内の第2のユーザの位置を決定することを含む。そして、仮想座標系内の第1のユーザの位置は、第2のユーザの位置に合致するように修正され得る。これらの動作に続いて、仮想座標系内の第1のユーザの位置は、仮想座標系内の第2のユーザの位置と合致し得、したがって、ステップ1708において第1のユーザのために生成されるARコンテンツのうちの少なくともいくつかは、第2のユーザのために生成される仮想コンテンツと実質的に同じであり得る。例えば、第1のユーザおよび第2のユーザの両人が、モデルの第2のレンダリング表現を視認し得る。これは、第1のユーザおよび第2のユーザがAR体験におけるモデルの共有された視点を有することを可能にする。
仮想座標系における第1のユーザの初期位置が、実世界空間における第1のユーザの位置と、実世界空間への仮想座標系のマッピングとに基づいて決定される場合、ステップ1708は、実世界空間に仮想座標系を再びマッピングすることを含み得る。仮想座標系を再びマッピングすることは、実世界空間内の第1のユーザの位置が仮想座標系内の第2のユーザの位置に対応するように、第1のユーザの実世界空間に対して仮想座標系を移動させることを含み得る。仮想座標系は、第1のユーザが実世界空間において静止したままでありながら、第1のユーザに対して移動させられ、したがって、第1のユーザは、実世界空間において能動的に移動することなく、仮想座標系において移動する。モデルは、仮想座標系において固定されたままであり、したがって、実世界空間に対して仮想座標系を移動させることは、実世界空間に対してモデルも移動させる。
ステップ1708において第1のユーザの実世界空間内で仮想座標系を再びマッピングすることは、第2のユーザの(実世界または仮想)空間への仮想座標系のマッピングに影響を及ぼさないこともある。そのため、モデルは、第2のユーザの空間に対して固定されたままであり得る。第1のユーザの実世界空間への仮想座標系の再マッピングは、第2のユーザの視点から、第1のユーザが仮想座標系内で移動するように見え得る。そのため、仮想座標系内の第2のユーザの位置は、仮想座標系内の第1のユーザの位置への修正にもかかわらず、固定されたままであり得る。
いくつかの実装では、ステップ1706において取得された命令は、仮想座標系内の第2のユーザの位置に仮想座標系内の第1のユーザの位置をロックするための命令を含み得る。その結果、仮想座標系内での第1のユーザおよび第2のユーザの移動は、ステップ1708において第2のユーザの位置に第1のユーザの位置を最初に合致させた後、少なくとも一時的に同期させられる。これらの実装では、方法1700は、随意のステップ1712、1714、1716、1718に進み得る。
ステップ1712では、プロセッサ504は、第2のデバイスによって取得された第3の情報に基づいて、第2のユーザが仮想座標系内の新たな位置にあることを決定する。つまり、第2のユーザは、仮想座標系において移動している。これは、例えば仮想座標系がマッピングされている実世界空間内で第2のユーザが物理的に移動することを含み得る。
プロセッサ504は、ステップ1714において第1のユーザのための第3のARコンテンツを生成し、プロセッサ504は、ステップ1716において、ユーザデバイス530aでの提示のために第3のARコンテンツを出力する。第1のユーザの位置が第2のユーザの位置にロックされているので、第1のユーザは、ステップ1714における第2のユーザの新たな位置に移動させられる。第3のARコンテンツは、仮想座標系内の第2のユーザの新たな位置に基づくモデルの第3のレンダリング表現を含む。したがって、第1のユーザのための第3のARコンテンツは、第2のユーザが仮想座標系内の新たな位置にあるときの第2のユーザのための仮想コンテンツに含まれるモデルの同一のレンダリング表現を含み得る。
ステップ1716とステップ1712との間の矢印によって例証されるように、ステップ1712、1714、1716は、複数回実施され得る。これは、第1のユーザの位置が経時的に第2のユーザの位置にロックされ、または固定されたままであることを確実にすることを助け得る。仮想座標系内の第2のユーザの位置が変化すると、仮想座標系における第1のユーザの位置は、適宜修正され得る。事実上、これは、第1のユーザの視点に対する制御を第2のユーザに与える。上記で概説されるように、仮想座標系における第1のユーザの位置を修正することは、第1のユーザを囲む実世界空間への仮想座標系の再マッピングを含み得る。したがって、第1のユーザは、仮想座標系内で第2のユーザと同一の位置にとどまるように物理的に移動する必要はない。
ステップ1718において、プロセッサ504は、仮想座標系内で第2のユーザの位置から第1のユーザの位置をアンロックするためのさらなる命令を取得する。この命令は、ユーザデバイス530aを用いて明示的または暗示的に取得され得る。明示的な要求の例は、第1のユーザがユーザデバイス530aに表示されるボタンを押して彼らの位置をアンロックすることである。暗示的な指示の例は、第1のユーザが仮想座標系内で第2のユーザから離れて移動することであり、それは、第1のユーザが仮想座標系において独立して移動することを望んでいると解釈され得る。
図18~図20は、共有型AR体験におけるユーザ修正の例を例証している。図18~図20は、図7~図10および図12~図16を参照して上記で議論される同一のAR体験に関しており、AR体験は、顧客および商人が仮想座標系700において直立したキッチンミキサのモデル702と相互作用することを含む。図18~図20の共有型AR体験は、少なくとも部分的に方法1700を用いて提供され得る。
図18は、共有型AR体験における顧客のためのARコンテンツ1802を表示する顧客デバイス800を例証している。ARコンテンツ1802は、ミキサのモデル702のレンダリング表現1804と、商人の仮想表現1806とを含む。いくつかの実装では、ARコンテンツ802は、方法1700のステップ1702において生成される。
図18における顧客デバイス800は、仮想座標系700における商人の位置に顧客を位置替えするためのオプション1808と、仮想座標系700において商人の位置にロックするための別のオプション1810とをさらに表示する。例えば、顧客が、ARコンテンツ1802における商人の仮想表現1806か、または商人が共有型AR体験に存在していることの指示810を選択した後、オプション1808、1810が表示され得る。
図19は、顧客がオプション1808、1810のうちの一つを選択して仮想座標系700において商人の位置に位置替えされた後の共有型AR体験の仮想座標系700の斜視図である。図19は、3D仮想モデル1900を描写しており、3D仮想モデル1900は、顧客とモデルとが例証される例において仮想座標系700内の同一の位置に重なっているとき、顧客および商人の両人を表現するために役立つ。
図20は、顧客が仮想座標系700における商人の位置にロックするためのオプション1810を選択した後の共有型AR体験における顧客のためのARコンテンツ2002を表示する顧客デバイス800を例証している。ARコンテンツ2002は、仮想座標系700にける顧客および商人の共有された位置に基づいて生成されたモデル702のレンダリング表現2004を含む。仮想コンテンツは、モデル702の同一のレンダリング表現2004を含む商人のためにも生成され得る。いくつかの実装では、ARコンテンツ2002は、方法1700のステップ1708において生成される。
図20において、顧客デバイス800は、顧客の位置が商人の位置にロックされていることの指示2006をさらに表示する。商人の位置にロックすることは、概して、商人の位置に顧客を最初に位置替えした後、経時的に仮想座標系700において商人の位置に顧客を維持することを含む。指示2006は、商人の位置から顧客をアンロックするためのボタンとしてさらに機能し得る。例えば、顧客は、仮想座標系内で独立して移動するための指示2006を再度選択し得る。
本開示の別の側面によると、共有型AR体験における1人のユーザは、複数のユーザのためのARコンテンツを同時に修正し得る。例として、共有型AR体験の仮想座標系に画定されたモデルは、単一のユーザからの要求に基づいて修正され得る。そして、その結果、共有型AR体験におけるモデルの各ユーザの図が変更され得る。したがって、単一のユーザは、共有型AR体験における複数のユーザのために生成されるARコンテンツの少なくとも一部を制御し得る。有利なことに、モデルへの修正が共有され、繋げられ、またはさもなければ相関させられることを可能にすることは、AR体験内でのコミュニケーションおよび協働を向上させ得る。例えば、図4の共有型AR体験を参照すると、第1のユーザは、仮想座標系におけるミキサのモデルの向きを修正し、ミキサの特定の視点を第2のユーザに実証し得る。
図21は、ある実施形態による、共有型AR体験を修正する方法2100を例証するフロー図である。方法2100は、図5のARエンジン502によって実施されるように説明され、共有型AR体験は、ユーザデバイス530aの第1のユーザと、ユーザデバイス530bの第2のユーザとを少なくとも含む。しかしながら、その代わり、方法2100の少なくとも一部が、例えばユーザデバイス530aおよび/またはユーザデバイス530b等の他の場所で実施されることもある。
ステップ2102は、プロセッサ504が第1のユーザのための第1のARコンテンツを生成することを含む。第1のARコンテンツは、共有型AR体験の仮想座標系内につなぎ留められまたは画定されたモデルの第1のレンダリング表現を含む。このモデルは、例えばアイテムの3Dモデルであり得る。いくつかの実装では、モデルの第1のレンダリング表現は、仮想座標系における第1のユーザの位置に基づいており、第1のユーザの観測点からのものである。随意に、第1のARコンテンツは、第2のユーザの仮想表現、1つ以上の仮想ユーザ相互作用の仮想表現、音響コンテンツ、および/または触覚コンテンツも含み得る。
ステップ2104は、プロセッサ504がユーザデバイス530aでの提示のために第1のARコンテンツを出力することを含む。いくつかの実装では、ステップ2102、2104は、方法600のステップ602、604、606、608、610、612、614のうちのいずれか、それらのうちのいくつか、もしくはそれらの全てと同様であり、ならびに/または、方法1100のステップ1106、1108、1110のうちのいずれか、それらのうちのいくつか、もしくはそれらの全てと同様であり得る。
ARコンテンツまたはVRコンテンツ等の仮想コンテンツは、第2のユーザのためにも生成され、ユーザデバイス530bでも提示され得る。第2のユーザのための仮想コンテンツは、仮想座標系における第2のユーザの位置および観測点に基づくモデルの第2のレンダリング表現を含み得る。
ステップ2106は、プロセッサ504が仮想座標系内に画定された修正されたモデルを生み出すようにモデルを修正することを含む。ステップ2106は、ユーザデバイス530bによって第2のユーザから取得された命令に基づいて実施され得る。命令は、ARエンジン502に伝送され、メモリ506内または別の非一過性のコンピュータ読み取り可能な媒体内に記憶され得る。
ステップ2106においてモデルを修正することは、AR体験の仮想座標系内でモデルを位置替えすることを含み得る。仮想座標系内でモデルを位置替えすることの非限定的な例は、モデルを移動させること、その向きを変えること、反転させること、ねじること、および/または回転させることを含む。いくつかの実装では、仮想座標系内でのモデルの位置替えは、仮想座標系が第1のユーザおよび第2のユーザに対して固定されたままでありながら、仮想座標系からモデルを外すことを含み得る。その結果、モデルは、ユーザデバイス530bによって取得された命令に基づいて、第1のユーザおよび第2のユーザの両方のために同時に位置替えされる。
同様に、または、その代わり、ステップ2106においてモデルを修正することは、仮想座標系においてモデル1つのコンポーネントをモデルの別のコンポーネントに対して位置替えすることによって、モデルを操作し、またはモデルをアニメーション化することを含み得る。例えば、モデルは、いくつかの異なる3Dコンポーネントを含み得る。ユーザデバイス530bによって取得された命令は、仮想座標系内でこれらのコンポーネントのうちの1つまたはいくつかを位置替えするための要求を含み得る。そして、モデルのこれらのコンポーネントは、仮想座標系において外され、位置替えされ得る一方、モデルの他のコンポーネントは固定されたままである。この形式の修正は、モデルのいくつかの機能をシミュレーションし得る。例えば、モデルによって表現されるアイテムは、アイテムの一部分が別の部分に対して移動する機械的機能を実施することが可能であり得る。
加えて、または、あるいは、ステップ2106においてモデルを修正することは、モデルを別のモデルと取り替えることを含み得る。例えば、元のモデルは、商人によって販売されている特定の製品であり得る。第2のユーザは、ユーザデバイス530bを用いて、元のモデルを異なる色またはスタイルの同一の製品のモデル、または異なる製品のモデルと取り替えるための命令を生成し得る。一例では、第2のユーザは、方法2100によって提供される共有型AR体験を用いてテーブル上のセンターピースをショッピングし得る。第2のユーザは、元々、花瓶のモデルを視認しており、そして、花瓶のモデルを彫刻のモデルと取り替えるための命令を生成し得る。
ステップ2108は、第1のユーザのための第2のARコンテンツを生成することを含み、第2のARコンテンツは、ステップ2106において取得された修正されたモデルのレンダリング表現を含む。そして、第2のARコンテンツは、ステップ2110において、ユーザデバイス530aでの提示のために出力される。ステップ2108、2110は、ステップ2102、2104と実質的に同様であり得るが、モデルが修正された後に発生し得る。仮想コンテンツは、第2のユーザのためにも生成され得、修正されたモデルのレンダリング表現を含み得る。
図22~図29は、共有型AR体験への修正の例を例証しており、共有型AR体験は、図7~図10、図12~図16、および図18~図20を参照して上記で議論されたものと同一のAR体験である。共有型AR体験は、顧客および商人が仮想座標系700において直立したキッチンミキサのモデル702と相互作用することを含む。図22~図29の共有型AR体験は、少なくとも部分的に方法2100を用いて提供され得る。
図22および図23は、特定の時点での共有型AR体験を例証している。図22は、共有型AR体験の仮想座標系700の斜視図であり、図23は、共有型AR体験のためのARコンテンツ2302を表示する顧客デバイス800を例証している。ARコンテンツ2302は、ミキサのモデルのレンダリング表現2304と商人の仮想表現2306とを含む。随意に、ARコンテンツ2302は、音響コンテンツ、および/または触覚コンテンツをさらに含み得る。いくつかの実装では、ARコンテン2302は、方法2100のステップ2102において生成される。
図23における顧客デバイス800は、仮想座標系700においてモデル702を位置替えするためのオプション2308と、仮想座標系700においてモデル702を操作するためのオプション2310と、モデル702を別のモデルと取り替えるためのオプション2312とをさらに表示する。オプション2308、2310、2312は、例えば顧客がオプション816を選択すると、顧客に提示され得る。
図24および図25は、顧客および商人のための共有型AR体験を修正する第1の例を例証している。図24は、ミキサのモデル702が位置替えされた後の共有型AR体験のための仮想座標系700の斜視図であり、図25は、ミキサのモデル702が位置替えされた後の共有型AR体験のためのARコンテンツ2502を表示する顧客デバイス800を例証している。ARコンテンツは、位置替えされたミキサのモデル702のレンダリング表現2504と、商人の仮想表現2506とを含む。いくつかの実装では、ARコンテンツ2502は、方法2100のステップ2108において生成される。
図24および図25に示されるように、ミキサのモデル702は、仮想座標系700において垂直に反転させられる(逆向きにされる)ことによって、(図22および図23におけるモデル702の元の位置に対して)位置替えされている。そのため、顧客は、レンダリング表現2504においてミキサのボタンを見ることができる。ミキサのモデル702を反転させることは、顧客から、または商人から受信された命令に基づいて実施され得る。例えば、商人は、顧客とミキサのボタンについて議論することを望み得る。商人は、ミキサのモデル702のボタンを視認するために共有型AR体験の仮想座標系700内の顧客の位置をいくらか修正することを顧客に命令するのでなく(これは不可能であり得る)、その代わり、仮想座標系700内でモデル702を位置替えすることによってモデル702を修正するための命令を生成した。このモデル702の位置替えは、商人のために生成される仮想コンテンツおよび顧客のために生成されるARコンテンツ2502に反映される。
図26および図27は、顧客および商人のための共有型AR体験を修正する第2の例を例証している。図26は、ミキサのモデル702が操作された後の共有型AR体験のための仮想座標系700の斜視図であり、図27は、ミキサのモデル702が操作された後の共有型AR体験のためのARコンテンツ2702を表示する顧客デバイス800を例証している。ARコンテンツ2702は、操作されたミキサのモデル702のレンダリング表現2704と、商人の仮想表現2706とを含む。いくつかの実装では、ARコンテンツ2702は、方法2100のステップ2108において生成される。
図26および図27において示されるように、ミキサのモデル702は、ミキサの基部に対してミキサの頂部を回転させることによって操作されている。これは、ミキサのボウルが取り除かれることを可能にするというミキサの現実の機能をシミュレーションし得、顧客は、この時、ARコンテンツ2702においてそれを見ることができる。共有型AR体験における顧客および商人の視点から、モデル702を操作することは、ミキサの底部に対して移動するミキサの頂部のアニメーションであるように見え得る。いくつかの実装では、モデル702は、複数の異なるモデルまたはコンポーネントの組み合わせであり得、ミキサの基部に対してミキサの頂部を回転させることは、モデル702の1つまたはいくつかのコンポーネントを残りのコンポーネントに対して位置替えすることによって達成され得る。例えば、ミキサの頂部(モータまたは泡立て器を含む)が、第1の3Dコンポーネントによって表現され得、ミキサの基部が、第2の3Dコンポーネントによって表現され得る。共に結合されると、第1の3Dコンポーネントおよび第2の3Dコンポーネントは、ミキサの完全なモデル702を提供する。この例では、第1の3Dコンポーネントは、第2の3Dコンポーネントに対して回転させられ、ミキサの底部に対してミキサの頂部を回転させることをシミュレーションし得る。
ミキサを操作することは、顧客または商人から受信された命令に基づいて実施され得る。例えば、商人は、顧客にミキサの機能を実証することを望み得る。
図28および図29は、顧客および商人のための共有型AR体験を修正する第3の例を例証している。図28は、ミキサのモデル702がブレンダのモデル2802と取り替えられた後の共有型AR体験のための仮想座標系700の斜視図であり、図29は、ミキサのモデル702がブレンダのモデル2802と取り替えられた後の共有型AR体験のためのARコンテンツ2902を表示する顧客デバイス800を例証している。ARコンテンツは、ブレンダのモデル2802のレンダリング表現2904と、商人の仮想表現2906とを含む。いくつかの実装では、ARコンテンツ2902は、方法2100のステップ2108において生成される。
ミキサのモデル702をブレンダのモデル2802と取り替えることは、顧客または商人から受信された命令に基づいて/応答して実施され得る。ある例では、顧客は、商人とミキサおよびブレンダについて議論することを望み得る。顧客がミキサについての質問を訪ね終えた後、顧客は、ミキサのモデル702がブレンダのモデル2802と取り替えられるための要求を生成し得る。この要求は、顧客デバイス800のユーザインタフェースを通じた顧客入力を受信することに応答して生成され得る。そして、要求は、顧客および/または商人のためのARコンテンツを生成するARエンジンに伝送され得る。要求に応答して、ARエンジンは、ミキサのモデル702をブレンダのモデル2802と取り替えるように共有型AR体験を修正し得る。この例では、モデル702,2802の両方が、仮想座標系700において同一の位置を有する。
結論
本発明はその特定の特徴および実施形態を参照して説明されたが、本発明から逸脱せず、種々の修正物および組み合わせ物が作製され得る。よって、説明および図面は、単に、添付の請求項によって定義される本発明のいくつかの実施形態の例証とみなされるべきであり、本発明の範囲内に属する任意のおよび全ての修正物、変更物、組み合わせ物、または同等物を網羅するように想定される。したがって、本発明およびその利点が詳細に説明されたが、種々の変化、代用、および変更が、添付の請求項によって定義される本発明から逸脱せず、本明細書においてなされ得る。そのうえ、本願の範囲は、本明細書中で説明されるプロセス、機械、製造、化合物、手段、方法、およびステップの特定の実施形態に限定されるように意図されていない。当業者は、本発明の開示から、本明細書中で説明される対応する実施形態と実質的に同一の機能を実施し、または同一の結果を達成する、既存または今後開発されるプロセス、機械、製造、化合物、手段、方法、またはステップが、本発明によって活用され得ることを、容易に認識するだろう。よって、添付の請求項は、そのようなプロセス、機械、製造、化合物、手段、方法、またはステップ等のそれらの範囲内に含まれるように意図される。
そのうえ、命令を実行する本明細書中で例示される任意のモジュール、コンポーネント、またはデバイスは、非一過性のコンピュータ/プロセッサ読み取り可能なストレージ媒体(単数または複数)を含むか、さもなければそれらへのアクセスを有し得、非一過性のコンピュータ/プロセッサ読み取り可能なストレージ媒体(単数または複数)は、コンピュータ/プロセッサ読み取り可能な命令、データ構造、プログラムモジュール、および/または他のデータ等の情報のストレージのためである。非一過性のコンピュータ/プロセッサ読み取り可能なストレージ媒体の例の非網羅的なリストは、磁気カスケット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、光学ディスク(コンパクトディスク読み取り専用メモリ(CD-ROM)、デジタルビデオディスクもしくはデジタルバーサタイルディスク(DVD)、Blu-ray(登録商標) Disc、または任意の光学ストレージ等)、任意の方法またはテクノロジで実装される揮発性および不揮発性の除去可能および除去不可能媒体、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、フラッシュメモリまたは他のメモリテクノロジを含む。任意のそのような非一過性コンピュータ/プロセッサストレージ媒体は、デバイスの一部であるか、またはデバイスにアクセス可能もしくは接続可能であり得る。本明細書中で説明される任意のアプリケーションまたはモジュールは、そのような非一過性のコンピュータ/プロセッサ読み取り可能なストレージ媒体によって記憶されているか、さもなければ保持され得るコンピュータ/プロセッサ読み取り可能/実行可能な命令を用いて実装され得る。
本教示は、以下の番号付けされた項目のうちの1つ以上の特徴にも拡張され得る。
(項目1)
コンピュータ実装方法であって、前記コンピュータ実装方法は、
第1のユーザと第1のデバイスに提示された仮想コンテンツとの間の相互作用の位置を取得することであって、前記仮想コンテンツは、仮想座標系内に画定された3D(3次元)モデルの第1のレンダリング表現を備え、前記相互作用の前記位置は、前記仮想座標系内に画定される、ことと、
拡張現実(AR)コンテンツを生成することであって、前記ARコンテンツは、
前記仮想座標系内の第2のユーザの位置に基づく前記モデルの第2のレンダリング表現であって、前記第2のユーザの前記位置は、第2のデバイスによって取得された情報に基づいている、前記モデルの第2のレンダリング表現と、
前記相互作用の前記位置に基づく前記相互作用の仮想表現と
を備えている、ことと、
前記第2のデバイスでの提示のために前記ARコンテンツを出力することと
を含む、コンピュータ実装方法。
(項目2)
前記仮想座標系内の前記第1のユーザの位置を取得することをさらに含み、
前記相互作用の前記位置は、前記仮想座標系内の前記第1のユーザの前記位置に基づいている、項目1に記載のコンピュータ実装方法。
(項目3)
前記相互作用は、前記第1のデバイスを用いた前記仮想コンテンツにおける2次元(2D)ポイントの選択を含み、
前記相互作用の前記位置を取得することは、
前記仮想座標系内の前記第1のユーザの前記位置に基づいて、前記仮想コンテンツにおける前記2Dポイントを前記仮想座標系の平面における2Dポイントにマッピングすることと、
前記仮想座標系の前記平面における前記2Dポイントを通って伸びているベクトルを決定することであって、前記ベクトルは、前記仮想座標系の前記平面に対して垂直である、ことと、
前記ベクトルが前記モデルと交差する前記仮想座標系内の交差の3Dポイントを決定することと、
を含み、
前記相互作用の前記位置は、前記仮想座標系内の交差の3Dポイントに基づいている、項目2に記載のコンピュータ実装方法。
(項目4)
前記相互作用の前記位置を取得することは、前記仮想座標系内の前記モデルに対する前記ベクトルの向きを決定することをさらに含み、
前記相互作用の前記仮想表現は、前記ベクトルの前記向きの指示を備えている、項目3に記載のコンピュータ実装方法。
(項目5)
前記仮想座標系内の前記相互作用の前記位置を取得することは、前記仮想座標系の前記第1のユーザの特徴の位置を取得することを含み、
前記仮想座標系内の前記相互作用の前記位置は、前記仮想座標系内の前記第1のユーザの前記特徴の前記位置に基づいている、項目1に記載のコンピュータ実装方法。
(項目6)
前記第1のデバイスを用いて、空間の表現を取得することをさらに含み、
前記仮想座標系内の前記第1のユーザの前記特徴の前記位置を取得することは、
前記空間内の前記モデルの位置を決定することと、
前記空間内の前記モデルの前記位置に基づいて、前記空間に前記仮想座標系をマッピングすることと、
前記空間内の前記第1のユーザの前記特徴の位置を決定すること
を含み、
前記仮想座標系内の前記第1のユーザの前記特徴の前記位置は、前記空間内の前記第1のユーザの前記特徴の前記位置に基づいている、項目5に記載のコンピュータ実装方法。
(項目7)
前記第1のユーザの前記特徴は、前記第1のユーザの解剖学的特徴である、項目6に記載のコンピュータ実装方法。
(項目8)
前記第1のユーザの前記特徴は、前記第1のデバイスを用いて前記第1のユーザによって制御されるカーソルである、項目6に記載のコンピュータ実装方法。
(項目9)
前記空間の前記表現は、前記第1のデバイスによって捕捉された前記空間の画像を備え、
前記空間内の前記第1のユーザの前記特徴の前記位置を決定することは、前記画像の画像分析に基づいている、項目6に記載のコンピュータ実装方法。
(項目10)
前記仮想座標系内の前記第1のユーザの前記特徴の前記位置を決定することは、前記仮想座標系内の前記第1のユーザの前記特徴の向きを決定することを含み、
前記相互作用の前記表現は、前記第1のユーザの前記特徴の前記向きの指示を備えている、項目5に記載のコンピュータ実装方法。
(項目11)
前記ARコンテンツは第1のARコンテンツであり、
前記仮想コンテンツは、第2のARコンテンツを備えている、項目1に記載のコンピュータ実装方法。
(項目12)
システムであって、前記システムは、
第1のユーザと第1のデバイスで提示される仮想コンテンツとの間の相互作用の位置を記憶しているメモリであって、前記仮想コンテンツは、仮想座標系内に画定される3次元(3D)モデルの第1のレンダリング表現を備え、前記相互作用の前記位置は、前記仮想座標系内に画定されている、メモリと、
少なくとも1つのプロセッサであって、前記少なくとも1つのプロセッサは、
拡張現実(AR)コンテンツを生成することであって、前記ARコンテンツは、
前記仮想座標系内の第2のユーザの位置に基づく前記モデルの第2のレンダリング表現であって、前記第2のユーザの前記位置は、第2のデバイスによって取得された情報に基づいている、前記モデルの第2のレンダリング表現と、
前記相互作用の前記位置に基づく前記相互作用の仮想表現と
を備えている、ことと、
前記第2のデバイスでの提示のために前記ARコンテンツを出力することと
を行うように構成されている、少なくとも1つのプロセッサと
を備えている、システム。
(項目13)
前記少なくとも1つのプロセッサは、前記仮想座標系内の前記第1のユーザの位置を取得するようにさらに構成され、前記相互作用の前記位置は、前記仮想座標系内の前記第1のユーザの前記位置に基づいている、項目12に記載のシステム。
(項目14)
前記相互作用は、前記第1のデバイスを用いた前記仮想コンテンツにおける2次元(2D)ポイントの選択を含み、
前記少なくとも1つのプロセッサは、
前記仮想座標系内の前記第1のユーザの前記位置に基づいて、前記仮想コンテンツにおける前記2Dポイントを前記仮想座標系の平面における2Dポイントにマッピングすることと、
前記仮想座標系の前記平面における前記2Dポイントを通って伸び、前記仮想座標系の前記平面に垂直であるベクトルを決定することと、
前記ベクトルが前記モデルと交差する前記仮想座標系内の交差の3Dポイントを決定することであって、前記相互作用の前記位置は、前記仮想座標系内の前記交差の3Dポイントに基づいている、ことと
を行うようにさらに構成されている、項目13に記載のシステム。
(項目15)
前記相互作用の前記位置は、前記仮想座標系内の前記モデルに対する前記ベクトルの向きをさらに備え、
前記相互作用の前記仮想表現は、前記ベクトルの前記向きの指示を備えている、項目14に記載のシステム。
(項目16)
前記仮想座標系内の前記相互作用の前記位置は、前記仮想座標系内の前記第1のユーザの特徴の位置に基づいている、項目12に記載のシステム。
(項目17)
前記少なくとも1つのプロセッサは、前記第1のデバイスを用いて、空間の表現を取得することと、
前記空間内の前記モデルの位置を決定することと、
前記空間内の前記モデルの前記位置に基づいて、前記空間に前記仮想座標系をマッピングすることと、
前記空間内の前記第1のユーザの前記特徴の位置を決定することであって、前記仮想座標系内の前記第1のユーザの前記特徴の前記位置は、前記空間内の前記第1のユーザの前記特徴の前記位置に基づいている、ことと
を行うようにさらに構成されている、項目16に記載のシステム。
(項目18)
前記第1のユーザの前記特徴は、前記第1のユーザの解剖学的特徴である、項目17に記載のシステム。
(項目19)
前記第1のユーザの前記特徴は、前記第1のデバイスを用いて前記第1のユーザによって制御されるカーソルである、項目17に記載のシステム。
(項目20)
前記空間の前記表現は、前記第1のデバイスによって捕捉された前記空間の画像を備え、
前記空間内の前記第1のユーザの前記特徴の前記位置は、前記画像の画像分析に基づいている、項目17に記載のシステム。
(項目21)
前記仮想座標系内の前記第1のユーザの前記特徴の前記位置は、前記仮想座標系内の前記第1のユーザの前記特徴の向きを備え、
前記相互作用の前記表現は、前記第1のユーザの前記特徴の前記向きの指示を備えている、項目16に記載のシステム。
(項目22)
前記ARコンテンツは、第1のARコンテンツであり、
前記仮想コンテンツは、第2のARコンテンツを備えている、項目12に記載のシステム。
(項目23)
コンピュータ実行可能な命令を記憶している非一過性のコンピュータ読み取り可能な媒体であって、前記命令は、コンピュータによって実行されると、
第1のユーザと第1のデバイスで提示される仮想コンテンツとの間の相互作用の位置を取得することであって、前記仮想コンテンツは、仮想座標系内に画定された3次元(3D)モデルの第1のレンダリング表現を備え、前記相互作用の前記位置は、前記仮想座標系内に画定されている、ことと、
拡張現実(AR)コンテンツを生成することであって、前記ARコンテンツは、
前記仮想座標系内の第2のユーザの位置に基づく前記モデルの第2のレンダリング表現であって、前記第2のユーザの前記位置は、第2のデバイスによって取得された情報に基づいている、前記モデルの第2のレンダリング表現と、
前記相互作用の前記位置に基づく前記相互作用の仮想表現と
を含む、ことと、
前記第2のデバイスでの提示のために前記ARコンテンツを出力することと
を前記コンピュータに行わせる、非一過性のコンピュータ読み取り可能な媒体。