図面 (/)

技術 画像処理プログラム、画像処理装置、画像処理システム、及び、画像処理方法

出願人 任天堂株式会社株式会社ハル研究所
発明者 鈴木利明鈴木輝彦
出願日 2010年10月15日 (8年6ヶ月経過) 出願番号 2010-232715
公開日 2012年5月10日 (6年11ヶ月経過) 公開番号 2012-088782
状態 特許登録済
技術分野 イメージ生成 電子ゲーム機 イメージ処理・作成
主要キーワード 球体面 実体モデル 最下点位置 奥側領域 実体画像 Y座標 手前側領域 スクリーンカバー
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2012年5月10日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

仮想空間に存在するオブジェクト雰囲気を損なわず、仮想空間に存在するオブジェクトの位置関係をユーザに容易に認識させることができる画像処理プログラム画像処理装置画像処理システム、及び、画像処理方法を提供する。

解決手段

所定のテクスチャが貼り付けられた第1のモデルと第2のモデルとを含む3次元の仮想空間を仮想カメラ撮像した状態の表示画像を生成し、当該生成した画像を表示装置に表示する。生成する表示画像には、仮想空間において仮想カメラの視野方向を基準として第1のモデルの背後に存在する第2のモデルに対応した位置に存在したシルエットモデルであって、当該第2のモデルのシルエット画像が貼り付けられたシルエットモデルが第1のモデルの前面に描画される。

概要

背景

従来、コンピュータグラフィックス等における仮想物体オブジェクト)の描画手法
おいて、オブジェクトの位置関係をユーザに認識可能とするために、当該オブジェクトの影を描写する手法や透過処理を行う手法が用いられている。

例えば、特許文献1には、オブジェクトの影を二方向に描写することで、ユーザに当該オブジェクトの位置関係を認識可能とする技術が開示されている。また、例えば、特許文献2には、仮想空間において手前側に存在するオブジェクトの一部を透過処理することによって、奥側に存在するオブジェクトの位置関係を認識可能とする技術が開示されている。

概要

仮想空間に存在するオブジェクトの雰囲気を損なわず、仮想空間に存在するオブジェクトの位置関係をユーザに容易に認識させることができる画像処理プログラム画像処理装置画像処理システム、及び、画像処理方法を提供する。所定のテクスチャが貼り付けられた第1のモデルと第2のモデルとを含む3次元の仮想空間を仮想カメラ撮像した状態の表示画像を生成し、当該生成した画像を表示装置に表示する。生成する表示画像には、仮想空間において仮想カメラの視野方向を基準として第1のモデルの背後に存在する第2のモデルに対応した位置に存在したシルエットモデルであって、当該第2のモデルのシルエット画像が貼り付けられたシルエットモデルが第1のモデルの前面に描画される。

目的

本発明の目的は、仮想空間に存在するオブジェクトの雰囲気を損なわず、仮想空間に存在するオブジェクトの位置関係をユーザに容易に認識させることができる画像処理プログラム、画像処理装置、画像処理システム、及び、画像処理方法を提供する

効果

実績

技術文献被引用数
1件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

表示装置に画像を表示するコンピュータで実行される画像処理プログラムであって、前記コンピュータに、所定のテクスチャが貼り付けられた第1のモデルと第2のモデルとを含む3次元仮想空間を仮想カメラ撮像した状態の表示画像を生成するステップと、前記生成された画像を前記表示装置に表示するステップと、を含み、前記表示画像を生成するステップでは、前記仮想空間において前記仮想カメラの視野方向を基準として前記第1のモデルの背後に存在する前記第2のモデルに対応した位置に存在するシルエットモデルであって、かつ、当該第2のモデルのシルエット画像が貼り付けられたシルエットモデルを前記第1のモデルの前面に描画した表示画像が生成されることを特徴とする画像処理プログラム。

請求項2

前記シルエットモデルは、前記仮想空間において前記仮想カメラの視野方向を基準として前記第1のモデルの背後に配置される、請求項1に記載の画像処理プログラム。

請求項3

前記シルエットモデルは、前記仮想空間において前記第2のモデルと同じ位置に配置される、請求項2に記載の画像処理プログラム。

請求項4

前記シルエットモデルは、前記仮想空間において前記第2のモデルに内包されるように配置される、請求項3に記載の画像処理プログラム。

請求項5

前記表示画像を生成するステップにおいて、前記第1のモデルと前記第2のモデルとの間、および当該第2のモデルと前記シルエットモデルとの間では、前記仮想カメラの視野方向を基準として近い方のモデルが前面に描画され、前記第1のモデルと前記シルエットモデルとの間では、前記仮想カメラの視野方向を基準としていずれが近いか否かにかかわらず、当該シルエットモデルが当該第1のモデルの前面に描画される、請求項1ないし4のいずれか1項に記載の画像処理プログラム。

請求項6

前記シルエット画像は、前記第2モデルの向きに応じた輪郭を有する、請求項1ないし5のいずれか1項に記載の画像処理プログラム。

請求項7

前記シルエットモデルは、複数の板状のモデルであり、当該複数の板状のモデルのそれぞれには、前記第2のモデルの向きに応じた輪郭のシルエット画像が貼り付けられる、請求項6に記載の画像処理プログラム。

請求項8

前記複数の板状のモデルのそれぞれには、当該モデルの法線方向から見た前記第2のモデルの輪郭のシルエット画像が貼り付けられる、請求項7に記載の画像処理プログラム。

請求項9

前記第1のモデルと前記第2のモデルのシルエットモデルはアルファ値が設定され、前記表示画像を生成するステップにおいて、前記第1のモデルのアルファ値と前記第2のモデルのシルエットのアルファ値との比較に基づいて、前記第2のモデルのシルエットモデルを前記第1のモデルの前面に描画した前記表示画像が生成されることを特徴とする請求項1ないし8のいずれか1項に記載の画像処理プログラム。

請求項10

前記第1のモデルは、実カメラで撮像された撮像画像であることを特徴とする請求項1ないし9のいずれか1項に記載の画像処理プログラム。

請求項11

前記表示画像を生成するステップにおいて、前記第1のモデルの一部に開口が形成され、この開口から前記第1のモデルの背後に存在する前記第2のモデルが描画された前記表示画像が生成される請求項1から10のいずれか1項に記載の画像処理プログラム。

請求項12

前記表示画像を生成するステップにおいて、前記開口以外はシルエットモデルを前記第1のモデルの前面に描画された前記表示画像が生成される請求項11に記載の画像処理プログラム。

請求項13

前記第2のモデルは、前記第1のモデルの手前側と奥側とを往来するオブジェクトであることを特徴とする請求項1から12のいずれか1項に記載の画像処理プログラム。

請求項14

前記第2のモデルのシルエットモデルは、仮想カメラからの視野方向に対応した画像であって、前記第2のモデルを簡素化した画像であることを特徴とする請求項1から13のいずれか1項に記載の画像処理プログラム。

請求項15

表示装置に画像を表示するコンピュータで実行される画像処理プログラムであって、前記コンピュータに、所定のテクスチャが貼り付けられた第1のモデルと第2のモデルとを含む3次元の仮想空間を仮想カメラで撮像した状態の表示画像を生成するステップと、前記生成された画像を前記表示装置に表示するステップと、を含み、前記表示画像を生成するステップにおいて、前記仮想空間において前記仮想カメラの視野方向を基準として前記第1のモデルの背後に存在する前記第2のモデルと一体的に配置される関連モデルであって、当該第2のモデルに関連する画像が貼り付けられた関連モデルを前記第1のモデルの前面に描画した表示画像が生成されることを特徴とする画像処理プログラム。

請求項16

表示装置に画像を表示する画像処理装置であって、所定のテクスチャが貼り付けられた第1のモデルと第2のモデルとを含む3次元の仮想空間を仮想カメラで撮像した状態の表示画像を生成する画像生成手段と、前記生成された画像を前記表示装置に表示する表示制御手段と、を備え、前記画像生成手段において、前記仮想空間において前記仮想カメラの視野方向を基準として前記第1のモデルの背後に存在する前記第2のモデルに対応した位置に存在するシルエットモデルであって、かつ、当該第2のモデルのシルエット画像が貼り付けられたシルエットモデルを前記第1のモデルの前面に描画した表示画像が生成されることを特徴とする画像処理装置。

請求項17

複数の装置が通信可能に構成され、表示装置に画像を表示する画像処理システムであって、所定のテクスチャが貼り付けられた第1のモデルと第2のモデルとを含む3次元の仮想空間を仮想カメラで撮像した状態の表示画像を生成する画像生成手段と、前記生成された画像を前記表示装置に表示する表示制御手段と、を備え、前記画像生成手段において、前記仮想空間において前記仮想カメラの視野方向を基準として前記第1のモデルの背後に存在する前記第2のモデルに対応した位置に存在するシルエットモデルであって、かつ、当該第2のモデルのシルエット画像が貼り付けられたシルエットモデルを前記第1のモデルの前面に描画した表示画像が生成されることを特徴とする画像処理システム。

請求項18

表示装置に画像を表示する画像処理が可能な少なくとも1つの情報処理装置により構成される画像処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間協働により実行される画像処理方法であって、所定のテクスチャが貼り付けられた第1のモデルと第2のモデルとを含む3次元の仮想空間を仮想カメラで撮像した状態の表示画像を生成するステップと、前記生成された画像を前記表示装置に表示するステップと、を含み、前記表示画像を生成するステップにおいて、前記仮想空間において前記仮想カメラの視野方向を基準として前記第1のモデルの背後に存在する前記第2のモデルに対応した位置に存在するシルエットモデルであって、かつ、当該第2のモデルのシルエット画像が貼り付けられたシルエットモデルを前記第1のモデルの前面に描画した表示画像が生成されることを特徴とする画像処理方法。

技術分野

0001

本発明は、仮想空間上に存在するオブジェクト画像処理を行う画像処理プログラム画像処理装置画像処理システム、及び、画像処理方法に関する。

背景技術

0002

従来、コンピュータグラフィックス等における仮想物体(オブジェクト)の描画手法
おいて、オブジェクトの位置関係をユーザに認識可能とするために、当該オブジェクトの影を描写する手法や透過処理を行う手法が用いられている。

0003

例えば、特許文献1には、オブジェクトの影を二方向に描写することで、ユーザに当該オブジェクトの位置関係を認識可能とする技術が開示されている。また、例えば、特許文献2には、仮想空間において手前側に存在するオブジェクトの一部を透過処理することによって、奥側に存在するオブジェクトの位置関係を認識可能とする技術が開示されている。

先行技術

0004

特開2009−011567号公報
特開2006−068138号公報

発明が解決しようとする課題

0005

しかしながら、例えば、上記特許文献1において開示される技術では、影を描画するオブジェクトの前面にオブジェクトが存在する場合、ユーザは、オブジェクトの位置関係を認識することはできなかった。また、上記特許文献2において開示される技術では、前面に存在するオブジェクトが透過処理されてしまうため、前面側のオブジェクトの少なくとも一部は表示されず、仮想空間に存在するオブジェクトの雰囲気を損ねてしまうという問題点があった。

0006

そこで、本発明の目的は、仮想空間に存在するオブジェクトの雰囲気を損なわず、仮想空間に存在するオブジェクトの位置関係をユーザに容易に認識させることができる画像処理プログラム、画像処理装置、画像処理システム、及び、画像処理方法を提供することにある。

課題を解決するための手段

0007

本発明は、上述した目的を達成するために、以下の構成を採用する。

0008

本発明の画像処理プログラムは、表示装置に画像を表示するコンピュータで実行される。そして、本発明の画像処理プログラムは、当該コンピュータに、所定のテクスチャが貼り付けられた第1のモデルと第2のモデルとを含む3次元の仮想空間を仮想カメラ撮像した状態の表示画像を生成するステップと、前記生成された表示画像を前記表示装置に表示するステップと、を含むステップを実行させる。また、前記表示画像を生成するステップでは、前記仮想空間において前記仮想カメラの視野方向を基準として前記第1のモデルの背後に存在する前記第2のモデルに対応した位置に存在するシルエットモデルであって、当該第2のモデルのシルエット画像が貼り付けられたシルエットモデルを前記第1のモデルの前面に描画した表示画像が生成される。

0009

上記によれば、第2のモデルの前面に存在する第1のモデルは透過処理されず、かつ、第2のモデルはシルエットモデルとして第1のモデルの前面に描画される。したがって、上記によれば、仮想空間に存在する第1のモデルの雰囲気を損なわず、第1のモデル及び第2のモデルの位置関係をユーザに容易に認識させることができる。

0010

また、上記シルエットモデルは、仮想空間において仮想カメラの視野方向を基準として第1のモデルの背後に配置されてもよい。

0011

上記によれば、第2のモデルの前面に存在する第1のモデルは透過処理されず、かつ、第2のモデルと同じ位置に配置されるシルエットモデルが第1のモデルの前面に描画される。したがって、上記によれば、第2のモデルのシルエットモデルを第1のモデルの背後に配置することで、仮想空間に存在する第1のモデルの雰囲気を損なわず、第1のモデル及び第2のモデルの位置関係をユーザに容易に認識させることができる。

0012

また、上記シルエットモデルは、仮想空間において第2のモデルと同じ位置に配置されてもよい。

0013

上記によれば、第2のモデルの前面に存在する第1のモデルは透過処理されず、かつ、第2のモデルと同じ位置に配置されるシルエットモデルが第1のモデルの前面に描画される。したがって、上記によれば、第2のモデルのシルエットモデルを第2のモデルと同じ位置に配置することで、仮想空間に存在する第1のモデルの雰囲気を損なわず、第1のモデル及び第2のモデルの位置関係をユーザに容易に認識させることができる。

0014

また、上記シルエットモデルは、仮想空間において第2のモデルに内包されるように配置されてもよい。

0015

上記によれば、第2のモデルの前面に存在する第1のモデルは透過処理されず、かつ、第2のモデルに内包されるように配置されたシルエットモデルが第1のモデルの前面に描画される。したがって、上記によれば、第2のモデルのシルエットモデルを第2のモデルに内包されるように配置することで、仮想空間に存在する第1のモデルの雰囲気を損なわず、第1のモデル及び第2のモデルの位置関係をユーザに容易に認識させることができる。さらに、第2のモデルのシルエットモデルが第2のモデルに内包されるため、第2のモデルそのものを描画する場合には、シルエットモデルをユーザに認識させないことができるため、不自然表現が行われることを防止できる。

