(第1の実施形態)
図面を参照して、本発明の第1の実施形態に係る画像処理プログラムを実行する画像処理装置について説明する。本発明の画像処理プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、画像処理装置の一例として携帯型のゲーム装置10を用い、ゲーム装置10で実行される画像処理プログラムを用いて説明する。なお、図1は、ゲーム装置10の外観の一例を示す平面図である。ゲーム装置10は、一例として携帯型のゲーム装置であり、図1に示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10の一例を示す正面図である。ゲーム装置10は、撮像部を内蔵しており、当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することもできる。
図1において、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、ユーザは、開状態でゲーム装置10を使用する。そして、ユーザは、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。また、ゲーム装置10は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14I、アナログスティック15、LED16、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は、下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11の内側面に設けられた開口部から下側LCD12の画面が露出する。そして、ゲーム装置10を使用しない場合には上記閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、一例として、320dot×240dot(横×縦)である。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば静電容量方式等、任意の押圧式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1に示す破線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Iの内、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14G、HOMEボタン14H、およびスタートボタン14Iが設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、およびボタン14Eは、十字状に配置される。
また、図示はしていないが、ゲーム装置10には、Lボタン、Rボタンおよび音量ボタンが設けられる。LボタンおよびRボタンは、下側ハウジング11の上側面に設けられている。Lボタンは、下側ハウジング11の上面の左端部に設けられ、Rボタンは、下側ハウジング11の上面の右端部に設けられる。LボタンおよびRボタンは、例えば、少なくともいずれか一方を撮像部のシャッターボタン(撮影指示ボタン)として機能させることが可能である。また、LボタンおよびRボタンのいずれか一方をシャッターボタンとして機能させる場合には、他方に他の任意の機能を割り当てることも可能である。また、音量ボタンは、下側ハウジング11の左側面に設けられる。音量ボタンは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
ボタン14A〜14E、セレクトボタン14G、HOMEボタン14H、スタートボタン14I、LボタンおよびRボタンには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aが下側LCD12より左側領域の下部領域に設けられ、アナログスティック15が十字ボタン14Aの上方に設けられる。また、アナログスティック15および十字ボタン14Aは、下側ハウジング11を把持した左手の親指で操作可能な位置に配置される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトは、アナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図2参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
図1に示されるように、下側ハウジング11の左側面には、データ保存用外部メモリ46を挿入可能な挿入口11Bが設けられている。挿入口11Bには、開閉可能なカバー部が設けられており、その内側にゲーム装置10とデータ保存用外部メモリ46とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ46は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ46は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部は、下側ハウジング11の右側面に設けられてもよい。
図1に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ45を挿入するための挿入口11Cが設けられ、その挿入口11Cの内部には、外部メモリ45と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。外部メモリ45がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよび挿入口11Cは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
図1に示されるように、下側ハウジング11の下側面には、ゲーム装置10の電源のON/OFF状況をユーザに通知するLED16が設けられる。また、図示はしていないが、下側ハウジング11の右側面には、ゲーム装置10の無線通信の確立状況をユーザに通知するLEDが設けられる。ゲーム装置10は、他の機器との間で無線通信を行うことが可能である。下側ハウジング11の右側面に設けられたLEDは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチも設けられる(図示せず)。
また、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
上側ハウジング21には、上側LCD22、2つの外側撮像部23(外側左撮像部23aおよび外側右撮像部23b)、内側撮像部24、3D調整スイッチ25、および3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
図1に示すように、上側LCD22は、上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は、上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、一例として下側LCD12の画面の面積よりも大きく設定される。具体的には、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21の内側面に設けられた開口部から上側LCD22の画面が露出する。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、一例として800dot×240dot(横×縦)である。なお、本実施形態では、上側LCD22が液晶表示装置であるとしたが、例えばELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。上側LCD22は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側LCD22は、左目用画像と右目用画像とが所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。なお、上側LCD22は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22は、パララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。)。このように、上側LCD22は、立体画像を表示する立体表示モードと、画像を平面的に表示する(平面画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)で構成される。外側左撮像部23aおよび外側右撮像部23bの撮像方向は、いずれも外側面21Dの外向きの法線方向であり、平行となる。外側左撮像部23aおよび外側右撮像部23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。従って、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。これにより、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。
なお、外側左撮像部23aおよび外側右撮像部23bは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)のいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用することも可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像を行うことも可能である。
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
図1に示すように、内側撮像部24は、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。具体的には、図1に示されるように、内側撮像部24は、上側ハウジング21の内側面であって、外側左撮像部23aおよび外側右撮像部23bの中間の裏側の位置に配置される。すなわち、上側ハウジング21の外側面に設けられた外側左撮像部23aおよび外側右撮像部23bを上側ハウジング21の内側面に投影した場合、当該投影した外側左撮像部23aおよび外側右撮像部23bの中間に、内側撮像部24が設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側左撮像部23aおよび外側右撮像部23bと内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1に示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。3D調整スイッチ25は、所定方向(例えば、上下方向)の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側LCD22の表示モードが設定される。
例えば、3D調整スイッチ25のスライダが最下点位置に配置されている場合、上側LCD22が平面表示モードに設定され、上側LCD22の画面には平面画像が表示される。なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。例えば、3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。従って、ユーザは、上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ44からの音声がこのスピーカ孔21Eから出力される。
次に、図2を参照して、ゲーム装置10の内部構成を説明する。なお、図2は、ゲーム装置10の内部構成の一例を示すブロック図である。
図2において、ゲーム装置10は、上述した各構成部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインターフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ45やデータ保存用内部メモリ35)に記憶されている。情報処理部31のCPU311は、当該所定のプログラムを実行することによって、後述する処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22および/または下側LCD12に出力し、上側LCD22および/または下側LCD12に当該画像が表示される。このように、CPU311は、GPU312に命令を与えてVRAM313に画像を描画させることによって、上側LCD22および/または下側LCD12へ画像を表示することができる。
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ45を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインターフェイスである。
メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、画像処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ46がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ46に記憶された画像を読み込み、上側LCD22および/または下側LCD12に当該画像を表示することができる。
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は、情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(本実施形態では、xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、例えば下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、ゲーム装置10の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを算出する。
情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置10の3軸(本実施形態では、xyz軸)周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。角速度センサ40は、例えば下側ハウジング11の内部に設けられる。情報処理部31は、角速度センサ40から出力された角速度データを受信して、ゲーム装置10の姿勢や動きを算出する。
情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路41は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
情報処理部31には、I/F回路42が接続される。I/F回路42には、マイク43、スピーカ44、およびタッチパネル13が接続される。具体的には、I/F回路42には、図示しないアンプを介してスピーカ44が接続される。マイク43は、ユーザの音声を検知して音声信号をI/F回路42に出力する。アンプは、I/F回路42からの音声信号を増幅し、音声をスピーカ44から出力させる。I/F回路42は、マイク43およびスピーカ44(アンプ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置(タッチ位置)の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、およびタッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われたタッチ位置を知ることができる。
操作ボタン14は、上記各操作ボタン14A〜14I、Lボタン、Rボタンおよび音量ボタンからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14I、Lボタン、Rボタンおよび音量ボタンに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、動物のオブジェクト(以下、動物オブジェクトと称する)を示す画像を上側LCD22に表示させる。
上側LCD22には、動物オブジェクトを示す画像として上述した平面画像の他に上述した立体画像を表示することもできる。具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体画像が表示される。
このように、上側LCD22に動物オブジェクトを立体画像として表示するかまたは平面画像として表示するかは、上述したように3D調整スイッチ25による表示モードの切り替えによって決定される。また、表示モードが3D調整スイッチ25によって立体表示モードに切り替えられていたとしても、情報処理部31が実行するプログラムに従って左目用画像および右目用画像として同一の画像を表示する場合には、動物オブジェクトが平面表示される。
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。具体的には、ユーザによるタッチパネル13や操作ボタン14を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23または内側撮像部24に対して撮像指示を行う。
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。
3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
次に、図3〜図9Cを参照して、本実施形態に係る情報処理プログラムの一例として、ゲーム装置10において、上側LCD22に1以上の動物を表示し、ユーザの呼びかけ操作に応じて近づいてきた動物との擬似的な触れあいをユーザに提供するためのゲームプログラムが実行される場合について説明する。また、以下の説明では、上側LCD22に、動物として子犬または子猫を示す動物オブジェクトが表示される場合を一例として説明する。
後に明らかとなるが、上記ゲームプログラムでは、内側撮像部24で撮像した画像にユーザの顔が撮像されているか否かを判断する処理、当該画像から顔の特徴点を検出する処理、互いに異なる画像から検出した顔の特徴点の類似度Rdを算出する処理、当該画像から後述する顔のパラメータを検出する処理などが実行される。しかしながら、本発明において、これらの処理については、任意の周知の技術を用いるものとして、詳細な説明を省略する。
上記ゲームプログラムが実行されると、初期化処理が実行された後、当該ゲームプログラムの実行に必要な各種データがデータ保存用外部メモリ46から読み出され、メインメモリ32に格納される。本実施形態では、一例として、データ保存用外部メモリ46から始めに読み出されるデータは、顔認証データDdおよび対面頻度データDfであるものとする。データ保存用外部メモリ46から読み出された顔認証データDdおよび対面頻度データDfは、それぞれメインメモリ32に格納されるものとする(図10参照)。以下、顔認証データDdおよび対面頻度データDfの一例について説明する。
(顔認証データDd)
顔認証データDdとは、上記ゲームプログラムを実行するゲーム装置10の現在までの使用者それぞれの顔の特徴点を示す個人認証データの集合体である。具体的には、顔認証データDdとは、図3に一例として示すように、現在までにゲーム装置10を使用した1以上のユーザの顔の特徴点をそれぞれ示す個人認証データに当該ユーザをそれぞれ示す固有のID(識別子)を付したデータの集合体である。図3には、ID1が付与された個人認証データ1から、ID4が付与された個人認証データ4までの4人のユーザの個人認証データからなる顔認証データDdが一例として示されている。
ユーザの顔の特徴点は、図4に一例として示すようにユーザがゲーム装置10を把持したときに、上述したように内側撮像部24で撮像した画像(以下、撮像画像Kgと称する)から抽出される。図5は、撮像画像Kgの一例を示す図である。そして、撮像画像Kgから抽出された特徴点を示すデータが、後述する登録処理で顔認証データDdを構成する個人認証データとして登録される。
顔認証データDdは、ゲーム装置10を現在使用しているユーザを、過去に使用した1以上のユーザの中から特定するために用いられる。後に詳述するが、上記ゲームプログラムでは、前述の撮像画像Kgが任意のタイミングで撮像され、撮像された撮像画像Kgに顔が撮像されているか否かが判断される。撮像画像Kgに顔が撮像されていると判断された場合には、撮像画像Kgに撮像されている顔の特徴点が抽出され、抽出された特徴点を示す顔照合データDcが生成される。従って、顔照合データDcとは、ゲーム装置10を現在使用しているユーザの顔の特徴点を示すデータとなる。そして、この顔照合データDcで示される特徴点と、顔認証データDdを構成するそれぞれの個人認証データで示される特徴点とが、個人認証データ毎に比較される。これにより、顔照合データDcと各個人認証データとの類似度Rdが、個人認証データ毎にそれぞれ算出される。そして、個人認証データ毎に算出される類似度Rdに基づいて現在のユーザの特定が行われる。
ユーザが特定されなかった場合には、顔照合データDcで示される特徴点を示すデータが、顔認証データDdを構成する新たな個人認証データとして登録される。従って、顔認証データDdは、ゲーム装置10を過去に使用したユーザの顔の特徴点を示す個人認証データだけでなく、当該ゲーム装置10を現在使用しているユーザの顔の特徴点を示す個人認証データも含むこととなる。
また、本実施形態では、一例として、顔認証データDdには、登録できるユーザの数(以下、登録可能数Tksと称する)が予め定められているものとする。すなわち、本実施形態では、一例として、顔認証データDdを構成する個人認証データとして登録可能な数が登録可能数Tksとして予め定められているものとする。
(対面頻度データDf)
一方、対面頻度データDfとは、図6に一例として示すように、上記ゲームプログラムを実行するゲーム装置10を現在までに使用した1以上のユーザそれぞれが、1以上の動物と擬似的に触れあった頻度(以下、対面頻度Tdと称する)を、当該1以上のユーザそれぞれと対応させて示すデータである。図6には、ID1〜ID4のそれぞれについて、子犬1〜子犬3および子猫1のそれぞれとの対面頻度Tdを対応させて示す対面頻度データDfが一例として示されている。本実施形態では、一例として、対面頻度データDfによって示されるそれぞれのIDは、顔認証データDdにおけるそれぞれのユーザのIDと一致させるものとする。これにより、顔認証データDdを構成する個人認証データ、すなわち、現在までにゲーム装置10を使用したユーザ毎に対面頻度Tdを管理することができる。また、本実施形態では、一例として、対面頻度データDfによって示されるユーザのIDを、顔認証データDdにおけるユーザのIDと一致させて対応させるので、対面頻度データDfに登録できるユーザの数は、顔認証データDdの登録可能数Tksと同じ数となる。
また、各対面頻度Tdは、ユーザ毎に更新される。そして、対面頻度データDfは、図6に一例として示すように、対面頻度Tdを最後に更新した最終更新日時もユーザ毎に対応させて示す。本実施形態では、一例として、ユーザが特定されたときに、特定されたユーザに対応する最終更新日時から所定の期間(以下、更新期間Rkと称する)が経過していれば、特定されたユーザと各動物との対面頻度Tdが1だけ加算され更新される。
ここで、対面頻度データDfは、それぞれの動物が、例えば、図6に一例として示す子犬3のように、ペットホテルに預けられている状態など、ユーザが直接世話をしていない状態を、該当する動物について示すデータでもある。そして、ユーザが直接世話をしていない状態とされている動物については、更新期間Rkが経過していたとしても対面頻度Tdが更新されない。従って、対面頻度Tdは、上述したように動物とユーザとが擬似的に触れあった頻度を示す値となる。
なお、本実施形態では、一例として、6時間の長さの更新期間Rkが定められているものとする。
以上が、顔認証データDdおよび対面頻度データDfの一例の説明である。
(動物オブジェクトデータ)
次に、動物オブジェクトデータについて説明する。本実施形態では、一例として、顔認証データDdおよび対面頻度データDfがそれぞれ読み出されると、次に、対面頻度データDfで示される1以上の動物をそれぞれ示す1以上の動物オブジェクトデータがデータ保存用外部メモリ46から読み出される。ただし、メインメモリ32に格納されている対面頻度データDfによって、上述したようにユーザが直接世話をしていない状態とされている動物の動物オブジェクトデータは読み出されない。
動物オブジェクトデータは、一例として、仮想空間上において、子犬または子猫の外形を示すように予め定められた形状データを含む。また、動物オブジェクトデータには、一例として、形状データにおける基準位置、当該基準位置を基準とする各関節の位置および各関節の回転角度を制御量としてそれぞれ示す制御量データも含まれる。動物オブジェクトデータに含まれる制御量データでそれぞれ示される前述の制御量が所定の動作パターンに基づいて制御されることによって、動物オブジェクトの動作が制御される。
上記動作パターンとは、一例として、上述したように制御量データで制御量としてそれぞれ示される基準位置、各関節の位置および各関節の回転角度のそれぞれの経時変化を示すように予め定められたパターンであるものとする。例えば、上記動作パターンの一例としては、制御対象の動物オブジェクトが歩く動作をするように表示されるように予め定められた歩く動作パターンが挙げられる。そして、制御対象の動物オブジェクトを示す動物オブジェクトデータに含まれる制御量データでそれぞれ示される前述の制御量を歩く動作パターンに従って経時変化させる制御をすることにより、制御対象の動物オブジェクトが歩く動作をしているように制御される。制御量を経時変化させる制御がされるときには、当該制御量を示す制御量データと共に同一の動物オブジェクトデータに含まれる形状データで示される形状も制御される。形状データで示される形状が制御されるときには、同一の動物オブジェクトデータに含まれる制御量データで示される前述の制御量の経時変化に追従して変形するように制御される。これにより、歩く動作パターンに従って制御対象の動物オブジェクトが制御されたときには、当該動物オブジェクトが歩く動作をしているように上側LCD22に表示される。このことは、歩く動作パターン以外の動作を予め定めた動作パターンについても同様である。
データ保存用外部メモリ46から読み出されたそれぞれの動物オブジェクトデータは、それぞれの動物オブジェクトデータからなるオブジェクトデータDgとしてメインメモリ32に格納される。オブジェクトデータDgがメインメモリ32に格納されると、格納されたオブジェクトデータDgを構成する各動物オブジェクトデータで示される動物オブジェクトのそれぞれが仮想空間上の部屋における初期位置に配置され、上側LCD22に表示される。
仮想空間上の部屋における初期位置に配置され、上側LCD22に表示された動物オブジェクトは、部屋の中でくつろぐ、歩き回る、寝転ぶなど、各動物オブジェクトでそれぞれ示される動物が、ユーザと触れあうことなく、それぞれの意志で生活をしているように表示されるように種々の動作が設定されるものとする。また、後述で明らかとなるが、本実施形態では、一例として、動物オブジェクトの動作を制御する際には、喜んで近寄る動作、単に歩み寄る動作、警戒しながら歩み寄る動作、ユーザの顔を舐める動作、顔を傾ける動作、ユーザに顔を向ける動作など、種々の動作をしているように上側LCD22に表示されるように設定される。
本実施形態では、一例として、このような種々の動作のための動作パターンデータがそれぞれデータ保存用外部メモリ46に予め格納されている。そして、データ保存用外部メモリ46に格納されている動作パターンデータは、オブジェクトデータDgの次に読み出される。データ保存用外部メモリ46から読み出されたそれぞれの動作パターンデータは、それぞれの動作パターンデータからなるパターンデータDlとしてメインメモリ32に格納される。そして、動物オブジェクトに動作が設定されると、メインメモリ32に格納されているパターンデータDlを構成する動作パターンデータの中から、設定された動作に対応する動作パターンデータが参照される。そして、参照された動作パターンデータに従って、制御対象の動物オブジェクトデータに含まれる制御量データで示される制御量と形状データで示される形状とが制御される。動物オブジェクトの制御は、開始されてから、動作パターンデータで示される経時変化の期間の終了タイミングまで継続される。
(顔認証処理)
上側LCD22にそれぞれの動物オブジェクトが表示されると、次に、撮像画像Kgが撮像され、撮像画像Kgに基づいて生成された顔照合データDcを用いる顔認証処理が開始される。ただし、本実施形態では、一例として、顔認証処理を実行する前に撮像された撮像画像Kgに顔が撮像されているか否かが判断される。そして、撮像画像Kgに顔が撮像されていると判断された場合には、撮像されている顔の特徴点を示す顔照合データDcが生成され、以下に述べる顔認証処理が実行される。一方、撮像画像Kgに顔が撮像されていないと判断された場合には、ユーザを特定できない。これは、撮像画像Kgに顔が撮像されていない場合には、顔の特徴点を抽出できずに顔照合データDcを生成できないからである。このため、撮像画像Kgに顔が撮像されていないと判断された場合には、以下に述べる顔認証処理および当該顔認証処理に続く登録処理は実行されず、後述する認証結果データDeがNullに更新される。そして、後述する動作制御処理の契機となる操作がユーザによって入力されたか否かを判断する処理が実行される。
顔認証処理では、まず、上述したように撮像された撮像画像Kgが解析され、撮像されている顔の特徴点が当該撮像画像Kgから抽出される。そして、抽出された特徴点を示すデータが顔照合データDcとして生成される。そして、生成された顔照合データDcが、既に登録されている顔認証データDdと照合される。
顔照合データDcが顔認証データDdと照合される場合には、顔照合データDcで示される特徴点と、顔認証データDdを構成するそれぞれの個人認証データで示される特徴点とが、個人認証データ毎に比較される。そして、顔照合データDcとそれぞれの個人認証データが比較されることにより、互いのデータで示される特徴点の類似度Rdが当該個人認証データ毎に計算される。顔認証データDdを構成する個人認証データ毎に類似度Rdが算出されると、算出された類似度Rdの中から最も大きい類似度Rdが選択される。そして、最も大きい類似度Rdが所定の第1の類似度閾値th1を超えている場合に、当該類似度Rdの個人認証データに付与されているIDで示されるユーザが、現在ゲーム装置10を使用しているユーザとして特定される。ユーザが特定されると、特定されたユーザのIDを示す認証結果データDeが生成される。
なお、例えば、類似度Rdが前述の第1の類似度閾値th1を超える個人認証データがなかった場合には、ユーザが特定されなかったものとする。本実施形態では、一例として、顔認証処理においてユーザが特定されなかった場合には、特定されなかったことを、例えば、Nullで示す認証結果データDeが生成される。
ユーザのIDまたはNullを示す認証結果データDeが生成されると、顔認証処理が終了する。本実施形態では、一例として、顔認証処理が終了すると、続いて、登録処理が開始される。
(登録処理)
以下、登録処理の一例について説明する。登録処理が開始されると、始めに、上述した顔認証処理でユーザが特定されたか否かが判断される。まず、ユーザが特定されなかったと判断された場合について説明する。
ユーザが特定されなかったと判断される場合とは、具体的には、一例として上述したように認証結果データDeによってNullが示されている場合である。この場合、登録処理では、一例として、次回以降の顔認証処理において、顔照合データDcで示される特徴点の顔のユーザ(現在ゲーム装置10を使用しているユーザ)が特定されるように、顔認証データDdおよび対面頻度データDfを更新する。顔認証データDdおよび対面頻度データDfを更新する場合には、まず、顔認証データDdを構成する個人認証データを新たに登録できるか否かが判断される。具体的には、顔認証データDdを構成する個人認証データの現在の数(以下、登録数Tsと称する)が、上述した登録可能数Tksと等しいか否かが判断される。
個人認証データの登録数Tsが登録可能数Tksと等しい場合、新たな個人認証データを登録できるように、既に登録されている個人認証データの中から削除する個人認証データが選択される。削除する個人認証データが選択される場合には、まず、対面頻度データDfが参照され、当該対面頻度データDfによって示されるユーザの中で、削除判断期間Sk以上更新されていない対面頻度Tdの中から最も小さい対面頻度Tdに対応するユーザのIDが特定される。このようにユーザのIDが特定されると、特定されたIDが付与された個人認証データが顔認証データDdから削除されると共に、当該IDのユーザと各動物との対面頻度Tdが対面頻度データDfから削除される。そして、顔照合データDcで示される現在のユーザの顔の特徴点を示すデータが、固有のIDを付与されてから顔認証データDdを構成する個人認証データとして新たに登録されると共に、当該IDで示されるユーザと各動物との対面頻度Tdが対面頻度データDfに登録される。
なお、本実施形態において、新たなユーザの個人認証データが登録されるときに、対面頻度データDfに登録される各動物との対面頻度Tdの初期値は、一例として、後述する動物制御処理で動物オブジェクトが単に歩み寄る動作が設定されるように50であるものとする。
一方、削除判断期間Sk以上更新されていない対面頻度Tdが存在しない場合には、対面頻度データDfによって示される対面頻度Tdの中から最も低い対面頻度Tdに対応するユーザのIDが特定される。そして、このように特定されたユーザのIDが付与された個人認証データが顔認証データDdから削除されると共に、当該IDのユーザと各動物との対面頻度Tdが対面頻度データDfから削除される。その後、顔照合データDcで示される特徴点を示すデータが、新たな固有のIDを付与されてから顔認証データDdを構成する個人認証データとして新たに登録されると共に、当該IDと各動物との対面頻度Tdが対面頻度データDfに登録される。
本実施形態では、一例として、新たな個人認証データが登録されるときに対面頻度データDfに登録される対面頻度Tdの初期値は、後に詳述する動作制御処理において設定される動物オブジェクトの動作を考慮して予め定めた値であれば、任意の値であってよい。例えば、新たに個人認証データが登録されたときには、当該個人認証データで示される特徴点の顔を有するユーザが、対面頻度データDfによって対応させられる動物と初対面であると考えられる。そして、初対面のユーザに対して、後述で明らかとなるが、動作制御処理においてそれぞれの動物を示す動物オブジェクトに対して設定される動作の一例としては、単に歩み寄る動作が挙げられる。初対面のユーザに対してそれぞれの動物オブジェクトに単に歩み寄る動作を一例として設定する場合には、対面頻度Tdの初期値として、それぞれ後述する第1の対面頻度閾値thm1未満、且つ第2の対面頻度閾値thm2以上の値を予め定めるとよい。
新たなユーザの個人認証データおよび対面頻度Tdが登録されると、当該ユーザが特定されたと見なされ、Nullを示す認証結果データDeが、新たに登録されたユーザのIDを示すデータに更新される。従って、上述で説明したように登録処理が開始されたときにユーザが特定されなかったと判断された場合でも、登録処理が完了したときの認証結果データDeは、上述したように撮像画像Kgに顔が撮像されていなかった場合を除いて、特定されたユーザのIDを示すデータとなる。
次に、登録処理が開始されたときに顔認証処理でユーザが特定されたと判断された場合について説明する。登録処理が開始されたときに顔認証処理でユーザが特定されたと判断される場合とは、上述の説明から明らかなように、登録処理が開始される前に登録されていた個人認証データで示される特徴点を有する顔のユーザが、ゲーム装置10を現在使用している場合である。具体的には、登録処理を開始したときの認証結果データDeによってユーザのIDが示されている(すなわち、認証結果データDeがNullではない)ときである。本実施形態では、一例として、登録処理においてユーザが特定されたと判断された場合には、対面頻度データDfで示される対面頻度Tdを更新するための処理が実行される。
対面頻度データDfの更新手順は以下の通りである。まず、対面頻度データDfによって示されるIDの中で認証結果データDeによって示されるIDのユーザに対応する最終更新日時が参照される。このとき参照された最終更新日時から現在までの期間が、上述した更新期間Rk以上であれば、認証結果データDeによって示されるIDのユーザと各動物との対面頻度Tdが1だけ加算されて更新される。ただし、上述したように、ユーザが直接世話をしていない状態の動物の対面頻度Tdは更新されない。また、対面頻度Tdが更新されるときには、更新した対面頻度Tdに対応する最終更新日時も現在の日時に更新される。
対面頻度データDfが更新されると、次に、特定されたユーザの個人認証データで示される特徴点を、現在のユーザの顔の特徴点に更新するための処理が実行される。個人認証データを更新するための処理では、まず始めに、特定されたユーザの顔照合データDcで示される特徴点を有する顔と、個人認証データで示される特徴点を有する顔とが酷似しているか否かが判断される。具体的には、例えば、最大値が100として算出されるような算出手法で類似度Rdが算出される場合には、前述の第1の類似度閾値th1より大きく、且つ100に近い値として第2の類似度閾値th2を予め設定しておく(例えば、97などに設定しておく)。そして、顔照合データDcで示される特徴点と特定されたユーザの個人認証データで示される特徴点との類似度Rdが第2の類似度閾値th2以上である場合に、それぞれのデータで示される特徴点の顔が酷似していると判断できる。酷似していると判断された場合、特定されたユーザの個人認証データで示される特徴点を、現在のユーザの顔の特徴点を示すデータ、すなわち、顔照合データDcで示される特徴点で更新する。このように、特定されたユーザの現在の特徴点を示す顔照合データDcで、個人認証データを更新することにより、例えば、成長などにより顔が変化した場合に、同一のユーザであっても特定されない場合が生じることを防げる。なお、第2の類似度閾値th2は、現在のユーザの顔の特徴点と、当該ユーザの顔の特徴点を示すデータとして登録されている個人認証データで示される特徴点との類似度Rdと比較することにより、互いの顔が酷似していると判断できる値であれば任意の値であってよい。
以上が、登録処理の一例の説明である。本実施形態では、一例として、登録処理が終了すると、後述する動作制御処理の契機となる操作がユーザによって入力されたか否かが判断される。
(動作制御処理)
以下、動作制御処理の契機となる操作がユーザによって入力されたか否かを判断する手法の一例について説明する。本実施形態において、動作制御処理の契機となる操作とは、動物を呼ぶための操作である。より具体的には、動物を呼ぶための操作とは、手を振るなどの動物を呼ぶときの動作の軌跡をタッチパネル13上で描くタッチ入力およびユーザが動物を呼ぶために発する音の入力(例えば、動物の名前を呼ぶ音声の入力、口笛の音の入力および拍手の音の入力など)である。
本実施形態では、一例として上述したように、マイク43でユーザの音声(ユーザによって発せられた音も含む)が検出され、検出された音声を示す音声信号が当該マイク43から出力される。マイク43から出力された音声信号は、I/F回路42によって所定の形式の音声データに変換される。従って、本実施形態では、動作制御処理の契機となる操作として、動物を呼ぶために発する音がユーザによって入力されたか否かを判断するために、一例として、ユーザが動物を呼ぶために発する音を示す音データと比較するための契機判断音データをデータ保存用外部メモリ46に予め格納して登録するものとする。
契機判断音データをデータ保存用外部メモリ46に予め登録する手法の一例としては、契機判断音データを予め登録する場面を設ける手法が挙げられる。より詳細には、本実施形態に係る情報処理プログラムとして、図11A〜図17を参照して後に詳述するフローチャートで示されるゲームプログラムだけではなく、契機判断音データをユーザに予め登録させるための契機判断音登録プログラムを実行する手法が一例として挙げられる。契機判断音登録プログラムを実行するタイミングは、ゲームプログラムをゲーム装置10において始めて実行する前であれば、任意のタイミングであってよい。このように契機判断音登録プログラムを実行するようにすれば、当該プログラムを実行しているときに入力された音を示す音データを、契機判断音データとしてデータ保存用外部メモリ46に予め格納することができる。本実施形態では、一例として、データ保存用外部メモリ46に格納された契機判断音データは、ゲームプログラムにおける初期化処理の後にデータ保存用外部メモリ46から読み出され、メインメモリ32に格納されるものとする。
そして、本実施形態では、一例として、動物を呼ぶための音がユーザによって入力されたか否かを判断するときには、この判断をするときに検出された音を示す音データと、メインメモリ32に格納されている契機判断音データDiとが略一致するか否かが判断される。そして、契機判断音データDiと略一致する音データで示される音が入力されたときに、ユーザによって動物を呼ぶための音が入力されたと判断することができる。
一方、動作制御処理の契機となる操作としてタッチ入力されたか否かを判断するときには、メインメモリ32に格納されているタッチ位置データDkが参照される。そして、ユーザによって動物を呼ぶための音が入力されたと判断するまでに、タッチ位置データDkによって示される最新の履歴がタッチ位置TPを示していると判断されると、さらにタッチ位置データDkによって示される履歴が参照され、動作制御処理の契機となる操作としてのタッチ入力の内容が判断される。そして、判断された内容が上述したように動物を呼ぶときの動作の軌跡を描く入力であると判断されたときに、動作制御処理の契機となる操作としてタッチ入力されたと判断される。
動作制御処理の契機となる操作として、動物を呼ぶための操作がユーザによって入力されたと判断されると、この操作を契機として、上側LCD22に表示されているそれぞれの動物オブジェクトの動作を、特定されたユーザに応じて制御する動作制御処理が開始される。以下、動作制御処理の一例を説明する。なお、以下の説明では、動作制御処理の一例として、上述したように上側LCD22に表示されているそれぞれの動物オブジェクトが、ユーザからの呼びかけに応じて近づいてくるように表示されるように動作を制御する場合について説明する。
動作制御処理では、特定されたユーザにそれぞれ対応する対面頻度Tdに基づいて動物オブジェクトのそれぞれの動作が設定されるので、当該動作制御処理が開始されると、ユーザが特定されたか否かが判断される。具体的には、認証結果データDeによってNullが示されているか否かが判断される。認証結果データDeによってNullが示されていない場合には、対面頻度データDfが参照される。ここで、認証結果データDeによってNullが示されていない場合とは、当該認証結果データDeによってユーザのIDが示されている場合である(すなわち、認証結果データDeがNullではない)。対面頻度データDfが参照されるときには、具体的には、対面頻度データDfで示される各対面頻度Tdの中から、特定されたユーザのID(認証結果データDeで示されるID)に対応する各動物の対面頻度Tdが参照される。そして、参照された各動物の対面頻度Tdのそれぞれに応じて、ユーザからの呼びかけに応じて近づいて来るときの各動物を示す動物オブジェクトのそれぞれの動作が設定される。
本実施形態では、一例として、動物オブジェクトの動作を設定するために、第1の対面頻度閾値thm1と、当該第1の対面頻度閾値thm1よりも小さい第2の対面頻度閾値thm2が予め設定されているものとする。以下では、一例として、第1の対面頻度閾値thm1として70が予め設定されており、第2の対面頻度閾値thm2として30が予め設定されているものとして説明を続ける。
このように、それぞれ予め設定された第1の対面頻度閾値thm1および第2の対面頻度閾値thm2が、上側LCD22に表示されたそれぞれの動物オブジェクトで示されるそれぞれの動物の対面頻度Tdと比較される。そして、対面頻度Tdが、第1の対面頻度閾値thm1以上である対面頻度Tdの動物を示す動物オブジェクトについては、対面頻度Tdが相対的に高く、現在ゲーム装置10を使用しているユーザによくなついているとして、喜んで近寄って来るようにその動作が設定される。また、対面頻度Tdが、第2の対面頻度閾値thm2以上であり、且つ第1の対面頻度閾値thm1未満である対面頻度Tdの動物を示す動物オブジェクトについては、対面頻度Tdが、これらの閾値の間の値であって、現在ゲーム装置10を使用しているユーザによくなついていないとして、単に歩み寄って来るようにその動作が設定される。また、対面頻度Tdが、第2の対面頻度閾値thm2未満である動物を示す動物オブジェクトについては、現在のユーザとの対面頻度Tdが相対的に低く、現在ゲーム装置10を使用しているユーザに全くなついていないとして、警戒しながら歩み寄って来るようにその動作が設定される。そして、全ての動物オブジェクトについて近づいて来るときの動作がそれぞれ設定されると、それぞれの動物オブジェクトに設定された動作を示す動作パターンデータがそれぞれ参照される。そして、参照された動作パターンデータに基づいて、上述したようにそれぞれの動物オブジェクトの動作が制御される。
一方、動作制御処理が開始されたときに、ユーザが特定されなかったと判断された場合には、ユーザに応じた動作の設定を行えない。このため、本実施形態では、ユーザが特定されなかったと判断された場合には、上側LCD22に表示されたそれぞれの動物オブジェクトの動作として、単に歩み寄って来る動作がそれぞれ設定されるものとする。
図7Aにおいて、上側LCD22には、特定されたユーザのIDに対応する各動物の対面頻度Tdに応じて設定された動作で近づいて来る動物がそれぞれ表示されている。図7Aには、図6に一例として示した対面頻度データDfにおけるID2のユーザが呼びかけたときの各動物オブジェクトの一例が示されている。図7Aにおいて、例えば、ID2のユーザに対応する対面頻度Tdの中で子犬1の対面頻度Tdは、図6に一例として示すように、70であって第1の対面頻度閾値thm1以上であるので、喜んで近寄って来るようにその動物オブジェクトの動作が設定され、制御されている。また、図7Aにおいて、例えば、ID2のユーザに対応する対面頻度Tdの中で子犬2の対面頻度Tdは、図6に一例として示すように、50であって第2の対面頻度閾値thm2以上であり、且つ第1の対面頻度閾値thm1未満であるので、単に歩み寄って来るようにその動物オブジェクトの動作が設定され、制御されている。また、図7Aにおいて、例えば、ID2のユーザに対応する対面頻度Tdの中で子猫1の対面頻度Tdは、図6に一例として示すように、25であって第2の対面頻度閾値thm2未満であるので、警戒しながら歩み寄って来るようにその動物オブジェクトの動作が設定され、制御されている。
図7Bは、特定されたユーザのIDに対応する各動物の対面頻度Tdに応じて、それぞれの動物を示す動物オブジェクトの動作が制御されている場面の他の一例を示す図である。図7Bには、図6に一例として示した対面頻度データDfにおけるID1のユーザが呼びかけたときのそれぞれの動物を示す動物オブジェクトの動作の一例が示されている。図7Bにおいて、例えば、ID1のユーザに対応する対面頻度Tdは、図6に一例として示すように、全てが第1の対面頻度閾値thm1以上であるので、各動物が全て喜んで近寄って来るようにそれらを示す動物オブジェクトの動作がそれぞれ設定され、制御されている。
このように、本実施形態では、認識されたユーザと対応する各動物の対面頻度Tdに基づいて、各動物を示す動物オブジェクトをそれぞれ制御する。
以上で説明したように、ユーザの呼びかけに応じて各動物オブジェクトが近づくようにそれらの動作がそれぞれ制御される。仮想空間上では、各動物オブジェクトがユーザに近づいたとする位置が予め定められている。そして、ユーザの呼びかけに応じて各動物オブジェクトの動作が制御されるときは、当該位置に移動するまでの制御が継続される。各動物オブジェクトが、ユーザに近づいたとする位置に移動すると、動作制御処理が終了され、当該動物オブジェクトのシルエットが下側LCD12に表示される。このように、上側LCD22に表示された動物オブジェクトのシルエットを下側LCD12に表示することにより、ユーザは下側LCD12に表示されているシルエットにタッチ入力することができる。つまり、上側LCD22に動物オブジェクトを表示し、下側LCD12にそのシルエットを表示してタッチ入力できるようにすることで、シルエットにタッチ入力することにより当該動物オブジェクトに直接触れているような操作感覚をユーザに与えることができる(図4参照)。
そこで、本実施形態では、一例として、各動物オブジェクトがユーザに近づいて動作制御処理が終了すると、近づいてきた各動物オブジェクトと擬似的な触れあいを提供するための処理が開始される。具体的には、下側LCD12に表示されたシルエットにタッチ入力する或いは音(呼びかけの音或いは拍手など)を発することにより、上側LCD22において表示されている近づいてきた各動物オブジェクトとの擬似的に触れあうことができる処理を開始する。
以下、近づいてきた各動物との擬似的な触れあいをユーザに提供するための処理の一例について説明する。本実施形態では、各動物との擬似的な触れあいをユーザに提供するための処理の一例として、撮像画像Kgから検出された各パラメータに基づいて各動物を示す動物オブジェクトをそれぞれ制御する検出動作制御処理が実行される場合がある。また、本実施形態では、各動物との擬似的な触れあいをユーザに提供するための処理の一例として、ユーザによる音声の入力またはタッチ入力に応じて各動物を示す動物オブジェクトをそれぞれ制御するオブジェクト操作処理が実行される場合もある。以下では、検出動作制御処理およびオブジェクト操作処理が、ユーザによる音の入力およびタッチ入力のいずれか一方のオブジェクト操作入力が検出されたか否かに応じて選択的に実行される場合を一例として説明する。
なお、後述の説明で明らかとなるが、検出動作制御処理およびオブジェクト操作処理のいずれかが選択的に実行される場合には、上記オブジェクト操作入力が検出されなかった場合に、上記検出動作制御処理が選択され、実行されることになる。従って、本実施形態では、一例として、動作制御処理が終了した後、上記オブジェクト操作入力が検出されない場合に予め備えて、撮像画像Kgを内側撮像部24を用いて撮像し、撮像した撮像画像Kgに基づいて顔検出データDbを更新する処理が実行される。
以下、本実施形態において顔検出データDbを更新する処理の一例について説明する。本実施形態では、一例として、上述した動作制御処理が終了すると、顔検出データDbを更新するために、撮像画像Kgが撮像される。そして、撮像された撮像画像Kgに顔が撮像されている場合に、当該撮像画像Kgに基づいて検出された各パラメータで顔検出データDbが更新される。図8は、本実施形態において撮像画像Kgから検出される各パラメータの一例を示す図である。本実施形態では、一例として、撮像画像Kgから検出される各パラメータとして、両目の間隔Ko、顔の傾きKkおよび顔の位置Kiがそれぞれ検出される。
両目の間隔Koは、一例として図8に示すように検出される。ここで、両目の間隔Koは、撮像画像Kgにおける顔の大きさに比例すると考えられる。また、撮像画像Kgにおける顔の大きさは、ユーザの顔とゲーム装置10(内側撮像部24)の距離に比例すると考えられる。従って、本実施形態では、ユーザがどの程度ゲーム装置10(内側撮像部24)に顔を近づけたかを知るための指標として両目の間隔Koを検出する。また、顔の傾きKkは、一例として図8に示すように、両目の間隔Koに平行な直線が、撮像画像Kgの横方向の軸に対して傾いている角度として検出される。本実施形態において、顔の傾きKkの符号は、一例として、撮像画像Kgにおいて反時計回りの回転方向を正とする。また、顔の位置Kiは、一例として図8に示すように、撮像画像Kgにおける顔の中心位置として検出される。
一方、撮像された撮像画像Kgに顔が撮像されていない場合には、上述した各パラメータを検出できない。検出動作制御処理では、上述した各パラメータを用いて処理をするので、撮像画像Kgに顔が撮像されていない場合には、オブジェクト操作処理が自動的に選択されて実行される。
以上で説明したように、撮像された撮像画像Kgからそれぞれ検出された両目の間隔Ko、顔の傾きKkおよび顔の位置Kiが、顔検出データDbによって示される各パラメータとして検出され、これらのパラメータで当該顔検出データDbが更新される。
このように、顔検出データDbが更新されると、ユーザによって前述のオブジェクト操作入力が行われたか否かの判断結果に応じて、上述した検出動作制御処理およびオブジェクト操作処理のいずれかが選択的に実行される。
(検出動作制御処理)
まず始めに、検出動作制御処理の一例について説明する。本実施形態では、一例として、顔検出データDbが更新されると、ユーザによるオブジェクト操作入力が検出されたか否かが判断される。そして、ユーザによるオブジェクト操作入力が検出されていないと判断されると、検出動作制御処理が選択され実行される。
検出動作制御処理が開始されると、上述したように更新された顔検出データDbが参照される。本実施形態では、一例として、顔検出データDbによって示される各パラメータの内、両目の間隔Koおよび顔の傾きKkに対してそれぞれ閾値が予め設定されるものとする。具体的には、両目の間隔Koに対しては間隔閾値thoが予め設定され、顔の傾きKkに対しては傾き閾値thkが予め設定されるものとする。
検出動作制御処理では、一例として、始めに顔検出データDbによって示される両目の間隔Koと間隔閾値thoとが比較される。そして、両目の間隔Koが間隔閾値tho以上である場合には、ユーザがゲーム装置10に顔を近づけていると考えられる。従って、両目の間隔Koが間隔閾値tho以上である場合には、図9Aに一例として示すように、上側LCD22に表示されているそれぞれの動物オブジェクトが近づけたユーザの顔を舐める仕草をする動作が設定される。
また、両目の間隔Koが間隔閾値tho以上でない場合、本実施形態では、一例として、顔検出データDbによって示される顔の傾きKkと傾き閾値thkとが比較される。そして、顔の傾きKkが傾き閾値thk以上である場合、図9Bに一例として示すように、上側LCD22に表示されているそれぞれの動物オブジェクトが顔の傾きKkで示される角度だけ顔を傾ける動作が設定される。
また、顔の傾きKkが傾き閾値thk以上でない場合、本実施形態では、一例として、顔検出データDbによって示される顔の位置Kiが参照される。そして、図9Cに一例として示すように、参照された顔の位置Kiに基づいて、上側LCD22に表示されているそれぞれの動物オブジェクトがユーザに顔を向ける動作が設定される。
本実施形態では、一例として、検出動作制御処理において上側LCD22に表示されている動物の制御が設定されると、それぞれに設定された動作に対応する動作パターンに従ってそれぞれの動物オブジェクトが上述したように制御される。
(オブジェクト操作処理)
次に、オブジェクト操作処理の一例について説明する。本実施形態では、一例として、上述した動作制御処理が終了した後、顔検出データDbが更新されると、ユーザによる前述のオブジェクト操作入力が検出されたか否かが判断される。そして、ユーザによるオブジェクト操作入力が検出されたと判断された場合には、検出されたオブジェクト操作入力を契機としてオブジェクト操作処理が開始される。
オブジェクト操作処理が開始されると、まず、当該オブジェクト操作処理の契機となったオブジェクト操作入力として音の入力が検出されたか否かが判断される。オブジェクト操作処理の契機となったオブジェクト操作入力として音の入力が検出されたか否かが判断される場合には、例えば、オブジェクト操作入力が検出されたときにマイク43から出力される音声信号で示される音量が所定の音量閾値以上であったか否かが判断される。そして、マイク43から出力される音声信号で示される音量が、音量閾値以上であったときにオブジェクト操作入力として音の入力が検出されたと判断される。
また、本実施形態では、一例として、オブジェクト操作処理の契機となる音として、それぞれの動物オブジェクトで示される動物に対する1種類以上の命令を示す音声、口笛および拍手を想定するものとする。そして、オブジェクト操作入力として音の入力が検出されたと判断された場合には、検出された音の内容が判断される。
本実施形態では、音の内容を判断するために、一例として、動物に対するユーザによる命令の音声、口笛および拍手を示す音データと比較するための音判断データをメインメモリ32に格納して登録するものとする。
音判断データをデータ保存用外部メモリ46およびメインメモリ32に登録する手法の一例としては、音判断データを予め登録する場面を設ける手法が挙げられる。より詳細には、本実施形態に係る情報処理プログラムとして、図11A〜図17を参照して後に詳述するフローチャートで示されるゲームプログラムだけではなく、音判断データをユーザに予め登録させるための音登録プログラムを実行する手法が一例として挙げられる。音登録プログラムは、オブジェクト操作入力として音の入力が検出されたと判断されたときに、所定の確率で実行され、当該音を登録するようにしてもよい。このように音登録プログラムを実行するようにすれば、ユーザに近づいてきている状態で、ユーザが発した命令、口笛および拍手を示す音データを、音判断データとしてメインメモリ32に格納することができる。
本実施形態では、一例として、音判断データがメインメモリ32に格納されるときには、それぞれの音を示す音判断データが、音判断集合データDjを構成する音判断データとして格納される。また、本実施形態では、一例として、メインメモリ32に格納された音判断集合データDjを構成するそれぞれの音判断データは、ゲームプログラムの終了と共にデータ保存用外部メモリ46に格納される。また、本実施形態では、一例として、データ保存用外部メモリ46に格納されたそれぞれの音判断データは、ゲームプログラムにおける初期化処理の後に読み出され、音判断集合データDjを構成する音判断データとしてメインメモリ32に格納される。
そして、音の内容が判断されるときには、オブジェクト操作処理の契機となった音を示す音データが、メインメモリ32に格納されている音判断集合データDjを構成するそれぞれの音判断データと照合される。そして、メインメモリ32に格納されている各音判断データの中に、オブジェクト操作処理の契機となった音を示す音データと略一致する音判断データが存在する場合に、当該音判断データで示される内容の音がユーザから発せられたと判断される。一方、メインメモリ32に格納されている音判断データの中に、オブジェクト操作処理の契機となった音を示す音データと略一致する音判断データが存在しない場合には、動物が音の内容を理解できなかったものと判断される。
そして、ユーザから登録されている音が発せられたと判断された場合、上側LCD22に表示されている動物を示す動物オブジェクトの動作として、判断された音の内容に応じた動作が設定される。一方、動物が音の内容を理解できなかったと判断された場合、上側LCD22に表示されている動物を示す動物オブジェクトの動作として、音の内容を理解できなくて困る仕草が設定される。
一方、オブジェクト操作処理の契機となったオブジェクト操作入力として音が入力されていないと判断された場合、オブジェクト操作入力としてタッチ入力が検出されたか否かが判断される。タッチ入力が検出されたか否かが判断されるときには、メインメモリ32に格納されているタッチ位置データDkが参照される。そして、参照されたタッチ位置データDkによって最新の履歴としてタッチ位置TPが示されていれば、タッチ入力が検出されたと判断される。タッチ入力が検出されたと判断されると、さらにタッチ位置データDkによって示される履歴が参照され、オブジェクト操作入力として検出されたタッチ入力の内容が判断される。そして、判断された内容に基づいて、上側LCD22に表示されているいずれか1匹の動物の動作が設定される。例えば、タッチ位置データDkによって示されるタッチ位置の履歴に基づいて、タッチ入力の内容が下側LCD12におけるシルエットの表示領域内を往復するスライド入力であると判断された場合には、動物を撫でる動作の軌跡が描かれたと判断し、動物オブジェクトの動作として、撫でられて喜ぶ動作が設定される。また、例えば、タッチ位置データDkによって示されるタッチ位置の履歴に基づいて、タッチ入力の内容が下側LCD12の下方向へのタッチパネル13に対するスライド入力であると判断された場合には、伏せの合図の動作の軌跡が描かれたと判断し、動物オブジェクトの動作として伏せる動作が設定される。
また、オブジェクト操作処理の契機となったオブジェクト操作入力として、音の入力およびタッチ入力のいずれも検出されなかった場合には、いずれの動作も設定されない。
そして、判断された命令に応じた動作が全ての動物オブジェクトについてそれぞれ設定される、または、タッチ入力の内容に応じた動作がいずれかの動物に設定されると、動作が設定された動物オブジェクトの動作が上述したように制御される。
次に、ゲーム装置10で行われる処理を説明する前に、図10を参照して、情報処理プログラムを実行する際に用いられる各種データについて説明する。図10において、メインメモリ32には、データ保存用内部メモリ35、外部メモリ45およびデータ保存用外部メモリ46などから読み出されたプログラムや処理において生成される一時的なデータが記憶される。
図10において、メインメモリ32には、撮像画像データDa、顔検出データDb、顔照合データDc、顔認証データDd、認証結果データDe、対面頻度データDfなどが記憶される。また、図10において、メインメモリ32のプログラム記憶領域には、情報処理プログラム等で構成される各種プログラム群Paが記憶される。
撮像画像データDaは、上述したように内側撮像部24で撮像される撮像画像Kgを示すデータである。
顔検出データDbは、上述したように撮像画像Kgに撮像された両目の間隔Ko、顔の傾きKkおよび顔の位置Kiをそれぞれ示すデータである。
顔照合データDcは、上述したように、現在ゲーム装置10を使用しているユーザの顔を撮像した撮像画像Kgから抽出した特徴点を示すデータである。
顔認証データDdとは、上記ゲームプログラムを実行するゲーム装置10の現在までの使用者それぞれの顔の特徴点を示す個人認証データに固有のIDを付与したデータの集合体である。本実施形態では、一例として、顔認証データDdは、データ保存用外部メモリ46に記憶されており、上記ゲームプログラムが開始されたときに読み出されてメインメモリ32に格納される。
認証結果データDeとは、上述したように、顔認証データDdを構成する各個人認証データにそれぞれ付与されているIDの中から、現在ゲーム装置10を使用しているユーザが特定された場合に、当該ユーザのIDを示すデータとなる。なお、現在ゲーム装置10を使用しているユーザが特定されなかった場合には、上述したようにNullを示すデータとなる。
対面頻度データDfとは、図6に一例として示して説明したように、ゲーム装置10を現在までに使用した1以上のユーザそれぞれと、1以上の動物との対面頻度Tdを対応させて示すデータである。対面頻度データDfは、データ保存用外部メモリ46に格納されている。対面頻度データDfは、情報処理プログラムが実行されるとデータ保存用外部メモリ46から読み出され、メインメモリ32に格納される。
オブジェクトデータDgとは、上述したように対面頻度データDfによって示される動物の動物オブジェクトデータの集合体である。また、オブジェクトデータDgを構成するそれぞれの動物オブジェクトデータは、上述した制御量データと形状データとを含む。
動作制御済みフラグデータDhは、後述するように動作制御処理が実行されたか否かを示すデータである。動作制御済みフラグデータDhは、動作制御処理が実行済みであることをオンで示し、動作制御処理が実行されていないことをオフで示すデータである。
契機判断音データDiとは、上述したように、動作制御処理の契機となる音として、動物を呼ぶための音がユーザによって入力されたか否かを判断するときに参照される音データである。
音判断集合データDjは、上述したように、オブジェクト操作処理の契機となる音の内容を判断するときに参照される音判断データの集合体である。
タッチ位置データDkは、上述したようにタッチパネル制御回路によって生成されるデータである。タッチ位置データDkは、タッチパネル13の入力面において入力が行われた位置(タッチ位置)の座標を示す。また、本実施形態のタッチ位置データDkは、例えば、少なくとも直前の所定回数(例えば5回)における処理で取得されたタッチ位置TPまたはNullのいずれかを示す履歴を含む。この履歴に基づいて、上述したように、オブジェクト操作処理においてタッチ入力の内容が判断される。
パターンデータDlは、上述したように、動物オブジェクトが設定された動作をしているように表示されるように、動物オブジェクトデータに含まれる制御量データで制御量としてそれぞれ示される基準位置、各関節の位置および各関節の回転角度のそれぞれの経時変化を示すように予め定められた動作パターンデータからなる。パターンデータDlは、上記ゲームプログラムにおいて設定され得る種々の動作に対応する全ての動作パターンデータの集合体である。
次に、図11A〜図17を参照して、ゲーム装置10で実行される情報処理プログラムによる具体的な処理について説明する。なお、図11A〜図11Bは、本実施形態に係る情報処理プログラムを実行することによってゲーム装置10が情報処理を行う一例を示すフローチャートである。図12は、図11Aのステップ101で実行される初期設定処理の詳細を示すサブルーチンである。図13は、図11Aのステップ107の顔認証処理の詳細を示すサブルーチンである。図14は、図11Aのステップ108の登録処理の詳細を示すサブルーチンである。図15は、図11Bのステップ111の動作制御処理の詳細を示すサブルーチンである。図16は、図11Bのステップ118の検出動作制御処理の詳細を示すサブルーチンである。図17は、図11Bのステップ119のオブジェクト操作処理の詳細を示すサブルーチンである。なお、図11A〜図17においては、ステップを「S」と略称している。
なお、これらの処理を実行するためのプログラムは、データ保存用内部メモリ35に格納されたプログラムに含まれており、ゲーム装置10の電源がオンになったときに、データ保存用内部メモリ35からメインメモリ32に読み出されて、CPU311によって実行される。本実施形態では、一例として、当該情報処理プログラムは予めデータ保存用内部メモリ35に記憶されているものとしたが、当該プログラムは、インターネット等を介してゲーム装置10にダウンロードするようにしてもよい。また、外部メモリ45やデータ保存用外部メモリ46に格納されたプログラムから読み出して実行するようにしてもよい。
まず、ゲーム装置10の電源(電源ボタン14F)がONされると、CPU311によってブートプログラム(図示せず)が実行され、これによりデータ保存用内部メモリ35に格納されている、複数のアプリケーションプログラムを選択的に実行させるプログラムであるランチャープログラムがメインメモリ32にロードされCPU311で実行される。その後、ランチャープログラム上で情報処理アプリケーションを選択して実行することにより、情報処理プログラムがメインメモリ32にロードされる。そして、当該ロードされた情報処理プログラムがCPU311で実行される。
図11Aにおいて、CPU311は、ゲームプログラムの実行に必要なデータを初期化する初期化処理を実行する(ステップ101)。以下、図12を参照して、上記ステップ101で行う初期化処理の詳細を説明する。
図12において、CPU311は、まず、顔検出データDbを初期化する(ステップ201)。より具体的には、CPU311は、上述したように顔検出データDbでそれぞれ示される両目の間隔Ko、顔の傾きKkおよび顔の位置Kiをそれぞれゼロに設定して初期化する。
CPU311は、顔検出データDbの初期化を完了すると、次に顔照合データDcを初期化する(ステップ202)。より具体的には、CPU311は、上述したように顔照合データDcで示される顔の特徴点を示すデータを例えばNullなどの何も示さないデータに設定して初期化する。
CPU311は、顔照合データDcの初期化を完了すると、次に認証結果データDeを初期化する(ステップ203)。より具体的には、CPU311は、認証結果データDeで示されるIDを例えばNullなどの何も示さないデータに設定して初期化する。
CPU311は、認証結果データDeの初期化を完了すると、初期化処理のサブルーチンによる処理を終了する。
図11Aに戻り、CPU311は、上記ステップ101の処理の後、データ保存用外部メモリ46からゲームプログラムの処理に必要なデータを読み出して、メインメモリ32に格納する(ステップ102)。より具体的には、まず、CPU311は、データ保存用外部メモリ46から対面頻度データDfを読み出して、メインメモリ32に格納する。対面頻度データDfを読み出すと、CPU311は、データ保存用外部メモリ46から固有のIDが付与された各個人認証データを読み出して、読み出した個人認証データからなる顔認証データDdをメインメモリ32に格納する。顔認証データDdをメインメモリ32に格納すると、CPU311は、読み出した対面頻度データDfによって示される動物を示す動物オブジェクトデータを、データ保存用外部メモリ46に格納されている各動物オブジェクトデータの中から選択して読み出し、読み出した各動物オブジェクトデータからなるオブジェクトデータDgとしてメインメモリ32に格納する。オブジェクトデータDgを格納すると、CPU311は、データ保存用外部メモリ46に格納されている種々の動作パターンデータを読み出し、読み出した動作パターンデータからなるパターンデータDlをメインメモリ32に格納する。パターンデータDlをメインメモリ32に格納すると、CPU311は、データ保存用外部メモリ46に格納されている契機判断音データDiを読み出して、メインメモリ32に格納する。契機判断音データDiを読み出すと、CPU311は、オブジェクト操作入力として入力された音の内容を判断するための音判断データをデータ保存用外部メモリ46から読み出して、読み出した音判断データからなる音判断集合データDjをメインメモリ32に格納する。
音判断集合データDjをメインメモリ32に格納すると、CPU311は、メインメモリ32に格納したオブジェクトデータDgを構成するそれぞれの動物オブジェクトデータで示される動物オブジェクトを、上述したように上側LCD22に表示する(ステップ103)。なお、ステップ103で読み出される動物オブジェクトデータは、対面頻度データDfで示される動物の中で上述したようにユーザが直接世話をしていない状態の動物を除く動物を示す動物オブジェクトデータである。
上側LCD22に動物を表示すると、CPU311は、内側撮像部24に撮像画像Kgの撮像を指示し、この指示に応じて内側撮像部24から出力される撮像画像Kgを示す撮像画像データDaをメインメモリ32に格納する(ステップ104)。CPU311は、撮像画像データDaをメインメモリ32に格納すると、メインメモリ32に格納した撮像画像データDaで示される撮像画像Kgを解析し、顔が撮像されているか否かを判断する(ステップ105)。CPU311は、顔が撮像されていると判断した場合(ステップ105でYes)、撮像画像Kgに撮像されている顔の特徴点を抽出し、抽出した特徴点を示す顔照合データDcを生成する(ステップ106)。
CPU311は、顔照合データDcを生成すると、生成した顔照合データDcを用いてユーザを特定する顔認証処理(ステップ107)を実行する。以下、図13を参照して、上記ステップ107で行う顔認証処理の詳細を説明する。
図13において、CPU311は、まず、メインメモリ32に格納されている顔認証データDdを構成する個人認証データが登録されているか否かを判断する(ステップ301)。具体的には、CPU311は、顔認証データDdを構成する個人認証データの数が1以上であるか否かを判断する。CPU311は、顔認証データDdを構成する個人認証データの数が1以上である場合、個人認証データが登録されていると判断する。一方、CPU311は、顔認証データDdを構成する個人認証データの数が1以上でない場合、個人認証データが登録されていないと判断する。
個人認証データが登録されていると判断したとき(ステップ301でYes)、CPU311は、顔照合データDcで示される特徴点と、顔認証データDdを構成するそれぞれの個人認証データで示される特徴点とをそれぞれ比較して、個人認証データ毎に類似度Rdを算出する。類似度Rdを算出すると、CPU311は、算出した類似度Rdの中で最も高い類似度Rdの個人認証データに付与されているIDを選択する(ステップ302)。次に、CPU311は、選択したIDの類似度Rdが、所定の第1の類似度閾値th1以上であるか否かを判断する(ステップ303)。CPU311は、選択したIDの類似度Rdが、所定の第1の類似度閾値th1以上であると判断すると(ステップ303:Yes)、選択したIDのユーザとしてユーザが特定されたものとして、メインメモリ32に格納されている認証結果データDeを選択したIDを示す認証結果データDeに更新する(ステップ304)。
一方、CPU311は、個人認証データが登録されていないと判断したとき(ステップ301でNo)または選択したIDの類似度Rdが第1の類似度閾値th1以上でないと判断したとき(ステップ303でNo)、メインメモリ32に格納されている認証結果データDeを、Nullを示す認証結果データDeに更新する(ステップ305)。
CPU311は、認証結果データDeの更新を完了すると、顔認証処理のサブルーチンによる処理を終了する。
図11Aに戻り、CPU311は、上記ステップ107の処理の後、更新した認証結果データDeを用いた登録処理(ステップ108)を実行する。以下、図14を参照して、上記ステップ108で行う登録処理の詳細を説明する。
図14において、CPU311は、まず、上記顔認証処理においてユーザが特定されたか否かを判断する(ステップ401)。より具体的には、CPU311は、メインメモリ32に格納されている認証結果データDeによってNullが示されているか否かを判断する。CPU311は、認証結果データDeによってNullが示されていない場合、ユーザが特定されたと判断する(ステップ401でYes)。一方、CPU311は、認証結果データDeによってNullが示されている場合、ユーザが特定されていないと判断する(ステップ401でNo)。
CPU311は、ユーザが特定されていないと判断すると(ステップ401でNo)、当該ユーザを今後特定できるようにするために、個人認証データを新たに登録することが可能か否かを判断する(ステップ402)。より具体的には、CPU311は、メインメモリ32に格納されている顔認証データDdを参照して個人認証データの登録数Tsを認識し、認識した登録数Tsが登録可能数Tksと等しいか否かを判断する。CPU311は、登録数Tsが登録可能数Tksと等しくない場合、個人認証データを登録することが可能であると判断する(ステップ402でYes)。一方、CPU311は、登録数Tsが登録可能数Tksと等しい場合、個人認証データを登録することが可能でないと判断する(ステップ402でNo)。
CPU311は、個人認証データを登録することが可能でないと判断すると(ステップ402でNo)、対面頻度データDfを参照して、削除判断期間Sk以上動物と対面していないユーザが存在するか否かを判断する(ステップ403)。より具体的には、CPU311は、メインメモリ32に格納されている対面頻度データDfを参照し、現在までの期間が削除判断期間Sk以上となる最終更新日時に対応するユーザのIDを特定する。CPU311は、現在までの期間が削除判断期間Sk以上となる最終更新日時に対応するユーザのIDを特定できた場合、削除判断期間Sk以上動物と対面していないユーザが存在すると判断する(ステップ403でYes)。一方、CPU311は、現在までの期間が削除判断期間Sk以上となる最終更新日時に対応するユーザのIDを特定できなかった場合、削除判断期間Sk以上動物と対面していないユーザが存在しないと判断する(ステップ403でNo)。
CPU311は、削除判断期間Sk以上動物と対面していないユーザが存在すると判断した場合(ステップ403でYes)、該当するそれぞれのユーザの対面頻度Tdを参照する(ステップ404)。そして、CPU311は、参照した対面頻度Tdの中で最も小さい対面頻度Tdに対応するユーザを判断して、判断したユーザに関する全てのデータを削除する(ステップ405)。
一方、CPU311は、削除判断期間Sk以上動物と対面していないユーザが存在しないと判断したとき(ステップ403でNo)、メインメモリ32に格納されている対面頻度データDfを参照し、最も小さい対面頻度Tdに対応するユーザを判断して、判断したユーザに関する全てのデータを削除する(ステップ406)。
なお、ステップ405またはステップ406で削除されるデータとは、判断したユーザの対面頻度データDfにおける全てのデータと、判断したユーザの顔認証データDdにおける全てのデータである。
ステップ405またはステップ406でデータを削除すると、CPU311は、メインメモリ32に格納されている顔照合データDcで示される特徴点を示すデータを個人認証データとして生成し、固有のIDを付与して顔認証データDdを構成する個人認証データとして新たに登録する(ステップ407)。
新たな個人認証データを登録すると、CPU311は、登録した個人認証データに付与したIDを示すデータとしてメインメモリ32に格納されている認証結果データDeを更新する(ステップ408)。
一方、CPU311は、上記顔認証処理においてユーザが特定されたと判断すると(ステップ401でYes)、特定されたユーザの対面頻度Tdが更新期間Rk以内に更新されているか否かが判断される(ステップ409)。より具体的には、CPU311は、メインメモリ32に格納されている対面頻度データDfを参照し、認証結果データDeによって示されるIDに対応する最終更新日時から現在までの期間が、更新期間Rk以上か否かを判断する。CPU311は、認証結果データDeによって示されるIDに対応する最終更新日時から現在までの期間が、更新期間Rk以上でない場合、特定されたユーザの対面頻度Tdが更新期間Rk以内に更新されていると判断する(ステップ409でYes)。一方、CPU311は、認証結果データDeによって示されるIDに対応する最終更新日時から現在までの期間が、更新期間Rk以上である場合、特定されたユーザの対面頻度Tdが更新期間Rk以内に更新されていないと判断する(ステップ409でNo)。
CPU311は、特定されたユーザの対面頻度Tdが更新期間Rk以内に更新されていないと判断すると(ステップ409でNo)、メインメモリ32に格納されている対面頻度データDfにおいて当該ユーザのIDに対応するそれぞれの対面頻度Tdを1だけ加算して更新する(ステップ410)。ただし、CPU311は、対面頻度データDfにおいて上述したようにユーザが直接世話をしていない状態とされる動物に対応する対面頻度Tdは更新しない。CPU311は、特定されたユーザの対面頻度Tdを更新すると、対面頻度データDfにおいて、当該ユーザのIDに対応する最終更新日時を現在の日時に更新する(ステップ411)。
CPU311は、特定されたユーザの対面頻度Tdが更新期間Rk以内に更新されていると判断する(ステップ409でYes)または最終更新日時を更新すると(ステップ411)、特定されたユーザの個人認証データを更新するか否かを判断する(ステップ412)。より具体的には、CPU311は、特定されたユーザのIDに対応する個人認証データについてステップ302で算出した類似度Rdが、第2の類似度閾値th2以上であるか否かを判断する(ステップ412)。CPU311は、類似度Rdが第2の類似度閾値th2以上である場合、特定されたユーザの個人認証データを更新すると判断する(ステップ412でYes)。一方、CPU311は、類似度Rdが第2の類似度閾値th2以上でない場合、特定されたユーザの個人認証データを更新しないと判断する(ステップ412でNo)。
CPU311は、特定されたユーザの個人認証データを更新すると判断すると(ステップ412でYes)、メインメモリ32に格納されている顔照合データDcで示される特徴点を示すように、顔認証データDdを構成する当該ユーザの個人認証データを更新する(ステップ413)。
新たに登録した個人認証データに付与したIDを示すように認証結果データDeを更新する(ステップ408)、個人認証データを更新する(ステップ413)または特定されたユーザの個人認証データを更新しないと判断する(ステップ412でNo)と、CPU311は、登録処理のサブルーチンによる処理を終了する。
図11Aに戻って、CPU311は、顔が撮像されていないと判断した場合(ステップ105でNo)、認証結果データDeをNullに更新する(ステップ109)。そして、CPU311は、認証結果データDeをNullに更新するまたは登録処理を終了すると、図11Bにおいて、上述したように動物を呼ぶための操作がユーザによって入力されたか否かを判断する(ステップ110)。具体的には、CPU311は、上述したようにユーザが音を入力したときの音データと、メインメモリ32に格納されている契機判断音データDiとが略一致するか否かを判断する。CPU311は、ユーザが音を入力したときの音データと、契機判断音データDiとが略一致する場合、動物を呼ぶための音がユーザによって入力されたと判断する(ステップ110でYes)。また、CPU311は、上述したように、動物を呼ぶための音が入力されたと判断するまでに、動物を呼ぶための動作の軌跡が描かれたと判断したときにも、動物を呼ぶための操作がユーザによって入力されたと判断する(ステップ110でYes)。一方、CPU311は、ユーザが音を入力したときの音データと、契機判断音データDiとが略一致しない場合、動物を呼ぶための操作がユーザによって入力されていないと判断する(ステップ110でNo)。また、CPU311は、動物を呼ぶための動作の軌跡が描かれていないと判断したときにも動物を呼ぶための操作がユーザによって入力されていないと判断する(ステップ110でNo)。
CPU311は、動物を呼ぶための操作がユーザによって入力されたと判断した場合(ステップ110でYes)、上側LCD22に表示されている動物のそれぞれが呼びかけに応じて近づいてくるときの動作を設定して制御する動作制御処理を実行する(ステップ111)。以下、図15を参照して、上記ステップ111で行う動作制御処理の詳細を説明する。
図15において、CPU311は、まず、ユーザが特定されているか否かを判断する(ステップ501)。具体的には、CPU311は、認証結果データDeによってNullが示されているか否かを判断する。CPU311は、認証結果データDeによってNullが示されていない場合、ユーザが特定されていると判断し(ステップ501でYes)、動作制御処理のために用いる変数Nを1に初期化する(ステップ502)。変数Nを1に初期化すると、CPU311は、メインメモリ32に格納されている対面頻度データDfを参照して、認証結果データDeで示されるIDに対応する対面頻度Tdの中でN番目(図6に示す一例において上からN番目)の動物との対面頻度Tdを参照する(ステップ503)。CPU311は、ステップ503において参照した対面頻度Tdが第1の対面頻度閾値thm1以上であるか否かを判断する(ステップ504)。
CPU311は、ステップ503において参照した対面頻度Tdが第1の対面頻度閾値thm1以上であると判断した場合(ステップ504でYes)、N番目の動物がよくなついているとして、喜んで近寄る動作を当該動物に設定する(ステップ505)。一方、CPU311は、ステップ503において参照した対面頻度Tdが第1の対面頻度閾値thm1以上でないと判断した場合(ステップ504でNo)、当該対面頻度Tdが第2の対面頻度閾値thm2以上であるか否かを判断する(ステップ506)。CPU311は、対面頻度Tdが第2の対面頻度閾値thm2以上であると判断した場合(ステップ506でYes)、N番目の動物がよくなついていないとして、単に歩み寄る動作を当該動物に設定する(ステップ507)。一方、CPU311は、対面頻度Tdが第2の対面頻度閾値thm2以上でないと判断した場合(ステップ506でNo)、N番目の動物に警戒されているとして、警戒しながら近寄る動作を当該動物に設定する(ステップ508)。
CPU311は、N番目の動物について、上述したステップ505、ステップ507またはステップ508のいずれかで動作を設定すると、上側LCD22に表示されている動物の中で動作を設定されていない動物が存在するか否かを判断する(ステップ509)。具体的には、CPU311は、現在の変数Nが、対面頻度データDfで示される全ての動物の数Nmax以上であるか否かを判断する。CPU311は、変数Nが全ての動物の数Nmax以上である場合、動作を設定されていない動物が存在しないと判断する(ステップ509でYes)。一方、CPU311は、変数Nが全ての動物の数Nmax以上でない場合、動作を設定されていない動物が存在すると判断する(ステップ509でNo)。
CPU311は、動作を設定されていない動物が存在すると判断すると(ステップ509でNo)、変数Nを1だけインクリメントして(ステップ511)、処理をステップ503から繰り返す。
一方、CPU311は、動作を設定されていない動物が存在しないと判断すると(ステップ509でYes)、上側LCD22に表示されている動物がそれぞれ設定した動作で近づいて来るように表示されるように、それぞれの動作を示す動作パターンを参照しながら、それぞれの動物を示す動物オブジェクトの制御を開始する(ステップ510)。一方、CPU311は、認証結果データDeによってNullが示されており、ユーザが特定されていないと判断した場合(ステップ501でNo)、上側LCD22に表示されている動物オブジェクトの全てに単に歩み寄る動作を設定する(ステップ512)。CPU311は、全ての動物オブジェクトに単に歩み寄る動作を設定した場合にも、それぞれの動物を示す動物オブジェクトの制御を開始する(ステップ510)。
CPU311は、それぞれの動物を示す動物オブジェクトの制御を開始すると、それぞれの動物オブジェクトの制御が完了したか否かを判断する(ステップ511)。具体的には、CPU311は、動作を制御している動物オブジェクトのそれぞれが、上述したように仮想空間上における画面切替位置まで到来したか否かを判断する。CPU311は、動作を制御している動物オブジェクトのそれぞれが画面切替位置まで到来したと判断したとき、それぞれの制御を完了したと判断する(ステップ511でYes)。一方、CPU311は、動作を制御している動物オブジェクトのそれぞれが画面切替位置まで到来していないと判断したとき、それぞれの制御を完了していないと判断する(ステップ511でNo)。
CPU311は、それぞれの動物オブジェクトの制御を完了していないと判断すると(ステップ511でNo)、ステップ511の判断を繰り返しながらそれぞれの動物オブジェクトの制御を継続する。一方、CPU311は、それぞれの動物オブジェクトの制御を完了したと判断した場合(ステップ511でYes)、動作制御処理のサブルーチンを終了する。
図11Bに戻って、CPU311は、上記ステップ111の動作制御処理の後、それぞれの動物オブジェクトの動作の制御が完了したことを示すように、メインメモリ32に格納されている動作制御済みフラグDhをオンに更新する(ステップ112)。CPU311は、動物を呼ぶための操作がユーザによって入力されていないと判断した場合(ステップ110でNo)または動作制御済みフラグDhをオンに更新すると(ステップ112)、メインメモリ32に格納されている動作制御済みフラグDhを参照してオンとなっているか否かを判断する(ステップ113)。CPU311は、動作制御済みフラグDhがオンとなっていると判断した場合(ステップ113でYes)、内側撮像部24に撮像画像Kgの撮像を指示し、この指示に応じて内側撮像部24から出力される撮像画像Kgを示すように、メインメモリ32に格納されている撮像画像データDaを更新する(ステップ114)。次に、CPU311は、更新した撮像画像データDaを参照し、参照した撮像画像データDaで示される撮像画像Kgを解析して顔が撮像されているか否かを判断する(ステップ115)。
CPU311は、顔が撮像されていると判断すると(ステップ115でYes)、顔検出データDbを更新する(ステップ116)。具体的には、CPU311は、撮像画像Kgをさらに解析して、当該撮像画像Kgに撮像されている両目の間隔Ko、顔の傾きKkおよび顔の位置Kiのパラメータをそれぞれ認識し、認識したパラメータをそれぞれ示すように、メインメモリ32に格納されている顔検出データDbを更新する。
CPU311は、顔検出データDbを更新すると、上述したようにオブジェクト操作入力が検出されたか否かを判断する(ステップ117)。CPU311は、オブジェクト操作入力が検出されていないと判断すると(ステップ117でNo)、ステップ116で更新した顔検出データDbに基づいて上側LCD22に表示されている動物をそれぞれ示す動物オブジェクトを制御する検出動作制御処理(ステップ118)を実行する。
以下、図16を参照して、上記ステップ118で行う検出動作制御処理の詳細を説明する。図16において、CPU311は、まず、メインメモリ32に格納されている顔検出データDbを参照する(ステップ601)。次に、CPU311は、ステップ601で参照した顔検出データDbによって示される両目の間隔Koが間隔閾値tho以上であるか否かを判断する(ステップ602)。CPU311は、両目の間隔Koが間隔閾値tho以上であると判断した場合(ステップ602でYes)、上側LCD22に表示されている動物のそれぞれがユーザの顔を舐める仕草をしているように表示されるように、それぞれを示す動物オブジェクトの動作を設定する(ステップ603)。
一方、CPU311は、ステップ601で参照した顔検出データDbで示される両目の間隔Koが間隔閾値tho以上でないと判断した場合(ステップ602でNo)、当該顔検出データDbで示される顔の傾きKkが傾き閾値thk以上であるか否かを判断する(ステップ604)。CPU311は、顔の傾きKkが傾き閾値thk以上であると判断した場合(ステップ604でYes)、上側LCD22に表示されている動物のそれぞれが、傾いているユーザの顔と同じように顔を傾けるように表示されるように、それぞれを示す動物オブジェクトの動作を設定する(ステップ605)。
一方、CPU311は、ステップ601で参照した顔検出データDbで示される顔の傾きKkが傾き閾値thk以上でないと判断した場合(ステップ604でNo)、上側LCD22に表示されている動物の顔がゲーム装置10を現在使用しているユーザの顔に向くように表示されるように、それぞれを示す動物オブジェクトの動作を設定する(ステップ606)。
CPU311は、ステップ603、ステップ605またはステップ606のいずれかでそれぞれの動物オブジェクトの動作を設定すると、上述したようにそれぞれの動作を示す動作パターンを参照しながら、設定された動作をするようにそれぞれの動物オブジェクトの制御を開始する(ステップ607)。CPU311は、それぞれの動物を示す動物オブジェクトの制御を開始すると、それぞれの動物オブジェクトの制御が完了したか否かを判断する(ステップ608)。具体的には、CPU311は、上述したようにそれぞれの動物オブジェクトに設定した動作に対応する動作パターンによる経時変化の終了タイミングが到来したか否かを判断する。CPU311は、それぞれの動物オブジェクトの制御を完了していないと判断すると(ステップ608でNo)、ステップ608の判断を繰り返しながら動物オブジェクトの制御を継続する。一方、CPU311は、それぞれの動物オブジェクトの制御を完了したと判断すると(ステップ608でYes)、検出動作制御処理のサブルーチンを終了する。
図11Bに戻って、CPU311は、顔が撮像されていないと判断する(ステップ115でNo)またはオブジェクト操作入力が検出されたと判断した場合(ステップ117でYes)、検出されたオブジェクト操作入力に応じて上側LCD22に表示されている動物を示す動物オブジェクトをそれぞれ制御するオブジェクト操作処理(ステップ119)を実行する。以下、図17を参照して、上記ステップ119で行うオブジェクト操作処理の詳細を説明する。
図17において、CPU311は、まず、ステップ117で検出されたオブジェクト操作入力がユーザによる音の入力であったか否かを上述したように判断する(ステップ701)。CPU311は、オブジェクト操作入力がユーザによる音の入力であったと判断すると(ステップ701でYes)、上述したように、検出された音の内容を判断する(ステップ702)。音の内容を判断すると、CPU311は、判断した結果に基づいて、上側LCD22に表示されているそれぞれの動物オブジェクトの動作を設定する(ステップ703)。
一方、CPU311は、ステップ117で検出されたオブジェクト操作入力がユーザによる音の入力でないと判断した場合(ステップ701でNo)、当該オブジェクト操作入力としてタッチ入力が検出されたか否かを上述したように判断する(ステップ704)。CPU311は、タッチ入力が検出されたと判断すると(ステップ704でYes)、さらにタッチ位置データDjを参照する(ステップ705)。そして、CPU311は、参照したタッチ位置データDjで示されるタッチ位置の履歴に基づいて上述したように認識したタッチ入力の内容に応じて動物オブジェクトの動作を設定する(ステップ706)。
CPU311は、ステップ703またはステップ706において動物オブジェクトそれぞれの動作を設定すると、上側LCD22に表示されているそれぞれの動物オブジェクトが設定した動作をしているように表示されるように、上述したようにそれぞれの動作を示す動作パターンを参照しながら、それぞれを示す動物オブジェクトの動作の制御を開始する(ステップ707)。CPU311は、それぞれの動物オブジェクトの制御を開始すると、それぞれの動物オブジェクトの制御が完了したか否かを判断する(ステップ708)。具体的には、CPU311は、上述したようにそれぞれの動物オブジェクトに設定した動作に対応する動作パターンによる経時変化の終了タイミングが到来したか否かを判断する。CPU311は、それぞれの動物オブジェクトの制御を完了していないと判断すると(ステップ708でNo)、ステップ708の判断を繰り返しながらそれぞれの動物オブジェクトの制御を継続する。一方、CPU311は、それぞれの動物オブジェクトの制御を完了したと判断する(ステップ708でYes)またはタッチ入力が検出されていないと判断する(ステップ704でNo)と、オブジェクト操作処理のサブルーチンを終了する。
図11Bに戻り、CPU311は、上記ステップ118の検出動作処理または上記ステップ119のオブジェクト操作処理の後、上側LCD22に表示されている動物オブジェクトのそれぞれがユーザから遠ざかって行き、呼びかける前の位置に戻る動作の制御を開始するか否かを判断する(ステップ120)。具体的には、CPU311は、動作制御処理を完了してから、オブジェクト操作入力が検出されることなく、所定の操作受付期間Ukが経過したときに、戻る動作の制御を開始すると判断する。また、CPU311は、動作制御処理を完了してから、オブジェクト操作入力が検出され、上記ステップ118のオブジェクト操作処理を実行した後、前述の操作受付期間Ukが経過したときも、戻る動作の制御を開始すると判断する。また、CPU311は、動作制御処理を完了してから、一度もオブジェクト操作入力が検出されない場合には、操作受付期間Ukが経過するまで、上記ステップ118の検出動作制御処理を実行した後、戻る動作の制御を開始すると判断する。
一方、CPU311は、動作制御処理を完了してから、操作受付期間Ukが経過するまでにオブジェクト操作入力が検出され、オブジェクト操作処理を実行すると、再び操作受付期間Ukが経過するまで、戻る動作の制御を開始しないと判断する。
CPU311は、戻る動作の制御を開始しないと判断すると(ステップ120でNo)、ステップ114から処理を繰り返す。一方、CPU311は、戻る動作の制御を開始すると判断すると(ステップ120でYes)、メインメモリ32に格納されている動作制御済みフラグDhをオフに更新する(ステップ121)。そして、CPU311は、上側LCD22に表示されているそれぞれの動物オブジェクトが、それぞれの現在位置から呼びかける前の位置に戻る動作をするように制御する(ステップ122)。より具体的には、CPU311は、それぞれの位置から戻る動作を設定し、設定した動作に対応する動作パターンを参照しながら、それぞれの動物オブジェクトの制御を開始する。CPU311は、それぞれの動物オブジェクトの制御を継続しながら、呼びかける前の位置に戻ると、戻る動作の制御を完了する。
CPU311は、戻る動作の制御を完了すると、ゲームプログラムを終了するか否かを判断する(ステップ123)。具体的には、CPU311は、ゲーム装置10の電源ボタン14Fが押下された場合、ゲームプログラムを終了すると判断する(ステップ123でYes)。一方、CPU311は、ゲーム装置10の電源ボタン14Fが押下されていない場合、ゲームプログラムを終了しないと判断する(ステップ123でNo)。CPU311は、ゲームプログラムを終了しないと判断すると(ステップ123でNo)、ステップ104から処理を繰り返す。
以上が、本実施形態に係るゲームプログラムの一例の説明である。上述の説明から明らかなように、上記ゲームプログラムによれば、動作制御処理において、特定したユーザに応じて各動物オブジェクトの動作を設定することができる。なお、上述の説明では、動作制御処理の契機となる操作がユーザによって入力された場合に、特定されたユーザに応じて、各動物オブジェクトの動作をそれぞれ設定する場合を一例として説明した。しかしながら、他の一実施形態では、動作制御処理の契機となる入力として、所定のボタンを押下する入力など、ゲーム装置10に対する他の任意の操作入力を予め定めておいてもよい。具体的な一例としては、上述した動作制御処理の契機として所定のボタンを押下する操作入力を予め定めておくことが考えられる。所定のボタンを押下する操作入力を動作制御処理の契機となる入力とする場合には、上述した呼びかけの音声がユーザによって入力されているか否かの判断の代わりに、当該ボタンが押下されたか否かを判断するようにすればよい。
このように、上記ゲームプログラムによれば、ゲーム装置10に対して所定の操作入力が行われたときの動物オブジェクトの動作を、操作入力を行ったユーザに応じて変更することができ、興趣性に富んだ動物オブジェクトの制御を行える。
また、上述の説明では、一例として、ユーザと動物との対面頻度Tdに基づいて動物オブジェクトの動作を設定するものとした。対面頻度Tdは、上述したようにユーザと動物とが擬似的に触れあった頻度を示す値である。そして、上述で一例として説明したように、動作制御処理において、対面頻度Tdが相対的に高いユーザに対応する動物オブジェクトの動作としては、よくなついており、喜んで近寄って来る動作を設定するものとした。一方、上述で一例として説明したように、動作制御処理において、対面頻度Tdが相対的に低いユーザに対応する動物オブジェクトの動作としては、よくなついておらず、警戒しながら近寄って来る動作を設定するものとした。このように、対面頻度Tdに基づいて動物オブジェクトの動作を設定することにより、ユーザと擬似的に触れあった頻度に応じた動作を動物オブジェクト毎に設定でき、ユーザが呼びかけの音声を入力したときなど、操作入力をしたときの反応に興趣性を持たせることができる。
また、上述の説明では、一例として、ユーザを特定できなかった場合に、特定されなかったユーザの顔の特徴点を示すデータを新たな個人認証データとして登録するものとした。そして、上述の説明では、新たな個人認証データを登録するときの対面頻度Tdの初期値の一例として、第1の対面頻度閾値thm1未満、且つ第2の対面頻度閾値thm2以上の値を挙げた。これにより、初対面のユーザが呼びかけたときには、単に歩み寄る動作を各動物オブジェクトに設定できる。しかしながら、他の一実施形態では、初対面のユーザが呼びかけたときに、警戒しながら近寄る動作など、他の任意の動作を設定するようにしてもよい。具体的な一例として、初対面のユーザが呼びかけたときに、警戒しながら近寄る動作を設定する場合には、第2の対面頻度閾値thm2未満の値を対面頻度Tdの初期値として予め定めておけばよい。このように、他の一実施形態において、対面頻度Tdの初期値として任意の値を定めることにより、初対面のユーザに対して任意の動作を設定することができる。
また、上述の説明では、動作制御処理において動物オブジェクトに設定できる動作の一例として、第1の対面頻度閾値thm1以上の対面頻度Tdに対応する動物には、喜んで近寄って来る動作を設定するものとした。しかしながら、第1の対面頻度閾値thm1以上の対面頻度Tdに対応する動物に設定する動作は、第1の動作として設定されるのであれば、他の任意の動作であってもよい。また、上述の説明では、動作制御処理において動物オブジェクトに設定できる動作の一例として、第1の対面頻度閾値thm1未満、且つ第2の対面頻度閾値thm2以上の対面頻度Tdに対応する動物には、単に歩み寄って来る動作を設定するものとした。しかしながら、第1の対面頻度閾値thm1未満、且つ第2の対面頻度閾値thm2以上の対面頻度Tdに対応する動物に設定する動作は、第2の動作として設定されるのであれば、他の任意の動作であってもよい。また、上述の説明では、動作制御処理において動物オブジェクトに設定できる動作の一例として、第2の対面頻度閾値thm2未満の対面頻度Tdに対応する動物には、警戒しながら近寄って来る動作を設定するものとした。しかしながら、第2の対面頻度閾値thm1未満の対面頻度Tdに対応する動物に設定する動作は、第3の動作として設定されるのであれば、他の任意の動作であってもよい。
また、上述の説明では、第1の対面頻度閾値thm1と第2の対面頻度閾値thm2との2つの対面頻度閾値を用いて、第1の動作〜第3の動作の3つの動作のいずれかを動物オブジェクト毎に設定するものとした。しかしながら、他の一実施形態では、互いに異なる3以上の対面頻度閾値を用いて、4以上の動作のいずれかを動物オブジェクト毎に設定してもよい。
また、上述の説明では、一例として、顔認証処理で特定したユーザのIDを認証結果データDeとして記憶させる、または、特定されなかったユーザのIDを登録処理で新たに登録してから認証結果データDeとして記憶させた後、契機となる音声が入力された場合に、認証結果データDeを用いた動作制御処理を実行するものとした。このように、顔認証処理におけるユーザの認証結果を記憶させておくことにより、顔認証処理と当該顔認証処理による認証結果の利用とを連続して行うことなく、認証結果を任意のタイミングで利用でき、CPU311の処理負荷を軽減できる。ただし、CPU311の処理負荷を軽減する必要がない場合には、顔認証処理と当該顔認証処理による認証結果の利用とを連続または並行して実行してもよい。
また、上述の説明では、一例として、検出動作制御処理において、ゲーム装置10を現在使用しているユーザの両目の間隔Ko、顔の傾きKkおよび顔の位置Kiの顔のパラメータに応じて動物オブジェクトを制御するものとした。これにより、上述で説明したように、ゲーム装置10に顔を近づける、顔を傾けるおよびゲーム装置10に対する顔の位置を動かすなど、ユーザの顔の動きに応じて動物オブジェクトを制御でき、興趣性に富んだ動物オブジェクトの制御を行える。
また、上述の説明では、一例として、検出動作制御処理において、両目の間隔Ko、顔の傾きKkおよび顔の位置Kiなどの顔のパラメータのみに基づいて、動物オブジェクトそれぞれの動作を設定して制御するものとした。しかしながら、他の一実施形態では、検出動作制御処理において、特定されたユーザのIDにそれぞれ対応する対面頻度Tdと上記顔のパラメータとの両方を用いて、それぞれの動物オブジェクトの動作を設定して制御してもよい。具体的な一例としては、相対的に低い対面頻度Tdに対応するIDのユーザが顔を近づけて両目の間隔Koが間隔閾値tho以上となったときには、顔を背けるまたはユーザから遠ざかるなどの動作を設定して制御するようにしてもよい。一方、他の具体的な一例として、相対的に高い対面頻度Tdに対応するIDのユーザが顔を近づけて両目の間隔Koが間隔閾値tho以上となったときには、喜んで顔を舐めるまたは尻尾を激しく振るなどの動作を設定して制御するようにしてもよい。
また、上述の説明では、一例として、上記顔のパラメータの検出結果を顔検出データDbとして記憶させるものとした。そして、オブジェクト操作入力が検出されなかった場合に、顔検出データDbを用いた検出動作制御処理を実行するものとした。このように、顔のパラメータの検出結果を記憶させておくことにより、顔のパラメータの検出と顔のパラメータの検出結果を利用する検出動作制御処理とを連続して行うことなく、オブジェクト操作入力が検出された場合にのみ顔のパラメータの検出結果を利用でき、CPU311の処理負荷を軽減できる。ただし、CPU311の処理負荷を軽減する必要がない場合には、顔のパラメータの検出と顔のパラメータの検出結果を利用とを連続または並行して実行してもよい。
また、上述の説明では、顔の大きさを示す指標として両目の間隔Koを用いるものとした。しかしながら、他の一実施形態では、顔の大きさを示す指標として撮像画像Kgにおける肌色の画素が当該画像に占める割合を用いてもよい。
また、上述の説明では、一例として、最終更新日時から経過した期間が更新期間Rk以上であると判断されたときに、対面頻度Tdを更新するものとした。これにより、ユーザが特定される度に対面頻度Tdが更新され、過度に高くなることを防げる。具体的な一例としては、本実施形態に係る情報処理プログラムの一例として、ゲーム装置10が処理をする時間単位(例えば、1/60秒)毎に上記顔認証処理および登録処理のみを繰り返すようなプログラムをゲーム装置10において実行させた場合であっても、当該時間単位毎に対面頻度Tdが更新されることを防げ、過度に高くなることを防げる。また、上述の説明では、更新期間Rkの長さの一例として、6時間の長さを設定する場合を説明した。しかしながら、更新期間Rkの長さは、他の任意の長さであってもよい。
また、上述の説明では、一例として、最終更新日時がユーザと1対1で対応するものとした。しかしながら、他の一実施形態では、1以上のユーザと、1以上の動物オブジェクトとのそれぞれに対応する対面頻度Td毎に最終更新日時を対応させて適宜更新してもよい。
また、上述の説明では、一例として、対面頻度データDfを用いて1以上のユーザとそれぞれ対応する対面頻度Tdを、1以上の動物オブジェクト毎に対応させるものとした。また、上記ゲームプログラムでは、対面頻度Tdを更新するときには、動物オブジェクト毎に対応する対面頻度Tdをそれぞれ更新するものとした。これにより、上述で一例として説明したように、上側LCD22に2以上の複数の動物オブジェクトが表示される場合であっても、表示された動物オブジェクト毎に特定されたユーザに応じた動作を設定して同時に制御できる。
また、上述の説明では、一例として、対面頻度データDfによってユーザが直接世話をしていない状態とされている動物に対応する対面頻度Tdは更新しないものとした。これにより、実際にユーザと擬似的に触れあっている動物との対面頻度Tdのみを加算して更新でき、ユーザがそれぞれの動物に対して実際に感じている触れあいの頻度をそれぞれに対応する対面頻度Tdに反映させられる。また、対面頻度データDfによってユーザが直接世話をしていない状態とされている動物に対応する対面頻度Tdは更新しないものとすることにより、当該状態とされている動物のみの動作が他の動物オブジェクトとは異なる動作となるように制御でき、多様性を持たせられる。また、上述の説明では、一例として、対面頻度Tdを更新する動物を、対面頻度データDfによってユーザが直接世話をしている状態とされる動物としたが、他の一実施形態では、上側LCD22に描画されている動物オブジェクトに対応する対面頻度Tdのみを更新するようにしてもよい。
また、上述の説明では、一例として、ユーザが特定されなかった場合には、特定されなかったユーザの顔の特徴点を示すデータを新たな個人認証データとして登録するものとした。これにより、上記ゲームプログラムを実行するゲーム装置10を始めて使用したユーザも、既に個人認証データが登録されているユーザと同様に動物との擬似的な触れあいを楽しむことができる。
また、上述の説明では、一例として、新たな個人認証データを登録するときに、登録数Tsが登録可能数Tksと等しければ、既に登録されているユーザの中から選択したユーザのデータを削除するものとした。また、上述の説明では、一例として、削除するユーザのデータを当該ユーザのIDに対応する顔認証データDdおよび対面頻度データDfのそれぞれにおけるデータであるものとした。そして、削除するユーザのデータは、上述の説明では、一例として、最終更新日時からの経過期間が削除判断期間Sk以上であるIDのユーザに対応する対面頻度Tdの中から最も低い対面頻度Tdに対応するIDに対応するユーザのデータであるものとした。これにより、相対的に長い期間、上記ゲームプログラムを実行するゲーム装置10を使用しておらず、且つ動物との触れあいの頻度が低く、動物に興味を失ったと考えられるユーザに関するデータを削除することができる。また、上述の説明では、一例として、最終更新日時からの経過期間が削除判断期間Sk以上であるIDのユーザが存在しない場合には、対面頻度データDfによって示される最も低い対面頻度Tdに対応するIDに対応するユーザのデータを選択して削除するものとした。これにより、最終更新日時からの経過期間が削除判断期間Sk以上であるIDのユーザが存在しない場合でも、動物との触れあいの頻度が最も低いユーザであって、動物に対する興味を失ったと考えられるユーザに関するデータを判断して削除できる。なお、削除するユーザに関するデータを選択するときには、対応する対面頻度Tdの総和が最も低いユーザに関するデータまたは対応する対面頻度Tdの平均が最も低いユーザに関するデータなどを選択するようにしてもよい。また、新たなユーザの個人認証データを登録するときに付与するIDは、上述で説明した固有のIDであればどのようなIDでもよいが、一例として、直前に削除したIDを付与してもよい。
また、上述の説明では、一例として、類似度Rdが第2の類似度閾値th2以上であって酷似しているときに、ユーザが特定されたときにおける顔照合データDcで示される顔の特徴点で、当該ユーザの個人認証データで示される顔の特徴点を更新するものとした。つまり、上述の説明では、既に個人認証データとして記憶されていた特徴点と酷似している場合に、特定されたユーザの顔の特徴点、すなわち、現在のユーザの顔の特徴点で更新するものとした。これにより、個人認証データで示されるユーザの顔の特徴点を最新のユーザの顔の特徴点に維持することができる。
また、上述の説明では、一例として、既に個人認証データとして記憶されていた特徴点と酷似している場合に、特定されたユーザの顔の特徴点、すなわち、現在のユーザの顔の特徴点で更新するものとした。しかしながら、他の一実施形態では、既に個人認証データとして記憶されていた特徴点と酷似していなくとも、ユーザが特定された場合には、特定されたユーザの現在の顔の特徴点で、既に記憶されている特徴点を更新してもよい。
また、上述の説明では、一例として、顔認証処理の直前に撮像された撮像画像Kgから顔が検出されずユーザが特定されない場合であっても、検出動作制御処理の直前に撮像された撮像画像Kgから顔が検出された場合には、検出動作制御処理で動物オブジェクトの動作を制御するものとした。これにより、特定されなかったユーザであっても、検出動作制御処理において顔のパラメータに基づく動作を動物オブジェクトに設定して制御することができ、検出動作制御処理における動物との擬似的な触れあいを提供できる。
また、上述で説明した登録可能数Tksは、任意の数であってよい。
また、上述の説明では、撮像画像Kgが上側LCD22および下側LCD12のいずれにも表示されないものとした。しかしながら、他の一実施形態では、内側撮像部24で撮像画像Kgを逐次撮像するようにし、逐次撮像される撮像画像Kgを任意のタイミングで動物オブジェクトの表示領域と重畳しないように一部の表示領域に表示するようにしてもよい。これにより、例えば、上述で説明した検出動作制御処理において、ユーザは、表示された撮像画像Kgに基づいて自身の顔のパラメータを推測しながら動物と擬似的に触れあうことができる。
また、上述の説明では、4人分のユーザの個人認証データおよびこれらのユーザに対応する対面頻度Tdを示す対面頻度データDfが予めデータ保存用外部メモリ46に記憶されているものとした。しかしながら、例えば、上記ゲームプログラムを始めて実行するゲーム装置10に接続されるデータ保存用外部メモリ46には個人認証データおよび対面頻度データDfは記憶されていない。このため、上述で説明したように上記ゲームプログラムを実行したときにデータ保存用外部メモリ46から顔認証データDdおよび対面頻度データDfを読み出すことができない。このような場合において、上記ゲームプログラムがゲーム装置10で実行された場合には、当該ゲーム装置10を使用しているユーザの個人認証データからなる顔認証データDdが生成されメインメモリ32に格納される。次に、ユーザに動物(例えば、子犬または子猫)を購入する場面を与え、1匹以上の動物をユーザに購入させる。これにより、ユーザとそれぞれの動物に対応する対面頻度Tdを示す対面頻度データDfを生成してメインメモリ32に記憶することができる。このときの各対面頻度Tdの初期値は、上述で説明した初期値であってもよい。その後、上記ゲームプログラムを終了するときに、メインメモリ32に記憶されている顔認証データDdと対面頻度データDfとをデータ保存用外部メモリ46に記憶させる。これにより、次に上記ゲームプログラムがゲーム装置10で実行された場合には、上述で説明したようにデータ保存用外部メモリ46から顔認証データDdおよび対面頻度データDfを読み出すことが可能となる。
また、上述した説明では、ユーザに対応する対面頻度Tdを対面頻度データDfとして、ユーザの顔の特徴点を示す個人認証データとは別に記憶するものとした。しかしながら、他の一実施形態では、ユーザとオブジェクト毎に対応する対面頻度Tdを個人認証データに含ませてもよい。
また、認証結果データDeは、特許請求の範囲に記載の特定情報の一例である。
また、上述した説明では、顔のパラメータの一例として、両目の間隔Ko、顔の傾きKkおよび顔の位置Kiを検出するものとした。ここで、両目の間隔Koは、上述の説明から明らかなように、ユーザの顔と内側撮像部24との相対的な位置が近くなるほど大きくなり、遠くなるほど小さくなる。つまり、両目の間隔Koは、ユーザの顔と内側撮像部24との相対的な位置を示すパラメータと考えられる。また、顔の傾きKkは、上述の説明から明らかなように、内側撮像部24に対するユーザの顔の姿勢を示すパラメータと考えられる。また、顔の位置Kiは、上述の説明から明らかなように、内側撮像部24に対する顔の相対的な位置を示すパラメータと考えられる。つまり、上述で説明した顔のパラメータは、内側撮像部24に対するユーザの顔の相対的な位置および相対的な姿勢を示す値の一例として考えられる。
また、上述の説明では、本実施形態に係る情報処理プログラムの一例として、特定されたユーザに応じて動物オブジェクトの動作を設定して制御する上記ゲームプログラムを説明した。しかしながら、本実施形態に係る情報処理プログラムの他の一例としては、動物オブジェクトではなく他の任意のオブジェクトの動作を設定して制御する動作設定プログラムが挙げられる。
そして、動物オブジェクトではなく、他の任意のオブジェクトの動作を設定して制御する場合には、顔照合データDcで示される顔の特徴点に最も近い特徴点を示す個人認証データを、顔認証データDdを構成する個人認証データから選択するようにしてもよい。また、動物オブジェクトではなく、他の任意のオブジェクトの動作を設定して制御する場合には、上述で一例として説明した対面頻度Tdの代わりに、当該個人認証データが選択された回数を示す選択回数を記憶するとよい。選択回数を記憶する場合には、1以上のユーザの個人認証データのそれぞれが選択された回数を、制御対象となるオブジェクト毎に、当該1以上のユーザそれぞれと対応させて示す選択回数データを上記対面頻度データDfの代わりに用いる。そして、対面頻度Tdの代わりに選択回数を上記ゲームプログラムと同様に用いて閾値と比較した結果にも基づいてオブジェクトの動作を設定すれば、オブジェクトの動作を、選択された個人認証データのユーザに応じて設定して制御することができ、興趣性に富んだオブジェクトの制御を行える。
なお、選択回数は、ユーザの個人認証データが選択される度に加算して更新してもよいし、上述で説明したように、最終更新日時からの経過期間が更新期間Rk以上である場合に加算して更新してもよい。また、動物オブジェクトではなく、任意のオブジェクトの動作を設定して制御する場合であっても、個人認証データの登録、削除および更新は、上記ゲームプログラムにおける処理と同様に実行できる。
また、上述の説明では、顔の特徴点を示す顔照合データDcおよび顔認証データDdを構成する個人認証データを用いるものとした。また、上述の説明では、類似度Rdの算出にこれらの特徴点を用いるものとした。しかしながら、他の一実施形態では、顔の特徴点ではなく、顔の特徴量を示す顔照合データDcおよび個人認証データを用いてもよい。この場合、類似度Rdを求めるには、それぞれのデータによって示される特徴量をデータ毎にまとめた特徴ベクトルを算出する。そして、特徴が損なわれないように、主成分分析または線形判別分析などの分析手法を用いて、特徴ベクトルをより低次元の特徴空間に写像する。そして、類似度Rdを算出する互いのデータの写像した特徴ベクトルの間の距離(ユークリッド距離或いはマハラノビス距離)を0〜100に正規化した値を求めれば、当該値が類似度Rdとなる。
また、上述の説明では、動作制御処理の契機となる操作がユーザによって入力されたときに、上側LCD22に表示されている全ての動物が近づいて来るものとして説明をした。しかしながら、例えば、名前を呼んだときには、該当する動物のみが近づいてくるようにし、拍手または口笛であれば全ての動物が近づいて来るなど、操作入力(音の入力も含む)に応じて、任意の数の動物オブジェクトを制御するようにしてもよい。
また、上述の説明では、動作制御処理において、上側LCD22に表示されている全ての動物オブジェクトに対して、特定したユーザに応じた動作を設定するものとして説明をした。しかしながら、他の一実施形態では、上側LCD22に表示されている動物オブジェクトの内、任意の動物オブジェクトに対してのみ、特定したユーザに応じた動作を設定して近づくようにしてもよい。
また、上述の説明では、検出動作制御処理において、上側LCD22に表示されている全ての動物オブジェクトに対して、各パラメータに応じた動作を設定するものとして説明をした。しかしながら、他の一実施形態では、上側LCD22に表示されている動物オブジェクトの内、任意の動物オブジェクトに対してのみ、各パラメータに応じた動作を設定してもよい。
また、上述の説明では、上側LCD22に複数の動物オブジェクト(3つの動物オブジェクト)が表示される場合を一例として説明した。しかしながら、上側LCD22に表示される動物オブジェクトが1つの場合がありうることは言うまでもない。
また、図9Aには、全ての動物がその場でユーザの顔を舐める仕草をしている一例を図示した。しかしながら、他の一実施形態では、上側LCD22に表示されている動物オブジェクトの内、1以上の任意の動物オブジェクト(全ての動物オブジェクトでもよい)が画面の下端に足をかけてユーザの顔を舐める仕草をするようにしてもよい。
また、上述の説明では、動作制御処理の契機となる操作として入力された音の判断またはオブジェクト操作入力として検出された音の内容の判断をするときに、予め格納されている契機判断音データまたは音判断音データと比較して判断するものとした。しかしながら、他の一実施形態では、例えば、口笛および拍手などの音声以外の音の判断をするときには、音の波形の形状を分析して得られた特性に基づいて判断するようにしてもよい。
また、上述の説明では、動作制御処理を終了したときには、近づいてきたそれぞれの動物オブジェクトが上側LCD22に表示されるものとした。しかしながら、他の一実施形態では、それぞれの動物オブジェクトが近づいてきたときに表示されるLCDを上側LCD22から下側LCD12に切り替えてもよい。これにより、ユーザは、上述で説明したシルエットではなく動物オブジェクトそのものにタッチ入力することができ、動物オブジェクトそのものに直接触れている操作感覚をユーザに与えることができる。
また、上述の説明では、2画面分の液晶表示部の一例として、物理的に分離された下側LCD12および上側LCD22を互いに上下に配置した場合(上下2画面の場合)を説明した。しかしながら、2画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング11の一方主面に下側LCD12および上側LCD22を左右に配置してもかまわない。また、下側LCD12と横幅が同じで縦の長さが2倍のサイズからなる縦長サイズのLCD(すなわち、物理的には1つで、表示サイズが縦に2画面分あるLCD)を下側ハウジング11の一方主面に配設して、2つの画像を上下に表示(すなわち上下の境界部分無しに隣接して表示)するように構成してもよい。また、下側LCD12と縦幅が同じで横の長さが2倍のサイズからなる横長サイズのLCDを下側ハウジング11の一方主面に配設して、横方向に2つのゲーム画像を左右に表示(すなわち左右の境界部分無しに隣接して表示)するように構成してもよい。すなわち、物理的に1つの画面を2つに分割して使用することにより2つの画像を表示してもかまわない。いずれの画像の形態に対しても、上述した下側LCD12に表示していた表示画像が表示される画面上にタッチパネル13を配設すれば、同様に本発明を実現することができる。また、物理的に1つの画面を2つに分割して使用することにより上記2つの画像を表示する場合、当該画面全面にタッチパネル13を配設してもかまわない。また、上述の説明では、上側LCD22にのみ動物オブジェクトを表示して、下側LCD12に表示したシルエットに対するタッチ入力を受け付ける場合を説明した。しかしながら、他の一実施形態では、タッチパネル13を全面に配設した1つのLCDに動物オブジェクトを表示し、シルエットではなく、動物オブジェクトに対するタッチ入力を受け付けるようにしてもかまわない。この場合、上述で説明した動作制御処理、検出動作制御処理およびオブジェクト操作処理等による表示も当該LCDにしてもかまわない。
また、上述の説明では、ゲーム装置10にタッチパネル13が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。
また、上述の説明では、座標入力を実現するゲーム装置10の入力手段としてタッチパネル13を用いたが、他のポインティングデバイスを用いてもかまわない。ここで、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、マウス、トラックパッド、トラックボール等を入力手段として使用し、入力手段から出力される出力値から計算された画面座標系の位置情報を用いれば、本発明を同様に実現することができる。
また、ゲームコントローラをユーザが把持してゲームを楽しむ据置型のゲーム装置の場合、他の態様のポインティングデバイスも考えられる。例えば、ゲームコントローラのハウジングに固設されたカメラを、上記ポインティングデバイスとして利用することも可能である。この場合、ゲームコントローラのハウジングで指し示した位置の変化に応じてカメラが撮像する撮像画像が変化する。従って、この撮像画像を解析することにより、表示画面に対して上記ハウジングで指し示した座標を算出することができる。なお、本発明においては、ゲーム装置10にタッチパネル13等のポインティングデバイス自体が設けられていなくても実現可能であることは言うまでもない。
また、上記実施例では、携帯型のゲーム装置10や据置型のゲーム装置を用いて説明したが、一般的なパーソナルコンピュータ等の情報処理装置で本発明の画像通信プログラムを実行して、本発明を実現してもかまわない。
また、上述したゲーム装置10の形状や、それに設けられている各種操作ボタン14やタッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した画像通信処理で用いられる各ステップの実行順序や画面表示例等は、単なる一例に過ぎず他の実行順序や画面表示であっても、本発明を実現できることは言うまでもない。
また、上述した説明では、上記情報処理プログラムの一例としてゲームプログラムが情報処理部31で実行される例を用いたが、本実施形態に係る情報処理プログラムの少なくとも一部を、当該情報処理部31と通信可能な他の装置に備えられた少なくともCPUを含む情報処理部で実行してもかまわない。本実施形態に係る情報処理プログラムの一例として上記ゲームプログラムを実行する場合には、例えば、ゲーム装置10が他の装置(例えば、サーバなど)と通信可能に構成されている場合、上記ゲームプログラムにおける処理は、ゲーム装置10および当該他の装置が協働することによって実行してもよい。一例として、他の装置において上記ゲームプログラムが実行され、当該ゲームプログラムの実行に必要な操作入力の検出、当該ゲームプログラムの実行に必要な表示を行う表示装置などは、それぞれゲーム装置10のタッチパネル13、上側LCD22および/または下側LCD12を用いるように構成したゲームシステムにおいて、上記ゲームプログラムを実行してもよい。このことは、本実施形態に係る情報処理プログラムの他の一例として上述した動作制御プログラムについても同様である。つまり、本実施形態に係る情報処理プログラムは、一例として、他の装置において当該情報処理プログラムが実行され、当該情報処理プログラムの実行に必要な操作入力の検出、当該情報処理プログラムの実行に必要な表示を行う表示装置などは、それぞれゲーム装置10のタッチパネル13、上側LCD22および/または下側LCD12を用いるように構成した情報処理システムにおいて実行されてもよい。