ゲームプログラムおよびゲーム装置
【構成】ゲーム装置10は、マイク32から入力されたマイク入力情報に基づいてゲーム処理を実行する。ゲーム装置10のCPU(42)は、ユーザをカメラ16で撮像する撮像ステップ(S13〜S17,S53〜S57)、撮像ステップで撮像して得られた画像を示す画像データに基づいて、ユーザを検出したか否かを判定する検出判定ステップ(S23,S63)、および検出判定ステップでユーザを検出したと判定されたときに、マイク入力情報に基づいてゲーム処理を行う処理ステップ(S31,S71)を実行する。
【効果】マイク入力操作をユーザの意図通りにゲーム処理に反映させることができる。
【効果】マイク入力操作をユーザの意図通りにゲーム処理に反映させることができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ゲームプログラムおよびゲーム装置に関し、特にたとえば、マイクから入力されたマイク入力情報に基づいてゲーム処理を実行する、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
この種の従来のゲームプログラムとしては、たとえば特許文献1に開示されたものが知られている。この背景技術では、マイクから入力されたマイク入力情報をメモリに記憶し、記憶したマイク情報に基づいて所定のゲーム処理を行う。
【特許文献1】特開2006‐204410号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
特許文献1の背景技術では、ユーザが実際に操作していない状況であっても、ユーザ以外の人から入力された音声や風などの影響によるマイク入力情報を有効なものと判断してゲーム処理に反映させてしまう可能性があり、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させる点については改善の余地があった。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【0005】
この発明の他の目的は、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0006】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0007】
第1の発明は、マイクから入力されたマイク入力情報に基づいてゲーム処理を実行するゲーム装置のコンピュータに、ユーザをカメラで撮像する撮像ステップ、撮像ステップで撮像して得られた画像を示す画像データに基づいて、ユーザを検出したか否かを判定する検出判定ステップ、および検出判定ステップでユーザを検出したと判定されたときに、マイク入力情報に基づいてゲーム処理を行う処理ステップを実行させるための、ゲームプログラムである。
【0008】
第1の発明では、ゲーム装置(10)は、マイク(32)から入力されたマイク入力情報に基づいてゲーム処理を実行する。ゲームプログラム(70)はゲーム装置のコンピュータ(42)に、撮像ステップ(S13〜S17,S53〜S57)、検出判定ステップ(S23,S63)、および処理ステップ(S31,S71)を実行させる。撮像ステップではユーザをカメラ(16)で撮像し、検出判定ステップでは、撮像ステップで撮像して得られた画像を示す画像データに基づいて、ユーザを検出したか否かを判定する。処理ステップでは、検出判定ステップでユーザを検出したと判定されたときに、マイク入力情報に基づいてゲーム処理を行う。なお、検出判定ステップでユーザを検出していないと判定されたときには、マイク入力情報に基づくゲーム処理は行われない。
【0009】
第1の発明によれば、撮像した画像からユーザを検出した場合にマイクの入力を有効とするので、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる。
【0010】
第2の発明は、第1の発明に従属するゲームプログラムであって、検出判定ステップは、撮像ステップで撮像して得られた画像を示す画像データに基づいて、ユーザの肌色を検出したか否かを判定することにより、ユーザを検出したか否かを判定する。
【0011】
第3の発明は、第2の発明に従属するゲームプログラムであって、撮像ステップで撮像して得られた画像を示す画像データに基づいて、肌色の領域の大きさを算出する肌色領域算出ステップ(S21)をコンピュータにさらに実行させ、検出判定ステップは、肌色領域算出ステップによって算出された肌色の領域の大きさが所定値以上であるときに、ユーザの肌色を検出したと判定する。
【0012】
第3の発明では、ゲームプログラムはコンピュータに肌色領域算出ステップ(S21)をさらに実行させる。肌色領域算出ステップは、撮像ステップで撮像して得られた画像を示す画像データに基づいて、肌色の領域の大きさを算出する。検出判定ステップは、肌色領域算出ステップによって算出された肌色の領域の大きさが所定値以上であるときに、ユーザの肌色を検出したと判定する。なお、肌色領域算出ステップで算出された大きさが所定値に満たないときには、ユーザの肌色を検出していないと判定する。
【0013】
第3の発明によれば、撮像した画像から肌色の領域の大きさを算出して肌色の領域の大きさが所定値以上の場合にユーザ検出と判定をするので、的確な判定が容易に行える。
【0014】
第4の発明は、第3の発明に従属するゲームプログラムであって、肌色領域算出ステップは、撮像ステップで撮像して得られた画像における肌色の割合を算出し、検出判定ステップは、肌色領域算出ステップで算出された割合が所定値以上であるときに、ユーザの肌色を検出したと判定する。
【0015】
第4の発明では、肌色領域算出ステップは、撮像ステップで撮像して得られた画像における肌色の割合を算出する。検出判定ステップでは、肌色領域算出ステップで算出された割合が所定値以上であるときに、ユーザの肌色を検出したと判定する。なお、肌色領域算出ステップで算出された割合が所定値に満たないときには、ユーザの肌色を検出していないと判定する。
【0016】
第4の発明によれば、撮像した画像から肌色の領域の割合を算出して肌色の領域の割合が閾値以上の場合にユーザ検出と判定をするので、画像のサイズによらず、的確な判定が容易に行える。
【0017】
第5の発明は、第3の発明に従属するゲームプログラムであって、所定の領域を設定する領域設定ステップをコンピュータにさらに実行させ、肌色領域算出ステップは、領域設定ステップで設定された所定の領域内における肌色の領域の大きさを算出する。
【0018】
第5の発明では、ゲームプログラムはコンピュータに領域設定ステップ(S11)をさらに実行させる。領域設定ステップでは、所定の領域を設定し、肌色領域算出ステップでは、領域設定ステップで設定された所定の領域内における肌色の領域の大きさを算出する。
【0019】
第5の発明によれば、所定の領域において肌色の領域を判定するので、たとえば顔が表示される可能性が高い領域を所定の領域として選ぶことで、より正確にユーザが操作していることを判定できる。なお、所定の領域は、ある実施例では固定的に設定されるが、他の実施例ではユーザ操作により可変的に設定してもよい。
【0020】
第6の発明は、第1の発明に従属するゲームプログラムであって、検出判定ステップは、撮像ステップで撮像して得られた画像を示す画像データに基づいて、ユーザの顔の全部または一部を検出したか否かを判定することにより、ユーザを検出したか否かを判定する。
【0021】
第7の発明は、第1ないし第6のいずれかの発明に従属するゲームプログラムであって、マイク入力情報が所定の条件を満たしたか否かを判定するマイク入力判定ステップをコンピュータにさらに実行させ、処理ステップは、検出判定ステップでユーザを検出したと判定され、かつ、マイク入力判定ステップで所定の条件を満たしたと判定されたとき、マイク入力情報に基づいてゲーム処理を行う。
【0022】
第7の発明では、ゲームプログラムはコンピュータにマイク入力判定ステップ(S25,S65)をさらに実行させる。マイク入力判定ステップでは、マイク入力情報が所定の条件を満たしたか否かを判定する。処理ステップでは、検出判定ステップでユーザを検出したと判定され、かつ、マイク入力判定ステップで所定の条件を満たしたと判定されたとき、マイク入力情報に基づいてゲーム処理を行う。なお、検出判定ステップでユーザを検出していないと判定されるか、または、マイク入力判定ステップで所定の条件を満たしていないと判定されたときには、マイク入力情報に基づくゲーム処理は行われない。
【0023】
第7の発明によれば、マイク入力情報が所定の条件を満たした場合にマイクの入力を有効にするので、たとえばパワーが一定値以上であるという条件を所定の条件として設定することで、誤検出を防止できる。
【0024】
第8の発明は、第1ないし第7のいずれかの発明に従属するゲームプログラムであって、ユーザを予め撮像する予行撮像ステップ、および予行撮像ステップで予めユーザを撮像して得られた画像を示す画像データに基づいて、ユーザの特徴を示す特徴データを算出する、特徴データ算出ステップをコンピュータにさらに実行させ、検出判定ステップは、撮像ステップで撮像して得られた画像を示す画像データと特徴データ算出ステップで算出された特徴データとに基づいて、ユーザを検出したか否かを判定する。
【0025】
第8の発明では、ゲームプログラムはコンピュータに予行撮像ステップ(S5,S45)および特徴データ算出ステップ(S7,S47)をさらに実行させる。予行撮像ステップでユーザを予め撮像し、特徴データ算出ステップでは、予めユーザを撮像して得られた画像を示す画像データに基づいて、ユーザの特徴を示す特徴データを算出する。検出判定ステップ(S23,S63)では、撮像ステップで撮像して得られた画像を示す画像データと特徴データ算出ステップで算出された特徴データとに基づいて、ユーザを検出したか否かを判定する。
【0026】
第8の発明によれば、ユーザの特徴データを基準にすることで、より正確にユーザを検出できる。
【0027】
第9の発明は、第8の発明に従属するゲームプログラムであって、特徴データ算出ステップは、予めユーザを撮像して得られた画像を示す画像データに基づいて、ユーザの肌色の特徴に応じた肌色閾値を算出し、特徴データ算出ステップで算出された肌色閾値に基づいて、撮像ステップで撮像して得られた画像から肌色の画像を抽出する肌色画像抽出ステップ、および撮像ステップで撮像して得られた画像を示す画像データと肌色画像抽出ステップで抽出された肌色画像を示す画像データとに基づいて、当該画像における肌色の領域の大きさを算出する肌色領域算出ステップをコンピュータにさらに実行させ、検出判定ステップは、肌色領域算出ステップで算出された肌色領域の大きさが所定値以上であるときに、ユーザを検出したと判定する。
【0028】
第9の発明では、ゲームプログラムはコンピュータに肌色画像抽出ステップ(S19)および肌色領域算出ステップ(S21)をさらに実行させる。特徴データ算出ステップ(S7)では、予めユーザを撮像して得られた画像を示す画像データに基づいて、ユーザの肌色の特徴に応じた肌色閾値を算出する。肌色画像抽出ステップ(S19)では、算出ステップで算出された肌色閾値に基づいて、撮像ステップで撮像して得られた画像から肌色の画像を抽出する。肌色領域算出ステップ(S21)では、撮像ステップで撮像して得られた画像を示す画像データと肌色画像抽出ステップで抽出された肌色画像を示す画像データとに基づいて、当該画像における肌色の領域の大きさを算出する。そして検出判定ステップ(S23)では、肌色領域算出ステップで算出された肌色領域の大きさが所定値以上であるときに、ユーザを検出したと判定する。なお、肌色領域算出ステップで算出された肌色領域の大きさが所定値に満たないときには、ユーザを検出していないと判定する。
【0029】
つまり、ここでは、肌色閾値をユーザの肌色の特徴データの1つとして算出している。なお、ある実施例では、肌色閾値を、予めユーザを撮像して得られた画像を示す画像データに基づいて補正している(言い換えれば補正値を算出している)が、ここでいう肌色閾値の算出には、このような補正ないし補正値の算出も含まれる。
【0030】
第9の発明によれば、肌色の特徴に応じた肌色閾値を用いて肌色領域を抽出することで、さらに正確なユーザ検出を簡単に行える。
【0031】
第10の発明は、第8の発明に従属するゲームプログラムであって、特徴データ算出ステップ(S47)は、予めユーザを撮像して得られた画像を示す画像データに基づいて、ユーザの肌色の特徴を示す肌色特徴データを算出し、検出判定ステップ(S63)は、撮像ステップで撮像して得られた画像を示す画像データと特徴データ算出ステップで算出された肌色特徴データとに基づいて、ユーザを検出したか否かを判定する。
【0032】
第10の発明によれば、特徴データとして肌色の特徴を示す肌色特徴データを用いることで、正確なユーザ検出を簡単に行える。
【0033】
第11の発明は、マイクから入力されたマイク入力情報に基づいてゲーム処理を実行するゲーム装置であって、ユーザを撮像する撮像手段(16,S13〜S17,S53〜S57)、撮像手段で撮像して得られた画像を示す画像データに基づいて、ユーザを検出したか否かを判定する検出判定手段(S23,S63)、および検出判定手段でユーザを検出したと判定されたときに、マイク入力情報に基づいてゲーム処理を行う処理手段(S31,S71)を備える。
【0034】
第11の発明によれば、第1の発明と同様に、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる。
【0035】
第12の発明は、第11の発明に従属するゲーム装置であって、撮像方向と集音方向とが略平行(それぞれz軸と略平行)となるようにカメラ(16)およびマイク(32)が設けられる。
【0036】
第12の発明によれば、撮像方向と集音方向とが略平行なので、マイク入力の検出とユーザの検出を同時行うことができるとともに、検出の精度を向上させることができる。
【発明の効果】
【0037】
この発明によれば、ユーザが検出されていない状態ではマイク入力が無効化され、ユーザが検出されている状態ではマイク入力が有効化されるので、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる、ゲームプログラムおよびゲーム装置が実現される。
【0038】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0039】
図1〜図3には、本発明の一実施例であるゲーム装置10の外観が示される。ゲーム装置10は折り畳み型のゲーム装置であり、図1および図2は、開いた状態(開状態)におけるゲーム装置10を示し、図3は、閉じた状態(閉状態)におけるゲーム装置10を示している。また、図1は、開状態におけるゲーム装置10の正面図であり、図2は、開状態におけるゲーム装置の側面図である。ゲーム装置10は、2つの表示装置(LCD12および14)および2つのカメラ(カメラ16および18)を有し、カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることができる。
【0040】
ゲーム装置10は、開いた状態において両手または片手で把持することができるような小型のサイズとされる。
【0041】
ゲーム装置10は、下側ハウジング20および上側ハウジング22という2つのハウジングを有する。下側ハウジング20と上側ハウジング22とは、開閉可能(折り畳み可能)に接続されている。この実施例では、各ハウジング20および22はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【0042】
上側ハウジング22は、下側ハウジング20の上側の一部で回動自在に支持されている。これによって、ゲーム装置10は、閉状態(下側ハウジング20と上側ハウジング22とのなす角度が約0°の状態(図3参照))と、開状態(下側ハウジング20と上側ハウジング22とのなす角度が約180°の状態(図2参照))とをとることができる。ユーザは通常、開状態でゲーム装置10を使用し、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。また、ゲーム装置10は、上記閉状態および開状態のみでなく、下側ハウジング20と上側ハウジング22とのなす角度を、ヒンジに発生する摩擦力などによって閉状態と開状態との間の任意の角度に維持することができる。つまり、上側ハウジング22を下側ハウジング20に対して任意の角度で静止させることができる。
【0043】
まず、下側ハウジング20に設けられる構成について説明する。図1に示すように、ゲーム装置10は、下側LCD(液晶表示装置)12を有する。下側LCD12は横長形状であり、長辺方向が下側ハウジング20の長辺方向に一致するように配置される。下側LCD12は下側ハウジング20に収納される。下側LCD12は、下側ハウジング20の内側面に設けられる。したがって、ゲーム装置10を使用しない場合には閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。なお、この実施例では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、ゲーム装置10は任意の解像度の表示装置を利用することができる。なお、ゲーム装置10を撮像装置として利用する場合、下側LCD12は主に、カメラ16または18で撮像されている画像をリアルタイムに表示(スルー表示)するために用いられる。
【0044】
下側ハウジング20の内側面はほぼ平面状に形成される。当該内側面の中央には、下側LCD12を露出させるための開口部20bが形成される。当該開口部20bの左側(図示y軸負側)には開口部20cが形成され、当該開口部20bの右側には開口部20dが形成される。開口部20bおよび20cは、各キートップ(各ボタン24a〜24eの上面)を露出させるためのものである。そして、下側ハウジング20の内部に収納される下側LCD12の画面が開口部20bから露出し、各キートップが開口部20cおよび20dから露出される。このように、下側ハウジング20の内側面には、中央に設けられる下側LCD12用の開口部20bの左右両側に非画面領域(図1に示す点線領域A1およびA2。具体的には、各ボタン24a〜24eを配置するための領域;ボタン配置領域)がそれぞれ設けられる。
【0045】
下側ハウジング20には、入力装置として、各ボタン24a〜24iおよびタッチパネル28が設けられる。図1に示されるように、各ボタン24a〜24iのうち、方向入力ボタン24a、ボタン24b、ボタン24c、ボタン24d、ボタン24e、および電源ボタン24fは、下側ハウジング20の内側面に設けられる。方向入力ボタン24aは例えば選択操作等に用いられ、各ボタン24b〜24eは例えば決定操作やキャンセル操作等に用いられる。電源ボタン24fは、ゲーム装置10の電源をオン/オフするために用いられる。ここでは、方向入力ボタン24aおよび電源ボタン24fは、下側ハウジング20の中央付近に設けられる下側LCD12に対して一方の側の(図1では左側)に設けられ、ボタン24b〜24eは下側LCD12に対して他方の側(図1では右側)に設けられる。方向入力ボタン24aおよびボタン24b〜24eは、ゲーム装置10に対する各種操作を行うために用いられる。
【0046】
図3(A)は閉状態におけるゲーム装置10の左側面図であり、図3(B)は当該ゲーム装置10の正面図であり、図3(C)は当該ゲーム装置10の右側面図であり、そして図3(D)は当該ゲーム装置10の背面図である。図3(C)に示されるように、また、図3(A)に示されるように、音量ボタン24iは、下側ハウジング20の左側面に設けられる。音量ボタン24iは、ゲーム装置10が備えるスピーカ34の音量を調整するために用いられる。また、図3(D)に示されるように、ボタン24hは、下側ハウジング20の上面の右端部に設けられる。ボタン24gは、下側ハウジング20の上面の左端部に設けられる。各ボタン24gおよび24hは、ゲーム装置10に対して例えば撮影指示操作(シャッタ操作)を行うために用いられる。各ボタン24gおよび24hの両方をシャッターボタンとして機能させてもよく、この場合、右利きのユーザはボタン24hを使用し、左利きのユーザはボタン24gを使用することができ、いずれのユーザにも使い勝手が良い。なお、ゲーム装置10は、各ボタン24gおよび24hを常にシャッターボタンとして有効としておいてもよいし、右利きか左利きかの設定をして(メニュープログラムなどによりユーザに設定入力をさせ、設定されたデータを記憶しておく)、右利き設定のときにはボタン24hのみ有効とし、左利き設定のときにはボタン24gのみ有効とするようにしてもよい。
【0047】
図1に示されるように、ゲーム装置10は、各操作ボタン24a〜24iとは別の入力装として、タッチパネル28をさらに備えている。タッチパネル28は、下側LCD12の画面上に装着されている。なお、この実施例では、タッチパネル28は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。この実施例では、タッチパネル28として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル28の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング20の右側面には挿入口30(図1および図3(D)に示す点線)が設けられている。挿入口30は、タッチパネル28に対する操作を行うために用いられるタッチペン36を収納することができる。なお、タッチパネル28に対する入力は通常タッチペン36を用いて行われるが、タッチペン36に限らずユーザの指でタッチパネル28を操作することも可能である。
【0048】
図3(A)に示されるように、下側ハウジング20の右側面には開閉可能なカバー部11Bが設けられる。このカバー部11Bの内側には、ゲーム装置10とメモリカード38とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード38は、コネクタに着脱自在に装着される。メモリカード38は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。
【0049】
図1に示されるように、下側ハウジング20の軸部20aの左側部分には、3つのLED26a〜26cが取り付けられる。ここで、ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第1LED26aは、無線通信が確立している場合に点灯する。第2LED26bは、ゲーム装置10の充電中に点灯する。第3LED26cは、ゲーム装置10の電源がオンである場合に点灯する。したがって、3つのLED26a〜26cによって、ゲーム装置10の通信確立状況、充電状況、および、電源のオン/オフ状況をユーザに通知することができる。
【0050】
以上に説明したように、下側ハウジング20には、ゲーム装置10に対する操作入力を行うための入力装置(タッチパネル28および各ボタン24a〜24i)が設けられる。したがって、ユーザは、ゲーム装置10を使用する際には下側ハウジング20を把持してゲーム装置10に対する操作を行うことができる。図5は、ユーザがゲーム装置10を両手で把持した様子を示す図である。図5に示すように、ユーザは、各LCD12および14がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング20の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング20を把持したまま、各ボタン24a〜24eに対する操作を親指で行い、ボタン24gおよび24hに対する操作を人差し指で行うことができる。
【0051】
一方、上側ハウジング22には、画像を撮像するための構成(カメラ)、および、撮像した画像を表示するための構成(表示装置)が設けられる。以下、上側ハウジング22に設けられる構成について説明する。
【0052】
図1に示すように、ゲーム装置10は、上側LCD14を有する。上側LCD14は上側ハウジング22に収納される。上側LCD14は横長形状であり、長辺方向が上側ハウジング22の長辺方向に一致するように配置される。上側LCD14は、上側ハウジング22の内側面(ゲーム装置10が閉状態となった場合に内側となる面)に設けられる。したがって、ゲーム装置10を使用しない場合には閉状態としておくことによって、上側LCD14の画面が汚れたり傷ついたりすることを防止することができる。なお、下側LCD12と同様、上側LCD14に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、他の実施形態においては、上側LCD14上にもタッチパネルを設けてもよい。
【0053】
また、ゲーム装置10は、2つのカメラ16および18を有する。各カメラ16および18はともに上側ハウジング22に収納される。図1に示されるように、内側カメラ16は、上側ハウジング22の内側面に取り付けられる。一方、図3(B)に示されるように、外側カメラ18は、内側カメラ16が取り付けられる面の反対側の面、すなわち、上側ハウジング22の外側面(ゲーム装置10が閉状態となった場合に外側となる面)に取り付けられる。これによって、内側カメラ16は、上側ハウジング22の内側面が向く方向を撮像することが可能であり、外側カメラ18は、内側カメラ16の撮像方向の逆方向、すなわち、上側ハウジング22の外側面が向く方向を撮像することが可能である。以上のように、この実施例では、2つのカメラ16および18が撮像方向が互いに逆方向となるように設けられる。したがって、ユーザはゲーム装置10を持ち替えることなく、異なる2方向を撮像することができる。例えば、ユーザは、ゲーム装置10からユーザの方を見た景色を内側カメラ16で撮影することができるとともに、ゲーム装置10からユーザの反対側の方向を見た景色を外側カメラ18で撮影することができる。
【0054】
また、内側カメラ16は、上側ハウジング22の下側の中央部に形成される軸部22aの中央に取り付けられる。つまり、内側カメラ16は、2つのハウジング20および22が接続される部分の中央に取り付けられる。したがって、ゲーム装置10を開状態にした場合、内側カメラ16は、2つのLCD12および14の間に配置されることになる(図1参照)。換言すれば、内側カメラ16は、ゲーム装置10の中心付近に配置されることになる。なお、「ゲーム装置10の中心」とは、ゲーム装置10の操作面(開状態における各ハウジング20および22の内側面からなる面)の中心という意味である。なお、内側カメラ16は、LCD12および14の横方向の中心付近に配置されているということもできる。
【0055】
この実施例では、ゲーム装置10を開状態にした場合に内側カメラ16はゲーム装置10の中心付近に配置されるので、ユーザは、内側カメラ16によってユーザ自身を撮影する場合、ユーザがゲーム装置10に正対する位置でゲーム装置10を把持すればよい。つまり、通常の把持位置でゲーム装置を把持すれば、ユーザは撮像範囲の中心付近に位置することになり、ユーザ自身を撮像範囲内に収めることが容易になる。
【0056】
また、図3(B)に示されるように、外側カメラ18は、ゲーム装置10を開状態とした場合において上側ハウジング22の上部(下側ハウジング20から遠い側の部分)に配置される。なお、外側カメラ18は、ゲーム装置10を把持するユーザを撮影するものではないので、ゲーム装置10の中心に設ける必要性は高くない。
【0057】
また、図1または図3(B)に示されるように、マイク32は、上側ハウジング22に収納されている。具体的には、マイク32は、上側ハウジング22の軸部22aに取り付けられる。この実施例では、マイク32は、内側カメラ16の周囲(図ではy軸の側方)に取り付けられ、より具体的には、内側カメラ16からy軸正方向側の側方に取り付けられる。また、軸部22aにおいては、マイク32がゲーム装置10外部の音を検知することができるように、マイク32に対応する位置(内側カメラ16の側方)にマイクロフォン用孔22cが設けられる。なお、マイク32は下側ハウジング20に収納されてもよい。たとえば、マイクロフォン用孔22cを下側ハウジング20の内側面、具体的には下側ハウジング20の内側面の左下部分(ボタン配置領域A1)に設け、マイク32を、下側ハウジング20内における、マイクロフォン用孔22cの近傍に配置することができる。
【0058】
また、マイク32は、その集音方向(感度が最大となる方向)が内側カメラ16の撮像方向(光軸)と略並行(言い換えれば集音方向および撮像方向がそれぞれy軸と略並行)となる向きに取り付けられる。これによって、内側カメラ16の撮像範囲内で発せられた音声は、マイク32によって好適に捉えられる。すなわち、マイク32入力の検出とユーザの検出とを同時行うことができるとともに、検出の精度を向上させることができる。
【0059】
図3(B)に示されるように、上側ハウジング22の外側面には、第4LED26dが取り付けられる。第4LED26dは、外側カメラ18の周囲(この実施例では、外側カメラ18の右側。図17(b)に示される例では、開状態において外側カメラ18の上側)に取り付けられる。第4LED26dは、内側カメラ16または外側カメラ18によって撮影が行われた(シャッターボタンが押下された)時点で点灯する。また、内側カメラ16または外側カメラ18によって動画が撮影される間点灯する。第4LED26dによって、ゲーム装置10による撮影が行われた(行われている)ことを撮影対象者に通知することができる。
【0060】
また、上側ハウジング22の内側面はほぼ平面状に形成される。図1に示すように、当該内側面の中央には、上側LCD14を露出させるための開口部21Bが形成される。上側ハウジング22の内部に収納される上側LCD14の画面は、開口部21Bから露出する。また、上記開口部21Bの左右両側には音抜き孔22dがそれぞれ1つずつ形成される。音抜き孔22dの奥の上側ハウジング22内にはスピーカ34が収納されている。音抜き孔22dは、スピーカ34からの音を外部に放出するための孔である。
【0061】
このように、上側ハウジング22の内側面には、中央に設けられる上側LCD14用の開口部21Bの左右両側に非画面領域(図1に示す点線領域B1およびB2。具体的には、スピーカ34を配置するための領域;スピーカ配置領域)がそれぞれ設けられる。2つの音抜き孔22dは、左右方向については、各スピーカ配置領域の左右方向における中央部付近に配置され、上下方向については、各スピーカ配置領域の下部領域(下側ハウジング20に近い側の領域)に配置される。
【0062】
なお、上記のように、下側ハウジング20および上側ハウジング22に左右方向に関して同じ位置に非画面領域をそれぞれ設けたことで、ゲーム装置10は、図5に示すような横持ちで把持される場合だけでなく、縦持ち(図5に示す状態からゲーム装置10を左または右回りに90°回転させた状態)で把持される場合にも持ちやすい構成となっている。
【0063】
以上に説明したように、上側ハウジング22には、画像を撮像するための構成であるカメラ16および18、および、撮像された画像を表示するための表示手段である上側LCD14が設けられる。一方、下側ハウジング20には、ゲーム装置10に対する操作入力を行うための入力装置(タッチパネル28および各ボタン24a〜24i)が設けられる。したがって、ゲーム装置10を撮像装置として使用する際には、ユーザは、上側LCD14に表示される撮像画像(カメラによって撮像された画像)を見ながら、下側ハウジング20を把持して入力装置に対する入力を行うことができる。
【0064】
また、上側ハウジング22のカメラ16近傍には、音声を入力するための構成であるマイク32が設けられており、したがってゲーム装置10は、録音装置としても使用可能である。さらに、詳細は後述するが、ユーザがマイク32を通して音声入力を行い、ゲーム装置10はこのマイク入力情報に基づいてゲーム処理を実行することもできる。
【0065】
図4は、ゲーム装置10の内部構成を示すブロック図である。図4に示すように、ゲーム装置10は、CPU42、メインメモリ48、メモリ制御回路50、保存用データメモリ52、プリセットデータ用メモリ54、メモリカードインターフェース(メモリカードI/F)44、無線通信モジュール56、ローカル通信モジュール58、リアルタイムクロック(RTC)39、電源回路46、およびインターフェース回路(I/F回路)40等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング20(または上側ハウジング22でもよい)内に収納される。
【0066】
CPU42は、各種のプログラムを実行するための情報処理手段である。ゲーム装置10を撮像装置として利用する場合には、そのためのプログラムがゲーム装置10内のメモリ(例えば保存用データメモリ52)に記憶される。CPU42が当該プログラムを実行することで、ゲーム装置10は撮影装置として機能する。なお、CPU42によって実行されるプログラムは、ゲーム装置10内のメモリに予め記憶されていてもよいし、メモリカード38から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。
【0067】
CPU42には、メインメモリ48、メモリ制御回路50、およびプリセットデータ用メモリ54が接続される。また、メモリ制御回路50には保存用データメモリ52が接続される。メインメモリ48は、CPU42のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ48は、ゲーム処理や撮像処理に用いられる各種データを記憶したり、外部(メモリカード38や他の機器等)から取得されるプログラムを記憶したりする。この実施例では、メインメモリ48として例えばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ52は、CPU42によって実行されるプログラムや各カメラ16および18によって撮像された画像のデータ等を記憶するための記憶手段である。保存用データメモリ52は、例えばNAND型フラッシュメモリで構成される。メモリ制御回路50は、CPU42の指示に従って、保存用データメモリ52に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ54は、ゲーム装置10において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ54としては、SPI(Serial Peripheral Interface)バスによってCPU42と接続されるフラッシュメモリを用いることができる。
【0068】
メモリカードI/F44はCPU42に接続される。メモリカードI/F44は、コネクタに装着されたメモリカード38に対するデータの読み出しおよび書き込みをCPU42の指示に従って行う。この実施例では、各カメラ16および18によって撮像された画像データがメモリカード38に書き込まれたり、メモリカード38に記憶された画像データがメモリカード38から読み出されて保存用データメモリ52に記憶されたりする。
【0069】
無線通信モジュール56は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール58は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール56およびローカル通信モジュール58はCPU42に接続される。CPU42は、無線通信モジュール56を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール58を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0070】
また、CPU42には、RTC60および電源回路46が接続される。RTC60は、時間をカウントしてCPU42に出力する。CPU42は、RTC60によって計時された時間に基づいて、現在時刻(日付)を計算したり、画像取り込み等の動作タイミングを検知したりする。電源回路46は、ゲーム装置10が有する電源(電池;下ハウジングに収納される)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0071】
また、ゲーム装置10は、マイク32およびスピーカ34を備えている。マイク32およびスピーカ34はそれぞれI/F回路40に接続される。マイク32は、ユーザの音声を検知して音声信号をI/F回路40に出力する。スピーカ34は、I/F回路40からの音声信号に応じた音声を出力する。I/F回路40はCPU42に接続される。また、タッチパネル28はI/F回路40に接続される。I/F回路40は、マイク32およびスピーカ34の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。変換された音声データは、メインメモリ48の音声エリア80(図7参照)に書き込まれる。ゲーム装置10を録音装置として利用する場合には、音声エリア80に格納された音声データは、後にメモリ制御回路50を介して保存用データメモリ52に書き込まれる(必要に応じてさらに、メモリカードI/F44を介してメモリカード38に記録される)。また、詳細は後述するが、音声エリア80に格納された音声データ(マイク入力情報)は、各種のゲーム処理にも利用される。タッチパネル制御回路は、タッチパネル28からの信号に基づいて所定の形式のタッチ位置データを生成してCPU42に出力する。タッチ位置データは、タッチパネル28の入力面のうちで入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル28からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU42は、タッチ位置データを取得することにより、タッチパネル28に対して入力が行われた位置を知ることができる。
【0072】
操作部24は、上記各ボタン24a〜24iからなり、CPU42に接続される。操作部24からCPU42へは、各ボタン24a〜24iに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU42は、操作部24から操作データを取得することによって、操作部24に対する入力に従った処理を実行する。
【0073】
各カメラ16および18はCPU42に接続される。各カメラ16および18は、CPU42の指示に従って画像を撮像し、撮像した画像データをCPU42に出力する。CPU42は、各カメラ16および18からの画像データをメインメモリ48の画像エリア78(図7参照)に書き込む。ゲーム装置10を撮像装置として利用する場合には、画像エリア78に格納された画像データは、後にメモリ制御回路50を介して保存用データメモリ52に書き込まれる(必要に応じてさらに、メモリカードI/F44を介してメモリカード38に記録される)。また、詳細は後述するが、画像エリア78に格納された画像データは、各種のゲーム処理にも利用される。
【0074】
また、各LCD12および14はCPU42に接続される。各LCD12および14はCPU42の指示に従って画像を表示する。ゲーム装置10を撮像装置として利用する場合、CPU42は、各カメラ16および18のいずれかから取得した画像を上側LCD14に表示させ、所定の処理によって生成した操作画面を下側LCD12に表示させる。ゲーム装置10でゲームをプレイする場合には、LCD12および14の一方または両方にゲーム画像が表示される。
【0075】
以上のように構成されたゲーム装置10である種のゲーム(たとえば「マント吹き飛ばしゲーム」)を行うとき、CPU42は、各カメラ16および18で撮像された画像データおよび/またはマイク32から入力されたマイク入力情報に基づいてゲーム処理を実行する。この実施例の「マント吹き飛ばしゲーム」の場合、内側カメラ16からの画像データとマイク32からのマイク入力情報とがゲーム処理に利用される。具体的には、マントを羽織ったキャラクタがLCD14に表示され、プレイヤがこのキャラクタに向かって息を吹きかけると、この息吹きかけによる音声がマイク32で捉えられる。こうしてマイク32から入力されたマイク入力情報に基づいてCPU42がゲーム処理を実行することで、表示画面内ではキャラクタのマントがあたかもプレイヤの息で吹き飛ばされたような変化が生じる。「マント吹き飛ばしゲーム」の画面変化の一例を図6に示す。図6(A)がゲーム開始時の画面であり、無風状態のためキャラクタCrが着用しているマントMnは垂れ下がっている。図6(B)がゲーム進行時の画面であり、息吹きかけの結果マントMnが飛ばされつつある。なお、図6中に網掛けを施した領域は、ユーザの顔の肌色の部分(肌色領域)を示すシルエットS1である。
【0076】
ところが、人の多い場所や風の強い屋外では、ユーザ以外の人の声や風の音もマイク32で拾われるため、ユーザが息を吹きかけなくてもゲームが進行する場合がある。そこで、この実施例では、内側カメラ16からの画像データに基づいてユーザの有無を判別し、ユーザがいない状況では、たとえ音声入力が検出されてもゲームを進行させないようにしている。ユーザの有無は、ゲーム画面(撮像領域Ep)内の対象領域Edに占める肌色領域の割合(以下「肌色割合」)に基づいて判別される(図10参照)。なお、ユーザの有無は、ゲーム画面(撮像領域Ep)内の対象領域Edに占める肌色領域の割合に基づいて判別されなくてもよく、内側カメラ16からの画像データに基づいて算出した肌色領域の大きさに基づいて判別されるものであればどのようなものであってもよい。
【0077】
図7には、マント吹き飛ばしゲームをプレイする場合のメモリマップが示される。図7を参照して、メインメモリ48にはプログラムエリア48aおよびデータエリア48bが形成され、プログラムエリア48aには、図12〜図17のフローチャートに対応するメインプログラム70が格納される。メインプログラム70は、図15および図16のフローチャートに対応する閾値調整プログラム72と、図17のフローチャートに対応する肌色抽出プログラム74とをサブルーチンとして含む。プログラムエリア48aにはさらに、I/F回路40等を制御して映像や音声の入出力を行うための入出力制御プログラム76も格納されている。一方、データエリア48bは、画像エリア78,音声エリア80および閾値エリア82などを含む。画像エリア78には各カメラ16および18からの映像データが一時記憶され、音声エリア80にはマイク32からの音声データ(マイク入力情報)が一時記憶される。閾値エリア82には、肌色抽出のための閾値が記憶される。
【0078】
図12〜図14を参照して、ゲームが開始されると、CPU42は、ステップS1で初期処理を実行する。初期処理は、肌色閾値の初期化ならびに画像エリア78および音声エリア80のクリアなどの処理を含む。次のステップS3では、肌色抽出のための閾値調整を行うか否かを判別し、NOであればステップS9に進む。例えば、後述する閾値調整しょりが終了した後に閾値調整フラグをオンにし、ステップS3で既に閾値調整が行われた場合に、ステップS3でNOと判別される。操作部24によって実行を示す操作が行われると、ステップS3でYESと判別し、ステップS5に進む。ステップS5では、複数回ここでは3回の撮像命令を発行した後、メインメモリ48の画像エリア78から3枚の画像を取得する。
【0079】
ここで、撮像命令は、ユーザが所定のポーズを取った状態で発行される。ここで所定のポーズは、たとえば、顔の横に右手をかざしたポーズである。このようなポーズのガイドとなる画像(図8における顔の輪郭画像および手の輪郭画像)を表示した状態で、撮像タイミングを知らせる「3,2,1,バシャ」のような音声を出力しつつ、「1」から「バシャ」までの間に撮像命令を繰り返し発行することによって、ユーザが所定のポーズを取った状態で複数回の撮像を実行することができる。
【0080】
なお、このように撮影された画像のうちの1枚はLCD12および14に表示されて、プレイヤに提示される。これにより、撮影した画像は、ゲームをプレイする(プレイした)プレイヤが誰かという証明画像として用いることができる。
【0081】
なお、他の実施例では、閾値調整用の画像は1枚だけでもよい。ただし、枚数を増やすことで、自動補正処理等で画面の色味や輝度が変化しても、閾値の均質化を図ることができる。
【0082】
次のステップS7では、取得した3枚の画像に基づいて、肌色抽出用の閾値をユーザの肌色の特徴に適合するように調整する。調整後、ステップS9に進む。なお、この閾値調整処理の詳細については後述する。
【0083】
ステップS9では、ゲームを開始するか否かを判別し、NOであればステップS3に戻る。操作部24によって開始を示す操作が行われると、ステップS9でYESと判別し、ステップS11に進んで肌色検出の対象領域(Ed)を設定する。ここでは、図10に示すように、対象領域Edとして、撮像領域Ep(0,0)〜(256,192)の略中央に位置する矩形領域(112,80)〜(144,96)が設定される。つまり、この実施例の対象領域Edは、横方向32ドット*縦方向16ドット=512ドットのサイズを有する。なお、対象領域Edの形状は矩形とは限らず、円形ないし楕円形でも、正六角形などの多角形などでもよい。対象領域Edのサイズや位置も適宜変更してよい。また、対象領域は、必ずしも固定的とは限らず、他の実施例ではユーザ操作により可変的に設定してもよい。
【0084】
その後、ステップS13に進んで、繰り返し撮像(スルー撮影)およびマイク入力の開始命令を発行する。応じて、カメラによる繰り返し撮像およびマイク32による音声入力がそれぞれ開始される。繰り返し撮像により得られた各フレームの画像はメインメモリ48の画像エリア78に書き込まれ、マイク入力により得られたマイク入力情報(音声データ)はメインメモリ48の音声エリア80に書き込まれる。なお、この実施例では、繰り返し撮像およびマイク入力を略同時に開始しているが、マイク入力は、繰り返し撮像の開始前に開始されてもよい。
【0085】
ここで、画像エリア78は、所定数フレーム(たとえば30フレーム)の画像を記憶可能なサイズを有し、画像エリア78内の画像のうち最古のフレームの画像が、最新のフレームの画像によって上書きされていく。音声エリア80もまた、30フレーム相当のマイク入力情報を記憶可能なサイズを有し、音声エリア80内のマイク入力情報のうち最古のフレームに対応するマイク入力情報が、最新のフレームに対応するマイク入力情報によって上書きされていく。したがって、画像エリア78および音声エリア80には常時、直近30フレームの画像およびこれに対応するマイク入力情報が格納されていることになる。
【0086】
次のステップS15では、RTC60の出力を参照して、画像の取得タイミングが到来したか否かを判別し、NOであれば待機する。たとえば、画像を毎フレーム取得する場合、1/60秒が経過する度にステップS15でYESと判別し、ステップS17に進んで、画像エリア78から1フレームの画像を取得する。
【0087】
次のステップS19では、肌色閾値に基づいて、取得した画像から肌色の画像を抽出する。なお、この肌色抽出処理の詳細については後述する。そして、ステップS21で対象領域Edに占める肌色領域の割合を算出し、算出結果に基づいてユーザの有無を判別する。算出結果が閾値たとえば64/512よりも大きければ、ステップS23でYESと判別し、ステップS25に進む。算出結果が64/512以下であれば、ステップS23でNOと判別し、ステップS15に戻って同様の処理を繰り返す。
【0088】
ステップS25では、メインメモリ48の音声エリア80から1フレーム相当のマイク入力情報を取り込む。そしてステップS27で、取り込んだマイク入力情報に基づいて音量(入力パワー)を算出した後、算出結果が閾値(たとえば40dB)以上か否かをステップS29で判別する。ステップS29でYESであれば、ステップS31でマイク入力情報に基づくゲーム処理を実行した後、ステップS33に進む。一方、ステップS29でNOであれば、ステップS31のゲーム処理はスキップされ、次のステップS33が直ちに実行される。
【0089】
ステップS33では、ゲーム終了条件が満足されたか否かを判別する。ゲーム終了条件は、たとえば「ゲームが成功する」,「ゲームが失敗する」および「終了操作が行われる」の3つの条件を含み、この中のいずれかが満足されるとステップS33でYESと判別してゲームを終了する。3つの条件のどれも満足されなければ、ステップS33でNOと判別し、ステップS15に戻って同様の処理を繰り返す。
【0090】
この実施例では、ゲーム成功またはゲーム失敗の判別のために、ゲームの進行度合いを示す評価値を導入する。評価値は、メインメモリ48に記憶されており、ステップS1の初期処理で初期化(=0)された後、ステップS29で最初にYESと判別されたときインクリメントされる。そして、最初のインクリメントから18フレーム(約0.2秒)後にもステップS29でYESであれば、評価値はさらにインクリメントされる。このときNOであれば、評価値はデクリメントされる(他の実施例では現時点の値が維持されてもよい)。以降、同様の処理が18フレームごとに繰り返され、評価値が“5”に達した時点でゲーム成功と判別される。評価値が“5”に到達する前に所定時間(たとえば1分)が経過すれば、ゲーム失敗と判別される。
【0091】
したがって、図6(A)のゲーム画面では、ステップS29で最初にYESと判別されたときマントMnが捲り上がり始め、以降ステップS29でYESと判別される度に(したがって0.2秒毎に)段階的に捲り上がっていく。そして、ステップS29YESの状態が1秒継続した時点で、ゲーム画面は図6(B)のようになり、この直後にマントMnが吹き飛ばされ、ゲームが成功したことになる。
【0092】
次に、上記ステップS7の閾値調整処理について詳しく説明する。この実施例では、肌色抽出のための閾値は、色相下限,色相上限,彩度下限,彩度上限,輝度下限および輝度上限の6つの閾値を含む。これら6つの閾値の各々が、ステップS5で取得した3枚のフレームの画像(評価用画像データ)に基づいて、図15および図16に示す手順で調整される。以下、各ステップS101〜S133について説明する。
【0093】
(S101)最初、6つの閾値の各々について、初期値,最小値および最大値(いずれも静的な値)を設定する。具体的には、色相下限の閾値について初期値220,最小値210および最大値230を設定し、色相上限の閾値について初期値25,最小値21および最大値30を設定し、彩度下限の閾値について初期値17,最小値10および最大値30を設定し、彩度上限の閾値について初期値114,最小値60および最大値213を設定し、輝度下限の閾値について初期値15,最小値7および最大値68を設定し、そして輝度上限の閾値について初期値180,最小値152および最大値232を設定する。
【0094】
ただし、色相については、360の角度を256段階に変換した値(0以上256未満)で処理される。つまり256は0と等価であり、色相は0→1→…→255→0→1→…のように循環する。よって、色相の初期値の場合、色相下限が220であり、色相上限が25であるので、肌色としての抽出範囲は、220,221,222,…,254,255,0,1,…,24,25となる。
【0095】
(S103)次に、属性判定用データとして、ステップS5における撮影時に表示されるガイド画像に対応したデータ(静的なデータ)を準備する。属性判定用データは、具体的には、画面内の各位置の画素が次の3種類のどの属性になるかを(ここでは2ドットの精度で)データ化したものであり、予め設定されてプログラムにデータとして含まれる。
【0096】
属性A…肌色であるべき
属性B…肌色以外であるべき
属性C…どちらでもよい(評価に関与しない)
属性判定用データの一例を図9に示す。図9を参照して、濃い網掛けを施された部分が属性Aに、薄い網掛けを施された部分が属性Bに、そして何ら網掛けのない部分が属性Cにそれぞれ対応する。
【0097】
次に、取得した3枚のフレームの画像のうち1つを選択して、評価用画像データとする。次のステップS105に進む。
【0098】
(S105)色相下限の閾値に初期値(=220)を与え、この初期値を現時点での最適値とする。そして、評価用画像データを(ここでは4ドット毎に)属性判定用データと比較することによって、肌色の抽出状態を評価する。この評価処理は、具体的には次のように行われる。属性判定用データで属性Aの部分について、評価用画像データの対応部分が確かに肌色であったかどうかを判定し、確かに肌色であったと判定された部分のドット数を値Aとする。属性判定用データで属性Bの部分については、評価用画像データの対応部分が誤って肌色であったかどうかを判定し、誤って肌色であったと判定された部分のドット数を値Bとする。属性Cの部分については、特に判定を行わなくてよい。こうして求めた値Aから値Bを減算し、減算結果を評価値とする。この評価値が大きいほど、肌色をより好適に抽出できているとみなされる。
【0099】
(S107)次に、色相下限の閾値に最小値(=210)を与え、同様の評価処理を行う。(S109)これにより得られた評価値が、前回(つまり閾値に初期値を与えたとき)の評価値よりも上昇したか否かを判別する。判別結果によって、処理はステップS111〜S117とステップS119〜S129との2つの場合に分岐する。
【0100】
(S111〜S117)S109で評価値が上昇した場合、現時点の閾値(つまり最小値)と現時点の最適値(つまり初期値)との中間の値(たとえば平均値)を求め、求めた中間の値を新たな閾値として同様の評価処理を行う。これにより得られた評価値を前回(つまり閾値に最小値を与えたとき)の評価値と比較し、より高い評価値が得られた方の閾値(つまり「最小値」および「最小値と最適値との中間の値」のいずれか)を現時点の最適値として採用する。そしてステップS131およびS133に進む。
【0101】
(S119〜S129)S109で評価値が上昇しなかった場合つまり現状維持または下降した場合、色相下限の閾値に最大値(=230)を与えて同様の評価処理を行う。ここでも処理は2分岐する。今回の評価値が前回の評価値より上昇した場合、現時点の閾値(つまり最大値)と現時点の最適値(つまり初期値)との中間の値を求め、求めた中間の値を新たな閾値として同様の評価処理を行う。これにより得られた評価値を前回(つまり閾値に最小値を与えたとき)の評価値と比較し、より高い評価値が得られた方の閾値(つまり「最大値」および「最大値と最適値との中間の値」のいずれか)を現時点の最適値として採用する。一方、今回の評価値が前回の評価値より下降した場合もしくは現状維持の場合には、結局、当初の最適値(つまり初期値)がより好適であったことになるので、このまま確定する。そしてステップS131およびS133に進む。
【0102】
(S131)以降、色相上限,彩度下限,彩度上限,輝度下限および輝度上限の各閾値についても、上のステップS105〜S129と同様の処理を実行して、より好適な値を選択していく。
【0103】
(S133)残りの2枚のフレームの画像の各々についても、同様の処理を繰り返す。ただし、2フレーム目の処理では、1フレーム目の処理で求めた最適値を初期値とし、3フレーム目の処理では、2フレーム目の処理で求めた最適値を初期値とする。
【0104】
以上の処理を通じて、6つの閾値の各々は最適値に調整される。
【0105】
このように、この実施例では、ゲーム開始前にプレイヤを撮影した写真画像を用いて、現在の環境(光のあたり具体など)におけるプレイヤの肌色の閾値を調整する。これにより、ゲーム中の肌色検出を正確におこなうことができる。
【0106】
また、この実施例では、複数の写真画像を用いておこなう。これにより、より正確に閾値を調整することができ、また、n枚目の写真画像により最適化された閾値をもとにn+1枚目の評価処理をおこなうため効率的である。
【0107】
また、色相、彩度、輝度のそれぞれについて閾値を調整する。これにより、そのときの環境における閾値をより正確に設定することができる。なお、色相と彩度のみを調整してもよいし、色相と輝度のみを調整してもよい。
【0108】
また、肌色であるべき領域のみならず、肌色以外であるべき領域を判定するようにしてもよい。これにより、正確に閾値を設定することができる。
【0109】
なお、この実施例では、閾値調整処理はゲーム開始前に行われたが、これに代えて、またはこれに加えて、ゲームの途中で1回ないし複数回行われてもよい。また、ここで挙げた閾値や取得フレーム数は、好ましい一例に過ぎず、適宜変更されてよい。
【0110】
次に、上記ステップS19の肌色抽出処理について詳しく説明する。この実施例では、上述のような調整処理を経た後の閾値に基づいて、図17の手順で各フレームの画像から肌色部分が抽出される。以下、各ステップS201〜S225について説明する。
【0111】
(S201)最初、メインメモリ48の画像エリア78から1つのフレームの画像をAPI(Application Program Interface)により取得する。この画像は、256*192のサイズを有し、RGB(各成分5ビット)の形式に従う。
【0112】
(S203)次に、取得した画像に基づいて、抽出処理用のデータを構築する。このデータは、8*8,4*4および2*2の3種類の格子状領域(それぞれ「8*8格子」,「4*4格子」および「2*2格子」と呼ぶ)に対応して生成される。すなわち、256*192の画像から、768(=32*24)個の8*8格子と、3072(=64*48)個の4*4格子と、12288(=64*48)個の2*2格子とが生成される。
【0113】
ここで、各格子のデータは、評価値,状態値および色値に関する情報を含む。評価値は、8ビットで記述され、肌色らしさを示す(ただし、8ビットのうち評価に用いられるのは0〜64であり、255は無効を示す)。評価値が大きい格子ほど肌色らしいとみなされる。状態値は、16ビットで記述され、抽出状況や肌色であるか肌色以外であるかの判別結果等を示す。色値は、16ビットで記述され、RGB555の形式に従う。ただし色値は、データの評価に際して、RGB555形式から輝度,色相および彩度の3成分による形式へと変換される。状態値は、後述する各処理によって判定した内容(状態)を保持するためのデータであり、16ビットのデータで示される。具体的には、肌色かどうかを示す1ビットの情報、周囲8つの格子のそれぞれについて肌色かどうかを示す8ビットの情報、強制的に自身を肌色とみなすための1ビットのフラグ、強制的に自身を肌色でないとみなすための1ビットのフラグで示され、余分な5ビットが付加される。
【0114】
(S205)次に、各格子に対し色値を準備する。具体的には、まず各2*2格子について、そこに含まれる4つの画素から平均の色値を求め、これをその格子の色値とする。次に各4*4格子について、そこに含まれる4つの2*2格子に設定された色値(すなわち、4つの色値)から平均の色値を求め、これをその格子の色値とする。最後に各8*8格子について、そこに含まれる4つの4*4格子に設定された色値(すなわち、4つの色値)から平均の色値を求め、これをその格子の色値とする。これにより、小さい格子から大きい格子へ色値が反映される。
【0115】
(S207)次に、各8*8格子に対し色値に中央値補正を加える。具体的には、注目する8*8格子およびその周囲の8個の8*8格子からなる計9個の8*8格子において、色値に含まれる輝度の中央値(メディアン)を求め、これに対応する色値(つまり9個の色値の中で輝度が中央値である色値)を、当該注目8*8格子の色値とする。これにより、各8*8格子の色値には、周囲の色値が中央値による補正を通して反映される。
【0116】
(S209)次に、各8*8格子に対し次の処理により状態値を初期化する。すなわち、上述の閾値の調整処理によって調整された閾値に基づいて各格子が肌色かどうかを判断し、状態値に反映する。具体的には、上述のようにして準備および補正した色値を基に、輝度、色相および彩度のそれぞれが、閾値の範囲内であるか範囲外であるかを選別(判定)する。
【0117】
(S211)次に、各8*8格子に対し次の処理によって評価値を初期化する。すなわち、周辺の8*8格子の状態値から、重み付けして評価値に反映する。具体的には、中央の格子の評価値は、対応する位置関係の格子に対して、閾値による判定結果が閾値内である格子を「1」とし、閾値による判定結果が閾値外である格子を「0」として、重み付けの値(係数)に掛け合わしたものの総和で算出される。各格子の重み付け係数をWi(iは格子に付した番号:1−9)とし、各格子の閾値による判定結果の値をHiとすると、中央の格子の評価値Yは、次式により得られる。
【0118】
Y=W1*H1+W2*H2+W3*H3+W4*H4+W5*H5+W6*H6+W7*H7+W8*H8+W9*H9
したがってたとえば、図11(A)に示すような重み付け係数をプリセットデータ用メモリ54に準備し、閾値による判定で図22に示すような結果が得られたとすると、中央の格子の評価値Yは、上式に基づいて次のように算出される。
【0119】
Y=(0/64)*0+(10/64)*0+(0/64)*1+(10/64)*0+(24/64)*1+(10/64)*1+(0/64)*0+(10/64)*1+(0/64)*0=44/64
なお、この実施例では図11(A)のような周囲1格子による重み付けを行ったが、他の実施例では、図11(B)のような周囲2格子または図11(C)のような周囲3格子による重み付けを行ってもよい。さらには、4格子以上の重み付けも可能であり、何ら重み付けを行わない実施例もあり得る。
【0120】
(S213)次に、各8*8格子に対し次の処理によって評価値を補正する。すなわち、隣接する8*8格子の評価値Yに基づいて、中心の8*8格子の状態値を補正し、評価値に反映させる。
【0121】
具体的には、周囲の8つの8*8格子のそれぞれの評価値Yが20以上であれば、周囲の8*8格子(周辺)は肌色で満たされているとみなし、自身の8*8格子について初期化された評価値Yに拘わらず、自身の8*8格子の評価値Yも肌色とする。つまり、状態値において、強制的に自身の8*8格子を肌色とみなすためのフラグをオンする。
【0122】
一方、周囲の8つの8*8格子のそれぞれの評価値Yが20未満であれば、周囲の8*8格子(周辺)は肌色でないとみなし、自身の8*8格子について初期化された評価値Yに拘わらず、自身の8*8格子の評価値Yも肌色でない(肌色以外である)とする。つまり、状態値において、強制的に自身の8*8格子を肌色でないとみなすためのフラグをオンする。いずれの場合にも該当しなければ、すなわち周囲の8つの8*8格子で20未満の評価値Yと20以上の評価値Yとが混在していれば、自身の8*8格子の評価値Yは、ここでは何ら補正されずに維持される。
【0123】
なお、後述するように、この評価値補正処理は、4*4格子や2*2格子に対しても実行されるが、より上層(大きい格子)において、強制的に肌色とみなしたり、強制的に肌色でないとみなしたりしている場合には、その上層における結果が優先されることになる。
【0124】
(S215)次に、各8*8格子に含まれる4個の4*4格子に、当該8*8格子自身の状態値を反映させる。具体的には、次の処理によって4*4格子の状態値が初期化される。すなわち、8*8格子の状態値がそれに含まれる4*4格子のそれぞれの状態値の初期値として設定される。
【0125】
(S217)次に、各4*4格子に対し上記(S211)と同様の処理によって評価値を初期化する。なお、重複する説明は省略する(以下同様)。
【0126】
(S219)次に、各4*4格子に対し上記(S213)と同様の処理によって評価値を補正する。
【0127】
(S221)次に、各4*4格子に含まれる4個の2*2格子に、当該4*4格子自身の状態値を反映させる。具体的には、次の処理によって2*2格子の状態値が初期化される。すなわち、4*4格子の状態値がそれに含まれる2*2格子のそれぞれの状態値の初期値として設定される。
【0128】
(S223)次に、各2*2格子に対し上記(S211)または(S217)と同様の処理によって評価値を初期化する。
【0129】
(S225)次に、各2*2格子に対し上記(S213)または(S219)と同様の処理によって評価値を補正する。したがって、2×2画素の格子単位で、その状態値を参照することにより、肌色であるか否かを検出することができる。
【0130】
肌色画像の抽出は、こうして求められた各2*2格子の評価値に基づいて行われる。すなわちCPU42は、評価値が肌色を示す2*2格子で構成された領域を肌色領域であるとみなし、ステップS17で取得した画像から肌色領域に属する部分の画像を抽出する。
【0131】
このように、この実施例では、撮像により取得した画像に対して、まずは、比較的大きいサイズA(上述の例では8*8)の各分割画像に対して、肌色か否かの判定処理(具体的には、色値の輝度、色相および彩度が一定範囲内であることを判定する処理)をおこない、サイズAの各格子について判定結果A(上述の例では、「状態値」)を生成する。そして、その後、比較的小さいサイズB(上述の例では4*4)の格子について処理をおこなう。具体的には、まず、サイズAの各格子の判定結果を用いてサイズBの各格子の判定結果を設定する(上述のステップS215)。これにより、小さいサイズの格子については肌色か否かの判定処理(具体的には、色値の輝度、色相および彩度が一定範囲内であることを判定する処理)をおこなう必要がない。すなわち、処理負荷を軽減させることができる。そして、サイズBの各格子の判定結果は周囲の格子の判定結果を用いて補正される(上述のステップS211やS213)。これにより、判定結果はより小さいサイズBの単位で変動することとなって、解像度の高い判定結果が生成される。
【0132】
また、この実施例では、比較的大きいサイズAの格子において、肌色の可能性が高いと設定された格子(上述の例では、「強制的に自身を肌色とみなすための1ビットのフラグ」が設定された格子)については、当該サイズAの格子に含まれる比較的小さいサイズBの格子において肌色でないと判定された場合であっても、サイズAの格子全域について肌色であると判定される。これにより、ノイズを減らすことができる。また、同様に、比較的大きいサイズAの格子において、肌色の可能性が低いと設定された格子(上述の例では、「強制的に自身を肌色でないとみなすための1ビットのフラグ」が設定された格子)については、当該格子内の比較的小さいサイズBの格子において肌色であると判定された場合であっても、サイズAの格子全域について肌色でないと判定される。これにより、ノイズを減らすことができる。
【0133】
以上から明らかなように、この実施例によれば、ゲーム装置10は、マイク32から入力されたマイク入力情報に基づいてゲーム処理を実行する。ゲーム装置10のCPU42は、ユーザを撮像し(S13〜S17)、撮像して得られた画像を示す画像データの肌色割合に基づいて、ユーザを検出したか否かを判定し(S23)、そしてユーザを検出したと判定されたときに、マイク入力情報に基づいてゲーム処理を実行する(S31)。なお、ユーザを検出していないと判定されたときには、マイク入力情報に基づくゲーム処理は行われない。
【0134】
したがって、ユーザが検出されていない状態では、マイク入力が無効化され、ユーザが検出されている状態でマイク入力が有効化されるので、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる。
【0135】
なお、以上の実施例では、肌色閾値に基づいて、取得した画像から肌色の画像を抽出し(ステップS19)、対象領域Edに占める肌色の領域の割合を算出し(ステップS21)、算出した結果に基づいてユーザの有無を判別しているが(ステップS23)、これに限られず、取得した画像からFSE(Face Sensing Engine)を用いてユーザの顔認識を行い、認識の結果としてユーザの目や口等が検出された場合にユーザがいると判別し、ユーザの目や口等が検出されなかったときにはユーザがいないと判別するようになっていてもよい。
【0136】
なお、他の実施例では、ユーザの有無をFSEの検出結果に基づいて判別してもよい。この実施例は、ソフトウェアの一部を除き、前実施例と同様の構成を有する。この場合のメモリマップを図18に示す。図18を参照して、プログラムエリア48aには、図19〜図21のフローチャートに対応するメインプログラム90と、メインプログラム90によって利用されるFSEプログラム92とが格納される。なお、FSEプログラム92は、既存のFSEプログラムでよい(詳細な説明を省略する)。プログラムエリア48aにはまた、前実施例と同様、入出力制御プログラム76なども格納されている。一方、データエリア48bは、前実施例と同様の画像エリア78および音声エリア80に加え、特徴エリア94を含む。特徴エリア52cには、顔検出のための特徴データが記憶される。
【0137】
図19〜図21を参照して、CPU42は、ステップS41で初期処理を実行する。初期処理は、登録特徴データの初期化ならびに画像エリア78および音声エリア80のクリアなどの処理を含む。次のステップS43では、顔検出のための特徴登録を行うか否かを判別し、NOであればステップS47に進む。操作部24によって実行を示す操作が行われると、ステップS43でYESと判別し、ステップS45に進む。ステップS45では、撮像命令を発行した後、メインメモリ48の画像エリア78から画像を取得する。
【0138】
次のステップS47では、取得した画像に基づいて特徴データを算出し、算出した特徴データを特徴エリア94に登録する。登録後、ステップS49に進んでゲームを開始するか否かを判別し、NOであれば待機する。操作部24によって開始を示す操作が行われると、ステップS49でYESと判別し、ステップS51に進んで、FSEによる顔検出の対象領域(図示せず)を設定する。なお、顔検出用の対象領域は通常、肌色検出用の対象領域Ed(図10参照)よりも広く設定される(たとえば(80,60)〜(160,120))。なお、顔検出は画面全体で行ってもよく、その場合にはステップS51は省略される。
【0139】
次のステップS53では、繰り返し撮像(スルー撮影)およびマイク入力の開始命令を発行する。応じて、カメラによる繰り返し撮像およびマイク32による音声入力がそれぞれ開始される。繰り返し撮像により得られた各フレームの画像はメインメモリ48の画像エリア78に書き込まれ、マイク入力により得られたマイク入力情報(音声データ)はメインメモリ48の音声エリア80に書き込まれる。
【0140】
次のステップS55では、RTC60の出力を参照して、画像の取得タイミングが到来したか否かを判別し、NOであれば待機する。取得タイミングが到来するとステップS15でYESと判別し、ステップS57に進んで、画像エリア78から1フレームの画像を取得する。
【0141】
次のステップS59では、取得した画像から特徴データを抽出し、その次のステップS61では、抽出した特徴データを登録特徴データと照合する。そしてステップS63で、照合結果たとえば抽出特徴データと登録特徴データとの間の一致率に基づいてユーザの有無を判別する。一致率が閾値(たとえば60%)よりも大きければ、ステップS63でYESと判別し、ステップS65に進む。一致率が閾値以下であれば、ステップS63でNOと判別し、ステップS55に戻って同様の処理を繰り返す。
【0142】
ステップS65〜S73の一連の処理は、前述したステップS25〜S33のそれと同様であり、説明を省略する。
【0143】
以上から明らかなように、この実施例によれば、ゲーム装置10は、マイク32から入力されたマイク入力情報に基づいてゲーム処理を実行する。ゲーム装置10のCPU42は、ユーザを撮像し(S53〜S57)、撮像して得られた画像を示す画像データに含まれる特徴データに基づいて(すなわちFSEの手法により)、ユーザを検出したか否かを判定し(S63)、そしてユーザを検出したと判定されたときに、マイク入力情報に基づいてゲーム処理を実行する(S71)。なお、ユーザを検出していないと判定されたときには、マイク入力情報に基づくゲーム処理は行われない。
【0144】
したがって、ユーザが検出されていない状態では、マイク入力が無効化され、ユーザが検出されている状態でマイク入力が有効化されるので、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる。
【0145】
以上では、一例として、ゲーム装置10について説明したが、この発明は、マイクとカメラとコンピュータ(プロセッサ)とを備える、ゲーム装置に適用できる。
【図面の簡単な説明】
【0146】
【図1】この発明の一実施例であるゲーム装置の外観図であり、開状態における一方側面を示す。
【図2】ゲーム装置の外観図であり、開状態における側面を示す。
【図3】ゲーム装置の外観図であり、(A)は閉状態における一方側面を、(B)は閉状態における上面を、(C)は閉状態における他方側面を、そして(D)は閉状態における下面をそれぞれ示す。
【図4】ゲーム装置の電気的構成の一例を示すブロック図である。
【図5】ゲーム装置がユーザによって把持された様子を示す図解図である。
【図6】ゲーム画面の変化の一例を示す図解図であり、(A)がゲーム開始時を、(B)がゲーム進行時をそれぞれ示す。
【図7】メモリマップの一例を示す図解図である。
【図8】予行撮影画面の一例を示す図解図である。
【図9】予行撮影時に参照される属性データの一例を示す図解図である。
【図10】撮像領域内に設定される、肌色検出の対象領域を示す図解図である。
【図11】重み付け係数の具体例を示す図解図であり、(A)が周辺1格子の一例を、(B)が周辺2格子の一例を、そして(C)が周辺3格子の一例をそれぞれ示す。
【図12】CPU動作の一部を示すフロー図である。
【図13】CPU動作の他の一部を示すフロー図である。
【図14】CPU動作のその他の一部を示すフロー図である。
【図15】CPU動作のさらにその他の一部を示すフロー図である。
【図16】CPU動作の他の一部を示すフロー図である。
【図17】CPU動作のその他の一部を示すフロー図である。
【図18】他の実施例のメモリマップを示す図解図である。
【図19】図18実施例に対応するCPU動作の一部を示すフロー図である。
【図20】図18実施例に対応するCPU動作の他の一部を示すフロー図である。
【図21】図18実施例に対応するCPU動作のその他の一部を示すフロー図である。
【図22】閾値による判定結果の一例を示す図であり、図11(A)と対応する。
【符号の説明】
【0147】
10 …ゲーム装置
12 …上側LCD
14 …下側LCD
16 …内側カメラ
18 …外側カメラ
34 …マイク
42 …CPU
48 …メインメモリ
【技術分野】
【0001】
この発明は、ゲームプログラムおよびゲーム装置に関し、特にたとえば、マイクから入力されたマイク入力情報に基づいてゲーム処理を実行する、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
この種の従来のゲームプログラムとしては、たとえば特許文献1に開示されたものが知られている。この背景技術では、マイクから入力されたマイク入力情報をメモリに記憶し、記憶したマイク情報に基づいて所定のゲーム処理を行う。
【特許文献1】特開2006‐204410号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
特許文献1の背景技術では、ユーザが実際に操作していない状況であっても、ユーザ以外の人から入力された音声や風などの影響によるマイク入力情報を有効なものと判断してゲーム処理に反映させてしまう可能性があり、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させる点については改善の余地があった。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【0005】
この発明の他の目的は、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0006】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0007】
第1の発明は、マイクから入力されたマイク入力情報に基づいてゲーム処理を実行するゲーム装置のコンピュータに、ユーザをカメラで撮像する撮像ステップ、撮像ステップで撮像して得られた画像を示す画像データに基づいて、ユーザを検出したか否かを判定する検出判定ステップ、および検出判定ステップでユーザを検出したと判定されたときに、マイク入力情報に基づいてゲーム処理を行う処理ステップを実行させるための、ゲームプログラムである。
【0008】
第1の発明では、ゲーム装置(10)は、マイク(32)から入力されたマイク入力情報に基づいてゲーム処理を実行する。ゲームプログラム(70)はゲーム装置のコンピュータ(42)に、撮像ステップ(S13〜S17,S53〜S57)、検出判定ステップ(S23,S63)、および処理ステップ(S31,S71)を実行させる。撮像ステップではユーザをカメラ(16)で撮像し、検出判定ステップでは、撮像ステップで撮像して得られた画像を示す画像データに基づいて、ユーザを検出したか否かを判定する。処理ステップでは、検出判定ステップでユーザを検出したと判定されたときに、マイク入力情報に基づいてゲーム処理を行う。なお、検出判定ステップでユーザを検出していないと判定されたときには、マイク入力情報に基づくゲーム処理は行われない。
【0009】
第1の発明によれば、撮像した画像からユーザを検出した場合にマイクの入力を有効とするので、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる。
【0010】
第2の発明は、第1の発明に従属するゲームプログラムであって、検出判定ステップは、撮像ステップで撮像して得られた画像を示す画像データに基づいて、ユーザの肌色を検出したか否かを判定することにより、ユーザを検出したか否かを判定する。
【0011】
第3の発明は、第2の発明に従属するゲームプログラムであって、撮像ステップで撮像して得られた画像を示す画像データに基づいて、肌色の領域の大きさを算出する肌色領域算出ステップ(S21)をコンピュータにさらに実行させ、検出判定ステップは、肌色領域算出ステップによって算出された肌色の領域の大きさが所定値以上であるときに、ユーザの肌色を検出したと判定する。
【0012】
第3の発明では、ゲームプログラムはコンピュータに肌色領域算出ステップ(S21)をさらに実行させる。肌色領域算出ステップは、撮像ステップで撮像して得られた画像を示す画像データに基づいて、肌色の領域の大きさを算出する。検出判定ステップは、肌色領域算出ステップによって算出された肌色の領域の大きさが所定値以上であるときに、ユーザの肌色を検出したと判定する。なお、肌色領域算出ステップで算出された大きさが所定値に満たないときには、ユーザの肌色を検出していないと判定する。
【0013】
第3の発明によれば、撮像した画像から肌色の領域の大きさを算出して肌色の領域の大きさが所定値以上の場合にユーザ検出と判定をするので、的確な判定が容易に行える。
【0014】
第4の発明は、第3の発明に従属するゲームプログラムであって、肌色領域算出ステップは、撮像ステップで撮像して得られた画像における肌色の割合を算出し、検出判定ステップは、肌色領域算出ステップで算出された割合が所定値以上であるときに、ユーザの肌色を検出したと判定する。
【0015】
第4の発明では、肌色領域算出ステップは、撮像ステップで撮像して得られた画像における肌色の割合を算出する。検出判定ステップでは、肌色領域算出ステップで算出された割合が所定値以上であるときに、ユーザの肌色を検出したと判定する。なお、肌色領域算出ステップで算出された割合が所定値に満たないときには、ユーザの肌色を検出していないと判定する。
【0016】
第4の発明によれば、撮像した画像から肌色の領域の割合を算出して肌色の領域の割合が閾値以上の場合にユーザ検出と判定をするので、画像のサイズによらず、的確な判定が容易に行える。
【0017】
第5の発明は、第3の発明に従属するゲームプログラムであって、所定の領域を設定する領域設定ステップをコンピュータにさらに実行させ、肌色領域算出ステップは、領域設定ステップで設定された所定の領域内における肌色の領域の大きさを算出する。
【0018】
第5の発明では、ゲームプログラムはコンピュータに領域設定ステップ(S11)をさらに実行させる。領域設定ステップでは、所定の領域を設定し、肌色領域算出ステップでは、領域設定ステップで設定された所定の領域内における肌色の領域の大きさを算出する。
【0019】
第5の発明によれば、所定の領域において肌色の領域を判定するので、たとえば顔が表示される可能性が高い領域を所定の領域として選ぶことで、より正確にユーザが操作していることを判定できる。なお、所定の領域は、ある実施例では固定的に設定されるが、他の実施例ではユーザ操作により可変的に設定してもよい。
【0020】
第6の発明は、第1の発明に従属するゲームプログラムであって、検出判定ステップは、撮像ステップで撮像して得られた画像を示す画像データに基づいて、ユーザの顔の全部または一部を検出したか否かを判定することにより、ユーザを検出したか否かを判定する。
【0021】
第7の発明は、第1ないし第6のいずれかの発明に従属するゲームプログラムであって、マイク入力情報が所定の条件を満たしたか否かを判定するマイク入力判定ステップをコンピュータにさらに実行させ、処理ステップは、検出判定ステップでユーザを検出したと判定され、かつ、マイク入力判定ステップで所定の条件を満たしたと判定されたとき、マイク入力情報に基づいてゲーム処理を行う。
【0022】
第7の発明では、ゲームプログラムはコンピュータにマイク入力判定ステップ(S25,S65)をさらに実行させる。マイク入力判定ステップでは、マイク入力情報が所定の条件を満たしたか否かを判定する。処理ステップでは、検出判定ステップでユーザを検出したと判定され、かつ、マイク入力判定ステップで所定の条件を満たしたと判定されたとき、マイク入力情報に基づいてゲーム処理を行う。なお、検出判定ステップでユーザを検出していないと判定されるか、または、マイク入力判定ステップで所定の条件を満たしていないと判定されたときには、マイク入力情報に基づくゲーム処理は行われない。
【0023】
第7の発明によれば、マイク入力情報が所定の条件を満たした場合にマイクの入力を有効にするので、たとえばパワーが一定値以上であるという条件を所定の条件として設定することで、誤検出を防止できる。
【0024】
第8の発明は、第1ないし第7のいずれかの発明に従属するゲームプログラムであって、ユーザを予め撮像する予行撮像ステップ、および予行撮像ステップで予めユーザを撮像して得られた画像を示す画像データに基づいて、ユーザの特徴を示す特徴データを算出する、特徴データ算出ステップをコンピュータにさらに実行させ、検出判定ステップは、撮像ステップで撮像して得られた画像を示す画像データと特徴データ算出ステップで算出された特徴データとに基づいて、ユーザを検出したか否かを判定する。
【0025】
第8の発明では、ゲームプログラムはコンピュータに予行撮像ステップ(S5,S45)および特徴データ算出ステップ(S7,S47)をさらに実行させる。予行撮像ステップでユーザを予め撮像し、特徴データ算出ステップでは、予めユーザを撮像して得られた画像を示す画像データに基づいて、ユーザの特徴を示す特徴データを算出する。検出判定ステップ(S23,S63)では、撮像ステップで撮像して得られた画像を示す画像データと特徴データ算出ステップで算出された特徴データとに基づいて、ユーザを検出したか否かを判定する。
【0026】
第8の発明によれば、ユーザの特徴データを基準にすることで、より正確にユーザを検出できる。
【0027】
第9の発明は、第8の発明に従属するゲームプログラムであって、特徴データ算出ステップは、予めユーザを撮像して得られた画像を示す画像データに基づいて、ユーザの肌色の特徴に応じた肌色閾値を算出し、特徴データ算出ステップで算出された肌色閾値に基づいて、撮像ステップで撮像して得られた画像から肌色の画像を抽出する肌色画像抽出ステップ、および撮像ステップで撮像して得られた画像を示す画像データと肌色画像抽出ステップで抽出された肌色画像を示す画像データとに基づいて、当該画像における肌色の領域の大きさを算出する肌色領域算出ステップをコンピュータにさらに実行させ、検出判定ステップは、肌色領域算出ステップで算出された肌色領域の大きさが所定値以上であるときに、ユーザを検出したと判定する。
【0028】
第9の発明では、ゲームプログラムはコンピュータに肌色画像抽出ステップ(S19)および肌色領域算出ステップ(S21)をさらに実行させる。特徴データ算出ステップ(S7)では、予めユーザを撮像して得られた画像を示す画像データに基づいて、ユーザの肌色の特徴に応じた肌色閾値を算出する。肌色画像抽出ステップ(S19)では、算出ステップで算出された肌色閾値に基づいて、撮像ステップで撮像して得られた画像から肌色の画像を抽出する。肌色領域算出ステップ(S21)では、撮像ステップで撮像して得られた画像を示す画像データと肌色画像抽出ステップで抽出された肌色画像を示す画像データとに基づいて、当該画像における肌色の領域の大きさを算出する。そして検出判定ステップ(S23)では、肌色領域算出ステップで算出された肌色領域の大きさが所定値以上であるときに、ユーザを検出したと判定する。なお、肌色領域算出ステップで算出された肌色領域の大きさが所定値に満たないときには、ユーザを検出していないと判定する。
【0029】
つまり、ここでは、肌色閾値をユーザの肌色の特徴データの1つとして算出している。なお、ある実施例では、肌色閾値を、予めユーザを撮像して得られた画像を示す画像データに基づいて補正している(言い換えれば補正値を算出している)が、ここでいう肌色閾値の算出には、このような補正ないし補正値の算出も含まれる。
【0030】
第9の発明によれば、肌色の特徴に応じた肌色閾値を用いて肌色領域を抽出することで、さらに正確なユーザ検出を簡単に行える。
【0031】
第10の発明は、第8の発明に従属するゲームプログラムであって、特徴データ算出ステップ(S47)は、予めユーザを撮像して得られた画像を示す画像データに基づいて、ユーザの肌色の特徴を示す肌色特徴データを算出し、検出判定ステップ(S63)は、撮像ステップで撮像して得られた画像を示す画像データと特徴データ算出ステップで算出された肌色特徴データとに基づいて、ユーザを検出したか否かを判定する。
【0032】
第10の発明によれば、特徴データとして肌色の特徴を示す肌色特徴データを用いることで、正確なユーザ検出を簡単に行える。
【0033】
第11の発明は、マイクから入力されたマイク入力情報に基づいてゲーム処理を実行するゲーム装置であって、ユーザを撮像する撮像手段(16,S13〜S17,S53〜S57)、撮像手段で撮像して得られた画像を示す画像データに基づいて、ユーザを検出したか否かを判定する検出判定手段(S23,S63)、および検出判定手段でユーザを検出したと判定されたときに、マイク入力情報に基づいてゲーム処理を行う処理手段(S31,S71)を備える。
【0034】
第11の発明によれば、第1の発明と同様に、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる。
【0035】
第12の発明は、第11の発明に従属するゲーム装置であって、撮像方向と集音方向とが略平行(それぞれz軸と略平行)となるようにカメラ(16)およびマイク(32)が設けられる。
【0036】
第12の発明によれば、撮像方向と集音方向とが略平行なので、マイク入力の検出とユーザの検出を同時行うことができるとともに、検出の精度を向上させることができる。
【発明の効果】
【0037】
この発明によれば、ユーザが検出されていない状態ではマイク入力が無効化され、ユーザが検出されている状態ではマイク入力が有効化されるので、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる、ゲームプログラムおよびゲーム装置が実現される。
【0038】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0039】
図1〜図3には、本発明の一実施例であるゲーム装置10の外観が示される。ゲーム装置10は折り畳み型のゲーム装置であり、図1および図2は、開いた状態(開状態)におけるゲーム装置10を示し、図3は、閉じた状態(閉状態)におけるゲーム装置10を示している。また、図1は、開状態におけるゲーム装置10の正面図であり、図2は、開状態におけるゲーム装置の側面図である。ゲーム装置10は、2つの表示装置(LCD12および14)および2つのカメラ(カメラ16および18)を有し、カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることができる。
【0040】
ゲーム装置10は、開いた状態において両手または片手で把持することができるような小型のサイズとされる。
【0041】
ゲーム装置10は、下側ハウジング20および上側ハウジング22という2つのハウジングを有する。下側ハウジング20と上側ハウジング22とは、開閉可能(折り畳み可能)に接続されている。この実施例では、各ハウジング20および22はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【0042】
上側ハウジング22は、下側ハウジング20の上側の一部で回動自在に支持されている。これによって、ゲーム装置10は、閉状態(下側ハウジング20と上側ハウジング22とのなす角度が約0°の状態(図3参照))と、開状態(下側ハウジング20と上側ハウジング22とのなす角度が約180°の状態(図2参照))とをとることができる。ユーザは通常、開状態でゲーム装置10を使用し、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。また、ゲーム装置10は、上記閉状態および開状態のみでなく、下側ハウジング20と上側ハウジング22とのなす角度を、ヒンジに発生する摩擦力などによって閉状態と開状態との間の任意の角度に維持することができる。つまり、上側ハウジング22を下側ハウジング20に対して任意の角度で静止させることができる。
【0043】
まず、下側ハウジング20に設けられる構成について説明する。図1に示すように、ゲーム装置10は、下側LCD(液晶表示装置)12を有する。下側LCD12は横長形状であり、長辺方向が下側ハウジング20の長辺方向に一致するように配置される。下側LCD12は下側ハウジング20に収納される。下側LCD12は、下側ハウジング20の内側面に設けられる。したがって、ゲーム装置10を使用しない場合には閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。なお、この実施例では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、ゲーム装置10は任意の解像度の表示装置を利用することができる。なお、ゲーム装置10を撮像装置として利用する場合、下側LCD12は主に、カメラ16または18で撮像されている画像をリアルタイムに表示(スルー表示)するために用いられる。
【0044】
下側ハウジング20の内側面はほぼ平面状に形成される。当該内側面の中央には、下側LCD12を露出させるための開口部20bが形成される。当該開口部20bの左側(図示y軸負側)には開口部20cが形成され、当該開口部20bの右側には開口部20dが形成される。開口部20bおよび20cは、各キートップ(各ボタン24a〜24eの上面)を露出させるためのものである。そして、下側ハウジング20の内部に収納される下側LCD12の画面が開口部20bから露出し、各キートップが開口部20cおよび20dから露出される。このように、下側ハウジング20の内側面には、中央に設けられる下側LCD12用の開口部20bの左右両側に非画面領域(図1に示す点線領域A1およびA2。具体的には、各ボタン24a〜24eを配置するための領域;ボタン配置領域)がそれぞれ設けられる。
【0045】
下側ハウジング20には、入力装置として、各ボタン24a〜24iおよびタッチパネル28が設けられる。図1に示されるように、各ボタン24a〜24iのうち、方向入力ボタン24a、ボタン24b、ボタン24c、ボタン24d、ボタン24e、および電源ボタン24fは、下側ハウジング20の内側面に設けられる。方向入力ボタン24aは例えば選択操作等に用いられ、各ボタン24b〜24eは例えば決定操作やキャンセル操作等に用いられる。電源ボタン24fは、ゲーム装置10の電源をオン/オフするために用いられる。ここでは、方向入力ボタン24aおよび電源ボタン24fは、下側ハウジング20の中央付近に設けられる下側LCD12に対して一方の側の(図1では左側)に設けられ、ボタン24b〜24eは下側LCD12に対して他方の側(図1では右側)に設けられる。方向入力ボタン24aおよびボタン24b〜24eは、ゲーム装置10に対する各種操作を行うために用いられる。
【0046】
図3(A)は閉状態におけるゲーム装置10の左側面図であり、図3(B)は当該ゲーム装置10の正面図であり、図3(C)は当該ゲーム装置10の右側面図であり、そして図3(D)は当該ゲーム装置10の背面図である。図3(C)に示されるように、また、図3(A)に示されるように、音量ボタン24iは、下側ハウジング20の左側面に設けられる。音量ボタン24iは、ゲーム装置10が備えるスピーカ34の音量を調整するために用いられる。また、図3(D)に示されるように、ボタン24hは、下側ハウジング20の上面の右端部に設けられる。ボタン24gは、下側ハウジング20の上面の左端部に設けられる。各ボタン24gおよび24hは、ゲーム装置10に対して例えば撮影指示操作(シャッタ操作)を行うために用いられる。各ボタン24gおよび24hの両方をシャッターボタンとして機能させてもよく、この場合、右利きのユーザはボタン24hを使用し、左利きのユーザはボタン24gを使用することができ、いずれのユーザにも使い勝手が良い。なお、ゲーム装置10は、各ボタン24gおよび24hを常にシャッターボタンとして有効としておいてもよいし、右利きか左利きかの設定をして(メニュープログラムなどによりユーザに設定入力をさせ、設定されたデータを記憶しておく)、右利き設定のときにはボタン24hのみ有効とし、左利き設定のときにはボタン24gのみ有効とするようにしてもよい。
【0047】
図1に示されるように、ゲーム装置10は、各操作ボタン24a〜24iとは別の入力装として、タッチパネル28をさらに備えている。タッチパネル28は、下側LCD12の画面上に装着されている。なお、この実施例では、タッチパネル28は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。この実施例では、タッチパネル28として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル28の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング20の右側面には挿入口30(図1および図3(D)に示す点線)が設けられている。挿入口30は、タッチパネル28に対する操作を行うために用いられるタッチペン36を収納することができる。なお、タッチパネル28に対する入力は通常タッチペン36を用いて行われるが、タッチペン36に限らずユーザの指でタッチパネル28を操作することも可能である。
【0048】
図3(A)に示されるように、下側ハウジング20の右側面には開閉可能なカバー部11Bが設けられる。このカバー部11Bの内側には、ゲーム装置10とメモリカード38とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード38は、コネクタに着脱自在に装着される。メモリカード38は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。
【0049】
図1に示されるように、下側ハウジング20の軸部20aの左側部分には、3つのLED26a〜26cが取り付けられる。ここで、ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第1LED26aは、無線通信が確立している場合に点灯する。第2LED26bは、ゲーム装置10の充電中に点灯する。第3LED26cは、ゲーム装置10の電源がオンである場合に点灯する。したがって、3つのLED26a〜26cによって、ゲーム装置10の通信確立状況、充電状況、および、電源のオン/オフ状況をユーザに通知することができる。
【0050】
以上に説明したように、下側ハウジング20には、ゲーム装置10に対する操作入力を行うための入力装置(タッチパネル28および各ボタン24a〜24i)が設けられる。したがって、ユーザは、ゲーム装置10を使用する際には下側ハウジング20を把持してゲーム装置10に対する操作を行うことができる。図5は、ユーザがゲーム装置10を両手で把持した様子を示す図である。図5に示すように、ユーザは、各LCD12および14がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング20の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング20を把持したまま、各ボタン24a〜24eに対する操作を親指で行い、ボタン24gおよび24hに対する操作を人差し指で行うことができる。
【0051】
一方、上側ハウジング22には、画像を撮像するための構成(カメラ)、および、撮像した画像を表示するための構成(表示装置)が設けられる。以下、上側ハウジング22に設けられる構成について説明する。
【0052】
図1に示すように、ゲーム装置10は、上側LCD14を有する。上側LCD14は上側ハウジング22に収納される。上側LCD14は横長形状であり、長辺方向が上側ハウジング22の長辺方向に一致するように配置される。上側LCD14は、上側ハウジング22の内側面(ゲーム装置10が閉状態となった場合に内側となる面)に設けられる。したがって、ゲーム装置10を使用しない場合には閉状態としておくことによって、上側LCD14の画面が汚れたり傷ついたりすることを防止することができる。なお、下側LCD12と同様、上側LCD14に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、他の実施形態においては、上側LCD14上にもタッチパネルを設けてもよい。
【0053】
また、ゲーム装置10は、2つのカメラ16および18を有する。各カメラ16および18はともに上側ハウジング22に収納される。図1に示されるように、内側カメラ16は、上側ハウジング22の内側面に取り付けられる。一方、図3(B)に示されるように、外側カメラ18は、内側カメラ16が取り付けられる面の反対側の面、すなわち、上側ハウジング22の外側面(ゲーム装置10が閉状態となった場合に外側となる面)に取り付けられる。これによって、内側カメラ16は、上側ハウジング22の内側面が向く方向を撮像することが可能であり、外側カメラ18は、内側カメラ16の撮像方向の逆方向、すなわち、上側ハウジング22の外側面が向く方向を撮像することが可能である。以上のように、この実施例では、2つのカメラ16および18が撮像方向が互いに逆方向となるように設けられる。したがって、ユーザはゲーム装置10を持ち替えることなく、異なる2方向を撮像することができる。例えば、ユーザは、ゲーム装置10からユーザの方を見た景色を内側カメラ16で撮影することができるとともに、ゲーム装置10からユーザの反対側の方向を見た景色を外側カメラ18で撮影することができる。
【0054】
また、内側カメラ16は、上側ハウジング22の下側の中央部に形成される軸部22aの中央に取り付けられる。つまり、内側カメラ16は、2つのハウジング20および22が接続される部分の中央に取り付けられる。したがって、ゲーム装置10を開状態にした場合、内側カメラ16は、2つのLCD12および14の間に配置されることになる(図1参照)。換言すれば、内側カメラ16は、ゲーム装置10の中心付近に配置されることになる。なお、「ゲーム装置10の中心」とは、ゲーム装置10の操作面(開状態における各ハウジング20および22の内側面からなる面)の中心という意味である。なお、内側カメラ16は、LCD12および14の横方向の中心付近に配置されているということもできる。
【0055】
この実施例では、ゲーム装置10を開状態にした場合に内側カメラ16はゲーム装置10の中心付近に配置されるので、ユーザは、内側カメラ16によってユーザ自身を撮影する場合、ユーザがゲーム装置10に正対する位置でゲーム装置10を把持すればよい。つまり、通常の把持位置でゲーム装置を把持すれば、ユーザは撮像範囲の中心付近に位置することになり、ユーザ自身を撮像範囲内に収めることが容易になる。
【0056】
また、図3(B)に示されるように、外側カメラ18は、ゲーム装置10を開状態とした場合において上側ハウジング22の上部(下側ハウジング20から遠い側の部分)に配置される。なお、外側カメラ18は、ゲーム装置10を把持するユーザを撮影するものではないので、ゲーム装置10の中心に設ける必要性は高くない。
【0057】
また、図1または図3(B)に示されるように、マイク32は、上側ハウジング22に収納されている。具体的には、マイク32は、上側ハウジング22の軸部22aに取り付けられる。この実施例では、マイク32は、内側カメラ16の周囲(図ではy軸の側方)に取り付けられ、より具体的には、内側カメラ16からy軸正方向側の側方に取り付けられる。また、軸部22aにおいては、マイク32がゲーム装置10外部の音を検知することができるように、マイク32に対応する位置(内側カメラ16の側方)にマイクロフォン用孔22cが設けられる。なお、マイク32は下側ハウジング20に収納されてもよい。たとえば、マイクロフォン用孔22cを下側ハウジング20の内側面、具体的には下側ハウジング20の内側面の左下部分(ボタン配置領域A1)に設け、マイク32を、下側ハウジング20内における、マイクロフォン用孔22cの近傍に配置することができる。
【0058】
また、マイク32は、その集音方向(感度が最大となる方向)が内側カメラ16の撮像方向(光軸)と略並行(言い換えれば集音方向および撮像方向がそれぞれy軸と略並行)となる向きに取り付けられる。これによって、内側カメラ16の撮像範囲内で発せられた音声は、マイク32によって好適に捉えられる。すなわち、マイク32入力の検出とユーザの検出とを同時行うことができるとともに、検出の精度を向上させることができる。
【0059】
図3(B)に示されるように、上側ハウジング22の外側面には、第4LED26dが取り付けられる。第4LED26dは、外側カメラ18の周囲(この実施例では、外側カメラ18の右側。図17(b)に示される例では、開状態において外側カメラ18の上側)に取り付けられる。第4LED26dは、内側カメラ16または外側カメラ18によって撮影が行われた(シャッターボタンが押下された)時点で点灯する。また、内側カメラ16または外側カメラ18によって動画が撮影される間点灯する。第4LED26dによって、ゲーム装置10による撮影が行われた(行われている)ことを撮影対象者に通知することができる。
【0060】
また、上側ハウジング22の内側面はほぼ平面状に形成される。図1に示すように、当該内側面の中央には、上側LCD14を露出させるための開口部21Bが形成される。上側ハウジング22の内部に収納される上側LCD14の画面は、開口部21Bから露出する。また、上記開口部21Bの左右両側には音抜き孔22dがそれぞれ1つずつ形成される。音抜き孔22dの奥の上側ハウジング22内にはスピーカ34が収納されている。音抜き孔22dは、スピーカ34からの音を外部に放出するための孔である。
【0061】
このように、上側ハウジング22の内側面には、中央に設けられる上側LCD14用の開口部21Bの左右両側に非画面領域(図1に示す点線領域B1およびB2。具体的には、スピーカ34を配置するための領域;スピーカ配置領域)がそれぞれ設けられる。2つの音抜き孔22dは、左右方向については、各スピーカ配置領域の左右方向における中央部付近に配置され、上下方向については、各スピーカ配置領域の下部領域(下側ハウジング20に近い側の領域)に配置される。
【0062】
なお、上記のように、下側ハウジング20および上側ハウジング22に左右方向に関して同じ位置に非画面領域をそれぞれ設けたことで、ゲーム装置10は、図5に示すような横持ちで把持される場合だけでなく、縦持ち(図5に示す状態からゲーム装置10を左または右回りに90°回転させた状態)で把持される場合にも持ちやすい構成となっている。
【0063】
以上に説明したように、上側ハウジング22には、画像を撮像するための構成であるカメラ16および18、および、撮像された画像を表示するための表示手段である上側LCD14が設けられる。一方、下側ハウジング20には、ゲーム装置10に対する操作入力を行うための入力装置(タッチパネル28および各ボタン24a〜24i)が設けられる。したがって、ゲーム装置10を撮像装置として使用する際には、ユーザは、上側LCD14に表示される撮像画像(カメラによって撮像された画像)を見ながら、下側ハウジング20を把持して入力装置に対する入力を行うことができる。
【0064】
また、上側ハウジング22のカメラ16近傍には、音声を入力するための構成であるマイク32が設けられており、したがってゲーム装置10は、録音装置としても使用可能である。さらに、詳細は後述するが、ユーザがマイク32を通して音声入力を行い、ゲーム装置10はこのマイク入力情報に基づいてゲーム処理を実行することもできる。
【0065】
図4は、ゲーム装置10の内部構成を示すブロック図である。図4に示すように、ゲーム装置10は、CPU42、メインメモリ48、メモリ制御回路50、保存用データメモリ52、プリセットデータ用メモリ54、メモリカードインターフェース(メモリカードI/F)44、無線通信モジュール56、ローカル通信モジュール58、リアルタイムクロック(RTC)39、電源回路46、およびインターフェース回路(I/F回路)40等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング20(または上側ハウジング22でもよい)内に収納される。
【0066】
CPU42は、各種のプログラムを実行するための情報処理手段である。ゲーム装置10を撮像装置として利用する場合には、そのためのプログラムがゲーム装置10内のメモリ(例えば保存用データメモリ52)に記憶される。CPU42が当該プログラムを実行することで、ゲーム装置10は撮影装置として機能する。なお、CPU42によって実行されるプログラムは、ゲーム装置10内のメモリに予め記憶されていてもよいし、メモリカード38から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。
【0067】
CPU42には、メインメモリ48、メモリ制御回路50、およびプリセットデータ用メモリ54が接続される。また、メモリ制御回路50には保存用データメモリ52が接続される。メインメモリ48は、CPU42のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ48は、ゲーム処理や撮像処理に用いられる各種データを記憶したり、外部(メモリカード38や他の機器等)から取得されるプログラムを記憶したりする。この実施例では、メインメモリ48として例えばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ52は、CPU42によって実行されるプログラムや各カメラ16および18によって撮像された画像のデータ等を記憶するための記憶手段である。保存用データメモリ52は、例えばNAND型フラッシュメモリで構成される。メモリ制御回路50は、CPU42の指示に従って、保存用データメモリ52に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ54は、ゲーム装置10において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ54としては、SPI(Serial Peripheral Interface)バスによってCPU42と接続されるフラッシュメモリを用いることができる。
【0068】
メモリカードI/F44はCPU42に接続される。メモリカードI/F44は、コネクタに装着されたメモリカード38に対するデータの読み出しおよび書き込みをCPU42の指示に従って行う。この実施例では、各カメラ16および18によって撮像された画像データがメモリカード38に書き込まれたり、メモリカード38に記憶された画像データがメモリカード38から読み出されて保存用データメモリ52に記憶されたりする。
【0069】
無線通信モジュール56は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール58は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール56およびローカル通信モジュール58はCPU42に接続される。CPU42は、無線通信モジュール56を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール58を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0070】
また、CPU42には、RTC60および電源回路46が接続される。RTC60は、時間をカウントしてCPU42に出力する。CPU42は、RTC60によって計時された時間に基づいて、現在時刻(日付)を計算したり、画像取り込み等の動作タイミングを検知したりする。電源回路46は、ゲーム装置10が有する電源(電池;下ハウジングに収納される)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0071】
また、ゲーム装置10は、マイク32およびスピーカ34を備えている。マイク32およびスピーカ34はそれぞれI/F回路40に接続される。マイク32は、ユーザの音声を検知して音声信号をI/F回路40に出力する。スピーカ34は、I/F回路40からの音声信号に応じた音声を出力する。I/F回路40はCPU42に接続される。また、タッチパネル28はI/F回路40に接続される。I/F回路40は、マイク32およびスピーカ34の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。変換された音声データは、メインメモリ48の音声エリア80(図7参照)に書き込まれる。ゲーム装置10を録音装置として利用する場合には、音声エリア80に格納された音声データは、後にメモリ制御回路50を介して保存用データメモリ52に書き込まれる(必要に応じてさらに、メモリカードI/F44を介してメモリカード38に記録される)。また、詳細は後述するが、音声エリア80に格納された音声データ(マイク入力情報)は、各種のゲーム処理にも利用される。タッチパネル制御回路は、タッチパネル28からの信号に基づいて所定の形式のタッチ位置データを生成してCPU42に出力する。タッチ位置データは、タッチパネル28の入力面のうちで入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル28からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU42は、タッチ位置データを取得することにより、タッチパネル28に対して入力が行われた位置を知ることができる。
【0072】
操作部24は、上記各ボタン24a〜24iからなり、CPU42に接続される。操作部24からCPU42へは、各ボタン24a〜24iに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU42は、操作部24から操作データを取得することによって、操作部24に対する入力に従った処理を実行する。
【0073】
各カメラ16および18はCPU42に接続される。各カメラ16および18は、CPU42の指示に従って画像を撮像し、撮像した画像データをCPU42に出力する。CPU42は、各カメラ16および18からの画像データをメインメモリ48の画像エリア78(図7参照)に書き込む。ゲーム装置10を撮像装置として利用する場合には、画像エリア78に格納された画像データは、後にメモリ制御回路50を介して保存用データメモリ52に書き込まれる(必要に応じてさらに、メモリカードI/F44を介してメモリカード38に記録される)。また、詳細は後述するが、画像エリア78に格納された画像データは、各種のゲーム処理にも利用される。
【0074】
また、各LCD12および14はCPU42に接続される。各LCD12および14はCPU42の指示に従って画像を表示する。ゲーム装置10を撮像装置として利用する場合、CPU42は、各カメラ16および18のいずれかから取得した画像を上側LCD14に表示させ、所定の処理によって生成した操作画面を下側LCD12に表示させる。ゲーム装置10でゲームをプレイする場合には、LCD12および14の一方または両方にゲーム画像が表示される。
【0075】
以上のように構成されたゲーム装置10である種のゲーム(たとえば「マント吹き飛ばしゲーム」)を行うとき、CPU42は、各カメラ16および18で撮像された画像データおよび/またはマイク32から入力されたマイク入力情報に基づいてゲーム処理を実行する。この実施例の「マント吹き飛ばしゲーム」の場合、内側カメラ16からの画像データとマイク32からのマイク入力情報とがゲーム処理に利用される。具体的には、マントを羽織ったキャラクタがLCD14に表示され、プレイヤがこのキャラクタに向かって息を吹きかけると、この息吹きかけによる音声がマイク32で捉えられる。こうしてマイク32から入力されたマイク入力情報に基づいてCPU42がゲーム処理を実行することで、表示画面内ではキャラクタのマントがあたかもプレイヤの息で吹き飛ばされたような変化が生じる。「マント吹き飛ばしゲーム」の画面変化の一例を図6に示す。図6(A)がゲーム開始時の画面であり、無風状態のためキャラクタCrが着用しているマントMnは垂れ下がっている。図6(B)がゲーム進行時の画面であり、息吹きかけの結果マントMnが飛ばされつつある。なお、図6中に網掛けを施した領域は、ユーザの顔の肌色の部分(肌色領域)を示すシルエットS1である。
【0076】
ところが、人の多い場所や風の強い屋外では、ユーザ以外の人の声や風の音もマイク32で拾われるため、ユーザが息を吹きかけなくてもゲームが進行する場合がある。そこで、この実施例では、内側カメラ16からの画像データに基づいてユーザの有無を判別し、ユーザがいない状況では、たとえ音声入力が検出されてもゲームを進行させないようにしている。ユーザの有無は、ゲーム画面(撮像領域Ep)内の対象領域Edに占める肌色領域の割合(以下「肌色割合」)に基づいて判別される(図10参照)。なお、ユーザの有無は、ゲーム画面(撮像領域Ep)内の対象領域Edに占める肌色領域の割合に基づいて判別されなくてもよく、内側カメラ16からの画像データに基づいて算出した肌色領域の大きさに基づいて判別されるものであればどのようなものであってもよい。
【0077】
図7には、マント吹き飛ばしゲームをプレイする場合のメモリマップが示される。図7を参照して、メインメモリ48にはプログラムエリア48aおよびデータエリア48bが形成され、プログラムエリア48aには、図12〜図17のフローチャートに対応するメインプログラム70が格納される。メインプログラム70は、図15および図16のフローチャートに対応する閾値調整プログラム72と、図17のフローチャートに対応する肌色抽出プログラム74とをサブルーチンとして含む。プログラムエリア48aにはさらに、I/F回路40等を制御して映像や音声の入出力を行うための入出力制御プログラム76も格納されている。一方、データエリア48bは、画像エリア78,音声エリア80および閾値エリア82などを含む。画像エリア78には各カメラ16および18からの映像データが一時記憶され、音声エリア80にはマイク32からの音声データ(マイク入力情報)が一時記憶される。閾値エリア82には、肌色抽出のための閾値が記憶される。
【0078】
図12〜図14を参照して、ゲームが開始されると、CPU42は、ステップS1で初期処理を実行する。初期処理は、肌色閾値の初期化ならびに画像エリア78および音声エリア80のクリアなどの処理を含む。次のステップS3では、肌色抽出のための閾値調整を行うか否かを判別し、NOであればステップS9に進む。例えば、後述する閾値調整しょりが終了した後に閾値調整フラグをオンにし、ステップS3で既に閾値調整が行われた場合に、ステップS3でNOと判別される。操作部24によって実行を示す操作が行われると、ステップS3でYESと判別し、ステップS5に進む。ステップS5では、複数回ここでは3回の撮像命令を発行した後、メインメモリ48の画像エリア78から3枚の画像を取得する。
【0079】
ここで、撮像命令は、ユーザが所定のポーズを取った状態で発行される。ここで所定のポーズは、たとえば、顔の横に右手をかざしたポーズである。このようなポーズのガイドとなる画像(図8における顔の輪郭画像および手の輪郭画像)を表示した状態で、撮像タイミングを知らせる「3,2,1,バシャ」のような音声を出力しつつ、「1」から「バシャ」までの間に撮像命令を繰り返し発行することによって、ユーザが所定のポーズを取った状態で複数回の撮像を実行することができる。
【0080】
なお、このように撮影された画像のうちの1枚はLCD12および14に表示されて、プレイヤに提示される。これにより、撮影した画像は、ゲームをプレイする(プレイした)プレイヤが誰かという証明画像として用いることができる。
【0081】
なお、他の実施例では、閾値調整用の画像は1枚だけでもよい。ただし、枚数を増やすことで、自動補正処理等で画面の色味や輝度が変化しても、閾値の均質化を図ることができる。
【0082】
次のステップS7では、取得した3枚の画像に基づいて、肌色抽出用の閾値をユーザの肌色の特徴に適合するように調整する。調整後、ステップS9に進む。なお、この閾値調整処理の詳細については後述する。
【0083】
ステップS9では、ゲームを開始するか否かを判別し、NOであればステップS3に戻る。操作部24によって開始を示す操作が行われると、ステップS9でYESと判別し、ステップS11に進んで肌色検出の対象領域(Ed)を設定する。ここでは、図10に示すように、対象領域Edとして、撮像領域Ep(0,0)〜(256,192)の略中央に位置する矩形領域(112,80)〜(144,96)が設定される。つまり、この実施例の対象領域Edは、横方向32ドット*縦方向16ドット=512ドットのサイズを有する。なお、対象領域Edの形状は矩形とは限らず、円形ないし楕円形でも、正六角形などの多角形などでもよい。対象領域Edのサイズや位置も適宜変更してよい。また、対象領域は、必ずしも固定的とは限らず、他の実施例ではユーザ操作により可変的に設定してもよい。
【0084】
その後、ステップS13に進んで、繰り返し撮像(スルー撮影)およびマイク入力の開始命令を発行する。応じて、カメラによる繰り返し撮像およびマイク32による音声入力がそれぞれ開始される。繰り返し撮像により得られた各フレームの画像はメインメモリ48の画像エリア78に書き込まれ、マイク入力により得られたマイク入力情報(音声データ)はメインメモリ48の音声エリア80に書き込まれる。なお、この実施例では、繰り返し撮像およびマイク入力を略同時に開始しているが、マイク入力は、繰り返し撮像の開始前に開始されてもよい。
【0085】
ここで、画像エリア78は、所定数フレーム(たとえば30フレーム)の画像を記憶可能なサイズを有し、画像エリア78内の画像のうち最古のフレームの画像が、最新のフレームの画像によって上書きされていく。音声エリア80もまた、30フレーム相当のマイク入力情報を記憶可能なサイズを有し、音声エリア80内のマイク入力情報のうち最古のフレームに対応するマイク入力情報が、最新のフレームに対応するマイク入力情報によって上書きされていく。したがって、画像エリア78および音声エリア80には常時、直近30フレームの画像およびこれに対応するマイク入力情報が格納されていることになる。
【0086】
次のステップS15では、RTC60の出力を参照して、画像の取得タイミングが到来したか否かを判別し、NOであれば待機する。たとえば、画像を毎フレーム取得する場合、1/60秒が経過する度にステップS15でYESと判別し、ステップS17に進んで、画像エリア78から1フレームの画像を取得する。
【0087】
次のステップS19では、肌色閾値に基づいて、取得した画像から肌色の画像を抽出する。なお、この肌色抽出処理の詳細については後述する。そして、ステップS21で対象領域Edに占める肌色領域の割合を算出し、算出結果に基づいてユーザの有無を判別する。算出結果が閾値たとえば64/512よりも大きければ、ステップS23でYESと判別し、ステップS25に進む。算出結果が64/512以下であれば、ステップS23でNOと判別し、ステップS15に戻って同様の処理を繰り返す。
【0088】
ステップS25では、メインメモリ48の音声エリア80から1フレーム相当のマイク入力情報を取り込む。そしてステップS27で、取り込んだマイク入力情報に基づいて音量(入力パワー)を算出した後、算出結果が閾値(たとえば40dB)以上か否かをステップS29で判別する。ステップS29でYESであれば、ステップS31でマイク入力情報に基づくゲーム処理を実行した後、ステップS33に進む。一方、ステップS29でNOであれば、ステップS31のゲーム処理はスキップされ、次のステップS33が直ちに実行される。
【0089】
ステップS33では、ゲーム終了条件が満足されたか否かを判別する。ゲーム終了条件は、たとえば「ゲームが成功する」,「ゲームが失敗する」および「終了操作が行われる」の3つの条件を含み、この中のいずれかが満足されるとステップS33でYESと判別してゲームを終了する。3つの条件のどれも満足されなければ、ステップS33でNOと判別し、ステップS15に戻って同様の処理を繰り返す。
【0090】
この実施例では、ゲーム成功またはゲーム失敗の判別のために、ゲームの進行度合いを示す評価値を導入する。評価値は、メインメモリ48に記憶されており、ステップS1の初期処理で初期化(=0)された後、ステップS29で最初にYESと判別されたときインクリメントされる。そして、最初のインクリメントから18フレーム(約0.2秒)後にもステップS29でYESであれば、評価値はさらにインクリメントされる。このときNOであれば、評価値はデクリメントされる(他の実施例では現時点の値が維持されてもよい)。以降、同様の処理が18フレームごとに繰り返され、評価値が“5”に達した時点でゲーム成功と判別される。評価値が“5”に到達する前に所定時間(たとえば1分)が経過すれば、ゲーム失敗と判別される。
【0091】
したがって、図6(A)のゲーム画面では、ステップS29で最初にYESと判別されたときマントMnが捲り上がり始め、以降ステップS29でYESと判別される度に(したがって0.2秒毎に)段階的に捲り上がっていく。そして、ステップS29YESの状態が1秒継続した時点で、ゲーム画面は図6(B)のようになり、この直後にマントMnが吹き飛ばされ、ゲームが成功したことになる。
【0092】
次に、上記ステップS7の閾値調整処理について詳しく説明する。この実施例では、肌色抽出のための閾値は、色相下限,色相上限,彩度下限,彩度上限,輝度下限および輝度上限の6つの閾値を含む。これら6つの閾値の各々が、ステップS5で取得した3枚のフレームの画像(評価用画像データ)に基づいて、図15および図16に示す手順で調整される。以下、各ステップS101〜S133について説明する。
【0093】
(S101)最初、6つの閾値の各々について、初期値,最小値および最大値(いずれも静的な値)を設定する。具体的には、色相下限の閾値について初期値220,最小値210および最大値230を設定し、色相上限の閾値について初期値25,最小値21および最大値30を設定し、彩度下限の閾値について初期値17,最小値10および最大値30を設定し、彩度上限の閾値について初期値114,最小値60および最大値213を設定し、輝度下限の閾値について初期値15,最小値7および最大値68を設定し、そして輝度上限の閾値について初期値180,最小値152および最大値232を設定する。
【0094】
ただし、色相については、360の角度を256段階に変換した値(0以上256未満)で処理される。つまり256は0と等価であり、色相は0→1→…→255→0→1→…のように循環する。よって、色相の初期値の場合、色相下限が220であり、色相上限が25であるので、肌色としての抽出範囲は、220,221,222,…,254,255,0,1,…,24,25となる。
【0095】
(S103)次に、属性判定用データとして、ステップS5における撮影時に表示されるガイド画像に対応したデータ(静的なデータ)を準備する。属性判定用データは、具体的には、画面内の各位置の画素が次の3種類のどの属性になるかを(ここでは2ドットの精度で)データ化したものであり、予め設定されてプログラムにデータとして含まれる。
【0096】
属性A…肌色であるべき
属性B…肌色以外であるべき
属性C…どちらでもよい(評価に関与しない)
属性判定用データの一例を図9に示す。図9を参照して、濃い網掛けを施された部分が属性Aに、薄い網掛けを施された部分が属性Bに、そして何ら網掛けのない部分が属性Cにそれぞれ対応する。
【0097】
次に、取得した3枚のフレームの画像のうち1つを選択して、評価用画像データとする。次のステップS105に進む。
【0098】
(S105)色相下限の閾値に初期値(=220)を与え、この初期値を現時点での最適値とする。そして、評価用画像データを(ここでは4ドット毎に)属性判定用データと比較することによって、肌色の抽出状態を評価する。この評価処理は、具体的には次のように行われる。属性判定用データで属性Aの部分について、評価用画像データの対応部分が確かに肌色であったかどうかを判定し、確かに肌色であったと判定された部分のドット数を値Aとする。属性判定用データで属性Bの部分については、評価用画像データの対応部分が誤って肌色であったかどうかを判定し、誤って肌色であったと判定された部分のドット数を値Bとする。属性Cの部分については、特に判定を行わなくてよい。こうして求めた値Aから値Bを減算し、減算結果を評価値とする。この評価値が大きいほど、肌色をより好適に抽出できているとみなされる。
【0099】
(S107)次に、色相下限の閾値に最小値(=210)を与え、同様の評価処理を行う。(S109)これにより得られた評価値が、前回(つまり閾値に初期値を与えたとき)の評価値よりも上昇したか否かを判別する。判別結果によって、処理はステップS111〜S117とステップS119〜S129との2つの場合に分岐する。
【0100】
(S111〜S117)S109で評価値が上昇した場合、現時点の閾値(つまり最小値)と現時点の最適値(つまり初期値)との中間の値(たとえば平均値)を求め、求めた中間の値を新たな閾値として同様の評価処理を行う。これにより得られた評価値を前回(つまり閾値に最小値を与えたとき)の評価値と比較し、より高い評価値が得られた方の閾値(つまり「最小値」および「最小値と最適値との中間の値」のいずれか)を現時点の最適値として採用する。そしてステップS131およびS133に進む。
【0101】
(S119〜S129)S109で評価値が上昇しなかった場合つまり現状維持または下降した場合、色相下限の閾値に最大値(=230)を与えて同様の評価処理を行う。ここでも処理は2分岐する。今回の評価値が前回の評価値より上昇した場合、現時点の閾値(つまり最大値)と現時点の最適値(つまり初期値)との中間の値を求め、求めた中間の値を新たな閾値として同様の評価処理を行う。これにより得られた評価値を前回(つまり閾値に最小値を与えたとき)の評価値と比較し、より高い評価値が得られた方の閾値(つまり「最大値」および「最大値と最適値との中間の値」のいずれか)を現時点の最適値として採用する。一方、今回の評価値が前回の評価値より下降した場合もしくは現状維持の場合には、結局、当初の最適値(つまり初期値)がより好適であったことになるので、このまま確定する。そしてステップS131およびS133に進む。
【0102】
(S131)以降、色相上限,彩度下限,彩度上限,輝度下限および輝度上限の各閾値についても、上のステップS105〜S129と同様の処理を実行して、より好適な値を選択していく。
【0103】
(S133)残りの2枚のフレームの画像の各々についても、同様の処理を繰り返す。ただし、2フレーム目の処理では、1フレーム目の処理で求めた最適値を初期値とし、3フレーム目の処理では、2フレーム目の処理で求めた最適値を初期値とする。
【0104】
以上の処理を通じて、6つの閾値の各々は最適値に調整される。
【0105】
このように、この実施例では、ゲーム開始前にプレイヤを撮影した写真画像を用いて、現在の環境(光のあたり具体など)におけるプレイヤの肌色の閾値を調整する。これにより、ゲーム中の肌色検出を正確におこなうことができる。
【0106】
また、この実施例では、複数の写真画像を用いておこなう。これにより、より正確に閾値を調整することができ、また、n枚目の写真画像により最適化された閾値をもとにn+1枚目の評価処理をおこなうため効率的である。
【0107】
また、色相、彩度、輝度のそれぞれについて閾値を調整する。これにより、そのときの環境における閾値をより正確に設定することができる。なお、色相と彩度のみを調整してもよいし、色相と輝度のみを調整してもよい。
【0108】
また、肌色であるべき領域のみならず、肌色以外であるべき領域を判定するようにしてもよい。これにより、正確に閾値を設定することができる。
【0109】
なお、この実施例では、閾値調整処理はゲーム開始前に行われたが、これに代えて、またはこれに加えて、ゲームの途中で1回ないし複数回行われてもよい。また、ここで挙げた閾値や取得フレーム数は、好ましい一例に過ぎず、適宜変更されてよい。
【0110】
次に、上記ステップS19の肌色抽出処理について詳しく説明する。この実施例では、上述のような調整処理を経た後の閾値に基づいて、図17の手順で各フレームの画像から肌色部分が抽出される。以下、各ステップS201〜S225について説明する。
【0111】
(S201)最初、メインメモリ48の画像エリア78から1つのフレームの画像をAPI(Application Program Interface)により取得する。この画像は、256*192のサイズを有し、RGB(各成分5ビット)の形式に従う。
【0112】
(S203)次に、取得した画像に基づいて、抽出処理用のデータを構築する。このデータは、8*8,4*4および2*2の3種類の格子状領域(それぞれ「8*8格子」,「4*4格子」および「2*2格子」と呼ぶ)に対応して生成される。すなわち、256*192の画像から、768(=32*24)個の8*8格子と、3072(=64*48)個の4*4格子と、12288(=64*48)個の2*2格子とが生成される。
【0113】
ここで、各格子のデータは、評価値,状態値および色値に関する情報を含む。評価値は、8ビットで記述され、肌色らしさを示す(ただし、8ビットのうち評価に用いられるのは0〜64であり、255は無効を示す)。評価値が大きい格子ほど肌色らしいとみなされる。状態値は、16ビットで記述され、抽出状況や肌色であるか肌色以外であるかの判別結果等を示す。色値は、16ビットで記述され、RGB555の形式に従う。ただし色値は、データの評価に際して、RGB555形式から輝度,色相および彩度の3成分による形式へと変換される。状態値は、後述する各処理によって判定した内容(状態)を保持するためのデータであり、16ビットのデータで示される。具体的には、肌色かどうかを示す1ビットの情報、周囲8つの格子のそれぞれについて肌色かどうかを示す8ビットの情報、強制的に自身を肌色とみなすための1ビットのフラグ、強制的に自身を肌色でないとみなすための1ビットのフラグで示され、余分な5ビットが付加される。
【0114】
(S205)次に、各格子に対し色値を準備する。具体的には、まず各2*2格子について、そこに含まれる4つの画素から平均の色値を求め、これをその格子の色値とする。次に各4*4格子について、そこに含まれる4つの2*2格子に設定された色値(すなわち、4つの色値)から平均の色値を求め、これをその格子の色値とする。最後に各8*8格子について、そこに含まれる4つの4*4格子に設定された色値(すなわち、4つの色値)から平均の色値を求め、これをその格子の色値とする。これにより、小さい格子から大きい格子へ色値が反映される。
【0115】
(S207)次に、各8*8格子に対し色値に中央値補正を加える。具体的には、注目する8*8格子およびその周囲の8個の8*8格子からなる計9個の8*8格子において、色値に含まれる輝度の中央値(メディアン)を求め、これに対応する色値(つまり9個の色値の中で輝度が中央値である色値)を、当該注目8*8格子の色値とする。これにより、各8*8格子の色値には、周囲の色値が中央値による補正を通して反映される。
【0116】
(S209)次に、各8*8格子に対し次の処理により状態値を初期化する。すなわち、上述の閾値の調整処理によって調整された閾値に基づいて各格子が肌色かどうかを判断し、状態値に反映する。具体的には、上述のようにして準備および補正した色値を基に、輝度、色相および彩度のそれぞれが、閾値の範囲内であるか範囲外であるかを選別(判定)する。
【0117】
(S211)次に、各8*8格子に対し次の処理によって評価値を初期化する。すなわち、周辺の8*8格子の状態値から、重み付けして評価値に反映する。具体的には、中央の格子の評価値は、対応する位置関係の格子に対して、閾値による判定結果が閾値内である格子を「1」とし、閾値による判定結果が閾値外である格子を「0」として、重み付けの値(係数)に掛け合わしたものの総和で算出される。各格子の重み付け係数をWi(iは格子に付した番号:1−9)とし、各格子の閾値による判定結果の値をHiとすると、中央の格子の評価値Yは、次式により得られる。
【0118】
Y=W1*H1+W2*H2+W3*H3+W4*H4+W5*H5+W6*H6+W7*H7+W8*H8+W9*H9
したがってたとえば、図11(A)に示すような重み付け係数をプリセットデータ用メモリ54に準備し、閾値による判定で図22に示すような結果が得られたとすると、中央の格子の評価値Yは、上式に基づいて次のように算出される。
【0119】
Y=(0/64)*0+(10/64)*0+(0/64)*1+(10/64)*0+(24/64)*1+(10/64)*1+(0/64)*0+(10/64)*1+(0/64)*0=44/64
なお、この実施例では図11(A)のような周囲1格子による重み付けを行ったが、他の実施例では、図11(B)のような周囲2格子または図11(C)のような周囲3格子による重み付けを行ってもよい。さらには、4格子以上の重み付けも可能であり、何ら重み付けを行わない実施例もあり得る。
【0120】
(S213)次に、各8*8格子に対し次の処理によって評価値を補正する。すなわち、隣接する8*8格子の評価値Yに基づいて、中心の8*8格子の状態値を補正し、評価値に反映させる。
【0121】
具体的には、周囲の8つの8*8格子のそれぞれの評価値Yが20以上であれば、周囲の8*8格子(周辺)は肌色で満たされているとみなし、自身の8*8格子について初期化された評価値Yに拘わらず、自身の8*8格子の評価値Yも肌色とする。つまり、状態値において、強制的に自身の8*8格子を肌色とみなすためのフラグをオンする。
【0122】
一方、周囲の8つの8*8格子のそれぞれの評価値Yが20未満であれば、周囲の8*8格子(周辺)は肌色でないとみなし、自身の8*8格子について初期化された評価値Yに拘わらず、自身の8*8格子の評価値Yも肌色でない(肌色以外である)とする。つまり、状態値において、強制的に自身の8*8格子を肌色でないとみなすためのフラグをオンする。いずれの場合にも該当しなければ、すなわち周囲の8つの8*8格子で20未満の評価値Yと20以上の評価値Yとが混在していれば、自身の8*8格子の評価値Yは、ここでは何ら補正されずに維持される。
【0123】
なお、後述するように、この評価値補正処理は、4*4格子や2*2格子に対しても実行されるが、より上層(大きい格子)において、強制的に肌色とみなしたり、強制的に肌色でないとみなしたりしている場合には、その上層における結果が優先されることになる。
【0124】
(S215)次に、各8*8格子に含まれる4個の4*4格子に、当該8*8格子自身の状態値を反映させる。具体的には、次の処理によって4*4格子の状態値が初期化される。すなわち、8*8格子の状態値がそれに含まれる4*4格子のそれぞれの状態値の初期値として設定される。
【0125】
(S217)次に、各4*4格子に対し上記(S211)と同様の処理によって評価値を初期化する。なお、重複する説明は省略する(以下同様)。
【0126】
(S219)次に、各4*4格子に対し上記(S213)と同様の処理によって評価値を補正する。
【0127】
(S221)次に、各4*4格子に含まれる4個の2*2格子に、当該4*4格子自身の状態値を反映させる。具体的には、次の処理によって2*2格子の状態値が初期化される。すなわち、4*4格子の状態値がそれに含まれる2*2格子のそれぞれの状態値の初期値として設定される。
【0128】
(S223)次に、各2*2格子に対し上記(S211)または(S217)と同様の処理によって評価値を初期化する。
【0129】
(S225)次に、各2*2格子に対し上記(S213)または(S219)と同様の処理によって評価値を補正する。したがって、2×2画素の格子単位で、その状態値を参照することにより、肌色であるか否かを検出することができる。
【0130】
肌色画像の抽出は、こうして求められた各2*2格子の評価値に基づいて行われる。すなわちCPU42は、評価値が肌色を示す2*2格子で構成された領域を肌色領域であるとみなし、ステップS17で取得した画像から肌色領域に属する部分の画像を抽出する。
【0131】
このように、この実施例では、撮像により取得した画像に対して、まずは、比較的大きいサイズA(上述の例では8*8)の各分割画像に対して、肌色か否かの判定処理(具体的には、色値の輝度、色相および彩度が一定範囲内であることを判定する処理)をおこない、サイズAの各格子について判定結果A(上述の例では、「状態値」)を生成する。そして、その後、比較的小さいサイズB(上述の例では4*4)の格子について処理をおこなう。具体的には、まず、サイズAの各格子の判定結果を用いてサイズBの各格子の判定結果を設定する(上述のステップS215)。これにより、小さいサイズの格子については肌色か否かの判定処理(具体的には、色値の輝度、色相および彩度が一定範囲内であることを判定する処理)をおこなう必要がない。すなわち、処理負荷を軽減させることができる。そして、サイズBの各格子の判定結果は周囲の格子の判定結果を用いて補正される(上述のステップS211やS213)。これにより、判定結果はより小さいサイズBの単位で変動することとなって、解像度の高い判定結果が生成される。
【0132】
また、この実施例では、比較的大きいサイズAの格子において、肌色の可能性が高いと設定された格子(上述の例では、「強制的に自身を肌色とみなすための1ビットのフラグ」が設定された格子)については、当該サイズAの格子に含まれる比較的小さいサイズBの格子において肌色でないと判定された場合であっても、サイズAの格子全域について肌色であると判定される。これにより、ノイズを減らすことができる。また、同様に、比較的大きいサイズAの格子において、肌色の可能性が低いと設定された格子(上述の例では、「強制的に自身を肌色でないとみなすための1ビットのフラグ」が設定された格子)については、当該格子内の比較的小さいサイズBの格子において肌色であると判定された場合であっても、サイズAの格子全域について肌色でないと判定される。これにより、ノイズを減らすことができる。
【0133】
以上から明らかなように、この実施例によれば、ゲーム装置10は、マイク32から入力されたマイク入力情報に基づいてゲーム処理を実行する。ゲーム装置10のCPU42は、ユーザを撮像し(S13〜S17)、撮像して得られた画像を示す画像データの肌色割合に基づいて、ユーザを検出したか否かを判定し(S23)、そしてユーザを検出したと判定されたときに、マイク入力情報に基づいてゲーム処理を実行する(S31)。なお、ユーザを検出していないと判定されたときには、マイク入力情報に基づくゲーム処理は行われない。
【0134】
したがって、ユーザが検出されていない状態では、マイク入力が無効化され、ユーザが検出されている状態でマイク入力が有効化されるので、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる。
【0135】
なお、以上の実施例では、肌色閾値に基づいて、取得した画像から肌色の画像を抽出し(ステップS19)、対象領域Edに占める肌色の領域の割合を算出し(ステップS21)、算出した結果に基づいてユーザの有無を判別しているが(ステップS23)、これに限られず、取得した画像からFSE(Face Sensing Engine)を用いてユーザの顔認識を行い、認識の結果としてユーザの目や口等が検出された場合にユーザがいると判別し、ユーザの目や口等が検出されなかったときにはユーザがいないと判別するようになっていてもよい。
【0136】
なお、他の実施例では、ユーザの有無をFSEの検出結果に基づいて判別してもよい。この実施例は、ソフトウェアの一部を除き、前実施例と同様の構成を有する。この場合のメモリマップを図18に示す。図18を参照して、プログラムエリア48aには、図19〜図21のフローチャートに対応するメインプログラム90と、メインプログラム90によって利用されるFSEプログラム92とが格納される。なお、FSEプログラム92は、既存のFSEプログラムでよい(詳細な説明を省略する)。プログラムエリア48aにはまた、前実施例と同様、入出力制御プログラム76なども格納されている。一方、データエリア48bは、前実施例と同様の画像エリア78および音声エリア80に加え、特徴エリア94を含む。特徴エリア52cには、顔検出のための特徴データが記憶される。
【0137】
図19〜図21を参照して、CPU42は、ステップS41で初期処理を実行する。初期処理は、登録特徴データの初期化ならびに画像エリア78および音声エリア80のクリアなどの処理を含む。次のステップS43では、顔検出のための特徴登録を行うか否かを判別し、NOであればステップS47に進む。操作部24によって実行を示す操作が行われると、ステップS43でYESと判別し、ステップS45に進む。ステップS45では、撮像命令を発行した後、メインメモリ48の画像エリア78から画像を取得する。
【0138】
次のステップS47では、取得した画像に基づいて特徴データを算出し、算出した特徴データを特徴エリア94に登録する。登録後、ステップS49に進んでゲームを開始するか否かを判別し、NOであれば待機する。操作部24によって開始を示す操作が行われると、ステップS49でYESと判別し、ステップS51に進んで、FSEによる顔検出の対象領域(図示せず)を設定する。なお、顔検出用の対象領域は通常、肌色検出用の対象領域Ed(図10参照)よりも広く設定される(たとえば(80,60)〜(160,120))。なお、顔検出は画面全体で行ってもよく、その場合にはステップS51は省略される。
【0139】
次のステップS53では、繰り返し撮像(スルー撮影)およびマイク入力の開始命令を発行する。応じて、カメラによる繰り返し撮像およびマイク32による音声入力がそれぞれ開始される。繰り返し撮像により得られた各フレームの画像はメインメモリ48の画像エリア78に書き込まれ、マイク入力により得られたマイク入力情報(音声データ)はメインメモリ48の音声エリア80に書き込まれる。
【0140】
次のステップS55では、RTC60の出力を参照して、画像の取得タイミングが到来したか否かを判別し、NOであれば待機する。取得タイミングが到来するとステップS15でYESと判別し、ステップS57に進んで、画像エリア78から1フレームの画像を取得する。
【0141】
次のステップS59では、取得した画像から特徴データを抽出し、その次のステップS61では、抽出した特徴データを登録特徴データと照合する。そしてステップS63で、照合結果たとえば抽出特徴データと登録特徴データとの間の一致率に基づいてユーザの有無を判別する。一致率が閾値(たとえば60%)よりも大きければ、ステップS63でYESと判別し、ステップS65に進む。一致率が閾値以下であれば、ステップS63でNOと判別し、ステップS55に戻って同様の処理を繰り返す。
【0142】
ステップS65〜S73の一連の処理は、前述したステップS25〜S33のそれと同様であり、説明を省略する。
【0143】
以上から明らかなように、この実施例によれば、ゲーム装置10は、マイク32から入力されたマイク入力情報に基づいてゲーム処理を実行する。ゲーム装置10のCPU42は、ユーザを撮像し(S53〜S57)、撮像して得られた画像を示す画像データに含まれる特徴データに基づいて(すなわちFSEの手法により)、ユーザを検出したか否かを判定し(S63)、そしてユーザを検出したと判定されたときに、マイク入力情報に基づいてゲーム処理を実行する(S71)。なお、ユーザを検出していないと判定されたときには、マイク入力情報に基づくゲーム処理は行われない。
【0144】
したがって、ユーザが検出されていない状態では、マイク入力が無効化され、ユーザが検出されている状態でマイク入力が有効化されるので、マイクの入力による操作をユーザの意図した通りにゲーム処理に反映させることができる。
【0145】
以上では、一例として、ゲーム装置10について説明したが、この発明は、マイクとカメラとコンピュータ(プロセッサ)とを備える、ゲーム装置に適用できる。
【図面の簡単な説明】
【0146】
【図1】この発明の一実施例であるゲーム装置の外観図であり、開状態における一方側面を示す。
【図2】ゲーム装置の外観図であり、開状態における側面を示す。
【図3】ゲーム装置の外観図であり、(A)は閉状態における一方側面を、(B)は閉状態における上面を、(C)は閉状態における他方側面を、そして(D)は閉状態における下面をそれぞれ示す。
【図4】ゲーム装置の電気的構成の一例を示すブロック図である。
【図5】ゲーム装置がユーザによって把持された様子を示す図解図である。
【図6】ゲーム画面の変化の一例を示す図解図であり、(A)がゲーム開始時を、(B)がゲーム進行時をそれぞれ示す。
【図7】メモリマップの一例を示す図解図である。
【図8】予行撮影画面の一例を示す図解図である。
【図9】予行撮影時に参照される属性データの一例を示す図解図である。
【図10】撮像領域内に設定される、肌色検出の対象領域を示す図解図である。
【図11】重み付け係数の具体例を示す図解図であり、(A)が周辺1格子の一例を、(B)が周辺2格子の一例を、そして(C)が周辺3格子の一例をそれぞれ示す。
【図12】CPU動作の一部を示すフロー図である。
【図13】CPU動作の他の一部を示すフロー図である。
【図14】CPU動作のその他の一部を示すフロー図である。
【図15】CPU動作のさらにその他の一部を示すフロー図である。
【図16】CPU動作の他の一部を示すフロー図である。
【図17】CPU動作のその他の一部を示すフロー図である。
【図18】他の実施例のメモリマップを示す図解図である。
【図19】図18実施例に対応するCPU動作の一部を示すフロー図である。
【図20】図18実施例に対応するCPU動作の他の一部を示すフロー図である。
【図21】図18実施例に対応するCPU動作のその他の一部を示すフロー図である。
【図22】閾値による判定結果の一例を示す図であり、図11(A)と対応する。
【符号の説明】
【0147】
10 …ゲーム装置
12 …上側LCD
14 …下側LCD
16 …内側カメラ
18 …外側カメラ
34 …マイク
42 …CPU
48 …メインメモリ
【特許請求の範囲】
【請求項1】
マイクから入力されたマイク入力情報に基づいてゲーム処理を実行するゲーム装置のコンピュータに、
ユーザをカメラで撮像する撮像ステップ、
前記撮像ステップで撮像して得られた画像を示す画像データに基づいて、前記ユーザを検出したか否かを判定する検出判定ステップ、および
前記検出判定ステップで前記ユーザを検出したと判定されたときに、前記マイク入力情報に基づいて前記ゲーム処理を行う処理ステップを実行させるための、ゲームプログラム。
【請求項2】
前記検出判定ステップは、前記撮像ステップで撮像して得られた画像を示す画像データに基づいて、前記ユーザの肌色を検出したか否かを判定することにより、前記ユーザを検出したか否かを判定する、請求項1に記載のゲームプログラム。
【請求項3】
前記撮像ステップで撮像して得られた画像を示す画像データに基づいて、肌色の領域の大きさを算出する肌色領域算出ステップを前記コンピュータにさらに実行させ、
前記検出判定ステップは、前記肌色領域算出ステップによって算出された肌色の領域の大きさが所定値以上であるときに、前記ユーザの肌色を検出したと判定する、請求項2に記載のゲームプログラム。
【請求項4】
前記肌色領域算出ステップは、前記撮像ステップで撮像して得られた画像における肌色の割合を算出し、
前記検出判定ステップは、前記肌色領域算出ステップで算出された割合が所定値以上であるときに、前記ユーザの肌色を検出したと判定する、請求項3に記載のゲームプログラム。
【請求項5】
特定の領域を設定する領域設定ステップを前記コンピュータにさらに実行させ、
前記肌色領域算出ステップは、前記領域設定ステップで設定された前記特定の領域内における肌色の領域の大きさを算出する、請求項3に記載のゲームプログラム。
【請求項6】
前記検出判定ステップは、前記撮像ステップで撮像して得られた画像を示す画像データに基づいて、前記ユーザの顔の全部または一部を検出したか否かを判定することにより、前記ユーザを検出したか否かを判定する、請求項1に記載のゲームプログラム。
【請求項7】
前記マイク入力情報が所定の条件を満たしたか否かを判定するマイク入力判定ステップを前記コンピュータにさらに実行させ、
前記処理ステップは、前記検出判定ステップで前記ユーザを検出したと判定され、かつ、前記マイク入力判定ステップで前記所定の条件を満たしたと判定されたとき、前記マイク入力情報に基づいてゲーム処理を行う、請求項1ないし6のいずれかに記載のゲームプログラム。
【請求項8】
前記ユーザを予め撮像する予行撮像ステップ、および
前記予行撮像ステップで予め前記ユーザを撮像して得られた画像を示す画像データに基づいて、前記ユーザの特徴を示す特徴データを算出する、特徴データ算出ステップを前記コンピュータにさらに実行させ、
前記検出判定ステップは、前記撮像ステップで撮像して得られた画像を示す画像データと前記特徴データ算出ステップで算出された特徴データとに基づいて、前記ユーザを検出したか否かを判定する、請求項1ないし7のいずれかに記載のゲームプログラム。
【請求項9】
前記特徴データ算出ステップは、予め前記ユーザを撮像して得られた画像を示す画像データに基づいて、前記ユーザの肌色の特徴に応じた肌色閾値を算出し、
前記特徴データ算出ステップで算出された肌色閾値に基づいて、前記撮像ステップで撮像して得られた画像から肌色の画像を抽出する肌色画像抽出ステップ、および
前記撮像ステップで撮像して得られた画像を示す画像データと前記肌色画像抽出ステップで抽出された肌色画像を示す画像データとに基づいて、当該画像における肌色の領域の大きさを算出する肌色領域算出ステップを前記コンピュータにさらに実行させ、
前記検出判定ステップは、前記肌色領域算出ステップで算出された肌色領域の大きさが所定値以上であるときに、前記ユーザを検出したと判定する、請求項8に記載のゲームプログラム。
【請求項10】
前記特徴データ算出ステップは、予め前記ユーザを撮像して得られた画像を示す画像データに基づいて、前記ユーザの肌色の特徴を示す肌色特徴データを算出し、
前記検出判定ステップは、前記撮像ステップで撮像して得られた画像を示す画像データと前記特徴データ算出ステップで算出された肌色特徴データとに基づいて、前記ユーザを検出したか否かを判定する、請求項8に記載のゲームプログラム。
【請求項11】
マイクから入力されたマイク入力情報に基づいてゲーム処理を実行するゲーム装置であって、
ユーザを撮像する撮像手段、
前記撮像手段で撮像して得られた画像を示す画像データに基づいて、前記ユーザを検出したか否かを判定する検出判定手段、および
前記検出判定手段で前記ユーザを検出したと判定されたときに、前記マイク入力情報に基づいて前記ゲーム処理を行う処理手段を備える、ゲーム装置。
【請求項12】
撮像方向と集音方向とが略平行となるように前記カメラおよび前記マイクが設けられる、請求項11に記載のゲーム装置。
【請求項1】
マイクから入力されたマイク入力情報に基づいてゲーム処理を実行するゲーム装置のコンピュータに、
ユーザをカメラで撮像する撮像ステップ、
前記撮像ステップで撮像して得られた画像を示す画像データに基づいて、前記ユーザを検出したか否かを判定する検出判定ステップ、および
前記検出判定ステップで前記ユーザを検出したと判定されたときに、前記マイク入力情報に基づいて前記ゲーム処理を行う処理ステップを実行させるための、ゲームプログラム。
【請求項2】
前記検出判定ステップは、前記撮像ステップで撮像して得られた画像を示す画像データに基づいて、前記ユーザの肌色を検出したか否かを判定することにより、前記ユーザを検出したか否かを判定する、請求項1に記載のゲームプログラム。
【請求項3】
前記撮像ステップで撮像して得られた画像を示す画像データに基づいて、肌色の領域の大きさを算出する肌色領域算出ステップを前記コンピュータにさらに実行させ、
前記検出判定ステップは、前記肌色領域算出ステップによって算出された肌色の領域の大きさが所定値以上であるときに、前記ユーザの肌色を検出したと判定する、請求項2に記載のゲームプログラム。
【請求項4】
前記肌色領域算出ステップは、前記撮像ステップで撮像して得られた画像における肌色の割合を算出し、
前記検出判定ステップは、前記肌色領域算出ステップで算出された割合が所定値以上であるときに、前記ユーザの肌色を検出したと判定する、請求項3に記載のゲームプログラム。
【請求項5】
特定の領域を設定する領域設定ステップを前記コンピュータにさらに実行させ、
前記肌色領域算出ステップは、前記領域設定ステップで設定された前記特定の領域内における肌色の領域の大きさを算出する、請求項3に記載のゲームプログラム。
【請求項6】
前記検出判定ステップは、前記撮像ステップで撮像して得られた画像を示す画像データに基づいて、前記ユーザの顔の全部または一部を検出したか否かを判定することにより、前記ユーザを検出したか否かを判定する、請求項1に記載のゲームプログラム。
【請求項7】
前記マイク入力情報が所定の条件を満たしたか否かを判定するマイク入力判定ステップを前記コンピュータにさらに実行させ、
前記処理ステップは、前記検出判定ステップで前記ユーザを検出したと判定され、かつ、前記マイク入力判定ステップで前記所定の条件を満たしたと判定されたとき、前記マイク入力情報に基づいてゲーム処理を行う、請求項1ないし6のいずれかに記載のゲームプログラム。
【請求項8】
前記ユーザを予め撮像する予行撮像ステップ、および
前記予行撮像ステップで予め前記ユーザを撮像して得られた画像を示す画像データに基づいて、前記ユーザの特徴を示す特徴データを算出する、特徴データ算出ステップを前記コンピュータにさらに実行させ、
前記検出判定ステップは、前記撮像ステップで撮像して得られた画像を示す画像データと前記特徴データ算出ステップで算出された特徴データとに基づいて、前記ユーザを検出したか否かを判定する、請求項1ないし7のいずれかに記載のゲームプログラム。
【請求項9】
前記特徴データ算出ステップは、予め前記ユーザを撮像して得られた画像を示す画像データに基づいて、前記ユーザの肌色の特徴に応じた肌色閾値を算出し、
前記特徴データ算出ステップで算出された肌色閾値に基づいて、前記撮像ステップで撮像して得られた画像から肌色の画像を抽出する肌色画像抽出ステップ、および
前記撮像ステップで撮像して得られた画像を示す画像データと前記肌色画像抽出ステップで抽出された肌色画像を示す画像データとに基づいて、当該画像における肌色の領域の大きさを算出する肌色領域算出ステップを前記コンピュータにさらに実行させ、
前記検出判定ステップは、前記肌色領域算出ステップで算出された肌色領域の大きさが所定値以上であるときに、前記ユーザを検出したと判定する、請求項8に記載のゲームプログラム。
【請求項10】
前記特徴データ算出ステップは、予め前記ユーザを撮像して得られた画像を示す画像データに基づいて、前記ユーザの肌色の特徴を示す肌色特徴データを算出し、
前記検出判定ステップは、前記撮像ステップで撮像して得られた画像を示す画像データと前記特徴データ算出ステップで算出された肌色特徴データとに基づいて、前記ユーザを検出したか否かを判定する、請求項8に記載のゲームプログラム。
【請求項11】
マイクから入力されたマイク入力情報に基づいてゲーム処理を実行するゲーム装置であって、
ユーザを撮像する撮像手段、
前記撮像手段で撮像して得られた画像を示す画像データに基づいて、前記ユーザを検出したか否かを判定する検出判定手段、および
前記検出判定手段で前記ユーザを検出したと判定されたときに、前記マイク入力情報に基づいて前記ゲーム処理を行う処理手段を備える、ゲーム装置。
【請求項12】
撮像方向と集音方向とが略平行となるように前記カメラおよび前記マイクが設けられる、請求項11に記載のゲーム装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2010−142585(P2010−142585A)
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願番号】特願2008−326124(P2008−326124)
【出願日】平成20年12月22日(2008.12.22)
【出願人】(000233778)任天堂株式会社 (1,115)
【出願人】(397037890)株式会社インテリジェントシステムズ (14)
【Fターム(参考)】
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願日】平成20年12月22日(2008.12.22)
【出願人】(000233778)任天堂株式会社 (1,115)
【出願人】(397037890)株式会社インテリジェントシステムズ (14)
【Fターム(参考)】
[ Back to top ]