0016

また、上記表示画像を生成するステップにおいて、第1のモデルと第2のモデルとの間、および当該第2のモデルとシルエットモデルとの間では、仮想カメラの視野方向を基準として近い方のモデルが前面に描画され、第1のモデルとシルエットモデルとの間では、仮想カメラの視野方向を基準としていずれが近いか否かにかかわらず、当該シルエットモデルが当該第1のモデルの前面に描画されてもよい。

0017

上記によれば、第1のモデルと第2のモデルとの間、及び、第2のモデルとシルエットモデルとの間では、仮想カメラの視野方向を基準として近い方のモデルが描画される。また、第1のモデルとシルエットモデルとの間では、仮想カメラからの遠近は関係なくシルエットモデルが第1のモデルの前面に描画される。したがって、上記によれば、仮想空間に存在する第1のモデルの雰囲気を損なわず、第1のモデル及び第2のモデルの位置関係をユーザに容易に認識させることができる。

0018

また、上記シルエット画像は、第2モデルの向きに応じた輪郭を有してもよい。

0019

上記によれば、第2のモデルのシルエット画像が貼り付けられたシルエットモデルの前面に存在する第1のモデルは透過処理されず、かつ、第2のモデルの向きに応じた輪郭を有するシルエットモデルが第1のモデルの前面に描画される。したがって、上記によれば、仮想空間に存在する第1のモデルの雰囲気を損なわず、第1のモデル及び第2のモデルの位置関係をユーザに容易に認識させることができる。また、上記によれば、第1のモデルの前面に描画されるシルエットモデルは第2のモデルの向きに応じた輪郭を有しているため、第1のモデルの背後に存在する第2のモデルの動向をユーザに認識させることができる。

0020

また、上記シルエットモデルは、複数の板状のモデルであり、当該複数の板状のモデルのそれぞれには、第2のモデルの向きに応じた輪郭のシルエット画像が貼り付けられてもよい。

0021

上記によれば、第2のモデルのシルエット画像が貼り付けられたシルエットモデルの前面に存在する第1のモデルは透過処理されず、かつ、第2のモデルの向きに応じた輪郭を有するシルエットモデルが第1のモデルの前面に描画される。したがって、上記によれば、仮想空間に存在する第1のモデルの雰囲気を損なわず、第1のモデル及び第2のモデルの位置関係をユーザに容易に認識させることができる。また、上記によれば、第1のモデルの前面に描画されるシルエットモデルは第2のモデルの向きに応じた輪郭を有しているため、第1のモデルの背後に存在する第2のモデルの動向をユーザに認識させることができる。

0022

また、上記複数の板状のモデルのそれぞれには、当該モデルの法線方向から見た第2のモデルの輪郭のシルエット画像が貼り付けられてもよい。

0023

上記によれば、第2のモデルのシルエット画像が貼り付けられたシルエットモデルの前面に存在する第1のモデルは透過処理されず、かつ、シルエットモデルが第1のモデルの前面に描画される。したがって、上記によれば、仮想空間に存在する第1のモデルの雰囲気を損なわず、第1のモデル及び第2のモデルの位置関係をユーザに容易に認識させることができる。また、上記によれば、シルエットモデルは複数の板状のモデルであり、かつ、複数の板状のモデルにはそれぞれ、当該モデルの法線方向から見た第2のモデルの輪郭のシルエット画像が貼り付けられる。したがって、上記によれば、第1のモデルの前面に描画されるシルエットモデルは板状のモデルそれぞれの法線方向から見た第2のモデルの輪郭を有しているため、第1のモデルの背後に存在する第2のモデルの動向をユーザに認識させることができる。

0024

また、上記第1のモデルと第2のモデルのシルエットモデルはアルファ値が設定され、上記表示画像を生成するステップにおいて、第1のモデルのアルファ値と第2のモデルのシルエットモデルのアルファ値との比較に基づいて、第2のモデルのシルエットモデルを第1のモデルの前面に描画した表示画像が生成されてもよい。

0025

上記によれば、アルファ値の比較により、第1のモデルの背後に存在する第2のモデルのシルエットモデルを描画することができる。したがって、上記によれば、シルエットモデルの描画を簡単な処理で実現することができ、GPUの処理に任せることができる。

0026

また、第1のモデルは、実カメラで撮像された撮像画像であってもよい。

0027

上記によれば、現実世界を撮像した撮像画像に、当該撮像画像の背後に存在する第2のモデルのシルエットモデルを描画することができる。したがって、上記によれば、実世界
の画像の雰囲気を損なわず、実世界の画像の背後の世界観を描画することでユーザの興味を引く表示画像を生成することができる。

0028

また、上記表示画像を生成するステップにおいて、第1のモデルの一部に開口が形成され、この開口から第1のモデルの背後に存在する第2のモデルが描画された表示画像が生成されてもよい。

0029

上記によれば、第1のモデルの開口部においては第2のモデルが描画される。したがって、上記によれば、仮想空間における第1のモデルの状態を反映した、第1のモデルの背後に存在する第2のモデルを描画した表示画像を生成することができる。

0030

また、上記表示画像を生成するステップにおいて、開口以外はシルエットモデルを第1のモデルの前面に描画された表示画像が生成されてもよい。

0031

上記によれば、第1のモデルの開口部においては第2のモデルが描画され、第1のモデルの非開口部においてはシルエットモデルが描画される。したがって、上記によれば、仮想空間における第1のモデルの状態を反映した表示画像を生成することができる。また、上記によれば、仮想空間に存在する第1のモデルの雰囲気を損なわず、第1のモデル及び第2のモデルの位置関係をユーザに容易に認識させることができる。

0032

また、上記第2のモデルは、第1のモデルの手前側と奥側とを往来するオブジェクトであってもよい。

0033

上記によれば、第1のモデルの前後を第2のモデルが往来する。したがって、上記によれば、第2のモデルを介して第1のモデルの背後の世界観をユーザに認識させる表示画像を生成することができる。

0034

また、上記第2のモデルのシルエットモデルは、仮想カメラからの視野方向に対応した画像であって、第2のモデルを簡素化した画像であってもよい。

0035

上記によれば、第1のモデルの背後に存在する第2のモデルの動向をユーザに認識させる表示画像を生成することができる。また、上記によれば、第2のモデルのシルエットモデルは、第2のモデルを簡素化した画像であるため、表示画像の生成処理負荷を低減することができる。

0036

また、本発明の画像処理プログラムは、表示装置に画像を表示するコンピュータで実行される。そして、本発明の画像処理プログラムは、当該コンピュータに、所定のテクスチャが貼り付けられた第1のモデルと第2のモデルとを含む3次元の仮想空間を仮想カメラで撮像した状態の表示画像を生成するステップと、前記生成された画像を前記表示装置に表示するステップと、を含むステップを実行させる。また、前記表示画像を生成するステップでは、前記仮想空間において前記仮想カメラの視野方向を基準として前記第1のモデルの背後に存在する前記第2のモデルと一体的に配置される関連モデルであって、当該第2のモデルに関連する画像が貼り付けられた関連モデルを前記第1のモデルの前面に描画した表示画像が生成される。

0037

上記によれば、仮想空間において仮想カメラの視野方向を基準として第1のモデルの背後に存在する第2のモデルに関連する画像が貼り付けられた関連モデルが、第1のモデルの前面に描画される。したがって、上記によれば、仮想空間に存在する第1のモデルの雰囲気を損なわず、第1のモデル及び第2のモデルの位置関係をユーザに容易に認識させることができる。

0038

なお、本発明の別態様としては、以上の何れかの構成を実現する画像処理装置であってもよい。また、本発明の別態様として、以上の何れかの構成を実現する、複数の装置が通信可能に構成された画像処理システムであってもよい。また、本発明の別態様として、以上の何れかの構成を実現する、表示装置に画像を表示する画像処理が可能な少なくとも1つの情報処理装置により構成される画像処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間協働により実行される画像処理方法であってもよいし、このような画像処理プログラムを記録したコンピュータが読み取り可能な記憶媒体であってもよい。

発明の効果

0039

本発明によれば、仮想空間に存在するオブジェクトの雰囲気を損なわず、仮想空間に存在するオブジェクトの位置関係をユーザに容易に認識させることができる画像処理プログラム、画像処理装置、画像処理システム、及び、画像処理方法を提供することができる。

図面の簡単な説明

0040

本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の開いた状態を示す正面図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の開いた状態を示す側面図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の閉じた状態を示す左側面図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の閉じた状態を示す正面図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の閉じた状態を示す右側面図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の閉じた状態を示す背面図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置をユーザが両手把持する様子の例を示す図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置をユーザが片手で把持する様子の例を示す図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の内部構成の例を示すブロック図
実施形態における画像処理プログラムの一例である仮想空間の概要を示す図
実施形態におけるスクリーンモデルとαテクスチャの関係を示す図
実施形態における画像処理プログラムの一例である仮想空間の概要を示す図
実施形態における画像処理プログラムの一例であるゲームプログラムにおいて定義される仮想の3次元空間(ゲーム世界)を示す図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の上側LCDに表示される表示形態例各処理段階の一例を示す図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の上側LCDに表示される表示形態例の各処理段階の一例を示す図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の上側LCDに表示される表示形態例の各処理段階の一例を示す図
本実施形態における画像処理プログラムを実行する装置の一例であるゲーム装置の上側LCDに表示される表示形態例の各処理段階の一例を示す図
影オブジェクトのシルエットモデルを上から見た一例を示す図
影オブジェクトのシルエットモデルの一例を示す図
各オブジェクトの不透明度の一例を示す図
図1のゲーム装置で本実施形態における画像処理プログラムを実行することに応じて、メインメモリに記憶される各種データの一例を示す図
図1のゲーム装置で本実施形態における画像処理プログラムを実行することによってゲーム装置が画像処理する動作の一例を示すフローチャート
本実施形態における画像処理プログラムの敵オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャート
本実施形態における画像処理プログラムの弾オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャート
本実施形態における画像処理プログラムの表示画像の更新処理(第1の描画方法)の詳細な動作の一例を示すサブルーチンのフローチャート
本実施形態における画像処理プログラムの表示画像の更新処理(第2の描画方法)の詳細な動作の一例を示すサブルーチンのフローチャート
第1の描画方法におけるレンダリング処理の一例を説明するための説明図
図21の各オブジェクトの位置関係を説明するための説明図
実カメラ画像レンダリングする処理の一例を説明するための説明図
実カメラ画像をレンダリングする際の座標の一例を説明するための説明図
仮想空間をレンダリングする処理の一例を説明するための説明図
図25の各オブジェクトの位置関係説明するための説明図
仮想空間をレンダリングする際の境界面の座標の一例を説明するための説明図
本実施形態における画像処理プログラムにより生成される表示画像の一例を示す図
本実施形態における画像処理プログラムにおける敵オブジェクトの出現演出の一例を示す図

実施例

0041

以下、本発明に係る一実施形態としての画像処理プログラムを実行する画像処理装置について具体例を挙げて説明する。ただし、以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。

0042

なお、以下に挙げる実施形態において、コンピュータが処理するデータをグラフ自然言語を用いて例示しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメタマシン語、配列等で指定される。本発明は、データの表現方法を限定するものではない。

0043

§1ハードウェア構成
まず、図面を参照して、本実施形態に係る画像処理プログラムを実行する画像処理装置の一例として携帯型のゲーム装置10について説明する。ただし、本発明に係る画像処理装置はゲーム装置に限定されるものではない。本発明に係る画像処理装置は、例えば、汎用コンピュータ等、任意のコンピュータシステムであればよい。また、携帯型でなくてもよい。

0044

なお、以下に示される本実施形態に係る画像処理プログラムはゲームプログラムであるが、本発明に係る画像処理プログラムはゲームプログラムに限定されるものではない。本発明の画像処理プログラムは、任意のコンピュータシステムで実行されることによって適用することができる。また、本実施形態の各処理をネットワーク化された複数の装置で分散処理してもよいし、サーバで主要な処理を行った後、端末に処理結果を配信するネットワークシステムや、いわゆるクラウドネットワークで実施してもよい。

0045

図1図2図3A図3B図3C、及び図3Dは、ゲーム装置の外観の一例を示す
平面図である。

0046

図1図3Dに示されるゲーム装置10は、撮像部(カメラ)を内蔵しており、当該撮像部によって画像を撮像(以下、「撮影」とも記載する)し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶されたゲームプログラム、又は、サーバや他のゲーム装置からネットワークを介して受信したゲームプログラムを実行可能である。また、ゲーム装置10は、仮想空間に設定された仮想カメラで撮像したときの画像を、コンピュータグラフィックス処理により生成して画面に表示することもできる。

0047

図1図3Dに示されるゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、ヒンジ構造により開閉可能(折り畳み可能)に連結されている。すなわち、上側ハウジング21は、下側ハウジング11に対して回動揺動)自在に取り付けられている。これにより、ゲーム装置10は、上側ハウジング21が下側ハウジング11に対して密着した状態となる閉状態図3A図3C)と、上側ハウジング21が下側ハウジング11に対して回動し、密着場外が解除された状態(開状態)との二つの形態を有する。上側ハウジング21の回動は、図2に示すように、開状態において、上側ハウジング21と下側ハウジング11とが略平行となる位置まで許容される(図2参照)。

0048

図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とのそれぞれの内側面(主面)とは反対側の面を、外側面と称する。

0049

ゲーム装置10の下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向(図中z方向)に突出した突起部(軸受け部)11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部(軸受け部)21Aが設けられる。突起部11A,21A,11A内には、例えば、一方の突起部11Aから突起部21Aを貫通し他方の突起部11Aまでx方向に延びる回動軸(図示せず)が収容されており、この回動軸を中心に、上側ハウジング21が下側ハウジング11に対して相対的に回動自在となっている。このようにして、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。

0050

図1に示される下側ハウジング11の内側面11Bには、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L、アナログスティック15、第1LED16A、および、マイクロフォ
ン用孔18が設けられる。

0051

