説明

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

【課題】ユーザに表示対象を直接操作しているような感覚を与えることが可能な表示制御プログラム、表示制御装置、及び、表示制御システムを提供する。
【解決手段】立体画像表示装置11の画面には、ユーザによって操作可能な子供オブジェクト41とユーザによって操作不可能な家具オブジェクト44とを含む仮想空間を撮像した画像が立体視可能に表示される。一方、平面画像表示装置12の画面には、同じの仮想空間を同じ方向から撮像した画像が平面表示される。平面画像表示装置12の画面には、立体画像表示装置11に表示された子供オブジェクト41をシルエット表示した子供オブジェクト画像121が表示される。ユーザは、立体画像表示装置11に表示された子供オブジェクト41を見ながら、平面画像表示装置12の画面上をタッチすることにより、子供オブジェクト41を操作することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示対象を2以上の表示領域に表示して、当該表示対象に対してユーザが操作を行うことが可能な表示制御プログラム、表示制御装置、表示制御システム、及び、表示制御方法に関する。
【背景技術】
【0002】
従来、2以上の表示領域を有し、一方の表示領域に表示対象を表示しつつ、他方の表示領域に操作用の表示を行って、当該操作用の表示に対する操作によって表示対象を操作する表示制御プログラムが存在する。例えば、特許文献1に記載のゲーム装置では、上画面にゲーム空間の一部を斜めから見た画像を表示するとともに、下画面には当該ゲーム空間の全体を上方から見た画像を表示している。そして、プレイヤは下画面に対して操作を行うことで、ゲームをプレイする。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−218779号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載のゲーム装置では、下画面で操作した結果が上画面で表示されるものであって、ユーザに上画面に表示されたオブジェクトを直接操作しているような感覚を与えるには十分でない場合がある。すなわち、特許文献1に記載の装置では、ユーザは下画面に表示された操作用の画面を見ながら当該操作用画面を操作し、上画面にはその操作結果としてオブジェクトが動作する様子が表示される。このため、ユーザは、上画面に表示されたオブジェクトを直接操作しているという実感が得難い。
【0005】
それ故、本発明の目的は、ユーザに表示対象を直接操作しているような感覚を与えることが可能な表示制御プログラム、表示制御装置、表示制御システム、及び、表示制御方法を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【0007】
本発明は、表示制御装置のコンピュータにおいて実行される表示制御プログラムである。当該表示制御プログラムは、上記コンピュータを、第1表示制御手段と、第2表示制御手段と、制御手段として機能させる。第1表示制御手段は、第1表示領域に所定の表示対象を所定の方向から見た第1画像を表示する。第2表示制御手段は、上記第1表示領域に上記所定の表示対象が表示されている間、上記第1表示領域とは異なる第2表示領域に上記所定の表示対象を上記所定の方向と略同じ方向から見た第2画像を表示する。制御手段は、ユーザによる上記第2表示領域上の位置の指示を検出する指示位置検出手段が検出した指示位置に基づいて、上記第1画像および上記第2画像に含まれる上記所定の表示対象を制御する。
【0008】
ここで、「略同じ方向」とは、完全に同一の方向であってもよいし、所定の角度だけ異なる方向であってもよい。
【0009】
上記によれば、所定の表示対象を略同じ方向から見た画像が第1表示領域および第2表示領域に表示される。ユーザは、第2表示領域上の位置を指示することによって第1表示領域および第2表示領域に表示される所定の表示対象を操作することができる。これにより、ユーザは、第1表示領域に表示された第1画像に含まれる所定の表示対象を見ながら、当該所定の表示対象を第2表示領域上で操作することができる。ユーザは、例えば、上記所定の表示対象の形状を変化させたり、所定の表示対象を移動させたり、所定の表示対象の姿勢を変化させたりすることができる。このため、ユーザは、所定の表示対象を直接操作している感覚を得ることができる。
【0010】
また、本発明では、上記第2画像は、上記第1画像と略同一の撮像範囲を撮像した画像であってもよい。ここで、「略同一の撮像範囲」とは、略同一の空間の範囲を撮像した画像であり、一方の範囲が他方の範囲に対して30%程度(縦及び/又は横方向に関して)大きい範囲であってもよい。
【0011】
上記によれば、第1表示領域および第2表示領域には略同一の撮像範囲を略同一の方向から撮像した画像が表示される。これにより、ユーザは、第1表示領域に表示された所定の表示対象と第2表示領域に表示された表示対象を容易に対応付けることができ、第1画像に含まれる所定の表示対象を見ながら、当該所定の表示対象を直接操作している感覚を得ることができる。
【0012】
また、本発明では、上記第2画像は、上記第1画像と略同じ大きさの画像であってもよい。ここで、「略同じ大きさの画像」とは、一方の画像に対して他方の画像が30%程度(縦及び/又は横方向に関して)拡大された画像であってもよい。
【0013】
上記によれば、第1表示領域および第2表示領域には略同じ大きさの画像が表示される。これにより、ユーザは、第1表示領域に表示された所定の表示対象を見ながら第2表示領域上で上記所定の表示対象を容易に操作することができる。
【0014】
また、本発明では、上記第2画像に含まれる上記所定の表示対象は、上記第1画像に含まれる上記所定の表示対象と略同じ大きさであってもよい。ここで、「略同じ大きさ」とは、一方の画像に含まれる上記所定の表示対象が、他方の画像に含まれる当該所定の表示対象に対して、30%程度(縦及び/又は横方向に関して)大きくてもよい。
【0015】
上記によれば、第1表示領域および第2表示領域には略同じ大きさの上記所定の表示対象が表示される。これにより、ユーザは、第1表示領域に表示された表示対象を見ながら第2表示領域上で上記所定の表示対象を容易に操作することができる。
【0016】
また、本発明では、上記第2画像は、上記第1画像が撮像された位置と略同一の位置から上記所定の表示対象を見た画像である。
【0017】
上記によれば、第1表示領域および第2表示領域には略同一の位置であって略同一の方向から撮像した画像が表示される。これにより、例えば、第1表示領域の右側に上記所定の表示対象が表示される場合は、第2表示領域も同様に右側に上記所定の表示対象が表示される。従って、ユーザは、第1表示領域に表示された所定の表示対象と第2表示領域に表示された表示対象を容易に対応付けることができ、第1画像に含まれる所定の表示対象を見ながら、当該所定の表示対象を直接操作している感覚を得ることができる。
【0018】
また、本発明では、上記第2画像は、上記第1画像と比較して、上記所定の表示対象を簡略表示した画像であってもよい。ここで、「簡略表示」とは、上記所定の表示対象の色を減色させたり、上記所定の表示対象の輪郭のみを表示したり、上記所定の表示対象を所定のパターンの点や線で塗りつぶしたりして、上記第1画像に表示された所定の表示対象よりも簡略して表示することである。
【0019】
上記によれば、第2表示領域には、所定の表示対象を簡略して表示することができる。これにより、ユーザに第1表示領域に表示された所定の表示対象を注目させることができる。
【0020】
また、本発明では、上記第1画像は、上記所定の表示対象を多色で表示した画像であり、上記第2画像は、上記第1画像と比較して、上記所定の表示対象を減色して表示した画像であってもよい。
【0021】
上記によれば、第2表示領域には、所定の表示対象を減色して表示することができる。これにより、第2表示領域に表示された所定の表示対象を第1表示領域に表示された所定の表示対象よりも目立たない表示にすることができ、ユーザに第1表示領域に表示された所定の表示対象を注目させることができる。
【0022】
また、本発明では、上記第2画像は、上記所定の表示対象を単色にして表示した画像であってもよい。
【0023】
上記によれば、第2表示領域には、所定の表示対象を単色にして表示することができる。これにより、第2表示領域に表示された所定の表示対象を第1表示領域に表示された所定の表示対象よりも目立たない表示にすることができ、ユーザに第1表示領域に表示された所定の表示対象をより注目させることができる。
【0024】
また、本発明では、上記指示位置検出手段は、上記第2表示領域上に設けられ、上記第2表示領域上への接触位置を、上記指示位置として検出してもよい。
【0025】
上記によれば、ユーザは、第2表示領域への接触によって当該第2表示領域上の位置の指示をすることができる。例えば、指示位置検出手段としてタッチパネルが用いられてもよい。これにより、ユーザは、第2表示領域への接触によって上記所定の表示対象を操作する場合においても、第1表示領域に表示された所定の表示対象を見ながら容易に操作することができる。すなわち、ユーザは、第2表示領域に表示された所定の表示対象をスティックや指で接触して操作すると、第2表示領域に表示された所定の表示対象をスティックや指等で隠してしまうため、第2表示領域にのみ当該所定の表示対象が表示されると操作し難い場合がある。しかしながら、第1表示領域にも上記所定の表示対象が表示されるため、ユーザは、第1表示領域に表示された所定の表示対象を見ながら、当該所定の表示対象を第2表示領域上で容易に操作することができる。
【0026】
また、本発明では、上記第1表示制御手段および上記第2表示制御手段は、仮想空間に存在する上記所定の表示対象を仮想カメラで撮像した第1画像および第2画像を、上記第1表示領域および上記第2表示領域にそれぞれ表示してもよい。
【0027】
上記によれば、仮想空間に存在する上記所定の表示対象を第1表示領域および第2表示領域に表示することができる。
【0028】
上記第1表示制御手段は、上記第1画像として、仮想空間に存在する複数の表示対象を上記所定の方向から見た画像を表示してもよい。この場合において、上記表示制御プログラムは、上記複数の表示対象のうち、所定の条件を満たす少なくとも1つの表示対象を選出する表示対象選出手段、として上記コンピュータをさらに機能させる。そして、上記第2表示制御手段は、上記第2画像として、上記複数の表示対象のうち上記表示対象選出手段によって選出された表示対象を上記表示対象選出手段によって選出されなかった表示対象とは異なる表示態様で表示した画像を、上記第2表示領域に表示する。
【0029】
上記によれば、複数の表示対象のうち、選出手段で選出された表示対象を選出されなかった表示対象とは異なる表示態様で第2表示領域に表示することができる。これにより、例えば、ユーザによって操作可能なオブジェクトを操作不可能なオブジェクトとは異なる色で表示することができる。これにより、ユーザは、例えば、操作可能なオブジェクトを容易に認識することができる。
【0030】
また、本発明では、上記第1表示制御手段は、上記第1画像として、仮想空間に存在する複数の表示対象を上記所定の方向から見た画像を表示してもよい。また、上記表示制御プログラムは、上記コンピュータを、表示対象選出手段としてさらに機能させてもよい。表示対象選出手段は、上記複数の表示対象のうち、所定の条件を満たす少なくとも1つの表示対象を選出する。また、上記第2表示制御手段は、上記第2画像として、上記表示対象選出手段によって選出された表示対象のみを上記所定の方向と略同じ方向から見た画像を表示する。そして、上記制御手段は、上記指示位置検出手段が検出した上記第2表示領域上の指示位置に基づいて、上記第1画像および上記第2画像に含まれる、上記表示対象選出手段によって選出された表示対象の少なくとも1つの表示対象を制御する。
【0031】
上記によれば、仮想空間に存在する複数の表示対象を第1表示領域に表示し、当該複数の表示対象のうち、所定の条件を満たす表示対象を第2表示領域に表示することができる。
【0032】
また、本発明では、上記表示対象選出手段は、上記仮想空間に存在する上記複数の表示対象のうち、ユーザによって操作されることが可能な表示対象のみを選出してもよい。
【0033】
上記によれば、第2表示領域には複数の表示対象のうち、ユーザが操作可能な表示対象のみが表示される。これにより、ユーザは操作可能な表示対象を容易に認識することができ、操作可能な表示対象に対する操作を容易に行うことができる。
【0034】
また、本発明では、上記第2表示制御手段は、上記表示対象選出手段によって選出された表示対象が複数存在する場合、各表示対象の表示態様が異なるようにして上記第2画像を上記第2表示領域に表示する。ここで、表示対象の表示態様とは、色や模様、輪郭、塗りつぶしのパターン等を示す当該表示対象の表示の仕方である。
【0035】
上記によれば、第2表示領域に表示される複数の表示対象は、互いに異なる表示態様で表示される。例えば、一方の表示対象を灰色にし、他方の表示対象を青色にすることができる。また、例えば、一方の表示対象を所定の線のパターンで塗りつぶし、他方の表示対象を当該所定のパターンとは異なるパターンで塗りつぶして表示することができる。これにより、ユーザは、各表示対象を容易に識別することができ、各表示対象に対する操作が容易になる。
【0036】
また、本発明では、上記第2表示制御手段は、上記表示対象選出手段によって選出された表示対象が複数存在する場合、隣り合う2つの表示対象の表示態様が異なるようにして上記第2画像を上記第2表示領域に表示する。
【0037】
上記によれば、第2表示領域に表示される複数の表示対象のうち、隣り合う2つの表示対象は互いに異なる表示態様で表示される。これにより、ユーザは、各表示対象を容易に識別することができ、各表示対象に対する操作が容易になる。
【0038】
また、本発明では、上記表示制御プログラムは、上記コンピュータを、カーソル表示手段としてさらに機能させてもよい。カーソル表示手段は、上記指示位置検出手段が検出した上記第2表示領域上の指示位置に対応した上記第1表示領域上の位置に、ユーザによって指示された位置を示すカーソルを表示する。
【0039】
上記によれば、ユーザが指示した第2表示領域上の位置に対応して、第1表示領域にカーソルを表示することができる。これにより、ユーザは、自身が指示した位置を確認することができ、第1表示領域に表示された所定の操作対象を直接操作している感覚を得ることができる。
【0040】
上記カーソル表示手段は、上記カーソルを上記第1表示領域にのみ表示してもよい。
【0041】
上記によれば、第1表示領域にのみカーソルを表示することができ、例えば、ユーザを第1表示領域に注目させることができる。
【0042】
また、本発明では、上記第2画像には深度値が設定されていてもよい。この場合において、上記表示制御プログラムは、位置算出手段と、カーソル表示手段として、上記コンピュータをさらに機能させる。位置算出手段は、上記第2表示領域上の指示位置と当該指示位置における上記第2画像の深度値とに基づいて、上記仮想空間における位置を算出する。カーソル表示手段は、上記位置算出手段によって算出された位置にカーソルを表示する。
【0043】
上記によれば、画像に設定された深度値に基づいて仮想空間における位置を算出し、当該算出した位置にカーソルを表示することができる。これにより指示位置に対応した仮想空間における位置を正確かつ容易に求めることができ、カーソルを表示することができる。
【0044】
また、本発明では、上記第2表示領域は、上記第1表示領域とは異なる表示方式の表示領域であってもよい。異なる表示方式の表示領域とは、解像度が異なる表示領域であってもよいし、一方が立体表示(立体視で表示)可能な表示領域であり、他方が平面表示の表示領域であってもよい。
【0045】
上記によれば、異なる表示法式の表示領域に上記所定の表示対象を表示することができる。
【0046】
また、本発明では、上記第1表示領域は、立体表示可能な表示領域であってもよい。この場合において、上記第1表示制御手段は、仮想空間内の上記所定の表示対象を上記所定の方向から仮想ステレオカメラで撮影した右目用画像をユーザの右目に、左目用画像を該ユーザの左目に視認させるように上記第1表示領域に表示させることにより、立体視可能な立体画像を上記第1画像として上記第1表示領域に表示する。また、上記第2表示領域は、平面表示可能な表示領域である。上記第2表示制御手段は、上記第1表示領域に上記所定の表示対象が表示されている間、上記所定の方向と略同じ方向から上記所定の表示対象を撮影した平面画像を上記第2画像として上記第2表示領域に表示する。
【0047】
上記によれば、第1表示領域に所定の表示対象を所定の方向から仮想ステレオカメラで見た画像を立体視可能に表示し、第2表示領域に当該所定の表示対象を略同じ方向から見た画像を平面表示することができる。
【0048】
また、本発明では、上記第2画像には深度値が設定されていてもよい。この場合において、上記表示制御プログラムは、位置算出手段として、上記コンピュータをさらに機能させる。位置算出手段は、上記第2表示領域上の指示位置と当該指示位置における上記第2画像の深度値とに基づいて、上記仮想空間における位置を算出する。そして、上記カーソル表示手段は、上記位置算出手段によって算出された位置に上記カーソルを配置し、当該カーソルを上記仮想ステレオカメラで撮像することによって上記カーソルを表示する。
【0049】
上記によれば、画像に設定された深度値に基づいて仮想空間における位置を算出し、当該算出した位置にカーソルを立体表示することができる。
【0050】
また、本発明では、上記表示制御プログラムは、上記コンピュータを、判定手段と、カーソル表示手段としてさらに機能させてもよい。判定手段は、上記指示位置検出手段が検出した第2表示領域上の指示位置が上記所定の表示対象が表示された位置であるか否かを判定する。カーソル表示手段は、判定手段による判定結果が肯定の場合、上記指示位置に対応する上記第1表示領域上の位置であって上記第1表示領域に表示された上記所定の表示対象の表面上に沿うようにして、カーソルを立体表示する。
【0051】
上記によれば、ユーザが第2表示領域上で所定の表示対象を指示した場合、第1表示領域に表示される当該所定の表示対象の表面に沿うようにして、カーソルを表示することができる。これにより、ユーザは、第1表示領域に表示された立体視可能な所定の表示対象を見ながら、当該所定の表示対象の表面に触れているような感覚を得ることができる。
【0052】
また、本発明では、上記カーソル表示手段は、上記判定手段による判定結果が否定の場合、上記判定手段による判定結果が肯定であるときとは異なる表示態様で、上記指示位置に対応する上記第1表示領域上の位置に上記カーソルを表示する。
【0053】
上記によれば、ユーザは、第1表示領域に表示されたカーソルの表示態様によって、第2表示領域に表示された所定の表示対象を指示したか否かを容易に確認することができる。例えば、ユーザが所定の表示対象を指示していない場合は、カーソルの形状を矢印形状とし、ユーザが所定の表示対象を指示している場合は、カーソルの形状を手の形状とすることができる。
【0054】
また、本発明では、上記第2表示制御手段は、上記仮想ステレオカメラの左右の仮想カメラの間に設定された第2の仮想カメラを用いて上記所定の表示対象を撮影した画像を上記第2画像として上記第2表示領域に表示してもよい。
【0055】
上記によれば、上記仮想ステレオカメラの左右の仮想カメラの間に設定された第3の仮想カメラで撮像した画像を第2表示領域に表示することができる。これにより、第1表示領域に表示された立体視可能な立体画像と略同じ見え方の画像であって、平面表示した画像を第2表示領域に表示することができる。
【0056】
また、本発明は、表示制御装置のコンピュータにおいて実行される表示制御プログラムであって、上記コンピュータを第1表示制御手段と、第2表示制御手段と、制御手段として機能させてもよい。第1表示制御手段は、第1表示領域に所定の表示対象を表示する。第2表示制御手段は、上記第1表示領域に上記所定の表示対象が表示されている間、上記第1表示領域に表示される所定の表示対象より表示態様を簡略して、上記所定の表示対象を上記第1表示領域とは異なる第2表示領域に表示する。制御手段は、ユーザによる上記第2表示領域上の位置の指示を検出する位置指示検出手段が検出した指示位置に基づいて、上記第1表示領域および上記第2表示領域に表示された上記所定の表示対象を制御する。
【0057】
上記によれば、第1表示領域に所定の表示対象を表示しつつ、第2表示領域に当該所定の表示対象を簡略して表示することができる。そして、第2表示領域への指示位置に基づいて、所定の表示対象を制御することができる。これにより、例えば、ユーザを第1表示領域に表示される所定の表示対象に注目させつつ、ユーザに第2表示領域上の位置を指示させることができる。
【0058】
また、本発明では、上記表示制御プログラムを実行する表示制御装置の形態で実施されてもよい。また、上記各手段を実現する複数の要素が相互に動作することによって、1つの表示制御システムとして構成されてもよい。当該表示制御システムは、1つの表示制御装置によって構成されてもよいし、複数の装置によって構成されてもよい。
【発明の効果】
【0059】
本発明によれば、所定の表示対象を所定の方向から見た第1画像を第1表示領域に表示し、当該所定の表示対象を略同じ方向から見た第2画像を第2表示領域に表示することができる。そして、第2表示領域上の位置の指示に応じて、第1及び第2表示領域に表示された所定の表示対象を制御することができる。
【図面の簡単な説明】
【0060】
【図1】本発明の一実施形態に係る携帯型のゲーム装置の外観図
【図2】ゲーム装置10の内部構成を示すブロック図
【図3】本実施形態に係るゲームの実行中において、立体画像表示装置11および平面画像表示装置12の画面に表示されるゲーム画像の一例を示した図
【図4】仮想空間に存在する各オブジェクトを仮想ステレオカメラ17で撮像する様子を仮想空間の上方から見た図
【図5】ユーザが平面画像表示装置12に表示された子供オブジェクト画像121をタッチして所定の操作を行った場合に、立体画像表示装置11および平面画像表示装置12に表示される画像が変化する様子を示す図
【図6A】カーソル60の表示の仕方を示す図であり、立体画像表示装置11に表示された子供オブジェクト41の一部位を拡大して正面から見た図
【図6B】子供オブジェクト41の一部位を図6Aの矢印の方向から見た図
【図7】操作可能なオブジェクトが複数存在する場合において立体画像表示装置11および平面画像表示装置12の画面に表示される画像を示す図
【図8】本実施形態に係るゲームにおいて、ユーザがアイテムを使用する場合について示す図
【図9】子供オブジェクト41にアイテム45を持たせた場合に立体画像表示装置11および平面画像表示装置12に表示される画像が変化する様子を示す図
【図10】ゲーム装置10のメインメモリ31のメモリマップを示す図
【図11】本実施形態に係るゲーム処理の詳細を示すメインフローチャート
【図12】3次元タッチ位置判定処理(ステップS3)の詳細を示すフローチャート
【図13】平面画像表示処理(ステップS5)の詳細を示すフローチャート
【図14】平面画像表示装置12および立体画像表示装置11の画面に表示される画像の一例を示す図
【図15】開状態におけるゲーム装置200の外観を示す正面図
【図16】閉状態におけるゲーム装置200の左側面図、正面図、右側面図、および、背面図
【図17】ゲーム装置200の内部構成を示すブロック図
【図18】第2実施形態に係るゲームの実行中において、上側LCD222および下側LCD212の画面に表示されるゲーム画像の一例を示す図
【図19】ユーザが犬オブジェクト50の背中部分をタッチした様子を示す図
【図20】ゲーム装置200のRAM(メインメモリ232等)のメモリマップを示す図
【図21】第2実施形態に係るゲーム処理の詳細を示すメインフローチャート
【図22】カーソル設定処理(ステップS101)の詳細を示すフローチャート
【図23】犬オブジェクト50が複数の部位によって構成される様子を示す図
【図24】後ろ半身の部位155の詳細を示す図
【図25A】タッチされた部位155を正面から見た図であり、部位155の3次元指示位置Pにおける法線ベクトルを示す図
【図25B】部位155を図25Aの矢印方向から見た図であり、部位155の3次元指示位置Pにおける法線ベクトルを示す図
【図26】部位155がタッチされた場合において、3次元指示位置Pが部位155の中のどの領域に存在するかによって回転角が定められることを示す図
【図27】タッチパネル213がタッチを検出した場合において、犬オブジェクト50がタッチされなかったときの画面の一例を示す図
【発明を実施するための形態】
【0061】
(ゲーム装置の説明)
図面を参照して、本発明の一実施形態に係るゲーム装置について説明する。図1は、本発明の一実施形態に係る携帯型のゲーム装置の外観図である。図1において、ゲーム装置10は、立体表示可能な立体画像表示装置11、および、2次元の平面画像を表示可能な平面画像表示装置12を含む。ハウジング13は上側ハウジング13aと下側ハウジング13bとによって構成されている。立体画像表示装置11は上側ハウジング13aに収納され、平面画像表示装置12は下側ハウジング13bに収納される。
【0062】
上側ハウジング13aと下側ハウジング13bとは、ヒンジ部14によって接続されている。上側ハウジング13aと下側ハウジング13bとは、当該ヒンジ部14によって開閉可能(折り畳み可能)に接続されている。
【0063】
立体画像表示装置11は、裸眼で立体画像(立体視可能な画像)を表示可能な液晶表示装置であり、レンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、立体画像表示装置11は、パララックスバリア方式のものとする。立体画像表示装置11は、左目用画像と右目用画像とを用いて、立体感のある画像を表示する。すなわち、立体画像表示装置11は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像を表示することができる。
【0064】
平面画像表示装置12は、平面画像を表示可能な表示装置である。本実施形態では平面画像表示装置12として液晶表示装置を用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用することができる。
【0065】
立体画像表示装置11および平面画像表示装置12の画面は同じ大きさであり、いずれも所定の解像度(例えば、256dot×192dot)を有している。また、任意の解像度のものを利用することができる。
【0066】
平面画像表示装置12の画面上には、指示位置検出装置であるタッチパネル15が装着されている。タッチパネル15としては、例えば抵抗膜方式や光学式(赤外線方式)や静電容量結合式など、任意の方式のものを利用することができる。本実施形態では、タッチパネル15は、抵抗膜方式であるものとする。タッチパネル15は、ユーザがスティック16を用いて平面画像表示装置12の画面上を接触(タッチ)することにより、平面画像表示装置12の画面上の位置を検出する。タッチパネル15が検出する位置は、平面画像表示装置12の画面上の位置と対応している。なお、ユーザは、スティック16に限らず指で画面上の位置を指示することも可能である。本実施形態では、タッチパネル15として、平面画像表示装置12の解像度と同じ解像度(検出精度)のものを利用する。ただし、タッチパネル15の解像度と平面画像表示装置12の解像度とは、必ずしも一致している必要はない。
【0067】
図2は、ゲーム装置10の内部構成を示すブロック図である。図2に示すように、ゲーム装置10は、上述の他、CPU30と、メインメモリ31と、ROM32と、メモリ制御回路33と、保存用データメモリ34と、通信モジュール35とを備えている。これらは電子部品として電子回路基板上に実装されて、下側ハウジング13b(または上側ハウジング13aでもよい)内に収納される。
【0068】
CPU30は、所定のプログラムを実行するための情報処理手段である。本実施形態では、所定のプログラムがゲーム装置10のROM32に記憶されており、CPU30が、当該所定のプログラムを実行することによって、後述するゲーム処理を実行する。
【0069】
CPU30には、メインメモリ31、ROM32、およびメモリ制御回路33が接続される。また、メモリ制御回路33には、保存用データメモリ34が接続される。メインメモリ31は、読み書き可能な半導体メモリである。メインメモリ31には、上記所定のプログラムを一時的に格納する領域、CPU30のワーク領域やバッファ領域が設けられる。すなわち、メインメモリ31は、後述するゲーム処理に用いられる各種データを記憶したり、ROM32に記憶された上記所定のプログラムを記憶したりする。ROM32は、不揮発性のメモリであり、上記所定のプログラムを格納する。保存用データメモリ34は、不揮発性の記憶媒体によって構成されており、例えば、NAND型フラッシュメモリが用いられる。メモリ制御回路33は、CPU30の指示に従って、保存用データメモリ34に対するデータの読み出しおよび書き込みを制御する回路である。
【0070】
なお、CPU30によって実行される上記所定のプログラムは、ROM32に予め記憶されていてもよいし、保存用データメモリ34から取得されてもよいし、通信モジュール35を用いた通信によって他の機器から取得されてもよい。
【0071】
通信モジュール35は、有線又は無線によって他の機器と通信するための機能を有する。通信モジュール35は、例えば、赤外線通信により他の機器と通信するための機能を有する。なお、通信モジュール35は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有してもよし、Bluetooth(ブルートゥース)(登録商標)の技術を用いて、他の機器と通信する機能を有してもよい。また、通信モジュール35は、携帯電話等に用いられる通信方式により移動体通信網に接続する機能を有してもよい。
【0072】
また、CPU30には、タッチパネル15が接続される。タッチパネル15は、図示しないインターフェイス回路に接続され、当該インターフェイス回路は、タッチパネル15からの信号に基づいて、所定の形式のタッチ位置データを生成し、CPU30に出力する。例えば、タッチ位置データは、タッチパネル15の入力面に対して入力が行われた位置の座標を示すデータである。なお、上記インターフェイス回路は、タッチパネル15からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU30は、上記インターフェイス回路を介して、タッチ位置データを取得することにより、タッチパネル15に対して入力が行われた位置を知ることができる。
【0073】
また、立体画像表示装置11及び平面画像表示装置12は、それぞれCPU30に接続される。立体画像表示装置11及び平面画像表示装置12は、それぞれCPU30の指示に従って画像を表示する。上述のように、立体画像表示装置11には立体画像が表示され、平面画像表示装置12には平面画像が表示される。
【0074】
(ゲームの概要)
次に、図3から図9を参照して、本実施形態に係るゲームの概要について説明する。図3は、本実施形態に係るゲームの実行中において、立体画像表示装置11および平面画像表示装置12の画面に表示されるゲーム画像の一例を示した図である。
【0075】
図3に示すように、立体画像表示装置11の画面には、仮想空間に存在する子供を模した子供オブジェクト41および家具オブジェクト44が立体表示(立体視可能に表示)された子供オブジェクト画像111および家具オブジェクト画像114が表示されている。立体画像表示装置11の画面に表示される子供オブジェクト画像111および家具オブジェクト画像114は、例えば、32bitカラーで表示される。また、立体画像表示装置11の画面には、カーソル60が表示されている。カーソル60は、ユーザによるタッチパネル15(平面画像表示装置12の画面)へのタッチ位置に対応した仮想空間上の位置に配置され、立体画像表示装置11の画面上に表示される。
【0076】
子供オブジェクト41および家具オブジェクト44を含む立体画像(立体画像表示装置11の画面に表示される画像)は、仮想ステレオカメラで仮想空間を撮像した画像であり、ユーザにとって立体感のある画像(立体視可能な画像)である。図4は、仮想空間に存在する各オブジェクトを仮想ステレオカメラ17で撮像する様子を仮想空間の上方から見た図である。図4に示すように、仮想ステレオカメラ17の左目用仮想カメラ17aによって左目用画像が撮像され、仮想ステレオカメラ17の右目用仮想カメラ17bによって右目用画像が撮像される。そして、撮像された左目用画像がユーザの左目に、撮像された右目用画像がユーザの右目に視認されることにより、ユーザは立体感のある画像を視認することができる。仮想ステレオカメラ17の左右の仮想カメラ(17aおよび17b)の撮像方向Aおよび撮像方向Bは、同じである。例えば、左目用仮想カメラ17aの撮像方向Aは、左目用仮想カメラ17aの画角を示す線21aと線22aとがなす角を2等分する直線の方向である。同様に、右目用仮想カメラ17bの撮像方向Bは、右目用仮想カメラ17bの画角を示す線23bと線24bとがなす角を2等分する直線の方向である。また、仮想ステレオカメラ17の視点はユーザの視点と一致する。図4に示すように、子供オブジェクト41は、家具オブジェクト44より仮想ステレオカメラに近い位置に存在している。従って、ユーザは、図3に示すように子供オブジェクト41がユーザ自身の手前に存在するように感じる。
【0077】
一方、平面画像表示装置12の画面の中央部には、平面画像表示領域61が設けられる。平面画像表示装置12の画面の上部には操作ボタン62、下部にはアイテム選択ボタン63が表示されている。操作ボタン62は、ゲームの中断や終了等に用いられる。ゲームを終了する際に、ユーザはスティック16を用いて操作ボタン62をタッチすることにより、ゲームを中断したり終了したりする。アイテム選択ボタン63は、後述するアイテムを選択するために用いられる。
【0078】
平面画像表示領域61には、子供オブジェクト画像121が表示されている。子供オブジェクト画像121は、子供オブジェクト41を平面表示した画像であり、立体画像表示装置11の画面に表示される子供オブジェクト41を単色(灰色)で表示した画像である。具体的には、子供オブジェクト画像121は、上記左目用仮想カメラ17aと右目用仮想カメラ17bとの中間に位置する仮想カメラ18を用いて、仮想空間に存在する子供オブジェクト41を撮像し、シルエット表示したものである。この場合において、仮想カメラ18の撮像方向は、上記仮想ステレオカメラ17の撮像方向と同じである(図4の撮像方向C)。また、仮想カメラ18の画角は、上記仮想ステレオカメラ17の画角と同じである。従って、平面画像表示領域61に表示される画像(子供オブジェクト41を含む仮想空間を撮像した画像)は、立体画像表示装置11に表示される画像(子供オブジェクト41と家具オブジェクト44とを含む仮想空間を撮像した画像)と略同じ大きさの画像であって、略同じ仮想空間の範囲を撮像した画像である。すなわち、平面画像表示装置12に表示される画像は、立体画像表示装置11の画面と平面画像表示領域61との大きさの比率に応じて、立体画像表示装置11に表示される画像を縮尺した画像(ここでは、画面の縦方向に所定比率だけ縮尺した画像)である。また、平面画像表示装置12に表示される画像の撮像範囲(当該画像に表示される仮想空間の範囲)は、立体画像表示装置11に表示される画像の撮像範囲と略同じである。
【0079】
このため、平面画像表示装置12の画面に表示される子供オブジェクト画像121は、立体画像表示装置11に表示される子供オブジェクト画像111と略同じ大きさであり、仮想空間に存在する子供オブジェクト41を同じ方向から見たものである。
【0080】
なお、平面画像表示領域61には、立体画像表示装置11に表示されている家具オブジェクト44は表示されない。本実施形態では、ユーザによって操作が可能な操作対象(子供オブジェクト41)のみが平面画像表示装置12の画面(平面画像表示領域61)にシルエット表示される。家具オブジェクト44は、ユーザによって操作されるものではないため、平面画像表示装置12の画面にはシルエット表示されない。
【0081】
ここで、仮想ステレオカメラ17によって撮像される画像と、仮想カメラ18によって撮像される画像の撮像範囲について説明する。図4に示すように、左目用仮想カメラ17aの撮像範囲(画角)は、子供オブジェクト41および家具オブジェクト44を含む、線21aと線22aとによって囲まれる領域である。また、右目用仮想カメラ17bの撮像範囲(画角)は、子供オブジェクト41および家具オブジェクト44を含む、線23bと線24bとによって囲まれる領域である。左目用仮想カメラ17aによって撮像された左目用画像と、右目用仮想カメラ17bによって撮像された右目用画像とを合成して立体画像表示装置11に表示することにより、ユーザにとって立体感のある立体画像を表示することができる。ここで、立体画像表示装置11には、子供オブジェクト41および家具オブジェクト44を含む、線22aと線23bとによって囲まれる領域のみが表示される。すなわち、立体画像表示装置11に表示される立体画像の範囲(仮想ステレオカメラ17の撮像範囲)は、左目用仮想カメラ17aの撮像範囲と右目用仮想カメラ17bの撮像範囲との重複領域である。このように重複領域のみを表示する理由は次の通りである。すなわち、非重複領域も含めて立体画像表示装置11の画面に立体画像を表示すると、立体画像の一部は立体感のある画像となり、他の一部は立体感のない画像となる。このときの表示は、ユーザにとっては、「見えているはずのものが見えない」または「見えないはずのものが見えている」といった状態である。従って、立体画像表示装置11の画面には、左右の仮想カメラ(17aおよび17b)の撮像範囲の重複領域を撮像した画像が表示される。
【0082】
一方、図4に示すように、仮想カメラ18の撮像範囲は、子供オブジェクト41および家具オブジェクト44を含む、線25と線26とによって囲まれる領域である。仮想カメラ18の撮像範囲は、上記仮想ステレオカメラ17の撮像範囲(上記重複領域)を含む領域であり、仮想ステレオカメラ17の撮像範囲よりも大きい。しかしながら、仮想ステレオカメラ17の左右の仮想カメラ(17aおよび17b)は互いに近接しており、仮想ステレオカメラ17の撮像範囲と仮想カメラ18の撮像範囲とは、略同一である。従って、平面画像表示装置12に表示される画像は、立体画像表示装置11に表示される画像と略同一の仮想空間の範囲を撮像した画像である。なお、仮想カメラ18の撮像範囲は、仮想ステレオカメラ17の撮像範囲と全く同じであってもよい。
【0083】
次に、ユーザは、スティック16を用いて子供オブジェクト画像121をタッチして所定の操作を行うことにより、仮想空間に存在する子供オブジェクト41に所定の動作を行わせる。
【0084】
図5は、ユーザが平面画像表示装置12に表示された子供オブジェクト画像121をタッチして所定の操作を行った場合に、立体画像表示装置11および平面画像表示装置12に表示される画像が変化する様子を示す図である。図5に示すように、ユーザがスティック16を用いて子供オブジェクト画像121の胸をなでるようにしてスティック16を操作すると、立体画像表示装置11に表示される子供オブジェクト画像111は、変化する。具体的には、ユーザがスティック16を用いて子供オブジェクト画像121の胸の部分をタッチしたまま画面の上下方向(縦方向)にスティック16を移動させると、仮想空間に存在する子供オブジェクト41の表情が変化するとともに、子供オブジェクト41の両手部分の位置が変化する。子供オブジェクト41の変化に伴って、立体画像表示装置11に表示される子供オブジェクト画像111および平面画像表示装置12に表示される子供オブジェクト画像121も同様に変化する。
【0085】
ユーザがスティック16を用いて子供オブジェクト画像121をタッチした場合、立体画像表示装置11の画面には、当該タッチ位置に応じた位置にカーソル60が表示される。例えば、ユーザが平面画像表示装置12の子供オブジェクト画像121の頭部をタッチした場合、カーソル60は立体画像表示装置11の子供オブジェクト41の頭部に表示される。また、ユーザがスティック16を用いて子供オブジェクト画像121をタッチした場合、カーソル60は、図3に示す矢印形状から図5に示す人の手の形状に変化する。
【0086】
さらに、カーソル60は、子供オブジェクト41の表面上に沿うように表示される。図6Aは、カーソル60の表示の仕方を示す図であり、立体画像表示装置11に表示された子供オブジェクト41の一部位を拡大して正面から見た図である。図6Bは、子供オブジェクト41の一部位を図6Aの矢印の方向から見た図である。図6Aおよび図6Bにおいて、41aは子供オブジェクト41の一部位(例えば、腕の一部)を示す。部位41aは、説明のため単純な円柱形状とする。図6Aおよび図6Bに示すように、カーソル60(カーソル60aおよび60b)は、部位41aの表面に沿うように立体的に表示される。ユーザが立体画像表示装置11に表示された立体的な子供オブジェクト41(子供オブジェクト画像111)を見ると、その表面にカーソル60が存在しているように見える。これにより、ユーザは、立体画像表示装置11の画面を見ながら平面画像表示装置12の画面上をスティック16でなでるような操作をすることにより、子供オブジェクト41をなでるような感覚を得ることができる。
【0087】
上述のように、本実施形態に係るゲームでは、立体画像表示装置11の画面には、仮想空間に存在する子供オブジェクト41および家具オブジェクト44が立体表示される。また、平面画像表示装置12の画面には、ユーザによって操作可能な子供オブジェクト41のみがシルエット表示される(子供オブジェクト41をシルエット表示した子供オブジェクト画像121のみが表示される)。そして、ユーザは、平面画像表示装置12の画面に表示された子供オブジェクト画像121をスティック16を用いてタッチする。このように、平面画像表示装置12に子供オブジェクトのシルエットが表示され、当該シルエットをスティック16を用いてタッチする。これにより、ユーザは、立体画像表示装置11の画面を見ながら、容易にオブジェクトを操作することができ、当該オブジェクトを操作している感覚を得ることができる。
【0088】
すなわち、立体画像表示装置11に表示されるオブジェクトは立体表示されているため、立体画像表示装置11の画面上を直接タッチして表示されたオブジェクトを操作することは困難である。ユーザは、立体表示されたオブジェクトが、例えば、画面の手前に位置するように感じたり、画面の奥に位置するように感じたりする。例えば、オブジェクトが画面の手前に見えている場合、立体表示されたオブジェクトを操作するため当該オブジェクトを直接タッチしようとすると、ユーザは、画面の手前の空間をスティック16を用いてタッチしようとする。従って、ユーザは、操作しようとするオブジェクトを操作することができない。また、画面の手前に見える立体表示されたオブジェクトを操作するため立体画像表示装置11の画面上をタッチすると、ユーザが感じる当該オブジェクトの表示位置と、タッチ位置とが異なるため、ユーザは当該オブジェクトを操作している感覚を得られない。つまり、ユーザが感じるオブジェクトの表示位置は画面の手前であり、ユーザがタッチする位置は画面上である。従って、ユーザは、オブジェクトを操作するために、画面に垂直な方向に異なる位置をタッチすることになるため、当該オブジェクトを直接操作している感覚が得られない。すなわち、例えば、オブジェクトが画面の手前に見えているときには、ユーザがスティック16で画面をタッチすると、スティック16が当該オブジェクトの内部に入り込んだ状態になる。また、オブジェクトが画面の奥行き方向の位置に見えているときには、画面より奥にスティックを移動することはできないので、ユーザは、画面の奥に存在しているように見えるオブジェクトを直接タッチすることができない。このため、見えているものと現実とに矛盾が生じ、操作感が損なわれる場合がある。しかしながら、上述のように、立体画像表示装置11にオブジェクトを立体表示し、平面画像表示装置12に当該オブジェクトのシルエットを表示することにより、ユーザは、立体画像表示装置11に表示されたオブジェクトを見ながら、平面画像表示装置12の画面をタッチして、当該オブジェクトを操作することができる。従って、ユーザは、当該オブジェクトを直接操作している感覚を得ることができる。
【0089】
また、立体画像表示装置11の画面には、ユーザがタッチした平面画像表示装置12の画面上の位置に対応した位置に、カーソル60が表示される。従って、ユーザは、立体画像表示装置11の画面を直接タッチしなくても、立体画像表示装置11に表示されたオブジェクトを直接操作している感覚を得ることができる。
【0090】
また、立体画像表示装置11の画面に表示されるオブジェクトは、32bitカラーで表示され、オブジェクトの各部位(例えば、子供オブジェクト41の頭や胴体、腕等)を認識できる精細な画像である。一方、平面画像表示装置12には、当該オブジェクトがシルエット表示されるため、立体画像表示装置11に表示されるオブジェクトと比較して、目立たない表示である。ユーザは、単色で目立たない画像よりカラーで美しい画像に注目する傾向にある。従って、ユーザは、立体画像表示装置11の画面に表示されたオブジェクトを注視しながら、平面画像表示装置12の画面上をスティック16を用いてタッチ操作しやすい。
【0091】
また、平面画像表示装置12には、操作可能なオブジェクトのみが表示されるため、ユーザは操作可能なオブジェクトを容易に認識することができる。ユーザは、平面画像表示装置12の画面に表示されたシルエットを一見しただけで操作可能なオブジェクトを認識してタッチし、その後は、立体画像表示装置11の画面に表示された当該オブジェクトを見ながら操作することができる。すなわち、ユーザは、平面画像表示装置12の画面を見てオブジェクトのシルエットをタッチした後は、平面画像表示装置12の画面を見ることなく、立体画像表示装置11の画面を見て当該オブジェクトを操作することができる。
【0092】
次に、操作可能なオブジェクトが複数存在する場合について、説明する。図7は、操作可能なオブジェクトが複数存在する場合において立体画像表示装置11および平面画像表示装置12の画面に表示される画像を示す図である。図7に示すように、立体画像表示装置11の画面には、子供オブジェクト41(子供オブジェクト画像111)、子供オブジェクト42(子供オブジェクト画像112)、子供オブジェクト43(子供オブジェクト画像113)および家具オブジェクト44(家具オブジェクト画像114)が表示されている。一方、平面画像表示装置12の画面(平面画像表示領域61)には、子供オブジェクト画像121、子供オブジェクト画像122および子供オブジェクト画像123が表示されている。子供オブジェクト画像121、子供オブジェクト画像122および子供オブジェクト画像123は、それぞれ子供オブジェクト41、子供オブジェクト42および子供オブジェクト43を平面表示した画像であり、これらをシルエット表示した画像である。子供オブジェクト画像121、子供オブジェクト画像122および子供オブジェクト画像123は、それぞれ表示態様が異なる。例えば、子供オブジェクト画像121は赤色で表示され、子供オブジェクト画像122は青色で表示され、子供オブジェクト画像123は黄色で表示される。
【0093】
次に、図8および図9を参照して、アイテムを使用したゲームについて説明する。図8は、本実施形態に係るゲームにおいて、ユーザがアイテムを使用する場合について示す図である。平面画像表示装置12の画面において、ユーザがスティック16を用いてアイテム選択ボタン63をタッチしたまま画面上を移動させると、立体画像表示装置11にはアイテム45(立体表示されたアイテム画像115)が出現し、アイテム45がカーソル60(手)で把持された様子が表示される。アイテム45は、ユーザによって操作可能なオブジェクトである。一方、平面画像表示装置12にも、アイテム画像125が表示される。アイテム画像125は、仮想空間に存在するアイテム45をシルエット表示した画像である。図8に示すように、アイテム画像125(アイテム45のシルエット)は、子供オブジェクト41の子供オブジェクト画像121とは異なる表示態様で表示される。例えば、アイテム画像125は、青色で表示され、子供オブジェクト画像121(子供オブジェクト41のシルエット)は灰色で表示される。
【0094】
図9は、子供オブジェクト41にアイテム45を持たせた場合に立体画像表示装置11および平面画像表示装置12に表示される画像が変化する様子を示す図である。ユーザがアイテム画像125をタッチしたまま子供オブジェクト画像121の手の位置まで移動させると、立体画像表示装置11に表示される子供オブジェクト41はアイテム45を把持する。この場合において、立体画像表示装置11に表示される子供オブジェクト41の表情が変化し、子供オブジェクト41は両手を挙げるように変化する。同様に、平面画像表示装置12に表示される子供オブジェクト画像121も変化する。このように、ユーザは、アイテム選択ボタン63をタッチしてアイテム45を子供オブジェクト41に手渡すことで、子供オブジェクト41にアイテム45を使用して遊ばせる。これにより、子供オブジェクト41が喜ぶ様子が立体画像表示装置11に表示される。なお、ユーザにアイテム選択ボタン63をタッチさせて複数のアイテムの中から使用するアイテムを選択させてもよい。また、アイテム45は立体画像表示装置11の画面上の所定位置(仮想空間上の所定位置)に予め存在し、ユーザが、平面画像表示装置12に表示されたアイテム画像125をタッチして、子供オブジェクト41に手渡すようにしてもよい。
【0095】
以上、図7から図9に示したように、平面画像表示装置12の画面において、操作可能な各オブジェクト(子供オブジェクト41〜43およびアイテム45)の表示態様を変化させる。これによりユーザは、立体画像表示装置11に表示された各オブジェクトと、平面画像表示装置12に表示された各オブジェクトとを一見して容易に対応付けることができる。例えば、平面画像表示装置12の画面において、操作可能な複数のオブジェクトが全て同じ色でシルエット表示されている場合、ユーザは、各オブジェクトを識別し難い場合がある。特に、各オブジェクトが互いに近接している場合では、ユーザは、各オブジェクトの境界を識別し難く、1つのオブジェクトをタッチして操作しようとする場合、平面画像表示装置12の画面を注視してしまうことがある。そうすると、ユーザは、立体画像表示装置11に表示された立体的なオブジェクトを見ながら操作することができず、立体表示されたオブジェクトを直接操作するという感覚を得ることができなくなる。しかしながら、平面画像表示装置12に表示される各オブジェクトの表示態様が異なることにより、ユーザは各オブジェクトを一見して容易に識別することができる。従って、ユーザは、立体画像表示装置11に表示された立体的なオブジェクトを見ながら操作することができ、立体表示されたオブジェクトを直接操作するという感覚を得ることができる。
【0096】
以上のように、本実施形態に係るゲームでは、子供オブジェクトを手でなでたりアイテムを使用して喜ばせたりすることにより、子供を育てたり子供と一緒に遊んだりする感覚をユーザに与えることができる。
【0097】
(ゲーム処理の詳細)
次に、図10から図13を参照して、本実施形態に係るゲーム処理の詳細について説明する。まず、ゲーム処理の際にメインメモリ31に記憶される主なデータについて説明する。図10は、ゲーム装置10のメインメモリ31のメモリマップを示す図である。図10に示されるように、メインメモリ31には、タッチ位置データ71、オブジェクト情報データ72、仮想カメラ設定データ73、およびカーソルデータ74等が記憶される。これらのデータの他、メインメモリ31には、上記ゲーム処理を実行する所定のプログラムや各オブジェクトの画像データ等が記憶される。
【0098】
タッチ位置データ71には、タッチパネル15が検出したタッチ位置が格納される。具体的には、タッチ位置データ71は所定の長さの配列であり、当該配列の各要素には、タッチパネル15上(平面画像表示装置12の画面上)の位置を示す座標値(XY座標系)が格納される。タッチ位置データ71には、タッチパネル15が検出したタッチ位置を示す座標値が時系列に格納される。
【0099】
オブジェクト情報データ72には、各オブジェクトの情報が格納される。具体的には、オブジェクト情報データ72は所定の長さの配列であり、当該配列の各要素には、1つのオブジェクトの情報が格納される。オブジェクトの情報は、当該オブジェクトの仮想空間における位置(xyz座標系)、当該オブジェクトが操作可能であるか否かを示すデータや当該オブジェクトの形状に関するデータ等である。例えば、当該配列の1つの要素には、子供オブジェクト41の仮想空間における位置、操作可能であることを示すデータ、および、子供オブジェクト41の各部位(頭部や胴体等)の形状データが格納される。子供オブジェクト41の各部位は、例えば、複数の球体によって表現され、これらの球体の位置や半径等が形状データとして当該配列の要素に格納される。
【0100】
仮想カメラ設定データ73には、仮想ステレオカメラ17および仮想カメラ18の設定情報が格納される。具体的には、仮想ステレオカメラ17および仮想カメラ18の仮想空間における位置、撮像方向、撮像範囲(画角)等が格納される。仮想ステレオカメラ17の撮像方向と仮想カメラ18の撮像方向は、同じに設定される。また、仮想ステレオカメラ17の撮像範囲と仮想カメラ18の撮像範囲は、同じに設定される。
【0101】
カーソルデータ74は、カーソル60の仮想空間における位置および姿勢が格納される。カーソルの位置は、ユーザによってタッチされたタッチパネル15上の位置に応じた3次元仮想空間の位置である。カーソル60の姿勢は、カーソル60の仮想空間における姿勢であり、カーソル60が子供オブジェクト41等の表面に表示される場合のカーソル60の姿勢である。
【0102】
次に、ゲーム処理の詳細について図11から図13を参照して説明する。図11は、本実施形態に係るゲーム処理の詳細を示すメインフローチャートである。ゲーム装置10の電源が投入されると、ゲーム装置10のCPU30は、ROM32に記憶されている起動プログラムを実行し、これによってメインメモリ31等の各ユニットが初期化される。次に、ROM32に記憶された所定のプログラムがメインメモリ31に読み込まれ、CPU30によって当該プログラムの実行が開始される。図11に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、図11では、本発明に直接関連しない処理については記載を省略する。また、図11に示すステップS1〜ステップS7の処理ループは、1フレーム(例えば1/30秒。フレーム時間という)毎に繰り返し実行される。
【0103】
まず、ステップS1において、CPU30は、タッチパネル15がタッチを検出したか否かを判定する。タッチパネル15がタッチを検出した場合、CPU30は、当該タッチ位置を最新のタッチ位置としてタッチ位置データ71に格納し、次にステップS2の処理を実行する。一方、タッチパネル15がタッチを検出しなかった場合、CPU30は、次にステップS6の処理を実行する。
【0104】
ステップS2において、CPU30は、ステップS1で検出したタッチ位置はシルエット(オブジェクト)の表示領域内か否かを判定する。具体的には、CPU30は、最新のタッチ位置が、直前のフレームのステップS6(後述する)で平面画像表示装置12の画面に表示したオブジェクト画像(121、122、123や125等)の表示領域内か否かを判定する。判定結果が肯定の場合、CPU30は、次にステップS3の処理を実行する。一方、判定結果が否定の場合、CPU30は、次にステップS6の処理を実行する。
【0105】
ステップS3において、CPU30は、3次元タッチ位置判定処理を実行する。ステップS3の処理は、ステップS1で検出した最新のタッチ位置に応じた仮想空間におけるカーソル60の位置を判定する処理である。ステップS3における処理の詳細を、図12を参照して説明する。図12は、3次元タッチ位置判定処理(ステップS3)の詳細を示すフローチャートである。
【0106】
ステップS11において、CPU30は、最新のタッチ位置から仮想カメラの撮像方向に伸びる3次元直線を算出する。CPU30は、最新のタッチ位置(ステップS1で検出したタッチ位置)と、仮想カメラ設定データ73に格納された仮想カメラ18の撮像方向とに基づいて、3次元直線を算出する。例えば、CPU30は、2次元で表される最新のタッチ位置(X,Y)に対応した3次元仮想空間における仮想平面上の位置(x,y,z)を座標変換により算出する。当該仮想平面は、仮想空間においてタッチパネル15を表す平面であり、ユーザの視点(仮想カメラ18の位置)を通り、仮想カメラ18の撮像方向と垂直な平面である。そして、CPU30は、当該3次元の位置(x,y,z)を通り、仮想カメラの撮像方向に伸びる直線を算出する。次に、CPU30は、ステップS12の処理を実行する。
【0107】
ステップS12において、CPU30は、各オブジェクトの部位情報を取得する。具体的には、CPU30は、オブジェクト情報データ72を参照して、ステップS2でタッチされたオブジェクトの複数の部位のうち、1つの部位の形状データを取得する。次に、CPU30は、ステップS13の処理を実行する。
【0108】
ステップS13において、CPU30は、ステップS11で算出した直線と、ステップS12で取得した部位とが接触するか否かを判定する。判定結果が肯定の場合、CPU30は、次にステップS14の処理を実行する。一方、判定結果が否定の場合、CPU30は、次にステップS16の処理を実行する。
【0109】
ステップS14において、CPU30は、接触位置は仮想カメラとの最近接距離か否かを判定する。具体的には、CPU30は、ステップS11で算出した直線とステップS12で取得した部位との接触位置(算出した直線と取得した部位を示す球体との交点の座標)を算出する。次に、CPU30は、算出した接触位置と仮想カメラ18との距離を算出する。そして、CPU30は、メインメモリ31に記憶された(後述するステップS15で記憶された)最近接距離と、算出した距離とを比較する。接触位置が仮想カメラ18と最近接距離である場合、CPU30は、次にステップS15の処理を実行する。一方、接触位置が仮想カメラ18と最近接距離でない場合、CPU30は、次にステップS16の処理を実行する。
【0110】
ステップS15において、CPU30は、ステップS14で算出した接触位置(直線と部位との交点)をカーソルデータ74に記憶する。また、CPU30は、ステップS14で算出した距離(接触位置と仮想カメラ18との距離)を最近接距離として、メインメモリ31に記憶する。次に、CPU30は、ステップS16の処理を実行する。
【0111】
ステップS16において、CPU30は、全ての部位情報を取得したか否かを判定する。全ての部位情報が取得されていない場合、CPU30は、ステップS12の処理を再び実行する。ステップS12からステップS16の処理が繰り返し実行されることにより、タッチされたオブジェクトの全ての部位について、ステップS11で算出した直線との接触位置が算出される。そして、算出した接触位置のうち、仮想カメラ18と最も近い位置(ユーザに最も近い位置)がカーソルの位置として算出される。一方、全ての部位情報が取得された場合、CPU30は、3次元タッチ位置判定処理を終了する。
【0112】
図11に戻り、CPU30は、次にステップS4の処理を実行する。ステップS4において、CPU30は、動作決定処理を実行する。ステップS4では、タッチされたオブジェクトに対する操作を判定し、その操作に応じて当該オブジェクトの動作が決定される。具体的には、CPU30は、タッチ位置データ71を参照して、タッチされたオブジェクトに対して行われた操作を判定する。より具体的には、CPU30は、タッチ位置データ71に時系列で格納された過去数フレームにおけるタッチ位置に基づいて、ユーザによって行われた操作を判定する。ステップS4では、ユーザによって行われた操作が、例えば図5に示すように子供オブジェクト41の胸を上下方向になでるような操作であるか否かが判定される。あるいは、ステップS4では、ユーザによって行われた操作が、例えば図8に示すアイテム45を把持して移動させる操作であるか否かが判定される。このように、ステップS4では、過去数フレームにおけるタッチ位置に基づいて、ユーザによって行われた操作の種類が判定される。そして、判定された操作の種類に応じて、タッチされたオブジェクトの動作が決定される。例えば、ユーザによって行われた操作が図5に示すように子供オブジェクト41の胸を上下方向になでるような操作である場合、CPU30は、子供オブジェクト41が表情を変化させて両手を挙げる動作を決定する。CPU30は、次にステップS5の処理を実行する。
【0113】
ステップS5において、CPU30は、平面画像表示処理を実行する。ステップS5の処理は、平面画像表示装置12の画面にオブジェクトのシルエット等を表示する処理である。ステップS5における処理の詳細を、図13を参照して説明する。図13は、平面画像表示処理(ステップS5)の詳細を示すフローチャートである。
【0114】
ステップS21において、CPU30は、操作可能なオブジェクトを判定する。具体的には、CPU30は、第1の判定と第2の判定とによって、画面に表示するオブジェクトを判定する。すなわち、CPU30は、第1の判定として、オブジェクトの種類がユーザによって操作されるオブジェクトか否かを判定する。また、CPU30は、第2の判定として、オブジェクトとユーザとの距離が所定の距離以下か否かを判定する。
【0115】
具体的には、ステップS21の第1の判定では、CPU30は、各オブジェクトがユーザによって操作されるオブジェクトか否かを判定する。例えば、子供オブジェクト41〜43やアイテム45はユーザによって操作されるオブジェクトとして予め設定される。一方、家具オブジェクト44は、ユーザによって操作されないオブジェクトとして予め設定される。第1の判定では、CPU30は、各オブジェクトの種類によって、各オブジェクトがユーザによって操作されるオブジェクトか否かを判定する。
【0116】
次に、ステップS21の第2の判定では、CPU30は、オブジェクトとユーザ(仮想ステレオカメラ17または仮想カメラ18)との距離が、所定の距離以下か否かを判定する。上記第1の判定と第2の判定とによって、CPU30は、操作可能なオブジェクトを判定する。すなわち、CPU30は、各オブジェクトについて第1の判定および第2の判定を行い、第1の判定結果が肯定であり、かつ、第2の判定結果が肯定であるオブジェクトを操作可能なオブジェクトとして設定する。そして、CPU30は、当該オブジェクトが操作可能であるか否かを示すデータをメインメモリ31に格納する(オブジェクト情報データ72を更新する)。
【0117】
以上のように、操作可能なオブジェクトは、オブジェクトの種類のみならず、オブジェクトとユーザ(仮想ステレオカメラ17または仮想カメラ18)との距離によっても定められる。例えば、子供オブジェクト42がユーザから所定の距離よりも遠い位置に存在する場合、子供オブジェクト42は操作可能なオブジェクトとして設定されない。上述のように、本実施形態に係るゲームでは、ユーザは立体画像表示装置11に表示された子供オブジェクトを見て所定の操作を行うことにより、ユーザは実際に子供に触れるような感覚を視覚的に得られる。しかしながら、ユーザの手が届かない位置に存在する子供オブジェクトをユーザが操作可能とすると、ユーザにとって違和感がある。従って、操作可能な種類のオブジェクトであっても、ユーザからの距離が所定距離よりも離れている場合、当該オブジェクトは操作不可能なオブジェクトとして設定される。
【0118】
ステップS21の後、CPU30は、次にステップS22の処理を実行する。
【0119】
ステップS22において、CPU30は、平面画像表示装置12の画面に表示するオブジェクトを選出する。具体的には、CPU30は、オブジェクト情報データ72を参照して、操作可能なオブジェクトを選出する。上述のようにオブジェクト情報データ72には、ステップS21の処理によって、各オブジェクトが操作可能であるか否かを示すデータが格納されている。CPU30は、操作可能であるオブジェクトを平面画像表示装置12の画面に表示するオブジェクトとして選出する。次に、CPU30は、ステップS23の処理を実行する。
【0120】
ステップS23において、CPU30は、ステップS22で選出したオブジェクトの表示態様を決定する。具体的には、CPU30は、ステップS22で選出したオブジェクトが複数存在する場合、各オブジェクトの表示態様がそれぞれ異なるようにして、各オブジェクトの表示態様を決定する。例えば、選出したオブジェクトが子供オブジェクト41、子供オブジェクト43およびアイテム45である場合、CPU30は、子供オブジェクト41を灰色、子供オブジェクト43を青色、アイテム45を赤色にそれぞれ決定する。次に、CPU30は、ステップS24の処理を実行する。
【0121】
ステップS24において、CPU30は、ステップS23で決定した表示態様で各オブジェクトを平面画像表示装置12の画面に表示する。具体的には、ステップS24において、CPU30は、ステップS22で選出したオブジェクト以外のオブジェクトを非表示とし、ステップS22で選出したオブジェクトをシルエット表示にして、仮想空間を仮想カメラ18で撮像する。これにより、CPU30は、平面画像表示装置12の画面に、選出した各オブジェクトをステップS23で決定した表示態様で表示する(選出した各オブジェクトをシルエット表示する)。
【0122】
なお、ステップS24では、ステップS4で決定されたオブジェクトの動作に応じて、シルエット(オブジェクト)が動作する様子が表示される。また、CPU30は、操作ボタン62を画面の左上に、アイテム選択ボタン63を画面の右下にそれぞれ表示する。以上でCPU30は、平面画像表示処理を終了する。
【0123】
図11に戻り、CPU30は、次にステップS6の処理を実行する。ステップS6において、CPU30は、立体画像表示処理を実行する。ステップS6では、CPU30は、仮想空間にカーソル60を配置し、仮想ステレオカメラ17で仮想空間を撮像して立体画像表示装置11の画面に立体画像を表示する。具体的には、CPU30は、カーソル60の姿勢を決定して、ステップS3で判定されたカーソル60の位置に手の形状のカーソル60を配置する(すなわち、タッチしたオブジェクトの表面にカーソル60を配置する)。具体的には、CPU30は、ステップS3で判定されたカーソル60の位置で接触するオブジェクトの部位に接する仮想空間上の平面をカーソル60の姿勢として決定して、カーソル60を仮想空間に配置する。一方、CPU30は、ステップS2の判定結果が否定の場合は、最新のタッチ位置に対応した仮想空間上の所定位置に矢印形状のカーソル60を配置する。次に、CPU30は、仮想ステレオカメラ17を用いて左目用画像と右目用画像とを撮像する。次に、CPU30は、撮像した左目用画像と右目用画像とをそれぞれ縦に短冊状に分割して合成する。例えば、CPU30は、左目用画像と右目用画像とを、画素を縦に並べた1ライン毎に短冊状に分割し、分割した短冊状の画像を交互に配置して合成する。そして、CPU30は、合成した画像を立体画像表示装置11に出力する。ユーザは、立体画像表示装置11の視差バリアを通して合成された画像を見ることで、ユーザの左目で左目用画像を、ユーザの右目で右目用画像を視認することができる。これにより、ユーザは立体感のある画像を見ることができる。なお、立体画像表示装置11の画面には、平面画像表示装置12の画面と同様、ステップS4で決定されたオブジェクトの動作に応じて、オブジェクトが動作する様子が表示される。
【0124】
図14は、平面画像表示装置12および立体画像表示装置11の画面に表示される画像の一例を示す図である。図14に示すように、子供オブジェクト42はユーザからの距離が所定の距離より離れているため、ステップS21において操作可能なオブジェクトとは判定されない。また、家具オブジェクト44は、ユーザによって操作されるオブジェクトとして予め設定されていないため、操作可能なオブジェクトではない。このため、子供オブジェクト42および家具オブジェクト44は、平面画像表示装置12の画面には表示されない。また、子供オブジェクト41および子供オブジェクト43は、ユーザによって操作されるオブジェクトとして予め設定されており、かつ、ユーザからの距離が所定の距離以下であるため、平面画像表示装置12の画面に表示される。この場合、平面画像表示装置12の画面において、子供オブジェクト41と子供オブジェクト43とは、互いに異なる表示態様で表示される。例えば、平面画像表示装置12の画面では、子供オブジェクト41は赤色で、子供オブジェクト43は黄色で平面表示される。なお、子供オブジェクト42が移動してユーザとの距離が所定の距離以下となった場合、子供オブジェクト42は、平面画像表示装置12の画面に表示される。各子供オブジェクトは、仮想空間を所定の法則に従って移動する。CPU30は、例えば時間経過に応じて、各子供オブジェクトの位置を変化させたり、ユーザの操作に応じて各子供オブジェクトの位置を変化させたりする。子供オブジェクト42が、図14に示すようにユーザから所定の距離より離れた位置から図7に示すように所定の距離以下の位置に移動した場合、すなわち、子供オブジェクト42が近づいてきて、ユーザが触ることが可能な範囲に入ってきた場合、子供オブジェクト42は、平面画像表示装置12の画面に表示される。
【0125】
次に、CPU30は、ステップS7の処理を実行する。
【0126】
ステップS7において、CPU30は、ゲーム処理を終了するか否かを判定する。例えば、ユーザによって操作ボタン62が押された場合、CPU30は、ゲーム処理を終了する。ゲーム処理が終了しない場合、CPU30は、ステップS1の処理を再び実行する。以上で図11に示すフローチャートの説明を終了する。
【0127】
以上のように、本実施形態に係るゲームでは、立体画像表示装置11の画面には仮想空間の各オブジェクトが立体視可能に表示され、平面画像表示装置12の画面には同様の仮想空間の範囲を撮像した平面画像が表示される。平面画像表示装置12の画面には、操作可能なオブジェクトのみシルエット表示され、操作不可能なオブジェクトは表示されない。そして、立体画像表示装置11に表示された各オブジェクトに対する操作は、平面画像表示装置12の画面をタッチすることにより行われる。これにより、ユーザは、立体画像表示装置11の画面に表示された立体視可能な画像を見ながら、当該画像に含まれるオブジェクトを直接操作する感覚を得ることができる。
【0128】
なお、上述したフローチャートによる処理の内容や処理の順番等は、単なる例示に過ぎない。例えば、ステップS3の処理は次のような処理に代替されてもよい。すなわち、表示結果(ステップS5の処理の結果)に仮想カメラ18の撮像方向の情報(撮像方向の位置情報)が埋め込まれ、当該情報からユーザによって指示されたタッチパネル15上の位置に対応する3次元仮想空間における位置が求められてもよい。
【0129】
また、本実施形態では、予め定められたユーザによって操作可能なオブジェクト(子供オブジェクト41〜43)であって、仮想カメラから所定距離以下にあるオブジェクトのみが平面画像表示装置12に表示された。他の実施形態では、ユーザによって操作可能なオブジェクトと操作不可能なオブジェクト(家具オブジェクト44)とを含む所定の条件を満たすオブジェクトが、平面画像表示装置12に表示されてもよい。ここで、所定の条件は、上述したように仮想カメラ(ユーザ)からの距離によって定められてもよいし、ゲーム進行上の様々な条件であってもよい。例えば、第1のゲームシーンにおいては、第1のオブジェクトは操作可能なオブジェクトとして設定され、平面画像表示装置12の画面にシルエット表示されてもよい。この場合において、第1のゲームシーンとは異なる第2のゲームシーンに移行した場合は、当該第1のオブジェクトは操作不可能なオブジェクトとして設定され、平面画像表示装置12の画面に表示されないようにしてもよい。例えば、戦闘シーンにおいてのみ武器オブジェクトが操作可能に設定されて、当該武器オブジェクトをユーザが操作することができるようにしてもよい。
【0130】
また、本実施形態では、操作可能なオブジェクトが複数存在する場合、平面画像表示装置12には、当該複数のオブジェクトをそれぞれ異なる色で表示した(子供オブジェクト41を赤、子供オブジェクト42を青、子供オブジェクト43を黄で表示した)。他の実施形態では、平面画像表示装置12の画面をユーザが見た場合に一見して各オブジェクトが識別できる態様であれば、どのような態様で各オブジェクトを表示してもよい。例えば、同じ色のオブジェクトが隣り合う場合(近接する場合)は、ユーザは、一見してこれらが異なるオブジェクトであることを識別し難い。従って、隣り合うオブジェクトの表示態様を変えて平面画像表示装置12に表示することにより、ユーザは、これらのオブジェクトを一見して識別することができる。例えば、図7において、子供オブジェクト42(子供オブジェクト画像122)が青色に、子供オブジェクト41(子供オブジェクト画像121)および43(123)が灰色に表示されてもよい。
【0131】
また、本実施形態では、ステップS22で選出されたオブジェクトのみが平面画像表示装置12の画面に表示され、それらが複数存在する場合は互いに異なる色で表示された。他の実施形態では、選出されたオブジェクトが他のオブジェクトとは異なる表示態様(色や塗りつぶしのパターン等)で表示されてもよい。例えば、立体画像表示装置11の画面に子供オブジェクト41〜43及び家具オブジェクト44が表示される場合において、子供オブジェクト41のみが操作可能であるとき(選出されたとき)、平面画像表示装置12の画面には子供オブジェクト41は赤色で表示され、他のオブジェクト(42、43、44)は灰色で表示されてもよい。
【0132】
また、本実施形態では、平面画像表示装置12には各オブジェクトがシルエット表示(単色表示)されたが、立体画像表示装置11に表示される画像と比較して目立たないものであれば、平面画像表示装置12に表示される各オブジェクトはどのような表示態様で表示されてもよい。例えば、他の実施形態では、各オブジェクトを減色して平面画像表示装置12に表示してもよい。例えば、立体画像表示装置11に表示されるオブジェクトの各部位が32bitカラーで表示される場合において、平面画像表示装置12に表示される当該オブジェクトの各部位を8bitカラーで表示してもよい。また、他の実施形態では、平面画像表示装置12において、オブジェクトの輪郭のみが表示されてもよい。また、他の実施形態では、平面画像表示装置12において、オブジェクトが線や点等のパターンで塗りつぶされて表示されてもよい。また、他の実施形態では、平面画像表示装置12において各オブジェクトの色の濃さ(明るさ)を変えることにより、各オブジェクトを識別可能に表示してもよい。また、他の実施形態では、平面画像表示装置12においてオブジェクトの各部位の色の濃さ(明るさ)を変えることにより、当該オブジェクトの各部位を識別可能に表示してもよい。
【0133】
以上のように、他の実施形態では、平面画像表示装置12に表示されるオブジェクトを簡略表示してもよい。ここで簡略表示とは、オブジェクトの表示上の外郭(輪郭)の形状はそのままにして、上述したシルエット表示を含む減色表示や輪郭のみの表示態様、線や点のパターンで塗りつぶす表示態様、明るさを変える表示態様等、様々な表示態様をいう。すなわち、平面画像表示装置12に表示されるオブジェクトは、立体画像表示装置11に表示されるオブジェクトと比較して簡略された表示であれば、どのような表示態様で表示されてもよい。
【0134】
さらに、他の実施形態では、立体画像表示装置11に表示されるオブジェクトと平面画像表示装置12に表示されるオブジェクトとは、前者が立体視画像で後者が平面画像であることを除いて、同様の表示態様(色、輪郭や塗りつぶしのパターン等が同じ)で表示されてもよい。すなわち、立体画像表示装置11にはオブジェクトが立体表示され、平面画像表示装置12には当該オブジェクトがシルエット表示されずに(簡略表示されずに)平面表示されてもよい。このように、立体画像表示装置11に立体視可能なオブジェクトの画像を表示し、これとは別の平面画像表示装置12に同じオブジェクトが同じ表示態様で平面表示されてもよい。そして、平面画像表示装置12の画面を指示して当該オブジェクトが操作されてもよい。これにより、ユーザは、立体画像表示装置11に表示されたオブジェクトを見ながら当該オブジェクトを容易に操作することができる。すなわち、立体画像表示装置11にオブジェクトを立体視可能に表示して、立体画像表示装置11の画面を直接指示すると、上述したように、画面の奥方向に関してユーザが感じるオブジェクトの位置と指示位置とにずれが生じるため、ユーザは当該オブジェクトを指示し難い。また、上述したように、立体画像表示装置11の画面を直接指示すると、ユーザはオブジェクトを直接操作している感覚を得ることができない。しかしながら、立体画像表示装置11にオブジェクトを立体表示して、これとは別の画面に同じオブジェクトを平面表示してユーザに指示させることにより、ユーザは容易に当該オブジェクトを指示して操作することができ、また、当該オブジェクトを直接操作している感覚を得ることができる。
【0135】
また、本実施形態では、仮想ステレオカメラ17によって撮像された画像(第1画像)が立体画像表示装置11に表示され、仮想ステレオカメラ17の左右の仮想カメラ17a及び17bの中間に設定された仮想カメラ18によって撮像された画像(第2画像)が平面画像表示装置12に表示された。他の実施形態では、上記第2画像は、仮想ステレオカメラ17の左右の仮想カメラ17a及び17bのどちらかによって撮像されてもよい。また、上記第2画像は、左右の仮想カメラ17a及び17bの間の任意の位置に設定された仮想カメラによって撮像されてもよい。すなわち、上記第1画像を撮像する仮想カメラの位置と略同一の位置に設定された仮想カメラによって、上記第2画像が撮像されてもよい。
【0136】
また、本実施形態では、立体画像表示装置11に表示される画像(オブジェクトを含む画像)と平面画像表示装置12(平面画像表示領域61)に表示される画像とは、略同じ大きさの画像であるとした。ここで、「略同じ大きさの画像」とは、一方の画像に対して他方の画像が所定の比率で拡大された画像であってもよい。例えば、平面画像表示装置12に表示される画像の縦方向(又は/及び横方向)の長さが、立体画像表示装置11に表示される画像の縦方向(又は/及び横方向)の長さの70%に設定されてもよい。
【0137】
また、本実施形態では、立体画像表示装置11に表示される画像と平面画像表示装置12に表示される画像とは、略同一の仮想空間の範囲を撮像した画像であるとした。ここで、「略同一の仮想空間の範囲を撮像した画像」とは、略同一の撮像範囲の画像であり、一方の画像の撮像範囲は他方の画像の撮像範囲に対して所定の比率だけ広くてもよい。例えば、平面画像表示装置12に表示される画像の撮像範囲(当該画像に表示される仮想空間の範囲)は、立体画像表示装置11に表示される画像の撮像範囲に対して(縦及び/又は横方向に関して)70%に設定されてもよい。このように、本実施形態では、平面画像表示装置12に表示される画像の撮像範囲は、立体画像表示装置11に表示される画像の撮像範囲と略同一であるため、ユーザは、平面画像表示装置12の画面を見ずに、立体画像表示装置11の画面を見ながらオブジェクトを操作することができる。すなわち、2つの画像の撮像範囲が同じであるため、例えば、立体画像表示装置11の画面の右側に子供オブジェクトが表示される場合は、平面画像表示装置12の画面の右側にも同じオブジェクトが表示される。従って、ユーザは、平面画像表示装置12の画面を確認することなく、立体画像表示装置11の画面を見ながら、平面画像表示装置12の画面上でオブジェクトを操作することができる。
【0138】
また、2つの画像に含まれるオブジェクトが略同じ大きさ(一方の画像のオブジェクトが他方の画像のオブジェクトに対して(縦及び/又は横方向に関して)30%程度大きくてもよい)となるように、平面画像表示装置12に表示される画像の大きさや撮像範囲が調整されてもよい。例えば、平面画像表示装置12に表示される画像の撮像範囲が狭く設定されて表示された場合、当該画像に含まれるオブジェクトは拡大して表示される(ズームされる)。平面画像表示装置12に表示される画像に含まれるオブジェクトは、画像自体(画面自体)の大きさによっても定められるし、撮像範囲によっても定められる。従って、ユーザが立体画像表示装置11の画面に含まれるオブジェクトを見ながら平面画像表示装置12の画面をタッチ操作するのに違和感がない程度に、平面画像表示装置12に表示される画像の大きさや撮像範囲が調整されてもよい。
【0139】
さらに、2つの画面に表示されるオブジェクトの大きさは、必ずしも略同じである必要はない。例えば、立体画像表示装置11の画面が、平面画像表示装置12の画面よりも数倍大きい場合においても、ユーザは、立体画像表示装置11の画面を見ながら違和感なく平面画像表示装置12の画面を操作することも可能である。すなわち、2つの画面に表示される画像に含まれるオブジェクトが同じ方向から撮像されることによって、当該オブジェクトの見え方が同じ(当該オブジェクトを見る方向が同じ)であればよい。これにより、ユーザは、画面の大きさの違いに関係なく、一方の画面を見ながら他方の画面上を指示して当該オブジェクトを容易に操作することができる。
【0140】
また、本実施形態では、一方の画面は立体表示可能な画面(立体画像表示装置11)であり、他方の画面は平面表示する画面(平面画像表示装置12)であるとした。他の実施形態では、例えば、一方の画面が高解像度の画面で、他の画面が低解像度の画面であってもよい。すなわち、一方の画面は他方の画面と異なる表示方式(立体表示可能な画面と平面表示の画面、高解像度の画面と低解像度の画面等)のものであってもよい。
【0141】
また、本実施形態では、仮想ステレオカメラ17の左右の仮想カメラの撮像方向は同じであり、仮想カメラ18の撮像方向も同じであるとした。他の実施形態では、これらの撮像方向は必ずしも完全に一致している必要はなく、略同じであればよい。例えば、図4において、左目用仮想カメラ17aの撮像方向Aを子供オブジェクト41と左目用仮想カメラ17aとを結ぶ直線の方向にし、右目用仮想カメラ17bの撮像方向Bを子供オブジェクト41と右目用仮想カメラ17bとを結ぶ直線の方向にしてもよい。このように左右の仮想カメラの撮像方向が設定されると、立体画像表示装置11に表示されるオブジェクト(子供オブジェクト41および家具オブジェクト44)の立体感が変わる。また、仮想カメラ18の撮像方向も、左目用仮想カメラ17a又は右目用仮想カメラ17bの撮像方向に対して所定の角度(数度〜10数度程度)だけ異なってもよい。このように仮想カメラ18の撮像方向が仮想ステレオカメラ17の撮像方向と所定の角度だけ異なるように設定されても、平面画像表示装置12の画面には、立体画像表示装置11に表示される立体的なオブジェクトを略同じ方向から平面的に見た画像が表示される。従って、ユーザは、立体画像表示装置11に表示される立体的なオブジェクトを見ながら、平面画像表示装置12に表示される当該オブジェクトを指示して操作することができる。
【0142】
また、本実施形態では、立体画像表示装置11に立体画像(立体視可能な画像)を、平面画像表示装置12に平面画像を表示した。他の実施形態では、表示方式が同じ2つの表示領域に、オブジェクトを略同じ方向から見た画像が同時に表示されてもよい。例えば、他の実施形態では、第1の表示領域にオブジェクトを含む第1画像を平面表示し、第2の表示領域に当該オブジェクトを含む、第1画像と同様の第2画像を平面表示してもよい。
【0143】
以上のように、第1の表示領域に表示される第1画像は、所定の表示対象を所定の方向から見た画像であり、第2の表示領域に表示される第2画像は、当該所定の表示対象を上記所定の方向と略同じ方向から見た画像であってもよい。そして、ユーザが第2の表示領域上の位置を指示することによって、第1の表示領域および第2の表示領域に表示される所定の表示対象を操作してもよい。このように、2つの表示領域に所定の表示対象を略同じ方向から見た画像が表示されることによって、ユーザは、第1の表示領域に表示された画像に含まれる所定の表示対象を見ながら、第2の表示領域に表示された画像に含まれる所定の表示対象を指示することができる。これにより、ユーザは、所定の表示対象を操作することができる。
【0144】
また、本実施形態では裸眼で立体視可能なディスプレイを用いる場合について説明したが、時分割方式や偏向方式、アナグリフ方式(赤青眼鏡方式)などの眼鏡を用いて立体表示を行うような場合でも、本発明は適用可能である。
【0145】
また、本実施形態では、仮想空間に存在するオブジェクトを操作するゲームであるとした。他の実施形態では、実空間をステレオカメラで撮像した画像を立体画像表示装置11に表示し、同様の画像を平面画像表示装置12に表示してもよい。そして、平面画像表示装置12に表示された画像を指示して操作することで、立体画像表示装置11に表示された画像を変化させてもよい。例えば、平面画像表示装置12に表示された画像を操作して、立体画像表示装置11に表示された画像を伸縮させたり、修正したりしてもよい。
【0146】
また、上記実施形態では、立体画像表示装置11及び平面画像表示装置12の双方を備える携帯型のゲーム装置10を想定した。他の実施形態では、例えば、立体表示可能な第1の表示装置と、平面表示のみを行う第2の表示装置と、上述した処理を行う制御装置とが、別々のハードウェアとして構成されてもよい。そして、これらの要素が有線又は無線によって互いに接続されることによって、表示制御システムとして機能してもよい。すなわち、当該表示制御システムは、上記実施形態のように1つの装置によって構成されてもよいし、複数の装置によって構成されてもよい。
【0147】
また、他の実施形態では、立体表示を行う立体表示領域と平面表示を行う平面表示領域とが1つの画面上で設定可能な表示装置が、上記立体画像表示装置11及び平面画像表示装置12として、用いられてもよい。すなわち、同一画面上に異なる2つの表示領域が設定可能な表示装置が用いられてもよい。
【0148】
また、他の実施形態では、表示装置と指示位置検出装置とを有する任意の情報処理装置(例えば、PDA(Personal Digital Assistant)、携帯電話等)にも上記表示制御方法が適用されてもよい。
【0149】
また、上記実施形態においては、ゲーム装置10のCPU30が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置10が備える専用回路によって行われてもよい。例えば、立体画像表示装置11および平面画像表示装置12に表示する画像を生成する専用のGPU(Graphics Processing Unit)等が設けられてもよい。
【0150】
(第2実施形態)
(第2実施形態のゲーム装置の構成)
以下、本発明の第2実施形態に係るゲーム装置について説明する。図15は、開状態におけるゲーム装置200の外観を示す正面図である。図16(a)は閉状態におけるゲーム装置200の左側面図であり、図16(b)は閉状態におけるゲーム装置200の正面図であり、図16(c)は閉状態におけるゲーム装置200の右側面図であり、図16(d)は閉状態におけるゲーム装置200の背面図である。ゲーム装置200は携帯型のゲーム装置であり、図15および図16に示すように折り畳み可能に構成されている。図15は、開いた状態(開状態)におけるゲーム装置200を示し、図16は、閉じた状態(閉状態)におけるゲーム装置200を示している。ゲーム装置200は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置200は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【0151】
まず、図15および図16を参照して、ゲーム装置200の外観構成について説明する。図15および図16に示されるように、ゲーム装置200は、下側ハウジング211および上側ハウジング221を有する。下側ハウジング211と上側ハウジング221とは、開閉可能(折り畳み可能)に接続されている。
【0152】
(下側ハウジングの説明)
まず、下側ハウジング211の構成について説明する。図15および図16に示すように、下側ハウジング211には、下側LCD(Liquid Crystal Display:液晶表示装置)212、タッチパネル213、各操作ボタン214A〜214L、アナログスティック215、LED216A〜216B、挿入口217、および、マイクロフォン用孔218が設けられる。以下、これらの詳細について説明する。
【0153】
図15に示すように、下側LCD212は下側ハウジング211に収納される。下側LCD212の画素数は、例えば、320dot×240dot(横×縦)であってもよい。下側LCD212は、後述する上側LCD222とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、第2実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD212として、任意の解像度の表示装置を利用することができる。
【0154】
図15に示されるように、ゲーム装置200は、入力装置として、タッチパネル213を備えている。タッチパネル213は、下側LCD212の画面上に装着されている。なお、第2実施形態では、タッチパネル213は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。第2実施形態では、タッチパネル213として、下側LCD212の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル213の解像度と下側LCD212の解像度が一致している必要はない。また、下側ハウジング211の上側面には挿入口217(図15および図16(d)に示す点線)が設けられている。挿入口217は、タッチパネル213に対する操作を行うために用いられるタッチペン228を収納することができる。なお、タッチパネル213に対する入力は通常タッチペン228を用いて行われるが、タッチペン228に限らずユーザの指でタッチパネル213に対する入力をすることも可能である。
【0155】
各操作ボタン214A〜214Lは、所定の入力を行うための入力装置である。図15に示されるように、下側ハウジング211の内側面(主面)には、各操作ボタン214A〜214Lのうち、十字ボタン214A(方向入力ボタン214A)、ボタン214B、ボタン214C、ボタン214D、ボタン214E、電源ボタン214F、セレクトボタン214J、HOMEボタン214K、およびスタートボタン214Lが、設けられる。十字ボタン214Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン214A〜214E、セレクトボタン214J、HOMEボタン214K、およびスタートボタン214Lには、ゲーム装置200が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン214Aは選択操作等に用いられ、各操作ボタン214B〜214Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン214Fは、ゲーム装置200の電源をオン/オフするために用いられる。
【0156】
アナログスティック215は、方向を指示するデバイスである。アナログスティック215は、そのキートップが、下側ハウジング211の内側面に平行にスライドするように構成されている。アナログスティック215は、ゲーム装置200が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置200によって実行される場合、アナログスティック215は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック215のキートップがスライドした方向に移動される。なお、アナログスティック215として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0157】
また、下側ハウジング211の内側面には、マイクロフォン用孔218が設けられる。マイクロフォン用孔218の下部には後述する音声入力装置としてのマイク242(図17参照)が設けられ、当該マイク242がゲーム装置200の外部の音を検出する。
【0158】
図16(b)および(d)に示されるように、下側ハウジング211の上側面には、Lボタン214GおよびRボタン214Hが設けられている。Lボタン214GおよびRボタン214Hは、例えば、撮像部のシャッターボタン(撮影指示ボタン)として機能することができる。また、図16(a)に示されるように、下側ハウジング211の左側面には、音量ボタン214Iが設けられる。音量ボタン214Iは、ゲーム装置200が備えるスピーカの音量を調整するために用いられる。
【0159】
図16(a)に示されるように、下側ハウジング211の左側面には開閉可能なカバー部211Cが設けられる。このカバー部211Cの内側には、ゲーム装置200とデータ保存用外部メモリ245とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ245は、コネクタに着脱自在に装着される。データ保存用外部メモリ245は、例えば、ゲーム装置200によって撮像された画像のデータを記憶(保存)するために用いられる。
【0160】
また、図16(d)に示されるように、下側ハウジング211の上側面には、ゲーム装置200とゲームプログラムを記録した外部メモリ244を挿入するための挿入口211Dが設けられ、その挿入口211Dの内部には、外部メモリ244と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ244がゲーム装置200に接続されることにより、所定のゲームプログラムが実行される。
【0161】
また、図15および図16(c)に示されるように、下側ハウジング211の下側面にはゲーム装置200の電源のON/OFF状況をユーザに通知する第1LED216A、下側ハウジング211の右側面にはゲーム装置200の無線通信の確立状況をユーザに通知する第2LED216Bが設けられる。ゲーム装置200は他の機器との間で無線通信を行うことが可能であり、第2LED216Bは、無線通信が確立している場合に点灯する。ゲーム装置200は、例えば、IEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング211の右側面には、この無線通信の機能を有効/無効にする無線スイッチ219が設けられる(図16(c)参照)。
【0162】
なお、図示は省略するが、下側ハウジング211には、ゲーム装置200の電源となる充電式電池が収納され、下側ハウジング211の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0163】
(上側ハウジングの説明)
次に、上側ハウジング221の構成について説明する。図15および図16に示すように、上側ハウジング221には、上側LCD(Liquid Crystal Display:液晶表示装置)222、外側撮像部223(外側撮像部(左)223aおよび外側撮像部(右)223b)、内側撮像部224、3D調整スイッチ225、および、3Dインジケータ226が設けられる。以下、これらの詳細について説明する。
【0164】
図15に示すように、上側LCD222は上側ハウジング221に収納される。上側LCD222の画素数は、例えば、800dot×240dot(横×縦)であってもよい。なお、第2実施形態では上側LCD222は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD222として、任意の解像度の表示装置を利用することができる。
【0165】
上側LCD222は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが時間的に交互に表示され、メガネを用いてユーザの左目に左目用画像が右目に右目用画像が視認される方式の表示装置であってもよい。本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。第2実施形態では、上側LCD222はパララックスバリア方式のものとする。上側LCD222は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD222は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD222は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD222は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ225によって行われる。
【0166】
外側撮像部223は、上側ハウジング221の外側面(上側LCD222が設けられた主面と反対側の背面)221Dに設けられた2つの撮像部(223aおよび223b)の総称である。外側撮像部(左)223aと外側撮像部(右)223bの撮像方向は、いずれも当該外側面221Dの外向きの法線方向である。外側撮像部(左)223aと外側撮像部(右)223bとは、ゲーム装置200が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部(左)223aおよび外側撮像部(右)223bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0167】
内側撮像部224は、上側ハウジング221の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部224は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0168】
3D調整スイッチ225は、スライドスイッチであり、上述のように上側LCD222の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ225は、上側LCD222に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。3D調整スイッチ225のスライダ225aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ225aの位置に応じて上側LCD222の表示モードが設定される。また、スライダ225aの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ225aの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。
【0169】
3Dインジケータ226は、上側LCD222が立体表示モードか否かを示す。3Dインジケータ226は、LEDであり、上側LCD222の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ226は、上側LCD222が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【0170】
また、上側ハウジング221の内側面には、スピーカ孔221Eが設けられる。後述するスピーカ243からの音声がこのスピーカ孔221Eから出力される。
【0171】
(ゲーム装置200の内部構成)
次に、図17を参照して、ゲーム装置200の内部の電気的構成について説明する。図17は、ゲーム装置200の内部構成を示すブロック図である。図17に示すように、ゲーム装置200は、上述した各部に加えて、情報処理部231、メインメモリ232、外部メモリインターフェイス(外部メモリI/F)233、データ保存用外部メモリI/F234、データ保存用内部メモリ235、無線通信モジュール236、ローカル通信モジュール237、リアルタイムクロック(RTC)238、加速度センサ239、電源回路240、およびインターフェイス回路(I/F回路)241等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング211(または上側ハウジング221でもよい)内に収納される。
【0172】
情報処理部231は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部231のCPU311は、ゲーム装置200内のメモリ(例えば外部メモリI/F233に接続された外部メモリ244やデータ保存用内部メモリ235)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部231のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部231は、VRAM(Video RAM)313を含む。情報処理部231のGPU312は、情報処理部231のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部231のGPU312は、VRAM313に描画された画像を上側LCD222及び/又は下側LCD212に出力し、上側LCD222及び/又は下側LCD212に当該画像が表示される。
【0173】
情報処理部231には、メインメモリ232、外部メモリI/F233、データ保存用外部メモリI/F234、および、データ保存用内部メモリ235が接続される。外部メモリI/F233は、外部メモリ244を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F234は、データ保存用外部メモリ245を着脱自在に接続するためのインターフェイスである。
【0174】
メインメモリ232は、情報処理部231(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ232は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ244や他の機器等)から取得されるプログラムを一時的に記憶したりする。第2実施形態では、メインメモリ232として例えばPSRAM(Pseudo−SRAM)を用いる。
【0175】
外部メモリ244は、情報処理部231によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ244は、例えば読み取り専用の半導体メモリで構成される。外部メモリ244が外部メモリI/F233に接続されると、情報処理部231は外部メモリ244に記憶されたプログラムを読み込むことができる。情報処理部231が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ245は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ245には、外側撮像部223で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ245がデータ保存用外部メモリI/F234に接続されると、情報処理部231はデータ保存用外部メモリ245に記憶された画像を読み込み、上側LCD222及び/又は下側LCD212に当該画像を表示することができる。
【0176】
データ保存用内部メモリ235は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ235には、無線通信モジュール236を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0177】
無線通信モジュール236は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール237は、所定の通信方式(例えば独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール236およびローカル通信モジュール237は情報処理部231に接続される。情報処理部231は、無線通信モジュール236を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール237を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0178】
また、情報処理部231には、加速度センサ239が接続される。加速度センサ239は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ239は、下側ハウジング211の内部に設けられる。加速度センサ239は、図15に示すように、下側ハウジング211の長辺方向をx軸、下側ハウジング211の短辺方向をy軸、下側ハウジング211の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ239は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ239は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部231は、加速度センサ239が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置200の姿勢や動きを検出することができる。
【0179】
また、情報処理部231には、RTC238および電源回路240が接続される。RTC238は、時間をカウントして情報処理部231に出力する。情報処理部231は、RTC238によって計時された時間に基づき現在時刻(日付)を計算する。電源回路240は、ゲーム装置200が有する電源(下側ハウジング211に収納される上記充電式電池)からの電力を制御し、ゲーム装置200の各部品に電力を供給する。
【0180】
また、情報処理部231には、I/F回路241が接続される。I/F回路241には、マイク242およびスピーカ243が接続される。具体的には、I/F回路241には、図示しないアンプを介してスピーカ243が接続される。マイク242は、ユーザの音声を検知して音声信号をI/F回路241に出力する。アンプは、I/F回路241からの音声信号を増幅し、音声をスピーカ243から出力させる。また、タッチパネル213はI/F回路241に接続される。I/F回路241は、マイク242およびスピーカ243(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル213からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部231に出力する。タッチ位置データは、タッチパネル213の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル213からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部231は、タッチ位置データを取得することにより、タッチパネル213に対して入力が行われた位置を知ることができる。
【0181】
操作ボタン214は、上記各操作ボタン214A〜214Lからなり、情報処理部231に接続される。操作ボタン214から情報処理部231へは、各操作ボタン214A〜214Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部231は、操作ボタン214から操作データを取得することによって、操作ボタン214に対する入力に従った処理を実行する。
【0182】
下側LCD212および上側LCD222は情報処理部231に接続される。下側LCD212および上側LCD222は、情報処理部231(のGPU312)の指示に従って画像を表示する。第2実施形態では、情報処理部231は、上側LCD222に立体画像(立体視可能な画像)を表示させる。
【0183】
具体的には、情報処理部231は、上側LCD222のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD222の視差バリアがONになっている場合、情報処理部231のVRAM313に格納された右目用画像と左目用画像とが、上側LCD222に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD222の画面に表示される。そして、上側LCD222の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD222の画面には立体視可能な画像が表示される。
【0184】
外側撮像部223および内側撮像部224は、情報処理部231に接続される。外側撮像部223および内側撮像部224は、情報処理部231の指示に従って画像を撮像し、撮像した画像データを情報処理部231に出力する。
【0185】
3D調整スイッチ225は、情報処理部231に接続される。3D調整スイッチ225は、スライダ225aの位置に応じた電気信号を情報処理部231に送信する。
【0186】
また、3Dインジケータ226は、情報処理部231に接続される。情報処理部231は、3Dインジケータ226の点灯を制御する。例えば、情報処理部231は、上側LCD222が立体表示モードである場合、3Dインジケータ226を点灯させる。
【0187】
また、情報処理部231には、角速度センサ246が接続される。角速度センサ246は、各軸(x軸、y軸、z軸)周りの角速度を検出する。ゲーム装置200は、角速度センサ246が逐次検出する角速度に基づいて、実空間におけるゲーム装置200の姿勢を算出することができる。具体的には、ゲーム装置200は、角速度センサ246によって検出された各軸周りの角速度を時間で積分することによって、各軸周りのゲーム装置200の回転角を算出することができる。以上がゲーム装置200の内部構成の説明である。
【0188】
(第2実施形態のゲームの概要)
次に、図18および図19を参照して、第2実施形態に係るゲームの概要について説明する。図18は、第2実施形態に係るゲームの実行中において、上側LCD222および下側LCD212の画面に表示されるゲーム画像の一例を示す図である。第2実施形態に係るゲームでは、タッチパネル213(下側LCD212)に対するタッチ操作によって、犬オブジェクト50を動作させることにより、犬に触れたり犬と遊んだりする感覚をユーザに与える。
【0189】
図18に示すように、上側LCD222には、犬を模した犬オブジェクト50が立体表示(立体視可能に表示)された立体画像50Aが表示される。犬オブジェクト50は、3次元の仮想空間(XYZ座標系(ワールド座標系)で表される空間)に設定された仮想オブジェクトである。立体画像50Aは、仮想空間に存在する犬オブジェクト50を当該仮想空間に設定された仮想ステレオカメラ(左右の仮想カメラ;第1および第2の仮想カメラ)で撮像した画像である。仮想ステレオカメラによって左目用画像および右目用画像が撮像されて上側LCD222に表示されることによって、犬オブジェクト50が立体表示される。また、上側LCD222には、仮想空間に存在するボールオブジェクト51が立体表示された立体画像51Aが表示される。立体画像50Aおよび立体画像51Aは、例えば、32bitカラーで表示される。
【0190】
また、下側LCD212には、犬オブジェクト50をシルエット表示したシルエット画像50Bが表示される。上記仮想ステレオカメラの中間に設定された仮想カメラ(第3の仮想カメラ)で犬オブジェクト50を撮像した画像であり、犬オブジェクト50をシルエット表示(単色で表示)した画像である。なお、ボールオブジェクト51は下側LCD212には表示されない。すなわち、下側LCD212には、操作対象である犬オブジェクト50のみが表示され、その他のオブジェクトは表示されない。
【0191】
下側LCD212に表示されたシルエット画像50Bをユーザがタッチペン228を用いてタッチすると、上側LCD222にはタッチされた位置を示すカーソル60が表示される。すなわち、下側LCD212においてタッチされた位置に対応する上側LCD222上の位置にカーソル60が表示される。カーソル60は、人の手を模したオブジェクトである。ユーザが下側LCD212をタッチしたままタッチペン228を画面上でスライドさせると、当該タッチペン228の動きに応じてカーソル60も動作する。そして、タッチペン228の動作(カーソル60の動作)に応じて、犬オブジェクト50が動作する。例えば、図18に示すように、犬オブジェクト50の頭部がタッチされている場合においてタッチペン228を上下方向に往復移動させると、カーソル60も上側LCD222の上下方向に往復動作する。このカーソル60の動作は、ユーザが犬オブジェクト50の頭を撫でる動作に対応する。当該動作に応じて、例えば、犬オブジェクト50は頭を撫でられて喜ぶような動作をする。
【0192】
図19は、ユーザが犬オブジェクト50の背中部分をタッチした様子を示す図である。図19に示すように、ユーザが犬オブジェクト50の背中部分をタッチすると、図18のように頭部をタッチした場合と比較して、カーソル60の姿勢が変化する。具体的には、カーソル60は、タッチした部位の表面に沿うようにして表示される。
【0193】
以上のように、ユーザが下側LCD212に表示されたシルエット画像50Bをタッチペン228(又は指)でタッチすることによって、上側LCD222に表示されたカーソル60を操作する。そして、ユーザはカーソル60を用いて犬オブジェクト50に触れることで、犬オブジェクト50を操作する。
【0194】
(ゲーム処理の詳細)
次に、図20から図22を参照してカーソル60の姿勢の決定の仕方、および、その処理の詳細について説明する。まず、ゲーム処理の際にメインメモリ232およびVRAM313(以下、これらを総称してRAMと呼ぶことがある)に記憶される主なデータについて説明する。図20は、ゲーム装置200のRAM(メインメモリ232等)のメモリマップを示す図である。図20に示されるように、RAMには、ゲームプログラム270、タッチ位置データ271、描画画像データ272、深度値データ273、犬オブジェクト情報データ274、カーソルデータ275等が記憶される。これらの他、RAMには犬オブジェクト50の画像データやユーザによって行われたボタン操作に関するデータ等が記憶される。
【0195】
ゲームプログラム270は、後述するフローチャートに示されるゲーム処理を情報処理部231(CPU311)に実行させるためのプログラムである。
【0196】
タッチ位置データ271には、タッチパネル213が検出したタッチ位置Tが格納される。具体的には、タッチ位置データ271は所定の長さの配列であり、当該配列の各要素には、タッチパネル213上(下側LCD212の画面上)の位置を示す座標値(TxTy座標系)が格納される。TxTy座標系は、例えば、下側LCD212の左下端を原点として、下側LCD212の横方向にTx座標軸が設定され、縦方向にTy座標軸が設定された座標系である。タッチ位置データ271には、タッチパネル213が検出したタッチ位置を示す座標値が時系列に格納される。
【0197】
描画画像データ272は、上側LCD222および下側LCD212に表示される画像を示すデータである。具体的には、描画画像データ272は、上側LCD222に表示される左目用画像と右目用画像、および、下側LCD212に表示されるシルエット画像が含まれる。後述する表示処理によって、各画像が生成され、描画画像データ272としてRAMに記憶される。
【0198】
深度値データ273には、下側LCD212に表示された画像の画素毎の深度値(奥行方向の位置を示す値;デプス値)が格納される。具体的には、深度値データ273は、下側LCD212に表示された画像の各画素の深度値をマトリクス状に配置した2次元配列である。2次元配列の各要素には、下側LCD212に表示される画像の各画素の深度値が格納される。
【0199】
犬オブジェクト情報データ274は、犬オブジェクト50の仮想空間における位置や形状等を示すデータである。具体的には、犬オブジェクト情報データ274は、犬オブジェクト50の仮想空間(XYZ座標系)における位置、犬オブジェクト50の各部位(図23参照)に関する情報等を含む。
【0200】
カーソルデータ275は、カーソル60の仮想空間における位置および姿勢を示すデータである。カーソル60の位置は、ユーザによってタッチされたタッチパネル213上の位置に応じた3次元仮想空間の位置である。カーソル60の姿勢は、カーソル60の仮想空間における姿勢である。
【0201】
(第2実施形態のゲーム処理)
次に、ゲーム処理の詳細について図21から図27を参照して説明する。図21は、第2実施形態に係るゲーム処理の詳細を示すメインフローチャートである。ゲーム装置200の電源が投入されると、ゲーム装置200の情報処理部231(CPU311)は、ROMに記憶されている起動プログラムを実行し、これによってメインメモリ232等の各ユニットが初期化される。次に、不揮発性メモリ(外部メモリ244等;コンピュータ読み取り可能な記憶媒体)に記憶されたゲームプログラム70がRAM(具体的には、メインメモリ232)に読み込まれ、情報処理部231のCPU311によって当該プログラムの実行が開始される。図21のフローチャートに示す処理は、以上の処理が完了した後に情報処理部231(CPU311又はGPU312)によって行われる。
【0202】
なお、図21では、本発明に直接関連しない処理については記載を省略する。また、図21に示すステップS101〜ステップS104の処理ループは、1フレーム(例えば1/30秒又は1/60秒。フレーム時間という)毎に繰り返し実行される。
【0203】
まず、ステップS101において、情報処理部231は、カーソル設定処理を実行する。ここでは、タッチパネル213が検出したタッチ位置に基づいて、カーソル60の仮想空間における位置および姿勢が算出される。ステップS101におけるカーソル設定処理の詳細を図22を参照して説明する。図22は、カーソル設定処理(ステップS101)の詳細を示すフローチャートである。
【0204】
ステップS111において、情報処理部231は、タッチパネル213がタッチ位置Tを検出したか否かを判定する。タッチパネル213がタッチ位置Tを検出した場合、情報処理部231は、タッチ位置T(Tx,Ty)を最新のタッチ位置としてタッチ位置データ271に格納し、次にステップS112の処理を実行する。一方、タッチパネル213がタッチ位置Tを検出しなかった場合、情報処理部231は、図22に示すカーソル設定処理を終了する。
【0205】
ステップS112において、情報処理部231は、ステップS111で検出したタッチパネル213上のタッチ位置Tに対応する、画像上の指示位置Qを取得する。ここで、指示位置Qは、タッチ位置Tに対応する下側LCD212に表示された画像上の位置を示す。具体的には、情報処理部231は、ステップS111においてタッチパネル213が検出したタッチ位置Tを座標変換することによって、画像上の指示位置Q(Qx,Qy)を取得する。
【0206】
なお、下側LCD212の表示画面(およびタッチパネル213)と、下側LCD212に表示された画像(すなわち、後述するステップS104で生成された画像)とが同じ大きさである場合、タッチ位置Tと、指示位置Qとは一致する。一方、下側LCD212の表示画面(およびタッチパネル213)よりも下側LCD212に表示された画像の方が大きい場合、大きさの比率に応じてタッチ位置Tが変換されて、指示位置Qが求められる。このように、タッチ位置Tと指示位置Qとは一対一で対応するが、それぞれ2つの異なる座標系で表される位置を示す。
【0207】
以下では、タッチパネル213が検出したタッチパネル213上の座標系で表される位置を「タッチ位置T」、当該タッチ位置Tに対応する下側LCD212に表示された画像上の座標系で表される位置を「指示位置Q」として表す。また、指示位置Qに対応する3次元仮想空間の座標系(XYZ座標系)で表される位置を「3次元指示位置P」として表す。情報処理部231は、次にステップS113の処理を実行する。
【0208】
ステップS113において、情報処理部231は、指示位置Qにおける深度値(Z値)を取得する。具体的には、情報処理部231は、深度値データ273を参照して、指示位置Q(Qx,Qy)の画素の深度値を取得する。後述するステップS104において、下側LCD212に画像が表示されると、その画像の画素毎の深度値(奥行方向の位置)が深度値データ273に格納される。ここでは、前回のフレームにおいてステップS104で更新された深度値データ273を参照し、当該深度値データ273に格納された深度値が取得される。次に、ステップS114が実行される。
【0209】
ステップS114において、情報処理部231は、指示位置Qが犬オブジェクト50上か否かを判定する。すなわち、情報処理部231は、ステップS112で取得した指示位置Qが下側LCD212に表示された犬オブジェクト50のシルエット画像50B内か否かを判定する。例えば、情報処理部231は、深度値データ273を参照して、指示位置Qの画素の深度値が所定の範囲か否かを判定する。上述のように、深度値データ273は、下側LCD212に表示された画像の画素毎の深度値を示すデータである。下側LCD212に表示された画像には、操作対象である犬オブジェクト50のみが表示される。このため、犬オブジェクト50が表示された領域(シルエット画像50Bの表示領域)の各画素には所定範囲の深度値(例えば、0.9〜1.0)が格納され、犬オブジェクト50が表示されない領域には、所定の値の深度値(例えば、0)が格納される。従って、情報処理部231は、深度値データ273を用いることによって犬オブジェクト50がタッチされたか否かを判定することができる。判定結果が肯定の場合、次にステップS115の処理が実行される。判定結果が否定の場合、次にステップS120の処理が実行される。
【0210】
ステップS115において、情報処理部231は、3次元指示位置P(X,Y,Z)を算出する。具体的には、情報処理部231は、ステップS112で取得した指示位置Q(Qx,Qy)、および、ステップS113で取得した深度値(Z値)に基づいて、仮想空間における3次元指示位置Pを算出する。指示位置Qは、下側LCD212に表示された画像上の位置であり、当該指示位置Qに基づいて、第3の仮想カメラから仮想空間を見た場合の上下左右方向(カメラ座標系のXY方向)の位置が算出される。また、ステップS113で取得した深度値は、下側LCD212に表示された画像の上記指示位置Qにおける深度値であり、第3の仮想カメラから仮想空間を見た場合の奥行き方向(撮像方向;カメラ座標系のZ方向)の位置を示す。従って、当該深度値に基づいて、第3の仮想カメラの奥行き方向の位置が算出される。すなわち、仮想空間における3次元位置は、ビュー変換および射影変換により画像上の2次元位置に変換される。このため、画像上の2次元位置(仮想カメラの上下左右方向の位置)とその深度値(仮想カメラの撮像方向の位置)とを用いた逆変換により、仮想空間における3次元位置は求められる。より具体的には、情報処理部231は、透視投影変換行列の逆行列、および、仮想カメラのビュー行列の逆行列を用いて仮想空間における3次元指示位置P(X,Y,Z)を算出する。そして、情報処理部231は、算出した3次元指示位置Pをカーソルデータ275としてRAMに保存する。次に、情報処理部231はステップS116の処理を実行する。
【0211】
ステップS116において、情報処理部231は、3次元指示位置Pに基づいて、タッチされた部位を決定する。犬オブジェクト50は、複数の部位によって構成され、ステップS116においては、タッチした部位が決定される。
【0212】
図23は、犬オブジェクト50が複数の部位によって構成される様子を示す図である。図23に示すように、犬オブジェクト50は、複数の部位によって構成され、例えば、部位151は頭部を形成し、部位155は犬の後ろ半身を形成する。犬オブジェクト情報データ274には、各部位に関する情報が含まれる。各部位の形状は、例えば球や円柱、カプセル状(例えば図23の部位155)であったりする。より具体的には、各部位は線分(ボーン)によって表わされ、当該線分からの距離が定められることによって、各部位は定義される。図24は、後ろ半身の部位155の詳細を示す図である。図24に示すように、部位155は、点155bおよび点155cを結ぶ線分155aによって表わされる。犬オブジェクト情報データ274のうちの部位155に関する情報には、線分155aの位置と長さ(点155bおよび点155cの3次元仮想空間における座標値)、および、線分155aからの距離に関する情報が含まれる。
【0213】
情報処理部231は、犬オブジェクト情報データ274を参照して、3次元指示位置Pと最も近い線分(ボーン)を検索することにより、タッチされた部位を決定する。次に、情報処理部231は、ステップS117の処理を実行する。
【0214】
ステップS117において、情報処理部231は、3次元指示位置Pにおける法線および回転角を算出する。具体的には、情報処理部231は、3次元指示位置Pを通り、タッチされた部位の表面に垂直な線を算出する。
【0215】
図25Aは、タッチされた部位155を正面から見た図であり、部位155の3次元指示位置Pにおける法線ベクトルを示す図である。また、図25Bは、部位155を図25Aの矢印方向から見た図であり、部位155の3次元指示位置Pにおける法線ベクトルを示す図である。図25Aおよび図25Bに示すように、情報処理部231は、3次元指示位置Pから線分155aに下ろした垂線の足を算出し、当該垂線の足から3次元指示位置Pに向かうベクトルを法線ベクトルとして算出する。このようにして算出される法線ベクトルは、部位155の表面に垂直なベクトルである。なお、タッチされた部位の3次元指示位置Pにおける法線を算出する方法は上記に限らずどのような方法でもよい。
【0216】
また、ステップS117において、情報処理部231は、3次元指示位置Pに基づいて、カーソル60の回転角を算出する。ここで算出されるカーソル60の回転角は、法線ベクトル周りの回転を示す角度である。カーソル60の回転角は、タッチされた部位を基準とした3次元指示位置Pの相対的な位置によって定められる。図26は、部位155がタッチされた場合において、3次元指示位置Pが部位155の中のどの領域に存在するかによって回転角が定められることを示す図である。図26に示すように、例えば、部位155の上半分がタッチされた場合、カーソル60の回転角は0度に設定される。また、部位155の下半分がタッチされた場合、カーソル60の回転角は180度に設定される。
【0217】
法線および回転角を算出した後、情報処理部231は次にステップS118の処理を実行する。
【0218】
ステップS118において、情報処理部231は、ステップS117で算出した法線および回転角に基づいて、カーソル60の仮想空間における姿勢を決定する。具体的には、情報処理部231は、ステップS117で算出した法線に対して垂直になるようにカーソル60を仮想空間に配置し、ステップS117で算出した回転角で当該カーソル60を法線周りに回転させる。そして、情報処理部231は、決定した姿勢をカーソルデータ275としてRAMに保存する。このようにしてカーソル60の姿勢が決定されることによって、カーソル60が上側LCD222に表示された場合、カーソル60はユーザがタッチした部位の表面に沿うようにして(掌が部位の表面に接触するようにして)表示される。情報処理部231は、次にステップS119の処理を実行する。
【0219】
ステップS119において、情報処理部231は、カーソル60を3D表示に設定する。具体的には、情報処理部231は、カーソル60の表示モードを示すデータを3D表示に設定して、RAMに記憶する。後述する上側LCD222の表示処理(ステップS103)が行われることによって、カーソル60が上側LCD222に立体表示される。この場合において、カーソル60は、タッチした部位の表面に沿うようにして表示され、例えば、タッチした部位が上側LCD222の画面に対して手前方向に表示される場合は、カーソル60も画面の手前方向に位置するように表示される。ステップS119の処理の後、情報処理部231は、図22に示すフローチャートの処理を終了する。
【0220】
一方、ステップS120において、情報処理部231は、カーソル60を2D表示に設定する。具体的には、情報処理部231は、カーソル60の表示モードを示すデータを2D表示に設定して、RAMに記憶する。後述する上側LCD222の表示処理(ステップS103)が行われることによって、カーソル60が上側LCD222に表示される。
【0221】
図27は、タッチパネル213がタッチを検出した場合において、犬オブジェクト50がタッチされなかったときの画面の一例を示す図である。図27に示すように、犬オブジェクト50のシルエット画像50Bの表示領域とは異なる領域がタッチされた場合、そのタッチ位置T(指示位置Q)に対応する上側LCD222上の位置にカーソル60が表示される。ここで、カーソル60はビルボード処理が行われて、平面的な矢印形状のカーソルとして表示される。また、カーソル60は、上側LCD222の画面上に位置するように表示される(すなわち、左目用画像および右目用画像が上側LCD222に表示された場合、左目用画像の中のカーソル60の表示位置と右目用画像の中のカーソル60の表示位置とが一致する)。ステップS120の処理の後、情報処理部231は、図22に示すフローチャートの処理を終了する。
【0222】
図21に戻り、情報処理部231は、ステップS101の処理の後、ステップS102の処理を実行する。
【0223】
ステップS102において、情報処理部231は、犬オブジェクト50の動作を決定する。具体的には、情報処理部231は、ステップS101で取得されたタッチ位置T(指示位置Q)に基づいて、犬オブジェクト50に対して行われた操作を判定し、判定結果に応じて、犬オブジェクト50の動作を決定する。次に、情報処理部231は、ステップS103の処理を実行する。
【0224】
ステップS103において、情報処理部231は、上側LCD222の表示処理を行う。具体的には、情報処理部231は、ステップS102の決定に応じて犬オブジェクト50を動作させる。さらに、情報処理部231は、ステップS101のカーソル設定処理の結果に応じてカーソル60を仮想空間に配置する。例えば、カーソル設定処理において、カーソルを3D表示にする設定が行われた場合(すなわち、ステップS119の処理が行われた場合)、ステップS115で算出された3次元指示位置Pに、ステップS118において決定された姿勢でカーソルオブジェクト60を仮想空間に配置する。そして、情報処理部231は、仮想空間に設定された仮想ステレオカメラ(左右の仮想カメラ;第1および第2のカメラ)で犬オブジェクト50、ボールオブジェクト51、および、カーソルオブジェクト60を撮像する。これにより、犬オブジェクト50、ボールオブジェクト51、および、カーソルオブジェクト60を含む仮想空間を撮像した左目用画像と右目用画像とが生成される。そして、情報処理部231は、生成した左目用画像および右目用画像を上側LCD222に出力する。次に、情報処理部231は、ステップS104の処理を実行する。
【0225】
ステップS104において、情報処理部231は、下側LCD212の表示処理を行う。具体的には、情報処理部231は、上記仮想ステレオカメラの左右の仮想カメラの中間の位置に設定された仮想カメラ(第3の仮想カメラ)で犬オブジェクト50を撮像する。ここで、犬オブジェクト50はシルエット表示に設定され、犬オブジェクト50以外のボールオブジェクト51およびカーソルオブジェクト60は、非表示に設定される。これにより、下側LCD212には、犬オブジェクト50のシルエット画像50Bのみが表示される。より具体的には、情報処理部231は、仮想カメラ(第3の仮想カメラ)のビュー行列を用いてXYZ座標系で表された犬オブジェクト50をビュー座標変換し、さらに射影行列を用いて射影変換する。これにより、犬オブジェクト50を第3の仮想カメラで撮像した画像(図18および図19に示すシルエット画像50B)が生成される。また、情報処理部231は、当該画像を生成することによって得られる深度値(Z値)を深度値データ273としてRAMに記憶する。そして、情報処理部231は、生成した画像を下側LCD212に出力する。なお、第3の仮想カメラは、必ずしも仮想ステレオカメラの左右の仮想カメラの中間に設定される必要はなく、左右の仮想カメラの間の任意の位置に設定されてもよい。以上で、図21に示すフローチャートの説明を終了する。
【0226】
なお、処理の順番は図21に示すものに限らず、例えば、上側LCDおよび下側LCDの表示処理の後に、カーソル設定処理が行われてもよい。また、上記では、下側LCD212に既に表示された画像の深度値を用いて、カーソル60が仮想空間に設定されたが、カーソル60を仮想空間に設定するために、上記第3の仮想カメラを用いて仮想空間を撮像することによって画像および深度値を生成してもよい。すなわち、カーソル設定処理を行う前に第3の仮想カメラで仮想空間を撮像し、当該撮像した画像と深度値とを用いて、カーソル60を設定してもよい。そして、カーソル60を仮想空間に設定した後、再び第3の仮想カメラで仮想空間を撮像して、下側LCD212に当該撮像した画像を表示してもよい。
【0227】
以上のように、第2実施形態では、タッチパネル213によってタッチ位置Tを検出し、タッチ位置Tに対応する画像上の指示位置Qと、当該指示位置Qの深度値とを用いて、仮想空間における3次元指示位置Pが求められる。そして、当該3次元指示位置Pにカーソル60が配置される。また、カーソル60の姿勢は、タッチされた部位の3次元指示位置Pにおける法線に基づいて設定される。これにより、指示位置Qに対応する仮想空間上の位置にカーソル60を配置することができる。
【0228】
第2実施形態においては、下側LCD212の表示処理において算出される深度値を用いて、仮想空間における3次元指示位置Pが算出されるため、複雑な計算をすることなく容易にタッチ位置Tに対応する3次元仮想空間の位置を求めることができる。例えば、タッチパネル213が検出したタッチ位置Tに対応する3次元仮想空間の位置を求める場合、幾何学的な計算によって当該3次元空間の位置を求めることが考えられる。すなわち、タッチ位置Tから仮想カメラの撮像方向に伸びる3次元直線を算出し、当該3次元直線が犬オブジェクト50の各部位と接触するか否かを判定する。そして、3次元直線が接触する部位が存在する場合、その部位と3次元直線とが交わる点が、タッチ位置Tに対応する3次元仮想空間の位置として求められる。しかしながら、このような幾何学的方法では、計算が複雑になり、処理負荷が高くなる。例えば、部位と部位との接続部分がタッチされた場合、3次元指示位置Pが正確に求められないと、カーソル60が画面に表示されたときに部位によって隠れたりすることがある。このため、3次元指示位置Pを正確に求める必要があるが、幾何学的方法では3次元指示位置Pを正確に求めようとすればするほど、仮想モデル(犬オブジェクト)の形状を厳密に定義する必要がある。従って、幾何学的方法では3次元指示位置Pを正確に求めようとすればするほど、より複雑な計算を行う必要があり、処理負荷が高くなる。一方、第2実施形態による方法では、表示処理において得られる深度値を用いるため、特別な計算を要することなく、タッチパネル213が検出したタッチ位置Tに対応する3次元空間の3次元指示位置Pを正確に求めることができる。また、3次元指示位置Pは、既に表示された画像における指示位置Qと当該画像の指示位置Qの深度値とを用いて算出されるため、算出される3次元指示位置Pはタッチされた部位のうちの画面に表示された部分になる。このため、第2実施形態に係る方法を用いて3次元指示位置Pを算出し、3次元指示位置Pにカーソル60を配置して表示すると、当該カーソル60は部位の表面に表示される。
【0229】
また、第2実施形態では、カーソル60は、タッチした部位の表面に沿うようにして表示される。すなわち、第2実施形態では、3次元指示位置Pにおける犬オブジェクト50の部位の法線に基づいて、カーソル60の姿勢が決定される。カーソル60は、指示された犬オブジェクト50の部位の表面に沿うようにして3次元の仮想空間に配置され、表示される。このため、犬オブジェクト50に触れるような感覚をユーザに与えることができる。
【0230】
(変形例)
なお、第2実施形態では、下側LCD212に犬オブジェクト50のシルエット画像を表示し、上側LCD222に犬オブジェクト50の立体視画像を表示した。他の実施形態では、上側LCD222には立体視画像ではなく、平面画像が表示されてもよい。また、下側LCD212には、シルエット画像ではなく上側LCD222と同じ画像が表示されてもよい。
【0231】
また、第2実施形態では、下側LCD212に表示された画像の深度値を用いて、仮想空間の3次元指示位置Pを算出した。他の実施形態では、上側LCD222に表示された左右の画像のうちの何れかの画像の深度値を用いて、3次元指示位置Pが算出されてもよい。
【0232】
また、第2実施形態では、下側LCD212に表示された画像の画素毎の深度値が格納されるとした。他の実施形態では、画素毎に深度値が格納される必要はなく、複数の画素によって構成される部分領域(例えば、4つの画素によって構成される四角形の小領域)毎に深度値が格納されてもよい。
【0233】
また、他の実施形態では、2画面の構成ではなく、1画面の構成であってもよい。例えば、表示画面に犬オブジェクト50の立体視画像(又は平面画像)を表示し、タッチパネル213とは異なる位置指示手段(例えば、タッチパッドやマウス等)を用いて当該画像(画面)上の位置を指示してもよい。あるいは、1画面の構成において当該画面上にタッチパネル(位置指示手段)が設けられて、当該画面に立体視画像が表示されてもよい。この場合において、位置指示手段によって指示された画像(左右何れかの画像、又は、左右の仮想カメラの間の仮想カメラで撮像した画像)上の指示位置と、当該指示位置の深度値とに基づいて、3次元の仮想空間における3次元指示位置が算出される。そして、算出した3次元指示位置にカーソルオブジェクト60を配置し、当該カーソルオブジェクト60を仮想カメラで撮像することによって、上側LCD222にカーソルオブジェクト60を表示させる。
【0234】
また、ゲーム装置200は1画面で構成され、当該画面が2つの領域に分割されてもよい。例えば、画面の一方の領域に犬オブジェクト50のカラー画像(立体視画像であってもよいし、立体視画像でなくてもよい)が表示され、画面の他方の領域に犬オブジェクト50のシルエット画像が表示されてもよい。そして、ユーザは他方の領域に表示されたシルエット画像上を指示してもよい。
【0235】
また、第2実施形態では、犬オブジェクト50の複数の部位のうち指示された部位の法線を算出し、当該法線と垂直になるように手の形をしたカーソルオブジェクト60が配置された。そして、指示された部位における位置(当該部位を基準とした3次元指示位置の相対位置)に応じてカーソルオブジェクト60が法線周りに回転された。他の実施形態では、カーソルオブジェクト60の回転角は、例えばカーソル60の移動方向等を考慮して定められてもよい。例えば、カーソル60が画面の左右方向に移動している場合、カーソル60を法線周りに90度回転させてもよい。
【0236】
また、他の実施形態では、犬オブジェクト50に限らず、(1以上の部分によって構成される)任意のゲームオブジェクトが画面に表示され、当該ゲームオブジェクトをカーソル60で操作(指示)してもよい。
【0237】
また、第2実施形態では、ユーザによって指示された位置を示すカーソル60が表示された。他の実施形態では、カーソル60に限らず任意のオブジェクトが仮想空間に配置されて表示されてもよい。すなわち、ユーザによって指示された位置と当該指示位置の深度値とに基づいて3次元指示位置が算出され、当該算出された3次元指示位置に任意のオブジェクトが配置されてもよい。
【0238】
また、他の実施形態では、上述した表示制御方法は、ゲーム装置に限らず任意の電子機器、例えば、PDA(Personal Digital Assistant)や高機能携帯電話、パーソナルコンピュータ等に適用されてもよい。
【0239】
また、他の実施形態では、携帯型ゲーム装置に限らず、画面上の位置を指示する入力装置を備える据置型のゲーム装置であってもよい。当該ゲーム装置は、テレビジョン受像器(テレビと称する)等に映像を表示し、当該テレビ画面上の位置を指示するための入力装置を備える。入力装置は、例えばテレビの周辺に設置されたマーカ部が発する赤外光を受光することで、ユーザによって指示されたテレビ画面上の位置を検出する。あるいは、入力装置が赤外光を発し、テレビの周辺に設置された受光部が入力装置からの赤外光を受光することで、ユーザによって指示された位置をゲーム装置が検出してもよい。このように、入力装置を用いてユーザによって指示された画面上の位置と、当該位置の深度値(画面に表示された画像の深度値)とを用いて、仮想空間における3次元位置が算出され、当該3次元位置にオブジェクトが配置されてもよい。
【0240】
また、第2実施形態では、表示装置として裸眼で立体視画像を表示可能なLCDが用いられた。他の実施形態では、時分割方式や偏向方式、アナグリフ方式(赤青眼鏡方式)などの眼鏡を用いて立体表示を行うような場合でも、本発明は適用可能である。
【0241】
また、他の実施形態では、有線や無線等で通信可能に接続された複数の情報処理装置が各処理を分担して処理することにより、上述した表示制御方法を実現する表示制御システムとして構築されてもよい。例えば、ユーザによって用いられる位置の指示する位置指示手段が情報処理装置と分離された構成であって、当該位置指示手段が情報処理装置に無線等で接続されてもよい。また、情報処理装置と表示装置が分離された構成で、互いに接続されてもよい。
【0242】
また、上述したゲーム処理はオンラインゲームにおいて適用されてもよい。例えば、表示装置と、当該表示装置の画面上の位置を指示する位置指示手段(タッチパネルやマウス等)とが端末に接続され、当該端末とサーバとがインターネットで接続されて、上述したゲームが行われてもよい。このようなオンラインゲームにおいては、端末とサーバとで処理を分担することによってゲームが進行するが、どのように処理を分担してもよい。例えば、サーバはゲーム空間を構築し、当該ゲーム空間における犬オブジェクト50の位置がサーバ上で管理されてもよい。ユーザは、表示装置に表示された画像を見ながら、位置指示手段を用いて、当該表示装置の画面上の位置を指示する。例えば、端末は、位置指示手段が検出した位置(タッチ位置T)に基づいて画面に表示された画像上の位置(指示位置Q)と当該位置における深度値とを取得し、画像上の位置と深度値とを含む情報をサーバに送信してもよい。サーバは当該情報に基づいて、仮想空間の3次元位置を算出してカーソルオブジェクト60を仮想空間に設定してもよい(カーソル60の位置と姿勢を設定する)。次に、サーバは、犬オブジェクト50を動作させて、仮想空間における位置及び姿勢を変化させるとともに、当該犬オブジェクトの位置及び姿勢に関する情報と、カーソルオブジェクト60の位置及び姿勢に関する情報とを端末に送信してもよい。端末は、これらの情報に基づいて、犬オブジェクトとカーソルオブジェクトとを仮想空間に配置して、仮想カメラで仮想空間を撮像し、表示装置に画像を表示させてもよい。
【0243】
また、上記実施形態においては、ゲーム装置200の情報処理部231が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置200が備える専用回路によって行われてもよい。
【0244】
また、上記ゲームプログラム(情報処理プログラム)は、上記メモリに限らず、光ディスクや磁気ディスク等、コンピュータ読み取り可能な記憶媒体に記憶されてゲーム装置200に提供されてもよい。また、例えば、ネットワーク上のサーバのRAM(記憶媒体)に上記プログラムが記憶され、ゲーム装置200が当該ネットワークに接続されて、当該プログラムがゲーム装置200に提供されてもよい。
【符号の説明】
【0245】
10 ゲーム装置
11 立体画像表示装置
12 平面画像表示装置
13 ハウジング
13a 上側ハウジング
13b 下側ハウジング
15 タッチパネル
16 スティック
17 仮想ステレオカメラ
17a 左目用仮想カメラ
17b 右目用仮想カメラ
18 仮想カメラ
30 CPU
31 メインメモリ
32 ROM
33 メモリ制御回路
34 保存用データメモリ
35 通信モジュール
41、42、43 子供オブジェクト
44 家具オブジェクト
45 アイテム
50 犬オブジェクト
51 ボールオブジェクト
60 カーソル
61 平面画像表示領域
200 ゲーム装置
211 下側ハウジング
212 下側LCD
213 タッチパネル
214 操作ボタン
215 アナログスティック
216 LED
221 上側ハウジング
222 上側LCD
223 外側撮像部
223a 外側撮像部(左)
223b 外側撮像部(右)
224 内側撮像部
225 3D調整スイッチ
226 3Dインジケータ
228 タッチペン
231 情報処理部
311 CPU
312 GPU
232 メインメモリ

【特許請求の範囲】
【請求項1】
表示制御装置のコンピュータにおいて実行される表示制御プログラムであって、前記コンピュータを、
第1表示領域に所定の表示対象を所定の方向から見た第1画像を表示する第1表示制御手段と、
前記第1表示領域に前記所定の表示対象が表示されている間、前記第1表示領域とは異なる第2表示領域に前記所定の表示対象を前記所定の方向と略同じ方向から見た第2画像を表示する第2表示制御手段と、
ユーザによる前記第2表示領域上の位置の指示を検出する指示位置検出手段が検出した指示位置に基づいて、前記第1画像および前記第2画像に含まれる前記所定の表示対象を制御する制御手段として機能させる、表示制御プログラム。
【請求項2】
前記第2画像は、前記第1画像と略同一の撮像範囲を撮像した画像である、請求項1に記載の表示制御プログラム。
【請求項3】
前記第2画像は、前記第1画像と略同じ大きさの画像である、請求項1又は2に記載の表示制御プログラム。
【請求項4】
前記第2画像に含まれる前記所定の表示対象は、前記第1画像に含まれる前記所定の表示対象と略同じ大きさである、請求項1から3の何れかに記載の表示制御プログラム。
【請求項5】
前記第2画像は、前記第1画像が撮像された位置と略同一の位置から前記所定の表示対象を見た画像である、請求項1から4の何れかに記載の表示制御プログラム。
【請求項6】
前記第2画像は、前記第1画像と比較して、前記所定の表示対象を簡略表示した画像である、請求項1から5の何れかに記載の表示制御プログラム。
【請求項7】
前記第1画像は、前記所定の表示対象を多色で表示した画像であり、
前記第2画像は、前記第1画像と比較して、前記所定の表示対象を減色して表示した画像である、請求項6に記載の表示制御プログラム。
【請求項8】
前記第2画像は、前記所定の表示対象を単色にして表示した画像である、請求項7に記載の表示制御プログラム。
【請求項9】
前記指示位置検出手段は、前記第2表示領域上に設けられ、前記第2表示領域上への接触位置を前記指示位置として検出する、請求項1から8の何れか1項に記載の表示制御プログラム。
【請求項10】
前記第1表示制御手段および前記第2表示制御手段は、仮想空間に存在する前記所定の表示対象を仮想カメラで撮像した第1画像および第2画像を、前記第1表示領域および前記第2表示領域にそれぞれ表示する、請求項1から9の何れか1項に記載の表示制御プログラム。
【請求項11】
前記第1表示制御手段は、前記第1画像として、仮想空間に存在する複数の表示対象を前記所定の方向から見た画像を表示し、
前記表示制御プログラムは、前記複数の表示対象のうち、所定の条件を満たす少なくとも1つの表示対象を選出する表示対象選出手段、として前記コンピュータをさらに機能させ、
前記第2表示制御手段は、前記第2画像として、前記複数の表示対象のうち前記表示対象選出手段によって選出された表示対象を前記表示対象選出手段によって選出されなかった表示対象とは異なる表示態様で表示した画像を、前記第2表示領域に表示する、請求項1から9の何れか1項に記載の表示制御プログラム。
【請求項12】
前記第1表示制御手段は、前記第1画像として、仮想空間に存在する複数の表示対象を前記所定の方向から見た画像を表示し、
前記表示制御プログラムは、前記複数の表示対象のうち、所定の条件を満たす少なくとも1つの表示対象を選出する表示対象選出手段、として前記コンピュータをさらに機能させ、
前記第2表示制御手段は、前記第2画像として、前記表示対象選出手段によって選出された表示対象のみを前記所定の方向と略同じ方向から見た画像を表示し、
前記制御手段は、前記指示位置検出手段が検出した前記第2表示領域上の指示位置に基づいて、前記第1画像および前記第2画像に含まれる、前記表示対象選出手段によって選出された表示対象の少なくとも1つの表示対象を制御する、請求項1から9の何れか1項に記載の表示制御プログラム。
【請求項13】
前記表示対象選出手段は、前記仮想空間に存在する前記複数の表示対象のうち、ユーザによって操作されることが可能な表示対象のみを選出する、請求項12に記載の表示制御プログラム。
【請求項14】
前記第2表示制御手段は、前記表示対象選出手段によって選出された表示対象が複数存在する場合、各表示対象の表示態様が異なるようにして前記第2画像を前記第2表示領域に表示する、請求項12又は13に記載の表示制御プログラム。
【請求項15】
前記第2表示制御手段は、前記表示対象選出手段によって選出された表示対象が複数存在する場合、隣り合う2つの表示対象の表示態様が異なるようにして前記第2画像を前記第2表示領域に表示する、請求項12又は13に記載の表示制御プログラム。
【請求項16】
前記指示位置検出手段が検出した前記第2表示領域上の指示位置に対応した前記第1表示領域上の位置に、ユーザによって指示された位置を示すカーソルを表示するカーソル表示手段、として前記コンピュータをさらに機能させる、請求項1から15の何れか1項に記載の表示制御プログラム。
【請求項17】
前記カーソル表示手段は、前記カーソルを前記第1表示領域にのみ表示する、請求項16に記載の表示制御プログラム。
【請求項18】
前記第2表示領域は、前記第1表示領域とは異なる表示方式の表示領域である、請求項1から17の何れか1項に記載の表示制御プログラム。
【請求項19】
前記第1表示領域は、立体表示可能な表示領域であり、
前記第1表示制御手段は、仮想空間内の前記所定の表示対象を前記所定の方向から仮想ステレオカメラで撮影した右目用画像をユーザの右目に、左目用画像を該ユーザの左目に視認させるように前記第1表示領域に表示させることにより、立体視可能な立体画像を前記第1画像として前記第1表示領域に表示し、
前記第2表示領域は、平面表示可能な表示領域であり、
前記第2表示制御手段は、前記第1表示領域に前記所定の表示対象が表示されている間、前記所定の方向と略同じ方向から前記所定の表示対象を撮影した平面画像を前記第2画像として前記第2表示領域に表示する、請求項1から15の何れか1項に記載の表示制御プログラム。
【請求項20】
前記指示位置検出手段が検出した第2表示領域上の指示位置が前記所定の表示対象が表示された位置であるか否かを判定する判定手段と、
前記判定手段による判定結果が肯定の場合、前記指示位置に対応する前記第1表示領域上の位置であって前記第1表示領域に表示された前記所定の表示対象の表面上に沿うようにして、カーソルを立体表示するカーソル表示手段、として前記コンピュータをさらに機能させる、請求項19に記載の表示制御プログラム。
【請求項21】
前記カーソル表示手段は、前記判定手段による判定結果が否定の場合、前記判定手段による判定結果が肯定であるときとは異なる表示態様で、前記指示位置に対応する前記第1表示領域上の位置に前記カーソルを表示する、請求項20に記載の表示制御プログラム。
【請求項22】
前記第2表示制御手段は、前記仮想ステレオカメラの左右の仮想カメラの間に設定された第2の仮想カメラを用いて前記所定の表示対象を撮影した画像を前記第2画像として前記第2表示領域に表示する、請求項19から21の何れか1項に記載の表示制御プログラム。
【請求項23】
表示制御装置のコンピュータにおいて実行される表示制御プログラムであって、前記コンピュータを、
第1表示領域に所定の表示対象を表示する第1表示制御手段と、
前記第1表示領域に前記所定の表示対象が表示されている間、前記第1表示領域に表示される所定の表示対象より表示態様を簡略して、前記所定の表示対象を前記第1表示領域とは異なる第2表示領域に表示する第2表示制御手段と、
ユーザによる前記第2表示領域上の位置の指示を検出する位置指示検出手段が検出した指示位置に基づいて、前記第1表示領域および前記第2表示領域に表示された前記所定の表示対象を制御する制御手段として機能させる、表示制御プログラム。
【請求項24】
第1表示領域に所定の表示対象を所定の方向から見た第1画像を表示する第1表示制御手段と、
前記第1表示領域に前記所定の表示対象が表示されている間、前記第1表示領域とは異なる第2表示領域に前記所定の表示対象を前記所定の方向と略同じ方向から見た第2画像を表示する第2表示制御手段と、
ユーザによる前記第2表示領域上の位置の指示を検出する指示位置検出手段が検出した指示位置に基づいて、前記第1画像および前記第2画像に含まれる前記所定の表示対象を制御する制御手段とを備える、表示制御装置。
【請求項25】
第1表示領域と、
前記第1表示領域とは異なる第2表示領域と、
前記第1表示領域に所定の表示対象を所定の方向から見た第1画像を表示する第1表示制御手段と、
前記第1表示領域に前記所定の表示対象が表示されている間、前記第2表示領域に前記所定の表示対象を前記所定の方向と略同じ方向から見た第2画像を表示する第2表示制御手段と、
ユーザによる前記第2表示領域上の位置の指示を検出する指示位置検出手段が検出した指示位置に基づいて、前記第1画像および前記第2画像に含まれる前記所定の表示対象を制御する制御手段とを備える、表示制御システム。
【請求項26】
第1表示領域に所定の表示対象を所定の方向から見た第1画像を表示する工程と、
前記第1表示領域に前記所定の表示対象が表示されている間、前記第1表示領域とは異なる第2表示領域に前記所定の表示対象を前記所定の方向と略同じ方向から見た第2画像を表示する工程と、
ユーザによる前記第2表示領域上の位置の指示を検出する指示位置検出手段が検出した指示位置に基づいて、前記第1画像および前記第2画像に含まれる前記所定の表示対象を制御する工程とを備える、表示制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25A】
image rotate

【図25B】
image rotate

【図26】
image rotate

【図27】
image rotate