【文献】
中津良平 他,インタラクティブ映画第2次システムの構成,情報処理学会 インタラクション '98 論文集,日本,1998年 3月,Pages 93 - 100
(58)【調査した分野】(Int.Cl.,DB名)
ユーザーの動き(motion)を取り込むキャプチャー・デバイス、ならびに画像を表示するおよび/またはオーディオを供給するオーディオビジュアル・デバイスに結合されている計算環境を備えているシステムにおいて、インタラクティブ・ゲーミングの様相をリニア・ストーリーに組み合わせる方法であって、
a)画像と音声挿話の少なくとも一方を用いて、前記オーディオビジュアル・デバイスによって前記リニア・ストーリーを提示するステップであって、前記リニア・ストーリーは、ユーザーが前記ストーリーと対話処理しない場合にユーザーに対して提示される1組のデフォルトの画像および/または挿話によって特徴付けられる、ステップと、
b)前記キャプチャー・デバイスによって、ユーザーによる動きおよび音声コマンドの内少なくとも1つを検出するステップと、
c)前記ステップb)において検出した前記動きおよび/または音声コマンドが、前記1組のデフォルトの画像および/または挿話には含まれていない追加の画像および追加の挿話の内少なくとも一方を有するストーリー分岐を含むように前記リニア・ストーリーを変更する、前記リニア・ストーリーとの対話処理であるか否か識別するステップと、
d)前記オーディオビジュアル・デバイスを介して前記追加の画像と追加の挿話の少なくとも一方をユーザーに提示することによって、前記リニア・ストーリーを変更するステップと、
を備えている、方法。
請求項1記載の方法において、前記リニア・ストーリーが、仮想マシン空間における場面の三次元記述によって定義されたストーリー場面を有する画像を含み、前記リニア・ストーリーを変更する前記ステップd)が、e)前記1組のデフォルトの画像からの場面を、前記仮想マシン空間内における異なる三次元視点(viewing perspective)から示す追加の画像を提示するステップを含む、方法。
インタラクティブ・ゲーミングの様相をリニア・ストーリーに組み合わせる方法を実行するようにプロセッサーをプログラミングするプロセッサー読み取り可能記憶媒体であって、前記方法が、
a)画像および音声挿話の内少なくとも1つを用いて、オーディオビジュアル・デバイスによって前記リニア・ストーリーを提示するステップであって、前記リニア・ストーリーは、ユーザーによる対話処理がユーザーの動きを監視しているキャプチャー・デバイスによって認知されない場合に、1組のデフォルトの画像によって特徴付けられる開始から終了までの完全なストーリーとして提示される、ステップと、
b)前記オーディオビジュアル・デバイスと関連付けられているキャプチャー・デバイスによって、ユーザーによる動きを検出するステップと、
c)前記ステップb)において検出した前記動きが、前記1組のデフォルトの画像には含まれていない追加の画像を有するストーリー分岐を含むように前記リニア・ストーリーからの変更を要求する、前記リニア・ストーリーとの対話処理であるか否か識別するステップと、
d)前記追加の画像を、格納されているまたは処理済みのデーターに基づいてレンダリングできるか否か判断するステップと、
e)前記ステップd)において前記追加の画像をレンダリングできると判断した場合、前記オーディオビジュアル・デバイスによって前記追加の画像をユーザーに提示することによって、前記リニア・ストーリーを変更するステップと、
f)ユーザーの対話処理を採点するステップであって、前記対話処理は、前記対話処理に基づいて所定のポイント数を加点するまたは減点することに対応する、ステップと、
を備えている、プロセッサー読み取り可能記憶媒体。
請求項8記載のプロセッサー読み取り可能記憶媒体において、前記リニア・ストーリーが、仮想マシン空間における場面の三次元記述によって定義されるストーリー場面を有し、前記リニア・ストーリーを変更する前記ステップe)が、g)前記1組のデフォルト画像からの場面を、前記仮想マシン空間内における異なる三次元視点から示す追加の画像を提示するステップを含む、プロセッサー読み取り可能記憶媒体。
請求項8記載のプロセッサー読み取り可能記憶媒体において、前記ステップb)が、h)前記リニア・ストーリーの一部として表示されるキャラクターの少なくとも部分的な制御をユーザーが引き受けるステップを含む、プロセッサー読み取り可能記憶媒体。
請求項8記載のプロセッサー読み取り可能記憶媒体において、前記ステップa)およびe)が、静止画像パネル、動的コンピューター・グラフィクス・アニメーション、およびリニア・ビデオの内少なくとも1つにおいて、前記リニア・ストーリーおよび/またはストーリー分岐を表示するステップを含む、プロセッサー読み取り可能記憶媒体。
請求項12記載のシステムにおいて、前記計算環境が、前記ユーザーの頭部の位置を検知する前記キャプチャー・デバイスによって、前記ユーザーが示した前記オーディオビジュアル・デバイス上における前記点を検知する、システム。
請求項12記載のシステムにおいて、前記計算環境が、前記ユーザーの手の位置を検知する前記キャプチャー・デバイスによって、前記ユーザーが示した前記オーディオビジュアル・デバイス上における前記点を検知する、システム。
請求項12記載のシステムにおいて、前記ユーザーが、前記リニア・ストーリーおよび分岐ストーリーと対話処理するユーザーの体験に伴うスコアを増大させることができる、システム。
【発明を実施するための形態】
【0010】
[0026] 本技術の実施形態について、これより
図1Aから
図14を参照しながら説明する。実施形態は、一般的には、インタラクティブ・ゲーミングの様相をリニア・ストーリーに組み合わせる、インタラクティブ・ストーリー体験を提供するシステムおよび方法に関する。インタラクティブ・ストーリー・アプリケーションを実行するために、NUIシステムを設ける。ユーザーの対話処理を用いずに実行する場合、ストーリー・アプリケーションは、リニア・ストーリーをユーザーに開始から終了まで提供する。あるいは、ユーザーがNUIシステムを通じてストーリー・アプリケーションと対話処理し、種々の行為を実行することもできる。
【0011】
[0027] 一実施形態では、ユーザーは、既定の診査ジェスチャーを行うことによって、リニア・ストーリーを変更することができる。このジェスチャーは、ユーザーに表示されている三次元(3−D)仮想世界に、ユーザーが足を踏み入れて診査することを望んでいることを、システムに知らせる。行われる診査ジェスチャーに応じて、表示されている画像が変化して、ユーザーが3−D仮想世界に入って行く印象を創造し、ユーザーが場面の中で動き回ること、ならびにこの場面における異なる観点から仮想物体を診査および検査することを可能にする。また、ユーザーは、この場面における仮想物体の後ろを覗って、これら仮想物体の裏側を見ること、または前面にある物体によって遮られている他の物体にもっと近づいて検査することができる。
【0012】
[0028] 3−D仮想世界内において診査するが、代わりに、他のジェスチャーまたは動きを行うことによって、ユーザーはリニア・ストーリーのプロットを変更することもできる。このような実施形態では、ストーリー・アプリケーションは他のサブプロットに分岐することができ、恐らくは他のストーリー成果(story outcomes)に分岐することができる。
【0013】
[0029] 最初に
図1Aから
図2を参照すると、本技術を実現するハードウェアは、ターゲット認識、分析、および追跡システム10を含む。このターゲット認識、分析、および追跡システム10は、ユーザー18のような人間のターゲットを認識、分析、および/または追跡するために用いることができる。ターゲット認識、分析、および追跡システム10の実施形態は、以下で説明するようなインタラクティブ・ストーリー・アプリケーションのような、ゲーミング・アプリケーションまたは他のアプリケーションを実行する計算環境12を含む。計算環境12は、ゲーミング・アプリケーションおよびゲーミング以外のアプリケーションを実行するために計算環境12を用いることができるように、ハードウェア・コンポーネントおよび/またはソフトウェア・コンポーネントを含むことができる。一実施形態では、計算環境12は、本明細書において記載するプロセスを実行するためにプロセッサー読み取り可能記憶デバイスに格納されている命令を実行することができる、標準プロセッサー、特殊プロセッサー、マイクロプロセッサー等というような、プロセッサーを含むことができる。
【0014】
[0030] 更に、システム10はキャプチャー・デバイス20も含む。キャプチャー・デバイス20は、このキャプチャー・デバイスによって検知された1つ以上のユーザーおよび/または物体に関する画像およびオーディオ・データーを取り込む。実施形態では、キャプチャー・デバイス20は、1人以上のユーザーの動き、ジェスチャー、および発声(speech)に関する情報を取り込むために用いることができる。この情報は、計算環境によって受け取られ、ゲーミング・アプリケーションまたは他のアプリケーションの様相をレンダリングするため、対話処理するため、および/または制御するために用いることができる。計算環境12およびキャプチャー・デバイス20の例について、以下で更に詳しく説明する。
【0015】
[0031] ターゲット認識、分析、および追跡システム10の実施形態は、ディスプレイ14を有するオーディオ/ビジュアル・デバイス16に接続することができる。デバイス16は、例えば、テレビジョン、モニター、高品位テレビジョン(HDTV)等とすればよく、ゲームまたはアプリケーションの映像(visuals)および/または音響(audio)をユーザーに供給することができる。例えば、計算環境12は、グラフィクス・カードのようなビデオ・アダプター、および/またはサウンド・カードのようなオーディオ・アダプターを含むことができる。これらのアダプターは、ゲームまたは他のアプリケーションに付随するオーディオ/ビデオ信号を供給することができる。オーディオ/ビジュアル・デバイス16は、オーディオ/ビジュアル信号を計算環境12から受け取り、次いでこのオーディオ/ビジュアル信号と関連のあるゲームまたはアプリケーションの映像をユーザー18に出力することができる。一実施形態によれば、オーディオ/ビジュアル・デバイス16は、例えば、S-Videoケーブル、同軸ケーブル、HDMIケーブル、DVIケーブル、VGAケーブル、コンポーネント・ビデオ・ケーブル等によって、計算環境12に接続することができる。
【0016】
[0032]
図1Aおよび
図1Bに示すように、一実施形態例では、計算環境12上において実行するストーリー・アプリケーションは、種々のストーリー設定のいずれでも提示することができる。
図1Aは、家21、怪物23、および雲25を含む場面19を示す。以下で説明するが、ユーザーは、種々の方法で場面19と対話処理することができる。一例では、ユーザーは図示のように、雲25を一緒に動かすことができ、これによって、ストーリーによって提示されているリニア・ストーリーを変更することができる。例えば、雲を一緒に動かすと、雨を降らせることができる。
【0017】
[0033] 実施形態では、計算環境12、A/Vデバイス16、およびキャプチャー・デバイス20が協同して、ディスプレイ14上に画面上のキャラクター23をレンダリングすることができる。このキャラクター23は、少なくとも部分的にユーザー18によって制御される。
図1Bに示すように、画面上のキャラクター23は、実世界空間におけるユーザー18の動きを、その通りに真似する。つまり、ユーザー18は、ディスプレイ14上におけるキャラクター23の動きおよび行為を制御する動きを行うことができる。更に、ユーザーは、計算環境が既定のジェスチャーとして認識する、ある種の動きを行うこともできる。これらの既定のジェスチャーは、被制御キャラクター23に、メモリーにおいて当該既定のジェスチャーと関連付けられている一定の行為を実行させることができる。既定のジェスチャーは、以下で説明するような種々の他の行為(action)を開始するために用いることもできる。
【0018】
[0034]
図1Aおよび
図1Bの場面19は、計算環境12上で実行しているストーリー・アプリケーションによって生成することができる多くの異なる場面の1つである。更に、システム10は、計算環境12上で実行するストーリー・アプリケーションの範囲の外部であるオペレーティング・システムおよび/またはアプリケーションの制御として、ユーザー18の動きを解釈するためにも用いることができる。
【0019】
[0035] システム10およびそのコンポーネントに相応しい例が、以下の同時係属中の特許出願において見いだせる。これらの特許出願の全ては、ここで引用したことによって、具体的に本願にも含まれるものとする。2009年5月29日に出願され"Environment And/Or Target Segmentation"(環境および/またはターゲット区分)と題する米国特許出願第12/475,094号、2009年7月29日に出願され"Auto Generating a Visual Representation"(視覚表現の自動生成)と題する米国特許出願第12/511,850号、2009年5月29日に出願され"Gesture Tool"(ジェスチャー・ツール)と題する米国特許出願第12/474,655号、2009年10月21日に出願され"Pose Tracking Pipeline"(姿勢追跡パイプライン)と題する米国特許出願第12/603,437号、2009年5月29日に出願され"Device for Identifying and Tracking Multiple Humans Over Time"(ときの経過と共に複数の人間を識別および追跡するデバイス)と題する米国特許出願第12/475,308号、 2009年10月7日に出願され"Human Tracking System"(人間追跡システム)と題する米国特許出願第12/575,388号、 2009年4月13日に出願され"Gesture Recognizer System Architecture"(ジェスチャー認識システムのアーキテクチャー)と題する米国特許出願第12/422,661号、2009年2月23日に出願され"Standard Gestures"(標準的なジェスチャー)と題する米国特許第12/391,150号、 2009年5月29日に出願され"Gesture Tool"(ジェスチャー・ツール)と題する米国特許出願第12/474,655号。
【0020】
[0036]
図2は、ターゲット認識、分析、および追跡システム10において用いることができるキャプチャー・デバイス20の実施形態例を示す。一実施形態例では、キャプチャー・デバイス20は、深度値を含むことができる深度画像を有するビデオを、例えば、飛行時間(time-of-flight)、構造化光、立体画像等を含むいずれかの適した技法によって取り込むように構成することができる。一実施形態によれば、キャプチャー・デバイス20は、計算された深度情報を「Zレイヤー」、即ち、深度カメラからその見通し線に沿って延びるZ軸に対して垂直であることができるレイヤーに編成することができる。
【0021】
[0037]
図2に示すように、キャプチャー・デバイス20は撮像カメラ・コンポーネント22を含むことができる。一実施形態例によれば、撮像カメラ・コンポーネント22は、場面の深度画像を取り込むことができる深度カメラとすることができる。深度画像は、取り込まれた場面の二次元(2−D)画素エリアを含むことができ、この2−D画素エリアにおける各画素は、カメラから取り込まれた場面における物体の、例えば、センチメートル、ミリメートル等の単位とした、長さまたは距離のような深度値を表すことができる。
【0022】
[0038]
図2に示すように、一実施形態例によれば、撮像カメラ・コンポーネント22は、キャプチャー・エリアの深度画像を取り込むために用いることができるIR発光コンポーネント24、三次元(3D)カメラ26、およびRGBカメラ28を含むことができる。例えば、飛行時間分析では、キャプチャー・デバイス20のIR発光コンポーネント24は、場面に向けて赤外線光を放出することができ、次いでセンサ(図示せず)を用いて、その場面の中にある1つ以上のターゲットおよび物体の表面からの後方散乱光を、例えば、3Dカメラ26および/またはRGBカメラ28を用いて検出することができる。
【0023】
[0039] 一部の実施形態では、パルス状赤外線光を用いて、発信光パルスと対応する入射光パルスとの間の時間を測定し、キャプチャー・デバイス20からキャプチャ・エリア内にあるターゲットまたは物体上における特定の場所までの物理的距離を判定するために、この時間を用いることができるようにする。加えて、他の実施形態例では、発信光波の位相を着信光波の位相と比較して、位相ずれを判定することもできる。次いで、位相ずれを用いて、キャプチャー・デバイス20からターゲットまたは物体上の特定の場所までの物理的距離を判定することができる。
【0024】
[0040] 他の実施形態例によれば、例えば、散乱光パルス撮像(shuttered light pulse imaging)を含む種々の技法によって、経時的な光の反射ビームの強度を分析することによって、キャプチャー・デバイス20からターゲットまたは物体上の特定の場所までの物理的距離を間接的に判定するために、飛行時間分析を用いることもできる。
【0025】
[0041] 他の一実施形態例では、キャプチャー・デバイス20は、構造化光を用いて深度情報を取り込むことができる。このような分析では、パターン光(即ち、格子パターン、縞パターンのような既知のパターンとして表示される光)を、例えば、IR発光コンポーネント24によって、場面に向けて投射する。場面における1つ以上のターゲットまたは物体の表面に衝突したときに、パターンが、それに応答して、変形することができる。このようなパターンの変形を、例えば、3Dカメラ26および/またはRGBカメラ28によって取り込むことができ、次いで分析して、キャプチャー・デバイス20からターゲットまたは物体上における特定の場所までの物理的距離を判定することができる。
【0026】
[0042] 他の実施形態によれば、キャプチャー・デバイス20は、2つ以上の物理的に分離されたカメラを含むことができ、これらが異なる角度からの場面を捕らえて、視覚的な立体像を得て、これを解明することによって深度情報を生成することができる。他の実施形態例では、キャプチャー・デバイス20は、ポイント・クラウド・データー(point cloud data)およびターゲット・ディジタル化技法を使用して、ユーザーの特徴を検出することもできる。
【0027】
[0043] 更に、キャプチャー・デバイス20は、マイクロフォン30を含むこともできる。マイクロフォン30は、音響を受けて電気信号に変換する変換器またはセンサー(図示せず)を含むことができる。一実施形態によれば、マイクロフォン30は、ターゲット認識、分析、および追跡システム10においてキャプチャー・デバイス20と計算環境12との間におけるフィードバックを減らすために用いることができる。加えて、マイクロフォン30は、計算環境12によって実行することができる、ゲーム・アプリケーション、ゲーム以外のアプリケーション等のようなアプリケーションを制御するために、ユーザーが供給することもできるオーディオ信号を受け取るために用いることもできる。
【0028】
[0044] 一実施形態例では、キャプチャー・デバイス20は、更に、撮像カメラ・コンポーネント22と動作的に通信することができるプロセッサー32も含むことができる。プロセッサー32は、命令を実行することができる標準的なプロセッサー、特殊プロセッサー、マイクロプロセッサー等を含むことができる。これらの命令には、深度画像を受け取り、この深度画像に適したターゲットが含まれ得るか否か判定を行い、適したターゲットをそのターゲットのスケルトン表現またはモデルに変換する命令、またはあらゆる他の適した命令を含むことができる。
【0029】
[0045] キャプチャー・デバイス20は、更に、メモリー・コンポーネント34も含むことができる。メモリー・コンポーネント34は、プロセッサー32によって実行することができる命令、3Dカメラ26またはRGBカメラ28によって取り込まれた画像または画像のフレーム、あるいはあらゆる他の適した情報、画像等を格納することができる。一実施形態例によれば、メモリー・コンポーネント34は、ランダム・アクセス・メモリー(RAM)、リード・オンリ・メモリー(ROM)、キャッシュ、フラッシュ・メモリー、ハード・ディスク、または他の適した記憶コンポーネントであればいずれでも含むことができる。
図2に示すように、一実施形態では、メモリー・コンポーネント34は、画像キャプチャー・コンポーネント22およびプロセッサー32と通信することができる別個のコンポーネントであってもよい。他の実施形態によれば、メモリー・コンポーネント34は、プロセッサー32および/または画像キャプチャー・コンポーネント22に統合されてもよい。
【0030】
[0046]
図2に示すように、キャプチャー・デバイス20は、通信リンク36を介して、計算環境12と通信することができる。通信リンク36は、例えば、USB接続、Firewire接続、イーサネット・ケーブル接続等を含む有線接続、および/またはワイヤレス802.11b、g、a、またはn接続のようなワイヤレス接続とすることができる。一実施形態によれば、計算環境212は、クロックをキャプチャー・デバイス202に供給することができる。このクロックは、例えば、通信リンク36を介して場面をいつ取り込むべきか判定するために用いることができる。
【0031】
[0047] 加えて、キャプチャー・デバイス20は、例えば、3Dカメラ26および/またはRGBカメラ28によって取り込まれた深度情報および画像、ならびにキャプチャー・デバイス202によって生成することができるスケルトン・モデルを、計算環境12に、通信リンク36を通じて供給することができる。キャプチャー・デバイス20によって検出されたターゲットまたは物体が人間のターゲットに対応するか否か判断するためには、種々の既知の技法が存在する。次いで、スケルトン・マッピング技法を用いて、そのユーザーの骨格上における種々のスポット、手の関節、手首、肘、膝、鼻、踝、肩、および骨盤が脊椎と交わるところを判定することができる。他の技法には、画像をその人の身体モデル表現に変換すること、およびこの画像をその人のメッシュ・モデル表現に変換することが含まれる。
【0032】
[0048] 次いで、計算環境12が種々の行為を実行できるように、スケルトン・モデルを計算環境12に供給することができる。更に、計算環境は、例えば、スケルトン・モデルから既に認識されたユーザーのジェスチャーに基づいて、計算環境上で実行しているアプリケーションにおいて実行すべき制御は何か判断することができる。例えば、図示のように、
図2では、計算環境12が、いつユーザーが既定のジェスチャーを行ったか判断するために、ジェスチャー認識エンジン190を含むことができる。
【0033】
[0049]
図3Aは、ターゲット認識、分析、および追跡システムにおいてユーザーの1つ以上の位置および運動(motion)を解釈するために用いることができる計算環境の一実施形態例を示す。
図1Aから
図2に関して先に説明した計算環境12のような計算環境は、ゲーミング・コンソールのようなマルチメディア・コンソール100とすることができる。
図3Aに示すように、マルチメディア・コンソール100は、レベル1キャッシュ102、レベル2キャッシュ104、およびフラッシュROM(リード・オンリー・メモリー)106を有する中央演算装置(CPU)101を有する。レベル1キャッシュ102およびレベル2キャッシュ104は、一時的にデーターを格納し、こうしてメモリー・アクセス・サイクルの回数を減らすことによって、処理速度およびスループットを向上させる。CPU101は、1つよりも多いコアを設けることができ、したがって追加のレベル1およびレベル2キャッシュ102および104を有することもできる。フラッシュROM106は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール100の電源をオンにしたときに、ブート・プロセスの初期段階中にロードされる。
【0034】
[0050] グラフィクス処理ユニット(GPU)108およびビデオ・エンコーダー/ビデオ・コデック(コーダー/デコーダー)114は、高速および高分解能グラフィクス処理のためにビデオ処理パイプラインを形成する。データーは、バスを介して、GPU108からビデオ・エンコーダー/ビデオ・コデック114に伝達される。ビデオ処理パイプラインは、テレビジョンまたは他のディスプレイに送信するために、データーをA/V(オーディオ/ビデオ)ポート140に出力する。メモリー・コントローラー110がGPU108に接続されており、限定ではなく、RAMのような種々のタイプのメモリー112にプロセッサーがアクセスし易くなっている。
【0035】
[0051] マルチメディア・コンソール100は、I/Oコントローラー120、システム管理コントローラー122、オーディオ処理ユニット123、ネットワーク・インターフェース・コントローラー124、第1USBホスト・コントローラー126、第2USBコントローラー128、およびフロント・パネルI/Oサブアセンブリ130を含む。これらは、好ましくは、モジュール118上に実装されている。USBコントローラー126および128は、周辺コントローラー142(1)〜142(2)、ワイヤレス・アダプター148、および外部メモリー・デバイス146(例えば、フラッシュ・メモリー、外部CD/DVD ROMドライブ、リムーバブル媒体等)のためのホストとしての役割を果たす。ネットワーク・インターフェース124および/またはワイヤレス・アダプター148は、ネットワーク(例えば、インターネット、ホーム・ネットワーク等)へのアクセスを与え、イーサネット・カード、モデム、Bluetoothモジュール、ケーブル・モデム等を含む広範囲にわたる種々の有線またはワイヤレス・インターフェース・コンポーネントの内いずれでもよい。
【0036】
[0052] システム・メモリー143は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ144が設けられており、DVD/CDドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブを備えることができる。メディア・ドライブ144は、マルチメディア・コンソール100の内部にあっても外部にあってもよい。アプリケーション・データーには、実行、再生等のために、マルチメディア・コンソール100がアクセスすることができる。メディア・ドライブ144は、シリアルATAバスまたはその他の高速接続(例えば、IEEE1394)のようなバスを介して、I/Oコントローラー120に接続されている。
【0037】
[0053] システム管理コントローラー122は、メディア・コンソール100の利用可能を確保することに関する種々のサービス機能を提供する。オーディオ処理ユニット123およびオーディオ・コデック132は、高忠実度およびステレオ処理を行う、対応のオーディオ処理パイプラインを形成する。オーディオ・データーは、通信リンクを介して、オーディオ処理ユニット123とオーディオ・コデック132との間で搬送される。オーディオ処理パイプラインは、外部オーディオ・プレーヤまたはオーディオ処理能力を有するデバイスによる再生のために、データーをA/Vポート140に出力する。
【0038】
[0054] フロント・パネルI/Oサブアセンブリ130は、電力ボタン150およびイジェクト・ボタン152の機能をサポートするだけでなく、あらゆるLED(発光ダイオード)またはマルチメディア・コンソール100の外面上に露出されるその他のインディケータもサポートする。システム電源モジュール136は、マルチメディア・コンソール100のコンポーネントに電力を供給する。ファン138は、マルチメディア・コンソール100内部にある回路を冷却する。
【0039】
[0055] CPU101、GPU108、メモリー・コントローラー110、およびマルチメディア・コンソール100内部にある種々のその他のコンポーネントは、1系統以上のバスを介して相互接続されている。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、周辺バス、ならびに種々のバス・アーキテクチャの内いずれかを用いるプロセッサー・バスまたはローカル・バスが含まれる。一例として、このようなアーキテクチャは、ペリフェラル・コンポーネント相互接続(PCI)バス、PCI-Expressバス等を含むことができる。
【0040】
[0056] マルチメディア・コンソール100の電源をオンにすると、システム・メモリー143からメモリー112および/またはキャッシュ102、104にアプリケーション・データーがロードされ、CPU101において実行することができる。アプリケーションは、グラフィカル・ユーザー・インターフェースを提示することができる。このグラフィカル・ユーザー・インターフェースは、マルチメディア・コンソール100において利用可能な異なるタイプのメディアにナビゲートするときに、一貫性のあるユーザー体験を提供する。動作において、アプリケーションおよび/またはメディア・ドライブ144内に収容されている他のメディアをメディア・ドライブ144から起動または再生して、マルチメディア・コンソール100に追加の機能を設けることもできる。
【0041】
[0057] マルチメディア・コンソール100は、単にシステムをテレビジョンまたはその他のディスプレイに接続することによって、単体システムとして動作させることができる。この単体モードでは、マルチメディア・コンソール100は、1人以上のユーザーがシステムと対話処理を行い、ムービーを見ること、または音楽を聞くことを可能にする。しかしながら、ネットワーク・インターフェース124またはワイヤレス・アダプター148によって利用可能となるブロードバンド接続機能を統合することにより、マルチメディア・コンソール100を更に大きなネットワーク・コミュニティにおける関与個体(participant)として動作させることもできる。
【0042】
[0058] マルチメディア・コンソール100の電源をオンにすると、マルチメディア・コンソールのオペレーティング・システムによって、設定されている量のハードウェア・リソースがシステムの使用のために確保される。これらのリソースは、メモリー(例えば、16MB)、CPUおよびGPUサイクル(例えば、5%)、ネットワーク接続帯域幅(例えば、8kbs)等の確保を含むことができる。これらのリソースは、システムのブート時に確保されるので、確保されたリソースは、アプリケーションの視点からは存在しない。
【0043】
[0059] 特に、メモリーの確保は、起動カーネル、コンカレント・システム・アプリケーション、およびドライバーを収容できる程に十分大きいことが好ましい。確保されたCPU使用枠(usage)がシステム・アプリケーションによって用いられない場合、アイドルのスレッドがいずれかの未使用サイクルを消費するように、CPUの確保は一定であることが好ましい。
【0044】
[0060] GPUの確保に関して、GPU割り込みを用いてポップアップをオーバーレイにレンダリングするコードをスケジューリングすることによって、システム・アプリケーション(例えば、ポップアップ)が生成する軽量メッセージ(lightweight message)を表示する。オーバーレイに用いられるメモリー量は、オーバーレイのエリア・サイズによって異なり、オーバーレイは画面の解像度に合わせて拡縮小する(scale)ことが好ましい。コンカレント・システム・アプリケーションによってフル・ユーザー・インターフェースが用いられる場合、アプリケーションの解像度とは独立した解像度を用いることが好ましい。周波数を変更しTVの同期を取り直す必要性をなくすように、この解像度を設定するためにスケーラー(scaler)を用いるとよい。
【0045】
[0061] マルチメディア・コンソール100がブートして、システム・リソースが確保された後、コンカレント・システム・アプリケーションが実行してシステム機能を提供する。システム機能は、前述の確保したシステム・リソースの内部で実行する1組のシステム・アプリケーションの中にカプセル化されている。オペレーティング・システム・カーネルは、システム・アプリケーション・スレッドと、ゲーミング・アプリケーション・スレッドとの間でスレッドを識別する。一貫したシステム・リソース・ビューをアプリケーションに提供するために、システム・アプリケーションは、所定の時点および間隔でCPU101において実行するようにスケジューリングされていることが好ましい。このスケジューリングは、コンソール上で実行しているゲーミング・アプリケーションに対するキャッシュ破壊(disruption)を最少に抑えるためにある。
【0046】
[0062] コンカレント・システム・アプリケーションがオーディオを必要とする場合、時間に敏感であるため、ゲーミング・アプリケーションには非同期にオーディオ処理をスケジューリングする。マルチメディア・コンソール・アプリケーション・マネージャー(以下で説明する)は、システム・アプリケーションがアクティブのとき、マルチメディア・アプリケーションのオーディオ・レベル(例えば、無音化、減衰)を制御する。
【0047】
[0063] 入力デバイス(例えば、コントローラー142(1)および142(2))は、ゲーミング・アプリケーションおよびシステム・アプリケーションによって共有される。入力デバイスは、確保されるリソースではないが、各々がデバイスのフォーカス(focus)を有するように、システム・アプリケーションとゲーミング・アプリケーションとの間で切り換えられる。アプリケーション・マネージャーは、ゲーミング・アプリケーションの知識を用いずに入力ストリームの切換を制御し、ドライバーはフォーカス・スイッチ(focus switches)に関する状態情報を維持する。カメラ26、28およびキャプチャー・システム20は、コンソール100の追加の入力デバイスを定めることができる。
【0048】
[0064]
図3Bは、ターゲット認識、分析、および追跡システムにおいて1つ以上の位置および動き(motion)を解釈するために用いられる、計算環境220の他の実施形態例を示す。計算環境220は、
図1Aから
図2に示した計算環境12であってもよい。計算システム環境220は、適した計算環境の一例に過ぎず、本明細書において開示される主題の使用範囲または機能に関して、いかなる限定を示唆する意図もない。また、計算環境220が、本明細書において例示されるいずれの1つのコンポーネントまたはコンポーネントの組み合わせに関して何らかの依存性または要件を有するように解釈してはならない。実施形態によっては、図示する種々の計算エレメントが、本開示の特定の態様をインスタンス化するように構成されている回路を含むこともあり得る。例えば、本開示において用いられる回路という用語は、ファームウェアまたはスイッチによって機能(1つまたは複数)を実行するように構成されている特殊ハードウェア・コンポーネントを含むことができる。別の実施形態例では、回路という用語は、機能(1つまたは複数)を実行するために動作可能なロジックを具体化するソフトウェア命令によって構成される汎用演算装置、メモリー等を含むことができる。回路がハードウェアおよびソフトウェアの組み合わせを含む実施形態例では、実装者(implementer)は、ロジックを具体化するソース・コードを書くことができ、ソース・コードを機械読み取り可能コードにコンパイルすることができ、この機械読み取り可能コードを汎用演算装置によって処理することができる。技術的現状では、ハードウェア、ソフトウェア、またはハードウェア/ソフトウェアの組み合わせの間には殆ど差がないというところまで発展していることを当業者は認めることができるので、特定の機能を実行するためにハードウェアまたはソフトウェアのどちらを選択するかということは、実装者に委ねられた設計選択事項である。更に具体的には、ソフトウェア・プロセスを等価のハードウェア構造に変換することができ、更にハードウェア構造自体を等価のソフトウェア・プロセスに変換することができることを、当業者は認めることができる。つまり、ハードウェアの実施態様およびソフトウェアの実施態様のどちらを選択するかということは、実装者に委ねられた設計選択事項の1つである。
【0049】
[0065]
図3Bにおいて、計算環境220はコンピューター241を備えている。コンピューター241は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター241がアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。システム・メモリー222は、ROM223およびRAM260のような揮発性および/または不揮発性メモリーの形態となっている、コンピューター記憶媒体を含む。基本入出力システム224(BIOS)は、起動中のように、コンピューター241内のエレメント間におけるデーター転送を補助する基本的なルーチンを収容し、通例ROM223内に格納されている。RAM260は、通例、演算装置259が直ちにアクセス可能であるデーターおよび/またはプログラム・モジュール、あるいは現在これによって処理されているデーターおよび/またはプログラム・モジュールを収容する。一例として、そして限定ではなく、
図3Bは、オペレーティング・システム225、アプリケーション・プログラム226、その他のプログラム・モジュール227、およびプログラム・データー228を示す。アプリケーション・プログラム226の一例に、本明細書において説明するような、インタラクティブ・ストーリー体験をユーザーに提示するために用いられるストーリー・アプリケーション226がある。更に、
図3Bは、グラフィクス・プロセッサー・ユニット(GPU)229も含む。グラフィクス・プロセッサー・ユニット229は、高速および高解像度グラフィクス処理および格納のために、付随するビデオ・メモリー230を有する。GPU229は、グラフィクス・インターフェース231を介して、システム・バス221に接続することができる。
【0050】
[0066] また、コンピューター241は、その他のリムーバブル/非リムーバブル揮発性/不揮発性コンピューター記憶媒体も含むことができる。一例にすぎないが、
図3Bは、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ238、リムーバブル不揮発性磁気ディスク254からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ239、ならびにCD ROMまたはその他の光媒体のようなリムーバブル不揮発性光ディスク253からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ240を示す。動作環境の一例において使用可能なその他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体には、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROM等が含まれるが、これらに限定されるのではない。ハード・ディスク・ドライブ238は、通例、インターフェース234のような非リムーバブル・メモリー・インターフェースを介してシステム・バス221に接続されており、磁気ディスク・ドライブ239および光ディスク・ドライブ240は、通例、インターフェース235のようなリムーバブル・メモリー・インターフェースによって、システム・バス221に接続されている。
【0051】
[0067] 先に論じ
図3Bに示すドライブおよびそれらと関連のあるコンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、およびコンピューター241のその他のデーターのストレージを提供する。
図3Bでは、例えば、ハード・ディスク・ドライブ238は、オペレーティング・システム258、アプリケーション・プログラム257、他のプログラム・モジュール256、およびプログラム・データー255を格納するように示されている。尚、これらの構成要素は、オペレーティング・システム225、アプリケーション・プログラム226、他のプログラム・モジュール227、およびプログラム・データー228と同じでも異なっていても可能であることを注記しておく。オペレーティング・システム258、アプリケーション・プログラム257、他のプログラム・モジュール256、およびプログラム・データー255は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザーは、キーボード251、および一般にマウス、トラックボールまたはタッチ・パッドと呼ばれているポインティング・デバイス252のような入力デバイスによって、コマンドおよび情報をコンピューター241に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザー入力インターフェース236を介して、演算装置259に接続されている。ユーザー入力インターフェース236は、システム・バスに結合されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)によって接続されるのでもよい。カメラ26、28およびキャプチャー・デバイス20は、コンソール100の追加入力デバイスを定めることができる。モニター242またはその他のタイプの表示装置も、ビデオ・インターフェース232のようなインターフェースを介して、システム・バス221に接続されている。モニターに加えて、コンピューターは、スピーカー244およびプリンター243のような、その他の周辺出力装置も含むことができ、これらは出力周辺インターフェース233を通じて接続することができる。
【0052】
[0068] コンピューター241は、リモート・コンピューター246のような1つ以上のリモート・コンピューターへの論理接続を用いて、ネットワーク接続環境において動作することも可能である。リモート・コンピューター246は、パーソナル・コンピューター、サーバー、ルータ、ネットワークPC、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター241に関して先に説明したエレメントの多くまたは全てを含むが、
図3Bにはメモリー記憶装置247のみを示す。
図3Bに示す論理接続は、ローカル・エリア・ネットワーク(LAN)245およびワイド・エリア・ネットワーク(WAN)249を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては極一般的である。
【0053】
[0069] LANネットワーク環境で用いる場合、コンピューター241は、ネットワーク・インターフェースまたはアダプター237を介してLAN245に接続する。WANネットワーク環境で用いる場合、コンピューター241は、通例、モデム250、またはインターネットのようなWAN249を通じて通信を設定するその他の手段を含む。モデム250は、内蔵でも外付けでもよく、ユーザー入力インターフェース236またはその他の適切なメカニズムを介してシステム・バス221に接続することができる。ネットワーク環境では、コンピューター241に関係付けて図示したプログラム・モジュール、またはその一部は、離れたメモリー記憶装置に格納することもできる。一例として、そして限定ではなく、
図3Bは、リモート・アプリケーション・プログラム248がメモリー・デバイス247に存在するものとして示している。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを確立する他の手段も使用可能であることは認められよう。
【0054】
[0070]
図4は、キャプチャー・システム20から生成することができる、ユーザーのスケルトン・マッピングの一例を示す。この実施形態では、種々の関節および骨が識別されている。各手302、各前腕304、各肘306、各二頭筋308、各肩310、各臀部312、各腿314、各膝316、各前肢318、各足320、頭部322、胴体324、脊椎の上端326および下端328、およびウェスト330である。追跡するポイントが多くなるに連れて、指またはつま先の骨および関節というような追加の構造、あるいは鼻および目というような、顔の個々の表情(feature)も識別するとよい。
【0055】
[0071]
図5は、ユーザー・インターフェースを通じてインタラクティブ・ストーリー体験を提示するための本技術の一実施形態の動作の上位フローチャートである。ステップ400において、ユーザーはシステム10を起動し、計算環境12およびキャプチャー・デバイス20を始動させる(activate)ことができる。ステップ404において、システム10はストーリー・アプリケーション226を実行する。ステップ406において、ストーリー・アプリケーションは、ディスプレイ14上において、ストーリーの次のフレームをユーザーに提示する。
【0056】
[0072] このストーリーは、ディスプレイ14上において図式的に提示することができ、音声による挿話が伴うこともできる。ストーリーは、離散的な静止画像パネル、即ち、ディスプレイ14上に静止フレームとして連続的に提示される一連の静止画像で表示することもできる。あるいは、ストーリーは、動的なコンピューター・グラフィクス(CG)アニメーションにして提示することや、またはビデオ・カメラを用いて撮影した生の俳優との場面として提示することもできる。以下で説明するように、音声による挿話は、ストーリー・アプリケーション、ユーザー、および/またはストーリーが提示されている間には立ち会わない第三者によって提示される音声とすることができる。また、音声による挿話は、提示されるストーリーのキャラクター間における対話を含むこともできる。このキャラクター間における対話は、この場合も、ストーリー・アプリケーション、1人以上のユーザー、および/またはストーリーが提示されている間は立ち会わない1人以上の第三者によって提示することができる。
【0057】
[0073] CGアニメーションを用いる実施形態では、ストーリー・アプリケーション226は、計算環境12のGPUによって生成されるアニメーションの第1フレームを提示することができる。このフレームは、キャプチャー・デバイスのリフレッシュ・レート(例えば、30Hz)でリフレッシュすればよい。リフレッシュ・レートは、他の実施形態では、これよりも高くてもまたは低くてもよい。静止画像パネルを用いる実施形態では、静止画像は、書籍または漫画のページに類似する。静止画像は、例えば、数秒間ディスプレイ上に提示することができる。ビデオを用いる実施形態では、フレームは、ビデオのフレーム・レートでリフレッシュすることができ、この場合も、例えば、30Hzとすればよい。
【0058】
[0074] 実施形態では、ストーリー・アプリケーションを実行するときに、ユーザー18は提示されたストーリーと対話処理する必要はない。即ち、ユーザーは、ストーリーが開始から終了まで再生されるのを、単に見ていれば、および/または聴いていればよい。あるいは、以下で説明する更に他の実施形態では、ユーザーはストーリー・アプリケーション226によって提示されたストーリーと対話処理することもできる。
【0059】
[0075] キャプチャー・デバイス20は、ユーザーがストーリー・アプリケーションを見ているときおよび/またはこれと対話処理しているときに、ユーザーを監視している。ステップ408において、キャプチャー・デバイス20が、ユーザーが視野から離れるのを検知した場合、ストーリー・アプリケーションは、ユーザーが視野に再び入るまで、ステップ412において一時停止することができる。ステップ408および412は、他の実施形態では、省略してもよい。先に示したように、ユーザーは単に座って、ストーリー・アプリケーションによって提示されるストーリーを見ていれば、および/または聴いていればよい。ステップ416において、ユーザーの対話処理が検知されない場合、ストーリーは、その終了まで、単に継続する。しかしながら、ステップ416においてユーザーの対話処理が検知された場合、本システムは、通常その対話処理を判定し、以下で説明するように、その対話処理に応じて異なる動作を実行する。
【0060】
[0076] ステップ418において、ストーリー・アプリケーションは、キャプチャー・デバイス20のマイクロフォン・アレイ30が音声を検出したか否かチェックすることができる。マイクロフォン・アレイ30によって拾い上げた音響を識別して、その音響の内1つ以上が人間の音声であるか否か判断するための技法は、周知である。マイクロフォン・アレイ30は、マイクロフォン・アレイ30によって検出することができる低周波ノイズを減衰するための、例えば、ハイ・パス・フィルターのような種々の既知のフィルターを含んでもよい。
【0061】
[0077] ステップ418において音声が検出された場合、本システムは、これから説明するように、
図6に明示したステップを実行する。実施形態では、特定のユーザーが話者であるか否か、または音声が他の何らかの発生源から来ているのか否か識別することが望ましい場合がある。例えば、前述の音声特性の特定のユーザーへの相関付け、および音源位置検出(acoustic source localization)技法というような、視野内にいるユーザーと音声を関連付ける種々の技術が存在する。これらおよびその他の技法は、ステップ450において話者を特定するために用いることができる。他の実施形態では、ステップ450を省略することもできる。
【0062】
[0078] ストーリー・アプリケーションは、ストーリーを解説するために、挿話を伴うこともでき、オーディオ/ビジュアル・デバイス16に付随するスピーカーを通じてブロードキャストすることができる。しかしながら、挿話は、代わりに、ストーリーを聴いているユーザーがその文字を読むことができるように、画面上に文字で表示することもできる。一例では、子供が読み方を学習しているのであってもよく、または子供がディスプレイ14上に広がるストーリーを見ている間、親が子供にストーリーを読み聞かせているのでもよい。画面上に現れる文字の代わりとして、ユーザーが、計算環境12と対をなす計算機を有し、ストーリー・アプリケーション226の同じインスタンス(instance)に参加することもできる。このような実施形態では、挿話の文字は、ディスプレイ14の代わりに、ユーザーの対をなす計算機上に表示することができる。
【0063】
[0079] 更に他の実施形態では、ストーリー・アプリケーション226がシステム10上においてストーリーを示しているときには立ち会わない第三者が挿話を読むことも考えられる。第三者は誰でも可能であるが、実施形態では、第三者は、例えば、ストーリー・アプリケーションを実行しているときにはその場にいない親または祖父母であってもよいが、システム10上においてストーリーを視聴している子供に、挿話の音声を提示することが望ましい。
【0064】
[0080] このような実施形態では、第三者は、ストーリー・アプリケーションのための挿話を予め記録しておくことができ、ストーリー・アプリケーションを実行してストーリーに対する挿話を流すときに、この記録を再生すればよい。この実施形態では、記録は、システム10に付属するまたは付属しないオーディオ再生デバイスにおいて再生すればよい。更に他の実施形態では、ストーリー・アプリケーションをシステム10上で実行しながら、第三者がストーリー・アプリケーション226に対する挿話をリアル・タイムで読んでいくのであってもよいが、第三者は、計算環境12に、電話またはVOIP接続によって接続されることになる。
【0065】
[0081] ステップ454において、ストーリー・アプリケーションは、ステップ418において認知された音声が、ストーリーの挿話と相関があるか否か判断する。この目的のために、既知の音声分析技法を用いることができ、挿話から分かった単語を解析して音素に分け、マイクロフォン・アレイ30によって認知された音声に対しても同じことを行い、これら2つの音素ストリームを比較して一致を見いだすことが含まれる。
【0066】
[0082] ステップ454において、発声された音声が、ストーリー・アプリケーションの挿話と相関付けられた場合、この発声された音声は、ストーリー・アプリケーションがストーリーを進めるペースを設定することができる。例えば、ストーリーが静止画像パネルで提示される場合、ストーリー・アプリケーションは、ステップ464において、特定のパネルに伴う挿話の最後の単語が発声されたか否か判断することができる。発声されていない場合、未だ次のパネルに進む時刻になっておらず、フローは元に戻って、
図5に関して以下で説明するように、次の対話処理を探すことができる。一方、ストーリー・アプリケーションが、特定のパネルに伴う挿話の最後の単語が発声されたと判断した場合、ストーリー・アプリケーションはステップ466において次のパネルに進むことができる。フローは、
図5に関して以下で説明するように、元に戻って次の対話処理を探すことができる。
【0067】
[0083] 画像がビデオまたは動的なアニメーションである場合、ストーリー・アプリケーションは挿話を、発声された音声と相関付けて、表示されている画像の速度を上げるまたは下げることにより、ユーザーまたは第三者によって発声される挿話のペースと同期させる。ストーリー・アプリケーションは、
図5のフローチャート全体を繰り返し実行して、周期的に音声の有無をチェックし、その音声が、提示されているストーリーの挿話と相関があるか否かチェックし、提示されている画像を、発声されている挿話のページと同期させることができる。
【0068】
[0084] ステップ454において、ストーリー・アプリケーションが音声を挿話と相関付けることができない場合、アプリケーションは、次にステップ456において、その音響が、ストーリー・アプリケーションまたはシステム10の動作に対する可聴命令(audible instruction)として認識されたか否かチェックすることができる。認識されない場合、計算環境12は
図5に戻って、以下で説明するように、ステップ422においてユーザーのストーリー・アプリケーションとの他の可能な対話処理を探すことができる。一方、ステップ456において音声が命令として認識された場合、ステップ460においてこの命令と関連のある動作(act)を実行することができ、本システムは
図5のフローチャートに戻って、次の対話処理の有無をチェックすることができる。
【0069】
[0085] ここで
図5に戻って、ステップ422において、本システムは特定のタイプのジェスチャーを探すことができる。このジェスチャーを本明細書では「診査ジェスチャー」(exploration gesture)と呼ぶ。具体的には、1つのタイプの対話処理を許可し、ユーザーが実際にディスプレイ14上に表示されている仮想世界に足を踏み入れて、ディスプレイ上における仮想物体を診査(explore)および/または調査(investigate)することが、本技術の特徴である。多種多様な例の1つとして、ストーリーは部屋をユーザーに表示することができる。ユーザーによる対話処理がない場合、ある時間期間ユーザーにはその部屋を示すことができ、次いでストーリーは先に進んで他の場所を示すことができる。しかしながら、単に始まることの代わりに、ユーザーが診査ジェスチャーを行って、部屋の中にある仮想物体を診査および調査して、もっと接近した光景を得ることおよび/または異なる視点から物体を見ることをユーザーが望んでいることを示す実施形態では、ユーザーがジェスチャーまたは運動(motion)を行い、計算環境12がこれを解釈して、ユーザーが場面の中にある仮想物体を拾い上げて操作することを可能にすることも考えられる。
【0070】
[0086]
図5のステップ422において、計算環境12は、既定の診査ジェスチャーを探す。本技術の実施形態では、ユーザーによる多種多様の動きおよびジェスチャーを、既定の診査ジェスチャーとして設定することができる。
図10に関してこれより説明するこのような実施形態の1つでは、キャプチャー・デバイス20がユーザーの頭部および/または身体の動きを取り込む。例えば、
図10では、実世界においてある物体の回りまたは背後を覗おうとするときに行うように、ユーザーは屈んで首を伸ばしている。ジェスチャー認識エンジン190の動作については以下で説明するが、認識エンジン190は、このような身体の動きを探すために既定の規則を有することができ、その動きを見つけたときに、これらを診査ジェスチャーとして解釈する。首を伸ばすこと、および/または腰を屈めることに加えて、診査ジェスチャーは、加えてまたは代わりに、例えば、
図10に示すような指し示すジェスチャーというような、他のジェスチャーを含むこともできる。
【0071】
[0087] 尚、更に他の実施形態では、多種多様の他の身体の動きを診査ジェスチャーとして定義してもよいことは認められよう。このような実施形態の中には、ユーザーの動きが、仮想世界においてユーザーが行うことを望む行為に対する、実世界における相関を有することができる。先に明示した一例では、ユーザーは、ある物体の回りまたは背後を覗いたいことを知らせるために、前に屈んで首を伸ばしている。他の実施形態では、ユーザーは、加えてまたは代わりに、ディスプレイの方向に歩行して、仮想場面に足を踏み入れたいことを示すことができる。更に他の実施形態では、実世界では意味のない、任意の1組のジェスチャーを定義することができる。あるいは、任意の身体および/または音声のジェスチャーを考え出して、ジェスチャー認識エンジン190によって記録してもよく、このジェスチャーが行われたときに、ジェスチャー認識エンジンがこれらを認識し、ある物体の背後を見るために仮想場面に足を踏み入れるというような、関連付けられている行為を実行する。
【0072】
[0088] ステップ422において一旦診査ジェスチャーを認識すると、計算環境12は、ステップ490から538までを実行する。これらについて、
図7のフローチャートに関してこれより説明する。ステップ490において、計算環境12は、他の位置から表示された場面を見るための表示を示す三次元仮想世界に、ユーザーが足を踏み入れたいか否か判断する。この場合も、この要望およびユーザーが仮想場面に入ろうとする方向は、ユーザーによって、既定の頭部、手、または他のジェスチャーを通じて制御される。この実施形態は、場面がCGアニメーションで提示されるときに動作することができる。場面が静止パネルまたは記録ビデオのいずれかで提示される場合、以下で説明するように、CGアニメーションをこれらの表示モデルに切断して、仮想場面の診査を行うことができる。更に他の実施形態では、ビデオを360°で撮影することもでき、ユーザーのビデオ場面への進入およびこのビデオ場面の診査があるレベルまで可能になる。
【0073】
[0089] 一例として、一旦診査ジェスチャーが行われると、キャプチャー・デバイス20および計算機12は、例えば、
図10における点610のような、ユーザーが注目しているディスプレイ上の点を判定することができる。この点は、ユーザーが目を向けている方向を取り込むことによって判定することができ、および/またはこの点は、ユーザーが手を向けている方向を取り込むことによって判定することができる。更に他の実施形態では、ユーザーは、加えてまたは代わりに、その方向に歩行することができる。ステップ490において、ユーザーが異なる位置からその場面を見ることを望むと判断した場合、コンピューター環境は、ステップ494において、ユーザーが仮想世界において沿って動くことを望むベクトルを定義することができる。
【0074】
[0090] ステップ494におけるベクトルは、ユーザー上の基準点から、ディスプレイ上における関心点610までの1つ以上の実世界の三次元ベクトル612に基づいて、決定することができる。
図10において、ベクトル612は、ユーザーの目から関心点610まで、そしてユーザーが指し示す手から関心点610まで達している。基準点(目、手等)は、既知のx、y、およびz座標位置を有する。
【0075】
[0091] ディスプレイ14上に示される仮想場面は、3−Dデーターで表される。即ち、仮想場面における点、および場面内にある仮想物体上の点には、x、y、およびz値が指定され、3−D仮想空間を形成する。本明細書では、これを3−Dマシン空間と呼ぶ。キャプチャー・デバイス20の既知の位置からユーザーが動いている実世界までを考えると、3−D実世界空間と3−Dマシン空間との間に既知の関係が得られる。したがって、既知の変換マトリクスを用いて、ベクトル612を3−D実世界空間から3−Dマシン空間に変換する(translate)ことができる。実世界ベクトル612の3−Dマシン空間への変換によって、ステップ494において、ベクトルが得られ、このベクトルに沿って、ユーザーが3−D仮想場面に入って行くことになる。以下で説明するが、ユーザーが仮想場面に入って行き仮想物体を調べる効果を作成するために、ディスプレイの視点は、1つの場面の異なるエリアおよび物体の映像(view)を、異なる拡大(zoom in)または縮小(zoom out)位置から得られるように変化する。この場合も、これが可能なのは、仮想物体が、ディスプレイ上の二次元の点として定義されるだけでなく、マシン空間における3−D定義も有するからである。
【0076】
[0092] ステップ498において、ユーザーを直ちに所望の場所に位置付け直すのではなく、仮想マシンに向かうときにユーザーが見る光景(view)を徐々に変化させることもできる。ユーザーが見る光景が変化する刻み幅は、任意に設定することができるが、実施形態では、ユーザーが通常の歩行ペースで場面に歩いて入っていくという印象を醸し出すように、光景が変化する。ステップ502において、ディスプレイ14上に表示されている場面の光景(view)が更新されて、ステップ498の光景を徐々に変化させることができる。この場合も、表示されている場面の光景を3−Dのいずれかの眺望(perspective)に変換するための変換マトリクスが知られている。ステップ506において、ステップ502において決定された新たな位置の視点から、場面をレンダリングすることができる。
【0077】
[0093] 次いで、本ルーチンはステップ490に戻り、ユーザーが物体を検査したい仮想場面内における位置に達したか、またはユーザーが仮想場面内を移動し続けたいのか判断することができる。これは、ユーザーの身体の位置、およびディスプレイ上でユーザーに焦点が合っていることによって示すことができ、あるいは他の何らかの任意の身体の動きまたは音声のジェスチャーによって示すことができる。ユーザーが仮想場面内で移動し続けたい場合、ユーザーが仮想場面内における彼らの所望の位置に達するまで、ステップ490から506までを繰り返す。
【0078】
[0094] ステップ490において、ユーザーが仮想場面における所望の位置にいると判断した場合(即ち、所望の視点からの場面がディスプレイ上に提示されている)、フローはステップ510に分岐して、ユーザーが場面内におけるその位置において更に厳密に物体に注目することを望むか否か判断する。この場合も、この望みは、ユーザーが実世界において物体を移動させるおよび/または物体に注目するときに行う実世界の動きを真似た1つ以上の既定のジェスチャー、あるいは仮想世界において自由に移動して物体に注目する目的で定義された任意のジェスチャーのいずれかによって示すことができる。
【0079】
[0095] ステップ510において、ユーザーが場面において物体に更に厳密に注目することを望んでいると判断した場合、計算環境12はステップ514において現在の位置(即ち、場面の現在の光景)を基準点として格納する。以下で説明するが、この基準位置は、ユーザーが特定の仮想物体に注目し終えたときに本システムが戻ってくる光景として用いられる。ステップ518において、計算環境12は基準位置から仮想物体までのベクトル方向を判定する。これは、先に説明したように、実世界においてユーザーの頭部の位置をx、y、z空間において検出し、ユーザーがディスプレイを見ている位置を検出することによって行うことができ、その後、このベクトルを仮想マシン空間におけるベクトルに変換する。
【0080】
[0096] ステップ522において、前述のようにして、このベクトルに沿った中間漸進位置(intermediate incremental position)を決定することができる。ステップ524において、この場面の視点を、ステップ524において決定した位置に平行移動することができ、ステップ528において、ステップ524において決定した視野(view)から、場面をレンダリングすることができる。ステップ532において、本システムは、ユーザーが仮想場面内にある特定の物体を注目し終えたか否か判断することができる。これは、種々の既定のジェスチャーの内いずれによってでも示すことができる。本システムが、ユーザーが注目観察(focus view)を終えたと判断しない場合、フローはステップ510に戻り、ステップ510から528を繰り返して、場面内にある他の仮想物体に注目することができる。一方、ユーザーが彼らの注目した観察(focused view)を完了したことを示す既定のジェスチャーをステップ532において行った場合、ステップ536において、この光景を平行移動して、基準点(ステップ514において格納した)からの光景に戻すことができる。
【0081】
[0097] 計算環境12がステップ490および510において追加の診査ジェスチャーを判別できない場合、フローはステップ538に分岐して、ユーザーが、場面を診査し終えたことを示す既定のジェスチャーを行ったか否か確かめることができる。行っていない場合、フローはステップ490に戻って、ユーザーが異なる位置から場面を見ることを望んでいるか否か確かめることができ、望んでいない場合、フローはステップ510に進んで、ユーザーが場面の中におけるその現在の位置にある物体に注目することを望んでいるか否か判断する。一方、ステップ538において、ユーザーが3−D場面における診査を終了したことを示す何らかの既定のジェスチャーを行った場合、フローは
図5に戻り、次のタイプのユーザー対話処理の有無を調べることができる。
【0082】
[0098] 尚、ステップ490から538の間では、ストーリー・アプリケーションによってディスプレイ14上に提供される三次元仮想世界に、ユーザーがどのように入っていきその中で動き回ることができるかということの一例に過ぎないことは認められよう。
【0083】
[0099] 本システムの実施形態では、ストーリーを見て3−D仮想世界内において診査することに加えて、ユーザーはストーリー内部における1つ以上のキャラクターを制御する選択肢も有することができる。この実施形態は、場面がCGグラフィクスで提示されるときに動作することができる。場面が静止パネルまたは記録ビデオのいずれかで提示される場合、CGアニメーションを切り離してこれらの表示モデルを得て、以下で説明するように、キャラクターの制御に備えることが考えられる。
【0084】
[00100] 実施形態では、ユーザー18は、画面上のキャラクター23の動きおよび/または行為をユーザーが制御したいことを示す何らかの既定のジェスチャーを行うことができる。この既定のジェスチャーは、例えば、画面上の所与のキャラクターを指し示すユーザーの動き(motion)と合体させた、例えば、任意のジェスチャーとすることができる。このようなキャラクター制御がストーリー・アプリケーション226によって許可される場合、ユーザーをそのキャラクターとしてステップ426において登録することができ、その後、ユーザーは、そのキャラクターを制御することができる。これについては、
図8のステップ540から558に関して以下で説明する。
【0085】
[00101] ユーザーがキャラクターを制御することを登録した後、ユーザーは、制御される画面上のキャラクターの行動を動画化しこれに作用するために用いられるある種の動き(motion)およびジェスチャーを行うことができる。ステップ540において、計算環境は、ユーザーが、既定され、認識されているジェスチャーを行ったか否か判断する。行った場合、計算環境はステップ544において、認識されたジェスチャーに対応する行為を行うことが、画面上のキャラクターに許されているか否かチェックする。具体的には、実施形態では、ユーザーは、画面上のキャラクターの行為または行動に対して完全に制御することはできず、代わりに画面上のキャラクターの制御をストーリー・アプリケーション226と共有する。実施形態では、ユーザーはキャラクターの動きをある程度制御することができるが、アプリケーションはこのような動きに境界を定義することができ、例えば、キャラクターの行動および性格に関する様相というような、画面上のキャラクターの他の様相の制御を制限することができる。ユーザーが画面上のキャラクターを自由奔放に(unfetter)制御すると、例えば、ユーザーが画面上のキャラクターに行わせたある種の行為が、あり得るストーリーの展開(branch)として予想されていなかった場合、ストーリー・アプリケーションが前に進むのを妨げることもあり得る(以下で説明する)。しかしながら、他の実施形態では、ユーザーには、画面上のキャラクターの自由奔放な制御を与えてもよいことは言うまでもない。
【0086】
[00102] ステップ542において、キャラクター23がジェスチャーの行為を行うことがストーリー・アプリケーションによって許された場合、このキャラクターは、ステップ544において、そのジェスチャーと関連付けられた行為を実行する。
図1Bは、画面上のキャラクター23の上半身を制御する能力がユーザーに与えられた例を示す。この特定的なストーリー・アプリケーションは、ユーザーが彼らの腕を上げるジェスチャーを認識することができ、これを、例えば、脅すように腕を上げる怪物のような、画面上のキャラクターに対応させる。
図8のステップ540においてこのようなユーザーのジェスチャーを認識すると、このキャラクターは、ステップ544において、対応する行為を行う。
【0087】
[00103] ステップ540において、認識されていないジェスチャが行われた場合、次に、計算環境はステップ546において、キャプチャー・デバイス20によってユーザーの動きが検出されたか否かチェックする。検出された場合、システムは550において、先に明示したように、画面上のキャラクターが、ユーザーが行ったように動くことを許可されているか否かチェックする。許可されている場合、ステップ552において、ユーザーの動きに合わせて、その通りに画面上のキャラクターを動画化する。計算環境がステップ540において既定のジェスチャーを検出しない場合、またはステップ546においてユーザーの動きを検出しない場合、計算環境は
図5のステップ428に戻り、以下で説明するようにユーザーの画面との他の対話処理を検出することができる。
【0088】
[00104] ステップ554において、本システムは、次に、ユーザーがキャラクターの制御を終了したいことを示す何らかの種類の既定ジェスチャーを、ユーザーが与えたか否かチェックする。ステップ554においてこのようなジェスチャーが検出された場合、ユーザーのキャラクター制御は終了し、ステップ556において、このキャラクターはストーリー・アプリケーション226によって完全に制御される。ステップ546において本システムがユーザーの動きを検出したが、ステップ550においてキャラクターがそのように動くことが許されていない場合、またはユーザーがステップ554においてキャラクター制御を終了する場合、本システムは
図5のステップ428に戻り、表示されている場面とユーザーとの他の対話処理を探すことができる。
【0089】
[00105] これより
図5に戻ると、ステップ428において、計算環境12は、表示されている場面とユーザーとの何らかの対話処理を探す。具体的には、ストーリーのサブプロットの成果に作用するユーザーの対話処理、またはストーリーの全体的な成果に作用するユーザーの対話処理を探す。このような対話処理が検出された場合、本システムは
図9のステップ560から588までを実行する。これは、418に関して先に説明した音声コマンド、ステップ422に関して先に説明した診査ジェスチャー、ステップ426に関して先に説明した画面上のキャラクターを制御するユーザー、またはストーリーとの他の何らかの対話処理の結果として、行われる可能性がある。
【0090】
[00106] ストーリーの中に表示される画像のタイプによって、対話処理性(interacativity)の度合いを部分的に判定することができる。CGアニメーションは、高度な対話処理性を提供することができるが、一方静止パネルおよび記録ビデオは提供できる対話処理性の度合いがそれよりも低いと考えられる。尚、CGアニメーションを切り離して静止パネルおよび/または記録ビデオにして、より高度な対話処理性を提供できることは言うまでもない。実施形態では、ユーザーには、ストーリーにおける別個の時点において画面上のストーリーと対話処理する機会を与えることができる。これらの時点は、ストーリーにおけるポーズまたは何らかのプロンプトによって、ユーザーに示すことができる。他の実施形態では、ユーザーは、アプリケーション226がストーリーを提示している間であれば、いずれの時点においてもストーリーと対話処理する選択肢を有することもできる。
【0091】
[00107] ステップ428において表示されている場面と対話処理が行われると、本システムは最初にステップ560を実行して、ユーザーが動き(motion)または認識されたジェスチャーを行ったか否か判断する。行った場合、計算環境12は次にステップ564において、その動き(motion)またはジェスチャーと関連付けられている行為が、異なるストーリー・ラインへの分岐を必要とするか否かチェックする。ユーザーの行為が異なるストーリー分岐への分岐を必要とするか否か判断し、次いでそのストーリー分岐からどのように処理を進めるか判断する種々の方法が知られている。一例では、ストーリー・アプリケーションがストーリー内にある全ての物体およびキャラクターについて状態データー値を維持することができる。場面またはキャラクターに関する何かが変化したとき、その場面またはキャラクターについての状態データーもそれに応じて変化する可能性がある。これらの状態データー値は、ストーリーの対象物(object)またはキャラクターをレンダリングするとき、そしてこれらの物体またはキャラクターに起こることを制御するときに用いることができる。
【0092】
[00108] 実施形態では、ストーリー・アプリケーションは、物体およびキャラクターについての状態データー値に応じて、種々の異なるストーリー・ラインに分岐することができるとよく、これらの物体および/またはキャラクターとのユーザー対話処理の結果、この状態データーを変化させることができる。更に他の実施形態では、ユーザーが、画面上の物体やキャラクターと対話処理せずこれらに作用もしないある種のジェスチャーを行う場合もあるが、そうであってもストーリー・ラインに変化が生ずることもある。一例として、ユーザーが、画面上に表示されている部屋に関して示されるまたは説明されるストーリーの重要な様相が明らかになる前に、ユーザーがその部屋から離れることを選択することがあり得る。
【0093】
[00109] ステップ564において、計算環境12は、ユーザーが行ったジェスチャーと関連付けられた行為が、異なるストーリー・ラインに分岐することを必要とするか否か判断する。注記したように、これは、ストーリーの物体またはキャラクターについての状態データー値をユーザーが変更したことによって生じる可能性がある。具体的には、状態値が変化したので、ステップ560におけるユーザーのジェスチャー以前に存在していたのと同様にストーリーが継続すると、物体、キャラクター、またはストーリー全体と関連のある現在の状態データー値と矛盾することになる。ユーザーのジェスチャーが異なるストーリー・ラインに分岐することを必要とする場合、計算環境12はステップ568において、ユーザーの対話処理と結び付くストーリーの既知の分岐があるか否かチェックする。
【0094】
[00110] ステップ560において、ユーザーが動き(motion)も認識されたジェスチャーも行わない場合、またはユーザーの動き(motion)/認識されたジェスチャーがステップ564において異なるストーリー・ラインへの分岐を必要としない場合、本システムは
図5に戻って、以下で説明するように、ステップ432において他のいずれかのタイプの動きまたはジェスチャーを探すことができる。更に、ユーザーが、異なるストーリー・ラインへの分岐を必要とする行為を実行したが、ストーリー・アプリケーション226が、ユーザーの対話処理と結び付く分岐を知らないまたは識別できない場合、ステップ568において、ユーザーのジェスチャーのストーリー・ラインに対する効果を無視することができ、フローは、以下に説明するような、
図5のステップ432に戻ることができる。
【0095】
[00111] ユーザーのジェスチャーが新たな分岐ストーリー・ラインに分岐することを必要とし、このストーリー・ラインをストーリー・アプリケーションによって実行することができると仮定すると、ストーリー・アプリケーションは、ユーザーがどの動き(motion)またはジェスチャーを行ったかに応じて、物体、キャラクター、およびアプリケーション全体と関連のある状態データーを変更することができる。
図11および
図12を参照すると、一部のユーザー対話処理はストーリー分岐に作用するが、ストーリーのサブプロットを変化させるだけで、全体的な成果には作用しない。
図11において見られるように、ユーザーは何らかの対話処理620を実行して、ストーリー・アプリケーションを分岐1、分岐2、...、分岐Nに分岐させることができ、その後全ての分岐は再度収束して、元のストーリー・ラインを継続する。多種多様なこのようなサブプロット・ストーリー分岐が考えられる。例えば、
図1Aでは、ユーザーはジェスチャーを行って、家21に雨が降っている地点まで、雲25全体を動かすことができる。雨は、全体的なプロットには影響を及ぼさなくてもよい。短い間だけ雨が降ってもよく、雨が止んでもよく、ストーリー・ラインは、雨が降らなかった場合と同じように継続するのでもよい。更に他の実施形態では、アプリケーション・ストーリーがユーザーに質問に答えるようにまたはパズルを解くように促し、ストーリー・ラインが、催促に対するユーザーの回答に応じて、異なるサブプロットに分岐することもできる。一旦ユーザーが首尾良く質問に答えるかパズルを解いたなら、ストーリーは再度収束し、元のストーリー・ラインを継続することができる。
【0096】
[00112] 一方、他のタイプのユーザー対話処理では、ストーリー分岐に作用して、ストーリーの全体的成果を変化させることもある。言い換えると、ストーリーは、ユーザーのストーリーとの対話処理に応じて、異なる終わり方をする。例えば、
図11では、ユーザーは対話処理624を実行し、これが、再度収束しないN通りの分岐の内1つへのストーリー分岐を生じさせる。更に、これらの分岐はいずれもが、次のユーザー対話処理のときに、それ自体分岐することができる。例えば、ユーザーの対話処理624がストーリーを分岐番号1に分岐させた場合、ユーザーは他の対話処理628を実行して、ストーリーを更に可能な成果に分岐させることができる。ストーリーは、ストーリー・アプリケーションが多くのサブプロットおよび全体的なプロット分岐を扱うように書かれているか否かに応じて、いずれの数のサブプロット分岐でも、または全体的なプロット分岐でも有することができる。
【0097】
[00113] 実施形態では、1人のユーザーが対話処理を行って、ストーリー・アプリケーションにサブプロット分岐または全体的プロット分岐を実行させるのでもよい。更に他の実施形態では、多数のユーザーが1つのストーリーを見ている場合もある。これら多数のユーザーは、同じ場所にいることも、異なるシステム10を用いて、異なる場所にいることもあり得る。システム10は、種々のユーザーがアプリケーション226の同じインスタンスおよび同じストーリー体験を共有できるように、互いにネットワークで接続されている。このような実施形態では、ストーリー・アプリケーション226は、ストーリー・ラインが新たなサブプロットまたは新たな全体的なプロットに分岐する前に、数人のユーザーが協調して行動する行為を必要とするのであってもよい。
【0098】
[00114] これより
図9に戻ると、計算環境12は、ステップ564において、ストーリー・ラインの分岐を必要とするユーザーの動きまたはジェスチャーを特定し、ストーリー・アプリケーションがその新たなストーリー・ラインを扱うように装備されている場合、ストーリー・アプリケーション226は、ステップ570において、新たなストーリー・ラインに分岐する。ステップ572において、ストーリー・アプリケーションは、いずれかの物体、キャラクター、またはアプリケーション全体に対して状態データーを修正する。ストーリー・アプリケーション226は、ステップ574において、新たなストーリー・ラインおよび状態データーにしたがって、場面のグラフィクスをレンダリングすることができ、このストーリー・アプリケーションは、ステップ578において、この特定された分岐に進むことができる。
【0099】
[00115] 本システムの一態様は、ゲームの仕組み(mechanics)を、ユーザーに示すストーリーに追加することである。したがって、ストーリーを示すことに加えて、ストーリー・アプリケーション226は、更に、ユーザーのスコアを記録することができ、ユーザーがどのようにストーリーと対話処理するかに応じて、スコアを加点または減点することができる。具体的には、ユーザーによるある種のジェスチャーまたは行為は、所定のストーリー値および関連するポイント数を有することができ、関連付けられたジェスチャーが行われたときに、ユーザーの総合スコアに加算されるか、またはユーザーの総合スコアから減算される。したがって、ステップ582において、ストーリー・アプリケーションは、ステップ560において実行されたユーザーの対話処理に伴うスコアがあったか否かチェックする。ない場合、フローは
図5のステップ432に戻る。ユーザーの対話処理にスコアが伴う場合、ステップ588において、それに応じてユーザーのスコアを調節し、次いでフローは、以下で説明するように、
図5のステップ432に戻ることができる。
【0100】
[00116]
図9の実施形態は、静止画像パネルまたは動的なCG画像アニメーションを用いるストーリーにおいて用いることができる。
図9Aは、記録ビデオと共に用いるための別の実施形態を示す。ステップ560から572までは、
図9について先に説明した通りであればよい。実施形態では、記録ビデオとの対話処理が、ビデオとの対話処理の既定の時点において行われる。記録ビデオ・ストーリーでは、ストーリー・アプリケーションはストーリーの可能な分岐毎に、異なるビデオ・クリップを有することができる。ステップ590において、ストーリー・アプリケーションは、決定されたストーリーの分岐に適したメディア・クリップを引き出すことができる。ステップ594において、計算環境12はそのクリップをレンダリングすることができる。異なる分岐毎に予め記録されているビデオの代わりにまたはそれに加えて、計算環境によってCGアニメーションを製作し挿入することもできる。
【0101】
[00117] ユーザーにストーリー分岐からの画像を示した後、次に、ストーリーが新しいラインに分岐しなかった場合、ステップ596において、ストーリー・アプリケーション226は戻って、ストーリーに対するメディア・クリップを示すことができる。例えば、ストーリーは犯罪ドラマに関し、探偵が容疑者に尋問しようとしているところであるとする。ユーザーは、彼らがストーリー・アプリケーションと対話処理して容疑者に尋問したいことを示す既定のジェスチャーを行うことができる。ユーザーは、質問することができ、異なる方法でそして異なる態度で尋問を行うことができる。これらの行為は、ユーザーが質問を選択することができるスクリプトによって、範囲を限定することができる。あるいは、ユーザーが訊きたい質問であればいずれでもよい。
【0102】
[00118] また、ユーザーは異なった態度で、幾分か尋問されている容疑者キャラクターを操作しているような態度で、質問することもできる。ユーザーは、容疑者に対して威張り散らそうとすることもでき、またはユーザーは、気持ちの良い態度で接する(proceed with)ことによって、情報を聞き出そうとすることもできる。キャプチャー・デバイス20は、これらの異なる癖を検出することができ、ある種の行為(act)が、定義され格納されている癖データーと一致する場合、計算環境12によってこれらの異なる癖を特定することができる。一旦ユーザーが尋問を完了したなら、尋問を行う探偵のビデオ・クリップを再生することができる。ユーザーは、探偵のキャラクターが再生された場面において得たものと比較して、彼または彼女が容疑者から得ることができた情報量に関して、探偵のキャラクターよりも上手にまたは下手にできたことを確かめることができる。
【0103】
[00119] ステップ600において、ストーリー・ラインは、特定された分岐に進む。これは元のストーリー・ラインを再開することもでき、または全体的なプロットに対して新たな成果が得られてもよい。ステップ604において、ユーザーの対話処理を採点することができる。例えば、前述の例では、ユーザーが探偵のキャラクターよりも多くの情報を拾い集めることができた場合、ユーザーには既定数のポイントを授けることができる。あるいは、ユーザーが拾い集めた情報の方が少ない場合、所定数のポイントを失うのでもよい。このようにして、ユーザーのスコアを調節することができ、フローは、以下で説明するような、
図5のステップ432に戻ることができる。
【0104】
[00120]
図5に戻って、ユーザーのジェスチャーが、ステップ422において診査ジェスチャーではなく、ステップ426においてキャラクターを制御する目的のものではなく、ステップ428においてストーリー・ラインを変化させるように表示されている場面と対話処理するのでもないということが起こる場合もある。これに応じて、計算環境12は、ステップ432において、他のこのようなジェスチャーの有無をチェックする。ステップ432において他にこのようなジェスチャーが認識されない場合、ストーリー・アプリケーションはステップ406に戻って、ストーリーの次のフレームを提示し、以上で説明したステップを繰り返す。一方、ステップ432において何らかの他のジェスチャーが認識された場合、本システムは、ステップ434において、そのジェスチャーがストーリーを終了させるためのものであるか否かチェックする。そうである場合、ステップ436において、ストーリーが終了する。そうでない場合、ステップ438において、本システムは、ステップ432において認識されたジェスチャーと関連付けられているいずれかの行為を実行し、次いで、フローはステップ406に戻り、ストーリーの次のフレームを提示する。
【0105】
[00121] 先に注記したように、ストーリーを受け取ったときにユーザーが何の行為も起こさない場合、ストーリーは、デフォルトの1組の画像および/または挿話または対話にしたがって線形に進むことができる。他の実施形態では、ユーザーが何の行為も起こさなくても、リニア・ストーリーにおけるエレメントが、種々の予め設定されている係数に基づいて、ストーリーのインスタンスに関して動的に変化することができる。これらの係数には、ストーリーが視聴された回数(例えば、4回目に何か新しいことが起こる)、聴衆の中にいる人数、および天候および時刻(time of day)(例えば、ストーリーにおける天候が季節と共に変化するか、または実世界の天気に繋がれている)が含まれる。天候または時刻は、システム10には分かっているか、またはシステム10がネットワーク接続されているサービスの中に格納されていてもよい。また、他のストーリーにおけるイベントも、影響を及ぼす可能性があり、ストーリーBにおけるキャラクターに導入されると、これらをストーリーAに出現させる。これらの特徴は、先に説明した本システムの他の特徴と共に、ストーリーを一層動的にし、繰り返し視聴および体験(experimentation)をする気にさせる。
【0106】
[00122] 以上で説明した対話処理の多くは、既定のジェスチャーによって誘起される。
図13は、ジェスチャー認識エンジン190のブロック図を示し、
図14は、
図13のジェスチャー認識エンジンの動作のブロック図を示す。ジェスチャー認識エンジン190は、ステップ660において、姿勢情報650を受け取る。この姿勢情報は、画像データーにおいて検出されたユーザーの身体部分や関節の位置および/または動き(motion)に関する種々のパラメータを含むことができる。
【0107】
[00123] ステップ664において、ジェスチャー認識エンジン190は、受け取った姿勢情報650を分析して、この姿勢情報が、ジェスチャー・ライブラリー654内に格納されている既定の規則658のいずれかと一致するか否か確認する。格納されている規則658は、姿勢情報650によって示される特定の位置および/または力学的運動(kinetic motions)を、既定のジェスチャーとして解釈すべきときを記述する。実施形態では、各ジェスチャーは、異なる一意の規則、または1組の規則658を有することができる。各規則は、
図4に示した身体部分の1つ以上について、多数のパラメータ(関節位置ベクトル、最上位/最下位位置、位置変化等)を有することができる。格納されている規則は、パラメータ毎に、そして
図3に示した身体部分302から330毎に、1つの値、値の範囲、最大値、最小値を定義することができ、またはその身体部分に対するパラメータが、規則によって扱われる(cover)ジェスチャーの判定に関連がないことの指示を定義することができる。規則は、ゲーム著者、ゲーミング・プラットフォームのホスト、またはユーザー自身によって作成することができる。
【0108】
[00124] ジェスチャー認識エンジン190は、特定したジェスチャーおよび信頼性レベルの双方を出力することができる。信頼性レベルは、ユーザーの位置/動きがそのジェスチャーに対応する尤度に対応する。具体的には、ジェスチャーに必要なパラメータを定義することに加えて、規則は、更に、姿勢情報650がジェスチャーとして解釈される前に要求される閾値信頼性レベルも含むことができる。ジェスチャーの中には、システム・コマンドまたはゲーミング命令として一層強い影響力を持つものもあり、したがって、姿勢がそのジェスチャーであると解釈される前に、一層高い信頼性レベルを要求することもある。姿勢情報を、規則に対して格納されているパラメータと比較することによって、その姿勢情報がジェスチャーを示すか否かに関する累計信頼性レベル(cumulative confidence level)が得られる。
【0109】
[00125] 一旦所与の姿勢または動き(motion)が所与のジェスチャー規則を満たすか否かについて信頼性レベルが決定されたなら、ジェスチャー認識エンジン190は次にステップ668において、信頼性レベルが、考慮対象の規則に対する所定の閾値よりも高いか否か判定を行う。この閾値信頼性レベルは、考慮対象の規則と関連付けて格納することができる。信頼性レベルが閾値よりも低い場合、ジェスチャーは検出されず(ステップ670)、何の行為も行われない。一方、信頼性レベルが閾値よりも高い場合、ユーザーの動き(motion)は、考慮対象のジェスチャーを満たすと判断され、ジェスチャー認識エンジン190は、ステップ674において、特定したジェスチャーを戻す。他の実施形態では、ジェスチャー認識エンジン190は、他の方法で動作することもできる。
【0110】
[00126] 以上の本発明のシステムについての詳細な説明は、例示および説明の目的で提示した。これは、網羅的であることも、開示された技術を開示された形態そのものに限定することを意図するのではない。多くの変更や変形が、以上の教示に照らして、可能である。記載した実施形態は、本技術の原理およびその実用的な用途を最良に説明し、それによって当業者が本技術を種々の実施形態において、そして個々の考えられる使用に適するような種々の変更と共に、最良に利用することを可能にするために選択されたのである。本発明のシステムの範囲は、本明細書に添付されている特許請求の範囲によって定義されることを意図している。