下側LCD12は下側ハウジング11に収納される。下側LCD12の平面形状は横長の長方形であり、その長辺方向が下側ハウジング11の長手方向(図1中x方向)に一致するように配置される。下側LCD12は、下側ハウジング11の内側面(主面)中央に設けられる。下側ハウジング11の内側面に設けられた開口部から下側LCD12の画面が露出する。ゲーム装置10を使用しない場合には上記閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、一例として、320dot×240dot(横×縦)である。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、第1実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の表示装置を利用してもよい。また、下側LCD12として、所望の解像度を有する表示装置を利用することができる。

0052

タッチパネル13はゲーム装置10の入力装置の一つである。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。第1実施形態では、タッチパネル13は、抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば、静電容量方式等、任意の押圧式のタッチパネルを用いることができる。また、第1実施形態では、タッチパネル13は、下側LCD12の解像度と同解像度(検出精度)のものが利用される。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。

0053

各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが設けられる。

0054

十字ボタン14Aは、十字の形状を有しており、少なくとも上下左右の方向を指示するボタンを有している。十字ボタン14Aは、下側LCD12より左側の領域中の下部領域に設けられる。十字ボタン14Aは、下側ハウジング11を把持した左手親指で操作可能な位置に設計される。

0055

ボタン14B、ボタン14C、ボタン14D、及びボタン14Eの4つのボタンは、下側LCD12より右側の領域中の上部に、十字状に配置されて設けられる。ボタン14B、ボタン14C、ボタン14D、及びボタン14Eは、下側ハウジング11を把持するユーザの右手の親指が自然と位置するところに設置される。電源ボタン14Fは、下側LCD12の右側の領域中の下部に配置される。

0056

セレクトボタン14J、HOMEボタン14K、及びスタートボタン14Lは、それぞれ、下側LCD12の下側領域に設置される。

0057

ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10によって実行されるプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは、選択操作やゲーム中のキャラクタ移動操作等に用いられる。例えば、各操作ボタン14B〜14Eは、決定操作キャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオンオフするために用いられる。

0058

アナログスティック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として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。

0059

なお、ボタン14B、ボタン14C,ボタン14D、及びボタン14Eの4つのボタンとアナログスティック15とは、下側LCD12を挟んで、左右対称な位置に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、ボタン14B、ボタン14C,ボタン14D、及びボタン14Eの4つのボタンを使用して方向指示入力をすることも可能である。

0060

第1LED16A(図1)は、ゲーム装置10の電源のON/OFF状態をユーザに通知する。第1LED16Aは、下側ハウジング11の内側面(主面)と下側ハウジング11の下側面とが共有する端部の右側に設けられる。これによって、ユーザは、ゲーム装置10の開閉状態にかかわらず、第1LED16Aの点灯の有無を視認することができる。

0061

マイクロフォン用孔18は、音声入力装置としてのゲーム装置10に内蔵されるマイクロフォン用の孔である。内蔵されたマイクロフォンは、マイクロフォン用孔18から外部の音を検出する。マイクロフォン及びマイクロフォン用孔18は、下側ハウジング11の内側面(主面)の電源ボタン14Fの下方に設けられる。

0062

下側ハウジング11の上側面には、タッチペン28の挿入口17(図1図3Dにおいて点線で示される)が設けられている。挿入口17から、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13を用いた入力は、通常タッチペン28を用いて行われる。但し、タッチペン28の代わりにユーザの指を用いることもできる。

0063

下側ハウジング11の上側面にはゲーム装置10とゲームプログラムを記録した外部メモリ45を挿入するための挿入口11D(図1図3Dにおいて点線で示される)が設けられる。挿入口11Dの内部には、外部メモリ45と内部回路とを電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。外部メモリ45がゲーム装置10に接続されることにより、内部回路に含まれるプロセッサによって所定のゲームプログラムが実行される。なお、上記コネクタおよび挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。

0064

図1に示される上側ハウジング21の内側面21Bには、スピーカ孔21E、上側LC
D22、内側撮像部24、3D調整スイッチ25、および3Dインジケータ26が設けられる。

0065

上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。上側LCD22は、実質的に同一の表示領域を用いて左目用画像右目用画像とを表示することが可能である。具体的には、上側LCD22は、左目用画像と右目用画像とが所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。なお、上側LCD22は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式視差バリア方式)のものが用いられる。第1実施形態では、上側LCD22は、パララックスバリア方式の表示装置とする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。

0066

上側LCD22は、上側ハウジング21に収納される。上側LCD22は、横長の長方形であり、長辺方向が上側ハウジング21の長辺方向に一致する状態で、上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、一例として下側LCD12の画面の面積よりも大きく設定される。具体的には、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。

0067

上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21の内側面21Bに設けられた開口部から上側LCD22の画面が露出する。また、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、一例として800dot×240dot(横×縦)である。第1実施形態では、上側LCD22は液晶表示装置であるとして説明される。ただし、これに限らず、例えば、ELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。

0068

スピーカ孔21Eは、ゲーム装置10の音声出力装置としてのスピーカ44からの音声を出力するための孔である。スピーカ21Eは、上側LCDを挟んで左右対称に設置される。後述するスピーカ44からの音声がこのスピーカ孔21Eから出力される。

0069

内側撮像部24は、上側ハウジング21の内側面21Bの内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子と、レンズとを含む。撮像素子は、例えば、CCDイメージセンサCMOSイメージセンサ等である。レンズは、ズーム機構を有するものでもよい。

0070

内側撮像部24は、上側ハウジング21の内側面21Bの、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。このように内側撮像部24が配置されることによって、ユーザが上側LCD22を正視した際、内側撮像部24によってユーザの顔を正面から撮像することができる。外側左撮像部23aおよび外側右撮像部23bについては、後述される。

0071

3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。3D調整スイッチ25は、ゲーム装置10の開閉状態に関わらずユーザが視認できるように、上側ハウジング21の内側面21Bと右側面とが共有する端部に設けられる。3D調整スイッチ25は、所定方向(例えば、上下方向)の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側LCD22の表示モードが設定される。

0072

例えば、3D調整スイッチ25のスライダが最下点位置に配置されている場合、上側LCD22が平面表示モードに設定され、上側LCD22の画面には平面画像が表示される。なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。

0073

3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。例えば、3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。3Dインジケータ26は、上側ハウジング21の内側面21Bに設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。したがって、ユーザは、上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。

0074

図2は、開状態におけるゲーム装置10の一例を示す右側面図である。下側ハウジング11の右側面には、第2LED16Bと、無線スイッチ19と、Rボタン14Hとが設けられている。第2LED16Bは、点灯により、ゲーム装置10の無線通信確立状況をユーザに通知する。ゲーム装置10は、他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格準拠した方式により、無線LANに接続する機能を有する。無線スイッチ19は、この無線通信の機能を有効/無効にする。Rボタン14Hについては、後述される。

0075

図3Aは、閉じた状態(閉状態)におけるゲーム装置10の一例を示す左側面図である。図3Aに示される下側ハウジング11の左側面には、開閉可能なカバー部11Cと、Lボタン14Hと、音量ボタン14Iとが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカ44の音量を調整するためのボタンである。

0076

カバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ46(図1参照
)とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ46は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ46は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。Lボタン14Hについては後述される。

0077

図3Bは、閉状態におけるゲーム装置10の一例を示す正面図である。図3Bに示される上側ハウジング21の外側面には、外側左撮像部23a、外側右撮像部23b、及び第3LED29が設けられる。

0078

外側左撮像部23a及び外側右撮像部23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。外側左撮像部23a及び外側右撮像部23bの撮像方向は、いずれも外側面21Dの外向きの法線方向である。すなわち、外側左撮像部23aの撮像方向および外側右撮像部23bの撮像方向(カメラの視軸)は、平行である。以降、外側左撮像部23a及び外側右撮像部23bをまとめて、外側撮像部23と称する。

0079

外側撮像部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に固定されており、撮像方向を変更することはできない。

0080

外側左撮像部23aおよび外側右撮像部23bは、上側LCD22(上側ハウジング21)の上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される(図1参照)。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。

0081

このように、外側左撮像部23a及び外側右撮像部23bが上側LCD22の短手方向中央線に対して線対称に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23それぞれの撮像方向をユーザの左右の目それぞれの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。さらに、外側左撮像部23aおよび外側右撮像部23bは、図3Bにおいて点線で示される上側ハウジング21の内側面に設けられた内側撮像部24を上側ハウジング21の外側面に投影した場合、当該投影された内側撮像部24を挟んで左右対称に設けられる。したがって、外側撮像部23を上側LCD22の画面の裏側に配置する場合や、内側撮像部24の裏側に外側撮像部23を配置する場合に比べて、上側ハウジング21を薄く構成することが可能となる。

0082

外側左撮像部23aと外側右撮像部23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)のいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用可能である。外側撮像部23a及び23bをステレオカメラとして機能させるプログラムが実行されている場合、外側左撮像部23aは、ユーザの左目で視認される左目用画像を撮像し、外側右撮像部23bは、ユーザの右目で視認される右目用画像を撮像する。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像をおこなうことも可能である。また、外側撮像部23aと23bとの一方を用いて撮像された単一の画像から、視差を有する左目用画像及び右目用画像を生成して、あたかも二つのカメラで撮影されたかのような疑似ステレオ画像を生成することもできる。この疑似ステレオ画像の生成において、仮想カメラ間の距離は、適宜設定可能とされる。

0083

第3LED29は、外側撮像部23が作動している場合に点灯し、外側撮像部23が作動していることを報知する。第3LED29は、上側ハウジング21の外側面の外側撮像部23の近傍に設けられる。

0084

図3Cは、閉状態におけるゲーム装置10の一例を示す右側面図である。図3Dは、閉状態におけるゲーム装置10の一例を示す背面図である。

0085

図3Dに示される下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。Lボタン14GおよびRボタン14Hは、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、Lボタン14GおよびRボタン14Hは、上述の各撮像部のシャッターボタン(撮影指示ボタン)として機能する。

0086

なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池充電することができる。

0087

図4および図5は、それぞれ、ゲーム装置10の使用状態の一例を示す。図4は、ユーザがゲーム装置10を両手で把持する様子の一例を示す図である。

0088

図4に示される例において、ユーザは、下側LCD12および上側LCD22がユーザの方向を向く状態で、両手の中指薬指および小指とで下側ハウジング11の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング11を把持したまま、各操作ボタン14A〜14Eおよびアナログスティック15に対する操作を左右の親指で行い、Lボタン14GおよびR14Hに対する操作を左右の人差し指で行うことができる。

0089

図5は、ユーザがゲーム装置10を片手で把持する様子の一例を示す図である。図5に示される例において、タッチパネル13に対して入力を行う場合には、ユーザは下側ハウジング11を把持していた一方の手を離して他方の手のみで下側ハウジング11を把持する。これによって、当該一方の手でタッチパネル13に対する入力を行うことができる。

0090

図6は、ゲーム装置10の内部構成の一例を示すブロック図である。ゲーム装置10は、上述した各構成部に加えて、情報処理部31、メインメモリ32、外部メモリインター
フェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロックRTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインターフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。

0091

情報処理部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に表示される。

0092

情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ45を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインターフェイスである。

0093

メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、画像処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。第1実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。

0094

外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ46がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ46に記憶された画像を読み込み、上側LCD22および/または下側LCD12に当該画像を表示することができる。

0095

データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。

0096

無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は、情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。

0097

情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(本実施形態では、xyz軸)方向に沿った直線方向の加速度直線加速度)の大きさを検出する。加速度センサ39は、例えば下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示されるように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、ゲーム装置10の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢動きを算出する。

0098

情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置10の3軸(本実施形態では、xyz軸)周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。角速度センサ40は、例えば下側ハウジング11の内部に設けられる。情報処理部31は、角速度センサ40から出力された角速度データを受信して、ゲーム装置10の姿勢や動きを算出する。

0099

情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路41は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。

0100

情報処理部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に対して入力が行われたタッチ位置を知ることができる。

0101

操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作
ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。

0102

下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示にしたがって画像を表示する。第1実施形態では、情報処理部31は、手書き画像入力操作用の画像を下側LCD12に表示させ、外側撮像部23および内側撮像部24のいずれかから取得した画像を上側LCD22に表示させる。すなわち、情報処理部31は、上側LCD22に外側撮像部23で撮像した右目用画像と左目用画像とを用いた立体画像(立体視可能な画像)を表示させたり、内側撮像部24で撮像した平面画像を上側LCD22に表示させたり、上側LCD22に外側撮像部23で撮像した右目用画像および左目用画像の一方を用いた平面画像を表示させたりする。

0103

具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された(外側撮像部23で撮像された)右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。

0104

外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示にしたがって画像を撮像し、撮像した画像データを情報処理部31に出力する。第1実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。具体的には、ユーザによるタッチパネル13や操作ボタン14を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23または内側撮像部24に対して撮像指示を行う。

0105

外側撮像部23及び内側撮像部24は、情報処理部31(CPU311)からの指示によって起動されると、例えば、1秒間に60枚の速度で撮像する。外側撮像部23又は内側撮像部24によって撮像された撮像画像は、順次、情報処理部31に送られ、情報処理部31(GPU312)によって上側LCD22又は下側LCD12に表示される。撮像画像は、情報処理部31に出力されると、VRAM313に格納され、上側LCD22又は下側LCD12に出力された後、所定のタイミングで削除される。このように、例えば、1秒間に60枚の速度で、撮像し、撮像した画像を表示することによって、ゲーム装置10は、外側撮像部23及び内側撮像部24の撮影範囲内景色リアルタイムに上側LCD22又は下側LCD12に表示することができる。

0106

3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。

0107

3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dイン
ジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。

0108

§2 実施形態に係る表示形態例
次に、ゲーム装置10で実行される画像処理プログラムによる具体的な画像処理動作を説明する前に、図7A、7B、8〜13、14A、14B、15を参照して当該画像処理動作によって上側LCD22に表示される表示形態例について説明する。なお、当該表示形態例の説明を簡単にするために、ゲーム装置10で実行される本実施形態に係る画像処理プログラムの一例はゲームプログラムであるとする。そして、ゲーム上の処理として、本実施形態に係る画像処理プログラムの画像処理操作及び表示形態例を説明する。ただし、上述のとおり、本発明の画像処理プログラムはゲームプログラムに限定される訳ではない。

0109

