以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.画像生成システム
図1に本実施形態の画像生成システム(画像生成装置、ゲームシステム、ゲーム装置)の構成例を示す。画像生成システムは、処理部100、操作部160、センサ162、記憶部170、表示部190、音出力部192、I/F部194、通信部196、印刷部198を含む。なお本実施形態の画像生成システムの構成は図1に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
処理部100は、操作部160からの操作情報や、センサ162からのセンサ情報や、プログラムなどに基づいて、入力処理、演算処理、出力処理などの各種の処理を行う。
処理部100の各部が行う本実施形態の各処理(各機能)はプロセッサ(ハードウェアを含むプロセッサ)により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリーにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。プロセッサは、例えばCPU(Central Processing Unit)であってもよい。但し、プロセッサはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Processing Unit)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路であってもよい。メモリー(記憶部170)は、SRAM、DRAM等の半導体メモリーであってもよいし、レジスターであってもよい。或いはハードディスク装置(HDD)等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリーはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部100の各部の処理(機能)が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
処理部100は、入力処理部102、演算処理部110、出力処理部140を含む。入力処理部102は、各種の情報の入力処理を行う。例えば入力処理部102は、操作部160により入力されたプレーヤの操作情報を受け付ける処理を、入力処理として行う。例えば操作部160で検出された操作情報を取得する処理を行う。また入力処理部102は、センサ162からのセンサ情報を取得する処理を、入力処理として行う。また入力処理部102は、記憶部170から情報を読み出す処理を、入力処理として行う。例えば読み出しコマンドで指定された情報を、記憶部170から読み出す処理を行う。また入力処理部102は、通信部196を介して情報を受信する処理を、入力処理として行う。例えば画像生成システムの外部装置(他の画像生成システム、サーバシステム等)からネットワークを介して情報を受信する処理を行う。受信処理は、通信部196に情報の受信を指示したり、通信部196が受信した情報を取得して記憶部170に書き込む処理などである。
演算処理部110は、各種の演算処理を行う。例えば演算処理部110は、ゲーム処理、オブジェクト空間設定処理、キャラクタ処理、ゲーム成績演算処理、仮想カメラ制御処理、画像生成処理、或いは音生成処理などの演算処理を行う。この演算処理部110は、ゲーム処理部111、オブジェクト空間設定部112、キャラクタ処理部113、被写体情報取得部114、ゲーム成績演算部118、仮想カメラ制御部119、画像生成部120、音生成部130、印刷処理部132を含む。
ゲーム処理は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などである。このゲーム処理はゲーム処理部111(ゲーム処理のプログラムモジュール)により実行される。
オブジェクト空間設定処理は、オブジェクト空間に複数のオブジェクトを配置設定する処理である。このオブジェクト空間設定処理はオブジェクト空間設定部112(オブジェクト空間設定処理のプログラムモジュール)により実行される。例えばオブジェクト空間設定部112は、ゲームに登場するキャラクタ(人、ロボット、動物、怪物、飛行機、船舶、戦闘機、戦車、戦艦、車等)、マップ(地形)、建物、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)を、オブジェクト空間に配置設定する。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクト情報記憶部172には、オブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部112は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
キャラクタ処理(移動体演算処理)は、キャラクタ(移動体)について行われる各種の演算処理である。例えばキャラクタ処理は、キャラクタ(ゲームに登場する表示物)をオブジェクト空間(仮想3次元空間、3次元ゲーム空間)で移動させるための処理や、キャラクタを動作させるための処理である。このキャラクタ処理はキャラクタ処理部113(キャラクタ処理のプログラムモジュール)により実行される。例えばキャラクタ処理部113は、操作部160によりプレーヤが入力した操作情報や、センサ162からのセンサ情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、キャラクタ(モデルオブジェクト)をオブジェクト空間内で移動させたり、キャラクタを動作(モーション、アニメーション)させる制御処理を行う。具体的には、キャラクタの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、キャラクタの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
ゲーム成績演算処理は、プレーヤのゲームでの成績を演算する処理である。例えばゲーム成績演算処理は、プレーヤがゲームで獲得するポイントや得点を演算する処理や、ゲーム内通貨、メダル又はチケットなどのゲーム成果を演算する処理である。このゲーム成績演算処理はゲーム成績演算部118(ゲーム成績演算処理のプログラムモジュール)により実行される。
仮想カメラ制御処理は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)を制御する処理である。この仮想カメラ制御処理は仮想カメラ制御部119(仮想カメラ制御処理のプログラムモジュール)により実行される。具体的には仮想カメラ制御部119は、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
画像生成処理は、表示部190に表示される画像(ゲーム画像)や、印刷部198により印刷される画像を生成するための処理であり、各種の画像合成処理や画像エフェクト処理などを含むことができる。音生成処理は、音出力部192により出力されるBGM、効果音又は音声等の音(ゲーム音)を生成するための処理であり、各種の音合成処理やサウンドエフェクト処理などを含むことができる。これらの画像生成処理、音生成処理は、画像生成部120、音生成部130(画像生成処理、音生成処理のプログラムモジュール)により実行される。
例えば画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において所与の視点(仮想カメラ)から見える画像が生成される。なお、画像生成部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現してもよい。
出力処理部140は、各種の情報の出力処理を行う。例えば出力処理部140は、記憶部170に情報を書き込む処理を、出力処理として行う。例えば、書き込みコマンドで指定された情報を、記憶部170に書き込む処理を行う。また出力処理部140は、生成された画像の情報を表示部190に出力したり、生成された音の情報を音出力部192に出力する処理を、出力処理として行う。また出力処理部140は、通信部196を介して情報を送信する処理を、出力処理として行う。例えば画像生成システムの外部装置(他の画像生成システム、サーバシステム等)に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部196に情報の送信を指示したり、送信する情報を通信部196に指示する処理などである。また出力処理部140は、印刷媒体に印刷される画像を印刷部198に転送する処理を、出力処理として行う。
操作部160(操作デバイス)は、プレーヤ(ユーザ)が操作情報を入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ(角速度センサ、加速度センサ等)、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
センサ162は、被写体情報を取得するためのセンサ情報を検出する。センサ162は例えばカラーセンサ164(カラーカメラ)、デプスセンサ166(デプスカメラ)を含むことができる。
記憶部170(メモリー)は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMやSSDやHDDなどにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。記憶部170は、オブジェクト情報記憶部172、描画バッファ178を含む。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。この情報記憶媒体180に、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶できる。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、LCD、有機ELディスプレイ、CRT、或いはHMDなどにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
I/F(インターフェース)部194は、携帯型情報記憶媒体195とのインターフェース処理を行うものであり、その機能はI/F処理用のASICなどにより実現できる。携帯型情報記憶媒体195は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体195は、ICカード(メモリーカード)、USBメモリー、或いは磁気カードなどにより実現できる。
通信部196は、ネットワークを介して外部装置(他の画像生成システム、サーバシステム等)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
印刷部198は、例えばプリント用紙やシール紙などの印刷媒体に画像を印刷する。この印刷部198は、例えば印刷用ヘッド、印刷媒体の送り機構などにより実現できる。具体的には、処理部100の印刷処理部132(印刷処理のプログラムモジュール)が、印刷対象画像を選択するための処理を行い、選択された印刷対象画像の印刷を、印刷部198に指示する。これにより、印刷対象画像が印刷された印刷物が、後述する図2の払い出し口152から払い出されるようになる。印刷対象画像は、例えばゲーム中のプレーヤのキャラクタの様子を撮影した画像や、プレーヤのキャラクタと他のキャラクタとで一緒に撮る記念写真の画像などである。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバシステム(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170)に配信してもよい。このようなサーバシステムによる情報記憶媒体の使用も本発明の範囲内に含めることができる。
図2、図3(A)、図3(B)は本実施形態の画像生成システムが適用されるハードウェア装置の例を示す図である。
図2は本実施形態の画像生成システムが適用された業務用ゲーム装置の例である。この業務用ゲーム装置は、操作ボタン、方向指示ボタンにより実現される操作部160や、カラーセンサ164、デプスセンサ166を有するセンサ162や、LCD、CRTなどにより実現される表示部190や、スピーカにより実現される音出力部192や、コイン投入口150や、写真などの印刷物の払い出し口152を備えている。プレーヤPLは、表示部190に表示されるゲーム画像を見ながら、ゲームをプレイするための各種の動作を行う。プレーヤPLの動き(手足のなどの部位の動きや位置の移動)は、センサ162により検出される。そして検出結果に応じたゲーム処理が行われ、ゲーム処理に基づくゲーム画像が表示部190に表示される。
本実施形態の画像生成システムが適用されるハードウェア装置は、図2のような業務用ゲーム装置には限定されず、例えば図3(A)に示す家庭用ゲーム装置や、図3(B)に示すパーソナルコンピュータ(情報処理装置)などの種々のハードウェア装置に適用可能である。図3(A)では、カラーセンサ164やデプスセンサ166を有するセンサ162(センサ装置)を家庭用ゲーム装置の本体装置に接続し、当該センサ162を、例えば表示部であるテレビの近くに配置する。そしてセンサ162によりプレーヤの動作を検出することで、家庭用ゲーム装置の本体装置が、種々のゲーム処理を実行し、テレビの画面にゲーム画像を表示する。図3(B)では、センサ162をパーソナルコンピュータの本体装置に接続し、センサ162によりプレーヤの動作を検出し、ゲーム処理の結果に基づくゲーム画像を、表示部である液晶ディスプレイに表示する。
そして本実施形態の画像生成システム(画像生成装置、ゲーム装置、ゲームシステム)は、図1に示すように、キャラクタ処理部113と被写体情報取得部114と画像生成部120を含む。被写体情報取得部114は、センサ162からのセンサ情報に基づいて、被写体の被写体情報を取得する。例えば被写体のスケルトン情報(広義には動き情報)を取得する。このスケルトン情報(被写体情報)に基づいて、被写体の動きが特定される。被写体は例えば図2に示すプレーヤPLである。被写体は人間以外の動物などであってもよい。キャラクタ処理部113は、被写体に対応するキャラクタを動作させる処理を行う。例えば被写体情報であるスケルトン情報に基づいてキャラクタを動作させる処理を行い、画像生成部120が当該キャラクタの画像を生成する。例えばスケルトン情報に基づくモーション再生によりキャラクタを動作させる。
そしてキャラクタ処理部113は、被写体情報からキャラクタの基準点の位置を求める。例えば被写体情報であるスケルトン情報から基準点の位置を求める。そして基準点の位置に基づいて、キャラクタの配置基準点を求める。画像生成部120は、配置基準点に応じた位置にキャラクタが配置されて表示される画像を生成する。
基準点の位置は、キャラクタ(スケルトン)の基準となる位置であり、例えば中心に近い位置である。具体的には、基準点の位置は、例えば腰などの基準部位の位置である。スケルトン情報は、例えばこの基準点の位置の情報(座標)を、例えば関節情報として有している。配置基準点は、キャラクタの配置の際の基準となる点として用いられる位置(座標)である。キャラクタは、この配置基準点に応じた位置(配置基準点を用いて特定される位置)に配置されて、その画像が生成され、表示部190に表示される。
被写体情報取得部114は、センサ162からのセンサ情報に基づいて、被写体の移動エリアの面の情報を取得する。例えば、被写体がゲーム中に移動可能な移動エリアの面の情報を取得する。面の情報は、例えば面(平面)の方程式の情報であり、面の方程式の係数等の情報である。
そして、キャラクタ処理部113は、取得された面の情報と、キャラクタの基準点の位置に基づいて、キャラクタの配置基準点を求める。例えば基準点の位置の情報と面の方程式に基づいて、配置基準点を求める。具体的には、基準点の位置から下ろした垂線が面に交わる点を、配置基準点として求める。即ち、当該垂線と面の交点の座標を、配置基準点の座標として求める。
例えばキャラクタ処理部113は、キャラクタの基準点の位置として腰の位置を取得し、腰の位置に基づいて、キャラクタの配置基準点を求める。例えば、スケルトン情報から、キャラクタに対応するスケルトンの腰の関節の情報を、腰の位置の情報として取得する。そして、例えば腰の位置から下ろした垂線が、上述した面に交わる点を、配置基準点として求める。このようにして求められた配置基準点は、例えばキャラクタの足元の位置(立ち位置)に対応する点となる。
例えば画像生成部120は、センサ162からの被写体の距離が変化した場合にも、配置基準点が表示部190の画面下部の位置(画面の下辺から所定距離の位置)になるようにキャラクタが表示される画像を生成する。センサ162からの被写体の距離は、センサ162の位置を基準とした被写体の相対的な距離であり、これはデプスセンサ166により取得される深度情報(深度値)に対応するものである。当該距離が変化した場合にも、キャラクタの配置基準点が、表示部190の画面下部の位置に設定(固定)されるように、キャラクタが表示部190の画面に表示される。
例えばキャラクタは、複数のオブジェクトで構成され、オブジェクト空間内に配置されるモデルオブジェクトである。例えば複数の3次元のオブジェクト(パーツオブジェクト)により構成される3次元のモデルオブジェクトである。各オブジェクトは例えば複数のポリゴン(広義にはプリミティブ面)により構成される。
この場合にキャラクタ処理部113は、センサ162からの被写体の距離が長くなるにつれて、オブジェクト空間内でのモデルオブジェクトの位置を下降させる処理を行う。例えばオブジェクト空間での水平面を、X軸、Z軸で規定されるXZ平面とし、高さ方向をY軸とした場合に、センサ162からの被写体の距離が長くなるにつれて(センサ162から被写体が離れるにつれて)、モデルオブジェクトを、オブジェクト空間のY軸方向で下降させる処理を行う。こうすることで、例えば、当該距離が変化した場合にも、キャラクタの配置基準点が、例えば表示部190の画面下部の位置になるようなキャラクタの表示が可能になる。
この場合に、キャラクタ処理部113は、センサ162からのセンサ情報に基づいて、センサ162からの被写体の距離を求める。具体的には、被写体情報取得部114は、センサ情報に基づいて、センサ162から見た被写体の深度情報を取得する。例えばデプスセンサ166からのセンサ情報に基づいて深度情報を取得する。そしてキャラクタ処理部113は、取得された深度情報に基づいて、センサ162からの被写体の距離を求める。例えば深度情報の深度値を、当該距離として用いる。なお、センサ162からの被写体の距離を求める手法は、深度情報を用いる手法には限定されない。例えばセンサ162として、デプスセンサ166とは異なる測距センサを設け、この測距センサからのセンサ情報に基づいて、センサ162からの被写体の距離を求めてもよい。
また画像生成部120は、背景画像を構成するオブジェクト又は第2のキャラクタの位置、形状、サイズ及び動きの少なくとも1つと、配置基準点とに基づいて設定される位置に、キャラクタが配置されて表示される画像を生成する。
例えば背景画像が1又は複数のオブジェクトで構成される場合に、このオブジェクトの位置、形状、サイズ又は動きと、キャラクタの配置基準点とに基づいて設定される位置に、キャラクタを配置してその画像を生成する。例えばオブジェクトの位置とキャラクタの配置基準点が所定の位置関係になるように、キャラクタを配置する。或いはオブジェクトの形状に合わせた位置に配置基準点が設定されるように、キャラクタを配置する。或いはオブジェクトのサイズ(サイズの変化)や、オブジェクトの動きに応じて、配置基準点の位置が変化するように、キャラクタを配置する。
また画面上に、スケルトン情報に基づき動作するキャラクタと共に、第2のキャラクタが表示される場合を想定する。この場合には、第2のキャラクタの位置、形状、サイズ又は動きと、キャラクタの配置基準点とに基づいて設定される位置に、キャラクタを配置してその画像を生成する。例えば第2のキャラクタの位置とキャラクタの配置基準点が所定の位置関係になるように、キャラクタを配置する。或いは第2のキャラクタの形状に合わせた位置に配置基準点が設定されるように、キャラクタを配置する。或いは第2のキャラクタのサイズ(サイズの変化)や、第2のキャラクタの動きに応じて、配置基準点の位置が変化するように、キャラクタを配置する。
またキャラクタ処理部113は、過去の配置基準点の位置を用いて、現在の配置基準点の位置を決定する。例えば過去の配置基準点の位置(座標)を用いたフィルター処理(平均化処理)などにより、配置基準点の位置(座標)を決定する。これにより、配置基準点の位置が細かく変動したり、突発的に急激に変動するのを抑制できる。
また画像生成部120は、被写体の撮像画像に含まれる被写体の所定部位の部位画像と、キャラクタの画像の合成処理を行って、合成画像を生成する。撮像画像は、例えばセンサ162が有するカラーセンサ164(カラーカメラ)により撮影される画像(RGB画像等のカラー画像)である。このカラーセンサ164とデプスセンサ166は別々に設けられていてもよい。例えばカラーセンサ164によって撮影された撮像画像から、被写体の所定部位の部位画像(例えば顔画像)が切り出され、切り出された部位画像が、キャラクタの画像に合成された合成画像が生成される。例えばキャラクタの所定部位に対応する部分に対して、被写体の部位画像が合成される。例えば、被写体の全体が映る撮像画像から、顔の部分を切り取ることで、所定部位である顔の部位画像である顔画像が取得される。撮像画像での顔の位置は、被写体情報取得部114により取得されたスケルトン情報(被写体情報)に基づき特定できる。
なお画像生成部120は、オブジェクト空間において、被写体(プレーヤ等)の位置に対応する位置に配置されるモデルオブジェクトのレンダリング処理を行って、キャラクタの画像を生成する。例えば被写体情報取得部114により取得されたスケルトン情報(被写体情報)に基づいて、被写体の位置を特定し、オブジェクト空間内において、特定された被写体の位置に対応する位置に、キャラクタであるモデルオブジェクトが配置される。そして、当該モデルオブジェクトのレンダリング処理が行われて、仮想カメラから見えるキャラクタの画像が生成される。この場合に画像生成部120は、モデルオブジェクトのレンダリング処理を、照明モデルに基づいて行って、キャラクタの画像を生成する。このようにすれば、キャラクタの画像として、照明モデルの光源による陰影づけが施された画像を生成できるようになる。
2.本実施形態の手法
次に本実施形態の手法について詳細に説明する。なお以下では、プレーヤの動きに応じてキャラクタを動作させるゲームに本実施形態の手法を適用した場合について説明するが、本実施形態の手法はこれに限定されず、様々なゲーム(RPGゲーム、音楽ゲーム、戦闘ゲーム、コミュニケーションゲーム、ロボットゲーム、カードゲーム、スポーツゲーム、或いはアクションゲーム等)に適用可能である。
2.1 ゲームの説明
まず本実施形態の画像生成システムにより実現されるゲームの例について説明する。本実施形態では図2のセンサ162によりプレーヤPL(広義には被写体)の動きを検出し、検出された動きを反映させたゲーム処理を行って、ゲーム画像を生成している。
図2に示すように、センサ162(画像センサ)は、例えばその撮像方向(光軸方向)がプレーヤPL(ユーザ、操作者)の方に向くように設置されている。例えばセンサ162の撮像方向は、小さな子供についてもその全体を撮像できるように、水平面に対して俯角方向に設定されている。なお図2ではセンサ162は表示部190の横に設置されているが、設置位置はこれに限定されず、任意の位置(例えば表示部190の下部、上部等)に設置できる。
センサ162はカラーセンサ164とデプスセンサ166を含む。カラーセンサ164はカラー画像(RGB画像)を撮像するものであり、CMOSセンサやCCDなどにより実現できる。デプスセンサ166では、赤外線等の光を投射し、その投射光の反射強度や、投射光が戻ってくるまでの時間を検出することで、深度情報(デプス情報)が取得される。例えばデプスセンサ166は、赤外線を投光する赤外プロジェクタと、赤外線カメラにより構成できる。そして例えばTOF(Time Of Flight)方式により深度情報を取得する。深度情報は、その各画素位置に深度値(奥行き値)が設定され情報である。深度情報では、プレーヤやその周りの風景の深度値(奥行き値)が、例えばグレースケール値として設定される。
なお、センサ162は、カラーセンサ164とデプスセンサ166とが別々に設けられたセンサであってもよいし、カラーセンサ164とデプスセンサ166とが複合的に組み合わせられたセンサであってもよい。またデプスセンサ166はTOF方式以外の方式(例えばライトコーディング)のセンサであってもよい。また深度情報の取得手法としては種々の変形実施が可能であり、例えば超音波などを用いた測距センサなどにより深度情報を取得してもよい。
図4(A)、図4(B)は、各々、センサ162に基づき取得される深度情報、ボディーインデックス情報の例である。図4(A)は深度情報を概念的に示すものであり、この深度情報は、センサ162から見たプレーヤ等の被写体の距離を表す情報である。図4(B)のボディーインデックス情報は、人物領域を表す情報である。このボディーインデックス情報によりプレーヤのボディーの位置や形状を特定できる。
図5は、センサ162からのセンサ情報に基づき取得されるスケルトン情報の例である。図5ではスケルトン情報として、スケルトンを構成する骨の位置情報(3次元座標)が、関節(部位)C0〜C20の位置情報として取得されている。C0、C1、C2、C3、C4、C5、C6は、各々、腰、背骨、肩中央、右肩、左肩、首、頭に対応する。C7、C8、C9、C10、C11、C12は、各々、右肘、右手首、右手、左肘、左手首、左手に対応する。C13、C14、C15、C16、C17、C18、C19、C20は、各々、右腰、左腰、右膝、右かかと、右足、左膝、左かかと、左足に相当する。スケルトンを構成する各骨は、センサ162に映るプレーヤの各部位に対応するものとなる。例えば被写体情報取得部114は、センサ162からのセンサ情報(カラー画像情報、深度情報)に基づいて、プレーヤの3次元形状を特定する。そして3次元形状の情報や画像の動きベクトル(オプティカルフロー)などを用いて、プレーヤの各部位を推定し、各部位の関節の位置を推定する。そして推定された関節位置に対応する、深度情報での画素位置の2次元座標と、当該画素位置に設定された深度値に基づいて、スケルトンの関節の位置の3次元座標情報を求め、図5に示すようなスケルトン情報を取得する。取得されたスケルトン情報を用いることで、プレーヤの動き(手足などの部位の動きや位置の移動)を特定できるようになる。これにより、プレーヤの動きに応じてキャラクタを動作させることが可能になる。例えば図2においてプレーヤPLが手足を動かした場合に、これに連動して、表示部190に表示されるキャラクタ(プレーヤキャラクタ)の手足を動かすことが可能になる。またプレーヤPLが前後左右に移動すると、これに連動して、オブジェクト空間内でキャラクタを前後左右に移動させることが可能になる。
また本実施形態では、センサ162のカラーセンサ164によりプレーヤPLを撮影することで得られた撮像画像と、キャラクタ(プレーヤキャラクタ)の画像の合成画像を生成している。具体的には撮像画像から切り出された顔画像(広義には被写体画像、部位画像)と、キャラクタの画像の合成画像を生成する。
例えば図6では、キャラクタCHP(衣装)のモデルオブジェクトが用意されており、ポリゴンSCI(ビルボードポリゴン、スクリーン)には、撮像画像から切り出されたプレーヤPLの顔画像IMFが表示されている。キャラクタCHPのモデルオブジェクトは、顔(頭部)以外の複数の部位のオブジェクトで構成されており、綺麗な衣装を着たキャラクタとなっている。
そして図6では、仮想カメラVCの視点位置とキャラクタCHPの顔の位置を結ぶ線の延長線上に、ポリゴンSCIの顔画像IMFが表示されている。仮想カメラVC、キャラクタCHP、ポリゴンSCIの顔画像IMFを、このような配置関係に設定することで、キャラクタCHPの顔の部分にプレーヤの顔画像IMFが合成された画像を生成できるようになる。
なおキャラクタCHPに対する顔画像IMFの画像合成手法は、図6に示す手法には限定されない。例えばキャラクタCHPの顔(所定部位)を構成するオブジェクトに対して、顔画像IMF(被写体画像、部位画像)のテクスチャをマッピングするなどの種々の画像合成手法を採用できる。
例えば図7(A)は、センサ162のカラーセンサ164により撮像されたプレーヤPLの撮像画像の例である。この撮像画像からプレーヤPLの顔画像IMFを切り出し(トリミングし)、図6の画像合成手法によりキャラクタCHPの画像と合成することで、図7(B)に示すような合成画像を生成できる。図7(B)では、顔の部分がプレーヤPLの顔画像IMFとなっており、顔以外の部分がCG画像であるキャラクタCHPの画像になっている。これによりプレーヤPLは、自分の分身であるキャラクタCHPに対して、童話やアニメの世界の主人公が着ているような衣装を着せて、ゲームをプレイできるため、ゲームの面白味やプレーヤの熱中度を向上できる。
図8は、本実施形態の画像生成システムにより生成されて、図2の表示部190に表示されるゲーム画像の例である。プレーヤPLの顔画像IMFが合成されたキャラクタCHPは、例えばその手に魔法の杖STを持っている。そして図2のプレーヤPLが腕を動かすと、この腕の動きがセンサ162により検出されて、図5のスケルトン情報として、腕の骨が動いているスケルトンの情報が取得される。これにより、図8に示すゲーム画像上のキャラクタCHPの腕が動くようになり、魔法の杖STで、敵キャラクタEN1、EN2、EN3をヒットして攻撃できるようになる。そして敵を倒した数やボーナスポイントの獲得などによって、プレーヤのゲーム成績が演算される。
このように本実施形態の手法によれば、プレーヤPLは、童話やアニメの主人公の衣装を、自分の分身であるキャラクタCHPに着せて、あたかもその主人公になったかのように感じながら、図8のようなゲームをプレイできるようになる。従って、子供などのプレーヤPLが熱中できる面白味のあるゲームの実現が可能になる。
2.2 プレーヤの動きに応じたキャラクタの動作
本実施形態では、スケルトン情報を用いることで、プレーヤの動きに応じたキャラクタの動作を実現している。例えば図9において表示部190に表示されるキャラクタCHPは、複数のオブジェクトにより構成されるモデルオブジェクトとなっている。例えばポリゴン等のプリミティブ面で構成された3次元のCGオブジェクトでキャラクタCHPの画像が生成される。また図9に示すように、キャラクタCHPの画像として、当該モデルオブジェクトの顔の位置にプレーヤPL(被写体)の顔画像IMFが表示される画像が生成される。このようなキャラクタCHPと顔画像IMFの合成キャラクタ画像は、例えば図6で説明した画像合成手法により生成できる。
なお、図9では、キャラクタCHPに顔画像IMFを合成する場合について示しているが、本実施形態はこれに限定されるものでなく、顔画像IMFの合成は必須ではない。
本実施形態では、図9に示すようにプレーヤPL(被写体)が動いた場合に、このプレーヤPLの動きに連動して、表示部190に表示されるキャラクタCHPが動作する。例えばプレーヤPLが右に動いた場合に、それに応じて、表示部190に表示されるキャラクタCHPも右に動く。同様にプレーヤPLが左に動いた場合に、それに応じて、表示部190に表示されるキャラクタCHPも左に動く。
具体的には本実施形態では、図5で説明したスケルトン情報を用いてキャラクタCHPの動作を制御している。例えばスケルトン情報に基づくモーションデータにより、キャラクタCHPのモーション再生を行って、キャラクタCHPを動作させる。
図10はスケルトンを概念的に説明する図である。キャラクタCHPを動作させるスケルトンは、キャラクタCHPの位置に配置設定される3次元形状の骨格であり、SKは、このスケルトンをスクリーンSCSに投影したものを表している。スケルトンは、図5で説明したように複数の関節で構成されており、各関節の位置は3次元座標で表される。スケルトンは、図9のプレーヤPLの動きに連動して、その骨が動く。そして、スケルトンの骨が動くと、これに連動して、キャラクタCHPの当該骨に対応する部位も動くことになる。例えばプレーヤPLが腕を動かすと、これに連動して、スケルトンの腕の骨が動き、キャラクタCHPの腕も動くことになる。またプレーヤPLが足を動かすと、これに連動して、スケルトンの足の骨が動き、キャラクタCHPの足も動くことになる。またプレーヤPLが頭部を動かすと、これに連動して、スケルトンの頭部の骨が動き、キャラクタCHPの頭部も動くことになる。なお図10では、例えば仮想カメラVCの視点位置にセンサ162が配置され、仮想カメラVCの視線方向にセンサ162の撮像方向が向いているものとして想定されている。
このように本実施形態では、プレーヤPLの動きに連動してキャラクタCHPが動作する。このため、キャラクタCHPが、自身の本当の分身であるかのような感覚をプレーヤに与えることができる。
また本実施形態では、キャラクタCHPとして、複数のオブジェクトにより構成されるモデルオブジェクトを用いる。そして、オブジェクト空間(3次元仮想空間)において、プレーヤPL(被写体)の位置に対応する位置に配置される当該モデルオブジェクトのレンダリング処理を行うことで、キャラクタCHPの画像を生成する。例えば図11において、キャラクタCHPは、オブジェクト空間内において、図9でのプレーヤPLの位置に対応する位置に配置される。例えばプレーヤPLが前後左右に移動すると、キャラクタCHPもオブジェクト空間内において前後左右に移動することになる。
そして、モデルオブジェクトであるキャラクタCHPのレンダリング処理は、図11に示すように光源LSを用いた照明モデルに基づいて行われる。具体的には、照明モデルに基づくライティング処理(シェーディング処理)が行われる。このライティング処理は、光源LSの情報(光源ベクトル、光源色、明るさ、光源タイプ等)や、仮想カメラVCの視線ベクトルや、キャラクタCHPを構成するオブジェクトの法線ベクトルや、オブジェクトのマテリアル(色、材質)などを用いて行われる。なお照明モデルとしては、アンビエント光とディフューズ光だけを考慮したランバードの拡散照明モデルや、アンビエント光、ディフューズ光に加えてスペキュラ光も考慮するフォンの照明モデルやブリン・フォンの照明モデルなどがある。
このように照明モデルに基づくライティング処理を行うことで、キャラクタCHPに対して光源LSによる適切な陰影づけがついたリアルで高品質な画像を生成できるようになる。例えばスポットライトの光源を用いてライティング処理を行えば、スポットライトにより照らされているように見えるキャラクタCHP(衣装)の画像を生成できるようになり、プレーヤの仮想現実感等を向上できる。
2.3 配置基準点の設定
以上のように本実施形態では、図9においてプレーヤPLが前後左右に動くと、オブジェクト空間において、キャラクタCHPのモデルオブジェクトも前後左右に動き、この前後左右に動くモデルオブジェクトを照明モデルに基づいてレンダリングすることで、表示部190に表示されるキャラクタCHPの画像が生成されている。
そして図12(A)では、プレーヤPLは、センサ162から近い距離に位置している。プレーヤPLは、面SAを有する移動エリアAR(プレイエリア)において自在に移動することができ、図12(A)ではセンサ162の方に近づいている。即ち、図9においてプレーヤPLは、前方向DR1側に移動しており、センサ162や表示部190に近づいている。
一方、図12(B)では、プレーヤPLは、センサ162から離れる方向に移動しており、センサ162から遠い距離に位置している。即ち、図9においてプレーヤPLは、後ろ方向DR2側に移動しており、センサ162や表示部190から遠ざかっている。
図13(A)、図13(B)は、図12(A)、図12(B)のようにプレーヤPLが移動エリアAR上で前後に移動した場合に、表示部190に表示されるゲーム画像の例である。例えば図12(A)のようにプレーヤPLがセンサ162の方に近づくと、図13(A)に示すようなゲーム画像が表示部190に表示される。このゲーム画像では、キャラクタCHPや、背景画像を構成するオブジェクトBG1、BG2、BG3が表示されている。
一方、図12(B)のようにプレーヤPLがセンサ162から遠ざかると、図13(B)に示すようなゲーム画像が表示部190に表示される。図13(B)では、図13(A)に比べて、キャラクタCHPが画面上で上方向に上昇してしまっている。また図12(B)のように、センサ162(カラーセンサ164)からプレーヤPLが離れることで、図13(B)では図13(A)に比べてキャラクタCHPの表示サイズも小さくなっている。
即ち本実施形態では、小さな子供についてもセンサ162の撮像範囲(センシング範囲)に入るように、センサ162の撮像方向は水平面に対して俯角方向に設定されている。従って、センサ162から遠ざかる方向にプレーヤPLが移動すると、図13(B)に示すように、表示部190の画面上では、プレーヤPLに対応するキャラクタCHPが上方向に移動してしまう。
このように、スケルトン情報を単に用いてキャラクタCHPを動作させて、表示部190に表示する手法では、図12(A)、図12(B)に示すようにセンサ162からのプレーヤPLの距離が変化すると、キャラクタCHPの表示位置が不自然に変化してしまう。例えば図13(B)では、背景画像のオブジェクトBG1、BG2、BG3に対して、あたかもキャラクタCHPが宙に浮いているかのような画像が生成されているため、当該画像にプレーヤが不自然さを感じてしまう。特に背景画像が2次元的な絵の画像である場合には、背景のオブジェクトBG1、BG2、BG3に対して相対的にキャラクタCHPが上昇することで、キャラクタCHPが宙に浮いているようにプレーヤが感じてしまう。
このような問題を解決するために本実施形態では、スケルトン情報(広義には被写体情報)からキャラクタの基準点の位置を求め、当該基準点の位置に基づいて配置基準点を求める。そして配置基準点に応じた位置にキャラクタを表示する手法を採用している。
例えば図14(A)、図14(B)に示すように、スケルトン情報からキャラクタCHPの基準点の位置C0を取得する。図14(B)に示すように、位置C0は、スケルトン情報において、基準点である腰の位置(関節位置)に相当する。この基準点の位置C0は、キャラクタCHPの手、足等の端部の部位を除いた位置であり、中心付近の部位の位置である。本実施形態では、この基準点の位置C0から、配置基準点RPを求め、配置基準点RPに対応する位置にキャラクタCHPを配置して表示する。例えば、センサ情報に基づいてスケルトン情報を取得する場合に、腰の位置はプレーヤPLの中心付近の位置であるため、腰の位置がセンサ162により非検出となる可能性は少ない。このため、基準点の位置C0として腰の位置を用いれば、基準点の位置C0を安定的に取得して、配置基準点RPを設定できるようになる。
具体的には本実施形態では、センサ162からのセンサ情報に基づいて、図12(A)、図12(B)に示すプレーヤPLの移動エリアARの面SAの情報を取得する。例えば点P0(x0,y0,z0)を通り、法線ベクトルn=(a,b,c)に垂直な面(平面)の方程式は、下式(1)のように表される。
a(x−x0)+b(y−y0)+c(z−z0)=0 (1)
例えば本実施形態では、移動エリアARの面SAの情報として、上式(1)の係数a、b、cやx0、y0、z0を取得する。この面SAの情報と基準点の位置C0に基づいて、キャラクタCHPの配置基準点RPを求める。具体的には、基準点(腰)の位置C0から下ろした垂線が面SAに交わる点を、配置基準点RPとして求める。
即ち、基準点の位置C0の座標(3次元座標)は、図5で説明したスケルトン情報から求めることができる。従って、この位置C0の座標と、上式(1)の面の方程式を用いることで、位置C0からの垂線が面SAと交わる点である配置基準点RPの座標を求めることができる。この配置基準点RPは、キャラクタCHPの足元位置であり、立ち位置に相当するものである。
このように面SAの情報を用いれば、配置基準点RPとして、面SAに対応する位置の点を求めることが可能になる。例えば基準点の位置C0から下ろした垂線の交点を、配置基準点RPとすることで、基準点の位置C0の下方であって、且つ、面SAに対応する位置の点を、配置基準点RPとして求めることができる。従って、配置基準点RPとして、キャラクタCHPの足元位置(立ち位置)に対応する点を求めることが可能になる。
そして本実施形態では図12(A)、図12(B)のようにセンサ162からのプレーヤPL(被写体)の距離が変化した場合にも、配置基準点RPが表示部190の画面下部の位置になるようにキャラクタCHPが表示される画像を生成する。即ち図13(B)のようにキャラクタCHPが上方向には移動せずに、配置基準点RPが表示部190の画面下部の位置に固定されるようにキャラクタCHPを表示する。
例えば図12(B)のように、プレーヤPLが後方に移動してセンサ162から距離が離れたとする。この場合に、図15のA1のようにキャラクタCHPが上方向に移動してしまわないように、キャラクタCHPを下方向DAに移動する。そして、A2に示すように配置基準点RPが画面下部の所定位置に位置するように、キャラクタCHPを配置して表示する。このようにすれば、センサ162からのプレーヤPLの距離が変化した場合にも、配置基準点RPが常に画面下部の位置になるように、キャラクタCHPが表示される。従って、図13(B)のようにキャラクタCHPが宙に浮かんだかのように見える不自然な画像が生成されてしまうのを防止できる。
より具体的には本実施形態では、キャラクタCHPは、複数のオブジェクトで構成され、オブジェクト空間内に配置されるモデルオブジェクトとなっている。この場合に、センサ162からのプレーヤPLの距離が長くなるにつれて、オブジェクト空間内でのモデルオブジェクトの位置を下降させる処理を行う。具体的には図6において、モデルオブジェクトであるキャラクタCHPと、顔画像が表示されるポリゴンSCI(ビルボードポリゴン)を、オブジェクト空間において下方向に移動する。
例えば図16(A)は、キャラクタCHPのモデルオブジェクト情報の例である。このモデルオブジェクト情報は、オブジェクト空間内でのモデルオブジェクトの位置の情報や方向の情報を含む。またモデルオブジェクトを構成する複数のオブジェクトOB1、OB2、OB3・・・の情報を含む。
本実施形態では、センサ162からのプレーヤPLの距離が長くなるにつれて、図16(A)に示すようにモデルオブジェクトの位置情報を変更する。即ち図15のA1において下方向DAにキャラクタCHPが移動するように、図16(A)のモデルオブジェクトの位置情報を変更する。このようにすれば、センサ162からのプレーヤPLの距離が変化した場合にも、配置基準点RPが画面下部の所定位置になるようにキャラクタCHPを表示できるようになる。
例えば図16(B)は、センサ162からのプレーヤPLの距離と、キャラクタCHPであるモデルオブジェクトの位置(垂直方向であるY軸方向での位置)との関係を規定するテーブルデータの例である。センサ162とプレーヤPLの距離がL1である場合には、モデルオブジェクトの位置はP1であり、センサ162とプレーヤPLの距離がL2となって両者が離れると、モデルオブジェクトの位置はP1からP2に下降する。図16(B)のようなテーブルデータを用いることで、センサ162とプレーヤPLの距離が変化した場合にも、画面下部に配置基準点RPが位置するようにキャラクタCHPを表示できるようになる。
なお、センサ162からのプレーヤPLの距離については、デプスセンサ166を用いてプレーヤPLの深度情報を取得し、取得された深度情報に基づいて求めることが可能である。
例えば本実施形態の比較例の手法として、キャラクタCHPの足の位置を配置基準点として設定する手法も考えられる。しかしながら、図12(A)のようにプレーヤPLがセンサ162に接近した場合に、図17(A)に示すように、センサ162のセンシング範囲(撮像範囲)にプレーヤPLが収まらなくなり、センサ162によっては足の位置を検出できなくなってしまう。即ち、この場合には、スケルトン情報による骨格認識では、キャラクタCHPの足の位置を特定できず、足の位置は不明な位置となってしまう。このため、キャラクタCHPの足の位置を配置基準点として設定する比較例の手法では、キャラクタCHPを適正な位置に表示できなくなってしまう。
また図17(B)に示すようにプレーヤPLが足を上げたり、ジャンプした場合にも、比較例の手法では、キャラクタCHPを適正な位置に表示できない。即ち、この場合に比較例の手法では、センサ162により足の位置を検出し、その足の位置を配置基準点に設定することになる。従って、図17(B)の場合には、上げられた足の位置が配置基準点に設定されてしまい、キャラクタCHPの足元位置(立ち位置)を配置基準点に設定することができない。このため、例えば図17(B)のように上げられた足の位置が、画面下部の位置に設定されるような表示になってしまい、キャラクタCHPの適正な表示を実現できない。
この点、本実施形態の手法によれば、図17(A)のようにプレーヤPLの足の位置を検出できなかったり、図17(B)のようにプレーヤPLが足を上げたり、ジャンプした場合にも、図14(A)に示すようにキャラクタCHPの足元位置(立ち位置)に配置基準点RPを設定できるようになる。つまり、足の位置ではなく、基準点の位置C0を用いているため、プレーヤPLの足の位置を検出できなかったり、プレーヤPLが足を上げたり、ジャンプした場合にも、配置基準点RPを適正に設定できる。従って、図15のA2に示すように、キャラクタCHPの適正な表示を実現できるという利点がある。
2.4 変形例
次に本実施形態の種々の変形例を説明する。例えば図15では、配置基準点RPが画面下部の位置になるようにキャラクタCHPを表示しているが、配置基準点RPに応じた位置にキャラクタCHPを表示する手法としては、種々の変形実施が可能である。
例えば本実施形態では、背景画像を構成するオブジェクトの位置、形状、サイズ、及び動きの少なくとも1つと、配置基準点RPとに基づいて設定される位置に、キャラクタCHPを配置して表示してもよい。
例えば図18(A)では、キャラクタCHPがステージSTG上に配置されている。ステージSTGは、背景画像を構成するオブジェクトである。この場合は、ステージSTGの位置や形状と、配置基準点RPとに基づき設定される位置に、キャラクタCHPが配置されて表示される。例えば背景オブジェクトであるステージSTGが高い場所に設けられていれば、それに合わせて配置基準点RPの位置も高い場所に設定され、キャラクタCHPも高い場所に配置されて表示される。またステージSTGの形状に合わせた位置に、配置基準点RPが設定される。例えばステージSTGの形状に凸凹があれば、その凸凹の形状に合わせた位置に、配置基準点RPが設定されて、キャラクタCHPが表示される。
また図18(B)では、球BALの上にキャラクタCHPが立っている。この球BALは背景画像を構成するオブジェクトである。図18(B)では、この球BALの位置や形状に応じた位置に、配置基準点RPが設定されて、キャラクタCHPが表示されている。例えば球BALの場所に対応する位置に、配置基準点RPが設定されて、キャラクタCHPが表示される。また球BALの球形状に合わせた位置に配置基準点RPが設定されて、キャラクタCHPが表示される。更に、図18(C)では、球BALのサイズが変化しており、図18(B)に比べて大きくなっている。この場合には、球BALのサイズに応じた位置に配置基準点RPが設定される。例えば球BALのサイズが図18(B)、図18(C)に示すように変化すると、これに応じて配置基準点RPの位置も変化し、キャラクタCHPの表示位置も変化する。
また図19(A)、図19(B)では、背景オブジェクトである球BALが動いている。例えば球BALが左から右に移動している。この場合には球BALの動きに応じて、配置基準点RPの位置が変化し、キャラクタCHPの表示位置も変化する。即ち球BALが左から右に移動すると、配置基準点RPも左から右に移動し、配置基準点RPに応じた位置に表示されるキャラクタCHPも左から右に移動する。なお背景のオブジェクトとしては、例えば椅子、机、階段又は海などの種々の表示物を想定できる。例えば海の波の変化に応じて、配置基準点RPの位置を変化させ、キャラクタCHPが波に揺られているように見える画像を生成してもよい。
また第2のキャラクタの位置、形状、サイズ及び動きの少なくとも1つと、配置基準点とに基づいて設定される位置に、キャラクタCHPを配置して表示してもよい。
例えば図20では、プレーヤのキャラクタCHPと、第2のキャラクタCHとが並んで表示されている。この場合には、第2のキャラクタCHの位置である配置点RPCに応じた位置に、配置基準点RPが設定される。例えばキャラクタCHPと第2のキャラクタCHが同軸上に並んで配置されるように、キャラクタCHPの配置基準点RPが設定される。具体的には、図20の画面の水平方向の軸をX軸とした場合に、キャラクタCHPの配置基準点RPと第2のキャラクタCHの配置点RPCとが、同じX軸上に設定されるように、配置基準点RPが設定されて、キャラクタCHPが表示される。
図21(A)、図21(B)は、プレーヤのキャラクタCHPと第2のキャラクタCHが一緒に並んで撮る記念写真の撮影モードでの画面例である。このような記念写真の撮影モードにおいて、第2のキャラクタCHの位置、形状、サイズ又は動きに応じた位置に配置基準点RPが設定されて、キャラクタCHPが表示される。
例えば図21(A)では、キャラクタCHPの配置基準点RPと、第2のキャラクタCHの位置である配置点RPCが同軸上に並ぶように、配置基準点RPが設定される。また図21(B)では、図21(A)に比べて、第2のキャラクタCHの形状やサイズが変化している。この場合には、この第2のキャラクタCHの形状やサイズの変化に応じた位置に、キャラクタCHPの配置基準点RPを設定してもよい。例えば第2のキャラクタCHの形状に応じた位置に配置基準点RPを設定する。或いは、第2のキャラクタCHのサイズが変化した場合に、それに応じて配置基準点RPの位置を変化させる。或いは、第2のキャラクタCHが動いた場合に、それに応じてキャラクタCHPの配置基準点RPの位置を変化させる。例えば図21(B)において第2のキャラクタCHが右に動いた場合には、それに応じて配置基準点RPも右に動かして、キャラクタCHPを右に動かす。第2のキャラクタCHが左に動いた場合には、それに応じて配置基準点RPも左に動かして、キャラクタCHPを左に動かす。
また本実施形態では、過去の前記配置基準点の位置(座標)を用いて、配置基準点の位置(座標)を決定してもよい。
例えば図22において、RPn-k・・・RPn-3、RPn-2、RPn-1は、過去の配置基準点である。これらの過去の配置基準点RPn-k・・・RPn-3、RPn-2、RPn-1の位置(座標情報)は、例えば図1の記憶部170に記憶されて保存される。この場合に、現在の配置基準点RPnの位置を、過去のRPn-k〜RPn-1の基準点の位置に基づいて決定する。例えばRPn-k〜RPn-1の基準点の位置の平均を、現在の配置基準点RPnの位置とする。即ち過去の位置変化情報に基づいてを配置基準点を求める。このようにすれば、急な位置変化や一時的な位置変化はすぐには反映されずに吸収されるようになる。従って、配置基準点の位置が微少に変動して、キャラクタの表示位置も微少に変動してしまうような事態を防止できる。
例えば本実施形態では図14(A)、図14(B)で説明したように、センサ情報に基づき取得されたスケルトン情報から、キャラクタCHPの基準点の位置C0を取得して、配置基準点RPを求めている。しかしながら、スケルトン情報はセンサ162からのセンサ情報に基づき取得されるものであるため、図14(A)、図14(B)の基準点の位置C0が微少に変動し、配置基準点RPの位置も微少に変動してしまう。このような場合にも、図22に示すように、過去の配置基準点RPn-k〜RPn-1の位置に基づいて現在の配置基準点RPnの位置を求めれば、スケルトン情報の基準点の位置C0が変動しても、配置基準点RPnの位置の変動を最小限に抑えることが可能になる。
また本実施形態では、スケルトン情報からキャラクタの基準点の位置を求める場合について説明したが、本実施形態はこれに限定されず、基準点の位置は、センサ情報に基づく被写体情報から求められるものであればよい。被写体情報としては、スケルトン情報以外にも、例えば被写体の体格情報やシルエット情報などを想定できる。
例えばセンサ162からのセンサ情報により、プレーヤ(被写体)の身長などの体格情報を、被写体情報として求める。そして、体格情報である身長に基づいて、予め定められた基準点の位置を設定してもよい。例えば身長が高いプレーヤであれば、基準点の位置を高い位置に設定し、身長が低いプレーヤであれば、基準点の位置を低い位置に設定する。
或いはセンサ162からのセンサ情報により、プレーヤのシルエットの情報を、被写体情報として求める。そして、プレーヤのシルエットの類型分類などに基づいて、基準点の位置を設定してもよい。例えばプレーヤのシルエットの情報から、プレーヤの性別、年齢、体型などについてのシルエットの類型分類を行って、基準点を設定する。このように被写体情報に基づく基準点の設定手法としては、種々の変形実施が可能である。
また本実施形態では、センサ162として、デプスセンサ166や測距センサなどの距離センサを設けて、プレーヤまでの距離を求める場合について説明したが、本実施形態はこれに限定されない。例えば、センサ162として、位置センサを設け、位置センサによりプレーヤの位置を検出し、検出された位置に基づいて、プレーヤまでの距離(例えば表示部からの距離)を求めてもよい。そして距離が変化した場合にも、配置基準点が画面下部の位置になるようにキャラクタが表示される画像を生成する。例えば位置センサとして、プレーヤの足元の位置を検出する感圧式センサを、図12(A)、図12(B)の移動エリアARに設ける。そして感圧式センサにより検出されたプレーヤの位置に基づいて、プレーヤまでの距離を求める。或いは、プレーヤの位置センサとして、プレーヤの上方に撮像センサを設ける。そして撮像センサの撮像画像に基づいてプレーヤの位置を検出し、検出された位置に基づいて、プレーヤまでの距離を求める。
3.詳細な処理
次に本実施形態の詳細な処理例について図23のフローチャートを用いて説明する。
まず、図5で説明したようなプレーヤのスケルトン情報を取得する(ステップS1)。またセンサ162からのプレーヤPLの距離情報(深度情報)や、移動エリアARの面SAの情報を取得する(ステップS2、S3)。
次に図14(A)、図14(B)で説明したように、キャラクタCHP(スケルトン)の腰の位置C0から下ろした垂線が面SAと交わる点を、配置基準点RP(足元位置)として求める(ステップS4)。即ち、腰の位置C0の3次元座標情報と、面SAの方程式に基づいて配置基準点RPを求める。
次に図15〜図16(B)で説明したように、センサ162からのプレーヤPLの距離が長くなるにつれて、オブジェクト空間内でのキャラクタCHPの配置基準点RPの位置を下降させて、キャラクタCHPの画像を生成する(ステップS5、S6)。このようにすれば、センサ162からのプレーヤPLの距離が変化しても、図15のA2に示すように、画面下部に配置基準点RPが位置するようにキャラクタCHPを表示できるようになる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(被写体、所定部位、部位画像等)と共に記載された用語(プレーヤ、顔、顔画像等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、スケルトン情報の取得処理、キャラクタの動作処理、配置基準点の演算処理、キャラクタの配置・表示処理等も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。