特許第5827007号(P5827007)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

▶ 任天堂株式会社の特許一覧
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5827007
(24)【登録日】2015年10月23日
(45)【発行日】2015年12月2日
(54)【発明の名称】ゲームプログラム、画像処理装置、画像処理システム、および画像処理方法
(51)【国際特許分類】
   A63F 13/655 20140101AFI20151112BHJP
   A63F 13/213 20140101ALI20151112BHJP
   A63F 13/45 20140101ALI20151112BHJP
   A63F 13/49 20140101ALI20151112BHJP
   A63F 13/55 20140101ALI20151112BHJP
【FI】
   A63F13/655
   A63F13/213
   A63F13/45
   A63F13/49
   A63F13/55
【請求項の数】21
【全頁数】112
(21)【出願番号】特願2010-293443(P2010-293443)
(22)【出願日】2010年12月28日
(65)【公開番号】特開2012-101024(P2012-101024A)
(43)【公開日】2012年5月31日
【審査請求日】2013年11月14日
(31)【優先権主張番号】特願2010-232869(P2010-232869)
(32)【優先日】2010年10月15日
(33)【優先権主張国】JP
【前置審査】
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
【住所又は居所】京都府京都市南区上鳥羽鉾立町11番地1
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】鈴木 利明
【住所又は居所】京都府京都市南区上鳥羽鉾立町11番地1 任天堂株式会社内
【審査官】 宇佐田 健二
(56)【参考文献】
【文献】 特開2000−235656(JP,A)
【文献】 特開2005−006992(JP,A)
【文献】 特開2005−196670(JP,A)
【文献】 特開2010−220857(JP,A)
【文献】 特開2002−208023(JP,A)
【文献】 特開2008−183053(JP,A)
【文献】 特開2010−142592(JP,A)
【文献】 特開2007−080057(JP,A)
【文献】 特開平08−305892(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00−13/98,9/24
(57)【特許請求の範囲】
【請求項1】
表示装置に画像を表示するゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記コンピュータに、
所定のゲーム中または当該ゲーム開始前に、被写体を撮像している撮像装置から顔画像を取得して第1記憶領域に一時的に記憶する画像取得ステップと、
前記第1記憶領域に記憶された顔画像を含むキャラクタオブジェクトである第1キャラクタオブジェクトを作成するステップと、
前記所定のゲームにおいて前記第1キャラクタオブジェクトに関連するゲームを、プレイヤの操作に応じて進行させる第1のゲーム処理ステップと、
前記第1キャラクタオブジェクトに関連するゲームでの成功を判定する判定ステップと、
前記判定ステップにおいてゲームでの成功が少なくとも判定された場合、前記第1記憶領域に記憶された前記顔画像を、第2記憶領域に蓄積的に保存するステップと、
前記判定ステップにおいてゲームが成功しなかったと判定された場合、前記第1記憶領域に記憶された前記顔画像を廃棄するステップとを実行させる、ゲームプログラム。
【請求項2】
前記画像取得ステップでは、前記所定のゲームの開始前に、前記顔画像が取得されて前記第1記憶領域に一時的に記憶される、請求項1に記載のゲームプログラム。
【請求項3】
前記コンピュータに、
前記第2記憶領域に保存された顔画像から自動的にまたはプレイヤにより選択された顔画像を含む第2キャラクタオブジェクトを作成するステップを、さらに実行させ、
前記第1のゲーム処理ステップでは、前記所定のゲームにおいて前記第2キャラクタオブジェクトに関連するゲームを、プレイヤの操作に応じてさらに進行させる、請求項1または2に記載のゲームプログラム。
【請求項4】
前記コンピュータに、
前記第2記憶領域に保存された顔画像から自動的にまたはプレイヤにより選択された顔画像を含む第2キャラクタオブジェクトを作成するステップと、
前記第2キャラクタオブジェクトに関連するゲームを、プレイヤの操作に応じて進行させる第2のゲーム処理ステップとを、さらに実行させる、請求項1または2に記載のゲームプログラム。
【請求項5】
前記ゲーム装置は、前記撮像装置から画像を取得可能であり、
前記画像取得ステップでは、前記所定のゲームの開始前に、前記撮像装置から前記顔画像が取得される、請求項2から4のいずれか1項に記載のゲームプログラム。
【請求項6】
前記ゲーム装置は、前記撮像装置として、前記表示装置の表示面の外面前方方向を撮像する第1の撮像装置、および前記表示装置の表示面の背面方向を撮像する第2の撮像装置から画像を取得可能であり、
前記画像取得ステップは、
前記第2の撮像装置の撮像による顔画像の取得より、前記第1の撮像装置の撮像による顔画像を優先的に取得するステップと、
前記第1の撮像装置からの顔画像が前記第2記憶領域に保存された後に、前記第2の撮像装置の撮像による顔画像の取得を許容するステップとを含む、請求項5に記載のゲームプログラム。
【請求項7】
前記第2記憶領域に保存された顔画像の属性を特定するステップと、
前記第2記憶領域に保存された顔画像から特定された属性とは異なる属性に該当する顔
画像の取得をプレイヤに促すステップとを、前記コンピュータにさらに実行させる、請求項1から6のいずれか1項に記載のゲームプログラム。
【請求項8】
前記第1のゲーム処理ステップは、プレイヤの操作に応じてキャラクタオブジェクトを攻撃することによって前記第1キャラクタオブジェクトに関連するゲームを進行させるステップを含み、
前記第1のゲーム処理ステップでは、前記第1キャラクタオブジェクトへの攻撃が前記第1キャラクタオブジェクトに関連するゲームを成功させるために有効な攻撃とされ、前記第2キャラクタオブジェクトに対する攻撃が当該ゲームの成功に対して無効な攻撃とされる、請求項3に記載のゲームプログラム。
【請求項9】
前記第2キャラクタオブジェクトに含まれる顔画像とは異なる顔画像を含む第3キャラクタオブジェクトを作成するステップを、さらに前記コンピュータに実行させ、
前記第2のゲーム処理ステップは、プレイヤの操作に応じてキャラクタオブジェクトを攻撃することによって前記第2キャラクタオブジェクトに関連するゲームを進行させるステップを含み、
前記第2のゲーム処理ステップでは、前記第2キャラクタオブジェクトへの攻撃が前記第2キャラクタオブジェクトに関連するゲームを成功させるために有効な攻撃とされ、前記第3キャラクタオブジェクトに対する攻撃が当該ゲームの成功に対して無効な攻撃とされる、請求項4に記載のゲームプログラム。
【請求項10】
前記第1記憶領域に記憶された顔画像を含み、前記第1キャラクタオブジェクトよりも寸法の小さい第3キャラクタオブジェクトを作成するステップと、
前記第1記憶領域に記憶された顔画像とは異なる顔画像を含み、前記第1キャラクタオブジェクトよりも寸法の小さい第4キャラクタオブジェクトを作成するステップとを、前記コンピュータにさらに実行させ、
前記第1のゲーム処理ステップは、
プレイヤの操作に応じてキャラクタオブジェクトを攻撃することによって前記第1キャラクタオブジェクトに関連するゲームを進行させるステップと、
前記第4キャラクタオブジェクトが攻撃を受けた場合、前記第1キャラクタオブジェクトに含まれる顔画像の変形を進行させるステップと、
前記第3キャラクタオブジェクトが攻撃を受けた場合、前記第1キャラクタオブジェクトに含まれる顔画像が前記第1記憶領域に記憶された元の顔画像に近づくように、前記変形を後退させるステップとを含む、請求項3に記載のゲームプログラム。
【請求項11】
前記第2キャラクタオブジェクトに含まれる顔画像と同じ顔画像を含み、前記第2キャラクタオブジェクトよりも寸法の小さい第3キャラクタオブジェクトを作成するステップと、
前記第2キャラクタオブジェクトに含まれる顔画像と異なる顔画像を含み、前記第2キャラクタオブジェクトよりも寸法の小さい第4キャラクタオブジェクトを作成するステップとを、前記コンピュータにさらに実行させ、
前記第2のゲーム処理ステップは、
プレイヤの操作に応じてキャラクタオブジェクトを攻撃することによって前記第2キャラクタオブジェクトに関連するゲームを進行させるステップと、
前記第4キャラクタオブジェクトが攻撃を受けた場合、前記第2キャラクタオブジェクトに含まれる顔画像の変形を進行させるステップと、
前記第3キャラクタオブジェクトが攻撃を受けた場合、前記第2キャラクタオブジェクトに含まれる顔画像が前記第2記憶領域に保存された元の顔画像に近づくように、前記変形を後退させるステップとを含む、請求項4に記載のゲームプログラム。
【請求項12】
前記第1キャラクタオブジェクトを作成するステップでは、前記第1記憶領域に記憶された顔画像を変形させた顔画像を含むキャラクタオブジェクトが、前記第1キャラクタオブジェクトとして作成され、
前記第1のゲーム処理ステップは、前記第1キャラクタオブジェクトに関連するゲームが成功であったときに、前記変形させた顔画像を前記第1記憶領域に記憶された元の顔画像に復帰させるステップを含む、請求項1から11のいずれか1項に記載のゲームプログラム。
【請求項13】
前記第2キャラクタオブジェクトを作成するステップでは、前記第2記憶領域に保存された顔画像を変形させた顔画像が含むキャラクタオブジェクトが、前記第2キャラクタオブジェクトとして作成され、
前記第2のゲーム処理ステップは、前記第2キャラクタオブジェクトに関連するゲームが成功であったときに、前記変形させた顔画像を前記第2記憶領域に保存された元の顔画像に復帰させるステップを含む、請求項4に記載のゲームプログラム。
【請求項14】
前記画像取得ステップでは、前記所定のゲーム中に、前記顔画像が取得されて前記第1記憶領域に一時的に記憶され、
前記第1のゲーム処理ステップでは、前記所定のゲーム中に前記顔画像が取得され前記第1キャラクタオブジェクトが作成されたことに応じて、当該所定のゲームに当該第1キャラクタオブジェクトを登場させて前記第1キャラクタオブジェクトに関連するゲームを進行させる、請求項1に記載のゲームプログラム。
【請求項15】
前記撮像装置によって撮像された撮像画像を取得する撮像画像取得ステップと、
前記撮像画像取得ステップにおいて取得された撮像画像を背景として、前記所定のゲームに登場する仮想キャラクタオブジェクトが配置された表示画像を生成する表示画像生成ステップと、
前記表示画像生成ステップにおいて生成された画像を前記表示装置に表示する表示制御ステップとを、さらに前記コンピュータに実行させ、
前記画像取得ステップでは、前記所定のゲーム中に前記表示装置に表示されている前記撮像画像から少なくとも1つの顔画像が抽出されて前記第1記憶領域に一時的に記憶される、請求項14に記載のゲームプログラム。
【請求項16】
前記表示画像生成ステップでは、前記画像取得ステップにおいて抽出された顔画像の前記撮像画像における位置と重なって前記表示装置に表示されるように、前記第1キャラクタオブジェクトを配置して前記表示画像を生成する、請求項15に記載のゲームプログラム。
【請求項17】
前記撮像画像取得ステップでは、前記撮像装置によってリアルタイムに撮像された実世界の撮像画像が繰り返し取得され、
前記表示画像生成ステップでは、前記撮像画像取得ステップにおいて繰り返し取得された撮像画像が順次背景として設定され、
前記画像取得ステップでは、順次背景として設定される前記撮像画像から、既に抽出された前記顔画像に対応する顔画像が繰り返し取得され、
前記第1キャラクタオブジェクトを作成するステップでは、前記画像取得ステップにおいて繰り返し取得される顔画像を含むように前記第1キャラクタオブジェクトが繰り返し作成され、
前記表示画像生成ステップでは、前記画像取得ステップにおいて繰り返し取得されている顔画像の前記撮像画像における位置と重なって前記表示装置に表示されるように、前記繰り返し作成されている前記第1キャラクタオブジェクトが配置されて前記表示画像が生成される、請求項16に記載のゲームプログラム。
【請求項18】
表示装置を接続可能な画像処理装置であって、
所定のゲーム中または当該ゲーム開始前に、被写体を撮像している撮像装置から顔画像を取得して第1記憶領域に一時的に記憶する画像取得手段と、
前記第1記憶領域に記憶された顔画像を含むキャラクタオブジェクトを作成する手段と、
前記所定のゲームにおいて前記キャラクタオブジェクトに関連するゲームを、前記表示装置に表示してプレイヤの操作に応じて進行させるゲーム処理手段と、
前記キャラクタオブジェクトに関連するゲームでの成功を判定する判定手段と、
前記判定手段においてゲームでの成功が少なくとも判定された場合、前記第1記憶領域に記憶された前記顔画像を、第2記憶領域に蓄積的に保存する手段と、
前記判定手段においてゲームが成功しなかったと判定された場合、前記第1記憶領域に記憶された前記顔画像を廃棄する手段とを備える、画像処理装置。
【請求項19】
表示装置と、
所定のゲーム中または当該ゲーム開始前に、被写体を撮像している撮像装置から顔画像を取得して第1記憶領域に一時的に記憶する画像取得手段と、
前記第1記憶領域に記憶された顔画像を含むキャラクタオブジェクトを作成する手段と、
前記所定のゲームにおいて前記キャラクタオブジェクトに関連するゲームを、前記表示装置に表示してプレイヤの操作に応じて進行させるゲーム処理手段と、
前記キャラクタオブジェクトに関連するゲームでの成功を判定する判定手段と、
前記判定手段においてゲームでの成功が少なくとも判定された場合、前記第1記憶領域に記憶された前記顔画像を、第2記憶領域に蓄積的に保存する手段と、
前記判定手段においてゲームが成功しなかったと判定された場合、前記第1記憶領域に記憶された前記顔画像を廃棄する手段とを備える、画像処理装置。
【請求項20】
画像を含む情報を表示装置に表示する画像処理システムであって、
所定のゲーム中または当該ゲーム開始前に、被写体を撮像している撮像装置から顔画像を取得して第1記憶領域に一時的に記憶する画像取得手段と、
前記第1記憶領域に記憶された顔画像を含むキャラクタオブジェクトを作成する手段と、
前記所定のゲームにおいて前記キャラクタオブジェクトに関連するゲームを、前記表示装置に表示してプレイヤの操作に応じて進行させるゲーム処理手段と、
前記キャラクタオブジェクトに関連するゲームでの成功を判定する判定手段と、
前記判定手段においてゲームでの成功が少なくとも判定された場合、前記第1記憶領域に記憶された前記顔画像を、第2記憶領域に蓄積的に保存する手段と、
前記判定手段においてゲームが成功しなかったと判定された場合、前記第1記憶領域に記憶された前記顔画像を廃棄する手段とを有する、画像処理システム。
【請求項21】
表示装置に画像を表示するコンピュータが実行する画像処理方法であって、前記コンピュータが
所定のゲーム中または当該ゲーム開始前に、被写体を撮像している撮像装置から顔画像を取得して第1記憶領域に一時的に記憶する画像取得ステップと、
前記第1記憶領域に記憶された顔画像を含むキャラクタオブジェクトを作成するステップと、
前記所定のゲームにおいて前記キャラクタオブジェクトに関連するゲームを、プレイヤの操作に応じて進行させるゲーム処理ステップと、
前記キャラクタオブジェクトに関連するゲームでの成功を判定する判定ステップと、
前記判定ステップにおいてゲームでの成功が少なくとも判定された場合、前記第1記憶領域に記憶された前記顔画像を、第2記憶領域に蓄積的に保存するステップと、
前記判定ステップにおいてゲームが成功しなかったと判定された場合、前記第1記憶領域に記憶された前記顔画像を廃棄するステップとを実行する、画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラム、画像処理装置、画像処理システム、および画像処理方法に関する。
【背景技術】
【0002】
従来、実世界と仮想世界とを合成した画像を表示する装置が提案されている(例えば、特許文献1参照)。また、実世界で得られる情報である、ユーザ画像を用いたゲーム等の情報処理技術も提案されている(例えば、特許文献2参照)。この技術では、ゲーム進行中に、画像データに含まれるユーザ画像(人間の顔領域の画像など)が予め定められた条件を満足するタイミングで、画像データが撮像される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−72669号公報
【特許文献2】特開2010−142592号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
顔領域の画像(以下、顔画像)は、人、あるいは、生物の最も特徴的な部分の画像であり、実世界を仮想の世界に反映するための情報として極めて有用である。しかしながら、従来の技術では、実世界での状況を仮想の世界に反映できるという顔画像の特徴が十分に生かされていなかった。
【0005】
本発明の目的は、ユーザによる顔画像の取得、収集等を支援するとともに、顔画像により実世界を反映した仮想の世界を表現することができるようにすることである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明のゲームプログラムの一構成例は、表示装置に画像を表示するゲーム装置のコンピュータで実行される。上記ゲームプログラムは、画像取得ステップ、第1キャラクタオブジェクトを作成するステップ、第1のゲーム処理ステップ、判定ステップ、および第2記憶領域に蓄積的に保存するステップを、コンピュータに実行させる。画像取得ステップは、所定のゲーム中または当該ゲーム開始前に、顔画像を取得して第1記憶領域に一時的に記憶する。第1キャラクタオブジェクトを作成するステップは、第1記憶領域に記憶された顔画像を含むキャラクタオブジェクトである第1キャラクタオブジェクトを作成する。第1のゲーム処理ステップは、所定のゲームにおいて第1キャラクタオブジェクトに関連するゲームを、プレイヤの操作に応じて進行させる。判定ステップは、第1キャラクタオブジェクトに関連するゲームでの成功を判定する。第2記憶領域に蓄積的に保存するステップは、判定ステップにおいてゲームでの成功が少なくとも判定された場合、第1記憶領域に記憶された顔画像を、第2記憶領域に蓄積的に保存する。
【0008】
上記によれば、プレイヤは、ゲームでの成功が判定されるまでは、ゲーム中またはゲーム開始前に取得して一時的に第1記憶領域に記憶された顔画像を第2記憶領域に保存できず、緊張感を味わうことになる。一方、ゲームでの成功が判定された場合に、第2記憶領域に顔画像が保存されることで、例えば、第1のゲーム処理ステップでのゲームが終了した後でも取得した顔画像の活用が可能となるようにすれば、プレイヤは、極めて熱心に集中力を持って第1のゲーム処理ステップでのゲームに取り組むことになる。
【0009】
また、上記画像取得ステップでは、所定のゲームの開始前に、顔画像が取得されて第1記憶領域に一時的に記憶されてもよい。
【0010】
上記によれば、所定のゲームの開始前に取得された顔画像を第2記憶領域に保存する対象として第1のゲーム処理ステップでのゲームを行うことができる。
【0011】
また、上記ゲームプログラムは、第2キャラクタオブジェクトを作成するステップを、さらにコンピュータに実行させてもよい。第2キャラクタオブジェクトを作成するステップは、第2記憶領域に保存された顔画像から自動的にまたはプレイヤにより選択された顔画像を含む第2キャラクタオブジェクトを作成する。この場合、第1のゲーム処理ステップでは、所定のゲームにおいて第2キャラクタオブジェクトに関連するゲームを、プレイヤの操作に応じてさらに進行させてもよい。
【0012】
上記によれば、第2記憶領域に保存された顔画像をゲームに活用できるようになる。したがって、今回の所定のゲームにおいて取得した顔画像を含むキャラクタオブジェクトと前回までに保存した顔画像を含むキャラクタオブジェクトとに関連するゲームを進行できるため、ゲームにおいて多様な表現が可能となる。
【0013】
また、上記ゲームプログラムは、第2キャラクタオブジェクトを作成するステップおよび第2のゲーム処理ステップを、さらにコンピュータに実行させてもよい。第2キャラクタオブジェクトを作成するステップは、第2記憶領域に保存された顔画像から自動的にまたはプレイヤにより選択された顔画像を含む第2キャラクタオブジェクトを作成する。第2のゲーム処理ステップは、第2キャラクタオブジェクトに関連するゲームを、プレイヤの操作に応じて進行させる。
【0014】
上記によれば、プレイヤは、第2記憶領域に保存された顔画像から選択された顔画像を含む第2キャラクタオブジェクトを作成し、第2のゲーム処理ステップでのゲームを実行できる。すなわち、プレイヤは、第1のゲーム処理ステップでゲームに成功したことによって保存した顔画像を活用して、第2のゲーム処理ステップでのゲームを楽しむことができる。この場合に、ゲームに登場するキャラクタオブジェクトには、プレイヤの操作で選択されたまたは自動的に選択された顔画像が含まれるので、プレイヤは実世界のイメージを簡易に仮想の世界に持ち込むことができる。
【0015】
また、上記ゲーム装置は、撮像装置から画像を取得可能であってもよい。この場合、画像取得ステップでは、所定のゲームの開始前に、撮像装置から顔画像が取得されてもよい。
【0016】
上記によれば、撮像装置で撮像した顔画像を含むキャラクタオブジェクトをゲームに登場させることができるとともに、撮像装置で撮像した顔画像を蓄積的に保存することができる。
【0017】
また、上記ゲーム装置は、撮像装置として、表示装置の表示面の外面前方方向を撮像する第1の撮像装置、および表示装置の表示面の背面方向を撮像する第2の撮像装置から画像を取得可能であってもよい。この場合、画像取得ステップは、第2の撮像装置の撮像による顔画像の取得より、第1の撮像装置の撮像による顔画像を優先的に取得するステップと、第1の撮像装置からの顔画像が第2記憶領域に保存された後に、第2の撮像装置の撮像による顔画像の取得を許容するステップとを含んでもよい。
【0018】
上記によれば、表示装置の表示面の外面前方方向を撮像する第1の撮像装置での顔画像取得が優先的に実行されるので、表示装置の表示面を見る、ゲーム装置のプレイヤ等の顔画像が優先して取得される可能性が高くなる。したがって、ゲーム装置のプレイヤ等が特定されない状態で、表示装置の表示面の背面方向を撮像する第2の撮像装置から画像を取得するという行為を制限できる可能性が高まる。
【0019】
また、上記ゲームプログラムは、顔画像の属性を特定するステップおよび顔画像の取得をプレイヤに促すステップを、コンピュータにさらに実行させてもよい。顔画像の属性を特定するステップは、第2記憶領域に保存された顔画像の属性を特定する。顔画像の取得をプレイヤに促すステップは、第2記憶領域に保存された顔画像から特定された属性とは異なる属性に該当する顔画像の取得をプレイヤに促す。
【0020】
上記によれば、蓄積的に保存される顔画像の属性偏りを少なくして、様々な属性の顔画像を蓄積的に保存することを望むプレイヤを支援できる。
【0021】
また、上記第1のゲーム処理ステップは、プレイヤの操作に応じてキャラクタオブジェクトを攻撃することによって第1キャラクタオブジェクトに関連するゲームを進行させるステップを含んでいてもよい。この場合、第1のゲーム処理ステップでは、第1キャラクタオブジェクトへの攻撃が第1キャラクタオブジェクトに関連するゲームを成功させるために有効な攻撃とされ、第2キャラクタオブジェクトに対する攻撃が当該ゲームの成功に対して無効な攻撃とされてもよい。
【0022】
上記によれば、プレイヤは、第1のゲーム処理ステップによるゲームにおいて、第2キャラクタオブジェクトに対する攻撃を抑制することが必要となるため、第1キャラクタオブジェクトを選別して攻撃することになる。したがって、プレイヤは、第1キャラクタオブジェクトを正確に認識することを要求され、集中力を求められることになる。
【0023】
また、上記ゲームプログラムは、第3キャラクタオブジェクトを作成するステップを、さらにコンピュータに実行させてもよい。第3キャラクタオブジェクトを作成するステップは、第2キャラクタオブジェクトに含まれる顔画像とは異なる顔画像を含む第3キャラクタオブジェクトを作成する。この場合、第2のゲーム処理ステップは、プレイヤの操作に応じてキャラクタオブジェクトを攻撃することによって第2キャラクタオブジェクトに関連するゲームを進行させるステップを含んでいてもよい。第2のゲーム処理ステップでは、第2キャラクタオブジェクトへの攻撃が第2キャラクタオブジェクトに関連するゲームを成功させるために有効な攻撃とされ、第3キャラクタオブジェクトに対する攻撃が当該ゲームの成功に対して無効な攻撃とされてもよい。
【0024】
上記によれば、プレイヤは、第2のゲーム処理ステップによるゲームにおいて、第3キャラクタオブジェクトに対する攻撃を抑制することが必要となるため、第2キャラクタオブジェクトを選別して攻撃することになる。したがって、プレイヤは、第2キャラクタオブジェクトを正確に認識することを要求され、集中力を求められることになる。
【0025】
また、上記ゲームプログラムは、第3キャラクタオブジェクトを作成するステップおよび第4キャラクタオブジェクトを作成するステップを、コンピュータにさらに実行させてもよい。第3キャラクタオブジェクトを作成するステップは、第1記憶領域に記憶された顔画像を含み、第1キャラクタオブジェクトよりも寸法の小さい第3キャラクタオブジェクトを作成する。第4キャラクタオブジェクトを作成するステップは、第1記憶領域に記憶された顔画像とは異なる顔画像を含み、第1キャラクタオブジェクトよりも寸法の小さい第4キャラクタオブジェクトを作成する。この場合、第1のゲーム処理ステップは、プレイヤの操作に応じてキャラクタオブジェクトを攻撃することによって第1キャラクタオブジェクトに関連するゲームを進行させるステップと、第4キャラクタオブジェクトが攻撃を受けた場合、第1キャラクタオブジェクトに含まれる顔画像の変形を進行させるステップと、第3キャラクタオブジェクトが攻撃を受けた場合、第1キャラクタオブジェクトに含まれる顔画像が第1記憶領域に記憶された元の顔画像に近づくように、変形を後退させるステップとを含んでいてもよい。
【0026】
上記によれば、プレイヤは、第1キャラクタオブジェクトと第3キャラクタオブジェクトと第4キャラクタオブジェクトとを正確に認識することを要求され、集中力を求められることになる。特に、取得した顔画像がプレイヤと親密な関係のある人の顔画像の場合に、プレイヤはますます熱心に第1のゲーム処理ステップでのゲームに取り組むことができる。
【0027】
また、上記ゲームプログラムは、第3キャラクタオブジェクトを作成するステップおよび第4キャラクタオブジェクトを作成するステップを、コンピュータにさらに実行させてもよい。第3キャラクタオブジェクトを作成するステップは、第2キャラクタオブジェクトに含まれる顔画像と同じ顔画像を含み、第2キャラクタオブジェクトよりも寸法の小さい第3キャラクタオブジェクトを作成する。第4キャラクタオブジェクトを作成するステップは、第2キャラクタオブジェクトに含まれる顔画像と異なる顔画像を含み、第2キャラクタオブジェクトよりも寸法の小さい第4キャラクタオブジェクトを作成する。この場合、第2のゲーム処理ステップは、プレイヤの操作に応じてキャラクタオブジェクトを攻撃することによって第2キャラクタオブジェクトに関連するゲームを進行させるステップと、第4キャラクタオブジェクトが攻撃を受けた場合、第2キャラクタオブジェクトに含まれる顔画像の変形を進行させるステップと、第3キャラクタオブジェクトが攻撃を受けた場合、第2キャラクタオブジェクトに含まれる顔画像が第2記憶領域に保存された元の顔画像に近づくように、変形を後退させるステップとを含んでいてもよい。
【0028】
上記によれば、プレイヤは、第2キャラクタオブジェクトと第3キャラクタオブジェクトと第4キャラクタオブジェクトとを正確に認識することを要求され、集中力を求められることになる。
【0029】
また、上記第1キャラクタオブジェクトを作成するステップでは、第1記憶領域に記憶された顔画像を変形させた顔画像を含むキャラクタオブジェクトが、第1キャラクタオブジェクトとして作成されてもよい。この場合、第1のゲーム処理ステップは、第1キャラクタオブジェクトに関連するゲームが成功であったときに、変形させた顔画像を第1記憶領域に記憶された元の顔画像に復帰させるステップを含んでいてもよい。
【0030】
上記によれば、例えば、取得した顔画像がプレイヤと親密な関係にある人の顔画像の場合に、変形した顔画像を元の顔画像に戻すために、プレイヤはますます熱心に第1のゲーム処理ステップでのゲームに取り組むことができる。
【0031】
また、上記第2キャラクタオブジェクトを作成するステップでは、第2記憶領域に保存された顔画像を変形させた顔画像が含むキャラクタオブジェクトが、第2キャラクタオブジェクトとして作成されてもよい。この場合、第2のゲーム処理ステップは、第2キャラクタオブジェクトに関連するゲームが成功であったときに、変形させた顔画像を第2記憶領域に保存された元の顔画像に復帰させるステップを含んでいてもよい。
【0032】
上記によれば、例えば、取得した顔画像がプレイヤと親密な関係にある人の顔画像の場合に、変形した顔画像を元の顔画像に戻すために、プレイヤはますます熱心に第2のゲーム処理ステップでのゲームに取り組むことができる。
【0033】
また、上記画像取得ステップでは、所定のゲーム中に、顔画像が取得されて第1記憶領域に一時的に記憶されてもよい。この場合、第1のゲーム処理ステップでは、所定のゲーム中に顔画像が取得され第1キャラクタオブジェクトが作成されたことに応じて、当該所定のゲームに当該第1キャラクタオブジェクトを登場させて第1キャラクタオブジェクトに関連するゲームを進行させてもよい。
【0034】
上記によれば、所定のゲーム中に取得された顔画像を第2記憶領域に保存する対象として第1のゲーム処理ステップでのゲームを行うことができる。
【0035】
また、上記ゲームプログラムは、撮像画像取得ステップ、表示画像生成ステップ、および表示制御ステップを、さらにコンピュータに実行させてもよい。撮像画像取得ステップは、上記実カメラによって撮像された撮像画像を取得する。表示画像生成ステップは、撮像画像取得ステップにおいて取得された撮像画像を背景として、所定のゲームに登場する仮想キャラクタオブジェクトが配置された表示画像を生成する。表示制御ステップは、表示画像生成ステップにおいて生成された画像を表示装置に表示する。この場合、画像取得ステップでは、所定のゲーム中に表示装置に表示されている撮像画像から少なくとも1つの顔画像が抽出されて第1記憶領域に一時的に記憶されてもよい。
【0036】
上記によれば、背景として表示されている実世界の撮像画像に含まれる顔画像がキャラクタオブジェクトとして登場し、当該キャラクタオブジェクトに関連するゲームでの成功によって、当該顔画像を蓄積的に保存することができる。
【0037】
また、上記表示画像生成ステップでは、画像取得ステップにおいて抽出された顔画像の撮像画像における位置と重なって表示装置に表示されるように、第1キャラクタオブジェクトを配置して表示画像を生成してもよい。
【0038】
上記によれば、第1キャラクタオブジェクトをあたかも撮像画像内から出現したように表現することができ、第1キャラクタオブジェクトが実カメラで撮像された実空間に存在しているような画像を表示することができる。
【0039】
また、上記撮像画像取得ステップでは、実カメラによってリアルタイムに撮像された実世界の撮像画像が繰り返し取得されてもよい。上記表示画像生成ステップでは、撮像画像取得ステップにおいて繰り返し取得された撮像画像が順次背景として設定されてもよい。上記画像取得ステップでは、順次背景として設定される撮像画像から、既に抽出された顔画像に対応する顔画像が繰り返し取得されてもよい。上記第1キャラクタオブジェクトを作成するステップでは、画像取得ステップにおいて繰り返し取得される顔画像を含むように第1キャラクタオブジェクトが繰り返し作成されてもよい。そして、上記表示画像生成ステップでは、画像取得ステップにおいて繰り返し取得されている顔画像の撮像画像における位置と重なって表示装置に表示されるように、繰り返し作成されている第1キャラクタオブジェクトが配置されて表示画像が生成されてもよい。
【0040】
上記によれば、実カメラの撮像位置や撮像方向が変化しても当該変化に応じて第1キャラクタオブジェクトを配置することができ、顔画像を取得した被写体である人物の位置や表情が変化しても当該変化を第1キャラクタオブジェクトに反映することができるため、あたかもリアルタイムに撮像された撮像画像で表現された実空間内に第1キャラクタオブジェクトが存在しているように表示することができる。
【0041】
また、上記ゲーム装置は、非一時的にデータを記憶する記憶手段に記憶されている画像データを利用可能であってもよい。この場合、画像取得ステップでは、所定のゲーム開始前に記憶手段に記憶されている画像データから、少なくとも1つの顔画像が抽出されて第1記憶領域に一時的に記憶されてもよい。
【0042】
上記によれば、ゲーム装置に予め格納されている画像データから顔画像が取得されるため、別のアプリケーション等によって予め取得されている顔画像(例えば、カメラ撮像アプリケーションによって撮影された画像や通信アプリケーションによって他の装置から受信した画像に含まれる顔画像)を、取得対象とすることができる。
【0043】
また、本発明は、上記各ステップを実行する手段を備える画像処理装置および画像処理システムや上記各ステップで行われる動作を含む画像処理方法の形態で実施されてもよい。
【発明の効果】
【0044】
本発明によれば、ユーザによる顔画像の取得、収集等を支援するとともに、顔画像により実世界を反映した仮想の世界を表現することを可能にする。
【図面の簡単な説明】
【0045】
図1】開いた状態におけるゲーム装置10の一例を示す正面図
図2】開いた状態におけるゲーム装置10の一例を示す側面図
図3A】閉じた状態におけるゲーム装置10の一例を示す左側面図
図3B】閉じた状態におけるゲーム装置10の一例を示す正面図
図3C】閉じた状態におけるゲーム装置10の一例を示す右側面図
図3D】閉じた状態におけるゲーム装置10の一例を示す背面図
図4】ユーザがゲーム装置10を両手で把持する様子の一例を示す図
図5】ユーザがゲーム装置10を片手で把持する様子の一例を示す図
図6】ゲーム装置10の内部構成の一例を示すブロック図
図7】一覧表示された顔画像の例
図8】一覧表示された顔画像の他の例
図9】顔画像を敵オブジェクトにはめ込む処理の画面例
図10】顔画像選択画面を例示する図
図11図1のゲーム装置で本実施形態における画像処理プログラムを実行することに応じて、メインメモリに記憶される各種データの一例を示す図
図12】顔画像管理情報のデータ構造の一例
図13】取得済みの顔画像を属性によって分類した集計表の例
図14】第1の実施形態に係るゲーム装置10の動作の一例を示すフローチャート
図15】顔画像取得処理の詳細処理の一例を示すフローチャート
図16】第2の実施形態に係るゲーム装置10の動作の一例を示すフローチャート
図17】一覧表示処理の詳細処理の一例を示すフローチャート
図18】配役決定処理の詳細処理の一例を示すフローチャート
図19A】顔画像管理支援処理1の詳細処理例を示すフローチャート
図19B】顔画像管理支援処理2の詳細処理例を示すフローチャート
図19C】顔画像管理支援処理3の詳細処理例を示すフローチャート
図20A】画像処理プログラムの一例である仮想空間の概要を示す図
図20B】スクリーンモデルとαテクスチャの関係を示す図
図21】仮想空間の一例を示す図
図22】画像処理プログラムの一例であるゲームプログラムにおいて定義される仮想の3次元空間(ゲーム世界)を示す図
図23】画像処理プログラムを実行する装置の一例であるゲーム装置の上側LCDに表示される表示形態例の各処理段階の一例を示す図
図24】画像処理プログラムを実行する装置の一例であるゲーム装置の上側LCDに表示される表示形態例の各処理段階の一例を示す図
図25】画像処理プログラムを実行する装置の一例であるゲーム装置の上側LCDに表示される表示形態例の各処理段階の一例を示す図
図26】画像処理プログラムを実行する装置の一例であるゲーム装置の上側LCDに表示される表示形態例の各処理段階の一例を示す図
図27A】影オブジェクトのシルエットモデルを上から見た一例を示す図
図27B】影オブジェクトのシルエットモデルの一例を示す図
図28】各オブジェクトの不透明度の一例を示す図
図29】画像処理プログラムを実行することによってゲーム装置が画像処理する動作の一例を示すフローチャート
図30】画像処理プログラムの敵オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャート
図31】画像処理プログラムの弾オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャート
図32A】画像処理プログラムの表示画像の更新処理(第1の描画方法)の詳細な動作の一例を示すサブルーチンのフローチャート
図32B】本実施形態における画像処理プログラムの表示画像の更新処理(第2の描画方法)の詳細な動作の一例を示すサブルーチンのフローチャート
図33】第1の描画方法におけるレンダリング処理の一例を説明するための説明図
図34図33の各オブジェクトの位置関係を説明するための説明図
図35】カメラ画像をレンダリングする処理の一例を説明するための説明図
図36】カメラ画像をレンダリングする際の座標の一例を説明するための説明図
図37】仮想空間をレンダリングする処理の一例を説明するための説明図
図38図37の各オブジェクトの位置関係説明するための説明図
図39】仮想空間をレンダリングする際の境界面の座標の一例を説明するための説明図
図40】画像処理プログラムにより生成される表示画像の一例を示す図
図41】第2の実施形態に係るゲーム装置の画面の例
図42】第2の実施形態に係るゲーム装置の動作の一例を示すフローチャート
図43】第3の実施形態に係るゲーム装置の画面の例
図44】第3の実施形態に係るゲーム装置の動作の一例を示すフローチャート
図45】第4の実施形態に係る画面の一例
図46】第4の実施形態に係るゲーム装置の動作の一例を示すフローチャート
図47】第5の実施形態に係るゲーム装置の上側LCDに表示される画面の一例を示す図
図48】第5の実施形態に係るゲーム装置の上側LCDに表示される画面の一例を示す図
図49】第5の実施形態に係る画像処理プログラムを実行することによって行われるゲーム中顔画像取得処理の詳細な動作の一例を示すサブルーチン
図50図49のステップ202で行われる未出現処理の詳細な動作の一例を示すサブルーチン
図51図49のステップ208で行われる出現済処理の詳細な動作の一例を示すサブルーチン
【発明を実施するための形態】
【0046】
(第1の実施形態)
以下、本発明に係る一実施形態としての画像処理プログラムを実行する画像処理装置について具体例を挙げて説明する。ただし、以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。
【0047】
なお、以下に挙げる実施形態において、コンピュータが処理するデータをグラフや自然言語を用いて例示しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語、配列等で指定される。本発明は、データの表現方法を限定するものではない。
【0048】
<ハードウェアの構成例>
まず、図面を参照して、本実施形態に係る画像処理プログラムを実行する画像処理装置の一例として携帯型のゲーム装置10について説明する。ただし、本発明に係る画像処理装置は、ゲーム装置に限定されるものではない。本発明に係る画像処理装置は、例えば、汎用コンピュータ等、任意のコンピュータシステムであればよい。
【0049】
なお、以下に示される本実施形態に係る画像処理プログラムはゲームプログラムであるが、本発明に係る画像処理プログラムはゲームプログラムに限定されるものではない。本発明の画像処理プログラムは、任意のコンピュータシステムで実行されることによって適用することができる。また、本実施形態の各処理をネットワーク化された複数の装置で分散処理してもよいし、サーバで主要な処理を行った後、端末に処理結果を配信するネットワークシステムや、いわゆるクラウドネットワークで実施してもよい。
【0050】
図1図2図3A図3B図3C、および図3Dは、ゲーム装置10の外観の一例を示す平面図である。図1図3Dに示されるゲーム装置10は、撮像部(カメラ)を内蔵しており、当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶されたゲームプログラム、または、サーバや他のゲーム装置からネットワークを介して受信したゲームプログラムを実行可能である。また、ゲーム装置10は、仮想空間に設定された仮想カメラで撮像したときの画像を、コンピュータグラフィックス処理により生成して画面に表示すこともできる。なお、本明細書においては、カメラによって画像データを取り込むことを「撮像」と記し、撮像した画像データを記憶することを「撮影」と記す。
【0051】
図1図3Dに示されるゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、ヒンジ構造により開閉可能(折り畳み可能)に連結されている。すなわち、上側ハウジング21は、下側ハウジング11に対して回動(揺動)自在に取り付けられている。これにより、ゲーム装置10は、上側ハウジング21が下側ハウジング11に対して密着した状態となる閉状態(図3A図3C)と、上側ハウジング21が下側ハウジング11に対して回動し、密着場外が解除された状態(開状態)との2つの形態を有する。上側ハウジング21の回動は、図2に示すように、開状態において、上側ハウジング21と下側ハウジング11とが略平行となる位置まで許容される(図2参照)。
【0052】
図1は、開いた状態(開状態)におけるゲーム装置10の一例を示す正面図である。ゲーム装置10の下側ハウジング11および上側ハウジング21のそれぞれは、平面形状が長手方向(横方向(左右方向):図中x方向)と短手方向((上下方向):図中y方向)とを有する横長の長方形である板状に形成されている。上側ハウジング21の長手方向の下側の外縁部と、下側ハウジング11の長手方向の上側の外縁部とがヒンジ構造により回動可能に連結されている。ユーザがゲーム装置10を使用する際には、通常、ゲーム装置10は開状態にされる。そして、ユーザがゲーム装置10を保管する際には、ゲーム装置10は閉状態にされる。また、上側ハウジング21は、下側ハウジング11との連結部分に生じる摩擦力により、下側ハウジング11との間でユーザが所望する角度をなして停止した状態を維持することができる。つまり、ゲーム装置10は、上側ハウジング21を下側ハウジング11に対して所望角度で静止させることができる。一般に、上側ハウジング21に設けられた画面の視認性の観点から、上側ハウジング21は、下側ハウジング11との間で、直角または鈍角をなす位置まで開いた状態とされる。以降、ゲーム装置10の閉状態において、上側ハウジング21と下側ハウジング11とのそれぞれの対向面を内側面、または、主面と称する。また、上側ハウジング21と下側ハウジング11とのそれぞれの内側面(主面)とは反対側の面を、外側面と称する。
【0053】
ゲーム装置10の下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向(図中z方向)に突出した突起部(軸受け部)11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部(軸受け部)21Aが設けられる。突起部11A,21A,11A内には、例えば、一方の突起部11Aから突起部21Aを貫通し他方の突起部11Aまでx方向に延びる回動軸(図示せず)が収容されており、この回動軸を中心に、上側ハウジング21が下側ハウジング11に対して相対的に回動自在となっている。このようにして、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
【0054】
図1に示される下側ハウジング11の内側面11Bには、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L、アナログスティック15、第1LED16A、および、マイクロフォン用孔18が設けられる。
【0055】
下側LCD12は下側ハウジング11に収納される。下側LCD12の平面形状は横長の長方形であり、その長辺方向が下側ハウジング11の長手方向(図1中x方向)に一致するように配置される。下側LCD12は、下側ハウジング11の内側面(主面)中央に設けられる。下側ハウジング11の内側面に設けられた開口部から下側LCD12の画面が露出する。ゲーム装置10を使用しない場合には上記閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、一例として、320dot×240dot(横×縦)である。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、第1の実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の表示装置を利用してもよい。また、下側LCD12として、所望の解像度を有する表示装置を利用することができる。
【0056】
タッチパネル13はゲーム装置10の入力装置の一つである。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。第1の実施形態では、タッチパネル13は、抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば、静電容量方式等、任意の押圧式のタッチパネルを用いることができる。また、第1の実施形態では、タッチパネル13は、下側LCD12の解像度と同解像度(検出精度)のものが利用される。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。
【0057】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが設けられる。
【0058】
十字ボタン14Aは、十字の形状を有しており、少なくとも上下左右の方向を指示するボタンを有している。十字ボタン14Aは、下側LCD12より左側の領域中の下部領域に設けられる。十字ボタン14Aは、下側ハウジング11を把持した左手の親指で操作可能な位置に設計される。
【0059】
ボタン14B、ボタン14C、ボタン14D、およびボタン14Eの4つのボタンは、下側LCD12より右側の領域中の上部に、十字状に配置されて設けられる。ボタン14B、ボタン14C、ボタン14D、およびボタン14Eは、下側ハウジング11を把持するユーザの右手の親指が自然と位置するところに設置される。電源ボタン14Fは、下側LCD12の右側の領域中の下部に配置される。
【0060】
セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lは、それぞれ、下側LCD12の下側領域に設置される。
【0061】
ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10によって実行されるプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは、選択操作やゲーム中のキャラクタの移動操作等に用いられる。例えば、各操作ボタン14B〜14Eは、決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0062】
アナログスティック15は、方向を指示するデバイスである。アナログスティック15は、下側ハウジング11の内側面(主面)の下側LCD12より左側の領域中の上部に設けられる。すなわち、アナログスティック15は十字ボタン14Aの上方に設けられる。また、アナログスティック15は、下側ハウジング11を把持した左手の親指で操作可能な位置に設計される。アナログスティック15が上部領域に設けられたことにより、下側ハウジング11を把持するユーザの左手の親指が自然と位置するところにアナログスティック15が配置される。そして、十字ボタン14Aは、下側ハウジング11を把持するユーザの左手の親指を少し下にずらした位置に配置される。それゆえ、ユーザは、下側ハウジング11を把持する左手の親指を上下に動かすだけで、アナログスティック15と十字ボタン14Aを操作することができる。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトは、アナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
【0063】
なお、ボタン14B、ボタン14C,ボタン14D、およびボタン14Eの4つのボタンとアナログスティック15とは、下側LCD12を挟んで、左右対称な位置に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、ボタン14B、ボタン14C,ボタン14D、およびボタン14Eの4つのボタンを使用して方向指示入力をすることも可能である。
【0064】
第1LED16A(図1)は、ゲーム装置10の電源のON/OFF状態をユーザに通知する。第1LED16Aは、下側ハウジング11の内側面(主面)と下側ハウジング11の下側面とが共有する端部の右側に設けられる。これによって、ユーザは、ゲーム装置10の開閉状態にかかわらず、第1LED16Aの点灯の有無を視認することができる。
【0065】
マイクロフォン用孔18は、音声入力装置としてのゲーム装置10に内蔵されるマイクロフォン用の孔である。内蔵されたマイクロフォンは、マイクロフォン用孔18から外部の音を検出する。マイクロフォンおよびマイクロフォン用孔18は、下側ハウジング11の内側面(主面)の電源ボタン14Fの下方に設けられる。
【0066】
下側ハウジング11の上側面には、タッチペン28の挿入口17(図1図3Dにおいて点線で示される)が設けられている。挿入口17から、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13を用いた入力は、通常タッチペン28を用いて行われる。但し、タッチペン28の代わりにユーザの指を用いることもできる。
【0067】
下側ハウジング11の上側面にはゲーム装置10とゲームプログラムを記録した外部メモリ45を挿入するための挿入口11D(図1図3Dにおいて点線で示される)が設けられる。挿入口11Dの内部には、外部メモリ45と内部回路とを電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。外部メモリ45がゲーム装置10に接続されることにより、内部回路に含まれるプロセッサによって所定のゲームプログラムが実行される。なお、上記コネクタおよび挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0068】
図1に示される上側ハウジング21の内側面21Bには、スピーカ孔21E、上側LCD22、内側撮像部24、3D調整スイッチ25、および3Dインジケータ26が設けられる。内側撮像部24が、第1の撮像装置の一例である。
【0069】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。上側LCD22は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側LCD22は、左目用画像と右目用画像とが所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。なお、上側LCD22は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。第1の実施形態では、上側LCD22は、パララックスバリア方式の表示装置とする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0070】
上側LCD22は、上側ハウジング21に収納される。上側LCD22は、横長の長方形であり、長辺方向が上側ハウジング21の長辺方向に一致する状態で、上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、一例として下側LCD12の画面の面積よりも大きく設定される。具体的には、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21の内側面21Bに設けられた開口部から上側LCD22の画面が露出する。また、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、一例として800dot×240dot(横×縦)である。第1の実施形態では、上側LCD22は液晶表示装置であるとして説明される。ただし、これに限らず、例えば、ELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0071】
スピーカ孔21Eは、ゲーム装置10の音声出力装置としてのスピーカ44からの音声を出力するための孔である。スピーカ21Eは、上側LCDを挟んで左右対称に設置される。後述するスピーカ44からの音声がこのスピーカ孔21Eから出力される。
【0072】
内側撮像部24は、上側ハウジング21の内側面21Bの内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子と、レンズとを含む。撮像素子は、例えば、CCDイメージセンサやCMOSイメージセンサ等である。レンズは、ズーム機構を有するものでもよい。
【0073】
内側撮像部24は、上側ハウジング21の内側面21Bの、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。このように内側撮像部24が配置されることによって、ユーザが上側LCD22を正視した際、内側撮像部24によってユーザの顔を正面から撮像することができる。外側左撮像部23aおよび外側右撮像部23bについては、後述される。
【0074】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。3D調整スイッチ25は、ゲーム装置10の開閉状態に関わらずユーザが視認できるように、上側ハウジング21の内側面21Bと右側面とが共有する端部に設けられる。3D調整スイッチ25は、所定方向(例えば、上下方向)の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側LCD22の表示モードが設定される。
【0075】
例えば、3D調整スイッチ25のスライダが最下点位置に配置されている場合、上側LCD22が平面表示モードに設定され、上側LCD22の画面には平面画像が表示される。なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
【0076】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。例えば、3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。3Dインジケータ26は、上側ハウジング21の内側面21Bに設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。したがって、ユーザは、上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
【0077】
図2は、開状態におけるゲーム装置10の一例を示す右側面図である。下側ハウジング11の右側面には、第2LED16Bと、無線スイッチ19と、Rボタン14Hとが設けられている。第2LED16Bは、点灯により、ゲーム装置10の無線通信の確立状況をユーザに通知する。ゲーム装置10は、他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。無線スイッチ19は、この無線通信の機能を有効/無効にする。Rボタン14Hについては、後述される。
【0078】
図3Aは、閉じた状態(閉状態)におけるゲーム装置10の一例を示す左側面図である。図3Aに示される下側ハウジング11の左側面には、開閉可能なカバー部11Cと、Lボタン14Hと、音量ボタン14Iとが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカ44の音量を調整するためのボタンである。
【0079】
カバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ46(図1参照)とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ46は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ46は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。Lボタン14Hについては後述される。
【0080】
図3Bは、閉状態におけるゲーム装置10の一例を示す正面図である。図3Bに示される上側ハウジング21の外側面には、外側左撮像部23a、外側右撮像部23b、および第3LED29が設けられる。
【0081】
外側左撮像部23aおよび外側右撮像部23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。外側左撮像部23aおよび外側右撮像部23bの撮像方向は、いずれも外側面21Dの外向きの法線方向である。すなわち、外側左撮像部23aの撮像方向および外側右撮像部23bの撮像方向(カメラの視軸)は、平行である。以降、外側左撮像部23aおよび外側右撮像部23bをまとめて、外側撮像部23と称する。外側撮像部23が、第2の撮像装置の一例である。
【0082】
外側撮像部23を構成する外側左撮像部23aおよび外側右撮像部23bは、上側LCD22の画面の横方向に並べて配置される。すなわち、2つの外側左撮像部23aおよび外側右撮像部23bを結んだ直線が上側LCD22の画面の横方向に配置されるように、外側左撮像部23aおよび外側右撮像部23bが配置される。また、ユーザが上側ハウジング21を下側ハウジング11に対して所定角度(例えば90°)揺動させ、上側LCD22の画面を正面から視認した場合に、外側左撮像部23aは画面を視認するユーザの左側に位置し、外側右撮像部23bはユーザの右側に位置する(図1参照)。外側左撮像部23aおよび外側右撮像部23bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm〜70mmの範囲で設定されてもよい。なお、外側左撮像部23aおよび外側右撮像部23bの間隔は、この範囲に限らない。なお、第1の実施形態においては、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21に固定されており、撮像方向を変更することはできない。
【0083】
外側左撮像部23aおよび外側右撮像部23bは、上側LCD22(上側ハウジング21)の上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される(図1参照)。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。
【0084】
このように、外側左撮像部23aおよび外側右撮像部23bが上側LCD22の短手方向中央線に対して線対称に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23それぞれの撮像方向をユーザの左右の目それぞれの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。さらに、外側左撮像部23aおよび外側右撮像部23bは、図3Bにおいて点線で示される上側ハウジング21の内側面に設けられた内側撮像部24を上側ハウジング21の外側面に投影した場合、当該投影された内側撮像部24を挟んで左右対称に設けられる。したがって、外側撮像部23を上側LCD22の画面の裏側に配置する場合や、内側撮像部24の裏側に外側撮像部23を配置する場合に比べて、上側ハウジング21を薄く構成することが可能となる。
【0085】
外側左撮像部23aと外側右撮像部23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)のいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用可能である。外側撮像部23aおよび23bをステレオカメラとして機能させるプログラムが実行されている場合、外側左撮像部23aは、ユーザの左目で視認される左目用画像を撮像し、外側右撮像部23bは、ユーザの右目で視認される右目用画像を撮像する。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像を行うことも可能である。また、外側撮像部23aと23bとの一方を用いて撮像された単一の画像から、視差を有する左目用画像および右目用画像を生成して、あたかも2つのカメラで撮像されたかのような疑似ステレオ画像を生成することもできる。この疑似ステレオ画像の生成において、仮想カメラ間の距離は、適宜設定可能とされる。
【0086】
第3LED29は、外側撮像部23が作動している場合に点灯し、外側撮像部23が作動していることを報知する。第3LED29は、上側ハウジング21の外側面の外側撮像部23の近傍に設けられる。
【0087】
図3Cは、閉状態におけるゲーム装置10の一例を示す右側面図である。図3Dは、閉状態におけるゲーム装置10の一例を示す背面図である。
【0088】
図3Dに示される下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。Lボタン14GおよびRボタン14Hは、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、Lボタン14GおよびRボタン14Hは、上述の各撮像部のシャッターボタン(撮影指示ボタン)として機能する。
【0089】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0090】
図4および図5は、それぞれ、ゲーム装置10の使用状態の一例を示す。図4は、ユーザがゲーム装置10を両手で把持する様子の一例を示す図である。
【0091】
図4に示される例において、ユーザは、下側LCD12および上側LCD22がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング11の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング11を把持したまま、各操作ボタン14A〜14Eおよびアナログスティック15に対する操作を左右の親指で行い、Lボタン14GおよびR14Hに対する操作を左右の人差し指で行うことができる。
【0092】
図5は、ユーザがゲーム装置10を片手で把持する様子の一例を示す図である。図5に示される例において、タッチパネル13に対して入力を行う場合には、ユーザは下側ハウジング11を把持していた一方の手を離して他方の手のみで下側ハウジング11を把持する。これによって、当該一方の手でタッチパネル13に対する入力を行うことができる。
【0093】
図6は、ゲーム装置10の内部構成の一例を示すブロック図である。ゲーム装置10は、上述した各構成部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインターフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0094】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。第1の実施形態では、所定のプログラムがゲーム装置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に表示される。
【0095】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ45を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインターフェイスである。
【0096】
メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、画像処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。第1の実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0097】
外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ46がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ46に記憶された画像を読み込み、上側LCD22および/または下側LCD12に当該画像を表示することができる。
【0098】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0099】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は、情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0100】
情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(本実施形態では、xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、例えば下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示されるように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、ゲーム装置10の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを算出する。
【0101】
情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置10の3軸(本実施形態では、xyz軸)周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。角速度センサ40は、例えば下側ハウジング11の内部に設けられる。情報処理部31は、角速度センサ40から出力された角速度データを受信して、ゲーム装置10の姿勢や動きを算出する。
【0102】
情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路41は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0103】
情報処理部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に対して入力が行われたタッチ位置を知ることができる。
【0104】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
【0105】
下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示にしたがって画像を表示する。第1の実施形態では、情報処理部31は、手書き画像入力操作用の画像を下側LCD12に表示させ、外側撮像部23および内側撮像部24のいずれかから取得した画像を上側LCD22に表示させる。すなわち、情報処理部31は、上側LCD22に外側撮像部23で撮像した右目用画像と左目用画像とを用いた立体画像(立体視可能な画像)を表示させたり、内側撮像部24で撮像した平面画像を上側LCD22に表示させたり、上側LCD22に外側撮像部23で撮像した右目用画像および左目用画像の一方を用いた平面画像を表示させたりする。
【0106】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された(外側撮像部23で撮像された)右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0107】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示にしたがって画像を撮像し、撮像した画像データを情報処理部31に出力する。第1の実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。具体的には、ユーザによるタッチパネル13や操作ボタン14を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23または内側撮像部24に対して撮像指示を行う。
【0108】
外側撮像部23および内側撮像部24は、情報処理部31(CPU311)からの指示によって起動されると、例えば、1秒間に60枚の速度で撮像する。外側撮像部23または内側撮像部24によって撮像された撮像画像は、順次、情報処理部31に送られ、情報処理部31(GPU312)によって上側LCD22または下側LCD12に表示される。撮像画像は、情報処理部31に出力されると、VRAM313に格納され、上側LCD22または下側LCD12に出力された後、所定のタイミングで削除される。このように、例えば、1秒間に60枚の速度で、撮像し、撮像した画像を表示することによって、ゲーム装置10は、外側撮像部23および内側撮像部24の撮像範囲内の景色をリアルタイムに上側LCD22または下側LCD12に表示することができる。
【0109】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。
【0110】
3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
【0111】
<機能の説明>
次に、ゲーム装置10が実行するゲーム処理の一例の概要を説明する。ゲーム装置10は、ユーザ(以下、プレイヤともいう)の操作にしたがって、内側撮像部24、あるいは、外側撮像部23等を通じて、例えば、人の顔画像を取得して保存することにより、顔画像を収集する機能を提供する。顔画像の収集にあたって、ユーザは、取得した顔画像を用いたゲーム(第1のゲーム)を実行し、そのゲームの結果が成功であった場合に、ユーザは取得した画像を保存することができる。なお、ユーザは、保存する対象となる顔画像を、上記第1のゲームを実行する前に内側撮像部24または外側撮像部23等によって撮像された画像や、上記第1のゲームを実行する前に別のアプリケーションによって取得されている画像や、上記第1のゲームの実行中に内側撮像部24または外側撮像部23等によって撮像される画像等から取得することができる。ゲーム装置10は、後述するように、ゲーム処理を実行中にアクセス可能なセーブデータ記憶域Do(図11参照)に、上記第1のゲーム前または上記第1のゲーム中に取得した顔画像を保存する。そして、ユーザは、ゲーム装置10に対して同様の操作を繰り返して、複数の顔画像を収集し、セーブデータ記憶域Doに追加し、蓄積することができる。セーブデータ記憶域Doは、ゲーム実行中のゲーム装置10がアクセス可能な領域であるので、取得された顔画像がセーブデータ記憶域Doに保存されることによって、後の処理においても利用可能な状態となる。さらに、ゲーム装置10は、セーブデータ記憶域Doに蓄積したデータを読み出すことにより、第1のゲームの結果として収集した顔画像の一覧を表示する。そして、ゲーム装置10は、表示した顔画像の一覧の中からユーザが選択した顔画像、あるいは、ゲーム装置10が自動的に選択した顔画像を用いてゲーム(第2のゲーム)を実行する。
【0112】
ゲーム装置10が実行するゲーム(第1のゲーム、第2のゲーム)は、例えば、敵オブジェクトEOに照準を合わせて攻撃を行い、敵オブジェクトEOを破壊するゲームである。そして、第1の実施形態では、例えば、ユーザが取得し、セーブデータ記憶域Do保存納前の顔画像、あるいはセーブデータ記憶域Do保存納後の顔画像が敵オブジェクトEO等のキャラクタオブジェクトのテクスチャとなって、敵オブジェクトEO等にマッピングされる。
【0113】
まず、第1の実施形態における第1のゲーム実行段階では、ユーザは、例えば、カメラのような撮像部を介して所望の顔画像を取得し、第1のゲームを実行できる。そして、ユーザは、第1のゲームで成功することにより、取得した顔画像をセーブデータ記憶域Doに蓄積的に保存し、一覧表示し、第2のゲームに利用できる。ここで、蓄積的にとは、ユーザが新たな顔画像を取得し、さらに、第1のゲームで成功することによって、新たな顔画像が追加されることをいう。
【0114】
そして、第2のゲームの実行段階では、ユーザは、収集した顔画像の中から所望の顔画像を選択して敵オブジェクトEOを作成することができる。そして、ユーザは、所望の顔画像を用いて作成した敵オブジェクトEOを用いたゲーム、例えば、作成した敵オブジェクトEOを破壊するゲームを実行することができる。ただし、ユーザの操作によらず、ゲーム装置10が自動的に、セーブデータ記憶域Doから、例えば、ランダムに顔画像を選択し、敵オブジェクトEO等を作成してもよい。なお、第1のゲームの実行段階においても、すでにセーブデータ記憶域Doに収集済みの顔画像を用いてキャラクタオブジェクトを作成し、セーブデータ記憶域Doに保存前の顔画像を用いたキャラクタオブジェクトとともに、ゲームに登場させてもよい。なお、以下で、複数の敵オブジェクトEOをそれぞれ区別する場合には、敵オブジェクトEO1、EO2のように呼ぶ。一方、敵オブジェクトEO1、EO2等を総称的に呼ぶ場合、および、複数の敵オブジェクトを区別する必要がない文脈では、敵オブジェクトEOのように呼ぶ。
【0115】
次に、図7図10を参照して、第1の実施形態に係るゲーム装置10の表示例を説明する。図7は、ゲーム装置10の上側LCD22に一覧表示された顔画像の例である。上述のように、ユーザは、第1のゲームで成功することにより、取得した顔画像を保存し、図7のように一覧表示できる。一覧表示される顔画像は、例えば、内側撮像部24、外側左撮像部23a、外側右撮像部23b等によって取得された画像データを人の顔面の3次元モデルにテクスチャマッピングしたものである。例えば、複数のポリゴンを組み合わせて形成した3次元モデルの表面に、画像データがテクスチャとして貼り付けられる。ただし、ゲーム装置10が実行するゲームでは、顔画像は、3次元モデルにテクスチャマッピングされたものに限定される訳ではない。例えば、ゲーム装置10は、単純な2次元画素配列に保持される画像データを顔画像として表示するようにしてもよい。また、図7のように一覧表示された顔画像のうち、いずれか1つ以上が単純な2次元画素配列に保持される顔画像であり、残りが3次元モデルにテクスチャマッピングされた顔画像であってもよい。
【0116】
図7では、顔画像G1は、太線L1で囲まれている。太線L1は、顔画像G1が選択状態にあることを示している。選択状態とは、例えば、ユーザが操作ボタン14等を操作することによって、処理対象として選択された状態にあることをいう。選択状態は、フォーカスされた状態とも呼ばれる。ユーザが、例えば、操作ボタン14を押下するごとに、選択状態の顔画像は、左から右、上から下に移動する。例えば、図7の状態で、ユーザが、十字ボタン14Aを右方向に押下することで、選択状態の顔画像は、顔画像G1から顔画像G2、顔画像G2から顔画像G3のように、右方向に遷移する。選択状態の顔画像が遷移するとは、上側LCD22の画面上では、太線L1で取り囲まれる顔画像が変更されていくことをいう。
【0117】
なお、図7で、顔画像の横の並びを1つの段と呼ぶことにする。この1つの段において右端の顔画像G4が選択状態にあって、さらに、ユーザが、十字ボタン14Aを右方向に押下すると、選択状態の顔画像は、次の下段の左下の顔画像G5となる。逆に、例えば、下段の左下の顔画像G5が選択状態にある場合に、ユーザが、十字ボタン14Aを左方向に押下することで、選択状態の顔画像は、顔画像G5から顔画像G4、顔画像G4から顔画像G3のように、上方向、右方向に遷移する。
【0118】
ただし、選択状態の変更は、十字ボタン14Aの左右への押下に限定される訳でなく、上下への押下によって、選択状態が変更されるようにしてもよい。また、選択状態の変更は、十字ボタン14Aの押下に限定される訳ではなく、他の操作ボタン14、例えば、操作ボタン14B(Aボタン)を押下することによって、選択対象の画像を変更するようにしてもよい。また、下側LCD12上のタッチパネル13の操作によって、選択状態の顔画像を切り替えるようにしてもよい。例えば、ゲーム装置10は、上側LCD22に表示される顔画像の一覧と同様の顔画像の一覧を下側LCD12に表示しておく。そして、ゲーム装置10は、タッチパネル13への操作を検知することによって、どの顔画像が選択状態になったかを検知するようにしてもよい。そして、ゲーム装置10は、選択状態になった顔画像、例えば、顔画像G1を太線L1で取り囲んで表示するようにすればよい。
【0119】
以上のように、ユーザは、上側LCD22に表示される、図7で例示される画面により、現在取得済みの顔画像の一覧を閲覧できる。また、ユーザは、現在取得済みの画面一覧から所望の顔画像を選択状態とすることができる。そして、例えば、所定の決定ボタン、例えば、下側LCD12に表示された決定ボタンなどをタッチパネル13あるいは操作ボタン14などで選択することで、選択状態を確定することができる。また、例えば、ユーザがボタン14C(Bボタンともいう)を押下することで、上側LCD22の顔画像の一覧画面が閉じて、図示しないメニュー選択待ちの画面を表示するようにしてもよい。
【0120】
図8は、一覧表示された顔画像の他の例である。図8の例では、顔画像G2が選択状態にあり、太線L2で囲まれている。図8の例では、顔画像G2が選択状態になると、顔画像G2と関連がある顔画像が反応している。例えば、顔画像G0の近傍にハートマークが表示され、かつ、顔画像G0が片目を閉じて、選択状態にある顔画像G2に向かって視線を送っている。また、例えば、顔画像G3、顔画像G7なども、選択状態にある顔画像G2に顔を向けて、視線を送っている。
【0121】
ただし、選択状態にされた顔画像と関連性のある顔画像の反応は、顔を向ける、近傍にハートマークが表示され、片目を閉じて視線を送る、顔を向けて視線を送る、等の動作だけに限定される訳ではない。例えば、関連のある顔画像が、笑う、声を発する等の反応を示してもよい。逆に、選択状態にされた顔画像と関連のない顔画像が、笑っている表情から、笑わない表情に変わるようにしてもよい。また、選択状態にされた顔画像と関連のない顔画像が、選択状態にされた顔画像の方向と逆の方向を向くようにしてもよい。
【0122】
ここで、関連のある顔画像は、例えば、顔画像取得の段階で定義しておくようにしてもよい。例えば、顔画像を分類するためのグループを事前に設定しておき、顔画像が取得されるときに、取得される顔画像がどのグループに属するかをユーザが入力するようにしてもよい。また、例えば、ゲームの進行に応じて、顔画像のグループを定義し、顔画像を分類するようにしてもよい。例えば、顔画像G0を用いて、ゲームを進行中に、新たに顔画像G1が取得されたような場合に、顔画像G0と顔画像G1とを同一のグループに属する関連のある顔画像同士であると決定してもよい。
【0123】
図8のように、1つの顔画像、例えば、顔画像G2が操作ボタン14等によって選択状態にされたときに、他の顔画像G0、G3、G7などが反応すると、取得された顔画像間の親近感などを表現できるようになる。すなわち、単に収集した顔画像をグループに分けて分類するというのではなく、顔画像の表情、反応によって、複数の顔画像間での親近性を表現でき、実世界の人と人との関連性、親密度等を仮想のゲーム装置10の世界で表現できる。
【0124】
図9および図10は、顔画像をゲームキャラクタの1つである、敵オブジェクトEOにはめ込む処理の画面例である。図9は、敵オブジェクトEOの頭部選択画面の例である。例えば、ゲーム装置10の下側LCD12に表示されるメニューから、タッチパネル13への操作で、ユーザが「ボスを選ぶ」というメニューのリストを選択すると、図9のような、ゲーム装置10に用意されている敵オブジェクトEOの頭部形状の一覧が表示される。ただし、このような操作は、タッチパネル13による操作に限定される訳ではなく、例えば、操作ボタン14等による操作で、図9のような頭部形状の一覧が表示されるようにしてもよい。
【0125】
図9では、頭部形状H1、H2、H3の3種類が選択可能に表示されている。例えば、頭部形状H1は、3次元モデルで形成された顔面部分H12と、顔面部分H12を取り囲む周辺部分H13とを含む。図7図8で示したように、3次元モデルである顔面部分H12に、顔画像をテクスチャマッピングすることで、ゲームに登場する敵オブジェクトEOが形成される。
【0126】
周辺部分H13は、ゲームに登場する敵オブジェクトEOの特徴を暗示した形状とすればよい。例えば、周辺部分H13が、兜(カブト)を模倣した形状であれば、敵オブジェクトEOの好戦的なイメージを表現できる。図9では、2行4列の頭部形状の一覧表に、3種類の頭部形状H1、H2、H3が例示されており、それら以外は、未定義のマークH0が表示されている。したがって、頭部形状H1−H3は、あくまでも例示であり、頭部形状の種類が3種類に限定される訳ではない。例えば、ゲームプログラムのバージョンアップ媒体、あるいは、インターネット上でゲームのパーツを提供するウェブサイトなどから、新たな頭部形状を追加できるようにしておいてもよい。
【0127】
図9では、「ボス」というラベルLBにより、頭部形状H1がユーザによって、選択状態になっていることが示されている。ラベルLBは、例えば十字ボタン14A等によって、移動可能である。ユーザが十字ボタン14A等の操作によって、ラベルLBを移動することで、例えば、頭部形状H2、あるいはH3を選択状態とすることができる。そして、いずれかの頭部形状を選択状態とした後、ユーザが、操作ボタン14B(Aボタン)などを押下することで、選択状態を決定するようにすればよい。選択状態を決定することで、ラベルLBが配置され、選択状態となっている頭部形状、例えば、図9の例では、頭部形状H1の選択が確定する。なお、図9の画面が上側LCD22に表示されているときに、ユーザが操作ボタン14C(Bボタン)を押下することで、敵オブジェクトEOの頭部選択画面が閉じられ、前の操作画面に戻るようにすればよい。
【0128】
図10は、顔画像選択画面を例示する図である。例えば、図9の敵オブジェクトEOの頭部選択画面が上側LCD22に表示されているときに、ユーザが操作ボタン14B(Aボタン)などを押下することで、頭部形状の選択状態を決定すると、図10の画面が表示される。図10の画面は、図7および図8と同様であるが、選択状態となった顔画像に図9で選択された頭部形状の周辺部分H13が付加される点で、図7および図8と相違する。
【0129】
図10の画面において、ユーザが、十字ボタン14A等を操作することによって、選択対象の顔画像を変更することができる。すなわち、ユーザは、選択状態の顔画像を顔画像G0からG1へ、さらに、顔画像G1からG2へというように、移動可能である。そして、選択状態とされた顔画像は、頭部形状の顔面部分にテクスチャマッピングされて表示される。例えば、図10の例では、図9の画面で選択された頭部形状H1の顔面部分H12に、顔画像G2がテクスチャマッピングされ、周辺部分H13と組み合わせて表示される。
【0130】
このような周辺部分H13と顔画像G2との組み合わせが表示されることによって、敵オブジェクトEOが一時的に作成される。ユーザは、一時的に表示される敵オブジェクトEOによって、ゲームで対決する敵のイメージを想像することになる。ユーザは、十字ボタン14A等を操作することによって、選択対象の顔画像を変更することで、敵オブジェクトEOの顔画像を取り替えることができる。すなわち、ユーザは、敵オブジェクトEOの顔を次々に取り替えて、ゲームで戦うイメージに合致する敵オブジェクトEOを作成できる。
【0131】
すなわち、ゲーム装置10では、例えば、上記のように第1のゲームで成功することにより収集され、セーブデータ記憶域Doに蓄積された顔画像が次の第2のゲームに使用される。すなわち、ゲーム装置10では、収集した顔画像を用いて作成した敵オブジェクトEOを用いたゲーム処理が実行される。例えば、ゲーム装置10は、ユーザの操作にしたがって、ゲームの実行前に配役決定処理を呼ばれる処理を実行し、ユーザのイメージに合致する敵オブジェクトEOを生成する。あるいは、ゲーム装置10は、ゲームの実行前に自動的に、敵オブジェクトEOを生成する。「自動的に」とは、例えば、ゲーム装置10が収集された顔画像から顔画像を必要数、すなわち、ゲームに登場する敵オブジェクトEOの数だけ、ランダムに選択して、敵オブジェクトEOを生成することができることをいう。また、例えば、ゲーム装置10は、ユーザが過去に実行したゲーム処理の履歴から、ユーザの特性、指向などから、次にユーザが望むと推定される顔画像を選択して、敵オブジェクトEOを作成してもよい。ゲーム装置10は、顔画像とともに、顔画像の被写体の属性、例えば、年齢、性別、交友関係(家族、友人、職場・学校・地域などでの交流関係)、被写体がペット等の生物である場合の被写体の所有関係などを基に、現時点までのユーザによるゲームの実行履歴から、次に用いる顔画像を選択してもよい。また、例えば、ゲーム装置10は、過去に実行したゲームにおけるユーザの成績から、次に用いる顔画像を選択してもよい。
【0132】
ゲーム装置10は、このようなユーザの操作による指定、あるいは、ゲーム装置10の処理によって、作成された敵オブジェクトEOを用いたゲーム処理(第2のゲーム)を実行する。なお、ここでは、一例として、敵オブジェクトEOという呼び名で説明するが、ゲームに登場するキャラクタオブジェクトとしては、敵対関係にあるオブジェクトに限定されず、味方のキャラクタオブジェクトでもよい。また、敵味方という関係が存在するゲームに限定されず、ユーザ自身を模擬したプレイヤオブジェクトが登場するゲームでもよい。また、例えば、ゲームを実行するユーザを支援する、エージェントと呼ばれるオブジェクトが登場するゲームであってもよい。
【0133】
ゲーム装置10は、以上のような敵オブジェクトEO等、様々なキャラクタオブジェクトが登場するゲームを実行する。このゲームに登場するキャラクタオブジェクトには、ユーザが第1のゲームで成功することにより収集した顔画像が、テクスチャマッピング等の手法により貼り付けられている。したがって、ゲーム装置10で実行されるゲームでは、ユーザ自身が収集した顔画像を含むキャラクタオブジェクトが登場する。このため、様々なキャラクタオブジェクトに、顔画像のような、人、あるいは、生物の特徴を象徴する部分の画像を用いることにより、ユーザは、その顔画像の人、あるいはその顔画像の生物との実世界の関係を反映したゲームを実行できる。例えば、愛情、好意、好感、逆に憎悪などの感情を込めたゲームを実行できるのである。
【0134】
なお、図10の顔画像選択画面でも、図8と同様に、1つの顔画像が選択対象なったときに、選択対象とされている顔画像に関連する他の顔画像が反応を示すようにすればよい。例えば、図10の例では、選択対象とされ、頭部形状H1の周辺部分13と組み合わせられた顔画像G2に対して、関連する顔画像、例えば、顔画像G4が顔を向けて微笑み、視線を送っている。また、顔画像G5が、顔画像G2に対して、顔を上向きに上げて、うらやむような視線を送っている。また、顔画像G8およびG9も顔画像G2の方向に視線を向けている。一方、図10では、顔画像G4、G5、G8、G9以外は、顔画像G2が選択対象とされたことに対して、反応を見せていない。このような反応の相違によって、複数の顔画像同士の親近関係を表現できる。このように、ゲーム装置10は、顔画像がユーザと特定の関係ある場合、例えば、複数の友人グループに属するような場合など、実世界の人と人との親密さの関係をゲーム装置10が表現する仮想の世界に持ち込み、描写することを可能としている。
【0135】
<各種データの一例>
図11は、画像処理プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図である。
【0136】
なお、ゲーム装置10の処理を実行するためのプログラムは、ゲーム装置10に内蔵されるメモリ(例えば、データ保存用内部メモリ35)、外部メモリ45、または、データ保存用外部メモリ46に含まれており、ゲーム装置10の電源がオンになったときに、内蔵メモリから、または外部メモリI/F33やデータ保存用外部メモリI/F34を介して外部メモリ45またはデータ保存用外部メモリ46からメインメモリ32に読み出されて、CPU311によって実行される。
【0137】
図11において、メインメモリ32には、内蔵メモリ、外部メモリ45、またはデータ保存用外部メモリ46から読み出されたプログラムや画像処理において生成される一時的なデータが記憶される。図11において、メインメモリ32のデータ記憶領域には、操作データDa、実カメラ画像データDb、実世界画像データDc、境界面データDd、奥壁画像データDe、敵オブジェクトデータDf、弾オブジェクトデータDg、得点データDh、動きデータDi、仮想カメラデータDj、レンダリング画像データDk、および表示画像データDl、照準カーソル画像データDm、管理データDn、セーブデータ記憶域Do等が格納される。また、メインメモリ32のプログラム記憶領域には、画像処理プログラムを構成する各種プログラム群Paが記憶される。
【0138】
《操作データDa》
操作データDaは、ユーザがゲーム装置10を操作した操作情報を示すデータである。操作データDaは、操作子データDa1および角速度データDa2を含んでいる。操作子データDa1は、ユーザがゲーム装置10の操作ボタン14やアナログスティック15等の操作子を操作したことを示すデータである。角速度データDa2は、角速度センサ40によって検出された角速度を示すデータである。例えば、角速度データDa2には、角速度センサ40が検出したx軸周りの角速度を示すx軸周り角速度データ、y軸周りの角速度を示すy軸周り角速度データ、およびz軸周りの角速度を示すz軸周り角速度データが含まれる。例えば、操作ボタン14やアナログスティック15からの操作データや角速度センサ40からの角速度データは、ゲーム装置10が処理する時間単位(例えば、1/60秒)毎に取得され、当該取得に応じて操作子データDa1および角速度データDa2に格納されて更新される。
【0139】
なお、後述するゲーム処理(例えば、図20A以下の処理等)では、操作子データDa1および角速度データDa2が処理周期である1フレーム毎にそれぞれ更新される例を用いて説明するが、他の処理周期で更新されてもかまわない。例えば、操作ボタン14やアナログスティック15等の操作子をユーザが操作したことを検出する周期毎に操作子データDa1を更新し、当該更新された操作子データDa1を処理周期毎に利用する態様でもかまわない。また、角速度センサ40の角速度検出周期毎に角速度データDa2を更新し、当該更新された角速度データDa2を処理周期毎に利用する態様でもかまわない。この場合、操作子データDa1や角速度データDa2を更新するそれぞれの周期と、処理周期とが異なることになる。
【0140】
《実カメラ画像データDb》
実カメラ画像データDbは、外側撮像部23および内側撮像部24のいずれかが撮像した実カメラ画像を示すデータである。後述する処理の説明においては、実カメラ画像を取得するステップにおいて外側撮像部23および内側撮像部24のいずれかが撮像した実カメラ画像を用いて、実カメラ画像データDbを更新する態様を用いる。なお、外側撮像部23または内側撮像部24が撮像し、撮像された実カメラ画像を用いて実カメラ画像データDbを更新する周期は、ゲーム装置10における処理の単位時間(例えば、1/60秒)と同じでもいいし、当該単位時間より短い時間でもかまわない。ゲーム装置10における処理の周期より実カメラ画像データDbを更新する周期が短い場合、後述する処理とは独立して適宜実カメラ画像データDbを更新してもかまわない。この場合、後述する実カメラ画像を取得するステップにおいて、実カメラ画像データDbが示す最新の実カメラ画像を常に用いて処理すればよい。以下、本実施形態では、実カメラ画像データDbは、外側撮像部23(例えば、外側左撮像部23a)により撮像した実カメラ画像を示すデータであるとする。
【0141】
《実世界画像データDc》
後述するゲーム処理、例えば、図14のステップ18のゲーム実行の処理、さらに具体的には、図20A以降に示す処理では、ゲーム装置10の実カメラ(外側撮像部23または内側撮像部24)が撮像した実カメラ画像をテクスチャマッピングする境界面3が導入される。実世界画像データDcは、ゲーム装置10の実カメラ(外側撮像部23または内側撮像部24)が撮像した実カメラ画像を用いて、境界面3上に存在しているように見える実世界画像を生成するためのデータである。後述する第1の描画方法では、例えば、実世界画像データDcは、実世界画像を境界面(仮想カメラの表示範囲のスクリーンオブジェクト)に貼り付けるための実カメラ画像のテクスチャデータを含んでいる。また、後述する第2の描画方法では、例えば、実世界画像データDcは、実世界画像を生成するための平面ポリゴンのデータ、当該平面ポリゴンにマッピングするための実カメラ画像のテクスチャデータ、および当該平面ポリゴンの仮想空間上の位置(後述する実世界描画用カメラからの位置)を示すデータ等を含んでいる。
【0142】
《境界面データDd》
境界面データDdは、上記実世界画像データDcと合わせて、境界面3上に存在しているように見える実世界画像を生成するためのデータである。第1の描画方法では、例えば、境界面データDdは、スクリーンオブジェクトに関するデータであり、境界面3を構成する各点の状態(例えば、開口の有無)を示す開口判定用データ(後述するαテクスチャのデータに相当する)、境界面3の仮想空間上の配置位置(境界面3の仮想空間上の座標)を示すデータ等を含んでいる。また、第2の描画方法では、例えば、境界面データDdは、上記実世界画像の平面ポリゴンに開口を表現するためのデータであり、境界面3を構成する各点の状態(例えば、開口の有無)を示す開口判定用データ(後述するαテクスチャのデータに相当する)、境界面3の仮想空間上の配置位置(境界面3の仮想空間上の座標)を示すデータ等を含んでいる。境界面3の仮想空間上の配置位置を示すデータは、例えば、上記球体表面の条件式(仮想空間上における球体表面を定義する関係式)であり、境界面3の仮想空間上の存在範囲を示す。
【0143】
開口状態を示す開口判定用データは、例えば、各点のアルファ値(不透明度)を設定可能な2次元(例えば、2048ピクセル×384ピクセル等の矩形形状)のテクスチャデータである。アルファ値は、“0”が最小で“1”が最大の、“0”から“1”までの値である。アルファ値は、“0”で透明を示し、“1”で不透明を示す。開口判定用データは、開口判定用データに「0」が格納されている位置は開口状態であり、「1」が格納されている位置は開口ではない状態であることを示すことができる。アルファ値は、例えば、ゲーム装置10内部で生成されるゲーム世界の画像、あるいは上側LCD22における画素または複数の画素からなる画素ブロック単位に設定することができる。本実施形態では、非開口領域には、「0を超える1未満の所定値(本実施形態においては0.2が設定される)」が格納される。このデータは、実世界画像に適用するときには使用されない。実世界画像に適用する場合、開口判定用データに格納されたアルファ値「0.2」は「1」として取り扱われる。なお、当該アルファ値「0.2」は、前述の敵オブジェクトEOの影ESの描画時に使用される。ただし、当該アルファ値の設定、およびアルファ値の取り得る値の範囲は、本発明の画像処理プログラムを限定するものではない。
【0144】
本実施形態における画像処理プログラムは、第1の描画方法では、この開口判定用データのうち仮想カメラの視空間の範囲に対応する領域と、境界面3に貼り付けられる実世界画像のテクスチャの色情報(画素値)とを掛け算することによって、開口を有する実世界画像を生成することができる。また、第2の描画方法では、この開口判定用データのうち仮想世界描画用カメラの視空間の範囲に対応する領域と、実世界画像(具体的には、上記実世界画像データDcを用いて後述する平行投影によりレンダリングされた実カメラ画像のレンダリング画像データ)の色情報(画素値)とを掛け算することによって、開口を有する実世界画像を生成することができる。なぜなら、開口位置に格納されたアルファ値「0」と当該位置における実世界画像の色情報とが掛け算されることによって、実世界画像の色情報の値が「0」(完全に透明な状態)となるからである。
【0145】
なお、第1の描画方法では、後述するとおり、当該開口判定用データが適用された実世界画像のオブジェクトを含んだ各仮想オブジェクトの仮想空間画像がレンダリングされることにより上側LCD22に表示される画像が生成される。
【0146】
また、第2の描画方法では、具体的には、後述するとおり、当該開口判定用データを考慮して仮想空間画像がレンダリングされる。すなわち、開口判定用データに基づいて、各仮想オブジェクトの境界面に対する優先度(実世界画像に対する優先度)が判定され、各仮想オブジェクトがレンダリングされることにより仮想空間画像として生成される。そして、このようにして生成された実世界画像と仮想空間画像とを合成することで、上側LCD22に表示される画像が生成される。
【0147】
また、本実施形態における画像処理プログラムでは、境界面3の形状は球体表面である(図20Aおよび図20B参照)。そして、本実施形態における開口判定用データの形状は、矩形形状としてよい。この矩形形状の開口判定用データを、図20Aおよび図20Bで図示したような球体表面の中央部にマッピングすることにより、開口判定用データの各点と境界面の各点とを対応させることができる。
【0148】
なお、本実施形態において開口判定用データは図20Aで示す球体表面の中央部に対応するデータのみであるため、仮想カメラ(第2の描画方法では、仮想世界描画用カメラ)の向きによっては、開口判定用データが存在しない場合がある。このように開口判定用データが存在しない場合は、実世界画像はそのまま描画される。すなわち、α値としては「1」が設定されているとして描画される。
【0149】
境界面3上に作成される開口の画像処理については後述する。
【0150】
《奥壁画像データDe》
奥壁画像データDeは、第2空間2に存在する奥壁BWに関するデータである。例えば、奥壁画像データDeは、奥壁BWの画像を生成するための画像データ、および当該奥壁BWを定義するポリゴンモデルの仮想空間上の位置を示すデータ等を含んでいる。
【0151】
奥壁BWを定義するポリゴンモデルは、典型的には、仮想カメラ(第2の描画方法では、仮想世界描画用カメラ)の位置から伸びる鉛直軸を中心として、図20Aで示す球体の半径より大きな半径を有し、図20Aで示す球体の中央部と同じ形状のモデルである。すなわち、奥壁BWを定義するモデルは、境界面3を内含する。また、境界面3に形成される開口予定位置の背後に配置される平面ポリゴンであってもよい。また、境界面3に開口が形成される毎に、第2空間2においてその開口の投影面を定義する平面ポリゴンが配置されるようにしてもよい。
【0152】
奥壁BWのポリゴンモデルに貼り付けられる画像データ(テクスチャ)は、任意でよい。もっとも、この画像データは、実世界画像の背後に存在する別の空間(第2空間2)を表現するため、宇宙空間,空,水中を示す画像のような非現実を表現する画像であると、プレイヤに対して、現実空間の向こうに非現実な空間があるかのような不思議な感覚を喚起できることで好ましい。例えば、本実施形態のゲームを部屋の中でプレイしているときには、部屋の向こうに非現実な空間があるかのような感覚を与えることができる。また、奥壁のテクスチャは、砂漠、荒野のような普段目にすることのない風景を表現するものであってもよい。このように、奥壁BWのテクスチャの選択によって、ゲーム世界の背景として表現された現実画像の背後に潜む別世界に対する所望のイメージをプレイヤに知らしめることができる。
【0153】
また、例えば、当該画像データが、宇宙の画像等の繰り返し表現を用いることができる画像であれば、画像データ(テクスチャ)のデータサイズを小さくすることができる。また、当該画像データが、このような画像であれば、仮想空間上の奥壁BWの描画されるべき位置を特定しなくても、奥壁BWの画像を描画することができる。なぜなら、繰り返し表現を用いることができる画像であれば、描画される画像は位置に依らない(ポリゴンモデル全体に繰り返しパターンを表現できる)からである。
【0154】
なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、当該画像データにはアルファ値が定められているものとする。本実施形態では、当該画像データに定められているアルファ値は「1」であるとする。
【0155】
《敵オブジェクトデータDf》
敵オブジェクトデータDfは、敵オブジェクトEOに関するデータであり、実体データDf1、シルエットデータDf2、および開口形状データDf3を含んでいる。
【0156】
実体データDf1は、敵オブジェクトEOの実体を描画するためのデータであり、例えば、敵オブジェクトEOの実体の3次元形状を定義したポリゴンモデルと、当該ポリゴンモデルにマッピングするためのテクスチャデータである。当該テクスチャデータは、例えば、ゲーム装置10の各撮像部で撮像したユーザ等の顔写真等であってもよい。なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、当該テクスチャデータにはアルファ値が定められているものとする。本実施形態では、当該テクスチャデータに定められているアルファ値は「1」であるとする。
【0157】
シルエットデータDf2は、第2空間2に存在する敵オブジェクトEOの影を実世界画像上に半透明で描画するためのデータであり、ポリゴンモデルとそのポリゴンモデルに貼り付けられるテクスチャデータとを含む。例えば、このシルエットモデルは、前述したように、8枚の平面ポリゴンを含み、第2空間2に存在する敵オブジェクトEOの位置と同じ位置に配置される。このテクスチャが貼り付けられたシルエットモデルを仮想世界描画用カメラから見て実世界画像上に半透明などで描画することにより、第2空間2に存在する敵オブジェクトEOの影を表現できる。また、シルエットデータDf2のテクスチャデータは、例えば、図27Aおよび図27Bに示すように、敵オブジェクトEOを各方向からみた画像であってもよい(例えば、8枚の平面ポリゴン)。さらに、当該画像は、敵オブジェクトEOのシルエットモデルを簡素化した画像であってもよい。なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、シルエットモデルに貼り付けられるテクスチャデータにはアルファ値が定められているものとする。本実施形態では、当該テクスチャデータに定められているアルファ値は、影画像部分について「1」であり、影画像がない部分(周囲の部分)について「0」であるとする。
【0158】
開口形状データDf3は、敵オブジェクトEOが第1空間1と第2空間2とを往来する際に境界面3上に生成する開口の形状に関するデータである。本実施形態では、開口形状データDf3は、開口を生成する境界面3上の位置に対応する開口判定用データの位置におけるアルファ値を「0」にするためのデータである。例えば、開口形状データDf3は、生成する開口の形状に合わせた、アルファ値「0」のテクスチャデータである。なお、本実施形態では、開口判定用データに対して、上記敵オブジェクトEOが境界面3を通った位置に対応する箇所を中心として、当該開口形状データDf3の形状分だけアルファ値「0」に設定する。敵オブジェクトEOが境界面3上に開口を生成する際の画像処理については後述する。
【0159】
《弾オブジェクトデータDg》
弾オブジェクトデータDgは、プレイヤの攻撃操作に応じて発射される弾オブジェクトBOに関するデータである。例えば、弾オブジェクトデータDgは、弾オブジェクトBOを描画するためのポリゴンモデルおよび弾画像(テクスチャ)データ、弾オブジェクトBOの配置方向や配置位置を示すデータ、および弾オブジェクトBOの移動速度や移動方向(例えば、移動速度ベクトル)を示すデータ等を含んでいる。なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、弾画像データにはアルファ値が定められているものとする。本実施形態では、弾画像データに定められているアルファ値は「1」であるとする。
【0160】
《得点データDh》
得点データDhは、敵オブジェクトEOが登場するゲームの得点を示すデータである。例えば、上述のとおり、ゲームの得点は、攻撃操作によって敵オブジェクトEOを退治することによって加点され、敵オブジェクトEOがユーザの位置(つまり、仮想空間上における仮想カメラの配置位置)に到達することによって減点される。
【0161】
《動きデータDi》
動きデータDiは、実空間におけるゲーム装置10の動きを示すデータである。一例として、ゲーム装置10の動きは、角速度センサ40によって検出された角速度によって算出される。
【0162】
《仮想カメラデータDj》
仮想カメラデータDjは、仮想空間に設置される仮想カメラに関するデータである。第1の描画方法では、例えば、仮想カメラデータDjは、仮想カメラの仮想空間上の配置方向や配置位置を示すデータを含んでいる。また、第2の描画方法では、例えば、仮想カメラデータDjは、実世界描画用カメラの仮想空間上の配置方向や配置位置を示すデータと、仮想世界描画用カメラの仮想空間上の配置方向や配置位置を示すデータのそれぞれを含む。そして、例えば、第1の描画方法における仮想カメラおよび第2の描画方法における仮想世界描画用カメラの仮想空間上の配置方向や配置位置を示すデータは、動きデータDiが示すゲーム装置10の動き(角速度)に応じて変化する。さらに、仮想カメラデータDjは、仮想カメラの画角(描画範囲)データを含んでいる。これによって、第1の描画方法における仮想カメラおよび第2の描画方法における仮想世界描画用カメラの位置および向きの変化に応じて、境界面3上の描画範囲(描画位置)が変化する。
【0163】
《レンダリング画像データDk》
レンダリング画像データDkは、後述する処理によりレンダリングされた画像に関するデータである。
【0164】
第1の描画方法では、実世界画像を仮想空間上のオブジェクトとしてレンダリングするため、レンダリング画像データDkは、仮想空間のレンダリング画像データを含む。仮想空間のレンダリング画像データは、敵オブジェクトEO、弾オブジェクトBO、実世界画像がテクスチャとして貼られた境界面3(スクリーンオブジェクト)、奥壁BWが配置された仮想空間を仮想カメラにより透視投影でレンダリングすることによって得られる仮想世界画像を示すデータである。
【0165】
他方、第2の描画方法では、実世界画像と仮想世界画像を別々の仮想カメラでレンダリングするため、レンダリング画像データDkは、実カメラ画像のレンダリング画像データおよび仮想空間のレンダリング画像データを含んでいる。実カメラ画像のレンダリング画像データは、実カメラ画像のテクスチャがマッピングされた平面ポリゴンを、実世界画像描画用カメラにより平行投影でレンダリングすることによって得られる実世界画像を示すデータである。仮想空間のレンダリング画像データは、敵オブジェクトEO、弾オブジェクトBO、境界面3、奥壁BWが配置された仮想空間を仮想世界描画用カメラにより透視投影でレンダリングすることによって得られる仮想世界画像を示すデータである。
【0166】
《表示画像データDl》
表示画像データDlは、上側LCD22に表示される表示画像を示すデータである。第1の描画方法では、例えば、上側LCD22に表示される表示画像は、仮想空間のレンダリング処理により生成される。また、第2の描画方法では、例えば、上側LCD22に表示される表示画像は、上記カメラ画像のレンダリング画像データと仮想空間のレンダリング画像データとを後述する方法で合成することによって生成される。
【0167】
《照準カーソル画像データDm》
照準カーソル画像データDmは、上側LCD22に表示される照準カーソルALの画像データである。当該画像データは、任意のデータでよい。
【0168】
なお、本実施形態では、描画に用いられる各オブジェクトに関するデータ(境界面データDd、奥壁画像データDe、実体データDf1、シルエットデータDf2、弾画像データ)は、描画の優先度を定める優先度情報を含んでいる。本実施形態では、当該優先度情報は、アルファ値が用いられているとする。当該アルファ値と画像処理の関係については後述する。
【0169】
また、本実施形態では、描画に用いる各オブジェクトに関するデータは、核オブジェクト間でデプス判定を行うか否かを示すデータが含まれている。当該データは、上述のとおり、敵オブジェクトEO、弾オブジェクトBO、半透明の敵オブジェクト、エフェクトオブジェクト、スクリーンオブジェクト(境界面3)との間は、互いにデプス判定が有効となるように設定されている。また、当該データは、「影用の平面ポリゴン(シルエットデータDf2)と敵オブジェクトEO(実体データDf1)の間」「影用の平面ポリゴン(シルエットデータDf2)と弾オブジェクトBOの間」「影用の平面ポリゴン(シルエットデータDf2)と半透明の敵オブジェクトの間」「影用の平面ポリゴン(シルエットデータDf2)とエフェクトオブジェクトの間」は、互いにデプス判定が有効となるように設定されている。さらに、当該データは、影用の平面ポリゴン(シルエットデータDf2)とスクリーンオブジェクト(境界面データDd)との間は、デプス判定が無効となるように設定されている。
【0170】
《管理データDn》
管理データDnは、収集した顔画像等、ゲーム装置10が処理するデータ、あるいは、ゲーム装置10が蓄積したデータ等を管理するためのデータである。管理データDnは、例えば、顔画像管理情報Dn1、顔画像属性集計表Dn2等を含む。顔画像管理情報Dn1には、個々の顔画像のデータの記憶先(例えば、メインメモリ32等のアドレス)、顔画像の取得元(例えば、内側撮像部24、外側撮像部23)、顔画像の属性(例えば、顔画像の被写体の性別、年齢等)、顔画像と関連する他の顔画像の情報等が格納される。また、顔画像属性集計表Dn2には、ユーザが現在収集済みの顔画像の属性ごとの収集点数が格納される。例えば、収集した顔画像の被写体を性別、年代等で分類したときの、それぞれの分類ごとの収集実績値が格納される。顔画像管理情報Dn1、顔画像属性集計表Dn2のデータ構造例については後述する。
【0171】
《セーブデータ記憶域Do》
セーブデータ記憶域Doは、情報処理部31が、ゲームプログラム等の画像処理プログラムを実行するときに、情報処理部31が処理対象とするデータ、情報処理部31が処理した結果のデータ等を保存する領域である。一例としては、本実施形態では、ゲーム装置10が、内側撮像部24、外側撮像部23、無線通信モジュール36、ローカル通信モジュール37等を介して、ゲーム装置10が取得した顔画像のデータが保存される。本実施形態では、例えば、ゲーム装置10が取得した顔画像がメインメモリ32に一時的に記憶された状態で、情報処理部31は第1のゲームを実行する。そして、ユーザの操作にしたがって、ユーザが第1のゲームで成功したと判断されたときに、情報処理部31は、メインメモリ32に一時的に記憶された顔画像をセーブデータ記憶域Doに保存する。セーブデータ記憶域Doに保存された顔画像は、以降のゲーム処理等で利用可能となる。
【0172】
セーブデータ記憶域Doの構造に特に限定はない。例えば、セーブデータ記憶域Doは、通常のメモリと同一の物理アドレス空間におかれて、情報処理部31からアクセスできるようにしてもよい。また、例えば、情報処理部31が、必要なタイミングで所定のブロック単位、あるいはページ単位で確保(割付、アロケートなどともいう)可能としておいてもよい。また、例えば、セーブデータ記憶域Doは、コンピュータのファイルシステムと同様に、ブロックを接続するポイントのような管理情報で接続される構造としてもよい。
【0173】
さらに、セーブデータ記憶域Doは、例えば、ゲーム装置10で実行されるプログラムごとに個別の領域が確保されるようにしてもよい。したがって、一のゲームプログラムがメインメモリ32にローディングされたときに、情報処理部31は、ゲームプログラムの管理情報などを基に、セーブデータ記憶域Doにアクセス(データを入出力)するようにしてもよい。
【0174】
さらにまた、一のプログラムのセーブデータ記憶域Doが、他のプログラムを実行中の情報処理部31からアクセス可能としてもよい。このようにすることで、一のプログラムで処理したデータを他のプログラムに引き渡すことを可能としてもよい。例えば、後述する第1のゲームを実行された結果として、セーブデータ記憶域Doに保存された顔画像のデータを第2のゲームを実行中の情報処理部31が読み出して、キャラクタオブジェクトを作成できるようにしてもよい。なお、セーブデータ記憶域Doは、第2記憶領域の一例である。
【0175】
<各種データの構造>
図12および図13を参照して、ゲーム装置10内で、顔画像を管理するデータ構造の一例を説明する。
【0176】
図12は、ゲーム装置10に保存された顔画像を管理する顔画像管理情報Dn1のデータ構造の一例である。ゲーム装置10は、保存した顔画像のデータを顔画像管理情報Dn1に記録することで、例えば、図7図8のような形式で、顔画像の一覧を上側LCD22の画面などに表示できるようになる。顔画像管理情報Dn1は、例えば、顔画像ごとに1レコード用意される情報として作成される。顔画像管理情報Dn1は、例えば、データ保存用内部メモリ35、データ保存用外部メモリ46などに保存される。図12で、レコード1により、レコードの要素を例示する。また、図12では、レコード2以降の詳細は省略している。また、情報処理部31は、例えば、図示しないが、顔画像管理情報Dn1の総レコード数、すなわち、取得した顔画像の総数をデータ保存用内部メモリ35、データ保存用外部メモリ46などに保存しておけばよい。
【0177】
図12の例では、顔画像管理情報Dn1は、例えば、顔画像識別情報、顔画像データのアドレス、顔画像の取得先、性別の推定、年齢の推定、関連顔画像情報1−N等を有している。ただし、図12は顔画像管理情報Dn1の一例であり、顔画像管理情報が図12に例示された要素に限定される訳ではない。
【0178】
顔画像識別情報は、保存された顔画像をユニークに識別する情報である。顔画像識別情報は、例えば、通し番号でもよい。
【0179】
顔画像データのアドレスは、例えば、顔画像のデータが格納されるデータ保存用内部メモリ35あるいはデータ保存用外部メモリ46等のアドレスである。ただし、例えば、OS(オペレーティングシステム)によってファイルシステムが構築されている記憶媒体に顔画像データが格納される場合には、顔画像データのアドレスとして、ファイルシステム中のパス名、ファイル名などを設定するようにしてもよい。
【0180】
顔画像の取得元は、例えば、顔画像を取得した撮像装置を識別する情報である。顔画像の取得元としては、例えば、内側撮像部24、外側左撮像部23a、および外側右撮像部23bを識別する情報が設定される。ただし、顔画像取得のために、外側左撮像部23aおよび外側右撮像部23bの両方が使用された場合には、両方を示す情報が設定される。また、例えば、内側撮像部24、外側左撮像部23a、および外側右撮像部23b以外に、例えば、ゲーム装置10外の他の撮像装置で顔画像が取得された場合には、その旨を示す情報(例えば「他」)が設定される。ゲーム装置10外の他の撮像装置で顔画像が取得される場合とは、例えば、外部メモリインターフェイス33、無線通信モジュール36、ローカル通信モジュール37等を通じて、ゲーム装置10と同様の他のゲーム装置10で撮像した画像を取得した場合などである。また、外部メモリインターフェイス33、無線通信モジュール36等を通じて、ゲーム装置10以外のカメラで得られた画像、スキャナで得られた画像、ビデオ機器からの映像等の画像を取得した場合も含まれる。
【0181】
性別の推定は、顔画像が男性か女性かを示す情報である。性別の推定は、例えば、後述する他の実施形態に示す処理したがって実行すればよい。年齢推定は、顔画像の人の年齢を示す情報である。年齢の推定は、例えば、後述する他の実施形態に示す処理したがって実行すればよい。
【0182】
関連画像の識別情報1−Nは、それぞれ、当該顔画像と関連する他の顔画像を示す情報である。例えば、関連画像の識別情報1−Nは、最大N個の他の関連する顔画像の顔画像識別情報を設定すればよい。関連する他の顔画像は、例えば、GUIを通じたユーザ操作によって、指定されるようにしてもよい。例えば、新たに、顔画像が取得されたときに、取得された顔画像と関連する顔画像1以上をユーザが操作ボタン14等によって選択対象とした上で、関連画像設定を指示するGUIの操作を情報処理部31が検出するようにすればよい。あるいは、単に、本人、友人、同僚、他人等、ゲーム装置10が用意した分類によって、取得された顔画像を分類するようにしてもよい。そして、同一の分類に属する顔画像を関連画像の識別情報1−Nを用いてリンクするようにしてもよい。ただし、ゲーム装置10が用意した分類で顔画像を分類する場合には、関連顔画像の識別情報1−Nのエントリを用意する代わりに、単に、「顔画像の分類」という要素を設け、本人、友人、同僚、他人等設定するようにしてもよい。また、図12では、関連画像の識別情報1からNとして、固定数で示したが、Nの数を可変数としてもよい。その場合には、設定済みの数Nを顔画像管理情報Dn1に保持するようにすればよい。さらに、例えば、関連する顔画像の間で、顔画像管理情報Dn1のレコードとレコードとをポインタのチェーンで接続するようにしてもよい。
【0183】
図13に、顔画像属性集計表Dn2のデータ構造例を示す。顔画像属性集計表Dn2は、取得済みの顔画像を属性によって分類し、分類された画像数を集計した表である。以下、顔画像属性集計表Dn2を単に集計表ともいう。情報処理部31は、例えば、データ保存用内部メモリ35、データ保存用外部メモリ46等に、図13の集計表を保存している。図13の例では、集計表は、性別(男性、女性)、年齢層(10歳未満、10代、20代、30代、40代、50代、60代、70以上)との組み合わせによって分類された各行に、顔画像取得数を記憶している。すなわち、図13の表の各行は、性別、年齢、および顔画像取得数という要素を含む。顔画像取得数には、取得済みの顔画像が分類され、その取得数が集計されている。ただし、顔画像の分類、あるいは属性が、図13に例示した性別、あるいは年齢層に限定されるわけではない。
【0184】
<処理フローの例>
図14から図19により、ゲーム装置10の情報処理部31で実行される画像処理プログラムによる動作例を説明する。まず、ゲーム装置10の電源(電源ボタン14F)がONにされると、CPU311によってブートプログラム(図示せず)が実行され、これにより内蔵メモリまたは外部メモリ45やデータ保存用外部メモリ46に格納されているプログラムがメインメモリ32においてCPU311が実行可能な形式で展開される。ここで、CPU311が実行可能な形式とは、例えば、CPU311の機械命令が所定の処理順で記述され、メインメモリ32の適切なアドレスに配置され、CPU311の機械命令を処理する制御部から読み出し可能な形式をいう。実行可能な形式で展開することを単にロードするともいう。なお、図14図19においては、第1の実施形態に直接関連しない処理についての記載を省略する。
【0185】
図14は、情報処理部31による動作の一例を示すフローチャートである。情報処理部31は、電源ONの後の一連の処理の後、ユーザの操作、例えば、下側LCD12に表示されるグラフィカルユーザインターフェイス(以下、GUI)、例えば、メニューあるいは、アイコンなどのグラフィックオブジェクトに対するタッチパネル13あるいは操作ボタン14を通じた操作を検出すると、図14の処理を実行する。以下、GUIに対するタッチパネル13あるいは操作ボタン14を通じたユーザの操作を単に、「GUIに対する操作」という。図14の例では、情報処理部31は、ユーザの操作待ちとなる(ステップ8)。以下、図面中では、「ステップ」を「S」と略称する。
【0186】
次に、ユーザの操作を検出すると、情報処理部31は、ステップ9以下の処理を実行する。例えば、ユーザのGUIに対する操作が、「内側撮像部24による顔画像の取得」の指示である場合(ステップ9でYesの場合)、情報処理部31は、顔画像取得処理1を実行する(ステップ10)。ここで、「内側撮像部24による顔画像の取得」の指示とは、例えば、GUI等を通じたユーザに操作によって内側撮像部24を用いた取得の指示をいう。その後、情報処理部31は、制御をステップ19に進める。顔画像取得処理1については、図15を参照して後述する。一方、ユーザのGUIに対する操作が「内側撮像部24による顔画像の取得」の指示でない場合(ステップ9でNoの場合)には、情報処理部31は、制御をステップ11に進める。
【0187】
次に、例えば、ユーザのGUIに対する操作が、「外側撮像部23による顔画像の取得」の指示である場合(ステップ11でYesの場合)、情報処理部31は、顔画像取得処理2を実行する(ステップ12)。その後、情報処理部31は、制御をステップ19に進める。ここで、「外側撮像部23による顔画像の取得」の指示とは、例えば、GUI等を通じたユーザに操作によって外側撮像部23を用いた取得の指示をいう。顔画像取得処理2については、図16を参照して後述する。一方、ユーザのGUIに対する操作が「外側撮像部23による顔画像の取得」の指示でない場合(ステップ11でNoの場合)には、情報処理部31は、制御をステップ13に進める。
【0188】
次に、ユーザのGUIに対する操作が収集した顔画像の一覧表示の指示である場合(ステップ13でYesの場合)、情報処理部31は、一覧表示処理を実行する(ステップ14)。その後、情報処理部31は、制御をステップ19に進める。一覧表示処理については、図17を参照して後述する。一方、ユーザのGUIに対する操作が収集した顔画像の一覧表示の指示でない場合(ステップ13でNoの場合)には、情報処理部31は、制御をステップ15に進める。
【0189】
ユーザのGUIに対する操作が配役の決定指示である場合(ステップ15でYesの場合)、情報処理部31は、配役決定処理を実行する(ステップ16)。その後、情報処理部31は、制御をステップ19に進める。配役決定処理については、図18を参照して後述する。一方、ユーザのGUIに対する操作が配役の決定指示でない場合(ステップ15でNoの場合)には、情報処理部31は、制御をステップ17に進める。
【0190】
ユーザの操作がゲームの実行指示である場合(ステップ17でYesの場合)、情報処理部31は、ゲームを実行する(ステップ18)。ステップ18の処理が第2のゲーム処理ステップの一例である。ゲーム装置10は、ステップ16の配役決定処理で作成された敵オブジェクトEO等、様々なキャラクタオブジェクトが登場するゲーム処理を実行する。ゲームの種類に限定はない。例えば、ステップ18で実行されるゲームは、ユーザが配役決定処理で作成された敵オブジェクトEOと戦闘を行うゲームでもよい。この場合に、例えば、ユーザは、ステップ10の顔画像取得処理1、ステップ12の顔画像取得処理2で収集され、ステップ14の一覧表示処理で表示された顔画像の敵オブジェクトEOと戦闘をすることになる。また、例えば、このゲームは、ユーザを象徴するプレイヤオブジェクトが様々な関門、障害等を乗り越えて進む冒険ゲームでもよい。また、このゲームは、歴史上の登場人物が登場する戦争シミュレーション、プレイヤオブジェクトが登場する経営シミュレーション、プレイヤオブジェクトが登場する乗り物等の運転シミュレーション等のゲームでもよい。また、ゲームは、小説の原作をモデルにした、上記キャラクタオブジェクトが登場するノベルゲームでもよい。また、ゲームは、ユーザが物語に登場する主人公や登場人物を操作し、その役割を演じて遊ぶロールプレイングゲーム(RPG)と呼ばれるものでもよい。また、ゲームは、単に、登場するエージェントによってユーザが支援を受けて何らかのトレーニングを行うものでもよい。
【0191】
このようなゲーム処理に登場するキャラクタオブジェクトには、ユーザがステップ10の第1のゲームで成功することにより収集した顔画像が、テクスチャマッピング等の手法により貼り付けられている。したがって、ステップ18で実行されるゲームでは、ユーザ自身が収集した顔画像を含むキャラクタオブジェクトが登場する。このため、様々なキャラクタオブジェクトについて、顔画像という、人、あるいは生物などを象徴する部分の画像を用いることにより、ユーザは、その顔画像の人(あるいは生物)との実世界の関係を反映したゲームを実行できる。例えば、愛情、好意、好感、逆に憎悪などの感情を込めたゲーム処理を実行できるのである。
【0192】
一方、ユーザの操作がゲームの実行指示でない場合(ステップ17でNoの場合)には、情報処理部31は、制御をステップ19に進める。
【0193】
そして、情報処理部31は、処理を終了するか否かを判定する。情報処理部31は、GUIを通じて処理を終了する指示を検出すると、図14の処理を終了する。一方、情報処理部31は、GUIを通じて、終了しない指示(例えば、再実行指示)を検出すると、顔画像管理支援処理1を実行する(ステップ1A)。顔画像管理支援処理1は、例えば、すでに取得済みの顔画像を基に、次に取得する顔画像の属性等に関して、ユーザに情報を提供し、ユーザの顔画像取得を支援する処理である。顔画像管理支援処理1については、図19Aにより、詳細処理例を後述する。その後、情報処理部31は、制御をステップ8に戻す。
【0194】
図15は、顔画像取得処理1(図14のステップ10)の詳細処理の一例を示すフローチャートである。この処理では、情報処理部31は、まず、顔画像管理支援処理2を実行する(ステップ100)。顔画像管理支援処理2は、例えば、すでに取得済みの顔画像を基に、次に取得する顔画像の属性等に関して、ユーザに情報を提供し、ユーザの顔画像取得を支援する処理である。顔画像管理支援処理2の詳細処理例については、図19Bにより後述する。
【0195】
次に、情報処理部31は、顔画像取得処理を実行する(ステップ101)。情報処理部31のCPU311は、画像取得手段の一例として、ステップ101の処理を実行する。
【0196】
情報処理部31は、例えば、内側撮像部24、外側左撮像部23a、および/または外側右撮像部23bを通じて撮像される画像を所定の周期で取り込み、上側LCD22に表示する。この場合の表示周期は、ゲーム装置10における処理の単位時間(例えば、1/60秒)と同じでもいいし、当該単位時間より短い時間でもかまわない。ゲーム装置10の電源がオンとなり画像処理プログラムがロードされた直後、あるいは、図14の処理起動直後の初期状態では、情報処理部31は、例えば、内側撮像部24からの画像を上側LCD22に表示する。なお、下側LCD12には、例えば、内側撮像部24、外側左撮像部23a、および外側右撮像部23bの少なくとも1つ(外側左撮像部23a、外側右撮像部23bの両方を使用する場合も含む)を選択するための撮像部選択GUIが用意されている。図15の処理では、ユーザは、撮像部選択GUIにより自在に使用する撮像部を切り替えることができるものする。以下、初期状態または撮像部選択GUIへの操作によって、撮像に使用されている内側撮像部24、外側左撮像部23a、および/または外側右撮像部23bを単に撮像部ということにする。
【0197】
例えば、内側撮像部24が使用されている場合には、ユーザが上側ハウジング21を開いた状態で、上側ハウジング21の内側面21Bに顔を向けると、上側LCD22には、ユーザの顔が写し出される。そして、ユーザが、例えば、Rボタン14H(またはLボタン14G)を押下すると、情報処理部31は、上側LCD22に写し出された内側撮像部24からの画像をデータとして取得し、メインメモリ32に一時的に記憶する。この時点では、この画像のデータはメインメモリ32上に存在するのみであり、後述するセーブデータ記憶域Doに保存されていない。このメインメモリ32上のデータは、後述のステップ106によるゲームで利用されるのみであり、後述するように、ゲームが成功せずに終了した場合には廃棄される。メインメモリ32が第1データ記憶域の一例である。
【0198】
なお、本実施形態の処理では、ステップ101で取得した顔画像を敵オブジェクトEOの顔面部分等にテクスチャマッピングし、ゲームを実行する。そのため、ステップ101の処理では、撮像部から取得した画像のうち、特に、顔部分を切り出して顔画像を取得することが望ましい。本実施形態では、例えば、以下の処理が実行されるものとする。(1)情報処理部31は、取得された画像中から顔の輪郭を検出する。顔の輪郭は、目の間隔と、目と口の位置関係とから推定する。すなわち、情報処理部31は、目と口の配置から、標準的な顔の寸法を用いて、顔の輪郭と、背景との境界線を認識する。境界線は、例えば、微分処理(輪郭強調)、平均処理(平滑化演算)等の通常の画像処理を組み合わせることで取得できる。なお、顔の輪郭検出の方法は周知の他の方法で行ってもかまわない。(2)情報処理部31は、得られた顔画像を拡大または縮小することによって、敵オブジェクトEOの頭部形状の顔面部の寸法に合わせ込む。この処理によれば、ある程度、寸法にばらつきがある顔画像についても、ゲーム装置10で取得し、敵オブジェクトEOに貼り付けることを可能にする。
【0199】
ただし、本実施形態のゲーム装置10において、顔画像を取得する処理が上記手順に限定される訳ではない。例えば、顔画像を取得する際に、任意距離から、任意の寸法で、画像を取得する代わりに、目標とする寸法の顔画像を撮像部から取得するようにしてもよい。例えば、被写体から得られる顔画像の目と目の距離が、所定画素数の近傍となるように、被写体と距離を確立した上で、取得するようにしてもよい。例えば、情報処理部31が、被写体との距離を誘導すればよい。また、被写体と距離を確立した上で、情報処理部31が、例えば、撮像部の視軸方向に対する被写体の顔の角度を調整するように被写体となる人、あるいは撮像者であるユーザを誘導してもよい。さらに、ユーザが、例えば、Rボタン14H(またはLボタン14G)を押下することによって画像を保存する代わりに、被写体との距離および撮像部の視軸方向に対する顔の角度の調整が完了したと判断できたときに、情報処理部31が、画像を保存するようにしてもよい。例えば、情報処理部31が、上側LCD22に、被写体の顔画像と重畳して、目の位置と、口の位置合わせの目標位置を示すマークを表示してもよい。そして、撮像部から取得した被写体の両目および口の位置が、両目および口に対応する目標位置のマークから所定の許容差の範囲に収まったときに、情報処理部31が、画像をメモリに保存するようにしてもよい。
【0200】
なお、情報処理部31は、ステップ101での顔画像の取得するとき、図13の顔画像属性集計表Dn2の該当する行の顔画像取得数を更新する。該当する行とは、例えば、後述する図19Bのステップ1002で推定された性別、年齢に相当する属性の行をいう。
【0201】
次に、情報処理部31は、ステップ101の処理によって取得された画像を、例えば、上側LCD22に表示する(ステップ102)。
【0202】
次に、情報処理部31は、敵オブジェクトEOの選択処理を実行する(ステップ103)。ここでは、情報処理部31は、ユーザに敵オブジェクトEOの頭部形状の選択を促す。例えば、図9に示したような頭部形状の一覧を表示し、GUIを通じて、ユーザの選択を受け付けるようにすればよい。そして、情報処理部31は、取得された顔画像を敵オブジェクトEOのテクスチャに設定し(ステップ104)、敵オブジェクトEOを生成する(ステップ105)。ステップ105で生成される敵オブジェクトが第1キャラクタオブジェクトの一例である。情報処理部31は、キャラクタオブジェクトを作成する手段の一例として、ステップ105の処理を実行する。
【0203】
そして、情報処理部31は、生成された敵オブジェクトEOを用いたゲームを実行する(ステップ106)。情報処理部31のCPU311は、第1のゲーム処理手段の一例として、ステップ106の処理を実行する。ここで、ゲームの種類は問わない。ゲームは、例えば、敵オブジェクトEOとの戦いを模擬するゲームである。また、ゲームは、例えば、敵オブジェクトEOと得点の多寡を競うゲームであってもよい。そして、ゲームの実行後、情報処理部31は、ユーザがゲームにおいて成功したか否かを判定する(ステップ107)。情報処理部31は、成功または不成功を判定する手段の一例として、ステップ107の処理を実行する。成功とは、例えば、ユーザが、敵オブジェクトEOと戦うゲームにおいて、敵オブジェクトEOに勝利した場合である。また、成功とは、例えば、敵オブジェクトEOと得点の多寡を競うゲームにおいて、ユーザが敵オブジェクトEOよりも多い得点を得た場合である。また、成功とは、例えば、敵オブジェクトEOが設定した障害等をユーザが克服していくゲームで、ユーザがゴールにたどり着いた場合であってもよい。
【0204】
なお、ステップ106のゲームには、ステップ101で取得した顔画像を含むキャラクタオブジェクトの他、過去にすでに収集済みの顔画像を用いたキャラクタオブジェクトを登場させるようにしてもよい。例えば、過去にすでに収集済みの顔画像が、敵オブジェクトEOあるいは味方のオブジェクトに貼り付けられて登場することで、ユーザは、実世界の人間関係等を反映したゲームを行うことができる。
【0205】
ユーザがゲームで成功した場合には、情報処理部31は、前述のステップ101で取得したメインメモリ32上の顔画像のデータを当該ゲームのセーブデータ記憶域Doにこれまでに保存された顔画像データに加えて保存する(ステップ109)。情報処理部31のCPU311は、保存する手段の一例として、ステップ109の処理を実行する。当該ゲームのセーブデータ記憶域Doは、当該ゲームを実行する情報処理部31が書き込みおよび読み出し可能な、例えば、メインメモリ32、データ保存用内部メモリ35、データ保存用外部メモリ46等に構築される記憶領域である。新たな顔画像のデータが当該ゲームのセーブデータ記憶域Doに格納されることにより、当該ゲームを実行する情報処理部31は、上側LCD22の画面に、例えば、図7図8で説明した顔画像の一覧に追加して、新たな顔画像のデータを表示できるようになる。このように、図15の処理によれば、ユーザは、ステップ101で取得した顔画像をゲームのセーブデータ記憶域Doに保存するために、ゲーム(第1のゲーム)を実行する。そのゲームには、例えば、ユーザが現在までにセーブデータ記憶域Doにこれまでに保存された顔画像を用いたキャラクタオブジェクトを登場させることで、ゲーム装置10でゲームを実行するユーザは、実世界の人間関係等を反映しつつ、新たな顔画像を収集し、セーブデータ記憶域Doに追加できるのである。
【0206】
このとき、情報処理部31は、新たに、当該ゲームのセーブデータ記憶域Doに保存された顔画像を管理するため、図12で説明した顔画像管理情報Dn1を生成し、データ保存用内部メモリ35あるいはデータ保存用外部メモリ46に保存する。すなわち、情報処理部31は、新たに顔画像識別情報を生成し、顔画像管理情報Dn1のレコードに設定する。また、新たに、当該ゲームのセーブデータ記憶域Doに保存された顔画像のアドレス等を顔画像データのアドレスに設定する。さらに、顔画像の取得元、性別の推定、年齢の推定、関連する顔画像の識別情報1−Nなどを設定する。
【0207】
さらに、情報処理部31は、セーブデータ記憶域Doに追加した顔画像の属性を推定し、図13で説明した顔画像属性集計表Dn2の集計結果を更新するようにしてもよい。すなわち、情報処理部31は、新たに、セーブデータ記憶域Doに追加した顔画像の性別、年齢等を推定し、顔画像属性集計表Dn2の集計結果に反映するようにしてもよい。
【0208】
さらに、情報処理部31は、例えば、当該ゲームのセーブデータ記憶域Doに格納されたデータの複製、変更、無線通信モジュール36を通じたデータの転送等をユーザに許容するようにしてもよい。そして、情報処理部31は、ユーザのGUIを通じた操作または操作ボタン14を通じた操作にしたがって、セーブデータ記憶域Doに格納された顔画像の保存、複製、変更、転送等を実行すればよい。
【0209】
一方、ユーザがゲームで成功しなかった場合には、情報処理部31は、ゲームを再試行するか否かをユーザに問い合わせる(ステップ108)。例えば、上側LCD22に、再試行するか否かの問い合わせのメッセージを表示し、下側LCD12上のGUI(肯定、否定のアイコン、メニュー等)へのタッチパネル13を通じた操作、あるいは操作ボタン14等による操作により、ユーザの選択を受け付ける。ユーザが再試行を指示した場合には、情報処理部31は、制御をステップ106に戻す。一方、ユーザが再試行を指示しなかった場合には、情報処理部31は、ステップ101で取得された顔画像を廃棄し(ステップ110)、処理を終了する。なお、ゲームに成功しなかった場合に、情報処理部31は、ステップ108での再試行の指示を待たずにステップ101で取得した顔画像を廃棄するようにしてもよい。
【0210】
以下、図16を参照して、顔画像取得処理2(図14のステップ12)の詳細処理例について説明する。この処理では、顔画像取得処理において、2つの外側撮像部23(外側左撮像部23aおよび外側右撮像部23b)よりも先に内側撮像部24による顔画像取得をするように、ユーザを誘導する処理例を説明する。ゲーム装置10がユーザに内側撮像部24による顔画像取得を先に実行させるのは、内側撮像部24による顔画像取得によって、例えば、ゲーム装置10の持ち主等を明確化し、ゲーム装置10の他人による使用を制限できる可能性を高めるためである。
【0211】
図16により、ゲーム装置10の情報処理部31で実行される画像処理プログラムによる動作例を説明する。この処理では、情報処理部31は、まず、内側撮像部24による顔画像取得が済みか否かを判定する(ステップ121)。内側撮像部24による顔画像取得済みか否かは、例えば、図12に示した顔画像管理情報Dn1により、顔画像の取得先として、内側撮像部24が設定されているレコードがあるか否かによって判定すればよい。また、例えば、ゲーム装置10に、内側撮像部24によるゲーム装置10の持ち主の顔画像をゲーム装置10に登録する機能が設けられている場合には、持ち主の顔画像が登録済みか否かで判定してもよい。
【0212】
内側撮像部24による顔画像が取得済みでない場合(ステップ121でNoの場合)には、情報処理部31は、ユーザに対して内側撮像部24による顔画像取得処理を先に実行するように促し(ステップ124)、当該サブルーチンによる処理を終了する。より具体的には、例えば、「ゲーム装置10では内側撮像部24による顔画像が取得済みでないと外側撮像部23による顔画像取得処理が実行できない」旨のメッセージを上側LCD22に表示する。あるいは、情報処理部31は、持ち主の顔画像をまず登録することをユーザに要求するようにしてもよい。
【0213】
一方、内側撮像部24による顔画像取得済みの場合(ステップ121でYesの場合)には、情報処理部31は、顔画像管理支援処理3を実行する(ステップ122)。顔画像管理支援処理3については、図19Cを参照して後述する。そして、情報処理部31は、外側撮像部23による顔画像取得処理を実行する(ステップ123)。例えば、外側撮像部23が使用されている場合には、上側ハウジング21を開いた状態で、ユーザが上側ハウジング21の外側面21Dを他の人物の顔に向けると、上側LCD22には当該他の人物の顔が写し出される。そして、ユーザが、例えば、Rボタン14H(またはLボタン14G)を押下すると、情報処理部31は、上側LCD22に写し出された外側撮像部23からの画像をデータとして取得し、メインメモリ32に一時的に記憶する。この時点では、この画像のデータはメインメモリ32上に存在するのみであり、セーブデータ記憶域Doに保存されていない。このメインメモリ32上のデータは、後述のステップ129によるゲームで利用されるのみであり、後述するように、ゲームが成功せずに終了した場合には廃棄される。
【0214】
なお、本実施形態の処理では、ステップ123で取得した顔画像も敵オブジェクトEOの顔面部分等にテクスチャマッピングし、ゲームを実行することが可能である。そのため、ステップ123の処理では、上記ステップ101と同様の処理によって、撮像部から取得した画像のうち、特に、顔部分を切り出して顔画像を取得することが望ましい。また、情報処理部31は、ステップ123での顔画像の取得においても、図13の顔画像属性集計表Dn2の該当する行の顔画像取得数を更新する。該当する行とは、例えば、後述する図19Cのステップ1202で推定された性別、年齢に相当する属性の行をいう。
【0215】
次に、情報処理部31は、ステップ123の処理によって取得された画像を、例えば、上側LCD22に表示する(ステップ125)。
【0216】
次に、情報処理部31は、敵オブジェクトEOの選択処理を実行する(ステップ126)。ここでは、情報処理部31は、ユーザに敵オブジェクトEOの頭部形状の選択を促す。例えば、図9に示したような頭部形状の一覧を表示し、GUIを通じて、ユーザの選択を受け付けるようにすればよい。そして、情報処理部31は、取得された顔画像を敵オブジェクトEOのテクスチャに設定し(ステップ127)、敵オブジェクトEOを生成する(ステップ128)。ステップ128で生成される敵オブジェクトも第1キャラクタオブジェクトの一例である。情報処理部31は、キャラクタオブジェクトを作成する手段の一例として、ステップ128の処理を実行する。
【0217】
そして、情報処理部31は、生成された敵オブジェクトEOを用いたゲームを実行する(ステップ129)。情報処理部31のCPU311は、第1のゲーム処理手段の一例として、ステップ129の処理を実行する。上記ステップ129で行われるゲームは、上記ステップ106と同様である。すなわち、上記ステップ129で行われるゲームの種類は様々であり、例えば、敵オブジェクトEOとの戦いを模擬するゲームや、敵オブジェクトEOと得点の多寡を競うゲームが考えられる。そして、ゲームの実行後、情報処理部31は、ユーザがゲームにおいて成功したか否かを判定する(ステップ130)。情報処理部31は、成功または不成功を判定する手段の一例として、ステップ130の処理を実行する。成功とは、例えば、ユーザが、敵オブジェクトEOと戦うゲームにおいて、敵オブジェクトEOに勝利した場合である。また、成功とは、例えば、敵オブジェクトEOと得点の多寡を競うゲームにおいて、ユーザが敵オブジェクトEOよりも多い得点を得た場合である。また、成功とは、例えば、敵オブジェクトEOが設定した障害等をユーザが克服していくゲームで、ユーザがゴールにたどり着いた場合であってもよい。
【0218】
なお、ステップ129で実行するゲームには、ステップ123で取得した顔画像を含むキャラクタオブジェクトの他、過去にすでに収集済みの顔画像を用いたキャラクタオブジェクトを登場させるようにしてもよい。例えば、過去にすでに収集済みの顔画像が、敵オブジェクトEOあるいは味方のオブジェクトに貼り付けられて登場することで、ユーザは、実世界の人間関係等を反映したゲームを行うことができる。
【0219】
ユーザがゲームで成功した場合には、情報処理部31は、前述のステップ123で取得したメインメモリ32上の顔画像のデータを当該ゲームのセーブデータ記憶域Doにこれまでに保存された顔画像データに加えて保存し(ステップ132)、当該サブルーチンによる処理を終了する。情報処理部31のCPU311は、保存する手段の一例として、ステップ132の処理を実行する。新たな顔画像のデータが当該ゲームのセーブデータ記憶域Doに格納されることにより、当該ゲームを実行する情報処理部31は、上側LCD22の画面に、例えば、図7および図8で説明した顔画像の一覧に追加して、新たな顔画像のデータを表示できるようになる。このように、図16の処理によれば、ユーザは、ステップ123で取得した顔画像をゲームのセーブデータ記憶域Doに保存するために、ゲーム(第1のゲーム)を実行する。そのゲームには、例えば、ユーザが現在までにセーブデータ記憶域Doにこれまでに保存された顔画像を用いたキャラクタオブジェクトを登場させることで、ゲーム装置10でゲームを実行するユーザは、実世界の人間関係等を反映しつつ、新たな顔画像を収集し、セーブデータ記憶域Doに追加できるのである。
【0220】
このとき、情報処理部31は、上記ステップ10における顔画像取得処理1と同様に、新たに、当該ゲームのセーブデータ記憶域Doに保存された顔画像を管理するため、図12で説明した顔画像管理情報Dn1を生成し、データ保存用内部メモリ35あるいはデータ保存用外部メモリ46に保存する。すなわち、情報処理部31は、新たに顔画像識別情報を生成し、顔画像管理情報Dn1のレコードに設定する。また、新たに、当該ゲームのセーブデータ記憶域Doに保存された顔画像のアドレス等を顔画像データのアドレスに設定する。さらに、顔画像の取得元、性別の推定、年齢の推定、関連する顔画像の識別情報1−Nなどを設定する。さらに、情報処理部31は、セーブデータ記憶域Doに追加した顔画像の属性を推定し、図13で説明した顔画像属性集計表Dn2の集計結果を更新するようにしてもよい。すなわち、情報処理部31は、新たに、セーブデータ記憶域Doに追加した顔画像の性別、年齢等を推定し、顔画像属性集計表Dn2の集計結果に反映するようにしてもよい。さらに、情報処理部31は、例えば、当該ゲームのセーブデータ記憶域Doに格納されたデータの複製、変更、無線通信モジュール36を通じたデータの転送等をユーザに許容するようにしてもよい。そして、情報処理部31は、ユーザのGUIを通じた操作または操作ボタン14を通じた操作にしたがって、セーブデータ記憶域Doに格納された顔画像の保存、複製、変更、転送等を実行すればよい。
【0221】
一方、ユーザがゲームで成功しなかった場合には、情報処理部31は、ゲームを再試行するか否かをユーザに問い合わせる(ステップ131)。例えば、上側LCD22に、再試行するか否かの問い合わせのメッセージを表示し、下側LCD12上のGUI(肯定、否定のアイコン、メニュー等)へのタッチパネル13を通じた操作、あるいは操作ボタン14等による操作により、ユーザの選択を受け付ける。ユーザが再試行を指示した場合には、情報処理部31は、制御をステップ129に戻す。一方、ユーザが再試行を指示しなかった場合には、情報処理部31は、ステップ123で取得された顔画像を廃棄し(ステップ133)、当該サブルーチンによる処理を終了する。なお、ゲームに成功しなかった場合に、情報処理部31は、ステップ131での再試行の指示を待たずにステップ123で取得した顔画像を廃棄するようにしてもよい。
【0222】
図17は、一覧表示処理(図14のステップ14)の詳細処理の一例を示すフローチャートである。この処理では、情報処理部31は、まず、登録済みの顔画像をデータ保存用内部メモリ35またはデータ保存用外部メモリ46のセーブデータ記憶域Doから読み出し、上側LCD22に表示する(ステップ140)。より具体的には、情報処理部31は、セーブデータ記憶域Doに保存された顔画像管理情報Dn1から、それぞれの顔画像データのアドレスを取得する。そして、データ保存用内部メモリ35内またはデータ保存用外部メモリ46等のアドレスから、顔画像を読み出し、上側LCD22に表示すればよい。
【0223】
次に、情報処理部31は、ユーザの操作待ちとなる(ステップ141)。そして、ユーザの操作によって、顔画像が選択状態にあるか否かを判定する(ステップ142)。顔画像が選択状態にあるか否かは、図7および図8に示したように、上側LCD22に顔画像の一覧が表示されているときに、ユーザが操作ボタン14等を押下した後の操作状態、あるいはGUIを通じた操作状態等で判断される。なお、選択状態にある顔画像は、図7および図8に示したように、例えば、太線L1や太線L2等で囲まれて表示される。
【0224】
そして、いずれかの顔画像が選択状態にある場合に、情報処理部31は、顔画像管理情報Dn1(図12参照)を用いて、選択状態にある顔画像と関連する顔画像を検索する(ステップ143)。
【0225】
そして、情報処理部31は、検索された顔画像の視線を選択状態にある顔画像に向ける等、検索された顔画像が反応する処理を実行する(ステップ144)。検索された顔画像が反応する処理は、例えば、以下の手順で実行できる。例えば、事前に、目の向きを図8の他の顔画像に向ける複数の目のパターン、顔の向きを図8の他の顔画像に向ける複数の顔のパターン等を用意しておく。そして、検索された顔画像の位置と、選択状態にある顔画像の位置との関係から、該当する目の向き、顔の向きのパターンを選択する。そして、すでに表示中の顔画像の目の向き、顔の向きのパターン等に代えて、該当する顔画像の目の向き、顔の向きのパターン等を表示すればよい。すなわち、検索された顔画像の位置と、選択状態にある顔画像の位置との関係から決定される目の部分の画像を元の顔画像の目の部分と入れ替えればよい。また、顔の向きを変える場合には、顔画像全体を入れ替えて表示してもよい。また、例えば、目の向きについて、予め、所定の角度、例えば、15度単位で、360度方向に向きを変えるパターンを用意しておいてもよい。そして、選択状態にある顔画像と検索された顔画像のとの位置関係から、角度を決定し、決定した角度に最も近い角度の目のパターンを選択するようにしてもよい。
【0226】
さらに、顔の向きについては、画面の法線方向に向く場合を0度して、左右方向に、例えば、30度、60度、90度等の角度で向きを変えた顔画像のパターンを用意する。また、上下方向に、例えば、30度程度向きを変えたパターンを用意する。さらに、左右方向で90度の角度で向きを変えた顔画像に対して、さらに、上下方向、つまり斜め上(例えば、15度上、30度上、45度上等)、斜め下(例えば、15度下、30度下、45度下方向等)に、向きを変えたパターン等を用意しておけばよい。そして、選択状態にある顔画像と検索された顔画像のとの位置関係から、角度を決定し、該当する角度に最も近い顔の角度を選択するようにすればよい。さらに、親密さを強調するため、3次元モデルのアニメーションによって片目をつぶる等の表情を表示すればよい。また、ハートマーク等を用意しておき、選択状態にある顔画像に関連する顔画像の近傍に表示するようにしてもよい。
【0227】
ステップ142の判定で、顔画像が選択状態にない場合には、情報処理部31は、その他の処理を実行する(ステップ145)。その他の処理とは、例えば、下側LCD12上の他のGUIに対する操作、顔画像の選択に用いる操作ボタン14(ボタン14a、14b、14c等)以外の操作ボタン14に対する処理などである。その後、情報処理部31は、処理を終了するか否かを判定する(ステップ146)。例えば、情報処理部31は、図8の画面が表示されているときに、ボタン14c(Bボタン)の押下を検知すると、「戻る」の指示がなされたと判断し、図17の処理を終了する。処理を終了しない場合には、情報処理部31は、制御をステップ140に戻す。
【0228】
図18は、配役決定処理(図14のステップ16)の詳細処理の一例を示すフローチャートである。この処理では、情報処理部31は、まず、敵オブジェクトEOの頭部形状の一覧を表示する(ステップ160)。なお、ここでは、敵オブジェクトEOを例に説明するが、敵オブジェクトEO以外の他のキャラクタオブジェクトを生成する場合も、処理は、以下と同様である。情報処理部31は、予め、例えば、ゲーム装置10の出荷前、画像処理プログラムのインストール時、あるいは、バージョンアップ時に、敵オブジェクトEOの頭部形状をデータ保存用内部メモリ35に格納する。情報処理部31は、現在、データ保存用内部メモリ35に格納されている敵オブジェクトEOの頭部形状を読み出し、図9に例示するような配置で表示する。
【0229】
次に、情報処理部31は、ユーザのGUIまたは操作ボタン14等による選択操作を検出し、敵オブジェクトEOの頭部形状の選択を受け付ける(ステップ161)。敵オブジェクトEOの頭部形状の選択が終了すると、次に、情報処理部31は、顔画像一覧を表示する(ステップ162)。そして、情報処理部31は、ユーザのGUIまたは操作ボタン14等による選択操作を検出し、顔画像の選択を受け付ける(ステップ163)。なお、図18の処理例では、ステップ163において、選択操作を検出することで、情報処理部31は、顔画像を決定する。しかし、このような処理に代えて、情報処理部31が自動的に顔画像を決定するようにしてもよい。例えば、情報処理部31がセーブデータ記憶域Doに蓄積された顔画像から、ランダムに顔画像を選択してもよい。また、情報処理部31が、ゲーム装置10でのユーザのゲームの履歴をメインメモリ32、外部メモリ45,データ保存用外部メモリ46,データ保存用内部メモリ35等に保存しておき、そのユーザの履歴から推定されるユーザの特性、指向等にしたがって、顔画像を選択してもよい。例えば、過去にユーザが顔画像を選択した頻度比率にしたがって、次に選択すべき顔画像を決定してもよい。
【0230】
そして、情報処理部31は、選択された顔画像を敵オブジェクトEOのテクスチャに設定する(ステップ164)。そして、選択された顔画像を敵オブジェクトEOの顔面部分にテクスチャマッピングすることにより、敵オブジェクトEOを生成する(ステップ165)。ステップ165で生成される敵オブジェクトが第2キャラクタオブジェクトの一例である。そして、情報処理部31は、生成した敵オブジェクトEOを上側LCD22の画面に、例えば、図10の敵オブジェクトEOのような態様で表示する。
【0231】
さらに、情報処理部31は、関連する顔画像が反応する処理を実行する(ステップ166)。この処理は、図17のステップ143およびステップ144の処理と同様である。さらに、情報処理部31は、生成した敵オブジェクトEOを確定するか否かをユーザのGUIに対する操作にしたがって判定する(ステップ167)。そして、敵オブジェクトEOを確定しない場合、情報処理部31は、制御をステップ162に戻し、顔画像の選択を受け付ける。ただし、敵オブジェクトEOを確定しない場合、情報処理部31は、制御をステップ160に戻し、敵オブジェクトEOの頭部形状の選択を受け付けるようにしてもよい。一方、敵オブジェクトEOを確定する場合、情報処理部31は、処理を終了する。情報処理部31は、この確定した敵オブジェクトEOを用いて、図14のステップ18のゲーム処理を実行する。ただし、図18には明示されていないが、敵オブジェクトEOを確定しないで、図18の処理を終了するように、GUIのメニュー等を用意するようにしてもよい。
【0232】
図19Aは、顔画像管理支援処理1(図14のステップ1A)の詳細処理例を示すフローチャートである。この処理では、情報処理部31は、顔画像属性集計表Dn2から取得済みの顔画像の属性を読み出す(ステップ1A1)。そして、情報処理部31は、読み出した顔画像属性集計表Dn2から、未取得の属性または顔画像取得数の少ない属性を検索する。未取得の属性とは、例えば、図13に例示した表で、顔画像取得数が0の属性をいう。また、顔画像取得数の少ない属性とは、例えば、図13に例示した表中の顔画像取得数をソーティングキーとして、ソーティングしたときに、顔画像取得数が下位から所定の順位に含まれる属性をいう。
【0233】
次に、情報処理部31は、ユーザに対して、未取得の属性に該当する顔画像の取得を促す処理を実行する(ステップ1A2)。例えば、情報処理部31は、図13に例示した表から、属性「男性」、属性「10歳代」、および用語「画像取得数0」を組み合わせたメッセージを下側LCD12または上側LCD22に表示すればよい。また、例えば、情報処理部31は、属性「男性」、属性「10歳代」および用語「画像取得数が少ない」を組み合わせたメッセージを表示してもよい。ただし、表示する属性の組み合わせ(図13の表の行)の数は、1件に限られず、2件以上を表示してもよい。そして、例えば、ユーザによる操作ボタン14B(Aボタン)の押下を検知したときに、情報処理部31は、図19Aの処理を終了すればよい。すると、その後、情報処理部31は、図14のステップ8に制御を戻す。
【0234】
なお、ここでは、図19Aに示した顔画像管理支援処理1を図14の終了判定時(ステップ1A)の詳細処理例として説明した。しかし、顔画像管理支援処理1は、ゲーム実行後、終了判定時(ステップ1A)のタイミングでの実行に限定されるわけではない。例えば、情報処理部31は、一覧表示処理(ステップ14)、配役決定処理(ステップ16)、ゲーム実行(ステップ18)等の処理中に、ユーザに顔画像の取得を促すために、顔画像管理支援処理1を実行してもよい。
【0235】
図19Bは、顔画像管理支援処理2(図15のステップ100)の詳細処理例を示すフローチャートである。この処理では、情報処理部31は、まず、取得画像数を参照し、取得画像の有無を判定する(ステップ1000)。情報処理部31は、取得画像数を、例えば、顔画像管理情報Dn1のレコード数として、メインメモリ32、外部メモリ45、データ保存用外部メモリ46、データ保存用内部メモリ35等に記憶しておけばよい。
【0236】
そして、取得画像がない場合(ステップ1000の判定でNoの場合)、情報処理部31は、処理を終了する。一方、取得画像がある場合(ステップ1000の判定でYesの場合)、情報処理部31は、制御をステップ1001に進める。そして、情報処理部31は、顔画像の取得要求を受け付ける(ステップ1001)。情報処理部31は、例えば、内側撮像部24あるいは、外側撮像部23を通じて、上側LCD22に顔画像が写し出されている状態で、Lボタン14GまたはRボタン14Hによる取得指示を受け付けた場合に、顔画像の取得要求を認識する。
【0237】
すると、情報処理部31は、内側撮像部24あるいは、外側撮像部23を通じて取得され、上側LCD22に顔画像が写し出されている顔画像の属性、例えば、性別と年齢を推定する(ステップ1002)。例えば、性別は、顔画像に含まれる頬骨、顎骨を含む骨格の大きさ、顔の寸法から推定できる。すなわち、情報処理部31は、目と目の距離、および目と口の距離に対する、顔の輪郭の相対寸法(例えば、顔の幅、目と顎の距離等)を算出する。そして、相対寸法が統計的に得られている男性平均値に近い場合に、顔画像が男性であると判定すればよい。また、例えば、相対寸法が統計的に得られている男性平均値に近い場合に、顔画像が男性であると判定すればよい。
【0238】
また、情報処理部31は、性別ごとに、年齢層(例えば、10歳未満、10代、20代、30代、40代、50代、60代、70以上等)ごとに、顔のパーツの平均の位置、および、顔の部分におけるしわの本数等の特徴情報を事前に記憶しておけばよい。そして、情報処理部は、例えば、外側撮像部23を通じて取得され、上側LCD22に顔画像が写し出されている顔画像の上記特徴情報を算出し、算出した特徴情報が最も近い年齢層を推定すればよい。ただし、以上の性別と年齢の特定についての説明は例示であり、性別と年齢の判定は、上記の処理に限定される訳ではない。ステップ1002の処理では、従来から提案されている様々な性別判定技術、年齢特定技術を適用できる。
【0239】
次に、情報処理部31は、ユーザに対して、未取得の属性の顔画像取得を促す(ステップ1003)。例えば、情報処理部31は、上側LCD22に、未取得の属性の顔画像取得を促すメッセージを表示すればよい。この処理は、図19Aの処理と同様である。そして、情報処理部31は、ユーザの操作によって、取得対象の顔画像が変更されたか否かを判定する(ステップ1004)。例えば、情報処理部31は、内側撮像部24あるいは、外側撮像部23を通じて取得される画像に含まれる顔画像の特徴、例えば、目と目の距離、目と口の距離が変化した場合に、取得対象の顔画像が変更されたと判定する。また、例えば、単に、Lボタン14GまたはRボタン14Hによる取得指示が解除され、再び、Lボタン14GまたはRボタン14Hによる取得指示がなされた場合に、情報処理部31は、取得対象の顔画像が変更されたと判定してもよい。そして、取得対象の顔画像が変更された場合に、情報処理部31は、制御をステップ1002に戻す。
【0240】
一方、取得対象の顔画像が変更されなかった場合に、情報処理部31は、そのまま処理を終了する。ここで、取得対象の顔画像が変更されなかった場合とは、例えば、ユーザがGUI、あるいは、操作ボタン14C(Bボタン)等によって、顔画像管理支援処理2を終了した場合である。また、例えば、取得対象の顔画像が変更されない状態が所定時間持続した場合等に、情報処理部31は、取得対象の顔画像が変更されなかったと判定してもよい。この場合には、情報処理部31は、制御を図15のステップ101に進め、顔画像取得処理を実行する。なお、すでに、図15のステップ101の処理で説明したように、情報処理部31は、図13の顔画像属性集計表Dn2の該当する行の顔画像取得数を更新する。
【0241】
また、ステップ1004の判定処理で、取得対象の顔画像が変更されなかった場合とは、例えば、目と目の距離、目と口の距離の変化量が許容値以内である場合である。また、例えば、単に、Lボタン14GまたはRボタン14Hによる取得指示が解除されることなく、そのまま所定時間、取得指示が継続した場合に、情報処理部31は、取得指示が解除されなかったと判断してよい。
【0242】
図19Cは、顔画像管理支援処理3(図16のステップ122)の詳細処理例を示すフローチャートである。図19Cの処理(ステップ1201からステップ1204)は、図19Bの処理のステップ1001からステップ1004と同様であるので、その説明を省略する。
【0243】
図19Aから図19Cの処理によれば、情報処理部31は、未取得の属性に該当する顔画像を優先して取得をするように、ユーザを誘導する。このような処理によって、極力、属性の偏りのない顔画像取得を望むユーザの顔画像収集処理を支援することができる。
【0244】
なお、本実施形態では、年齢層を10歳未満、10代、20代、30代、40代、50代、60代、70以上のように分類する処理例を示した。しかし、本発明の実施は、このような年齢層の分類に限定される訳ではない。例えば、さらに細かく年齢層を分類するようにしてもよい。また、逆に、子供、大人、老人等のように、粗く年齢層を分類するようにしてもよい。
【0245】
本実施形態では、Lボタン14GまたはRボタン14Hによる取得指示を受け付けた場合に、情報処理部31が顔画像の取得要求を認識した。しかし、そのような処理に代えて、例えば、本実施形態で説明したように、情報処理部31が、目標とする寸法の顔画像を撮像部から取得するために、ゲーム装置10と顔との距離、撮像部の視軸と顔との角度等を誘導するような処理において、顔画像の属性、例えば、性別、年齢を推定してもよい。すなわち、このような誘導処理のため、例えば、情報処理部31が、リアルタイム、あるいは、フレーム周期(1/60秒等)ごとに顔画像を取得する場合に、取得された顔画像から、顔画像の属性を特定すればよい。
【0246】
<ゲーム処理の詳細例>
ここでは、図20A図40を参照して、顔画像を用いたキャラクタオブジェクトが登場するゲーム処理の一例を説明する。以下の処理は、セーブデータ記憶域Doに蓄積された顔画像を含む敵オブジェクトEOを用いて、例えば、図14のステップ18において、実行される処理である。
【0247】
まず、本実施形態において、ゲーム装置10によるゲームプログラムの実行によってプレイヤが遊技可能なゲームの概要について説明する。本実施形態におけるゲームは、プレイヤが、ゲーム内の主人公として、ゲーム世界として用意された仮想の3次元空間に出現する敵キャラクタを撃ち落とす、いわゆるシューティングゲームである。例えば、ゲーム世界をなす仮想の3次元空間(仮想空間(ゲーム空間とも呼ばれる))は、ゲーム装置10の表示画面(例えば、上側LCD22)において、プレイヤの視点(いわゆる主観視点で)で表示される。もちろん、客観視点としてもよい。プレイヤが敵キャラクタを撃ち落とすことで、得点が加算される。これに対し、敵キャラクタとプレイヤとが衝突すると(具体的には、敵キャラクタが仮想カメラの位置から一定距離以内に到達すると)、得点が減点される。
【0248】
また、本実施形態のゲームは、ゲーム装置10が備える撮像部により取得される現実世界の画像(以下、「実世界画像」と呼ぶ)と、仮想空間を表現した仮想世界画像とを合成して表示する。具体的には、仮想空間を、仮想カメラに近い領域(以下、「手前側領域」と呼ぶ)と、仮想カメラから遠い領域(以下、「奥側領域」と呼ぶ)に区分して、手前側領域に存在する仮想オブジェクトを表す画像を実世界画像の手前に表示し、奥側領域に存在する仮想オブジェクトを実世界画像の背後に表示する。より具体的には、後述するように、手前側領域に存在する仮想オブジェクトを実世界画像よりも優先し、かつ、実世界画像を奥側領域に存在する仮想オブジェクトよりも優先して合成する。
【0249】
実世界画像と仮想世界画像との合成の手法は問わない。例えば、仮想オブジェクトと同じ仮想空間に、実世界画像をオブジェクトとして存在させて(より具体的には、例えば、仮想オブジェクトのテクスチャとして貼り付けて)、実世界画像を仮想オブジェクトとともに共通の仮想カメラでレンダリングしてもよい。
【0250】
また、別の例では、第1の仮想カメラ(以下、実世界描画用カメラと呼ぶ)から実世界画像をレンダリングして第1のレンダリング画像とし、第2の仮想カメラ(以下、仮想世界描画用カメラと呼ぶ)から仮想オブジェクトをレンダリングして第2のレンダリング画像とし、第1のレンダリング画像と第2のレンダリング画像とを、手前側領域に存在する仮想オブジェクトを実世界画像よりも優先し、かつ、実世界画像を奥側領域に存在する仮想オブジェクトよりも優先するように、合成してもよい。
【0251】
前者の方法では、典型的には、実世界画像をテクスチャとして適用したオブジェクト(以下、このオブジェクトをスクリーンオブジェクトと呼ぶ)を手前側領域と奥側領域の境界となる位置に配置し、敵オブジェクトなどの仮想オブジェクトとともに共通の仮想カメラから見て描画してもよい。この場合、典型的には、実世界画像が貼り付けられるオブジェクトは、仮想カメラから一定距離で、かつ、法線が仮想カメラの視線方向と一致するような面を有するオブジェクトであり、この面(以下、境界面と呼ぶ)に実世界画像をテクスチャとして貼り付けてもよい。
【0252】
また、後者の方法では、仮想オブジェクトを手前側領域と奥側領域との境界面(以下、単に境界面と呼ぶ)に対して奥行判定(Zバッファによる判定)を行いつつレンダリングして上記第2のレンダリング画像とし、仮想カメラから一定距離でかつ法線が仮想カメラの視線方向と一致するような面に実世界画像をテクスチャとして貼り付けてレンダリングして上記第1のレンダリング画像とする。そして、第2のレンダリング画像を第1のレンダリング画像に優先して合成するようにすれば、実世界画像が境界面に存在しているように見える画像が合成される。
【0253】
いずれの方法においても、実世界画像は仮想カメラの視野範囲を包含するように、仮想カメラからの距離および視野角と実世界画像オブジェクトの大きさ(視線方向についての大きさ)との関係が設定される。
【0254】
なお、以下では、前者の方法を第1の描画方法と呼び、後者の方法を第2の描画方法と呼ぶ。
【0255】
また、ゲーム上における所定のイベント発生条件が満たされると、実世界画像の一部が開口され、奥側領域の仮想空間がその開口を通じて見えるように表示される。また、手前側領域には敵キャラクタオブジェクトが存在し、さらに、奥側領域には、所定の条件を満たすと特別な敵キャラクタ(いわゆる「ボスキャラ」)が出現する。ボスキャラクタを撃ち落とすことで、ステージクリアとなる。ステージは幾つか用意されており、全てのステージをクリアすることでゲームクリアとなる。これに対し、所定のゲームオーバー条件が満たされると、ゲームオーバーとなる。
【0256】
実世界画像に対する開口は、上述の第1の描画方法の典型例では、スクリーンオブジェクトの境界面に対して開口の位置を示すデータを設定してもよい。より具体的には、境界面に適用されるテクスチャ(いわゆるαテクスチャ)の不透明度で開口または非開口を示すようにしてもよい。また、第2の描画方法では、境界面に対して開口の位置を示すデータを設定してもよい。
【0257】
また、本実施形態では、実世界画像に対して開口/非開口を設定したが、実世界画像に対して他の画像処理を行うようにしてもよい。例えば、実世界画像に汚れを付けたりぼかし処理をしたりするなど当業者の技術常識による任意の画像処理を行うことができる。これらの例でも、境界面や境界面に対して、画像処理を行う位置を示すデータが設定されるようにしてもよい。
【0258】
<ゲーム世界>
このように本実施形態に係るゲームでは、実画像の背後にも仮想空間(奥側領域)が存在することが感じられ、奥行き感が向上した仮想空間を表すゲーム画面が表示される。なお、実世界画像は、単眼カメラで撮像された状態の通常画像であってもよく、複眼カメラで撮像された状態のステレオ画像であってもよい。
【0259】
本実施形態に係るゲームでは、実世界画像として、外側撮像部23で撮像された画像を用いる。すなわち、ゲームのプレイ中に外側撮像部23で撮像されたプレイヤの周囲の実世界画像(リアルタイムに取得される実世界の動画)が用いられる。従って、ゲーム装置10を保持したユーザ(ゲームのプレイヤ)が、ゲームのプレイ中にゲーム装置10を左右方向、あるいは上下方向に向きを変えて外側撮像部23の撮像範囲を変更すると、上側LCD22に表示される実世界画像も、撮像範囲の変更に追従して変更される。
【0260】
ここで、ゲームプレイ中におけるゲーム装置10の向きの変更は、大略して、(1)プレイヤの意図、または(2)ゲーム上の意図(シナリオ)に従って行われる。プレイヤがプレイ中にゲーム装置10の向きを意図的に変えることで、外側撮像部23で撮像される実世界画像が変化し、これにより、上側LCD22に表示される実世界画像を意図的に変更することができる。
【0261】
また、ゲーム装置10が備える角速度センサ40によりゲーム装置10の向きの変化が検出され、それに応じて仮想カメラの向きを変更する。より具体的には、外側撮像部23の向きの変化方向に仮想カメラを現在の向きから変化させる。さらに、外側撮像部23の向きの変化量(角度)だけ、仮想カメラを現在の向きから変化させる。すなわち、ゲーム装置10の向きを変えると、実世界画像が変化するとともに、仮想空間のうちの表示される範囲が変化する。すなわち、ゲーム装置10の向きを変更することにより、実世界画像と仮想世界画像が連動して変化し、これにより、現実世界と仮想世界とが関連付いているかのような合成画像を表示することができる。なお、本実施形態においては、仮想カメラの位置は変更しないが、ゲーム装置10の移動を検出して仮想カメラの位置を変更してもよい。
【0262】
なお、第2の描画方法においては、このような仮想カメラの向き変更処理は、仮想世界描画用カメラに適用され、実世界描画用カメラについては適用されない。
【0263】
また、ゲームプレイ中に、画面の端(例えば、右端、左端)のような局所にオブジェクトが表示されると、プレイヤに対し、オブジェクトを画面の中心に捉えようとする心理が自然に働き、プレイヤはゲーム装置10(外側撮像部23)を動かす。この結果、画面に表示される実世界画像が変わる。このようなゲーム装置10の向きの変更(実世界画像変更)は、ゲームのシナリオに従って表示されるオブジェクトが意図的に画面の端に表示されるようにプログラミングすることによって、プレイヤが自然に行うようにすることができる。
【0264】
<仮想空間の詳細>
(実世界画像の描画)
外側撮像部23で撮像された実世界画像は、仮想空間の手前側領域と奥側領域との境界位置に存在して見えるように合成される。図20Aは、本実施形態における仮想空間の一例を示す。また、図20Bは、本実施形態におけるスクリーンモデルとαテクスチャの関係を示す。第1の描画方法では、実世界画像の表示のため、図20Aに示すように、仮想空間内に仮想カメラの位置を中心とする球体モデル(上述のスクリーンモデル)を設定し、この球体の内面に実世界画像を貼り付け、スクリーンオブジェクトを形成してもよい。より具体的には、スクリーンモデルのうち仮想カメラの視体積内となる部分の全体にテクスチャとして貼り付けられる。スクリーンモデルのうちこの部分以外については、透明に設定されるため画面上で視認されない。この例では、境界面は球体面であり、すなわち、図20Aで示すように、球体の表面により仮想カメラ側が手前側領域(本発明の「第2領域」に相当)であり、球体の表面より仮想カメラからみて遠い側が奥側領域(本発明の「第1領域」に相当)である。
【0265】
第2の描画方法では、実世界画像の表示のため、仮想空間内には、実世界画像のテクスチャを貼り付けるための平面ポリゴンが配置される。仮想空間において、平面ポリゴンの実世界描画用カメラに対する相対位置は、常に固定される。すなわち、平面ポリゴンは、実世界描画用カメラから一定の距離を空けて配置され、その法線方向が実世界描画用カメラの視点(視軸)に一致するように配置される。
【0266】
また、この平面ポリゴンは、実世界描画用カメラの視野範囲を包含するように設定される。具体的には、平面ポリゴンの大きさとその仮想カメラからの距離は、平面ポリゴンが仮想カメラの視野範囲を包含可能となるように設定される。この平面ポリゴンの仮想カメラ側の面全体に実世界画像を貼り付けるようにしたので、仮想カメラで、この実世界画像が貼り付けられた平面ポリゴンを描画すると、仮想カメラにより生成される画像において、実世界画像がその全域に対応するように表示される。
【0267】
なお、図21に示すように、境界面を円筒状にしてもよい。図21は、本実施形態における仮想空間の別の例を示す。この場合、仮想空間には、仮想カメラの位置に立てられた鉛直軸(本実施形態においては、仮想空間のY軸が鉛直方向に対応し、X軸およびZ軸が水平方向に対応するとする)を中心軸とする仮想の円筒周面(境界面)が配置される。ただし、前述の通り、この円筒周面は視認されるオブジェクトではなく、開口処理において用いられるオブジェクトである。この円筒の外周面は、仮想空間を、仮想カメラが位置する第1空間(本発明の「第2領域」に相当)と、この第1空間の周りに存在する第2空間(本発明の「第1領域」に相当)とに区分する。
【0268】
(実世界画像を開口させるための処理)
さらに、本実施形態に係るゲームでは、実世界画像に開口を設け、実世界画像の背後の奥側領域の存在をプレイヤに認識させる。より明確に言うと、実世界画像のうちこの開口の部分は、透明または半透明で表示され、その背後にある世界がこの部分に合成される。このため、ゲーム内で、所定のイベントの発生を契機に、実世界画像の一部が開口して(消去されて)、その開口を通して実世界画像の背後に存在する他の仮想空間(奥側領域)を示す画像が表示される。
【0269】
このような、実世界画像に開口を設けて奥側領域を表示する処理は、本実施形態において、境界面は球体面であり、第1の描画方法では、図20Aおよび図20Bに示すように、上述の球体のスクリーンオブジェクトの内面に貼り付けられるテクスチャにより実現される。以下、このテクスチャのことをスクリーン用αテクスチャ(後述する、開口判定用データ)と呼ぶ。本実施形態では、スクリーン用αテクスチャは仮想カメラを中心として少なくとも或る方向に360度周回する部分に貼り付けられる。より具体的には、図20Bで示すように、スクリーン用αテクスチャは、球体のうち中央部分、言い換えると、仮想カメラの位置を中心として、XY平面に平行な方向に360度周回させた、Y方向に所定の幅を有する部分(以下、αテクスチャ適用部と呼ぶ)に貼り付けられる。このようにすることにより、スクリーン用αテクスチャのデータの持ち方を簡単にすることができる。具体的には、本実施形態では、スクリーン用αテクスチャは矩形形状である。このαテクスチャが図20Aで示す部分に貼り付けられることにより、スクリーン用αテクスチャの各ドットの情報は、スクリーンオブジェクトのうちαテクスチャ適用部の各座標に対応する。
【0270】
上述のように実世界画像が貼り付けられ、αテクスチャが設定されたスクリーンオブジェクトを仮想カメラで描画することにより、開口部を有する実世界画像が境界面(球体内面)に存在するように描画されることになる。αテクスチャのうち実世界画像に対応する部分は、仮想カメラによる描画により計算される。
【0271】
第2の描画方法においても、仮想空間の境界面(ここでは球体内面)に対して、開口の位置を示すデータが設定される。典型的には、境界面の各点について開口の有無を示すデータが設定される。より具体的には、上述と同様の球体オブジェクトが仮想オブジェクトの存在する仮想世界に配置され、この球体オブジェクトに対して同様のαテクスチャが設定される。そして、実世界画像のレンダリング時に、αテクスチャが設定された球体オブジェクトのうち仮想世界描画用カメラで描画される部分に対応する部分のαテクスチャを、上述の平面ポリゴンに適用してレンダリングする。または、この部分のαテクスチャを用いて、実世界画像に対して開口部を透明化する処理を行った後、この処理後の実世界画像を前述の平面ポリゴンに貼り付けて実世界描画用カメラでレンダリングする。なお、この球体オブジェクトは、開口の計算にのみ使用されるオブジェクトであり、仮想世界の描画時に描画されないオブジェクトである。
【0272】
なお、本実施形態では、開口部を示すデータは境界面の各点ごとに情報を有するようなデータであるが、境界面において開口を有する位置を計算式で定義するような情報でもよい。
【0273】
第2空間には、開口を通じて仮想カメラの視野に収まる第2空間の背景画像(テクスチャ)を貼り付けるためのポリゴン(オブジェクト)が配置される。第2空間の背景は、「奥壁」と呼ぶこともある。
【0274】
第1空間には、敵キャラクタや、敵キャラクタを撃ち落とすための弾を表す各種のキャラクタを示すオブジェクトが配置される。第2空間にも所定のオブジェクト(例えば、敵キャラクタのうちの一部)が配置される。仮想空間上に配置された各オブジェクトは、予めプログラミングされたロジック(アルゴリズム)に従って仮想空間内を移動する。
【0275】
さらに、敵キャラクタのうちの一部は、境界面に形成された開口を通じて第1空間と第2空間との間を行き来することもできる。または、自ら境界面に開口を形成して第1空間と第2空間との間を行き来することができる。開口を形成するゲーム上の所定イベントは、例えば、敵キャラクタが境界面に衝突するようなイベント(衝突イベント)である。あるいは、ゲームシナリオの進行上、所定のタイミングで境界面が破壊され、第2空間にいた敵キャラクタが第1空間に進入するイベント(敵キャラクタ出現イベント)である。あるいは、時間経過に応じて自動的に開口が形成されるようにしてもよい。また、プレイヤの所定のゲーム操作に応じて、開口を修復することができる。例えば、プレイヤは、形成された開口に対して弾を当てることで、開口を小さくする(修復する)こともできる。
【0276】
図22は、実施形態における画像処理プログラムの一例であるゲームプログラムにおいて定義される仮想の3次元空間(ゲーム世界)を示す。なお、上述したように、本実施形態では、境界面は球体であるが、図22では簡便のため、境界面を円筒状に示す。上述したように、本実施形態に係るゲームでは、ゲーム装置10の上側LCD22には、仮想の3次元空間を表現した仮想世界画像と実世界画像が合成されて表示される。
【0277】
また、図22において示されるとおり、本実施形態におけるゲーム上の仮想空間は、仮想カメラの位置を中心軸とする球体面で形成された境界面3によって第1空間1と第2空間2とに分けられている。
【0278】
境界面3には、ゲーム装置10に内蔵する実カメラによって撮像された実世界画像であるカメラ画像CI(図23)は、第1の描画方法においては後述するステップ81および82、また、カメラ画像CIは、第2の描画方法においては後述するステップ83からステップ85の処理により、境界面3の位置に存在しているかのように、仮想世界画像と合成される。
【0279】
本実施形態における実世界画像は平面視の画像である。また仮想世界画像も平面視の画像である。すなわち、上側LCD22には平面視の画像が表示される。ただし、実世界画像は、立体視可能な画像であってもよい。本発明は、実世界画像の種類によって限定されない。なお、本実施形態におけるカメラ画像CIは、静止画であっても、リアルタイムの実世界画像(動画像)であってもよい。本実施形態におけるゲームプログラムでは、カメラ画像CIは、リアルタイムの実世界画像であるとする。また、実世界画像であるカメラ画像CIは、カメラの種類によって限定されない。例えば、カメラ画像CIは、ゲーム装置10に外部接続可能なカメラによって得られた画像であってもよい。さらに、本実施形態では、カメラ画像CIは、外側撮像部23(複眼カメラ)および/または内側撮像部24(単眼カメラ)から取得した画像であればよい。本実施形態におけるゲームプログラムでは、カメラ画像CIは、外側撮像部23の外側左撮像部23aおよび外側右撮像部23bの一方を単眼カメラとして用いることにより取得される画像であるとする。
【0280】
上記したように第1空間1は、仮想カメラから見て境界面3より手前の空間であり、境界面3によって囲まれた空間である。また、第2空間2は、仮想カメラから見て境界面3の背後の空間である。図20Aおよび図21において図示はされていないが、境界面3を囲む奥壁BWが存在する。つまり、第2空間2は、境界面3と奥壁BWとの間に存在する空間である。奥壁BWは、任意の画像が貼り付けられる。例えば、奥壁BWには、予め用意された宇宙空間を表す画像が貼り付けられ、第1空間1の背後には宇宙空間である第2空間2の存在が表示される。すなわち、仮想カメラから見て、手前から順に、第1空間1、境界面3、第2空間2、奥壁BWが配置される。
【0281】
ただし、上述のとおり、本発明の画像処理プログラムはゲームプログラムに限定される訳ではなく、これらの設定およびルールは、本発明の画像処理プログラムを限定するものではない。なお、敵オブジェクトEOは、図22に示されるとおり、仮想の3次元空間内を移動し、上述の境界面3を通って、第1空間1と第2空間2とを往来することができる。境界面3のうち、仮想カメラによって撮像される領域を通って、敵オブジェクトEOが第1空間1と第2空間2との間を移動した場合には、上側LCD22に表示される画像においては、敵オブジェクトEOが実世界画像を通り抜けて奥側から手前側に、または、手前側から奥側に移動するように表現される。
【0282】
画面には、ゲームのシナリオやイベントにより実世界画像に生じた開口(穴)を使って第1空間1と第2空間2とを往来する敵オブジェクトEOの様子が表示される。図22および図24には、敵オブジェクトEOが境界面3に開口を作って、または、境界面3上に既に存在する開口を通って、第1空間1と第2空間2とを行き来する様子が図示されている。
【0283】
なお、本実施形態における画像処理プログラムでは、第1空間1または第2空間2に存在するオブジェクトは、敵オブジェクトEO、弾オブジェクトBO、および奥壁BWの3つであるが、本発明の画像処理プログラムは、オブジェクトの種類に限定されない。本実施形態における画像処理プログラムにおいて、オブジェクトは、仮想空間(第1空間1および第2空間2)に存在する仮想物体である。例えば、本実施形態に係る画像処理プログラムにおいて、障害物のオブジェクト等の任意のオブジェクトが存在してもよい。
【0284】
<表示形態例>
図23図26は、上側LCD22に表示されるゲーム画面の一例を示す。以下、各図の表示形態例について説明する。
【0285】
まず、図23図26において共通に表示される照準カーソルALについて説明する。図23図26において、上側LCD22には、共通して、ゲーム装置10を用いた攻撃操作(例えば、ボタン14B(Aボタン)の押下)に応じて発射される弾オブジェクトBOの照準カーソルALが表示されている。本実施形態のゲームプログラムでは、照準カーソルALは、ゲーム装置10が実行するプログラムに応じて所定の方向を向くように設定されている。
【0286】
例えば、照準カーソルALは、仮想カメラの視線方向、つまり、上側LCD22の画面中央に固定されているように設定される。この場合、上述のとおり、本実施形態において、外側撮像部23の撮像方向の変化に応じて、仮想カメラ(第1の描画方法における仮想カメラまたは第2の描画方法における仮想世界描画用カメラ)の視線方向を変更するので、プレイヤは、ゲーム装置10の向きを変えることで、照準カーソルALの仮想空間内における向きを変更できる。そして、プレイヤは、例えば、ゲーム装置10が備えるボタン14B(Aボタン)を、下側ハウジング11を把持した右手の親指で押下することにより攻撃操作を行う。これにより、プレイヤは、攻撃操作による弾オブジェクトBOの発射を行い、本実施形態のゲーム上における敵オブジェクトEOの退治や、境界面3に存在する開口の修復をする。
【0287】
次に、図23図26について各図個別に説明する。
【0288】
図23において、上側LCD22には、第1空間1に存在する敵オブジェクトEOと、ゲーム装置10に内蔵する実カメラによって撮像されたカメラ画像CIと、が表示されている。敵オブジェクトEOは、任意に設定される。
【0289】
敵オブジェクトEOは、例えば、ゲーム装置10のデータ保存用外部メモリ46等に記憶された画像(例えば、人の顔写真)をテクスチャとして用い、所定形状の3次元ポリゴンモデル(人の頭部の3次元形状を表すポリゴンモデル)に、所定の方法で貼り付けたオブジェクトである。
【0290】
また、本実施形態において、上側LCD22に表示されるカメラ画像CIは、上述のとおり、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの実世界画像である。その他、例えば、カメラ画像CIは、ゲーム装置10のデータ保存用外部メモリ46等に記憶された画像(例えば、風景写真)であってもよい。
【0291】
カメラ画像CIが上側LCD22に表示された状態において、敵オブジェクトEOは任意に移動することができる。例えば、第1空間1に存在する敵オブジェクトEOは、第2空間2に移動することができる。図24は、第1空間1に存在する敵オブジェクトEOが、第1空間1から第2空間2へ移動する様子の一例を示す。図24に示した一例では、第1空間1に存在する敵オブジェクトEOは、境界面3上に開口を作って、第2空間2へ移動する。第2空間2に移動した敵オブジェクトEOは、境界面3上の非開口領域において仮想カメラから見た位置において影(シルエットモデル)ESとして表示される。また、第2空間2は、境界面3上の開口を通して視認される。つまり、仮想カメラの視野内の境界面3上に開口が存在する場合、上側LCD22には、当該開口を通して第2空間2の画像の一部が表示される。第2空間2の画像は、具体的には、第2空間2に存在するオブジェクト、例えば、第2空間2に存在する敵オブジェクトEOや、奥壁BWである。影ESは、敵オブジェクトEOの影を示す表示である。図27Aは、敵オブジェクトEOの影のシルエットモデルを上から見た図を示す。また、図27Bは、敵オブジェクトEOの影のシルエットモデル例を示す。図27Aおよび図27Bに示すように、本実施形態においては、敵オブジェクトEOについて、複数の向きごとにシルエットモデルが設定されている。具体的には、シルエットモデルは、例えば、図27Aに示す8枚の平面ポリゴンである。このシルエットモデル(8枚の平面ポリゴン)は、実体モデルである敵オブジェクトEOと同じ位置に配置される。また、各平面ポリゴンは、実体モデルに内包される大きさである(実体モデルからはみ出ない)。また、各平面ポリゴンにはその面の法線方向から見た敵オブジェクトEOの影画像が描いたテクスチャが貼り付けられる。敵オブジェクトEOが境界面3の非開口領域の背後に存在する場合には、このシルエットモデルが描画されることにより影ESが表示される。
【0292】
なお、8枚の平面ポリゴンのすべてがレンダリングされる。敵オブジェクトEOが境界面3の非開口領域の背後に存在する場合、奥行判定(デプス判定)により、敵オブジェクトEOの実体モデルはこの境界面(スクリーンオブジェクト)3に隠されるため描画されない。しかしながら、シルエットモデルは、境界面(スクリーンオブジェクト)3に対してデプス判定をしないように設定されているため、敵オブジェクトEO(およびそのシルエットモデル)が境界面3の非開口領域の背後に存在する場合であっても、シルエットモデルは描画されて、図24図25に示すように影が表示される。しかしながら、敵オブジェクトEOが境界面3の前方に存在する場合や、境界面3の開口領域の背後に存在する場合は、シルエットモデルは実体モデルより奥に存在し、敵オブジェクトEOの実体モデルが描画され、それによりシルエットモデルは描画されないため、影は表示されない。これは、シルエットモデルが敵オブジェクトEOの実体モデルに内包されるように設定されているからである。
【0293】
上側LCD22には、以下の優先順位で画像が合成されて表示される。
【0294】
(1)第1空間1に存在するオブジェクトの画像(2)実世界画像のうち非開口領域については、第2空間2に存在するオブジェクトの影画像と実世界画像の合成画像(例えば影画像が半透明で実世界画像に合成される)(3)実世界画像のうち開口部領域については第2空間2に存在するオブジェクトの画像(実体画像)が優先的に合成され、さらにその奥に奥壁画像が合成される。ただし、第2空間2に存在する敵オブジェクトEOの移動状態によっては、敵オブジェクトEOが開口領域と非開口領域との両方にまたがって存在する場面がある。つまり、仮想カメラから見た位置において、敵オブジェクトEOが開口のふちに存在する場面がある。図25は、このような、第2空間2に存在する敵オブジェクトEOが、境界面3上に設定された開口のふちに移動した状態を示す。図25において示されるとおり、第2空間2に存在する敵オブジェクトEOについて、仮想カメラから見て、開口を通して第2空間2が視認できる範囲についてはそのままの画像が、開口を通して第2空間2が視認できない範囲については影ESが、上側LCD22に表示される。
【0295】
より具体的には、図28に示すように、各オブジェクトには不透明度(アルファ値)のデータが設定される。図28は、本実施形態において各オブジェクトに設定される不透明度(アルファ値)の例を示す。敵オブジェクトの実体モデルには、そのテクスチャにモデル全体について不透明度が1である設定がされる。また、敵オブジェクトのシルエットモデル(平面ポリゴン)には、そのテクスチャに影画像の全体について不透明度が1である設定がされる。弾のモデルについても同様である。敵オブジェクトのうち半透明のオブジェクトのモデルやエフェクト用のモデルについては、そのテクスチャに、例えば、そのモデル全体について不透明度0.6が設定される。スクリーンオブジェクト(図20Aに示される球体のスクリーンモデル)には、マテリアルとして不透明度0.2が設定され、そのテクスチャであるαテクスチャに、各点ごとに1または0が設定される。1が非開口部を示し、0が開口部を示す。すなわち、スクリーンオブジェクトには、不透明度値として、マテリアルの設定とテクスチャの設定の2つが施される。
【0296】
また、敵オブジェクト、弾オブジェクト、半透明の敵オブジェクト、エフェクトオブジェクト、スクリーンオブジェクトの間は、互いにデプス判定有効である。「影用の平面ポリゴンと敵オブジェクトとの間」「影用の平面ポリゴンと弾オブジェクトとの間」「影用の平面ポリゴンと半透明の敵オブジェクトとの間」「影用の平面ポリゴンとエフェクトオブジェクトとの間」は、互いにデプス判定有効である。影用の平面ポリゴンとスクリーンオブジェクトとの間は、デプス判定無効である。
【0297】
デプス判定が有効な場合には、通常の透視投影に従い、レンダリングされる。仮想カメラからの奥行方向に応じて陰面消去される。デプス判定が無効の場合には、対象オブジェクトが自身のオブジェクトより仮想カメラに近い側に存在していてもレンダリングされる。
【0298】
そして、本実施形態においては、レンダリング時に、オブジェクトごとにレンダリングの式を設定することができる。具体的には以下のように設定される。
【0299】
敵オブジェクトの実体、弾オブジェクト、半透明の敵オブジェクト、エフェクトオブジェクトは、以下の式で描画される。
【0300】
「自身の色×自身の不透明度+背景の色×(1−自身の不透明度)」
スクリーンオブジェクトは、以下の式で描画される。
【0301】
「自身の色(実世界画像の色)×自身のテクスチャの不透明度+背景の色×(1−自身のテクスチャの不透明度)」
敵オブジェクトのシルエットモデルは、以下の式で描画される。
【0302】
「自身の色×(1−背景のマテリアルの不透明度)+背景の色×背景のマテリアルの不透明度)」
なお、敵オブジェクトが描画される場合、その背景はスクリーンオブジェクト(境界面3)であるから、上式において、「背景のマテリアルの不透明度」は「スクリーンオブジェクト(境界面3)のマテリアルの不透明度」である。
【0303】
上述のような様々な設定により、敵オブジェクトが境界面の非開口部の背後に存在するときには、実体は表示されずに影が表示され、敵オブジェクトが境界面の前方に存在するときおよび敵オブジェクトが境界面の開口部に存在するときには、影は表示されずに実体が表示される。
【0304】
また、本実施形態におけるゲームでは、境界面3上に存在する開口は、弾オブジェクトBOを当てることにより修復され得る。図26は、境界面3に存在する開口に弾オブジェクトBOを当てることにより、当該開口を塞ぐ様子を示す。図26に示されるとおり、例えば弾オブジェクトBOが当該境界面3上に存在する非開口領域に衝突したときに、衝突点から一定範囲の境界面について非開口のデータ設定がされる。これにより、衝突点から一定範囲に開口があったときに当該開口は塞がれる。なお、本実施形態では、開口にあたった弾オブジェクトBOは消滅する(したがって、図26において弾オブジェクトBOは消滅している)。また、弾オブジェクトBOは境界面3上の開口に当たったときには、当該開口を通り抜けて第2空間に移動する。
【0305】
なお、上述したように、上側LCD22には、ゲーム装置10に内蔵する実カメラによって撮像されたリアルタイムの実世界画像が境界面3上にあるかのように見える画像として表示されている。実空間内においてゲーム装置10の方向を変えることによって、ゲーム装置10で撮像される撮像範囲が変わるため、上側LCD22に表示されるカメラ画像CIも変化する。この場合、ゲーム装置10は、実空間内におけるゲーム装置10の動きに応じて、上記仮想空間内における上記仮想カメラ(第2の描画方法については、仮想世界描画用カメラ)の方向を変化させる。これによって、実空間内に配置されているように表示されている敵オブジェクトEOや境界面3上に存在する開口は、実空間内におけるゲーム装置10の方向が変わっても実空間内における同じ位置に配置されているように表示される。例えば、ゲーム装置10の実カメラによる撮像方向を左へ変えるとする。この場合、上側LCD22に表示されている敵オブジェクトEOや境界面3上に存在する開口の表示位置が、実カメラの撮像方向を変えた方向の逆方向(右方向)に移動、すなわち敵オブジェクトEOおよび境界面3上に存在する開口が配置されている仮想空間の仮想カメラ(第2の描画方法については仮想世界描画用カメラ)の方向が実カメラと同じ左方向に移動する。したがって、敵オブジェクトEOや境界面3上に存在する開口は、ゲーム装置10の方向が変化して実カメラの撮像範囲が変わったとしても、あたかもカメラ画像CIで表現された実空間内に配置されているように上側LCD22に表示される。
【0306】
《画像処理の動作例》
次に、図29図31図32Aおよび図32Bを参照して、ゲーム装置10で実行される本実施形態における画像処理プログラムによる具体的な画像処理の動作例について説明する。図29は、当該画像処理プログラムを実行することによってゲーム装置10が画像処理する動作例の一例を示すフローチャートである。図30は、図29のステップ53で行われる敵オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャートである。図31は、図29のステップ54で行われる弾オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャートである。図32Aおよび図32Bは、図29のステップ57で行われる表示画像の更新処理(第1の描画方法および第2の描画方法)の詳細な動作の一例を示すサブルーチンのフローチャートである。
【0307】
《画像処理例》
図29を参照して、情報処理部31の動作について説明する。まず、ゲーム装置10の電源(電源ボタン14F)がONされると、CPU311によってブートプログラム(図示せず)が実行され、これにより内蔵メモリまたは外部メモリ45やデータ保存用外部メモリ46に格納されているプログラムがメインメモリ32にロードされる。そして、当該ロードされたプログラムが情報処理部31(CPU311)で実行されることによって、図29に示すステップが実行される。なお、図29図32Aにおいては、本発明の画像処理に直接関連しない画像処理およびその他周辺の処理についての記載を省略する。
【0308】
図29において、情報処理部31は、画像処理における初期設定を行い(ステップ51)、次のステップ52に処理を進める。例えば、情報処理部31は、仮想世界画像(仮想空間の画像)を生成するための仮想カメラの初期位置や初期方向を仮想カメラデータDjに設定し、当該仮想カメラが配置される仮想空間の座標軸(例えば、XYZ軸)を設定する。次に、情報処理部31は、ゲーム装置10の各構成部より各種データを取得し(ステップ52)、次のステップ53に処理を進める。例えば、情報処理部31は、現在選択されている撮像部(本実施形態では外側撮像部23)によって撮像されたカメラ画像を用いて、実カメラ画像データDbを更新する。また、情報処理部31は、操作ボタン14やアナログスティック15を操作したことを示すデータを取得して、操作子データDa1を更新する。さらに、情報処理部31は、角速度センサ40によって検出された角速度を示す角速度データを取得して、角速度データDa2を更新する。
【0309】
次に、情報処理部31は、敵オブジェクト関連処理を実行し(ステップ53)、次のステップ54に処理を進める。以下、図30を参照して、敵オブジェクト関連処理について説明する。
【0310】
図30において、情報処理部31は、敵オブジェクトEOが出現する条件を満たしているか否かを判断する(ステップ61)。例えば、敵オブジェクトEOが出現する条件として、所定時間毎に敵オブジェクトEOが出現してもいいし、敵オブジェクトEOが仮想世界から消滅したことに応じて新たな敵オブジェクトEOが出現してもいいし、ランダムのタイミングで敵オブジェクトEOを出現させてもよい。なお、敵オブジェクトEOが出現する条件は、例えば、メインメモリ32に保持されている各種プログラム群Paにより設定される。
【0311】
そして、情報処理部31は、敵オブジェクトEOが出現する条件を満たしている場合、次のステップ62に処理を進める。一方、情報処理部31は、敵オブジェクトEOが出現する条件を満たしていない場合、次のステップ63に処理を進める。
【0312】
ステップ62において、情報処理部31は、出現条件を満たした敵オブジェクトEOに対応する敵オブジェクトデータDfを生成、および初期設定を行って、次のステップ63に処理を進める。例えば、情報処理部31は、メインメモリ32に保持されている各種プログラム群Paを用いて、実体データDf1、シルエットデータDf2、開口形状データDf3、および敵オブジェクトEOに対応するポリゴンのデータを取得する。そして、情報処理部31は、当該各データを含んだ敵オブジェクトデータDfを生成する。また、例えば、情報処理部31は、生成した敵オブジェクトデータDfに含まれる、敵オブジェクトEOに対応するポリゴンの仮想空間上における配置方向や配置位置を示すデータ、および敵オブジェクトEOの仮想空間上における移動速度や移動方向を示すデータの初期設定を行う。当該初期設定は周知の方法で行われる。
【0313】
次に、情報処理部31は、仮想空間に配置されている敵オブジェクトEOを移動させ(ステップ63)、次のステップ64に処理を進める。一例として、情報処理部31は、敵オブジェクトデータDeに含まれる敵オブジェクトEOの配置位置を示すデータを、当該敵オブジェクトデータDeに含まれる敵オブジェクトEOの仮想空間上における移動速度や移動方向を示すデータに基づいて更新する。この際、情報処理部31は、敵オブジェクトデータDeに含まれる敵オブジェクトEOの配置方向を示すデータを、上記移動方向を示すデータに基づいて更新する。更新後、敵オブジェクトデータDeに含まれる敵オブジェクトEOの仮想空間上における移動速度や移動方向を示すデータを任意に更新してもよい。移動速度や移動方向を示すデータを更新することで、敵オブジェクトEOは、仮想空間上を、任意の速度、任意の方向に移動することができる。
【0314】
次に、情報処理部31は、敵オブジェクトEOが仮想カメラ(第1の描画方法における仮想カメラまたは第2の描画方法における仮想世界描画用カメラ。)の位置から一定距離まで到達したか否かを判定する(ステップ64)。例えば、情報処理部31は、敵オブジェクトデータDeに含まれる敵オブジェクトEOの配置位置を示すデータと、仮想カメラデータDjに含まれる仮想カメラ(第1の描画方法における仮想カメラまたは第2の描画方法における仮想世界描画用カメラ)の配置位置を示すデータとを比較する。そして、情報処理部31は、2つのデータが所定の条件(例えば、敵オブジェクトEOの配置位置と仮想カメラの配置位置との間の距離が所定の値よりも小さくなる)を満たした場合、敵オブジェクトEOが仮想カメラの位置から一定距離まで到達したと判定し、2つのデータが所定の条件を満たさない場合、敵オブジェクトEOは仮想カメラの位置まで到達していないと判定する。なお、以下、第1の描画方法および第2の描画方法を区別せず、単に「仮想カメラ」と表記した場合、第1の描画方法における仮想カメラまたは第2の描画方法における仮想世界描画用カメラを指す。情報処理部31は、敵オブジェクトEOが仮想カメラの位置まで到達したと判定した場合、次のステップ65に処理を進める。一方、情報処理部31は、敵オブジェクトEOが仮想カメラの位置まで到達していないと判定した場合、ステップ66に処理を進める。
【0315】
ステップ65において、情報処理部31は、減点処理を行って、次のステップ66に処理を進める。例えば、情報処理部31は、得点データDhが示すゲームの得点を所定値だけ減点し、減点後の得点を用いて得点データDhを更新する。なお、上記減点処理においては、情報処理部31は、上記仮想カメラの位置まで到達した敵オブジェクトEOを仮想空間から消滅させる処理(例えば、仮想カメラの位置まで到達した敵オブジェクトEOに関する敵オブジェクトデータDeを初期化し、当該敵オブジェクトEOが仮想空間に存在しない状態にする)を行ってもよい。また、当該減点処理における所定値は、任意の値でよく、例えば、メインメモリ32に保持されている各種プログラム群Paによって設定されてもよい。
【0316】
ステップ66において、情報処理部31は、敵オブジェクトEOが境界面3を通過する(敵オブジェクトEOが第1空間1と第2空間2との間を移動する)か否かを判定する。例えば、情報処理部31は、敵オブジェクトデータDeに含まれる敵オブジェクトEOの配置位置を示すデータと、境界面データDdに含まれる境界面3の配置位置を示すデータとを比較する。そして、情報処理部31は、2つのデータが所定の条件を満たした場合、敵オブジェクトEOが境界面3を通過すると判定し、2つのデータが所定の条件を満たさない場合、敵オブジェクトEOが境界面3を通過しないと判定する。なお、所定の条件とは、例えば、敵オブジェクトEOの仮想空間上の座標(配置位置)が、境界面3の球体表面の条件式を満たすことである。上述のとおり、境界面3の仮想空間上の配置位置を示すデータは、境界面3の仮想空間上の存在範囲を示し、例えば、球体表面(本実施形態における境界面3の形状)の条件式である。敵オブジェクトEOの配置位置が当該条件式を満たす場合、敵オブジェクトEOは、仮想空間において境界面3上に存在することになる。本実施形態では、例えばこのような場合に、敵オブジェクトEOが境界面3を通過すると判定する。
【0317】
情報処理部31は、敵オブジェクトEOが境界面3を通過すると判定した場合、次のステップ67に処理を進める。一方、情報処理部31は、敵オブジェクトEOが境界面3を通過しないと判定した場合、当該サブルーチンによる処理を終了する。
【0318】
ステップ67において、情報処理部31は、境界面データDdに含まれる開口判定用データの更新処理を行って、当該サブルーチンによる処理を終了する。本処理は、敵オブジェクトEOが境界面3を通過することによりできる境界面3上の開口情報を境界面データDdに登録するための処理である。例えば、第1の描画方法および第2の描画方法において、情報処理部31は、境界面データDdに含まれる開口判定用データの、敵オブジェクトEOが境界面3を通過する仮想空間上の位置に対応する位置を中心とした領域のアルファ値と開口形状データDf3のアルファ値とを乗算する。開口形状データDf3は、敵オブジェクトEOの配置位置を中心とした、アルファ値「0」が格納されたテクスチャデータである。そのため、当該乗算によって、敵オブジェクトEOの配置位置(敵オブジェクトEOが通過する境界面3上の座標)を中心として開口が生成される領域の開口判定用データのアルファ値は「0」となる。つまり、情報処理部31は、境界面3上に既に開口が存在するか否かを判定することなく、境界面の状態(具体的には開口判定用データ)を更新することができる。なお、敵オブジェクトと境界面の衝突位置に既に開口が存在するか否かを判定するようにしてもよい。そして、開口が存在しない場合には、当該衝突位置に対応する実世界画像が破片となって飛び散るエフェクトを表示してもよい。
【0319】
また、上記開口判定用データの更新処理においては、情報処理部31は、開口が生成されたことの演出処理(例えば、開口が生成された位置において壁が崩れる演出を行う)を行ってもよい。この場合、情報処理部31は、敵オブジェクトEOが境界面3を通過する位置(開口を生成する範囲)が既に開口状態であったか否かの判定をする必要がある。情報処理部31は、例えば、開口形状データDf3のアルファ値を「0」から「1」に反転させたデータと上記乗算した開口判定用データのアルファ値とを乗算することにより、開口を生成する範囲が既に開口状態であったかどうかの判定をすることができる。すなわち、開口を生成する範囲全てが既に開口状態であった場合、開口判定用データのアルファ値は「0」であるから、当該乗算結果は「0」である。他方、開口を生成する範囲の一部でも開口状態ではない場合、開口判定用データのアルファ値は「0」でない部分が存在するため、当該乗算結果は「0」以外となる。
【0320】
なお、敵オブジェクトEOの開口形状データDf3は、敵オブジェクトEOの形状に対応したアルファ値「0」を格納したテクスチャデータであるが、情報処理部31は、所定のイベントにより当該テクスチャデータのアルファ値を「1」に変換してもよい。当該変更後上記処理が行われた場合、開口形状データDf3のアルファ値が「1」であるため、開口判定用データのアルファ値は変更されない。この場合、敵オブジェクトEOは、開口を作らず、境界面3を通過する。すなわち、これによって、敵オブジェクトEOが、境界面3をすり抜けるかのような演出を行うことができる(図22参照)。なお、所定のイベントとは、例えば、乱数や所定の間隔で定められた時間間隔であってもよいし、ゲーム上の所定条件が満たされたことであってもよい。そして、これらは、例えば、メインメモリ32に保持されている各種プログラム群Paによって設定されてもよい。
【0321】
図29に戻り、上記ステップ53における敵オブジェクト関連処理の後、情報処理部31は、弾オブジェクト関連処理を行い(ステップ54)、次のステップ55に処理を進める。以下、図31を参照して、弾オブジェクト関連処理について説明する。
【0322】
図31において、情報処理部31は、設定されている移動速度ベクトルに応じて、仮想空間内で弾オブジェクトBOを移動させ(ステップ71)、次のステップ72に処理を進める。例えば、情報処理部31は、弾オブジェクトデータDgに含まれる移動速度ベクトルを示すデータに基づいて、弾オブジェクトBOの配置方向や配置位置を示すデータを更新する。この際、情報処理部31は、周知の方法で、当該移動速度ベクトルを示すデータを更新してもよい。また、例えば、情報処理部31は、弾オブジェクトBOの種類に応じて、当該移動速度ベクトルを示すデータの更新方法を変えてもよい。例えば、弾オブジェクトBOがボールである場合、情報処理部31は、仮想空間上鉛直方向における重力の影響を考慮して、当該移動速度ベクトルを示すデータを更新してもよい。
【0323】
次に、情報処理部31は、ゲーム装置10のユーザによって発射操作が行われたか否かを判断する(ステップ72)。例えば、情報処理部31は、操作子データDa1を参照して、ユーザが所定の発射操作(例えば、ボタン14B(Aボタン)の押下)を行ったか否かを判断する。そして、情報処理部31は、発射操作が行われた場合、次のステップ73に処理を進める。一方、情報処理部31は、発射操作が行われていない場合、次のステップ74に処理を進める。
【0324】
ステップ73において、情報処理部31は、発射操作に応じて、仮想空間における仮想カメラの位置に弾オブジェクトBOを配置し、当該弾オブジェクトBOに対する移動速度ベクトルを設定して、次のステップ74に処理を進める。例えば、情報処理部31は、当該発射操作に対応する弾オブジェクトデータDgを生成する。そして、例えば、情報処理部31は、仮想カメラデータDjに含まれる仮想カメラの配置位置や配置方向(視線方向)を示すデータを、生成した弾オブジェクトデータDgに含まれる弾オブジェクトBOの配置位置や配置方向を示すデータに格納する。また、例えば、情報処理部31は、生成した弾オブジェクトデータDgに含まれる移動速度ベクトルを示すデータに任意の値を格納する。当該移動速度ベクトルを示すデータに格納する値は、メインメモリ32に保持されている各種プログラム群Paによって設定されてもよい。
【0325】
ステップ74において、情報処理部31は、敵オブジェクトEOと弾オブジェクトBOとが仮想空間内で接触したか否かを判断する。例えば、情報処理部31は、敵オブジェクトデータDfに含まれる敵オブジェクトEOの配置位置を示すデータと、弾オブジェクトデータDgに含まれる弾オブジェクトBOの配置位置を示すデータとを比較して、敵オブジェクトEOと弾オブジェクトBOとが仮想空間内で接触したか否かを判断する。例えば、情報処理部31は、敵オブジェクトEOの配置位置を示すデータと弾オブジェクトBOの配置位置を示すデータとが所定の条件を満たした場合、敵オブジェクトEOと弾オブジェクトBOとが接触したと判定する。また、そうではない場合、情報処理部31は、敵オブジェクトEOと弾オブジェクトBOとが接触していないと判定する。なお、所定の条件とは、例えば、敵オブジェクトEOの配置位置と弾オブジェクトBOの配置位置との間の距離が所定の値よりも小さくなることである。当該所定の値は、例えば、敵オブジェクトEOの大きさに基づいた値であってもよい。
【0326】
そして、情報処理部31は、敵オブジェクトEOと弾オブジェクトBOとが接触したと判定した場合、次のステップ75に処理を進める。一方、情報処理部31は、敵オブジェクトEOと弾オブジェクトBOとが接触していないと判定した場合、次のステップ76に処理を進める。
【0327】
ステップ75において、情報処理部31は、加点処理を行って、次のステップ76に処理を進める。例えば、上記加点処理においては、情報処理部31は、得点データDhが示すゲームの得点を所定数だけ加点し、加点後の得点を用いて得点データDhを更新する。また、上記加点処理においては、情報処理部31は、上記ステップ84で接触したと判定された両者(すなわち、敵オブジェクトEOと弾オブジェクトBO)を仮想空間から消滅させる処理(例えば、弾オブジェクトBOと接触した敵オブジェクトEOおよび敵オブジェクトEOに接触した弾オブジェクトBOに関するそれぞれの敵オブジェクトデータDeおよび弾オブジェクトデータDgを初期化し、当該敵オブジェクトEOおよび弾オブジェクトBOが仮想空間に存在しない状態にする)を行う。なお、当該加点処理における所定値は、任意の値でよく、例えば、メインメモリ32に保持されている各種プログラム群Paによって設定されてもよい。
【0328】
ステップ76において、情報処理部31は、弾オブジェクトBOが境界面3上の非開口領域に接触したか否かを判断する。例えば、情報処理部31は、弾オブジェクトデータDgに含まれる弾オブジェクトBOの配置位置を示すデータと、開口判定用データとを用いて、弾オブジェクトBOが境界面3上の非開口領域に接触したか否かを判定する。
【0329】
例えば、情報処理部31は、弾オブジェクトデータDgに含まれる弾オブジェクトBOの配置位置を示すデータが、上記敵オブジェクトBOの処理と同様に、境界面3の球体表面の条件式を満たすか否かを判定する。そして、情報処理部31は、弾オブジェクトBOの配置位置を示すデータが、当該球体表面の条件式を満たさない場合、弾オブジェクトBOが境界面3上に接触していないと判定する。他方、弾オブジェクトBOの配置位置を示すデータが、境界面3の球体表面の条件式を満たす場合、弾オブジェクトBOは、仮想空間上、境界面3上に存在することになる。このとき、情報処理部31は、例えば、当該弾オブジェクトBOが存在する境界面3上の位置に対応する位置を中心とした所定の領域について、開口判定用データのアルファ値を取得する。この所定の領域は、弾オブジェクトBOと境界面3との接触点を中心とした所定領域である。そして、当該所定領域の少なくとも一部に対応する開口判定用データのアルファ値が非開口領域に対応するアルファ値「1」である場合、弾オブジェクトBOが境界面3上の非開口領域に接触したと判定する。
【0330】
そして、情報処理部31は、弾オブジェクトBOが境界面3上の非開口領域に接触したと判定した場合、次のステップ77に処理を進める。一方、情報処理部31は、弾オブジェクトBOが境界面3上の非開口領域に接触していないと判定した場合、次のステップ78に処理を進める。
【0331】
ステップ77において、情報処理部31は、開口判定用データの更新処理を行って、次のステップ78に処理を進める。例えば、上記更新処理においては、情報処理部31は、境界面3の非開口領域と接触したと判定した弾オブジェクトBOの配置位置に対応する境界面3上の位置を中心とした所定領域の開口判定用データのアルファ値を非開口領域に対応するアルファ値「1」に更新する。この更新処理によって、弾オブジェクトBOが非開口領域に接触すると、接触点を中心とした所定領域内における開口判定用データのアルファ値が全て「1」に更新される。したがって、上記接触点をした中心とした所定領域内において開口判定用データのアルファ値が「0」に設定されている部分がある場合、当該部分における開口判定用データのアルファ値も「1」に更新されることになる。つまり、境界面3に設けられた開口のふちに弾オブジェクトBOが接触した場合、当該接触した位置を中心とした所定領域内に含まれる開口が非開口状態に修復されることになる。また、上記更新処理においては、情報処理部31は、上記ステップ76で接触したと判定された弾オブジェクトBOを仮想空間から消滅させる処理(例えば、境界面3上の非開口領域と接触した弾オブジェクトBOに関する弾オブジェクトデータDgを初期化し、当該弾オブジェクトBOが仮想空間に存在しない状態にする)を行う。なお、当該更新処理における所定領域は、任意の領域でよく、例えば、メインメモリ32に保持されている各種プログラム群Paによって設定されてもよい。
【0332】
ステップ78において、情報処理部31は、弾オブジェクトBOが仮想空間における所定の位置まで到達したか否かを判断する。所定の位置は、例えば、仮想空間上における奥壁BWが存在する位置であってもよい。この場合、例えば、情報処理部31は、弾オブジェクトデータDgに含まれる弾オブジェクトBOの配置位置を示すデータが奥壁BWに衝突したか否かを判定する。
【0333】
そして、情報処理部31は、弾オブジェクトBOが所定の位置まで到達した場合、次のステップ77に処理を進める。一方、情報処理部31は、弾オブジェクトBOが所定の位置まで到達していない場合、当該サブルーチンによる処理を終了する。
【0334】
ステップ77において、情報処理部31は、上記ステップ76で所定の位置に到達したと判定された弾オブジェクトBOを仮想空間から消滅させる処理を行い、当該サブルーチンによる処理を終了する。例えば、情報処理部31は、上記ステップ76で所定の位置に到達したと判定された弾オブジェクトBOを仮想空間から消滅させる処理(例えば、当該弾オブジェクトBOに関する弾オブジェクトデータDgを初期化し、当該弾オブジェクトBOが仮想空間に存在しない状態にする)を行う。
【0335】
図29に戻り、上記ステップ54における弾オブジェクト関連処理の後、情報処理部31は、ゲーム装置10の動きを算出して(ステップ55)、次のステップ56に処理を進める。一例として、情報処理部31は、角速度データDa2が示す角速度を用いて、ゲーム装置10の動き(例えば、ゲーム装置10に設けられた実カメラにおける撮像方向の変化)を算出し、当該動きを用いて動きデータDiを更新する。具体的には、ユーザが実空間においてゲーム装置10に設けられた実カメラの撮像方向を変化させた場合、ゲーム装置10全体の向きも変化するため、ゲーム装置10に当該変化に応じた角速度が生じる。そして、ゲーム装置10に生じた角速度を角速度センサ40が検出することによって、当該角速度を示すデータが角速度データDa2に格納される。したがって、情報処理部31は、角速度データDa2が示す角速度を用いることによって、ゲーム装置10に設けられた実カメラの撮像方向が変化した方向や変化した量(角度)をゲーム装置10の動きとして算出することが可能となる。
【0336】
次に、情報処理部31は、ゲーム装置10の動きに応じて仮想空間における仮想カメラの方向を変更し(ステップ56)、次のステップ57に処理を進める。例えば、情報処理部31は、動きデータDiを用いて、実空間におけるゲーム装置10の実カメラの撮像方向変化と同じ変化を、仮想空間における仮想カメラに与え、変化後の仮想カメラの位置や方向を用いて仮想カメラデータDjを更新する。一例として、実空間におけるゲーム装置10の実カメラの撮像方向が左へA°変化した場合、仮想空間における仮想カメラの方向も左へA°変化させる。これによって、実空間内に配置されているように表示されている敵オブジェクトEOや弾オブジェクトBOは、実空間内におけるゲーム装置10の方向や位置が変わっても実空間内における同じ位置に配置されているように表示される。
【0337】
次に、情報処理部31は、表示画面の更新処理を行い(ステップ57)、次のステップ58に処理を進める。以下、図32Aおよび図32Bを参照して、表示画面の更新処理について説明する。図32Aは、第1の描画方法における表示画面の更新処理である。また、図32Bは、第2の描画方法における表示画面の更新処理である。
【0338】
まず、第1の描画方法における表示画面の更新処理について説明する。
【0339】
図32Aにおいて、情報処理部31は、上記ステップ52で取得した実カメラ画像を仮想カメラの視体積内におけるスクリーンオブジェクト(境界面3)に貼り付ける処理を行い(ステップ81)、次のステップ82に処理を進める。例えば、情報処理部31は、上記ステップ52で更新した実カメラ画像データDbを用いて、実世界画像データDcに含まれる実カメラ画像のテクスチャデータを更新する。そして、情報処理部31は、仮想カメラデータDjに含まれる仮想カメラの仮想空間上の配置方向および配置位置を示すデータを用いて、仮想カメラの視線方向と境界面3の重なる点を求める。情報処理部31は、求めた点を中心として実世界画像データDcに含まれる上記実カメラ画像のテクスチャデータを貼り付け、境界面データDdを更新する。このとき、情報処理部31は、テクスチャデータを貼り付ける領域に設定されている開口判定用データを、テクスチャデータの各画素に対応する領域分取得する。そして、情報処理部31は、取得した開口判定用データに設定されているアルファ値(「0」または「0.2」)を上記テクスチャデータに適用する。具体的には、情報処理部31は、貼り付ける実カメラ画像のテクスチャデータの各画素の色情報と、開口判定用データの対応する位置におけるアルファ値とを掛け算する。この処理により、上述のとおり、実世界画像に開口が表現される。なお、開口判定用データに格納されるアルファ値「0.2」(非開口領域)は、上記掛け算の際は、上述のマテリアルとしてのアルファ値「1」として取り扱われる。また、本実施形態では、境界面3に貼り付けられる実カメラ画像のテクスチャデータは、仮想カメラC0の視野範囲よりも領域の広い画像データである。
【0340】
次に、情報処理部31は、仮想空間をレンダリングする処理により表示画像を生成し(ステップ82)、当該サブルーチンによる処理を終了する。例えば、情報処理部31は、境界面3(スクリーンオブジェクト)、敵オブジェクトEO、弾オブジェクトEO、および奥壁BWが配置されている仮想空間をレンダリングした画像を生成し、当該画像を用いてレンダリング画像データDkに含まれる仮想空間のレンダリング画像データを更新する。また、情報処理部31は、仮想空間のレンダリング画像データを用いて表示画像データDlを更新する。以下、図33および図34を用いて、当該レンダリング処理の一例について説明する。
【0341】
図33は、仮想空間上における、敵オブジェクトEO、弾オブジェクトBO、境界面3(開口判定用データが設定されたスクリーンオブジェクト)および奥壁BWの配置例を示す。また、図34は、図33における仮想カメラC0が原点から(X,Y,Z)=(0,0,1)方向に向いているとした場合における各オブジェクトの位置関係を示す。このように、敵オブジェクトEO、弾オブジェクトBO、境界面3および奥壁BWが、それぞれ敵オブジェクトデータDf、弾オブジェクトデータDg、境界面データDdおよび奥壁画像データDeに含まれる配置位置を示すデータに応じて配置されている。また、仮想空間には、仮想空間をレンダリングするための仮想カメラC0が、仮想カメラデータDjに含まれる配置方向および配置位置を示すデータに応じて配置されている。
【0342】
情報処理部31は、図33(または図34)に示されるとおり境界面3を含み、仮想空間に配置された敵オブジェクトEO、弾オブジェクトBO、奥壁BWを仮想カメラC0により透視投影でレンダリングする。このとき、情報処理部31は、描画の優先度情報を考慮する。通常の透視投影では、境界面3により、第2空間2に存在するオブジェクトは描画されない。本実施形態のゲームでは、境界面3(実世界画像)に開口部を設けて、その開口部から第2空間2の一部が見えるようにした。また、第2空間2にあるオブジェクトの影を実世界画像に合成して描画するようにした。こうすることによって、実世界画像の向こうにさらに仮想世界が存在しているかのような感覚をユーザに与えることができる。具体的には、情報処理部31は、描画の優先度情報を用いて、当該レンダリング処理を行う。なお、本実施形態における画像処理プログラムは、当該描画の優先度の一例として、アルファ値を用いる。
【0343】
上記透視投影において、第2空間2に存在するオブジェクト(本実施形態では敵オブジェクトEOまたは奥壁BW)は、境界面3の背後に存在する。ここで、境界面3は、上述のステップ81により実カメラ画像のテクスチャデータが仮想カメラC0の視野方向(視野範囲)に貼られたスクリーンオブジェクトである。また、上記のとおり、実カメラ画像のテクスチャデータには、各位置に対応する開口判定用データが適用されている。したがって、仮想カメラC0の視野範囲には、開口判定用データが適用された実世界画像が存在する。
【0344】
なお、本実施形態では、例えば、情報処理部31は、開口判定用データにアルファ値「0」が格納された領域(開口領域)については、第2空間2のうち開口領域から見える領域に存在する仮想オブジェクトや奥壁BWの画像を描画(レンダリング)する。また、情報処理部31は、開口判定用データに非開口領域に対応するアルファ値「0.2」が格納された領域(非開口領域としてアルファ値「1」が格納された領域として取り扱われる領域)については、第2空間2に存在する仮想オブジェクトや奥壁BWは描画されない。すなわち、表示される画像において当該領域に対応する部分には、上述のステップ81により貼り付けられた実世界画像が描画されることになる。
【0345】
したがって、仮想カメラC0から見て開口判定用データに「0」が格納された領域については、実体データDf1、または、奥壁画像データDeに含まれる画像データが描画されるようレンダリングされる。そして、上側LCD22上において当該領域に対応する部分には、仮想オブジェクトや奥壁BWの画像が表示されることになる。
【0346】
また、仮想カメラC0から見て開口判定用データに非開口領域を示すアルファ値「0.2」が格納された領域(非開口領域としてアルファ値「1」が格納された領域として取り扱われる領域)については、第2空間2に存在する仮想オブジェクトや奥壁BWは描画されない。すなわち、上側LCD22に表示される画像において当該領域に対応する部分には、実世界画像が描画されることになる。ただし、前述の第2空間2に存在する敵オブジェクトEOの影ES(シルエットモデル)については、境界面3との間のデプス判定を無効に設定されており、境界面3のアルファ値「0.2」よりもシルエットモデルのアルファ値「1」の方が大きいため、非開口領域を示すアルファ値「1」が格納されている領域(開口判定用データにアルファ値「0.2」が格納された領域)において描画される。これにより、実世界画像上に影ESの画像が描画される。
【0347】
また、敵オブジェクトEOの影ES(シルエットモデル)は実体モデルに内包されるようなサイズでかつそのように配置され、かつ、敵オブジェクトEOの実体モデルと影ESのシルエットモデルはデプス判定有効に設定される、敵オブジェクトEOが第1空間1に存在する場合、シルエットモデルは実体モデルに隠されるため描画されない。
【0348】
なお、本実施形態における境界面3の形状は図20Aに示すように球体表面の中央部であるため、仮想カメラC0の視線方向によっては、開口判定用データが存在しない。この場合、疑似的にアルファ値を「0.2」を格納した開口判定用データが存在するものとして、上記処理を行う。つまり、開口判定用データが存在しない領域は、非開口領域を示すアルファ値「1」が格納されている領域として取り扱われる。
【0349】
また、本実施形態における敵オブジェクトEOに対応する敵オブジェクトデータDfに含まれるシルエットデータDf2は、複数の平面ポリゴンがその法線方向を敵オブジェクトEOから見て各放射方向となるように設定されており、各平面ポリゴンには、敵オブジェクトEOをその方向から見たシルエット画像のテクスチャが適用される。したがって、本実施形態における画像処理プログラムでは、仮想空間画像における敵オブジェクトEOの影は、第2空間2における敵オブジェクトEOの向きが反映された画像として表現される。
【0350】
また、情報処理部31は、照準カーソル画像データDmに含まれる画像データを仮想カメラC0の視野の中心(レンダリングする画像の中心)に優先して描画されるように上記レンダリング処理を行う。
【0351】
以上の処理によって、情報処理部31は、仮想空間に配置された敵オブジェクトEO、弾オブジェクトBO、および奥壁BWを透視投影でレンダリングし、仮想カメラC0から見た仮想世界画像(照準カーソルALを含んだ画像)を生成し、仮想空間のレンダリング画像データを更新する(ステップ82)。そして、更新した仮想空間のレンダリング画像データを用いて、表示画像データDlを更新する。
【0352】
次に、第2の描画方法における表示画面の更新処理について説明する。
【0353】
図32Bにおいて、情報処理部31は、上記ステップ52で取得した実カメラ画像をレンダリングする処理を行い(ステップ83)、次のステップ84に処理を進める。例えば、情報処理部31は、上記ステップ52で更新した実カメラ画像データDbを用いて、実世界画像データDcに含まれる実カメラ画像のテクスチャデータを更新する。そして、情報処理部31は、更新した実世界画像データDcを用いて、実カメラ画像をレンダリングした画像を生成し、生成した画像を用いて、レンダリング画像データDkに含まれる実カメラ画像のレンダリング画像データを更新する。以下、図35および図36を用いて実カメラ画像をレンダリングする処理例について説明する。
【0354】
本実施形態において情報処理部31は、図35に示すように、ゲーム装置10の実カメラから得られた実カメラ画像をテクスチャに設定し、当該テクスチャがマッピングされた平面ポリゴンを生成する。そして、情報処理部31は、実世界画像描画用カメラC1から、平行投影で上記平面ポリゴンをレンダリングした画像を実世界画像として生成する。ここで、上側LCD22の表示画面全面に、ゲーム装置10の実カメラから得られた実カメラ画像全面が表示される場合の実世界画像生成方法の一例について説明する。なお、本実施形態では上側LCD22の表示画面全体に本実施形態の合成画像(実世界画像と仮想世界画像との合成画像)が表示されるようにしたが、上側LCD22の表示画面の一部領域に合成画像が表示されるようにしてもよい。この場合には、この合成画像全体に実カメラ画像全体が表示されるようにする。
【0355】
まず、上記平面ポリゴンを配置する仮想空間の座標の1単位に対して、iピクセルのテクスチャをマッピングする平面ポリゴンを考える。この場合、上記座標の1単位×1単位の領域に対して、iピクセル×iピクセルのテクスチャがマッピングされることになる。ここで、上側LCD22の表示画面が横Wdot×縦Hdotであって、Wdot×Hdotの表示画面全面と上記実カメラ画像のテクスチャ全面とが対応しているとする。つまり、カメラ画像のテクスチャデータのサイズが横Wピクセル×縦Hピクセルであるとする。
【0356】
この場合、当該表示画面の1dot×1dotと上記実カメラ画像のテクスチャ1ピクセル×1ピクセルとが対応するように平面ポリゴンを配置することを考えればよく、図36に示すように上記座標を定めればよい。すなわち、上記カメラ画像のテクスチャが主面全面にマッピングされた平面ポリゴンの幅がW/i座標分となり、平面ポリゴンの縦がH/i座標分となるように、当該平面ポリゴンを配置する仮想空間のXY座標を設定する。そして、上記テクスチャがマッピングされた平面ポリゴンの主面中心を仮想空間のXY座標の原点に一致させ、当該平面ポリゴンの横方向がX軸方向(右方向がX軸正方向)となり、当該平面ポリゴンの縦方向がY軸方向(上方向がY軸正方向)となるように当該平面ポリゴンを配置する。この場合、上記テクスチャがマッピングされた平面ポリゴンの主面における右上角位置が(X,Y)=(W/2i,H/2i)に配置され、右下角位置が(X,Y)=(W/2i,−H/2i)に配置され、左上角位置が(X,Y)=(−W/2i,H/2i)に配置され、左下角位置が(X,Y)=(−W/2i,−H/2i)に配置されることになる。
【0357】
このように配置すれば、上記座標の1単位×1単位の領域が、テクスチャのiピクセル×iピクセルの領域に対応するため、平面ポリゴンの横(W/i)×縦(H/i)の領域は、テクスチャのWピクセル×Hピクセルのサイズに対応する。
【0358】
以上のとおり、表示画面上の1dotと実カメラ画像(テクスチャ)の1ピクセルとが対応するように、仮想空間の座標に配置された平面ポリゴンを平行投影でレンダリングすることによって、ゲーム装置10の実カメラから得られた実カメラ画像に対応する実世界画像が生成される。
【0359】
なお、上述のとおり、実世界画像データDcに含まれる実カメラ画像のテクスチャデータは、実カメラ画像データDbによって更新されるが、実カメラ画像データDbの画像の横A×縦Bのサイズと当該テクスチャデータの横W×縦Hのサイズが一致しない場合が存在する。この場合、情報処理部31は、任意の方法で、当該テクスチャデータの更新を行う。例えば、情報処理部31は、W×Hサイズの画像(テクスチャデータの画像)に合うように、実カメラ画像データDbの画像の横Aおよび縦Bのサイズを拡大および縮小した画像を用いて、テクスチャデータを更新してもよい。また、例えば、実カメラ画像データDbの画像の横Aおよび縦Bのサイズが、テクスチャデータの横Wおよび縦Hのサイズよりも大きいとする。この場合、例えば、情報処理部31は、実カメラ画像データDbの画像の所定位置より、W×Hサイズの画像(テクスチャデータの画像)を切り出し、当該テクスチャデータを更新してもよい。また、例えば、実カメラ画像データDbの画像の横Aおよび縦Bのサイズの少なくともどちらか一方が、テクスチャデータの横Wおよび縦Hのサイズよりも小さいとする。この場合、例えば、情報処理部31は、実カメラ画像データDbの画像をテクスチャデータのサイズよりも大きくなるように拡大した後、拡大後の画像の所定の位置より、W×Hサイズの画像(テクスチャデータの画像)を切り出し、当該テクスチャデータを更新してもよい。
【0360】
また、本実施形態において、上側LCD22の表示画面の横×縦のサイズと、実カメラ画像のテクスチャデータの横×縦のサイズとが一致しているが、これらは一致していなくともよい。この場合、上側LCD22の表示画面と実世界画像のサイズが一致しないことになるが、情報処理部31は、上側LCD22の表示画面に実世界画像を表示する際、周知の方法で、実世界画像のサイズを変更すればよい。
【0361】
次に、情報処理部31は、図32Bに示されるとおり、仮想空間をレンダリングする処理を行い(ステップ84)、次のステップ85に処理を進める。例えば、情報処理部31は、開口判定用データを考慮して、敵オブジェクトEO、弾オブジェクトBO、および奥壁BWが配置されている仮想空間をレンダリングした画像を生成し、当該画像を用いて、レンダリング画像データDkに含まれる仮想空間のレンダリング画像データを更新する。以下、図37図39を用いて、当該レンダリング処理の一例について説明する。
【0362】
図37は、仮想空間上における、敵オブジェクトEO、弾オブジェクトBO、境界面3(開口判定用データ)および奥壁BWの配置例を示す。また、図38は、図37における仮想カメラ(仮想世界描画用カメラ)が原点から(X,Y,Z)=(0,0,−1)方向に向いているとした場合における各オブジェクトの位置関係を示す。このように、敵オブジェクトEO、弾オブジェクトBO、境界面3および奥壁BWが、それぞれ敵オブジェクトデータDf、弾オブジェクトデータDg、境界面データDdおよび奥壁画像データDeに含まれる配置位置を示すデータに応じて配置されているとする。また、仮想空間には、仮想空間をレンダリングするための仮想世界描画用カメラC2が、仮想カメラデータDjに含まれる配置方向および配置位置を示すデータに応じて配置されている。
【0363】
ここでまず、境界面3(開口判定用データ)の位置について説明する。上述したとおり、本実施形態における画像処理プログラムでは、開口判定用データと実世界画像(実カメラ画像のレンダリング画像データ)の色情報とが掛け算されることで、開口が付与された実画像が生成される。したがって、例えば、実カメラ画像のレンダリング画像データ(図35および図36の平面ポリゴンの位置関係を参照)の横1座標×縦1座標と、仮想空間における境界面3(具体的には、開口判定用データ)の横1座標×縦1座標とが対応しているとする。つまり、図37または図38に示す仮想世界描画用カメラC2から境界面3を透視投影により見たときに、仮想世界描画用カメラC2による境界面3の視野範囲が実カメラ画像のレンダリング画像データの横×縦のサイズに対応しているものとする。
【0364】
図39は、仮想世界描画用カメラC2を境界面3との位置関係の例を示す。原点から(X,Y,Z)=(0,0,−1)方向に向いた仮想世界描画用カメラC2により境界面3を透視投影することを考える。この場合、図39に示すZ=Z0の位置に境界面3が配置されているとすれば、開口判定用データの横1座標×縦1座標と実カメラ画像のレンダリング画像データの横1座標×縦1座標とが対応することになる。ここで、Z=Z0の位置は、境界面3を透視投影する仮想世界描画用カメラC2のY軸方向の画角をθとした場合に、仮想世界描画用カメラC2の注視点からY軸正方向への表示範囲の長さH/2iとなる位置である。なお、上述したように、Hは上側LCD22の表示画面における縦のドット数であり、iは仮想空間の座標の1単位に対してマッピングするテクスチャのピクセル数である。そして、仮想世界描画用カメラC2の中心からZ=Z0の位置までの距離をD(D>0)とすると、以下の数1が成立する。
【0365】
tanθ=(H/2i)/D=H/2Di
したがって、境界面3を考慮して、後述する敵オブジェクトEO等を透視投影して仮想世界画像を生成する場合、当該仮想世界画像を生成する仮想世界描画用カメラC2は「Y軸方向の画角θ=tan−1(H/2Di)、アスペクト比=W:H」と設定される。そして、境界面3(具体的には境界面3の状態を示す開口判定用データ)は、仮想世界描画用カメラC2からのビュー座標Z=Z0に配置される。これにより、仮想世界描画用カメラC2による境界面3の視野範囲が大きさW×Hとなる。
【0366】
次に、仮想空間のレンダリング処理について説明する。以上の位置に境界面3が存在するものとして、情報処理部31は、仮想空間をレンダリングした画像を生成する。情報処理部31は、後に実世界画像を合成することを考慮して、当該レンダリング処理を行う。以下、当該レンダリング処理の一例を具体的に説明する。
【0367】
情報処理部31は、図37(または図38)に示されるとおり境界面3が存在しているものとして、仮想空間に配置された敵オブジェクトEO、弾オブジェクトBO、奥壁BWを仮想世界描画用カメラC2により透視投影でレンダリングする。このとき、情報処理部31は、描画の優先度情報を考慮する。通常の透視投影では、仮想空間上において仮想カメラから見て手前にあるオブジェクトが優先的に描画されるようにレンダリングされる。したがって、通常の透視投影では、境界面3が存在するため、第2空間2にあるオブジェクトは描画されないことになる。本実施形態のゲームでは、境界面3(実世界画像)に開口部を設けて、その開口部から第2空間2の一部が見えるようにした。また、第2空間2にあるオブジェクトの影を実世界画像に合成して描画するようにした。こうすることによって、実世界画像の向こうにさらに仮想世界が存在しているかのような感覚をユーザに与えることができる。具体的には、情報処理部31は、描画の優先度情報を用いて、当該レンダリング処理を行う。なお、本実施形態における画像処理プログラムは、当該描画の優先度情報の一例として、アルファ値を用いる。
【0368】
上記透視投影において、第2空間2に存在するオブジェクト(本実施形態では敵オブジェクトEOまたは奥壁BW)は、境界面3の背後に存在する。ここで、境界面3には、開口判定用データが設定されている。開口判定用データは、上述のとおり、アルファ値を格納した矩形のテクスチャデータであり、テクスチャデータ上の各座標は、仮想空間の境界面の各位置に対応する。したがって、情報処理部31は、仮想世界描画用カメラC2による第2空間2に存在するオブジェクトの視野範囲に対応する開口判定用データの領域を特定することができる。
【0369】
なお、本実施形態では、例えば、情報処理部31は、開口判定用データにアルファ値「0」が格納された領域(開口領域)については、第2空間2のうち開口領域から見える領域に存在する仮想オブジェクトや奥壁の画像を描画(レンダリング)する。また、情報処理部31は、開口判定用データに非開口領域に対応するアルファ値「0.2」が格納された領域(非開口領域としてアルファ値「1」が格納された領域として取り扱われる領域)については、第2空間2に存在する仮想オブジェクトや奥壁は描画されない。すなわち、表示される画像において当該領域に対応する部分には、後述のステップ85の合成処理により、実世界画像が描画されることになる。
【0370】
したがって、仮想世界描画用カメラC2から見て開口判定用データに「0」が格納された領域については、実体データDf1、または、奥壁画像データDeに含まれる画像データが描画されるようレンダリングされる。そして、後述のステップS85の合成処理により、上側LCD22上において当該領域に対応する部分には、仮想オブジェクト・奥壁の画像が表示されることになる。
【0371】
また、仮想世界描画用カメラC2から見て開口判定用データに非開口領域を示すアルファ値「0.2」が格納された領域(非開口領域としてアルファ値「1」が格納された領域として取り扱われる領域)については、第2空間2に存在する仮想オブジェクトや奥壁は描画されない。すなわち、上側LCD22に表示される画像において当該領域に対応する部分には、後述のステップ85の合成処理により、実世界画像が描画されることになる。ただし、前述の敵オブジェクトEOの影ES(シルエットモデル)については、境界面3との間のデプス判定を無効に設定されており、境界面3のアルファ値「0.2」よりもシルエットモデルのアルファ値「1」の方が大きいため、非開口領域を示すアルファ値「1」が格納されている領域において描画される。これにより、実世界画像上に敵オブジェクトEOの影ESが描画される。また、敵オブジェクトEOのシルエットモデルは実体モデルに内包されるようなサイズでかつそのように配置され、かつ、敵オブジェクトEOの実体モデルとシルエットモデルはデプス判定有効に設定される、敵オブジェクトEOが第1空間1に存在する場合、シルエットモデルは実体モデルに隠されるため描画されない。
【0372】
なお、本実施形態における境界面3の形状は図20Aに示すように球体表面の中央部であるため、仮想世界描画用カメラC2の視野方向によっては、開口判定用データが存在しない。この場合、疑似的にアルファ値を「0.2」を格納した開口判定用データが存在するものとして、上記処理を行う。つまり、開口判定用データが存在しない領域は、非開口領域を示すアルファ値「1」が格納されている領域として取り扱われる。
【0373】
なお、本実施形態における敵オブジェクトEOに対応する敵オブジェクトデータDfに含まれるシルエットデータDf2は、複数の平面ポリゴンがその法線方向を敵オブジェクトから見て各放射方向となるように設定されており、各平面ポリゴンには、敵オブジェクトをその方向から見たシルエット画像のテクスチャが適用される。したがって、本実施形態における画像処理プログラムでは、仮想空間画像における敵オブジェクトEOの影ESは、第2空間2における敵オブジェクトの向きが反映された画像として表現される。
【0374】
以上の処理によって、情報処理部31は、仮想空間に配置された敵オブジェクトEO、弾オブジェクトBO、および奥壁BWを透視投影でレンダリングし、仮想世界描画用カメラC2から見た仮想世界画像を生成し、仮想空間のレンダリング画像データを更新する(図32Bのステップ84)。なお、当該処理によって生成される画像は、図40に示される表示画像から実世界画像を除いた画像である。
【0375】
次に、情報処理部31は、実世界画像と仮想空間画像とを合成した表示画像を生成し(ステップ85)、当該サブルーチンによる処理を終了する。
【0376】
例えば、情報処理部31は、実カメラ画像のレンダリング画像データと仮想空間のレンダリング画像とを、仮想空間のレンダリング画像を優先して、合成することによって、実世界画像と仮想空間画像とが合成された画像を生成する。そして、情報処理部31は、当該合成画像の中心(仮想世界描画用カメラC2の視野の中心)に、照準カーソル画像データに含まれる画像データを優先して合成することによって表示画像(図40)を生成する。図40は、第1の描画方法または第2の描画方法により生成される表示画像の一例を示す。なお、情報処理部31は、仮想空間のレンダリング画像データに仮想空間画像が格納されていない場合、カメラ画像のレンダリング画像データに格納される実世界画像をそのまま表示画像データDlに格納すればよい。
【0377】
以上により、第1の描画方法または第2の描画方法により表示画像の更新に関する処理(サブルーチン)が完了する。
【0378】
図29に戻り、上記ステップ57における表示画像の更新に関する処理の後、情報処理部31は、更新した表示画像を上側LCD22に表示して(ステップ58)、次のステップ59に処理を進める。例えば、情報処理部31のCPU311は、上記ステップ57により更新された表示画像データDl(表示画像)をVRAM313に格納する。そして、情報処理部31のGPU312が、VRAM313に描画された表示画像を上側LCD22に出力することによって、上側LCD22に当該表示画像が表示される。
【0379】
次に、情報処理部31は、ゲームを終了するか否かを判断する(ステップ59)。ゲームを終了する条件としては、例えば、上記の所定の条件(ゲームクリアまたはゲームオーバー)が満たされたことや、ユーザがゲームを終了する操作を行ったこと等がある。情報処理部31は、ゲームを終了しない場合、上記ステップ52に戻って処理を繰り返す。一方、情報処理部31は、ゲームを終了する場合、当該フローチャートによる処理を終了する。
【0380】
<第1の実施形態に係る画像処理の作用および効果>
以上述べたように、本実施形態に係る画像処理プログラムでは、図15および図16の処理で例示したように、顔画像取得処理で取得された顔画像は、ユーザがゲーム(第1のゲーム)で成功するまでは、ユーザに解放されない。すなわち、ゲームで成功するまでは、ユーザは、取得された顔画像をゲームのセーブデータ記憶域Doに保存できない。また、ユーザは、取得された顔画像を複製、変更、転送等することができない。逆に、ゲーム不成功の状態で、ゲームの再試行をやめると、取得されていた顔画像が廃棄されて、処理が終了する。また、第1のゲームの処理の仕方、例えば、実行モード、あるいは、仕様によっては、第1のゲームの結果が不成功となると、直ちに、顔画像が廃棄されて、処理が終了する。したがって、取得された顔画像が引き渡されるまで、つまり顔画像がセーブデータ記憶域Doに保存されるまで、ユーザは、ゲームに執着し、熱意を持って成功を目指すようになる。すなわち、本実施形態の画像処理プログラムによれば、ユーザが極めて真剣にゲームに取り組むことができる。
【0381】
また、ゲームの開始時のユーザのGUIに対する操作として、「内側撮像部24による顔画像の取得」が指示され(図14のステップ9でYesの場合)、顔画像取得処理1(図14のステップ10)が実行されると、以下のような効果も期待できる。すなわち、ゲーム開始するとき(典型的には、第1のゲームを開始する前)に、内側撮像部24を用いて撮像することで顔画像を取得すると、撮像毎に異なる顔画像が得られる。このため、例えば、他の装置に記憶されている特定の画像を選択して、選択した画像をゲームで用いる場合と比較して、ゲーム成功への意欲が増すことになる。また、外側撮像部23による顔画像取得処理2(図14のステップ12)の場合にも、同様の効果が期待できる。ゲーム開始するとき(典型的には、第1のゲームを開始する前)に、外側撮像部23を用いて撮像することで顔画像を取得しても、撮像毎に異なる顔画像が得られるからである。
【0382】
また、本実施形態に係る画像処理プログラムによれば、上記第1のゲームに成功することで、セーブデータ記憶域Doに、ユーザ自身の顔画像、ユーザの周りの人の顔画像、ビデオ機器で得られた画像中の顔画像、ユーザの保有する生物の顔画像等、様々な顔画像を収集することができる。ゲーム装置10は、収集した顔画像を例えば、図7および図8のような画面に表示することができる。そして、ゲーム装置10は、例えば、図8のような画面では、選択状態にある顔画像と関連の顔画像が反応を示す状態を表現できる。反応は、例えば、選択状態にある顔画像に向かって片目をつぶり、視線を送る、顔を向ける等である。したがって、ゲーム装置10は、ゲーム装置10内に収集した顔画像による仮想現実の世界に、実世界の人間関係、親密さ等に基づく関係を表現できる。その結果、顔画像を収集したユーザに、顔画像による仮想現実の世界への親近感、収集した顔画像に対する親しみ、実世界の人、あるいは生物に対する感情と同様の感情等を引き起こさせることができる。
【0383】
また、本実施形態の画像処理プログラムによれば、収集した顔画像を敵オブジェクトEOの顔面部分にテクスチャマッピングすることによって、敵オブジェクトEOを生成し、ゲームを実行できる。ユーザは、ゲームに登場する敵オブジェクトEOに、収集した顔画像を貼り付けることで、いわば、配役を自由に決定できる。したがって、ユーザは、ゲームの実行時、敵オブジェクトEOの顔から得られる効果によって、ますます、ゲームに熱中する可能性を高めることができる。
【0384】
さらに、本実施形態の画像処理プログラムによれば、敵オブジェクトEOを生成する際にも、敵オブジェクトEOに貼り付けるために、顔画像が選択状態になったときに、選択状態になった顔画像に関連する顔画像が反応を示す。したがって、敵オブジェクトEOの配役を決定するユーザに、仮想現実の世界への親近感、一覧表示された顔画像に対する親しみ、実世界の人に対する感情と同様の感情等を引き起こさせることができる。
【0385】
なお、上記第1の実施形態では、敵オブジェクトEOに顔画像を貼り付けることで、敵オブジェクトEOを生成した。しかし、このような処理は、敵オブジェクトEOの生成に限定される訳ではなく、ゲームに登場するキャラクタオブジェクト一般の生成に適用できる。例えば、ゲーム装置10の操作、あるいはゲームの進行をガイドするエージェントなどに、ユーザが取得した顔画像を貼り付けるようにしてもよい。また、ゲーム装置10に登場する、ユーザ自身を模擬したキャラクタオブジェクト、ユーザと友好的な関係でゲームに登場するキャラクタオブジェクト、ゲーム装置の持ち主を表すキャラクタオブジェクト等に、ユーザが取得した顔画像を貼り付けるようにしてもよい。
【0386】
上記では、顔画像として人の顔を想定したが、本発明の実施は、人の顔画像に限定されるものではなく、動物の顔画像にも適用できる。例えば、犬、猫、馬等のほ乳類、鳥類、魚類、は虫類、両生類、昆虫等、様々な動物の顔画像を取得のために、上記第1の実施形態で説明した顔画像取得処理を実行し、顔画像を収集してもよい。例えば、ゲーム装置10によれば、図8の画面において人と人との関係で例示したように、選択状態にある人に対して、小鳥がさえずり、あるいは、犬が吠え、猫が視線を向けるというように、実世界の人と動物との関係を表現できる。逆に、ペットと主人の関係において、ペットの顔画像が選択状態にされたときに、主人とその家族に相当する顔画像が微笑む、あるいは、視線をペットの方に向けるというように、ゲーム装置10は、実世界の感情、意識、関係を仮想世界の中に反映することできる。そして、配役決定処理により、敵オブジェクトEO、その他のキャラクタオブジェクトに収集した顔を貼り付けることによって、実世界の関係をユーザに意識させつつゲームを実行させることができる。
【0387】
なお、ペットと主人の関係、主人とその家族の関係等は、UIF(ユーザインターフェイス)を通じて、顔画像管理情報Dn1によって定義し、顔画像間の関係として、参照できるようにしておけばよい。単純に、好き、嫌い等の感情、好きな人のペット、嫌いな人のペットなどの感情の善し悪しを定義できるようにしておけばよい。また、例えば、主人の顔画像でのゲームの結果が成功であったときに、ゲームのセーブデータ記憶域Doに保存できた動物の顔画像は、その主人と親密な関係にあるとの設定が、顔画像管理情報Dn1に記録できるようにしてもよい。ゲーム装置10によれば、ユーザは、以上のようにして収集した様々の顔画像を基に、キャラクタオブジェクトを生成、実世界の意識を反映したゲームを実行できるのである。
【0388】
また、本実施形態に係る画像処理プログラムでは、図16に示したように、2つの外側撮像部23(外側左撮像部23aおよび外側右撮像部23b)よりも先に内側撮像部24による撮像によって顔画像を取得するように、ユーザを誘導する。内側撮像部24は、主として、ゲーム装置10を操作するユーザを撮像するものであるため、ユーザ以外の人の撮像には使用しづらい。また、内側撮像部24は、主として、ゲーム装置10を操作するユーザを撮像するものであるため、持ち主の撮像に適する。したがって、この処理によれば、ゲーム装置10のユーザあるいは持ち主が誰もゲーム装置10に顔画像を保存しない状態での外側撮像部23の使用を禁止する効果がある。したがって、例えば、持ち主の特定されないゲーム装置10、あるいは、ユーザの特定されないゲーム装置10を第三者が用いて画像を撮像することを禁止する可能性を高めることができる。
【0389】
また、本実施形態に係る画像処理プログラムでは、図19A図19Cに示したように、情報処理部31は、未取得の属性に該当する顔画像を優先して撮像をするように、ユーザを誘導する。このような処理によって、極力、属性の偏りのない顔画像取得を望むユーザの顔画像収集処理を支援することができる。
【0390】
また、本実施形態に係る画像処理プログラムでは、実カメラから得られた実世界画像と、当該実世界画像の背後に存在するオブジェクトを含む仮想空間画像とが合成されて表示される。
【0391】
したがって、本実施形態に係る画像処理プログラムは、実世界の画像を用いた背景に非現実を表す描画を行うことでユーザの興味を引くことができる画像を生成することができる。
【0392】
また、当該合成されて表示される画像における当該実世界画像の背後に存在するオブジェクト(例えば、第2空間2に存在する敵オブジェクトEO)は、実世界画像(境界面3)に開口が存在する領域においては、実像が表示される。また、当該オブジェクトは、実世界画像に開口が存在しない領域においては、影画像が表示される(図24参照)。さらに、当該実像および影画像は、当該オブジェクトの仮想空間上における配置方向または、移動方向に応じた向きに対応する画像である。
【0393】
したがって、本実施形態に係る画像処理プログラムは、実世界画像のさらに背後に存在するオブジェクトの数や移動方向等の動向をユーザが認識することができる画像を生成することができる。
【0394】
また、本実施形態に係る画像処理プログラムでは、奥壁BWの画像データとして、宇宙の画像等の非現実空間の画像が用いられ得る。当該非現実空間の画像は、実世界画像の開口を通して視認され得る。当該開口は、仮想空間上の位置が特定される。そして、実カメラの向きと仮想カメラの向きは対応づけられている。
【0395】
したがって、本実施形態に係る画像処理プログラムは、実カメラの向きに応じた位置に開口を設けることができ、実世界画像の同じ位置に開口を表現することができる。すなわち、本実施形態に係る画像処理プログラムは、実カメラの向きを変えても現実空間の同じ位置に開口が表現されるため、現実空間と非現実空間とが繋がったかのごとくユーザに認識させる画像を生成することができる。
【0396】
また、開口が表現された実世界画像は、実カメラから得られる実世界画像とアルファ値との掛け算によって生成される。
【0397】
したがって、本実施形態に係る画像処理プログラムは、簡便な方法で開口を表現および生成することができる。
【0398】
また、敵オブジェクトEOが境界面3を通過することにより生成する実世界画像の開口は、敵オブジェクトデータDfに含まれる開口形状データDf3を開口判定用データの所定の位置に掛け算することで生成される。
【0399】
したがって、本実施形態に係る画像処理プログラムは、簡便な方法で衝突したキャラクタの形状に対応した開口を設定することができる。
【0400】
また、本実施形態に係る画像処理プログラムでは、アルファ値の比較によって、影画像の描画を実現することができる。また、シルエットデータDf2に設定されたアルファ値の変更によって、影画像の描画のオンまたはオフを切り替えることができる。
【0401】
したがって、本実施形態に係る画像処理プログラムは、影画像の描画をGPUに任せることができ、また、影の表示または非表示を単純な操作で切り替えることができる。
【0402】
(第2の実施形態)
以下、図41および図42を参照して、本発明の第2の実施形態に係る画像処理プログラムを実行する画像処理装置について説明する。第1の実施形態では、顔画像取得処理1(図14のステップ10)および顔画像取得処理2(図14のステップ12)において、第1のゲームが実行され、ユーザが第1のゲームで成功した場合に、ゲーム装置10は、顔画像取得処理1および顔画像取得処理2で取得した画像をセーブデータ記憶域Doに格納することを許容する。そして、ユーザは、第1のゲームに成功すれば、同様の処理で取得した顔画像を順次、セーブデータ記憶域Doに追加していくことができる。そして、ゲーム装置10は、セーブデータ記憶域Doに収集された顔画像から、例えば、ユーザの操作にしたがって、あるいは、自動的に、敵オブジェクトEO等のキャラクタオブジェクトを作成する。そして、ゲーム装置10は、ユーザに対して、ユーザが収集した顔画像を基に作成されたキャラクタオブジェクトを第1のゲーム(図15のステップ106、図16のステップ129)、あるいは、第2のゲーム(図14のステップ18)等に登場させ、ユーザに、実世界の人間関係等を反映した仮想世界を提供する。したがって、ユーザは、そのような実世界を反映した仮想世界で、例えば、図20A図26に示したようなゲームを実行し、楽しむことができる。本実施形態では、そのような実世界を反映した仮想世界での他のゲーム処理の例を説明する。本実施形態のゲームも、第1の実施形態と同様、ゲーム装置10の情報処理部31が、メインメモリ32に展開された画像処理プログラムを実行することで、ユーザに提供される。また、本実施形態のゲームは、第1の実施形態のゲームと同様、例えば、図14に示したステップ10による顔画像取得処理1およびステップ12による顔画像取得処理2のための第1のゲーム(図15のステップ106、図16のステップ129)として実行してもよい。また、本実施形態のゲームは、例えば、第2のゲーム(図14に示したステップ18)と同様、顔画像が収集され、ゲームのセーブデータ記憶域Doに蓄積されていることを前提として実行されるようにしてもよい。
【0403】
図41は、本実施形態に係るゲーム装置10の上側LCD22に表示される画面の例である。この画面の作成手順は、上記第1の実施形態と同様である。すなわち、ユーザは、例えば、ゲーム装置10の下側ハウジング11と上側ハウジング21とを開状態として、図4のように、下側ハウジング11を両手に持つ場合を想定する。このとき、ユーザは、上側LCD22の表示画面を見ることができる。そして、この状態では、外側撮像部23は、例えば、ユーザの視線前方の空間を撮像することが可能である。本実施形態のゲームの実行中、ゲーム装置10は、画面の背景に、外側撮像部23が撮像した画像を写し出す。より具体的には、情報処理部31は、外側撮像部23が撮像した画像をフレーム単位で、ゲームの画面の背景部分にテクスチャマッピングしている。ユーザがゲーム装置10を手に持って方向を変えると、変化後の外側撮像部23の視線方向から外側撮像部23を通じて取得された画像がゲームの背景に表示されることになる。すなわち、図41の画面の背景には、ユーザがゲーム装置10の外側撮像部23を向けた方向から取得された画像が埋め込まれる。
【0404】
さらに、この画面では、上記背景に対して、例えば、図10の画面例、および図18の配役決定処理で説明した手順にしたがって作成された敵オブジェクトEO1が表示されている。敵オブジェクトEO1の顔面部分には、図18の配役決定処理で選択された顔画像がテクスチャマッピングされて表示されている。なお、敵オブジェクトEO1の顔面部は、必ずしもテクスチャマッピングによって形成しなくてもよく、単に、図9に示した敵オブジェクトEOの頭部形状の周辺部分H13と顔画像とを組み合わせることで、敵オブジェクトEO1を表示するようにしてもよい。そこで、以下では、敵オブジェクトの顔面部分に、顔画像が貼り付けられている、という記述する。
【0405】
さらに、図41では、敵オブジェクトEO1の周りに、敵オブジェクトEO1よりも形状の小さい敵オブジェクトEO2−EO7が表示されている。このように、図41の画面では、敵オブジェクトEO1−EO7の合計7個の敵オブジェクトEOが表示されている。ただし、本実施形態に係るゲーム装置10の処理において、敵オブジェクトEOの数が7個に限定される訳でない。なお、すでに第1の実施形態で説明したように、敵オブジェクトEO1−EO7等を区別する必要がない場合には、敵オブジェクトEOと呼ぶ。
【0406】
また、敵オブジェクトEO1−EO7のいずれか1以上、例えば、敵オブジェクトEO6には、敵オブジェクトEO1と同一の顔画像が貼り付けされている。一方、他の敵オブジェクトEO2−EO5等には、敵オブジェクトEO1とは異なる顔画像が貼り付けられている。
【0407】
さらに、図41の画面内には、敵オブジェクトEO1等を攻撃するための照準カーソルALが表示されている。照準カーソルALと、背景および敵オブジェクトEO1等の位置関係、および相対移動の関係は、第1の実施形態(図23図26)で説明したものと同様である。
【0408】
すなわち、敵オブジェクトEO1は、図41の画面内を自在に動き回る。より具体的には、外側撮像部23が写し出した画像を背景とする仮想空間を自在に動き回る。したがって、上側LCD22を見るユーザには、自身が位置する空間内を敵オブジェクトEO1が自在に動くように見える。また、敵オブジェクトEO2−EO7は、敵オブジェクトEO1の周りに配置される。
【0409】
したがって、仮想空間を自在に動き回る敵オブジェクトEO1−EO7に対して、ユーザがゲーム装置10の向きを変えることで、画面に表示された照準カーソルALを敵オブジェクトEO1−EO7に合わせることが可能となる。敵オブジェクトEO1に照準カーソルALを合わせた状態で、トリガボタンに相当する操作ボタン14B(Aボタン)を押下することで、敵オブジェクトEO1−EO7に向けて弾を撃つことができる。
【0410】
ただし、本実施形態のゲームでは、敵オブジェクトEO1−EO7のうち、敵オブジェクトEO1と同一の顔画像を有するもの以外への攻撃は、有効な攻撃とはならない。例えば、ユーザが、敵オブジェクトEO1および敵オブジェクトEO1と同一の顔画像を有する敵オブジェクトを攻撃した場合には、ユーザの得点となる。あるいは、敵オブジェクトの失点となる。また、敵オブジェクトEO1よりも寸法の小さい、敵オブジェクトEO2−EO7を攻撃した方がユーザの得点が高いものとする。あるいは、敵オブジェクトEO2−EO7が攻撃された場合の敵オブジェクトの失点は、敵オブジェクトEO1が攻撃された場合よりも、大きいとする。しかしながら、敵オブジェクトEO2−EO7のうち、敵オブジェクトEO1と異なる顔画像の敵オブジェクトへの攻撃は無効な攻撃となる。すなわち、ユーザには、敵オブジェクトEO1と同一の敵オブジェクトを攻撃する義務が課せられることになる。以下、敵オブジェクトEO1と異なる顔画像の敵オブジェクトを誤認用オブジェクトと呼ぶ。なお、図41では、敵オブジェクトEO2−EO7は、同一種類の頭部形状を有している。しかし、敵オブジェクトEO2−EO7のうち、誤認用オブジェクトである、敵オブジェクトEO2−EO5、EO7等のいずれかは、異なる種類の頭部形状を有するようにしてもよい。なお、すでに述べたように、個々の敵オブジェクトEO1−EO7等を区別しない場合、単に、敵オブジェクトEOという。
【0411】
図42により、ゲーム装置10の情報処理部31で実行される画像処理プログラムによる動作例を説明する。図42は、情報処理部31による動作の一例を示すフローチャートである。この処理では、情報処理部31は、例えば、顔画像の選択を受け付け、敵オブジェクトを生成する(ステップ30)。ステップ30の処理は、例えば、図18の配役決定処理と同様である。
【0412】
次に、情報処理部31が、誤認用オブジェクトを生成する(ステップ31)。誤認用オブジェクトの生成は、例えば、敵オブジェクトEOの頭部形状の顔面部分に、ステップ30で指定された敵オブジェクトEOの顔画像以外の顔画像を貼り付ければよい。誤認用オブジェクトの顔画像の指定に限定はない。例えば、図7および図8に示したようなユーザが取得済みの顔画像から、誤認用オブジェクトの顔画像を選択してもよい。また、例えば、ゲーム装置10の出荷前にデータ保存用内部メモリ35に、事前に誤認用オブジェクトの顔画像を格納しておいてもよい。また、画像処理プログラムのインストール時、あるいは、バージョンアップ時に、誤認用オブジェクトの顔画像も、併せてデータ保存用内部メモリ35に格納するようにしてもよい。また、例えば、敵オブジェクトEOの顔画像を変形させた顔画像、例えば、目、鼻、口など、顔のパーツを他の顔画像と入れ替えた顔画像を誤認用オブジェクトに用いてもよい。
【0413】
次に、情報処理部31は、敵オブジェクトEOおよび誤認用オブジェクトによるゲームを開始する(ステップ32)。そして、情報処理部31は、ユーザによる攻撃があったか否かを判定する(ステップ33)。ユーザによる攻撃は、図41に示した照準カーソルALを敵オブジェクトEOに合わせた状態でのトリガの入力、例えば、操作ボタン14Bの押下によって検知される。ユーザによる攻撃があった場合、情報処理部31は、適正な敵オブジェクトEOへの攻撃か否かを判定する(ステップ35)。適正な敵オブジェクトEOに対する攻撃がなされた場合、情報処理部31は、敵オブジェクトEOを破壊し、ユーザの得点を追加する(ステップ36)。一方、ステップ35の判定で、適正な敵オブジェクトEO以外の誤認用オブジェクトへの攻撃が検知された場合、情報処理部31は、無効な攻撃であるとして、なにもしない。さらに、ステップ33の判定で、ユーザによる攻撃がなかった場合、情報処理部31は、他の処理を実行する(ステップ34)。他の処理は、例えば、それぞれのゲーム特有の処理である。例えば、図41の敵オブジェクトEO6、誤認用オブジェクトEO2−EO5を増殖する処理、図41の敵オブジェクトEO6の位置と誤認用オブジェクトEO2−EO7等の位置とを入れ替える処理である。
【0414】
そして、情報処理部31は、ゲーム終了か否かを判定する(ステップ37)。ゲーム終了は、例えば、ユーザが、増殖する敵オブジェクトEOをすべて破壊し尽くしたとき、ユーザの得点が基準値を超えた場合等である。あるいは、ゲーム終了は、例えば、敵オブジェクトEOが所定限度を超えて増殖した場合、ユーザの失点が所定の限度を超えた場合等である。ゲーム終了でない場合、情報処理部31は、制御をステップ33に戻す。
【0415】
以上述べたように、本実施形態の画像処理プログラムによれば、収集した顔画像を用いて、敵オブジェクトEOを作成してゲームを実行できる。したがって、ユーザは、現実の世界に存在する人の顔画像を基に、仮想現実の世界でのゲームを遂行することができる。
【0416】
また、本実施形態のゲーム装置10によれば、適正な敵オブジェクトEOと、誤認用オブジェクトの組み合わせによって、ユーザの混乱を生じさせつつ、ゲームが実行される。したがって、ユーザは、敵オブジェクトEOの顔画像の正確な把握が求められる。その結果、ユーザには、敵オブジェクトEOを見分ける処理能力、集中力が要求される。したがって、本実施形態のゲーム装置10は、ユーザにゲームを実行するときの緊張感を発生させ、あるいは、顔画像認識に伴う脳の活性化を可能とする。
【0417】
上記第2の実施形態では、例えば、図14のステップ16の配役決定処理およびステップ18のゲーム実行の処理と同様に、ゲームのセーブデータ記憶域Doに格納済みの顔画像を基に敵オブジェクトEOを作成し、ゲームを実行した。しかし、図42のステップ30の処理として、例えば、図15のステップ100−ステップ105の処理を実行してもよい。すなわち、顔画像取得処理で取得し、ゲームのセーブデータ記憶域Doに格納前の状態で、本実施形態のゲームを実行してもよい。そして、図15のステップ107−ステップ110と同様に、ゲームで成功した場合に、取得した顔画像をゲームのセーブデータ記憶域Doに格納すればよい。このような構成によって、第1の実施得形態と同様、ユーザは、取得した顔画像を保存するため、ますます熱心にゲームに取り組むようになる。
【0418】
(第3の実施形態)
以下、図43および図44を参照して、本発明の第3の実施形態に係る画像処理プログラムを実行する画像処理装置について説明する。本実施形態のゲームは、第1の実施形態のゲームと同様、例えば、図14に示したステップ10による顔画像取得処理1およびステップ12による顔画像取得処理2のための第1のゲーム(図15のステップ106、図16のステップ129)として実行してもよい。また、本実施形態のゲームは、例えば、第2のゲーム(図14に示したステップ18)と同様、顔画像が収集され、ゲームのセーブデータ記憶域Doに蓄積されていることを前提として実行されるようにしてもよい。
【0419】
すなわち、第2の実施形態で述べた場合と同様、ゲーム装置10の情報処理部31は、本実施形態のゲームを第1の実施形態の配役決定処理(図14のステップ16)、および第2のゲーム(図14のステップ18で実行されるゲーム)の処理例として、実行する。また、ゲーム装置10の情報処理部31は、本実施形態のゲームを第1実施形態の第1のゲーム(図15のステップ106、図16のステップ129で実行されるゲーム)としても実行できる。
【0420】
また、上記第2の実施形態では、顔画像を取得し、取得した顔画像を含む敵オブジェクトEOと誤認用オブジェクトを用いたゲームの処理の一例を説明した。そして、上記第2の実施形態では、誤認用オブジェクトへの攻撃は無効な攻撃とされた。
【0421】
本実施形態では、第2の実施形態のゲームに代えて、誤認用オブジェクトへの攻撃が検知されると、敵オブジェクトEOの顔画像のパーツが、他の顔画像のパーツと入れ替わるゲームについて説明する。例えば、敵オブジェクトEOの周辺部分(図9のH13参照)と、ユーザの顔画像を組み合わせて、敵オブジェクトEOを構成する。ユーザの顔画像の代わりにユーザの親しい人の顔画像を用いてもよい。この場合に、ユーザの顔画像(あるいは親しい人の顔画像)は、敵オブジェクトEOに拘束された状態を模擬するようにしてもよい。そして、ユーザがゲームで、敵オブジェクトEOに勝利した場合には、ユーザの顔画像(あるいは親しい人の顔画像)が敵オブジェクトEOから解放されることを模擬すればよい。一方、ユーザがゲームで、失敗を続けると、徐々に、敵オブジェクトEOに拘束されたユーザの顔画像(あるいは親しい人の顔画像)が変形していくことになる。そして、変形の限度が一定限度を超えるとゲーム終了となるようにすればよい。
【0422】
図43は、本実施形態に係る、上側LCD22に表示される画面の一例である。図43の例では、敵オブジェクトEO1(第1のキャラクタオブジェクトの一例)が表示されている。また、敵オブジェクトEO1の周りに、寸法が敵オブジェクトEO1よりも小さい敵オブジェクトEO11(第2のキャラクタオブジェクトの一例)と、誤認用オブジェクトEO12−EO16(第3のキャラクタオブジェクトの一例)が表示されている。敵オブジェクトEO11には、敵オブジェクトEO1と同一の顔画像が貼り付けられている。一方、誤認用オブジェクトEO12−EO16の構成は、第2の実施例の場合と同様であり、敵オブジェクトEO1とは異なる顔画像が貼り付けられている。なお、図43の構成は例示であり、寸法が敵オブジェクトEO1よりも小さい敵オブジェクトEO11の数が、1個に限定される訳ではない。
【0423】
本実施形態のゲームにおいては、例えば、寸法の大きな敵オブジェクトEO1には、照準カーソルALを合わせやすいため、敵オブジェクトEO1を攻撃し、弾が命中したとしても、ユーザが得られる得点、あるいは、敵オブジェクトEO1に与えるダメージは小さいものとする。また、寸法の小さな敵オブジェクトEO11には、照準カーソルALを合わせにくいため、敵オブジェクトEO11を攻撃し、弾が命中した場合には、ユーザが得られる得点、あるいは、敵オブジェクトEO1に与えるダメージは、敵オブジェクトEO1の場合よりも大きいものとする。
【0424】
さらに、本実施形態では、ユーザが誤認用オブジェクトEO12−EO16を攻撃した場合には、敵オブジェクトEO1に貼り付けられている顔画像のパーツが他の顔画像と入れ替えられる。例えば、図43の場合には、すでに、敵オブジェクトEO1に貼り付けられた顔画像のうち、眉と目の部分が顔画像EO13の眉と目の部分と置き換えられている。このようにして、小さな敵オブジェクトEO11を攻撃しようとするユーザに対して、誤認用オブジェクトEO12−EO16は、ユーザを混乱させ、敵オブジェクトEO1の変形へと導こうとする。なお、図43では、誤認用オブジェクトEO12−EO16は、同一種類の頭部形状を有している。しかし、誤認用オブジェクトEO12−EO16のいずれかは、異なる種類の頭部形状にしてもよい。
【0425】
図44により、ゲーム装置10の情報処理部31で実行される画像処理プログラムによる動作例を説明する。図44は、情報処理部31による動作の一例を示すフローチャートである。この処理では、ステップ40−ステップ42の処理は、図42のステップ30−ステップ32の処理と同様であるので、その説明を省略する。
【0426】
そして、情報処理部31は、敵オブジェクトEOへの攻撃を検知すると(ステップ43)、顔画像の変形を削減し、敵オブジェクトEO11の顔画像を本来貼り付けられている顔画像に近づける(ステップ44)。この場合には、図43に示した寸法の小さな敵オブジェクトEO11への攻撃には、寸法の大きな敵オブジェクトEO1への攻撃よりも高い得点を付与すればよい。また、寸法の小さな敵オブジェクトEO11への攻撃には、寸法の大きな敵オブジェクトEO1への攻撃よりも、顔画像の変形を削減する程度を大きくすれよい。
【0427】
一方、情報処理部31は、誤認用オブジェクトEO12−EO16等への攻撃を検知すると(ステップ45)、現在よりも、さらに敵オブジェクトEO1に貼り付けられている顔画像のパーツの置き換えを進める。すなわち、情報処理部31は、顔画像の変形を追加する(ステップ44)。また、情報処理部31は、敵オブジェクトEOへの攻撃、誤認用オブジェクトへの攻撃以外の状態を検知した場合には、その他の処理を実行する(ステップ47)。その他の処理は、図42のステップ34の場合と同様である。例えば、情報処理部31は、敵オブジェクトEOを増殖する。
【0428】
そして、情報処理部31は、ゲーム終了か否かを判定する(ステップ48)。ゲーム終了の判定は、例えば、敵オブジェクトEOの顔画像の変形が基準の限度を超えた場合である。また、ゲーム終了の判定は、例えば、ユーザが敵オブジェクトEOを破壊し、所定限度の得点を得た場合である。そして、ゲーム終了でない場合、情報処理部31は、制御をステップ43に戻す。
【0429】
以上述べたように、本実施形態のゲーム装置10によれば、ユーザが敵オブジェクトEOの攻撃に成功すると、変形した顔画像が復旧する。また、ユーザが誤認用オブジェクトを攻撃すると、顔画像の変形がさらに進行する。したがって、ユーザは、集中力を持ってゲームに取り組むことを要求され、ゲーム実行時の緊張感が高まり、集中力を養成することが可能になる。さらに、本実施形態のゲーム装置10によれば、ユーザの顔画像、ユーザの親しい人の顔画像が変形されるので、ユーザは、現実の世界を投影した仮想現実の世界で、ゲームに熱中する可能性を高めることができる。
【0430】
上記第3の実施形態では、例えば、図42のステップ30、さらに、図14のステップ16の配役決定処理およびステップ18のゲーム実行の処理と同様に、ゲームのセーブデータ記憶域Doに格納済みの顔画像を基に敵オブジェクトEOを作成し、ゲームを実行する場合を想定して説明した。しかし、図44のステップ40の処理として、例えば、図15のステップ100−ステップ105の処理を実行してもよい。すなわち、顔画像取得処理で取得し、ゲームのセーブデータ記憶域Doに格納前の状態で、第3の実施形態のゲームを実行してもよい。そして、図15のステップ107−ステップ110と同様に、ゲームで成功した場合に、取得した顔画像をゲームのセーブデータ記憶域Doに格納すればよい。このような構成によって、第1の実施得形態と同様、ユーザは、ますます熱心にゲームに取り組むようになる。
【0431】
(第4の実施形態)
以下、図45および図46を参照して、本発明の第4の実施形態に係る画像処理プログラムを実行する画像処理装置について説明する。本実施形態のゲームは、第1の実施形態のゲームと同様、例えば、図14に示したステップ10による顔画像取得処理1およびステップ12による顔画像取得処理2のための第1のゲーム(図15のステップ106、図16のステップ129)として実行してもよい。また、本実施形態のゲームは、例えば、第2のゲーム(図14に示したステップ18)と同様、顔画像が収集され、ゲームのセーブデータ記憶域Doに蓄積されていることを前提として実行されるようにしてもよい。
【0432】
すなわち、第2の実施形態で述べた場合と同様、ゲーム装置10の情報処理部31は、本実施形態のゲームを第1の実施形態の配役決定処理(図14のステップ16)、あるいは、第2のゲーム(図14のステップ18で実行されるゲーム)の処理例として、実行することができる。また、ゲーム装置10の情報処理部31は、本実施形態のゲームを第1実施形態の第1のゲーム(図15のステップ106、図16のステップ129で実行されるゲーム)としても実行できる。
【0433】
また、上記第3の実施形態では、顔画像を取得し、取得した顔画像を用いた敵オブジェクトEOと誤認用オブジェクトを用いたゲームの処理の一例を説明した。さらに、第3実施形態では、誤認用オブジェクトへの攻撃が検知されると、敵オブジェクトEOの顔画像のパーツが、他の顔画像のパーツと入れ替えられた。
【0434】
本実施形態では、第2の実施形態、あるいは、第3実施形態のゲームに代えて、ゲーム開始時点で、敵オブジェクトEOに含まれる顔のパーツが、他の顔画像のパーツと入れ替えられており、ユーザがゲームに勝利すると、敵オブジェクトEOに含まれる顔のパーツが元の顔画像に戻る処理を説明する。
【0435】
図45は、本実施形態に係る、上側LCD22に表示される画面の一例である。画面の左側には、敵オブジェクトEOに貼り付け可能な顔画像の一覧表(登場人物欄)が登場人物として表示されている。ただし、ゲーム装置10の画面では、顔画像の一覧表は、なくてもよい。また、例えば、情報処理部31が、GUIを通じて、ユーザからの一覧表の表示要求操作を検知したときに、顔画像の一覧表を表示するようにしてもよい。また、顔画像の一覧表の表示箇所が、図45のような画面の左側に限定される訳ではない。登場人物欄には、顔画像PS1−PS5等の顔画像が表示されている。
【0436】
また、図45の画面には、敵オブジェクトEO20、EO21−EO25が表示されている。敵オブジェクトEO20、EO21−EO25等は、例えば、第1の実施形態の図7−9の画面、あるいは、図18の配役決定処理に示したような選択操作で作成した敵オブジェクトEOである。ただし、本実施形態では、敵オブジェクトEO20は、画面中央に大きく描かれ、敵オブジェクトEO21−EO25等は、敵オブジェクトEO20の周りに描かれている。また、例えば、敵オブジェクトEO20には、元々、顔画像PS1が貼り付けられていた。また、例えば、敵オブジェクトEO22には、顔画像PS2が貼り付けられていた。また、敵画像EO25には、顔画像PS5が貼り付けられていた。
【0437】
しかしながら、本ゲームの開始前に、敵オブジェクトEO20と、EO21−EO25との間で、顔のパーツの入れ替えが行われる。例えば、敵オブジェクトEO20と敵オブジェクトEO22との間で、鼻が入れ替わっている。また、例えば、敵オブジェクトEO20と敵オブジェクトEO25との間で、左眉毛と左目が入れ替わっている。顔のパーツの入れ替えは、例えば、顔画像をテクスチャマッピング時に、テクスチャマッピングされる3次元モデルを構成するポリゴン単位で行えばよい。
【0438】
このような顔のパーツの入れ替えは、例えば、入れ替えるパーツ数と、入れ替え対象パーツをランダムに入れ替えるようにしてもよい。また、例えば、すでに行った当該ゲーム、あるいは、他のゲームの成否、得点によって、入れ替えるパーツ数を決定してもよい。例えば、すでに行ったゲームで、ユーザの成績、達成度が良好な場合には、入れ替えるパーツ数を少なくし、ユーザの成績、達成度が不調の場合には、入れ替えるパーツ数を多くするなどである。また、ゲームをレベル分けしておき、ゲームのレベルに応じて、入れ替えるパーツ数を変更してもよい。例えば、入門レベルでは、入れ替えるパーツ数を少なくし、上級レベルでは、入れ替えるパーツ数を多くするなどである。
【0439】
また、内側撮像部24によりユーザの顔画像を取得して、顔認識を行い、認識された表情に応じて、入れ替えるパーツ数を決定してもよい。例えば、顔画像が笑っている場合、驚いている場合、悲しんでいる場合、無表情に近い場合などを判定し、判定結果に応じて、入れ替えるパーツ数を決定してもよい。顔の表情は、目の寸法、口の面積、口の形状、目の中心、口の中心、鼻等を基準点として、頬の輪郭の位置等から決定すればよい。例えば、ユーザの無表情状態の顔画像を事前に登録しておき、新たに、ユーザの顔画像を取得したときに得られた目の寸法、口の面積、口の形状、基準点からの頬の輪郭の位置等の値と、事前に登録した顔画像から得られた値との差分値から、ユーザの顔の表情を推定してもよい。なお、このような顔の表情の推定方法は、以上の手順に限定される訳ではなく、様々な手順を利用できる。
【0440】
本実施形態では、ゲーム装置10では、ユーザが、図45のような顔のパーツが入れ替えられた敵オブジェクトEOを攻撃し、敵オブジェクトEOと戦うゲームを実行する。攻撃の仕方は、第1の実施形態から第3の実施形態で説明した手順と同様である。そして、ユーザが、敵オブジェクトEOとの戦いに勝利したときに、入れ替えられたパーツが元の顔画像に復帰するようにすればよい。
【0441】
図46により、ゲーム装置10の情報処理部31で実行される画像処理プログラムによる動作例を説明する。この処理のうち、ステップ90の処理は、図42のステップ30、図44のステップ40と同様である。本実施形態では、ゲーム装置10の情報処理部31は、次に、顔のパーツの入れ替えを実行する(ステップ91)。そして、情報処理部31は、ゲームを実行する(ステップ92)。そして、情報処理部31は、ゲームが成功したか否かを判定する(ステップ93)。ゲームが成功した場合には、情報処理部31は、ステップ91の処理でパーツが入れ替えられた顔を、元の撮像された状態の顔に復旧する(ステップ94)。
【0442】
以上述べたように、本実施形態の画像処理プログラムによれば、例えば、内側撮像部24によりユーザの顔画像を取得し、取得した顔画像と、他の顔画像との間で、顔のパーツが入れ替えられた状態で、ゲームが開始する。そして、ユーザが敵オブジェクトEOとの戦いに勝利するなど、ゲームにおいて、ユーザが成功した場合には、パーツが入れ替えられた顔画像が、元の顔画像に復旧する。
【0443】
したがって、例えば、顔のパーツが入れ替えられる顔画像が、ユーザ自身の顔画像である場合、あるいは、ユーザと親密な人の顔画像等である場合に、ユーザはゲームで成功するため、高い動機付けを与えられる。
【0444】
また、すでに他のゲームでの成績に応じて、本実施形態でのゲーム開始時の顔のパーツの入れ替えを行うことによって、ユーザに他のゲームの結果如何によるハンディキャップあるいはアドバンテージを付与できる。また、ゲームのレベルに応じて顔のパーツの入れ替えを行うことによって、ゲームのレベルの難易度を顔の変形の程度によって表現することができる。
【0445】
上記第4の実施形態では、例えば、図42のステップ30、図44のステップ40、あるいは、図14のステップ16の配役決定処理およびステップ18のゲーム実行の処理と同様に、ゲームのセーブデータ記憶域Doに格納済みの顔画像を基に敵オブジェクトEOを作成し、ゲームを実行することを想定して説明した。しかし、図45のステップ90の処理として、例えば、図15のステップ100−ステップ105の処理を実行してもよい。すなわち、顔画像取得処理で取得し、ゲームのセーブデータ記憶域Doに格納前の状態で、本実施形態のゲームを実行してもよい。そして、図15のステップ107−ステップ110と同様に、ゲームで成功した場合に、取得した顔画像をゲームのセーブデータ記憶域Doに格納すればよい。このような構成によって、第1の実施得形態と同様、ユーザは、取得した顔画像を保存するため、ますます熱心にゲームに取り組むようになる。
【0446】
(第5の実施形態)
以下、図47図51を参照して、本発明の第5の実施形態に係る画像処理プログラムを実行する画像処理装置について説明する。上述した実施形態では、顔画像をセーブデータ記憶域Doに格納するためのゲーム(例えば、第1のゲーム)を開始する前に、内側撮像部24または外側撮像部23が撮像したカメラ画像を用いた顔画像取得処理によって取得対象となる顔画像が取得される。そして、当該顔画像を取得した後に上記ゲームが実行され、ユーザが上記ゲームで成功した場合に、当該顔画像をセーブデータ記憶域Doに格納することが許容される。第5の実施形態では、敵オブジェクトEOと戦うゲームの実行中に内側撮像部24または外側撮像部23が撮像したカメラ画像から取得対象となる顔画像を取得し、当該顔画像の取得に成功する条件を満たすことによって当該ゲーム中に取得した顔画像をセーブデータ記憶域Doに格納することが許容される。すなわち、第5の実施形態では、所定のゲームの実行中に撮像されたカメラ画像から顔画像を取得して、当該ゲームにおいて当該顔画像の取得に成功する条件を満たすことによって当該顔画像をセーブデータ記憶域Doに格納することが許容されるため、結果的に当該ゲームが顔画像をセーブデータ記憶域Doに格納することが許容されるゲームとなる。本実施形態のゲームも、上記実施形態と同様、ゲーム装置10の情報処理部31が、メインメモリ32に展開された画像処理プログラムを実行することで、ユーザに提供される。以下の説明では、ゲーム中に顔画像を取得する一例として、上述した第2のゲーム(図14のステップ18)の実行中に顔画像を取得する態様を用いる。
【0447】
図47は、本実施形態に係るゲーム装置10の上側LCD22に表示される画面の一例である。この画面の作成手順は、上記第1の実施形態と同様である。すなわち、ユーザは、例えば、ゲーム装置10の下側ハウジング11と上側ハウジング21とを開状態として、図4のように、下側ハウジング11を両手に持つ場合を想定する。このとき、ユーザは、上側LCD22の表示画面を見ることができる。そして、この状態では、外側撮像部23は、例えば、ユーザの視線前方の空間を撮像することが可能である。本実施形態のゲームの実行中、ゲーム装置10は、画面の背景に、外側撮像部23が撮像したカメラ画像CIを写し出す。より具体的には、情報処理部31は、外側撮像部23が撮像した画像をフレーム単位で、ゲームの画面の背景部分にテクスチャマッピングしている。すなわち、上側LCD22には、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの実世界画像(動画像)が背景部分に表示される。ユーザがゲーム装置10を手に持って方向を変えると、変化後の外側撮像部23の視線方向から外側撮像部23を通じて取得された画像がゲームの背景に表示されることになる。すなわち、図47の画面の背景には、ユーザがゲーム装置10の外側撮像部23を向けた方向から取得された画像が埋め込まれる。なお、図47に示した画面例では、画面の背景として表示されているカメラ画像CIの被写体として、外側撮像部23に正面を向けた人物が含まれている。
【0448】
さらに、この画面では、上記背景に対して、例えば、上記実施形態で説明した手順にしたがって作成された敵オブジェクトEOおよび照準カーソルALが表示されている。敵オブジェクトEOの顔面部分には、上記配役決定処理等で選択された顔画像がテクスチャマッピングされて表示されている。そして、ゲーム装置10のユーザは、敵オブジェクトEOに照準カーソルALを合わせた状態で、トリガボタンに相当する操作ボタン14B(Aボタン)を押下することで、敵オブジェクトEOに向けて弾を撃つことができる。
【0449】
ゲーム装置10は、上記ゲーム中においても、実カメラ(例えば、外側撮像部23)で撮像されたカメラ画像CIに対して所定の顔認識処理を逐次に行い、カメラ画像CI内の被写体における人物の顔の有無を判断している。そして、ゲーム装置10は、上記顔認識処理において、カメラ画像CI内に人物の顔が存在すると識別でき、かつ、取得対象オブジェクトAOを出現させる条件を満たした場合、カメラ画像CI内から顔と識別した部分から取得対象オブジェクトAOが出現する。
【0450】
図48に示すように、取得対象オブジェクトAOは、カメラ画像CIから抽出された顔画像が、所定のポリゴンの所定部分(例えば、人体の頭部形状を模した3次元モデルにおける顔面部分)にテクスチャマッピングされて表示される。一例として、取得対象オブジェクトAOは、複数のポリゴンを組み合わせて形成した頭部形状の3次元モデルの表面に、カメラ画像CI内から顔と識別した部分画像がテクスチャとして貼り付けられて表示される。なお、取得対象オブジェクトAOが出現するゲームでは、顔認識された顔画像が3次元モデルにテクスチャマッピングされたものに限定される訳ではない。例えば、取得対象オブジェクトAOは、カメラ画像CIから切り取られた上記顔と識別した部分の画像が主面に貼り付けられた板状の物体として表示されてもかまわなし、単に2次元画素配列に保持された画像として表示されてもよい。
【0451】
例えば、取得対象オブジェクトAOは、敵オブジェクトEOと同様に上述した仮想空間に配置され、仮想カメラから取得対象オブジェクトAOおよび/または敵オブジェクトEOを見た仮想空間の画像(仮想世界画像)を、カメラ画像CIから得られる実世界画像に合成することによって、取得対象オブジェクトAOおよび/または敵オブジェクトEOが実空間内に配置されているように上側LCD22に表示される。また、ゲーム装置10を用いた攻撃操作(例えば、ボタン14B(Aボタン)の押下)に応じて、照準カーソルALの方向に弾オブジェクトBOが発射され、取得対象オブジェクトAOもユーザの攻撃対象となる。そして、ユーザが取得対象オブジェクトAOとの戦いに勝利した場合、当該取得対象オブジェクトAOに貼り付けられた顔画像をセーブデータ記憶域Doに格納することができる。
【0452】
なお、取得対象オブジェクトAOとの戦いに勝利することだけでなく、敵オブジェクトEOを攻撃するゲーム、すなわち取得対象オブジェクトAOに貼り付けられる顔画像を顔認識した際に既に実行されているゲームをクリアすることを、取得対象オブジェクトAOの顔画像をセーブデータ記憶域Doに格納するための条件に加えてもよい。例えば、敵オブジェクトEOを攻撃するゲームゲームをクリアする条件としては、所定数以上の敵オブジェクトEOを倒すことが考えられる。この場合、敵オブジェクトEOを攻撃するゲームを実行する際、その途中で取得対象オブジェクトAOが登場して倒した場合に当該取得対象オブジェクトAOの顔画像を付加的に取得できるというゲーム仕様となる。
【0453】
なお、取得対象オブジェクトAOに用いる顔画像は、カメラ画像CIから顔認識された1枚の顔画像(静止画像)を用いてもいいし、繰り返し撮像されているカメラ画像CIを繰り返し顔認識して識別される顔画像(動画像)を用いてもよい。例えば、後者の場合、カメラ画像CIとして繰り返し撮像されている人物の顔の表情等が変化した場合、当該変化が取得対象オブジェクトAOのテクスチャに反映される。つまり、取得対象オブジェクトAOに貼り付けられている顔画像の表情は、ゲーム装置10の実カメラによって撮像されている人物の表情をリアルタイムに反映することが可能となる。
【0454】
また、カメラ画像CI内から顔認識された部分から出現する取得対象オブジェクトAOは、カメラ画像CIに合成されて表示される際に当該部分と常に重複するように配置してもよい。例えば、実空間内においてゲーム装置10の方向や位置(すなわち、外側撮像部23の方向や位置)を変えることによって、ゲーム装置10で撮像される撮像範囲が変わるため、上側LCD22に表示されるカメラ画像CIも変化する。この場合、ゲーム装置10は、実空間内におけるゲーム装置10の動きに応じて、上記仮想空間内における上記仮想カメラの位置や方向を変化させる。これによって、実空間内に配置されているように表示されている取得対象オブジェクトAOは、実空間内におけるゲーム装置10の方向や位置が変わっても実空間内における同じ位置に配置されているように表示される。また、上側LCD22には、ゲーム装置10に内蔵する実カメラによって撮像されたリアルタイムの実世界画像が表示されており、被写体が実空間において移動することもあり得る。この場合、ゲーム装置10は、繰り返し撮像されているカメラ画像CIに対して顔認識処理を逐次行うことによって、カメラ画像CIと合成される際に当該顔認識された位置と重なって表示されるように取得対象オブジェクトAOを仮想空間内に逐次配置する。したがって、ゲーム装置10の撮像方向や撮像位置が変化したり、撮像されている人物の位置が変化したりすることによって、取得対象オブジェクトAOとして出現させた顔画像の位置や大きさがカメラ画像CI内で変化しても、これらの処理によって当該顔画像と重なるように取得対象オブジェクトAOを描画することができる。
【0455】
なお、上側LCD22に表示する取得対象オブジェクトAOは、現実に撮像されてカメラ画像CIに表示されている顔画像に対して拡大、縮小、変形等のデフォルメを施して表示したり、当該顔画像を貼り付けたモデルの表示方向を変化させて表示したりしてもかまわない。これらの画像処理によって、実際に撮像されている顔画像と取得対象オブジェクトAOとの違いが生まれるため、カメラ画像CIの中から取得対象オブジェクトAOが出現したことをゲーム装置10のユーザが容易に判別することが可能となる。
【0456】
次に、図49図51を参照して、第5の実施形態に係る画像処理プログラムを実行することによる具体的な処理動作について説明する。なお、図49は、当該画像処理プログラムを実行することによって行われるゲーム中顔画像取得処理の詳細な動作の一例を示すサブルーチンである。図50は、図49のステップ202で行われる未出現処理の詳細な動作の一例を示すサブルーチンである。図51は、図49のステップ208で行われる出現済処理の詳細な動作の一例を示すサブルーチンである。
【0457】
なお、これらの処理を実行するためのプログラムは、ゲーム装置10に内蔵されるメモリ(例えば、データ保存用内部メモリ35)や外部メモリ45またはデータ保存用外部メモリ46に含まれており、ゲーム装置10の電源がオンになったときに、内蔵メモリから、または外部メモリI/F33やデータ保存用外部メモリI/F34を介して外部メモリ45またはデータ保存用外部メモリ46からメインメモリ32に読み出されて、CPU311によって実行される。
【0458】
第5の実施形態に係る画像処理プログラムを実行することによる処理動作は、第1の実施形態に係る画像処理プログラムを実行することによる処理動作に対して、後述するゲーム中顔画像取得処理が図29で説明したゲーム処理の中に、ゲーム処理周期毎に実行(例えば、ステップ52〜ステップ59の途中で1回実行)されるだけである。したがって、以下の説明においては、第1の実施形態に対して追加された処理動作のみ説明し、他の処理動作については詳細な説明を省略する。
【0459】
また、第5の実施形態に係る画像処理プログラムを実行することに応じてメインメモリ32に記憶される各種データは、出現フラグデータ、顔認識データ、および取得対象オブジェクトデータがさらに記憶されることを除いて、第1の実施形態に係る画像処理プログラムを実行することに応じて記憶される各種データと同様である。なお、上記出現フラグデータは、現時点の敵オブジェクトEOの出現状況が「未出現」、「出現中」、および「出現済」の何れであるのかを表す出現フラグを示すデータであり、出現フラグは、上記ステップ51(図29)における初期設定において「未出現」に設定されている。また、顔認識データは、繰り返し撮像されるカメラ画像CIから逐次顔認識された最新の顔画像およびカメラ画像CIにおける当該顔画像の位置を示すデータである。また、上記取得対象オブジェクトデータは、取得対象オブジェクトAOに対応する3次元モデルのデータ、当該3次元モデルにマッピングするためのテクスチャデータ、および当該3次元モデルの配置方向や配置位置を示すデータ等を含んでいる。
【0460】
図49において、情報処理部31は、取得対象オブジェクトAOが未出現であるか否かを判断する(ステップ201)。例えば、情報処理部31は、出現フラグデータを参照して、出現フラグが「未出現」に設定されているか否かによって上記ステップ201における判定を行う。そして、情報処理部31は、取得対象オブジェクトAOが未出現である場合、次のステップ202に処理を進める。一方、情報処理部31は、取得対象オブジェクトAOが未出現でない場合、次のステップ203に処理を進める。
【0461】
ステップ202において、情報処理部31は、未出現処理を行い、次のステップ203に処理を進める。以下、図50を参照して、情報処理部31が上記ステップ203で行う未出現処理について説明する。
【0462】
図50において、情報処理部31は、実カメラ画像データDbが示すカメラ画像に対して所定の顔認識処理を行って当該顔認識結果を顔認識データとしてメインメモリ32に格納し(ステップ211)、次のステップに処理を進める。ここで、上記顔認識処理は、図50で示すフローチャートによる処理とは別に独立して逐次上記カメラ画像を用いて情報処理部31が行ってもかまわない。この場合、情報処理部31は、上記カメラ画像から人物の顔が識別されたときに、上記ステップ211において顔認識結果を取得して当該顔認識結果を顔認識データとしてメインメモリ32に格納する。
【0463】
次に、情報処理部31は、取得対象オブジェクトAOが仮想空間に出現する条件を満たしているか否かを判断する(ステップ212)。例えば、取得対象オブジェクトAOが出現する条件は、上記ステップ211においてカメラ画像から人物の顔が識別されていることを必須条件として、ゲームが開始されてからゲームが終了するまでに1度だけ取得対象オブジェクトAOが出現してもいいし、所定時間毎に取得対象オブジェクトAOが出現してもいいし、取得対象オブジェクトAOが仮想世界から消滅したことに応じて新たな取得対象オブジェクトAOが出現してもいいし、ランダムのタイミングで取得対象オブジェクトAOを出現させてもよい。そして、情報処理部31は、取得対象オブジェクトAOが出現する条件を満たしている場合、次のステップ213に処理を進める。一方、情報処理部31は、取得対象オブジェクトAOが出現する条件を満たしていない場合、当該サブルーチンによる処理を終了する。
【0464】
ステップ213において、情報処理部31は、上記ステップ211における顔認識処理で識別された顔の画像を、取得対象オブジェクトAOのテクスチャに設定して、次のステップに処理を進める。例えば、情報処理部31は、実カメラ画像データDbが示すカメラ画像から、上記ステップ211における顔認識処理の顔認識結果が示す顔の範囲内の画像を取得対象オブジェクトAOのテクスチャに設定し、当該設定されたテクスチャを用いて取得対象オブジェクトデータを更新する。
【0465】
次に、情報処理部31は、上記ステップ211における顔認識処理で識別された顔画像を用いて取得対象オブジェクトAOを設定し(ステップ214)、次のステップに処理を進める。一例として、情報処理部31は、上記ステップ211における顔認識処理で識別された顔の画像の範囲に応じて、取得対象オブジェクトAOの出現開始時点の状態に対応するポリゴン(例えば、平面ポリゴン)のサイズおよび形状を設定し、上記ステップ213で設定された顔画像のテクスチャを当該ポリゴンの主面に貼り付けて出現開始時点の状態に対応する取得対象オブジェクトAOを設定し、取得対象オブジェクトデータを更新する。
【0466】
次に、情報処理部31は、新たに取得対象オブジェクトAOを仮想空間に配置して(ステップ215)、次のステップに処理を進める。例えば、情報処理部31は、上記カメラ画像が上側LCD22に表示される際、上記ステップ211で顔認識された顔画像の位置と重なって透視投影される仮想空間内の位置に取得対象オブジェクトAOを配置し、取得対象オブジェクトデータを更新する。
【0467】
本実施形態においては、敵オブジェクトEOに加えて取得対象オブジェクトAOを新たに配置した仮想空間を、仮想カメラから透視投影でレンダリングして画像を生成し、当該画像を少なくとも含む表示画像を表示する。ここで、取得対象オブジェクトAOが上側LCD22に表示されたカメラ画像の顔画像上から出現するように表現するために、情報処理部31は、上記カメラ画像のテクスチャがマッピングされた境界面3における当該顔画像に対応する範囲に、取得対象オブジェクトAOを重ね合わせて仮想空間に配置し、配置された取得対象オブジェクトAOを仮想カメラから透視投影する。なお、取得対象オブジェクトAOを仮想空間に配置する方法については、図33図39を用いて説明した敵オブジェクトEOの配置例を同様であるため詳細な説明を省略する。
【0468】
次に、情報処理部31は、出現フラグを「出現中」に設定して出現フラグデータを更新し(ステップ216)、当該サブルーチンによる処理を終了する。
【0469】
図49に戻り、ステップ203において、情報処理部31は、取得対象オブジェクトAOが出現中であるか否かを判断する。例えば、情報処理部31は、出現フラグデータを参照して、出現フラグが「出現中」に設定されているか否かによって上記ステップ203における判定を行う。そして、情報処理部31は、取得対象オブジェクトAOが出現中である場合、次のステップ204に処理を進める。一方、情報処理部31は、取得対象オブジェクトAOが出現中でない場合、次のステップ207に処理を進める。
【0470】
ステップ204において、情報処理部31は、出現中処理を行い、次のステップに処理を進める。例えば、上記ステップ204において、情報処理部31は、カメラ画像に含まれる顔画像が立体的なオブジェクトに段階的に変化させることによって、取得対象オブジェクトAOの出現する様子を表現する。具体的には、情報処理部31は、上記ステップ211と同様にカメラ画像に対する顔認識結果に基づいて、取得対象オブジェクトAOのテクスチャに設定する。そして、一例として、平面ポリゴンから所定の立体ポリゴン(例えば、複数のポリゴンを組み合わせて形成した人体の頭部形状を模した3次元モデル)まで変化させるモーフィング処理を行って取得対象オブジェクトAOを設定する。そして、情報処理部31は、モーフィング処理が行われた取得対象オブジェクトAOを、上記ステップ215と同様に当該ステップ204で顔認識された顔画像の位置と重なって透視投影される仮想空間内の位置に配置し、取得対象オブジェクトデータを更新する。このようなモーフィング処理を行うことによって、実世界画像から識別された顔画像から取得対象オブジェクトAOが出現する際、取得対象オブジェクトAOは、当該顔画像上において徐々に平面から立体になるように表現される。
【0471】
なお、上記モーフィング処理によって平面ポリゴンから変化させる立体ポリゴンは、様々な形状のポリゴンが考えられる。第1の例として、上記モーフィング処理によって平面ポリゴンから予め定められたキャラクタの頭部形状を有する立体ポリゴンに変化させて取得対象オブジェクトAOを生成する。この場合、カメラ画像に対して顔認識処理で識別された顔の画像がテクスチャとなって、上記頭部形状のポリゴンの顔面にマッピングされる。第2の例として、上記モーフィング処理によって平面ポリゴンから所定の厚さを有する平板ポリゴンに変化させて取得対象オブジェクトAOを生成する。この場合、カメラ画像に対して顔認識処理で識別された顔の画像がテクスチャとなって、上記平板ポリゴンの主面にマッピングされる。第3の例として、上記モーフィング処理によって平面ポリゴンから予め定められた武器形状を有する立体ポリゴン(例えば、ミサイル形状のポリゴン)に変化させて取得対象オブジェクトAOを生成する。この場合、カメラ画像に対して顔認識処理で識別された顔の画像がテクスチャとなって、上記武器形状のポリゴンの一部にマッピングされる(例えば、ミサイル形状のポリゴンに対して当該ミサイルの先端にマッピングされる)。
【0472】
次に、情報処理部31は、取得対象オブジェクトAOに対する出現中処理が終了したか否かを判断する(ステップ205)。例えば、情報処理部31は、取得対象オブジェクトAOに対するモーフィング処理が最終段階となった場合、出現中処理が終了したと判断する。そして、情報処理部31は、取得対象オブジェクトAOに対する出現中処理が終了した場合、次のステップ206に処理を進める。一方、情報処理部31は、取得対象オブジェクトAOに対する出現中処理が終了していない場合、次のステップ207に処理を進める。例えば、情報処理部31は、取得対象オブジェクトAOに対応するポリゴンが、上記ステップ204のモーフィング処理を繰り返すことによって複数のポリゴンを組み合わせて形成した人体の頭部形状を模した3次元モデルまで変化した場合、取得対象オブジェクトAOに対するモーフィング処理が最終段階であると判定する。
【0473】
ステップ206において、情報処理部31は、出現フラグを「出現済」に設定して出現フラグデータを更新し、次のステップ207に処理を進める。
【0474】
ステップ207において、情報処理部31は、取得対象オブジェクトAOが出現済であるか否かを判断する。例えば、情報処理部31は、出現フラグデータを参照して、出現フラグが「出現済」に設定されているか否かによって上記ステップ207における判定を行う。そして、情報処理部31は、取得対象オブジェクトAOが出現済である場合、次のステップ208に処理を進める。一方、情報処理部31は、取得対象オブジェクトAOが出現済でない場合、当該サブルーチンによる処理を終了する。
【0475】
ステップ208において、情報処理部31は、出現済処理を行い、当該サブルーチンによる処理を終了する。以下、図51を参照して、情報処理部31が上記ステップ208で行う出現済処理について説明する。
【0476】
図51において、情報処理部31は、実カメラ画像データDbが示すカメラ画像に対して所定の顔認識処理を行って当該顔認識結果を顔認識データとしてメインメモリ32に格納し(ステップ221)、次のステップに処理を進める。ここで、上記顔認識処理も、図51で示すフローチャートによる処理とは別に独立して逐次上記カメラ画像を用いて情報処理部31が行ってもかまわない。この場合、情報処理部31は、上記カメラ画像から人物の顔が識別されたときに、上記ステップ221において顔認識結果を取得して当該顔認識結果を顔認識データとしてメインメモリ32に格納する。
【0477】
次に、情報処理部31は、上記ステップ221における顔認識処理で識別された顔画像(カメラ画像のうちの顔領域内の画像)を、取得対象オブジェクトAOのテクスチャに設定し(ステップ222)、次のステップに処理を進める。例えば、情報処理部31は、実カメラ画像データDbが示すカメラ画像から、上記ステップ221における顔認識処理の顔認識結果が示す顔の範囲内の画像を取得対象オブジェクトAOのテクスチャに設定し、当該設定されたテクスチャを用いて取得対象オブジェクトデータを更新する。
【0478】
次に、情報処理部31は、上記ステップ221における顔認識処理で識別された顔画像に応じた取得対象オブジェクトAOを設定し(ステップ223)、次のステップに処理を進める。例えば、情報処理部31は、複数のポリゴンを組み合わせて形成した人体の頭部形状を模した3次元モデルの顔面部分に、上記ステップ222で設定された顔画像のテクスチャを貼り付けて取得対象オブジェクトAOを設定し、取得対象オブジェクトデータを更新する。なお、上記ステップ223において、上記ステップ221における顔認識処理で識別された顔画像をテクスチャとして貼り付けたポリゴンに拡大、縮小、変形等のデフォルメを施したり、顔画像のテクスチャを変形させたりしてもかまわない。
【0479】
次に、情報処理部31は、上記ステップ223で設定された取得対象オブジェクトAOを仮想空間に配置して(ステップ224)、次のステップに処理を進める。例えば、情報処理部31は、上記ステップ215と同様に、上記カメラ画像が上側LCD22に表示される際、上記ステップ221で顔認識された顔画像の位置と重なって透視投影される仮想空間内の位置に取得対象オブジェクトAOを配置し、取得対象オブジェクトデータを更新する。なお、上記ステップ223では、顔画像のテクスチャが貼り付けられた顔面部が仮想カメラと対向するように取得対象オブジェクトAOを配置してもいいし、ゲームの進行状況に応じて取得対象オブジェクトAOの向きを任意の方向に変化させてもかまわない。
【0480】
次に、情報処理部31は、取得対象オブジェクトAOと弾オブジェクトBOとが仮想空間内で接触したか否かを判断する(ステップ225)。例えば、情報処理部31は、取得対象オブジェクトデータが示す取得対象オブジェクトAOの位置と、弾オブジェクトデータDgが示す弾オブジェクトBOの位置とを用いて、取得対象オブジェクトAOと弾オブジェクトBOとが仮想空間内で接触したか否かを判断する。そして、情報処理部31は、取得対象オブジェクトAOと弾オブジェクトBOとが接触した場合、次のステップ226に処理を進める。一方、情報処理部31は、取得対象オブジェクトAOと弾オブジェクトBOとが接触していない場合、次のステップ229に処理を進める。
【0481】
ステップ226において、情報処理部31は、加点処理を行って、次のステップに処理を進める。例えば、上記加点処理においては、情報処理部31は、得点データDhが示すゲームの得点を所定数だけ加点し、加点後の得点を用いて得点データDhを更新する。また、上記加点処理においては、情報処理部31は、上記ステップ225で接触したと判定された弾オブジェクトBOを仮想空間から消滅させる処理(例えば、取得対象オブジェクトAOに接触した弾オブジェクトBOに関する弾オブジェクトデータDgを初期化し、当該弾オブジェクトBOが仮想空間に存在しない状態にする)を行う。
【0482】
次に、情報処理部31は、弾オブジェクトBOと接触した取得対象オブジェクトAOに貼り付けられた顔画像の取得に成功したか否かを判定する(ステップ227)。情報処理部31は、顔画像の取得に成功したか否かを判定する手段の一例として、ステップ227の処理を実行する。そして、情報処理部31は、顔画像の取得に成功した場合、次のステップ228に処理を進める。一方、情報処理部31は、顔画像の取得に成功していない場合、次のステップ228に処理を進める。
【0483】
ここで、顔画像の取得に成功とは、例えば、ユーザが、取得対象オブジェクトAOとの戦いにおいて勝利した場合である。一例として、仮想空間内に存在するための所定のライフ値を取得対象オブジェクトAOに設定し、当該取得対象オブジェクトAOが弾オブジェクトBOと接触した場合、当該ライフ値から所定数減算していく。そして、取得対象オブジェクトAOのライフ値が0以下となった場合、仮想空間から取得対象オブジェクトAOを消滅させるとともに、当該取得対象オブジェクトAOに貼り付けられた顔画像の取得に成功したとする。
【0484】
ステップ228において、顔画像の取得に成功した場合、情報処理部31は、上記ステップ221で顔認識されたメインメモリ32上の顔画像を示すデータを、セーブデータ記憶域Doにこれまでに保存された顔画像データに加えて保存し、次のステップ229に処理を進める。情報処理部31のCPU311は、保存する手段の一例として、ステップ228の処理を実行する。上述したようにセーブデータ記憶域Doは、情報処理部31が書き込みおよび読み出し可能な、例えば、データ保存用内部メモリ35、データ保存用外部メモリ46等に構築される記憶領域である。新たな顔画像のデータがセーブデータ記憶域Doに格納されることにより、情報処理部31は、上側LCD22の画面に、例えば、図7および図8で説明した顔画像の一覧に追加して、新たな顔画像のデータを表示できるようになる。
【0485】
このとき、情報処理部31は、新たに、当該ゲームのセーブデータ記憶域Doに保存された顔画像を管理するため、図12で説明した顔画像管理情報Dn1を生成し保存する。すなわち、情報処理部31は、新たに顔画像識別情報を生成し、顔画像管理情報Dn1のレコードに設定する。また、新たに、セーブデータ記憶域Doに保存された顔画像のアドレス等を顔画像データのアドレスに設定する。さらに、顔画像の取得元、性別の推定、年齢の推定、関連する顔画像の識別情報1−Nなどを設定する。
【0486】
さらに、情報処理部31は、セーブデータ記憶域Doに追加した顔画像の属性を推定し、図13で説明した顔画像属性集計表Dn2の集計結果を更新するようにしてもよい。すなわち、情報処理部31は、新たに、セーブデータ記憶域Doに追加した顔画像の性別、年齢等を推定し、顔画像属性集計表Dn2の集計結果に反映するようにしてもよい。
【0487】
さらに、情報処理部31は、例えば、セーブデータ記憶域Doに格納されたデータの複製、変更、無線通信モジュール36を通じたデータの転送等をユーザに許容するようにしてもよい。そして、情報処理部31は、ユーザのGUIを通じた操作または操作ボタン14を通じた操作にしたがって、セーブデータ記憶域Doに格納された顔画像の保存、複製、変更、転送等を実行すればよい。
【0488】
また、上記ステップ228の処理において、情報処理部31は、顔画像の取得成功の対象となっている取得対象オブジェクトAOを仮想空間から消滅させてもかまわない。この場合、情報処理部31は、顔画像の取得成功の対象となっている取得対象オブジェクトAOに関する取得対象オブジェクトデータを初期化し、当該取得対象オブジェクトAOが仮想空間に存在しない状態にする。
【0489】
ステップ229において、情報処理部31は、仮想空間に存在している取得対象オブジェクトAOに貼り付けられた顔画像の取得に失敗したか否かを判定する。そして、情報処理部31は、何れか1つの取得対象オブジェクトAOに対する顔画像の取得に失敗した場合、次のステップ230に処理を進める。一方、情報処理部31は、何れの取得対象オブジェクトAOに対しても顔画像の取得に失敗していない場合、当該サブルーチンによる処理を終了する。
【0490】
ここで、顔画像の取得に失敗とは、例えば、ユーザが、取得対象オブジェクトAOとの戦いにおいて敗戦した場合である。一例として、仮想空間内に所定時間以上取得対象オブジェクトAOが存在し続けた場合、当該取得対象オブジェクトAOに貼り付けられた顔画像の取得に失敗したとする。
【0491】
ステップ230において、顔画像の取得に失敗した場合、情報処理部31は、上記ステップ221で顔認識されたメインメモリ32上の顔画像を示すデータを廃棄し、当該サブルーチンによる処理を終了する。なお、上記ステップ230の処理において、情報処理部31は、顔画像の取得失敗の対象となっている取得対象オブジェクトAOを仮想空間から消滅させてもかまわない。この場合、情報処理部31は、顔画像の取得失敗の対象となっている取得対象オブジェクトAOに関する取得対象オブジェクトデータを初期化し、当該取得対象オブジェクトAOが仮想空間に存在しない状態にする。
【0492】
このように、上述した第5の実施形態に係る図49図51の処理によれば、敵オブジェクトEOを攻撃するゲームの途中で撮像されたカメラ画像から顔認識された顔画像が、セーブデータ記憶域Doに新たに保存する対象となる。そして、ゲーム中に取得された顔画像をセーブデータ記憶域Doに保存するためには、ユーザは、既に実行されている当該ゲームにおいて当該顔画像の取得に成功するゲーム結果が求められる。当該ゲームでは、実カメラから得られた実世界画像に、当該実世界画像内の顔画像が抜け出たように表現された取得対象オブジェクトを示す仮想世界画像が合成されて表示されるため、当該取得対象オブジェクトが実空間内に存在しているような新たな画像を表示することができる。また、当該ゲームでは、例えば、セーブデータ記憶域Doにこれまでに保存された顔画像を用いたキャラクタオブジェクトに加えて、当該ゲーム中に取得された顔画像が貼り付けられた取得対象オブジェクトAOを登場させることで、ゲーム装置10でゲームを実行するユーザは、ゲーム実行中の実世界や実世界の人間関係等を反映しつつ、新たな顔画像を収集し、セーブデータ記憶域Doに追加することができる。
【0493】
なお、上述した第5の実施形態では、ゲーム中に出現する取得対象オブジェクトAOを攻撃して勝利した場合に、当該取得対象オブジェクトAOに貼り付けられた顔画像をセーブデータ記憶域Doに格納することが許容される例を用いたが、取得対象オブジェクトAOと戦う他のゲームを実行することによって、顔画像をセーブデータ記憶域Doに格納することが許容されてもよい。一例として、敵オブジェクトと得点の多寡を競うゲームにおいて、当該ゲーム中に撮像されたカメラ画像に含まれる顔画像が貼り付けられた取得対象オブジェクトAOが当該ゲームに登場する。そして、ユーザがゲーム中に登場した取得対象オブジェクトAOよりも多い得点を得た場合に、当該取得対象オブジェクトAOに貼り付けられた顔画像をセーブデータ記憶域Doに格納することが許容される。他の例として、敵オブジェクトが設定した障害等をユーザが克服していくゲームにおいて、当該ゲーム中に撮像されたカメラ画像に含まれる顔画像が貼り付けられた取得対象オブジェクトAOが当該ゲームに登場する。そして、ユーザがゲーム中に登場した取得対象オブジェクトAOが設定した障害等をユーザが克服してゴールにたどり着いた場合に、当該取得対象オブジェクトAOに貼り付けられた顔画像をセーブデータ記憶域Doに格納することが許容される。
【0494】
また、上述した第1〜第5の実施形態では、図14に示したフローチャートに基づいた画像処理において取得した顔画像(第1〜第4の実施形態では顔画像をセーブデータ記憶域Doに格納するためのゲームを実行する前に顔画像取得処理によって取得した顔画像、第5の実施形態では顔画像をセーブデータ記憶域Doに格納するためのゲームの実行中に取得した顔画像)を、セーブデータ記憶域Doに格納する対象とする例を用いたが、当該画像処理のアプリケーションとは別のアプリケーションにおいて既に取得している顔画像をセーブデータ記憶域Doに格納する対象としてもかまわない。例えば、ゲーム装置10では、撮像部(カメラ)を内蔵しており、図14に示したフローチャートに基づいた画像処理とは別のカメラ撮像アプリケーションによっても当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータをデータ保存用内部メモリ35やデータ保存用外部メモリ46等の記録媒体に保存したりすることが可能である。また、ゲーム装置10は、他の装置から撮像画像を含むデータを受信することが可能であり、通信アプリケーションを実行することによって受信したデータをデータ保存用内部メモリ35やデータ保存用外部メモリ46等の記録媒体に保存したりすることも可能である。このように、カメラ撮像アプリケーションや通信アプリケーションの実行によって予め得られている画像から顔認識された顔画像を、セーブデータ記憶域Doに格納する対象としてもかまわない。
【0495】
上記画像処理のアプリケーションとは別のアプリケーションにおいて既に取得している顔画像をセーブデータ記憶域Doに格納する対象とする場合、当該別のアプリケーションを実行した際に保存されている撮影画像に対して顔認識処理を行って顔画像を少なくとも1つ抽出し、当該抽出された顔画像を格納する対象とする。具体的には、上記第1のゲームまたは上記第2のゲームに登場させるキャラクタ(顔画像)の選択を促すために、当該キャラクタを上側LCD22および/または下側LCD12に表示する際(例えば、ステップ30、ステップ40、ステップ90、ステップ103、ステップ126、ステップ140、ステップ160、ステップ162等)、別のアプリケーションの実行によって予め取得されている顔画像を含む少なくとも1つのキャラクタも選択対象として表示する。この場合、予め保存されている撮影画像に対して、上記キャラクタを表示する前に顔認識処理を行って顔画像を少なくとも1つ抽出しておき、抽出された顔画像から任意のものを選択対象として上記キャラクタに加えて表示する。そして、ユーザが上記抽出によって得られた顔画像を含むキャラクタをゲームに登場させることを選択した場合、ユーザが当該キャラクタとの戦いに勝利した場合、当該顔画像がセーブデータ記憶域Doに格納される。
【0496】
このように、上記画像処理のアプリケーションとは別のアプリケーションにおいて既に取得している顔画像もセーブデータ記憶域Doに格納する対象とすることによって、ユーザが取得可能となる顔画像のバリエーションが拡がって顔画像が収集しやすくなるとともに、ユーザが予想できない顔画像がゲームの参加対象として突然加えられるため、顔画像収集にあたっての倦怠を防止することもできる。
【0497】
また、上述した説明では、ゲーム装置10に生じる角速度を検出し、当該角速度を用いて実空間におけるゲーム装置10の動きを算出する例を用いたが、他の方式を用いてゲーム装置10の動きを算出してもかまわない。第1の例として、ゲーム装置10に内蔵されている加速度センサ39が検出した加速度を用いて、ゲーム装置10の動きを算出してもかまわない。一例として、加速度センサ39を搭載するゲーム装置10が静的な状態であることを前提としてコンピュータ側で処理する場合(すなわち、加速度センサ39によって検出される加速度が重力加速度のみであるとして処理する場合)、ゲーム装置10が現実に静的な状態であれば、検出された加速度に基づいてゲーム装置10の姿勢が重力方向に対して傾いているか否か、またはどの程度傾いているかを知ることができる。他の例として、加速度センサ39を搭載するゲーム装置10が動的な状態であることを前提とする場合には、加速度センサ39が重力加速度成分に加えて加速度センサ39の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、ゲーム装置10の動き方向等を知ることができる。具体的には、加速度センサ39を備えるゲーム装置10がユーザの手で動的に加速されて動かされる場合に、加速度センサ39によって生成される加速度信号を処理することによって、ゲーム装置10の様々な動きおよび/または位置を算出することができる。また、加速度センサ39が動的な状態であることを前提とする場合であっても、加速度センサ39の動きに応じた加速度を所定の処理により除去すれば、重力方向に対するゲーム装置10の傾きを知ることが可能である。
【0498】
第2の例として、ゲーム装置10に内蔵されている実カメラ(外側撮像部23または内側撮像部24)によってリアルタイムで撮像されたカメラ画像の移動量を用いて、ゲーム装置10の動きを算出してもかまわない。例えば、ゲーム装置10が動くことによって、上記実カメラの撮像方向や撮像位置が変わった場合、当該実カメラで撮像されるカメラ画像も変化する。したがって、ゲーム装置10に内蔵されている実カメラで撮像されるカメラ画像の変化を用いれば、当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。一例として、ゲーム装置10に内蔵されている実カメラで撮像されるカメラ画像から所定の物体を識別し、当該物体が撮像されている角度や撮像されている位置を時系列的に比較することによって、これらの変化量から当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。他の例として、ゲーム装置10に内蔵されている実カメラで撮像されるカメラ画像全体に対して時系列的に比較することによって、当該画像全体の撮像方向や撮像範囲の変化量から、当該実カメラの撮像方向が変化した角度や撮像位置の移動量等を算出することができる。
【0499】
第3の例として、上述したゲーム装置10に生じる角速度、ゲーム装置10に生じる加速度、およびゲーム装置10によって撮像されたカメラ画像の少なくとも2つを組み合わせて、ゲーム装置10の動きを算出してもかまわない。これによって、1つのパラメータからゲーム装置10の動きを算出する場合に当該動きの推定が難しい状況において、他のパラメータを組み合わせてゲーム装置10の動きを算出することによって、当該状況を補ったゲーム装置10の動きの算出が可能となる。一例として、上記第2の例によるゲーム装置10の動きを算出では、撮像されたカメラ画像が時系列的に水平方向へ動いた場合、ゲーム装置10の撮影角度が鉛直方向を中心として回転したのか、ゲーム装置10が水平移動したのか、正確な判定が難しいことがある。この場合、ゲーム装置10に生じる角速度を用いれば、ゲーム装置10が回転移動したのか水平移動したのかを容易に判定することが可能となる。
【0500】
また、第4の例として、ゲーム装置10の動きを、いわゆるAR(拡張現実)の技術により算出してもよい。
【0501】
また、上述した説明では、上側LCD22に、外側撮像部23および内側撮像部24のいずれかから取得したカメラ画像CIに基づいた、実世界の平面画像(上述した立体視可能な画像とは反対の意味での平面視の画像)が表示される例を主に用いたが、裸眼で立体視可能な画像(立体画像)を上側LCD22に表示することもできる。例えば、上述したように、ゲーム装置10は、外側左撮像部23aおよび外側右撮像部23bから取得したカメラ画像を用いた立体視可能な画像(立体画像)を上側LCD22に表示することが可能である。この場合、上側LCD22に表示された立体画像内に敵オブジェクトEOや存在したり、立体画像から取得対象オブジェクトAOが出現したりするように描画される。
【0502】
例えば、上記立体画像に敵オブジェクトEOや取得対象オブジェクトAOを描画する場合、外側左撮像部23aから得られた左目用画像および外側右撮像部23bから得られた右目用画像を用いて、上述した画像処理を行う。具体的には、上述した画像処理において、顔認識処理を行って顔画像が抽出されるカメラ画像は、上記左目用画像および上記右目用画像の一方が用いられ、当該一方の画像から得られた顔画像のテクスチャがマッピングされた敵オブジェクトEOや取得対象オブジェクトAOが仮想空間に設定される。また、仮想空間に配置された敵オブジェクトEO、取得対象オブジェクトAO、および弾オブジェクトBO等を、2つの仮想カメラ(ステレオカメラ)から透視変換することによって、それぞれ左目用仮想世界画像と右目用仮想世界画像とを得る。そして、左目用の実世界画像と左目用仮想世界画像とを合成して左目用表示画像を生成し、右目用の実世界画像と右目用仮想世界画像とを合成して右目用表示画像を生成し、当該左目用表示画像および当該右目用表示画像を上側LCD22に出力する。
【0503】
また、上述した説明では、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの動画像が上側LCD22に表示され、上記実カメラで撮像された動画像(カメラ画像)の中に敵オブジェクトEOや取得対象オブジェクトAOが登場するように表示されるが、本発明において上側LCD22に表示する画像は、様々なバリエーションが考えられる。第1の例として、予め録画された動画像およびテレビジョン放送や他の装置から得られる動画像等が上側LCD22に表示される。この場合、上記動画像が上側LCD22に表示され、敵オブジェクトEOや取得対象オブジェクトAOが当該動画像の中に登場することになる。第2の例として、ゲーム装置10に内蔵する実カメラや他の実カメラから得られた静止画像が上側LCD22に表示される。この場合、実カメラから得られた静止画像が上側LCD22に表示され、敵オブジェクトEOや取得対象オブジェクトAOが当該静止画像の中に登場することになる。ここで、実カメラから得られる静止画像は、ゲーム装置10に内蔵する実カメラでリアルタイムに撮像された実世界の静止画像でもいいし、当該実カメラや他の実カメラで予め撮影された実世界の静止画像でもいいし、テレビジョン放送や他の装置から得られる静止画像でもよい。
【0504】
また、上記実施形態では、上側LCD22がパララックスバリア方式の液晶表示装置であるとして、視差バリアのON/OFFを制御することにより、立体表示と平面表示とを切り替えることができる。他の実施形態では、例えば、上側LCD22としてレンチキュラー方式の液晶表示装置を用いて、立体画像および平面画像を表示可能としてもよい。レンチキュラー方式の場合でも、外側撮像部23で撮像した2つの画像を縦方向に短冊状に分割して交互に配置することで画像が立体表示される。また、レンチキュラー方式の場合でも、内側撮像部24で撮像した1つの画像をユーザの左右の目に視認させることによって、当該画像を平面表示させることができる。すなわち、レンチキュラー方式の液晶表示装置であっても、同じ画像を縦方向に短冊状に分割し、これら分割した画像を交互に配置することにより、ユーザの左右の目に同じ画像を視認させることができる。これにより、内側撮像部24で撮像された画像を平面画像として表示することが可能である。
【0505】
また、上記実施例では、携帯型のゲーム装置10を用いて説明したが、据置型のゲーム装置、あるいは、一般的なパーソナルコンピュータ等の情報処理装置で本発明の画像処理プログラムを実行して、本発明を実現してもかまわない。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、PDA(Personal Digital Assistant)や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。例えば、携帯電話が、1つのハウジングの主面に2つの表示部と、実カメラとを備えてもよい。
【0506】
また、上述した説明では画像処理をゲーム装置10で行う例を用いたが、上記画像処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置10が他の装置(例えば、サーバや他のゲーム装置)と通信可能に構成されている場合、上記画像処理における処理ステップは、ゲーム装置10および当該他の装置が協働することによって実行してもよい。一例として、ゲーム装置10が顔画像取得処理および顔画像の蓄積的な保存を許容させるためのゲーム処理を行い、当該ゲームに成功することによって許容される対象となった顔画像が、他の装置に保存されてもかまわない。この場合、複数のゲーム装置10が他の装置に顔画像を蓄積的に保存していくことによって、顔画像の収集がさらに促進されるとともに、他のゲーム装置10によって保存された顔画像を閲覧することによって違った楽しみ方も生まれることが考えられる。他の例として、他の装置が図29におけるステップ52〜ステップ57までの処理を実行し、ゲーム装置10が図29におけるステップ58およびステップ59の処理を実行するように協働してもよい。このように、上記画像における処理ステップの少なくとも一部を他の装置で行うことによって、上述した画像処理と同様の処理が可能となる。すなわち、上述した画像処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置10の情報処理部31が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置10が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0507】
また、上述したゲーム装置10の形状や、それに設けられている各種操作ボタン14、アナログスティック15、タッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した画像処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【0508】
また、上記画像処理プログラム(ゲームプログラム)は、外部メモリ45やデータ保存用外部メモリ46等の外部記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置10に供給されてもよい。また、上記プログラムは、ゲーム装置10内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを一時的に記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0509】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用されるすべての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
(付記)
上記実施の形態は、以下の態様(付記と呼ぶ)で例示することができる。以下のそれぞれの付記に含まれる構成要素は、他の付記に含まれる構成要素と組み合わせることができる。
【0510】
(付記1)
表示装置に画像を表示するコンピュータで実行されるゲームプログラムであって、前記コンピュータに、
顔画像を取得する画像取得ステップと、
前記取得した顔画像を基に第1のキャラクタオブジェクトを作成するステップと、
前記第1のキャラクタオブジェクトとともに、前記第1のキャラクタオブジェクトとは異なる第2のキャラクタオブジェクトを表示してゲームを実行するゲーム処理ステップと、を実行させ、
前記ゲーム処理ステップは、
プレイヤの操作による前記第1のキャラクタオブジェクトへの攻撃により、前記ゲームでの成功に寄与するステップと、
プレイヤの操作による前記第2のキャラクタオブジェクトへの攻撃を無効にするステップと、を含むゲームプログラム。
【0511】
(付記2)
表示装置に画像を表示するコンピュータで実行されるゲームプログラムであって、前記コンピュータに、
顔画像を取得する画像取得ステップと、
前記取得した一の顔画像を含む第1のキャラクタオブジェクトを作成するステップと、
前記第1のキャラクタオブジェクトとともに、前記第1のキャラクタオブジェクトよりも寸法の小さい、前記一の顔画像を含む第2のキャラクタオブジェクトと前記第1のキャラクタオブジェクトよりも寸法の小さい、前記一の顔画像以外の顔画像を含む第3のキャラクタオブジェクトとを表示してゲームを実行するゲーム処理ステップと、を実行させ、
前記ゲーム処理ステップは、
プレイヤの操作による前記第3のキャラクタオブジェクトへの攻撃により、前記第1のキャラクタオブジェクトに含まれる前記顔画像の変形を進行させるステップと、
プレイヤの操作による前記第2のキャラクタオブジェクトへの攻撃により、前記第1のキャラクタオブジェクトに含まれる顔画像が前記取得した元の顔画像に近づくように、前記変形を後退させるステップと、を含むゲームプログラム。
【0512】
(付記3)
表示装置に画像を表示するコンピュータで実行されるゲームプログラムであって、前記コンピュータに、
顔画像を取得する画像取得ステップと、
前記取得した顔画像を変形させた顔画像を含むキャラクタオブジェクトを作成するステップと、
プレイヤの操作を受け付けて、前記顔画像に関連するゲームを進行するゲーム処理ステップと、
プレイヤの操作による前記ゲームでの成功または不成功を判定するステップと、
前記ゲームの結果が成功であったときに、前記変形させた顔画像が前記取得した元の顔画像に復帰するステップと、を実行させるゲームプログラム。
【0513】
(付記4)
表示装置を接続可能な画像処理装置であって、
顔画像を取得する画像取得手段と、
前記取得した顔画像を基に第1のキャラクタオブジェクトを作成する手段と、
前記第1のキャラクタオブジェクトとともに、前記第1のキャラクタオブジェクトとは異なる第2のキャラクタオブジェクトを前記表示装置に表示してゲームを実行するゲーム処理手段と、を備え、
前記ゲーム処理手段は、
プレイヤの操作による前記第1のキャラクタオブジェクトへの攻撃により、前記ゲームでの成功に寄与する手段と、
プレイヤの操作による前記第2のキャラクタオブジェクトへの攻撃を無効にする手段と、を含む画像処理装置。
【0514】
(付記5)
表示装置を接続可能な画像処理装置であって、
顔画像を取得する画像取得手段と、
前記取得した一の顔画像を含む第1のキャラクタオブジェクトを作成する手段と、
前記第1のキャラクタオブジェクトとともに、前記第1のキャラクタオブジェクトよりも寸法の小さい、前記一の顔画像を含む第2のキャラクタオブジェクトと前記第1のキャラクタオブジェクトよりも寸法の小さい、前記一の顔画像以外の顔画像を含む第3のキャラクタオブジェクトとを前記表示装置に表示してゲームを実行するゲーム処理手段と、を備え、
前記ゲーム処理手段は、
プレイヤの操作による前記第3のキャラクタオブジェクトへの攻撃により、前記第1のキャラクタオブジェクトに含まれる前記顔画像の変形を進行させる手段と、
プレイヤの操作による前記第2のキャラクタオブジェクトへの攻撃により、前記第1のキャラクタオブジェクトに含まれる顔画像が前記取得した元の顔画像に近づくように、前記変形を後退させる手段と、を含む画像処理装置。
【0515】
(付記6)
表示装置を接続可能な画像処理装置であって、
顔画像を取得する画像取得手段と、
前記取得した顔画像を変形させた顔画像を含むキャラクタオブジェクトを作成する手段と、
プレイヤの操作を受け付けて、前記表示装置に前記キャラクタオブジェクトを表示して前記顔画像に関連するゲームを進行するゲーム処理手段と、
プレイヤの操作による前記ゲームでの成功または不成功を判定する手段と、
前記ゲームの結果が成功であったときに、前記変形させた顔画像を前記取得した元の顔画像に復帰させる手段と、を備える画像処理装置。
【0516】
(付記7)
表示装置と、
顔画像を取得する画像取得手段と、
前記取得した顔画像を基に第1のキャラクタオブジェクトを作成する手段と、
前記第1のキャラクタオブジェクトとともに、前記第1のキャラクタオブジェクトとは異なる第2のキャラクタオブジェクトを前記表示装置に表示してゲームを実行するゲーム処理手段と、を備え、
前記ゲーム処理手段は、
プレイヤの操作による前記第1のキャラクタオブジェクトへの攻撃により、前記ゲームでの成功に寄与する手段と、
プレイヤの操作による前記第2のキャラクタオブジェクトへの攻撃を無効にする手段と、を含む画像処理装置。
【0517】
(付記8)
表示装置と、
顔画像を取得する画像取得手段と、
前記取得した一の顔画像を含む第1のキャラクタオブジェクトを作成する手段と、
前記第1のキャラクタオブジェクトとともに、前記第1のキャラクタオブジェクトよりも寸法の小さい、前記一の顔画像を含む第2のキャラクタオブジェクトと前記第1のキャラクタオブジェクトよりも寸法の小さい、前記一の顔画像以外の顔画像を含む第3のキャラクタオブジェクトとを前記表示装置に表示してゲームを実行するゲーム処理手段と、を備え、
前記ゲーム処理手段は、
プレイヤの操作による前記第3のキャラクタオブジェクトへの攻撃により、前記第1のキャラクタオブジェクトに含まれる前記顔画像の変形を進行させる手段と、
プレイヤの操作による前記第2のキャラクタオブジェクトへの攻撃により、前記第1のキャラクタオブジェクトに含まれる顔画像が前記取得した元の顔画像に近づくように、前記変形を後退させる手段と、を含む画像処理装置。
【0518】
(付記9)
表示装置と、
顔画像を取得する画像取得手段と、
前記取得した顔画像を変形させた顔画像を含むキャラクタオブジェクトを作成する手段と、
プレイヤの操作を受け付けて、前記表示装置に前記キャラクタオブジェクトを表示して前記顔画像に関連するゲームを進行するゲーム処理手段と、
プレイヤの操作による前記ゲームでの成功または不成功を判定する手段と、
前記ゲームの結果が成功であったときに、前記変形させた顔画像を前記取得した元の顔画像に復帰させる手段と、を備える画像処理装置。
【0519】
(付記10)
撮像装置と、
前記撮像装置によって取得した画像を含む情報を表示する表示装置と、
前記撮像装置および表示装置と連携する画像処理装置とを備える画像処理システムであって、
前記画像処理装置は、
顔画像を取得する画像取得手段と、
前記取得した顔画像を基に第1のキャラクタオブジェクトを作成する手段と、
前記第1のキャラクタオブジェクトとともに、前記第1のキャラクタオブジェクトとは異なる第2のキャラクタオブジェクトを前記表示装置に表示してゲームを実行するゲーム処理手段と、を備え、
前記ゲーム処理手段は、
プレイヤの操作による前記第1のキャラクタオブジェクトへの攻撃により、前記ゲームでの成功に寄与する手段と、
プレイヤの操作による前記第2のキャラクタオブジェクトへの攻撃を無効にする手段と、を含む画像処理システム。
【0520】
(付記11)
撮像装置と、
前記撮像装置によって取得した画像を含む情報を表示する表示装置と、
前記撮像装置および表示装置と連携する画像処理装置とを備える画像処理システムであって、
前記画像処理装置は、
顔画像を取得する画像取得手段と、
前記取得した一の顔画像を含む第1のキャラクタオブジェクトを作成する手段と、
前記第1のキャラクタオブジェクトとともに、前記第1のキャラクタオブジェクトよりも寸法の小さい、前記一の顔画像を含む第2のキャラクタオブジェクトと前記第1のキャラクタオブジェクトよりも寸法の小さい、前記一の顔画像以外の顔画像を含む第3のキャラクタオブジェクトとを前記表示装置に表示してゲームを実行するゲーム処理手段と、を備え、
前記ゲーム処理手段は、
プレイヤの操作による前記第3のキャラクタオブジェクトへの攻撃により、前記第1のキャラクタオブジェクトに含まれる前記顔画像の変形を進行させる手段と、
プレイヤの操作による前記第2のキャラクタオブジェクトへの攻撃により、前記第1のキャラクタオブジェクトに含まれる顔画像が前記取得した元の顔画像に近づくように、前記変形を後退させる手段と、を含む画像処理システム。
【0521】
(付記12)
撮像装置と、
前記撮像装置によって取得した画像を含む情報を表示する表示装置と、
前記撮像装置および表示装置と連携する画像処理装置とを備える画像処理システムであって、
前記画像処理装置は、
顔画像を取得する画像取得手段と、
前記取得した顔画像を変形させた顔画像を含むキャラクタオブジェクトを作成する手段と、
プレイヤの操作を受け付けて、前記表示装置に前記キャラクタオブジェクトを表示して前記顔画像に関連するゲームを進行するゲーム処理手段と、
プレイヤの操作による前記ゲームでの成功または不成功を判定する手段と、
前記ゲームの結果が成功であったときに、前記変形させた顔画像を前記取得した元の顔画像に復帰させる手段と、を備える画像処理システム。
【0522】
(付記13)
表示装置に画像を表示するコンピュータが、
顔画像を取得する画像取得ステップと、
前記取得した顔画像を基に第1のキャラクタオブジェクトを作成するステップと、
前記第1のキャラクタオブジェクトとともに、前記第1のキャラクタオブジェクトとは異なる第2のキャラクタオブジェクトを表示してゲームを実行するゲーム処理ステップと、を実行し、
前記ゲーム処理ステップは、
プレイヤの操作による前記第1のキャラクタオブジェクトへの攻撃により、前記ゲームでの成功に寄与するステップと、
プレイヤの操作による前記第2のキャラクタオブジェクトへの攻撃を無効にするステップと、を含む情報処理方法。
【0523】
(付記14)
表示装置に画像を表示するコンピュータが、
顔画像を取得する画像取得ステップと、
前記取得した一の顔画像を含む第1のキャラクタオブジェクトを作成するステップと、
前記第1のキャラクタオブジェクトとともに、前記第1のキャラクタオブジェクトよりも寸法の小さい、前記一の顔画像を含む第2のキャラクタオブジェクトと前記第1のキャラクタオブジェクトよりも寸法の小さい、前記一の顔画像以外の顔画像を含む第3のキャラクタオブジェクトとを表示してゲームを実行するゲーム処理ステップと、を実行し、
前記ゲーム処理ステップは、
プレイヤの操作による前記第3のキャラクタオブジェクトへの攻撃により、前記第1のキャラクタオブジェクトに含まれる前記顔画像の変形を進行させるステップと、
プレイヤの操作による前記第2のキャラクタオブジェクトへの攻撃により、前記第1のキャラクタオブジェクトに含まれる顔画像が前記取得した元の顔画像に近づくように、前記変形を後退させるステップと、を含む情報処理方法。
【0524】
(付記15)
表示装置に画像を表示するコンピュータが、
顔画像を取得する画像取得ステップと、
前記取得した顔画像を変形させた顔画像を含むキャラクタオブジェクトを作成するステップと、
プレイヤの操作を受け付けて、前記顔画像に関連するゲームを進行するゲーム処理ステップと、
プレイヤの操作による前記ゲームでの成功または不成功を判定するステップと、
前記ゲームの結果が成功であったときに、前記変形させた顔画像が前記取得した元の顔画像に復帰するステップと、を実行する情報処理方法。
【産業上の利用可能性】
【0525】
本発明に係るゲームプログラム、画像処理装置、画像処理システム、および画像処理方法は、実世界画像と仮想世界画像とを合成して新たな画像を生成することが可能であり、各種画像を表示装置に表示する処理を行うゲームプログラム、画像処理装置、画像処理システム、および画像処理方法等として有用である。
【符号の説明】
【0526】
10…ゲーム装置
11…下側ハウジング
12…下側LCD
13…タッチパネル
14…操作ボタン
15…アナログスティック
16…LED
17…挿入口
18…マイクロフォン用孔
19…無線スイッチ
21…上側ハウジング
22…上側LCD
23…外側撮像部
23a…外側左撮像部
23b…外側右撮像部
24…内側撮像部
25…3D調整スイッチ
26…3Dインジケータ
27…スクリーンカバー
28…タッチペン
31…情報処理部
311…CPU
312…GPU
313…VRAM
32…メインメモリ
33…外部メモリI/F
34…データ保存用外部メモリI/F
35…データ保存用内部メモリ
36…無線通信モジュール
37…ローカル通信モジュール
38…RTC
39…加速度センサ
40…角速度センサ
41…電源回路
42…I/F回路
43…マイク
44…スピーカ
45…外部メモリ
46…データ保存用外部メモリ
図1
図2
図3A
図3B
図3C
図3D
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19A
図19B
図19C
図20A
図20B
図21
図22
図23
図24
図25
図26
図27A
図27B
図28
図29
図30
図31
図32A
図32B
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46
図47
図48
図49
図50
図51