<ゲームの概要>
まず、本実施形態において、ゲーム装置10によるゲームプログラムの実行によってプレーヤ遊技可能なゲームの概要について説明する。本実施形態におけるゲームは、プレーヤが、ゲーム内主人公として、ゲーム世界として用意された仮想の3次元空間に出現する敵キャラクタを撃ち落とす、いわゆるシューティングゲームである。ゲーム世界をなす仮想の3次元空間(仮想空間(ゲーム空間とも呼ばれる))は、ゲーム装置10の表示画面(例えば、上側LCD22)において、プレーヤの視点(いわゆる主観視点で)で表示される。もちろん、客観視点としてもよい。プレーヤが敵キャラクタを撃ち落とすことで、得点加算される。これに対し、敵キャラクタとプレーヤとが衝突すると(具体的には、敵キャラクタが仮想カメラの位置から一定距離以内に到達すると)、得点が減点される。

0110

また、本実施形態のゲームは、ゲーム装置10が備える撮像部により取得される現実世界の画像(以下、「実世界画像」と呼ぶ)と、仮想空間を表現した仮想世界画像とを合成して表示する。具体的には、仮想空間を、仮想カメラに近い領域(以下、「手前側領域」と呼ぶ)と、仮想カメラから遠い領域(以下、「奥側領域」と呼ぶ)に区分して、手前側領域に存在する仮想オブジェクトを表す画像を実世界画像の手前に表示し、奥側領域に存在する仮想オブジェクトを実世界画像の背後に表示する。より具体的には、後述するように、手前側領域に存在する仮想オブジェクトを実世界画像よりも優先し、かつ、実世界画像を奥側領域に存在する仮想オブジェクトよりも優先して合成する。

0111

実世界画像と仮想世界画像の合成の手法は問わない。例えば、仮想オブジェクトと同じ仮想空間に、実世界画像をオブジェクトとして存在させて(より具体的には、例えば、仮想オブジェクトのテクスチャとして貼り付けて)、実世界画像を仮想オブジェクトとともに共通の仮想カメラでレンダリングしてもよい。

0112

また、別の例では、実世界画像を第1の仮想カメラ(以下、実世界描画用カメラと呼ぶ)で撮影してレンダリングして第1のレンダリング画像とし、仮想オブジェクトを第2の仮想カメラ(以下、仮想世界描画用カメラと呼ぶ)で撮影してレンダリングして第2のレンダリング画像とし、第1のレンダリング画像と第2のレンダリング画像とを、手前側領域に存在する仮想オブジェクトを実世界画像よりも優先し、かつ、実世界画像を奥側領域に存在する仮想オブジェクトよりも優先するように、合成してもよい。

0113

前者の方法では、典型的には、実世界画像をテクスチャとして適用したオブジェクト(以下、このオブジェクトをスクリーンオブジェクトと呼ぶ)を手前側領域と奥側領域の境界となる位置に配置し、敵オブジェクトなどの仮想オブジェクトとともに共通の仮想カメラで撮影してもよい。この場合、典型的には、実世界画像が貼り付けられるオブジェクト
は、仮想カメラから一定距離で、かつ、法線が仮想カメラの撮影方向と一致するような面を有するオブジェクトであり、この面(以下、境界面と呼ぶ)に実世界画像をテクスチャとして貼り付けてもよい。

0114

また、後者の方法では、仮想オブジェクトを手前側領域と奥側領域の境界面(以下、単に境界面と呼ぶ)に対して奥行判定(Zバッファによる判定)をおこないつつレンダリングして上記第2のレンダリング画像とし、仮想カメラから一定距離でかつ法線が仮想カメラの撮影方向と一致するような面に実世界画像をテクスチャとして貼り付けて撮影した上記第1のレンダリング画像とする。そして、第2のレンダリング画像を第1のレンダリング画像に優先して合成するようにすれば、実世界画像が境界面に存在しているように見える画像が合成される。

0115

いずれの方法においても、実世界画像は仮想カメラの視野範囲包含するように、仮想カメラからの距離および視野角と実世界画像オブジェクトの大きさ(撮影方向についての大きさ)との関係が設定される。

0116

なお、以下では、前者の方法を第1の描画方法と呼び、後者の方法を第2の描画方法と呼ぶ。

0117

また、ゲーム上における所定のイベント発生条件が満たされると、実世界画像の一部が開口され、奥側領域の仮想空間がその開口を通じて見えるように表示される。また、手前側領域には敵キャラクタオブジェクトが存在し、さらに、奥側領域には、所定の条件を満たすと特別な敵キャラクタ(いわゆる「ボスキャラ」)が出現する。ボスキャラクタを撃ち落とすことで、ステージクリアとなる。ステージは幾つか用意されており、全てのステージをクリアすることでゲームクリアとなる。これに対し、所定のゲームオーバー条件が満たされると、ゲームオーバーとなる。

0118

実世界画像に対する開口は、上述の第1の描画方法の典型例では、スクリーンオブジェクトの境界面に対して開口の位置を示すデータを設定してもよい。より具体的には、境界面に適用されるテクスチャ(いわゆるαテクスチャ)の不透明度で開口または非開口を示すようにしてもよい。また、第2の描画方法では、境界面に対して開口の位置を示すデータを設定してもよい。

0119

また、本実施形態では、実世界画像に対して開口/非開口を設定したが、実世界画像に対して他の画像処理をおこなうようにしてもよい。例えば、実世界画像に汚れを付けたりぼかし処理をしたりするなど当業者の技術常識による任意の画像処理をおこなうことができる。これらの例でも、境界面や境界面に対して、画像処理をおこなう位置を示すデータが設定されるようにしてもよい。

0120

<ゲーム世界>
このように本実施形態に係るゲームでは、実画像の背後にも仮想空間(奥側領域)が存在することが感じられ、奥行き感が向上した仮想空間を表すゲーム画面が表示される。なお、実世界画像は、単眼カメラで撮影された状態の通常画像であってもよく、複眼カメラで撮影された状態のステレオ画像であってもよい。

0121

本実施形態に係るゲームでは、実世界画像として、外側撮像部23で撮像された画像を用いる。すなわち、ゲームのプレイ中に外側撮像部23で撮像されたプレーヤの周囲の実世界画像(リアルタイムに取得される実世界の動画)が用いられる。従って、ゲーム装置10を保持したユーザ(ゲームのプレーヤ)が、ゲームのプレイ中にゲーム装置10を左右方向、或いは上下方向に向きを変えて外側撮像部23の撮像範囲を変更すると、上側L
CD22に表示される実世界画像も、撮像範囲の変更に追従して変更される。

0122

ここで、ゲームプレイ中におけるゲーム装置10の向きの変更は、大略して、(1)プレーヤの意図、又は(2)ゲーム上の意図(シナリオ)に従って行われる。プレーヤがプレイ中にゲーム装置10の向きを意図的に変えることで、外側撮像部23で撮影される実世界画像が変化し、これにより、上側LCD22に表示される実世界画像を意図的に変更することができる。

0123

また、ゲーム装置10が備える角速度センサ40によりゲーム装置10の向きの変化が検出され、それに応じて仮想カメラの向きを変更する。より具体的には、外側撮像部23の向きの変化方向に仮想カメラを現在の向きから変化させる。さらには、外側撮像部23の向きの変化量(角度)だけ、仮想カメラを現在の向きから変化させる。すなわち、ゲーム装置10の向きを変えると、実世界画像が変化するとともに、仮想空間のうちの表示される範囲が変化する。すなわち、ゲーム装置10の向きを変更することにより、実世界画像と仮想世界画像が連動して変化し、これにより、現実世界と仮想世界とが関連付いているかのような合成画像を表示することができる。なお、本実施形態においては、仮想カメラの位置は変更しないが、ゲーム装置10の移動を検出して仮想カメラの位置を変更してもよい。

0124

なお、第2の描画方法においては、このような仮想カメラの向き変更処理は、仮想世界描画用カメラに適用され、実世界描画用カメラについては適用されない。

0125

また、ゲームプレイ中に、画面の端(例えば、右端、左端)のような局所にオブジェクトが表示されると、プレーヤに対し、オブジェクトを画面の中心に捉えようとする心理が自然に働き、プレーヤはゲーム装置10(外側撮像部23)を動かす。この結果、画面に表示される実世界画像が変わる。このようなゲーム装置10の向きの変更(実世界画像変更)は、ゲームのシナリオに従って表示されるオブジェクトが意図的に画面の端に表示されるようにプログラミングすることによって、プレーヤが自然に行うようにすることができる。

0126

<仮想空間の詳細>
(実世界画像の描画)
外側撮像部23で撮像された実世界画像は、仮想空間の手前側領域と奥側領域の境界位置に存在して見えるように合成される。図7Aは、本実施形態における仮想空間の一例を示す。また、図7Bは、本実施形態におけるスクリーンモデルとαテクスチャの関係を示す。第1の描画方法では、実世界画像の表示のため、図7Aに示すように、仮想空間内に仮想カメラの位置を中心とする球体モデル(上述のスクリーンモデル)を設定し、この球体の内面に実世界画像を貼り付け、スクリーンオブジェクトを形成してもよい。より具体的には、スクリーンモデルのうち仮想カメラで撮影される部分の全体にテクスチャとして貼り付けられる。スクリーンモデルのうちこの部分以外については、透明に設定されため画面上で視認されない。この例では、境界面は球体面であり、すなわち、図7Aで示すように、球体の表面により仮想カメラ側が手前側領域であり、球体の表面より仮想カメラからみて遠い側が奥側領域である。

0127

第2の描画方法では、実世界画像の表示のため、仮想空間内には、実世界画像のテクスチャを貼り付けるための平面ポリゴンが配置される。仮想空間において、平面ポリゴンの実世界描画用カメラに対する相対位置は、常に固定される。すなわち、平面ポリゴンは、実世界描画用カメラから一定の距離を空けて配置され、その法線方向が実世界描画用カメラの視点(視軸)に一致するように配置される。

0128

また、この平面ポリゴンは、実世界描画用カメラの視野範囲を包含するように設定される。具体的には、平面ポリゴンの大きさとその仮想カメラからの距離は、平面ポリゴンが仮想カメラの視野範囲を包含可能となるように設定される。この平面ポリゴンの仮想カメラ側の面全体に実世界画像を貼り付けるようにしたので、仮想カメラで、この実世界画像が貼り付けられた平面ポリゴンを撮影すると、仮想カメラにより生成される画像において、実世界画像がその全域に対応するように表示される。

0129

なお、図8に示すように、境界面を円筒状にしてもよい。図8は、本実施形態における仮想空間の別の例を示す。この場合、仮想空間には、仮想カメラの位置に立てられた鉛直軸(本実施形態においては、仮想空間のY軸が鉛直方向に対応し、X軸およびZ軸が水平方向に対応するとする)を中心軸とする仮想の円筒周面(境界面)が配置される。ただし、前述の通り、この円筒周面は視認されるオブジェクトではなく、開口処理において用いられるオブジェクトである。この円筒の外周面は、仮想空間を、仮想カメラが位置する第1空間と、この第1空間の周りに存在する第2空間とに区分する。

0130

(実世界画像を開口させるための処理)
さらに、本実施形態に係るゲームでは、実世界画像に開口を設け、実世界画像の背後の奥側領域の存在をプレーヤに認識させる。より明確に言うと、実世界画像のうちこの開口の部分は、透明または半透明で表示され、その背後にある世界がこの部分に合成される。このため、ゲーム内で、所定のイベントの発生を契機に、実世界画像の一部が開口して(消去されて)、その開口を通して実世界画像の背後に存在する他の仮想空間(奥側領域)を示す画像が表示される。また、実世界画像の背後の奥側領域には仮想オブジェクトが存在しており、仮想オブジェクトの位置や開口の位置によっては、仮想オブジェクトが実世界画像に隠れたり、開口を通して仮想オブジェクトの画像が表示されたりする。これにより、仮想オブジェクトが実世界画像の背後に存在しているかのような画像をユーザに提供することができることになる。

0131

このような、実世界画像に開口を設けて奥側領域を表示する処理は、本実施形態において、境界面は球体面であり、第1の描画方法では、図7A及び図7Bに示すように、上述の球体のスクリーンオブジェクトの内面に貼り付けられるテクスチャにより実現される。以下、このテクスチャのことをスクリーン用αテクスチャ(後述する、開口判定用データ)と呼ぶ。本実施形態では、スクリーン用αテクスチャは仮想カメラを中心として少なくとも或る方向に360度周回する部分に貼り付けられる。より具体的には、図7Bで示すように、スクリーン用αテクスチャは、球体のうち中央部分、言い換えると、仮想カメラの位置を中心として、XY平面に平行な方向に360度周回させた、Y方向に所定の幅を有する部分(以下、αテクスチャ適用部と呼ぶ)に貼り付けられる。このようにすることにより、スクリーン用αテクスチャのデータの持ち方を簡単にすることができる。具体的には、本実施形態では、スクリーン用αテクスチャは矩形形状である。このαテクスチャが図7Aで示す部分に貼り付けられることにより、スクリーン用αテクスチャの各ドットの情報は、スクリーンオブジェクトのうちαテクスチャ適用部の各座標に対応する。

0132

上述のように実世界画像が貼り付けられ、αテクスチャが設定されたスクリーンオブジェクトを仮想カメラで撮影することにより、開口部を有する実世界画像が境界面(球体内面)に存在するように描画されることになる。αテクスチャのうち実世界画像に対応する部分は、仮想カメラによる撮影により計算される。

0133

第2の描画方法においても、仮想空間の境界面(ここでは球体内面)に対して、開口の位置を示すデータが設定される。典型的には、境界面の各点について開口の有無を示すデータが設定される。より具体的には、上述と同様の球体オブジェクトが仮想オブジェクトの存在する仮想世界に配置され、この球体オブジェクトに対して同様のαテクスチャが設
定される。そして、実世界画像のレンダリング時に、αテクスチャが設定された球体オブジェクトのうち仮想世界描画用カメラで撮影される部分に対応する部分のαテクスチャを、上述の平面ポリゴンに適用してレンダリングする。または、この部分のαテクスチャを用いて、実世界画像に対して開口部を透明化する処理を行った後、この処理後の実世界画像を前述の平面ポリゴンに貼り付けて実世界描画用カメラでレンダリングする。なお、この球体オブジェクトは、開口の計算にのみ使用されるオブジェクトであり、仮想世界の描画時に描画されないオブジェクトである。

