情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
【課題】複数の表示装置を有効に活用して複数の表示装置に画像を表示する情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供する。
【解決手段】据置型表示装置であるテレビと、可搬型表示装置である端末装置には、海賊船が表示される。端末装置が第2の姿勢で把持された場合、第1仮想カメラの位置および画角が調整されて、テレビに表示される海賊船が縮小表示される。端末装置が第1の姿勢で把持された場合、第1仮想カメラの位置および画角が調整されて、テレビに表示される海賊船が拡大表示される。
【解決手段】据置型表示装置であるテレビと、可搬型表示装置である端末装置には、海賊船が表示される。端末装置が第2の姿勢で把持された場合、第1仮想カメラの位置および画角が調整されて、テレビに表示される海賊船が縮小表示される。端末装置が第1の姿勢で把持された場合、第1仮想カメラの位置および画角が調整されて、テレビに表示される海賊船が拡大表示される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の表示装置に表示を行う情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関する。
【背景技術】
【0002】
従来、複数の表示装置に画像を表示するゲームシステムがあった。例えば、特許文献1に記載のゲームシステムでは、携帯ゲーム機には、ゲーム空間における第1〜第4キャラクタの位置が分かる第1ゲーム画像が表示され、テレビには、第2〜第4キャラクタにそれぞれ対応する、ゲーム空間の限られた範囲の画像が表示される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−329744号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載のゲームシステムは、複数の表示装置にゲーム空間の画像を表示しているが、各プレイヤは自身のキャラクタに対応するゲーム空間の範囲を見てゲームを行うだけのものであり、複数の表示装置を有効に活用してゲームをプレイさせるという観点では改善の余地があった。
【0005】
それ故、本発明の目的は、複数の表示装置を有効に活用して複数の表示装置に画像を表示する情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【0007】
本発明の一例は、据置型表示装置に画像を表示させる情報処理装置のコンピュータによって実行される情報処理プログラムである。当該プログラムは、上記コンピュータを、第1カメラ設定手段と、第2カメラ設定手段と、第1表示制御手段と、第2表示制御手段と、判定手段として機能させる。第1カメラ設定手段は、所定のオブジェクトが配置された仮想空間内に第1の仮想カメラを設定する。第2カメラ設定手段は、上記所定のオブジェクトが配置された仮想空間内に第2の仮想カメラを設定する。第1表示制御手段は、上記第1の仮想カメラで上記所定のオブジェクトを含む上記仮想空間を撮像した第1画像を上記据置型表示装置に表示させる。第2表示制御手段は、上記第2の仮想カメラで上記仮想空間を撮像した第2画像をユーザによって把持される可搬型表示装置に表示させる。判定手段は、ユーザが上記据置型表示装置を視認している状態か否かを判定する。上記第1表示制御手段は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも上記第1画像を視認困難な画像にする。
【0008】
なお、第1仮想カメラが設定される仮想空間と第2仮想カメラが設定される仮想空間は同一の空間であってもよいし、異なる空間であってもよい。
【0009】
上記構成によれば、据置型表示装置と可搬型表示装置に上記所定のオブジェクトを含む仮想空間を撮像した画像が表示される。判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、据置型表示装置に表示される所定のオブジェクト(例えば、海賊船90A等)は、通常よりも視認困難にすることができる。すなわち、ユーザが上記据置型表示装置を視認している状態であれば所定のオブジェクトを視認容易にし、ユーザが上記据置型表示装置を視認していない状態であれば所定のオブジェクトを視認困難にすることができ、据置型表示装置の表示を制御することができる。これにより、ユーザは、例えば、据置型表示装置と可搬型表示装置とを交互に見てゲームを行うことができる。
【0010】
また、他の構成では、上記第1表示制御手段は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、少なくとも上記所定のオブジェクトを縮小表示する処理、上記第1画像のうちの上記所定のオブジェクトを含む一部あるいは全部の領域に所定の画像が表示されるようにする処理、少なくとも上記所定のオブジェクトをぼかす処理、少なくとも上記所定のオブジェクトを透明あるいは半透明にする処理、および、少なくとも上記所定のオブジェクトをモザイク表示する処理のうちの少なくとも何れかを行うことにより、上記所定のオブジェクトを視認困難にしてもよい。
【0011】
なお、上記所定の画像が表示されるようにする処理は、例えば、第1画像の一部あるいは全部の領域に、霧が発生したことを示す画像、画面がブラックアウトしたことを示す画像、他のオブジェクトの画像を表示する処理であってもよい。
【0012】
上記構成によれば、所定のオブジェクトを様々な方法で視認困難にすることができる。
【0013】
また、他の構成では、上記プログラムは、上記可搬型表示装置の姿勢を取得する姿勢取得手段として、上記コンピュータをさらに機能させてもよい。上記判定手段は、上記可搬型表示装置の姿勢が第1の姿勢である場合、ユーザが上記据置型表示装置を視認していると判定し、上記可搬型表示装置の姿勢が第2の姿勢である場合、ユーザが上記据置型表示装置を視認していないと判定する。
【0014】
なお、姿勢取得手段は、様々な方法により可搬型表示装置の姿勢を取得してもよい。例えば、姿勢取得手段は、可搬型表示装置に設けられた姿勢を検出するセンサからのデータに基づいて可搬型表示装置の姿勢を算出して取得してもよいし、可搬型表示装置において算出された当該可搬型表示装置の姿勢を取得してもよい。また、例えば、姿勢取得手段は、可搬型表示装置や空間の所定位置に配置されたカメラからの画像に基づいて、可搬型表示装置の姿勢を算出してもよい。
【0015】
上記構成によれば、可搬型表示装置の姿勢に基づいて、据置型表示装置に表示される所定のオブジェクトを視認困難にすることができ、据置型表示装置の表示を制御することができる。
【0016】
また、他の構成では、上記第1表示制御手段は、上記可搬型表示装置の姿勢が上記第2の姿勢である場合、上記第1の仮想カメラの位置および画角のうちの少なくとも一方を変更することにより、少なくとも上記所定のオブジェクトを縮小表示してもよい。
【0017】
上記構成によれば、可搬型表示装置の姿勢が上記第2の姿勢である場合、据置型表示装置に表示される所定のオブジェクトを縮小表示することができる。
【0018】
また、他の構成では、上記第2表示制御手段は、上記可搬型表示装置の姿勢に応じて、上記第2の仮想カメラの姿勢を制御してもよい。
【0019】
上記構成によれば、可搬型表示装置の姿勢に応じて、上記第2の仮想カメラの姿勢を制御することができ、当該第2の仮想カメラで仮想空間を撮像した画像を可搬型表示装置に表示させることができる。これにより、可搬型表示装置の姿勢を変化させることで、仮想空間を見渡すことができる。
【0020】
また、他の構成では、上記第2表示制御手段は、上記可搬型表示装置の姿勢が所定の基準姿勢の場合、上記第2の仮想カメラの撮像方向を上記第1の仮想カメラの撮像方向と同じに設定し、当該基準姿勢からの上記可搬型表示装置の姿勢の変化に応じて、上記第2の仮想カメラの姿勢を変化させてもよい。
【0021】
上記構成によれば、可搬型表示装置の姿勢を基準姿勢にすることで、第2の仮想カメラの撮像方向を第1の仮想カメラの撮像方向と同じにすることができる。そして、可搬型表示装置の姿勢を変化させることで、可搬型表示装置に仮想空間を様々な方向から見た画像を表示させることができる。
【0022】
また、他の構成では、上記第1の仮想カメラの撮像方向は、上記可搬型表示装置の姿勢に依存しない所定の方向であってもよい。
【0023】
上記構成によれば、据置型表示装置には、所定の方向から仮想空間を見た画像を表示させることができ、可搬型表示装置には当該可搬型表示装置の姿勢に応じた方向から仮想空間を見た画像を表示させることができる。
【0024】
また、他の構成では、上記第1表示制御手段は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、上記第1の仮想カメラの位置および画角のうちの少なくとも一方を変更することにより、少なくとも上記所定のオブジェクトを縮小表示してもよい。
【0025】
上記構成によれば、据置型表示装置に表示される所定のオブジェクトを縮小表示して視認困難にすることができる。
【0026】
また、他の構成では、上記第1画像には第2のオブジェクトが含まれ、上記第2画像には当該第2のオブジェクトが含まれなくてもよい。
【0027】
上記構成によれば、据置型表示装置には第2のオブジェクトが含まれ、可搬型表示装置には当該第2のオブジェクトは含まれない。したがって、ユーザは第2のオブジェクトを視認するためには、据置型表示装置を見る必要があり、ユーザに据置型表示装置と可搬型表示装置とを見させることができる。
【0028】
また、他の構成では、上記可搬型表示装置に表示される上記所定のオブジェクトは、上記判定手段によってユーザが上記据置型表示装置を視認していると判定された場合に上記据置型表示装置に表示される上記所定のオブジェクトよりも視認困難であってもよい。
【0029】
上記構成によれば、可搬型表示装置には視認困難な所定のオブジェクトが表示される。ユーザは所定のオブジェクトを視認容易にするために、据置型表示装置を視認する必要があり、ユーザに据置型表示装置と可搬型表示装置とを見させることができる。
【0030】
また、他の構成では、上記第2の仮想カメラの位置は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合の上記第1の仮想カメラの位置と略同じであってもよい。
【0031】
上記構成によれば、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、第2の仮想カメラと第1の仮想カメラとを略同じ位置に設定することができる。
【0032】
また、他の構成では、上記第2の仮想カメラの画角は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合の上記第1の仮想カメラの画角と略同じであってもよい。
【0033】
上記構成によれば、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、第2の仮想カメラと第1の仮想カメラとを略同じ位置、画角に設定することができる。これにより、同様の撮像範囲を撮像した画像を上記据置型表示装置および上記可搬型表示装置に表示させることができる。
【0034】
また、他の構成では、上記第2の仮想カメラの撮像範囲は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合の上記第1の仮想カメラの撮像範囲と略同じであってもよい。
【0035】
上記構成によれば、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、第2の仮想カメラと第1の仮想カメラとを略同じ撮像範囲に設定することができる。
【0036】
また、他の構成では、上記第2の姿勢は、上記可搬型表示装置の画面が重力方向と略平行となる姿勢であってもよい。
【0037】
上記構成によれば、可搬型表示装置の画面が重力方向と略平行となる場合に、ユーザが上記据置型表示装置を視認していないと判定することができる。
【0038】
また、他の構成では、上記第1の姿勢は、上記可搬型表示装置の画面が重力方向と略垂直となる姿勢であってもよい。
【0039】
上記構成によれば、可搬型表示装置の画面が重力方向と略垂直となる場合に、ユーザが上記据置型表示装置を視認していないと判定することができる。
【0040】
また、他の構成では、上記プログラムは、上記判定手段による判定結果に応じて、上記据置型表示装置から出力される音声の音量を調整する音量調整手段として、上記コンピュータをさらに機能させてもよい。
【0041】
上記構成によれば、判定手段による判定結果に応じて、上記据置型表示装置から出力される音声の音量を調整することができる。
【0042】
また、他の構成では、上記音量調整手段は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも上記据置型表示装置から出力される音声の音量を小さくしてもよい。
【0043】
上記構成によれば、ユーザが上記据置型表示装置を視認していない場合、据置型表示装置から出力される音声の音量を小さくすることができる。
【0044】
また、他の構成では、上記可搬型表示装置は、ジャイロセンサおよび加速度センサの少なくとも一方を含んでもよい。上記姿勢取得手段は、上記ジャイロセンサおよび上記加速度センサの少なくとも一方から出力されたデータに基づいて、上記可搬型表示装置の姿勢を算出する。
【0045】
上記構成によれば、ジャイロセンサや加速度センサからのデータに基づいて、可搬型表示装置の姿勢を算出することができる。
【0046】
また、他の構成では、上記第2表示制御手段は、上記第2画像を示す画像データを上記可搬型表示装置に出力してもよい。上記可搬型表示手段は、上記情報処理装置から出力された画像データを取得する画像データ取得手段と、上記画像データが示す上記第2画像を表示する表示手段とを備える。
【0047】
上記構成によれば、情報処理装置において第2画像を生成し、当該第2画像を可搬型表示装置に出力することにより、可搬型表示装置に第2画像を表示することができる。
【0048】
また、他の構成では、上記プログラムは、上記第2画像を示す画像データを圧縮して圧縮画像データを生成する画像圧縮手段として、上記コンピュータをさらに機能させてもよい。上記第2表示制御手段は、上記圧縮画像データを上記可搬型表示装置に出力する。上記画像データ取得手段は、上記情報処理装置から出力された圧縮画像データを取得する。上記可搬型表示装置は、上記圧縮画像データを伸張する画像伸張手段をさらに備える。上記表示手段は、上記画像伸張手段によって伸張された上記第2画像を表示する。
【0049】
上記構成によれば、第2画像は圧縮されて情報処理装置から可搬型表示装置に出力される。このため、データ量の大きな画像であっても短時間でゲーム装置から可搬型表示装置に送信することができる。
【0050】
なお、本発明の別の一例は、上記各手段を実現した情報処理装置であってもよい。また、本発明では、上記各手段を実現する複数の要素が相互に動作することによって、1つの情報処理システムとして構成されてもよい。当該情報処理システムは、1つの装置によって構成されてもよいし、複数の装置によって構成されてもよい。また、本発明は、上述の各手段によって実行されるステップを含む情報処理方法であってもよい。
【発明の効果】
【0051】
本発明によれば、複数の表示装置を有効に活用して複数の表示装置に画像を表示する情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供することが可能となる。
【図面の簡単な説明】
【0052】
【図1】ゲームシステム1の外観図
【図2】ゲーム装置3の内部構成を示すブロック図
【図3】メインコントローラ8の外観構成を示す斜視図
【図4】メインコントローラ8の外観構成を示す斜視図
【図5】メインコントローラ8の内部構造を示す図
【図6】メインコントローラ8の内部構造を示す図
【図7】サブコントローラ9の外観構成を示す斜視図
【図8】コントローラ5の構成を示すブロック図
【図9】端末装置7の外観構成を示す図
【図10】ユーザが端末装置7を把持した様子を示す図
【図11】端末装置7の内部構成を示すブロック図
【図12A】本ゲームが行われる場合のプレイヤの基本的な姿勢を示す図であり、プレイヤが端末装置7を第1の姿勢で把持している様子を示す図
【図12B】本ゲームが行われる場合のプレイヤの基本的な姿勢を示す図であり、プレイヤが端末装置7を第2の姿勢で把持している様子を示す図
【図13A】端末装置7を第1の姿勢で把持した場合にテレビ2に表示されるテレビ用ゲーム画像の一例を示す図
【図13B】端末装置7を第2の姿勢で把持した場合にテレビ2に表示されるテレビ用ゲーム画像の一例を示す図
【図14】本ゲームにおける仮想空間に配置された各オブジェクトの位置関係を示す図
【図15A】プレイヤが端末装置7を自身の目の前で把持して、テレビ2に対して正面を向いているときの端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図
【図15B】プレイヤが端末装置7を自身の目の前で把持して、テレビ2に対して右側を向いているときの端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図
【図16A】本実施形態のゲームが実行された後の第1タイミングでテレビ2に表示されるテレビ用ゲーム画像の一例を示す図
【図16B】第1タイミングから所定時間経過後の第2タイミングで端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図
【図17】プレイヤが端末装置7を下に向けている状態(第1の姿勢)から上に向ける状態に端末装置7の姿勢を変化させる様子を示す図
【図18】海賊92が矢94を放った第1タイミングt1から矢94がプレイヤに届く第2タイミングt2までの時間経過を示す図
【図19A】本実施形態のゲームが実行された後の第1タイミングt1でテレビ2に表示されるテレビ用ゲーム画像の他の例を示す図
【図19B】第1タイミングt1から所定時間経過後の第2タイミングt2で端末装置7のLCD51に表示される端末用ゲーム画像の他の例を示す図
【図20】プレイヤがゲーム装置3からの指示に応じてテレビ2に対して右側を向く様子を実空間の上方から見た図
【図21】ゲーム処理において用いられる各種データを示す図
【図22】ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャート
【図23】図22に示すゲーム制御処理(ステップS3)の詳細な流れを示すフローチャート
【図24】端末装置7がX軸周りに所定角度回転している場合の端末装置7を側面から見た図
【図25】端末装置7が動いている場合において、第2タイミングt2で端末装置7のLCD51に表示される画像の一例を示す図
【図26】端末装置7のLCD51に表示されるロックオン枠99の一例を示す図
【発明を実施するための形態】
【0053】
[1.ゲームシステムの全体構成]
以下、図面を参照して、本発明の一実施形態に係るゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。図1において、ゲームシステム1は、テレビジョン受像器等に代表される据置型のディスプレイ装置(以下、「テレビ」と記載する)2、据置型のゲーム装置3、光ディスク4、コントローラ5、マーカ装置6、および、端末装置7を含む。ゲームシステム1は、コントローラ5を用いたゲーム操作に基づいてゲーム装置3においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ2および/または端末装置7に表示するものである。
【0054】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるための情報処理プログラム(典型的にはゲームプログラム)が記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。
【0055】
ゲーム装置3には、テレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ2はスピーカ2a(図2)を有しており、スピーカ2aは、上記ゲーム処理の結果得られるゲーム音声を出力する。なお、他の実施形態においては、ゲーム装置3と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置3とテレビ2との通信は無線通信であってもよい。
【0056】
テレビ2の画面の周辺(図1では画面の上側)には、マーカ装置6が設置される。詳細は後述するが、ユーザ(プレイヤ)はコントローラ5を動かすゲーム操作を行うことができ、マーカ装置6は、コントローラ5の動きや位置や姿勢等をゲーム装置3が算出するために用いられる。マーカ装置6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LED(Light Emitting Diode)であり、テレビ2の前方に向かって赤外光を出力する。マーカ装置6は有線で(無線であってもよい)ゲーム装置3に接続されており、ゲーム装置3はマーカ装置6が備える各赤外LEDの点灯を制御することが可能である。なお、マーカ装置6は可搬型であり、ユーザはマーカ装置6を自由な位置に設置することができる。図1ではマーカ装置6がテレビ2の上に設置された態様を表しているが、マーカ装置6を設置する位置および向きは任意である。
【0057】
コントローラ5は、自機に対する操作に基づく操作データをゲーム装置3に与えるものである。本実施形態では、コントローラ5は、メインコントローラ8とサブコントローラ9とを有し、サブコントローラ9がメインコントローラ8に着脱可能に装着される構成である。コントローラ5とゲーム装置3とは無線通信によって通信可能である。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。また、図1では、ゲームシステム1に含まれるコントローラ5は1つとするが、ゲームシステム1は複数のコントローラ5を含んでいてもよい。つまり、ゲーム装置3は複数のコントローラと通信可能であり、所定台数のコントローラを同時に使用することによって複数人でゲームをプレイすることが可能である。コントローラ5の詳細な構成については後述する。
【0058】
端末装置7は、ユーザが把持可能な程度の大きさであり、ユーザは端末装置7を手に持って動かしたり、あるいは、端末装置7を自由な位置に配置したりして使用することが可能である。詳細な構成は後述するが、端末装置7は、表示手段であるLCD(Liquid Crystal Display:液晶表示装置)51、および、入力手段(後述するタッチパネル52やジャイロセンサ64等)を備える。端末装置7とゲーム装置3とは無線(有線であってもよい)によって通信可能である。端末装置7は、ゲーム装置3で生成された画像(例えばゲーム画像)のデータをゲーム装置3から受信し、画像をLCD51に表示する。なお、本実施形態では表示装置としてLCDを用いているが、端末装置7は、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を有していてもよい。また、端末装置7は、自機に対する操作に基づく操作データをゲーム装置3に送信する。
【0059】
[2.ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の内部構成を示すブロック図である。ゲーム装置3は、CPU(Central Processing Unit)10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
【0060】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
【0061】
システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM(Video RAM)11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0062】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。なお、本実施形態においては、ゲーム装置3は、テレビ2に表示するゲーム画像と、端末装置7に表示するゲーム画像との両方を生成する。以下では、テレビ2に表示されるゲーム画像を「テレビ用ゲーム画像」と呼び、端末装置7に表示されるゲーム画像を「端末用ゲーム画像」と呼ぶことがある。
【0063】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。なお、本実施形態においては、ゲーム音声についてもゲーム画像と同様、テレビ2のスピーカから出力するゲーム音声と、端末装置7のスピーカから出力するゲーム音声との両方が生成される。以下では、テレビ2から出力されるゲーム音声を「テレビ用ゲーム音声」と呼び、端末装置7から出力されるゲーム音声を「端末用ゲーム音声」と呼ぶことがある。
【0064】
上記のようにゲーム装置3において生成される画像および音声のうちで、テレビ2において出力される画像および音声のデータは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、テレビ2に画像が表示されるとともにスピーカ2aから音が出力される。
【0065】
また、ゲーム装置3において生成される画像および音声のうちで、端末装置7において出力される画像および音声のデータは、入出力プロセッサ11a等によって端末装置7へ送信される。入出力プロセッサ11a等による端末装置7へのデータの送信については後述する。
【0066】
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、ネットワーク通信モジュール18、コントローラ通信モジュール19、拡張コネクタ20、メモリカード用コネクタ21、コーデックLSI27に接続される。また、ネットワーク通信モジュール18にはアンテナ22が接続される。コントローラ通信モジュール19にはアンテナ23が接続される。コーデックLSI27は端末通信モジュール28に接続され、端末通信モジュール28にはアンテナ29が接続される。
【0067】
ゲーム装置3は、インターネット等のネットワークに接続して外部情報処理装置(例えば他のゲーム装置や、各種サーバや、各種情報処理装置等)と通信を行うことが可能である。すなわち、入出力プロセッサ11aは、ネットワーク通信モジュール18およびアンテナ22を介してインターネット等のネットワークに接続し、ネットワークに接続される外部情報処理装置と通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、ネットワーク通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、外部情報処理装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22およびネットワーク通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と外部情報処理装置との間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。また、フラッシュメモリ17にはゲームプログラムが記憶されてもよい。
【0068】
また、ゲーム装置3は、コントローラ5からの操作データを受信することが可能である。すなわち、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23およびコントローラ通信モジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0069】
また、ゲーム装置3は、端末装置7との間で画像や音声等のデータを送受信することが可能である。入出力プロセッサ11aは、端末装置7へゲーム画像(端末用ゲーム画像)を送信する場合、GPU11bが生成したゲーム画像のデータをコーデックLSI27へ出力する。コーデックLSI27は、入出力プロセッサ11aからの画像データに対して所定の圧縮処理を行う。端末通信モジュール28は、端末装置7との間で無線通信を行う。したがって、コーデックLSI27によって圧縮された画像データは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。なお、本実施形態では、ゲーム装置3から端末装置7へ送信される画像データはゲームに用いるものであり、ゲームにおいては表示される画像に遅延が生じるとゲームの操作性に悪影響が出る。そのため、ゲーム装置3から端末装置7への画像データの送信に関しては、できるだけ遅延が生じないようにすることが好ましい。したがって、本実施形態では、コーデックLSI27は、例えばH.264規格といった高効率の圧縮技術を用いて画像データを圧縮する。なお、それ以外の圧縮技術を用いてもよいし、通信速度が十分である場合には無圧縮で画像データを送信する構成であってもよい。また、端末通信モジュール28は、例えばWi−Fiの認証を受けた通信モジュールであり、例えばIEEE802.11n規格で採用されるMIMO(Multiple Input Multiple Output)の技術を用いて端末装置7との間の無線通信を高速に行うようにしてもよいし、他の通信方式を用いてもよい。
【0070】
また、ゲーム装置3は、画像データの他、音声データを端末装置7へ送信する。すなわち、入出力プロセッサ11aは、DSP11cが生成した音声データを、コーデックLSI27を介して端末通信モジュール28へ出力する。コーデックLSI27は、音声データに対しても画像データと同様に圧縮処理を行う。音声データに対する圧縮の方式は、どのような方式であってもよいが、圧縮率が高く、音声の劣化が少ない方式が好ましい。また、他の実施形態においては、音声データは圧縮されずに送信されてもよい。端末通信モジュール28は、圧縮された画像データおよび音声データを、アンテナ29を介して端末装置7へ送信する。
【0071】
さらに、ゲーム装置3は、上記画像データおよび音声データの他に、必要に応じて各種の制御データを端末装置7へ送信する。制御データは、端末装置7が備える構成要素に対する制御指示を表すデータであり、例えばマーカ部(図10に示すマーカ部55)の点灯を制御する指示や、カメラ(図10に示すカメラ56)の撮像を制御する指示等を表す。入出力プロセッサ11aは、CPU10の指示に応じて制御データを端末装置7へ送信する。なお、この制御データに関して、本実施形態ではコーデックLSI27はデータの圧縮処理を行わないが、他の実施形態においては圧縮処理を行うようにしてもよい。なお、ゲーム装置3から端末装置7へ送信される上述のデータは、必要に応じて暗号化がされていてもよいし、されていなくともよい。
【0072】
また、ゲーム装置3は、端末装置7から各種データを受信可能である。詳細は後述するが、本実施形態では、端末装置7は、操作データ、画像データ、および音声データを送信する。端末装置7から送信される各データはアンテナ29を介して端末通信モジュール28によって受信される。ここで、端末装置7からの画像データおよび音声データは、ゲーム装置3から端末装置7への画像データおよび音声データと同様の圧縮処理が施されている。したがって、これら画像データおよび音声データについては、端末通信モジュール28からコーデックLSI27に送られ、コーデックLSI27によって伸張処理が施されて入出力プロセッサ11aに出力される。一方、端末装置7からの操作データに関しては、画像や音声に比べてデータ量が少ないので、圧縮処理が施されていなくともよい。また、必要に応じて暗号化がされていてもよいし、されていなくともよい。したがって、操作データは、端末通信モジュール28で受信された後、コーデックLSI27を介して入出力プロセッサ11aに出力される。入出力プロセッサ11aは、端末装置7から受信したデータを、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0073】
また、ゲーム装置3は、他の機器や外部記憶媒体に接続することが可能である。すなわち、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタである。拡張コネクタ20に対しては、外部記憶媒体のようなメディアを接続したり、他のコントローラ等の周辺機器を接続したり、有線の通信用コネクタを接続することによってネットワーク通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【0074】
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、図示しないACアダプタによって外部の電源からゲーム装置3の各構成要素に対して電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0075】
なお、他の実施形態においては、ゲーム装置3が備える各構成要素のうちでいくつかの構成要素は、ゲーム装置3とは別体の拡張機器として構成されてもよい。このとき、拡張機器は、例えば上記拡張コネクタ20を介してゲーム装置3と接続されるようにしてもよい。具体的には、拡張機器は、例えば上記コーデックLSI27、端末通信モジュール28およびアンテナ29の各構成要素を備えており、拡張コネクタ20に対して着脱可能であってもよい。これによれば、上記各構成要素を備えていないゲーム装置に対して上記拡張機器を接続することによって、当該ゲーム装置を端末装置7と通信可能な構成とすることができる。
【0076】
[3.コントローラ5の構成]
次に、図3〜図7を参照して、コントローラ5について説明する。上述のように、コントローラ5は、メインコントローラ8とサブコントローラ9とによって構成される。図3は、メインコントローラ8の外観構成を示す斜視図である。図4は、メインコントローラ8の外観構成を示す斜視図である。図3は、メインコントローラ8の上側後方から見た斜視図であり、図4は、メインコントローラ8を下側前方から見た斜視図である。
【0077】
図3および図4において、メインコントローラ8は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ1軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ユーザは、メインコントローラ8に設けられたボタンを押下すること、および、メインコントローラ8自体を動かしてその位置や姿勢(傾き)を変えることによってゲーム操作を行うことができる。
【0078】
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。本明細書では、これらのボタン32a〜32hが設けられるハウジング31の上面を「ボタン面」と呼ぶことがある。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行する情報処理プログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、ユーザがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。
【0079】
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、メインコントローラ8に他の機器(例えば、サブコントローラ9や他のセンサユニット等)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
【0080】
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5(メインコントローラ8)には、他のコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をユーザに通知したり、コントローラ5の電池残量をユーザに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
【0081】
また、メインコントローラ8は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
【0082】
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、メインコントローラ8に内蔵されるスピーカ47(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
【0083】
次に、図5および図6を参照して、メインコントローラ8の内部構造について説明する。図5および図6は、メインコントローラ8の内部構造を示す図である。なお、図5は、メインコントローラ8の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、メインコントローラ8の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
【0084】
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ47等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X1軸方向に関してメインコントローラ8の中心からずれた位置に配置されている。これによって、メインコントローラ8をZ1軸回りに回転させたときのメインコントローラ8の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z1軸方向)に関してメインコントローラ8の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5(メインコントローラ8)がワイヤレスコントローラとして機能する。
【0085】
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、メインコントローラ8の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
【0086】
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ46が設けられている。バイブレータ46は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ46が作動することによってメインコントローラ8に振動が発生する。これによって、メインコントローラ8を把持しているユーザの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ46は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ46がメインコントローラ8の中心よりも端側に配置することによって、バイブレータ46の振動によりメインコントローラ8全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、メインコントローラ8は、マイコン42の基本クロックを生成する水晶振動子、スピーカ47に音声信号を出力するアンプ等を備えている。
【0087】
図7は、サブコントローラ9の外観構成を示す斜視図である。サブコントローラ9は、例えばプラスチック成型によって形成されたハウジング80を有している。ハウジング80は、メインコントローラ8と同様に、全体として大人や子供の片手で把持可能な大きさである。このサブコントローラ9を用いることによっても、プレイヤは、ボタンやスティックを操作することと、コントローラ自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0088】
図7に示すように、ハウジング80の上面(Y2軸負方向側の面)の先端側(Z2軸正側)には、アナログジョイスティック81が設けられる。また、図示されないが、ハウジング80の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向(図7に示すY2軸方向)に並べて、CボタンおよびZボタンが設けられる。アナログジョイスティック81および各ボタン(CボタンおよびZボタン)には、ゲーム装置3が実行するゲームプログラムに応じてそれぞれ適宜の機能が割り当てられる。なお、アナログジョイスティック81および各ボタンを包括的に「操作部82(図8参照)」と呼ぶことがある。
【0089】
また、図7では示されないが、サブコントローラ9は、ハウジング80の内部に加速度センサ(図8に示す加速度センサ83)を有している。本実施形態においては、加速度センサ83は、メインコントローラ8の加速度センサ37と同様のものが用いられる。ただし、加速度センサ83は、加速度センサ37とは異なるものであってもよく、例えば所定の1軸または2軸の加速度を検出するものであってもよい。
【0090】
また、図7に示すように、ハウジング80の後端にはケーブルの一端が接続されている。図7では示されないが、ケーブルの他端にはコネクタ(図8に示すコネクタ84)が接続される。このコネクタはメインコントローラ8のコネクタ33と接続可能である。つまり、コネクタ33とコネクタ84とを接続することによって、メインコントローラ8とサブコントローラ9とが接続される。
【0091】
なお、図3〜図7に示したメインコントローラ8およびサブコントローラ9の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。また、本実施形態では、メインコントローラ8の撮像手段による撮像方向はZ1軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【0092】
図8は、コントローラ5の構成を示すブロック図である。図8に示すように、メインコントローラ8は、操作部32(各操作ボタン32a〜32i)、撮像情報演算部35、通信部36、加速度センサ37、およびジャイロセンサ48を備えている。また、サブコントローラ9は、操作部82および加速度センサ83を備えている。コントローラ5は、自機に対して行われた操作内容を表すデータを操作データとしてゲーム装置3へ送信するものである。なお、以下では、コントローラ5が送信する操作データを「コントローラ操作データ」と呼び、端末装置7が送信する操作データを「端末操作データ」と呼ぶことがある。
【0093】
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を表す操作ボタンデータを通信部36のマイコン42へ出力する。
【0094】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
【0095】
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、撮像対象となる端末装置7のマーカ部55およびマーカ装置6は、赤外光を出力するマーカで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、撮像対象(マーカ部55および/またはマーカ装置6)の画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
【0096】
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【0097】
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。なお、加速度センサ37は、例えば静電容量式のMEMS(Micro Electro Mechanical System)型加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【0098】
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY1軸方向)、左右方向(図3に示すX1軸方向)および前後方向(図3に示すZ1軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ5を基準に設定されるX1Y1Z1座標系(コントローラ座標系)における3次元のベクトルとして表される。
【0099】
加速度センサ37が検出した加速度を表すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や動きに対応して変化するので、ゲーム装置3は取得された加速度データを用いてコントローラ5の向きや動きを算出することができる。本実施形態では、ゲーム装置3は、取得された加速度データに基づいてコントローラ5の姿勢や傾斜角度等を算出する。
【0100】
なお、加速度センサ37(後述する加速度センサ63についても同様)から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ(例えばCPU10)またはコントローラ5のプロセッサ(例えばマイコン42)等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合)、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。
【0101】
一方、コントローラ5が動的な状態(コントローラ5が動かされている状態)であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の動き方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0102】
ジャイロセンサ48は、3軸(本実施形態では、X1Y1Z1軸)回りの角速度を検出する。本明細書では、コントローラ5の撮像方向(Z1軸正方向)を基準として、X1軸回りの回転方向をピッチ方向、Y1軸回りの回転方向をヨー方向、Z1軸回りの回転方向をロール方向と呼ぶ。ジャイロセンサ48は、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。例えば、ジャイロセンサ48は、3軸ジャイロセンサであってもよいし、2軸ジャイロセンサと1軸ジャイロセンサとを組み合わせて3軸周りの角速度を検出するものであってもよい。ジャイロセンサ48で検出された角速度を表すデータは、通信部36へ出力される。また、ジャイロセンサ48は1軸または2軸回りの角速度を検出するものであってもよい。
【0103】
また、サブコントローラ9の操作部82は、上述したアナログジョイスティック81、CボタンおよびZボタンを含む。操作部82は、アナログジョイスティック81に対する傾倒方向および傾倒量を表すスティックデータ(サブスティックデータと呼ぶ)と、各ボタンに対する入力状態(各ボタンが押下されたか否か)を表す操作ボタンデータ(サブ操作ボタンデータと呼ぶ)とを、コネクタ84を介してメインコントローラ8へ出力する。
【0104】
また、サブコントローラ9の加速度センサ83は、メインコントローラ8の加速度センサ37と同様のセンサであり、サブコントローラ9の加速度(重力加速度を含む)を検出する、すなわち、サブコントローラ9に加わる力(重力を含む)を検出する。加速度センサ83は、当該加速度センサ83の検出部に加わっている加速度のうち、所定の3軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。検出された加速度を表すデータ(サブ加速度データと呼ぶ)は、コネクタ84を介してメインコントローラ8へ出力される。
【0105】
以上のように、サブコントローラ9は、上記サブスティックデータ、サブ操作ボタンデータ、およびサブ加速度データを含むサブコントローラデータをメインコントローラ8へ出力する。
【0106】
メインコントローラ8の通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。
【0107】
サブコントローラ9からのサブコントローラデータは、マイコン42に入力され、一時的にメモリ43に格納される。また、操作部32、撮像情報演算部35、加速度センサ37、およびジャイロセンサ48からマイコン42へ出力されたデータ(メインコントローラデータと呼ぶ)は、一時的にメモリ43に格納される。これらのメインコントローラおよびサブコントローラデータは、操作データ(コントローラ操作データ)としてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3のコントローラ通信モジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側のコントローラ通信モジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、コントローラ5から取得した操作データを用いてゲーム処理を行う。なお、通信部36からコントローラ通信モジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で操作データをゲーム装置3のコントローラ通信モジュール19へ出力する。
【0108】
以上のように、メインコントローラ8は、自機に対する操作を表す操作データとして、マーカ座標データ、加速度データ、角速度データ、および操作ボタンデータを送信可能である。サブコントローラ9は、自機に対する操作を表す操作データとして、加速度データ、スティックデータ、および操作ボタンデータを送信可能である。また、ゲーム装置3は、上記操作データをゲーム入力として用いてゲーム処理を実行する。したがって、上記コントローラ5を用いることによって、ユーザは、各操作ボタンを押下するという従来の一般的なゲーム操作に加えて、コントローラ5自体を動かすゲーム操作を行うことができる。例えば、メインコントローラ8および/またはサブコントローラ9を任意の姿勢に傾ける操作、メインコントローラ8によって画面上の任意の位置を指示する操作、および、メインコントローラ8および/またはサブコントローラ9自体を動かす操作等を行うことが可能となる。
【0109】
また、本実施形態において、コントローラ5は、ゲーム画像を表示する表示手段を有しないが、例えば電池残量を表す画像等を表示するための表示手段を有していてもよい。
【0110】
[4.端末装置7の構成]
次に、図9〜図11を参照して、端末装置7の構成について説明する。図9は、端末装置7の外観構成を示す図である。図9における(a)図は端末装置7の正面図であり、(b)図は上面図であり、(c)図は右側面図であり、(d)図は下面図である。また、図10は、ユーザが端末装置7を把持した様子を示す図である。
【0111】
図9に示されるように、端末装置7は、大略的には横長の長方形の板状形状であるハウジング50を備える。ハウジング50は、ユーザが把持することができる程度の大きさである。したがって、ユーザは、端末装置7を持って動かしたり、端末装置7の配置位置を変更したりすることができる。
【0112】
端末装置7は、ハウジング50の表面にLCD51を有する。LCD51は、ハウジング50の表面の中央付近に設けられる。したがって、ユーザは、図10に示すようにLCD51の両側部分のハウジング50を持つことによって、LCD51の画面を見ながら端末装置を持って動かすことができる。なお、図10ではユーザがLCD51の左右両側の部分のハウジング50を持つことで端末装置7を横持ちで(横に長い向きにして)持つ例を示しているが、端末装置7を縦持ちで(縦に長い向きにして)持つことも可能である。
【0113】
図9の(a)図に示すように、端末装置7は、操作手段として、LCD51の画面上にタッチパネル52を有する。本実施形態では、タッチパネル52は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。また、タッチパネル52はシングルタッチ方式でもよいし、マルチタッチ方式であってもよい。本実施形態では、タッチパネル52として、LCD51の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル52の解像度とLCD51の解像度が一致している必要はない。タッチパネル52に対する入力は通常タッチペンを用いて行われるが、タッチペンに限らずユーザの指でタッチパネル52に対する入力をすることも可能である。なお、ハウジング50には、タッチパネル52に対する操作を行うために用いられるタッチペンを収納するための収納穴が設けられていてもよい。このように、端末装置7はタッチパネル52を備えるので、ユーザは、端末装置7を動かしながらタッチパネル52を操作することができる。つまりユーザは、LCD51の画面を動かしつつ、その画面に対して直接(タッチパネル52によって)入力を行うことができる。
【0114】
図9に示すように、端末装置7は、操作手段として、2つのアナログスティック53Aおよび53Bと、複数のボタン54A〜54Lとを備えている。各アナログスティック53Aおよび53Bは、方向を指示するデバイスである。各アナログスティック53Aおよび53Bは、ユーザの指で操作されるスティック部がハウジング50の表面に対して任意の方向(上下左右および斜め方向の任意の角度)にスライド(または傾倒)することができるように構成されている。また、左アナログスティック53AはLCD51の画面の左側に、右アナログスティック53BはLCD51の画面の右側にそれぞれ設けられる。したがって、ユーザは、左右いずれの手でもアナログスティックを用いて方向を指示する入力を行うことができる。また、図10に示すように、各アナログスティック53Aおよび53Bは、ユーザが端末装置7の左右部分を把持した状態で操作可能な位置に設けられるので、ユーザは、端末装置7を持って動かす場合においても各アナログスティック53Aおよび53Bを容易に操作することができる。
【0115】
各ボタン54A〜54Lは、所定の入力を行うための操作手段である。以下に示すように、各ボタン54A〜54Lは、ユーザが端末装置7の左右部分を把持した状態で操作可能な位置に設けられる(図10参照)。したがって、ユーザは、端末装置7を持って動かす場合においてもこれらの操作手段を容易に操作することができる。
【0116】
図9の(a)図に示すように、ハウジング50の表面には、各操作ボタン54A〜54Lのうち、十字ボタン(方向入力ボタン)54Aと、ボタン54B〜54Hとが設けられる。つまり、これらのボタン54A〜54Hは、ユーザの親指で操作可能な位置に配置されている(図10参照)。
【0117】
十字ボタン54Aは、LCD51の左側であって、左アナログスティック53Aの下側に設けられる。つまり、十字ボタン54Aはユーザの左手で操作可能な位置に配置されている。十字ボタン54Aは、十字の形状を有しており、上下左右の方向を指示することが可能なボタンである。また、ボタン54B〜54Dは、LCD51の下側に設けられる。これら3つのボタン54B〜54Dは、左右両方の手で操作可能な位置に配置されている。また、4つのボタン54E〜54Hは、LCD51の右側であって、右アナログスティック53Bの下側に設けられる。つまり、4つのボタン54E〜54Hはユーザの右手で操作可能な位置に配置されている。さらに、4つのボタン54E〜54Hは、(4つのボタン54E〜54Hの中心位置に対して)上下左右の位置関係となるように配置されている。したがって、端末装置7は、ユーザに上下左右の方向を指示させるためのボタンとして4つのボタン54E〜54Hを機能させることも可能である。
【0118】
また、図9の(a)図、(b)図、および(c)図に示すように、第1Lボタン54Iおよび第1Rボタン54Jは、ハウジング50の斜め上部分(左上部分および右上部分)に設けられる。具体的には、第1Lボタン54Iは、板状のハウジング50における上側の側面の左端に設けられ、上側および左側の側面から露出している。また、第1Rボタン54Jは、ハウジング50における上側の側面の右端に設けられ、上側および右側の側面から露出している。このように、第1Lボタン54Iは、ユーザの左手人差し指で操作可能な位置に配置され、第1Rボタン54Jは、ユーザの右手人差し指で操作可能な位置に配置される(図10参照)。
【0119】
また、図9の(b)図および(c)図に示すように、第2Lボタン54Kおよび第2Rボタン54Lは、板状のハウジング50の裏面(すなわちLCD51が設けられる表面の反対側の面)に突起して設けられる足部59Aおよび59Bに配置される。具体的には、第2Lボタン54Kは、ハウジング50の裏面の左側(表面側から見たときの左側)のやや上方に設けられ、第2Rボタン54Lは、ハウジング50の裏面の右側(表面側から見たときの右側)のやや上方に設けられる。換言すれば、第2Lボタン54Kは、表面に設けられる左アナログスティック53Aの概ね反対側の位置に設けられ、第2Rボタン54Lは、表面に設けられる右アナログスティック53Bの概ね反対側の位置に設けられる。このように、第2Lボタン54Kは、ユーザの左手中指で操作可能な位置に配置され、第2Rボタン54Lは、ユーザの右手中指で操作可能な位置に配置される(図10参照)。また、第2Lボタン54Kおよび第2Rボタン54Lは、図9の(c)図に示すように、上記足部59Aおよび59Bの斜め上方を向く面に設けられ、斜め上方を向くボタン面を有する。ユーザが端末装置7を把持した場合には中指は上下方向に動くと考えられるので、ボタン面を上方に向けることで、ユーザは第2Lボタン54Kおよび第2Rボタン54Lを押下しやすくなる。また、ハウジング50の裏面に足部が設けられることにより、ユーザはハウジング50を把持しやすくなり、かつ、足部にボタンが設けられることで、ハウジング50を把持したまま操作しやすくなる。
【0120】
なお、図9に示す端末装置7に関しては、第2Lボタン54Kおよび第2Rボタン54Lが裏面に設けられるので、LCD51の画面(ハウジング50の表面)が上を向いた状態で端末装置7を載置させる場合、画面が完全に水平にはならない場合がある。そのため、他の実施形態においては、ハウジング50の裏面に3つ以上の足部が形成されてもよい。これによれば、LCD51の画面が上を向いた状態では足部が床面(または他の水平な面)に接することで床面に載置できるので、画面が水平になるように端末装置7を載置することができる。また、着脱可能な足部を追加することで端末装置7を水平に載置するようにしてもよい。
【0121】
各ボタン54A〜54Lには、ゲームプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン54Aおよびボタン54E〜54Hは方向指示操作や選択操作等に用いられてもよいし、各ボタン54B〜54Eは決定操作やキャンセル操作等に用いられてもよい。
【0122】
なお、図示しないが、端末装置7は、端末装置7の電源をオン/オフするための電源ボタンを有している。また、端末装置7は、LCD51の画面表示をオン/オフするためのボタンや、ゲーム装置3との接続設定(ペアリング)を行うためのボタンや、スピーカ(図11に示すスピーカ67)の音量を調節するためのボタンを有していてもよい。
【0123】
図9の(a)図に示すように、端末装置7は、マーカ55Aおよびマーカ55Bからなるマーカ部(図11に示すマーカ部55)をハウジング50の表面に備えている。マーカ部55は、どの位置に設けられてもよいが、ここではLCD51の上側に設けられる。各マーカ55Aおよびマーカ55Bは、マーカ装置6の各マーカ6Rおよび6Lと同様、1以上の赤外LEDで構成される。マーカ部55は、上述のマーカ装置6と同様、コントローラ5(メインコントローラ8)の動き等をゲーム装置3が算出するために用いられる。また、ゲーム装置3はマーカ部55が備える各赤外LEDの点灯を制御することが可能である。
【0124】
端末装置7は、撮像手段であるカメラ56を備えている。カメラ56は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。図9に示すように、本実施形態では、カメラ56はハウジング50の表面に設けられる。したがって、カメラ56は、端末装置7を持っているユーザの顔を撮像することができ、例えばLCD51を見ながらゲームを行っている時のユーザを撮像することができる。なお、他の実施形態では、1以上のカメラが端末装置7に設けられてもよい。
【0125】
なお、端末装置7は、音声入力手段であるマイク(図11に示すマイク69)を備えている。ハウジング50の表面には、マイクロフォン用孔60が設けられる。マイク69はこのマイクロフォン用孔60の奥のハウジング50内部に設けられる。マイクは、ユーザの音声等、端末装置7の周囲の音を検出する。なお、他の実施形態では、1以上のマイクが端末装置7に設けられてもよい。
【0126】
端末装置7は、音声出力手段であるスピーカ(図11に示すスピーカ67)を備えている。図9の(d)図に示すように、ハウジング50の下側側面にはスピーカ孔57が設けられる。スピーカ67の出力音はこのスピーカ孔57から出力される。本実施形態では、端末装置7は2つのスピーカを備えており、左スピーカおよび右スピーカのそれぞれの位置にスピーカ孔57が設けられる。なお、端末装置7が備えるスピーカの数はいくつであってもよく、上記2つのスピーカに加えて追加のスピーカが端末装置7に設けられてもよい。
【0127】
また、端末装置7は、他の装置を端末装置7に接続するための拡張コネクタ58を備えている。本実施形態においては、図9の(d)図に示すように、拡張コネクタ58は、ハウジング50の下側側面に設けられる。なお、拡張コネクタ58に接続される他の装置はどのようなものであってもよく、例えば、特定のゲームに用いるコントローラ(銃型のコントローラ等)やキーボード等の入力装置であってもよい。他の装置を接続する必要がなければ、拡張コネクタ58は設けられていなくともよい。
【0128】
なお、図9に示した端末装置7に関して、各操作ボタンやハウジング50の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。
【0129】
次に、図11を参照して、端末装置7の内部構成について説明する。図11は、端末装置7の内部構成を示すブロック図である。図11に示すように、端末装置7は、図9に示した構成の他、タッチパネルコントローラ61、磁気センサ62、加速度センサ63、ジャイロセンサ64、ユーザインタフェースコントローラ(UIコントローラ)65、コーデックLSI66、スピーカ67、サウンドIC68、マイク69、無線モジュール70、アンテナ71、赤外線通信モジュール72、フラッシュメモリ73、電源IC74、電池75、および、バイブレータ79を備える。これらの電子部品は、電子回路基板上に実装されてハウジング50内に収納される。
【0130】
UIコントローラ65は、各種の入出力部に対するデータの入出力を制御するための回路である。UIコントローラ65は、タッチパネルコントローラ61、アナログスティック53(アナログスティック53Aおよび53B)、操作ボタン54(各操作ボタン54A〜54L)、マーカ部55、磁気センサ62、加速度センサ63、ジャイロセンサ64、およびバイブレータ79に接続される。また、UIコントローラ65は、コーデックLSI66と拡張コネクタ58に接続される。また、UIコントローラ65には電源IC74が接続され、UIコントローラ65を介して各部に電力が供給される。電源IC74には内蔵の電池75が接続され、電力が供給される。また、電源IC74には、コネクタ等を介して外部電源から電力を取得可能な充電器76またはケーブルを接続することが可能であり、端末装置7は、当該充電器76またはケーブルを用いて外部電源からの電力供給と充電を行うことができる。なお、端末装置7は、図示しない充電機能を有するクレイドルに端末装置7を装着することで充電を行うようにしてもよい。
【0131】
タッチパネルコントローラ61は、タッチパネル52に接続され、タッチパネル52の制御を行う回路である。タッチパネルコントローラ61は、タッチパネル52からの信号に基づいて所定の形式のタッチ位置データを生成してUIコントローラ65へ出力する。タッチ位置データは、タッチパネル52の入力面において入力が行われた位置(タッチパネル52がマルチタッチ方式である場合は複数の位置であってもよい)の座標を表す。なお、タッチパネルコントローラ61は、タッチパネル52からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。また、UIコントローラ65からタッチパネルコントローラ61へは、タッチパネル52に対する各種の制御指示が出力される。
【0132】
アナログスティック53は、ユーザの指で操作されるスティック部がスライドした(または傾倒した)方向および量を表すスティックデータをUIコントローラ65へ出力する。また、操作ボタン54は、各操作ボタン54A〜54Lに対する入力状況(押下されたか否か)を表す操作ボタンデータをUIコントローラ65へ出力する。
【0133】
磁気センサ62は、磁界の大きさおよび方向を検知することで方位を検出する。検出された方位を示す方位データは、UIコントローラ65へ出力される。また、UIコントローラ65から磁気センサ62へは、磁気センサ62に対する制御指示が出力される。磁気センサ62に関しては、MI(磁気インピーダンス)素子、フラックスゲートセンサ、ホール素子、GMR(巨大磁気抵抗)素子、TMR(トンネル磁気抵抗)素子、あるいはAMR(異方性磁気抵抗)素子等を用いたセンサがあるが、方位を検出することができればどのようなものが用いられてもよい。なお、厳密には、地磁気以外に磁界が発生している場所においては、得られた方位データは方位を示さないことになるが、そのような場合であっても、端末装置7が動いた場合には方位データが変化するため、端末装置7の姿勢の変化を算出することができる。
【0134】
加速度センサ63は、ハウジング50の内部に設けられ、3軸(図9の(a)図に示すXYZ軸)方向に沿った直線加速度の大きさを検出する。具体的には、加速度センサ63は、ハウジング50の長辺方向をZ軸、ハウジング50の短辺方向をX軸、ハウジング50の表面に対して垂直な方向をY軸として、各軸の直線加速度の大きさを検出する。検出された加速度を表す加速度データはUIコントローラ65へ出力される。また、UIコントローラ65から加速度センサ63へは、加速度センサ63に対する制御指示が出力される。加速度センサ63は、本実施形態では例えば静電容量式のMEMS型加速度センサであるとするが、他の実施形態においては他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ63は1軸または2軸方向を検出する加速度センサであってもよい。
【0135】
ジャイロセンサ64は、ハウジング50の内部に設けられ、上記X軸、Y軸およびZ軸の3軸周りの角速度を検出する。検出された角速度を表す角速度データは、UIコントローラ65へ出力される。また、UIコントローラ65からジャイロセンサ64へは、ジャイロセンサ64に対する制御指示が出力される。なお、3軸の角速度を検出するために用いられるジャイロセンサの数および組み合わせはどのようなものであってもよく、ジャイロセンサ64はジャイロセンサ48と同様、2軸ジャイロセンサと1軸ジャイロセンサとで構成されてもよい。また、ジャイロセンサ64は1軸または2軸方向を検出するジャイロセンサであってもよい。
【0136】
バイブレータ79は、例えば振動モータやソレノイドであり、UIコントローラ65に接続される。UIコントローラ65の指示によりバイブレータ79が作動することによって端末装置7に振動が発生する。これによって、端末装置7を把持しているユーザの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。
【0137】
UIコントローラ65は、上記の各構成要素から受け取ったタッチ位置データ、スティックデータ、操作ボタンデータ、方位データ、加速度データ、および角速度データを含む操作データ(端末操作データ)をコーデックLSI66に出力する。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置に対する操作を表すデータが上記操作データにさらに含まれていてもよい。
【0138】
コーデックLSI66は、ゲーム装置3へ送信するデータに対する圧縮処理、および、ゲーム装置3から送信されたデータに対する伸張処理を行う回路である。コーデックLSI66には、LCD51、カメラ56、サウンドIC68、無線モジュール70、フラッシュメモリ73、および赤外線通信モジュール72が接続される。また、コーデックLSI66はCPU77と内部メモリ78を含む。端末装置7はゲーム処理自体を行なわない構成であるが、端末装置7の管理や通信のための最小限のプログラムを実行する必要がある。電源投入時にフラッシュメモリ73に格納されたプログラムを内部メモリ78に読み出してCPU77が実行することで、端末装置7が起動する。また、内部メモリ78の一部の領域はLCD51のためのVRAMとして使用される。
【0139】
カメラ56は、ゲーム装置3からの指示に従って画像を撮像し、撮像した画像データをコーデックLSI66へ出力する。また、コーデックLSI66からカメラ56へは、画像の撮像指示等、カメラ56に対する制御指示が出力される。なお、カメラ56は動画の撮影も可能である。すなわち、カメラ56は、繰り返し撮像を行って画像データをコーデックLSI66へ繰り返し出力することも可能である。
【0140】
サウンドIC68は、スピーカ67およびマイク69に接続され、スピーカ67およびマイク69への音声データの入出力を制御する回路である。すなわち、コーデックLSI66から音声データを受け取った場合、サウンドIC68は当該音声データに対してD/A変換を行って得られる音声信号をスピーカ67へ出力し、スピーカ67から音を出力させる。また、マイク69は、端末装置7に伝わる音(ユーザの音声等)を検知して、当該音を示す音声信号をサウンドIC68へ出力する。サウンドIC68は、マイク69からの音声信号に対してA/D変換を行い、所定の形式の音声データをコーデックLSI66へ出力する。
【0141】
コーデックLSI66は、カメラ56からの画像データ、マイク69からの音声データ、および、UIコントローラ65からの操作データを、端末操作データとして無線モジュール70を介してゲーム装置3へ送信する。本実施形態では、コーデックLSI66は、画像データおよび音声データに対して、コーデックLSI27と同様の圧縮処理を行う。上記端末操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール70に出力される。無線モジュール70にはアンテナ71が接続されており、無線モジュール70はアンテナ71を介してゲーム装置3へ上記送信データを送信する。無線モジュール70は、ゲーム装置3の端末通信モジュール28と同様の機能を有している。すなわち、無線モジュール70は、例えばIEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。
【0142】
以上のように、端末装置7からゲーム装置3へ送信される送信データには、操作データ(端末操作データ)、画像データ、および音声データが含まれる。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置から受け取ったデータが上記送信データにさらに含まれていてもよい。また、赤外線通信モジュール72は、他の装置との間で例えばIRDAの規格に従った赤外線通信を行う。コーデックLSI66は、赤外線通信によって受信したデータを、必要に応じて上記送信データに含めてゲーム装置3へ送信してもよい。
【0143】
また、上述のように、ゲーム装置3から端末装置7へは、圧縮された画像データおよび音声データが送信される。これらのデータはアンテナ71および無線モジュール70を介してコーデックLSI66に受信される。コーデックLSI66は、受信した画像データおよび音声データを伸張する。伸張された画像データはLCD51へ出力され、画像がLCD51に表示される。また、伸張された音声データはサウンドIC68へ出力され、サウンドIC68はスピーカ67から音を出力させる。
【0144】
また、ゲーム装置3から受信されるデータに制御データが含まれる場合、コーデックLSI66およびUIコントローラ65は、制御データに従った制御指示を各部に行う。上述のように、制御データは、端末装置7が備える各構成要素(本実施形態では、カメラ56、タッチパネルコントローラ61、マーカ部55、各センサ62〜64、赤外線通信モジュール72、およびバイブレータ79)に対する制御指示を表すデータである。本実施形態では、制御データが表す制御指示としては、上記各構成要素を動作させたり、動作を休止(停止)させたりする指示が考えられる。すなわち、ゲームで使用しない構成要素については電力消費を抑えるために休止させてもよく、その場合、端末装置7からゲーム装置3へ送信される送信データには、休止した構成要素からのデータが含まれないようにする。なお、マーカ部55は赤外LEDであるので、制御は単に電力の供給のON/OFFでよい。
【0145】
以上のように、端末装置7は、タッチパネル52、アナログスティック53、および操作ボタン54といった操作手段を備えるが、他の実施形態においては、これらの操作手段に代えて、または、これらの操作手段とともに、他の操作手段を備える構成であってもよい。
【0146】
また、端末装置7は、端末装置7の動き(位置や姿勢、あるいは、位置や姿勢の変化を含む)を算出するためのセンサとして、磁気センサ62、加速度センサ63、およびジャイロセンサ64を備えるが、他の実施形態においては、これらのセンサのうち1つまたは2つのみを備える構成であってもよい。また、他の実施形態においては、これらのセンサに代えて、または、これらのセンサとともに、他のセンサを備える構成であってもよい。
【0147】
また、端末装置7は、カメラ56およびマイク69を備える構成であるが、他の実施形態においては、カメラ56およびマイク69を備えていなくてもよく、また、いずれか一方のみを備えていてもよい。
【0148】
また、端末装置7は、端末装置7とメインコントローラ8との位置関係(メインコントローラ8から見た端末装置7の位置および/または姿勢等)を算出するための構成としてマーカ部55を備える構成であるが、他の実施形態ではマーカ部55を備えていない構成としてもよい。また、他の実施形態では、端末装置7は、上記位置関係を算出するための構成として他の手段を備えていてもよい。例えば、他の実施形態においては、メインコントローラ8がマーカ部を備え、端末装置7が撮像素子を備える構成としてもよい。さらにこの場合、マーカ装置6は赤外LEDに代えて、撮像素子を備える構成としてもよい。
【0149】
[5.ゲーム処理の概要]
次に、本実施形態のゲームシステム1において実行されるゲーム処理の概要について説明する。本実施形態におけるゲームは、プレイヤがリズムに合わせて端末装置7を操作するリズムゲームである。プレイヤは、端末装置7を把持し、当該端末装置7の姿勢を変化させてテレビ2に表示されるゲーム画像(テレビ用ゲーム画像)および端末装置7に表示されるゲーム画像(端末用ゲーム画像)を見ながら、ゲームをプレイする。図12Aは、本ゲームが行われる場合のプレイヤの基本的な姿勢を示す図であり、プレイヤが端末装置7を第1の姿勢で把持している様子を示す図である。図12Bは、本ゲームが行われる場合のプレイヤの基本的な姿勢を示す図であり、プレイヤが端末装置7を第2の姿勢で把持している様子を示す図である。図13Aは、端末装置7を第1の姿勢で把持した場合にテレビ2に表示されるテレビ用ゲーム画像の一例を示す図である。図13Bは、端末装置7を第2の姿勢で把持した場合にテレビ2に表示されるテレビ用ゲーム画像の一例を示す図である。図14は、本ゲームにおける仮想空間に配置された各オブジェクトの位置関係を示す図である。
【0150】
図12Aおよび図12Bに示すように、プレイヤは、基本的にテレビ2の画面に対して正面を向き、テレビ2および端末装置7のLCD51を見ながら本ゲームをプレイする。具体的には、プレイヤは、端末装置7が第1の姿勢となるようにして端末装置7を把持した場合に、テレビ2の画面に表示される画像(テレビ用ゲーム画像)を見てゲームをプレイする。また、プレイヤは、端末装置7が第2の姿勢となるようにして端末装置7を把持した場合に、端末装置7のLCD51に表示される画像(端末用ゲーム画像)を見てゲームをプレイする。図12Aに示すように、第1の姿勢は、端末装置7のLCD51が設けられた面が垂直上方向を向く姿勢(Z軸負方向が重力方向となる姿勢)であり、端末装置7のLCD51の画面が重力と垂直になる姿勢である。また、図12Bに示すように、第2の姿勢は、プレイヤが両手を前方にまっすぐに伸ばした状態で端末装置7を両手で把持した場合の端末装置7の姿勢であり、端末装置7のLCD51の画面が重力と平行になる姿勢である。
【0151】
図13Aおよび図13Bに示すように、テレビ2には、海賊船90Aと、海賊92と、弓93と、矢94とが表示される。プレイヤが第1の姿勢で端末装置7を把持すると、海賊92が拡大表示される。一方、プレイヤが第2の姿勢で端末装置7を把持すると、海賊92は縮小表示される。本ゲームでは、図14に示すように、プレイヤの視点(第1仮想カメラの位置)は仮想空間の船91に設定され、船91の正面には海賊船90A、船91の右側には海賊船90B、船91の左側には海賊船90Cが配置される。すなわち、本実施形態では、プレイヤが乗った船91は海賊船90Aと、海賊船90Bと、海賊船90Cとに囲まれている状況を想定したゲームが行われる。第1仮想カメラの撮像方向は固定され、第1仮想カメラの注視点は海賊92に固定される。なお、第1仮想カメラの撮像方向は必ずしも固定される必要はなく、例えば、ユーザによる端末装置7の操作ボタンに対する操作やゲームの状況に応じて変更されてもよい。プレイヤが第1の姿勢で端末装置7を把持すると、第1仮想カメラの位置が当該第1仮想カメラの撮像方向に移動するとともに、第1仮想カメラのズーム設定が変更される(画角が小さくされる)ことによって、海賊92が拡大表示される。一方、プレイヤが端末装置7の姿勢を第2の姿勢に変化させると、第1仮想カメラの位置が当該第1仮想カメラの撮像方向と反対方向に移動するとともに、第1仮想カメラがズームアウトして、海賊92が縮小表示される。なお、海賊船90Bおよび海賊船90Cは、船91の真横に配置されるとしたが、海賊船90Bおよび海賊船90Cはどのような位置に配置されてもよい。すなわち、海賊船90Bおよび海賊船90Cは、正面に対して90度の方向の位置に配置されたが、これらは、例えば、正面に対して60度の位置に配置されてもよい。
【0152】
図15Aは、プレイヤが端末装置7を自身の目の前で把持して、テレビ2に対して正面を向いているときの端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図である。図15Bは、プレイヤが端末装置7を自身の目の前で把持して、テレビ2に対して右側を向いているときの端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図である。
【0153】
図15Aに示すように、プレイヤがテレビ2に対して正面を向いている場合、LCD51には海賊船90A、および船91の一部が表示される一方、海賊92や弓93、矢94は表示されない。端末用ゲーム画像は、船91に設定された第2仮想カメラで仮想空間を撮像することによって得られる画像である。第2仮想カメラの位置は、海賊92が縮小表示されるときの第1仮想カメラの位置と略同じに設定される。また、第2仮想カメラの画角は、海賊92が縮小表示されるときの第1仮想カメラの画角と略同じに設定される。したがって、第2仮想カメラの撮像範囲は、海賊92が縮小表示されるときの第1仮想カメラの撮像範囲と略同じになる。プレイヤが端末装置7を自身の目の前で把持して、テレビ2に対して正面を向いている場合、図12Bのように、端末装置7のLCD51の画面が設けられた面の反対側の面が、テレビ2の方を向く。このような端末装置7の姿勢(ここでは「基準姿勢」という場合がある)では、端末装置7のLCD51には、船91の正面の海賊船90Aが表示される。「基準姿勢」は、端末装置7のLCD51が設けられた面と反対側の面がテレビ2を向く姿勢であり、端末装置7からZ軸負方向に伸ばした直線がテレビ2の画面と略垂直に交わるような姿勢である。端末装置7が基準姿勢である場合、第2仮想カメラの撮像方向は第1仮想カメラの撮像方向と同じになり、第1仮想カメラおよび第2仮想カメラの位置も同じまたは略同じになる。
【0154】
なお、上記第1の姿勢は、端末装置7のLCD51の画面が重力と垂直になる姿勢であり、端末装置7の上面がどこを向いていても第1の姿勢となる。すなわち、端末装置7がZ軸周りにどの程度回転しているかには依存せず、端末装置7のZ軸負方向が重力方向に近い姿勢の場合は、第1の姿勢となる。同様に、上記第2の姿勢は、端末装置7のLCD51の画面が重力と平行になる姿勢であり、端末装置7のLCD51の画面が設けられた面の反対側の面がどこを向いていても第2の姿勢となる。すなわち、端末装置7がY軸周りにどの程度回転しているかには依存せず、端末装置7のY軸負方向が重力方向に近い姿勢の場合は、第2の姿勢となる。これに対して、上記基準姿勢は、端末装置7のY軸負方向が重力方向となる姿勢であり、かつ、端末装置7のLCD51の画面が設けられた面の反対側の面がテレビ2を向く姿勢である。すなわち、基準姿勢は、プレイヤがテレビ2の正面に立ち、かつ、プレイヤが両手を前方にまっすぐに伸ばした状態で端末装置7を両手で把持した場合の端末装置7の姿勢である。
【0155】
また、図15Bに示すように、プレイヤがテレビ2に対して右側を向く場合(図20参照)、端末装置7のLCD51には、海賊船90Bおよび船91の一部が表示される。プレイヤが端末装置7を自身の目の前で把持して、テレビに対して右側を向く場合、端末装置7の左側面がテレビ2の方を向く。このような端末装置7の姿勢では、端末装置7のLCD51には、船91の右側の海賊船90Bが表示される。
【0156】
このように、プレイヤがテレビ2に対して右側を向くと、第2仮想カメラも右側を向き、海賊船90BがLCD51に表示される。すなわち、第2仮想カメラの姿勢は、端末装置7の姿勢に応じて変化し、端末装置7の姿勢と一致するように第2仮想カメラの姿勢が決定される。具体的には、ジャイロセンサ64によって検出された各軸(X、Y、Z軸)周りの角速度を時間で積分して得られる各軸周りの回転角度に応じて、第2仮想カメラの姿勢が設定される。なお、第2仮想カメラのズーム設定や撮像方向における位置は、端末装置7の姿勢に応じて変化しない。
【0157】
一方、プレイヤがテレビ2に対して右側を向いても、テレビ2に表示される画像は変化しない。すなわち、第1仮想カメラの姿勢は、端末装置7の姿勢に応じて変化しない。しかしながら、上述のように、端末装置7の姿勢に応じて第1仮想カメラの位置およびズーム設定が変化する。具体的には、端末装置7のX軸周りの回転角度に応じて、第1仮想カメラの位置が船91から海賊船90Aに向かって移動するとともに、第1仮想カメラの画角が小さくなって、図13Aに示すように海賊92が拡大表示される。
【0158】
なお、本実施形態では、ゲーム装置3において2つの仮想空間が定義され、第1仮想カメラは一方の仮想空間に設定され、第2仮想カメラは他方の仮想空間に設定されるものとする。当該2つの仮想空間には、同じオブジェクト(海賊船90Aや背景のオブジェクト等)が配置され、それぞれの画面に同じオブジェクトが表示される。このため、テレビ2および端末装置7には、同一の仮想空間を異なる仮想カメラで撮像したような画像が表示される。一方で、図13Bと図15Aとを比較すると、基本的には同様の画像であるが、図13Bには海賊92は表示されているが、図15Aには海賊92は表示されていない。第2仮想カメラが配置された他方の仮想空間には、海賊92等は配置されない。端末装置7は可搬型の表示装置であるため、画面の大きさには限界があり、端末装置7のLCD51に海賊92の小さな画像が表示されてもプレイヤは当該画像を認識することができない。したがって、端末装置7のLCD51には、海賊92は表示されない。なお、他の実施形態では、1つの仮想空間が定義され、2つの仮想カメラを1つの仮想空間に配置してもよい。また、2つの仮想空間が定義され、それぞれの仮想空間に全く同一のオブジェクト(海賊船90A等)が配置される必要はなく、同じものを表していればオブジェクト自体は異なるものであってもよい。例えば、一方の仮想空間に、海賊船90Aを示す第1のオブジェクトが配置され、他方の仮想空間に海賊船90Aと同じあるいは外観上類似した海賊船を示す第2のオブジェクトが配置されてもよい。そして、それぞれの仮想空間に配置された仮想カメラで、これらのオブジェクトが撮像されてテレビ2および端末装置7に表示されてもよい。
【0159】
次に、本実施形態のリズムゲームについてより具体的に説明する。図16Aは、本実施形態のゲームが実行された後の第1タイミングでテレビ2に表示されるテレビ用ゲーム画像の一例を示す図である。図16Bは、第1タイミングから所定時間経過後の第2タイミングで端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図である。図17は、プレイヤが端末装置7を下に向けている状態(第1の姿勢)から上に向ける状態に端末装置7の姿勢を変化させる様子を示す図である。
【0160】
本ゲームが開始されると、端末装置7の姿勢に応じて図13Aまたは図13Bに示す画像がテレビ2に表示されるとともに、所定の音楽がテレビ2のスピーカ2aから出力される。そして、図16Aに示すように、所定のタイミング(第1タイミング)で、指示画像96がテレビ2に表示されるとともに、矢94が放たれたことを示す指示画像96がテレビ2に表示される。指示画像96は、プレイヤに矢が発射されたことを知らせるための画像である。また、当該第1タイミングにおいて、矢94が放たれたことおよび矢94がどの方向から飛んでくるか(どの位置から矢94が放たれるか)を示す音声および矢94が放たれたことを示す効果音が、テレビ2のスピーカ2aから出力される。例えば、図16Aに示すように、第1タイミングにおいて海賊92が矢94を発射したことを示す指示画像96が表示されるとともに、海賊92がプレイヤに対して「上」と声で指示を出す(海賊92の声がテレビ2のスピーカ2aから出力される)。この指示画像96および音声による指示に応じて、プレイヤは、端末装置7を上方向に向けるように端末装置7の姿勢を変化させる。なお、矢94を放つ海賊が海賊92とは別に表示されてもよい。また、海賊92が矢94を放つ際に、上記指示画像96および音声に加えて、矢94がどの方向から飛んでくるかを示す文字情報が、テレビ2に表示されてもよい。
【0161】
図17に示すように、プレイヤは、端末装置7のLCD51の画面が設けられた面の反対側の面で矢を受けるようにして、当該反対側の面を実空間の上方を向ける。そして、第1タイミングから所定時間経過後の第2タイミングにおいて当該端末装置7の姿勢が維持されている場合、図16Bに示す画像が端末装置7のLCD51に表示される。具体的には、矢94を端末装置7で受け止めたことを示す画像97と、矢を受け止めた位置を示す円形画像98とが、端末装置7のLCD51に表示される。本実施形態においては、概念的に、海賊92が放った矢94を受け止めるための的として端末装置7が用いられる。
【0162】
図16Aおよび図16Bに示すように、第1タイミングにおいて矢94が放たれる様子がテレビ2に表示され、第2タイミングにおいて矢94がプレイヤに届いた様子が端末装置7のLCD51に表示される。第1タイミングから第2タイミングの間、矢94がプレイヤに向かって飛んでくる様子は、テレビ2にも端末装置7のLCD51にも表示されない。したがって、プレイヤは、テレビ2のスピーカ2aおよび端末装置7のスピーカ67から出力される音から、タイミングを合わせて端末装置7の姿勢を変化させる。具体的には、プレイヤは、テレビ2のスピーカ2aから出力される音楽に基づいて矢94がプレイヤに届くタイミングを予測し、当該矢94が届く前に端末装置7の姿勢を変化させて、当該タイミングにおいて端末装置7の姿勢を維持する。また、プレイヤは、テレビ2のスピーカ2aおよび端末装置7のスピーカ67から出力される効果音に基づいて、矢94がプレイヤに届くタイミングを予測する。当該効果音は、矢94が空間を移動する際に空気との摩擦によって発生するような音である。当該効果音は、矢94が発射された第1タイミングでテレビ2から発せられ、第1タイミングからの経過時間に応じて、テレビ2から発せられる効果音は、徐々に小さくなる。一方、端末装置7から発せられる効果音は、第1タイミングからの経過時間に応じて徐々に大きくなり、当該効果音が徐々に大きくなることで、矢94が近づいてくることをプレイヤに想像させる。
【0163】
図18は、海賊92が矢94を放った第1タイミングt1から矢94がプレイヤに届く第2タイミングt2までの時間経過を示す図である。上述のように、テレビ2のスピーカ2aからはゲームの開始とともに所定の音楽が出力される。当該音楽が出力されている間の第1タイミングt1において、矢94が放たれる。そして、当該第1タイミングt1から所定時間(例えば3拍)経過した時点の第2タイミングt2において、矢94がプレイヤに届く。当該第2タイミングt2において、端末装置7の姿勢が、第1タイミングt1で指示された姿勢である場合、矢94を端末装置7で受け止めたことを示す画像97および円形画像98が表示される。さらに、矢94を端末装置7で受け止めたことを示す音声(効果音)が端末装置7のスピーカ67から表示される。なお、第2タイミングt2において、端末装置7の姿勢が、第1タイミングt1で指示された姿勢でない場合、矢94を端末装置7で受け止めたことを示す画像97および円形画像98は表示されない。例えば、端末装置7からの音声や振動(バイブレータ79の振動)等によって、プレイヤが矢を端末装置7で受け止めることができなかったことがプレイヤに知らせられる。さらに、時間が経過して第1タイミングt1になった場合、海賊92および音声によっては次の指示が行われる。
【0164】
なお、第2タイミングt2から次の第1タイミングt1までの間に、プレイヤは端末装置7に対する所定の操作を行うことによって、端末装置7で受け止めた矢94を振り落とす操作を行う。当該操作が行われると、矢94が振り落とされて、画像97および円形画像98が端末装置7のLCD51に表示されなくなる。所定の操作は、例えば、端末装置7のZ軸負方向に所定の大きさの加速度を発生させる操作であってもよいし、端末装置7の所定の操作ボタンを押す操作であってもよい。
【0165】
また、上記第1タイミングt1および当該第2タイミングt2は、予め所定の音楽に関連付けられて記憶される。第1タイミングおよび第2タイミングは、所定の音楽のリズムに同期して設定される。例えば、第1タイミングt1は、所定の音楽の再生が開始されてから8拍目のタイミング、16拍目のタイミング、24拍目のタイミング等のように、予め所定の音楽に関連付けられてゲーム装置3に記憶され、第2タイミングt2は、第1タイミングt1から3拍目のタイミングになるように、予めゲーム装置3に記憶される。そして、所定の音楽の再生が開始された時点で、第1タイミングおよび第2タイミングが設定される。また、所定の音楽の再生速度は、プレイヤによって調整されてもよい。所定の音楽の再生速度が調整されると、当該調整された再生速度に応じて、音楽の再生開始から第1タイミングになるまでの時間および第2タイミングになるまでの時間も、調整される。すなわち、例えば、所定の音楽が通常よりも速いテンポで再生される場合は、当該音楽の再生開始から1回目の第1タイミングまでの時間は短くなり、第1タイミングと第2タイミングとの間の時間も短くなる。
【0166】
図19Aは、本実施形態のゲームが実行された後の第1タイミングt1でテレビ2に表示されるテレビ用ゲーム画像の他の例を示す図である。図19Bは、第1タイミングt1から所定時間経過後の第2タイミングt2で端末装置7のLCD51に表示される端末用ゲーム画像の他の例を示す図である。
【0167】
図19Aに示すように、第1タイミングt1において、テレビ2には海賊92が右側を指示している様子が表示されるとともに、海賊92がプレイヤに対して「右」と声で指示を出す(海賊92の声がテレビ2のスピーカ2aから出力される)。この場合、船91の正面の海賊船90Aから矢94が放たれず、船91の右側の海賊船90Bから矢94が放たれる。このため、図19Aでは、海賊92が矢94を放ったことを示す指示画像96は表示されない。
【0168】
ここで、プレイヤは、海賊92による指示に応じて、テレビ2に対して右側を向くように自身の姿勢(および端末装置7の姿勢)を変化させる。図20は、プレイヤがゲーム装置3からの指示に応じてテレビ2に対して右側を向く様子を実空間の上方から見た図である。プレイヤは、通常、テレビ2に対して正面を向いたままゲーム装置3からの指示を待つ。第1タイミングt1において、海賊92が右方向を指す動作およびテレビ2のスピーカ2aからの音声によって、プレイヤは、ゲーム装置3から指示を受ける。そして、図20に示すように、プレイヤは、当該指示に従ってテレビ2に対して右側を向くように自身の姿勢を変化させる(体全体を右に90度回転させる)。すると、図19Bに示すように、第2タイミングt2において、矢94が端末装置7に届いたことを示す画像97および円形画像98が表示される。
【0169】
以上のような海賊92による指示が音楽に合わせて繰り返される。本実施形態のゲームでは、テレビ2に表示される画像による指示およびテレビ2からの音声による指示に基づいて、プレイヤは、リズムに合わせてタイミング良く端末装置7を操作する。そして、プレイヤは、指示に従った操作を行った場合、高い点数を得ることができる。
【0170】
[6.ゲーム処理の詳細]
次に、本ゲームシステムにおいて実行されるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる各種データについて説明する。図21は、ゲーム処理において用いられる各種データを示す図である。図21において、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図21に示すように、ゲーム装置3のメインメモリには、ゲームプログラム100、端末操作データ110、および処理用データ120が記憶される。なお、メインメモリには、図21に示すデータの他、ゲームに登場する各種オブジェクトの画像データやゲームに使用される音声データ等、ゲームに必要なデータが記憶される。
【0171】
ゲームプログラム100は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム100は、光ディスク4に代えて、フラッシュメモリ17やゲーム装置3の外部装置から(例えばインターネットを介して)取得されてもよい。また、ゲームプログラム100に含まれる一部(例えば、端末装置7の姿勢を算出するためのプログラム)については、ゲーム装置3内に予め記憶されていてもよい。
【0172】
端末操作データ110は、端末装置7に対するプレイヤの操作を表すデータであり、端末装置7に対する操作に基づいて端末装置7から出力(送信)される。端末操作データ110は、端末装置7から送信されてゲーム装置3において取得され、メインメモリに記憶される。端末操作データ110は、角速度データ111、加速度データ112、方位データ113、および操作ボタンデータ114を含む。なお、端末操作データ110は、これらのデータの他、端末装置7のタッチパネル52においてタッチが行われた位置(タッチ位置)を示すデータ等を含む。また、ゲーム装置3は、複数の端末装置7から端末操作データを取得する場合、各端末装置7からそれぞれ送信されてくる各端末操作データ110をメインメモリにそれぞれ記憶してもよい。
【0173】
角速度データ111は、端末装置7におけるジャイロセンサ64によって検出された角速度を表すデータである。ここでは、角速度データ111は、端末装置7に固定のXYZ座標系(図9参照)の各軸回りの角速度をそれぞれ表すものであるが、他の実施形態においては、任意の1軸以上の軸回り角速度を表すものであればよい。
【0174】
加速度データ112は、端末装置7の加速度センサ63によって検出された加速度を表すデータである。ここでは、端末装置7に固定のXYZ座標系(図9参照)の各軸回りの加速度をそれぞれ表す。
【0175】
方位データ113は、端末装置7の磁気センサ62によって検出された方位を示すデータである。
【0176】
操作ボタンデータ114は、端末装置7に設けられた各操作ボタン54A〜54Lが押されているか否かを表すデータである。
【0177】
処理用データ120は、後述するゲーム処理(図22)において用いられるデータである。処理用データ120は、姿勢データ121、第1仮想カメラデータ122、第2仮想カメラデータ123、および状態データ124を含む。なお、図21に示すデータの他、処理用データ120は、得点に関するデータ等、ゲーム処理において用いられる各種データを含む。
【0178】
姿勢データ121は、端末装置7の姿勢を表すデータである。端末装置7の姿勢は、例えば、基準姿勢から現在の姿勢への回転を表す回転行列によって表現される。なお、端末装置7の姿勢は、3つの角度(XYZ各軸周りの回転角度)によって表現されてもよい。姿勢データ121は、端末装置7からの端末操作データ110に含まれる角速度データ111に基づいて算出される。具体的には、姿勢データ121は、ジャイロセンサ64によって検出されたX軸、Y軸、Z軸周りの角速度をそれぞれ時間で積分することによって算出される。なお、端末装置7の姿勢は、ジャイロセンサ64によって検出された角速度を示す角速度データ111に限らず、加速度センサ63によって検出された加速度を表す加速度データ112、および、磁気センサ62によって検出された方位を示す方位データ113に基づいて算出されてもよい。また、角速度に基づいて算出される姿勢を加速度データや方位データに基づいて補正をすることによって姿勢を算出するようにしてもよい。また、メインメモリには、過去所定数フレームにおける端末装置7の姿勢を示す姿勢データ121が、時系列に記憶される。
【0179】
第1仮想カメラデータ122は、仮想空間に設定された第1仮想カメラの当該仮想空間における位置および姿勢を示すデータと、第1仮想カメラのズーム設定(画角の設定)を示すデータとを含む。上述のように、第1仮想カメラは、テレビ用ゲーム画像を生成するための仮想カメラである。また、第1仮想カメラの撮像方向(姿勢)は固定されるが、第1仮想カメラの位置とズーム設定とは、端末装置7の姿勢に応じて変化する。
【0180】
第2仮想カメラデータ123は、仮想空間に設定された第2仮想カメラの当該仮想空間における位置および姿勢を示すデータである。上述のように、第2仮想カメラは、端末用ゲーム画像を生成するための仮想カメラである。また、第2仮想カメラの位置は固定されているが、第2仮想カメラの姿勢は、端末装置7の姿勢に応じて変化する。
【0181】
状態データ124は、端末装置7の姿勢が、上記第1の姿勢か第2の姿勢かを示すデータである。
【0182】
次に、ゲーム装置3において実行されるゲーム処理の詳細を、図22および図23を用いて説明する。図22は、ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図22に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、ゲーム装置3においては、電源投入後にゲームプログラムがすぐに実行される構成であってもよいし、電源投入後にまず所定のメニュー画面を表示する内蔵プログラムが実行され、その後例えばユーザによるメニュー画面に対する選択操作によってゲームの開始が指示されたことに応じてゲームプログラムが実行される構成であってもよい。
【0183】
なお、図22および図23に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数や定数の値等も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU10が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、CPU10以外のプロセッサや専用回路が実行するようにしてもよい。
【0184】
まず、ステップS1において、CPU10は初期処理を実行する。初期処理は、仮想空間を構築し、仮想空間に登場する各オブジェクト(船91、海賊船90Aや海賊92、矢94、第1仮想カメラおよび第2仮想カメラ等)を初期位置に配置したり、ゲーム処理で用いる各種パラメータの初期値を設定したりする処理である。
【0185】
また、ステップS1において、端末装置7の初期処理が行われる。例えば、プレイヤに端末装置7を上記基準姿勢で把持して、当該姿勢のまま端末装置7の所定の操作ボタンを押させるための画像がテレビ2に表示される。このような端末装置7の初期処理によって、端末装置7のXYZ各軸周りの回転角が0に設定される。なお、初期処理において、Z軸周りの回転角(端末装置7のLCD51に対して垂直な軸周りの回転角)のみが0に設定されて、X軸およびY軸周りの回転角は加速度センサ63が検出した加速度に基づいて設定されてもよい。ゲーム装置3は、端末装置7の加速度センサ63が検出する重力の方向に基づいて、重力に対して端末装置7がどの程度傾いているかを計算することができる。しかしながら、ゲーム装置3は、加速度センサ63が検出する重力の方向のみでは、端末装置7がどの方向を向いているか(鉛直下向きの軸の周りにどの程度回転しているか)を知ることができない。したがって、ステップS1においては、プレイヤに端末装置7の所定の面(例えば、LCD51が設けられた面の反対側の面)をテレビ2の方に向けさせて、端末装置7のZ軸周りの回転角を0に設定することにより、端末装置7の姿勢を初期化する。これにより、ゲーム装置3は、初期化された時点における端末装置7の姿勢を基準姿勢として、当該基準姿勢からの端末装置7の姿勢の変化をジャイロセンサ64によって検出された角速度を用いて算出することができる。
【0186】
端末装置7の所定の操作ボタンが押されて端末装置7の初期処理が完了すると、CPU10は、所定の音楽の再生を開始して、次にステップS2の処理を実行する。以降、ステップS2〜S8の一連の処理からなる処理ループが所定時間(1フレーム時間。例えば1/60秒)に1回の割合で繰り返し実行される。
【0187】
ステップS2において、CPU10は、端末装置7から送信されて、メインメモリに記憶されている端末操作データ110を取得する。端末装置7は端末操作データ110をゲーム装置3へ繰り返し送信する。ゲーム装置3においては、端末通信モジュール28が端末操作データを逐次受信し、受信された端末操作データが入出力プロセッサ11aによってメインメモリに逐次記憶される。端末装置7とゲーム装置3との間における送受信の間隔はゲームの処理時間よりも短い方が好ましく、例えば200分の1秒である。ステップS2においては、CPU10は、最新の端末操作データ110をメインメモリから読み出す。ステップS2の次にステップS3の処理が実行される。
【0188】
ステップS3において、CPU10はゲーム制御処理を実行する。ゲーム制御処理は、プレイヤによるゲーム操作に従ってゲームを進行させる処理である。以下、図23を参照して、ゲーム制御処理の詳細について説明する。
【0189】
図23は、図22に示すゲーム制御処理(ステップS3)の詳細な流れを示すフローチャートである。
【0190】
ステップS11において、CPU10は、角速度データ111に基づいて、端末装置7の姿勢を算出する。具体的には、CPU10は、ステップS2で取得した角速度データ111と、メインメモリに記憶されている姿勢データ121とに基づいて、端末装置7の姿勢を算出する。より具体的には、CPU10は、ステップS2で取得した角速度データ111によって表わされる各軸(X軸、Y軸、Z軸)周りの角速度に1フレーム時間をかけて得られる各軸周りの回転角を算出する。このようにして算出される各軸周りの回転角は、前回の処理ループが実行されてから今回の処理ループが実行されるまでの、端末装置7の各軸周りの回転角(1フレーム時間における回転角)である。次に、CPU10は、姿勢データ121によって示される端末装置7の各軸周りの回転角に、当該算出された各軸周りの回転角(1フレーム時間における回転角)を加えることにより、端末装置7の各軸周りの最新の回転角(端末装置7の最新の姿勢)を算出する。なお、算出された姿勢に対して加速度に基づいた補正をさらに行ってもよい。具体的には、端末装置7の動きが少ないときには加速度センサ63によって検出された加速度の方向を重力方向とみなすことができる。このため、端末装置7の動きが少ないときに、角速度に基づいて算出された姿勢に基づいて算出される重力方向が、加速度センサ63によって検出された加速度の方向に近づくように姿勢を補正するようにすればよい。また、算出された姿勢に対して方位データ113に基づいた補正をさらに行ってもよい。具体的には、ステップS1において初期処理が行われた時点において磁気センサ62が検出した方位と、現在磁気センサ62が検出している方位とに基づいて、端末装置7が鉛直下向きの軸周りにどの程度回転しているかを求めることができる。したがって、方位データ113に基づいて、端末装置7の姿勢を補正してもよい。そして、CPU10は、算出した端末装置7の最新の姿勢を姿勢データ121として、メインメモリに記憶する。以上のようにして算出された端末装置7の最新の姿勢は、初期化された時点(ステップS1において初期化された時点)を基準姿勢として、当該基準姿勢からの端末装置7の各軸周りの回転角を示す。具体的には、端末装置7の姿勢を示す姿勢データ121は、回転行列を表すデータである。ステップS11の処理の後、CPU10は、ステップS12の処理を実行する。
【0191】
ステップS12において、CPU10は、端末装置7の姿勢に応じて、第1仮想カメラの位置および画角の設定を行う。具体的には、CPU10は、ステップS11で算出された端末装置7の姿勢が、上記第1の姿勢か第2の姿勢かを判定し、当該判定結果に応じて、第1仮想カメラの設定を行う。より具体的には、CPU10は、まず、端末装置7のX軸周りの回転角が、所定の閾値(例えば、45度)以上か否かを判定する。
【0192】
図24は、端末装置7がX軸周りに所定角度回転している場合の端末装置7を側面から見た図である。図24に示すように、端末装置7のX軸周りの回転角が、所定の閾値以上である場合、CPU10は、端末装置7の姿勢が第2の姿勢であると判定する。一方、CPU10は、端末装置7のX軸周りの回転角が、所定の閾値未満である場合、端末装置7の姿勢が第1の姿勢であると判定する。CPU10は、判定結果を状態データ124として、メインメモリに記憶する。なお、CPU10は、現在の端末装置7の姿勢が第1の姿勢かあるいは第2の姿勢かに応じて、上記所定の閾値を変更する。例えば、CPU10は、現在の姿勢が第1の姿勢である場合、上記所定の閾値として45度を用い、現在の姿勢が第2の姿勢である場合、上記所定の閾値として30度を用いてもよい。
【0193】
次に、CPU10は、第1仮想カメラの位置および画角を設定する。具体的には、CPU10は、端末装置7の姿勢が第1の姿勢である場合、第1仮想カメラの位置を船91の位置と海賊船90Aの位置との間の所定位置(海賊船90Aに近い位置)に設定するとともに、第1仮想カメラの画角を最小に設定する。これにより、第1仮想カメラで仮想空間を撮像した場合、海賊船90A(海賊92)がズームインされて拡大表示される。一方、CPU10は、端末装置7の姿勢が第2の姿勢である場合、第1仮想カメラの位置を船91の位置に設定するとともに、第1仮想カメラの画角を最大に設定する。これにより、第1仮想カメラで仮想空間を撮像した場合、海賊船90Aがズームアウトされて縮小表示される。なお、CPU10は、所定時間かけて第1仮想カメラを移動させるとともに、第1仮想カメラの画角を変化させる。したがって、テレビ2には、海賊92が次第にズームインあるいはズームアウトされる様子が表示される。ステップS12の処理が終了すると、CPU10は、次にステップS13の処理を実行する。
【0194】
ステップS13において、CPU10は、端末装置7の姿勢に応じて、テレビ2から出力される音声の音量を設定する。具体的には、CPU10は、ステップS11で算出された端末装置7の姿勢が第2の姿勢である場合、第1の姿勢である場合に比べてテレビ2から出力される音声(海賊92の声や音楽)の音量を小さくする。CPU10は、次にステップS14の処理を実行する。
【0195】
ステップS14において、CPU10は、端末装置7の姿勢に応じて、第2仮想カメラの姿勢を設定する。具体的には、CPU10は、ステップS11で算出された端末装置7の姿勢と一致するように、第2仮想カメラの姿勢を設定し、第2仮想カメラデータ123としてメインメモリに記憶する。これにより、例えば、端末装置7のLCD51が設けられた面の反対側の面がテレビ2を向く姿勢の場合(プレイヤがテレビ2を向く場合)、第2仮想カメラは海賊船90Aを向く姿勢に設定される。また、例えば、端末装置7のLCD51が設けられた面がテレビ2を向く姿勢の場合(プレイヤがテレビ2の反対側を向く場合)、第2仮想カメラは海賊船90Aの反対側を向く姿勢に設定される。CPU10は、次にステップS15の処理を実行する。
【0196】
ステップS15において、CPU10は、第1タイミングt1か否かを判定する。具体的には、CPU10は、ステップS1において所定の音楽の再生が開始されてからの経過時間に基づいて、第1タイミングt1か否かを判定する。判定結果が肯定の場合、CPU10は、次にステップS16の処理を実行する。一方、判定結果が否定の場合、CPU10は、次にステップS18の処理を実行する。
【0197】
ステップS16において、CPU10は、矢94を放つ処理を開始する。具体的には、CPU10は、所定のアルゴリズムに従って矢94をどの方向(前、上、右、左等)から飛ばすかを決定し、決定した方向から矢94を放つための処理を開始する。これにより、第1仮想カメラで海賊92を撮像した場合に、海賊92が矢94を放つ様子(図16A)がテレビ2に表示されたり、どの方向から矢94が飛んでくるかを海賊92が指し示す様子(図19A)がテレビ2に表示されたりする。また、CPU10は、矢を放つ処理として、どの方向から矢94が飛んでくるかを示す音声および矢94が放たれたことを示す効果音を再生する。メインメモリには、複数の音声データが格納されており、CPU10は、決定した方向に応じた音声データを選択する。これにより、テレビ2のスピーカ2aから、どの方向から矢94が飛んでくるかを示す音声(例えば、「右」)が出力される。CPU10は、次にステップS17の処理を実行する。
【0198】
ステップS17において、CPU10は、第1タイミングt1からの経過時間の計測を開始する。CPU10は、ステップS17の処理の後、CPU10は、図23に示すゲーム制御処理を終了する。
【0199】
一方、ステップS18において、CPU10は、現在矢94が放たれているか否かを判定する。ここでは、図18に示すように、現在が第1タイミングt1から第2タイミングt2までの期間か否かを判定する処理である。具体的には、CPU10は、ステップS17で計測が開始されてからの経過時間に基づいて、現在矢94が放たれているか否かを判定する。判定結果が肯定の場合、CPU10は、次にステップS19の処理を実行する。一方、判定結果が否定の場合、CPU10は、次にステップS22の処理を実行する。
【0200】
ステップS19において、CPU10は、第2タイミングt2か否かを判定する。具体的には、CPU10は、ステップS17で計測が開始されてからの経過時間に基づいて、第2タイミングt2か否かを判定する。判定結果が肯定の場合、CPU10は、次にステップS20の処理を実行する。一方、判定結果が否定の場合、CPU10は、次にステップS21の処理を実行する。
【0201】
ステップS20において、端末装置7の姿勢に基づいた判定処理を行う。ステップS20においては、第2タイミングt2における端末装置7の姿勢に応じた処理を行う。具体的には、CPU10は、ステップS11で算出した端末装置7の姿勢が、ステップS16で決定した方向(海賊92が指示した方向)に応じた姿勢か否かを判定する。例えば、ステップS16において、矢94を右側から飛ばす(すなわち、海賊船90Bからプレイヤに矢94を飛ばす)と決定された場合、CPU10は、端末装置7の姿勢が、図20に示すような姿勢であるか否かを判定する。例えば、CPU10は、姿勢データ121に基づいて、端末装置7のZ軸負方向の単位ベクトルの各軸の座標値が、ステップS16における決定に応じた所定の範囲内か否かを判定することにより、端末装置7の姿勢が海賊92の指示に応じた姿勢か否かを判定する。
【0202】
また、CPU10は、当該判定結果に応じて、端末装置7のLCD51に表示する画像、および端末装置7のスピーカ67から出力する音声を決定する。これにより、例えば、判定結果が肯定の場合(端末装置7の姿勢がステップS16で決定した方向に応じた姿勢である場合)、後述するステップS5およびS7の処理が実行されることで、図16Bに示す画像97および円形画像98がLCD51に表示される。また、CPU10は、判定が肯定の場合、得点を加算する。
【0203】
なお、CPU10は、ステップS20において、過去所定数フレームにおいて算出した端末装置7の姿勢に基づいて、端末装置7が動いているか否かを判定する。メインメモリには、過去所定数フレームにおける端末装置7の姿勢が格納されている。したがって、CPU10は、過去所定数フレームの端末装置7の姿勢に基づいて、端末装置7の姿勢がどの程度変動しているかを算出することができる。CPU10は、端末装置7が動いていると判定した場合、現在の端末装置7の姿勢がステップS16で決定した方向に応じた姿勢であっても、端末装置7が静止している場合とは異なる画像を生成して端末装置7に表示する。図25は、端末装置7が動いている場合において、第2タイミングt2で端末装置7のLCD51に表示される画像の一例を示す図である。図25に示すように、端末装置7が動いている場合、プレイヤが正しい姿勢(海賊92の指示に応じた姿勢)で端末装置7を把持していたとしても、矢を受け止めた位置を示す円形画像98は、画面の中心からずれた位置に表示される。この場合、プレイヤが獲得する得点は、端末装置7が動いていないと判定された場合よりも、低くなる。このように、第2タイミングt2における端末装置7の姿勢に応じてゲーム処理が行われるとともに、当該タイミングにおいて端末装置7が静止しているか否かによってもゲーム処理の結果が異なる。なお、端末装置7が動いているか否かの判定は、加速度センサ63が検出した加速度に基づいて行ってもよい。
【0204】
さらに、CPU10は、ステップS20において、矢94が振り落とされずに残っているか否かに応じて、画像97および円形画像98を表示する位置を決定する。後述のステップS22において、端末装置7で受け止めた矢94を振り落とす処理が行われない場合、矢94は振り落とされずに残り、端末装置7のLCD51に表示されたままとなる。メインメモリには、端末装置7で受け止めた矢94が残っているか否かを示す情報が記憶されている。矢94が残っている場合、画像97および円形画像98は、端末装置7の画面の中心付近に表示されず、図25に示すように画面の中心からずれた位置に表示される。この場合も同様に、プレイヤが獲得する得点は、矢94が残っていない場合よりも低くなる。次に、CPU10は、ステップS17において計測を開始した経過時間をリセットし、図23に示すゲーム制御処理を終了する。
【0205】
ステップS21において、CPU10は、ロックオン枠の表示/非表示を設定する。図26は、端末装置7のLCD51に表示されるロックオン枠99の一例を示す図である。ステップS21の処理は、矢94が放たれており、かつ、第2タイミングt2でない場合(すなわち、第1タイミングt1から第2タイミングt2の間の期間である場合)に実行される。ステップS21の処理は、当該期間における端末装置7の姿勢が、正しい姿勢(海賊92の指示に応じた姿勢)か否かを判定し、正しい姿勢である場合は、ロックオン枠99を表示する処理である。ロックオン枠99は、プレイヤに現在の端末装置7の姿勢が正しいことを知らせるためのものである。すなわち、CPU10は、現在の端末装置7の姿勢が、矢94が放たれたときに海賊92が指示した方向に応じた姿勢か否かを判定し、判定結果が肯定である場合に、ロックオン枠99の表示をONにする。判定結果が否定である場合、ロックオン枠99は非表示に設定される。CPU10は、ステップS21の処理の後、CPU10は、図23に示すゲーム制御処理を終了する。
【0206】
一方、ステップS22において、CPU10は、加速度に基づく処理を実行する。ステップS22では、端末装置7の加速度センサ63が検出した加速度に基づいて、所定のゲーム処理が実行される。具体的には、CPU10は、端末装置7のZ軸負方向の加速度の値が所定の閾値以上であるか否かを判定する。判定結果が肯定の場合、CPU10は、端末装置7で受け止めた矢94を振り落とす処理を行い、図23に示すゲーム制御処理を終了する。これにより、端末装置7のLCD51に表示されている画像97および円形画像98が表示されなくなる。判定結果が否定の場合、または、既に矢94が振り落とされている場合、CPU10は何も行わず、図23に示すゲーム制御処理を終了する。
【0207】
図22に戻り、CPU10はステップS3の処理の後、次にステップS4の処理を実行する。
【0208】
ステップS4において、CPU10は、テレビ用ゲーム画像の生成処理を実行する。具体的には、CPU10は、第1仮想カメラで仮想空間を撮像することによってテレビ用ゲーム画像を取得する。ステップS12の処理において設定された位置および画角の第1仮想カメラで仮想空間が撮像されることにより、端末装置7の姿勢に応じて海賊92が拡大表示されたり縮小表示されたりする。以上のような処理により、海賊92が拡大された画像や海賊92が矢94を放つ様子を示す画像等、ゲームの状況に応じたテレビ用ゲーム画像が取得される。CPU10は、次にステップS5の処理を実行する。
【0209】
ステップS5において、CPU10は、端末用ゲーム画像の生成処理を実行する。具体的には、CPU10は、ステップS14で仮想空間における姿勢が設定された第2仮想カメラで仮想空間を撮像することにより、端末用ゲーム画像を生成する。また、CPU10は、ステップS20やステップS22の処理の結果に応じて、画像97および円形画像98を生成した端末用ゲーム画像に重ね合わせる。また、ステップS21において、ロックオン枠99の表示がONに設定された場合、CPU10は、第2仮想カメラで仮想空間を撮像して得られた端末用ゲーム画像に、ロックオン枠99の画像を重ね合わせる。これにより、端末装置7の姿勢に応じた姿勢の第2仮想カメラから仮想空間を見た画像、第2タイミングt2になって端末装置7の画面に矢94が刺さった様子を示す画像(円形画像98等)等、ゲームの状況に応じた端末用ゲーム画像が取得される。CPU10は、次にステップS6の処理を実行する。
【0210】
ステップS6において、CPU10は、テレビ2へステップS4で生成したテレビ用ゲーム画像を出力する。これにより、テレビ2には、例えば図13Aまたは図13Bに示すような画像が表示される。また、ステップS6においては、テレビ用ゲーム画像と共に音声データがテレビ2へ出力され、テレビ2のスピーカ2aからゲーム音声がステップS13の処理で設定された音量で出力される。具体的には、端末装置7の姿勢が第1の姿勢の場合、第2の姿勢の場合よりも海賊92の声の音量が大きくなる。すなわち、海賊92が拡大表示されている場合は、海賊92の声の音量が大きくなり、縮小表示されている場合は、音量が小さくなる。なお、所定の音楽の音量は、端末装置7の姿勢に応じて変化してもよいし(海賊92の声と同様に第1の姿勢の場合は音量が大きくなってもよい)、端末装置7の姿勢によらず一定であってもよい。CPU10は、次にステップS7の処理を実行する。
【0211】
ステップS7において、CPU10は、端末装置7へ端末用ゲーム画像を送信する。具体的には、CPU10は、ステップS5で生成した端末用ゲーム画像をコーデックLSI27に送り、当該コーデックLSI27は、端末用ゲーム画像に対して所定の圧縮処理を行う。圧縮処理が施された画像のデータは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。端末装置7は、ゲーム装置3から送信されてくる画像のデータを無線モジュール70によって受信する。コーデックLSI66は、受信された画像データに対して所定の伸張処理を行う。伸張処理が行われた画像データはLCD51に出力される。これによって、端末用ゲーム画像がLCD51に表示される。また、ステップS7においては、端末用ゲーム画像と共に音声データが端末装置7へ送信され、端末装置7のスピーカ67からゲーム音声が出力される。CPU10は、次にステップS8の処理を実行する。
【0212】
ステップS8において、CPU10は、ゲームを終了するか否かを判定する。ステップS8の判定は、例えば、ゲームの開始から所定の時間が経過したか否か、あるいは、ユーザがゲームを中止する指示を行ったか否か等によって行われる。ステップS8の判定結果が否定の場合、ステップS2の処理が再度実行される。一方、ステップS8の判定結果が肯定の場合、CPU10は図22に示すゲーム処理を終了する。
【0213】
以上のように、プレイヤは、端末装置7の姿勢を変化させることで、海賊船90A等(海賊92や矢94を含む)を拡大したり縮小したりすることができる。具体的には、プレイヤが端末装置7のLCD51を視認しない姿勢(第1の姿勢)で端末装置7を把持した場合、海賊船90A等は拡大表示されるとともに、テレビ2のスピーカ2aから出力される音声の音量が大きくなる。一方、端末装置7を第2の姿勢に変化させた場合、海賊船90A等は縮小表示されるとともに、テレビ2のスピーカ2aから出力される音声の音量が小さくなる。また、テレビ2には海賊92や矢94が表示されるが、端末装置7には海賊92や矢94は表示されない。さらに、端末装置7は可搬型の表示装置であるため、LCD51の画面サイズは比較的小さく、端末装置7に表示される海賊船90Aは、端末装置7の姿勢が第2の姿勢である場合に縮小表示される海賊船90Aと同様に、視認困難である。このため、プレイヤは端末装置7のLCD51を見るだけでは海賊92からの指示を視認することができない。言い換えると、端末装置7に表示される海賊船90Aは、常に視認困難な程度の大きさでしかないが、テレビ2に表示される海賊船90Aは、端末装置7の姿勢に応じて視認容易になったり、視認困難になったりする。したがって、プレイヤは海賊92からの指示(画像および音声による指示)を視聴するために、テレビ2を見る必要があり、さらに海賊92からの指示を視聴し易くするため、端末装置7の姿勢を第1の姿勢に変化させてテレビ2を視聴する。海賊92からの指示があった後、第2タイミングt2において、プレイヤは端末装置7で矢94を受け止めるようにして、端末装置7の姿勢を変化させ、矢94を受け止めたか否かの結果が端末装置7のLCD51に表示される。
【0214】
このように、本実施形態のゲームでは、プレイヤにテレビ2と端末装置7の画面とを交互に見させることができ、プレイヤは可搬型表示装置である端末装置7を用いたゲームを楽しむことができる。
【0215】
また、テレビ2は据置型の表示装置であり、端末装置7は可搬型の表示装置である。可搬型表示装置はプレイヤによって把持され、これら2つの表示装置は距離がある程度離れている。このようなゲーム環境において上述のようなリズムゲームが行われることにより、これら2つの表示装置の間の距離を利用した空間的な広がりを持つリズムゲームを楽しむことができる。
【0216】
[7.変形例]
なお、上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成で本発明を実施することも可能である。
【0217】
例えば、本実施形態では、端末装置7の姿勢に応じてテレビ2に表示される海賊船90Aや海賊92を拡大または縮小した。これにより、プレイヤにテレビ2と端末装置7とを交互に視聴させて、2つの表示装置を用いたゲームを行わせた。他の実施形態では、例えば、仮想空間に霧を発生/消滅させて、海賊船90Aや海賊92を視認困難/視認容易に切り替えてもよい。また、例えば、テレビ2の画面をブラックアウトさせたり、画面全体あるいは海賊船90A等を含む所定の領域をぼかしたり、海賊船90A等を透明または半透明にすることにより、海賊船90A等を視認困難(視認不可能)にしてもよい。また、例えば、海賊船90A等をモザイク表示することにより、海賊船90Aや海賊92を視認困難(視認不可能)にしてもよい。また、例えば、海賊船90Aの手前に他のオブジェクトを表示することにより、海賊船90Aを視認困難(視認不可能)にしてもよい。すなわち、本実施形態では、端末装置7の姿勢が第1の姿勢の場合に海賊船90A等を拡大(ズームイン)して視認容易にし、端末装置7の姿勢が第2の姿勢の場合に縮小(ズームアウト)して視認困難にした。そして、海賊船90A等を視認困難にすることにより、端末装置7の画面をプレイヤに見させるようにした。他の実施形態では、第1仮想カメラの設定を変更して海賊船90A等を拡大/縮小する代わりに、上記のように他の方法によって海賊船90A等を視認困難/視認容易に切り替えてもよい。海賊船90A等を視認困難にするために、海賊船90A等を縮小表示する処理、海賊船90A等を含む一部あるいは全部の領域に所定の画像(霧を示す白色の画像や画面をブラックアウトさせる黒色の画像、海賊船90Aの手前に配置された他のオブジェクトの画像等)を表示させる処理を行ってもよい。また、海賊船90A等を視認困難にするために、海賊船90A等をぼかす処理、海賊船90A等をモザイク表示する処理を行ってもよい。これにより、プレイヤにテレビ2と端末装置7の画面とを交互に見させてゲームをプレイさせることができる。
【0218】
また、本実施形態では、端末装置7の姿勢が第1の姿勢か第2の姿勢かを判定した。具体的には、第1の姿勢は、端末装置7の画面が地面と水平となる姿勢(画面が重力方向と略垂直になる姿勢)であり、当該姿勢ではプレイヤは端末装置7の画面を見ずにテレビ2を見ているものとした。第2の姿勢は、端末装置7の画面が地面に対して垂直となる姿勢(画面が重力方向と略平行になる姿勢)であり、当該姿勢ではプレイヤは端末装置7の画面を見ているものとした。すなわち、本実施形態では、端末装置7の姿勢に基づいて、プレイヤが端末装置7の画面を視認しているか否か(言い換えるとプレイヤがテレビ2を視認しているか否か)を判定した。他の実施形態では、他の方法により、プレイヤがテレビ2(あるいは端末装置7)を視認している状態か、視認していない状態かを判定してもよい。例えば、端末装置7が備えるカメラ56でプレイヤの顔を撮像し、当該撮像した画像に対して顔認識処理を行ってもよい。これにより、プレイヤの視線が端末装置7のLCD51に向いているか否かを判定することにより、プレイヤが端末装置7を視認している状態か否か(テレビ2を視認しているか否か)を判定してもよい。また、例えば、カメラ56とは異なるカメラを実空間(例えばテレビ2の周辺)に配置し、当該カメラによって撮像された画像をゲーム装置3が取得して、プレイヤがテレビ2を視認している状態か否かを判定してもよい。例えば、プレイヤがテレビ2を視認している状態か否かは、当該カメラによって撮像された画像にプレイヤの顔が含まれているか否かを顔認識技術等を用いることによって判定することができる。また、他の実施形態では、プレイヤによって端末装置7の所定の操作ボタンが押されているか否かによって、プレイヤがテレビ2を視認しているか否かを判定してもよい。
【0219】
また、例えば、端末装置7の姿勢はマーカ装置6のマーカを端末装置7が撮像することによって、算出されてもよく、当該端末装置7の姿勢に応じてプレイヤが端末装置7(あるいはテレビ2)を視認しているか否かを判定してもよい。この場合、端末装置のLCD51が設けられた面の反対側の面にマーカを撮像するカメラが設けられてもよい。あるいは、実空間に配置されたカメラで端末装置7のマーカ部55を撮像することにより、端末装置7の姿勢が算出されてもよい。例えば、端末装置7が備えるカメラでマーカ装置6の2つのマーカを撮像する場合、撮像画像に含まれる2つのマーカの位置や姿勢に基づいて、端末装置7がどの方向を向いているか(テレビ2を向いているか)、横方向にどの程度傾いているかをゲーム装置3は算出することができる。また、実空間に配置されたカメラで端末装置7を撮像し、撮像画像に含まれる端末装置7をパターンマッチング等の画像認識技術によって検出することで、端末装置7の姿勢を算出することができる。
【0220】
また、本実施形態では、ジャイロセンサが検出した角速度に基づいて、端末装置7の姿勢を算出し、加速度センサが検出した加速度に基づいて端末装置7の姿勢を補正した。すなわち、これらの2種類の慣性センサ(加速度センサおよびジャイロセンサ)が検出する物理量の双方を用いて、端末装置7の姿勢を算出した。他の実施形態では、磁気センサが検出する方位(磁気センサが検出する地磁気によって示される方角)に基づいて、端末装置7の姿勢を算出してもよい。磁気センサによって端末装置7がどの方向(地面に平行な方向)を向いているかを検出することができる。この場合、さらに加速度センサを用いると、重力方向に対する傾きを検出することができ、端末装置7の3次元空間における姿勢を算出することができる。
【0221】
また、他の実施形態では、端末装置7においてジャイロセンサ64等によって検出された物理量に基づいて、端末装置7の姿勢が算出され、当該姿勢に関するデータがゲーム装置3に送信されてもよい。そして、ゲーム装置3において、端末装置7からのデータを受信して、端末装置7の姿勢を取得し、当該端末装置7の姿勢に基づいて、上述のようなゲーム処理が行われてもよい。すなわち、ゲーム装置3は、端末装置7からのジャイロセンサ64等によって検出された物理量に応じたデータに基づいて、端末装置7の姿勢を算出することによって端末装置7の姿勢を取得してもよいし、端末装置7において算出された姿勢に関するデータに基づいて、端末装置7の姿勢を取得してもよい。
【0222】
また、本実施形態では、端末装置7の姿勢が第1の姿勢の場合、第1仮想カメラの位置を撮像方向に移動させるとともに、第1仮想カメラの画角を小さくすることにより、海賊船90A等を拡大表示した。他の実施形態では、第1仮想カメラの位置および画角の少なくとも一方を変更することにより、海賊船90A等を拡大/縮小表示してもよい。また、本実施形態では、端末装置7の姿勢が第2の姿勢の場合、第1仮想カメラと第2仮想カメラの位置および画角を略同一に設定して、2つの仮想カメラの撮像範囲を略同一にした。他の実施形態では、必ずしも第1仮想カメラと第2仮想カメラの位置および画角は略同一である必要はなく、2つの仮想カメラの撮像範囲が略同一であれば、2つの仮想カメラの位置および画角はそれぞれ適宜調整されてもよい。
【0223】
また、本実施形態では、第1タイミングと第2タイミングとの間の期間において、端末装置7の姿勢が所定の姿勢(指示に応じた姿勢)である場合、ロックオン枠99を端末装置7に表示した。他の実施形態では、ロックオン枠99を表示するとともに(あるいはロックオン枠99を表示することに代えて)、端末装置7に第2仮想カメラで仮想空間を撮像した静止画を表示してもよい。例えば、当該期間において端末装置7の姿勢が所定の姿勢となった場合、端末装置7の姿勢に応じて第2仮想カメラの姿勢を変化させず、あるいは、端末装置7の姿勢の変化量に対して第2仮想カメラの姿勢の変化量を小さくして、第2仮想カメラで仮想空間を撮像した画像を端末装置7に表示してもよい。また、他の実施形態では、当該期間において、姿勢の判定結果に応じて、バイブレータ79を所定のパターンで動作させてもよい。すなわち、当該期間において、端末装置7の姿勢が所定の姿勢であるか否かを判定し、当該判定結果に応じた報知(枠の表示や静止画の表示、音や振動等によるユーザに対する報知)を端末装置7において行ってもよい。
【0224】
また、本実施形態では、端末装置7の姿勢に応じて、海賊船90A等を拡大表示または縮小表示するとともに、テレビ2から出力される音声の音量を調整した。具体的には、端末装置7の姿勢が第1の姿勢の場合(端末装置7を視認しない姿勢、言い換えるとテレビ2を視認する姿勢の場合)、海賊船90A等を拡大表示するとともに、テレビ2から出力される音声の音量を大きくした。他の実施形態では、端末装置7の姿勢が第1の姿勢の場合、端末装置7から出力される音声の音量を大きくしてもよいし、音量の調整は行われなくてもよい。
【0225】
また、本実施形態では、テレビ2に海賊92が表示され、第1タイミングで海賊92に所定の動作(矢94を放つ動作や所定の方向を指す動作)をさせることによってプレイヤに対する指示を行った。他の実施形態では、プレイヤに対する指示は、どのようなものであってもよく、テレビ2に表示されるオブジェクトは任意のものであってもよい。また、本実施形態では、矢94を飛ばして端末装置7で当該矢94を受け止めることを想定したが、他の実施形態では、他の任意のオブジェクトをテレビ2から端末装置7へ、あるいは端末装置7からテレビ2へ移動させることを想定したゲームであってもよい。
【0226】
また、本実施形態では、テレビ2に表示される海賊92の動作およびテレビ2からの音声によってユーザに対する指示を行った。他の実施形態では、画像および音声のうちの何れか一方のみによる指示がテレビ2において行われてもよい。
【0227】
また、本実施形態では、第1タイミングでプレイヤに対して所定の指示を行い、第1タイミングから所定時間経過後の第2タイミングにおける端末装置7の姿勢に基づいて、ゲーム処理を行った。他の実施形態では、例えば、コントローラ5を入力装置として用いてもよいし、端末装置7を入力装置として用いてもよい。すなわち、他の実施形態では、例えば第2タイミングにおいてコントローラ5の所定の操作ボタンが押されているか否かに応じてゲーム処理を行ってもよいし、端末装置7の所定の操作ボタンが押されているか否かに応じてゲーム処理を行ってもよい。また、例えば、第2タイミングにおいてコントローラ5の姿勢や端末装置7の姿勢に応じてゲーム処理を行ってもよい。
【0228】
また、他の実施形態では、プレイヤによる入力が、プレイヤ自身のジェスチャ(動作)によって行われてもよい。例えば、プレイヤを撮像するカメラをゲーム装置3に接続し、当該カメラからの画像に基づいて、プレイヤの動作を判別することにより、プレイヤからの入力が行われてもよい。例えば、第1タイミングにおいてプレイヤに対する指示が行われ、当該指示に基づいて第2タイミングにおいてプレイヤは指示に応じた動作をする。そして、カメラからの画像に基づいてゲーム装置3がプレイヤの動作を解析し、プレイヤの動作が指示に応じた動作か否かを判定する。
【0229】
すなわち、第2タイミングにおける入力装置に対する入力状態に基づいて、ゲーム処理を行ってもよい。入力装置に対する入力状態は、コントローラ5や端末装置7に設けられた所定の操作ボタンが押されているか否かの状態であってもよいし、コントローラ5や端末装置7自体の姿勢であってもよい。また、入力装置に対する入力状態は、プレイヤ自身のジェスチャ(動作)に基づいた状態であってもよく、プレイヤをカメラで撮像することでプレイヤの動作を判別してもよい。
【0230】
また、例えば、第2タイミングと、入力装置(例えば、端末装置7)に対する入力が行われたタイミングとに基づいて、ゲーム処理を行ってもよい。例えば、第2タイミングと入力装置の所定の操作ボタンが押されたタイミングとの差に基づいて、ゲーム処理を行ってもよい。具体的には、当該差が所定の閾値以下であった場合、プレイヤが指示に応じた入力を行ったとして矢94が端末装置7に到達した様子を端末装置7のLCD51に表示してもよい。また、例えば、第2タイミングと入力装置に対する所定の操作(例えば入力装置を振る操作等、入力装置自体の姿勢を変化させる操作や入力装置に加速度を加える操作)のタイミングとの差に基づいて、ゲーム処理が行われてもよい。すなわち、第2タイミングと入力装置に対する入力のタイミングとの差に基づいて、ゲーム処理が行われてもよい。
【0231】
また、本実施形態では、第1タイミングにおいてテレビ2からプレイヤに向かって矢94を飛ばす様子を表示し、第2タイミングにおいて端末装置7に矢94が到達した様子を表示した。他の実施形態では、第1タイミングにおいて端末装置7からテレビ2に向かって所定のオブジェクトを移動させる様子を表示し、第2タイミングにおいてテレビ2において当該オブジェクトが到達する様子を表示してもよい。この場合において、第2タイミングにおける入力装置(端末装置7やその他の入力装置でもよい)に対する入力状態に基づいてゲーム処理が行われる。すなわち、他の実施形態では、据置型表示装置であるテレビ2と可搬型表示装置である端末装置7とが入れ替わった構成で、上述のようなゲームが行われてもよい。
【0232】
また、他の実施形態では、ゲーム装置3において行われたゲーム処理の一部が、端末装置7において実行されてもよい。例えば、端末装置7において仮想空間が定義され、当該仮想空間を仮想カメラで撮像することにより、端末装置7のLCD51に表示される画像が端末装置7において生成されてもよい。
【0233】
さらに、他の実施形態では、互いに通信可能な複数の情報処理装置を有するゲームシステムにおいて、当該複数の情報処理装置が、上述のようなゲーム装置3において実行されたゲーム処理を分担して実行するようにしてもよい。例えば、インターネットのようなネットワークに接続された複数の情報処理装置によって上述のようなゲームシステムが構成されてもよい。例えば、端末装置7およびモニタが接続された情報処理装置と、当該情報処理装置とインターネットを介して接続されるサーバとによって、上述のようなゲームシステムが構築されてもよい。この場合、端末装置7および情報処理装置はプレイヤ側に配置される。そして、例えば、端末装置7において行われたゲーム操作に応じた操作情報は、ネットワークを介してサーバに送信され、当該サーバは、受信した操作情報に基づいたゲーム処理を実行し、実行結果を情報処理装置に送信する。
【0234】
また、他の実施形態では、ゲーム装置3と、端末装置7とが無線ではなく有線で接続されることによって、データが送受信されてもよい。また、上述したプログラムは、ゲーム装置3以外の様々な情報処理を行う目的で用いられる情報処理装置、例えばパーソナルコンピュータ等において実行されてもよい。
【0235】
また、上記ゲームプログラムは、光ディスクに限らず、磁気ディスク、不揮発性メモリ等の記憶媒体に記憶されてもよく、ネットワークに接続されたサーバ上のRAMや磁気ディスク等のコンピュータ読み取り可能な記憶媒体に記憶されて、ネットワークを介して当該プログラムが提供されてもよい。また、上記ゲームプログラムは、ソースコードとして情報処理装置に読み込まれて、プログラムの実行の際にコンパイルされて実行されてもよい。
【0236】
また、上記実施形態においては、ゲーム装置3のCPU10が上記ゲームプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置3が備える専用回路によって行われてもよし、他の汎用プロセッサによって行われてもよい。少なくとも1つのプロセッサが、上記処理を実行するための「プログラムされた論理回路」として動作するものであってもよい。
【符号の説明】
【0237】
1 ゲームシステム
2 テレビ
3 ゲーム装置
4 光ディスク
5 コントローラ
6 マーカ装置
7 端末装置
10 CPU
11e 内部メインメモリ
12 外部メインメモリ
62 磁気センサ
63 加速度センサ
64 ジャイロセンサ
67 スピーカ
51 LCD
55 マーカ部
70 無線モジュール
90A、90B、90C 海賊船
91 船
92 海賊
93 弓
94 矢
96 指示画像
98 円形画像
99 ロックオン枠
【技術分野】
【0001】
本発明は、複数の表示装置に表示を行う情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関する。
【背景技術】
【0002】
従来、複数の表示装置に画像を表示するゲームシステムがあった。例えば、特許文献1に記載のゲームシステムでは、携帯ゲーム機には、ゲーム空間における第1〜第4キャラクタの位置が分かる第1ゲーム画像が表示され、テレビには、第2〜第4キャラクタにそれぞれ対応する、ゲーム空間の限られた範囲の画像が表示される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−329744号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載のゲームシステムは、複数の表示装置にゲーム空間の画像を表示しているが、各プレイヤは自身のキャラクタに対応するゲーム空間の範囲を見てゲームを行うだけのものであり、複数の表示装置を有効に活用してゲームをプレイさせるという観点では改善の余地があった。
【0005】
それ故、本発明の目的は、複数の表示装置を有効に活用して複数の表示装置に画像を表示する情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【0007】
本発明の一例は、据置型表示装置に画像を表示させる情報処理装置のコンピュータによって実行される情報処理プログラムである。当該プログラムは、上記コンピュータを、第1カメラ設定手段と、第2カメラ設定手段と、第1表示制御手段と、第2表示制御手段と、判定手段として機能させる。第1カメラ設定手段は、所定のオブジェクトが配置された仮想空間内に第1の仮想カメラを設定する。第2カメラ設定手段は、上記所定のオブジェクトが配置された仮想空間内に第2の仮想カメラを設定する。第1表示制御手段は、上記第1の仮想カメラで上記所定のオブジェクトを含む上記仮想空間を撮像した第1画像を上記据置型表示装置に表示させる。第2表示制御手段は、上記第2の仮想カメラで上記仮想空間を撮像した第2画像をユーザによって把持される可搬型表示装置に表示させる。判定手段は、ユーザが上記据置型表示装置を視認している状態か否かを判定する。上記第1表示制御手段は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも上記第1画像を視認困難な画像にする。
【0008】
なお、第1仮想カメラが設定される仮想空間と第2仮想カメラが設定される仮想空間は同一の空間であってもよいし、異なる空間であってもよい。
【0009】
上記構成によれば、据置型表示装置と可搬型表示装置に上記所定のオブジェクトを含む仮想空間を撮像した画像が表示される。判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、据置型表示装置に表示される所定のオブジェクト(例えば、海賊船90A等)は、通常よりも視認困難にすることができる。すなわち、ユーザが上記据置型表示装置を視認している状態であれば所定のオブジェクトを視認容易にし、ユーザが上記据置型表示装置を視認していない状態であれば所定のオブジェクトを視認困難にすることができ、据置型表示装置の表示を制御することができる。これにより、ユーザは、例えば、据置型表示装置と可搬型表示装置とを交互に見てゲームを行うことができる。
【0010】
また、他の構成では、上記第1表示制御手段は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、少なくとも上記所定のオブジェクトを縮小表示する処理、上記第1画像のうちの上記所定のオブジェクトを含む一部あるいは全部の領域に所定の画像が表示されるようにする処理、少なくとも上記所定のオブジェクトをぼかす処理、少なくとも上記所定のオブジェクトを透明あるいは半透明にする処理、および、少なくとも上記所定のオブジェクトをモザイク表示する処理のうちの少なくとも何れかを行うことにより、上記所定のオブジェクトを視認困難にしてもよい。
【0011】
なお、上記所定の画像が表示されるようにする処理は、例えば、第1画像の一部あるいは全部の領域に、霧が発生したことを示す画像、画面がブラックアウトしたことを示す画像、他のオブジェクトの画像を表示する処理であってもよい。
【0012】
上記構成によれば、所定のオブジェクトを様々な方法で視認困難にすることができる。
【0013】
また、他の構成では、上記プログラムは、上記可搬型表示装置の姿勢を取得する姿勢取得手段として、上記コンピュータをさらに機能させてもよい。上記判定手段は、上記可搬型表示装置の姿勢が第1の姿勢である場合、ユーザが上記据置型表示装置を視認していると判定し、上記可搬型表示装置の姿勢が第2の姿勢である場合、ユーザが上記据置型表示装置を視認していないと判定する。
【0014】
なお、姿勢取得手段は、様々な方法により可搬型表示装置の姿勢を取得してもよい。例えば、姿勢取得手段は、可搬型表示装置に設けられた姿勢を検出するセンサからのデータに基づいて可搬型表示装置の姿勢を算出して取得してもよいし、可搬型表示装置において算出された当該可搬型表示装置の姿勢を取得してもよい。また、例えば、姿勢取得手段は、可搬型表示装置や空間の所定位置に配置されたカメラからの画像に基づいて、可搬型表示装置の姿勢を算出してもよい。
【0015】
上記構成によれば、可搬型表示装置の姿勢に基づいて、据置型表示装置に表示される所定のオブジェクトを視認困難にすることができ、据置型表示装置の表示を制御することができる。
【0016】
また、他の構成では、上記第1表示制御手段は、上記可搬型表示装置の姿勢が上記第2の姿勢である場合、上記第1の仮想カメラの位置および画角のうちの少なくとも一方を変更することにより、少なくとも上記所定のオブジェクトを縮小表示してもよい。
【0017】
上記構成によれば、可搬型表示装置の姿勢が上記第2の姿勢である場合、据置型表示装置に表示される所定のオブジェクトを縮小表示することができる。
【0018】
また、他の構成では、上記第2表示制御手段は、上記可搬型表示装置の姿勢に応じて、上記第2の仮想カメラの姿勢を制御してもよい。
【0019】
上記構成によれば、可搬型表示装置の姿勢に応じて、上記第2の仮想カメラの姿勢を制御することができ、当該第2の仮想カメラで仮想空間を撮像した画像を可搬型表示装置に表示させることができる。これにより、可搬型表示装置の姿勢を変化させることで、仮想空間を見渡すことができる。
【0020】
また、他の構成では、上記第2表示制御手段は、上記可搬型表示装置の姿勢が所定の基準姿勢の場合、上記第2の仮想カメラの撮像方向を上記第1の仮想カメラの撮像方向と同じに設定し、当該基準姿勢からの上記可搬型表示装置の姿勢の変化に応じて、上記第2の仮想カメラの姿勢を変化させてもよい。
【0021】
上記構成によれば、可搬型表示装置の姿勢を基準姿勢にすることで、第2の仮想カメラの撮像方向を第1の仮想カメラの撮像方向と同じにすることができる。そして、可搬型表示装置の姿勢を変化させることで、可搬型表示装置に仮想空間を様々な方向から見た画像を表示させることができる。
【0022】
また、他の構成では、上記第1の仮想カメラの撮像方向は、上記可搬型表示装置の姿勢に依存しない所定の方向であってもよい。
【0023】
上記構成によれば、据置型表示装置には、所定の方向から仮想空間を見た画像を表示させることができ、可搬型表示装置には当該可搬型表示装置の姿勢に応じた方向から仮想空間を見た画像を表示させることができる。
【0024】
また、他の構成では、上記第1表示制御手段は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、上記第1の仮想カメラの位置および画角のうちの少なくとも一方を変更することにより、少なくとも上記所定のオブジェクトを縮小表示してもよい。
【0025】
上記構成によれば、据置型表示装置に表示される所定のオブジェクトを縮小表示して視認困難にすることができる。
【0026】
また、他の構成では、上記第1画像には第2のオブジェクトが含まれ、上記第2画像には当該第2のオブジェクトが含まれなくてもよい。
【0027】
上記構成によれば、据置型表示装置には第2のオブジェクトが含まれ、可搬型表示装置には当該第2のオブジェクトは含まれない。したがって、ユーザは第2のオブジェクトを視認するためには、据置型表示装置を見る必要があり、ユーザに据置型表示装置と可搬型表示装置とを見させることができる。
【0028】
また、他の構成では、上記可搬型表示装置に表示される上記所定のオブジェクトは、上記判定手段によってユーザが上記据置型表示装置を視認していると判定された場合に上記据置型表示装置に表示される上記所定のオブジェクトよりも視認困難であってもよい。
【0029】
上記構成によれば、可搬型表示装置には視認困難な所定のオブジェクトが表示される。ユーザは所定のオブジェクトを視認容易にするために、据置型表示装置を視認する必要があり、ユーザに据置型表示装置と可搬型表示装置とを見させることができる。
【0030】
また、他の構成では、上記第2の仮想カメラの位置は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合の上記第1の仮想カメラの位置と略同じであってもよい。
【0031】
上記構成によれば、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、第2の仮想カメラと第1の仮想カメラとを略同じ位置に設定することができる。
【0032】
また、他の構成では、上記第2の仮想カメラの画角は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合の上記第1の仮想カメラの画角と略同じであってもよい。
【0033】
上記構成によれば、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、第2の仮想カメラと第1の仮想カメラとを略同じ位置、画角に設定することができる。これにより、同様の撮像範囲を撮像した画像を上記据置型表示装置および上記可搬型表示装置に表示させることができる。
【0034】
また、他の構成では、上記第2の仮想カメラの撮像範囲は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合の上記第1の仮想カメラの撮像範囲と略同じであってもよい。
【0035】
上記構成によれば、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、第2の仮想カメラと第1の仮想カメラとを略同じ撮像範囲に設定することができる。
【0036】
また、他の構成では、上記第2の姿勢は、上記可搬型表示装置の画面が重力方向と略平行となる姿勢であってもよい。
【0037】
上記構成によれば、可搬型表示装置の画面が重力方向と略平行となる場合に、ユーザが上記据置型表示装置を視認していないと判定することができる。
【0038】
また、他の構成では、上記第1の姿勢は、上記可搬型表示装置の画面が重力方向と略垂直となる姿勢であってもよい。
【0039】
上記構成によれば、可搬型表示装置の画面が重力方向と略垂直となる場合に、ユーザが上記据置型表示装置を視認していないと判定することができる。
【0040】
また、他の構成では、上記プログラムは、上記判定手段による判定結果に応じて、上記据置型表示装置から出力される音声の音量を調整する音量調整手段として、上記コンピュータをさらに機能させてもよい。
【0041】
上記構成によれば、判定手段による判定結果に応じて、上記据置型表示装置から出力される音声の音量を調整することができる。
【0042】
また、他の構成では、上記音量調整手段は、上記判定手段によってユーザが上記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも上記据置型表示装置から出力される音声の音量を小さくしてもよい。
【0043】
上記構成によれば、ユーザが上記据置型表示装置を視認していない場合、据置型表示装置から出力される音声の音量を小さくすることができる。
【0044】
また、他の構成では、上記可搬型表示装置は、ジャイロセンサおよび加速度センサの少なくとも一方を含んでもよい。上記姿勢取得手段は、上記ジャイロセンサおよび上記加速度センサの少なくとも一方から出力されたデータに基づいて、上記可搬型表示装置の姿勢を算出する。
【0045】
上記構成によれば、ジャイロセンサや加速度センサからのデータに基づいて、可搬型表示装置の姿勢を算出することができる。
【0046】
また、他の構成では、上記第2表示制御手段は、上記第2画像を示す画像データを上記可搬型表示装置に出力してもよい。上記可搬型表示手段は、上記情報処理装置から出力された画像データを取得する画像データ取得手段と、上記画像データが示す上記第2画像を表示する表示手段とを備える。
【0047】
上記構成によれば、情報処理装置において第2画像を生成し、当該第2画像を可搬型表示装置に出力することにより、可搬型表示装置に第2画像を表示することができる。
【0048】
また、他の構成では、上記プログラムは、上記第2画像を示す画像データを圧縮して圧縮画像データを生成する画像圧縮手段として、上記コンピュータをさらに機能させてもよい。上記第2表示制御手段は、上記圧縮画像データを上記可搬型表示装置に出力する。上記画像データ取得手段は、上記情報処理装置から出力された圧縮画像データを取得する。上記可搬型表示装置は、上記圧縮画像データを伸張する画像伸張手段をさらに備える。上記表示手段は、上記画像伸張手段によって伸張された上記第2画像を表示する。
【0049】
上記構成によれば、第2画像は圧縮されて情報処理装置から可搬型表示装置に出力される。このため、データ量の大きな画像であっても短時間でゲーム装置から可搬型表示装置に送信することができる。
【0050】
なお、本発明の別の一例は、上記各手段を実現した情報処理装置であってもよい。また、本発明では、上記各手段を実現する複数の要素が相互に動作することによって、1つの情報処理システムとして構成されてもよい。当該情報処理システムは、1つの装置によって構成されてもよいし、複数の装置によって構成されてもよい。また、本発明は、上述の各手段によって実行されるステップを含む情報処理方法であってもよい。
【発明の効果】
【0051】
本発明によれば、複数の表示装置を有効に活用して複数の表示装置に画像を表示する情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供することが可能となる。
【図面の簡単な説明】
【0052】
【図1】ゲームシステム1の外観図
【図2】ゲーム装置3の内部構成を示すブロック図
【図3】メインコントローラ8の外観構成を示す斜視図
【図4】メインコントローラ8の外観構成を示す斜視図
【図5】メインコントローラ8の内部構造を示す図
【図6】メインコントローラ8の内部構造を示す図
【図7】サブコントローラ9の外観構成を示す斜視図
【図8】コントローラ5の構成を示すブロック図
【図9】端末装置7の外観構成を示す図
【図10】ユーザが端末装置7を把持した様子を示す図
【図11】端末装置7の内部構成を示すブロック図
【図12A】本ゲームが行われる場合のプレイヤの基本的な姿勢を示す図であり、プレイヤが端末装置7を第1の姿勢で把持している様子を示す図
【図12B】本ゲームが行われる場合のプレイヤの基本的な姿勢を示す図であり、プレイヤが端末装置7を第2の姿勢で把持している様子を示す図
【図13A】端末装置7を第1の姿勢で把持した場合にテレビ2に表示されるテレビ用ゲーム画像の一例を示す図
【図13B】端末装置7を第2の姿勢で把持した場合にテレビ2に表示されるテレビ用ゲーム画像の一例を示す図
【図14】本ゲームにおける仮想空間に配置された各オブジェクトの位置関係を示す図
【図15A】プレイヤが端末装置7を自身の目の前で把持して、テレビ2に対して正面を向いているときの端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図
【図15B】プレイヤが端末装置7を自身の目の前で把持して、テレビ2に対して右側を向いているときの端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図
【図16A】本実施形態のゲームが実行された後の第1タイミングでテレビ2に表示されるテレビ用ゲーム画像の一例を示す図
【図16B】第1タイミングから所定時間経過後の第2タイミングで端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図
【図17】プレイヤが端末装置7を下に向けている状態(第1の姿勢)から上に向ける状態に端末装置7の姿勢を変化させる様子を示す図
【図18】海賊92が矢94を放った第1タイミングt1から矢94がプレイヤに届く第2タイミングt2までの時間経過を示す図
【図19A】本実施形態のゲームが実行された後の第1タイミングt1でテレビ2に表示されるテレビ用ゲーム画像の他の例を示す図
【図19B】第1タイミングt1から所定時間経過後の第2タイミングt2で端末装置7のLCD51に表示される端末用ゲーム画像の他の例を示す図
【図20】プレイヤがゲーム装置3からの指示に応じてテレビ2に対して右側を向く様子を実空間の上方から見た図
【図21】ゲーム処理において用いられる各種データを示す図
【図22】ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャート
【図23】図22に示すゲーム制御処理(ステップS3)の詳細な流れを示すフローチャート
【図24】端末装置7がX軸周りに所定角度回転している場合の端末装置7を側面から見た図
【図25】端末装置7が動いている場合において、第2タイミングt2で端末装置7のLCD51に表示される画像の一例を示す図
【図26】端末装置7のLCD51に表示されるロックオン枠99の一例を示す図
【発明を実施するための形態】
【0053】
[1.ゲームシステムの全体構成]
以下、図面を参照して、本発明の一実施形態に係るゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。図1において、ゲームシステム1は、テレビジョン受像器等に代表される据置型のディスプレイ装置(以下、「テレビ」と記載する)2、据置型のゲーム装置3、光ディスク4、コントローラ5、マーカ装置6、および、端末装置7を含む。ゲームシステム1は、コントローラ5を用いたゲーム操作に基づいてゲーム装置3においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ2および/または端末装置7に表示するものである。
【0054】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるための情報処理プログラム(典型的にはゲームプログラム)が記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。
【0055】
ゲーム装置3には、テレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ2はスピーカ2a(図2)を有しており、スピーカ2aは、上記ゲーム処理の結果得られるゲーム音声を出力する。なお、他の実施形態においては、ゲーム装置3と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置3とテレビ2との通信は無線通信であってもよい。
【0056】
テレビ2の画面の周辺(図1では画面の上側)には、マーカ装置6が設置される。詳細は後述するが、ユーザ(プレイヤ)はコントローラ5を動かすゲーム操作を行うことができ、マーカ装置6は、コントローラ5の動きや位置や姿勢等をゲーム装置3が算出するために用いられる。マーカ装置6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LED(Light Emitting Diode)であり、テレビ2の前方に向かって赤外光を出力する。マーカ装置6は有線で(無線であってもよい)ゲーム装置3に接続されており、ゲーム装置3はマーカ装置6が備える各赤外LEDの点灯を制御することが可能である。なお、マーカ装置6は可搬型であり、ユーザはマーカ装置6を自由な位置に設置することができる。図1ではマーカ装置6がテレビ2の上に設置された態様を表しているが、マーカ装置6を設置する位置および向きは任意である。
【0057】
コントローラ5は、自機に対する操作に基づく操作データをゲーム装置3に与えるものである。本実施形態では、コントローラ5は、メインコントローラ8とサブコントローラ9とを有し、サブコントローラ9がメインコントローラ8に着脱可能に装着される構成である。コントローラ5とゲーム装置3とは無線通信によって通信可能である。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。また、図1では、ゲームシステム1に含まれるコントローラ5は1つとするが、ゲームシステム1は複数のコントローラ5を含んでいてもよい。つまり、ゲーム装置3は複数のコントローラと通信可能であり、所定台数のコントローラを同時に使用することによって複数人でゲームをプレイすることが可能である。コントローラ5の詳細な構成については後述する。
【0058】
端末装置7は、ユーザが把持可能な程度の大きさであり、ユーザは端末装置7を手に持って動かしたり、あるいは、端末装置7を自由な位置に配置したりして使用することが可能である。詳細な構成は後述するが、端末装置7は、表示手段であるLCD(Liquid Crystal Display:液晶表示装置)51、および、入力手段(後述するタッチパネル52やジャイロセンサ64等)を備える。端末装置7とゲーム装置3とは無線(有線であってもよい)によって通信可能である。端末装置7は、ゲーム装置3で生成された画像(例えばゲーム画像)のデータをゲーム装置3から受信し、画像をLCD51に表示する。なお、本実施形態では表示装置としてLCDを用いているが、端末装置7は、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を有していてもよい。また、端末装置7は、自機に対する操作に基づく操作データをゲーム装置3に送信する。
【0059】
[2.ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の内部構成を示すブロック図である。ゲーム装置3は、CPU(Central Processing Unit)10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
【0060】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
【0061】
システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM(Video RAM)11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0062】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。なお、本実施形態においては、ゲーム装置3は、テレビ2に表示するゲーム画像と、端末装置7に表示するゲーム画像との両方を生成する。以下では、テレビ2に表示されるゲーム画像を「テレビ用ゲーム画像」と呼び、端末装置7に表示されるゲーム画像を「端末用ゲーム画像」と呼ぶことがある。
【0063】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。なお、本実施形態においては、ゲーム音声についてもゲーム画像と同様、テレビ2のスピーカから出力するゲーム音声と、端末装置7のスピーカから出力するゲーム音声との両方が生成される。以下では、テレビ2から出力されるゲーム音声を「テレビ用ゲーム音声」と呼び、端末装置7から出力されるゲーム音声を「端末用ゲーム音声」と呼ぶことがある。
【0064】
上記のようにゲーム装置3において生成される画像および音声のうちで、テレビ2において出力される画像および音声のデータは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、テレビ2に画像が表示されるとともにスピーカ2aから音が出力される。
【0065】
また、ゲーム装置3において生成される画像および音声のうちで、端末装置7において出力される画像および音声のデータは、入出力プロセッサ11a等によって端末装置7へ送信される。入出力プロセッサ11a等による端末装置7へのデータの送信については後述する。
【0066】
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、ネットワーク通信モジュール18、コントローラ通信モジュール19、拡張コネクタ20、メモリカード用コネクタ21、コーデックLSI27に接続される。また、ネットワーク通信モジュール18にはアンテナ22が接続される。コントローラ通信モジュール19にはアンテナ23が接続される。コーデックLSI27は端末通信モジュール28に接続され、端末通信モジュール28にはアンテナ29が接続される。
【0067】
ゲーム装置3は、インターネット等のネットワークに接続して外部情報処理装置(例えば他のゲーム装置や、各種サーバや、各種情報処理装置等)と通信を行うことが可能である。すなわち、入出力プロセッサ11aは、ネットワーク通信モジュール18およびアンテナ22を介してインターネット等のネットワークに接続し、ネットワークに接続される外部情報処理装置と通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、ネットワーク通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、外部情報処理装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22およびネットワーク通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と外部情報処理装置との間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。また、フラッシュメモリ17にはゲームプログラムが記憶されてもよい。
【0068】
また、ゲーム装置3は、コントローラ5からの操作データを受信することが可能である。すなわち、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23およびコントローラ通信モジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0069】
また、ゲーム装置3は、端末装置7との間で画像や音声等のデータを送受信することが可能である。入出力プロセッサ11aは、端末装置7へゲーム画像(端末用ゲーム画像)を送信する場合、GPU11bが生成したゲーム画像のデータをコーデックLSI27へ出力する。コーデックLSI27は、入出力プロセッサ11aからの画像データに対して所定の圧縮処理を行う。端末通信モジュール28は、端末装置7との間で無線通信を行う。したがって、コーデックLSI27によって圧縮された画像データは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。なお、本実施形態では、ゲーム装置3から端末装置7へ送信される画像データはゲームに用いるものであり、ゲームにおいては表示される画像に遅延が生じるとゲームの操作性に悪影響が出る。そのため、ゲーム装置3から端末装置7への画像データの送信に関しては、できるだけ遅延が生じないようにすることが好ましい。したがって、本実施形態では、コーデックLSI27は、例えばH.264規格といった高効率の圧縮技術を用いて画像データを圧縮する。なお、それ以外の圧縮技術を用いてもよいし、通信速度が十分である場合には無圧縮で画像データを送信する構成であってもよい。また、端末通信モジュール28は、例えばWi−Fiの認証を受けた通信モジュールであり、例えばIEEE802.11n規格で採用されるMIMO(Multiple Input Multiple Output)の技術を用いて端末装置7との間の無線通信を高速に行うようにしてもよいし、他の通信方式を用いてもよい。
【0070】
また、ゲーム装置3は、画像データの他、音声データを端末装置7へ送信する。すなわち、入出力プロセッサ11aは、DSP11cが生成した音声データを、コーデックLSI27を介して端末通信モジュール28へ出力する。コーデックLSI27は、音声データに対しても画像データと同様に圧縮処理を行う。音声データに対する圧縮の方式は、どのような方式であってもよいが、圧縮率が高く、音声の劣化が少ない方式が好ましい。また、他の実施形態においては、音声データは圧縮されずに送信されてもよい。端末通信モジュール28は、圧縮された画像データおよび音声データを、アンテナ29を介して端末装置7へ送信する。
【0071】
さらに、ゲーム装置3は、上記画像データおよび音声データの他に、必要に応じて各種の制御データを端末装置7へ送信する。制御データは、端末装置7が備える構成要素に対する制御指示を表すデータであり、例えばマーカ部(図10に示すマーカ部55)の点灯を制御する指示や、カメラ(図10に示すカメラ56)の撮像を制御する指示等を表す。入出力プロセッサ11aは、CPU10の指示に応じて制御データを端末装置7へ送信する。なお、この制御データに関して、本実施形態ではコーデックLSI27はデータの圧縮処理を行わないが、他の実施形態においては圧縮処理を行うようにしてもよい。なお、ゲーム装置3から端末装置7へ送信される上述のデータは、必要に応じて暗号化がされていてもよいし、されていなくともよい。
【0072】
また、ゲーム装置3は、端末装置7から各種データを受信可能である。詳細は後述するが、本実施形態では、端末装置7は、操作データ、画像データ、および音声データを送信する。端末装置7から送信される各データはアンテナ29を介して端末通信モジュール28によって受信される。ここで、端末装置7からの画像データおよび音声データは、ゲーム装置3から端末装置7への画像データおよび音声データと同様の圧縮処理が施されている。したがって、これら画像データおよび音声データについては、端末通信モジュール28からコーデックLSI27に送られ、コーデックLSI27によって伸張処理が施されて入出力プロセッサ11aに出力される。一方、端末装置7からの操作データに関しては、画像や音声に比べてデータ量が少ないので、圧縮処理が施されていなくともよい。また、必要に応じて暗号化がされていてもよいし、されていなくともよい。したがって、操作データは、端末通信モジュール28で受信された後、コーデックLSI27を介して入出力プロセッサ11aに出力される。入出力プロセッサ11aは、端末装置7から受信したデータを、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0073】
また、ゲーム装置3は、他の機器や外部記憶媒体に接続することが可能である。すなわち、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタである。拡張コネクタ20に対しては、外部記憶媒体のようなメディアを接続したり、他のコントローラ等の周辺機器を接続したり、有線の通信用コネクタを接続することによってネットワーク通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【0074】
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、図示しないACアダプタによって外部の電源からゲーム装置3の各構成要素に対して電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0075】
なお、他の実施形態においては、ゲーム装置3が備える各構成要素のうちでいくつかの構成要素は、ゲーム装置3とは別体の拡張機器として構成されてもよい。このとき、拡張機器は、例えば上記拡張コネクタ20を介してゲーム装置3と接続されるようにしてもよい。具体的には、拡張機器は、例えば上記コーデックLSI27、端末通信モジュール28およびアンテナ29の各構成要素を備えており、拡張コネクタ20に対して着脱可能であってもよい。これによれば、上記各構成要素を備えていないゲーム装置に対して上記拡張機器を接続することによって、当該ゲーム装置を端末装置7と通信可能な構成とすることができる。
【0076】
[3.コントローラ5の構成]
次に、図3〜図7を参照して、コントローラ5について説明する。上述のように、コントローラ5は、メインコントローラ8とサブコントローラ9とによって構成される。図3は、メインコントローラ8の外観構成を示す斜視図である。図4は、メインコントローラ8の外観構成を示す斜視図である。図3は、メインコントローラ8の上側後方から見た斜視図であり、図4は、メインコントローラ8を下側前方から見た斜視図である。
【0077】
図3および図4において、メインコントローラ8は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ1軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ユーザは、メインコントローラ8に設けられたボタンを押下すること、および、メインコントローラ8自体を動かしてその位置や姿勢(傾き)を変えることによってゲーム操作を行うことができる。
【0078】
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。本明細書では、これらのボタン32a〜32hが設けられるハウジング31の上面を「ボタン面」と呼ぶことがある。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行する情報処理プログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、ユーザがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。
【0079】
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、メインコントローラ8に他の機器(例えば、サブコントローラ9や他のセンサユニット等)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
【0080】
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5(メインコントローラ8)には、他のコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をユーザに通知したり、コントローラ5の電池残量をユーザに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
【0081】
また、メインコントローラ8は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
【0082】
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、メインコントローラ8に内蔵されるスピーカ47(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
【0083】
次に、図5および図6を参照して、メインコントローラ8の内部構造について説明する。図5および図6は、メインコントローラ8の内部構造を示す図である。なお、図5は、メインコントローラ8の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、メインコントローラ8の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
【0084】
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ47等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X1軸方向に関してメインコントローラ8の中心からずれた位置に配置されている。これによって、メインコントローラ8をZ1軸回りに回転させたときのメインコントローラ8の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z1軸方向)に関してメインコントローラ8の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5(メインコントローラ8)がワイヤレスコントローラとして機能する。
【0085】
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、メインコントローラ8の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
【0086】
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ46が設けられている。バイブレータ46は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ46が作動することによってメインコントローラ8に振動が発生する。これによって、メインコントローラ8を把持しているユーザの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ46は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ46がメインコントローラ8の中心よりも端側に配置することによって、バイブレータ46の振動によりメインコントローラ8全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、メインコントローラ8は、マイコン42の基本クロックを生成する水晶振動子、スピーカ47に音声信号を出力するアンプ等を備えている。
【0087】
図7は、サブコントローラ9の外観構成を示す斜視図である。サブコントローラ9は、例えばプラスチック成型によって形成されたハウジング80を有している。ハウジング80は、メインコントローラ8と同様に、全体として大人や子供の片手で把持可能な大きさである。このサブコントローラ9を用いることによっても、プレイヤは、ボタンやスティックを操作することと、コントローラ自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0088】
図7に示すように、ハウジング80の上面(Y2軸負方向側の面)の先端側(Z2軸正側)には、アナログジョイスティック81が設けられる。また、図示されないが、ハウジング80の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向(図7に示すY2軸方向)に並べて、CボタンおよびZボタンが設けられる。アナログジョイスティック81および各ボタン(CボタンおよびZボタン)には、ゲーム装置3が実行するゲームプログラムに応じてそれぞれ適宜の機能が割り当てられる。なお、アナログジョイスティック81および各ボタンを包括的に「操作部82(図8参照)」と呼ぶことがある。
【0089】
また、図7では示されないが、サブコントローラ9は、ハウジング80の内部に加速度センサ(図8に示す加速度センサ83)を有している。本実施形態においては、加速度センサ83は、メインコントローラ8の加速度センサ37と同様のものが用いられる。ただし、加速度センサ83は、加速度センサ37とは異なるものであってもよく、例えば所定の1軸または2軸の加速度を検出するものであってもよい。
【0090】
また、図7に示すように、ハウジング80の後端にはケーブルの一端が接続されている。図7では示されないが、ケーブルの他端にはコネクタ(図8に示すコネクタ84)が接続される。このコネクタはメインコントローラ8のコネクタ33と接続可能である。つまり、コネクタ33とコネクタ84とを接続することによって、メインコントローラ8とサブコントローラ9とが接続される。
【0091】
なお、図3〜図7に示したメインコントローラ8およびサブコントローラ9の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。また、本実施形態では、メインコントローラ8の撮像手段による撮像方向はZ1軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【0092】
図8は、コントローラ5の構成を示すブロック図である。図8に示すように、メインコントローラ8は、操作部32(各操作ボタン32a〜32i)、撮像情報演算部35、通信部36、加速度センサ37、およびジャイロセンサ48を備えている。また、サブコントローラ9は、操作部82および加速度センサ83を備えている。コントローラ5は、自機に対して行われた操作内容を表すデータを操作データとしてゲーム装置3へ送信するものである。なお、以下では、コントローラ5が送信する操作データを「コントローラ操作データ」と呼び、端末装置7が送信する操作データを「端末操作データ」と呼ぶことがある。
【0093】
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を表す操作ボタンデータを通信部36のマイコン42へ出力する。
【0094】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
【0095】
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、撮像対象となる端末装置7のマーカ部55およびマーカ装置6は、赤外光を出力するマーカで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、撮像対象(マーカ部55および/またはマーカ装置6)の画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
【0096】
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【0097】
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。なお、加速度センサ37は、例えば静電容量式のMEMS(Micro Electro Mechanical System)型加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【0098】
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY1軸方向)、左右方向(図3に示すX1軸方向)および前後方向(図3に示すZ1軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ5を基準に設定されるX1Y1Z1座標系(コントローラ座標系)における3次元のベクトルとして表される。
【0099】
加速度センサ37が検出した加速度を表すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や動きに対応して変化するので、ゲーム装置3は取得された加速度データを用いてコントローラ5の向きや動きを算出することができる。本実施形態では、ゲーム装置3は、取得された加速度データに基づいてコントローラ5の姿勢や傾斜角度等を算出する。
【0100】
なお、加速度センサ37(後述する加速度センサ63についても同様)から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ(例えばCPU10)またはコントローラ5のプロセッサ(例えばマイコン42)等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合)、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。
【0101】
一方、コントローラ5が動的な状態(コントローラ5が動かされている状態)であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の動き方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0102】
ジャイロセンサ48は、3軸(本実施形態では、X1Y1Z1軸)回りの角速度を検出する。本明細書では、コントローラ5の撮像方向(Z1軸正方向)を基準として、X1軸回りの回転方向をピッチ方向、Y1軸回りの回転方向をヨー方向、Z1軸回りの回転方向をロール方向と呼ぶ。ジャイロセンサ48は、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。例えば、ジャイロセンサ48は、3軸ジャイロセンサであってもよいし、2軸ジャイロセンサと1軸ジャイロセンサとを組み合わせて3軸周りの角速度を検出するものであってもよい。ジャイロセンサ48で検出された角速度を表すデータは、通信部36へ出力される。また、ジャイロセンサ48は1軸または2軸回りの角速度を検出するものであってもよい。
【0103】
また、サブコントローラ9の操作部82は、上述したアナログジョイスティック81、CボタンおよびZボタンを含む。操作部82は、アナログジョイスティック81に対する傾倒方向および傾倒量を表すスティックデータ(サブスティックデータと呼ぶ)と、各ボタンに対する入力状態(各ボタンが押下されたか否か)を表す操作ボタンデータ(サブ操作ボタンデータと呼ぶ)とを、コネクタ84を介してメインコントローラ8へ出力する。
【0104】
また、サブコントローラ9の加速度センサ83は、メインコントローラ8の加速度センサ37と同様のセンサであり、サブコントローラ9の加速度(重力加速度を含む)を検出する、すなわち、サブコントローラ9に加わる力(重力を含む)を検出する。加速度センサ83は、当該加速度センサ83の検出部に加わっている加速度のうち、所定の3軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。検出された加速度を表すデータ(サブ加速度データと呼ぶ)は、コネクタ84を介してメインコントローラ8へ出力される。
【0105】
以上のように、サブコントローラ9は、上記サブスティックデータ、サブ操作ボタンデータ、およびサブ加速度データを含むサブコントローラデータをメインコントローラ8へ出力する。
【0106】
メインコントローラ8の通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。
【0107】
サブコントローラ9からのサブコントローラデータは、マイコン42に入力され、一時的にメモリ43に格納される。また、操作部32、撮像情報演算部35、加速度センサ37、およびジャイロセンサ48からマイコン42へ出力されたデータ(メインコントローラデータと呼ぶ)は、一時的にメモリ43に格納される。これらのメインコントローラおよびサブコントローラデータは、操作データ(コントローラ操作データ)としてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3のコントローラ通信モジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側のコントローラ通信モジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、コントローラ5から取得した操作データを用いてゲーム処理を行う。なお、通信部36からコントローラ通信モジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で操作データをゲーム装置3のコントローラ通信モジュール19へ出力する。
【0108】
以上のように、メインコントローラ8は、自機に対する操作を表す操作データとして、マーカ座標データ、加速度データ、角速度データ、および操作ボタンデータを送信可能である。サブコントローラ9は、自機に対する操作を表す操作データとして、加速度データ、スティックデータ、および操作ボタンデータを送信可能である。また、ゲーム装置3は、上記操作データをゲーム入力として用いてゲーム処理を実行する。したがって、上記コントローラ5を用いることによって、ユーザは、各操作ボタンを押下するという従来の一般的なゲーム操作に加えて、コントローラ5自体を動かすゲーム操作を行うことができる。例えば、メインコントローラ8および/またはサブコントローラ9を任意の姿勢に傾ける操作、メインコントローラ8によって画面上の任意の位置を指示する操作、および、メインコントローラ8および/またはサブコントローラ9自体を動かす操作等を行うことが可能となる。
【0109】
また、本実施形態において、コントローラ5は、ゲーム画像を表示する表示手段を有しないが、例えば電池残量を表す画像等を表示するための表示手段を有していてもよい。
【0110】
[4.端末装置7の構成]
次に、図9〜図11を参照して、端末装置7の構成について説明する。図9は、端末装置7の外観構成を示す図である。図9における(a)図は端末装置7の正面図であり、(b)図は上面図であり、(c)図は右側面図であり、(d)図は下面図である。また、図10は、ユーザが端末装置7を把持した様子を示す図である。
【0111】
図9に示されるように、端末装置7は、大略的には横長の長方形の板状形状であるハウジング50を備える。ハウジング50は、ユーザが把持することができる程度の大きさである。したがって、ユーザは、端末装置7を持って動かしたり、端末装置7の配置位置を変更したりすることができる。
【0112】
端末装置7は、ハウジング50の表面にLCD51を有する。LCD51は、ハウジング50の表面の中央付近に設けられる。したがって、ユーザは、図10に示すようにLCD51の両側部分のハウジング50を持つことによって、LCD51の画面を見ながら端末装置を持って動かすことができる。なお、図10ではユーザがLCD51の左右両側の部分のハウジング50を持つことで端末装置7を横持ちで(横に長い向きにして)持つ例を示しているが、端末装置7を縦持ちで(縦に長い向きにして)持つことも可能である。
【0113】
図9の(a)図に示すように、端末装置7は、操作手段として、LCD51の画面上にタッチパネル52を有する。本実施形態では、タッチパネル52は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。また、タッチパネル52はシングルタッチ方式でもよいし、マルチタッチ方式であってもよい。本実施形態では、タッチパネル52として、LCD51の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル52の解像度とLCD51の解像度が一致している必要はない。タッチパネル52に対する入力は通常タッチペンを用いて行われるが、タッチペンに限らずユーザの指でタッチパネル52に対する入力をすることも可能である。なお、ハウジング50には、タッチパネル52に対する操作を行うために用いられるタッチペンを収納するための収納穴が設けられていてもよい。このように、端末装置7はタッチパネル52を備えるので、ユーザは、端末装置7を動かしながらタッチパネル52を操作することができる。つまりユーザは、LCD51の画面を動かしつつ、その画面に対して直接(タッチパネル52によって)入力を行うことができる。
【0114】
図9に示すように、端末装置7は、操作手段として、2つのアナログスティック53Aおよび53Bと、複数のボタン54A〜54Lとを備えている。各アナログスティック53Aおよび53Bは、方向を指示するデバイスである。各アナログスティック53Aおよび53Bは、ユーザの指で操作されるスティック部がハウジング50の表面に対して任意の方向(上下左右および斜め方向の任意の角度)にスライド(または傾倒)することができるように構成されている。また、左アナログスティック53AはLCD51の画面の左側に、右アナログスティック53BはLCD51の画面の右側にそれぞれ設けられる。したがって、ユーザは、左右いずれの手でもアナログスティックを用いて方向を指示する入力を行うことができる。また、図10に示すように、各アナログスティック53Aおよび53Bは、ユーザが端末装置7の左右部分を把持した状態で操作可能な位置に設けられるので、ユーザは、端末装置7を持って動かす場合においても各アナログスティック53Aおよび53Bを容易に操作することができる。
【0115】
各ボタン54A〜54Lは、所定の入力を行うための操作手段である。以下に示すように、各ボタン54A〜54Lは、ユーザが端末装置7の左右部分を把持した状態で操作可能な位置に設けられる(図10参照)。したがって、ユーザは、端末装置7を持って動かす場合においてもこれらの操作手段を容易に操作することができる。
【0116】
図9の(a)図に示すように、ハウジング50の表面には、各操作ボタン54A〜54Lのうち、十字ボタン(方向入力ボタン)54Aと、ボタン54B〜54Hとが設けられる。つまり、これらのボタン54A〜54Hは、ユーザの親指で操作可能な位置に配置されている(図10参照)。
【0117】
十字ボタン54Aは、LCD51の左側であって、左アナログスティック53Aの下側に設けられる。つまり、十字ボタン54Aはユーザの左手で操作可能な位置に配置されている。十字ボタン54Aは、十字の形状を有しており、上下左右の方向を指示することが可能なボタンである。また、ボタン54B〜54Dは、LCD51の下側に設けられる。これら3つのボタン54B〜54Dは、左右両方の手で操作可能な位置に配置されている。また、4つのボタン54E〜54Hは、LCD51の右側であって、右アナログスティック53Bの下側に設けられる。つまり、4つのボタン54E〜54Hはユーザの右手で操作可能な位置に配置されている。さらに、4つのボタン54E〜54Hは、(4つのボタン54E〜54Hの中心位置に対して)上下左右の位置関係となるように配置されている。したがって、端末装置7は、ユーザに上下左右の方向を指示させるためのボタンとして4つのボタン54E〜54Hを機能させることも可能である。
【0118】
また、図9の(a)図、(b)図、および(c)図に示すように、第1Lボタン54Iおよび第1Rボタン54Jは、ハウジング50の斜め上部分(左上部分および右上部分)に設けられる。具体的には、第1Lボタン54Iは、板状のハウジング50における上側の側面の左端に設けられ、上側および左側の側面から露出している。また、第1Rボタン54Jは、ハウジング50における上側の側面の右端に設けられ、上側および右側の側面から露出している。このように、第1Lボタン54Iは、ユーザの左手人差し指で操作可能な位置に配置され、第1Rボタン54Jは、ユーザの右手人差し指で操作可能な位置に配置される(図10参照)。
【0119】
また、図9の(b)図および(c)図に示すように、第2Lボタン54Kおよび第2Rボタン54Lは、板状のハウジング50の裏面(すなわちLCD51が設けられる表面の反対側の面)に突起して設けられる足部59Aおよび59Bに配置される。具体的には、第2Lボタン54Kは、ハウジング50の裏面の左側(表面側から見たときの左側)のやや上方に設けられ、第2Rボタン54Lは、ハウジング50の裏面の右側(表面側から見たときの右側)のやや上方に設けられる。換言すれば、第2Lボタン54Kは、表面に設けられる左アナログスティック53Aの概ね反対側の位置に設けられ、第2Rボタン54Lは、表面に設けられる右アナログスティック53Bの概ね反対側の位置に設けられる。このように、第2Lボタン54Kは、ユーザの左手中指で操作可能な位置に配置され、第2Rボタン54Lは、ユーザの右手中指で操作可能な位置に配置される(図10参照)。また、第2Lボタン54Kおよび第2Rボタン54Lは、図9の(c)図に示すように、上記足部59Aおよび59Bの斜め上方を向く面に設けられ、斜め上方を向くボタン面を有する。ユーザが端末装置7を把持した場合には中指は上下方向に動くと考えられるので、ボタン面を上方に向けることで、ユーザは第2Lボタン54Kおよび第2Rボタン54Lを押下しやすくなる。また、ハウジング50の裏面に足部が設けられることにより、ユーザはハウジング50を把持しやすくなり、かつ、足部にボタンが設けられることで、ハウジング50を把持したまま操作しやすくなる。
【0120】
なお、図9に示す端末装置7に関しては、第2Lボタン54Kおよび第2Rボタン54Lが裏面に設けられるので、LCD51の画面(ハウジング50の表面)が上を向いた状態で端末装置7を載置させる場合、画面が完全に水平にはならない場合がある。そのため、他の実施形態においては、ハウジング50の裏面に3つ以上の足部が形成されてもよい。これによれば、LCD51の画面が上を向いた状態では足部が床面(または他の水平な面)に接することで床面に載置できるので、画面が水平になるように端末装置7を載置することができる。また、着脱可能な足部を追加することで端末装置7を水平に載置するようにしてもよい。
【0121】
各ボタン54A〜54Lには、ゲームプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン54Aおよびボタン54E〜54Hは方向指示操作や選択操作等に用いられてもよいし、各ボタン54B〜54Eは決定操作やキャンセル操作等に用いられてもよい。
【0122】
なお、図示しないが、端末装置7は、端末装置7の電源をオン/オフするための電源ボタンを有している。また、端末装置7は、LCD51の画面表示をオン/オフするためのボタンや、ゲーム装置3との接続設定(ペアリング)を行うためのボタンや、スピーカ(図11に示すスピーカ67)の音量を調節するためのボタンを有していてもよい。
【0123】
図9の(a)図に示すように、端末装置7は、マーカ55Aおよびマーカ55Bからなるマーカ部(図11に示すマーカ部55)をハウジング50の表面に備えている。マーカ部55は、どの位置に設けられてもよいが、ここではLCD51の上側に設けられる。各マーカ55Aおよびマーカ55Bは、マーカ装置6の各マーカ6Rおよび6Lと同様、1以上の赤外LEDで構成される。マーカ部55は、上述のマーカ装置6と同様、コントローラ5(メインコントローラ8)の動き等をゲーム装置3が算出するために用いられる。また、ゲーム装置3はマーカ部55が備える各赤外LEDの点灯を制御することが可能である。
【0124】
端末装置7は、撮像手段であるカメラ56を備えている。カメラ56は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。図9に示すように、本実施形態では、カメラ56はハウジング50の表面に設けられる。したがって、カメラ56は、端末装置7を持っているユーザの顔を撮像することができ、例えばLCD51を見ながらゲームを行っている時のユーザを撮像することができる。なお、他の実施形態では、1以上のカメラが端末装置7に設けられてもよい。
【0125】
なお、端末装置7は、音声入力手段であるマイク(図11に示すマイク69)を備えている。ハウジング50の表面には、マイクロフォン用孔60が設けられる。マイク69はこのマイクロフォン用孔60の奥のハウジング50内部に設けられる。マイクは、ユーザの音声等、端末装置7の周囲の音を検出する。なお、他の実施形態では、1以上のマイクが端末装置7に設けられてもよい。
【0126】
端末装置7は、音声出力手段であるスピーカ(図11に示すスピーカ67)を備えている。図9の(d)図に示すように、ハウジング50の下側側面にはスピーカ孔57が設けられる。スピーカ67の出力音はこのスピーカ孔57から出力される。本実施形態では、端末装置7は2つのスピーカを備えており、左スピーカおよび右スピーカのそれぞれの位置にスピーカ孔57が設けられる。なお、端末装置7が備えるスピーカの数はいくつであってもよく、上記2つのスピーカに加えて追加のスピーカが端末装置7に設けられてもよい。
【0127】
また、端末装置7は、他の装置を端末装置7に接続するための拡張コネクタ58を備えている。本実施形態においては、図9の(d)図に示すように、拡張コネクタ58は、ハウジング50の下側側面に設けられる。なお、拡張コネクタ58に接続される他の装置はどのようなものであってもよく、例えば、特定のゲームに用いるコントローラ(銃型のコントローラ等)やキーボード等の入力装置であってもよい。他の装置を接続する必要がなければ、拡張コネクタ58は設けられていなくともよい。
【0128】
なお、図9に示した端末装置7に関して、各操作ボタンやハウジング50の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。
【0129】
次に、図11を参照して、端末装置7の内部構成について説明する。図11は、端末装置7の内部構成を示すブロック図である。図11に示すように、端末装置7は、図9に示した構成の他、タッチパネルコントローラ61、磁気センサ62、加速度センサ63、ジャイロセンサ64、ユーザインタフェースコントローラ(UIコントローラ)65、コーデックLSI66、スピーカ67、サウンドIC68、マイク69、無線モジュール70、アンテナ71、赤外線通信モジュール72、フラッシュメモリ73、電源IC74、電池75、および、バイブレータ79を備える。これらの電子部品は、電子回路基板上に実装されてハウジング50内に収納される。
【0130】
UIコントローラ65は、各種の入出力部に対するデータの入出力を制御するための回路である。UIコントローラ65は、タッチパネルコントローラ61、アナログスティック53(アナログスティック53Aおよび53B)、操作ボタン54(各操作ボタン54A〜54L)、マーカ部55、磁気センサ62、加速度センサ63、ジャイロセンサ64、およびバイブレータ79に接続される。また、UIコントローラ65は、コーデックLSI66と拡張コネクタ58に接続される。また、UIコントローラ65には電源IC74が接続され、UIコントローラ65を介して各部に電力が供給される。電源IC74には内蔵の電池75が接続され、電力が供給される。また、電源IC74には、コネクタ等を介して外部電源から電力を取得可能な充電器76またはケーブルを接続することが可能であり、端末装置7は、当該充電器76またはケーブルを用いて外部電源からの電力供給と充電を行うことができる。なお、端末装置7は、図示しない充電機能を有するクレイドルに端末装置7を装着することで充電を行うようにしてもよい。
【0131】
タッチパネルコントローラ61は、タッチパネル52に接続され、タッチパネル52の制御を行う回路である。タッチパネルコントローラ61は、タッチパネル52からの信号に基づいて所定の形式のタッチ位置データを生成してUIコントローラ65へ出力する。タッチ位置データは、タッチパネル52の入力面において入力が行われた位置(タッチパネル52がマルチタッチ方式である場合は複数の位置であってもよい)の座標を表す。なお、タッチパネルコントローラ61は、タッチパネル52からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。また、UIコントローラ65からタッチパネルコントローラ61へは、タッチパネル52に対する各種の制御指示が出力される。
【0132】
アナログスティック53は、ユーザの指で操作されるスティック部がスライドした(または傾倒した)方向および量を表すスティックデータをUIコントローラ65へ出力する。また、操作ボタン54は、各操作ボタン54A〜54Lに対する入力状況(押下されたか否か)を表す操作ボタンデータをUIコントローラ65へ出力する。
【0133】
磁気センサ62は、磁界の大きさおよび方向を検知することで方位を検出する。検出された方位を示す方位データは、UIコントローラ65へ出力される。また、UIコントローラ65から磁気センサ62へは、磁気センサ62に対する制御指示が出力される。磁気センサ62に関しては、MI(磁気インピーダンス)素子、フラックスゲートセンサ、ホール素子、GMR(巨大磁気抵抗)素子、TMR(トンネル磁気抵抗)素子、あるいはAMR(異方性磁気抵抗)素子等を用いたセンサがあるが、方位を検出することができればどのようなものが用いられてもよい。なお、厳密には、地磁気以外に磁界が発生している場所においては、得られた方位データは方位を示さないことになるが、そのような場合であっても、端末装置7が動いた場合には方位データが変化するため、端末装置7の姿勢の変化を算出することができる。
【0134】
加速度センサ63は、ハウジング50の内部に設けられ、3軸(図9の(a)図に示すXYZ軸)方向に沿った直線加速度の大きさを検出する。具体的には、加速度センサ63は、ハウジング50の長辺方向をZ軸、ハウジング50の短辺方向をX軸、ハウジング50の表面に対して垂直な方向をY軸として、各軸の直線加速度の大きさを検出する。検出された加速度を表す加速度データはUIコントローラ65へ出力される。また、UIコントローラ65から加速度センサ63へは、加速度センサ63に対する制御指示が出力される。加速度センサ63は、本実施形態では例えば静電容量式のMEMS型加速度センサであるとするが、他の実施形態においては他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ63は1軸または2軸方向を検出する加速度センサであってもよい。
【0135】
ジャイロセンサ64は、ハウジング50の内部に設けられ、上記X軸、Y軸およびZ軸の3軸周りの角速度を検出する。検出された角速度を表す角速度データは、UIコントローラ65へ出力される。また、UIコントローラ65からジャイロセンサ64へは、ジャイロセンサ64に対する制御指示が出力される。なお、3軸の角速度を検出するために用いられるジャイロセンサの数および組み合わせはどのようなものであってもよく、ジャイロセンサ64はジャイロセンサ48と同様、2軸ジャイロセンサと1軸ジャイロセンサとで構成されてもよい。また、ジャイロセンサ64は1軸または2軸方向を検出するジャイロセンサであってもよい。
【0136】
バイブレータ79は、例えば振動モータやソレノイドであり、UIコントローラ65に接続される。UIコントローラ65の指示によりバイブレータ79が作動することによって端末装置7に振動が発生する。これによって、端末装置7を把持しているユーザの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。
【0137】
UIコントローラ65は、上記の各構成要素から受け取ったタッチ位置データ、スティックデータ、操作ボタンデータ、方位データ、加速度データ、および角速度データを含む操作データ(端末操作データ)をコーデックLSI66に出力する。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置に対する操作を表すデータが上記操作データにさらに含まれていてもよい。
【0138】
コーデックLSI66は、ゲーム装置3へ送信するデータに対する圧縮処理、および、ゲーム装置3から送信されたデータに対する伸張処理を行う回路である。コーデックLSI66には、LCD51、カメラ56、サウンドIC68、無線モジュール70、フラッシュメモリ73、および赤外線通信モジュール72が接続される。また、コーデックLSI66はCPU77と内部メモリ78を含む。端末装置7はゲーム処理自体を行なわない構成であるが、端末装置7の管理や通信のための最小限のプログラムを実行する必要がある。電源投入時にフラッシュメモリ73に格納されたプログラムを内部メモリ78に読み出してCPU77が実行することで、端末装置7が起動する。また、内部メモリ78の一部の領域はLCD51のためのVRAMとして使用される。
【0139】
カメラ56は、ゲーム装置3からの指示に従って画像を撮像し、撮像した画像データをコーデックLSI66へ出力する。また、コーデックLSI66からカメラ56へは、画像の撮像指示等、カメラ56に対する制御指示が出力される。なお、カメラ56は動画の撮影も可能である。すなわち、カメラ56は、繰り返し撮像を行って画像データをコーデックLSI66へ繰り返し出力することも可能である。
【0140】
サウンドIC68は、スピーカ67およびマイク69に接続され、スピーカ67およびマイク69への音声データの入出力を制御する回路である。すなわち、コーデックLSI66から音声データを受け取った場合、サウンドIC68は当該音声データに対してD/A変換を行って得られる音声信号をスピーカ67へ出力し、スピーカ67から音を出力させる。また、マイク69は、端末装置7に伝わる音(ユーザの音声等)を検知して、当該音を示す音声信号をサウンドIC68へ出力する。サウンドIC68は、マイク69からの音声信号に対してA/D変換を行い、所定の形式の音声データをコーデックLSI66へ出力する。
【0141】
コーデックLSI66は、カメラ56からの画像データ、マイク69からの音声データ、および、UIコントローラ65からの操作データを、端末操作データとして無線モジュール70を介してゲーム装置3へ送信する。本実施形態では、コーデックLSI66は、画像データおよび音声データに対して、コーデックLSI27と同様の圧縮処理を行う。上記端末操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール70に出力される。無線モジュール70にはアンテナ71が接続されており、無線モジュール70はアンテナ71を介してゲーム装置3へ上記送信データを送信する。無線モジュール70は、ゲーム装置3の端末通信モジュール28と同様の機能を有している。すなわち、無線モジュール70は、例えばIEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。
【0142】
以上のように、端末装置7からゲーム装置3へ送信される送信データには、操作データ(端末操作データ)、画像データ、および音声データが含まれる。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置から受け取ったデータが上記送信データにさらに含まれていてもよい。また、赤外線通信モジュール72は、他の装置との間で例えばIRDAの規格に従った赤外線通信を行う。コーデックLSI66は、赤外線通信によって受信したデータを、必要に応じて上記送信データに含めてゲーム装置3へ送信してもよい。
【0143】
また、上述のように、ゲーム装置3から端末装置7へは、圧縮された画像データおよび音声データが送信される。これらのデータはアンテナ71および無線モジュール70を介してコーデックLSI66に受信される。コーデックLSI66は、受信した画像データおよび音声データを伸張する。伸張された画像データはLCD51へ出力され、画像がLCD51に表示される。また、伸張された音声データはサウンドIC68へ出力され、サウンドIC68はスピーカ67から音を出力させる。
【0144】
また、ゲーム装置3から受信されるデータに制御データが含まれる場合、コーデックLSI66およびUIコントローラ65は、制御データに従った制御指示を各部に行う。上述のように、制御データは、端末装置7が備える各構成要素(本実施形態では、カメラ56、タッチパネルコントローラ61、マーカ部55、各センサ62〜64、赤外線通信モジュール72、およびバイブレータ79)に対する制御指示を表すデータである。本実施形態では、制御データが表す制御指示としては、上記各構成要素を動作させたり、動作を休止(停止)させたりする指示が考えられる。すなわち、ゲームで使用しない構成要素については電力消費を抑えるために休止させてもよく、その場合、端末装置7からゲーム装置3へ送信される送信データには、休止した構成要素からのデータが含まれないようにする。なお、マーカ部55は赤外LEDであるので、制御は単に電力の供給のON/OFFでよい。
【0145】
以上のように、端末装置7は、タッチパネル52、アナログスティック53、および操作ボタン54といった操作手段を備えるが、他の実施形態においては、これらの操作手段に代えて、または、これらの操作手段とともに、他の操作手段を備える構成であってもよい。
【0146】
また、端末装置7は、端末装置7の動き(位置や姿勢、あるいは、位置や姿勢の変化を含む)を算出するためのセンサとして、磁気センサ62、加速度センサ63、およびジャイロセンサ64を備えるが、他の実施形態においては、これらのセンサのうち1つまたは2つのみを備える構成であってもよい。また、他の実施形態においては、これらのセンサに代えて、または、これらのセンサとともに、他のセンサを備える構成であってもよい。
【0147】
また、端末装置7は、カメラ56およびマイク69を備える構成であるが、他の実施形態においては、カメラ56およびマイク69を備えていなくてもよく、また、いずれか一方のみを備えていてもよい。
【0148】
また、端末装置7は、端末装置7とメインコントローラ8との位置関係(メインコントローラ8から見た端末装置7の位置および/または姿勢等)を算出するための構成としてマーカ部55を備える構成であるが、他の実施形態ではマーカ部55を備えていない構成としてもよい。また、他の実施形態では、端末装置7は、上記位置関係を算出するための構成として他の手段を備えていてもよい。例えば、他の実施形態においては、メインコントローラ8がマーカ部を備え、端末装置7が撮像素子を備える構成としてもよい。さらにこの場合、マーカ装置6は赤外LEDに代えて、撮像素子を備える構成としてもよい。
【0149】
[5.ゲーム処理の概要]
次に、本実施形態のゲームシステム1において実行されるゲーム処理の概要について説明する。本実施形態におけるゲームは、プレイヤがリズムに合わせて端末装置7を操作するリズムゲームである。プレイヤは、端末装置7を把持し、当該端末装置7の姿勢を変化させてテレビ2に表示されるゲーム画像(テレビ用ゲーム画像)および端末装置7に表示されるゲーム画像(端末用ゲーム画像)を見ながら、ゲームをプレイする。図12Aは、本ゲームが行われる場合のプレイヤの基本的な姿勢を示す図であり、プレイヤが端末装置7を第1の姿勢で把持している様子を示す図である。図12Bは、本ゲームが行われる場合のプレイヤの基本的な姿勢を示す図であり、プレイヤが端末装置7を第2の姿勢で把持している様子を示す図である。図13Aは、端末装置7を第1の姿勢で把持した場合にテレビ2に表示されるテレビ用ゲーム画像の一例を示す図である。図13Bは、端末装置7を第2の姿勢で把持した場合にテレビ2に表示されるテレビ用ゲーム画像の一例を示す図である。図14は、本ゲームにおける仮想空間に配置された各オブジェクトの位置関係を示す図である。
【0150】
図12Aおよび図12Bに示すように、プレイヤは、基本的にテレビ2の画面に対して正面を向き、テレビ2および端末装置7のLCD51を見ながら本ゲームをプレイする。具体的には、プレイヤは、端末装置7が第1の姿勢となるようにして端末装置7を把持した場合に、テレビ2の画面に表示される画像(テレビ用ゲーム画像)を見てゲームをプレイする。また、プレイヤは、端末装置7が第2の姿勢となるようにして端末装置7を把持した場合に、端末装置7のLCD51に表示される画像(端末用ゲーム画像)を見てゲームをプレイする。図12Aに示すように、第1の姿勢は、端末装置7のLCD51が設けられた面が垂直上方向を向く姿勢(Z軸負方向が重力方向となる姿勢)であり、端末装置7のLCD51の画面が重力と垂直になる姿勢である。また、図12Bに示すように、第2の姿勢は、プレイヤが両手を前方にまっすぐに伸ばした状態で端末装置7を両手で把持した場合の端末装置7の姿勢であり、端末装置7のLCD51の画面が重力と平行になる姿勢である。
【0151】
図13Aおよび図13Bに示すように、テレビ2には、海賊船90Aと、海賊92と、弓93と、矢94とが表示される。プレイヤが第1の姿勢で端末装置7を把持すると、海賊92が拡大表示される。一方、プレイヤが第2の姿勢で端末装置7を把持すると、海賊92は縮小表示される。本ゲームでは、図14に示すように、プレイヤの視点(第1仮想カメラの位置)は仮想空間の船91に設定され、船91の正面には海賊船90A、船91の右側には海賊船90B、船91の左側には海賊船90Cが配置される。すなわち、本実施形態では、プレイヤが乗った船91は海賊船90Aと、海賊船90Bと、海賊船90Cとに囲まれている状況を想定したゲームが行われる。第1仮想カメラの撮像方向は固定され、第1仮想カメラの注視点は海賊92に固定される。なお、第1仮想カメラの撮像方向は必ずしも固定される必要はなく、例えば、ユーザによる端末装置7の操作ボタンに対する操作やゲームの状況に応じて変更されてもよい。プレイヤが第1の姿勢で端末装置7を把持すると、第1仮想カメラの位置が当該第1仮想カメラの撮像方向に移動するとともに、第1仮想カメラのズーム設定が変更される(画角が小さくされる)ことによって、海賊92が拡大表示される。一方、プレイヤが端末装置7の姿勢を第2の姿勢に変化させると、第1仮想カメラの位置が当該第1仮想カメラの撮像方向と反対方向に移動するとともに、第1仮想カメラがズームアウトして、海賊92が縮小表示される。なお、海賊船90Bおよび海賊船90Cは、船91の真横に配置されるとしたが、海賊船90Bおよび海賊船90Cはどのような位置に配置されてもよい。すなわち、海賊船90Bおよび海賊船90Cは、正面に対して90度の方向の位置に配置されたが、これらは、例えば、正面に対して60度の位置に配置されてもよい。
【0152】
図15Aは、プレイヤが端末装置7を自身の目の前で把持して、テレビ2に対して正面を向いているときの端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図である。図15Bは、プレイヤが端末装置7を自身の目の前で把持して、テレビ2に対して右側を向いているときの端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図である。
【0153】
図15Aに示すように、プレイヤがテレビ2に対して正面を向いている場合、LCD51には海賊船90A、および船91の一部が表示される一方、海賊92や弓93、矢94は表示されない。端末用ゲーム画像は、船91に設定された第2仮想カメラで仮想空間を撮像することによって得られる画像である。第2仮想カメラの位置は、海賊92が縮小表示されるときの第1仮想カメラの位置と略同じに設定される。また、第2仮想カメラの画角は、海賊92が縮小表示されるときの第1仮想カメラの画角と略同じに設定される。したがって、第2仮想カメラの撮像範囲は、海賊92が縮小表示されるときの第1仮想カメラの撮像範囲と略同じになる。プレイヤが端末装置7を自身の目の前で把持して、テレビ2に対して正面を向いている場合、図12Bのように、端末装置7のLCD51の画面が設けられた面の反対側の面が、テレビ2の方を向く。このような端末装置7の姿勢(ここでは「基準姿勢」という場合がある)では、端末装置7のLCD51には、船91の正面の海賊船90Aが表示される。「基準姿勢」は、端末装置7のLCD51が設けられた面と反対側の面がテレビ2を向く姿勢であり、端末装置7からZ軸負方向に伸ばした直線がテレビ2の画面と略垂直に交わるような姿勢である。端末装置7が基準姿勢である場合、第2仮想カメラの撮像方向は第1仮想カメラの撮像方向と同じになり、第1仮想カメラおよび第2仮想カメラの位置も同じまたは略同じになる。
【0154】
なお、上記第1の姿勢は、端末装置7のLCD51の画面が重力と垂直になる姿勢であり、端末装置7の上面がどこを向いていても第1の姿勢となる。すなわち、端末装置7がZ軸周りにどの程度回転しているかには依存せず、端末装置7のZ軸負方向が重力方向に近い姿勢の場合は、第1の姿勢となる。同様に、上記第2の姿勢は、端末装置7のLCD51の画面が重力と平行になる姿勢であり、端末装置7のLCD51の画面が設けられた面の反対側の面がどこを向いていても第2の姿勢となる。すなわち、端末装置7がY軸周りにどの程度回転しているかには依存せず、端末装置7のY軸負方向が重力方向に近い姿勢の場合は、第2の姿勢となる。これに対して、上記基準姿勢は、端末装置7のY軸負方向が重力方向となる姿勢であり、かつ、端末装置7のLCD51の画面が設けられた面の反対側の面がテレビ2を向く姿勢である。すなわち、基準姿勢は、プレイヤがテレビ2の正面に立ち、かつ、プレイヤが両手を前方にまっすぐに伸ばした状態で端末装置7を両手で把持した場合の端末装置7の姿勢である。
【0155】
また、図15Bに示すように、プレイヤがテレビ2に対して右側を向く場合(図20参照)、端末装置7のLCD51には、海賊船90Bおよび船91の一部が表示される。プレイヤが端末装置7を自身の目の前で把持して、テレビに対して右側を向く場合、端末装置7の左側面がテレビ2の方を向く。このような端末装置7の姿勢では、端末装置7のLCD51には、船91の右側の海賊船90Bが表示される。
【0156】
このように、プレイヤがテレビ2に対して右側を向くと、第2仮想カメラも右側を向き、海賊船90BがLCD51に表示される。すなわち、第2仮想カメラの姿勢は、端末装置7の姿勢に応じて変化し、端末装置7の姿勢と一致するように第2仮想カメラの姿勢が決定される。具体的には、ジャイロセンサ64によって検出された各軸(X、Y、Z軸)周りの角速度を時間で積分して得られる各軸周りの回転角度に応じて、第2仮想カメラの姿勢が設定される。なお、第2仮想カメラのズーム設定や撮像方向における位置は、端末装置7の姿勢に応じて変化しない。
【0157】
一方、プレイヤがテレビ2に対して右側を向いても、テレビ2に表示される画像は変化しない。すなわち、第1仮想カメラの姿勢は、端末装置7の姿勢に応じて変化しない。しかしながら、上述のように、端末装置7の姿勢に応じて第1仮想カメラの位置およびズーム設定が変化する。具体的には、端末装置7のX軸周りの回転角度に応じて、第1仮想カメラの位置が船91から海賊船90Aに向かって移動するとともに、第1仮想カメラの画角が小さくなって、図13Aに示すように海賊92が拡大表示される。
【0158】
なお、本実施形態では、ゲーム装置3において2つの仮想空間が定義され、第1仮想カメラは一方の仮想空間に設定され、第2仮想カメラは他方の仮想空間に設定されるものとする。当該2つの仮想空間には、同じオブジェクト(海賊船90Aや背景のオブジェクト等)が配置され、それぞれの画面に同じオブジェクトが表示される。このため、テレビ2および端末装置7には、同一の仮想空間を異なる仮想カメラで撮像したような画像が表示される。一方で、図13Bと図15Aとを比較すると、基本的には同様の画像であるが、図13Bには海賊92は表示されているが、図15Aには海賊92は表示されていない。第2仮想カメラが配置された他方の仮想空間には、海賊92等は配置されない。端末装置7は可搬型の表示装置であるため、画面の大きさには限界があり、端末装置7のLCD51に海賊92の小さな画像が表示されてもプレイヤは当該画像を認識することができない。したがって、端末装置7のLCD51には、海賊92は表示されない。なお、他の実施形態では、1つの仮想空間が定義され、2つの仮想カメラを1つの仮想空間に配置してもよい。また、2つの仮想空間が定義され、それぞれの仮想空間に全く同一のオブジェクト(海賊船90A等)が配置される必要はなく、同じものを表していればオブジェクト自体は異なるものであってもよい。例えば、一方の仮想空間に、海賊船90Aを示す第1のオブジェクトが配置され、他方の仮想空間に海賊船90Aと同じあるいは外観上類似した海賊船を示す第2のオブジェクトが配置されてもよい。そして、それぞれの仮想空間に配置された仮想カメラで、これらのオブジェクトが撮像されてテレビ2および端末装置7に表示されてもよい。
【0159】
次に、本実施形態のリズムゲームについてより具体的に説明する。図16Aは、本実施形態のゲームが実行された後の第1タイミングでテレビ2に表示されるテレビ用ゲーム画像の一例を示す図である。図16Bは、第1タイミングから所定時間経過後の第2タイミングで端末装置7のLCD51に表示される端末用ゲーム画像の一例を示す図である。図17は、プレイヤが端末装置7を下に向けている状態(第1の姿勢)から上に向ける状態に端末装置7の姿勢を変化させる様子を示す図である。
【0160】
本ゲームが開始されると、端末装置7の姿勢に応じて図13Aまたは図13Bに示す画像がテレビ2に表示されるとともに、所定の音楽がテレビ2のスピーカ2aから出力される。そして、図16Aに示すように、所定のタイミング(第1タイミング)で、指示画像96がテレビ2に表示されるとともに、矢94が放たれたことを示す指示画像96がテレビ2に表示される。指示画像96は、プレイヤに矢が発射されたことを知らせるための画像である。また、当該第1タイミングにおいて、矢94が放たれたことおよび矢94がどの方向から飛んでくるか(どの位置から矢94が放たれるか)を示す音声および矢94が放たれたことを示す効果音が、テレビ2のスピーカ2aから出力される。例えば、図16Aに示すように、第1タイミングにおいて海賊92が矢94を発射したことを示す指示画像96が表示されるとともに、海賊92がプレイヤに対して「上」と声で指示を出す(海賊92の声がテレビ2のスピーカ2aから出力される)。この指示画像96および音声による指示に応じて、プレイヤは、端末装置7を上方向に向けるように端末装置7の姿勢を変化させる。なお、矢94を放つ海賊が海賊92とは別に表示されてもよい。また、海賊92が矢94を放つ際に、上記指示画像96および音声に加えて、矢94がどの方向から飛んでくるかを示す文字情報が、テレビ2に表示されてもよい。
【0161】
図17に示すように、プレイヤは、端末装置7のLCD51の画面が設けられた面の反対側の面で矢を受けるようにして、当該反対側の面を実空間の上方を向ける。そして、第1タイミングから所定時間経過後の第2タイミングにおいて当該端末装置7の姿勢が維持されている場合、図16Bに示す画像が端末装置7のLCD51に表示される。具体的には、矢94を端末装置7で受け止めたことを示す画像97と、矢を受け止めた位置を示す円形画像98とが、端末装置7のLCD51に表示される。本実施形態においては、概念的に、海賊92が放った矢94を受け止めるための的として端末装置7が用いられる。
【0162】
図16Aおよび図16Bに示すように、第1タイミングにおいて矢94が放たれる様子がテレビ2に表示され、第2タイミングにおいて矢94がプレイヤに届いた様子が端末装置7のLCD51に表示される。第1タイミングから第2タイミングの間、矢94がプレイヤに向かって飛んでくる様子は、テレビ2にも端末装置7のLCD51にも表示されない。したがって、プレイヤは、テレビ2のスピーカ2aおよび端末装置7のスピーカ67から出力される音から、タイミングを合わせて端末装置7の姿勢を変化させる。具体的には、プレイヤは、テレビ2のスピーカ2aから出力される音楽に基づいて矢94がプレイヤに届くタイミングを予測し、当該矢94が届く前に端末装置7の姿勢を変化させて、当該タイミングにおいて端末装置7の姿勢を維持する。また、プレイヤは、テレビ2のスピーカ2aおよび端末装置7のスピーカ67から出力される効果音に基づいて、矢94がプレイヤに届くタイミングを予測する。当該効果音は、矢94が空間を移動する際に空気との摩擦によって発生するような音である。当該効果音は、矢94が発射された第1タイミングでテレビ2から発せられ、第1タイミングからの経過時間に応じて、テレビ2から発せられる効果音は、徐々に小さくなる。一方、端末装置7から発せられる効果音は、第1タイミングからの経過時間に応じて徐々に大きくなり、当該効果音が徐々に大きくなることで、矢94が近づいてくることをプレイヤに想像させる。
【0163】
図18は、海賊92が矢94を放った第1タイミングt1から矢94がプレイヤに届く第2タイミングt2までの時間経過を示す図である。上述のように、テレビ2のスピーカ2aからはゲームの開始とともに所定の音楽が出力される。当該音楽が出力されている間の第1タイミングt1において、矢94が放たれる。そして、当該第1タイミングt1から所定時間(例えば3拍)経過した時点の第2タイミングt2において、矢94がプレイヤに届く。当該第2タイミングt2において、端末装置7の姿勢が、第1タイミングt1で指示された姿勢である場合、矢94を端末装置7で受け止めたことを示す画像97および円形画像98が表示される。さらに、矢94を端末装置7で受け止めたことを示す音声(効果音)が端末装置7のスピーカ67から表示される。なお、第2タイミングt2において、端末装置7の姿勢が、第1タイミングt1で指示された姿勢でない場合、矢94を端末装置7で受け止めたことを示す画像97および円形画像98は表示されない。例えば、端末装置7からの音声や振動(バイブレータ79の振動)等によって、プレイヤが矢を端末装置7で受け止めることができなかったことがプレイヤに知らせられる。さらに、時間が経過して第1タイミングt1になった場合、海賊92および音声によっては次の指示が行われる。
【0164】
なお、第2タイミングt2から次の第1タイミングt1までの間に、プレイヤは端末装置7に対する所定の操作を行うことによって、端末装置7で受け止めた矢94を振り落とす操作を行う。当該操作が行われると、矢94が振り落とされて、画像97および円形画像98が端末装置7のLCD51に表示されなくなる。所定の操作は、例えば、端末装置7のZ軸負方向に所定の大きさの加速度を発生させる操作であってもよいし、端末装置7の所定の操作ボタンを押す操作であってもよい。
【0165】
また、上記第1タイミングt1および当該第2タイミングt2は、予め所定の音楽に関連付けられて記憶される。第1タイミングおよび第2タイミングは、所定の音楽のリズムに同期して設定される。例えば、第1タイミングt1は、所定の音楽の再生が開始されてから8拍目のタイミング、16拍目のタイミング、24拍目のタイミング等のように、予め所定の音楽に関連付けられてゲーム装置3に記憶され、第2タイミングt2は、第1タイミングt1から3拍目のタイミングになるように、予めゲーム装置3に記憶される。そして、所定の音楽の再生が開始された時点で、第1タイミングおよび第2タイミングが設定される。また、所定の音楽の再生速度は、プレイヤによって調整されてもよい。所定の音楽の再生速度が調整されると、当該調整された再生速度に応じて、音楽の再生開始から第1タイミングになるまでの時間および第2タイミングになるまでの時間も、調整される。すなわち、例えば、所定の音楽が通常よりも速いテンポで再生される場合は、当該音楽の再生開始から1回目の第1タイミングまでの時間は短くなり、第1タイミングと第2タイミングとの間の時間も短くなる。
【0166】
図19Aは、本実施形態のゲームが実行された後の第1タイミングt1でテレビ2に表示されるテレビ用ゲーム画像の他の例を示す図である。図19Bは、第1タイミングt1から所定時間経過後の第2タイミングt2で端末装置7のLCD51に表示される端末用ゲーム画像の他の例を示す図である。
【0167】
図19Aに示すように、第1タイミングt1において、テレビ2には海賊92が右側を指示している様子が表示されるとともに、海賊92がプレイヤに対して「右」と声で指示を出す(海賊92の声がテレビ2のスピーカ2aから出力される)。この場合、船91の正面の海賊船90Aから矢94が放たれず、船91の右側の海賊船90Bから矢94が放たれる。このため、図19Aでは、海賊92が矢94を放ったことを示す指示画像96は表示されない。
【0168】
ここで、プレイヤは、海賊92による指示に応じて、テレビ2に対して右側を向くように自身の姿勢(および端末装置7の姿勢)を変化させる。図20は、プレイヤがゲーム装置3からの指示に応じてテレビ2に対して右側を向く様子を実空間の上方から見た図である。プレイヤは、通常、テレビ2に対して正面を向いたままゲーム装置3からの指示を待つ。第1タイミングt1において、海賊92が右方向を指す動作およびテレビ2のスピーカ2aからの音声によって、プレイヤは、ゲーム装置3から指示を受ける。そして、図20に示すように、プレイヤは、当該指示に従ってテレビ2に対して右側を向くように自身の姿勢を変化させる(体全体を右に90度回転させる)。すると、図19Bに示すように、第2タイミングt2において、矢94が端末装置7に届いたことを示す画像97および円形画像98が表示される。
【0169】
以上のような海賊92による指示が音楽に合わせて繰り返される。本実施形態のゲームでは、テレビ2に表示される画像による指示およびテレビ2からの音声による指示に基づいて、プレイヤは、リズムに合わせてタイミング良く端末装置7を操作する。そして、プレイヤは、指示に従った操作を行った場合、高い点数を得ることができる。
【0170】
[6.ゲーム処理の詳細]
次に、本ゲームシステムにおいて実行されるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる各種データについて説明する。図21は、ゲーム処理において用いられる各種データを示す図である。図21において、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図21に示すように、ゲーム装置3のメインメモリには、ゲームプログラム100、端末操作データ110、および処理用データ120が記憶される。なお、メインメモリには、図21に示すデータの他、ゲームに登場する各種オブジェクトの画像データやゲームに使用される音声データ等、ゲームに必要なデータが記憶される。
【0171】
ゲームプログラム100は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム100は、光ディスク4に代えて、フラッシュメモリ17やゲーム装置3の外部装置から(例えばインターネットを介して)取得されてもよい。また、ゲームプログラム100に含まれる一部(例えば、端末装置7の姿勢を算出するためのプログラム)については、ゲーム装置3内に予め記憶されていてもよい。
【0172】
端末操作データ110は、端末装置7に対するプレイヤの操作を表すデータであり、端末装置7に対する操作に基づいて端末装置7から出力(送信)される。端末操作データ110は、端末装置7から送信されてゲーム装置3において取得され、メインメモリに記憶される。端末操作データ110は、角速度データ111、加速度データ112、方位データ113、および操作ボタンデータ114を含む。なお、端末操作データ110は、これらのデータの他、端末装置7のタッチパネル52においてタッチが行われた位置(タッチ位置)を示すデータ等を含む。また、ゲーム装置3は、複数の端末装置7から端末操作データを取得する場合、各端末装置7からそれぞれ送信されてくる各端末操作データ110をメインメモリにそれぞれ記憶してもよい。
【0173】
角速度データ111は、端末装置7におけるジャイロセンサ64によって検出された角速度を表すデータである。ここでは、角速度データ111は、端末装置7に固定のXYZ座標系(図9参照)の各軸回りの角速度をそれぞれ表すものであるが、他の実施形態においては、任意の1軸以上の軸回り角速度を表すものであればよい。
【0174】
加速度データ112は、端末装置7の加速度センサ63によって検出された加速度を表すデータである。ここでは、端末装置7に固定のXYZ座標系(図9参照)の各軸回りの加速度をそれぞれ表す。
【0175】
方位データ113は、端末装置7の磁気センサ62によって検出された方位を示すデータである。
【0176】
操作ボタンデータ114は、端末装置7に設けられた各操作ボタン54A〜54Lが押されているか否かを表すデータである。
【0177】
処理用データ120は、後述するゲーム処理(図22)において用いられるデータである。処理用データ120は、姿勢データ121、第1仮想カメラデータ122、第2仮想カメラデータ123、および状態データ124を含む。なお、図21に示すデータの他、処理用データ120は、得点に関するデータ等、ゲーム処理において用いられる各種データを含む。
【0178】
姿勢データ121は、端末装置7の姿勢を表すデータである。端末装置7の姿勢は、例えば、基準姿勢から現在の姿勢への回転を表す回転行列によって表現される。なお、端末装置7の姿勢は、3つの角度(XYZ各軸周りの回転角度)によって表現されてもよい。姿勢データ121は、端末装置7からの端末操作データ110に含まれる角速度データ111に基づいて算出される。具体的には、姿勢データ121は、ジャイロセンサ64によって検出されたX軸、Y軸、Z軸周りの角速度をそれぞれ時間で積分することによって算出される。なお、端末装置7の姿勢は、ジャイロセンサ64によって検出された角速度を示す角速度データ111に限らず、加速度センサ63によって検出された加速度を表す加速度データ112、および、磁気センサ62によって検出された方位を示す方位データ113に基づいて算出されてもよい。また、角速度に基づいて算出される姿勢を加速度データや方位データに基づいて補正をすることによって姿勢を算出するようにしてもよい。また、メインメモリには、過去所定数フレームにおける端末装置7の姿勢を示す姿勢データ121が、時系列に記憶される。
【0179】
第1仮想カメラデータ122は、仮想空間に設定された第1仮想カメラの当該仮想空間における位置および姿勢を示すデータと、第1仮想カメラのズーム設定(画角の設定)を示すデータとを含む。上述のように、第1仮想カメラは、テレビ用ゲーム画像を生成するための仮想カメラである。また、第1仮想カメラの撮像方向(姿勢)は固定されるが、第1仮想カメラの位置とズーム設定とは、端末装置7の姿勢に応じて変化する。
【0180】
第2仮想カメラデータ123は、仮想空間に設定された第2仮想カメラの当該仮想空間における位置および姿勢を示すデータである。上述のように、第2仮想カメラは、端末用ゲーム画像を生成するための仮想カメラである。また、第2仮想カメラの位置は固定されているが、第2仮想カメラの姿勢は、端末装置7の姿勢に応じて変化する。
【0181】
状態データ124は、端末装置7の姿勢が、上記第1の姿勢か第2の姿勢かを示すデータである。
【0182】
次に、ゲーム装置3において実行されるゲーム処理の詳細を、図22および図23を用いて説明する。図22は、ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図22に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、ゲーム装置3においては、電源投入後にゲームプログラムがすぐに実行される構成であってもよいし、電源投入後にまず所定のメニュー画面を表示する内蔵プログラムが実行され、その後例えばユーザによるメニュー画面に対する選択操作によってゲームの開始が指示されたことに応じてゲームプログラムが実行される構成であってもよい。
【0183】
なお、図22および図23に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数や定数の値等も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU10が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、CPU10以外のプロセッサや専用回路が実行するようにしてもよい。
【0184】
まず、ステップS1において、CPU10は初期処理を実行する。初期処理は、仮想空間を構築し、仮想空間に登場する各オブジェクト(船91、海賊船90Aや海賊92、矢94、第1仮想カメラおよび第2仮想カメラ等)を初期位置に配置したり、ゲーム処理で用いる各種パラメータの初期値を設定したりする処理である。
【0185】
また、ステップS1において、端末装置7の初期処理が行われる。例えば、プレイヤに端末装置7を上記基準姿勢で把持して、当該姿勢のまま端末装置7の所定の操作ボタンを押させるための画像がテレビ2に表示される。このような端末装置7の初期処理によって、端末装置7のXYZ各軸周りの回転角が0に設定される。なお、初期処理において、Z軸周りの回転角(端末装置7のLCD51に対して垂直な軸周りの回転角)のみが0に設定されて、X軸およびY軸周りの回転角は加速度センサ63が検出した加速度に基づいて設定されてもよい。ゲーム装置3は、端末装置7の加速度センサ63が検出する重力の方向に基づいて、重力に対して端末装置7がどの程度傾いているかを計算することができる。しかしながら、ゲーム装置3は、加速度センサ63が検出する重力の方向のみでは、端末装置7がどの方向を向いているか(鉛直下向きの軸の周りにどの程度回転しているか)を知ることができない。したがって、ステップS1においては、プレイヤに端末装置7の所定の面(例えば、LCD51が設けられた面の反対側の面)をテレビ2の方に向けさせて、端末装置7のZ軸周りの回転角を0に設定することにより、端末装置7の姿勢を初期化する。これにより、ゲーム装置3は、初期化された時点における端末装置7の姿勢を基準姿勢として、当該基準姿勢からの端末装置7の姿勢の変化をジャイロセンサ64によって検出された角速度を用いて算出することができる。
【0186】
端末装置7の所定の操作ボタンが押されて端末装置7の初期処理が完了すると、CPU10は、所定の音楽の再生を開始して、次にステップS2の処理を実行する。以降、ステップS2〜S8の一連の処理からなる処理ループが所定時間(1フレーム時間。例えば1/60秒)に1回の割合で繰り返し実行される。
【0187】
ステップS2において、CPU10は、端末装置7から送信されて、メインメモリに記憶されている端末操作データ110を取得する。端末装置7は端末操作データ110をゲーム装置3へ繰り返し送信する。ゲーム装置3においては、端末通信モジュール28が端末操作データを逐次受信し、受信された端末操作データが入出力プロセッサ11aによってメインメモリに逐次記憶される。端末装置7とゲーム装置3との間における送受信の間隔はゲームの処理時間よりも短い方が好ましく、例えば200分の1秒である。ステップS2においては、CPU10は、最新の端末操作データ110をメインメモリから読み出す。ステップS2の次にステップS3の処理が実行される。
【0188】
ステップS3において、CPU10はゲーム制御処理を実行する。ゲーム制御処理は、プレイヤによるゲーム操作に従ってゲームを進行させる処理である。以下、図23を参照して、ゲーム制御処理の詳細について説明する。
【0189】
図23は、図22に示すゲーム制御処理(ステップS3)の詳細な流れを示すフローチャートである。
【0190】
ステップS11において、CPU10は、角速度データ111に基づいて、端末装置7の姿勢を算出する。具体的には、CPU10は、ステップS2で取得した角速度データ111と、メインメモリに記憶されている姿勢データ121とに基づいて、端末装置7の姿勢を算出する。より具体的には、CPU10は、ステップS2で取得した角速度データ111によって表わされる各軸(X軸、Y軸、Z軸)周りの角速度に1フレーム時間をかけて得られる各軸周りの回転角を算出する。このようにして算出される各軸周りの回転角は、前回の処理ループが実行されてから今回の処理ループが実行されるまでの、端末装置7の各軸周りの回転角(1フレーム時間における回転角)である。次に、CPU10は、姿勢データ121によって示される端末装置7の各軸周りの回転角に、当該算出された各軸周りの回転角(1フレーム時間における回転角)を加えることにより、端末装置7の各軸周りの最新の回転角(端末装置7の最新の姿勢)を算出する。なお、算出された姿勢に対して加速度に基づいた補正をさらに行ってもよい。具体的には、端末装置7の動きが少ないときには加速度センサ63によって検出された加速度の方向を重力方向とみなすことができる。このため、端末装置7の動きが少ないときに、角速度に基づいて算出された姿勢に基づいて算出される重力方向が、加速度センサ63によって検出された加速度の方向に近づくように姿勢を補正するようにすればよい。また、算出された姿勢に対して方位データ113に基づいた補正をさらに行ってもよい。具体的には、ステップS1において初期処理が行われた時点において磁気センサ62が検出した方位と、現在磁気センサ62が検出している方位とに基づいて、端末装置7が鉛直下向きの軸周りにどの程度回転しているかを求めることができる。したがって、方位データ113に基づいて、端末装置7の姿勢を補正してもよい。そして、CPU10は、算出した端末装置7の最新の姿勢を姿勢データ121として、メインメモリに記憶する。以上のようにして算出された端末装置7の最新の姿勢は、初期化された時点(ステップS1において初期化された時点)を基準姿勢として、当該基準姿勢からの端末装置7の各軸周りの回転角を示す。具体的には、端末装置7の姿勢を示す姿勢データ121は、回転行列を表すデータである。ステップS11の処理の後、CPU10は、ステップS12の処理を実行する。
【0191】
ステップS12において、CPU10は、端末装置7の姿勢に応じて、第1仮想カメラの位置および画角の設定を行う。具体的には、CPU10は、ステップS11で算出された端末装置7の姿勢が、上記第1の姿勢か第2の姿勢かを判定し、当該判定結果に応じて、第1仮想カメラの設定を行う。より具体的には、CPU10は、まず、端末装置7のX軸周りの回転角が、所定の閾値(例えば、45度)以上か否かを判定する。
【0192】
図24は、端末装置7がX軸周りに所定角度回転している場合の端末装置7を側面から見た図である。図24に示すように、端末装置7のX軸周りの回転角が、所定の閾値以上である場合、CPU10は、端末装置7の姿勢が第2の姿勢であると判定する。一方、CPU10は、端末装置7のX軸周りの回転角が、所定の閾値未満である場合、端末装置7の姿勢が第1の姿勢であると判定する。CPU10は、判定結果を状態データ124として、メインメモリに記憶する。なお、CPU10は、現在の端末装置7の姿勢が第1の姿勢かあるいは第2の姿勢かに応じて、上記所定の閾値を変更する。例えば、CPU10は、現在の姿勢が第1の姿勢である場合、上記所定の閾値として45度を用い、現在の姿勢が第2の姿勢である場合、上記所定の閾値として30度を用いてもよい。
【0193】
次に、CPU10は、第1仮想カメラの位置および画角を設定する。具体的には、CPU10は、端末装置7の姿勢が第1の姿勢である場合、第1仮想カメラの位置を船91の位置と海賊船90Aの位置との間の所定位置(海賊船90Aに近い位置)に設定するとともに、第1仮想カメラの画角を最小に設定する。これにより、第1仮想カメラで仮想空間を撮像した場合、海賊船90A(海賊92)がズームインされて拡大表示される。一方、CPU10は、端末装置7の姿勢が第2の姿勢である場合、第1仮想カメラの位置を船91の位置に設定するとともに、第1仮想カメラの画角を最大に設定する。これにより、第1仮想カメラで仮想空間を撮像した場合、海賊船90Aがズームアウトされて縮小表示される。なお、CPU10は、所定時間かけて第1仮想カメラを移動させるとともに、第1仮想カメラの画角を変化させる。したがって、テレビ2には、海賊92が次第にズームインあるいはズームアウトされる様子が表示される。ステップS12の処理が終了すると、CPU10は、次にステップS13の処理を実行する。
【0194】
ステップS13において、CPU10は、端末装置7の姿勢に応じて、テレビ2から出力される音声の音量を設定する。具体的には、CPU10は、ステップS11で算出された端末装置7の姿勢が第2の姿勢である場合、第1の姿勢である場合に比べてテレビ2から出力される音声(海賊92の声や音楽)の音量を小さくする。CPU10は、次にステップS14の処理を実行する。
【0195】
ステップS14において、CPU10は、端末装置7の姿勢に応じて、第2仮想カメラの姿勢を設定する。具体的には、CPU10は、ステップS11で算出された端末装置7の姿勢と一致するように、第2仮想カメラの姿勢を設定し、第2仮想カメラデータ123としてメインメモリに記憶する。これにより、例えば、端末装置7のLCD51が設けられた面の反対側の面がテレビ2を向く姿勢の場合(プレイヤがテレビ2を向く場合)、第2仮想カメラは海賊船90Aを向く姿勢に設定される。また、例えば、端末装置7のLCD51が設けられた面がテレビ2を向く姿勢の場合(プレイヤがテレビ2の反対側を向く場合)、第2仮想カメラは海賊船90Aの反対側を向く姿勢に設定される。CPU10は、次にステップS15の処理を実行する。
【0196】
ステップS15において、CPU10は、第1タイミングt1か否かを判定する。具体的には、CPU10は、ステップS1において所定の音楽の再生が開始されてからの経過時間に基づいて、第1タイミングt1か否かを判定する。判定結果が肯定の場合、CPU10は、次にステップS16の処理を実行する。一方、判定結果が否定の場合、CPU10は、次にステップS18の処理を実行する。
【0197】
ステップS16において、CPU10は、矢94を放つ処理を開始する。具体的には、CPU10は、所定のアルゴリズムに従って矢94をどの方向(前、上、右、左等)から飛ばすかを決定し、決定した方向から矢94を放つための処理を開始する。これにより、第1仮想カメラで海賊92を撮像した場合に、海賊92が矢94を放つ様子(図16A)がテレビ2に表示されたり、どの方向から矢94が飛んでくるかを海賊92が指し示す様子(図19A)がテレビ2に表示されたりする。また、CPU10は、矢を放つ処理として、どの方向から矢94が飛んでくるかを示す音声および矢94が放たれたことを示す効果音を再生する。メインメモリには、複数の音声データが格納されており、CPU10は、決定した方向に応じた音声データを選択する。これにより、テレビ2のスピーカ2aから、どの方向から矢94が飛んでくるかを示す音声(例えば、「右」)が出力される。CPU10は、次にステップS17の処理を実行する。
【0198】
ステップS17において、CPU10は、第1タイミングt1からの経過時間の計測を開始する。CPU10は、ステップS17の処理の後、CPU10は、図23に示すゲーム制御処理を終了する。
【0199】
一方、ステップS18において、CPU10は、現在矢94が放たれているか否かを判定する。ここでは、図18に示すように、現在が第1タイミングt1から第2タイミングt2までの期間か否かを判定する処理である。具体的には、CPU10は、ステップS17で計測が開始されてからの経過時間に基づいて、現在矢94が放たれているか否かを判定する。判定結果が肯定の場合、CPU10は、次にステップS19の処理を実行する。一方、判定結果が否定の場合、CPU10は、次にステップS22の処理を実行する。
【0200】
ステップS19において、CPU10は、第2タイミングt2か否かを判定する。具体的には、CPU10は、ステップS17で計測が開始されてからの経過時間に基づいて、第2タイミングt2か否かを判定する。判定結果が肯定の場合、CPU10は、次にステップS20の処理を実行する。一方、判定結果が否定の場合、CPU10は、次にステップS21の処理を実行する。
【0201】
ステップS20において、端末装置7の姿勢に基づいた判定処理を行う。ステップS20においては、第2タイミングt2における端末装置7の姿勢に応じた処理を行う。具体的には、CPU10は、ステップS11で算出した端末装置7の姿勢が、ステップS16で決定した方向(海賊92が指示した方向)に応じた姿勢か否かを判定する。例えば、ステップS16において、矢94を右側から飛ばす(すなわち、海賊船90Bからプレイヤに矢94を飛ばす)と決定された場合、CPU10は、端末装置7の姿勢が、図20に示すような姿勢であるか否かを判定する。例えば、CPU10は、姿勢データ121に基づいて、端末装置7のZ軸負方向の単位ベクトルの各軸の座標値が、ステップS16における決定に応じた所定の範囲内か否かを判定することにより、端末装置7の姿勢が海賊92の指示に応じた姿勢か否かを判定する。
【0202】
また、CPU10は、当該判定結果に応じて、端末装置7のLCD51に表示する画像、および端末装置7のスピーカ67から出力する音声を決定する。これにより、例えば、判定結果が肯定の場合(端末装置7の姿勢がステップS16で決定した方向に応じた姿勢である場合)、後述するステップS5およびS7の処理が実行されることで、図16Bに示す画像97および円形画像98がLCD51に表示される。また、CPU10は、判定が肯定の場合、得点を加算する。
【0203】
なお、CPU10は、ステップS20において、過去所定数フレームにおいて算出した端末装置7の姿勢に基づいて、端末装置7が動いているか否かを判定する。メインメモリには、過去所定数フレームにおける端末装置7の姿勢が格納されている。したがって、CPU10は、過去所定数フレームの端末装置7の姿勢に基づいて、端末装置7の姿勢がどの程度変動しているかを算出することができる。CPU10は、端末装置7が動いていると判定した場合、現在の端末装置7の姿勢がステップS16で決定した方向に応じた姿勢であっても、端末装置7が静止している場合とは異なる画像を生成して端末装置7に表示する。図25は、端末装置7が動いている場合において、第2タイミングt2で端末装置7のLCD51に表示される画像の一例を示す図である。図25に示すように、端末装置7が動いている場合、プレイヤが正しい姿勢(海賊92の指示に応じた姿勢)で端末装置7を把持していたとしても、矢を受け止めた位置を示す円形画像98は、画面の中心からずれた位置に表示される。この場合、プレイヤが獲得する得点は、端末装置7が動いていないと判定された場合よりも、低くなる。このように、第2タイミングt2における端末装置7の姿勢に応じてゲーム処理が行われるとともに、当該タイミングにおいて端末装置7が静止しているか否かによってもゲーム処理の結果が異なる。なお、端末装置7が動いているか否かの判定は、加速度センサ63が検出した加速度に基づいて行ってもよい。
【0204】
さらに、CPU10は、ステップS20において、矢94が振り落とされずに残っているか否かに応じて、画像97および円形画像98を表示する位置を決定する。後述のステップS22において、端末装置7で受け止めた矢94を振り落とす処理が行われない場合、矢94は振り落とされずに残り、端末装置7のLCD51に表示されたままとなる。メインメモリには、端末装置7で受け止めた矢94が残っているか否かを示す情報が記憶されている。矢94が残っている場合、画像97および円形画像98は、端末装置7の画面の中心付近に表示されず、図25に示すように画面の中心からずれた位置に表示される。この場合も同様に、プレイヤが獲得する得点は、矢94が残っていない場合よりも低くなる。次に、CPU10は、ステップS17において計測を開始した経過時間をリセットし、図23に示すゲーム制御処理を終了する。
【0205】
ステップS21において、CPU10は、ロックオン枠の表示/非表示を設定する。図26は、端末装置7のLCD51に表示されるロックオン枠99の一例を示す図である。ステップS21の処理は、矢94が放たれており、かつ、第2タイミングt2でない場合(すなわち、第1タイミングt1から第2タイミングt2の間の期間である場合)に実行される。ステップS21の処理は、当該期間における端末装置7の姿勢が、正しい姿勢(海賊92の指示に応じた姿勢)か否かを判定し、正しい姿勢である場合は、ロックオン枠99を表示する処理である。ロックオン枠99は、プレイヤに現在の端末装置7の姿勢が正しいことを知らせるためのものである。すなわち、CPU10は、現在の端末装置7の姿勢が、矢94が放たれたときに海賊92が指示した方向に応じた姿勢か否かを判定し、判定結果が肯定である場合に、ロックオン枠99の表示をONにする。判定結果が否定である場合、ロックオン枠99は非表示に設定される。CPU10は、ステップS21の処理の後、CPU10は、図23に示すゲーム制御処理を終了する。
【0206】
一方、ステップS22において、CPU10は、加速度に基づく処理を実行する。ステップS22では、端末装置7の加速度センサ63が検出した加速度に基づいて、所定のゲーム処理が実行される。具体的には、CPU10は、端末装置7のZ軸負方向の加速度の値が所定の閾値以上であるか否かを判定する。判定結果が肯定の場合、CPU10は、端末装置7で受け止めた矢94を振り落とす処理を行い、図23に示すゲーム制御処理を終了する。これにより、端末装置7のLCD51に表示されている画像97および円形画像98が表示されなくなる。判定結果が否定の場合、または、既に矢94が振り落とされている場合、CPU10は何も行わず、図23に示すゲーム制御処理を終了する。
【0207】
図22に戻り、CPU10はステップS3の処理の後、次にステップS4の処理を実行する。
【0208】
ステップS4において、CPU10は、テレビ用ゲーム画像の生成処理を実行する。具体的には、CPU10は、第1仮想カメラで仮想空間を撮像することによってテレビ用ゲーム画像を取得する。ステップS12の処理において設定された位置および画角の第1仮想カメラで仮想空間が撮像されることにより、端末装置7の姿勢に応じて海賊92が拡大表示されたり縮小表示されたりする。以上のような処理により、海賊92が拡大された画像や海賊92が矢94を放つ様子を示す画像等、ゲームの状況に応じたテレビ用ゲーム画像が取得される。CPU10は、次にステップS5の処理を実行する。
【0209】
ステップS5において、CPU10は、端末用ゲーム画像の生成処理を実行する。具体的には、CPU10は、ステップS14で仮想空間における姿勢が設定された第2仮想カメラで仮想空間を撮像することにより、端末用ゲーム画像を生成する。また、CPU10は、ステップS20やステップS22の処理の結果に応じて、画像97および円形画像98を生成した端末用ゲーム画像に重ね合わせる。また、ステップS21において、ロックオン枠99の表示がONに設定された場合、CPU10は、第2仮想カメラで仮想空間を撮像して得られた端末用ゲーム画像に、ロックオン枠99の画像を重ね合わせる。これにより、端末装置7の姿勢に応じた姿勢の第2仮想カメラから仮想空間を見た画像、第2タイミングt2になって端末装置7の画面に矢94が刺さった様子を示す画像(円形画像98等)等、ゲームの状況に応じた端末用ゲーム画像が取得される。CPU10は、次にステップS6の処理を実行する。
【0210】
ステップS6において、CPU10は、テレビ2へステップS4で生成したテレビ用ゲーム画像を出力する。これにより、テレビ2には、例えば図13Aまたは図13Bに示すような画像が表示される。また、ステップS6においては、テレビ用ゲーム画像と共に音声データがテレビ2へ出力され、テレビ2のスピーカ2aからゲーム音声がステップS13の処理で設定された音量で出力される。具体的には、端末装置7の姿勢が第1の姿勢の場合、第2の姿勢の場合よりも海賊92の声の音量が大きくなる。すなわち、海賊92が拡大表示されている場合は、海賊92の声の音量が大きくなり、縮小表示されている場合は、音量が小さくなる。なお、所定の音楽の音量は、端末装置7の姿勢に応じて変化してもよいし(海賊92の声と同様に第1の姿勢の場合は音量が大きくなってもよい)、端末装置7の姿勢によらず一定であってもよい。CPU10は、次にステップS7の処理を実行する。
【0211】
ステップS7において、CPU10は、端末装置7へ端末用ゲーム画像を送信する。具体的には、CPU10は、ステップS5で生成した端末用ゲーム画像をコーデックLSI27に送り、当該コーデックLSI27は、端末用ゲーム画像に対して所定の圧縮処理を行う。圧縮処理が施された画像のデータは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。端末装置7は、ゲーム装置3から送信されてくる画像のデータを無線モジュール70によって受信する。コーデックLSI66は、受信された画像データに対して所定の伸張処理を行う。伸張処理が行われた画像データはLCD51に出力される。これによって、端末用ゲーム画像がLCD51に表示される。また、ステップS7においては、端末用ゲーム画像と共に音声データが端末装置7へ送信され、端末装置7のスピーカ67からゲーム音声が出力される。CPU10は、次にステップS8の処理を実行する。
【0212】
ステップS8において、CPU10は、ゲームを終了するか否かを判定する。ステップS8の判定は、例えば、ゲームの開始から所定の時間が経過したか否か、あるいは、ユーザがゲームを中止する指示を行ったか否か等によって行われる。ステップS8の判定結果が否定の場合、ステップS2の処理が再度実行される。一方、ステップS8の判定結果が肯定の場合、CPU10は図22に示すゲーム処理を終了する。
【0213】
以上のように、プレイヤは、端末装置7の姿勢を変化させることで、海賊船90A等(海賊92や矢94を含む)を拡大したり縮小したりすることができる。具体的には、プレイヤが端末装置7のLCD51を視認しない姿勢(第1の姿勢)で端末装置7を把持した場合、海賊船90A等は拡大表示されるとともに、テレビ2のスピーカ2aから出力される音声の音量が大きくなる。一方、端末装置7を第2の姿勢に変化させた場合、海賊船90A等は縮小表示されるとともに、テレビ2のスピーカ2aから出力される音声の音量が小さくなる。また、テレビ2には海賊92や矢94が表示されるが、端末装置7には海賊92や矢94は表示されない。さらに、端末装置7は可搬型の表示装置であるため、LCD51の画面サイズは比較的小さく、端末装置7に表示される海賊船90Aは、端末装置7の姿勢が第2の姿勢である場合に縮小表示される海賊船90Aと同様に、視認困難である。このため、プレイヤは端末装置7のLCD51を見るだけでは海賊92からの指示を視認することができない。言い換えると、端末装置7に表示される海賊船90Aは、常に視認困難な程度の大きさでしかないが、テレビ2に表示される海賊船90Aは、端末装置7の姿勢に応じて視認容易になったり、視認困難になったりする。したがって、プレイヤは海賊92からの指示(画像および音声による指示)を視聴するために、テレビ2を見る必要があり、さらに海賊92からの指示を視聴し易くするため、端末装置7の姿勢を第1の姿勢に変化させてテレビ2を視聴する。海賊92からの指示があった後、第2タイミングt2において、プレイヤは端末装置7で矢94を受け止めるようにして、端末装置7の姿勢を変化させ、矢94を受け止めたか否かの結果が端末装置7のLCD51に表示される。
【0214】
このように、本実施形態のゲームでは、プレイヤにテレビ2と端末装置7の画面とを交互に見させることができ、プレイヤは可搬型表示装置である端末装置7を用いたゲームを楽しむことができる。
【0215】
また、テレビ2は据置型の表示装置であり、端末装置7は可搬型の表示装置である。可搬型表示装置はプレイヤによって把持され、これら2つの表示装置は距離がある程度離れている。このようなゲーム環境において上述のようなリズムゲームが行われることにより、これら2つの表示装置の間の距離を利用した空間的な広がりを持つリズムゲームを楽しむことができる。
【0216】
[7.変形例]
なお、上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成で本発明を実施することも可能である。
【0217】
例えば、本実施形態では、端末装置7の姿勢に応じてテレビ2に表示される海賊船90Aや海賊92を拡大または縮小した。これにより、プレイヤにテレビ2と端末装置7とを交互に視聴させて、2つの表示装置を用いたゲームを行わせた。他の実施形態では、例えば、仮想空間に霧を発生/消滅させて、海賊船90Aや海賊92を視認困難/視認容易に切り替えてもよい。また、例えば、テレビ2の画面をブラックアウトさせたり、画面全体あるいは海賊船90A等を含む所定の領域をぼかしたり、海賊船90A等を透明または半透明にすることにより、海賊船90A等を視認困難(視認不可能)にしてもよい。また、例えば、海賊船90A等をモザイク表示することにより、海賊船90Aや海賊92を視認困難(視認不可能)にしてもよい。また、例えば、海賊船90Aの手前に他のオブジェクトを表示することにより、海賊船90Aを視認困難(視認不可能)にしてもよい。すなわち、本実施形態では、端末装置7の姿勢が第1の姿勢の場合に海賊船90A等を拡大(ズームイン)して視認容易にし、端末装置7の姿勢が第2の姿勢の場合に縮小(ズームアウト)して視認困難にした。そして、海賊船90A等を視認困難にすることにより、端末装置7の画面をプレイヤに見させるようにした。他の実施形態では、第1仮想カメラの設定を変更して海賊船90A等を拡大/縮小する代わりに、上記のように他の方法によって海賊船90A等を視認困難/視認容易に切り替えてもよい。海賊船90A等を視認困難にするために、海賊船90A等を縮小表示する処理、海賊船90A等を含む一部あるいは全部の領域に所定の画像(霧を示す白色の画像や画面をブラックアウトさせる黒色の画像、海賊船90Aの手前に配置された他のオブジェクトの画像等)を表示させる処理を行ってもよい。また、海賊船90A等を視認困難にするために、海賊船90A等をぼかす処理、海賊船90A等をモザイク表示する処理を行ってもよい。これにより、プレイヤにテレビ2と端末装置7の画面とを交互に見させてゲームをプレイさせることができる。
【0218】
また、本実施形態では、端末装置7の姿勢が第1の姿勢か第2の姿勢かを判定した。具体的には、第1の姿勢は、端末装置7の画面が地面と水平となる姿勢(画面が重力方向と略垂直になる姿勢)であり、当該姿勢ではプレイヤは端末装置7の画面を見ずにテレビ2を見ているものとした。第2の姿勢は、端末装置7の画面が地面に対して垂直となる姿勢(画面が重力方向と略平行になる姿勢)であり、当該姿勢ではプレイヤは端末装置7の画面を見ているものとした。すなわち、本実施形態では、端末装置7の姿勢に基づいて、プレイヤが端末装置7の画面を視認しているか否か(言い換えるとプレイヤがテレビ2を視認しているか否か)を判定した。他の実施形態では、他の方法により、プレイヤがテレビ2(あるいは端末装置7)を視認している状態か、視認していない状態かを判定してもよい。例えば、端末装置7が備えるカメラ56でプレイヤの顔を撮像し、当該撮像した画像に対して顔認識処理を行ってもよい。これにより、プレイヤの視線が端末装置7のLCD51に向いているか否かを判定することにより、プレイヤが端末装置7を視認している状態か否か(テレビ2を視認しているか否か)を判定してもよい。また、例えば、カメラ56とは異なるカメラを実空間(例えばテレビ2の周辺)に配置し、当該カメラによって撮像された画像をゲーム装置3が取得して、プレイヤがテレビ2を視認している状態か否かを判定してもよい。例えば、プレイヤがテレビ2を視認している状態か否かは、当該カメラによって撮像された画像にプレイヤの顔が含まれているか否かを顔認識技術等を用いることによって判定することができる。また、他の実施形態では、プレイヤによって端末装置7の所定の操作ボタンが押されているか否かによって、プレイヤがテレビ2を視認しているか否かを判定してもよい。
【0219】
また、例えば、端末装置7の姿勢はマーカ装置6のマーカを端末装置7が撮像することによって、算出されてもよく、当該端末装置7の姿勢に応じてプレイヤが端末装置7(あるいはテレビ2)を視認しているか否かを判定してもよい。この場合、端末装置のLCD51が設けられた面の反対側の面にマーカを撮像するカメラが設けられてもよい。あるいは、実空間に配置されたカメラで端末装置7のマーカ部55を撮像することにより、端末装置7の姿勢が算出されてもよい。例えば、端末装置7が備えるカメラでマーカ装置6の2つのマーカを撮像する場合、撮像画像に含まれる2つのマーカの位置や姿勢に基づいて、端末装置7がどの方向を向いているか(テレビ2を向いているか)、横方向にどの程度傾いているかをゲーム装置3は算出することができる。また、実空間に配置されたカメラで端末装置7を撮像し、撮像画像に含まれる端末装置7をパターンマッチング等の画像認識技術によって検出することで、端末装置7の姿勢を算出することができる。
【0220】
また、本実施形態では、ジャイロセンサが検出した角速度に基づいて、端末装置7の姿勢を算出し、加速度センサが検出した加速度に基づいて端末装置7の姿勢を補正した。すなわち、これらの2種類の慣性センサ(加速度センサおよびジャイロセンサ)が検出する物理量の双方を用いて、端末装置7の姿勢を算出した。他の実施形態では、磁気センサが検出する方位(磁気センサが検出する地磁気によって示される方角)に基づいて、端末装置7の姿勢を算出してもよい。磁気センサによって端末装置7がどの方向(地面に平行な方向)を向いているかを検出することができる。この場合、さらに加速度センサを用いると、重力方向に対する傾きを検出することができ、端末装置7の3次元空間における姿勢を算出することができる。
【0221】
また、他の実施形態では、端末装置7においてジャイロセンサ64等によって検出された物理量に基づいて、端末装置7の姿勢が算出され、当該姿勢に関するデータがゲーム装置3に送信されてもよい。そして、ゲーム装置3において、端末装置7からのデータを受信して、端末装置7の姿勢を取得し、当該端末装置7の姿勢に基づいて、上述のようなゲーム処理が行われてもよい。すなわち、ゲーム装置3は、端末装置7からのジャイロセンサ64等によって検出された物理量に応じたデータに基づいて、端末装置7の姿勢を算出することによって端末装置7の姿勢を取得してもよいし、端末装置7において算出された姿勢に関するデータに基づいて、端末装置7の姿勢を取得してもよい。
【0222】
また、本実施形態では、端末装置7の姿勢が第1の姿勢の場合、第1仮想カメラの位置を撮像方向に移動させるとともに、第1仮想カメラの画角を小さくすることにより、海賊船90A等を拡大表示した。他の実施形態では、第1仮想カメラの位置および画角の少なくとも一方を変更することにより、海賊船90A等を拡大/縮小表示してもよい。また、本実施形態では、端末装置7の姿勢が第2の姿勢の場合、第1仮想カメラと第2仮想カメラの位置および画角を略同一に設定して、2つの仮想カメラの撮像範囲を略同一にした。他の実施形態では、必ずしも第1仮想カメラと第2仮想カメラの位置および画角は略同一である必要はなく、2つの仮想カメラの撮像範囲が略同一であれば、2つの仮想カメラの位置および画角はそれぞれ適宜調整されてもよい。
【0223】
また、本実施形態では、第1タイミングと第2タイミングとの間の期間において、端末装置7の姿勢が所定の姿勢(指示に応じた姿勢)である場合、ロックオン枠99を端末装置7に表示した。他の実施形態では、ロックオン枠99を表示するとともに(あるいはロックオン枠99を表示することに代えて)、端末装置7に第2仮想カメラで仮想空間を撮像した静止画を表示してもよい。例えば、当該期間において端末装置7の姿勢が所定の姿勢となった場合、端末装置7の姿勢に応じて第2仮想カメラの姿勢を変化させず、あるいは、端末装置7の姿勢の変化量に対して第2仮想カメラの姿勢の変化量を小さくして、第2仮想カメラで仮想空間を撮像した画像を端末装置7に表示してもよい。また、他の実施形態では、当該期間において、姿勢の判定結果に応じて、バイブレータ79を所定のパターンで動作させてもよい。すなわち、当該期間において、端末装置7の姿勢が所定の姿勢であるか否かを判定し、当該判定結果に応じた報知(枠の表示や静止画の表示、音や振動等によるユーザに対する報知)を端末装置7において行ってもよい。
【0224】
また、本実施形態では、端末装置7の姿勢に応じて、海賊船90A等を拡大表示または縮小表示するとともに、テレビ2から出力される音声の音量を調整した。具体的には、端末装置7の姿勢が第1の姿勢の場合(端末装置7を視認しない姿勢、言い換えるとテレビ2を視認する姿勢の場合)、海賊船90A等を拡大表示するとともに、テレビ2から出力される音声の音量を大きくした。他の実施形態では、端末装置7の姿勢が第1の姿勢の場合、端末装置7から出力される音声の音量を大きくしてもよいし、音量の調整は行われなくてもよい。
【0225】
また、本実施形態では、テレビ2に海賊92が表示され、第1タイミングで海賊92に所定の動作(矢94を放つ動作や所定の方向を指す動作)をさせることによってプレイヤに対する指示を行った。他の実施形態では、プレイヤに対する指示は、どのようなものであってもよく、テレビ2に表示されるオブジェクトは任意のものであってもよい。また、本実施形態では、矢94を飛ばして端末装置7で当該矢94を受け止めることを想定したが、他の実施形態では、他の任意のオブジェクトをテレビ2から端末装置7へ、あるいは端末装置7からテレビ2へ移動させることを想定したゲームであってもよい。
【0226】
また、本実施形態では、テレビ2に表示される海賊92の動作およびテレビ2からの音声によってユーザに対する指示を行った。他の実施形態では、画像および音声のうちの何れか一方のみによる指示がテレビ2において行われてもよい。
【0227】
また、本実施形態では、第1タイミングでプレイヤに対して所定の指示を行い、第1タイミングから所定時間経過後の第2タイミングにおける端末装置7の姿勢に基づいて、ゲーム処理を行った。他の実施形態では、例えば、コントローラ5を入力装置として用いてもよいし、端末装置7を入力装置として用いてもよい。すなわち、他の実施形態では、例えば第2タイミングにおいてコントローラ5の所定の操作ボタンが押されているか否かに応じてゲーム処理を行ってもよいし、端末装置7の所定の操作ボタンが押されているか否かに応じてゲーム処理を行ってもよい。また、例えば、第2タイミングにおいてコントローラ5の姿勢や端末装置7の姿勢に応じてゲーム処理を行ってもよい。
【0228】
また、他の実施形態では、プレイヤによる入力が、プレイヤ自身のジェスチャ(動作)によって行われてもよい。例えば、プレイヤを撮像するカメラをゲーム装置3に接続し、当該カメラからの画像に基づいて、プレイヤの動作を判別することにより、プレイヤからの入力が行われてもよい。例えば、第1タイミングにおいてプレイヤに対する指示が行われ、当該指示に基づいて第2タイミングにおいてプレイヤは指示に応じた動作をする。そして、カメラからの画像に基づいてゲーム装置3がプレイヤの動作を解析し、プレイヤの動作が指示に応じた動作か否かを判定する。
【0229】
すなわち、第2タイミングにおける入力装置に対する入力状態に基づいて、ゲーム処理を行ってもよい。入力装置に対する入力状態は、コントローラ5や端末装置7に設けられた所定の操作ボタンが押されているか否かの状態であってもよいし、コントローラ5や端末装置7自体の姿勢であってもよい。また、入力装置に対する入力状態は、プレイヤ自身のジェスチャ(動作)に基づいた状態であってもよく、プレイヤをカメラで撮像することでプレイヤの動作を判別してもよい。
【0230】
また、例えば、第2タイミングと、入力装置(例えば、端末装置7)に対する入力が行われたタイミングとに基づいて、ゲーム処理を行ってもよい。例えば、第2タイミングと入力装置の所定の操作ボタンが押されたタイミングとの差に基づいて、ゲーム処理を行ってもよい。具体的には、当該差が所定の閾値以下であった場合、プレイヤが指示に応じた入力を行ったとして矢94が端末装置7に到達した様子を端末装置7のLCD51に表示してもよい。また、例えば、第2タイミングと入力装置に対する所定の操作(例えば入力装置を振る操作等、入力装置自体の姿勢を変化させる操作や入力装置に加速度を加える操作)のタイミングとの差に基づいて、ゲーム処理が行われてもよい。すなわち、第2タイミングと入力装置に対する入力のタイミングとの差に基づいて、ゲーム処理が行われてもよい。
【0231】
また、本実施形態では、第1タイミングにおいてテレビ2からプレイヤに向かって矢94を飛ばす様子を表示し、第2タイミングにおいて端末装置7に矢94が到達した様子を表示した。他の実施形態では、第1タイミングにおいて端末装置7からテレビ2に向かって所定のオブジェクトを移動させる様子を表示し、第2タイミングにおいてテレビ2において当該オブジェクトが到達する様子を表示してもよい。この場合において、第2タイミングにおける入力装置(端末装置7やその他の入力装置でもよい)に対する入力状態に基づいてゲーム処理が行われる。すなわち、他の実施形態では、据置型表示装置であるテレビ2と可搬型表示装置である端末装置7とが入れ替わった構成で、上述のようなゲームが行われてもよい。
【0232】
また、他の実施形態では、ゲーム装置3において行われたゲーム処理の一部が、端末装置7において実行されてもよい。例えば、端末装置7において仮想空間が定義され、当該仮想空間を仮想カメラで撮像することにより、端末装置7のLCD51に表示される画像が端末装置7において生成されてもよい。
【0233】
さらに、他の実施形態では、互いに通信可能な複数の情報処理装置を有するゲームシステムにおいて、当該複数の情報処理装置が、上述のようなゲーム装置3において実行されたゲーム処理を分担して実行するようにしてもよい。例えば、インターネットのようなネットワークに接続された複数の情報処理装置によって上述のようなゲームシステムが構成されてもよい。例えば、端末装置7およびモニタが接続された情報処理装置と、当該情報処理装置とインターネットを介して接続されるサーバとによって、上述のようなゲームシステムが構築されてもよい。この場合、端末装置7および情報処理装置はプレイヤ側に配置される。そして、例えば、端末装置7において行われたゲーム操作に応じた操作情報は、ネットワークを介してサーバに送信され、当該サーバは、受信した操作情報に基づいたゲーム処理を実行し、実行結果を情報処理装置に送信する。
【0234】
また、他の実施形態では、ゲーム装置3と、端末装置7とが無線ではなく有線で接続されることによって、データが送受信されてもよい。また、上述したプログラムは、ゲーム装置3以外の様々な情報処理を行う目的で用いられる情報処理装置、例えばパーソナルコンピュータ等において実行されてもよい。
【0235】
また、上記ゲームプログラムは、光ディスクに限らず、磁気ディスク、不揮発性メモリ等の記憶媒体に記憶されてもよく、ネットワークに接続されたサーバ上のRAMや磁気ディスク等のコンピュータ読み取り可能な記憶媒体に記憶されて、ネットワークを介して当該プログラムが提供されてもよい。また、上記ゲームプログラムは、ソースコードとして情報処理装置に読み込まれて、プログラムの実行の際にコンパイルされて実行されてもよい。
【0236】
また、上記実施形態においては、ゲーム装置3のCPU10が上記ゲームプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置3が備える専用回路によって行われてもよし、他の汎用プロセッサによって行われてもよい。少なくとも1つのプロセッサが、上記処理を実行するための「プログラムされた論理回路」として動作するものであってもよい。
【符号の説明】
【0237】
1 ゲームシステム
2 テレビ
3 ゲーム装置
4 光ディスク
5 コントローラ
6 マーカ装置
7 端末装置
10 CPU
11e 内部メインメモリ
12 外部メインメモリ
62 磁気センサ
63 加速度センサ
64 ジャイロセンサ
67 スピーカ
51 LCD
55 マーカ部
70 無線モジュール
90A、90B、90C 海賊船
91 船
92 海賊
93 弓
94 矢
96 指示画像
98 円形画像
99 ロックオン枠
【特許請求の範囲】
【請求項1】
据置型表示装置に画像を表示させる情報処理装置のコンピュータによって実行される情報処理プログラムであって、前記コンピュータを、
所定のオブジェクトが配置された仮想空間内に第1の仮想カメラを設定する第1カメラ設定手段と、
前記所定のオブジェクトが配置された仮想空間内に第2の仮想カメラを設定する第2カメラ設定手段と、
前記第1の仮想カメラで前記所定のオブジェクトを含む前記仮想空間を撮像した第1画像を前記据置型表示装置に表示させる第1表示制御手段と、
前記第2の仮想カメラで前記仮想空間を撮像した第2画像をユーザによって把持される可搬型表示装置に表示させる第2表示制御手段と、
ユーザが前記据置型表示装置を視認している状態か否かを判定する判定手段として機能させ、
前記第1表示制御手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも前記第1画像を視認困難な画像にする、情報処理プログラム。
【請求項2】
前記第1表示制御手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、少なくとも前記所定のオブジェクトを縮小表示する処理、前記第1画像のうちの前記所定のオブジェクトを含む一部あるいは全部の領域に所定の画像が表示されるようにする処理、少なくとも前記所定のオブジェクトをぼかす処理、少なくとも前記所定のオブジェクトを透明あるいは半透明にする処理、および、少なくとも前記所定のオブジェクトをモザイク表示する処理のうちの少なくとも何れかを行うことにより、前記所定のオブジェクトを視認困難にする、請求項1に記載の情報処理プログラム。
【請求項3】
前記可搬型表示装置の姿勢を取得する姿勢取得手段として、前記コンピュータをさらに機能させ、
前記判定手段は、前記可搬型表示装置の姿勢が第1の姿勢である場合、ユーザが前記据置型表示装置を視認していると判定し、前記可搬型表示装置の姿勢が第2の姿勢である場合、ユーザが前記据置型表示装置を視認していないと判定する、請求項1または2に記載の情報処理プログラム。
【請求項4】
前記第1表示制御手段は、前記可搬型表示装置の姿勢が前記第2の姿勢である場合、前記第1の仮想カメラの位置および画角のうちの少なくとも一方を変更することにより、少なくとも前記所定のオブジェクトを縮小表示する、請求項3に記載の情報処理プログラム。
【請求項5】
前記第2表示制御手段は、前記可搬型表示装置の姿勢に応じて、前記第2の仮想カメラの姿勢を制御する、請求項3または4に記載の情報処理プログラム。
【請求項6】
前記第2表示制御手段は、前記可搬型表示装置の姿勢が所定の基準姿勢の場合、前記第2の仮想カメラの撮像方向を前記第1の仮想カメラの撮像方向と同じに設定し、当該基準姿勢からの前記可搬型表示装置の姿勢の変化に応じて、前記第2の仮想カメラの姿勢を変化させる、請求項5に記載の情報処理プログラム。
【請求項7】
前記第1の仮想カメラの撮像方向は、前記可搬型表示装置の姿勢に依存しない所定の方向である、請求項3から6のいずれかに記載の情報処理プログラム。
【請求項8】
前記第1表示制御手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、前記第1の仮想カメラの位置および画角のうちの少なくとも一方を変更することにより、少なくとも前記所定のオブジェクトを縮小表示する、請求項1に記載の情報処理プログラム。
【請求項9】
前記第1画像には第2のオブジェクトが含まれ、前記第2画像には当該第2のオブジェクトが含まれない、請求項1から8の何れかに記載の情報処理プログラム。
【請求項10】
前記可搬型表示装置に表示される前記所定のオブジェクトは、前記判定手段によってユーザが前記据置型表示装置を視認していると判定された場合に前記据置型表示装置に表示される前記所定のオブジェクトよりも視認困難である、請求項1から9の何れかに記載の情報処理プログラム。
【請求項11】
前記第2の仮想カメラの位置は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合の前記第1の仮想カメラの位置と略同じである、請求項1から10の何れかに記載の情報処理プログラム。
【請求項12】
前記第2の仮想カメラの画角は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合の前記第1の仮想カメラの画角と略同じである、請求項1から11の何れかに記載の情報処理プログラム。
【請求項13】
前記第2の仮想カメラの撮像範囲は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合の前記第1の仮想カメラの撮像範囲と略同じである、請求項1から12の何れかに記載の情報処理プログラム。
【請求項14】
前記第2の姿勢は、前記可搬型表示装置の画面が重力方向と略平行となる姿勢である、請求項3から7の何れかに記載の情報処理プログラム。
【請求項15】
前記第1の姿勢は、前記可搬型表示装置の画面が重力方向と略垂直となる姿勢である、請求項3から7または14の何れかに記載の情報処理プログラム。
【請求項16】
前記判定手段による判定結果に応じて、前記据置型表示装置から出力される音声の音量を調整する音量調整手段として、前記コンピュータをさらに機能させる、請求項1から15の何れかに記載の情報処理プログラム。
【請求項17】
前記音量調整手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも前記据置型表示装置から出力される音声の音量を小さくする、請求項16に記載の情報処理プログラム。
【請求項18】
前記可搬型表示装置は、ジャイロセンサおよび加速度センサの少なくとも一方を含み、
前記姿勢取得手段は、前記ジャイロセンサおよび前記加速度センサの少なくとも一方から出力されたデータに基づいて、前記可搬型表示装置の姿勢を算出する、請求項3から7、14、15の何れかに記載の情報処理プログラム。
【請求項19】
前記第2表示制御手段は、前記第2画像を示す画像データを前記可搬型表示装置に出力し、
前記可搬型表示手段は、
前記情報処理装置から出力された画像データを取得する画像データ取得手段と、
前記画像データが示す前記第2画像を表示する表示手段とを備える、請求項1から18の何れかに記載の情報処理プログラム。
【請求項20】
前記第2画像を示す画像データを圧縮して圧縮画像データを生成する画像圧縮手段として、前記コンピュータをさらに機能させ、
前記第2表示制御手段は、前記圧縮画像データを前記可搬型表示装置に出力し、
前記画像データ取得手段は、前記情報処理装置から出力された圧縮画像データを取得し、
前記可搬型表示装置は、前記圧縮画像データを伸張する画像伸張手段をさらに備え、
前記表示手段は、前記画像伸張手段によって伸張された前記第2画像を表示する、請求項19に記載の情報処理プログラム。
【請求項21】
据置型表示装置に画像を表示させる情報処理装置であって、
所定のオブジェクトが配置された仮想空間内に第1の仮想カメラを設定する第1カメラ設定手段と、
前記所定のオブジェクトが配置された仮想空間内に第2の仮想カメラを設定する第2カメラ設定手段と、
前記第1の仮想カメラで前記所定のオブジェクトを含む前記仮想空間を撮像した第1画像を前記据置型表示装置に表示させる第1表示制御手段と、
前記第2の仮想カメラで前記仮想空間を撮像した第2画像をユーザによって把持される可搬型表示装置に表示させる第2表示制御手段と、
ユーザが前記据置型表示装置を視認している状態か否かを判定する判定手段とを備え、
前記第1表示制御手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも前記第1画像を視認困難な画像にする、情報処理装置。
【請求項22】
据置型表示装置に画像を表示させる情報処理システムであって、
可搬型表示装置と、
所定のオブジェクトが配置された仮想空間内に第1の仮想カメラを設定する第1カメラ設定手段と、
前記所定のオブジェクトが配置された仮想空間内に第2の仮想カメラを設定する第2カメラ設定手段と、
前記第1の仮想カメラで前記所定のオブジェクトを含む前記仮想空間を撮像した第1画像を前記据置型表示装置に表示させる第1表示制御手段と、
前記第2の仮想カメラで前記仮想空間を撮像した第2画像を前記可搬型表示装置に表示させる第2表示制御手段と、
ユーザが前記据置型表示装置を視認している状態か否かを判定する判定手段とを備え、
前記第1表示制御手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも前記第1画像を視認困難な画像にする、情報処理システム。
【請求項23】
据置型表示装置に画像を表示させる情報処理装置において行われる情報処理方法であって、
所定のオブジェクトが配置された仮想空間内に第1の仮想カメラを設定する第1カメラ設定ステップと、
前記所定のオブジェクトが配置された仮想空間内に第2の仮想カメラを設定する第2カメラ設定ステップと、
前記第1の仮想カメラで前記所定のオブジェクトを含む前記仮想空間を撮像した第1画像を前記据置型表示装置に表示させる第1表示制御ステップと、
前記第2の仮想カメラで前記仮想空間を撮像した第2画像をユーザによって把持される可搬型表示装置に表示させる第2表示制御ステップと、
ユーザが前記据置型表示装置を視認している状態か否かを判定する判定ステップとを実行し、
前記第1表示制御ステップでは、前記判定ステップでユーザが前記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも前記第1画像を視認困難な画像にする、情報処理方法。
【請求項1】
据置型表示装置に画像を表示させる情報処理装置のコンピュータによって実行される情報処理プログラムであって、前記コンピュータを、
所定のオブジェクトが配置された仮想空間内に第1の仮想カメラを設定する第1カメラ設定手段と、
前記所定のオブジェクトが配置された仮想空間内に第2の仮想カメラを設定する第2カメラ設定手段と、
前記第1の仮想カメラで前記所定のオブジェクトを含む前記仮想空間を撮像した第1画像を前記据置型表示装置に表示させる第1表示制御手段と、
前記第2の仮想カメラで前記仮想空間を撮像した第2画像をユーザによって把持される可搬型表示装置に表示させる第2表示制御手段と、
ユーザが前記据置型表示装置を視認している状態か否かを判定する判定手段として機能させ、
前記第1表示制御手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも前記第1画像を視認困難な画像にする、情報処理プログラム。
【請求項2】
前記第1表示制御手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、少なくとも前記所定のオブジェクトを縮小表示する処理、前記第1画像のうちの前記所定のオブジェクトを含む一部あるいは全部の領域に所定の画像が表示されるようにする処理、少なくとも前記所定のオブジェクトをぼかす処理、少なくとも前記所定のオブジェクトを透明あるいは半透明にする処理、および、少なくとも前記所定のオブジェクトをモザイク表示する処理のうちの少なくとも何れかを行うことにより、前記所定のオブジェクトを視認困難にする、請求項1に記載の情報処理プログラム。
【請求項3】
前記可搬型表示装置の姿勢を取得する姿勢取得手段として、前記コンピュータをさらに機能させ、
前記判定手段は、前記可搬型表示装置の姿勢が第1の姿勢である場合、ユーザが前記据置型表示装置を視認していると判定し、前記可搬型表示装置の姿勢が第2の姿勢である場合、ユーザが前記据置型表示装置を視認していないと判定する、請求項1または2に記載の情報処理プログラム。
【請求項4】
前記第1表示制御手段は、前記可搬型表示装置の姿勢が前記第2の姿勢である場合、前記第1の仮想カメラの位置および画角のうちの少なくとも一方を変更することにより、少なくとも前記所定のオブジェクトを縮小表示する、請求項3に記載の情報処理プログラム。
【請求項5】
前記第2表示制御手段は、前記可搬型表示装置の姿勢に応じて、前記第2の仮想カメラの姿勢を制御する、請求項3または4に記載の情報処理プログラム。
【請求項6】
前記第2表示制御手段は、前記可搬型表示装置の姿勢が所定の基準姿勢の場合、前記第2の仮想カメラの撮像方向を前記第1の仮想カメラの撮像方向と同じに設定し、当該基準姿勢からの前記可搬型表示装置の姿勢の変化に応じて、前記第2の仮想カメラの姿勢を変化させる、請求項5に記載の情報処理プログラム。
【請求項7】
前記第1の仮想カメラの撮像方向は、前記可搬型表示装置の姿勢に依存しない所定の方向である、請求項3から6のいずれかに記載の情報処理プログラム。
【請求項8】
前記第1表示制御手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、前記第1の仮想カメラの位置および画角のうちの少なくとも一方を変更することにより、少なくとも前記所定のオブジェクトを縮小表示する、請求項1に記載の情報処理プログラム。
【請求項9】
前記第1画像には第2のオブジェクトが含まれ、前記第2画像には当該第2のオブジェクトが含まれない、請求項1から8の何れかに記載の情報処理プログラム。
【請求項10】
前記可搬型表示装置に表示される前記所定のオブジェクトは、前記判定手段によってユーザが前記据置型表示装置を視認していると判定された場合に前記据置型表示装置に表示される前記所定のオブジェクトよりも視認困難である、請求項1から9の何れかに記載の情報処理プログラム。
【請求項11】
前記第2の仮想カメラの位置は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合の前記第1の仮想カメラの位置と略同じである、請求項1から10の何れかに記載の情報処理プログラム。
【請求項12】
前記第2の仮想カメラの画角は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合の前記第1の仮想カメラの画角と略同じである、請求項1から11の何れかに記載の情報処理プログラム。
【請求項13】
前記第2の仮想カメラの撮像範囲は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合の前記第1の仮想カメラの撮像範囲と略同じである、請求項1から12の何れかに記載の情報処理プログラム。
【請求項14】
前記第2の姿勢は、前記可搬型表示装置の画面が重力方向と略平行となる姿勢である、請求項3から7の何れかに記載の情報処理プログラム。
【請求項15】
前記第1の姿勢は、前記可搬型表示装置の画面が重力方向と略垂直となる姿勢である、請求項3から7または14の何れかに記載の情報処理プログラム。
【請求項16】
前記判定手段による判定結果に応じて、前記据置型表示装置から出力される音声の音量を調整する音量調整手段として、前記コンピュータをさらに機能させる、請求項1から15の何れかに記載の情報処理プログラム。
【請求項17】
前記音量調整手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも前記据置型表示装置から出力される音声の音量を小さくする、請求項16に記載の情報処理プログラム。
【請求項18】
前記可搬型表示装置は、ジャイロセンサおよび加速度センサの少なくとも一方を含み、
前記姿勢取得手段は、前記ジャイロセンサおよび前記加速度センサの少なくとも一方から出力されたデータに基づいて、前記可搬型表示装置の姿勢を算出する、請求項3から7、14、15の何れかに記載の情報処理プログラム。
【請求項19】
前記第2表示制御手段は、前記第2画像を示す画像データを前記可搬型表示装置に出力し、
前記可搬型表示手段は、
前記情報処理装置から出力された画像データを取得する画像データ取得手段と、
前記画像データが示す前記第2画像を表示する表示手段とを備える、請求項1から18の何れかに記載の情報処理プログラム。
【請求項20】
前記第2画像を示す画像データを圧縮して圧縮画像データを生成する画像圧縮手段として、前記コンピュータをさらに機能させ、
前記第2表示制御手段は、前記圧縮画像データを前記可搬型表示装置に出力し、
前記画像データ取得手段は、前記情報処理装置から出力された圧縮画像データを取得し、
前記可搬型表示装置は、前記圧縮画像データを伸張する画像伸張手段をさらに備え、
前記表示手段は、前記画像伸張手段によって伸張された前記第2画像を表示する、請求項19に記載の情報処理プログラム。
【請求項21】
据置型表示装置に画像を表示させる情報処理装置であって、
所定のオブジェクトが配置された仮想空間内に第1の仮想カメラを設定する第1カメラ設定手段と、
前記所定のオブジェクトが配置された仮想空間内に第2の仮想カメラを設定する第2カメラ設定手段と、
前記第1の仮想カメラで前記所定のオブジェクトを含む前記仮想空間を撮像した第1画像を前記据置型表示装置に表示させる第1表示制御手段と、
前記第2の仮想カメラで前記仮想空間を撮像した第2画像をユーザによって把持される可搬型表示装置に表示させる第2表示制御手段と、
ユーザが前記据置型表示装置を視認している状態か否かを判定する判定手段とを備え、
前記第1表示制御手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも前記第1画像を視認困難な画像にする、情報処理装置。
【請求項22】
据置型表示装置に画像を表示させる情報処理システムであって、
可搬型表示装置と、
所定のオブジェクトが配置された仮想空間内に第1の仮想カメラを設定する第1カメラ設定手段と、
前記所定のオブジェクトが配置された仮想空間内に第2の仮想カメラを設定する第2カメラ設定手段と、
前記第1の仮想カメラで前記所定のオブジェクトを含む前記仮想空間を撮像した第1画像を前記据置型表示装置に表示させる第1表示制御手段と、
前記第2の仮想カメラで前記仮想空間を撮像した第2画像を前記可搬型表示装置に表示させる第2表示制御手段と、
ユーザが前記据置型表示装置を視認している状態か否かを判定する判定手段とを備え、
前記第1表示制御手段は、前記判定手段によってユーザが前記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも前記第1画像を視認困難な画像にする、情報処理システム。
【請求項23】
据置型表示装置に画像を表示させる情報処理装置において行われる情報処理方法であって、
所定のオブジェクトが配置された仮想空間内に第1の仮想カメラを設定する第1カメラ設定ステップと、
前記所定のオブジェクトが配置された仮想空間内に第2の仮想カメラを設定する第2カメラ設定ステップと、
前記第1の仮想カメラで前記所定のオブジェクトを含む前記仮想空間を撮像した第1画像を前記据置型表示装置に表示させる第1表示制御ステップと、
前記第2の仮想カメラで前記仮想空間を撮像した第2画像をユーザによって把持される可搬型表示装置に表示させる第2表示制御ステップと、
ユーザが前記据置型表示装置を視認している状態か否かを判定する判定ステップとを実行し、
前記第1表示制御ステップでは、前記判定ステップでユーザが前記据置型表示装置を視認していないと判定された場合、ユーザが視認していると判定された場合よりも前記第1画像を視認困難な画像にする、情報処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12A】
【図12B】
【図13A】
【図13B】
【図14】
【図15A】
【図15B】
【図16A】
【図16B】
【図17】
【図18】
【図19A】
【図19B】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12A】
【図12B】
【図13A】
【図13B】
【図14】
【図15A】
【図15B】
【図16A】
【図16B】
【図17】
【図18】
【図19A】
【図19B】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【公開番号】特開2012−249867(P2012−249867A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2011−125648(P2011−125648)
【出願日】平成23年6月3日(2011.6.3)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願日】平成23年6月3日(2011.6.3)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]