【解決手段】システム10は、仮想オブジェクトとそれに関連付けられた触覚アセットとを記憶するように構成されたメモリ装置と、仮想オブジェクトを表示するように構成された拡張又は仮想現実空間を生成するように構成された拡張/仮想現実装置200と、拡張/仮想現実装置200が仮想オブジェクトが関わるインタラクションを検出したときに、触覚アセットに基づいて触覚効果を生成するように構成された触覚出力装置120を含む電子装置100と、を備える。
前記メモリ装置がサーバの一部であり、前記電子装置が前記サーバから前記仮想オブジェクト及びそれに関連付けられた触覚アセットをダウンロードするように構成された、請求項1に記載のシステム。
前記ハンドヘルド電子装置は、前記システムのユーザが前記仮想オブジェクトとインタラクションすることを可能にするように構成されたタッチスクリーンを含む、請求項5に記載のシステム。
前記電子装置が前記仮想オブジェクトの状態を判定するように構成され、前記触覚効果は前記仮想オブジェクトの前記状態に従って予め設計された触覚効果である、請求項1に記載のシステム。
前記電子装置は前記仮想オブジェクトの状態を監視するように構成され、前記触覚出力装置は前記仮想オブジェクトの前記状態が変わるときに異なる触覚効果を生成するように構成された、請求項1に記載のシステム。
前記触覚効果を生成する工程は、前記仮想オブジェクトの状態を判定する工程と、及び前記仮想オブジェクトの前記状態に従って予め設計された触覚効果を実行する工程とを含む、請求項15に記載の方法。
前記仮想オブジェクトの状態を監視する工程と、前記仮想オブジェクトの前記状態が変わるときに異なる触覚効果を生成する工程と、をさらに含む、請求項15に記載の方法。
【発明の概要】
【0004】
拡張及び仮想現実アプリケーションにおいて仮想オブジェクトに触覚を追加してユーザの体験を向上し、それによってユーザが仮想オブジェクトとインタラクションする際に仮想オブジェクトの手触りを感じ、感触を確かめ、仮想オブジェクトと物理オブジェクトとの間及び/又は仮想オブジェクト間の衝突を感じるようにすることが望ましい。
【0005】
本発明の一態様によれば、提供されるシステムは、仮想オブジェクトとそれに関連付けられた触覚アセットとを記憶するように構成されたメモリ装置と、前記仮想オブジェクトを表示するように構成された拡張又は仮想現実空間を生成するように構成された拡張又は仮想現実装置と、前記拡張又は仮想現実装置が前記仮想オブジェクトが関わるインタラクションを検出したときに、前記触覚アセットに基づいて触覚効果を生成するように構成された触覚出力装置を含む電子装置と、を備える。
【0006】
一実施形態において、前記メモリ装置がサーバの一部であり、前記電子装置が前記サーバから前記仮想オブジェクト及びそれに関連付けられた触覚アセットをダウンロードするように構成される。一実施形態において、サーバはクラウド・コンピューティング・システム一部分である。一実施形態において、前記電子装置は前記仮想オブジェクトを前記拡張又は仮想現実装置に伝達するように構成される。
【0007】
一実施形態において、前記電子装置は、ハンドヘルド電子装置である。一実施形態において、前記ハンドヘルド電子装置は、前記システムのユーザが前記仮想オブジェクトとインタラクションすることを可能にするように構成されたタッチスクリーンを含む。
【0008】
一実施形態において、前記電子装置は、ウェアラブル装置である。
【0009】
一実施形態において、前記拡張又は仮想現実装置はヘッドマウントディスプレイである。
【0010】
一実施形態において、前記メモリ装置、前記拡張又は仮想現実装置、及び前記電子装置は単一の一体化された装置の一部である。
【0011】
一実施形態において、前記触覚アセットは、前記触覚出力装置が前記触覚効果を生成するための制御信号の少なくとも1つのパラメータを含む。一実施形態において、前記少なくとも1つのパラメータは、前記制御信号の振幅、周波数、及び継続時間からなる群から選択される。
【0012】
一実施形態において、前記電子装置は前記仮想オブジェクトの状態を判定するように構成され、前記触覚効果は前記仮想オブジェクトの前記状態に従って予め設計された触覚効果である。
【0013】
一実施形態において、前記電子装置は、入力された力及び前記仮想オブジェクトの物理特性に従って触覚パラメータを動的に計算するように構成される。
【0014】
一実施形態において、前記電子装置は前記仮想オブジェクトの状態を監視するように構成され、前記触覚出力装置は前記仮想オブジェクトの前記状態が変わるときに異なる触覚効果を生成するように構成される。
【0015】
本発明の一態様によれば、提供される方法は、メモリ装置から仮想オブジェクト及びそれに関連付けられた触覚アセットを取得する工程と、拡張又は仮想現実装置によって生成された拡張又は仮想現実空間内に前記仮想オブジェクトを表示する工程と、前記拡張又は仮想現実装置が前記仮想オブジェクトが関わるインタラクションを検出したときに、触覚出力装置を用いて前記触覚アセットに基づいて触覚効果を生成する工程と、を備える。
【0016】
一実施形態において、前記方法は電子装置を用いてサーバの前記メモリ装置から仮想オブジェクトをダウンロードする工程を備える。一実施形態において、サーバはクラウド・コンピューティング・システム一部分である。
【0017】
一実施形態において、前記触覚効果を生成する工程は、前記仮想オブジェクトの状態を判定する工程と、及び前記仮想オブジェクトの前記状態に従って予め設計された触覚効果を実行する工程とを含む。
【0018】
一実施形態において、前記触覚効果を生成する工程は、入力された力及び前記仮想オブジェクトの物理特性に従って触覚パラメータを動的に計算する工程を含む。
【0019】
一実施形態において、前記方法は、前記仮想オブジェクトの状態を監視する工程と、前記仮想オブジェクトの前記状態が変わるときに異なる触覚効果を生成する工程と、を含む。
【0020】
本発明の上記及び上記以外の目的、特徴、及び性質、並びに、関連する構成要素の動作方法及び機能、そして製造における各部分の組み合わせと経済性については、添付図面を参照しつつ以下の詳細な説明と添付の特許請求の範囲を検討することによってさらに明らかになる。これらはいずれも本明細書の一部を構成する。添付図面は例示及び説明のためのものであり、本発明の発明特定事項の定義として用いることは意図されていない。本明細書及び特許請求の範囲における用法によれば、単数形の「a」、「an」及び「the」には複数のものへの言及が含まれる。ただし、文脈によって別に解すべきことが明白な場合はこの限りでない。
【発明を実施するための形態】
【0028】
図1は、本発明の一実施形態に係るシステム10の模式図である。図に示すように、システム10は電子装置100、電子装置100の一部であるか又はそれとは別体のハンドヘルド/ウェアラブル装置102、拡張/仮想現実(「AR/VR」)装置200、サーバ300、一又は複数の通信チャネル350、及び/又は前記電子装置100、ハンドヘルド/ウェアラブル装置102、AR/VR装置200、及び/又はサーバ300と通信を行うその他の装置を含む。
【0029】
電子装置100は、システム10のユーザと拡張現実(「AR」)環境内の仮想オブジェクトとの間のインタラクション、並びにAR環境内の2つの仮想オブジェクト間のインタラクション、及び仮想現実(「VR」)環境内の2つの仮想オブジェクト間のインタラクションに基づいて、触覚フィードバックを提供するように構成される。説明の利便性のために、「AR/VR環境」という用語は本明細書において、その環境の少なくとも一部が仮想現実空間を含むことを意味する。これについては後に詳述する。AR/VR環境は、電子装置100と通信可能に結合されたAR/VR装置200によって生成されてもよい。システム10の一部の実施形態においては、AR/VR装置200は仮想現実装置のみであり、拡張現実の側面は含まなくてもよい。
【0030】
AR/VR装置200はAR/VR環境を生成してもよく、また電子装置100からリモートであってもよい。後に詳述するが、AR/VR環境は、少なくとも1つの物理オブジェクトが存在する物理空間、及び当該物理オブジェクトを拡張する一又は複数の仮想オブジェクトが表示される、又は物理オブジェクトを拡張しない仮想オブジェクトが表示される仮想現実空間を含んでもよい。一実施形態において、AR/VR装置200はヘッドマウント装置として構成されてもよい。
【0031】
図1に示すように、電子装置100は、AR/VR装置200及び/又はサーバ300から制御信号を受信するように構成されたプロセッサ110、受信した制御信号に基づいて触覚効果を生成するように構成された触覚出力装置120、通信ポート130、位置/方位装置140、入力要素150、及び識別装置160を含む。電子装置100には、
図1に示されるよりも多い又は少ない数の構成要素を含んでもよい。図に示した実施形態に限定されることを意図していない。
【0032】
後に詳述するが、一実施形態において、ハンドヘルド/ウェアラブル装置102並びに電子装置100は、手袋、スマートウォッチ、ブレスレット、指輪、シンブル、及び/又はその他の着用可能な任意の装置の形態のウェアラブル装置として構成されてもよい。一実施形態において、ハンドヘルド/ウェアラブル装置102並びに電子装置100は、スタイラス、ジョイスティック、携帯電話、スマートフォン、タブレット、ビデオゲームコントローラ、及び/又はAR/VR装置200と通信可能に結合されるその他の任意のハンドヘルド装置などのハンドヘルド装置として構成されてもよい。一実施形態において、電子装置100及びAR/VR装置200は単一の物理装置内の別個の装置であってもよい。一実施形態において、電子装置100及びAR/VR装置200は、携帯電話、スマートフォン、タブレットなどの単一の物理装置内で一体化されていてもよい。
【0033】
図2に示すように、電子装置100のプロセッサ110は、例えば、触覚フィードバック制御モジュール111、通信モジュール112、及び/又は電子装置100のその他のコンピュータプログラムモジュールを含む一又は複数のモジュールを実行するように構成されている。プロセッサ110は、電子装置100の動作および機能を管理または制御する汎用または特殊用途プロセッサ、あるいはマイクロコントローラである。例えば、プロセッサ110は、モジュール111,112との間の入出力信号を制御する特定用途向け集積回路(application−specific integrated circuit:「ASIC」)として、特に設計されてもよい。また、プロセッサ110は電子ストレージ又はメモリ装置113を含んでもよい。メモリ装置113は、内部に固定された1つ又は複数の記憶ユニット、リムーバブル記憶ユニット、及び/又はリモート・アクセスが可能な記憶ユニットを含む。これら様々な記憶ユニットは、揮発性メモリと不揮発性メモリとのいかなる組合せをも含み得る。記憶ユニットは、情報、データ、命令、ソフトウェア・コードなどの任意の組合せを記憶し得るように構成されてもよい。触覚フィードバック制御モジュール111は、制御信号を受信して、触覚出力装置120に触覚効果の形態でフィードバックを提供させる。通信モジュール112は、電子装置100、AR/VR装置200、ハンドヘルド/ウェアラブル装置102、及び/又はサーバ300の間の通信を容易にするように構成される。
【0034】
触覚フィードバック制御モジュール111は、制御信号をサーバ300及び/又はAR/VR装置200から受信し、触覚出力装置120に電子装置100を介して触覚フィードバックを提供させる。一実施形態において、制御信号は、ユーザとAR/VR装置200によって表示される仮想オブジェクトとの間のインタラクションを表す。一実施形態において、制御信号は、AR/VR装置200によって表示されるAR/VR環境内の仮想オブジェクト間のインタラクションを表す。一実施形態において、制御信号は、仮想オブジェクトと物理オブジェクトとの間のインタラクションを表す。一実施形態において、触覚フィードバック制御モジュール111は制御信号を触覚出力装置120に提供するように構成される。一実施形態において、制御信号は触覚出力装置120に直接与えられて触覚フィードバックを発生させることもある。一実施形態において、触覚フィードバック制御モジュール111はサーバ300又はAR/VR装置200から受信した制御信号に基づいて触覚フィードバック・レスポンスを決定するように構成される。一実施形態において、触覚フィードバック制御モジュール111は検索テーブルを参照して、受信した制御信号に基づいて触覚フィードバック・レスポンスを決定する。
【0035】
一実施形態において、検索テーブルは複数の制御信号と複数の触覚フィードバック・レスポンスとの間の関連付けを記憶する。例えば、仮想オブジェクトがAR/VR環境内で表示されたことを示す情報を制御信号が含む場合、検索テーブルはAR/VR環境内で表示され得る仮想オブジェクトごとに異なる触覚フィードバック・レスポンスを記憶する。例えば、触覚フィードバック・レスポンスは信号内に示される仮想オブジェクトのうちの一又は複数と協調し、それによって当該触覚フィードバック・レスポンスは信号内で示される一又は複数の仮想オブジェクトの一又は複数の特性に対応する。電子装置100又はハンドヘルド/ウェアラブル装置102と一又は複数の仮想オブジェクトとの間のインタラクションを示す情報を制御信号が含む場合、検索テーブルは、電子装置100又はハンドヘルド/ウェアラブル装置102とAR/VR環境との間で発生し得るインタラクションごとに異なる触覚フィードバック・レスポンスを記憶してもよい。一実施形態において、触覚フィードバック制御モジュール111は、複数の制御信号とそれに関連付けられたフィードバック・レスポンスを含む検索テーブルを記憶するように構成されたサーバ300から、触覚フィードバック・レスポンスを取得する。サーバ300はクラウド・コンピューティング・システムの一部であるクラウドベースサーバ、又は他の任意のサーバであってもよい。
【0036】
一実施形態において、通信モジュール112は、電子装置100、AR/VR装置200、サーバ300、及び/又は電子装置100と類似の構成要素及び機能を有するハンドヘルド/ウェアラブル装置102、及び/又は電子装置100と通信を行うその他の装置の間の通信を容易にするように構成される。通信モジュール112は、電子装置100、AR/VR装置200、ハンドヘルド/ウェアラブル装置102、サーバ300、及び/又は電子装置100と通信を行うその他の装置の間の通信のための有線又は無線の通信チャネル350を提供するように構成される。
【0037】
再び
図1を参照すると、触覚出力装置120は、触覚効果の形態で触覚フィードバックを提供するように構成された一又は複数の触覚出力装置を含む。触覚出力装置160によって提供される触覚フィードバックは、振動、変形、運動感覚、静電摩擦又は超音波摩擦等の触覚効果を生成する任意の方法によって生成されてもよい。一実施形態において、触覚出力装置120が備え得るアクチュエータは、例えば、偏心質量体がモータにより動かされる偏心回転質量体(「ERM」)などの電磁アクチュエータ、ばねに取り付けられた質量体が前後に駆動されるリニア共振アクチュエータ(「LRA」)、又は圧電材料、電気活性ポリマー、もしくは形状記憶合金などの「スマートマテリアル」、マクロ複合繊維アクチュエータ、静電気アクチュエータ、電気触感アクチュエータ、及び/又は、例えば、振動触覚フィードバックである物理的フィードバックを提供する他の種類のアクチュエータである。触覚出力装置120は、非機械的装置又は非振動装置、例えば、静電摩擦(「ESF」)や超音波摩擦(「USF」)を用いる装置、超音波触覚トランスデューサを用いて音響放射圧力を生じさせる装置、触覚基板及び可撓性もしくは変形可能な表面を用いる装置、又は、熱的効果を提供する装置、又は、エアジェットを用いた空気の吹きかけなどの発射型の触覚出力を提供する装置などを含んでもよい。異なる触覚効果を生成するために、複数の触覚出力装置120を用いてもよい。
【0038】
触覚出力装置120は、触覚フィードバック制御モジュール111から一又は複数の信号(例えば、制御信号又は触覚フィードバック信号)を受信するように構成される。この一又は複数の信号に基づいて、触覚出力装置120は電子装置100を解して触覚フィードバックを提供してもよい。一実施形態において、触覚出力装置120は、ハンドヘルド/ウェアラブル装置102の一部であってもよく、触覚フィードバックはハンドヘルド/ウェアラブル装置102を介して提供されてもよい。
【0039】
通信ポート130はインターフェースを備え、それを介して、例えばAR/VR装置200との通信チャネル350が維持される。AR/VR装置200からの制御信号は通信チャネル350を介して受信される。この通信チャネル350は、有線又は無線の通信チャネルを含む。
【0040】
位置/方位装置140は、通信チャネル350を介して電子装置100の位置、方位、又はその両方をAR/VR装置200に提供するように構成されてもよい。位置/方位装置140は、ジャイロスコープ、地理空間位置決定装置、コンパス、及び/又はその他の方位決定又は位置決定装置を含んでもよい。
【0041】
入力要素150は、例えば、ボタン押下、ジェスチャ、及び/又は他の入力を受けるように構成されてもよい。入力はプロセッサ110によって通信チャネル350を介してAR/VR装置200に伝達されてもよい。入力要素150は、タッチ・パッド、タッチ・スクリーン、機械式ボタン、スイッチ、及び/又は入力を受けることができる他の入力コンポーネントを含む。
【0042】
識別装置160は電子装置100の識別標識を生成するように構成されてもよい。この識別標識はAR/VR装置200によって電子装置100を識別するために用いられてもよい。この識別標識は、可視的な光学署名(例えば、可視光の波長の範囲内の光学署名)又は不可視的署名(例えば、可視光の波長の範囲内ではない光学署名)を含んでもよい。
【0043】
一部の実施形態において、拡張現実(「AR」)記号が電子装置100の表面に記載されてもよい。このAR記号を用いて、例えば、AR/VR環境内で電子装置100の方位を決定すること、AR/VR環境内で電子装置100の存在を識別すること、及び/又は電子装置100の他の形態の認識を可能にすることができる。一実施形態において、電子装置100は音声署名、赤外線署名、及び/又はAR/VR装置200が認識できるその他の署名を発信してもよい。
【0044】
AR/VR装置200は、仮想現実(「VR」)空間及び物理空間の両方を含むAR/VR環境を生成するように構成されてもよい。AR/VR装置200は、例えば、プロセッサ210、撮像装置220、通信ポート230、及び/又は他のコンポーネントを備える。プロセッサ210は物理空間と一致するVR空間を生成するように構成される。プロセッサ210は、物理空間内の少なくとも1つの物理オブジェクトを認識し、VR空間内の一又は複数の仮想オブジェクトを用いて少なくとも1つの物理オブジェクトを拡張するように構成される。プロセッサ210は、VR環境内のイベントを判定し、そのイベントを表す制御信号を有線又は無線の通信チャネル350を介して電子装置100に通信するように構成されてもよい。この制御信号により、電子装置100において触覚フィードバックが生成される。撮像装置220は、物理空間を画像化するように構成される。一実施形態において、撮像装置220は一又は複数のカメラ、赤外線検出器、ビデオカメラ、及び/又はその他の画像記録装置を含んでもよい。通信ポート230はインターフェースを備え、それを介して、例えば手電子装置100、ハンドヘルド/ウェアラブル装置102、及び/又はサーバ300との通信チャネル350が維持される。
【0045】
図3に示すように、AR/VR装置200のプロセッサ210は、例えばオブジェクト認識モジュール211、オブジェクト生成モジュール212、イベント・ハンドラ・モジュール213、制御信号生成モジュール214、通信モジュール215、及び/又はその他のコンピュータ・プログラム・モジュールを含む、一又は複数のモジュールを実行するように構成される。プロセッサ210は、AR/VR装置200の動作および機能を管理または制御する汎用または特殊用途プロセッサ、あるいはマイクロコントローラである。例えば、プロセッサ210は、モジュール211,212,213,214,215との間の入出力信号を制御する特定用途向け集積回路(application−specific integrated circuit:「ASIC」)として、特に設計されてもよい。また、プロセッサ210は電子ストレージ又はメモリ装置216を含んでもよい。メモリ装置216は、内部に固定された1つ又は複数の記憶ユニット、リムーバブル記憶ユニット、及び/又はリモート・アクセスが可能な記憶ユニットを含む。これら様々な記憶ユニットは、揮発性メモリと不揮発性メモリとのいかなる組合せをも含み得る。記憶ユニットは、情報、データ、命令、ソフトウェア・コードなどの任意の組合せを記憶し得るように構成されてもよい。
【0046】
オブジェクト認識モジュール211は、物理空間内の物理オブジェクトを認識するように構成されてもよい。オブジェクト生成モジュール212は、独立した仮想オブジェクトとして振舞うための、又は認識された物理オブジェクトを拡張するための仮想オブジェクトを生成するように構成されてもよい。イベント・ハンドラ・モジュール213は、AR/VR環境内でのイベントの発生を検出するように構成されてもよい。制御信号生成モジュール214はイベントに関する情報を受信し、電子装置100に送信する制御信号を生成するように構成されてもよい。通信モジュール215は、例えば、AR/VR装置200と電子装置100との間の通信を容易にするように構成されてもよい。
【0047】
一実施形態において、オブジェクト認識モジュール211は、物理空間内のオブジェクトを認識するように構成される。オブジェクト認識モジュール211は、撮像装置220及び/又はメモリ装置216と通信して、物理空間内のオブジェクトを認識する。例えば、オブジェクト認識モジュール211は、撮像装置220から取り込まれた視覚データを受信し、該視覚データを処理して、取り込まれた視覚データに一又は複数のオブジェクトが存在するか否かを判定する。オブジェクト認識モジュール211は、取り込まれた視覚データ内に存在するオブジェクトとメモリ装置216内に記憶されたオブジェクトとを比較する。
【0048】
例えば、オブジェクト認識モジュール211は、捕捉されたオブジェクトの画素をストレージ内の記憶されたオブジェクトの画素と既知の技術により比較する。捕捉されたオブジェクトの閾値となる比率(例えば、80%、90%、100%、及び/又は他の比率)の画素が記憶されたオブジェクトの画素とマッチする場合、オブジェクト認識モジュール211は、捕捉されたオブジェクトは記憶されたオブジェクトとして認識されたと判定する。一実施形態において、閾値となる比率は撮像装置220の解像度に依存する。
【0049】
オブジェクト認識モジュール211は記憶されたオブジェクトに関する情報を取得し、記憶されたオブジェクトに関する情報および捕捉されたオブジェクトに関する情報をオブジェクト生成モジュール212に送信する。オブジェクト生成モジュール212に送信された情報は、例えば、記憶されたオブジェクトの画像データ、記憶されたオブジェクトの種類、物理空間における捕捉されたオブジェクトの位置、捕捉されたオブジェクトの他の物理オブジェクトに対する近接性、記憶されたオブジェクトに関する内容情報、捕捉されたオブジェクトに関する内容情報、及び/又は記憶されたオブジェクト又は捕捉されたオブジェクトに関連付けられたその他のデータを含む。一実施形態において、オブジェクト認識モジュール211は、記憶されたオブジェクトに関する情報および捕捉されたオブジェクトに関する情報を、イベント・ハンドラ・モジュール213、制御信号生成モジュール214、及び/又はプロセッサ210のその他のモジュールのうちの一又は複数に送信する。
【0050】
図4は、サーバ300の一実施形態をより詳細に例示している。一実施形態において、サーバ300は、電子装置100、AR/VR装置200、ハンドヘルド/ウェアラブル装置102、及び/又はその他のサーバ300と通信する装置のうちの一又は複数と通信するように構成されてもよい。図示された実施形態において、サーバ300はプロセッサ310、電子ストレージ又はメモリ装置320、及び通信ポート330を備える。一実施形態において、サーバ300は、クラウド・コンピューティング・システム、すなわち、「クラウド」の一部分であってもよい。
【0051】
サーバ300のプロセッサ310は、データを受信し、オブジェクトを認識し、イベントをハンドルし、データを送信し、及び/又はその他の機能を提供するように構成されてもよい。一実施形態において、サーバ300は電子装置100のプロセッサ110から制御信号を受信するように構成されてもよい。サーバ300のメモリ装置320は、複数の制御信号および複数のフィードバック・レスポンスを含む電子装置100の検索テーブルと類似または同様の態様で構成される検索テーブルを含んでもよい。例えば、検索テーブルは仮想オブジェクトに関連付けられる複数の触覚アセット(asset)を含んでもよい。触覚アセットは、制御信号の振幅、周波数、継続時間など、仮想オブジェクトに関連付けられる触覚効果のパラメータを含んでもよい。この制御信号は、仮想オブジェクトとインタラクションを行うとき、又は仮想オブジェクトが他の仮想オブジェクトとインタラクションを行うときに、触覚出力装置120を駆動してシステム10のユーザに対して触覚効果を生成するために用いられる。検索テーブルが制御信号に関するエントリを含む場合、サーバ300はフィードバック・レスポンスを含む情報をフィードバック制御モジュール111に伝達する。サーバ300の検索テーブルがこの制御信号に関するエントリを含まない場合、サーバ300は、この制御信号にマッチするデータがない旨の指示をフィードバック制御モジュール111に伝達するか、又はサーバ300はデフォルト制御信号を伝達する。一実施形態において、サーバ300は、電子装置100から受信したデータに関する画像処理及び/又はオブジェクト認識を実行する。
【0052】
一実施形態において、サーバ300は、AR/VR装置200の撮像装置220によって取り込まれたオブジェクトに関するデータを受信する。サーバ300のプロセッサ310は、捕捉されたオブジェクトに関するオブジェクト認識を実行する。サーバ300のメモリ装置320は、一又は複数の物理オブジェクトを含む検索テーブルを含む。サーバ300は、受信したデータから認識されたオブジェクトに関するエントリが検索テーブルに含まれているかを判定する。検索テーブルが認識されたオブジェクトに関するエントリを含む場合、サーバ300は認識されたオブジェクトにマッチする記憶されたオブジェクトに関する情報を、オブジェクト認識モジュール211に伝達する。サーバ300が認識されたオブジェクトを認識しない場合、サーバ300はマッチするものがないという趣旨の指示をオブジェクト認識モジュール211に伝達する。
【0053】
一実施形態において、サーバ300は、AR/VR装置200のプロセッサ210のオブジェクト認識モジュール211によって認識された物理オブジェクトに関するデータを受信する。サーバ300のプロセッサ310は、この物理オブジェクトと一又は複数の仮想オブジェクトとの間の関連付けをサーバ300のメモリ装置320が記憶しているか否かを判定する。一部の実施形態において、サーバ300のメモリ装置320は、物理オブジェクト、仮想オブジェクト、及び一又は複数の物理オブジェクトと一又は複数の仮想オブジェクトとの間の一又は複数の相関関係を含む検索テーブルを含む。サーバ300のメモリ装置320に関連付けがある場合、サーバ300は関連付けられた仮想オブジェクトに関するデータをオブジェクト生成モジュール212に伝達する。サーバ300のメモリ装置320に関連付けがない場合、サーバ300は関連付けがないことを伝達する。
【0054】
一実施形態において、サーバ300は、AR/VR装置200のプロセッサ210のイベント・ハンドラ・モジュール213からイベント・データを受信するように構成される。サーバ300のメモリ装置320は、複数のイベントと各々の複数の制御信号とを関連付ける検索テーブルを含む。イベント・データの一部または全体がサーバ300のストレージに記憶されたイベントとマッチする場合、サーバ300のプロセッサ310は、このイベントに関するイベント・データをイベント・ハンドラ・モジュール213に伝達する。イベント・データがストレージに記憶されたイベントとマッチしない場合、サーバ300のプロセッサ310はマッチするイベントが存在しない旨をAR/VR装置200に伝達する。
【0055】
サーバ300の通信ポート330はインターフェースを備え、それを介して、例えば電子装置100、ハンドヘルド/ウェアラブル装置102、AR/VR装置200、及び/又はその他のサーバ300と通信する装置との通信チャネル350が維持される。データ及び/又は信号は、通信チャネル350及び/又はサーバ300がデータ及び/又は信号を受信する際に用いるその他の通信チャネルを介して受信される。
【0056】
一実施形態において、捕捉されたオブジェクトが記憶されたオブジェクトとマッチしない場合、オブジェクト認識モジュール211は捕捉されたオブジェクトに関するデータをサーバ300に送信し、サーバ300がオブジェクト認識を実行できるようにする。サーバ300が捕捉されたオブジェクトを認識する場合、サーバ300は捕捉されたオブジェクトにマッチする記憶されたオブジェクトに関する情報を、オブジェクト認識モジュール211に伝達する。オブジェクト認識モジュール211は、サーバ300からの記憶されたオブジェクトに関する情報、および捕捉されたオブジェクトに関する情報を、オブジェクト生成モジュール212に送信する。サーバ300が捕捉されたオブジェクトを認識しない場合、サーバ300はマッチするものがないという趣旨の指示を伝達する。
【0057】
一実施形態において、オブジェクト生成モジュール212は、オブジェクト認識モジュール211から物理オブジェクトに関する情報を受信し、AR/VR環境内でこの物理オブジェクトを拡張するための一又は複数の仮想オブジェクトを生成する。オブジェクト生成モジュール212はストレージにアクセスして、この物理オブジェクトに一又は複数の仮想オブジェクトが関連付けられているかを判定する。この物理オブジェクトには仮想オブジェクトが関連付けられていない場合、オブジェクト生成モジュール212はサーバ300と通信して、サーバ300のメモリ装置320が一又は複数の物理オブジェクトと一又は複数の仮想オブジェクトとの間の一又は複数の関連付けを記憶しているかを判定する。サーバ300のメモリ装置320に関連付けがある場合、サーバ300は関連付けられた仮想オブジェクトに関するデータをオブジェクト生成モジュール212に伝達する。
【0058】
仮想オブジェクトがオブジェクト認識モジュール211から受信した情報において識別される物理オブジェクトと関連づけられる場合、オブジェクト生成モジュール212は、物理空間と一致するVR空間を生成する。
図5は例示的なAR/VR環境500のブロック図である。図に示すように、AR/VR環境500は、物理空間520とVR空間510とを有する。物理空間520は一又は複数の物理オブジェクト520a、520b、・・・520nを有し、VR空間510は、物理空間520内の一又は複数の物理オブジェクト520a、520b、・・・520nを拡張する、または一又は複数の物理オブジェクトを拡張しない仮想オブジェクトである、一又は複数の仮想オブジェクト510a、510b、・・・510nを有する。
【0059】
一実施形態において、オブジェクト生成モジュール212はVR空間510内の一又は複数の仮想オブジェクト510a、510b、・・・510nを用いて物理オブジェクト520aを拡張する。例えば、オブジェクト生成モジュール212は、AR/VR装置200のディスプレイ表面を介してVR空間510(及び一又は複数の仮想オブジェクト510a、510b、・・・510n)を表示する。一部の実施形態において、VR空間510および表示される一又は複数の仮想オブジェクト510a、510b、・・・510nは、AR/VR装置200のディスプレイを介して3次元的に表示される。
【0060】
AR/VR装置200のディスプレイを介して表示されるAR/VR環境500は、物理空間520及びVR空間510を含む。一実施形態において、物理空間520は撮像装置220によって画像化され、ディスプレイを介して表示される。一実施形態において、例えば、ディスプレイの少なくとも一部が透明(例えば、レンズ)であり、それを通して物理空間520を見ることができるように構成される実施形態においては、物理空間520は単純にディスプレイを通して見ることができる。物理空間520を表示するためにどの実施形態を用いるとしても、一又は複数の仮想オブジェクト510a、510b、・・・510nは、物理空間520内に存在する一又は複数の物理オブジェクト520a、520b、・・・520nと一致するかまたは関連付けられるように表示され、それによってAR/VR環境500内の一又は複数の物理オブジェクト520a、520b、・・・520nを拡張してもよい。単一の仮想オブジェクト510aは、単一の物理オブジェクト520aまたは複数の物理オブジェクト520a、520b、・・・520nを拡張してもよい。複数の仮想オブジェクト510a、510b、・・・510nは、単一の物理オブジェクト520aまたは複数の物理オブジェクト520a、520b、・・・520nを拡張してもよい。物理空間520内に存在する物理オブジェクト520a、520b、・・・520nを拡張する仮想オブジェクト510a、510b、・・・510nの数と種類は、上述の例に限定されない。
【0061】
一実施形態において、イベント・ハンドラ・モジュール213は、AR/VR環境内でのイベントの発生を検出するように構成される。イベント・ハンドラ・モジュール213は、撮像装置220、オブジェクト認識モジュール211、オブジェクト生成モジュール212、メモリ装置216、及び/又はAR/VR装置200のその他のモジュール又は装置からデータを受信する。AR/VR装置200のメモリ装置216は、AR/VR装置200が認識する一又は複数のイベントに関するデータを記憶する。例えば、AR/VR装置200のメモリ装置216がデータを記憶するイベントは、電子装置100とAR/VR環境500との間のインタラクション、AR/VR環境500に対して発生するアクションの確認、電子装置100がAR/VR装置200によって認識されることの確認、電子装置100とVR空間510内に表示される一又は複数の仮想オブジェクトとの間のインタラクション、物理オブジェクトを拡張するための特定の種類の仮想オブジェクトの生成、電子装置100の認識、ハンドヘルド/ウェアラブル装置102の認識、ユーザとAR環境との間のインタラクション、及び/又はAR環境に関するその他の事象を含む。
【0062】
一実施形態において、イベント・ハンドラ・モジュール213が受信するデータは、撮像装置220からの視覚データ、視覚データ内の捕捉されたオブジェクトに関するオブジェクト認識モジュール211からの情報、オブジェクト生成モジュール212によって生成された仮想オブジェクトに関する情報、及び/又はAR環境に関するその他の情報である。イベント・ハンドラ・モジュール213は、受信した情報をメモリ装置216に記憶されたイベントに関するデータと比較し、この情報、またはこの情報の一部がイベントと関連付けられているかを判定する。 受信した情報がイベントに関連付けられている場合、イベント・ハンドラ・モジュール213は、受信した情報を含むイベント・データおよび関連付けられたイベントに関するデータを、制御信号生成モジュール214に送信する。
【0063】
一実施形態において、イベント・ハンドラ・モジュール213はプロセッサ210からデータを受信するが、そのデータは、電子装置100とAR/VR環境との間でインタラクションが発生したこと、AR/VR環境内の一又は複数の仮想オブジェクトが変化したこと、電子装置100から入力を受信したこと、電子装置100から受信した入力がAR/VR装置200によって処理されたこと、ユーザとAR/VR環境500との間でインタラクションが発生したこと、及び/又はAR/VR装置200によって他の処理が実行されたこと、を示す。一部の実施形態において、イベント・ハンドラ・モジュール213は、プロセッサ210から受信したデータと、メモリ装置216に記憶されたデータとを比較して、該データがイベントと関連付けられているかを判定する。受信した情報の一部または全体がストレージに記憶されたイベントに関連付けられている場合、イベント・ハンドラ・モジュール213は、受信した情報を含むイベント・データおよび関連付けられたイベントに関するデータを、制御信号生成モジュール214に送信する。
【0064】
一実施形態において、受信した情報がメモリ装置216に記憶されたイベントに関連付けられていない場合、イベント・ハンドラ・モジュール213は、受信した情報を含むイベント・データをサーバ300に送信し、サーバ300はイベント・ハンドリングを行う。受信した情報の一部または全体がサーバ300のストレージに記憶されたイベントに関連付けられている場合、サーバ300は、関連付けられたイベントに関する情報をイベント・ハンドラ・モジュール213に伝達する。イベント・ハンドラ・モジュール213は、受信した情報を含むイベント・データおよび関連付けられたイベントに関するデータを、制御信号生成モジュール214に送信する。受信した情報がサーバ300のストレージに記憶されたイベントに関連付けられていない場合、サーバ300は、マッチするものがなかったとの指示を伝達する。
【0065】
一実施形態において、制御信号生成モジュール214は、イベント・ハンドラ・モジュール213からイベント・データを受信し、該イベント・データに基づいて制御信号を生成し、電子装置100に送信するように構成される。AR/VR装置200のストレージは、複数のイベントと各々の複数の制御信号とを関連付ける検索テーブルを含む。イベント・ハンドラ・モジュール213から受信したイベント・データに基づいて、制御信号生成モジュール214は制御信号を生成し、電子装置100に送信する。例えば、制御信号生成モジュール214は、受信したイベント・データをストレージに記憶されたデータと比較する。イベント・データの一部又は全体がストレージに記憶されたイベントとマッチする場合、制御信号生成モジュール214は、マッチしたイベントに関連付けられた制御信号に関する制御信号を生成する。イベント・データがストレージに記憶されたイベントとマッチしないとき、制御信号生成モジュール214は、イベント・データをサーバ300に伝達し、該イベント・データの一部又は全体に関連付けられた制御信号をサーバのストレージが記憶しているか否かを判定する。制御信号は、例えば、イベントが発生したことを示す情報、特定の種類のイベントが発生したことを示す情報、一又は複数の仮想オブジェクトが拡張された仮想環境内に表示されていることを示す情報、電子装置100と一又は複数の仮想オブジェクトとの間の一又は複数のインタラクションを示す情報、及び/又はAR/VR環境500内のイベントに関するその他の情報を含んでもよい。
【0066】
一実施形態において、通信モジュール215は、AR/VR装置200、電子装置100、サーバ300、ハンドヘルド/ウェアラブル装置102、及び/又はその他のAR/VR装置200と通信する装置の間の通信を容易にするように構成されてもよい。通信モジュール215は、AR/VR装置200、電子装置100、及び/又はハンドヘルド/ウェアラブル装置102の間の通信のための有線又は無線の通信チャネル350を提供するように構成される。通信モジュール215は、AR/VR装置200、電子装置100、ハンドヘルド/ウェアラブル装置102、サーバ、及び/又はその他の装置の間の、有線又は無線の通信チャネル350を介した、又は別個の通信チャネルを介した通信を提供にするように構成されてもよい。通信モジュール215は、制御信号生成モジュール214によって生成された制御信号を、有線又は無線の通信チャネル350を介して電子装置100及び/又はハンドヘルド装置102に伝達するように構成されてもよい。
【0067】
一実施形態において、AR/VR装置200のプロセッサ210は、電子装置100が撮像装置220の視野内、又はAR/VR環境500の物理空間520内で移動するときに、電子装置100を認識するように構成されてもよい。例えば、AR/VR装置200のオブジェクト認識モジュール211は、撮像装置220からの画像データをメモリ装置216に記憶されている画像データと比較することによって、電子装置100を認識するように構成されてもよい。AR/VR装置200のメモリ装置216は、電子装置100に対応する画像データを含んでもよい。メモリ装置216は電子装置100に配置される一又は複数の識別標識に対応する画像データを含んでもよい。これらの識別標識は、製品コード、QRコード、電子装置100に関連付けられた画像、及び/又は電子装置100を識別するために用いられるその他の画像を含んでもよい。AR/VR装置200のプロセッサ210は、音声署名、赤外線署名、及び/又は電子装置100によって生成されるその他の署名を認識するように構成されてもよい。一実施形態において、制御信号生成モジュール214は、電子装置100の認識を表す制御信号を生成し、電子装置100で生成されるフィードバックが当該認識を示すようにしてもよい。
【0068】
一実施形態において、プロセッサ210は電子装置100の位置及び/又は電子装置100の方位を電子装置100から受信するように構成されてもよい。電子装置100の位置及び/又は方位は、電子装置100とAR/VR装置200との間で通信チャネル350を介して伝達されてもよい。プロセッサ210は、AR/VR環境500内の電子装置100の位置及び/又は電子装置100の方位を、受信した位置及び/又は方位に基づいて決定するように構成されてもよい。一実施形態において、位置指標画像及び/又は方位指標画像は電子装置100上に配置されてもよい。オブジェクト認識モジュール211は、電子装置100が撮像装置の視野内、及び/又はAR/VR環境500の物理空間520内にあると認識するときに、位置指標画像及び/又は方位指標画像を認識してもよい。位置指標画像及び/又は方位指標画像のデータは、オブジェクト認識モジュール211、イベント・ハンドラ・モジュール213、及び/又はAR/VR装置200のその他のモジュールによって処理され、AR/VR環境500内の電子装置100の位置及び/又は方位を決定してもよい。一実施形態において、プロセッサ210は、物理オブジェクトと電子装置100との間の距離を無視してAR/VR環境500内の電子装置100の位置決めを行うように構成されてもよい。
【0069】
プロセッサ210は電子装置100から入力を受けるように構成されてもよい。例えば、プロセッサ210は、入力要素150を介して受信した入力に関するデータを電子装置100から受信する。入力要素150を介して受信した入力は、例えば、ボタン押下、ジェスチャ、及び/又はタッチスクリーンのジェスチャ又は押圧などの他の入力を含む。AR装置200のプロセッサ210は、受信したデータを処理し、この処理に基づいて機能を実行する。例えば、プロセッサ210は、AR/VR環境500内の一又は複数の仮想オブジェクト510a、510b、・・・510nを追加、削除、置換、及び/又は他の方法で改変する。プロセッサ210は、処理に基づいて電子装置100にデータを送信する。プロセッサ210は、処理に基づいて他の機能を実行する。一実施形態において、プロセッサ210は電子装置100から入力を受信する。この入力は、電子装置100の識別標識と、この入力に識別標識が含まれることの指示とを含む。AR/VR装置200は、識別標識をメモリ装置216内に記憶し、この識別標識を電子装置100と関連付ける。
【0070】
図6は、本発明の実施形態に係る方法600を示す。図に示す通り、この方法は工程610において、上述のシステム10のユーザが、例えば、インターネットを介してユーザに提示されたリスト、カタログ、メニュー等から仮想オブジェクトを選択することによって開始される。ユーザは上述の電子装置100を用いて仮想オブジェクトを選択してもよい。仮想オブジェクトは上述のサーバ300に保存され、このサーバはクラウドの一部であってもよい。工程620において、電子装置100を用いて仮想オブジェクトがダウンロードされる。ダウンロードされた仮想オブジェクトは電子装置100のプロセッサ110内のメモリ装置113に記憶されるか、又はダウンロードされた仮想オブジェクトはAR/VR装置200のプロセッサ210のメモリ装置216に記憶される。工程630において、仮想オブジェクトがダウンロードされるとほぼ同時に、又は仮想オブジェクトがダウンロードされた後に、選択された仮想オブジェクトに関連づけられる触覚アセットが取得される。一実施形態において、仮想オブジェクトが選択されると、ユーザはこの仮想オブジェクトに関連付けられる触覚アセットの選択の機会を与えられる。例えば、仮想オブジェクトが犬である場合、ユーザは従順又は攻撃的といった犬の性格、及び/又はショートヘア又はロングヘアなどの毛皮の手触りについて、選択する機会を与えられる。関連付けられた触覚アセットが取得されると、工程640でユーザはAR/VR環境500内の仮想オブジェクトとインタラクションしてもよい。一実施形態において、工程640でのインタラクションは、ユーザがAR/VR装置200を用いて見ている2つの仮想オブジェクトの間で行われてもよく、又は仮想オブジェクトと物理空間520内の他の物理オブジェクトとの間で行われてもよい。
【0071】
図6に示す方法600についての説明を続ける。工程650において、仮想オブジェクトのアニメーションが存在するかを判定する。仮想オブジェクトのアニメーションが存在する場合、工程660で触覚効果の出力が行われて仮想オブジェクトの実在感を表現し、これによりシステム10ユーザはVR空間510内で仮想オブジェクトの動きを感じることができる。工程650で仮想オブジェクトのアニメーションが存在しないと判定された場合、この方法は工程640に戻る。工程670において、ユーザと仮想オブジェクトとの間、VR空間510内の2つの仮想オブジェクトの間、又は仮想オブジェクトと物理空間520内の他の物理オブジェクトとの間に、仮想オブジェクトとのインタラクションが存在するかが判定される。インタラクションが存在すると判定された場合、工程680でインタラクション触覚効果が実行され、これによりユーザは、例えば仮想オブジェクトの手触りを感じることができる。仮想オブジェクトとのインタラクションが存在しないと判定された場合、この方法は工程640に戻る。一実施形態において、工程650及び670における判定は同時又はほぼ同時に実行されてもよい。例えば、ユーザがタッチスクリーン上のタッチジェスチャ又はジョイスティックによって仮想オブジェクトをドラッグして動かし、この仮想オブジェクトが他の仮想オブジェクトと衝突するとき、この仮想オブジェクトがアニメーション表示されている間、ユーザはこの仮想オブジェクトとインタラクションしてもよい。このとき、生成される触覚効果はこの仮想オブジェクトの手触り及びこの衝突を表す振動を含んでもよい。
【0072】
システム10の一実施形態において、ユーザはアプリケーション・ストアから仮想の鳥を購入してもよい。この仮想オブジェクトがタブレット形式のユーザの電子装置100にロードされると、ユーザは自身のデスク上を鳥が歩き回るのをタブレットのカメラを通して見ることができ、拡張現実(「AR」)アプリケーションを使用すればタブレット上で鳥の足取りを感じることができる。ユーザが自身の手で鳥に触れようとするとき、ハンドヘルド/ウェアラブル装置102を通して鳥の手触りを感じることができる。この実施形態においては、このハンドヘルド/ウェアラブル装置102はウェアラブル装置であってもよい。鳥がユーザの手に飛び乗ると、ユーザはそれが実際の鳥であるかのように手の上の歩くのを見て感じることができる。
【0073】
システム10の一実施形態において、ユーザは鉛筆又はペンなどの仮想の筆記用具を手に持ち、実際又は仮想の紙に書くことができる。仮想の筆記用具はその手触りによって異なって感じられ、この筆記用具を用いた手書き動作を表す触覚効果は、この筆記用具の状態に依存する。例えば、この筆記用具が鉛筆であるかインクペンであるか、ペンの中にあるインクの量はどの程度か、この筆記用具は壊れているか、などである。
【0074】
システム10の一実施形態において、ユーザは缶一杯の仮想のキャンディを右手に持ち、ユーザの右手に触覚力フィードバックが実行されて、ユーザにキャンディの缶が重いと感じさせてもよい。ユーザが仮想のキャンディを自身の左手に移し始めると、ユーザの左手に対する触覚力フィードバックが増加し、これによりユーザは自身の左手のキャンディの増加を感じる。一方でユーザの右手に対する触覚力フィードバックが低減し、これによりユーザはキャンディの缶が軽くなり缶の中のキャンディが少なくなったと感じる。
【0075】
システム10の一実施形態において、ユーザは仮想の鳥オブジェクト及びそれに関連付けられた触覚アセットを仮想現実(「VR」)アプリケーションにロードし、自身のアバターとして仮想のキャラクターを選択してもよい。ユーザは、自身のアバターが仮想の鳥とインタラクションするときに触覚効果を感じることができる。
【0076】
システム10の一実施形態において、第1のユーザ及び第2のユーザがオキュラスリフトなどのヘッドマウントディスプレイを着用して一緒に仮想現実(「VR」)シューティングゲームをプレイしてもよい。VR空間においては、これらのユーザはともに自身を表すアバターを有している。第1のユーザのアバターは仮想のショットガンを携行し、第1のユーザがガンを発砲するジェスチャをすると、第1のユーザは現実のガンを発砲しているかのような引き金効果を感じる。第2のユーザのアバターが撃たれると、第2のユーザは胸に力効果を感じる。
【0078】
拡張現実(「AR」)アプリケーションにおいて、仮想空間510における仮想オブジェクト510aは物理空間520上に上書きされる。仮想オブジェクト510aは、他の上書きされた仮想オブジェクト510b、・・・510nとインタラクションするだけでなく、物理オブジェクト520a、520b、・・・520nともインタラクションする。ARアプリケーションにおいて、ユーザはアバターを用いなくても仮想オブジェクト510aと直接インタラクションしてもよい。
【0079】
AR環境においては、いくつかの種類のインタラクションが存在する。例えば、ユーザと仮想オブジェクト510aとの間のインタラクション、仮想現実空間510内の仮想オブジェクト520aと物理空間520内の物理オブジェクト520aとの間のインタラクション、及び/又は仮想現実空間510内の2つの仮想オブジェクト510a、510bの間のインタラクションである。
【0080】
AR環境内の仮想オブジェクト510a、510b、・・・510nの触覚効果を設計するために、一連の工程を採用してもよい。第1に、仮想オブジェクト510aに関わるインタラクションが発生したときに触覚効果が誘発されてもよい。現実世界や物理空間520内の物理オブジェクト520aが仮想現実空間510内の仮想オブジェクト510a、510b、・・・510nとインタラクションを開始するとき、このインタラクションは捕捉され、仮想オブジェクトの状態がコンテキストに基づいて判定され、静的又は動的な触覚効果が生成される。仮想現実空間510内の仮想オブジェクト510aが他の仮想オブジェクト510b、・・・510nとインタラクションを開始するとき、このインタラクションは捕捉され、各仮想オブジェクトの状態がコンテキストに基づいて個別に判定され、静的又は動的な触覚効果が生成される。仮想現実空間510内の仮想オブジェクト510aが現実世界や部率空間520内の物理オブジェクト520a、520b、・・・520nとのインタラクションを開始するとき、仮想オブジェクト510aの環境に基づく力が計算されてもよい。三次元空間内で仮想オブジェクトが物理オブジェクト又はユーザに向かって移動するとき、環境及び移動に基づいて衝突が計算される。
【0081】
ユーザと仮想オブジェクト510aとの間のインタラクションはアクティブ・インタラクションを含んでもよい。例えば、ユーザは感触型の触覚効果を感じながら仮想オブジェクト510aに直接タッチ及び/又はドラッグしてもよく、又はユーザは確認用触覚効果を感じながら、定義されたジェスチャで仮想オブジェクト510aを制御及び/又は変更してもよい。仮想オブジェクト510aとの受動的なインタラクションも存在する。例えば、「足取り」をシミュレーションする触覚効果が生成されるとともに、ユーザの手の上を歩く仮想の鳥、又は「打撃」をシミュレーションする触覚効果が生成されるとともに、ユーザを撃つ仮想の弾丸である。仮想オブジェクト510aと現実世界や物理オブジェクト520aとのインタラクションについては、「足取り」をシミュレーションする触覚効果が生成されるとともに仮想の鳥が現実の床の上を歩いてもよく、又はユーザが衝突触覚効果を感じながら現実のテニスラケットで仮想のテニスボールを打ってもよい。例えば、2つの仮想オブジェクト510a、510bの間のインタラクションについては、「ついばむ」行為をシミュレーションする触覚効果が生成されるとともに、ユーザの手又は現実の床の上を這う仮想の虫を仮想の鳥が食べてもよく、又はユーザが衝突触覚効果を感じながら現実のテニスラケットで仮想のテニスボールを打ってもよい。
【0082】
一実施形態において、システム10のハンドヘルド/ウェアラブル装置102をARアプリケーションの触覚効果の生成に用いてもよく、またウェアラブル装置の形態であってもよい。このウェアラブル装置は指、手首、腕、肩、頭、胸などに着用されるように構成されてもよい。一実施形態において、複数のウェアラブル装置を同時に用いてもよい。ARアプリケーションを携帯装置向けに設計した一実施形態において、ハンドヘルド/ウェアラブル装置102はスマートフォン又はタブレットなどのハンドヘルド装置の形態であってもよい。
【0083】
一実施形態において、静的触覚生成法を用いてAR環境内の仮想オブジェクトの触覚効果を実現してもよい。第1に、各仮想オブジェクトのステートマシンを設計する。各状態について予め設計された触覚効果は、アセット/プロパティファイル(例えば、ivtファイル、haptファイルなど)として記憶され、仮想オブジェクトの他のアセット/プロパティとともにパッキングされてもよい。仮想オブジェクトの状態がある状態から他の状態に変化すると、それに従って触覚効果が実行されてもよい。例えば、仮想オブジェクトが仮想バルーンである場合、ユーザがこの仮想バルーンに「タッチ」するとこの仮想バルーンは「タッチモード」に変わり、感触型の触覚効果が実行されてもよい。ユーザが仮想バルーンを壁に「ぶつける」と、仮想バルーンは「衝突モード」に変わり、衝突型触覚効果が実行される。ユーザが針で仮想バルーンを「刺す」と、仮想バルーンは「爆発モード」に変わり、爆発型効果が実行される。
【0084】
一実施形態において、動的触覚生成法を用いてAR環境内の仮想オブジェクトの触覚効果を実現してもよい。第1に、材質、形状、重量、手触り、アニメーションなどの各仮想オブジェクトの物理的特性を決定する。ユーザが仮想オブジェクトに対して力を加えた場合、力の量、位置、及び角度、並びに反射率、吸収率などの仮想オブジェクトの特性に従って触覚効果のパラメータが計算されてもよい。同様の計算は、仮想オブジェクトがユーザに対して力を加える状況、又は仮想オブジェクト同士が互いに力を加える状況で実行されてもよい。予め設計された触覚効果は各々の仮想オブジェクトについて必要とはされておらず、力及びオブジェクトの物理特性に従って動的な触覚効果が計算及び実行されてもよい。
【0085】
仮想オブジェクトの状態を用いて適切な触覚フィードバックが生成されるため、状態のモニタリングを行う必要がある。触覚フィードバックは仮想オブジェクトの内部状態に基づいてカスタマイズされ、異なる状態が異なる触覚効果に対応するようになっている。例えば、仮想の車椅子から誘発される触覚効果は、仮想の椅子に座ることによって誘発される触覚効果とは異なってもよい。
【0086】
触覚アセットファイル(例えば、ivtファイル、haptファイルなど)はローカルメモリに記憶されるか、又はアプリケーションのコードの一部として記憶されてもよい。本発明の一実施形態において、触覚アセット及びプロパティは仮想オブジェクトに関連付けられるが、特定のアプリケーションには依存しない。このような触覚向上型仮想オブジェクトは、ローカルメモリだけでなくクラウド上、すなわち、クラウド・コンピューティング・システムの一部であるサーバ310のメモリ装置320上にも記憶してもよい。クラウド上に触覚向上型仮想オブジェクトを記憶することによって、当該仮想オブジェクトは異なる電子装置100の間で共有することが容易になり、また電子装置100のローカルメモリ装置113を占有することもない。
【0088】
仮想現実(「VR」)アプリケーションにおいて、ユーザがVRグラス(例えばオキュラスリフト)などのヘッドマウントディスプレイ装置を着用すると、現実世界は仮想世界によって置き換えられ、ユーザは仮想世界の中で自分自身を見ることがなくなる。よって、仮想環境内でユーザを表現するためにアバターが用いられ、これによって他の仮想オブジェクトとのインタラクションが行われる。
【0089】
このアバターと他の仮想オブジェクトとの間でインタラクションが発生したときに、触覚効果が実行される。アバターそのものは仮想オブジェクト510a、510b、・・・510nであるため、VRアプリケーションにおいては1種類のみのインタラクションが存在する。すなわち、2つの仮想オブジェクトの間のインタラクションである。一実施形態において、アバターは人間の特徴に基づいたものでなくてもよく、道具、武器、動物などであってもよい。アバターは、VR空間510内で他の仮想オブジェクト510a、510b、・・・510nとインタラクションし、触覚効果を誘発するために、ユーザを表したものである。
【0090】
一実施形態において、システム10のハンドヘルド/ウェアラブル装置102をVRアプリケーションの触覚効果の生成に用いてもよく、またウェアラブル装置の形態であってもよい。このウェアラブル装置は指、手首、腕、肩、頭、胸などに着用されるように構成されてもよい。アバターと仮想オブジェクトの間に衝突がある場合、ユーザが着用しているウェアラブル装置上で衝突触覚効果が実行されてもよい。一実施形態において、複数のウェアラブル装置を同時に用いてもよい。VRアプリケーションを携帯装置向けに設計した一実施形態において、ハンドヘルド/ウェアラブル装置102はスマートフォン又はタブレットなどのハンドヘルド装置の形態であってもよい。
【0091】
一実施形態において、静的触覚生成法を用いて触覚効果を設計してもよい。この方法はアバターを含む各仮想オブジェクト510a、510b、・・・510nについて、ステートマシンを設計する工程を含む。どの触覚効果を実行するかを決定する際に、アバターの状態及びアバターとインタラクションしている仮想オブジェクトの状態を含む少なくとも2つのステートマシンを考慮する必要がある。
【0092】
一実施形態において、動的触覚生成法を用いて触覚効果を設計してもよい。動的触覚効果のパラメータは、アバター及びインタラクションされる仮想オブジェクトの間の力、並びに両オブジェクトの物理特性によって決定される。
【0093】
ARアプリケーションと同様に、仮想オブジェクトの状態は適切な触覚フィードバックの生成に用いられ、異なる状態は異なる触覚効果と対応する。さらに、触覚向上型仮想オブジェクトは、ローカルメモリだけでなくクラウド上、すなわち、クラウド・コンピューティング・システムの一部であるサーバ310のメモリ装置320上にも記憶してもよい。
【0094】
本発明の実施形態は、アプリケーション・ベース、イベント・ベースではなく、オブジェクト・ベースの触覚デザインを提供する。本発明の実施形態は、特定のアプリケーションに依存せず、複数のAR/VRアプリケーションで使用可能な触覚アセットを有する仮想オブジェクトを提供する。
【0095】
一実施形態において、システム10は、複数の電子装置100及びAR/VR装置200を備え、このような装置の複数のユーザは、同一の仮想オブジェクトに対して同時にインタラクションすることができるが、各々の異なるインタラクションに応じて異なる触覚効果を感じることができる。
【0096】
本明細書に記載された実施形態は、実施可能な実装例および実施例であるが、本発明を特定の実施形態に制限することを必ずしも意図するものではない。むしろ、これらの実施形態には、当該技術分野における当業者に理解できるような変更を加えることができる。このような変更が加えられた態様も本発明の要旨及び範囲に含まれ、そして以下の請求項によって保護されるべきものである。