0134

なお、本実施形態では、開口部を示すデータは境界面の各点ごとに情報を有するようなデータであるが、境界面において開口を有する位置を計算式で定義するような情報でもよい。

0135

第2空間には、開口を通じて仮想カメラの視野に収まる第2空間の背景画像(テクスチャ)を貼り付けるためのポリゴン(オブジェクト)が配置される。第2空間の背景は、「奥壁」と呼ぶこともある。

0136

第1空間には、敵キャラクタや、敵キャラクタを撃ち落とすための弾を表す各種のキャラクタを示すオブジェクトが配置される。第2空間にも所定のオブジェクト(例えば、敵キャラクタのうちの一部)が配置される。仮想空間上に配置された各オブジェクトは、予めプログラミングされたロジックアルゴリズム)に従って仮想空間内を移動する。

0137

さらに、敵キャラクタのうちの一部は、境界面に形成された開口を通じて第1空間と第2空間との間を行き来することもできる。または、自ら境界面に開口を形成して第1空間と第2空間との間を行き来することができる。開口を形成するゲーム上の所定イベントは、例えば、敵キャラクタが境界面に衝突するようなイベント(衝突イベント)である。或いは、ゲームシナリオの進行上、所定のタイミングで境界面が破壊され、第2空間にいた敵キャラクタが第1空間に進入して来るイベント(敵キャラクタ出現イベント)である。或いは、時間経過に応じて自動的に開口が形成されるようにしてもよい。また、プレーヤの所定のゲーム操作に応じて、開口を修復することができる。例えば、プレーヤは、形成された開口に対して弾を当てることで、開口を小さくする(修復する)こともできる。

0138

図9は、実施形態における画像処理プログラムの一例であるゲームプログラムにおいて定義される仮想の3次元空間(ゲーム世界)を示す。なお、上述したように、本実施形態では、境界面は球体であるが、図9では簡便のため、境界面を円筒状に示す。上述したように、本実施形態に係るゲームでは、ゲーム装置10の上側LCD22には、仮想の3次元空間を表現した仮想世界画像と実世界画像が合成されて表示される。

0139

また、図9において示されるとおり、本実施形態におけるゲーム上の仮想空間は、仮想カメラの位置を中心軸とする球体面で形成された境界面3によって第1空間1と第2空間2に分けられている。

0140

境界面3には、ゲーム装置10に内蔵する実カメラによって撮像された実世界画像であるカメラ画像CI図10)は、第1の描画方法においては後述するステップ81及び82、また、第2の描画方法においては後述するステップ83からステップ85の処理により、境界面3の位置に存在しているかのように、仮想世界画像と合成される。

0141

本実施形態における実世界画像は平面視の画像である。また仮想世界画像も平面視の画像である。すなわち、LCD22には平面視の画像が表示される。ただし、実世界画像は、立体視可能な画像であってもよい。立体視本発明は、実世界画像の種類によって限定されない。なお、本実施形態におけるカメラ画像CIは、静止画であっても、リアルタイム
の実世界画像(動画像)であってもよい。本実施形態におけるゲームプログラムでは、カメラ画像CIは、リアルタイムの実世界画像であるとする。また、実世界画像であるカメラ画像CIは、カメラの種類によって限定されない。例えば、カメラ画像CIは、ゲーム装置10に外部接続可能なカメラによって得られた画像であってもよい。更に、本実施形態では、カメラ画像CIは、外側撮像部23(複眼カメラ)及び内側撮像部24(単眼カメラ)のいずれかから取得した画像であればよい。本実施形態におけるゲームプログラムでは、カメラ画像CIは、外側撮像部23の外側左撮像部23a及び外側右撮像部23bの一方を単眼カメラとして用いることにより取得される画像であるとする。

0142

上記したように第1空間1は、仮想カメラから見て境界面3より手前の空間であり、境界面3によって囲まれた空間である。また、第2空間2は、仮想カメラから見て境界面3の背後の空間である。図7A及び8において図示はされていないが、境界面3を囲む奥壁BWが存在する。つまり、第2空間2は、境界面3と奥壁BWの間に存在する空間である。当該奥壁BWは、任意の画像が貼り付けられる。例えば、奥壁BWには、予め用意された宇宙空間を表す画像が貼り付けられ、第1空間の背後には宇宙空間である第2空間の存在が表示される。すなわち、仮想カメラから見て、手前から順に、第1空間、境界面3、第2空間、奥壁が配置される。

0143

ただし、上述のとおり、本発明の画像処理プログラムはゲームプログラムに限定される訳ではなく、これらの設定及びルールは、本発明の画像処理プログラムを限定するものではない。なお、敵オブジェクトEOは、図9に示されるとおり、仮想の3次元空間内を移動し、上述の境界面3を通って、第1空間1と第2空間2とを往来することができる。境界面3のうち、仮想カメラによって撮像される領域を通って、敵オブジェクトEOが第1空間1と第2空間2との間を移動した場合には、LCD22に表示される画像においては、敵オブジェクトEOが実世界画像を通り抜けて奥側から手前側に、または、手前側から奥側に移動するように表現される。

0144

画面には、ゲームのシナリオやイベントにより実世界画像に生じた開口(穴)を使って第1空間1と第2空間2とを往来する敵オブジェクトEOの様子が表示される。図9及び図11には、敵オブジェクトEOが境界面3に開口を作って、または、境界面3上に既に存在する開口を通って、第1空間1と第2空間2を行き来する様子が図示されている。

0145

なお、本実施形態における画像処理プログラムでは、第1空間1または第2空間2に存在するオブジェクトは、敵オブジェクトEO、弾オブジェクトBOおよび奥壁BWの3つであるが、本発明の画像処理プログラムは、オブジェクトの種類に限定されない。本実施形態における画像処理プログラムにおいて、オブジェクトは、仮想空間(第1空間1及び第2空間2)に存在する仮想物体である。例えば、本実施形態にかかる画像処理プログラムにおいて、障害物のオブジェクト等の任意のオブジェクトが存在してもよい。

0146

<表示形態例>
図10図13は、上側LCD22に表示されるゲーム画面の一例を示す。以下、各図の表示形態例について説明する。

0147

まず、図10図13において共通に表示される照準カーソルALについて説明する。図10図13において、上側LCD22には、共通して、ゲーム装置10を用いた攻撃操作(例えば、ボタン14B(Aボタン)の押下)に応じて発射される弾オブジェクトBOの照準カーソルALが表示されている。本実施形態のゲームプログラムでは、照準カーソルALは、ゲーム装置10が実行するプログラムに応じて所定の方向を向くように設定されている。

0148

例えば、照準カーソルALは、仮想カメラの視線方向、つまり、上側LCD22の画面
中央に固定されているように設定される。この場合、上述のとおり、本実施形態において、外側撮像部23の撮影方向の変化に応じて、仮想カメラ(第1の描画方法における仮想カメラまたは第2の描画方法における仮想世界描画用カメラ)の撮影方向を変更するので、プレーヤは、ゲーム装置10の向きを変えることで、照準カーソルALの仮想空間内における向きを変更する。そして、プレーヤは、例えば、ゲーム装置10が備えるボタン14B(Aボタン)を、下側ハウジング11を把持した右手の親指で押下することにより攻撃操作を行う。これにより、プレーヤは、攻撃操作による弾オブジェクトBOの発射を行い、本実施形態のゲーム上における敵オブジェクトEOの退治や、境界面3に存在する開口の修復をする。

0149

次に、図10図13について各図個別に説明する。

0150

図10において、上側LCD22には、第1空間1に存在する敵オブジェクトEOと、ゲーム装置10に内蔵する実カメラによって撮像されたカメラ画像CIと、が表示されている。敵オブジェクトEOは、任意に設定される。

0151

敵オブジェクトEOは、例えば、ゲーム装置10のデータ保存用外部メモリ46等に記憶された画像(例えば、人の顔写真)をテクスチャとして用い、所定形状の3次元ポリゴンモデル(人の頭部の3次元形状を表すポリゴンモデル)に、所定の方法で貼り付けたオブジェクトである。

0152

また、本実施形態において、上側LCD22に表示されるカメラ画像CIは、上述のとおり、ゲーム装置10に内蔵する実カメラで撮像されたリアルタイムの実世界画像である。その他、例えば、カメラ画像CIは、ゲーム装置10のデータ保存用外部メモリ46等に記憶された画像(例えば、風景写真)であってもよい。

0153

カメラ画像CIが上側LCD22に表示された状態において、敵オブジェクトEOは任意に移動することができる。例えば、第1空間1に存在する敵オブジェクトEOは、第2空間2に移動することができる。図11は、第1空間1に存在する敵オブジェクトEOが、第1空間1から第2空間2へ移動する様子の一例を示す。図11に示した一例では、第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の影を示す表示である。図14Aは、敵オブジェクトEOの影のシルエットモデルを上から見た図を示す。また、図14Bは、敵オブジェクトEOの影のシルエットモデル例を示す。図14A及び図14Bに示すように、本実施形態においては、敵オブジェクトEOについて、複数の向きごとにシルエットモデルが設定されている。具体的には、シルエットモデルは、例えば、図14Aに示す8枚の平面ポリゴンである。このシルエットモデル(8枚の平面ポリゴン)は、実体モデルである敵オブジェクトEOと同じ位置に配置される。シルエットモデルは、仮想空間において敵オブジェクトEOと一体的に配置されるため、例えば、敵オブジェクトEOが仮想空間内を移動した場合に、その敵オブジェクトEOに追従するように移動する。また、各平面ポリゴンは実体モデルに内包される大きさである(実体モデルからはみ出ない)。また、各平面ポリゴンにはその面の法線方向から見た敵オブジェクトEOの影画像が描いたテクスチャが貼り付けられる。敵オブジェクトEOが境界面3の非開口領域の背後に存在する場合には、このシルエットモデルが描画されることにより影ESが表示される。

0154

なお、8枚の平面ポリゴンのすべてがレンダリングされる。敵オブジェクトEOが境界面の非開口領域の背後に存在する場合、奥行判定(デプス判定)により、敵オブジェクトEOの実体モデルはこの境界面(スクリーンオブジェクト)に隠されるため描画されない。しかしながら、シルエットモデルは、境界面(スクリーンオブジェクト)に対してデプス判定をしないように設定されているため、敵オブジェクトEO(およびそのシルエットモデル)が境界面の非開口領域の背後に存在する場合であっても、シルエットモデルは描画されて、図11図12に示すように影が表示される。しかしながら、敵オブジェクトEOが境界面の前方に存在する場合や、境界面の開口領域の背後に存在する場合は、シルエットモデルは実体モデルより奥に存在し、敵オブジェクトEOの実体モデルが描画され、それによりシルエットモデルは描画されないため、影は表示されない。これは、シルエットモデルが敵オブジェクトEOの実体モデルに内包されるように設定されているからである。

0155

上側LCD22には、以下の優先順位で画像が合成されて表示される。

0156

(1)第1空間1に存在するオブジェクトの画像
(2)実世界画像のうち非開口領域については、第2空間2に存在するオブジェクトの影画像と実世界画像の合成画像(例えば影画像が半透明で実世界画像に合成される)
(3)実世界画像のうち開口部領域については第2空間2に存在するオブジェクトの画像(実体画像)が優先的に合成され、さらにその奥に奥壁画像が合成される
ただし、仮想カメラの撮影方向と第2空間2に存在する敵オブジェクトEOの仮想空間内の位置によっては、敵オブジェクトEOが開口領域と非開口領域の両方にまたがって存在する場面がある。つまり、仮想カメラから見た位置において、敵オブジェクトEOが開口のふちに存在する場面がある。図12は、このような、第2空間2に存在する敵オブジェクトEOが、境界面3上に設定された開口のふちに移動した状態を示す。図12において示されるとおり、第2空間2に存在する敵オブジェクトEOについて、仮想カメラから見て、開口を通して第2空間2が視認できる範囲についてはそのままの画像が、開口を通して第2空間2が視認できない範囲については影ESが、上側LCD22に表示される。

0157

より具体的には、図15に示すように、各オブジェクトには不透明度(アルファ値)のデータが設定される。図15は、本実施形態において各オブジェクトに設定される不透明度(アルファ値)の例を示す。敵オブジェクトの実体モデルには、そのテクスチャにモデル全体について不透明度が1である設定がされる。また、敵オブジェクトのシルエットモデル(平面ポリゴン)には、そのテクスチャに影画像の全体について不透明度が1である設定がされる。弾のモデルについても同様である。敵オブジェクトのうち半透明のオブジェクトのモデルやエフェクト用のモデルについては、そのテクスチャに、例えば、そのモデル全体について不透明度0.6が設定される。スクリーンオブジェクト(図7Aに示される球体のスクリーンモデル)には、マテリアルとして不透明度0.2が設定され、そのテクスチャであるαテクスチャに、各点ごとに1または0が設定される。1が非開口部を示し、0が開口部を示す。すなわち、スクリーンオブジェクトには、不透明度値として、マテリアルの設定とテクスチャの設定の2つが施される。

0158

また、敵オブジェクト、弾オブジェクト、半透明の敵オブジェクト、エフェクトオブジェクト、スクリーンオブジェクトの間は、互いにデプス判定有効である。「影用の平面ポリゴンと敵オブジェクトの間」「影用の平面ポリゴンと弾オブジェクトの間」「影用の平面ポリゴンと半透明の敵オブジェクトの間」「影用の平面ポリゴンとエフェクトオブジェクトの間」は、互いにデプス判定有効である。影用の平面ポリゴンとスクリーンオブジェクトとの間は、デプス判定無効である。

0159

デプス判定が有効な場合には、通常の透視投影に従い、レンダリングされる。仮想カメラの視野方向における奥行に応じて陰面消去される。デプス判定が無効の場合には、対象オブジェクトが自身のオブジェクトより仮想カメラに近い側にその他のオブジェクトが存在していてもレンダリングされうる。

0160

そして、本実施形態においては、レンダリング時に、オブジェクトごとにレンダリングの式を設定することができる。具体的には以下のように設定される。

0161

敵オブジェクトの実体、弾オブジェクト、半透明の敵オブジェクト、エフェクトオブジェクトは、以下の式で描画される。

