(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-19
(45)【発行日】2024-02-28
(54)【発明の名称】拡張現実のバーチャルエージェントとのコミュニケーション
(51)【国際特許分類】
G06F 3/01 20060101AFI20240220BHJP
A63F 13/213 20140101ALI20240220BHJP
A63F 13/55 20140101ALI20240220BHJP
A63F 13/42 20140101ALI20240220BHJP
G06T 19/00 20110101ALI20240220BHJP
G10L 15/00 20130101ALI20240220BHJP
【FI】
G06F3/01 510
A63F13/213
A63F13/55
A63F13/42
G06T19/00 600
G10L15/00 200H
(21)【出願番号】P 2019148855
(22)【出願日】2019-08-14
【審査請求日】2022-04-22
(32)【優先日】2019-06-03
(33)【優先権主張国・地域又は機関】CA
(73)【特許権者】
【識別番号】517084612
【氏名又は名称】スクウェア エニックス、リミテッド
【氏名又は名称原語表記】SQUARE ENIX,LTD.,
(74)【代理人】
【識別番号】100083138
【氏名又は名称】相田 伸二
(72)【発明者】
【氏名】アンソニー レーダン
(72)【発明者】
【氏名】レナウド ベダード
【審査官】木内 康裕
(56)【参考文献】
【文献】国際公開第2017/221492(WO,A1)
【文献】特表2019-503526(JP,A)
【文献】米国特許出願公開第2017/0206095(US,A1)
【文献】特開2015-148932(JP,A)
【文献】特開2015-176099(JP,A)
【文献】特開2017-123050(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/048 - 3/04895
A63F 13/213
A63F 13/55
A63F 13/42
G06T 19/00
G10L 15/00
(57)【特許請求の範囲】
【請求項1】
演算装置のプロセッサにより実行される方法であって、該方法は、
カメラからの画像を受け取り、
少なくとも一つの実世界オブジェクトを前記画像中に認識し、
スクリーン上に、少なくとも一つの実世界オブジェクトとバーチャルエージェントを含んだ拡張現実(AR)場面を表示し、
ユーザ入力を受け取り、
該ユーザ入力から単純化したユーザ意思を引き出し、
該ユーザ入力に反応して、バーチャルエージェントに前記AR場面内でリアクションを起こさせ、該リアクションは、前記単純化したユーザ意思に依存
するように構成され、
前記ユーザ入力から単純化したユーザ意思を引き出すことは、
○前記ユーザ入力をユーザフレーズに変換し、
○少なくとも一つのセマンティック素子を前記ユーザフレーズ内で決定し、前記少なくとも一つのセマンティック素子は、少なくとも一つの、意思表現とセマンティックオブジェクトタグを有し、
○前記少なくとも一つのセマンティック素子を前記単純化したユーザ意思に変換する、
ことからなり、この変換は、
*(i)前記意思表現に関連する意思及び(ii)セマンティックオブジェクトタグに関連づけられた固有オブジェクトIDを得る、前記意思は、意思データベース内に格納された意思表現と意思の多対1マッピングから得たものであり、 前記固有オブジェクトIDは、オブジェクトデータベース内に格納されたセマンティックオブジェクトタグと固有オブジェクトIDの多対1マッピングから得たものであり、前記固有オブジェクトIDは、前記画像を撮ったカメラの視野内のオブジェクトに対応するように選択されており、
*前記意思データベースから得た前記意思と前記オブジェクトデータベースから得た固有オブジェクトIDを連結して前記単純化したユーザ意思を生成する、
ことからなる、演算装置のプロセッサにより実行される方法。
【請求項2】
請求項1記載の方法において、該方法は、更に、オブジェクトデータベースを調べて、前記少なくとも一つの実世界オブジェクトの特性を取得し、前記リアクションは更に、該少なくとも一つの実世界オブジェクトの特性に依存する。
【請求項3】
請求項
1記載の方法において、前記ユーザ入力は、受け取った発話を含み、前記ユーザ入力をユーザフレーズに変換することは、スピーチ-テキストプロセスを前記受け取った発話に適用して、1セットの単語からなる前記ユーザフレーズを得ることを含む。
【請求項4】
請求項
1記載の方法において、前記ユーザ入力はテキストを含み、前記ユーザ入力をユーザフレーズに変換することは、スペルチェック、文法チェック及び翻訳のうち少なくとも一つを実行して、1セットの単語からなる前記ユーザフレーズを得ることを含む。
【請求項5】
請求項
1記載の方法において、前記少なくとも一つのセマンティック素子は、意思表現とセマンティックオブジェクトタグを有する。
【請求項6】
請求項
1記載の方法において、前記少なくとも一つのセマンティック素子を前記ユーザフレーズ内で決定することは、前記ユーザフレーズ内にある少なくとも一つの意思表現を認識するために、意思表現を格納する意思データベースを参照することを含む。
【請求項7】
請求項
6記載の方法において、前記少なくとも一つのセマンティック素子を前記ユーザフレーズ内で決定することは、前記ユーザフレーズ内にある少なくとも一つのセマンティックオブジェクトタグを認識するために、セマンティックオブジェクトタグを格納するオブジェクトデータベースを参照することを含む。
【請求項8】
請求項
7記載の方法において、意思データベースは、意思表現と対応する意思の間の関連を格納しており、前記オブジェクトデータベースはセマンティックオブジェクトタグと対応する
固有オブジェクトIDの間の関連を格納
している。
【請求項9】
請求項
1記載の方法において、少なくとも一つのセマンティック素子は、複数の意思表現を含む。
【請求項10】
請求項
9記載の方法において、前記複数の意思表現は、コマンドと挨拶を含む。
【請求項11】
請求項
10記載の方法において、該方法は、更に、ユーザフレーズを単純化したユーザ意思に変換する際に、挨拶よりもコマンドを優先させることを含む。
【請求項12】
請求項
1記載の方法において、複数の
固有オブジェクトIDはセマンティックオブジェクトタグと関連しており、該固有オブジェクトIDは、前記AR場面の異なるオブジェクトに対応しており、
前記意思と前記固有オブジェクトIDを連結して前記単純化したユーザ意思を生成することは、前記意思を前記複数の固有オブジェクトIDと連結して、前記単純化されたユーザ意思を生成することを含む。
【請求項13】
請求項2記載の方法において、前記少なくとも一つの実世界オブジェクトの特性は、該実世界オブジェクトの形状を含み、前記リアクションは、前記バーチャルエージェントを動かし、その動作中に、前記バーチャルエージェントの形を前記実世界オブジェクトの形状に一致させることを含む。
【請求項14】
請求項1乃至
13記載の方法のうち、いずれか1項記載の方法において、少なくとも一つの実世界オブジェクトを前記画像中に認識することは、マシンビジョン処理を前記画像に適用することを含む。
【請求項15】
請求項1乃至
14記載の方法のうち、いずれか1項記載の方法において、該方法は、更に、前記バーチャルエージェントと前記実世界オブジェクトのバーチャルモデルを有する3Dバーシャル世界を維持することを含む。
【請求項16】
請求項1乃至
15記載の方法のうち、いずれか1項記載の方法において、前記リアクションは、更に該バーチャルエージェントの特別な行動タイプに依存することを含む。
【請求項17】
請求項
16記載の方法において、前記リアクションはバーチャルエージェントをアニメーションさせることを含み、該アニメーションさせることは、データベースにアクセスして前記バーチャルエージェントの特別な行動タイプを取得し、行動ツリーに適用して該バーチャルエージェントをどのようにアニメーションさせるかを決定することを含む。
【請求項18】
請求項
1記載の方法において、前記少なくとも一つのセマンティック素子は、データベース内でコマンドと関連している意思表現を有し、前記リアクションは、前記コマンドの実行を想起させる外見的な動きを見せるように前記バーチャルエージェントをアニメーションさせることを含む。
【請求項19】
請求項
18記載の方法において、前記リアクションは、バーチャルエージェントのアニメーションで、前記外見的な動きを先行させ、前記コマンドを認識したことを示すようにすることを含む。
【請求項20】
請求項
1記載の方法において、記リアクションは、3Dバーチャル空間でのバーチャルエージェントと前記
固有オブジェクトIDに関連したオブジェクト間の距離に依存した要素を有する。
【請求項21】
請求項
1記載の方法において、前記リアクションは、3Dバーチャル空間でのバーチャルエージェントと前記
固有オブジェクトIDに関連したオブジェクトの特性間の距離に依存した要素を有する。
【請求項22】
請求項1乃至
21記載の方法のうち、いずれか1項記載の方法において、前記リアクションは、単純化したユーザ意思の少なくとも一つの、前の例に依存する成分を有する。
【請求項23】
コンピュータ可読指示を含んだコンピュータ可読媒体であり、ゲーム装置の少なくとも一つのプロセッサにより前記指示が読まれ、実行されると、前記ゲーム装置はビデオゲームにおいて以下の方法を実行するが、該方法は、
カメラからの画像を受け取り、
マシンビジョン処理を用いて、少なくとも一つの実世界オブジェクトを前記画像中に認識し、
スクリーン上に、少なくとも一つの実世界オブジェクトとバーチャルエージェントを含んだ拡張現実(AR)場面を表示し、
ユーザ入力を受け取り、
該ユーザ入力から単純化したユーザ意思を引き出し、
該ユーザ入力に反応して、バーチャルエージェントを前記AR場面内でアニメーションさせ、該アニメーションは、前記単純化したユーザ意思に依存する、ように構
成され、
前記ユーザ入力から単純化したユーザ意思を引き出すことは、
○前記ユーザ入力をユーザフレーズに変換し、
○少なくとも一つのセマンティック素子を前記ユーザフレーズ内で決定し、前記少なくとも一つのセマンティック素子は、少なくとも一つの、意思表現とセマンティックオブジェクトタグを有し、
○前記少なくとも一つのセマンティック素子を前記単純化したユーザ意思に変換する、
ことからなり、この変換は、
*(i)前記意思表現に関連する意思及び(ii)セマンティックオブジェクトタグに関連づけられた固有オブジェクトIDを得る、前記意思は、意思データベース内に格納された意思表現と意思の多対1マッピングから得たものであり、前記固有オブジェクトIDは、オブジェクトデータベース内に格納されたセマンティックオブジェクトタグと固有オブジェクトIDの多対1マッピングから得たものであり、前記固有オブジェクトIDは、前記画像を撮ったカメラの視野内のオブジェクトに対応するように選択されており、
*前記意思データベースから得た前記意思と前記オブジェクトデータベースから得た固有オブジェクトIDを連結して前記単純化したユーザ意思を生成する、
ことからなる。
【請求項24】
コンピュータ可読指示を含んだコンピュータ可読媒体であり、ゲーム装置の少なくとも一つのプロセッサにより前記指示が読まれ、実行されると、前記ゲーム装置はビデオゲームにおいて以下の方法を実行するが、該方法は、請求項1乃至
22の内、いずれか1項に記載の方法である。
【請求項25】
少なくとも一つのプロセッサと該プロセッサにより実行される指示を格納したメモリを有するゲーム装置であり、ユーザからの入力を受け取るように構成された少なくとも一つの入力装置、ユーザに出力を提供するように構成された少なくとも一つの出力装置、前記受け取った入力に反応して出力を生成するインタラクティブコンピュータプログラムを実行するために、メモリ内の前記指示を実行するように構成された少なくとも一つのプロセッサを有し、前記インタラクティブコンピュータプログラムは、少なくとも一つのプロセスを有する、
該プロセスは、
カメラからの画像を受け取り、
マシンビジョン処理を用いて、少なくとも一つの実世界オブジェクトを前記画像中に認識し、
スクリーン上に、少なくとも一つの実世界オブジェクトとバーチャルエージェントを含んだ拡張現実(AR)場面を表示し、
ユーザ入力を受け取り、
該ユーザ入力から単純化したユーザ意思を引き出し、
該ユーザ入力に反応して、バーチャルエージェントを前記AR場面内でアニメーションさせることを含み、該アニメーションは、前記単純化したユーザ意思に依存する、ように
構成され、
前記ユーザ入力から単純化したユーザ意思を引き出すことは、
○前記ユーザ入力をユーザフレーズに変換し、
○少なくとも一つのセマンティック素子を前記ユーザフレーズ内で決定し、前記少なくとも一つのセマンティック素子は、少なくとも一つの、意思表現とセマンティックオブジェクトタグを有し、
○前記少なくとも一つのセマンティック素子を前記単純化したユーザ意思に変換する、
ことからなり、この変換は、
*(i)前記意思表現に関連する意思及び(ii)セマンティックオブジェクトタグに関連づけられた固有オブジェクトIDを得る、前記意思は、意思データベース内に格納された意思表現と意思の多対1マッピングから得たものであり、前記固有オブジェクトIDは、オブジェクトデータベース内に格納されたセマンティックオブジェクトタグと固有オブジェクトIDの多対1マッピングから得たものであり、前記固有オブジェクトIDは、前記画像を撮ったカメラの視野内のオブジェクトに対応するように選択されており、
*前記意思データベースから得た前記意思と前記オブジェクトデータベースから得た固有オブジェクトIDを連結して前記単純化したユーザ意思を生成する、
ことからなる。
【請求項26】
少なくとも一つのプロセッサと該プロセッサにより実行される指示を格納したメモリを有するゲーム装置であり、ユーザからの入力を受け取るように構成された少なくとも一つの入力装置、ユーザに出力を提供するように構成された少なくとも一つの出力装置、前記受け取った入力に反応して出力を生成するインタラクティブコンピュータプログラムを実行するために、メモリ内の前記指示を実行するように構成された少なくとも一つのプロセッサを有し、前記インタラクティブコンピュータプログラムは、請求項1乃至
22の内、いずれか1項に記載の方法を実行するプログラムである。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータゲームに関わり、特に拡張現実を使うインタラクティブコンピュータゲームに関する。
【背景技術】
【0002】
拡張現実は、実際の世界の映像と架空オブジェクトの描写との混合を可能とすることで、コンピュータゲームの世界を変えた。しかし、そうしたゲームでは、実際の世界の映像から表面(AR平面)を検知することがあるが、バーチャルエージェントとのユーザのコミュニケーション能力が関係している限りにおいて、限界がある。このことは、ゲームの興趣をそぐものであり、購買意欲の低下にもつながるものである。
【発明の概要】
【0003】
本発明は、とりわけ、ゲーム装置のユーザが、拡張現実3D画像内でゲーム装置のスクリーン上に現れるバーチャルエージェントと、コミュニケーションし、これにより自然言語を通して見かけ上制御することができる、ゲーム装置により実行されるバーチャルエージェントコミュニケーションプロセスである。そしてバーチャルエージェントは実世界オブジェクト及びその特性や位置が装置のメモリに格納されているバーチャルオブジェクトと相互に「交流」する。これは、バーチャルエージェントとのより高度なコミュニケーション特徴であり、ここに提供されたものは、消費者を引きつけ、多くの消費者をゲーム出版者にもたらす。
【0004】
即ち、演算装置のプロセッサにより実行される方法であって、該方法は、カメラからの画像を受け取り、マシンビジョン処理を用いて少なくとも一つの実世界オブジェクトを前記画像中に認識し、スクリーン上に、少なくとも一つの実世界オブジェクトとバーチャルエージェントを含んだ拡張現実(AR)場面を表示し、ユーザ入力を受け取り、ユーザ入力から単純化したユーザ意思を引き出し、そして、該ユーザ入力に反応して、バーチャルエージェントに前記AR場面内でリアクションを呈示させ、該リアクションは、前記単純化したユーザ意思に依存するものである。
【0005】
第2の広い観点は、コンピュータ可読指示を含んだコンピュータ可読格納媒体を提供するものであり、ゲー装置の少なくとも一つのプロセッサにより読まれ、実行されると、ゲーム装置にビデオゲーム内で以下の方法を実行させる。該方法は、カメラからの画像を受け取り、マシンビジョン処理を用いて少なくとも一つの実世界オブジェクトを前記画像中に認識し、スクリーン上に、少なくとも一つの実世界オブジェクトとバーチャルエージェントを含んだ拡張現実(AR)場面を示し、ユーザ入力を受け取り、ユーザ入力から単純化したユーザ意思を引き出し、そして、該ユーザ入力に反応して、バーチャルエージェントにAR画面内で反応させる。リアクション(反応)は、前記単純化したユーザ意思に依存するものである。
【0006】
第3の広い観点は、少なくとも一つのプロセッサと該プロセッサにより実行される指示を格納したメモリを有するゲーム装置を提供するものであり、ユーザからの入力を受け取るように構成された少なくとも一つの入力装置、ユーザに出力を提供するように構成された少なくとも一つの出力装置、前記受け取った入力に反応して出力を生成するインタラクティブコンピュータプログラムを実行するために、メモリ内の前記指示を実行するように構成された少なくとも一つのプロセッサを有し、前記インタラクティブコンピュータプログラムは、少なくとも一つのプロセスを有する。該プロセスは、カメラからの画像を受け取り、マシンビジョン処理を用いて少なくとも一つの実世界オブジェクトを前記画像中に認識し、スクリーン上に、少なくとも一つの実世界オブジェクトとバーチャルエージェントを含んだ拡張現実(AR)場面を示し、ユーザ入力を受け取り、ユーザ入力から単純化したユーザ意思を引き出し、そして、該ユーザ入力に反応して、バーチャルエージェントをAR画面内で反応(リアクション)させる。該反応(リアクション)は、前記単純化したユーザ意思に依存するものである。
これらの観点及び他の観点、更に多様な実施例の特徴は、添付した図面を参照した以下の記述から明らかになる。
【図面の簡単な説明】
【0007】
【
図1】
図1は、非限定的な実施例による、バーチャルエージェントとのコミュニケーション過程を持った、インタラクティブなコンピュータゲームを実行するゲーム装置を示すブロック図。
【
図2】
図2は、非限定的な実施例による、インタラクティブなバーチャルエージェントのいるスクリーンショットを示す図。
【
図3A】
図3Aは、非限定的な実施例による、パーソナリティパラメータデータベースの内容を概念的に示す図。
【
図3B】
図3Bは、非限定的な実施例による、オブジェクトデータベースの内容を概念的に示す図。
【
図3C】
図3Cは、非限定的な実施例による、オブジェクトデータベースの内容を概念的に示す図。
【
図4】
図4は、非限定的な実施例による、意思データベースの内容を概念的に示す図。
【
図5】
図5は、非限定的な実施例による、バーチャルエージェントとのコミュニケーション過程のステップを示すフローチャート。
【
図6】
図6は、非限定的な実施例による、バーチャルエージェントとのコミュニケーション過程のステップの一つに対応するサブステップを示すフローチャート。
【
図7A】
図7Aは、非限定的な実施例による、ユーザーフレーズを単純化したユーザ意思に変換する過程を示す模式図。
【
図7B】
図7Bは、非限定的な実施例による、ユーザーフレーズを単純化したユーザ意思に変換する過程を示す模式図。
【
図8】
図8は、ゲーム装置のような演算装置のプロセッサにより実行される方法を示すフローチャート。
【
図9A】
図9Aは、ユーザーフレーズとセマンティック素子間の対応を示す図。
【
図9B】
図9Bは、セマンティック素子と単純化したユーザ意思間の対応を示す図。
【
図10】
図10は、非限定的な実施例による、パーソナリティパラメータデータベースでの行動タイプによって、アニメーションさせる行動ツリーを示すフローチャート。
【
図11】
図11は、単純化したユーザ意思の多様な組み合わせに対応するために使用される複数の行動ツリーを示すデータベースの概念図。
【0008】
前述の図面は、非限定的なものであり、以下の記述で述べられる多様な観点や特徴を示すものである。
【発明を実施するための形態】
【0009】
図1に示すように、ゲーム装置1は、コンピュータゲームを実行するゲームコンソール又はタブレットのようなものである。コンピュータゲームは、最低限、メモリ4に格納されたコンピュータ可読指示で規定されるインタラクティブコンピュータプログラムであり、少なくとも一つのプロセッサ2により読まれて実行される。少なくとも一つのプロセッサ2は、一つ以上の中央処理装置(CPU)及び/又は一つ以上のグラフィック処理装置(GPU)を有する。バス8は、少なくとも一つのプロセッサ2とメモリ4間の通信を行う。
【0010】
単純な非限定的な実施例では、コンピュータ可読指示により規定されたインタラクティブコンピュータプログラムはゲームプロセス(又はゲームループ)及びレンダリングプロセスを含み、それらは少なくとも一つのプロセッサ2により実行される。
【0011】
レンダリングプロセスは、ゲームループに対しては非同期的である(特に、グラフィック処理装置が-GPUによって行われる時は)。しかし、最終的な出力はフレームバッファ(ピクセルのアレイ)であり、通常のフレームレート(24fps、30fps、60fps)でスクリーン5に表示される。入出力(即ち、DAC-デジタル音声変換)を扱う他のハードウエアと共に、スピーカ11を介した音声出力は(CPU上の)メインスレッド上のゲームループで管理される。スクリーン5とスピーカ11は、入出力インターフェース(I/O)7及びバス8を介して少なくとも一つのプロセッサ2に接続されている。画像と音は多様なゲームオブジェクトに関連しており、それらの特性及び位置はメモリ4に格納されている。ゲームオブジェクトの例には、プレイヤキャラクタ(PC)やノンプレイヤキャラクタ(NPC)が含まれる。
【0012】
ゲームオブジェクトのそれぞれは、3Dバーチャル空間内での特性及び位置のセットにより特徴つけられており、メモリ4に格納されている。ゲームオブジェクトの位置は、3Dバーチャル空間内のゲームオブジェクトにより占有される一セットの座標としてエンコードされる。ゲームオブジェクトに関する特性のセットには、ゲームオブジェクトの記述も含まれる。ゲームオブジェクトの特性のセットには、該ゲームオブジェクトが実際の世界のオブジェクトであるか、又はバーチャルオブジェクトであるかの指標も含まれる。実際の世界のオブジェクトは実際の世界に存在するゲームオブジェクト(ユーザの物理世界、例えば、カメラで撮った物など)を表し、最終的にメモリ4内に維持される3Dバーチャル空間内に配置される。一方、バーチャルオブジェクトは、3Dバーチャル空間内にのみ存在するゲームオブジェクトを表す。
【0013】
ユーザ3は、少なくとも一つの入力装置(例えば、ジョイスティック、タッチスクリーン5,キーボード、コントローラ、マイクロフォン9,カメラ6及び/又はジェスチャーの一つ以上)を介してユーザ入力を行う。少なくとも一つの入力装置がI/O7及びバス8を介して少なくとも一つのプロセッサ2に接続されている。ゲーム過程(時として「ゲームループ」又は「ゲームロジック」とも呼ばれる)を実行する際の一部として、ユーザ3から受け取った入力は、処理され、メモリ104に格納されたゲームオブジェクトの特性及び位置を変化させることがある。この変化したデータがゲーム及びレンダループ/プロセスにより処理されると、スクリーン5にリンダリングされる画像を変化させ、スピーカ11から生成される新しい音に変化が生じる。これらの出力が、少なくとも一つの入力装置を介した更なる入力をユーザが行って反応することを誘発する。
【0014】
CPUゲームループの一部として、少なくとも一つのプロセッサ2は、カメラ6又はゲーム装置1に接続され又は一体化された他のイメージ装置からの画像のタイムシーケンスを取得/検索することができる。少なくとも一つのプロセッサ2は、2Dカメラ画像(カメラ6で撮った)内で見つけたオブジェクトを3Dバーチャル空間内に登録し、2Dカメラ画像をバーチャルオブジェクトと共に並べて表示することが出来る(即ち、3Dバーチャル空間内のバーチャルオブジェクトの一部の2D表現としてレンダリングする、即ち、カメラ/視野の円錐台25内に現れるこれらのものを3Dバーチャル空間に適用する)。結果的に合成され、レンダリングされた画像は、拡張現実(AR)画面とされ、ユーザ3に、あるバーチャルオブジェクトがカメラ6の視野(FOV)内に実際にあるかのような印象を与える。カメラ6それ自体は、3Dバーチャル空間で位置を持つ。
【0015】
得られたカメラ画像は、少なくとも一つのプロセッサがコンピュータビジョンアルゴリズムを使って特定化することのできる機械認識可能実世界オブジェクトを含む。特に、少なくとも一つのプロセッサ2は、コンピュータビジョンアルゴリズムを実行して、得られた画像の一つ以上の視点から、形、色及び/又はテクスチャ(パターン)を吟味して既知のオブジェクトを特定するように試みる。コンピュータビジョンアルゴリズムの出力とカメラデータ及び実世界のAR表現を組み合わせることで、実世界のオブジェクトに関する3D形状及び位置を演算することが可能となる。こうして、実世界オブジェクトは3Dバーチャル空間に正確に登録することができる。これにより、スクリーン上で合成画像内にバーチャルオブジェクトをレンダリンして示す際に、レンダリングプロセスにより考慮されるべき3Dバーチャル空間内の実世界オブジェクトの輪郭や障壁を定義することができる。
【0016】
図2に、AR画面として、ゲーム装置1のスクリーン5上の例示画像の例を示す。この合成画像は、カメラ6によって撮られた2D画像(実世界オブジェクトを含んでいる)とバーチャル世界(複数のバーチャルオブジェクトを含んでいる)のレンダリングされたグラフィック表現を混ぜたものであり、3Dバーチャル空間内でカメラ視点からの画像である。
【0017】
AR画面の実世界オブジェクトの一つは、230で示されたテーブルであり、ユーザ3の視点である。実世界オブジェクトの他の一つは、240で示されたカウチ/ソファであり、ユーザ3の視点である。カウチ/ソファ240は、テーブル230よりもカメラ6からは遠い距離であるため、3Dバーチャル空間内では、カメラ6の位置からそれだけ離れた位置となっている。
【0018】
AR画面の210で示されたものはサッカーボールであり、3Dバーチャル空間内で定義されたバーチャルオブジェクトの一つであり、ユーザ3の視点である。AR画面の他のバーチャルオブジェクトの一つは、200で示された「バーチャルエージェント」と言われるものである。
【0019】
バーチャルエージェント200は、他のバーチャルオブジェクトと同様に、3Dバーチャル空間内で座標を占める。加えてグラフィカルなリアリティを与えるために、バーチャルエージェント200は、動けるように多少リアルな「身体」を持つようにレンダリングされ、表情を表すことが出来るように、多少リアルな「顔」を持つようにレンダリングされている。声による特徴付けもバーチャルエージェント200に関連している。ある例では、バーチャルエージェント200は、人間、動物、アンドロイド又は完全な空想物の形を取る。
【0020】
図8は、ゲーム装置1の少なくとも一つのプロセッサ2により実行される方法のフローチャートである。特に、メモリ4は、コンピュータ可読指示のサブセットを格納しており、それは少なくとも一つのプロセッサ2により実行される。
【0021】
ステップ810で、画像(又はフレームレートでの連続画像)をカメラ6から受け取る。この例では、画像は少なくとも一つの実世界オブジェクトを有しているが、この事実は、少なくとも一つのプロセッサには知られていない。従って、ステップ820で、マシンビジョン処理が、画像内での少なくとも一つの実世界オブジェクトを認識するために使用される。ステップ820の結果、実世界オブジェクトは3Dバーチャル空間内に配置される。ステップ830では、実世界オブジェクトとバーチャルエージェント200のレンダリングされたグラフィック画像(表現)を含んだ合成画像がスクリーン5に表示される。これを、「AR画面」と称する。
【0022】
ステップ840では、「バーチャルエージェントコミュニケーションプロセス」、即ち、バーチャルエージェント200とのコミュニケーションのための処理が実行される。これは、
図5を参照して説明する。一般的に、バーチャルエージェントコミュニケーションプロセスの実施例によると、バーチャルエージェント200は、動作(アニメーション)して(即ち、ゲーム装置1のスクリーン5上で画像が変化するようにレンダリングされる)、ゲーム装置1のユーザ3から受け取ったユーザーフレーズに「反応(リアクション)」する外見を与えるようにする。バーチャルエージェント200のアニメーションはバーチャルエージェント200のパーツの明らかな「動き」を含むものであり、バーチャルオブジェクト及び実世界オブジェクトを含むゲームオブジェクトの特性(例えば、寸法、位置及び他の特性)を考慮したものである。特に、ユーザ入力に対するリアクションにおけるバーチャルエージェント200のアニメーションは、AR画面に存在するものとしてマシンビジョン処理で検出された全ての実世界オブジェクトに適用される。
【0023】
バーチャルエージェント200のリアクションは、該バーチャルエージェント200に関連する一つ以上の「パーソナリティパラメータ」の機能である。
図3Aに、パーソナリティパラメータデータベース310に格納されたパーソナリティパラメータを示す。限定されない例では、バーチャルエージェント200に関連するパーソナリティパラメータはバーチャルエージェント200の行動タイプのリストから選択され、それらは、「スポーティ」、「間抜け」、「乱暴者」、「怠け者」、「怒りっぽい」などである。与えられたバーチャルエージェントは一つ以上のパーソナリティーと関連しており、これらのパーソナリティパラメータは、要素が変化することで動的に変わりうる(例えば、時間と共に)。
【0024】
バーチャルエージェントに関連するパーソナリティパラメータは、バーチャルエージェント200をどのようにアニメーションさせるかの指示を与えることに使用される。ある実施例では、パーソナリティパラメータは、バーチャルエージェント200の表情や動作をどのように調整するかを、一般的に示す。例えば、行動タイプが「スポーティ」を含んだパーソナリティパラメータの場合、バーチャルエージェント200のアニメーションは、バーチャルエージェント200に素早い、身体的な動作を発揮させる。
【0025】
ある実施例では、パーソナリティパラメータは、多様な状況において、バーチャルエージェント200の表情や動作をどのように調整するかを示す。例えば、行動タイプが「不従順」を含む場合、オブジェクトをとってくるようなコマンドに対して、バーチャルエージェント200は、それを遠くに投げて、それで自分一人で遊んだり、全く別のものをとってきたりなどの動作を示す。
【0026】
ある実施例では、パーソナリティパラメータは、バーチャルエージェント200を最初の場所でアニメーションさせるかどうかについても示す。
【0027】
バーチャルエージェント200は、声による特徴付けにも関連する。声による特徴付けは、パーソナリティパラメータデータベース310に格納されている。バーチャルエージェント200に関連する声による特徴付けは、バーチャルエージェント200に関連するオーディオ出力をどのように調整するかを示す。一つの限定されない実施例では、声による特徴付けを、バーチャルエージェント200に特有のLPCパラメータセットとしてエンコードする。
【0028】
3Dバーチャルスペースにおけるオブジェクトトラッキングを容易にするために、
図3Bおよび3C示す、オブジェクトデータベース320が設けられる。オブジェクトデータベース320は、多様な実世界オブジェクトとバーチャルオブジェクトに関連するデータフィールドを保持する。この目的のために、一つのデータフィールド320
Aは固有オブジェクトID(オブジェクトID)であり、他のデータフィールド320
Bはゲームオブジェクトが実世界オブジェクトであるかバーチャルオブジェクトであるかを示す。
【0029】
追加的に、
図3B(図には示さないが)に示すように、他のデータフィールド320
Cが3Dバーチャルスペースにおけるゲームオブジェクトの位置を示す(例えば、X、Y、Z座標および/又はゲームレベル、ゾーン、又は他のオブジェクトとの関連)。カメラデータにコンピュータビジョンアルゴリズムを適用して実世界のAR(バーチャル)表現を持った出力を組み合わせると、実世界オブジェクトの3D形状と位置を演算することができる。他の実施例では、オブジェクトの位置データは、各オブジェクトのより一般的な特性を格納する他のデータベースに置くこともでき、そこでは、位置データは、一つの特性である。更に、追加的なデータフィールド320
Dが各ゲームオブジェクトと関連しており、それはカメラ/視野円錐台25内のゲームオブジェクトの位置を示している。しかし、このフィールドは、それが含む情報がバーチャル3Dスペース内のカメラの位置(およびカメラの向いた方向)から、3Dバーチャルスペースにおけるゲームオブジェクトの位置と組み合わせて導き出すことができるので、省略することができる。
【0030】
データフィールド320Eが、更に各ゲームオブジェクトと関連しており、それは該ゲームオブジェクトに関連する一つ以上の「セマンティックオブジェクトタグ」を示す。特定のゲームオブジェクトと関連するセマンティックオブジェクトタグは、特定のゲームオブジェクトを潜在的に指定する、言葉での表現(もし、ユーザーの言葉にあるのなら)である。こうした言葉での表現には、異なる抽象化のレベルにおいて、意味的に等しいものや同義語も含まれる。例えば、ユーザが白い色のピアノ(それがバーチャルであるかリアルであるかに関わりなく)として認識するゲームオブジェクトは、複数のセマンティックオブジェクトタグと関連付けられており、それらは、「ピアノ」、「キーボード」、「楽器」、「家具」および「大きな白いオブジェクト」などである。他の実施例では、ユーザがトランペットとして認識するゲームオブジェクトは、複数のセマンティックオブジェクトタグと関連付けられており、それらは、「トランペット」、「楽器」および「金属オブジェクト」である。このことは、同じゲームオブジェクトに関して多数のセマンティックタグがあり得、同じセマンティックタグ(この場合、「楽器」)を持つ多数のゲームオブジェクトもあり得る。
【0031】
ある場合には、特定のゲームオブジェクトについてのセマンティックオブジェクトタグは、動的に変わることがある。例えば、該特定のゲームオブジェクトとの関連が、現在カメラ6の円錐台の中(又は外)にたまたまある他のオブジェクトに依存するような場合である。例えば、セマンティックオブジェクトタグ「部屋で一番大きなオブジェクト」は、時間が異なると、異なるオブジェクトと関連付けられる。それは、カメラ6の円錐台視野の中に何が有るかによる。オブジェクトデータベース320を管理(特に、セマンティックオブジェクトタグと実世界オブジェクト又はバーチャルオブジェクトとの関連)するバックグランドプロセスは、少なくとも一つのプロセッサ2により実行される。
【0032】
ユーザ3がバーチャルエージェント200と「コミュニケーション」する時に使用されるユーザーフレーズは、ほとんど無限である。しかし、ゲームプレイ中は、こうした多くの可能性があるにも関わらず、ユーザ3は限られた数の潜在的な意思の一つを伝えることに関心がある。意思は、多様な挨拶、指令(例えば、取れ、攻撃、・・・)及び承認である。特定の意思を伝えるために、ユーザ3は言葉を使用する。特に、ユーザ3は、(音声又は書いて)ある言語表現(「意思表現」という)を入力し、それらはユーザーフレーズ内に戦略的に配置される。例えば、ユーザがバーチャルエージェント200に対するコマンドである意思を伝えるために、ユーザ入力3は、必須の文章中に、他動詞を含んだ意思表現を含ませる(「get」、「sit」、「bring」、「push」...)。
【0033】
図4に、多様な意思をリスト化した意思データベース410を示す。各特定の意思は、いくつかの可能性のある意思表現に割り当てられ、それがユーザーフレーズに現れると、特定の意思を伝えるものとして解釈される。与えられた意思と関連した意思表現は、意思データベース410内に言葉及び音節として格納され、英語又は日本語のような与えられた言語内での共通の用語として現れる。多様な言語を使用することは、より広いユーザーベースを提供するが、与えられた時間でユーザが実際に使用する言語数は限られている。デフォルト言語を選択する際には、例えば、地理的な位置又は装置のIPアドレスのようなパラメータをベースにローカライズするとよい。他の実施例では、意思表現は、意思データベース410内に音素として格納することもできる(ユーザが口頭で入力する場合)。
【0034】
バーチャルエージェントコミュニケーションプロセス(
図8のステップ840)を、
図5を参照して詳細に説明する。
【0035】
ステップ510:バーチャルエージェントコミュニケーションプロセスは、ユーザ3からのユーザ入力を受け取ることで開始され、ユーザ入力から単語を含んだユーザーフレーズ(例えば、「ボールを取ってこい”go get the ball”」)を決定する。ユーザ入力は口頭(例えば、マイクロフォン9を介して)又は、テキスト(例えば、キーボード又はタッチスクリーン5)で入力される。ユーザ入力がテキストで入力された場合には、バーチャルエージェントコミュニケーションプロセスは、スペルチェック、文法チェック及び/又はテキストの翻訳を行い、単語を含んだユーザーフレーズを得る。ユーザ入力が口頭(即ち、発話)で入力された場合には、バーチャルエージェントコミュニケーションプロセスは、ユーザ3が発話を開始したかを検知し、スピーチ-テキストプロセス(例えば、スピーチAPI)を、引き続いて受け取った音に適用し、ユーザーフレーズを得る。多様なタイプの言語処理を、発声された単語を適宜特定するために使用することができる。これには、翻訳及び同義語参照などに加えて、多様な言語支援、会話認識及び話者認識技術が用いられる。また、ネイティブスピーチAPIを使用すると、オーディオファイルをリモートサーバに送る必要がなくなる。ある実施例では、ステップ510は、複数の記録を作成することが出来、各記録は、異なるユーザのフレーズ(即ち、単語の異なるセット)及び関連する信頼度を含んでいる。
【0036】
ステップ520:バーチャルエージェントコミュニケーションプロセスは、ユーザーフレーズを「単純化したユーザ意思」に変換することを含む。特に、
図6に詳細を示すように、このユーザーフレーズの変換は以下のステップを含むものである。
【0037】
サブステップ610:少なくとも一つのセマンティック素子をユーザーフレーズ内の単語から決定する。
【0038】
特に、少なくとも一つのセマンティック素子は、一つ以上の意思表現及び/少なくとも一つのセマンティックオブジェクトタグを含む。従って、このステップは、ユーザーフレーズ内に、意思データベース410に格納された多様な意思表現及び/又はオブジェクトデータベース320に格納された多様なセマンティックオブジェクトの少なくとも一つを認識しようとする。例えば、
図5に示すように、ユーザーフレーズの「ボールを取ってこい”go get the ball”」の場合、セマンティック素子は、意思表現[取ってこい(go get)]及びセマンティックオブジェクトタグ[ボール(ball)]である。場合により、意思表現又はセマンティックオブジェクトタグにマッチしないユーザーフレーズの単語は、無視される。例えば、ユーザーフレーズ「どうかボールを取っていただけませんか“Could you please fetch the ball”」において、セマンティック素子は、意思表現「取って[fetch]」とセマンティックオブジェクトタグ「ボール[ball]」であり、ユーザーフレーズ内の他の全ての単語は余計なものとされる。
【0039】
非限定的な例において、
図9Aでは、いくつかのユーザーフレーズとそこから導き出される対応するセマンティック素子の非限定的な例を示す。
【0040】
サブステップ620:サブステップ610で決定されたセマンティック素子から単純化したユーザ意思を組み立てる。単純化したユーザ意思は、ゲーム装置1のメモリ4内に格納される。例えば
図5では、(意思データベース410内に格納された多対1マッピングに基づいて)意思(検索コマンド)に変換された意思表現[取ってこい(go get)]及び、(オブジェクトデータベース320内に格納された多対1マッピングに基づいて)オブジェクト表現(オブジェクトZ)に変換されたセマンティックオブジェクトタグ[ボール(ball)]を示す。
【0041】
非限定的な例において、
図9Bでは、セマンティック素子と、これらセマンティック素子から組み立てることの出来る単純化したユーザ意思の例を示す。
図9Cは、
図9Aと9Bの組み合わせであり、ユーザーフレーズ、ユーザーフレーズから導かれる対応するセマンティック素子及びその結果としての単純化したユーザ意思を示す。
【0042】
例えば、サブステップ610で決定されたセマンティック素子は単一の意思表現(挨拶(greeting)など)を含む。この場合、サブステップ620で出力された「単純化したユーザ意思」は、意思データベース410から決定されたこの単一の意思表現に関連した意思である。例えば、
図9Cの行910Dは、ユーザーフレーズ「Hi!」に基づいて、単純化したユーザ意思は意思「挨拶(greeting)」を含んでいる。
【0043】
他の例では、サブステップ610で決定されたセマンティック素子は一つの意思表現及び一つ以上のセマンティックオブジェクトタグを含む(オブジェクトを取る(to fetch an object)のコマンドのように)。(意思データベース410から得た)対応する一つ以上の意思及び(オブジェクトデータベース320から得た)対応する一つ以上のオブジェクト表現は組み合わされて(例えば、連結されて)単純化したユーザ意思を形成する。例えば、
図9Cの行910Bは、意思「攻撃(attack)」とオブジェクト表現「オブジェクトY(object Y)」を含んでいる。
【0044】
3D世界では、オブジェクト表現マップが同じセマンティックオブジェクトタグとなる多数のオブジェクトがあることから(例えば、前述したように、セマンティックオブジェクトタグ「楽器」に潜在的に関連する多数のオブジェクト)、単純化したユーザ意思に含まれると判断する前に、当該オブジェクトがある基準に適合することを確認するための検証ステップが実行される。そうした基準には、該オブジェクトがカメラ/視野円錐台25内に現れているという条件が含まれる。
【0045】
他の例においてもなお、サブステップ610で決定されたセマンティック素子は一つ以上の意思表現(例えば、ユーザが挨拶(greeting)とコマンドの両方を入力したとき)を含むものであり、こうした場合、(意思データベース410から得られた)対応する単一の意思が、限定的な優先順位付けロジック又はヒューリスティックにより単純化したユーザ意思内に保存される。例えば、二つの意思表現があり、一つは、取る(fetch)コマンドに関連した意思であり、もう一つは、挨拶(greeting)に関連した意思であるとき(例えば、“Hi! Could you please fetch the ball”)、処理ロジックは、挨拶よりも取る(fetch)コマンドを優先し、取る(fetch)コマンドだけが、単純化したユーザ意思内に保持される。例えば、
図9Cの行910Eでは、単純化したユーザ意思は、(play)及び(piano)を含んだセマンティック素子があるにも関わらず、意思(インタラクトコマンド(interact command))となる。
【0046】
単純化したユーザ意思におけるオブジェクト表現は、実世界及びバーチャルオブジェクトの両方に対応し、スクリーン5に表示され、それらは3Dバーチャル空間内で共存することを認識すべきである。従って、バーチャルエージェント200は、外見的には、バーチャルオブジェクトばかりか実世界オブジェクトを認識し、やりとりするようになっている。一方、実世界オブジェクトはカメラ6により捉えられた画像に単に現れることで人間のユーザ3には明らかであり、それらは最初にマシンビジョンアルゴリズムによって適正に認識され、バーチャルエージェント200が外見的にそれらを認識してやりとりする前に、3Dバーチャル空間内に配置される(
図8のステップ800)。なお、このやりとりは、オブジェクトデータベース320から得た、実世界オブジェクトの特定の特性に依存する。
【0047】
意思表現又はセマンティックオブジェクトタグがユーザのフレーズに
見つからなかった場合には、単純化したユーザ意思は、「不知」又は「不全」と見なされる(また、このことは、例えばバーチャルエージェント200が「肩をすくめる」リアクションを引き出すかもしれない-バーチャルエージェント200による、この及び他のリアクションは、以下に述べる)。例えば、
図9Cの行910Fを参照。
【0048】
矛盾があった場合(例えば、セマンティックオブジェクトタグがカメラ/視野円錐台25内に無いオブジェクトに関するものなど)は、単純化したユーザ意思は、「無効」と見なされる。反対に、矛盾が維持され、矛盾しているにもかかわらず、セマンティックオブジェクトタグが単純化したユーザ意思に現れることもある。この場合、結果としての単純化したユーザ意思が無意味に見えるかもしれない(例えば、スクリーン上に見えないゲームオブジェクトに関するなど)が、これはユーモア又は興味ある状態に繋がるものとして許すことが可能である。
【0049】
いくつかの場合、同じセマンティックオブジェクトタグは多数のオブジェクト表現に変換される。例えば、
図7Aに示すように、セマンティックオブジェクトタグ「楽器」は、オブジェクトZ1(例えば、ユーザ3が「トランペット」と知覚したもの)と、オブジェクトZ2(例えば、ユーザ3が「ピアノ」と知覚したもの)が共に、視野円錐台25内にある場合、両オブジェクト間で明確にすることは出来ない。セマンティックオブジェクトタグ「楽器」に対する少なくとも一つの表現は、これにより二つのオブジェクト表現を含む(「オブジェクトZ1」と「オブジェクトZ2」)。例えば、
図9Cの行910Cを見ると、ユーザのフレーズは単一の「本(book)」を言っているが、単純化したユーザ意思は、二つのオブジェクト表現、即ち「オブジェクトZ3」と「オブジェクトZ4」を含んでいる。
【0050】
ステップ510で、それぞれ異なるユーザフレーズ(異なる信頼レベルで)で複数の記録が生成された場合、ステップ520(単純化したユーザ意思への変換)は、それぞれのユーザーフレーズについて行われることを認識すべきである。複数の異なる記録から生成された単純化したユーザ意思は、結局同じものとすることが出来る。複数の記録から生じた共通の単純化したユーザ意思に関連した信頼レベルは、オリジナルの記録の信頼レベルの和となる。結果的に合計された信頼レベルを比較することで、後のステップで使用する一つの単純化したユーザ意思を選択することが出来る。こうして、バーチャルエージェントコミュニケーションプロセスは、ユーザ入力の異なるそれぞれの記録に関して得られた複数の候補としての単純化したユーザ意思の中から有力な一つの単純化したユーザ意思を選択するステップを有する。
【0051】
ステップ530:バーチャルエージェントコミュニケーションプロセスは、単純化したユーザ意思をバーチャルエージェント200の「リアクション」に変換する。実施例では、多くの単純化したユーザ意思の多様性は、多様な幅のリアクションを生み出す。リアクションは、音声の出力ばかりか、バーチャルエージェント200(又は一つ以上の小道具/他の仲介者)のアニメーション、移動/移し替えなどが含まれる。これはユーザ3にとっての楽しみであり、更なるユーザ入力を引き出し、バーチャルエージェント200との「コミュニケーション」を試みることとなる。
【0052】
単純化したユーザ意思がコマンドを伝えた場合、バーチャルエージェント200はアニメーションされ、該コマンドの実行を伝える明確な動きを示す。単純化したユーザ意思が特定のゲームオブジェクトに関連するコマンドを伝えた場合、バーチャルエージェント200はアニメーションされ、該コマンドの実行を伝える特定のゲームオブジェクトに関連するバーチャルエージェント200の明確な動きを示す。
【0053】
例えば、
図7Bに示すのは、単純化したユーザ意思「取得コマンド[オブジェクトZ]」がユーザーフレーズ「ボールを取ってこい(Go get the ball)から出てきた場合である。単純化したユーザ意思は意思「取得コマンド」及びオブジェクト表現「オブジェクトZ」を含む。この単純化したユーザ意思は、オブジェクト表現Zのゲームオブジェクトを取るコマンドを意味する。そこでバーチャルエージェント200をアニメーションさせて単純化したユーザ意思に対するリアクションを示し、これによりバーチャルエージェント200がカメラ位置からゲームオブジェクトへ向けて移動することとなる。ゲームオブジェクト(例えば、ボール)は、実世界オブジェクト(例えば実世界のボール)又はバーチャルオブジェクト(例えば、バーチャルボール)でもよい。例えば、オブジェクトZがバーチャルボールの場合、バーチャルエージェント200はバーチャルボールの位置に行ってそれをカメラ位置にまで持ってくるようにアニメーションされる。逆に、オブジェクトZが実世界ボールの場合、バーチャルエージェント200は実世界ボールの位置に行こうと苦闘するようにアニメーションされるが、オブジェクトZは実世界オブジェクトなのでカメラ位置に持ってくることは出来ない。しかし、ある場合には、デジタルフォトマニュピレーションソフトウェアが実世界ボールをAR場面から「消去」して、該実世界ボールと似たバーチャルオブジェクトを生成して、該生成されたバーチャルボールをバーチャルエージェント200にカメラ位置まで「持って」来させるようにすることも出来る。
【0054】
実施例では、ゲーム装置1のスクリーン5上で、承認のジェスチャー(頭を頷かせるような)を示すためにバーチャルエージェント200をアニメーションすることが、「リアクション」を示すためにバーチャルエージェント200をアニメーションすることに先行される。逆に、不承認のジェスチャーを示すためにバーチャルエージェント200をアニメーションすることが、バーチャルエージェントのリアクションに先行することもある。
【0055】
スクリーン5上にレンダリングして(及び/又はスピーカ11を介して)、単純化したユーザ意思を示すためのバーチャルエージェント200をアニメーションすることは、多様な要素により影響される。
【0056】
a)単純化したユーザ意思に対するリアクションの中でのバーチャルエージェント200のアニメーションは、パーソナリティパラメータデータベース310から得たバーチャルエージェント200に関連するパーソナリティパラメータ/行動タイプと一致した動作パターンを含んでいる。結果として、バーチャルエージェント200は、ユーザ3が興味と楽しみを感じる、特別の身体の動き及び/又は表情を発揮するようにアニメーションされる。
【0057】
例えば、バーチャルエージェント200の行動タイプが「スポーティ」の場合、バーチャルエージェント200がボールを取り戻すように言われた時、ボールを持ってくるアニメーションに代えて、バーチャルエージェント200がボールを投げるアニメーションにして、ボールが投げられたようにレンダリングする。逆に、バーチャルエージェント200の行動タイプが「不服従」の場合、バーチャルエージェント200は協力を断るようにアニメーションされる(例えば、最初の場所からボールに向かわず、不服従を伝えるために頭を横に振る)。もちろん、これらは行動タイプの一例であり、他の場合も当然ある。
【0058】
単純化したユーザ意思に対する多様なリアクションを多様な行動タイプについて体系化する一つの方法は、「行動ツリー」のシステムを使用することであり、その例を
図10に示す。具体的には、この単純な行動ツリー1000は単純化したユーザ意思「取得コマンド」、「オブジェクト」を扱うものであり、特定のゲームオブジェクトを取ってくるコマンドとして解釈されたユーザ入力の結果である。行動ツリー1000はメモリ4内に格納された数百から数千のツリーの一つである(
図11参照)。
【0059】
この行動ツリーによると、ステップ1010は、単純化したユーザ意思で明らかになったオブジェクトをバーチャルエージェントが持っているかどうかを決定し、もし持っている場合には、ステップ1020に入り、そうで無い場合には、ステップ1030に入る。バーチャルエージェントが特定のゲームオブジェクトを持っているかどうかの決定は、ゲームロジックにより知ることが出来る。ステップ1020又は1030が実行されるか否かに関わりなく、同じ質問がなされる。即ち、バーチャルエージェントの行動タイプは、不服従であるか否かであるが、単純化したユーザ意思で明らかになったオブジェクトをバーチャルエージェントが持っているか否かで、出力は異なる。
【0060】
こうして、バーチャルエージェントがオブジェクトを持っていて不服従の場合、少なくとも一つのプロセッサは、(予め準備されている)断り/背を向けるアニメーションを実行する。バーチャルエージェントがオブジェクトを持っていて不服従でない場合、少なくとも一つのプロセッサは、バーチャルエージェントがオブジェクトをカメラの方に持ってくるアニメーションを行う。バーチャルエージェントがオブジェクトを持っておらず、不服従の場合、少なくとも一つのプロセッサは、「嘲り」アニメーションを実行する(ここでは、バーチャルエージェントがユーザ3を嘲り、うわべでは、コマンドが理論的ではいことを指摘する)。バーチャルエージェントがオブジェクトを持っておらず、不服従でない場合、少なくとも一つのプロセッサは、「困惑」アニメーションを実行する(うわべでは、本当に取ってくるものが無いことを表現する)。
【0061】
シーケンシャルな二値出力問題としてモデル化する代わりに、ステップ1010、1020、1030は行動スイッチケースとしてモデル化することができる。再度強調するが、行動ツリー1000は単純化された行動ツリーをモデル化しており、もっと複雑な行動ツリーが当業者には、実行可能である。例えば、行動ツリーは、バーチャルエージェントの物理的な特性(例えば、大きさ)などにより分岐を持つことも可能である。
【0062】
こうして、それぞれの行動ツリーのセットアップ及びどのように異なる行動タイプを扱うかは、バーチャルエージェントの物理的な特性による、あるアニメーションのきっかけとなる追加的な行動タイプを含めて、各バーチャルエージェントに「パーソナリティー」を与えることであり、同じ行動が一貫して同じ行動タイプとして実行されるようにするものであることが明らかである。
【0063】
バーチャルエージェントに関連する行動タイプは多様なものがあり、また関連する行動タイプも時間と共に変化しうる点を考慮すべきである。例えば、バーチャルエージェントは行動タイプ「スポーティ」及び行動タイプ「不服従」と関連することができる。仮に、バーチャルエージェントがお気に入りの食べ物を与えられると(ゲームロジックによる)、「スポーティ」行動タイプは変わらないが、「不服従」行動タイプは、バーチャルエージェントが癒やされるにつれ削除されても良い。各行動タイプ又は行動タイプの組み合わせは、単純化したユーザ意思の異なる組み合わせについての行動ツリーに沿った異なるパスへのトリガーとなる。
【0064】
関連する行動ツリーはユーザの行動を通して変わりうる。例えば、バーチャルエージェントがスクリーン5上に現れている場所を何度もタッピングすると、バーチャルエージェントの行動タイプが「イライラ」となり(又は変化し)、関連する行動ツリーの内容によるが、単純化したユーザ意思の異なる組み合わせに関する他の一連のアニメーションとなることもある。
【0065】
上記した実施例では、行動タイプは二値的であり、即ち、バーチャルエージェントはスポーティか、そうでないか、不服従であるか、そうでないかである。他の実施例では、行動タイプは等級付けされており、例えば、スポーツ性や不服従性は程度の問題(1から10までの等級)とすることができ、同じ行動タイプでも、レベルが異なれば行動ツリーの分岐が異なるようになるかもしれない。
【0066】
b)単純化したユーザ意思は曖昧性の解消が求められる。例えば、ユーザーフレーズが単一のセマンティックオブジェクトタグを含むものとされても、ステップ520では、いくつかのオブジェクトのうち、ユーザ3が特定しようとしたのは何かを確認することが出来ないことから、単純化したユーザ意思は複数のオブジェクト表現を含むかもしれない。異なる言い方をすると、バーチャルエージェントコミュニケーションプロセスは、サブステップ620の出力でのセマンティックオブジェクトタグの数がサブステップ610の出力でのオブジェクト表現の数よりも少ないことを決定することができ、これが曖昧性の解消が要求される兆しである。この点では、いくつかの選択が可能である。一つの実施例では、バーチャルエージェントコミュニケーションプロセスが、ランダムに、要求される数のオブジェクト表現を選択するようにしてもよい。他の実施例では、バーチャルエージェントコミュニケーションプロセスが、パーソナリティパラメータに基づいて要求される数のオブジェクト表現を選択することが出来る。他の方法も、当業者であれば可能である。
【0067】
例えば、ユーザーフレーズから得られた表現が[「取る(fetch)」「ボール(ball)」]
であり、結果として得られた単純化したユーザ意思が[「検索コマンド」「オブジェクトA」「オブジェクトB」]の場合を考えると、これは両オブジェクトA及びBが検索用の候補であるが、バーチャルエージェント200により検索されるべき唯一のオブジェクトがあることを示している。オブジェクトA及びBがセマンティックオブジェクトタグ「ボール」に関連するが、ここでオブジェクトAは、クリスタルボールであり(セマンティックオブジェクトタグ「クリスタルボール」に関連つけられている)、オブジェクトBはサッカーボールである(セマンティックオブジェクトタグ「サッカーボール」に関連つけられている)(ここでこれらのオブジェクトが実世界オブジェクトであるかバーチャルオブジェクトであるかは重要ではない)。
【0068】
一つの実施例では、セマンティックオブジェクトタグの数がオブジェクト表現よりも少ない決定を行った、バーチャルエージェントコミュニケーションプロセスは、オブジェクトA又はオブジェクトBをランダムに選択してバーチャルエージェント200のリアクションに導入する。例えば、視野に複数のケーキがあり、単純化したユーザ意思「食べる(eat)」「ケーキ(cake)」を扱うには、バーチャルエージェントコミュニケーションプロセスは、バーチャルエージェントが食べるケーキを一つ選択するか、バーチャルエージェントコミュニケーションプロセスは、「ケーキ」としてタグつけられた全てのオブジェクトについて作用する。これも単純化したユーザ意思それ自体の曖昧性の解消である(例えば、「食べる(eat)」「ケーキ(cake)」対「食べる(eat)」「全てのケーキ(all cakes)」)。
【0069】
他の実施例では、バーチャルエージェントコミュニケーションプロセスは、どのオブジェクトをバーチャルエージェント200のリアクションに導入するかを選択する際に、バーチャルエージェント200の行動タイプを考慮する。例えば、バーチャルエージェントの行動タイプが「スポーティ」の場合を考える。「ボール」を取るように指示されたバーチャルエージェント200について、バーチャルエージェントコミュニケーションプロセスは、オブジェクトデータベース320内のオブジェクトA及びBのそれぞれに関連する多様なセマンティックオブジェクトタグを見る。バーチャルエージェントコミュニケーションプロセスは、オブジェクトA(クリスタルボール)に関連するセマンティックオブジェクトタグ及びオブジェクトB(サッカーボール)に関連するセマンティックオブジェクトタグの「スポーツ性」要素を評価することでこのステップを実行する。これはキーワード又はフレーズについてのサーチをする処理アルゴリズムにより行われる(個々のスポーツについて、どれがクリスタルボールよりもサッカーボールと関連性が高いか)。その結果、オブジェクトBに関連するセマンティックオブジェクトタグがオブジェクトAに関連するセマンティックオブジェクトタグよりも大きなスポーツ性が期待されるものとする。こうして、オブジェクトB(サッカーボール)が、バーチャルエージェント200のリアクションに導入されるべきものとして選択される。
【0070】
限定的なものではないが、上記した曖昧性の解消の例は、どのようにこの概念を他の多くの場面に適用することが出来るかを、当業者が理解する助けになる。
【0071】
c)単純化したユーザ意思が特定のゲームオブジェクトのオブジェクト表現を含む場合、バーチャルエージェント200のリアクションは、その特定のゲームオブジェクトが実世界オブジェクトであるか又はバーチャルオブジェクトであるかによって変わる。例えば、一般的に、バーチャルオブジェクトの位置は、バーチャル3D空間内で勝手に変わり得るが、実世界オブジェクトの位置は一般的に変わらない。他の例を見る。
【0072】
特定の非現実的な実施例において、椅子を考えてみると、仮に椅子がバーチャルオブジェクトであると、ゲームロジックは、該モデルの正確な知識を持ち、エージェントの相互作用に使用するアンカーを手動で自由に配置することができる。バーチャルエージェントは、例えば、椅子を机の後ろから脇に出して、それに座ることが出来る(両方とも3Dバーチャル世界では「生きて」いるので、共に、移動が可能である)。
【0073】
一方、椅子が実世界オブジェクトであると、仮想的に取り扱うことは出来ない。バーチャルエージェントをその椅子に座ったように見せるには、バーチャルエージェントは、この実世界オブジェクトを理解した(例えば、どれくらいの大きさか、その向きは、バーチャルエージェントが座れる表面はどこか)ゲームロジックが与えた椅子に座るように見せる形でアニメーションされなければならない。
【0074】
同様に、特定の非現実的な実施例において、実世界のカップからバーチャルストローで飲む場合を考える。まずバーチャルエージェントをカップの上に位置させて、(バーチャル)ストローをカップの中におおよそで入れるため、カップの上端及び中間が何処にあるのかを見積もる必要がある。もし、カップによる閉塞(ストローとカップとの前後関係の表現)が望まれるのならば、例えば、Zバッファに手動でビットを書き込むことで行うことができる。
【0075】
しかし、カップがバーチャルカップの場合には、カップの位置及び向きは知られており、ゲームロジックは、カップ及びストロー間の相互作用に関するモデル上に、アンカーを手動で自由に置くことができる。閉塞は既知の3Dレンダリング及びZバッファを介した閉塞により行われる。
【0076】
こうして、実世界オブジェクトの次元性は、探求され又は見積もられる。また、バーチャルエージェントは、この探求され又は見積もられた位置/実世界オブジェクトの次元性と一致させられ、この探求され又は見積もられた位置/実世界オブジェクトの次元性は変更されない。バーチャルオブジェクトは、この探求され又は見積もられた位置/実世界オブジェクトの次元性に応じて、その形及び/又は位置を変更する。それは相手がバーチャルオブジェクトの場合とは異なる。バーチャルオブジェクトの位置/次元性は、望まれるリアクションにより変わりうる。
【0077】
d)単純化したユーザ意思が、特定のゲームオブジェクト(バーチャルオブジェクト又は実世界オブジェクト)に関連するオブジェクト表現を含んでいる場合、単純化したユーザ意思に対するバーチャルエージェント200のリアクションは、3Dバーチャル空間でのバーチャルエージェント200とゲームオブジェクトの間の距離に依存した要素を有する。
【0078】
e)単純化したユーザ意思が、特定のゲームオブジェクト(バーチャルオブジェクト又は実世界オブジェクト)に関連するオブジェクト表現を含んでいる場合、バーチャルエージェント200のリアクションは、特定のゲームオブジェクトの特性と一致する要素を有する。例えば、特定のゲームオブジェクトの一つの特性は温度である。バーチャルエージェントコミュニケーションプロセスは、特定のゲームオブジェクトの温度が閾値を超えており(そしてバーチャルエージェント200が該特定のゲームオブジェクトに近接している)場合、バーチャルエージェント200のリアクションを、焼かれるリアクションをシミュレートするものとし、身体を震わせて該特定のゲームオブジェクトから立ち去るようなアニメーションも含ませる。
【0079】
f)単純化したユーザ意思に対するバーチャルエージェント200のリアクションは該単純化したユーザ意思のより早い例に依存する要素を持つこともできる。例えば、単純化したユーザ意思が新たに入力されたユーザ入力に基づいて繰り返された場合(例えば、2,3,4回かそれ以上)、バーチャルエージェント200は苛立ちを表現するようにアニメーションされる(例えば、ある表情又は「ボディランゲージ」を介して)。また、バーチャルエージェント200の行動が「苛立った」ものに変わることもあり、これは同じ効果を生じる。即ち、バーチャルエージェント200は苛立って、苛立ちを表現するようにアニメーションされる。
【0080】
バーチャルエージェント200のリアクションは、パーソナリティパラメータデータベース310に格納された声による特徴付けに関連した、音声フレーズ又は発話を含むことも出来る。
【0081】
単純化したユーザ意思が「不知」又は「無効」と見なされた場合、バーチャルエージェント200は困惑を表現するようにアニメーションされ(例えば、肩をすくめる)、それは愉快なものではなく、ユーザ3に彼又は彼女が提供した入力の解釈に何らかの誤りが生じていることを明確に示すものとなる。
【0082】
メモリ4内に格納されたバーチャルエージェント200の特性の一つに、例えば「通常」又は「聞く」などの、モードオペレーションがある。上記した記述は、バーチャルエージェント200にとって「通常」モードのオペレーションである。ユーザ3が口頭での発話を開始したとする。バーチャルエージェントコミュニケーションプロセスの一部として、少なくとも一つのプロセッサはユーザーフレーズの開始を検出することができる(これは、マイクロフォン9が意味のある、例えばある閾値より上の入力を受け取った時に検出することができる)。この場合、バーチャルエージェント200のモードのオペレーションは「聞く」に変わる。この時点で、任意的なステップ515が実行され(
図5参照)、これによりバーチャルエージェントコミュニケーションプロセスはバーチャルエージェント200が「聞く」様子を示す追加的なアニメーションを行う。これは、単純化したユーザ意思が決定される前に行われる。例えば、バーチャルエージェント200が「耳」を持った生物としてイラストされていると、ステップ515は、バーチャルエージェント200の耳を「立てる」ようにアニメーションして、注意が高められた状態を示す。追加的なステップ515を行わない場合には、バーチャルエージェント200はスクリーン上でデフォルト動作を行うようにアニメーションされる(例えば、興味が無いか、うんざりしたように見えるように)。一旦、完全なユーザ入力を受け取ると、バーチャルエージェント200のオペレーションモードは「通常」に切り替わり、生物の耳は「立っていない」状態となる。
【0083】
上記したバーチャルエージェントコミュニケーションプロセスは、拡張現実にセットされたオブジェクトの言葉ベースの制御を行うことを探求するユーザを満足させるものと、当業者は考える。しかし、提案した手法は、与えられた発話を本当に理解する能力の中でのより洗練された自然言語処理よりも限られたものとなり、その結果、演算コスト及び実際の金銭的なコスト(統合コスト、外注トレーニングなど)の両方の点で、よりコスト効果が高くなっている。
【0084】
プロセッサが動作又はプロセスを実行するように「構成」されていると述べたとき、これは、プロセッサがコンピュータ可読指示が格納された装置メモリから読み出したコンピュータ可読指示を実行することで動作又はプロセスの実行がなされる、という意味である。
【0085】
ここでは、ある実施例を記述したものであり、以下に記載したクレームで規定される、本発明の範囲内の多様な変形があり得るものである。