説明

表示制御プログラム、表示制御装置、表示制御システム、および、表示制御方法

【課題】複雑な計算をする必要がなく容易にユーザによって指示された位置に対応した仮想空間の位置にオブジェクトを表示する。
【解決手段】ゲーム装置はタッチパネルが検出したタッチ位置Tに対応する画像上の指示位置Qと、当該指示位置Qの深度値とを取得する。ゲーム装置は、画像上の指示位置Qとその深度値とに基づいて、3次元仮想空間における3次元指示位置Pを算出する。次に、ゲーム装置は、カーソルオブジェクトの姿勢を決定して、算出した3次元指示位置Pにカーソルオブジェクトを配置する。そして、ゲーム装置は、仮想カメラでカーソルオブジェクトを含む仮想空間を撮像し、上側LCDで画像を表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザによって指示された位置にオブジェクトを表示する表示制御プログラム、表示制御装置、表示制御システム、および、表示制御方法に関する。
【背景技術】
【0002】
従来、画面上に配設されたタッチパネルがタッチ位置を検出し、当該タッチ位置に基づいて、指示された仮想空間の位置を検出するゲーム装置が存在する。例えば、特許文献1に記載の装置では、画面上のタッチパネルが検出したタッチ位置に対応する仮想空間の平面上の位置から仮想カメラの視線方向に延伸する直線を求める。そして、算出した直線と交差または接触する仮想空間内のキャラクタがタッチされたキャラクタとして決定され、当該直線との交点がユーザによって指示された仮想空間における位置として決定される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第4358181号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載のような方法でユーザによって指示された位置に対応する仮想空間の位置を算出し、当該仮想空間の位置にオブジェクトを表示するためには、複雑な計算をする必要がある。すなわち、上述のような幾何学的な方法では、ユーザによって指示された位置に対応する仮想空間の位置を算出するためには、仮想空間における直線を算出して当該直線と仮想空間のモデルとの交点を算出する必要がある。このため、計算が複雑になり、装置の処理負荷が増大することがある。
【0005】
それ故、本発明の目的は、複雑な計算をする必要がなく容易にユーザによって指示された位置に対応した仮想空間の位置にオブジェクトを表示することが可能な表示制御技術を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【0007】
本発明は、表示制御装置のコンピュータにおいて実行される表示制御プログラムである。表示制御プログラムは、画像生成手段と、取得手段と、算出手段と、オブジェクト設定手段と、表示制御手段として、上記コンピュータを機能させる。画像生成手段は、3次元の仮想空間を仮想カメラで撮像することによって深度値が設定された画像を生成する。取得手段は、位置指示手段を用いてユーザによって指示された上記画像上の指示位置における上記画像の深度値を取得する。算出手段は、上記取得手段によって取得された上記画像の深度値に基づいて、上記仮想カメラから仮想空間を見た場合の上記仮想空間における奥行き方向の位置を算出する。オブジェクト設定手段は、上記算出手段によって算出された奥行き方向の位置にオブジェクトを設定する。表示制御手段は、上記オブジェクト設定手段によって設定されたオブジェクトを含む仮想空間を撮像した画像を表示領域に表示させる。
【0008】
上記によれば、画像生成手段は、仮想空間を仮想カメラで撮像することによって得られる画像を生成する。生成された画像には深度値が設定されている。取得手段は、ユーザが
位置指示手段を用いて指示した画像上の指示位置における深度値を取得する。取得した画像上の深度値に基づいて、仮想空間における奥行き方向の位置が算出される。そして、算出された奥行き方向の位置にオブジェクトを設定し、表示領域に当該オブジェクトを表示することができる。例えば、ユーザは、タッチパネルやタッチパッド等の位置指示手段を用いて位置を指示する。そして、画像の深度値を用いて仮想空間における奥行き方向の位置を算出し、当該奥行き方向の位置に上記オブジェクトを設定することができる。これにより、位置指示手段を用いて指示した2次元平面上の位置に対応した3次元仮想空間の奥行き方向の位置を、複雑な計算を要することなく算出することができ、当該3次元仮想空間の位置にオブジェクトを設定することができる。
【0009】
また、本発明の他の構成では、上記算出手段は、上記画像上の指示位置と、当該指示位置における上記画像の深度値とに基づいて、上記仮想空間における3次元指示位置を算出してもよい。上記オブジェクト設定手段は、上記算出手段によって算出された3次元指示位置に上記オブジェクトを設定する。
【0010】
上記によれば、画像上の指示位置と深度値とに基づいて、仮想空間における3次元指示位置を算出することができ、ユーザが位置指示手段を用いて指示した位置に対応した仮想空間における3次元位置を容易に算出することができる。
【0011】
また、本発明の他の構成では、上記算出手段は、上記画像上の指示位置に基づいて上記仮想カメラから上記仮想空間を見た場合の上下左右方向の上記仮想空間における位置を算出し、上記画像の深度値に基づいて上記仮想カメラから上記仮想空間を見た場合の奥行き方向の上記仮想空間における位置を算出してもよい。これにより、上記算出手段は、上記仮想空間における3次元指示位置を算出する。
【0012】
上記によれば、例えば、仮想カメラの撮像方向にZ軸、撮像方向に対して右方向にX軸、撮像方向に対して上方向にY軸として、仮想カメラの座標系を設定した場合に、XYZ座標値を算出することができる。具体的には、指示位置に基づいて、カメラ座標系におけるXY座標値を算出することができ、深度値に基づいてカメラ座標系におけるZ座標値を算出することができる。
【0013】
また、本発明の他の構成では、上記オブジェクトは、ユーザによって指示された位置を示す指示オブジェクトであってもよい。
【0014】
上記によれば、ユーザは、自身が指示した位置に対応する仮想空間の位置を容易に認識することができる。
【0015】
また、本発明の他の構成では、上記仮想空間には表示対象となる第2オブジェクトが配置されてもよい。この場合において、上記画像生成手段は、上記第2オブジェクトを含む仮想空間を仮想カメラで撮像することによって画像を生成する。上記オブジェクト設定手段は、上記第2オブジェクトが表示された領域内に上記指示位置が存在する場合、上記3次元指示位置に基づいて上記指示オブジェクトの姿勢を決定し、当該決定した姿勢で上記仮想空間に上記指示オブジェクトを設定する。
【0016】
上記によれば、仮想空間には第2オブジェクトが配置される。当該第2オブジェクトの表示領域内に指示位置が存在する場合において、上記3次元指示位置に基づいて指示オブジェクトの姿勢を決定することができる。例えば、上記3次元指示位置が第2オブジェクトの表示領域のうちのどの位置に存在するかに応じて、上記指示オブジェクトの仮想空間における姿勢を決定することができる。これにより、例えば、第2オブジェクトの形状と指示位置とに応じて指示オブジェクトの姿勢を変化させることができる。
【0017】
また、本発明の他の構成では、上記第2オブジェクトは複数の部位によって構成されてもよい。この場合において、上記表示制御プログラムは、上記指示位置に基づいて、上記第2オブジェクトの複数の部位のうちの指示された部位を決定する部位決定手段として、上記コンピュータを更に機能させる。上記オブジェクト設定手段は、上記指示された部位に応じて上記指示オブジェクトの姿勢を決定し、当該決定した姿勢で上記仮想空間に上記指示オブジェクトを設定する。
【0018】
上記によれば、第2オブジェクトの複数の部位のうち、指示された部位に基づいて指示オブジェクトの姿勢を変化させることができる。
【0019】
また、本発明の他の構成では、上記オブジェクト設定手段は、上記3次元指示位置における上記指示された部位の法線に応じて、上記指示オブジェクトの姿勢を決定してもよい。
【0020】
上記によれば、指示された部位の上記3次元指示位置における法線に応じて、指示オブジェクトの姿勢を決定することができる。例えば、法線に対して垂直になるように指示オブジェクトを設定した場合、第2オブジェクトの部位の表面に沿うようにして指示オブジェクトを表示させることができる。これにより、ユーザは、例えば第2オブジェクトを撫でるような視覚的感覚を得ることができる。
【0021】
また、本発明の他の構成では、上記第2オブジェクトの各部位は、点又は線分によって構成されるボーンによって構成されてもよい。この場合において、上記オブジェクト設定手段は、上記3次元指示位置と上記ボーンとの距離が最短となる上記ボーン上の点から、上記3次元指示位置に向かう法線ベクトルを算出し、当該法線ベクトルに応じて上記指示オブジェクトの姿勢を決定する。
【0022】
上記によれば、簡単な計算で指示された部位の法線を算出することができ、当該法線に応じて指示オブジェクトの姿勢を決定することができる。
【0023】
また、本発明の他の構成では、上記表示制御プログラムは、上記指示された部位を基準とした上記3次元指示位置の相対的な位置に応じて、上記指示オブジェクトの回転角を設定する角度設定手段として、上記コンピュータを更に機能させてもよい。上記オブジェクト設定手段は、上記指示オブジェクトを上記法線周りに上記回転角で回転させて、上記仮想空間に上記指示オブジェクトを設定する。
【0024】
上記によれば、指示オブジェクトを法線周りに回転させることができる。例えば、指示された部位の領域のうち、上側の領域が指示されている場合と下側の領域が指示されている場合とで指示オブジェクトを反転させることができる。これにより、ユーザに対して第2オブジェクトを撫でるような感覚を与えることができる。
【0025】
また、本発明の他の構成では、上記表示制御手段は、上記第2オブジェクトが表示された領域内に上記指示位置が存在するか否かに応じて、上記指示オブジェクトを異なる表示態様で表示させてもよい。
【0026】
上記によれば、第2オブジェクトが表示された領域に指示位置が存在するか否かに応じて指示オブジェクトの表示態様を異なるようにすることができる。例えば、第2オブジェクトが表示された領域に指示位置が存在しない場合、指示オブジェクトの形状を矢印形状に変化させ、第2オブジェクトが表示された領域に指示位置が存在する場合、指示オブジェクトの形状を手の形状に変化させることができる。これにより、ユーザは第2オブジェ
クトを指示しているか否かを容易に判別することができる。
【0027】
また、本発明の他の構成では、上記算出手段は、上記第2オブジェクトが表示された領域内に上記指示位置が存在する場合、上記指示位置と当該指示位置における上記画像の深度値とに基づいて、上記仮想空間における3次元指示位置を算出してもよい。また、上記算出手段は、上記第2オブジェクトが表示された領域外に上記指示位置が存在する場合、上記指示位置と一定の深度値とに基づいて、上記仮想空間における3次元指示位置を算出する。
【0028】
上記によれば、上記指示位置が第2オブジェクトの表示領域に存在する場合には、指示位置における上記画像の深度値を用いて3次元指示位置を算出し、上記指示位置が第2オブジェクトの表示領域に存在しない場合には、一定の深度値を用いて3次元指示位置を算出する。これにより、上記指示位置が第2オブジェクトの表示領域に存在する場合には、当該第2オブジェクトの位置(深度方向の位置)に応じて、指示オブジェクトを配置することができる。また、上記指示位置が第2オブジェクトの表示領域に存在しない場合には、画面から一定距離離れた位置に指示オブジェクトを配置することができる。
【0029】
また、本発明の他の構成では、上記表示領域は、立体視表示可能な表示領域であってもよい。この場合において、上記画像生成手段は、上記仮想空間を仮想ステレオカメラで撮像することによって左目用画像と右目用画像とを生成する。上記取得手段は、上記左目用もしくは右目用画像上の上記指示位置における深度値、又は、上記仮想ステレオカメラと同じ撮像方向の第3の仮想カメラで上記仮想空間を撮像することによって取得される第3画像上の上記指示位置における深度値を取得する。上記表示制御手段は、上記オブジェクト設定手段によって設定されたオブジェクトを含む仮想空間を撮像した画像を上記表示領域に立体表示させる。
【0030】
上記によれば、仮想空間および上記オブジェクトを立体視表示することができる。上記オブジェクトを立体視表示する場合、仮想空間における上記オブジェクトの位置を正確に求め、当該オブジェクトを仮想空間に配置する必要がある。上記のように深度値を用いた方法では、ユーザによって指示された位置に対応する仮想空間の位置を正確かつ容易に求めることができる。
【0031】
また、本発明の他の構成では、上記第3の仮想カメラは、上記仮想ステレオカメラの左右の仮想カメラの間に設定されてもよい。上記取得手段は、上記第3画像上の指示位置における上記第3画像の深度値を取得する。上記算出手段は、上記第3画像上の指示位置と上記第3画像の深度値とに基づいて、上記3次元指示位置を算出する。
【0032】
上記によれば、第3の仮想カメラは、仮想ステレオカメラの左右の仮想カメラの間の位置に設定される。そして、第3の仮想カメラで撮像された画像上の指示位置と当該指示位置における深度値とに基づいて、3次元指示位置が算出され、当該3次元指示位置に上記オブジェクトが配置される。仮想ステレオカメラによって撮像された左右の画像の何れかを用いて3次元指示位置が算出されると、2つの画像には視差があるため、ユーザによって指示された位置に対応する3次元指示位置を正確に求めることができない。しかしながら、仮想ステレオカメラの間に設定された第3の仮想カメラによって撮像された画像を用いて、3次元指示位置を算出することにより、視差による影響を受けずに3次元指示位置を正確に算出することができる。
【0033】
また、本発明の他の構成では、上記第3の仮想カメラは、上記仮想ステレオカメラの左右の仮想カメラの中間に設定されてもよい。
【0034】
上記によれば、ユーザによって指示された位置に対応する3次元指示位置を正確に算出することができる。
【0035】
また、本発明の他の構成では、上記位置指示手段は、上記表示領域とは異なる第2の表示領域上に設けられ、当該第2の表示領域上への接触位置を検出してもよい。上記取得手段は、上記位置指示手段が検出した接触位置に対応する上記第2の表示領域に表示された画像上の指示位置における深度値を取得する。上記表示制御手段は、上記オブジェクト設定手段によって設定されたオブジェクトを含む仮想空間を撮像した画像を上記表示領域に表示させるとともに、上記仮想空間を撮像した画像を上記第2の表示領域に表示させる。
【0036】
上記によれば、ユーザは第2の表示領域に表示された画像に対して接触することで、当該接触位置に対応する3次元仮想空間の位置にオブジェクトを配置し、当該オブジェクトを上記表示領域に表示させることができる。例えば、上記表示領域が上側に、第2の表示領域が下側に配置されている場合、下側の表示領域に対するタッチ操作を行うことができる。そして、下側の表示領域のタッチ位置に対応した仮想空間の位置にオブジェクトを配置し、上側の表示領域に当該オブジェクトを表示させることができる。
【0037】
また、本発明の他の構成では、上記位置指示手段は、上記表示領域とは異なる第2の表示領域上に設けられ、当該第2の表示領域上への接触位置を検出してもよい。表示制御プログラムは、上記仮想ステレオカメラと同じ撮像方向の第3の仮想カメラで上記仮想空間を撮像することによって取得される第3画像を生成する第3画像生成手段として、上記コンピュータを更に機能させる。上記取得手段は、上記位置指示手段が検出した接触位置に対応する上記第3画像上の指示位置における深度値を取得する。上記表示制御手段は、上記画像生成手段が生成した左目用画像と右目用画像とを上記表示領域に表示させるとともに、上記第3画像生成手段が生成した上記第3画像を上記第2の表示領域に表示させる。
【0038】
上記によれば、例えば、上側に上記表示領域を配置し(上側画面)、下側に上記第2の表示領域を配置することにより、第2の表示領域(下側画面)に対するタッチ操作を行うことができる。そして、下側画面に対するタッチ操作を行うことで、当該タッチ位置に対応する3次元仮想空間の位置にオブジェクトを配置して、上側画面に当該オブジェクトを表示させることができる。
【0039】
また、本発明では、上記各手段を実現した表示制御装置であってもよい。また、本発明では、上記各手段を実現する複数の要素が相互に動作することによって、1つの表示制御システムとして構成されてもよい。当該表示制御システムは、1つの装置によって構成されてもよいし、複数の装置によって構成されてもよい。
【発明の効果】
【0040】
本発明によれば、複雑な計算をする必要がなく、ユーザによって指示された位置に対応した仮想空間の位置にオブジェクトを表示することができる。
【図面の簡単な説明】
【0041】
【図1】開状態におけるゲーム装置10の外観を示す正面図
【図2】閉状態におけるゲーム装置10の左側面図、正面図、右側面図、および、背面図
【図3】ゲーム装置10の内部構成を示すブロック図
【図4】本実施形態に係るゲームの実行中において、上側LCD22および下側LCD12の画面に表示されるゲーム画像の一例を示す図
【図5】ユーザが犬オブジェクト50の背中部分をタッチした様子を示す図
【図6】ゲーム装置10のRAM(メインメモリ32等)のメモリマップを示す図
【図7】本実施形態に係るゲーム処理の詳細を示すメインフローチャート
【図8】カーソル設定処理(ステップS101)の詳細を示すフローチャート
【図9】犬オブジェクト50が複数の部位によって構成される様子を示す図
【図10】後ろ半身の部位155の詳細を示す図
【図11A】タッチされた部位155を正面から見た図であり、部位155の3次元指示位置Pにおける法線ベクトルを示す図
【図11B】部位155を図11Aの矢印方向から見た図であり、部位155の3次元指示位置Pにおける法線ベクトルを示す図
【図12】部位155がタッチされた場合において、3次元指示位置Pが部位155の中のどの領域に存在するかによって回転角が定められることを示す図
【図13】タッチパネル13がタッチを検出した場合において、犬オブジェクト50がタッチされなかったときの画面の一例を示す図
【発明を実施するための形態】
【0042】
(ゲーム装置の構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。図1は、開状態におけるゲーム装置10の外観を示す正面図である。図2(a)は閉状態におけるゲーム装置10の左側面図であり、図2(b)は閉状態におけるゲーム装置10の正面図であり、図2(c)は閉状態におけるゲーム装置10の右側面図であり、図2(d)は閉状態におけるゲーム装置10の背面図である。ゲーム装置10は携帯型のゲーム装置であり、図1および図2に示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10を示し、図2は、閉じた状態(閉状態)におけるゲーム装置10を示している。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【0043】
まず、図1および図2を参照して、ゲーム装置10の外観構成について説明する。図1および図2に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。
【0044】
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1および図2に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0045】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12の画素数は、例えば、320dot×240dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0046】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備え
ている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図2(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0047】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0048】
アナログスティック15は、方向を指示するデバイスである。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0049】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク42(図3参照)が設けられ、当該マイク42がゲーム装置10の外部の音を検出する。
【0050】
図2(b)および(d)に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14GおよびRボタン14Hは、例えば、撮像部のシャッターボタン(撮影指示ボタン)として機能することができる。また、図2(a)に示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0051】
図2(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用
いられる。
【0052】
また、図2(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。
【0053】
また、図1および図2(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図2(c)参照)。
【0054】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0055】
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1および図2に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0056】
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22の画素数は、例えば、800dot×240dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0057】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが時間的に交互に表示され、メガネを用いてユーザの左目に左目用画像が右目に右目用画像が視認される方式の表示装置であってもよい。本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるよう
な表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0058】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部(左)23aおよび外側撮像部(右)23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0059】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0060】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。また、スライダ25aの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ25aの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。
【0061】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【0062】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0063】
(ゲーム装置10の内部構成)
次に、図3を参照して、ゲーム装置10の内部の電気的構成について説明する。図3は、ゲーム装置10の内部構成を示すブロック図である。図3に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0064】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Pr
ocessing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
【0065】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0066】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0067】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。
【0068】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0069】
無線通信モジュール36は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0070】
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3
軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。
【0071】
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0072】
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0073】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0074】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。
【0075】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分
割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0076】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0077】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0078】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
【0079】
また、情報処理部31には、角速度センサ46が接続される。角速度センサ46は、各軸(x軸、y軸、z軸)周りの角速度を検出する。ゲーム装置10は、角速度センサ46が逐次検出する角速度に基づいて、実空間におけるゲーム装置10の姿勢を算出することができる。具体的には、ゲーム装置10は、角速度センサ46によって検出された各軸周りの角速度を時間で積分することによって、各軸周りのゲーム装置10の回転角を算出することができる。以上がゲーム装置10の内部構成の説明である。
【0080】
(ゲームの概要)
次に、図4および図5を参照して、本実施形態に係るゲームの概要について説明する。図4は、本実施形態に係るゲームの実行中において、上側LCD22および下側LCD12の画面に表示されるゲーム画像の一例を示す図である。本実施形態に係るゲームでは、タッチパネル13(下側LCD12)に対するタッチ操作によって、犬オブジェクト50を動作させることにより、犬に触れたり犬と遊んだりする感覚をユーザに与える。
【0081】
図4に示すように、上側LCD22には、犬を模した犬オブジェクト50が立体表示(立体視可能に表示)された立体画像50Aが表示される。犬オブジェクト50は、3次元の仮想空間(XYZ座標系(ワールド座標系)で表される空間)に設定された仮想オブジェクトである。立体画像50Aは、仮想空間に存在する犬オブジェクト50を当該仮想空間に設定された仮想ステレオカメラ(左右の仮想カメラ;第1および第2の仮想カメラ)で撮像した画像である。仮想ステレオカメラによって左目用画像および右目用画像が撮像されて上側LCD22に表示されることによって、犬オブジェクト50が立体表示される。また、上側LCD22には、仮想空間に存在するボールオブジェクト51が立体表示された立体画像51Aが表示される。立体画像50Aおよび立体画像51Aは、例えば、32bitカラーで表示される。
【0082】
また、下側LCD12には、犬オブジェクト50をシルエット表示したシルエット画像50Bが表示される。上記仮想ステレオカメラの中間に設定された仮想カメラ(第3の仮想カメラ)で犬オブジェクト50を撮像した画像であり、犬オブジェクト50をシルエット表示(単色で表示)した画像である。なお、ボールオブジェクト51は下側LCD12には表示されない。すなわち、下側LCD12には、操作対象である犬オブジェクト50のみが表示され、その他のオブジェクトは表示されない。
【0083】
下側LCD12に表示されたシルエット画像50Bをユーザがタッチペン28を用いて
タッチすると、上側LCD22にはタッチされた位置を示すカーソル60が表示される。すなわち、下側LCD12においてタッチされた位置に対応する上側LCD22上の位置にカーソル60が表示される。カーソル60は、人の手を模したオブジェクトである。ユーザが下側LCD12をタッチしたままタッチペン28を画面上でスライドさせると、当該タッチペン28の動きに応じてカーソル60も動作する。そして、タッチペン28の動作(カーソル60の動作)に応じて、犬オブジェクト50が動作する。例えば、図4に示すように、犬オブジェクト50の頭部がタッチされている場合においてタッチペン28を上下方向に往復移動させると、カーソル60も上側LCD22の上下方向に往復動作する。このカーソル60の動作は、ユーザが犬オブジェクト50の頭を撫でる動作に対応する。当該動作に応じて、例えば、犬オブジェクト50は頭を撫でられて喜ぶような動作をする。
【0084】
図5は、ユーザが犬オブジェクト50の背中部分をタッチした様子を示す図である。図5に示すように、ユーザが犬オブジェクト50の背中部分をタッチすると、図4のように頭部をタッチした場合と比較して、カーソル60の姿勢が変化する。具体的には、カーソル60は、タッチした部位の表面に沿うようにして表示される。
【0085】
以上のように、ユーザが下側LCD12に表示されたシルエット画像50Bをタッチペン28(又は指)でタッチすることによって、上側LCD22に表示されたカーソル60を操作する。そして、ユーザはカーソル60を用いて犬オブジェクト50に触れることで、犬オブジェクト50を操作する。
【0086】
(ゲーム処理の詳細)
次に、図6から図8を参照してカーソル60の姿勢の決定の仕方、および、その処理の詳細について説明する。まず、ゲーム処理の際にメインメモリ32およびVRAM313(以下、これらを総称してRAMと呼ぶことがある)に記憶される主なデータについて説明する。図6は、ゲーム装置10のRAM(メインメモリ32等)のメモリマップを示す図である。図6に示されるように、RAMには、ゲームプログラム70、タッチ位置データ71、描画画像データ72、深度値データ73、犬オブジェクト情報データ74、カーソルデータ75等が記憶される。これらの他、RAMには犬オブジェクト50の画像データやユーザによって行われたボタン操作に関するデータ等が記憶される。
【0087】
ゲームプログラム70は、後述するフローチャートに示されるゲーム処理を情報処理部31(CPU311)に実行させるためのプログラムである。
【0088】
タッチ位置データ71には、タッチパネル13が検出したタッチ位置Tが格納される。具体的には、タッチ位置データ71は所定の長さの配列であり、当該配列の各要素には、タッチパネル13上(下側LCD12の画面上)の位置を示す座標値(TxTy座標系)が格納される。TxTy座標系は、例えば、下側LCD12の左下端を原点として、下側LCD12の横方向にTx座標軸が設定され、縦方向にTy座標軸が設定された座標系である。タッチ位置データ71には、タッチパネル13が検出したタッチ位置を示す座標値が時系列に格納される。
【0089】
描画画像データ72は、上側LCD22および下側LCD12に表示される画像を示すデータである。具体的には、描画画像データ72は、上側LCD22に表示される左目用画像と右目用画像、および、下側LCD12に表示されるシルエット画像が含まれる。後述する表示処理によって、各画像が生成され、描画画像データ72としてRAMに記憶される。
【0090】
深度値データ73には、下側LCD12に表示された画像の画素毎の深度値(奥行方向
の位置を示す値;デプス値)が格納される。具体的には、深度値データ73は、下側LCD12に表示された画像の各画素の深度値をマトリクス状に配置した2次元配列である。2次元配列の各要素には、下側LCD12に表示される画像の各画素の深度値が格納される。
【0091】
犬オブジェクト情報データ74は、犬オブジェクト50の仮想空間における位置や形状等を示すデータである。具体的には、犬オブジェクト情報データ74は、犬オブジェクト50の仮想空間(XYZ座標系)における位置、犬オブジェクト50の各部位(図9参照)に関する情報等を含む。
【0092】
カーソルデータ75は、カーソル60の仮想空間における位置および姿勢を示すデータである。カーソル60の位置は、ユーザによってタッチされたタッチパネル13上の位置に応じた3次元仮想空間の位置である。カーソル60の姿勢は、カーソル60の仮想空間における姿勢である。
【0093】
(ゲーム処理)
次に、ゲーム処理の詳細について図7から図13を参照して説明する。図7は、本実施形態に係るゲーム処理の詳細を示すメインフローチャートである。ゲーム装置10の電源が投入されると、ゲーム装置10の情報処理部31(CPU311)は、ROMに記憶されている起動プログラムを実行し、これによってメインメモリ32等の各ユニットが初期化される。次に、不揮発性メモリ(外部メモリ44等;コンピュータ読み取り可能な記憶媒体)に記憶されたゲームプログラム70がRAM(具体的には、メインメモリ32)に読み込まれ、情報処理部31のCPU311によって当該プログラムの実行が開始される。図7のフローチャートに示す処理は、以上の処理が完了した後に情報処理部31(CPU311又はGPU312)によって行われる。
【0094】
なお、図7では、本発明に直接関連しない処理については記載を省略する。また、図7に示すステップS101〜ステップS104の処理ループは、1フレーム(例えば1/30秒又は1/60秒。フレーム時間という)毎に繰り返し実行される。
【0095】
まず、ステップS101において、情報処理部31は、カーソル設定処理を実行する。ここでは、タッチパネル13が検出したタッチ位置に基づいて、カーソル60の仮想空間における位置および姿勢が算出される。ステップS101におけるカーソル設定処理の詳細を図8を参照して説明する。図8は、カーソル設定処理(ステップS101)の詳細を示すフローチャートである。
【0096】
ステップS111において、情報処理部31は、タッチパネル13がタッチ位置Tを検出したか否かを判定する。タッチパネル13がタッチ位置Tを検出した場合、情報処理部31は、タッチ位置T(Tx,Ty)を最新のタッチ位置としてタッチ位置データ71に格納し、次にステップS112の処理を実行する。一方、タッチパネル13がタッチ位置Tを検出しなかった場合、情報処理部31は、図8に示すカーソル設定処理を終了する。
【0097】
ステップS112において、情報処理部31は、ステップS111で検出したタッチパネル13上のタッチ位置Tに対応する、画像上の指示位置Qを取得する。ここで、指示位置Qは、タッチ位置Tに対応する下側LCD12に表示された画像上の位置を示す。具体的には、情報処理部31は、ステップS111においてタッチパネル13が検出したタッチ位置Tを座標変換することによって、画像上の指示位置Q(Qx,Qy)を取得する。
【0098】
なお、下側LCD12の表示画面(およびタッチパネル13)と、下側LCD12に表示された画像(すなわち、後述するステップS104で生成された画像)とが同じ大きさ
である場合、タッチ位置Tと、指示位置Qとは一致する。一方、下側LCD12の表示画面(およびタッチパネル13)よりも下側LCD12に表示された画像の方が大きい場合、大きさの比率に応じてタッチ位置Tが変換されて、指示位置Qが求められる。このように、タッチ位置Tと指示位置Qとは一対一で対応するが、それぞれ2つの異なる座標系で表される位置を示す。
【0099】
以下では、タッチパネル13が検出したタッチパネル13上の座標系で表される位置を「タッチ位置T」、当該タッチ位置Tに対応する下側LCD12に表示された画像上の座標系で表される位置を「指示位置Q」として表す。また、指示位置Qに対応する3次元仮想空間の座標系(XYZ座標系)で表される位置を「3次元指示位置P」として表す。情報処理部31は、次にステップS113の処理を実行する。
【0100】
ステップS113において、情報処理部31は、指示位置Qにおける深度値(Z値)を取得する。具体的には、情報処理部31は、深度値データ73を参照して、指示位置Q(Qx,Qy)の画素の深度値を取得する。後述するステップS104において、下側LCD12に画像が表示されると、その画像の画素毎の深度値(奥行方向の位置)が深度値データ73に格納される。ここでは、前回のフレームにおいてステップS104で更新された深度値データ73を参照し、当該深度値データ73に格納された深度値が取得される。次に、ステップS114が実行される。
【0101】
ステップS114において、情報処理部31は、指示位置Qが犬オブジェクト50上か否かを判定する。すなわち、情報処理部31は、ステップS112で取得した指示位置Qが下側LCD12に表示された犬オブジェクト50のシルエット画像50B内か否かを判定する。例えば、情報処理部31は、深度値データ73を参照して、指示位置Qの画素の深度値が所定の範囲か否かを判定する。上述のように、深度値データ73は、下側LCD12に表示された画像の画素毎の深度値を示すデータである。下側LCD12に表示された画像には、操作対象である犬オブジェクト50のみが表示される。このため、犬オブジェクト50が表示された領域(シルエット画像50Bの表示領域)の各画素には所定範囲の深度値(例えば、0.9〜1.0)が格納され、犬オブジェクト50が表示されない領域には、所定の値の深度値(例えば、0)が格納される。従って、情報処理部31は、深度値データ73を用いることによって犬オブジェクト50がタッチされたか否かを判定することができる。判定結果が肯定の場合、次にステップS115の処理が実行される。判定結果が否定の場合、次にステップS120の処理が実行される。
【0102】
ステップS115において、情報処理部31は、3次元指示位置P(X,Y,Z)を算出する。具体的には、情報処理部31は、ステップS112で取得した指示位置Q(Qx,Qy)、および、ステップS113で取得した深度値(Z値)に基づいて、仮想空間における3次元指示位置Pを算出する。指示位置Qは、下側LCD12に表示された画像上の位置であり、当該指示位置Qに基づいて、第3の仮想カメラから仮想空間を見た場合の上下左右方向(カメラ座標系のXY方向)の位置が算出される。また、ステップS113で取得した深度値は、下側LCD12に表示された画像の上記指示位置Qにおける深度値であり、第3の仮想カメラから仮想空間を見た場合の奥行き方向(撮像方向;カメラ座標系のZ方向)の位置を示す。従って、当該深度値に基づいて、第3の仮想カメラの奥行き方向の位置が算出される。すなわち、仮想空間における3次元位置は、ビュー変換および射影変換により画像上の2次元位置に変換される。このため、画像上の2次元位置(仮想カメラの上下左右方向の位置)とその深度値(仮想カメラの撮像方向の位置)とを用いた逆変換により、仮想空間における3次元位置は求められる。より具体的には、情報処理部31は、透視投影変換行列の逆行列、および、仮想カメラのビュー行列の逆行列を用いて仮想空間における3次元指示位置P(X,Y,Z)を算出する。そして、情報処理部31は、算出した3次元指示位置Pをカーソルデータ75としてRAMに保存する。次に、情
報処理部31はステップS116の処理を実行する。
【0103】
ステップS116において、情報処理部31は、3次元指示位置Pに基づいて、タッチされた部位を決定する。犬オブジェクト50は、複数の部位によって構成され、ステップS116においては、タッチした部位が決定される。
【0104】
図9は、犬オブジェクト50が複数の部位によって構成される様子を示す図である。図9に示すように、犬オブジェクト50は、複数の部位によって構成され、例えば、部位151は頭部を形成し、部位155は犬の後ろ半身を形成する。犬オブジェクト情報データ74には、各部位に関する情報が含まれる。各部位の形状は、例えば球や円柱、カプセル状(例えば図9の部位155)であったりする。より具体的には、各部位は線分(ボーン)によって表わされ、当該線分からの距離が定められることによって、各部位は定義される。図10は、後ろ半身の部位155の詳細を示す図である。図10に示すように、部位155は、点155bおよび点155cを結ぶ線分155aによって表わされる。犬オブジェクト情報データ74のうちの部位155に関する情報には、線分155aの位置と長さ(点155bおよび点155cの3次元仮想空間における座標値)、および、線分155aからの距離に関する情報が含まれる。
【0105】
情報処理部31は、犬オブジェクト情報データ74を参照して、3次元指示位置Pと最も近い線分(ボーン)を検索することにより、タッチされた部位を決定する。次に、情報処理部31は、ステップS117の処理を実行する。
【0106】
ステップS117において、情報処理部31は、3次元指示位置Pにおける法線および回転角を算出する。具体的には、情報処理部31は、3次元指示位置Pを通り、タッチされた部位の表面に垂直な線を算出する。
【0107】
図11Aは、タッチされた部位155を正面から見た図であり、部位155の3次元指示位置Pにおける法線ベクトルを示す図である。また、図11Bは、部位155を図11Aの矢印方向から見た図であり、部位155の3次元指示位置Pにおける法線ベクトルを示す図である。図11Aおよび図11Bに示すように、情報処理部31は、3次元指示位置Pから線分155aに下ろした垂線の足を算出し、当該垂線の足から3次元指示位置Pに向かうベクトルを法線ベクトルとして算出する。このようにして算出される法線ベクトルは、部位155の表面に垂直なベクトルである。なお、タッチされた部位の3次元指示位置Pにおける法線を算出する方法は上記に限らずどのような方法でもよい。
【0108】
また、ステップS117において、情報処理部31は、3次元指示位置Pに基づいて、カーソル60の回転角を算出する。ここで算出されるカーソル60の回転角は、法線ベクトル周りの回転を示す角度である。カーソル60の回転角は、タッチされた部位を基準とした3次元指示位置Pの相対的な位置によって定められる。図12は、部位155がタッチされた場合において、3次元指示位置Pが部位155の中のどの領域に存在するかによって回転角が定められることを示す図である。図12に示すように、例えば、部位155の上半分がタッチされた場合、カーソル60の回転角は0度に設定される。また、部位155の下半分がタッチされた場合、カーソル60の回転角は180度に設定される。
【0109】
法線および回転角を算出した後、情報処理部31は次にステップS118の処理を実行する。
【0110】
ステップS118において、情報処理部31は、ステップS117で算出した法線および回転角に基づいて、カーソル60の仮想空間における姿勢を決定する。具体的には、情報処理部31は、ステップS117で算出した法線に対して垂直になるようにカーソル6
0を仮想空間に配置し、ステップS117で算出した回転角で当該カーソル60を法線周りに回転させる。そして、情報処理部31は、決定した姿勢をカーソルデータ75としてRAMに保存する。このようにしてカーソル60の姿勢が決定されることによって、カーソル60が上側LCD22に表示された場合、カーソル60はユーザがタッチした部位の表面に沿うようにして(掌が部位の表面に接触するようにして)表示される。情報処理部31は、次にステップS119の処理を実行する。
【0111】
ステップS119において、情報処理部31は、カーソル60を3D表示に設定する。具体的には、情報処理部31は、カーソル60の表示モードを示すデータを3D表示に設定して、RAMに記憶する。後述する上側LCD22の表示処理(ステップS103)が行われることによって、カーソル60が上側LCD22に立体表示される。この場合において、カーソル60は、タッチした部位の表面に沿うようにして表示され、例えば、タッチした部位が上側LCD22の画面に対して手前方向に表示される場合は、カーソル60も画面の手前方向に位置するように表示される。ステップS119の処理の後、情報処理部31は、図8に示すフローチャートの処理を終了する。
【0112】
一方、ステップS120において、情報処理部31は、カーソル60を2D表示に設定する。具体的には、情報処理部31は、カーソル60の表示モードを示すデータを2D表示に設定して、RAMに記憶する。後述する上側LCD22の表示処理(ステップS103)が行われることによって、カーソル60が上側LCD22に表示される。
【0113】
図13は、タッチパネル13がタッチを検出した場合において、犬オブジェクト50がタッチされなかったときの画面の一例を示す図である。図13に示すように、犬オブジェクト50のシルエット画像50Bの表示領域とは異なる領域がタッチされた場合、そのタッチ位置T(指示位置Q)に対応する上側LCD22上の位置にカーソル60が表示される。ここで、カーソル60はビルボード処理が行われて、平面的な矢印形状のカーソルとして表示される。また、カーソル60は、上側LCD22の画面上に位置するように表示される(すなわち、左目用画像および右目用画像が上側LCD22に表示された場合、左目用画像の中のカーソル60の表示位置と右目用画像の中のカーソル60の表示位置とが一致する)。ステップS120の処理の後、情報処理部31は、図8に示すフローチャートの処理を終了する。
【0114】
図7に戻り、情報処理部31は、ステップS101の処理の後、ステップS102の処理を実行する。
【0115】
ステップS102において、情報処理部31は、犬オブジェクト50の動作を決定する。具体的には、情報処理部31は、ステップS101で取得されたタッチ位置T(指示位置Q)に基づいて、犬オブジェクト50に対して行われた操作を判定し、判定結果に応じて、犬オブジェクト50の動作を決定する。次に、情報処理部31は、ステップS103の処理を実行する。
【0116】
ステップS103において、情報処理部31は、上側LCD22の表示処理を行う。具体的には、情報処理部31は、ステップS102の決定に応じて犬オブジェクト50を動作させる。さらに、情報処理部31は、ステップS101のカーソル設定処理の結果に応じてカーソル60を仮想空間に配置する。例えば、カーソル設定処理において、カーソルを3D表示にする設定が行われた場合(すなわち、ステップS119の処理が行われた場合)、ステップS115で算出された3次元指示位置Pに、ステップS118において決定された姿勢でカーソルオブジェクト60を仮想空間に配置する。そして、情報処理部31は、仮想空間に設定された仮想ステレオカメラ(左右の仮想カメラ;第1および第2のカメラ)で犬オブジェクト50、ボールオブジェクト51、および、カーソルオブジェク
ト60を撮像する。これにより、犬オブジェクト50、ボールオブジェクト51、および、カーソルオブジェクト60を含む仮想空間を撮像した左目用画像と右目用画像とが生成される。そして、情報処理部31は、生成した左目用画像および右目用画像を上側LCD22に出力する。次に、情報処理部31は、ステップS104の処理を実行する。
【0117】
ステップS104において、情報処理部31は、下側LCD12の表示処理を行う。具体的には、情報処理部31は、上記仮想ステレオカメラの左右の仮想カメラの中間の位置に設定された仮想カメラ(第3の仮想カメラ)で犬オブジェクト50を撮像する。ここで、犬オブジェクト50はシルエット表示に設定され、犬オブジェクト50以外のボールオブジェクト51およびカーソルオブジェクト60は、非表示に設定される。これにより、下側LCD12には、犬オブジェクト50のシルエット画像50Bのみが表示される。より具体的には、情報処理部31は、仮想カメラ(第3の仮想カメラ)のビュー行列を用いてXYZ座標系で表された犬オブジェクト50をビュー座標変換し、さらに射影行列を用いて射影変換する。これにより、犬オブジェクト50を第3の仮想カメラで撮像した画像(図4および図5に示すシルエット画像50B)が生成される。また、情報処理部31は、当該画像を生成することによって得られる深度値(Z値)を深度値データ73としてRAMに記憶する。そして、情報処理部31は、生成した画像を下側LCD12に出力する。なお、第3の仮想カメラは、必ずしも仮想ステレオカメラの左右の仮想カメラの中間に設定される必要はなく、左右の仮想カメラの間の任意の位置に設定されてもよい。以上で、図7に示すフローチャートの説明を終了する。
【0118】
なお、処理の順番は図7に示すものに限らず、例えば、上側LCDおよび下側LCDの表示処理の後に、カーソル設定処理が行われてもよい。また、上記では、下側LCD12に既に表示された画像の深度値を用いて、カーソル60が仮想空間に設定されたが、カーソル60を仮想空間に設定するために、上記第3の仮想カメラを用いて仮想空間を撮像することによって画像および深度値を生成してもよい。すなわち、カーソル設定処理を行う前に第3の仮想カメラで仮想空間を撮像し、当該撮像した画像と深度値とを用いて、カーソル60を設定してもよい。そして、カーソル60を仮想空間に設定した後、再び第3の仮想カメラで仮想空間を撮像して、下側LCD12に当該撮像した画像を表示してもよい。
【0119】
以上のように、本実施形態では、タッチパネル13によってタッチ位置Tを検出し、タッチ位置Tに対応する画像上の指示位置Qと、当該指示位置Qの深度値とを用いて、仮想空間における3次元指示位置Pが求められる。そして、当該3次元指示位置Pにカーソル60が配置される。また、カーソル60の姿勢は、タッチされた部位の3次元指示位置Pにおける法線に基づいて設定される。これにより、指示位置Qに対応する仮想空間上の位置にカーソル60を配置することができる。
【0120】
本実施形態においては、下側LCD12の表示処理において算出される深度値を用いて、仮想空間における3次元指示位置Pが算出されるため、複雑な計算をすることなく容易にタッチ位置Tに対応する3次元仮想空間の位置を求めることができる。例えば、タッチパネル13が検出したタッチ位置Tに対応する3次元仮想空間の位置を求める場合、幾何学的な計算によって当該3次元空間の位置を求めることが考えられる。すなわち、タッチ位置Tから仮想カメラの撮像方向に伸びる3次元直線を算出し、当該3次元直線が犬オブジェクト50の各部位と接触するか否かを判定する。そして、3次元直線が接触する部位が存在する場合、その部位と3次元直線とが交わる点が、タッチ位置Tに対応する3次元仮想空間の位置として求められる。しかしながら、このような幾何学的方法では、計算が複雑になり、処理負荷が高くなる。例えば、部位と部位との接続部分がタッチされた場合、3次元指示位置Pが正確に求められないと、カーソル60が画面に表示されたときに部位によって隠れたりすることがある。このため、3次元指示位置Pを正確に求める必要が
あるが、幾何学的方法では3次元指示位置Pを正確に求めようとすればするほど、仮想モデル(犬オブジェクト)の形状を厳密に定義する必要がある。従って、幾何学的方法では3次元指示位置Pを正確に求めようとすればするほど、より複雑な計算を行う必要があり、処理負荷が高くなる。一方、本実施形態による方法では、表示処理において得られる深度値を用いるため、特別な計算を要することなく、タッチパネル13が検出したタッチ位置Tに対応する3次元空間の3次元指示位置Pを正確に求めることができる。また、3次元指示位置Pは、既に表示された画像における指示位置Qと当該画像の指示位置Qの深度値とを用いて算出されるため、算出される3次元指示位置Pはタッチされた部位のうちの画面に表示された部分になる。このため、本実施形態に係る方法を用いて3次元指示位置Pを算出し、3次元指示位置Pにカーソル60を配置して表示すると、当該カーソル60は部位の表面に表示される。
【0121】
また、本実施形態では、カーソル60は、タッチした部位の表面に沿うようにして表示される。すなわち、本実施形態では、3次元指示位置Pにおける犬オブジェクト50の部位の法線に基づいて、カーソル60の姿勢が決定される。カーソル60は、指示された犬オブジェクト50の部位の表面に沿うようにして3次元の仮想空間に配置され、表示される。このため、犬オブジェクト50に触れるような感覚をユーザに与えることができる。
【0122】
(変形例)
なお、本実施形態では、下側LCD12に犬オブジェクト50のシルエット画像を表示し、上側LCD22に犬オブジェクト50の立体視画像を表示した。他の実施形態では、上側LCD22には立体視画像ではなく、平面画像が表示されてもよい。また、下側LCD12には、シルエット画像ではなく上側LCD22と同じ画像が表示されてもよい。
【0123】
また、本実施形態では、下側LCD12に表示された画像の深度値を用いて、仮想空間の3次元指示位置Pを算出した。他の実施形態では、上側LCD22に表示された左右の画像のうちの何れかの画像の深度値を用いて、3次元指示位置Pが算出されてもよい。
【0124】
また、本実施形態では、下側LCD12に表示された画像の画素毎の深度値が格納されるとした。他の実施形態では、画素毎に深度値が格納される必要はなく、複数の画素によって構成される部分領域(例えば、4つの画素によって構成される四角形の小領域)毎に深度値が格納されてもよい。
【0125】
また、他の実施形態では、2画面の構成ではなく、1画面の構成であってもよい。例えば、表示画面に犬オブジェクト50の立体視画像(又は平面画像)を表示し、タッチパネル13とは異なる位置指示手段(例えば、タッチパッドやマウス等)を用いて当該画像(画面)上の位置を指示してもよい。あるいは、1画面の構成において当該画面上にタッチパネル(位置指示手段)が設けられて、当該画面に立体視画像が表示されてもよい。この場合において、位置指示手段によって指示された画像(左右何れかの画像、又は、左右の仮想カメラの間の仮想カメラで撮像した画像)上の指示位置と、当該指示位置の深度値とに基づいて、3次元の仮想空間における3次元指示位置が算出される。そして、算出した3次元指示位置にカーソルオブジェクト60を配置し、当該カーソルオブジェクト60を仮想カメラで撮像することによって、上側LCD22にカーソルオブジェクト60を表示させる。
【0126】
また、ゲーム装置10は1画面で構成され、当該画面が2つの領域に分割されてもよい。例えば、画面の一方の領域に犬オブジェクト50のカラー画像(立体視画像であってもよいし、立体視画像でなくてもよい)が表示され、画面の他方の領域に犬オブジェクト50のシルエット画像が表示されてもよい。そして、ユーザは他方の領域に表示されたシルエット画像上を指示してもよい。
【0127】
また、本実施形態では、犬オブジェクト50の複数の部位のうち指示された部位の法線を算出し、当該法線と垂直になるように手の形をしたカーソルオブジェクト60が配置された。そして、指示された部位における位置(当該部位を基準とした3次元指示位置の相対位置)に応じてカーソルオブジェクト60が法線周りに回転された。他の実施形態では、カーソルオブジェクト60の回転角は、例えばカーソル60の移動方向等を考慮して定められてもよい。例えば、カーソル60が画面の左右方向に移動している場合、カーソル60を法線周りに90度回転させてもよい。
【0128】
また、他の実施形態では、犬オブジェクト50に限らず、(1以上の部分によって構成される)任意のゲームオブジェクトが画面に表示され、当該ゲームオブジェクトをカーソル60で操作(指示)してもよい。
【0129】
また、本実施形態では、ユーザによって指示された位置を示すカーソル60が表示された。他の実施形態では、カーソル60に限らず任意のオブジェクトが仮想空間に配置されて表示されてもよい。すなわち、ユーザによって指示された位置と当該指示位置の深度値とに基づいて3次元指示位置が算出され、当該算出された3次元指示位置に任意のオブジェクトが配置されてもよい。
【0130】
また、他の実施形態では、上述した表示制御方法は、ゲーム装置に限らず任意の電子機器、例えば、PDA(Personal Digital Assistant)や高機能携帯電話、パーソナルコンピュータ等に適用されてもよい。
【0131】
また、他の実施形態では、携帯型ゲーム装置に限らず、画面上の位置を指示する入力装置を備える据置型のゲーム装置であってもよい。当該ゲーム装置は、テレビジョン受像器(テレビと称する)等に映像を表示し、当該テレビ画面上の位置を指示するための入力装置を備える。入力装置は、例えばテレビの周辺に設置されたマーカ部が発する赤外光を受光することで、ユーザによって指示されたテレビ画面上の位置を検出する。あるいは、入力装置が赤外光を発し、テレビの周辺に設置された受光部が入力装置からの赤外光を受光することで、ユーザによって指示された位置をゲーム装置が検出してもよい。このように、入力装置を用いてユーザによって指示された画面上の位置と、当該位置の深度値(画面に表示された画像の深度値)とを用いて、仮想空間における3次元位置が算出され、当該3次元位置にオブジェクトが配置されてもよい。
【0132】
また、本実施形態では、表示装置として裸眼で立体視画像を表示可能なLCDが用いられた。他の実施形態では、時分割方式や偏向方式、アナグリフ方式(赤青眼鏡方式)などの眼鏡を用いて立体表示を行うような場合でも、本発明は適用可能である。
【0133】
また、他の実施形態では、有線や無線等で通信可能に接続された複数の情報処理装置が各処理を分担して処理することにより、上述した表示制御方法を実現する表示制御システムとして構築されてもよい。例えば、ユーザによって用いられる位置の指示する位置指示手段が情報処理装置と分離された構成であって、当該位置指示手段が情報処理装置に無線等で接続されてもよい。また、情報処理装置と表示装置が分離された構成で、互いに接続されてもよい。
【0134】
また、上述したゲーム処理はオンラインゲームにおいて適用されてもよい。例えば、表示装置と、当該表示装置の画面上の位置を指示する位置指示手段(タッチパネルやマウス等)とが端末に接続され、当該端末とサーバとがインターネットで接続されて、上述したゲームが行われてもよい。このようなオンラインゲームにおいては、端末とサーバとで処理を分担することによってゲームが進行するが、どのように処理を分担してもよい。例え
ば、サーバはゲーム空間を構築し、当該ゲーム空間における犬オブジェクト50の位置がサーバ上で管理されてもよい。ユーザは、表示装置に表示された画像を見ながら、位置指示手段を用いて、当該表示装置の画面上の位置を指示する。例えば、端末は、位置指示手段が検出した位置(タッチ位置T)に基づいて画面に表示された画像上の位置(指示位置Q)と当該位置における深度値とを取得し、画像上の位置と深度値とを含む情報をサーバに送信してもよい。サーバは当該情報に基づいて、仮想空間の3次元位置を算出してカーソルオブジェクト60を仮想空間に設定してもよい(カーソル60の位置と姿勢を設定する)。次に、サーバは、犬オブジェクト50を動作させて、仮想空間における位置及び姿勢を変化させるとともに、当該犬オブジェクトの位置及び姿勢に関する情報と、カーソルオブジェクト60の位置及び姿勢に関する情報とを端末に送信してもよい。端末は、これらの情報に基づいて、犬オブジェクトとカーソルオブジェクトとを仮想空間に配置して、仮想カメラで仮想空間を撮像し、表示装置に画像を表示させてもよい。
【0135】
また、上記実施形態においては、ゲーム装置10の情報処理部31が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置10が備える専用回路によって行われてもよい。
【0136】
また、上記ゲームプログラム(情報処理プログラム)は、上記メモリに限らず、光ディスクや磁気ディスク等、コンピュータ読み取り可能な記憶媒体に記憶されてゲーム装置10に提供されてもよい。また、例えば、ネットワーク上のサーバのRAM(記憶媒体)に上記プログラムが記憶され、ゲーム装置10が当該ネットワークに接続されて、当該プログラムがゲーム装置10に提供されてもよい。
【符号の説明】
【0137】
10 ゲーム装置
11 下側ハウジング
12 下側LCD
13 タッチパネル
14 操作ボタン
15 アナログスティック
16 LED
21 上側ハウジング
22 上側LCD
23 外側撮像部
23a 外側撮像部(左)
23b 外側撮像部(右)
24 内側撮像部
25 3D調整スイッチ
26 3Dインジケータ
28 タッチペン
31 情報処理部
311 CPU
312 GPU
32 メインメモリ
50 犬オブジェクト
51 ボールオブジェクト
60 カーソル

【特許請求の範囲】
【請求項1】
表示制御装置のコンピュータにおいて実行される表示制御プログラムであって、
3次元の仮想空間を仮想カメラで撮像することによって深度値が設定された画像を生成する画像生成手段と、
位置指示手段を用いてユーザによって指示された前記画像上の指示位置における前記画像の深度値を取得する取得手段と、
前記取得手段によって取得された前記画像の深度値に基づいて、前記仮想カメラから前記仮想空間を見た場合の前記仮想空間における奥行き方向の位置を算出する算出手段と、
前記算出手段によって算出された奥行き方向の位置にオブジェクトを設定するオブジェクト設定手段と、
前記オブジェクト設定手段によって設定されたオブジェクトを含む仮想空間を撮像した画像を表示領域に表示させる表示制御手段として、前記コンピュータを機能させる、表示制御プログラム。
【請求項2】
前記算出手段は、前記画像上の指示位置と、当該指示位置における前記画像の深度値とに基づいて、前記仮想空間における3次元指示位置を算出し、
前記オブジェクト設定手段は、前記算出手段によって算出された3次元指示位置に前記オブジェクトを設定する、請求項1に記載の表示制御プログラム。
【請求項3】
前記算出手段は、前記画像上の指示位置に基づいて前記仮想カメラから前記仮想空間を見た場合の上下左右方向の前記仮想空間における位置を算出し、前記画像の深度値に基づいて前記仮想カメラから前記仮想空間を見た場合の奥行き方向の前記仮想空間における位置を算出することにより、前記仮想空間における3次元指示位置を算出する、請求項2に記載の表示制御プログラム。
【請求項4】
前記オブジェクトは、ユーザによって指示された位置を示す指示オブジェクトである、請求項2又は3に記載の表示制御プログラム。
【請求項5】
前記仮想空間には表示対象となる第2オブジェクトが配置され、
前記画像生成手段は、前記第2オブジェクトを含む仮想空間を仮想カメラで撮像することによって画像を生成し、
前記オブジェクト設定手段は、前記第2オブジェクトが表示された領域内に前記指示位置が存在する場合、前記3次元指示位置に基づいて前記指示オブジェクトの姿勢を決定し、当該決定した姿勢で前記仮想空間に前記指示オブジェクトを設定する、請求項4に記載の表示制御プログラム。
【請求項6】
前記第2オブジェクトは複数の部位によって構成され、
前記指示位置に基づいて、前記第2オブジェクトの複数の部位のうちの指示された部位を決定する部位決定手段として、前記コンピュータを更に機能させ、
前記オブジェクト設定手段は、前記指示された部位に応じて前記指示オブジェクトの姿勢を決定し、当該決定した姿勢で前記仮想空間に前記指示オブジェクトを設定する、請求項5に記載の表示制御プログラム。
【請求項7】
前記オブジェクト設定手段は、前記3次元指示位置における前記指示された部位の法線に応じて、前記指示オブジェクトの姿勢を決定する、請求項6に記載の表示制御プログラム。
【請求項8】
前記第2オブジェクトの各部位は、点又は線分によって構成されるボーンによって構成され、
前記オブジェクト設定手段は、前記3次元指示位置と前記ボーンとの距離が最短となる前記ボーン上の点から、前記3次元指示位置に向かう法線ベクトルを算出し、当該法線ベクトルに応じて前記指示オブジェクトの姿勢を決定する、請求項7に記載の表示制御プログラム。
【請求項9】
前記指示された部位を基準とした前記3次元指示位置の相対的な位置に応じて、前記指示オブジェクトの回転角を設定する角度設定手段として、前記コンピュータを更に機能させ、
前記オブジェクト設定手段は、前記指示オブジェクトを前記法線周りに前記回転角で回転させて、前記仮想空間に前記指示オブジェクトを設定する、請求項7又は8に記載の表示制御プログラム。
【請求項10】
前記表示制御手段は、前記第2オブジェクトが表示された領域内に前記指示位置が存在するか否かに応じて、前記指示オブジェクトを異なる表示態様で表示させる、請求項5から9の何れかに記載の表示制御プログラム。
【請求項11】
前記算出手段は、
前記第2オブジェクトが表示された領域内に前記指示位置が存在する場合、前記指示位置と当該指示位置における前記画像の深度値とに基づいて、前記仮想空間における3次元指示位置を算出し、
前記第2オブジェクトが表示された領域外に前記指示位置が存在する場合、前記指示位置と一定の深度値とに基づいて、前記仮想空間における3次元指示位置を算出する、請求項5から10の何れかに記載の表示制御プログラム。
【請求項12】
前記表示領域は、立体視表示可能な表示領域であり、
前記画像生成手段は、前記仮想空間を仮想ステレオカメラで撮像することによって左目用画像と右目用画像とを生成し、
前記取得手段は、
前記左目用もしくは右目用画像上の前記指示位置における深度値、又は、
前記仮想ステレオカメラと同じ撮像方向の第3の仮想カメラで前記仮想空間を撮像することによって取得される第3画像上の前記指示位置における深度値を取得し、
前記表示制御手段は、前記オブジェクト設定手段によって設定されたオブジェクトを含む仮想空間を撮像した画像を前記表示領域に立体表示させる、請求項2から11の何れかに記載の表示制御プログラム。
【請求項13】
前記第3の仮想カメラは、前記仮想ステレオカメラの左右の仮想カメラの間に設定され、
前記取得手段は、前記第3画像上の指示位置における前記第3画像の深度値を取得し、
前記算出手段は、前記第3画像上の指示位置と前記第3画像の深度値とに基づいて、前記3次元指示位置を算出する、請求項12に記載の表示制御プログラム。
【請求項14】
前記第3の仮想カメラは、前記仮想ステレオカメラの左右の仮想カメラの中間に設定される、請求項13に記載の表示制御プログラム。
【請求項15】
前記位置指示手段は、前記表示領域とは異なる第2の表示領域上に設けられ、当該第2の表示領域上への接触位置を検出し、
前記取得手段は、前記位置指示手段が検出した接触位置に対応する前記第2の表示領域に表示された画像上の指示位置における深度値を取得し、
前記表示制御手段は、前記オブジェクト設定手段によって設定されたオブジェクトを含む仮想空間を撮像した画像を前記表示領域に表示させるとともに、前記仮想空間を撮像し
た画像を前記第2の表示領域に表示させる、請求項2から14の何れかに記載の表示制御プログラム。
【請求項16】
前記位置指示手段は、前記表示領域とは異なる第2の表示領域上に設けられ、当該第2の表示領域上への接触位置を検出し、
前記仮想ステレオカメラと同じ撮像方向の第3の仮想カメラで前記仮想空間を撮像することによって取得される第3画像を生成する第3画像生成手段として、前記コンピュータを更に機能させ、
前記取得手段は、前記位置指示手段が検出した接触位置に対応する前記第3画像上の指示位置における深度値を取得し、
前記表示制御手段は、前記画像生成手段が生成した左目用画像と右目用画像とを前記表示領域に表示させるとともに、前記第3画像生成手段が生成した前記第3画像を前記第2の表示領域に表示させる、請求項12から14の何れかに記載の表示制御プログラム。
【請求項17】
3次元の仮想空間を仮想カメラで撮像することによって深度値が設定された画像を生成する画像生成手段と、
位置指示手段を用いてユーザによって指示された前記画像上の指示位置における前記画像の深度値を取得する取得手段と、
前記取得手段によって取得された前記画像の深度値に基づいて、前記仮想カメラから前記仮想空間を見た場合の前記仮想空間における奥行き方向の位置を算出する算出手段と、
前記算出手段によって算出された奥行き方向の位置にオブジェクトを設定するオブジェクト設定手段と、
前記オブジェクト設定手段によって設定されたオブジェクトを含む仮想空間を撮像した画像を表示領域に表示させる表示制御手段とを備える、表示制御装置。
【請求項18】
3次元の仮想空間を仮想カメラで撮像することによって深度値が設定された画像を生成する画像生成手段と、
位置指示手段を用いてユーザによって指示された前記画像上の指示位置における前記画像の深度値を取得する取得手段と、
前記取得手段によって取得された前記画像の深度値に基づいて、前記仮想カメラから前記仮想空間を見た場合の前記仮想空間における奥行き方向の位置を算出する算出手段と、
前記算出手段によって算出された奥行き方向の位置にオブジェクトを設定するオブジェクト設定手段と、
前記オブジェクト設定手段によって設定されたオブジェクトを含む仮想空間を撮像した画像を表示領域に表示させる表示制御手段とを備える、表示制御システム。
【請求項19】
3次元の仮想空間を仮想カメラで撮像することによって深度値が設定された画像を生成する画像生成ステップと、
位置指示手段を用いてユーザによって指示された前記画像上の指示位置における前記画像の深度値を取得する取得ステップと、
前記取得ステップで取得された前記画像の深度値に基づいて、前記仮想カメラから前記仮想空間を見た場合の前記仮想空間における奥行き方向の位置を算出する算出ステップと、
前記算出ステップで算出された奥行き方向の位置にオブジェクトを設定するオブジェクト設定ステップと、
前記オブジェクト設定ステップで設定されたオブジェクトを含む仮想空間を撮像した画像を表示領域に表示させる表示制御ステップとを含む、表示制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−141939(P2012−141939A)
【公開日】平成24年7月26日(2012.7.26)
【国際特許分類】
【出願番号】特願2011−9869(P2011−9869)
【出願日】平成23年1月20日(2011.1.20)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】