0162

「自身の色 × 自身の不透明度+背景の色 × (1 − 自身の不透明度)」
スクリーンオブジェクトは、以下の式で描画される。

0163

「自身の色(実世界画像の色) × 自身のテクスチャの不透明度+背景の色 ×
(1− 自身のテクスチャの不透明度)」
敵オブジェクトのシルエットモデルは、以下の式で描画される。

0164

「自身の色×(1−背景のマテリアルの不透明度)+背景の色×背景のマテリアルの
不透明度)」
なお、敵オブジェクトが描画される場合、その背景はスクリーンオブジェクト(境界面3)であるから、上式において、「背景のマテリアルの不透明度」は「スクリーンオブジェクト(境界面3)のマテリアルの不透明度」である。

0165

上述のような様々な設定により、敵オブジェクトが境界面の非開口部の背後に存在するときには、実体は表示されずに影が表示され、敵オブジェクトが境界面の前方に存在するときおよび敵オブジェクトが境界面の開口部に存在するときには、影は表示されずに実体が表示される。

0166

また、本実施形態におけるゲームでは、境界面3上に存在する開口は、弾オブジェクトBOを当てることにより修復されうる。図13は、境界面3に存在する開口に弾オブジェクトBOを当てることにより、当該開口を塞ぐ様子を示す。図13に示されるとおり、例えば弾オブジェクトBOが当該境界面3上に存在する非開口領域に衝突した時に、衝突点から一定範囲の境界面について非開口のデータ設定がされる。これにより、衝突点から一定範囲に開口があったときに当該開口は塞がれる。なお、本実施形態では、開口にあたった弾オブジェクトBOは消滅する(したがって、図13において弾オブジェクトBOは消滅している)。また、弾オブジェクトBOは境界面3上の開口に当たったときには、当該開口を通り抜けて第2空間に移動する。

0167

なお、上述したように、上側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に表示される。

0168

§3画像処理の動作例
次に、図16図19図20A及び図20Bを参照して、ゲーム装置10で実行される本実施形態における画像処理プログラムによる具体的な画像処理の動作例について説明する。図16は、画像処理プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す。図17は、当該画像処理プログラムを実行することによってゲーム装置10が画像処理する動作例の一例を示すフローチャートである。図18は、図17のステップ53で行われる敵オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャートである。図19は、図17のステップ54で行われる弾オブジェクト関連処理の詳細な動作の一例を示すサブルーチンのフローチャートである。図20A及び図20Bは、図17のステップ57で行われる表示画像の更新処理(第1の描画方法及び第2の描画方法)の詳細な動作の一例を示すサブルーチンのフローチャートである。

0169

なお、これらの処理を実行するためのプログラムは、ゲーム装置10に内蔵されるメモリ(例えば、データ保存用内部メモリ35)、外部メモリ45、または、データ保存用外部メモリ46に含まれており、ゲーム装置10の電源がオンになったときに、内蔵メモリから、または外部メモリI/F33やデータ保存用外部メモリI/F34を介して外部メモリ45またはデータ保存用外部メモリ46からメインメモリ32に読み出されて、CPU311によって実行される。

0170

§3−1 各種データの一例
図16において、メインメモリ32には、内蔵メモリ、外部メモリ45、またはデータ保存用外部メモリ46から読み出されたプログラムや画像処理において生成される一時的なデータが記憶される。図16において、メインメモリ32のデータ記憶領域には、操作データDa、実カメラ画像データDb、実世界画像データDc、境界面データDd、奥壁画像データDe、敵オブジェクトデータDf、弾オブジェクトデータDg、得点データDh、動きデータDi、仮想カメラデータDj、レンダリング画像データDk、および表示画像データDl等が格納される。また、メインメモリ32のプログラム記憶領域には、画像処理プログラムを構成する各種プログラム群Paが記憶される。

0171

<操作データ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に格納されて更新される。

0172

なお、後述する処理フローでは、操作子データDa1および角速度データDa2が処理周期である1フレーム毎にそれぞれ更新される例を用いて説明するが、他の処理周期で更新されてもかまわない。例えば、操作ボタン14やアナログスティック15等の操作子をユーザが操作したことを検出する周期毎に操作子データDa1を更新し、当該更新された操作子データDa1を処理周期毎に利用する態様でもかまわない。また、角速度センサ40の角速度検出周期毎に角速度データDa2を更新し、当該更新された角速度データDa2を処理周期毎に利用する態様でもかまわない。この場合、操作子データDa1や角速度データDa2を更新するそれぞれの周期と、処理周期とが異なることになる。

0173

<実カメラ画像データDb>
実カメラ画像データDbは、外側撮像部23および内側撮像部24のいずれかが撮像した実カメラ画像を示すデータである。後述する処理の説明においては、実カメラ画像を取得するステップにおいて外側撮像部23および内側撮像部24のいずれかが撮像した実カメラ画像を用いて、実カメラ画像データDbを更新する態様を用いる。なお、外側撮像部23または内側撮像部24が撮像し、撮像された実カメラ画像を用いて実カメラ画像データDbを更新する周期は、ゲーム装置10における処理の単位時間(例えば、1/60秒)と同じでもいいし、当該単位時間より短い時間でもかまわない。ゲーム装置10における処理の周期より実カメラ画像データDbを更新する周期が短い場合、後述する処理とは独立して適宜実カメラ画像データDbを更新してもかまわない。この場合、後述する実カメラ画像を取得するステップにおいて、実カメラ画像データDbが示す最新の実カメラ画像を常に用いて処理すればよい。以下、本実施形態では、実カメラ画像データDbは、外側撮像部23(例えば、外側左撮像部23a)により撮像した実カメラ画像を示すデータであるとする。

0174

<実世界画像データDc>
実世界画像データDcは、ゲーム装置10の実カメラ(外側撮像部23または内側撮像部24)が撮像した実カメラ画像を用いて、境界面3上に存在しているように見える実世界画像を生成するためのデータである。第1の描画方法では、例えば、実世界画像データDcは、実世界画像を境界面(仮想カメラの表示範囲のスクリーンオブジェクト)に貼り付けるための実カメラ画像のテクスチャデータを含んでいる。また、第2の描画方法では、例えば、実世界画像データDcは、実世界画像を生成するための平面ポリゴンのデータ、当該平面ポリゴンにマッピングするための実カメラ画像のテクスチャデータ、および当該平面ポリゴンの仮想空間上の位置(上述した実世界描画用カメラからの位置)を示すデータ等を含んでいる。

0175

<境界面データDd>
境界面データDdは、上記実世界画像データDcと合わせて、境界面3上に存在しているように見える実世界画像を生成するためのデータである。第1の描画方法では、例えば、境界面データDdは、スクリーンオブジェクトに関するデータであり、境界面3を構成する各点の状態(例えば、開口の有無)を示す開口判定用データ(前述のαテクスチャのデータに相当する)、境界面3の仮想空間上の配置位置(境界面3の仮想空間上の座標)を示すデータ等を含んでいる。また、第2の描画方法では、例えば、境界面データDdは、上記実世界画像の平面ポリゴンに開口を表現するためのデータであり、境界面3を構成する各点の状態(例えば、開口の有無)を示す開口判定用データ(前述のαテクスチャのデータに相当する)、境界面3の仮想空間上の配置位置(境界面3の仮想空間上の座標)を示すデータ等を含んでいる。境界面3の仮想空間上の配置位置を示すデータは、例えば、上記球体表面条件式(仮想空間上における球体表面を定義する関係式)であり、境界面3の仮想空間上の存在範囲を示す。

0176

開口状態を示す開口判定用データは、例えば、各点のアルファ値(不透明度)を設定可
能な2次元(例えば、2048ピクセル×384ピクセル等の矩形形状)のテクスチャデータである。アルファ値は、“0”が最小で“1”が最大の、“0”から“1”までの値である。アルファ値は、“0”で透明を示し、“1”で不透明を示す。開口判定用データは、開口判定用データに「0」が格納されている位置は開口状態であり、「1」が格納されている位置は開口ではない状態であることを示すことができる。アルファ値は、例えば、ゲーム装置10内部で生成されるゲーム世界の画像、或いは上側LCD22における画素又は複数の画素からなる画素ブロック単位に設定することができる。本実施形態では、非開口領域には、「0を超える1未満の所定値(本実施形態においては0.2が設定される)」が格納される。このデータは、実世界画像に適用する時には使用されない。実世界画像に適用する場合、開口判定用データに格納されたアルファ値「0.2」は「1」として取り扱われる。なお、当該アルファ値「0.2」は、前述の敵オブジェクトEOの影ESの描画時に使用される。ただし、当該アルファ値の設定、及びアルファ値の取り得る値の範囲は、本発明の画像処理プログラムを限定するものではない。

0177

本実施形態における画像処理プログラムは、第1の描画方法では、この開口判定用データのうち仮想カメラの撮影範囲に対応する領域のアルファ値と、境界面3に貼り付けられる実世界画像のテクスチャの色情報画素値)とを掛け算することによって、開口を有する実世界画像を生成することができる。また、第2の描画方法では、この開口判定用データのうち仮想世界描画用カメラの撮影範囲に対応する領域のアルファ値と、実世界画像(具体的には、上記実世界画像データDcを用いて後述する平行投影によりレンダリングされた実カメラ画像のレンダリング画像データ)の色情報(画素値)とを掛け算することによって、開口を有する実世界画像を生成することができる。なぜなら、開口位置に格納されたアルファ値「0」と当該位置における実世界画像の色情報とが掛け算されることによって、実世界画像の色情報の値が「0」(完全に透明な状態)となるからである。

0178

なお、第1の描画方法では、後述するとおり、当該開口判定用データが適用された実世界画像のオブジェクトを含んだ各仮想オブジェクト仮想空間画像がレンダリングされることにより上側LCD22に表示される画像が生成される。

0179

また、第2の描画方法では、具体的には、後述するとおり、当該開口判定用データを考慮して仮想空間画像がレンダリングされる。すなわち、開口判定用データに基づいて、各仮想オブジェクトの境界面に対する優先度(実世界画像に対する優先度)が判定され、各仮想オブジェクトがレンダリングされることにより仮想空間画像として生成される。そして、このようにして生成された実世界画像と仮想空間画像とを合成することで、上側LCD22に表示される画像が生成される。

0180

また、本実施形態における画像処理プログラムでは、境界面3の形状は球体表面である(図7A及び図7B参照)。そして、本実施形態における開口判定用データの形状は、矩形形状としてよい。この矩形形状の開口判定用データを、図7A及び図7Bで図示したような球体表面の中央部にマッピングすることにより、開口判定用データの各点と境界面の各点とを対応させることができる。

0181

なお、本実施形態において開口判定用データは図7Aで示す球体表面の中央部に対応するデータのみであるため、仮想カメラ(第2の描画方法では、仮想世界描画用カメラ)の向きによっては、開口判定用データが存在しない場合がある。このように開口判定用データが存在しない場合は、実世界画像はそのまま描画される。すなわち、α値としては「1」が設定されているとして描画される。

0182

境界面3上に作成される開口の画像処理については後述する。

0183

<奥壁画像データDe>
奥壁画像データDeは、第2空間2に存在する奥壁BWに関するデータである。例えば、奥壁画像データDeは、奥壁BWの画像を生成するための画像データ、および当該奥壁BWを定義するポリゴンモデルの仮想空間上の位置を示すデータ等を含んでいる。

0184

奥壁BWを定義するポリゴンモデルは、典型的には、仮想カメラ(第2の描画方法では、仮想世界描画用カメラ)の位置から伸びる鉛直軸を中心として、図7Aで示す球体の半径より大きな半径を有し、図7Aで示す球体の中央部と同じ形状のモデルである。すなわち、奥壁BWを定義するモデルは、境界面3を内含する。また、境界面3に形成される開口予定位置の背後に配置される平面ポリゴンであっても良い。また、境界面3に開口が形成される毎に、第2空間2においてその開口の投影面を定義する平面ポリゴンが配置されるようにしても良い。

0185

奥壁BWのポリゴンモデルに貼り付けられる画像データ(テクスチャ)は、任意でよい。もっとも、この画像データは、実世界画像の背後に存在する別の空間(第2空間2)を表現するため、宇宙空間,空,水中を示す画像のような非現実を表現する画像であると、プレーヤに対して、現実空間の向こうに非現実な空間があるかのような不思議な感覚喚起できることで好ましい。例えば、本実施形態のゲームを部屋の中でプレイしているときには、部屋の向こうに非現実な空間があるかのような感覚を与えることができる。また、奥壁のテクスチャは、砂漠荒野のような普段目にすることのない風景を表現するものであってもよい。このように、奥壁BWのテクスチャの選択によって、ゲーム世界の背景として表現された現実画像の背後に潜む別世界に対する所望のイメージをプレーヤに知らしめることができる。

0186

また、例えば、当該画像データが、宇宙の画像等の繰り返し表現を用いることができる画像であれば、画像データ(テクスチャ)のデータサイズを小さくすることができる。また、当該画像データが、このような画像であれば、仮想空間上の奥壁BWの描画されるべき位置を特定しなくても、奥壁BWの画像を描画することができる。なぜなら、繰り返し表現を用いることができる画像であれば、描画される画像は位置に依らない(ポリゴンモデル全体に繰り返しパターンを表現できる)からである。

0187

なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、当該画像データにはアルファ値が定められているものとする。本実施形態では、当該画像データに定められているアルファ値は「1」であるとする。

0188

<敵オブジェクトデータDf>
敵オブジェクトデータDfは、敵オブジェクトEOに関するデータであり、実体データDf1、シルエットデータDf2、および開口形状データDf3を含んでいる。

0189

実体データDf1は、敵オブジェクトEOの実体を描画するためのデータであり、例えば、敵オブジェクトEOの実体の3次元形状を定義したポリゴンモデルと、当該ポリゴンモデルにマッピングするためのテクスチャデータである。当該テクスチャデータは、例えば、ゲーム装置10の各撮像部で撮像したユーザ等の顔写真等であってもよい。なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、当該テクスチャデータにはアルファ値が定められているものとする。本実施形態では、当該テクスチャデータに定められているアルファ値は「1」であるとする。

0190

