(57)【要約】【課題】スケルトン情報による骨格認識の不正を原因とする不適切なキャラクタ画像の生成を抑制できる画像生成システム及びプログラム等の提供。【解決手段】画像生成システムは、センサからのセンサ情報に基づいて、被写体のスケルトン情報を取得する被写体情報取得部と、被写体のスケルトン情報に基づいてキャラクタを動作させる処理を行うキャラクタ処理部と、キャラクタの画像を生成する画像生成部を含む。キャラクタ処理部は、スケルトン情報による被写体の骨格認識に不正が発生すると判断される場合に、スケルトン情報に基づくキャラクタの動作の補正処理を行う。【選択図】図２４
2017138915.tif 000002
【特許請求の範囲】
【請求項１】
センサからのセンサ情報に基づいて、被写体のスケルトン情報を取得する被写体情報取得部と、
前記被写体の前記スケルトン情報に基づいてキャラクタを動作させる処理を行うキャラクタ処理部と、
前記キャラクタの画像を生成する画像生成部と、
を含み、
前記キャラクタ処理部は、
前記スケルトン情報による前記被写体の骨格認識に不正が発生すると判断される場合に、前記スケルトン情報に基づく前記キャラクタの動作の補正処理を行うことを特徴とする画像生成システム。
【請求項２】
請求項１において、
前記キャラクタ処理部は、
前記被写体の前記骨格認識に不正が発生すると判断される場合に、前記スケルトン情報に基づくスケルトンモーションと前記キャラクタの基準モーションとのモーションブレンドを、前記補正処理として行うことを特徴とする画像生成システム。
【請求項３】
請求項２において、
前記キャラクタ処理部は、
前記被写体の前記骨格認識において不正が発生すると判断される骨についてのみ、前記モーションブレンドを行うことを特徴とする画像生成システム。
【請求項４】
請求項２又は３において、
前記キャラクタ処理部は、
前記スケルトンモーションのブレンド率と前記基準モーションのブレンド率を時間経過に応じて変化させることを特徴とする画像生成システム。
【請求項５】
請求項１において、
前記キャラクタ処理部は、
前記被写体の前記骨格認識に不正が発生すると判断される場合に、前記スケルトン情報に基づくスケルトンモーションを、所与のモーションに差し替えるモーション差し替えを、前記補正処理として行うことを特徴とする画像生成システム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記キャラクタ処理部は、
前記被写体の前記骨格認識において不正が発生すると判断される骨に対して、前記補正処理を行うことを特徴とする画像生成システム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記キャラクタ処理部は、
前記被写体の前記スケルトン情報からスケルトンの右肩位置と左肩位置を取得し、前記右肩位置と前記左肩位置を結ぶ線の角度に基づいて、前記被写体の左腕又は右腕の一方の腕の骨に不正が発生すると判断される場合に、前記一方の腕の骨に対する前記補正処理を行うことを特徴とする画像生成システム。
【請求項８】
請求項７において、
前記キャラクタ処理部は、
不正と判断された前記一方の腕の骨について、前記スケルトン情報に基づくスケルトンモーションと、前記キャラクタの基準モーションとのモーションブレンドを行うことを特徴とする画像生成システム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記キャラクタ処理部は、
前記センサからの前記被写体の距離に基づいて、前記スケルトン情報の足の骨に不正が発生すると判断される場合に、前記足の骨についての前記補正処理を行うことを特徴とする画像生成システム。
【請求項１０】
請求項９において、
前記キャラクタ処理部は、
前記足の骨に不正が発生すると判断される場合に、前記スケルトン情報の前記足の骨を、所与の基準骨に差し替えることを特徴とする画像生成システム。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
ゲーム処理を行うゲーム処理部を含み、
前記ゲーム処理部は、
前記被写体の前記骨格認識に不正が発生すると判断される場合に、前記骨格認識の不正発生時用に用意されたゲームイベントを発生することを特徴とする画像生成システム。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
ゲーム処理を行うゲーム処理部を含み、
前記キャラクタ処理部は、
前記キャラクタの動作の前記補正処理として、ゲーム状況に応じた前記補正処理を行うことを特徴とする画像生成システム。
【請求項１３】
請求項１乃至１２のいずれかにおいて、
前記キャラクタ処理部は、
前記補正処理の期間中においては、前記補正処理後の前記キャラクタの動作に基づいて、前記キャラクタについての判定処理を行うことを特徴とする画像生成システム。
【請求項１４】
センサからのセンサ情報に基づいて、被写体のスケルトン情報を取得する被写体情報取得部と、
前記被写体の前記スケルトン情報に基づいてキャラクタを動作させる処理を行うキャラクタ処理部と、
前記キャラクタの画像を生成する画像生成部として、
コンピュータを機能させ、
前記キャラクタ処理部は、
前記スケルトン情報による前記被写体の骨格認識に不正が発生すると判断される場合に、前記スケルトン情報に基づく前記キャラクタの動作の補正処理を行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システム及びプログラム等に関する。
【背景技術】
【０００２】
従来より、スケルトン情報を用いたモーション再生によりキャラクタを動作させるゲームの画像生成システムが知られている。このような画像生成システムの従来技術としては例えば特許文献１に開示される技術が知られている。また、プレーヤの動きを特定するスケルトン情報をリアルタイムにキャプチャし、キャプチャされたスケルトン情報を用いて、ゲーム処理を行うようなシステムについても提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３０１９８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、プレーヤの動きを表すスケルトン情報をリアルタイムに取得すれば、このスケルトン情報を用いることで、プレーヤの動きに応じて動作するキャラクタを表示することができる。しかしながら、スケルトン情報によるプレーヤの骨格認識には不正が生じる場合がある。このように骨格認識に不正がある状態で、キャラクタを動作させると、キャラクタが意図しない動作をしてしまい、不適切な画像が生成されてしまうおそれがある。
【０００５】
本発明の幾つかの態様によれば、スケルトン情報による骨格認識の不正を原因とする不適切なキャラクタ画像の生成を抑制できる画像生成システム及びプログラム等を提供できる。
【課題を解決するための手段】
【０００６】
本発明の一態様は、センサからのセンサ情報に基づいて、被写体のスケルトン情報を取得する被写体情報取得部と、前記被写体の前記スケルトン情報に基づいてキャラクタを動作させる処理を行うキャラクタ処理部と、前記キャラクタの画像を生成する画像生成部と、を含み、前記キャラクタ処理部は、前記スケルトン情報による前記被写体の骨格認識に不正が発生すると判断される場合に、前記スケルトン情報に基づく前記キャラクタの動作の補正処理を行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００７】
本発明の一態様では、被写体のスケルトン情報が取得され、スケルトン情報に基づいてキャラクタを動作させる処理が行われる。即ち、スケルトン情報を用いることで、被写体の動きに応じたキャラクタの動作を実現する。そして、このスケルトン情報による被写体の骨格認識に不正が発生すると判断されると、スケルトン情報に基づくキャラクタの動作の補正処理が実行される。例えば骨格認識が不正となるスケルトン情報に基づいてキャラクタを動作させると、キャラクタの動作が不適切な動作になってしまう事態が生じる。この点、本発明の一態様では、骨格認識に不正が発生すると判断されると、キャラクタの動作の補正処理が行われるため、このような事態の発生を抑制できる。従って、スケルトン情報による骨格認識の不正を原因とする不適切なキャラクタ画像の生成を抑制できる画像生成システム等の提供が可能になる。
【０００８】
また本発明の一態様では、前記キャラクタ処理部は、前記被写体の前記骨格認識に不正が発生すると判断される場合に、前記スケルトン情報に基づくスケルトンモーションと前記キャラクタの基準モーションとのモーションブレンドを、前記補正処理として行ってもよい。
【０００９】
このようなモーションブレンドを行えば、骨格認識に不正が発生するような場合にも、スケルトンモーションに対して基準モーションがモーションブレンドされることで、骨格認識の不正を原因とする不適切なキャラクタ画像の生成を抑制できるようになる。
【００１０】
また本発明の一態様では、前記キャラクタ処理部は、前記被写体の前記骨格認識において不正が発生すると判断される骨についてのみ、前記モーションブレンドを行ってもよい。
【００１１】
このようすれば、スケルトンの全ての骨についてモーションブレンドを行う場合に比べて、処理負荷を低減できるようになる。
【００１２】
また本発明の一態様では、前記キャラクタ処理部は、前記スケルトンモーションのブレンド率と前記基準モーションのブレンド率を時間経過に応じて変化させてもよい。
【００１３】
このようにすれば、スケルトンモーションから基準モーションへと時間経過に伴い徐々に変化するようなモーションブレンドを実現でき、より自然に見えるキャラクタの動作画像を生成できるようになる。
【００１４】
また本発明の一態様では、前記キャラクタ処理部は、前記被写体の前記骨格認識に不正が発生すると判断される場合に、前記スケルトン情報に基づくスケルトンモーションを、所与のモーションに差し替えるモーション差し替えを、前記補正処理として行ってもよい。
【００１５】
このようなモーション差し替えを行えば、骨格認識に不正が発生するような場合にも、スケルトンモーションを所与のモーションに差し替えることで、骨格認識の不正を原因とする不適切なキャラクタ画像の生成を抑制できるようになる。
【００１６】
また本発明の一態様では、前記キャラクタ処理部は、前記被写体の前記骨格認識において不正が発生すると判断される骨に対して、前記補正処理を行ってもよい。
【００１７】
このようにすれば、骨格認識において不正が発生すると判断される骨の補正処理を行って、適正なキャラクタ画像を生成できるようになる。
【００１８】
また本発明の一態様では、前記キャラクタ処理部は、前記被写体の前記スケルトン情報からスケルトンの右肩位置と左肩位置を取得し、前記右肩位置と前記左肩位置を結ぶ線の角度に基づいて、前記被写体の左腕又は右腕の一方の腕の骨に不正が発生すると判断される場合に、前記一方の腕の骨に対する前記補正処理を行ってもよい。
【００１９】
このようにすれば、右肩位置と左肩位置を結ぶ線の角度に基づいて、被写体の一方の腕の骨に不正が発生することを予測して、当該一方の腕の骨についての補正処理を実行できるようになる。
【００２０】
また本発明の一態様では、前記キャラクタ処理部は、不正と判断された前記一方の腕の骨について、前記スケルトン情報に基づくスケルトンモーションと、前記キャラクタの基準モーションとのモーションブレンドを行ってもよい。
【００２１】
このようにすれば、不正と判断された一方の腕についての補正処理を、スケルトンモーションと基準モーションのモーションブレンドにより実現できるようになる。
【００２２】
また本発明の一態様では、前記キャラクタ処理部は、前記センサからの前記被写体の距離に基づいて、前記スケルトン情報の足の骨に不正が発生すると判断される場合に、前記足の骨についての前記補正処理を行ってもよい。
【００２３】
このようにすれば、センサからの被写体の距離に基づいて、足の骨に不正が発生することを予測して、足の骨についての補正処理を実行できるようになる。
【００２４】
また本発明の一態様では、前記キャラクタ処理部は、前記足の骨に不正が発生すると判断される場合に、前記スケルトン情報の前記足の骨を、所与の基準骨に差し替えてもよい。
【００２５】
このようにすれば、骨格認識において不正があると判断される足の骨を、基準骨に差し替えることで、キャラクタのモーションを適正なモーションに補正できるようになる。
【００２６】
また本発明の一態様では、ゲーム処理を行うゲーム処理部を含み（ゲーム処理部としてコンピュータを機能させ）、前記ゲーム処理部は、前記被写体の前記骨格認識に不正が発生すると判断される場合に、前記骨格認識の不正発生時用に用意されたゲームイベントを発生してもよい。
【００２７】
このようにすれば、骨格認識に不正が発生すると判断される場合に、例えば骨格認識の不正を原因とする不適切なキャラクタ画像が生成されるのを回避させるようなゲームイベントを発生できるようになる。
【００２８】
また本発明の一態様では、ゲーム処理を行うゲーム処理部を含み（ゲーム処理部としてコンピュータを機能させ）、前記キャラクタ処理部は、前記キャラクタの動作の前記補正処理として、ゲーム状況に応じた前記補正処理を行ってもよい。
【００２９】
このようにすれば、骨格認識の不正発生時用の補正処理として、ゲーム状況を反映させた補正処理を実行できるようになり、スムーズなゲーム進行等を実現できるようになる。
【００３０】
また本発明の一態様では、前記キャラクタ処理部は、前記補正処理の期間中においては、前記補正処理後の前記キャラクタの動作に基づいて、前記キャラクタについての判定処理を行ってもよい。
【００３１】
このようにすれば、補正処理の期間中において、キャラクタについての適正な判定処理を実行できるようになる。
【図面の簡単な説明】
【００３２】
【図１】本実施形態の画像生成システムの構成例。
【図２】本実施形態の画像生成システムの業務用ゲーム装置への適用例。
【図３】図３（Ａ）、図３（Ｂ）は本実施形態の画像生成システムの家庭用ゲーム装置、パーソナルコンピュータへの適用例。
【図４】図４（Ａ）、図４（Ｂ）は深度情報、ボディーインデックス情報の例。
【図５】スケルトン情報の説明図。
【図６】キャラクタの画像とプレーヤの顔画像の画像合成手法の説明図。
【図７】図７（Ａ）はプレーヤの撮像画像の例、図７（Ｂ）はキャラクタと顔画像の合成画像の例。
【図８】本実施形態により生成されるゲーム画像の例。
【図９】プレーヤの動きに応じてキャラクタを動作させる手法の説明図。
【図１０】スケルトン情報を用いてキャラクタを動作させる手法の説明図。
【図１１】モデルオブジェクトのレンダリング処理の説明図。
【図１２】図１２（Ａ）〜図１２（Ｃ）はスケルトン情報による骨格認識の不正を原因とする不具合の発生の一例の説明図。
【図１３】図１３（Ａ）、図１３（Ｂ）は骨格認識の不正を原因とする不具合の発生の他の例の説明図。
【図１４】図１４（Ａ）、図１４（Ｂ）も骨格認識の不正を原因とする不具合の発生の発生の他の例の説明図。
【図１５】モーションブレンドによる本実施形態の補正処理の説明図。
【図１６】モーション差し替えによる本実施形態の補正処理の説明図。
【図１７】図１７（Ａ）〜図１７（Ｄ）は両肩を結ぶ線の角度を用いた骨格認識の不正の発生の判断手法の説明図。
【図１８】時間経過に基づくモーションブレンド手法の説明図。
【図１９】図１９（Ａ）、図１９（Ｂ）はセンサーからの距離を用いた骨格認識の不正の発生の判断手法の説明図。
【図２０】骨格認識の不正発生時用のゲームイベントを発生する処理のフローチャート。
【図２１】図２１（Ａ）〜図２１（Ｃ）は本実施形態の変形例の説明図。
【図２２】本実施形態の変形例の説明図。
【図２３】図２３（Ａ）、図２３（Ｂ）も本実施形態の変形例の説明図。
【図２４】本実施形態の詳細な処理例を示すフローチャート。
【図２５】本実施形態の詳細な処理例を示すフローチャート。
【発明を実施するための形態】
【００３３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３４】
１．画像生成システム
図１に本実施形態の画像生成システム（画像生成装置、ゲームシステム、ゲーム装置）の構成例を示す。画像生成システムは、処理部１００、操作部１６０、センサ１６２、記憶部１７０、表示部１９０、音出力部１９２、Ｉ／Ｆ部１９４、通信部１９６、印刷部１９８を含む。なお本実施形態の画像生成システムの構成は図１に限定されず、その構成要素（各部）の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００３５】
処理部１００は、操作部１６０からの操作情報や、センサ１６２からのセンサ情報や、プログラムなどに基づいて、入力処理、演算処理、出力処理などの各種の処理を行う。
【００３６】
処理部１００の各部が行う本実施形態の各処理（各機能）はプロセッサ（ハードウェアを含むプロセッサ）により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリーにより実現できる。プロセッサは、例えば各部の機能が個別のハードウエアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。プロセッサは、例えばＣＰＵ（Central Processing Unit）であってもよい。但し、プロセッサはＣＰＵに限定されるものではなく、ＧＰＵ（Graphics Processing Unit）、或いはＤＳＰ（Digital Processing Unit）等、各種のプロセッサを用いることが可能である。またプロセッサはＡＳＩＣによるハードウェア回路であってもよい。メモリー（記憶部１７０）は、ＳＲＡＭ、ＤＲＡＭ等の半導体メモリーであってもよいし、レジスターであってもよい。或いはハードディスク装置（ＨＤＤ）等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリーはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部１００の各部の処理（機能）が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
【００３７】
処理部１００は、入力処理部１０２、演算処理部１１０、出力処理部１４０を含む。入力処理部１０２は、各種の情報の入力処理を行う。例えば入力処理部１０２は、操作部１６０により入力されたプレーヤの操作情報を受け付ける処理を、入力処理として行う。例えば操作部１６０で検出された操作情報を取得する処理を行う。また入力処理部１０２は、センサ１６２からのセンサ情報を取得する処理を、入力処理として行う。また入力処理部１０２は、記憶部１７０から情報を読み出す処理を、入力処理として行う。例えば読み出しコマンドで指定された情報を、記憶部１７０から読み出す処理を行う。また入力処理部１０２は、通信部１９６を介して情報を受信する処理を、入力処理として行う。例えば画像生成システムの外部装置（他の画像生成システム、サーバシステム等）からネットワークを介して情報を受信する処理を行う。受信処理は、通信部１９６に情報の受信を指示したり、通信部１９６が受信した情報を取得して記憶部１７０に書き込む処理などである。
【００３８】
演算処理部１１０は、各種の演算処理を行う。例えば演算処理部１１０は、ゲーム処理、オブジェクト空間設定処理、キャラクタ処理、ゲーム成績演算処理、仮想カメラ制御処理、画像生成処理、或いは音生成処理などの演算処理を行う。この演算処理部１１０は、ゲーム処理部１１１、オブジェクト空間設定部１１２、キャラクタ処理部１１３、被写体情報取得部１１４、ゲーム成績演算部１１８、仮想カメラ制御部１１９、画像生成部１２０、音生成部１３０、印刷処理部１３２を含む。
【００３９】
ゲーム処理は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などである。このゲーム処理はゲーム処理部１１１（ゲーム処理のプログラムモジュール）により実行される。
【００４０】
オブジェクト空間設定処理は、オブジェクト空間に複数のオブジェクトを配置設定する処理である。このオブジェクト空間設定処理はオブジェクト空間設定部１１２（オブジェクト空間設定処理のプログラムモジュール）により実行される。例えばオブジェクト空間設定部１１２は、ゲームに登場するキャラクタ（人、ロボット、動物、怪物、飛行機、船舶、戦闘機、戦車、戦艦、車等）、マップ（地形）、建物、コース（道路）、樹木、壁、水面などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）を、オブジェクト空間に配置設定する。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のオブジェクト情報記憶部１７２には、オブジェクト（パーツオブジェクト）の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部１１２は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
【００４１】
キャラクタ処理（移動体演算処理）は、キャラクタ（移動体）について行われる各種の演算処理である。例えばキャラクタ処理は、キャラクタ（ゲームに登場する表示物）をオブジェクト空間（仮想３次元空間、３次元ゲーム空間）で移動させるための処理や、キャラクタを動作させるための処理である。このキャラクタ処理はキャラクタ処理部１１３（キャラクタ処理のプログラムモジュール）により実行される。例えばキャラクタ処理部１１３は、操作部１６０によりプレーヤが入力した操作情報や、センサ１６２からのセンサ情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、キャラクタ（モデルオブジェクト）をオブジェクト空間内で移動させたり、キャラクタを動作（モーション、アニメーション）させる制御処理を行う。具体的には、キャラクタの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（例えば１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、キャラクタの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４２】
ゲーム成績演算処理は、プレーヤのゲームでの成績を演算する処理である。例えばゲーム成績演算処理は、プレーヤがゲームで獲得するポイントや得点を演算する処理や、ゲーム内通貨、メダル又はチケットなどのゲーム成果を演算する処理である。このゲーム成績演算処理はゲーム成績演算部１１８（ゲーム成績演算処理のプログラムモジュール）により実行される。
【００４３】
仮想カメラ制御処理は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点、基準仮想カメラ）を制御する処理である。この仮想カメラ制御処理は仮想カメラ制御部１１９（仮想カメラ制御処理のプログラムモジュール）により実行される。具体的には仮想カメラ制御部１１９は、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００４４】
画像生成処理は、表示部１９０に表示される画像（ゲーム画像）や、印刷部１９８により印刷される画像を生成するための処理であり、各種の画像合成処理や画像エフェクト処理などを含むことができる。音生成処理は、音出力部１９２により出力されるＢＧＭ、効果音又は音声等の音（ゲーム音）を生成するための処理であり、各種の音合成処理やサウンドエフェクト処理などを含むことができる。これらの画像生成処理、音生成処理は、画像生成部１２０、音生成部１３０（画像生成処理、音生成処理のプログラムモジュール）により実行される。
【００４５】
例えば画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理、シミュレーション処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。具体的には、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を、描画バッファ１７８（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画する。これにより、オブジェクト空間内において所与の視点（仮想カメラ）から見える画像が生成される。なお、画像生成部１２０で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現してもよい。
【００４６】
出力処理部１４０は、各種の情報の出力処理を行う。例えば出力処理部１４０は、記憶部１７０に情報を書き込む処理を、出力処理として行う。例えば、書き込みコマンドで指定された情報を、記憶部１７０に書き込む処理を行う。また出力処理部１４０は、生成された画像の情報を表示部１９０に出力したり、生成された音の情報を音出力部１９２に出力する処理を、出力処理として行う。また出力処理部１４０は、通信部１９６を介して情報を送信する処理を、出力処理として行う。例えば画像生成システムの外部装置（他の画像生成システム、サーバシステム等）に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部１９６に情報の送信を指示したり、送信する情報を通信部１９６に指示する処理などである。また出力処理部１４０は、印刷媒体に印刷される画像を印刷部１９８に転送する処理を、出力処理として行う。
【００４７】
操作部１６０（操作デバイス）は、プレーヤ（ユーザ）が操作情報を入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ（角速度センサ、加速度センサ等）、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【００４８】
センサ１６２は、被写体情報を取得するためのセンサ情報を検出する。センサ１６２は例えばカラーセンサ１６４（カラーカメラ）、デプスセンサ１６６（デプスカメラ）を含むことができる。
【００４９】
記憶部１７０（メモリー）は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭやＳＳＤやＨＤＤなどにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。記憶部１７０は、オブジェクト情報記憶部１７２、描画バッファ１７８を含む。
【００５０】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（ＲＯＭ等）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。この情報記憶媒体１８０に、本実施形態の各部としてコンピュータ（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶できる。
【００５１】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＬＣＤ、有機ＥＬディスプレイ、ＣＲＴ、或いはＨＭＤなどにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００５２】
Ｉ／Ｆ（インターフェース）部１９４は、携帯型情報記憶媒体１９５とのインターフェース処理を行うものであり、その機能はＩ／Ｆ処理用のＡＳＩＣなどにより実現できる。携帯型情報記憶媒体１９５は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体１９５は、ＩＣカード（メモリーカード）、ＵＳＢメモリー、或いは磁気カードなどにより実現できる。
【００５３】
通信部１９６は、ネットワークを介して外部装置（他の画像生成システム、サーバシステム等）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００５４】
印刷部１９８は、例えばプリント用紙やシール紙などの印刷媒体に画像を印刷する。この印刷部１９８は、例えば印刷用ヘッド、印刷媒体の送り機構などにより実現できる。具体的には、処理部１００の印刷処理部１３２（印刷処理のプログラムモジュール）が、印刷対象画像を選択するための処理を行い、選択された印刷対象画像の印刷を、印刷部１９８に指示する。これにより、印刷対象画像が印刷された印刷物が、後述する図２の払い出し口１５２から払い出されるようになる。印刷対象画像は、例えばゲーム中のプレーヤのキャラクタの様子を撮影した画像や、プレーヤのキャラクタと他のキャラクタとで一緒に撮る記念写真の画像などである。
【００５５】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバシステム（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなサーバシステムによる情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００５６】
図２、図３（Ａ）、図３（Ｂ）は本実施形態の画像生成システムが適用されるハードウェア装置の例を示す図である。
【００５７】
図２は本実施形態の画像生成システムが適用された業務用ゲーム装置の例である。この業務用ゲーム装置は、操作ボタン、方向指示ボタンにより実現される操作部１６０や、カラーセンサ１６４、デプスセンサ１６６を有するセンサ１６２や、ＬＣＤ、ＣＲＴなどにより実現される表示部１９０や、スピーカにより実現される音出力部１９２や、コイン投入口１５０や、写真などの印刷物の払い出し口１５２を備えている。プレーヤＰＬは、表示部１９０に表示されるゲーム画像を見ながら、ゲームをプレイするための各種の動作を行う。プレーヤＰＬの動き（手足のなどの部位の動きや位置の移動）は、センサ１６２により検出される。そして検出結果に応じたゲーム処理が行われ、ゲーム処理に基づくゲーム画像が表示部１９０に表示される。
【００５８】
本実施形態の画像生成システムが適用されるハードウェア装置は、図２のような業務用ゲーム装置には限定されず、例えば図３（Ａ）に示す家庭用ゲーム装置や、図３（Ｂ）に示すパーソナルコンピュータ（情報処理装置）などの種々のハードウェア装置に適用可能である。図３（Ａ）では、カラーセンサ１６４やデプスセンサ１６６を有するセンサ１６２（センサ装置）を家庭用ゲーム装置の本体装置に接続し、当該センサ１６２を、例えば表示部であるテレビの近くに配置する。そしてセンサ１６２によりプレーヤの動作を検出することで、家庭用ゲーム装置の本体装置が、種々のゲーム処理を実行し、テレビの画面にゲーム画像を表示する。図３（Ｂ）では、センサ１６２をパーソナルコンピュータの本体装置に接続し、センサ１６２によりプレーヤの動作を検出し、ゲーム処理の結果に基づくゲーム画像を、表示部である液晶ディスプレイに表示する。
【００５９】
そして本実施形態の画像生成システム（画像生成装置、ゲーム装置、ゲームシステム）は、図１に示すように、キャラクタ処理部１１３と被写体情報取得部１１４と画像生成部１２０を含む。被写体情報取得部１１４は、センサ１６２からのセンサ情報に基づいて、被写体のスケルトン情報（広義には動き情報）を取得する。このスケルトン情報に基づいて、被写体の動きが特定される。被写体は例えば図２に示すプレーヤＰＬである。被写体は人間以外の動物などであってもよい。キャラクタ処理部１１３は、スケルトン情報に基づいてキャラクタを動作させる処理を行い、画像生成部１２０が当該キャラクタの画像を生成する。例えばスケルトン情報に基づくモーション再生によりキャラクタを動作させる。
【００６０】
そしてキャラクタ処理部１１３は、スケルトン情報による被写体の骨格認識に不正が発生すると判断される場合に、スケルトン情報に基づくキャラクタの動作の補正処理を行う。
【００６１】
本実施形態では、被写体をセンシングするセンサ１６２からのセンサ情報に基づいて、被写体の骨格認識が行われて被写体のスケルトン情報が取得されるが、このスケルトン情報による骨格認識には不正が発生する場合がある。このような骨格認識の不正が発生すると、スケルトン情報に基づくキャラクタの動作が不適切になってしまい、不適切で不自然な画像が生成されてしまう。
【００６２】
この点、本実施形態では、被写体の骨格認識に不正が発生すると判断される場合には、スケルトン情報に基づくキャラクタの動作に対して補正処理が行われる。例えば、キャラクタの動作が不適切にならないようにする補正処理が行われる。例えば、骨格認識の不正がキャラクタの動作に及ぼす影響を低減又は除去する補正処理が行われる。このようにすれば、被写体の骨格認識に不正が発生した場合にも、キャラクタの動作が不適切にならないようにする補正処理が行われることで、生成される画像が不適切な画像になってしまう事態を抑制できる。なお、被写体の骨格認識に不正が発生すると判断される場合とは、実際に骨格認識に不正が発生した場合であってもよいし、骨格認識に不正が発生することが予測(予想、推測）される場合であってもよい。
【００６３】
キャラクタ処理部１１３（モーション処理部）は、被写体の骨格認識に不正が発生すると判断される場合に、例えばスケルトン情報に基づくスケルトンモーションとキャラクタの基準モーションとのモーションブレンドを、補正処理として行う。例えばスケルトン情報に基づくスケルトンモーションのデータと、予め用意される基準モーションのデータを、所与のブレンド率でモーションブレンドする処理が行われる。基準モーションのデータは、記憶部１７０のモーションデータ記憶部１７４に記憶されている。基準モーションは例えばキャラクタの基準姿勢（基本姿勢）を規定するモーションである。モーションのデータは、例えばスケルトンを構成する骨の位置（関節位置）や骨の回転角度などのデータを含むことができる。
【００６４】
例えば第１のモーションをＭＡとし、第２のモーションをＭＢとし、各々のブレンド率α、βとし、モーションブレンド後のモーションをＭＴとしたとする。この場合に、第１のモーションＭＡと第２のモーションＭＢのモーションブレンドは、ＭＴ＝α×ＭＡ＋β×ＭＢというようなブレンド演算により実現できる。ここで例えばα＝１−βというような関係式が成り立つ。モーションブレンドの対象となるデータは、例えば骨の位置（関節位置）や骨の回転角度を表すデータであり、例えば骨のローカルマトリクスなどであってもよい。
【００６５】
またキャラクタ処理部１１３は、被写体の骨格認識において不正が発生すると判断される骨についてのみ、モーションブレンドを行ってもよい。例えばスケルトンモーションを構成する複数の骨のうち、骨格認識において不正が発生すると判断される骨についてのみ、基準モーションに含まれる基準骨とのモーションブレンドを行う。こうすることで、モーションブレンドの処理負荷や処理データ量を低減できる。
【００６６】
またキャラクタ処理部１１３は、スケルトンモーションのブレンド率と基準モーションのブレンド率を、例えば時間経過に応じて変化させる。例えばスケルトンモーションのブレンド率をαＳ、基準モーションのブレンド率をαＦとする。この場合に、骨格認識に不正が発生すると判断されるタイミングから、時間経過に伴い、例えばスケルトンモーションのブレンド率αＳを小さくすると共に、基準モーションのブレンド率αＦを大きくする。こうすることで、時間経過に伴いスケルトンモーションから基準モーションに徐々に変化するようなモーションブレンドを実現できる。
【００６７】
またキャラクタ処理部１１３は、被写体の骨格認識に不正が発生すると判断される場合に、スケルトン情報に基づくスケルトンモーションを、所与のモーションに差し替えるモーション差し替えを、補正処理として行ってもよい。即ち、骨格認識に不正が発生すると判断される場合に、スケルトンモーションを、予め用意されたモーションに差し替えて、キャラクタのモーション処理を行う。モーション差し替えの差し替え先となるモーションのデータは、モーションデータ記憶部１７４に記憶されている。この差し替え先のモーションは、キャラクタの姿勢を変化させない固定姿勢のモーションであってもよいし、キャラクタの姿勢を動的に変化させるモーション（時系列のモーション）であってもよい。
【００６８】
またキャラクタ処理部１１３は、被写体の骨格認識において不正が発生すると判断される骨に対して、補正処理を行う。例えば、キャラクタのスケルトンの全ての骨に対して補正処理を行うのではなく、骨格認識において不正が発生すると判断される骨に対して補正処理を行う。こうすることで、補正処理の処理負荷や処理データ量を低減できる。
【００６９】
またキャラクタ処理部１１３は、被写体のスケルトン情報からスケルトンの右肩位置と左肩位置を取得する。そして右肩位置と左肩位置を結ぶ線の角度に基づいて、被写体の左腕又は右腕の一方の腕の骨（広義には所定部位の骨）に不正が発生すると判断される場合に、一方の腕の骨に対する補正処理を行う。即ち、右肩位置と左肩位置を結ぶ線の角度に基づいて、一方の腕の骨について骨格認識に不正が発生すると予想される場合に、当該一方の腕の骨が不正な骨にならないようにする補正処理を行う。具体的にはキャラクタ処理部１１３は、不正と判断された一方の腕の骨について、スケルトン情報に基づくスケルトンモーションと、キャラクタの基準モーションとのモーションブレンドを行う。例えば不正と判断された一方の腕の骨に対してのみ、モーションブレンドを行う。なお、当該一方の骨の腕を所与の基準骨に差し替えるモーション差し替えを行う変形実施も可能である。
【００７０】
またキャラクタ処理部１１３は、センサ１６２からの被写体の距離に基づいて、スケルトン情報の足の骨（広義には所定部位の骨）に不正が発生すると判断される場合に、足の骨についての補正処理を行う。即ち、センサ１６２からの被写体の距離に基づいて、スケルトン情報の足の骨に不正が発生すると判断される場合に、当該足の骨が不正にならないようにする補正処理を行う。具体的にはキャラクタ処理部１１３は、足の骨に不正が発生すると判断される場合に、スケルトン情報の足の骨を、所与の基準骨に差し替えるモーション差し替えを行う。なお、この際にモーションブレンド処理を行う変形実施も可能である。
【００７１】
また本実施形態の画像生成システムは、ゲーム処理を行うゲーム処理部１１１を含む。そしてゲーム処理部１１１は、被写体の骨格認識に不正が発生すると判断される場合に、骨格認識の不正発生時用に用意されたゲームイベントを発生する。例えば補正処理が必要になった場合に、このような補正処理が行われることを回避する動作を促すようなゲームイベントを発生する。例えばプレーヤが所与の動作を行った場合に、骨格認識に不正が発生する場合には、このような動作をプレーヤが行わないようにするゲームイベントを発生する。
【００７２】
また本実施形態では、キャラクタ処理部１１１は、キャラクタの動作の補正処理として、ゲーム状況に応じた補正処理を行う。例えばゲーム状況に応じて補正処理の内容を異ならせる。例えば、骨格認識の不正発生時用のキャラクタの動作の補正処理として、モーション差し替えを行う場合には、ゲーム状況に応じたモーション差し替えを行う。例えばキャラクタが攻撃モーションを行っている場合には、骨格認識の不正発生時用の差し替え先モーションを、攻撃用の補正モーションの中から選択する。例えばスケルトン情報に基づくスケルトンモーションから、攻撃用の補正モーションに差し替える。キャラクタが防御モーションを行っている場合には、骨格認識の不正発生時用の差し替え先モーションを、防御用の補正モーションの中から選択する。例えばスケルトンモーションから、防御用の補正モーションに差し替える。ゲーム中に技が選択されている場合には、骨格認識の不正発生時用の差し替え先モーションとして、その技に対応する補正モーションを選択する。例えばスケルトンモーションから、その技に対応する補正モーションに差し替える。
【００７３】
またキャラクタ処理部１１３は、補正処理の期間中においては、補正処理後のキャラクタの動作に基づいて、キャラクタについての判定処理を行ってもよい。例えば補正処理後のキャラクタの動作（モーション）に基づいて、ゲーム進行上の所定の判定処理を行う。即ち、ゲーム進行のために、ゲーム処理において所定の判定処理が必要な場合に、補正処理の期間中においては、補正処理前のキャラクタのモーションではなく、補正処理後のキャラクタのモーションに基づいて、当該判定処理を行う。こうすることで、骨格認識に不正がない状態で、当該判定処理を実行できるようになる。
【００７４】
なおキャラクタは、複数のオブジェクトで構成され、オブジェクト空間内に配置されるモデルオブジェクトである。例えば複数の３次元のオブジェクト（パーツオブジェクト）により構成される３次元のモデルオブジェクトである。各オブジェクトは例えば複数のポリゴン（広義にはプリミティブ面）により構成される。
【００７５】
この場合に画像生成部１２０は、オブジェクト空間において、被写体（プレーヤ等）の位置に対応する位置に配置されるモデルオブジェクトのレンダリング処理を行って、キャラクタの画像を生成する。例えば被写体情報取得部１１４により取得されたスケルトン情報（被写体情報）に基づいて、被写体の位置を特定し、オブジェクト空間内において、特定された被写体の位置に対応する位置に、キャラクタであるモデルオブジェクトが配置される。そして、当該モデルオブジェクトのレンダリング処理が行われて、仮想カメラから見えるキャラクタの画像が生成される。この場合に画像生成部１２０は、モデルオブジェクトのレンダリング処理を、照明モデルに基づいて行って、キャラクタの画像を生成する。このようにすれば、キャラクタの画像として、照明モデルの光源による陰影づけが施された画像を生成できるようになる。
【００７６】
また画像生成部１２０は、被写体の撮像画像に含まれる被写体の所定部位の部位画像と、キャラクタの画像の合成処理を行って、合成画像を生成してもよい。撮像画像は、例えばセンサ１６２が有するカラーセンサ１６４（カラーカメラ）により撮影される画像（ＲＧＢ画像等のカラー画像）である。このカラーセンサ１６４とデプスセンサ１６６は別々に設けられていてもよい。例えばカラーセンサ１６４によって撮影された撮像画像から、被写体の所定部位の部位画像（例えば顔画像）が切り出され、切り出された部位画像が、キャラクタの画像に合成された合成画像が生成される。例えばキャラクタの所定部位に対応する部分に対して、被写体の部位画像が合成される。例えば、被写体の全体が映る撮像画像から、顔の部分を切り取ることで、所定部位である顔の部位画像である顔画像が取得される。撮像画像での顔の位置は、被写体情報取得部１１４により取得されたスケルトン情報（被写体情報）に基づき特定できる。
【００７７】
２．本実施形態の手法
次に本実施形態の手法について詳細に説明する。なお以下では、プレーヤの動きに応じてキャラクタを動作させるゲームに本実施形態の手法を適用した場合について説明するが、本実施形態の手法はこれに限定されず、様々なゲーム（ＲＰＧゲーム、音楽ゲーム、戦闘ゲーム、コミュニケーションゲーム、ロボットゲーム、カードゲーム、スポーツゲーム、或いはアクションゲーム等）に適用可能である。
【００７８】
２．１  ゲームの説明
まず本実施形態の画像生成システムにより実現されるゲームの例について説明する。本実施形態では図２のセンサ１６２によりプレーヤＰＬ（広義には被写体）の動きを検出し、検出された動きを反映させたゲーム処理を行って、ゲーム画像を生成している。
【００７９】
図２に示すように、センサ１６２（画像センサ）は、例えばその撮像方向（光軸方向）がプレーヤＰＬ（ユーザ、操作者）の方に向くように設置されている。例えばセンサ１６２の撮像方向は、小さな子供についてもその全体を撮像できるように、水平面に対して俯角方向に設定されている。なお図２ではセンサ１６２は表示部１９０の横に設置されているが、設置位置はこれに限定されず、任意の位置（例えば表示部１９０の下部、上部等）に設置できる。
【００８０】
センサ１６２はカラーセンサ１６４とデプスセンサ１６６を含む。カラーセンサ１６４はカラー画像（ＲＧＢ画像）を撮像するものであり、ＣＭＯＳセンサやＣＣＤなどにより実現できる。デプスセンサ１６６では、赤外線等の光を投射し、その投射光の反射強度や、投射光が戻ってくるまでの時間を検出することで、深度情報（デプス情報）が取得される。例えばデプスセンサ１６６は、赤外線を投光する赤外プロジェクタと、赤外線カメラにより構成できる。そして例えばＴＯＦ（Time Of Flight）方式により深度情報を取得する。深度情報は、その各画素位置に深度値（奥行き値）が設定され情報である。深度情報では、プレーヤやその周りの風景の深度値（奥行き値）が、例えばグレースケール値として設定される。
【００８１】
なお、センサ１６２は、カラーセンサ１６４とデプスセンサ１６６とが別々に設けられたセンサであってもよいし、カラーセンサ１６４とデプスセンサ１６６とが複合的に組み合わせられたセンサであってもよい。またデプスセンサ１６６はＴＯＦ方式以外の方式（例えばライトコーディング）のセンサであってもよい。また深度情報の取得手法としては種々の変形実施が可能であり、例えば超音波などを用いた測距センサなどにより深度情報を取得してもよい。
【００８２】
図４（Ａ）、図４（Ｂ）は、各々、センサ１６２に基づき取得される深度情報、ボディーインデックス情報の例である。図４（Ａ）は深度情報を概念的に示すものであり、この深度情報は、センサ１６２から見たプレーヤ等の被写体の距離を表す情報である。図４（Ｂ）のボディーインデックス情報は、人物領域を表す情報である。このボディーインデックス情報によりプレーヤのボディーの位置や形状を特定できる。
【００８３】
図５は、センサ１６２からのセンサ情報に基づき取得されるスケルトン情報の例である。図５ではスケルトン情報として、スケルトンを構成する骨の位置情報（３次元座標）が、関節（部位）Ｃ０〜Ｃ２０の位置情報として取得されている。Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５、Ｃ６は、各々、腰、背骨、肩中央、右肩、左肩、首、頭に対応する。Ｃ７、Ｃ８、Ｃ９、Ｃ１０、Ｃ１１、Ｃ１２は、各々、右肘、右手首、右手、左肘、左手首、左手に対応する。Ｃ１３、Ｃ１４、Ｃ１５、Ｃ１６、Ｃ１７、Ｃ１８、Ｃ１９、Ｃ２０は、各々、右腰、左腰、右膝、右かかと、右足、左膝、左かかと、左足に相当する。スケルトンを構成する各骨は、センサ１６２に映るプレーヤの各部位に対応するものとなる。例えば被写体情報取得部１１４は、センサ１６２からのセンサ情報（カラー画像情報、深度情報）に基づいて、プレーヤの３次元形状を特定する。そして３次元形状の情報や画像の動きベクトル（オプティカルフロー）などを用いて、プレーヤの各部位を推定し、各部位の関節の位置を推定する。そして推定された関節位置に対応する、深度情報での画素位置の２次元座標と、当該画素位置に設定された深度値に基づいて、スケルトンの関節の位置の３次元座標情報を求め、図５に示すようなスケルトン情報を取得する。取得されたスケルトン情報を用いることで、プレーヤの動き（手足などの部位の動きや位置の移動）を特定できるようになる。これにより、プレーヤの動きに応じてキャラクタを動作させることが可能になる。例えば図２においてプレーヤＰＬが手足を動かした場合に、これに連動して、表示部１９０に表示されるキャラクタ（プレーヤキャラクタ）の手足を動かすことが可能になる。またプレーヤＰＬが前後左右に移動すると、これに連動して、オブジェクト空間内でキャラクタを前後左右に移動させることが可能になる。
【００８４】
また本実施形態では、センサ１６２のカラーセンサ１６４によりプレーヤＰＬを撮影することで得られた撮像画像と、キャラクタ（プレーヤキャラクタ）の画像の合成画像を生成している。具体的には撮像画像から切り出された顔画像（広義には被写体画像、部位画像）と、キャラクタの画像の合成画像を生成する。
【００８５】
例えば図６では、キャラクタＣＨＰ（衣装）のモデルオブジェクトが用意されており、ポリゴンＳＣＩ（ビルボードポリゴン、スクリーン）には、撮像画像から切り出されたプレーヤＰＬの顔画像ＩＭＦが表示されている。キャラクタＣＨＰのモデルオブジェクトは、顔（頭部）以外の複数の部位のオブジェクトで構成されており、綺麗な衣装を着たキャラクタとなっている。
【００８６】
そして図６では、仮想カメラＶＣの視点位置とキャラクタＣＨＰの顔の位置を結ぶ線の延長線上に、ポリゴンＳＣＩの顔画像ＩＭＦが表示されている。仮想カメラＶＣ、キャラクタＣＨＰ、ポリゴンＳＣＩの顔画像ＩＭＦを、このような配置関係に設定することで、キャラクタＣＨＰの顔の部分にプレーヤの顔画像ＩＭＦが合成された画像を生成できるようになる。
【００８７】
なおキャラクタＣＨＰに対する顔画像ＩＭＦの画像合成手法は、図６に示す手法には限定されない。例えばキャラクタＣＨＰの顔（所定部位）を構成するオブジェクトに対して、顔画像ＩＭＦ（被写体画像、部位画像）のテクスチャをマッピングするなどの種々の画像合成手法を採用できる。
【００８８】
例えば図７（Ａ）は、センサ１６２のカラーセンサ１６４により撮像されたプレーヤＰＬの撮像画像の例である。この撮像画像からプレーヤＰＬの顔画像ＩＭＦを切り出し（トリミングし）、図６の画像合成手法によりキャラクタＣＨＰの画像と合成することで、図７（Ｂ）に示すような合成画像を生成できる。図７（Ｂ）では、顔の部分がプレーヤＰＬの顔画像ＩＭＦとなっており、顔以外の部分がＣＧ画像であるキャラクタＣＨＰの画像になっている。これによりプレーヤＰＬは、自分の分身であるキャラクタＣＨＰに対して、童話やアニメの世界の主人公が着ているような衣装を着せて、ゲームをプレイできるため、ゲームの面白味やプレーヤの熱中度を向上できる。
【００８９】
図８は、本実施形態の画像生成システムにより生成されて、図２の表示部１９０に表示されるゲーム画像の例である。プレーヤＰＬの顔画像ＩＭＦが合成されたキャラクタＣＨＰは、例えばその手に魔法の杖ＳＴを持っている。そして図２のプレーヤＰＬが腕を動かすと、この腕の動きがセンサ１６２により検出されて、図５のスケルトン情報として、腕の骨が動いているスケルトンの情報が取得される。これにより、図８に示すゲーム画像上のキャラクタＣＨＰの腕が動くようになり、魔法の杖ＳＴで、敵キャラクタＥＮ１、ＥＮ２、ＥＮ３をヒットして攻撃できるようになる。そして敵を倒した数やボーナスポイントの獲得などによって、プレーヤのゲーム成績が演算される。
【００９０】
このように本実施形態の手法によれば、プレーヤＰＬは、童話やアニメの主人公の衣装を、自分の分身であるキャラクタＣＨＰに着せて、あたかもその主人公になったかのように感じながら、図８のようなゲームをプレイできるようになる。従って、子供などのプレーヤＰＬが熱中できる面白味のあるゲームの実現が可能になる。
【００９１】
２．２  プレーヤの動きに応じたキャラクタの動作
本実施形態では、スケルトン情報を用いることで、プレーヤの動きに応じたキャラクタの動作を実現している。例えば図９において表示部１９０に表示されるキャラクタＣＨＰは、複数のオブジェクトにより構成されるモデルオブジェクトとなっている。例えばポリゴン等のプリミティブ面で構成された３次元のＣＧオブジェクトでキャラクタＣＨＰの画像が生成される。また図９に示すように、キャラクタＣＨＰの画像として、当該モデルオブジェクトの顔の位置にプレーヤＰＬ（被写体）の顔画像ＩＭＦが表示される画像が生成される。このようなキャラクタＣＨＰと顔画像ＩＭＦの合成キャラクタ画像は、例えば図６で説明した画像合成手法により生成できる。
【００９２】
なお、図９では、キャラクタＣＨＰに顔画像ＩＭＦを合成する場合について示しているが、本実施形態はこれに限定されるものでなく、顔画像ＩＭＦの合成は必須ではない。
【００９３】
本実施形態では、図９に示すようにプレーヤＰＬ（被写体）が動いた場合に、このプレーヤＰＬの動きに連動して、表示部１９０に表示されるキャラクタＣＨＰが動作する。例えばプレーヤＰＬが右に動いた場合に、それに応じて、表示部１９０に表示されるキャラクタＣＨＰも右に動く。同様にプレーヤＰＬが左に動いた場合に、それに応じて、表示部１９０に表示されるキャラクタＣＨＰも左に動く。
【００９４】
具体的には本実施形態では、図５で説明したスケルトン情報を用いてキャラクタＣＨＰの動作を制御している。例えばスケルトン情報に基づくモーションデータにより、キャラクタＣＨＰのモーション再生を行って、キャラクタＣＨＰを動作させる。
【００９５】
図１０はスケルトンを概念的に説明する図である。キャラクタＣＨＰを動作させるスケルトンは、キャラクタＣＨＰの位置に配置設定される３次元形状の骨格であり、ＳＫは、このスケルトンをスクリーンＳＣＳに投影したものを表している。スケルトンは、図５で説明したように複数の関節で構成されており、各関節の位置は３次元座標で表される。スケルトンは、図９のプレーヤＰＬの動きに連動して、その骨が動く。そして、スケルトンの骨が動くと、これに連動して、キャラクタＣＨＰの当該骨に対応する部位も動くことになる。例えばプレーヤＰＬが腕を動かすと、これに連動して、スケルトンの腕の骨が動き、キャラクタＣＨＰの腕も動くことになる。またプレーヤＰＬが足を動かすと、これに連動して、スケルトンの足の骨が動き、キャラクタＣＨＰの足も動くことになる。またプレーヤＰＬが頭部を動かすと、これに連動して、スケルトンの頭部の骨が動き、キャラクタＣＨＰの頭部も動くことになる。なお図１０では、例えば仮想カメラＶＣの視点位置にセンサ１６２が配置され、仮想カメラＶＣの視線方向にセンサ１６２の撮像方向が向いているものとして想定されている。
【００９６】
このように本実施形態では、プレーヤＰＬの動きに連動してキャラクタＣＨＰが動作する。このため、キャラクタＣＨＰが、自身の本当の分身であるかのような感覚をプレーヤに与えることができる。
【００９７】
また本実施形態では、キャラクタＣＨＰとして、複数のオブジェクトにより構成されるモデルオブジェクトを用いる。そして、オブジェクト空間（３次元仮想空間）において、プレーヤＰＬ（被写体）の位置に対応する位置に配置される当該モデルオブジェクトのレンダリング処理を行うことで、キャラクタＣＨＰの画像を生成する。例えば図１１において、キャラクタＣＨＰは、オブジェクト空間内において、図９でのプレーヤＰＬの位置に対応する位置に配置される。例えばプレーヤＰＬが前後左右に移動すると、キャラクタＣＨＰもオブジェクト空間内において前後左右に移動することになる。
【００９８】
そして、モデルオブジェクトであるキャラクタＣＨＰのレンダリング処理は、図１１に示すように光源ＬＳを用いた照明モデルに基づいて行われる。具体的には、照明モデルに基づくライティング処理（シェーディング処理）が行われる。このライティング処理は、光源ＬＳの情報（光源ベクトル、光源色、明るさ、光源タイプ等）や、仮想カメラＶＣの視線ベクトルや、キャラクタＣＨＰを構成するオブジェクトの法線ベクトルや、オブジェクトのマテリアル（色、材質）などを用いて行われる。なお照明モデルとしては、アンビエント光とディフューズ光だけを考慮したランバードの拡散照明モデルや、アンビエント光、ディフューズ光に加えてスペキュラ光も考慮するフォンの照明モデルやブリン・フォンの照明モデルなどがある。
【００９９】
このように照明モデルに基づくライティング処理を行うことで、キャラクタＣＨＰに対して光源ＬＳによる適切な陰影づけがついたリアルで高品質な画像を生成できるようになる。例えばスポットライトの光源を用いてライティング処理を行えば、スポットライトにより照らされているように見えるキャラクタＣＨＰ（衣装）の画像を生成できるようになり、プレーヤの仮想現実感等を向上できる。
【０１００】
２．３  キャラクタの動作の補正処理
以上のように本実施形態では、センサ１６２により取得されたプレーヤＰＬのスケルトン情報を用いることで、プレーヤＰＬの動きに応じたキャラクタＣＨＰの動作を実現している。
【０１０１】
しかしながら、スケルトン情報は、センサ１６２によりプレーヤＰＬをセンシングすることで取得されるものであるため、スケルトン情報による骨格認識には不正（誤り）がある場合がある。例えば図１２（Ａ）〜図１２（Ｃ）はスケルトン情報による骨格認識の不正を原因とする不具合の発生の一例を説明する図である。
【０１０２】
図１２（Ａ）ではセンサ１６２に対してプレーヤＰＬが正対しており、腕ＡＭＲ、ＡＭＬがセンサ１６２の撮像範囲（センシング範囲）に入っている。このため、腕ＡＭＲ、ＡＭＬについての骨格認識を適正に行うことができる。また図１２（Ｂ）では、センサ１６２に正対していたプレーヤＰＬが時計回りに回転しているが、この場合にも腕ＡＭＲ、ＡＭＬがセンサ１６２の撮像範囲に入っている。このため、腕ＡＭＲ、ＡＭＬについての骨格認識を適正に行うことができる。
【０１０３】
一方、図１２（Ｃ）では、プレーヤＰＬがセンサ１６２に対して真横を向いている。このため、腕ＡＭＬについては撮像範囲に入るが、腕ＡＭＲについては撮像範囲に入らなくなる。即ち腕ＡＭＲが、プレーヤＰＬの胴体に隠れてしまい、センサ１６２から見えなくなってしまう。従って、図１２（Ｃ）の状態でセンサ１６２からのセンサ情報に基づき取得されたスケルトン情報には、その骨格認識に不正（誤り）がある可能性が極めて高い。従って、このような不正のあるスケルトン情報を用いて、図９のようにキャラクタＣＨＰを動作させようとすると、キャラクタＣＨＰの動作が誤った動きになり、生成される画像が不適切で不自然な画像になってしまう。例えばキャラクタＣＨＰの腕（ＡＭＲに対応する腕）があり得ない方向に折れ曲がったりするなど、あたかも骨が壊れてしまったかのように見える画像が生成されてしまう。
【０１０４】
図１３（Ａ）〜図１４（Ｂ）はスケルトン情報による骨格認識の不正を原因とする不具合の発生の他の例を説明する図である。
【０１０５】
図１３（Ａ）では、プレーヤＰＬはセンサ１６２から遠い距離に位置している。そしてプレーヤＰＬは、面ＳＡを有する移動エリアＡＲ（プレイエリア）において自在に移動することができ、図１３（Ｂ）では、センサ１６２から遠い距離に位置していたプレーヤＰＬが、センサ１６２の方に近づいている。即ち、図９においてプレーヤＰＬは、前方方向に移動しており、センサ１６２や表示部１９０に近づいている。
【０１０６】
図１４（Ａ）は、図１３（Ａ）のようにプレーヤＰＬがセンサ１６２から遠い距離に位置している場合でのセンサ１６２（カラーセンサ１６４）の撮像画像の例である。図１４（Ａ）ではプレーヤＰＬの全体が撮像範囲に入っている。
【０１０７】
一方、図１４（Ｂ）は、図１３（Ｂ）のようにプレーヤＰＬがセンサ１６２に接近した場合でのセンサ１６２の撮像画像の例である。図１４（Ｂ）では、プレーヤＰＬが接近することで、センサ１６２の撮像範囲（センシング範囲）にプレーヤＰＬが収まらなくなっており、足の部分が撮像画像に入らなくなっている。従って、図１４（Ｂ）のような状態で、センサ１６２からのセンサ情報（撮像画像、深度情報等）に基づきスケルトン情報を取得しても、当該スケルトン情報において、プレーヤＰＬの足の部分の骨格認識は不正なものになっている。従って、当該スケルトン情報に基づいて、図９のようにキャラクタＣＨＰを動作させた場合に、キャラクタＣＨＰの動作が誤った動きになり、生成される画像が不適切で不自然な画像になってしまう。例えばキャラクタＣＨＰの足の方向があり得ない方向に曲がるなど、あたかも骨が壊れてしまったかのように見える画像が生成されてしまう。
【０１０８】
このような不具合の発生を防止するために、本実施形態では、スケルトン情報によるプレーヤＰＬ（被写体）の骨格認識に不正が発生すると判断（予測、推測）される場合に、スケルトン情報に基づくキャラクタＣＨＰの動作の補正処理を行う。例えばキャラクタＣＨＰのモーションの補正処理を行う。
【０１０９】
具体的には、補正処理としてモーションブレンドを行う。例えばプレーヤＰＬの骨格認識に不正が発生すると判断される場合に、スケルトン情報に基づくスケルトンモーションと、キャラクタの基準モーションとのモーションブレンドを行う。
【０１１０】
図１５はモーションブレンドについての説明図である。図１５においてスケルトンモーションＭＳは、スケルトン情報に基づくモーションである。即ち、センサ情報により取得されたスケルトン情報による骨格認識により規定されるキャラクタＣＨＰのモーションである。例えばスケルトンモーションＭＳは、スケルトン情報が含む骨の位置（関節位置）や骨の回転角度等により規定されるキャラクタＣＨＰのモーション（姿勢）である。
【０１１１】
一方、基準モーションＭＦは、キャラクタＣＨＰの基準となるモーション（基準姿勢）として予め用意されているものである。この基準モーションＭＦのデータは、図１のモーションデータ記憶部１７４に記憶されており、基準姿勢での骨の位置（関節位置）や骨の回転角度などを含むデータである。この基準モーションＭＦをキャラクタＣＨＰに適用することで、キャラクタＣＨＰの姿勢は、基本的な立ち姿勢になる。
【０１１２】
そして図１５に示すように本実施形態では、プレーヤＰＬの骨格認識に不正が発生すると判断される場合に、スケルトンモーションＭＳと基準モーションＭＦのモーションブレンドを行い、得られたモーションＭＴによりキャラクタＣＨＰを動作させる。例えばスケルトンモーションＭＳの腕の骨ＢＳＲ、ＢＳＬと、基準モーションの腕の骨ＢＦＲ、ＢＦＬのモーションブレンドを行うことで、モーションＭＴの腕の骨ＢＲ、ＢＬを位置や回転角度を求める。
【０１１３】
このようなモーションブレンドを行えば、スケルトンモーションＭＳに不正な骨があった場合にも、適正な骨より構成される基準モーションＭＦがモーションブレンドされることで、スケルトンモーションＭＳの不正な骨による悪影響を低減できる。
【０１１４】
例えば図１２（Ｃ）では、プレーヤＰＬの腕ＡＭＲに対応するスケルトンモーションＭＳの腕の骨に不正が生じる。この点、本実施形態のモーションブレンドによる補正処理を行えば、このスケルトンモーションＭＳの不正な腕の骨に対して、基準モーションＭＦの適正な腕の骨（基準骨）がブレンドされるようになり、スケルトンモーションＭＳの不正な骨による悪影響を低減できる。例えばスケルトンモーションＭＳでの腕の骨が、不適切な方向に折れ曲がっていた場合にも、基準モーションＭＦの適正な腕の骨がブレンドされることで、不適切な方向への腕の骨の折れ曲がりを適正できる。この結果、キャラクタＣＨＰの画像が不適切になったり、不自然になってしまう事態を抑制できる。
【０１１５】
また図１４（Ｂ）では、プレーヤＰＬの足が撮像範囲に入らないことで、この足に対応するスケルトンモーションＭＳの足（脚）の骨に不正が生じる。この点、本実施形態のモーションブレンドによる補正処理を行えば、このスケルトンモーションＭＳの不正な足の骨に対して、基準モーションＭＦの適正な足の骨がブレンドされるようになり、スケルトンモーションＭＳの不正な骨による悪影響を低減できる。例えばスケルトンモーションＭＳでの足の骨が、不適切な方向に折れ曲がっていた場合にも、基準モーションＭＦの適正な足の骨がブレンドされることで、不適切な方向への骨の折れ曲がりを適正できる。この結果、キャラクタＣＨＰの画像が不適切になったり、不自然になってしまう事態を抑制できる。
【０１１６】
またモーションブレンドの手法によれば、プレーヤＰＬをセンシングしたセンサ情報に基づくスケルトンモーションＭＳの影響を、ブレンド後のモーションＭＴに反映できる。従って、プレーヤＰＬの動きも反映させた補正処理を実現できるという効果がある。そして後述するように、モーションブレンドを行う場合には、図１５のスケルトンモーションＭＳのブレンド率と基準モーションＭＦのブレンド率を時間経過に応じて変化させることが望ましい。このようにすれば、キャラクタＣＨＰの姿勢を、スケルトンモーションＭＳによる姿勢から、基準モーションＭＦによる姿勢に時間経過に伴い徐々に変化させることが可能になり、より自然に見えるキャラクタの動作画像を生成できるようになる。
【０１１７】
なお本実施形態では、プレーヤＰＬの骨格認識において不正が発生すると判断される骨に対して、補正処理を行う。具体的には、図１５のモーションブレンドを行う場合に、骨格認識において不正が発生すると判断される骨についてのみ、モーションブレンドを行う。即ち、キャラクタＣＨＰのスケルトンの全体である全ての骨についてモーションブレンドを行うのではなく、不正となる骨に対してのみモーションブレンドを行う。例えば不正となった骨の位置（関節位置）や回転角度についてのみブレンド処理を行う。例えば図１２（Ｃ）の場合には、腕ＡＭＲに対応する骨に対してのみ、モーションブレンドを行う。図１４（Ｂ）の場合には足に対応する骨に対してのみ、モーションブレンドを行う。このようにすれば、スケルトンの全体についてモーションブレンドを行う場合に比べて、処理負荷を大幅に低減できるようになる。
【０１１８】
また本実施形態では、プレーヤＰＬ（被写体）の骨格認識に不正が発生すると判断される場合に、スケルトン情報に基づくスケルトンモーションを、所与のモーションに差し替えるモーション差し替えを、補正処理として行ってもよい。
【０１１９】
例えば図１６において、骨格認識に不正が発生すると判断される場合に、スケルトンモーションＭＳを、基準モーションＭＦに差し替える。モーションの差し替え先となる基準モーションＭＦのデータは、図１のモーションデータ記憶部１７４に記憶されている。骨格認識に不正が発生すると判断される場合には、この基準モーションＭＦのデータをモーションデータ記憶部１７４から読み出して、モーション差し替えの処理を行う。
【０１２０】
例えば図１６では、スケルトンモーションＭＳの足の骨ＢＳＲ２、ＢＳＬ２が不正となっている。即ち図１４（Ｂ）のようにプレーヤＰＬの足の部分がセンサ１６２の撮像範囲に入っていない場合には、センサ１６２によっては足を検出できないため、センサ情報によって取得されたスケルトン情報による骨格認識において、足の骨に不正が発生する。例えばスケルトン情報が各骨の信頼度情報を含む場合に、足の骨についての信頼度が非常に低い値になる。即ち、プレーヤＰＬのスケルトン情報を求める際に、図１４（Ｂ）のようにプレーヤＰＬの足を検出できない場合には、推定処理により足の骨の位置や回転角度を特定することになる。そして図１４（Ｂ）では足を検出できていないため、足の骨の推定処理の信頼度が非常に低いことが、スケルトン情報が含む信頼度情報により知らされる。この場合に信頼度が低い足の骨の情報を用いて、キャラクタＣＨＰのモーション（姿勢）を決定すると、図１６のスケルトンモーションＭＳのように、足の骨ＢＳＲ２、ＢＳＬ２が不自然な方向に曲がったような姿勢になってしまい、生成される画像が不適切な画像になってしまう。
【０１２１】
この点、図１６では、スケルトンモーションＭＳから基準モーションＭＦにモーション差し替えが行われる。これにより、曲がった方向の骨ＢＳＲ２、ＢＬＳ２が、真っ直ぐな骨ＢＦＲ２、ＢＦＬ２に差し替えられるようになる。即ち基準モーションＭＦに基づく適正な骨ＢＦＲ２、ＢＦＬ２に置き換わる。従って、足が不自然な方向に曲がってみるような不適切な画像が生成されてしまうのを抑制できる。
【０１２２】
２．４  補正処理の具体例
次に、本実施形態の補正処理の具体例について説明する。図１７（Ａ）〜図１７（Ｄ）は、図１２（Ａ）〜図１２（Ｃ）で説明した不具合の発生を防止する補正処理の具体例を示す図である。
【０１２３】
まず図１７（Ａ）に示すように、図５で説明したスケルトン情報から、スケルトンの右肩位置Ｃ３と左肩位置Ｃ４を取得し、右肩位置Ｃ３と左肩位置Ｃ４を結ぶ線ＬＳを求める。そして、この線ＬＳの角度θに基づいて、プレーヤＰＬの左腕又は右腕の一方の腕の骨に不正が発生するか否かを判断する。
【０１２４】
例えば図１７（Ｂ）〜図１７（Ｄ）では、角度θは、線ＬＳと仮想カメラＶＣの視線方向ＤＶとのなす角度になっている。ここで、センサ１６２は、オブジェクト空間において仮想カメラＶＣの位置に配置設定されているものと想定されている。
【０１２５】
そして図１７（Ｂ）では、図１２（Ａ）に示すように、センサ１６２に対してプレーヤＰＬが正面方向を向いて正対しているため、角度θ＝９０度となっている。この場合には図１２（Ａ）のように、センサ１６２によりプレーヤＰＬの両腕が適正に検出されていると考えられる。従って、スケルトン情報による骨格認識には不正が発生していないと判断する。
【０１２６】
図１７（Ｃ）では、図１２（Ｂ）のようにプレーヤＰＬが時計回りに回転しており、線ＬＳと視線方向ＤＶのなす角度θは、９０度よりも大きくなっている。この場合にも、図１２（Ｂ）に示すように、センサ１６２によりプレーヤＰＬの両腕が適正に検出されていると考えられる。従って、骨格認識に不正が発生していないと判断する。
【０１２７】
一方、図１７（Ｄ）では、図１７（Ｃ）に対して、プレーヤＰＬが更に回転しており、角度θが更に大きくなっている。例えばθ≧９０度＋６０度＝１５０度になっている。この場合には、例えば図１２（Ｃ）のようにプレーヤＰＬが真横を向いた場合と同様に、プレーヤＰＬの一方の腕（例えば右腕）が、例えば胴体等に隠れて、センサ１６２により適正に検出されてないと考えられる。従って、骨格認識に不正が発生していると判断（予測、推測）する。そして、一方の腕（右腕）の骨に対する補正処理を行う。具体的には、図１５で説明したように、不正と判断された一方の腕（右腕）の骨について、スケルトン情報に基づくスケルトンモーションＭＳと、基準モーションＭＦとのモーションブレンドを行う。より具体的には、骨格認識において不正が発生すると判断される一方の腕の骨についてのみ、モーションブレンドを行う。
【０１２８】
このようにすれば、プレーヤＰＬが回転することで、一方の腕がプレーヤＰＬの胴体等に隠れてしまい、骨格認識に不正が発生すると予測される場合に、当該一方の腕の骨に対して補正処理が行われるようになる。例えば当該一方の腕の骨について、基準モーションＭＦの骨（基準骨）とのモーションブレンドが行われるようになる。従って、プレーヤＰＬが回転等して一方の腕が胴体等に隠れるような事態が生じた場合にも、表示部１９０には、適正なモーションで動作するキャラクタＣＨＰが表示されるようになり、生成されるゲーム画像が不適切で不自然な画像になってしまう事態を抑制できる。
【０１２９】
なお、スケルトンモーションＭＳと基準モーションＭＦのモーションブレンドを行う場合には、スケルトンモーションＭＳのブレンド率と基準モーションＭＦのブレンド率を時間経過に応じて変化させることが望ましい。
【０１３０】
例えば図１８ではタイミングｔ１において、スケルトン情報による骨格認識に不正が発生すると判断されている。例えば図１７（Ｄ）のように角度θが所定角度以上（例えば１５０度以上）になっており、骨格認識に不正が発生すると予測されている。この場合には、スケルトンモーションＭＳ（ＭＳ１、ＭＳ２、ＭＳ３、ＭＳ４・・・）と基準モーションＭＦ（ＭＦ１、ＭＦ２、ＭＦ３、ＭＦ４・・・・）のモーションブレンドを行うと共に、スケルトンモーションＭＳのブレンド率αＳと、基準モーションＭＦのブレンド率αＦを、タイミングｔ１からの時間経過に伴い変化させる。例えばスケルトンモーションＭＳのブレンド率αＳについては、タイミングｔ１からの時間経過に伴い徐々に小さくする。一方、基準モーションＭＦのブレンド率αＦについては、タイミングｔ１からの時間経過に伴い徐々に大きくする。これにより、各タイミングｔ１、ｔ２、ｔ３、ｔ４・・・でのキャラクタのモーションＭＴ（ＭＴ１、ＭＴ２、ＭＴ３、ＭＴ４・・・）を生成できるようになる。
【０１３１】
このようにすれば、タイミングｔ１では、スケルトンモーションＭＳのブレンドの割合が最も大きい一方で、基準モーションＭＦのブレンドの割合が最も小さくなる。そしてタイミングｔ１からの時間経過に伴い、スケルトンモーションＭＳのブレンドの割合が徐々に小さくなると共に、基準モーションＭＦのブレンドの割合が徐々に大きくなるようなモーションブレンドが行われるようになる。従って、プレーヤＰＬの動きに基づくスケルトンモーションＭＳから、キャラクタＣＨＰの基準姿勢に基づく基準モーションＭＦへと、キャラクタＣＨＰの姿勢を徐々に変化させることが可能になる。従って、プレーヤＰＬの動きを、ある程度反映させながら、骨格認識の不正を原因とする不具合の発生を抑制できるモーションブレンドを実現できる。
【０１３２】
また本実施形態では、センサ１６２からのプレーヤＰＬの距離に基づいて、スケルトン情報の足の骨に不正が発生すると判断される場合に、当該足の骨についての補正処理を行う。具体的には図１６で説明したように、足の骨に不正が発生すると判断される場合に、スケルトン情報の足の骨ＢＳＲ２、ＢＳＬ２を、基準骨ＢＦＲ２、ＢＦＬ２に差し替える。
【０１３３】
例えば図１９（Ａ）では、センサ１６２からのプレーヤＰＬの距離が遠い（所定距離よりも長い）と判断される。この場合には、プレーヤＰＬの動きを検出することで得られたスケルトン情報によるスケルトンモーションＭＳを用いて、キャラクタＣＨＰを動作させる。これによりプレーヤＰＬの動きに応じたキャラクタＣＨＰの動作を実現できる。
【０１３４】
一方、図１９（Ｂ）では、プレーヤＰＬがセンサ１６２の方に近づいており、センサ１６２からのプレーヤＰＬの距離が近い（所定距離よりも短い）と判断される。この場合に、スケルトン情報に基づくスケルトンモーションＭＳを、所与のモーションに差し替えるモーション差し替えを行う。具体的には図１６に示すように、スケルトンモーションＭＳの骨ＢＳＲ２、ＢＳＬ２を、基準モーションＭＦの骨ＢＦＲ２、ＢＦＬ２（基準骨）に差し替える。
【０１３５】
このようにすれば、図１９（Ｂ）のようにプレーヤＰＬがセンサ１６２に接近することで、図１４（Ｂ）のようにプレーヤＰＬの足が撮像範囲に入らなくなって、足の位置を検出できないような場合に、キャラクタＣＨＰの足が想定外の方向に向くような不具合の発生を抑制できる。即ち、図１６のように基準モーションＭＦの真っ直ぐな骨ＢＦＲ２、ＢＦＬ２（地面に対して垂直方向の骨）に差し替えることで、キャラクタＣＨＰの画像が不適切で不自然な画像になってしまう事態を抑制できるようになる。
【０１３６】
２．５  変形例
次に本実施形態の種々の変形例を説明する。例えば図１５、図１６では、スケルトン情報による骨格認識に不正が発生すると判断される場合に、モーションブレンドやモーション差し替えによる補正処理を行っているが、本実施形態はこれに限定されない。
【０１３７】
例えばプレーヤの骨格認識に不正が発生すると判断される場合に、骨格認識の不正発生時用に用意されたゲームイベントを発生する手法を採用してもよい。図２０はこの手法の処理を説明するフローチャートである。
【０１３８】
まずプレーヤのスケルトン情報を取得する（ステップＳ１）。そしてスケルトン情報による骨格認識に不正が発生するか否かを判断する（ステップＳ２）。例えば図１７（Ａ）〜図１７（Ｄ）、図１９（Ａ）、図１９（Ｂ）で説明した手法により、骨格認識に不正が発生するか否かを判断（予測）する。そして、不正が発生すると判断された場合に、骨格認識の不正発生時用のゲームイベントを発生する（ステップＳ３）。このゲームイベントの情報（ゲーム処理情報）は、図１の記憶部１７０に記憶されている。
【０１３９】
例えば図１２（Ａ）〜図１２（Ｃ）に示すようにプレーヤＰＬが体を回転させることで、骨格認識の不正が発生する場合を想定する。この場合には、例えばプレーヤＰＬの体がある程度回転したことが検出された場合に、プレーヤＰＬの体の回転を停止させたり、元に戻させるようなゲームイベントを発生させる。例えば、プレーヤＰＬが体を回転させずに、表示部１９０に正対した姿勢をとることを促す誘導表示を行う。例えば誘導表示用のキャラクタを表示部１９０に表示したり、誘導表示の文字情報やアイコン情報等を表示部１９０に表示する。
【０１４０】
また図１３（Ｂ）、図１４（Ｂ）のように、プレーヤＰＬがセンサ１６２に接近することで、プレーヤＰＬの足等の部位が検出できなくなることで、骨格認識の不正が発生する場合を想定する。この場合には、プレーヤＰＬの接近移動を停止させるようなゲームイベントを発生させる。例えば、プレーヤＰＬが接近せずに立ち止まったり、後方に移動することを促す誘導表示を行う。例えば誘導表示用のキャラクタを表示部１９０に表示したり、誘導表示の文字情報やアイコン情報等を表示部１９０に表示する。
【０１４１】
また図２１（Ａ）〜図２１（Ｃ）は、キャラクタＣＨＰが特殊技を繰り出すモーションの例である。この特殊技は、例えば「ア」、「イ」、「ウ」、「エ」、「オー」のかけ声と共に繰り出される技であり、図２１（Ａ）が「ア」、「イ」、図２１（Ｂ）が「ウ」、「エ」、図２１（Ｃ）が「オー」のタイミングに相当する。
【０１４２】
この場合に、まず、当該「アイウエオー」の特殊技の動きをプレーヤＰＬが行うことを指示する指示画面が、図２の表示部１９０に表示される。すると、この指示画面のタイミングから、プレーヤＰＬは図２１（Ａ）〜図２１（Ｃ）のモーションに対応する技動作を行う。即ち、図２１（Ａ）のような正面向きの姿勢から、図２１（Ｂ）のように体を回転させ、最後の「オー」のタイミングで両手を前に突き出す。
【０１４３】
画像生成システムは、上記の指示画面の指示タイミングで、プレーヤＰＬが上述した技動作を開始したか否かを判断し、所定の技期間内（例えば３秒〜６秒）の間に、プレーヤＰＬが当該技動作を完了したか否かを判断する。
【０１４４】
ここで、例えば図２１（Ｂ）のようにプレーヤＰＬが体を大きく回転させた場合には、図１２（Ｃ）、図１７（Ｄ）等で説明したように、適正な骨格認識が出来なくなってしまう。この場合に、図１７（Ａ）〜図１７（Ｄ）で説明した角度θが所定角度になるまでは、プレーヤＰＬの動きを検出することで取得されたスケルトン情報に基づくスケルトンモーションで、キャラクタＣＨＰを動作させる。そして、角度θが所定角度を超えた場合には、当該スケルトンモーションから、「アイウエオー」の特殊技用に用意された特殊技モーションに切り替えるモーション補正処理を行って、キャラクタＣＨＰを動作させる。これにより骨格認識の不正を原因とするモーション破壊を抑制できる。そして、上述した技期間内（３秒〜６秒）において、図２１（Ａ）〜図２１（Ｃ）に対応する技動作を、プレーヤＰＬが行っていると、スケルトン情報等に基づき判断される間は、当該モーション補正処理を継続して実行する。
【０１４５】
そして、当該技期間内において、プレーヤＰＬが図２１（Ｃ）に対応する技動作を適正に行った場合には、特殊技が成立したとして、キャラクタＣＨＰが特殊攻撃（ビームの発射等）を行うゲーム演出処理を行う。
【０１４６】
この場合に、図２１（Ｃ）に示すように両手を突き出す動作の判定処理については、図４（Ａ）等で説明した深度情報を用いることで実現できる。例えば図２１（Ｃ）のタイミングで、両手を突き出したと判断されるような深度情報が検出された場合には、特殊技の最後の「オー」の動作にプレーヤＰＬが成功したと判断する。また図２１（Ａ）〜図２１（Ｃ）の一連の技動作では、プレーヤＰＬの腰の位置についても、スケルトン情報に基づいて検出する。そして、プレーヤＰＬが、腰を低くして技動作を行っていることが検出された場合には、適正な技動作を行っていると判断する。
【０１４７】
このように図２１（Ａ）〜図２１（Ｃ）では、キャラクタの動作の補正処理として、ゲーム状況に応じた補正処理を行っている。即ち、図２１（Ａ）〜図２１（Ｃ）は、キャラクタＣＨＰの技（「アイウエオー」の特殊技）が選択されているゲーム状況であるため、骨格認識に不正が発生していると判断される場合に、選択されている技に対応する補正モーションへのモーション差し替えが行われている。つまり図２１（Ｂ）のようにキャラクタＣＨＰの上半身が回転して腕が見えなくなるような状況において、スケルトン情報に基づくスケルトンモーションから、技に対応する補正モーションへのモーション差し替えが行われている。なお、キャラクタＣＨＰが攻撃モーションを行っている場合には、スケルトンモーションから、予め用意されている攻撃用の補正モーションに差し替えればよい。またキャラクタＣＨＰが防御モーションを行っている場合には、スケルトンモーションから、予め用意されている防御用の補正モーションに差し替えればよい。
【０１４８】
また本実施形態では、キャラクタの動作（モーション）の補正処理の期間中においては、補正処理後のキャラクタの動作に基づいて、キャラクタについての判定処理を行う。例えば補正処理後のモーションに基づいて、ゲーム進行上の種々の判定処理を実行する。
【０１４９】
例えば本実施形態では、プレーヤのキャラクタと他のキャラクタとで一緒に撮る記念写真の撮影モードが用意されている。この撮影モードで撮影された画像は、図１の印刷部１９８により印刷媒体に印刷されて、払い出し口１５２から払い出される。
【０１５０】
このような撮影モードの画像において、例えば図２２のＣ１に示すように、プレーヤのキャラクタＣＨＰとキャラクタＣＨとが重なってしまうと、記念写真の構図としては好ましくなく、記念写真の価値が低下してしまう。
【０１５１】
そこで本実施形態では、図２２のＣ１において、キャラクタＣＨＰとキャラクタＣＨとが重なっているか否かを判定する重なり判定処理を行う。そして重なっていると判定された場合には、図２２のＣ２に示すように、キャラクタＣＨＰとキャラクタＣＨが重ならないようにする再配置処理を行う。具体的には、オブジェクト空間内でのキャラクタＣＨＰの位置を例えば左側に移動する再配置処理を行って、表示画面上においてキャラクタＣＨＰとキャラクタＣＨが重ならないようにする。なお、キャラクタＣＨＰとキャラクタＣＨの両方を、互いに遠ざけるように移動したり、キャラクタＣＨの方を移動させることも可能である。図２２に示すようにキャラクタ同士の重なりを検出して、両者が重ならないように再配置処理を行うことで、適切な構図の画像を生成できるようになる。
【０１５２】
このような再配置処理のためのキャラクタＣＨＰ、ＣＨの重なり判定処理を行う場合に、補正処理後のキャラクタＣＨＰの動作に基づいて、当該重なり判定処理を実行する。
【０１５３】
例えば図２３（Ａ）の補正処理期間は、図１５、図１６で説明したようなキャラクタＣＨＰの動作の補正処理が行われる期間である。この補正処理期間においては、補正処理後のモーションで判定処理を行う。例えばモーションブレンド後のモーションや、モーション差し替え後のモーションを用いて、例えば図２２で説明した重なり判定処理を行う。
【０１５４】
例えば図２３（Ｂ）では、プレーヤＰＬが体を回転したことにより、キャラクタＣＨＰが腕ＡＭＬの骨については、骨格認識が出来ない状態（不正な状態）になっている。この場合には、図１５、図１６で説明したような補正処理を行う。例えば腕ＡＭＬの骨についてのモーションブレンドやモーション差し替えを行う。そして、この補正処理後の骨ＡＭＬに基づいて、図２２で説明した重なり判定処理を行う。例えばキャラクタＣＨＰの腕ＡＭＬがキャラクタＣＨと重なっていないかを判定する。このようにすれば、補正処理により補正された後の適切なキャラクタの動作で、重なり判定処理を実現できるため、より適正な重なり判定処理を実現できるようになる。
【０１５５】
３．詳細な処理
次に本実施形態の詳細な処理例について、図２４、図２５のフローチャートを用いて説明する。
【０１５６】
図２４では、まず、プレーヤのスケルトン情報を取得する（ステップＳ１）。そして図１７（Ａ）〜図１７（Ｄ）で説明したように、右肩位置Ｃ３と左肩位置Ｃ４を結ぶ線ＬＳの角度が、腕の骨が不正になる角度になったか否かを判断する（ステップＳ１２）。例えば図１７（Ｄ）のような角度θになった場合に、腕の骨が不正になる角度になったと判断する。そして不正になる角度になった場合には、不正と判断される骨について、モーションブレンド期間が終了するまで、スケルトンモーションＭＳと基準モーションＭＦのモーションブレンドを行う（ステップＳ１３、Ｓ１４）。例えば図１５で説明したようなモーションブレンドの処理を行う。この際に図１８で説明したように、スケルトンモーションＭＳのブレンド率αＳと、基準モーションＭＦのブレンド率αＦを、時間経過に伴い変化させる処理を、モーションブレンド期間が終了するまで行う。
【０１５７】
図２５では、まず、センサ１６２から見たプレーヤＰＬの深度情報を取得し、センサ１６２からのプレーヤＰＬの距離を求める（ステップＳ２１）。
【０１５８】
次に、図１９（Ａ）、図１９（Ｂ）で説明したように、センサ１６２からのプレーヤＰＬの距離が、足の骨が不正になる距離になったか否かを判断する（ステップＳ２２）。即ち図１４（Ｂ）のように、プレーヤＰＬの足をセンサ１６２により検出できないような距離になったかを判断する。そして、そのような距離になった場合には、図１６で説明したように、スケルトンモーションＭＳの足の骨ＢＳＲ２、ＢＳＬ２を、基準モーションＭＦの基準骨ＢＦＲ２、ＢＦＬ２に差し替えるモーション差し替えを行う（ステップＳ２３）。
【０１５９】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（被写体、所定部位の骨、動き情報等）と共に記載された用語（プレーヤ、腕・足の骨、スケルトン情報等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、スケルトン情報の取得処理、キャラクタの動作処理、画像の生成処理、キャラクタの動作の補正処理、モーションブレンド処理、モーション差し替え処理等も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【符号の説明】
【０１６０】
ＰＬ  プレーヤ（被写体）、ＣＨＰ  キャラクタ、ＩＭＦ  顔画像（部位画像）、
ＭＳ  スケルトンモーション、ＭＦ  基準モーション、
ＭＴ  モーションブレンド後のモーション、
ＢＳＲ、ＢＳＬ、ＢＦＲ、ＢＦＬ、ＢＲ、ＢＬ  腕の骨、
ＢＳＲ２、ＢＳＬ２、ＢＦＲ２、ＢＦＬ２  足の骨、
Ｃ３  右肩位置、Ｃ４  左肩位置、ＬＳ  線、θ  角度、
１００  処理部、１０２  入力処理部、１１０  演算処理部、１１１  ゲーム処理部、
１１２  オブジェクト空間設定部、１１３  キャラクタ処理部、
１１４  被写体情報取得部、１１８  ゲーム成績演算部、
１１９  仮想カメラ制御部、１２０  画像生成部、１３０  音生成部、
１３２  印刷処理部、１４０  出力処理部、１５０  払い出し口、１５２  コイン投入口、
１６０  操作部、１６２  センサ、１６４  カラーセンサ、１６６  デプスセンサ、
１７０  記憶部、１７２  オブジェクト情報記憶部、１７４  モーションデータ記憶部、
１７８  描画バッファ、１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  Ｉ／Ｆ部、１９５  携帯型情報記憶媒体、１９６  通信部、１９８  印刷部
【図１】
2017138915.tif 000003
【図２】
2017138915.tif 000004
【図３】
2017138915.tif 000005
【図４】
2017138915.tif 000006
【図５】
2017138915.tif 000007
【図６】
2017138915.tif 000008
【図７】
2017138915.tif 000009
【図８】
2017138915.tif 000010
【図９】
2017138915.tif 000011
【図１０】
2017138915.tif 000012
【図１１】
2017138915.tif 000013
【図１２】
2017138915.tif 000014
【図１３】
2017138915.tif 000015
【図１４】
2017138915.tif 000016
【図１５】
2017138915.tif 000017
【図１６】
2017138915.tif 000018
【図１７】
2017138915.tif 000019
【図１８】
2017138915.tif 000020
【図１９】
2017138915.tif 000021
【図２０】
2017138915.tif 000022
【図２１】
2017138915.tif 000023
【図２２】
2017138915.tif 000024
【図２３】
2017138915.tif 000025
【図２４】
2017138915.tif 000026
【図２５】
2017138915.tif 000027