シルエットデータDf2は、第2空間2に存在する敵オブジェクトEOの影を実世界画像上に半透明で描画するためのデータであり、ポリゴンモデルとそのポリゴンモデルに貼り付けられるテクスチャデータとを含む。例えば、このシルエットモデルは、前述したよ
うに、8枚の平面ポリゴンを含み、第2空間2に存在する敵オブジェクトEOの位置と同じ位置に配置される。このテクスチャが貼り付けられたシルエットモデルを仮想世界描画用カメラで撮影して実世界画像上に半透明などで描画することにより、第2空間2に存在する敵オブジェクトEOの影を表現できる。また、シルエットデータDf2のテクスチャデータは、例えば、図14A及び図14Bに示すように、敵オブジェクトEOを各方向からみた画像であってもよい(例えば、8枚の平面ポリゴン)。更に、当該画像は、敵オブジェクトEOのシルエットモデルを簡素化した画像であってもよい。なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、シルエットモデルに張り付けられるテクスチャデータにはアルファ値が定められているものとする。本実施形態では、当該テクスチャデータに定められているアルファ値は、影画像部分について「1」であり、影画像がない部分(周囲の部分)について「0」であるとする。

0191

開口形状データDf3は、敵オブジェクトEOが第1空間1と第2空間2を往来する際に境界面3上に生成する開口の形状に関するデータである。本実施形態では、開口形状データDf3は、開口を生成する境界面3上の位置に対応する開口判定用データの位置におけるアルファ値を「0」にするためのデータである。例えば、開口形状データDf3は、生成する開口の形状に合わせた、アルファ値「0」のテクスチャデータである。なお、本実施形態では、開口判定用データに対して、上記敵オブジェクトEOが境界面3を通った位置に対応する箇所を中心として、当該開口形状データDf3の形状分だけアルファ値「0」に設定する。敵オブジェクトEOが境界面3上に開口を生成する際の画像処理については後述する。

0192

<弾オブジェクトデータDg>
弾オブジェクトデータDgは、プレーヤの攻撃操作に応じて発射される弾オブジェクトBOに関するデータである。例えば、弾オブジェクトデータDgは、弾オブジェクトBOを描画するためのポリゴンモデル及び弾画像(テクスチャ)データ、弾オブジェクトBOの配置方向や配置位置を示すデータ、および弾オブジェクトBOの移動速度や移動方向(例えば、移動速度ベクトル)を示すデータ等を含んでいる。なお、本実施形態において、後述する描画の優先度はアルファ値によって定められるため、弾画像データにはアルファ値が定められているものとする。本実施形態では、弾画像データに定められているアルファ値は「1」であるとする。

0193

<得点データDh>
得点データDhは、敵オブジェクトEOが登場するゲームの得点を示すデータである。例えば、上述のとおり、ゲームの得点は、攻撃操作によって敵オブジェクトEOを退治することによって加点され、敵オブジェクトEOがユーザの位置(つまり、仮想空間上における仮想カメラの配置位置)に到達することによって減点される。

0194

<動きデータDi>
動きデータDiは、実空間におけるゲーム装置10の動きを示すデータである。一例として、ゲーム装置10の動きは、角速度センサ40によって検出された角速度によって算出される。

0195

<仮想カメラデータDj>
仮想カメラデータDjは、仮想空間に設置される仮想カメラに関するデータである。第1の描画方法では、例えば、仮想カメラデータDjは、仮想カメラの仮想空間上の配置方向や配置位置を示すデータを含んでいる。また、第2の描画方法では、例えば、仮想カメラデータDjは、実世界描画用カメラの仮想空間上の配置方向や配置位置を示すデータと、仮想世界描画用カメラの仮想空間上の配置方向や配置位置を示すデータのそれぞれを含む。そして、例えば、第1の描画方法における仮想カメラ及び第2の描画方法における仮
想世界描画用カメラの仮想空間上の配置方向や配置位置を示すデータは、動きデータDiが示すゲーム装置10の動き(角速度)に応じて変化する。さらに、仮想カメラデータDjは、仮想カメラの画角(撮像範囲)データを含んでいる。これによって、第1の描画方法における仮想カメラ及び第2の描画方法における仮想世界描画用カメラの位置及び向きの変化に応じて、境界面3上の撮像範囲(撮像位置)が変化する。

0196

<レンダリング画像データDk>
レンダリング画像データDkは、後述する処理によりレンダリングされた画像に関するデータである。

0197

第1の描画方法では、実世界画像を仮想空間上のオブジェクトとしてレンダリングするため、レンダリング画像データDkは、仮想空間のレンダリング画像データを含む。仮想空間のレンダリング画像データは、敵オブジェクトEO、弾オブジェクトBO、実世界画像がテクスチャとして貼られた境界面3(スクリーンオブジェクト)、奥壁BWが配置された仮想空間を仮想カメラにより透視投影でレンダリングすることによって得られる仮想世界画像を示すデータである。

0198

他方、第2の描画方法では、実世界画像と仮想世界画像を別々の仮想カメラでレンダリングするため、レンダリング画像データDkは、実カメラ画像のレンダリング画像データおよび仮想空間のレンダリング画像データを含んでいる。実カメラ画像のレンダリング画像データは、実カメラ画像のテクスチャがマッピングされた平面ポリゴンを、実世界画像描画用カメラにより平行投影でレンダリングすることによって得られる実世界画像を示すデータである。仮想空間のレンダリング画像データは、敵オブジェクトEO、弾オブジェクトBO、境界面3、奥壁BWが配置された仮想空間を仮想世界描画用カメラにより透視投影でレンダリングすることによって得られる仮想世界画像を示すデータである。

0199

<表示画像データDl>
表示画像データDlは、上側LCD22に表示される表示画像を示すデータである。第1の描画方法では、例えば、上側LCD22に表示される表示画像は、仮想空間のレンダリング処理により生成される。また、第2の描画方法では、例えば、上側LCD22に表示される表示画像は、上記カメラ画像のレンダリング画像データと仮想空間のレンダリング画像データとを後述する方法で合成することによって生成される。

0200

<照準カーソル画像データDm>
照準カーソル画像データDmは、上側LCD22に表示される照準カーソルALの画像データである。当該画像データは、任意のデータでよい。

0201

なお、本実施形態では、描画に用いられる各オブジェクトに関するデータ(境界面データDd、奥壁画像データDe、実体データDf1、シルエットデータDf2、弾画像データ)は、描画の優先度を定める優先度情報を含んでいる。本実施形態では、当該優先度情報は、アルファ値が用いられているとする。当該アルファ値と画像処理の関係については後述する。

0202

また、本実施形態では、描画に用いる各オブジェクトに関するデータは、各オブジェクト間でデプス判定を行うか否かを示すデータが含まれている。当該データは、上述のとおり、敵オブジェクトEO、弾オブジェクトBO、半透明の敵オブジェクト、エフェクトオブジェクト、スクリーンオブジェクト(境界面3)との間は、互いにデプス判定が有効となるように設定されている。また、当該データは、「影用の平面ポリゴン(シルエットデータDf2)と敵オブジェクトEO(実体データDf1)の間」「影用の平面ポリゴン(シルエットデータDf2)と弾オブジェクトBOの間」「影用の平面ポリゴン(シルエッ
トデータDf2)と半透明の敵オブジェクトの間」「影用の平面ポリゴン(シルエットデータDf2)とエフェクトオブジェクトの間」は、互いにデプス判定が有効となるように設定されている。さらに、当該データは、影用の平面ポリゴン(シルエットデータDf2)とスクリーンオブジェクト(境界面データDd)との間は、デプス判定が無効となるように設定されている。

0203

§3−2画像処理例
次に、図17を参照して、情報処理部31の動作について説明する。まず、ゲーム装置10の電源(電源ボタン14F)がONされると、CPU311によってブートプログラム(図示せず)が実行され、これにより内蔵メモリまたは外部メモリ45やデータ保存用外部メモリ46に格納されているプログラムがメインメモリ32にロードされる。そして、当該ロードされたプログラムが情報処理部31(CPU311)で実行されることによって、図17に示すステップ(図17図19図20A及び図20Bでは「S」と略称する)が実行される。なお、図17図19図20A及び図20Bにおいては、本発明の画像処理に直接関連しない画像処理及びその他周辺の処理についての記載を省略する。

0204

図17において、情報処理部31は、画像処理における初期設定を行い(ステップ51)、次のステップ52に処理を進める。例えば、情報処理部31は、仮想世界画像(仮想空間の画像)を生成するための仮想カメラの初期位置や初期方向を仮想カメラデータDjに設定し、当該仮想カメラが配置される仮想空間の座標軸(例えば、XYZ軸)を設定する。

0205

次に、情報処理部31は、ゲーム装置10の各構成部より各種データを取得し(ステップ52)、次のステップ53に処理を進める。例えば、情報処理部31は、現在選択されている撮像部(本実施形態では外側撮像部23)によって撮像されたカメラ画像を用いて、実カメラ画像データDbを更新する。また、情報処理部31は、操作ボタン14やアナログスティック15を操作したことを示すデータを取得して、操作子データDa1を更新する。更に、情報処理部31は、角速度センサ40によって検出された角速度を示す角速度データを取得して、角速度データDa2を更新する。

0206

次に、情報処理部31は、敵オブジェクト関連処理を実行し(ステップ53)、次のステップ54に処理を進める。以下、図18を参照して、敵オブジェクト関連処理について説明する。

0207

図18において、情報処理部31は、敵オブジェクトEOが出現する条件を満たしているか否かを判断する(ステップ61)。例えば、敵オブジェクトEOが出現する条件として、所定時間毎に敵オブジェクトEOが出現してもいいし、敵オブジェクトEOが仮想世界から消滅したことに応じて新たな敵オブジェクトEOが出現してもいいし、ランダムのタイミングで敵オブジェクトEOを出現させてもよい。なお、敵オブジェクトEOが出現する条件は、例えば、メインメモリ32に保持されている各種プログラム群Paにより設定される。

0208

そして、情報処理部31は、敵オブジェクトEOが出現する条件を満たしている場合、次のステップ62に処理を進める。一方、情報処理部31は、敵オブジェクトEOが出現する条件を満たしていない場合、次のステップ63に処理を進める。

0209

ステップ62において、情報処理部31は、出現条件を満たした敵オブジェクトEOに対応する敵オブジェクトデータDfを生成、および初期設定を行って、次のステップ63に処理を進める。例えば、情報処理部31は、メインメモリ32に保持されている各種プログラム群Paを用いて、実体データDf1、シルエットデータDf2、開口形状データ
Df3、および敵オブジェクトEOに対応するポリゴンのデータを取得する。そして、情報処理部31は、当該各データを含んだ敵オブジェクトデータDfを生成する。また、例えば、情報処理部31は、生成した敵オブジェクトデータDfに含まれる、敵オブジェクトEOに対応するポリゴンの仮想空間上における配置方向や配置位置を示すデータ、および敵オブジェクトEOの仮想空間上における移動速度や移動方向を示すデータの初期設定を行う。当該初期設定は周知の方法で行われる。

0210

次に、情報処理部31は、仮想空間に配置されている敵オブジェクトEOを移動させ(ステップ63)、次のステップ64に処理を進める。一例として、情報処理部31は、敵オブジェクトデータDeに含まれる敵オブジェクトEOの配置位置を示すデータを、当該敵オブジェクトデータDeに含まれる敵オブジェクトEOの仮想空間上における移動速度や移動方向を示すデータに基づいて更新する。この際、情報処理部31は、敵オブジェクトデータDeに含まれる敵オブジェクトEOの配置方向を示すデータを、上記移動方向を示すデータに基づいて更新する。更新後、敵オブジェクトデータDeに含まれる敵オブジェクトEOの仮想空間上における移動速度や移動方向を示すデータを任意に更新してもよい。移動速度や移動方向を示すデータを更新することで、敵オブジェクトEOは、仮想空間上を、任意の速度、任意の方向に移動することができる。なお、移動速度や移動方向を示すデータは、例えば、所定のアルゴリズムにしたがって更新される。

0211

次に、情報処理部31は、敵オブジェクトEOが仮想カメラ(第1の描画方法における仮想カメラまたは第2の描画方法における仮想世界描画用カメラ。)の位置から一定距離まで到達したか否かを判定する(ステップ64)。例えば、情報処理部31は、敵オブジェクトデータDeに含まれる敵オブジェクトEOの配置位置を示すデータと、仮想カメラデータDjに含まれる仮想カメラ(第1の描画方法における仮想カメラまたは第2の描画方法における仮想世界描画用カメラ)の配置位置を示すデータとを比較する。そして、情報処理部31は、二つのデータが所定の条件(例えば、敵オブジェクトEOの配置位置と仮想カメラの配置位置との間の距離が所定の値よりも小さくなる)を満たした場合、敵オブジェクトEOが仮想カメラの位置から一定距離まで到達したと判定し、二つのデータが所定の条件を満たさない場合、敵オブジェクトEOは仮想カメラの位置まで到達していないと判定する。なお、以下、第1の描画方法及び第2の描画方法を区別せず、単に「仮想カメラ」と表記した場合、第1の描画方法における仮想カメラまたは第2の描画方法における仮想世界描画用カメラを指す。

0212

情報処理部31は、敵オブジェクトEOが仮想カメラの位置から一定距離まで到達したと判定した場合、次のステップ65に処理を進める。一方、情報処理部31は、敵オブジェクトEOが仮想カメラの位置まで到達していないと判定した場合、ステップ66に処理を進める。

0213

ステップ65において、情報処理部31は、減点処理を行って、次のステップ66に処理を進める。例えば、情報処理部31は、得点データDhが示すゲームの得点を所定値だけ減点し、減点後の得点を用いて得点データDhを更新する。なお、上記減点処理においては、情報処理部31は、上記仮想カメラの位置から一定距離まで到達した敵オブジェクトEOを仮想空間から消滅させる処理(例えば、仮想カメラの位置まで到達した敵オブジェクトEOに関する敵オブジェクトデータDeを初期化し、当該敵オブジェクトEOが仮想空間に存在しない状態にする)を行ってもよい。また、当該減点処理における所定値は、任意の値でよく、例えば、メインメモリ32に保持されている各種プログラム群Paによって設定されてもよい。

0214

ステップ66において、情報処理部31は、敵オブジェクトEOが境界面3を通過する(敵オブジェクトEOが第1空間1と第2空間2との間を移動する)か否かを判定する。
例えば、情報処理部31は、敵オブジェクトデータDfに含まれる敵オブジェクトEOの配置位置を示すデータと、境界面データDdに含まれる境界面3の配置位置を示すデータとを比較する。そして、情報処理部31は、二つのデータが所定の条件を満たした場合、敵オブジェクトEOが境界面3を通過すると判定し、二つのデータが所定の条件を満たさない場合、敵オブジェクトEOが境界面3を通過しないと判定する。なお、所定の条件とは、例えば、敵オブジェクトEOの仮想空間上の座標(配置位置)が、境界面3の球体表面の条件式を満たすことである。上述のとおり、境界面3の仮想空間上の配置位置を示すデータは、境界面3の仮想空間上の存在範囲を示し、例えば、球体表面(本実施形態における境界面3の形状)の条件式である。敵オブジェクトEOの配置位置が当該条件式を満たす場合、敵オブジェクトEOは、仮想空間において境界面3上に存在することになる。本実施形態では、例えばこのような場合に、敵オブジェクトEOが境界面3を通過すると判定する。

0215

情報処理部31は、敵オブジェクトEOが境界面3を通過すると判定した場合、次のステップ67に処理を進める。一方、情報処理部31は、敵オブジェクトEOが境界面3を通過しないと判定した場合、当該サブルーチンによる処理を終了する。

0216

ステップ67において、情報処理部31は、境界面データDdに含まれる開口判定用データの更新処理を行って、当該サブルーチンによる処理を終了する。本処理は、敵オブジェクトEOが境界面3を通過することによりできる境界面3上の開口情報を境界面データDdに登録するための処理である。例えば、第1の描画方法及び第2の描画方法において、情報処理部31は、境界面データDdに含まれる開口判定用データの、敵オブジェクトEOが境界面3を通過する仮想空間上の位置に対応する位置を中心とした領域のアルファ値と開口形状データDf3のアルファ値とを乗算する。開口形状データDf3は、敵オブジェクトEOの配置位置を中心とした、アルファ値「0」が格納されたテクスチャデータである。そのため、当該乗算によって、敵オブジェクトEOの配置位置(敵オブジェクトEOが通過する境界面3上の座標)を中心として開口が生成される領域の開口判定用データのアルファ値は「0」となる。つまり、情報処理部31は、境界面3上に既に開口が存在するか否かを判定することなく、境界面の状態(具体的には開口判定用データ)を更新することができる。なお、敵オブジェクトと境界面の衝突位置に既に開口が存在するか否かを判定するようにしてもよい。そして、開口が存在しない場合には、当該衝突位置に対応する実世界画像が破片となって飛び散るエフェクトを表示してもよい。

0217

また、上記開口判定用データの更新処理においては、情報処理部31は、開口が生成されたことの演出処理(例えば、開口が生成された位置において壁が崩れる演出を行う)を行ってもよい。この場合、情報処理部31は、敵オブジェクトEOが境界面3を通過する位置(開口を生成する範囲)が既に開口状態であったか否かの判定をする必要がある。情報処理部31は、例えば、開口形状データDf3のアルファ値を「0」から「1」に反転させたデータと上記乗算した開口判定用データのアルファ値とを乗算することにより、開口を生成する範囲が既に開口状態であったかどうかの判定をすることができる。すなわち、開口を生成する範囲全てが既に開口状態であった場合、開口判定用データのアルファ値は「0」であるから、当該乗算結果は「0」である。他方、開口を生成する範囲の一部でも開口状態ではない場合、開口判定用データのアルファ値は「0」でない部分が存在するため、当該乗算結果は「0」以外となる。

0218

なお、敵オブジェクトEOの開口形状データDf3は、敵オブジェクトEOの形状に対応したアルファ値「0」を格納したテクスチャデータであるが、情報処理部31は、所定のイベントにより当該テクスチャデータのアルファ値を「1」に変換してもよい。当該変更後上記処理が行われた場合、開口形状データDf3のアルファ値が「1」であるため、開口判定用データのアルファ値は変更されない。この場合、敵オブジェクトEOは、開口
を作らず、境界面3を通過する。すなわち、これによって、敵オブジェクトEOが、境界面3をすり抜けるかのような演出を行うことができる(図9参照)。なお、所定のイベントとは、例えば、乱数や所定の間隔で定められた時間間隔であってもよいし、ゲーム上の所定条件が満たされたことであってもよい。そして、これらは、例えば、メインメモリ32に保持されている各種プログラム群Paによって設定されてもよい。

0219

図17戻り、上記ステップ53における敵オブジェクト関連処理の後、情報処理部31は、弾オブジェクト関連処理を行い(ステップ54)、次のステップ55に処理を進める。以下、図19を参照して、弾オブジェクト関連処理について説明する。

0220

図19において、情報処理部31は、設定されている移動速度ベクトルに応じて、仮想空間内で弾オブジェクトBOを移動させ(ステップ71)、次のステップ72に処理を進める。例えば、情報処理部31は、弾オブジェクトデータDgに含まれる移動速度ベクトルを示すデータに基づいて、弾オブジェクトBOの配置方向や配置位置を示すデータを更新する。この際、情報処理部31は、周知の方法で、当該移動速度ベクトルを示すデータを更新してもよい。また、例えば、情報処理部31は、弾オブジェクトBOの種類に応じて、当該移動速度ベクトルを示すデータの更新方法を変えてもよい。例えば、弾オブジェクトBOがボールである場合、情報処理部31は、仮想空間上鉛直方向における重力の影響を考慮して、当該移動速度ベクトルを示すデータを更新してもよい。

0221

次に、情報処理部31は、ゲーム装置10のユーザによって発射操作が行われたか否かを判断する(ステップ72)。例えば、情報処理部31は、操作子データDa1を参照して、ユーザが所定の発射操作(例えば、ボタン14B(Aボタン)の押下)を行ったか否かを判断する。そして、情報処理部31は、発射操作が行われた場合、次のステップ73に処理を進める。一方、情報処理部31は、発射操作が行われていない場合、次のステップ74に処理を進める。

0222

ステップ73において、情報処理部31は、発射操作に応じて、仮想空間における仮想カメラの位置に弾オブジェクトBOを配置し、当該弾オブジェクトBOに対する移動速度ベクトルを設定して、次のステップ74に処理を進める。例えば、情報処理部31は、当該発射操作に対応する弾オブジェクトデータDgを生成する。そして、例えば、情報処理部31は、仮想カメラデータDjに含まれる仮想カメラの配置位置や配置方向を示すデータを、生成した弾オブジェクトデータDgに含まれる弾オブジェクトBOの配置位置や配置方向を示すデータに格納する。また、例えば、情報処理部31は、生成した弾オブジェクトデータDgに含まれる移動速度ベクトルを示すデータに任意の値を格納する。当該移動速度ベクトルを示すデータに格納する値は、メインメモリ32に保持されている各種プログラム群Paによって設定されてもよい。

0223

ステップ74において、情報処理部31は、敵オブジェクトEOと弾オブジェクトBOとが仮想空間内で接触したか否かを判断する。例えば、情報処理部31は、敵オブジェクトデータDfに含まれる敵オブジェクトEOの配置位置を示すデータと、弾オブジェクトデータDgに含まれる弾オブジェクトBOの配置位置を示すデータとを比較して、敵オブジェクトEOと弾オブジェクトBOとが仮想空間内で接触したか否かを判断する。例えば、情報処理部31は、敵オブジェクトEOの配置位置を示すデータと弾オブジェクトBOの配置位置を示すデータとが所定の条件を満たした場合、敵オブジェクトEOと弾オブジェクトBOとが接触したと判定する。また、そうではない場合、情報処理部31は、敵オブジェクトEOと弾オブジェクトBOとが接触していないと判定する。なお、所定の条件とは、例えば、敵オブジェクトEOの配置位置と弾オブジェクトBOの配置位置との間の距離が所定の値よりも小さくなることである。当該所定の値は、例えば、敵オブジェクトEOの大きさに基づいた値であってもよい。

0224

そして、情報処理部31は、敵オブジェクトEOと弾オブジェクトBOとが接触したと判定した場合、次のステップ75に処理を進める。一方、情報処理部31は、敵オブジェクトEOと弾オブジェクトBOとが接触していないと判定した場合、次のステップ76に処理を進める。

0225

ステップ75において、情報処理部31は、加点処理を行って、次のステップ76に処理を進める。例えば、上記加点処理においては、情報処理部31は、得点データDhが示すゲームの得点を所定数だけ加点し、加点後の得点を用いて得点データDhを更新する。また、上記加点処理においては、情報処理部31は、上記ステップ84で接触したと判定された両者(すなわち、敵オブジェクトEOと弾オブジェクトBO)を仮想空間から消滅させる処理(例えば、弾オブジェクトBOと接触した敵オブジェクトEOおよび敵オブジェクトEOに接触した弾オブジェクトBOに関するそれぞれの敵オブジェクトデータDeおよび弾オブジェクトデータDgを初期化し、当該敵オブジェクトEOおよび弾オブジェクトBOが仮想空間に存在しない状態にする)を行う。なお、当該加点処理における所定値は、任意の値でよく、例えば、メインメモリ32に保持されている各種プログラム群Paによって設定されてもよい。

0226

ステップ76において、情報処理部31は、弾オブジェクトBOが境界面3上の非開口領域に接触したか否かを判断する。例えば、情報処理部31は、弾オブジェクトデータDgに含まれる弾オブジェクトBOの配置位置を示すデータと、開口判定用データとを用いて、弾オブジェクトBOが境界面3上の非開口領域に接触したか否かを判定する。

0227

例えば、情報処理部31は、弾オブジェクトデータDgに含まれる弾オブジェクトBOの配置位置を示すデータが、上記敵オブジェクトBOの処理と同様に、境界面3の球体表面の条件式を満たすか否かを判定する。そして、情報処理部31は、弾オブジェクトBOの配置位置を示すデータが、当該球体表面の条件式を満たさない場合、弾オブジェクトBOが境界面3上に接触していないと判定する。他方、弾オブジェクトBOの配置位置を示すデータが、境界面3の球体表面の条件式を満たす場合、弾オブジェクトBOは、仮想空間上、境界面3上に存在することになる。この時、情報処理部31は、例えば、当該弾オブジェクトBOが存在する境界面3上の位置に対応する位置を中心とした所定の領域について、開口判定用データのアルファ値を取得する。この所定の領域は、弾オブジェクトBOと境界面3との接触点を中心とした所定領域である。そして、当該所定領域に対応する開口判定用データのアルファ値が非開口領域に対応するアルファ値「1」である場合、弾オブジェクトBOが境界面3上の非開口領域に接触したと判定する。

0228

そして、情報処理部31は、弾オブジェクトBOが境界面3上の非開口領域に接触したと判定した場合、次のステップ77に処理を進める。一方、情報処理部31は、弾オブジェクトBOが境界面3上の非開口領域に接触していないと判定した場合、次のステップ78に処理を進める。

0229

ステップ77において、情報処理部31は、開口判定用データの更新処理を行って、次のステップ78に処理を進める。例えば、上記更新処理においては、情報処理部31は、境界面3の非開口領域と接触したと判定した弾オブジェクトBOの配置位置に対応する境界面3上の位置を中心とした所定領域の開口判定用データのアルファ値を非開口領域に対応するアルファ値「1」に更新する。また、上記更新処理においては、情報処理部31は、上記ステップ76で接触したと判定された弾オブジェクトBOを仮想空間から消滅させる処理(例えば、境界面3上の非開口領域と接触した弾オブジェクトBOに関する弾オブジェクトデータDgを初期化し、当該弾オブジェクトBOが仮想空間に存在しない状態にする)を行う。なお、当該更新処理における所定領域は、任意の領域でよく、例えば、メ
インメモリ32に保持されている各種プログラム群Paによって設定されてもよい。

0230

ステップ78において、情報処理部31は、弾オブジェクトBOが仮想空間における所定の位置まで到達したか否かを判断する。所定の位置は、例えば、仮想空間上における奥壁が存在する位置であってもよい。この場合、例えば、情報処理部31は、弾オブジェクトデータDgに含まれる弾オブジェクトBOの配置位置を示すデータがる奥壁に衝突したか否かを判定する。

0231

そして、情報処理部31は、弾オブジェクトBOが所定の位置まで到達した場合、次のステップ77に処理を進める。一方、情報処理部31は、弾オブジェクトBOが所定の位置まで到達していない場合、当該サブルーチンによる処理を終了する。

0232

ステップ77において、情報処理部31は、上記ステップ76で所定の位置に到達したと判定された弾オブジェクトBOを仮想空間から消滅させる処理を行い、当該サブルーチンによる処理を終了する。例えば、情報処理部31は、上記ステップ76で所定の位置に到達したと判定された弾オブジェクトBOを仮想空間から消滅させる処理(例えば、当該弾オブジェクトBOに関する弾オブジェクトデータDgを初期化し、当該弾オブジェクトBOが仮想空間に存在しない状態にする)を行う。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

新着 最近 公開された関連が強い 技術

  • 大日本印刷株式会社の「 熱転写シート、印画物の製造方法、及びゲーム機」が 公開されました。( 2019/03/14)

    【課題・解決手段】赤外線吸収材料を含有する特別画像を正確に検出することができる印画物を形成可能な熱転写シート、及びこの印画物の製造方法を提供すること。基材1の一方の面上に、赤外線吸収材料を含有する赤外... 詳細

  • 株式会社コロプラの「 ゲームプログラム」が 公開されました。( 2019/02/28)

    【課題】ゲームの興趣性を向上させることができるゲームプログラムを提供する。【解決手段】ゲームプログラム131は、プロセッサに、1つのアクションのための入力操作が開始してから該入力操作が完了するまでの間... 詳細

  • 株式会社コロプラの「 ゲームプログラム、方法、および情報処理装置」が 公開されました。( 2019/02/28)

    【課題】ユーザが所望する報酬を獲得できるか否かにユーザが介入できる程度をより高くする。【解決手段】ゲームプログラム(131)は、プロセッサ(10)に、ゲームにおいて第2の条件が満たされた場合に、ユーザ... 詳細

この 技術と関連性が強い 技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する挑戦したい社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