説明

ゲームシステム、ゲーム処理方法、ゲーム装置、およびゲームプログラム

【課題】自由な視点あるいは視線でゲーム空間を見たゲーム画像を保存する。
【解決手段】ゲーム装置3は、コントローラ5に対する操作を表す操作データに基づいてゲーム処理を実行する。ゲーム装置3は、ゲーム空間に設定される第1仮想カメラから見たゲーム空間を表す第1ゲーム画像を生成し、テレビ2に表示する。また、第1仮想カメラとは異なる第2仮想カメラは、端末装置7に対する操作データに基づいてゲーム空間に設定される。ゲーム装置3は、第2仮想カメラから見たゲーム空間を表す第2ゲーム画像を生成し、端末装置7に表示する。端末装置7に対して所定の操作が行われたことに応じて、ゲーム装置3は、第2ゲーム画像に関する画像情報を所定の記憶装置に記憶する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプレイ中におけるゲーム空間の画像を保存することが可能なゲームシステム、ゲーム処理方法、ゲーム装置、およびゲームプログラムに関する。
【背景技術】
【0002】
従来、ゲームのプレイ中におけるゲーム空間の画像を保存し、ゲームのプレイ後等に当該画像を視認することを可能にした技術がある。例えば、特許文献1においては、ゲーム装置は、ゲームのプレイ中において、ゲームオブジェクトや仮想カメラの位置等を表す経過情報をユーザの指示に従って保存する。そして、プレイ後においては当該経過情報に基づいてゲーム画像が復元されることで、プレイヤや他の人はゲーム画像を見ることができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第4215891号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来においては、ゲーム装置は、ゲームのプレイ中において表示装置に表示されたゲーム画像を保存するのみであり、保存されるゲーム画像はゲーム中にプレイヤが見たゲーム画像であった。従来においては、表示装置に表示された画像とは異なる視点からゲーム空間を見たゲーム画像は保存されず、このようなゲーム画像をプレイ後に見ることはできなかった。例えば、いわゆる一人称視点のゲーム画像が表示されるゲームにおいては、ゲーム装置は、プレイヤキャラクタの視点で見たゲーム画像を保存するので、他の視点からプレイヤキャラクタを見た画像をプレイ後に見ることはできなかった。このように、従来においては、保存可能なゲーム画像の自由度は低く、自由な視点(あるいは視線)からゲーム空間を見たゲーム画像を保存して後で見ることはできなかった。
【0005】
それ故、本発明の目的は、より自由な視点あるいは視線でゲーム空間を見たゲーム画像を保存することが可能なゲームシステム、ゲーム処理方法、ゲーム装置、およびゲームプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の(1)〜(14)の構成を採用した。
【0007】
(1)
本発明の一例は、ゲーム装置と、第1操作装置と、第2操作装置とを含むゲームシステムである。
ゲーム装置は、操作データ取得部と、ゲーム処理部と、第1カメラ設定部と、第1画像生成部と、第1画像出力部と、第2カメラ設定部と、第2画像生成部と、第2画像出力部と、画像情報記憶部とを備える。操作データ取得部は、第1操作装置からの第1操作データおよび第2操作装置からの第2操作データを取得する。ゲーム処理部は、第1操作データに基づいてゲーム処理を実行する。第1カメラ設定部は、仮想のゲーム空間に第1仮想カメラを設定する。第1画像生成部は、第1仮想カメラから見たゲーム空間を表す第1ゲーム画像を生成する。第1画像出力部は、第2操作装置とは別体の所定の表示装置に第1ゲーム画像を出力する。第2カメラ設定部は、ゲーム空間に配置され、第1仮想カメラとは異なる第2仮想カメラを第2操作データに基づいて設定する。第2画像生成部は、第2仮想カメラから見たゲーム空間を表す第2ゲーム画像を生成する。第2画像出力部は、第2ゲーム画像を第2操作装置に出力する。画像情報記憶部は、第2操作装置に対して所定の操作が行われたことに応じて、第2ゲーム画像に関する画像情報を所定の記憶装置に記憶する。
第2操作装置は、画像受信部と、表示部とを備える。画像受信部は、第2ゲーム画像を受信する。表示部は、第2ゲーム画像を表示する。
【0008】
上記「ゲーム装置」は、上記の各部における処理を実行する装置であればどのようなものであってもよい。上記ゲーム装置は、ゲーム専用の情報処理装置であってもよいし、一般的なパーソナルコンピュータのような多用途の情報処理装置であってもよい。
上記「第1操作装置」は、プレイヤが操作可能な任意の操作装置を含む概念である。「第1操作装置」は、後述する実施形態におけるコントローラの他、携帯型のゲーム装置等であってもよいし、第2操作装置と同じものであってもよい。また、「第1操作装置」が表示部を有する場合、当該表示部が上記「所定の表示装置」として用いられてもよい。
上記「第2操作装置」は、表示部を備え、プレイヤが操作可能な任意の操作装置を含む概念である。「第2操作装置」は、後述する実施形態における端末装置の他、携帯型のゲーム装置等であってもよい。
上記「画像情報」は、それに基づいて端末用画像を生成することが可能情報であればどのような情報であってもよい。上記「画像情報」は、下記(2)の構成に示すように、画像自体(画像データ)であってもよいし、下記(3)の構成に示すように、その画像情報とゲームプログラムとを用いることによって画像を生成することが可能な情報であってもよい。
【0009】
上記(1)の構成によれば、第1操作装置を用いて行われるゲームのゲーム空間に、第2操作装置を用いて制御される第2仮想カメラが設定される。そのため、第2操作装置を用いるプレイヤ(「第2プレイヤ」と記載する。)は、第2仮想カメラを操作することで所望の視点および視線方向から上記ゲーム空間を見た画像を第2操作装置の表示部に表示することができ、さらに、所定の操作によって当該画像を保存することができる。したがって、第2プレイヤは、所定の表示装置に表示される、第1操作装置を用いるプレイヤ(「第1プレイヤ」と記載する。)のためのゲーム画像の視点(または視線)に限らず、より自由な視点からゲーム空間内を撮影し、ゲーム画像を保存することができる。さらに、上記(1)の構成によれば、保存される画像は第2操作装置の表示部に表示されるので、第2プレイヤは、保存される画像を手元の第2操作装置で容易に確認することができ、撮影(保存)操作をより容易に行うことができる。
【0010】
(2)
画像情報記憶部は、画像情報として第2ゲーム画像の画像データを記憶してもよい。
【0011】
上記(2)の構成によれば、画像情報として画像データ自体が記憶されるので、ゲーム処理を実行する機能を有しない情報処理装置においても画像を表示することが可能となる。
【0012】
(3)
画像情報記憶部は、画像情報として、その情報とゲーム処理を実行するためのゲームプログラムとを用いることによって第2ゲーム画像を生成することが可能な情報を記憶してもよい。
【0013】
上記「第2ゲーム画像を生成することが可能な情報」は、例えば、第2ゲーム画像に含まれる各オブジェクトの位置および姿勢や、仮想カメラの位置および姿勢等のゲームデータであってもよい。
【0014】
上記(3)の構成によれば、画像データを記憶する場合に比べて、記憶するデータ量を低減することができる。
【0015】
(4)
画像情報記憶部は、所定の操作が行われたことに応じて、動画を構成する複数の第2ゲーム画像に関する画像情報を記憶してもよい。
【0016】
上記(4)の構成によれば、ゲーム画像の動画を記憶することができる。
【0017】
(5)
ゲーム装置は、第2操作データに基づいてゲーム空間を移動する第2オブジェクトを制御する第2オブジェクト制御部をさらに備えていてもよい。このとき、第2カメラ設定部は、第2オブジェクトの位置に基づいて第2仮想カメラを設定する。
【0018】
上記(5)の構成によれば、第2オブジェクトの移動に応じて第2仮想カメラは移動するので、第2プレイヤは、第2オブジェクトの動きを確認することによって第2仮想カメラの移動を確認することができる。これによって、第2プレイヤはゲーム画像の撮影(保存)操作をより行いやすくなる。
【0019】
(6)
第2オブジェクト制御部は、ゲーム処理によって動作が制御される所定のオブジェクトと、第2オブジェクトとが接触したか否かとは独立して第2オブジェクトを制御してもよい。
【0020】
上記「所定のオブジェクト」は、第1操作データに基づいて動作が制御されるオブジェクト(例えばプレイヤキャラクタ)であってもよいし、ゲーム処理によって自動的に動作が制御されるオブジェクト(例えば敵キャラクタ)であってもよい。
【0021】
上記(6)の構成によれば、第2オブジェクトは、上記ゲーム処理によって進行される第1プレイヤのゲームに影響を与えないので、第1プレイヤは第2オブジェクトにゲームの邪魔をされることなく、快適にゲームを行うことができる。また、第2オブジェクトも第1プレイヤのゲームの影響を受けることなくゲーム空間を自由に移動することができるので、第2プレイヤもゲーム画像の撮影(保存)がより行いやすくなる。
【0022】
(7)
第2オブジェクト制御部は、ゲーム処理によって動作が制御される所定のオブジェクトと第2オブジェクトとが接触したか否かに応じて第2オブジェクトを制御してもよい。
【0023】
上記(7)の構成によれば、第2オブジェクトは所定のオブジェクトの影響を受けるので、第2オブジェクトを操作して撮影を行うゲームのゲーム性を向上することができ、興趣性の高いゲームを提供することができる。また、上記ゲーム処理によって進行される第1プレイヤのゲームにおいても、第2オブジェクトの動作を考慮してゲームを進める必要があるので、戦略性や興趣性の高いゲームを実現することができる。
【0024】
(8)
第1画像生成部は、第1仮想カメラの視野範囲に第2オブジェクトが含まれる場合、当該第2オブジェクトを描画せずに第1ゲーム画像を生成してもよい。
【0025】
上記(8)の構成によれば、第2オブジェクトは所定の表示装置には表示されないので、所定の表示装置を見てゲームを行う第1プレイヤは、第2オブジェクトを気にすることなくゲームを行うことができる。すなわち、第2オブジェクトは第1プレイヤのゲームに表示上の影響を与えないので、第1プレイヤは第2オブジェクトに邪魔されることなくゲームを行うことができる。
【0026】
(9)
第1画像生成部は、第1仮想カメラの視野範囲に第2オブジェクトが含まれる場合、当該第2オブジェクトの画像を含む第1ゲーム画像を生成してもよい。
【0027】
上記(9)の構成によれば、第2オブジェクトが所定の表示装置に表示されるので、所定の表示装置を見てゲームを行う第1プレイヤは、第2オブジェクトを意識してゲームを行うことができる。これによれば、第1プレイヤは、ゲーム中において第2仮想カメラの位置を把握することができるので、例えば第2オブジェクトに所望の角度からプレイヤキャラクタを撮影させる等、第2オブジェクトによる撮影を考慮してゲームを行うことができる。したがって、第1プレイヤと第2プレイヤとが協力して所望のゲーム画像を撮影(保存)することも可能となり、より興趣性の高いゲームを提供することができる。なお、上記(6)の構成と(9)の構成とを組み合わせる場合には、各プレイヤのゲームが互いに影響を与えない一方、ゲーム画像の撮影に関しては各プレイヤが協力することができるという、従来にはない興趣性の高いゲームを提供することができる
【0028】
(10)
第2カメラ設定部は、表示部の画面が所定の基準よりも水平に近い姿勢となった場合に、第2オブジェクトを視野範囲に含むように第2仮想カメラを設定してもよい。さらに、第2カメラ設定部は、表示部の画面が所定の基準よりも鉛直に近い姿勢となった場合に、カメラキャラクタから見た視点となるように第2仮想カメラを設定してもよい。
【0029】
上記(10)の構成によれば、第2操作装置の画面が水平に近い姿勢となる場合には、第2オブジェクトの移動操作に適したゲーム画像が表示部に表示され、第2操作装置の画面が鉛直に近い姿勢となる場合には、ゲーム画像を撮影する操作に適したゲーム画像が表示部に表示される。これによれば、第2プレイヤは、第2オブジェクト(第2仮想カメラ)を移動させる場合には第2操作装置の画面を水平にすることで腕が疲れずに操作を行うことができる。また、第2プレイヤは、ゲーム画像を撮影する操作を行う場合には第2操作装置の画面を鉛直にするので、実際のカメラのようにして第2操作装置を操作することができる。したがって、上記(10)の構成によれば、第2操作装置を用いた移動操作と撮影操作との操作性を向上することができるとともに、2種類の操作の切り替えを容易に行うことができる。
【0030】
(11)
ゲーム処理部は、第1操作データに基づいて所定の第1オブジェクトの動作を制御するゲーム処理を実行してもよい。このとき、第2画像生成部は、第2仮想カメラの視野範囲に第1オブジェクトが含まれる場合、第1オブジェクトの画像を含む第2ゲーム画像を生成する。
【0031】
上記(11)の構成によれば、第1プレイヤの操作対象である第1オブジェクトを含むゲーム画像を、第2プレイヤが撮影することができる。例えばいわゆる一人称視点のゲーム画像(第1オブジェクトから見たゲーム画像)が所定の表示装置に表示される場合であっても、上記(11)の構成によれば、第1オブジェクトを他の位置から見たゲーム画像を撮影することができる。
【0032】
(12)
ゲーム装置は、第2操作装置の姿勢を算出する姿勢算出部をさらに備えていてもよい。このとき、第2カメラ設定部は、第2操作装置の姿勢に基づいて第2仮想カメラの姿勢を設定する。
【0033】
上記(12)の構成によれば、第2プレイヤは、第2操作装置の姿勢に応じて第2仮想カメラの向きを変化させることで撮影方向を変化させることができ、直感的かつ容易な操作で撮影方向を変更することができる。
【0034】
(13)
第2操作装置は、方向入力が可能な入力デバイスを有し、当該方向入力を表す第2操作データを出力してもよい。このとき、第2カメラ設定部は、第2操作データに基づいて仮想カメラの位置を設定する。
【0035】
上記(13)の構成によれば、第2プレイヤは、入力デバイスを用いて第2仮想カメラを容易に移動することができる。
【0036】
(14)
本発明の他の一例は、ゲーム装置と、第1操作装置と、第2操作装置とを含むゲームシステムである。ゲームシステムは、ゲーム処理部と、第1カメラ設定部と、第1画像生成部と、第2カメラ設定部と、第2画像生成部と、画像情報記憶部とを備える。ゲーム処理部は、第1操作装置に対する操作を表す第1操作データに基づいてゲーム処理を実行する。第1カメラ設定部は、ゲーム空間に第1仮想カメラを設定する。第1画像生成部は、第1仮想カメラから見たゲーム空間を表すゲーム画像であって、第2操作装置とは別体の所定の表示装置に表示すべきゲーム画像である第1ゲーム画像を生成する。第2カメラ設定部は、ゲーム空間に配置され、第1仮想カメラとは異なる第2仮想カメラを、第2操作装置に対する操作を表す第2操作データに基づいて設定する。第2画像生成部は、第2仮想カメラから見たゲーム空間を表すゲーム画像であって、第2操作装置が備える表示部に表示すべきゲーム画像である第2ゲーム画像を生成する。画像情報記憶部は、第2操作装置に対して所定の操作が行われたことに応じて、第2ゲーム画像に関する画像情報を所定の記憶装置に記憶する。
【0037】
上記(14)の構成によれば、上記(1)の構成と同様、第1操作装置を用いて行われるゲームのゲーム空間に、第2操作装置を用いて制御される第2仮想カメラが設定される。そのため、第2操作装置を用いる第2プレイヤは、第2仮想カメラを操作することで所望の視点および視線方向から上記ゲーム空間を見た画像を第2操作装置の表示部に表示することができ、さらに、所定の操作によって当該画像を保存することができる。したがって、上記(14)の構成によれば、上記(1)の構成と同様、第2プレイヤは、より自由な視点からゲーム空間内を撮影し、ゲーム画像を保存することができる。また、第2プレイヤは、保存される画像を手元の第2操作装置で容易に確認することができ、撮影(保存)操作をより容易に行うことができる。
【0038】
なお、本発明の別の一例は、上記(1)〜(14)のゲームシステムに含まれる上記ゲーム装置であってもよいし、上記ゲーム装置における各部(操作データ取得部および各画像出力部が含まれなくてもよい)と同等の手段としてゲーム装置のコンピュータを機能させるゲームプログラムであってもよい。さらに、本発明の別の一例は、上記(1)〜(14)のゲームシステムまたはゲーム装置において行われるゲーム処理方法の形態であってもよい。
【発明の効果】
【0039】
本発明によれば、第1操作装置を用いて行われるゲームのゲーム空間に第2仮想カメラを設定し、第2操作装置に対する操作によって第2仮想カメラを制御し、第2仮想カメラによって生成されるゲーム画像を所定の操作に応じて保存する。これによって、第2操作装置を用いるプレイヤは、所定の表示装置に表示されるゲーム画像の視点に限らず、より自由な視点からゲーム空間内を撮影し、ゲーム画像を保存することができる。
【図面の簡単な説明】
【0040】
【図1】ゲームシステム1の外観図
【図2】ゲーム装置3の内部構成を示すブロック図
【図3】コントローラ5の外観構成を示す斜視図
【図4】コントローラ5の外観構成を示す斜視図
【図5】コントローラ5の内部構造を示す図
【図6】コントローラ5の内部構造を示す図
【図7】コントローラ5の構成を示すブロック図
【図8】端末装置7の外観構成を示す図
【図9】端末装置7の外観構成を示す図
【図10】端末装置7の背面図
【図11】ユーザが端末装置7を横向きで把持した様子を示す図
【図12】端末装置7の内部構成を示すブロック図
【図13】テレビ2に表示されるゲーム画像(テレビ用画像)の一例を示す図
【図14】端末装置7に表示されるゲーム画像(端末用画像)の一例を示す図
【図15】ゲーム処理において用いられる各種データを示す図
【図16】ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャート
【図17】図16に示すゲーム制御処理(ステップS3)の詳細な流れを示すフローチャート
【図18】端末装置7が水平状態である場合に表示される端末用画像の一例を示す図
【図19】端末装置7の姿勢と、端末用仮想カメラの姿勢との関係を示す図
【図20】図16に示す画像保存処理(ステップS6)の詳細な流れを示すフローチャート
【発明を実施するための形態】
【0041】
[1.ゲームシステムの全体構成]
以下、図面を参照して、本発明の一実施形態に係るゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。図1において、ゲームシステム1は、テレビジョン受像器等に代表される据置型のディスプレイ装置(以下、「テレビ」と記載する)2、据置型のゲーム装置3、光ディスク4、コントローラ5、マーカ装置6、および、端末装置7を含む。ゲームシステム1は、コントローラ5および/または端末装置7を用いたゲーム操作に基づいてゲーム装置3においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ2および/または端末装置7に表示するものである。
【0042】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるための情報処理プログラム(典型的にはゲームプログラム)が記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。
【0043】
ゲーム装置3には、テレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ2はスピーカ2a(図2)を有しており、スピーカ2aは、上記ゲーム処理の結果得られるゲーム音声を出力する。なお、他の実施形態においては、ゲーム装置3と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置3とテレビ2との通信は無線通信であってもよい。
【0044】
テレビ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を設置する位置および向きは任意である。
【0045】
コントローラ5は、自機に対して行われた操作の内容を表す操作データをゲーム装置3に与えるものである。本実施形態では、コントローラ5は、メインコントローラ8とサブコントローラ9とを有し、サブコントローラ9がメインコントローラ8に着脱可能に装着される構成である。コントローラ5とゲーム装置3とは無線通信によって通信可能である。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。また、図1では、ゲームシステム1に含まれるコントローラ5は1つとするが、ゲームシステム1は複数のコントローラ5を含んでいてもよい。つまり、ゲーム装置3は複数のコントローラと通信可能であり、所定台数のコントローラを同時に使用することによって複数人でゲームをプレイすることが可能である。コントローラ5の詳細な構成については後述する。
【0046】
端末装置7は、可搬型であり、ユーザが把持可能な程度の大きさである。ユーザは端末装置7を手に持って動かしたり、あるいは、端末装置7を自由な位置に配置したりして使用することが可能である。詳細な構成は後述するが、端末装置7は、表示手段であるLCD(Liquid Crystal Display:液晶表示装置)51、および、入力手段(後述するタッチパネル52やジャイロセンサ74等)を備える。端末装置7とゲーム装置3とは無線(有線であってもよい)によって通信可能である。端末装置7は、ゲーム装置3で生成された画像(例えばゲーム画像)のデータをゲーム装置3から受信し、画像をLCD51に表示する。なお、本実施形態では表示装置としてLCDを用いているが、端末装置7は、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を有していてもよい。また、端末装置7は、自機に対して行われた操作の内容を表す操作データをゲーム装置3に送信する
【0047】
[2.ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の内部構成を示すブロック図である。ゲーム装置3は、CPU(Central Processing Unit)10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
【0048】
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に読み出したデータを書き込む。
【0049】
システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM(Video RAM)11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0050】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。なお、本実施形態においては、ゲーム装置3は、テレビ2に表示する画像(ゲーム画像)と、端末装置7に表示する画像(ゲーム画像)との両方を生成する。以下では、テレビ2に表示される画像を「テレビ用画像」と呼び、端末装置7に表示される画像を「端末用画像」と呼ぶことがある。
【0051】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。なお、本実施形態においては、音声(ゲーム音声)についてもゲーム画像と同様、テレビ2のスピーカから出力する音声と、端末装置7のスピーカから出力する音声との両方が生成される。以下では、テレビ2から出力される音声を「テレビ用音声」と呼び、端末装置7から出力される音声を「端末用音声」と呼ぶことがある。
【0052】
上記のようにゲーム装置3において生成される画像および音声のうちで、テレビ2において出力される画像および音声のデータは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、テレビ2に画像が表示されるとともにスピーカ2aから音が出力される。なお、ゲーム装置3とテレビ2との接続は、どのような方式で行われてもよいが、ゲーム装置3は、テレビ2を制御する制御指令を有線または無線でテレビ2へ送信するようにしてもよい。例えばHDMI(High−Definition Multimedia Interface)規格に則ったHDMIケーブルが用いられてもよい。HDMI規格では、CEC(Consumer Electronics Control)と呼ばれる機能によって、接続相手の機器を制御することが可能である。したがって、HDMIケーブルが用いられる場合のように、ゲーム装置3がテレビ2に対する制御が可能である場合には、ゲーム装置3は、適宜のタイミングでテレビ2の電源をオンにしたり、テレビ2の入力を切り替えたりすることができる。
【0053】
また、ゲーム装置3において生成される画像および音声のうちで、端末装置7において出力される画像および音声のデータは、入出力プロセッサ11a等によって端末装置7へ送信される。入出力プロセッサ11a等による端末装置7へのデータの送信については後述する。
【0054】
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、ネットワーク通信モジュール18、コントローラ通信モジュール19、拡張コネクタ20、メモリカード用コネクタ21、コーデックLSI27に接続される。また、ネットワーク通信モジュール18にはアンテナ22が接続される。コントローラ通信モジュール19にはアンテナ23が接続される。コーデックLSI27は端末通信モジュール28に接続され、端末通信モジュール28にはアンテナ29が接続される。
【0055】
ゲーム装置3は、インターネット等のネットワークに接続して外部の情報処理装置(例えば他のゲーム装置や、各種サーバ等)と通信を行うことが可能である。すなわち、入出力プロセッサ11aは、ネットワーク通信モジュール18およびアンテナ22を介してインターネット等のネットワークに接続可能であり、ネットワークに接続される他の装置と通信を行うことができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、ネットワーク通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、外部情報処理装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22およびネットワーク通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と外部情報処理装置との間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。また、フラッシュメモリ17にはゲームプログラムが記憶されてもよい。
【0056】
また、ゲーム装置3は、コントローラ5からの操作データを受信することが可能である。すなわち、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23およびコントローラ通信モジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0057】
また、ゲーム装置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との間の無線通信を高速に行うようにしてもよいし、他の通信方式を用いてもよい。
【0058】
また、ゲーム装置3は、画像データの他、音声データを端末装置7へ送信する。すなわち、入出力プロセッサ11aは、DSP11cが生成した音声データを、コーデックLSI27を介して端末通信モジュール28へ出力する。コーデックLSI27は、音声データに対しても画像データと同様に圧縮処理を行う。音声データに対する圧縮の方式は、どのような方式であってもよいが、圧縮率が高く、音声の劣化が少ない方式が好ましい。また、他の実施形態においては、音声データは圧縮されずに送信されてもよい。端末通信モジュール28は、圧縮された画像データおよび音声データを、アンテナ29を介して端末装置7へ送信する。
【0059】
さらに、ゲーム装置3は、上記画像データおよび音声データの他に、必要に応じて各種の制御データを端末装置7へ送信する。制御データは、端末装置7が備える構成要素に対する制御指示を表すデータであり、例えばマーカ部(図12に示すマーカ部55)の点灯を制御する指示や、カメラ(図12に示すカメラ56)の撮像を制御する指示等を表す。入出力プロセッサ11aは、CPU10の指示に応じて制御データを端末装置7へ送信する。なお、この制御データに関して、本実施形態ではコーデックLSI27はデータの圧縮処理を行わないが、他の実施形態においては圧縮処理を行うようにしてもよい。なお、ゲーム装置3から端末装置7へ送信される上述のデータは、必要に応じて暗号化がされていてもよいし、されていなくともよい。
【0060】
また、ゲーム装置3は、端末装置7から各種データを受信可能である。詳細は後述するが、本実施形態では、端末装置7は、操作データ、画像データ、および音声データを送信する。端末装置7から送信される各データはアンテナ29を介して端末通信モジュール28によって受信される。ここで、端末装置7からの画像データおよび音声データは、ゲーム装置3から端末装置7への画像データおよび音声データと同様の圧縮処理が施されている。したがって、これら画像データおよび音声データについては、端末通信モジュール28からコーデックLSI27に送られ、コーデックLSI27によって伸張処理が施されて入出力プロセッサ11aに出力される。一方、端末装置7からの操作データに関しては、画像や音声に比べてデータ量が少ないので、圧縮処理が施されていなくともよい。また、必要に応じて暗号化がされていてもよいし、されていなくともよい。したがって、操作データは、端末通信モジュール28で受信された後、コーデックLSI27を介して入出力プロセッサ11aに出力される。入出力プロセッサ11aは、端末装置7から受信したデータを、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0061】
また、ゲーム装置3は、他の機器や外部記憶媒体に接続することが可能である。すなわち、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタである。拡張コネクタ20に対しては、外部記憶媒体のようなメディアを接続したり、他のコントローラ等の周辺機器を接続したり、有線の通信用コネクタを接続することによってネットワーク通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【0062】
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、図示しないACアダプタによって外部の電源からゲーム装置3の各構成要素に対して電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0063】
なお、他の実施形態においては、ゲーム装置3が備える各構成要素のうちでいくつかの構成要素は、ゲーム装置3とは別体の拡張機器として構成されてもよい。このとき、拡張機器は、例えば上記拡張コネクタ20を介してゲーム装置3と接続されるようにしてもよい。具体的には、拡張機器は、例えば上記コーデックLSI27、端末通信モジュール28およびアンテナ29の各構成要素を備えており、拡張コネクタ20に対して着脱可能であってもよい。これによれば、上記各構成要素を備えていないゲーム装置に対して上記拡張機器を接続することによって、当該ゲーム装置を端末装置7と通信可能な構成とすることができる。
【0064】
[3.コントローラ5の構成]
次に、図3〜図7を参照して、コントローラ5について説明する。上述のように、コントローラ5は、メインコントローラ8とサブコントローラ9とによって構成される。図3は、メインコントローラ8の外観構成を示す斜視図である。図4は、メインコントローラ8の外観構成を示す斜視図である。図3は、メインコントローラ8の上側後方から見た斜視図であり、図4は、メインコントローラ8を下側前方から見た斜視図である。
【0065】
図3および図4において、メインコントローラ8は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ユーザは、メインコントローラ8に設けられたボタンを押下すること、および、メインコントローラ8自体を動かしてその位置や姿勢(傾き)を変えることによってゲーム操作を行うことができる。
【0066】
ハウジング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を誤って押下することを防止することができる。
【0067】
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、メインコントローラ8に他の機器(例えば、サブコントローラ9や他のセンサユニット等)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
【0068】
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5(メインコントローラ8)には、他のコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をユーザに通知したり、コントローラ5の電池残量をユーザに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
【0069】
また、メインコントローラ8は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
【0070】
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、メインコントローラ8に内蔵されるスピーカ47(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
【0071】
次に、図5および図6を参照して、メインコントローラ8の内部構造について説明する。図5および図6は、メインコントローラ8の内部構造を示す図である。なお、図5は、メインコントローラ8の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、メインコントローラ8の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
【0072】
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ47等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してメインコントローラ8の中心からずれた位置に配置されている。これによって、メインコントローラ8をZ軸回りに回転させたときのメインコントローラ8の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してメインコントローラ8の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5(メインコントローラ8)がワイヤレスコントローラとして機能する。
【0073】
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、メインコントローラ8の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
【0074】
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ46が設けられている。バイブレータ46は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ46が作動することによってメインコントローラ8に振動が発生する。これによって、メインコントローラ8を把持しているユーザの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ46は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ46がメインコントローラ8の中心よりも端側に配置することによって、バイブレータ46の振動によりメインコントローラ8全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、メインコントローラ8は、マイコン42の基本クロックを生成する水晶振動子、スピーカ47に音声信号を出力するアンプ等を備えている。
【0075】
図7は、サブコントローラ9の外観構成を示す斜視図である。サブコントローラ9は、例えばプラスチック成型によって形成されたハウジング90を有している。ハウジング90は、メインコントローラ8と同様に、全体として大人や子供の片手で把持可能な大きさである。このサブコントローラ9を用いることによっても、プレイヤは、ボタンやスティックを操作することと、コントローラ自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0076】
図7に示すように、ハウジング90の上面(y’軸負方向側の面)の先端側(z’軸正側)には、アナログジョイスティック91が設けられる。また、図示されないが、ハウジング90の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向(図3に示すy軸方向)に並べて、CボタンおよびZボタンが設けられる。アナログジョイスティック91および各ボタン(CボタンおよびZボタン)には、ゲーム装置3が実行するゲームプログラムに応じてそれぞれ適宜の機能が割り当てられる。なお、アナログジョイスティック91および各ボタンを包括的に「操作部92(図8参照)」と呼ぶことがある。
【0077】
また、図7では示されないが、サブコントローラ9は、ハウジング90の内部に加速度センサ(図8に示す加速度センサ93)を有している。本実施形態においては、加速度センサ93は、メインコントローラ8の加速度センサ37と同様のものが用いられる。ただし、加速度センサ93は、加速度センサ37とは異なるものであってもよく、例えば所定の1軸または2軸の加速度を検出するものであってもよい。
【0078】
また、図7に示すように、ハウジング90の後端にはケーブルの一端が接続されている。図7では示されないが、ケーブルの他端にはコネクタ(図8に示すコネクタ94)が接続される。このコネクタはメインコントローラ8のコネクタ33と接続可能である。つまり、コネクタ33とコネクタ94とを接続することによって、メインコントローラ8とサブコントローラ9とが接続される。
【0079】
なお、図3〜図7に示したメインコントローラ8およびサブコントローラ9の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。また、本実施形態では、メインコントローラ8の撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【0080】
図8は、コントローラ5の構成を示すブロック図である。図8に示すように、メインコントローラ8は、操作部32(各操作ボタン32a〜32i)、撮像情報演算部35、通信部36、加速度センサ37、およびジャイロセンサ48を備えている。また、サブコントローラ9は、操作部92および加速度センサ93を備えている。コントローラ5は、自機に対して行われた操作内容を表すデータを操作データとしてゲーム装置3へ送信するものである。なお、以下では、コントローラ5が送信する操作データを「コントローラ操作データ」と呼び、端末装置7が送信する操作データを「端末操作データ」と呼ぶことがある。
【0081】
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を表す操作ボタンデータを通信部36のマイコン42へ出力する。
【0082】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
【0083】
撮像情報演算部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の向きや位置を算出することができる。
【0084】
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【0085】
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。なお、加速度センサ37は、例えば静電容量式のMEMS(Micro Electro Mechanical System)型加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【0086】
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ5を基準に設定されるXYZ座標系(コントローラ座標系)における3次元のベクトルとして表される。
【0087】
加速度センサ37が検出した加速度を表すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や移動に対応して変化するので、ゲーム装置3は取得された加速度データを用いてコントローラ5の向きや移動を算出することができる。本実施形態では、ゲーム装置3は、取得された加速度データに基づいてコントローラ5の姿勢や傾斜角度等を算出する。
【0088】
なお、加速度センサ37(後述する加速度センサ73についても同様)から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ(例えばCPU10)またはコントローラ5のプロセッサ(例えばマイコン42)等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合)、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。
【0089】
一方、コントローラ5が動的な状態(コントローラ5が動かされている状態)であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の移動に応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の移動方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの移動に応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0090】
ジャイロセンサ48は、3軸(本実施形態では、XYZ軸)回りの角速度を検出する。本明細書では、コントローラ5の撮像方向(Z軸正方向)を基準として、X軸回りの回転方向をピッチ方向、Y軸回りの回転方向をヨー方向、Z軸回りの回転方向をロール方向と呼ぶ。ジャイロセンサ48は、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。例えば、ジャイロセンサ48は、3軸ジャイロセンサであってもよいし、2軸ジャイロセンサと1軸ジャイロセンサとを組み合わせて3軸周りの角速度を検出するものであってもよい。ジャイロセンサ48で検出された角速度を表すデータは、通信部36へ出力される。また、ジャイロセンサ48は1軸または2軸回りの角速度を検出するものであってもよい。
【0091】
また、サブコントローラ9の操作部92は、上述したアナログジョイスティック91、CボタンおよびZボタンを含む。操作部92は、アナログジョイスティック91に対する傾倒方向および傾倒量を表すスティックデータ(サブスティックデータと呼ぶ)と、各ボタンに対する入力状態(各ボタンが押下されたか否か)を表す操作ボタンデータ(サブ操作ボタンデータと呼ぶ)とを、コネクタ94を介してメインコントローラ8へ出力する。
【0092】
また、サブコントローラ9の加速度センサ93は、メインコントローラ8の加速度センサ37と同様のセンサであり、サブコントローラ9の加速度(重力加速度を含む)を検出する、すなわち、サブコントローラ9に加わる力(重力を含む)を検出する。加速度センサ93は、当該加速度センサ93の検出部に加わっている加速度のうち、所定の3軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。検出された加速度を表すデータ(サブ加速度データと呼ぶ)は、コネクタ94を介してメインコントローラ8へ出力される。
【0093】
以上のように、サブコントローラ9は、上記サブスティックデータ、サブ操作ボタンデータ、およびサブ加速度データを含むサブコントローラデータをメインコントローラ8へ出力する。
【0094】
メインコントローラ8の通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。
【0095】
サブコントローラ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へ出力する。
【0096】
以上のように、メインコントローラ8は、自機に対する操作を表す操作データとして、マーカ座標データ、加速度データ、角速度データ、および操作ボタンデータを送信可能である。サブコントローラ9は、自機に対する操作を表す操作データとして、加速度データ、スティックデータ、および操作ボタンデータを送信可能である。また、ゲーム装置3は、上記操作データをゲーム入力として用いてゲーム処理を実行する。したがって、上記コントローラ5を用いることによって、ユーザは、各操作ボタンを押下するという従来の一般的なゲーム操作に加えて、コントローラ5自体を動かすゲーム操作を行うことができる。例えば、メインコントローラ8および/またはサブコントローラ9を任意の姿勢に傾ける操作、メインコントローラ8によって画面上の任意の位置を指示する操作、および、メインコントローラ8および/またはサブコントローラ9自体を動かす操作等を行うことが可能となる。
【0097】
また、本実施形態において、コントローラ5は、ゲーム画像を表示する表示手段を有しないが、例えば電池残量を表す画像等を表示するための表示手段を有していてもよい。
【0098】
[4.端末装置7の構成]
次に、図9〜図12を参照して、端末装置7の構成について説明する。図9は、端末装置7の外観構成を示す平面図である。図9における(a)図は端末装置7の正面図であり、(b)図は上面図であり、(c)図は右側面図であり、(d)図は下面図である。図10は、端末装置7の背面図である。また、図11は、ユーザが端末装置7を横向きで把持した様子を示す図である。
【0099】
図9に示されるように、端末装置7は、大略的には横長の長方形の板状形状であるハウジング50を備える。すなわち、端末装置7は、タブレット型の情報処理装置であるということもできる。なお、ハウジング50は全体として板状形状であれば、曲面を有していてもよいし、一部に突起等を有していてもよい。ハウジング50は、ユーザが把持することができる程度の大きさである。したがって、ユーザは、端末装置7を持って動かしたり、端末装置7の配置位置を変更したりすることができる。端末装置7の縦(z軸方向)の長さは、100〜150[mm]が好ましく、本実施形態では、133.5[mm]である。端末装置7の横(x軸方向)の長さは、200〜250[mm]が好ましく、本実施形態では、228.26[mm]である。端末装置7の厚さ(y軸方向の長さ)は、板状の部分で15〜30[mm]程度、最厚部まで含めて30〜50[mm]程度が好ましく、本実施形態では、23.6(最厚部は40.26)[mm]である。また、端末装置7の重量は、400〜600[g]程度であって、本実施形態においては、530[g]である。詳細は後述するが、端末装置7は、上記のような比較的大型の端末装置(操作装置)であっても、ユーザが持ちやすく操作しやすい構成となっている。
【0100】
端末装置7は、ハウジング50の表面(表側)にLCD51を有する。なお、LCD51の画面の大きさは5インチ以上であることが好ましく、ここでは6.2インチである。本実施形態の操作装置7は、持ちやすく操作しやすい構成によって、大きなLCDを設けても操作がしやすいものとなっている。なお、別の実施形態においては、より小さいLCD51を設け、操作装置7の大きさを比較的小さいものとするようにしてもよい。LCD51は、ハウジング50の表面の中央付近に設けられる。したがって、ユーザは、図11に示すようにLCD51の両側部分のハウジング50を持つことによって、LCD51の画面を見ながら端末装置7を持って動かすことができる。なお、図11ではユーザがLCD51の左右両側の部分のハウジング50を持つことで端末装置7を横持ちで(横に長い向きにして)持つ例を示しているが、端末装置7を縦持ちで(縦に長い向きにして)持つことも可能である。
【0101】
図9の(a)図に示すように、端末装置7は、操作手段として、LCD51の画面上にタッチパネル52を有する。本実施形態では、タッチパネル52は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。また、タッチパネル52はシングルタッチ方式でもよいし、マルチタッチ方式であってもよい。本実施形態では、タッチパネル52として、LCD51の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル52の解像度とLCD51の解像度が一致している必要はない。タッチパネル52に対する入力は通常タッチペン60を用いて行われるが、タッチペン60に限らずユーザの指でタッチパネル52に対する入力をすることも可能である。なお、ハウジング50には、タッチパネル52に対する操作を行うために用いられるタッチペン60を収納する収納穴60aが設けられている(図9(b)参照)。なお、ここでは、タッチペン60が落ちないように、収納穴60aはハウジング50の上面に設けられるが、側面や下面に設けられてもよい。このように、端末装置7はタッチパネル52を備えるので、ユーザは、端末装置7を動かしながらタッチパネル52を操作することができる。つまりユーザは、LCD51の画面を動かしつつ、その画面に対して直接(タッチパネル52によって)入力を行うことができる。
【0102】
図9に示すように、端末装置7は、操作手段(操作部)として、2つのアナログスティック53Aおよび53Bと、複数のボタン(キー)54A〜54Mとを備えている。各アナログスティック53Aおよび53Bは、方向を指示することが可能なデバイスである。各アナログスティック53Aおよび53Bは、ユーザの指で操作される可動部材(スティック部)がハウジング50の表面に対して任意の方向(上下左右および斜め方向の任意の角度)にスライドすることができるように構成されている。すなわち、スライドパッドと呼ばれることもある方向入力デバイスである。なお、各アナログスティック53Aおよび53Bの可動部材は、ハウジング50の表面に対して任意の方向に傾倒する種類のものでもよい。本実施形態では、可動部材がスライドする種類のアナログスティックを用いるので、ユーザは親指を大きく動かさなくても各アナログスティック53Aおよび53Bを操作することができ、ハウジング50をよりしっかりと把持した状態で操作を行うことができる。なお、各アナログスティック53Aおよび53Bとして、可動部材が傾倒する種類のものを用いる場合には、入力の程度(傾きの程度)がユーザにとってわかりやすく、詳細な操作をより容易に行うことができる。
【0103】
また、左アナログスティック53AはLCD51の画面の左側に、右アナログスティック53BはLCD51の画面の右側にそれぞれ設けられる。したがって、ユーザは、左右いずれの手でもアナログスティックを用いて方向を指示する入力を行うことができる。また、図11に示すように、各アナログスティック53Aおよび53Bは、ユーザが端末装置7の左右部分(LCD51の左右両側の部分)を把持した状態で操作可能な位置に設けられるので、ユーザは、端末装置7を持って動かす場合においても各アナログスティック53Aおよび53Bを容易に操作することができる。
【0104】
各ボタン54A〜54Lは、所定の入力を行うための操作手段(操作部)であり、押下可能なキーである。以下に示すように、各ボタン54A〜54Lは、ユーザが端末装置7の左右部分を把持した状態で操作可能な位置に設けられる(図11参照)。したがって、ユーザは、端末装置7を持って動かす場合においてもこれらの操作手段を容易に操作することができる。
【0105】
図9の(a)図に示すように、ハウジング50の表面には、各操作ボタン54A〜54Lのうち、十字ボタン(方向入力ボタン)54Aと、ボタン54B〜54Hおよび54Mとが設けられる。つまり、これらのボタン54A〜54Hおよび54Mは、ユーザの親指で操作可能な位置に配置されている(図11参照)。
【0106】
十字ボタン54Aは、LCD51の左側であって、左アナログスティック53Aの下側に設けられる。つまり、十字ボタン54Aはユーザの左手で操作可能な位置に配置されている。十字ボタン54Aは、十字の形状を有しており、少なくとも上下左右の方向を指示することが可能なボタンである。
【0107】
また、ボタン54B〜54Dは、LCD51の下側に設けられる。これら3つのボタン54B〜54Dは、左右両方の手で操作可能な位置に配置されている。また、端末装置7は、端末装置7の電源をオン/オフするための電源ボタン54Mを有している。電源ボタン54Mの操作により、ゲーム装置3の電源を遠隔でオン/オフすることも可能である。電源ボタン54Mは、ボタン54B〜54Dと同様、LCD51の下側に設けられる。電源ボタン54Mは、ボタン54B〜54Dの右側に設けられる。したがって、電源ボタン54Mは、右手で操作可能な(操作しやすい)位置に配置されている。また、4つのボタン54E〜54Hは、LCD51の右側であって、右アナログスティック53Bの下側に設けられる。つまり、4つのボタン54E〜54Hはユーザの右手で操作可能な位置に配置されている。さらに、4つのボタン54E〜54Hは、(4つのボタン54E〜54Hの中心位置に対して)上下左右の位置関係となるように配置されている。したがって、端末装置7は、ユーザに上下左右の方向を指示させるためのボタンとして4つのボタン54E〜54Hを機能させることも可能である。
【0108】
なお、本実施形態においては、各アナログスティック53Aおよび53Bは、十字ボタン54Aおよび各ボタン54E〜54Hよりも上側に配置される。ここで、各アナログスティック53Aおよび53Bは、十字ボタン54Aおよび各ボタン54E〜54Hよりも厚さ方向(y軸方向)に関して突出している。そのため、仮にアナログスティック53Aと十字ボタン54Aとの配置を逆にした場合には、ユーザが十字ボタン54Aを親指で操作する際にアナログスティック53Aに親指が当たってしまい、操作を誤ってしまうおそれがある。なお、アナログスティック53Bと各ボタン54E〜54Hとの配置を逆にする場合も同様の問題が生じる。これに対して、本実施形態では、各アナログスティック53Aおよび53Bを十字ボタン54Aおよび各ボタン54E〜54Hよりも上側に配置するので、ユーザがアナログスティック53Aおよび53Bを操作する際に十字ボタン54Aおよび各ボタン54E〜54Hに指が当たってしまう可能性は上記の場合に比べて低くなる。このように、本実施形態においては、誤操作の可能性を低減することができ、端末装置7の操作性を向上することができる。ただし、別の実施形態においては、必要に応じてアナログスティック53Aが十字ボタン54Aと逆の配置であってもよいし、アナログスティック53Bが各ボタン54E〜54Hと逆の配置であってもよい。
【0109】
ここで、本実施形態では、いくつかの操作部(各アナログスティック53Aおよび53B、十字ボタン54A、ならびに、3つのボタン54E〜54G)は、表示部(LCD51)の左右両側において、ハウジング50における上下方向(y軸方向)の中心よりも上側に設けられる。これらの操作部を操作する場合、ユーザは、端末装置7における上下方向の中心よりも上側を主に把持する。ここで、ユーザがハウジング50の下側を把持する場合には、(端末装置7が本実施形態のように比較的大きなサイズである場合には特に)把持される端末装置7が不安定になり、ユーザは端末装置7を持ちにくくなる。これに対して、本実施形態では、上記操作部を操作する場合、ユーザは、端末装置7における上下方向の中心よりも上側を主に把持することになり、また、手のひらでハウジング50を横から支えることができる。したがって、ユーザは、安定した状態でハウジング50を把持することができ、端末装置7が持ちやすくなるので、上記操作部も操作しやすくなる。なお、他の実施形態においては、ハウジング50の中央よりも上側において表示部の左右にそれぞれ少なくとも1つずつ操作部が設けられてもよい。例えば、各アナログスティック53Aおよび53Bのみがハウジング50の中央よりも上側に設けられてもよい。また例えば、十字ボタン54Aが左アナログスティック53Aよりも上側に設けられ、4つのボタン54E〜54Hが右アナログスティック53Bよりも上側に設けられる場合には、十字ボタン54Aおよび4つのボタン54E〜54Hがハウジング50の中央よりも上側に設けられても良い。
【0110】
また、本実施形態では、ハウジング50の裏側(LCD51が設けられる表面の反対側)には、突起部(庇部59)が設けられる(図9(c)および図10参照)。図9(c)に示すように、庇部59は、略板状のハウジング50の裏面から突起して設けられる、山状の部材である。突起部は、ハウジング50の裏面を把持するユーザの指に掛止可能な高さ(厚さ)を有する。突起部の高さは、10〜25[mm]であることが好ましく、本実施形態では16.66[mm]である。また、突起部の下面は、突起部がユーザの指に掛かりやすいように、ハウジング50の裏面に対して45°以上(より好ましくは60°以上)の傾斜を有することが好ましい。図9(c)に示すように、突起部の下面は、上面よりも傾斜角度が大きくなるように形成されてもよい。図11に示すように、ユーザは、指を庇部59に掛けて(指の上に庇部59を乗せて)把持することによって、端末装置7が比較的大きなサイズであっても、疲れることなく安定した状態で端末装置7を把持することができる。すなわち、庇部59は、指でハウジング50を支えるための支持部材であるということができ、また、指掛部ということもできる。
【0111】
また、庇部59は、ハウジング50の上下方向に関しては中央よりも上側に設けられる。庇部59は、ハウジング50の表面に設けられる操作部(各アナログスティック53Aおよび53B)の概ね反対側の位置に設けられる。つまり、突起部は、表示部の左右にそれぞれ設けられる操作部の反対側の位置を含む領域に設けられる。したがって、上記操作部を操作する場合、ユーザは、中指あるいは薬指で庇部59を支えるようにして端末装置7を把持することができる(図11参照)。これによって、端末装置7がより持ちやすくなり、上記操作部もより操作しやすくなる。また、本実施形態では、突起部は、(突起した部分が)左右に延びる庇状の形状を有するので、ユーザは、中指あるいは薬指を突起部の下面に沿わせて端末装置7を把持することができ、端末装置7がより持ちやすくなる。なお、庇部59は、(突起した部分が)左右方向に延びるように形成されればよく、図10に示すような水平方向に延びる形状に限られない。他の実施形態においては、庇部59は水平方向から若干傾いた方向に延びていてもよい。例えば、庇部59は、左右両端から中央に向かうにつれて上に(または下に)傾斜するように設けられてもよい。
【0112】
なお、本実施形態においては、後述する係止穴を庇部59に設けることが理由で、ハウジングの裏面に形成される突起部として、庇状の形状をした庇部59を採用するが、突起部はどのような形状であってもよい。例えば、他の実施形態においては、ハウジング50の裏側において、2つの突起部が左右両側に設けられる(左右方向の中央には突起部が設けられない)構成であってもよい(図29参照)。また、他の実施形態においては、突起部の断面形状(x軸方向に垂直な断面における形状)は、ユーザの指で端末装置7をよりしっかりと支えることができるように(突起部が指によりしっかりと掛かるように)、鈎型(下面が凹んだ形状)であってもよい。
【0113】
なお、突起部(庇部59)の上下方向に関する幅は、いくらであってもよい。例えば、突起部は、ハウジング50の上辺まで形成されてもよい。すなわち、突起部の上面がハウジング50の上側の側面と同じ位置に形成されてもよい。このとき、ハウジング50は、下側が薄く、上側が厚い2段の構成となる。このように、ハウジング50は、裏面における左右両側に、下方を向く面(突起部の下面)が形成されることが好ましい。これによって、ユーザは、当該面に指を当てることで楽に操作装置を把持することができる。なお、上記「下方を向く面」は、ハウジング50の裏面におけるどの位置に形成されてもよいが、ハウジング50の中央よりも上側に位置することが好ましい。
【0114】
また、図9の(a)図、(b)図、および(c)図に示すように、第1Lボタン54Iおよび第1Rボタン54Jは、ハウジング50の上側の面における左右の両側にそれぞれ設けられる。本実施形態では、第1Lボタン54Iおよび第1Rボタン54Jは、ハウジング50の斜め上部分(左上部分および右上部分)に設けられる。具体的には、第1Lボタン54Iは、板状のハウジング50における上側の側面の左端に設けられ、左上側の側面から露出している(換言すれば上側および左側の両方の側面から露出している)。また、第1Rボタン54Jは、ハウジング50における上側の側面の右端に設けられ、右上側の側面から露出している(換言すれば上側および右側の両方の側面から露出している)。このように、第1Lボタン54Iは、ユーザの左手人差し指で操作可能な位置に配置され、第1Rボタン54Jは、ユーザの右手人差し指で操作可能な位置に配置される(図11参照)。なお、他の実施形態においては、ハウジング50の上側の面における左右にそれぞれ設けられる操作部は、左右の端部に設けられる必要はなく、端部以外の位置に設けられてもよい。また、ハウジング50の左右の側面に操作部がそれぞれ設けられてもよい。
【0115】
また、図9の(c)図および図10に示すように、第2Lボタン54Kおよび第2Rボタン54Lは、上記突起部(庇部59)に配置される。第2Lボタン54Kは、庇部59の左端付近に設けられる。第2Rボタン54Lは、庇部59の右端付近に設けられる。つまり、第2Lボタン54Kは、ハウジング50の裏面の左側(表面側から見たときの左側)のやや上方に設けられ、第2Rボタン54Lは、ハウジング50の裏面の右側(表面側から見たときの右側)のやや上方に設けられる。換言すれば、第2Lボタン54Kは、表面に設けられる左アナログスティック53Aの(概ね)反対側の位置に設けられ、第2Rボタン54Lは、表面に設けられる右アナログスティック53Bの(概ね)反対側の位置に設けられる。このように、第2Lボタン54Kは、ユーザの左手中指(または人差し指)で操作可能な位置に配置され、第2Rボタン54Lは、ユーザの右手中指(または人差し指)で操作可能な位置に配置される(図11参照)。また、第2Lボタン54Kおよび第2Rボタン54Lは、図9の(c)図に示すように、上記庇部59の上面に設けられる。そのため、第2Lボタン54Kおよび第2Rボタン54Lは、上方(斜め上方)を向くボタン面を有する。ユーザが端末装置7を把持した場合には中指または人差し指は上下方向に動くと考えられるので、ボタン面を上方に向けることで、ユーザは第2Lボタン54Kおよび第2Rボタン54Lを押下しやすくなる。
【0116】
上記のように、本実施形態においては、ハウジング50の中央よりも上側において表示部(LCD51)の左右に操作部(アナログスティック53Aおよび53B)がそれぞれ設けられ、さらに、ハウジング50の裏側において当該操作部の反対側の位置に別の操作部(第2Lボタン54Kおよび第2Rボタン54L)がそれぞれ設けられる。これによれば、上記操作部と別の操作部とがハウジング50の表側と裏側との互いに対向する位置に配置されるので、ユーザは、これらの操作部を操作する際にハウジング50を表側と裏側から挟むように把持することができる。また、これらの操作部を操作する際にユーザは、ハウジング50における上下方向の中心よりも上側を把持するので、端末装置7を上側で把持できるとともに、手のひらで端末装置7を支えることができる(図11参照)。以上によって、ユーザは、少なくとも4つの操作部を操作することができる状態で、ハウジング50を安定的に把持することができ、ユーザが容易に把持することが可能で、かつ操作性の良い操作装置(端末装置7)を提供することができる。
【0117】
以上のように、本実施形態においては、突起部(庇部59)の下面に指を当てた状態で端末装置7を把持することによって、ユーザは楽に端末装置7を把持することができる。また、突起部の上面に第2Lボタン54Kおよび第2Rボタン54Lが設けられるので、ユーザは上記の状態でこれらのボタンを容易に操作することができる。ユーザは、例えば次のような持ち方で端末装置7を容易に把持することができる。
【0118】
すなわち、ユーザは、図11に示すように、薬指を庇部59の下面(図11に示す一点鎖線)に当てて(薬指で庇部59を支えるように)端末装置7を把持することも可能である。このとき、ユーザは、4つのボタン(第1Lボタン54I、第1Rボタン54J、第2Lボタン54K、および第2Rボタン54L)を人差し指および中指で操作することができる。例えば、要求されるゲーム操作が、使用するボタンが多く、比較的複雑である場合には、図11に示すように把持することで、多くのボタンを容易に操作することができる。なお、各アナログスティック53Aおよび53Bは十字ボタン54Aおよびボタン54E〜54Hの上側に設けられるので、比較的複雑な操作が要求される場合にユーザは親指でアナログスティック53Aおよび53Bを操作することができ、好都合である。また、図11においては、ユーザは、ハウジング50の表面に親指を、ハウジング50の上面に人差し指を、ハウジング50の裏面における庇部59の上面に中指を、庇部59の下面に薬指を、ハウジング50の裏面に小指を当てて端末装置7を把持する。このように、ユーザは、ハウジング50を四方から包み込むようにして端末装置7をしっかりと把持することができる。
【0119】
また、ユーザは、中指を庇部59の下面に当てて端末装置7を把持することも可能である。このとき、ユーザは、2つのボタン(第2Lボタン54Kおよび第2Rボタン54L)を人差し指で容易に操作することができる。例えば、要求されるゲーム操作が、使用するボタンが少なく、比較的単純である場合には、中指を庇部59の下面に当てて端末装置7を把持してもよい。このとき、ユーザは、2本の指(薬指および小指)でハウジング50の下側を把持することができるので、しっかりと端末装置7を把持することができる。
【0120】
なお、本実施形態においては、庇部59の下面が、各アナログスティック53Aおよび53Bと、十字ボタン54Aおよび4つのボタン54E〜54Hとの間に位置するように(各アナログスティック53Aおよび53Bよりも下方で、かつ、十字ボタン54Aおよび4つのボタン54E〜54Hよりも上方に位置するように)設けられる。したがって、薬指を庇部59に当てて端末装置7を把持する場合(図11)には、各アナログスティック53Aおよび53Bを親指で操作しやすくなり、中指を庇部59に当てて端末装置7を把持する場合には、十字ボタン54Aおよび4つのボタン54E〜54Hを親指で操作しやすくなっている。つまり、上記2種類の場合のいずれにおいても、ユーザは、端末装置7をしっかりと把持した状態で方向入力操作を行うことができる。
【0121】
また、上述のように、ユーザは端末装置7を縦持ちで把持することも可能である。すなわち、ユーザは端末装置7の上辺または下辺を一方の手で把持することで端末装置7を縦向きで把持することが可能である。このように、ユーザは端末装置7を片手で把持することが可能であるので、例えば、一方の手で端末装置7を把持しながら他方の手でタッチパネル52に対する入力を行うといった操作を行うことも可能である。
【0122】
また、端末装置7の上辺を把持する場合、ユーザは親指以外の指を庇部59の下面に当てることで、端末装置7をしっかりと把持することができる。特に、本実施形態においては、庇部59が左右に延びて形成されているので、ユーザは端末装置7の上辺におけるどこの位置で把持しても、親指以外の指を庇部59に当てることができ、端末装置7をしっかりと把持することができる。すなわち、端末装置7を縦持ちで使う場合には、庇部59は取っ手として使うことができる。一方、端末装置7の下辺を片手で把持する場合、ユーザは、その手でボタン54B〜54Dを操作することができる。したがって、例えば片手でタッチパネル52に対する入力を行いつつ、端末装置7を把持する手でボタン54B〜54Dに対する操作を行うことができ、より多くの操作を行うことができる。
【0123】
なお、本実施形態における端末装置7に関しては、突起部(庇部59)が裏面に設けられるので、LCD51の画面(ハウジング50の表面)が上を向いた状態で端末装置7を載置させる場合、画面がやや傾いた状態となる。これによって、端末装置7を載置した状態において画面がより見やすくなる。また、端末装置7を載置した状態においてタッチパネル52に対する入力操作が行いやすくなる。また、他の実施形態においては、上記庇部59と同程度の高さを有する追加の突起部がハウジング50の裏面に形成されてもよい。これによれば、LCD51の画面が上を向いた状態では、各突起部が床面に接することで、画面が水平になるように端末装置7を載置することができる。また、追加の突起部を着脱可能な(または折り畳み可能な)ものにしてもよい。これによれば、画面がやや傾いた状態と、画面が水平になる状態との両方で端末装置を載置することができる。すなわち、端末装置7を置いて使う場合には、庇部59は、脚部として使うことができる。
【0124】
各ボタン54A〜54Lには、ゲームプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン54Aおよびボタン54E〜54Hは方向指示操作や選択操作等に用いられてもよいし、各ボタン54B〜54Eは決定操作やキャンセル操作等に用いられてもよい。また、端末装置7は、LCD51の画面表示をオン/オフするためのボタンや、ゲーム装置3との接続設定(ペアリング)を行うためのボタンを有していてもよい。
【0125】
図9の(a)図に示すように、端末装置7は、マーカ55Aおよびマーカ55Bからなるマーカ部55をハウジング50の表面に備えている。マーカ部55は、LCD51の上側に設けられる。各マーカ55Aおよびマーカ55Bは、マーカ装置6の各マーカ6Rおよび6Lと同様、1以上の赤外LEDで構成される。マーカ55Aおよび55Bを構成する赤外LEDは、赤外光を透過する窓部の内側に配置される。マーカ部55は、上述のマーカ装置6と同様、コントローラ5の動き等をゲーム装置3が算出するために用いられる。また、ゲーム装置3はマーカ部55が備える各赤外LEDの点灯を制御することが可能である。
【0126】
端末装置7は、撮像手段であるカメラ56を備えている。カメラ56は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。図9に示すように、本実施形態では、カメラ56はハウジング50の表面に設けられる。したがって、カメラ56は、端末装置7を持っているユーザの顔を撮像することができ、例えばLCD51を見ながらゲームを行っている時のユーザを撮像することができる。本実施形態においては、カメラ56は、2つのマーカ55Aおよび55Bの間に配置される。
【0127】
なお、端末装置7は、音声入力手段であるマイク79を備えている。ハウジング50の表面には、マイクロフォン用孔50cが設けられる。マイク79はこのマイクロフォン用孔50cの奥のハウジング50内部に設けられる。マイク79は、ユーザの音声等、端末装置7の周囲の音を検出する。
【0128】
端末装置7は、音声出力手段であるスピーカ77を備えている。図9の(d)図に示すように、ハウジング50の表面の下側にはスピーカ孔57が設けられる。スピーカ77の出力音はこのスピーカ孔57から出力される。本実施形態では、端末装置7は2つのスピーカを備えており、左スピーカおよび右スピーカのそれぞれの位置にスピーカ孔57が設けられる。なお、端末装置7は、スピーカ77の音量を調節するためのつまみ64を備える。また、端末装置7は、イヤホン等の音声出力部を接続するための音声出力端子62を備える。ここでは、ハウジングの下側の側面に付加装置が接続されることを考慮して、上記音声出力端子62およびつまみ64はハウジング50の上画の側面に設けられるが、左右の側面や下側の側面に設けられてもよい。
【0129】
また、ハウジング50には、赤外線通信モジュール82からの赤外線信号を端末装置7の外部に出射するための窓63が設けられる。ここでは、LCD51の両側を把持した場合にユーザの前方へ赤外線信号が発射されるように、窓63はハウジング50の上側の側面に設けられる。ただし、他の実施形態においては、窓63は、例えばハウジング50の裏面等、どの位置に設けられてもよい。
【0130】
また、端末装置7は、他の装置を端末装置7に接続するための拡張コネクタ58を備えている。拡張コネクタ58は、端末装置7に接続される他の装置との間でデータ(情報)を送受信するための通信端子である。本実施形態においては、図9の(d)図に示すように、拡張コネクタ58は、ハウジング50の下側側面に設けられる。なお、拡張コネクタ58に接続される他の付加装置はどのようなものであってもよく、例えば、特定のゲームに用いるコントローラ(銃型のコントローラ等)やキーボード等の入力装置であってもよい。付加装置を接続する必要がなければ、拡張コネクタ58は設けられていなくともよい。拡張コネクタ58には、付加装置に電力を供給する端子や、充電のための端子が含まれていてもよい。
【0131】
また、端末装置7は、拡張コネクタ58とは別に、付加装置から電力を取得するための充電端子66を有する。図示しない充電スタンドに充電端子66が接続された場合、充電スタンドから端末装置7へ電力が供給される。本実施形態では、充電端子66はハウジング50の下側側面に設けられる。したがって、端末装置7と付加装置とが接続される際には、拡張コネクタ58を介して情報を送受信することに加えて、一方から他方への電力供給を行うことも可能である。このように、拡張コネクタ58の周囲(左右両側)に充電端子66を設けることによって、端末装置7と付加装置とが接続される際に、情報の送受信とともに、電力供給を行うことも可能である。また、端末装置7は充電コネクタを有し、ハウジング50は充電コネクタを保護するためのカバー部61を有する。充電コネクタは、後述する充電器86に接続可能であり、充電器に充電コネクタが接続された場合、充電器86から端末装置7へ電力が供給される。本実施形態では、ハウジングの下側の側面に付加装置が接続されることを考慮して、充電コネクタ(カバー部61)はハウジング50の上画の側面に設けられるが、左右の側面や下側の側面に設けられてもよい。
【0132】
図9(d)および図10に示すように、突起部(庇部59)の下面には、付加装置が有する爪部が係止可能な係止穴59aおよび59bが設けられる。係止穴59aおよび59bは、端末装置7に他の付加装置を接続する際に用いられる。すなわち、付加装置は係止穴59aおよび59bに係止可能な爪部を有し、端末装置7に付加装置を接続する場合には、爪部が係止穴59aおよび59bに係止することによって端末装置7と付加装置とが固定される。また、係止穴59aおよび59bの内部に、さらにネジ穴を設けてもよく、付加装置をネジで強固に固定するようにしてもよい。なお、ここでは、端末装置7の裏面に設けられる突起部は、庇状の形状を有する庇部59である。すなわち、庇部59は左右方向に延びて設けられる。図10に示すように、係止穴59aおよび59bは、庇部59の下面の(左右方向に関して)中央付近に設けられる。なお、庇部59の下面に設けられる係止穴59aおよび59bの個数はいくつであってもよいが、1つである場合には庇部59の中央に設けられることが好ましく、複数である場合には左右対称に配置されることが好ましい。これによれば、左右のバランスを均等に保って付加装置を安定的に接続することができる。また、係止穴が中央付近に設けられる場合には、左右の両端に設けられる場合に比べて、付加装置のサイズを小さくすることができる。以上のように、庇部59は、付加装置の係止部材として使うことができる。
【0133】
また、本実施形態においては、図9(d)に示すように、ハウジング50の下面に係止穴50aおよび50bが設けられる。したがって、端末装置7に付加装置を接続する場合には、4つの爪部が4つの各係止穴にそれぞれ係止することによって端末装置7と付加装置とが固定される。これによって、付加装置を端末装置7により強固に接続することができる。なお、係止穴50aおよび50bの内部にもネジ穴を設け、付加装置をネジ止めするようにしてもよい。ネジ止めの位置は、どこであってもよいが、例えば、ハウジング50の背面に当接する付加装置の支持部と、庇部59とがネジ止めされてもよい。また、他の実施形態においては、ハウジングに設けられる係止穴は、どのような配置であってもよい。
【0134】
また、端末装置7は、ハウジング50に対して着脱可能な電池蓋67を有している。電池蓋67の内側には電池(図12に示す電池85)が配置される。本実施形態においては、電池蓋67はハウジング50の裏側に設けられ、突起部(庇部59)の下側に設けられる。
【0135】
また、端末装置7のハウジング50には、ストラップの紐を結びつけるための孔65aおよび65bが設けられる。図9(d)に示すように、本実施形態においては、孔65aおよび65bはハウジング50の下面に設けられる。また、本実施形態においては、2つの孔65aおよび65bがハウジング50の左右両側にそれぞれ1つずつ設けられる。すなわち、孔65aがハウジング50の下面の中央より左側に設けられ、孔65bがハウジング50の下面の中央より右側に設けられる。ユーザは、孔65aおよび65bのいずれかにストラップを結びつけ、ストラップを自身の手首に結びつけてもよい。これによって、万一ユーザが端末装置7を落としたり、端末装置7が手から離れたりした場合でも、端末装置7が落下したり他の物に衝突したりすることを防止することができる。なお、本実施形態においては、左右両側にそれぞれ孔が設けられるので、ユーザは、どちらの手にもストラップを結びつけることができ、便利である。
【0136】
なお、図9〜図12に示した端末装置7に関して、各操作ボタンやハウジング50の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。
【0137】
次に、図12を参照して、端末装置7の内部構成について説明する。図12は、端末装置7の内部構成を示すブロック図である。図12に示すように、端末装置7は、図9に示した構成の他、タッチパネルコントローラ71、磁気センサ72、加速度センサ73、ジャイロセンサ74、ユーザインタフェースコントローラ(UIコントローラ)75、コーデックLSI76、スピーカ77、サウンドIC78、マイク79、無線モジュール80、アンテナ81、赤外線通信モジュール82、フラッシュメモリ83、電源IC84、および電池85を備える。これらの電子部品は、電子回路基板上に実装されてハウジング50内に収納される。
【0138】
UIコントローラ75は、各種の入出力部に対するデータの入出力を制御するための回路である。UIコントローラ75は、タッチパネルコントローラ71、アナログスティック53(アナログスティック53Aおよび53B)、操作ボタン54(各操作ボタン54A〜54L)、マーカ部55、磁気センサ72、加速度センサ73、およびジャイロセンサ74に接続される。また、UIコントローラ75は、コーデックLSI76と拡張コネクタ58に接続される。また、UIコントローラ75には電源IC84が接続され、UIコントローラ75を介して各部に電力が供給される。電源IC84には内蔵の電池85が接続され、電力が供給される。また、電源IC84には、外部電源から電力を取得可能な充電器86またはケーブルを充電コネクタを介して接続することが可能であり、端末装置7は、当該充電器86またはケーブルを用いて外部電源からの電力供給と充電を行うことができる。なお、端末装置7は、図示しない充電機能を有するクレイドルに端末装置7を装着することで充電を行うことも可能である。すなわち、図示しないが、電源IC84には、外部電源から電力を取得可能なクレイドルを充電端子66を介して接続することが可能であり、端末装置7は、クレイドルを用いて外部電源からの電力供給と充電を行うことができる。
【0139】
タッチパネルコントローラ71は、タッチパネル52に接続され、タッチパネル52の制御を行う回路である。タッチパネルコントローラ71は、タッチパネル52からの信号に基づいて所定の形式のタッチ位置データを生成してUIコントローラ75へ出力する。タッチ位置データは、タッチパネル52の入力面において入力が行われた位置の座標を表す。なお、タッチパネルコントローラ71は、タッチパネル52からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。また、UIコントローラ75からタッチパネルコントローラ71へは、タッチパネル52に対する各種の制御指示が出力される。
【0140】
アナログスティック53は、ユーザの指で操作されるスティック部がスライドした(または傾倒した)方向および量を表すスティックデータをUIコントローラ75へ出力する。また、操作ボタン54は、各操作ボタン54A〜54Lに対する入力状況(押下されたか否か)を表す操作ボタンデータをUIコントローラ75へ出力する。
【0141】
磁気センサ72は、磁界の大きさおよび方向を検知することで方位を検出する。検出された方位を示す方位データは、UIコントローラ75へ出力される。また、UIコントローラ75から磁気センサ72へは、磁気センサ72に対する制御指示が出力される。磁気センサ72に関しては、MI(磁気インピーダンス)素子、フラックスゲートセンサ、ホール素子、GMR(巨大磁気抵抗)素子、TMR(トンネル磁気抵抗)素子、あるいはAMR(異方性磁気抵抗)素子等を用いたセンサがあるが、方位を検出することができればどのようなものが用いられてもよい。なお、厳密には、地磁気以外に磁界が発生している場所においては、得られた方位データは方位を示さないことになるが、そのような場合であっても、端末装置7が動いた場合には方位データが変化するため、端末装置7の姿勢の変化を算出することができる。
【0142】
加速度センサ73は、ハウジング50の内部に設けられ、3軸(図9の(a)図に示すxyz軸)方向に沿った直線加速度の大きさを検出する。具体的には、加速度センサ73は、ハウジング50の長辺方向をx軸、ハウジング50の表面に対して垂直な方向をy軸、ハウジング50の短辺方向をz軸として、各軸の直線加速度の大きさを検出する。検出された加速度を表す加速度データはUIコントローラ75へ出力される。また、UIコントローラ75から加速度センサ73へは、加速度センサ73に対する制御指示が出力される。加速度センサ73は、本実施形態では例えば静電容量式のMEMS型加速度センサであるとするが、他の実施形態においては他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ73は1軸または2軸方向を検出する加速度センサであってもよい。
【0143】
ジャイロセンサ74は、ハウジング50の内部に設けられ、上記x軸、y軸およびz軸の3軸周りの角速度を検出する。検出された角速度を表す角速度データは、UIコントローラ75へ出力される。また、UIコントローラ75からジャイロセンサ74へは、ジャイロセンサ74に対する制御指示が出力される。なお、3軸の角速度を検出するために用いられるジャイロセンサの数および組み合わせはどのようなものであってもよく、ジャイロセンサ74はジャイロセンサ48と同様、2軸ジャイロセンサと1軸ジャイロセンサとで構成されてもよい。また、ジャイロセンサ74は1軸または2軸方向を検出するジャイロセンサであってもよい。
【0144】
UIコントローラ75は、上記の各構成要素から受け取ったタッチ位置データ、スティックデータ、操作ボタンデータ、方位データ、加速度データ、および角速度データを含む操作データをコーデックLSI76に出力する。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置に対する操作を表すデータが上記操作データにさらに含まれていてもよい。
【0145】
コーデックLSI76は、ゲーム装置3へ送信するデータに対する圧縮処理、および、ゲーム装置3から送信されたデータに対する伸張処理を行う回路である。コーデックLSI76には、LCD51、カメラ56、サウンドIC78、無線モジュール80、フラッシュメモリ83、および赤外線通信モジュール82が接続される。また、コーデックLSI76はCPU87と内部メモリ88を含む。端末装置7はゲーム処理自体を行なわない構成であるが、端末装置7の管理や通信のための最小限のプログラムを実行する必要がある。電源投入時にフラッシュメモリ83に格納されたプログラムを内部メモリ88に読み出してCPU87が実行することで、端末装置7が起動する。また、内部メモリ88の一部の領域はLCD51のためのVRAMとして使用される。
【0146】
カメラ56は、ゲーム装置3からの指示に従って画像を撮像し、撮像した画像データをコーデックLSI76へ出力する。また、コーデックLSI76からカメラ56へは、画像の撮像指示等、カメラ56に対する制御指示が出力される。なお、カメラ56は動画の撮影も可能である。すなわち、カメラ56は、繰り返し撮像を行って画像データをコーデックLSI76へ繰り返し出力することも可能である。
【0147】
サウンドIC78は、スピーカ77およびマイク79に接続され、スピーカ77およびマイク79への音声データの入出力を制御する回路である。すなわち、コーデックLSI76から音声データを受け取った場合、サウンドIC78は当該音声データに対してD/A変換を行って得られる音声信号をスピーカ77へ出力し、スピーカ77から音を出力させる。また、マイク79は、端末装置7に伝わる音(ユーザの音声等)を検知して、当該音を示す音声信号をサウンドIC78へ出力する。サウンドIC78は、マイク79からの音声信号に対してA/D変換を行い、所定の形式の音声データをコーデックLSI76へ出力する。
【0148】
コーデックLSI76は、カメラ56からの画像データ、マイク79からの音声データ、および、UIコントローラ75からの操作データを、端末操作データとして無線モジュール80を介してゲーム装置3へ送信する。本実施形態では、コーデックLSI76は、画像データおよび音声データに対して、コーデックLSI27と同様の圧縮処理を行う。上記端末操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール80に出力される。無線モジュール80にはアンテナ81が接続されており、無線モジュール80はアンテナ81を介してゲーム装置3へ上記送信データを送信する。無線モジュール80は、ゲーム装置3の端末通信モジュール28と同様の機能を有している。すなわち、無線モジュール80は、例えばIEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。
【0149】
以上のように、端末装置7からゲーム装置3へ送信される送信データには、操作データ(端末操作データ)、画像データ、および音声データが含まれる。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置から受け取ったデータが上記送信データにさらに含まれていてもよい。また、赤外線通信モジュール82は、他の装置との間で例えばIRDAの規格に従った赤外線通信を行う。コーデックLSI76は、赤外線通信によって受信したデータを、必要に応じて上記送信データに含めてゲーム装置3へ送信してもよい。
【0150】
また、上述のように、ゲーム装置3から端末装置7へは、圧縮された画像データおよび音声データが送信される。これらのデータはアンテナ81および無線モジュール80を介してコーデックLSI76に受信される。コーデックLSI76は、受信した画像データおよび音声データを伸張する。伸張された画像データはLCD51へ出力され、画像がLCD51に表示される。つまり、コーデックLSI76(CPU87)は、受信された画像データを表示部に表示させる。また、伸張された音声データはサウンドIC78へ出力され、サウンドIC78はスピーカ77から音を出力させる。
【0151】
また、ゲーム装置3から受信されるデータに制御データが含まれる場合、コーデックLSI76およびUIコントローラ75は、制御データに従った制御指示を各部に行う。上述のように、制御データは、端末装置7が備える各構成要素(本実施形態では、カメラ56、タッチパネルコントローラ71、マーカ部55、各センサ62〜64、および赤外線通信モジュール82)に対する制御指示を表すデータである。本実施形態では、制御データが表す制御指示としては、上記各構成要素を動作させたり、動作を休止(停止)させたりする指示が考えられる。すなわち、ゲームで使用しない構成要素については電力消費を抑えるために休止させてもよく、その場合、端末装置7からゲーム装置3へ送信される送信データには、休止した構成要素からのデータが含まれないようにする。なお、マーカ部55は赤外LEDであるので、制御は単に電力の供給のON/OFFでよい。
【0152】
以上のように、端末装置7は、タッチパネル52、アナログスティック53、および操作ボタン54といった操作手段を備えるが、他の実施形態においては、これらの操作手段に代えて、または、これらの操作手段とともに、他の操作手段を備える構成であってもよい。
【0153】
また、端末装置7は、端末装置7の動き(位置や姿勢、あるいは、位置や姿勢の変化を含む)を算出するためのセンサとして、磁気センサ72、加速度センサ73、およびジャイロセンサ74を備えるが、他の実施形態においては、これらのセンサのうち1つまたは2つのみを備える構成であってもよい。また、他の実施形態においては、これらのセンサに代えて、または、これらのセンサとともに、他のセンサを備える構成であってもよい。
【0154】
また、端末装置7は、カメラ56およびマイク79を備える構成であるが、他の実施形態においては、カメラ56およびマイク79を備えていなくてもよく、また、いずれか一方のみを備えていてもよい。
【0155】
また、端末装置7は、端末装置7とコントローラ5との位置関係(コントローラ5から見た端末装置7の位置および/または姿勢等)を算出するための構成としてマーカ部55を備える構成であるが、他の実施形態ではマーカ部55を備えていない構成としてもよい。また、他の実施形態では、端末装置7は、上記位置関係を算出するための構成として他の手段を備えていてもよい。例えば、他の実施形態においては、コントローラ5がマーカ部を備え、端末装置7が撮像素子を備える構成としてもよい。さらにこの場合、マーカ装置6は赤外LEDに代えて、撮像素子を備える構成としてもよい。
【0156】
[5.ゲーム処理の概要]
以下、図14および図15を参照して、本実施形態のゲームシステム1において実行されるゲーム処理の概要について説明する。本実施形態においては、2人のプレイヤがゲーム操作を行う。1人のプレイヤは、ゲームプログラムによって提供される所定のゲームをプレイするプレイヤ(「ゲームプレイヤ」と呼ぶ)である。もう1人のプレイヤは、上記所定のゲームのゲーム空間の所望の領域を撮影し、ゲーム画像を保存する操作を行うプレイヤ(カメラプレイヤ)である。つまり、本実施形態においては、一方のプレイヤがゲームを行い、他方のプレイヤは、当該一方のプレイヤがプレイするゲームのゲーム画像を撮影(保存)する役割である。なお、他の実施形態においては、所定のゲームを行うゲームプレイヤは複数であってもよいし、ゲーム空間を撮影するカメラプレイヤは複数であってもよい。つまり、ゲームシステム1は、複数のコントローラ5を含んでいてもよいし、複数の端末装置7を含んでいてもよい。
【0157】
なお、各プレイヤが用いる操作装置はどのようなものであってもよいが、本実施形態においては、ゲームプレイヤはコントローラ5を用いてゲーム操作を行い、カメラプレイヤは端末装置7を用いてゲーム操作を行う。本実施形態においては、各プレイヤが用いる操作装置が異なる種類であるが、他の実施形態においては、各プレイヤが用いる操作装置は同じ種類であってもよい。例えば、ゲームシステム1が2つの端末装置7を含む場合、各プレイヤはそれぞれ端末装置7を用いてゲーム操作を行ってもよい。
【0158】
本実施形態では、3次元の仮想空間(ゲーム空間)を表すゲーム画像は、テレビ2および端末装置7(LCD51)の2つの表示装置に表示される。まず、テレビ用画像に関するゲーム処理の概要について説明する。図13は、テレビ2に表示されるゲーム画像(テレビ用画像)の一例を示す図である。図13に示すように、テレビ2には、ゲーム空間内の領域のうちでプレイヤキャラクタ101を含む領域を表す画像が表示される。プレイヤキャラクタ101は、ゲームプレイヤによって操作されるオブジェクトである。ゲーム装置3は、コントローラ5からのコントローラ操作データ(および端末装置7からの端末操作データ)を取得する。ゲーム装置3は、コントローラ操作データに基づいてゲーム処理を実行する。このゲーム処理は、ゲームプレイヤによる操作に応じてゲームを進行させる処理であり、例えばプレイヤキャラクタ101の動作を制御する処理等が含まれる。以下では、上記のゲーム処理を、後述するカメラプレイヤによる操作に応じて実行されるゲーム処理と区別して、「メインゲーム処理」と呼ぶことがある。メインゲーム処理は、どのような種類のゲームを実行するものであってもよい。
【0159】
また、ゲーム装置3は、ゲーム空間にテレビ用仮想カメラを設定する。テレビ用仮想カメラは、テレビ用画像の生成に用いられる仮想カメラである。本実施形態では、テレビ用仮想カメラは、ゲームプレイヤのためのゲーム画像を生成するように設定される。具体的には、図13に示すように、テレビ用仮想カメラの位置(視点位置)および姿勢(視線方向)は、プレイヤキャラクタ101を視野範囲(撮影範囲)に含むように設定される。なお、図13では、テレビ用画像にはカメラキャラクタ102の画像も含まれるが、本実施形態においてはテレビ用仮想カメラはカメラキャラクタ102とは独立して制御される。
【0160】
さらに、ゲーム装置3は、テレビ用画像として、テレビ用仮想カメラから見たゲーム空間を表すゲーム画像を生成する。そして、端末装置7とは別体の表示装置であるテレビ2に当該ゲーム画像を出力する。以上によって、プレイヤキャラクタ101を含むゲーム空間を表す画像がテレビ2に表示される。ゲームプレイヤは、テレビ2に表示されるゲーム画像を見ながらゲーム操作を行うことでゲームを進める。なお、ゲームプレイヤによる操作に応じて上記メインゲーム処理を実行してテレビ用画像を表示させる処理は、どのような種類のゲームを実行する処理であってもよく、本実施形態においては、ゲームプレイヤが行うゲームの内容や種類はどのようなものであってもよい。
【0161】
次に、端末用画像に関するゲーム処理の概要について説明する。図14は、端末装置7に表示されるゲーム画像(端末用画像)の一例を示す図である。図14に示すように、端末装置7には、カメラキャラクタ102(より具体的には、カメラキャラクタ102が持つカメラオブジェクト103)から見たゲーム空間を表すゲーム画像が表示される。カメラキャラクタ102は、上述のカメラプレイヤによって操作されるオブジェクトである。ここでは、図13に示すようにカメラオブジェクト103がプレイヤキャラクタ101の方を向いているので、端末用画像としては、図14に示すようにプレイヤキャラクタ101を含む画像が表示される。
【0162】
ゲーム装置3は、端末用仮想カメラを端末操作データに基づいて設定する。端末用仮想カメラは、端末用画像の生成に用いられる仮想カメラである。端末用仮想カメラは、テレビ用仮想カメラと同じゲーム空間に配置され、テレビ用仮想カメラとは異なる仮想カメラである。端末用仮想カメラは、端末装置7に対する操作(端末操作データ)に応じて設定されればどのように設定されてもよい。本実施形態においては、カメラキャラクタ102は、端末操作データに基づいてゲーム空間を移動するように制御され、端末用仮想カメラは、カメラキャラクタ102の位置および向きに基づいて設定される。本実施形態においては、ゲーム空間内を移動して撮影を行うカメラマンであるカメラキャラクタ102が登場するので、カメラプレイヤは、端末用仮想カメラの移動を容易に把握することができる。また、詳細は後述するが、本実施形態においては、端末用仮想カメラ(およびカメラオブジェクト103)の姿勢は、端末装置7の姿勢に応じて変化する。これによって、カメラプレイヤは、端末用仮想カメラの向きを直感的かつ容易な操作で変更することができる。
【0163】
ゲーム装置3は、端末用画像として、端末用仮想カメラから見たゲーム空間を表すゲーム画像を生成する。そして、当該ゲーム画像を端末装置7に出力する。端末装置7は、出力されたゲーム画像を受信し、当該ゲーム画像を表示部(LCD51)に表示する。これによって、端末用仮想カメラから見たゲーム空間を表すゲーム画像が端末装置7に表示される。カメラプレイヤは、端末装置7を操作することで端末用仮想カメラの位置および向きを変更することによって、ゲーム空間をいろいろな視点からいろいろな視線方向で見たゲーム画像を端末装置7に表示させることができる。
【0164】
また、ゲーム装置3は、端末装置7に対して所定の撮影操作が行われたことに応じて、端末用画像に関する画像情報を所定の記憶装置に記憶(保存)する。所定の撮影操作は、端末装置7に対する任意の操作でよいが、本実施形態においては、第2Rボタン54Lを押下する操作である。また、上記画像情報は、画像情報に基づいて端末用画像を生成・表示することができる情報であればどのような情報であってもよい。すなわち、画像情報は、端末用画像自体(端末用画像の画像データ)であってもよいし、画像情報とゲームプログラムとを用いることによって端末用画像を生成することが可能な情報(例えば、各オブジェクトおよび端末用仮想カメラの位置や向き等のゲームパラメータ)であってもよい。また、所定の記憶装置は、ゲーム装置3がアクセス可能な記憶装置であれば何でもよく、例えばゲーム装置3のメインメモリまたはフラッシュメモリ17に画像情報が記憶される。
【0165】
以上のように、本実施形態においては、ゲームプレイヤが行うゲームのゲーム空間に端末用仮想カメラが設定される。そして、カメラプレイヤは、端末用仮想カメラを操作することで所望の視点および視線方向からゲーム空間を見た画像を端末装置7に表示することができ、撮影操作によって当該画像を保存することができる。したがって、カメラプレイヤは、テレビ2に表示される(ゲームプレイヤ用の)画像の視点(または視線)に限らず、より自由な視点からゲーム空間内を撮影することができる。また、撮影される画像は操作装置である端末装置7に表示されるので、カメラプレイヤは、撮影される画像を手元の操作装置で容易に確認することができる。
【0166】
なお、本実施形態においては、ゲーム装置3は、コントローラ操作データに基づいてプレイヤキャラクタ101の動作を制御するゲーム処理を実行する。そして、端末用仮想カメラの視野範囲にプレイヤキャラクタ101が含まれる場合には、ゲーム装置3は、プレイヤキャラクタ101の画像を含む端末用画像を生成する(図14)。したがって、カメラプレイヤは、ゲームプレイヤの操作対象であるプレイヤキャラクタ101を、テレビ2に表示されるゲーム画像の視点とは異なる視点から撮影することも可能である。
【0167】
[6.ゲーム処理の詳細]
次に、本ゲームシステムにおいて実行されるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる各種データについて説明する。図15は、ゲーム処理において用いられる各種データを示す図である。図15において、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図15に示すように、ゲーム装置3のメインメモリには、ゲームプログラム110、受信データ111、および処理用データ116が記憶される。なお、メインメモリには、図15に示すデータの他、ゲームに登場する各種オブジェクトの画像データやゲームに使用される音声データ等、ゲームに必要なデータが記憶される。
【0168】
ゲームプログラム110は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム110は、光ディスク4に代えて、フラッシュメモリ17やゲーム装置3の外部装置から(例えばインターネットを介して)取得されてもよい。また、ゲームプログラム110に含まれる一部(例えば、コントローラ5および/または端末装置7の姿勢を算出するためのプログラム)については、ゲーム装置3内に予め記憶されていてもよい。
【0169】
受信データ111は、コントローラ5および端末装置7から受信される各種のデータである。受信データ111は、コントローラ操作データ112および端末操作データ113を含む。コントローラ5が複数接続される場合には、コントローラ操作データ112はコントローラ5毎に記憶される。端末装置7が複数接続される場合には、端末操作データ113(後述するカメラ画像データおよびマイク音声データも同様)は端末装置7毎に記憶される。
【0170】
コントローラ操作データ112は、コントローラ5に対するユーザ(プレイヤ)の操作を表すデータであり、コントローラ5に対する操作に基づいてコントローラ5から出力(送信)される。コントローラ操作データ112は、コントローラ5から送信されてゲーム装置3において取得され、メインメモリに記憶される。なお、ゲーム装置3は、複数のコントローラと通信可能であり、各コントローラから操作データをそれぞれ取得することが可能である。コントローラが複数である場合、各コントローラからそれぞれ送信されてくる各コントローラ操作データがメインメモリにそれぞれ記憶される。メインメモリには、コントローラ毎に最新の(最後に取得された)ものから順に所定個数のコントローラ操作データが記憶されてもよい。
【0171】
本実施形態においては、コントローラ操作データ112は、メインコントローラ8から取得されるデータとして、メイン操作ボタンデータ、メイン加速度データ、角速度データ、およびマーカ座標データを含む。メイン操作ボタンデータは、メインコントローラ8に設けられる各操作ボタン32a〜32iに対する入力状態を表すデータである。具体的には、メイン操作ボタンデータは、各操作ボタン32a〜32iが押下されているか否かを表す。メイン加速度データは、メインコントローラ8の加速度センサ37によって検出された加速度(加速度ベクトル)を表すデータである。ここでは、メイン加速度データは、図3に示すXYZの3軸の方向に関する加速度を各成分とする3次元の加速度を表すものであるが、他の実施形態においては、任意の1以上の方向に関する加速度を表すものであってもよい。角速度データは、メインコントローラ8におけるジャイロセンサ48によって検出された角速度を表すデータである。ここでは、角速度データは、図3に示すXYZの3軸回りのそれぞれの角速度を表すものであるが、他の実施形態においては、任意の1軸以上の軸回り角速度を表すものであればよい。マーカ座標データ、撮像情報演算部35の画像処理回路41によって算出される座標、すなわち上記マーカ座標を表すデータである。マーカ座標は、撮像画像に対応する平面上の位置を表すための2次元座標系で表現され、マーカ座標データは、当該2次元座標系における座標値を表す。
【0172】
また、本実施形態においては、サブコントローラ9から(メインコントローラ8を介して)取得されるデータとして、コントローラ操作データ112は、サブスティックデータ、サブ操作ボタンデータ、および、サブ加速度データを含む。サブスティックデータは、サブコントローラ9のアナログジョイスティック91に対する操作を表すデータである。具体的には、サブスティックデータは、アナログジョイスティック91に対する傾倒方向および傾倒量を表す。サブ操作ボタンデータは、上記サブコントローラ9に設けられる各操作ボタンに対する入力状態を表すデータである。具体的には、サブ操作ボタンデータは、各操作ボタンが押下されているか否かを表す。サブ加速度データは、サブコントローラ9の加速度センサ93によって検出された加速度(加速度ベクトル)を表すデータである。ここでは、サブ加速度データは、図7に示すx’y’z’の3軸の方向に関する加速度を各成分とする3次元の加速度を表すものであるが、他の実施形態においては、任意の1以上の方向に関する加速度を表すものであってもよい。
【0173】
なお、コントローラ操作データ112は、コントローラ5に対するプレイヤの操作を表すものであればよく、本実施形態においてコントローラ操作データ112に含まれる各データの一部のみを含むものであってもよい。また、コントローラ5が他の入力手段(例えば、タッチパネルやアナログスティック等)を有する場合には、コントローラ操作データ112は、当該他の入力手段に対する操作を表すデータを含んでいてもよい。なお、コントローラ5自体の姿勢をゲーム操作として用いる場合には、コントローラ操作データ112は、メイン加速度データ、角速度データ、マーカ座標データ、またはサブ加速度データのように、コントローラ5自体の姿勢に応じて値が変化するデータを含むようにする。
【0174】
端末操作データ113は、端末装置7に対するプレイヤの操作を表すデータである。端末操作データ113は、端末装置7から送信されてゲーム装置3において取得され、メインメモリに記憶される。なお、ゲーム装置3は、複数の端末装置と通信可能であり、各端末装置から操作データをそれぞれ取得することが可能である。端末装置が複数である場合、各端末装置からそれぞれ送信されてくる各端末操作データがメインメモリにそれぞれ記憶される。メインメモリには、端末装置毎に最新の(最後に取得された)ものから順に所定個数の端末操作データが記憶されてもよい。
【0175】
図15に示すように、端末操作データ113は、角速度データ114および加速度データ115を含む。角速度データ114は、ジャイロセンサ74によって検出された角速度を表すデータである。本実施形態では、角速度データ114は、図9に示すxyzの3軸回りのそれぞれの角速度を表すものであるが、他の実施形態においては、任意の1軸以上の軸回り角速度を表すものであればよい。加速度データ115は、加速度センサ73によって検出された加速度(加速度ベクトル)を表すデータである。本実施形態では、加速度データ115は、図9に示すxyzの3軸の方向に関する加速度を各成分とする3次元の加速度を表すものであるが、他の実施形態においては、任意の1以上の方向に関する加速度を表すものであればよい。上記ジャイロセンサ74および加速度センサ73は、慣性センサの一例である。ゲーム装置3は、慣性センサの検出結果(角速度データ114および加速度データ115)に基づいて端末装置7の姿勢を算出することができる。
【0176】
また、端末操作データ113は、操作ボタンデータ、スティックデータ、タッチ位置データ、および方位データを含む。操作ボタンデータは、端末装置7に設けられる各操作ボタン54A〜54Lに対する入力状態を表すデータである。具体的には、操作ボタンデータは、各操作ボタン54A〜54Lが押下されているか否かを表す。スティックデータは、アナログスティック53(アナログスティック53Aおよび53B)のスティック部がスライドした(または傾倒した)方向および量を表すデータである。上記方向および量は、例えば2次元座標や2次元ベクトルとして表されてもよい。タッチ位置データは、タッチパネル52の入力面において入力が行われた位置(タッチ位置)を表すデータである。本実施形態では、タッチ位置データは、上記入力面上の位置を示すための2次元座標系の座標値を表す。なお、タッチパネル52がマルチタッチ方式である場合には、タッチ位置データは複数のタッチ位置を表すこともある。方位データは、磁気センサ72によって検出された方位を表すデータである。本実施形態では、方位データは、端末装置7を基準として所定の方位(例えば北)の向きを表す。なお、地磁気以外の磁界が発生している場合においては、方位データは厳密には絶対的な方位(北等)を示さないことになる。ただし、その場所における磁界の方向に対する端末装置7の相対的な方向が方位データによって示されるので、そのような場合であっても方位データに基づいて端末装置7の姿勢または姿勢の変化を算出することが可能である。
【0177】
なお、端末操作データ113は、端末装置7に対する操作を表すものであればよく、本実施形態において端末操作データ113が含む上記各データのいずれか1つのみを含むものであってもよい。また、端末装置7が他の入力手段(例えば、タッチパッドや、コントローラ5の撮像手段等)を有する場合には、端末操作データ113は、当該他の入力手段に対する操作を表すデータを含んでいてもよい。なお、本実施形態のように端末装置7自体の動きをゲーム操作として用いる場合には、端末操作データ113は、加速度データ115、角速度データ114、または方位データのように、端末装置7の動きに関する情報を表すデータ(動きに応じて値が変化するデータ)を含むことが好ましい。なお、端末装置7の動きに関する情報とは、例えば、端末装置7の位置、姿勢、位置の変化(速度)、姿勢の変化(角速度)、加速度、角加速度等の情報である。
【0178】
また、受信データ111は、上記各操作データの他、カメラ画像データおよびマイク音声データを含む。カメラ画像データは、端末装置7のカメラ56によって撮像された画像(撮像画像)を表すデータである。カメラ画像データは、端末装置7から送信されてくる圧縮された画像データがコーデックLSI27によって伸張された画像データであり、入出力プロセッサ11aによってメインメモリに記憶される。マイク音データは、端末装置7のマイク79によって検出された音声(マイク音)を表すデータである。マイク音データは、端末装置7から送信されてくる圧縮された音声データがコーデックLSI27によって伸張された音声データであり、入出力プロセッサ11aによってメインメモリに記憶される。
【0179】
処理用データ116は、後述するゲーム処理(図16)において用いられるデータである。処理用データ116は、端末姿勢データ117、プレイヤキャラクタデータ118、カメラキャラクタデータ119、テレビ用カメラデータ120、端末用カメラデータ121、画像情報データ122、およびカメラ設定データ123を含む。なお、図15に示すデータの他、処理用データ116は、ゲームに登場する各種オブジェクトに設定される各種パラメータを表すデータ等、ゲーム処理において用いられる各種データを含む。
【0180】
端末姿勢データ117は、端末装置7の姿勢を表すデータである。端末装置7の姿勢は、例えば、所定の基準姿勢から現在の端末装置7の姿勢への回転を表す回転行列によって表現されてもよいし、3次のベクトルまたは3つの角度によって表現されてもよい。また、本実施形態においては、端末装置7の姿勢として3次元空間における姿勢が用いられるが、他の実施形態においては、2次元平面における姿勢が用いられてもよい。本実施形態では、端末姿勢データ117は、上記端末操作データ113に含まれる角速度データ114および加速度データ115に基づいて算出される。端末姿勢データ117の算出方法についてはステップS21で後述する。
【0181】
プレイヤキャラクタデータ118は、プレイヤキャラクタ101に設定される各種情報を表す。ここでは、プレイヤキャラクタ101の位置および向き等を表す。本実施形態においては、プレイヤキャラクタ101の位置および向きは、コントローラ操作データ112に基づいて算出される。
【0182】
カメラキャラクタデータ119は、カメラキャラクタ102に設定される各種情報を表す。ここでは、カメラキャラクタ102の位置および向きを表す。本実施形態においては、カメラキャラクタ102の位置および向きは、端末操作データ113(より具体的には、端末操作データ113に含まれるスティックデータ)に基づいて算出される。
【0183】
テレビ用カメラデータ120は、ゲーム空間に設定されるテレビ用仮想カメラの位置および姿勢を表す。本実施形態においては、テレビ用仮想カメラはプレイヤキャラクタ101の位置および向きに基づいて設定される。
【0184】
端末用カメラデータ121は、ゲーム空間に設定される端末用仮想カメラの位置および姿勢を表す。本実施形態においては、端末用仮想カメラは端末操作データ113(カメラキャラクタデータ119)に基づいて設定される。
【0185】
画像情報データ122は、上述の画像情報を表すデータである。本実施形態においては、画像情報データ122は、端末用画像自体の画像データである。そのため、本実施形態においては、ゲームプログラム110を実行する環境にない情報処理装置においても、撮影(保存)されたゲーム画像を表示することができる。
【0186】
カメラ設定データ123は、カメラオブジェクト103による撮影に関する各種の設定情報を表すデータである。この設定情報とは、例えば、ズーム、シャッタースピード、焦点距離、レンズの種類等、カメラに関する各種のパラメータである。なお、保存される端末用画像に対して施される加工処理は、この設定情報に応じて変更されてもよい。つまり、カメラ設定データ123は、保存される端末用画像に対して施される加工処理の内容を表すデータであるとも言え、端末用画像の保存に関する設定を表すデータであるとも言える。本実施形態においては、カメラ設定データ123は、カメラプレイヤによる指示に基づいて、すなわち、端末操作データ113に基づいて設定される。
【0187】
次に、ゲーム装置3において実行されるゲーム処理の詳細を、図16〜図20を用いて説明する。図16は、ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図16に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、ゲーム装置3においては、電源投入後にゲームプログラムがすぐに実行される構成であってもよいし、電源投入後にまず所定のメニュー画面を表示する内蔵プログラムが実行され、その後例えばプレイヤによるメニュー画面に対する選択操作によってゲームの開始が指示されたことに応じてゲームプログラムが実行される構成であってもよい。
【0188】
なお、図16〜図18に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU10が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、CPU10以外のプロセッサや専用回路が実行するようにしてもよい。
【0189】
まずステップS1において、CPU10は初期処理を実行する。初期処理は、ゲーム空間を構築し、ゲーム空間に登場する各オブジェクトを初期位置に配置したり、ゲーム処理で用いる各種パラメータの初期値を設定したりする処理である。なお、本実施形態においては、プレイヤキャラクタ101およびカメラキャラクタ102が所定の位置および所定の向きでゲーム空間内に配置される。プレイヤキャラクタ101の位置および向きを表すデータはプレイヤキャラクタデータ118としてメインメモリに記憶される。また、カメラキャラクタ102の位置および向きを表すデータはカメラキャラクタデータ119としてメインメモリに記憶される。また、テレビ用仮想カメラおよび端末用仮想カメラが、所定の初期位置および初期姿勢で設定される。テレビ用仮想カメラは、プレイヤキャラクタ101が視野範囲に含まれるような、予め定められた位置および姿勢に設定される。端末用仮想カメラは、カメラキャラクタ102が視野範囲に含まれるような、予め定められた位置および姿勢に設定される。テレビ用仮想カメラの初期位置および初期姿勢を表すデータはテレビ用カメラデータ120としてメインメモリに記憶され、端末用仮想カメラの初期位置および初期姿勢を表すデータは、端末用カメラデータ121としてメインメモリに記憶される。また、カメラ設定データ123として、予め定められた設定情報を表すデータがメインメモリに記憶される。ステップS1の次にステップS2の処理が実行される。以降、ステップS2〜S9の一連の処理からなる処理ループが所定時間(1フレーム時間。例えば1/60秒)に1回の割合で繰り返し実行される。
【0190】
ステップS2において、CPU10は、各操作データ(コントローラ操作データおよび端末操作データ)を取得する。すなわち、コントローラ5はコントローラ操作データをゲーム装置3へ繰り返し送信するので、ゲーム装置3においては、コントローラ通信モジュール19がコントローラ操作データを逐次受信し、受信されたコントローラ操作データが入出力プロセッサ11aによってメインメモリに逐次記憶される。コントローラ5とゲーム装置3との間における送受信の間隔はゲームの処理時間よりも短い方が好ましく、例えば200分の1秒である。ステップS2においては、CPU10は、最新のコントローラ操作データ112をメインメモリから読み出す。また、CPU10は、端末装置7から送信されてくる端末操作データを取得する。端末装置7は、端末操作データをゲーム装置3へ繰り返し送信するので、ゲーム装置3は端末操作データを逐次受信する。ゲーム装置3においては、端末通信モジュール28が端末操作データを逐次受信し、入出力プロセッサ11aが端末操作データをメインメモリに逐次記憶する。ステップS2においては、CPU10は、最新の端末操作データ113をメインメモリから読み出す。ステップS2の次にステップS3の処理が実行される。
【0191】
ステップS3において、CPU10はゲーム制御処理を実行する。ゲーム制御処理は、プレイヤによる操作に基づいてオブジェクトを制御する処理等によってゲームを進行させる処理である。以下、図17を参照して、ゲーム制御処理の詳細について説明する。
【0192】
図17は、図16に示すゲーム制御処理(ステップS3)の詳細な流れを示すフローチャートである。ゲーム制御処理においてはまずステップS11〜S13において、ゲームプレイヤのためのゲームを進行させる上記メインゲーム処理が実行される。
【0193】
ステップS11において、CPU10は、コントローラ操作データに基づいてプレイヤキャラクタ101の動作を制御する。プレイヤキャラクタ101は、コントローラ操作データ112に基づいて制御されればどのように制御されてもよいが、本実施形態では、プレイヤキャラクタ101によるゲーム空間内の移動が制御される。具体的には、CPU10は、方向入力デバイス(十字ボタン32aまたはアナログジョイスティック91)に対する方向入力に応じてプレイヤキャラクタ101を移動させる。なお、CPU10は、プレイヤキャラクタ101の移動制御の他、例えば、所定のボタン(Aボタン32d等)に対する操作に応じて所定の動作(例えば攻撃動作等)を行わせる制御を行うようにしてもよい。CPU10は、ステップS2で読み出したコントローラ操作データ112に基づいて、プレイヤキャラクタ101の状態(位置および向き)を表すデータを算出する。そして、算出された状態を表すデータを新たなプレイヤキャラクタデータ118としてメインメモリに記憶する。ステップS11の次に、ステップS12の処理が実行される。
【0194】
ステップS12において、CPU10は、プレイヤキャラクタ101の位置および/または向きに基づいてテレビ用仮想カメラを設定する。テレビ用仮想カメラの具体的な設定方法はどのような方法であってもよい。本実施形態では、テレビ用仮想カメラは、プレイヤキャラクタ101が、テレビ用仮想カメラによって生成されるゲーム画像に含まれるように設定される。具体的には、テレビ用仮想カメラは、プレイヤキャラクタ101の後方であってプレイヤキャラクタ101よりもやや高い所定位置に設定され、プレイヤキャラクタ101の方を向く姿勢に設定される(図13参照)。なお、他の実施形態においては、テレビ用仮想カメラは、プレイヤキャラクタ101の位置に設定されてもよい。ステップS12の具体的な処理としては、CPU10は、プレイヤキャラクタデータ118をメインメモリから読み出し、プレイヤキャラクタ101の位置および向きに基づいてテレビ用仮想カメラの位置および姿勢を算出する。そして、算出された位置および姿勢を表すデータをテレビ用カメラデータ120としてメインメモリに記憶する。ステップS12の次にステップS13の処理が実行される。
【0195】
ステップS13において、CPU10は、その他のメインゲーム処理を行う。その他のメインゲーム処理とは、上記ステップS11〜S12の処理以外にメインゲーム処理として実行される処理である。上記その他のメインゲーム処理には、例えば、ゲーム空間に登場する敵キャラクタの動作を制御する処理や、各オブジェクト同士の当たり判定処理等が含まれる。これらの処理の他、ステップS13においてはゲームの進行に必要な処理が適宜実行される。上記ステップS13の次に、ステップS14の処理が実行される。
【0196】
なお、上記ステップS13においてオブジェクト(例えば敵キャラクタ)の動作が制御される場合、CPU10は、カメラキャラクタ102に基づいて(カメラキャラクタ102を考慮して)オブジェクトの制御を行ってもよい。例えば、CPU10は、カメラキャラクタ102に対して攻撃を仕掛けるように敵キャラクタを動作させてもよい。これによれば、カメラプレイヤは、単にカメラキャラクタ102を移動させて撮影を行うだけでなく、他のオブジェクトの動作を考慮しつつ撮影を行う必要があり、ゲーム性の高いゲームを提供することができる。また、CPU10は、カメラキャラクタ102とは独立して(カメラキャラクタ102とは無関係に)上記オブジェクトの制御を行ってもよい。なお、この場合でも、カメラキャラクタ102と他のオブジェクトとの当たり判定処理を実行することによって、興趣性の高いゲームを提供することができる。例えば、プレイヤキャラクタ101と敵キャラクタとが射撃を行って対戦するゲームにおいては、カメラプレイヤは、カメラキャラクタ102が流れ弾に当たらないように注意しつつ、所望のゲーム画像を撮影する必要がある。これによれば、カメラキャラクタ102がプレイヤキャラクタ101のゲームを邪魔せず、かつ、カメラプレイヤにとっても興趣性の高いゲームを実現することができる。
【0197】
ステップS14〜S20においては、カメラプレイヤによる操作に応じてゲームを進行させる処理(カメラゲーム処理)が行われる。ステップS14において、CPU10は端末装置7の姿勢を算出する。本実施形態においては、端末装置7の姿勢は、端末操作データが表す、姿勢を算出するための物理量に基づいて算出される。なお、本実施形態においては、姿勢を算出するための物理量として、角速度データ114が表す角速度と、加速度データ115が表す加速度が用いられる。以下、姿勢算出処理の詳細について説明する。
【0198】
姿勢算出処理においては、まず、CPU10は、角速度データ114に基づいて端末装置7の姿勢を算出する。角速度に基づく姿勢を算出する方法はどのような方法であってもよいが、当該姿勢は、前回の姿勢(前回の処理ループにおけるステップS14で算出された姿勢)と、今回の角速度(今回の処理ループにおけるステップS2で取得された角速度)とを用いて算出される。具体的には、CPU10は、前回の姿勢を今回の角速度で単位時間分だけ回転させることによって姿勢を算出する。なお、前回の姿勢は、メインメモリに記憶されている端末姿勢データ117により表され、今回の角速度は、メインメモリに記憶されている角速度データ114により表される。したがって、CPU10は、端末姿勢データ117および角速度データ114をメインメモリから読み出して、端末装置7の姿勢を算出する。以上のようにして算出された姿勢を表すデータはメインメモリに記憶される。
【0199】
なお、角速度から姿勢を算出する場合、初期姿勢を定めておくのがよい。つまり、端末装置7の姿勢を角速度から算出する場合には、CPU10は、最初に端末装置7の初期姿勢を設定しておく。端末装置7の初期姿勢は、加速度データ115に基づいて算出されてもよいし、端末装置7を特定の姿勢にした状態でプレイヤに所定の操作を行わせることで、所定の操作が行われた時点における特定の姿勢を初期姿勢として設定するようにしてもよい。なお、空間における所定方向を基準とした絶対的な姿勢として端末装置7の姿勢を算出する場合には上記初期姿勢を算出することが良いが、例えばゲーム開始時点における端末装置7の姿勢を基準とした相対的な姿勢として端末装置7の姿勢を算出する場合には、上記初期姿勢は算出されなくても良い。
【0200】
角速度に基づいて姿勢を算出すると次に、CPU10は、算出された姿勢を、端末装置7の加速度に基づいて補正する。ここで、端末装置7がほぼ静止している状態では、端末装置7に対して加えられる加速度は重力加速度に相当する。つまり、この状態では、加速度データ115が表す加速度ベクトルは、端末装置7における重力方向を表す。したがって、CPU10は、角速度に基づいて算出された姿勢の下方向(重力方向)を、加速度ベクトルの表す重力方向へ近づける補正を行う。すなわち、上記下方向が加速度ベクトルの表す重力方向へ所定の割合で近づくように、上記姿勢を回転させる。これによって、角速度に基づく姿勢を、加速度に基づく重力方向を考慮した姿勢となるように補正することができる。なお、上記所定の割合は、予め定められた固定値であってもよいし、検出される加速度等に応じて設定されてもよい。例えば、CPU10は、検出される加速度の大きさが重力加速度の大きさに近い場合には、上記姿勢の下方向を加速度ベクトルの表す重力方向へ近づける割合を大きくし、検出される加速度の大きさが重力加速度の大きさから離れている場合には、当該割合を小さくするようにしてもよい。
【0201】
具体的には、CPU10は、角速度に基づいて算出された姿勢を表すデータと、加速度データ115とをメインメモリから読み出し、上記の補正を行う。そして、補正が行われた後の姿勢を表すデータを端末姿勢データ117としてメインメモリに記憶する。以上のステップS14の次にステップS15の処理が実行される。
【0202】
また、本実施形態においては、CPU10は、慣性センサ(加速度センサ73およびジャイロセンサ74)の検出結果に基づいて端末装置7の姿勢を算出した。ここで、他の実施形態においては、端末装置7の姿勢の算出方法はどのような方法であってもよい。例えば、他の実施形態においては、端末装置7が他のセンサ部(例えば磁気センサ72やカメラ56)を有している場合には、当該他のセンサ部の検出結果を用いてコントローラ5の姿勢が算出されてもよい。すなわち、CPU10は、磁気センサ72によって検出される方位データから、端末装置7を基準とした所定の方位(すなわち、所定の方位を基準とした端末装置7の姿勢)を知ることができる。したがって、他の実施形態においては、CPU10は、角速度データ114および加速度データ115に加えて、上記方位データをさらに用いて端末装置7の姿勢を算出してもよい。方位データを用いて端末装置7の姿勢を算出する場合には、実空間における所定方向を基準とした絶対的な姿勢を算出することができるので、端末装置7の姿勢をより正確に算出することができる。なお、方位データに関して、地磁気以外の磁界が発生している場所においては、方位データは厳密には絶対的な方位(北等)を示さないことになるが、その場所における磁界の方向に対する端末装置7の相対的な方向が示されるので、そのような場合であっても端末装置7の姿勢を算出することが可能である。また、他の実施形態においては、上記3つのデータのうち1つまたは2つに基づいて姿勢を算出するようにしてもよい。また、例えば、ゲームシステム1が端末装置7を撮像するカメラを備えている場合には、ゲーム装置3は当該カメラで端末装置7を撮像した撮像結果を取得し、撮像結果を用いて端末装置7の姿勢を算出するようにしてもよい。
【0203】
ステップS15において、CPU10は、端末装置7が鉛直状態にあるか否かを判定する。ここで、鉛直状態とは、端末装置7(LCD51)の画面が所定の基準よりも鉛直に近い姿勢となった状態である。なお、端末装置7(LCD51)の画面が所定の基準よりも水平に近い姿勢となった状態を「水平状態」と呼ぶ。ステップS15の判定処理は、端末装置7が鉛直状態であるか、それとも水平状態であるか判定するための処理である。
【0204】
ステップS15の判定は、端末装置7が鉛直状態にあるか否かを判定することができればどのような方法で行われてもよい。CPU10は、端末装置7の姿勢を算出(推測)することが可能なデータを取得し、当該データに基づいて上記の判定を行うようにしてもよい。本実施形態においては、CPU10は、端末姿勢データ117をメインメモリから読み出し、端末装置7の姿勢に基づいてステップS15の判定を行う。CPU10は、端末装置7の姿勢からLCD51の画面に垂直な方向を表すベクトルを算出し、当該ベクトルの向きあるいは当該ベクトルの鉛直方向成分の大きさに基づいて上記の判定を行うことができる。なお、他の実施形態においては、ステップS15の判定は、端末装置7の姿勢を算出(推測)することが可能なデータとして、例えば加速度データ115を用いて行われてもよい。例えば、CPU10は、加速度データ115が表すベクトルの各成分のうち、端末装置7の画面に垂直な方向の成分の大きさによって、上記の判定を行うことができる。
【0205】
上記ステップS15の判定結果が肯定である場合(すなわち、端末装置7が鉛直状態である場合)、後述するステップS18の処理が実行される。一方、ステップS15の判定結果が否定である場合(すなわち、端末装置7が水平状態である場合)、ステップS16の処理が実行される。
【0206】
ステップS16において、CPU10は、端末操作データ113に基づいてカメラキャラクタ102の移動を制御する。カメラキャラクタ102の移動は、端末操作データ113に基づいて制御されればどのように制御されてもよい。本実施形態においては、CPU10は、端末装置7が備える方向入力デバイス(例えば左アナログスティック53a)に対する方向入力に応じてカメラキャラクタ102を移動させる。例えば、カメラキャラクタ102は、上下方向の方向入力に応じて前進あるいは後退し、左右方向の方向入力に応じて左右に旋回(あるいは平行移動)してもよい。なお、CPU10は、カメラキャラクタ102の移動の他、例えば、所定のボタンに対する操作に応じて所定の動作の制御を行うようにしてもよい。ステップS16の具体的な処理としては、CPU10は、ステップS2で読み出した端末操作データ113に基づいて、カメラキャラクタ102の位置および向きを表すデータを算出する。そして、算出された状態を表すデータを新たなカメラキャラクタデータ119としてメインメモリに記憶する。ステップS16の次に、ステップS17の処理が実行される。
【0207】
なお、他の実施形態においては、ゲーム空間の領域のうち、カメラキャラクタ102が移動可能な領域が定められていてもよい。つまり、CPU10は、定められた(移動可能な)領域内においてカメラキャラクタ102の移動を制御するようにしてもよい。カメラキャラクタ102が移動可能な領域として、例えば、プレイヤキャラクタ101が移動可能な領域とは異なる(一部が重複してもよい)領域が予め定められていてもよい。また、カメラキャラクタ102が移動不可能である領域として、プレイヤキャラクタ101を含む所定領域(具体的にはプレイヤキャラクタ101を中心とする所定範囲内)が定められてもよい。このように、カメラキャラクタ102が移動可能な領域を設定し、移動可能な範囲を制限することによって、カメラキャラクタ102がプレイヤキャラクタ101の邪魔をしないようにすることができる。
【0208】
ステップS17において、CPU10は、カメラキャラクタ102の位置に基づいて端末用仮想カメラを設定する。端末用仮想カメラの具体的な設定方法はどのような方法であってもよい。本実施形態においては、CPU10は、カメラキャラクタ102を含むゲーム空間を表す画像を生成するように、端末用仮想カメラを設定する。つまり、端末用仮想カメラは、カメラキャラクタ102が視野範囲に含まれるように設定される。端末用画像は、いわゆる三人称視点のゲーム画像となる。具体的には、端末用仮想カメラは、カメラキャラクタ102を上方(真上でもよい)の位置からカメラキャラクタ102の方を向く姿勢に設定される。図18は、端末装置7が水平状態である場合に表示される端末用画像の一例を示す図である。本実施形態においては、図18に示すように、カメラキャラクタ102を上方から見た視点でゲーム空間を表す、マップ画像のような画像が生成されるように端末用仮想カメラが設定される。このように、端末装置7が水平状態である場合には、カメラプレイヤによるカメラキャラクタ102の移動操作に適した画像が生成される。なお、他の実施形態においては、端末用仮想カメラは、カメラキャラクタ102の後方(かつ、やや上方であってもよい)の位置からカメラキャラクタ102の方を向く姿勢に設定されてもよい。これによっても本実施形態と同様、端末用仮想カメラの視野範囲にカメラキャラクタ102が含まれる。ステップS17の具体的な処理としては、CPU10は、カメラキャラクタデータ119をメインメモリから読み出し、カメラキャラクタ102の位置および向きに基づいて端末用仮想カメラの位置および姿勢を算出する。そして、算出された位置および姿勢を表すデータを端末用カメラデータ121としてメインメモリに記憶する。ステップS17の次に、後述するステップS20の処理が実行される。
【0209】
以上のステップS17の処理のように、本実施形態においては、端末装置7が水平状態である場合においては、カメラキャラクタ102を含むゲーム空間を表す端末用画像が生成される。これによって、カメラプレイヤは、端末装置7が水平状態にすることによって、カメラキャラクタ102の移動操作が行いやすくなる。
【0210】
一方、ステップS18において、CPU10は、カメラに関する設定情報(ズームやシャッタースピード等)を変更する。なお、設定情報の変更は、所定の条件が満たされた場合に行われ、それ以外の場合には行われない(ステップS18では処理が行われずにスキップされる)。所定の条件はどのような条件であってもよいが、本実施形態における所定の条件は、カメラプレイヤが所定の変更指示を行ったことである。具体的には、例えば端末装置7の右アナログスティック35bに対して上下方向の方向入力が行われた場合、CPU10は設定情報としてズームの値を変更する。なお、他の実施形態においては、上記所定の条件は、ゲームの進行に関する条件(例えば、カメラキャラクタ102が所定のアイテムを取得したこと等)であってもよいし、所定のオブジェクトに関する条件(例えば、撮影対象となるオブジェクトが端末用仮想カメラの視野範囲に含まれたこと等)であってもよい。ステップS18において設定情報が変更される場合、CPU10は、変更後の設定情報を表すデータをカメラ設定データ123としてメインメモリに記憶する。ステップS18の次に、ステップS19の処理が実行される。
【0211】
ステップS19において、CPU10は、端末操作データ113に基づいて端末用仮想カメラを設定する。端末用仮想カメラの設定はどのような方法で行われてもよいが、本実施形態では、CPU10は、端末装置7の姿勢に基づいて端末用仮想カメラの姿勢を設定する。なお、端末用仮想カメラの位置は、カメラキャラクタ102の位置に基づいて決定される。つまり、端末用仮想カメラは、カメラキャラクタ102により決められる位置に、端末装置7の姿勢に応じた姿勢となるように設定される。以下、図19を参照して、端末用仮想カメラの設定方法について説明する。
【0212】
図19は、端末装置7の姿勢と、端末用仮想カメラの姿勢との関係を示す図である。図19に示す表の左欄は、端末装置7が鉛直状態となった時点における状態(基準状態と呼ぶ)を示す。図19に示すように、本実施形態においては、端末用仮想カメラ104はカメラオブジェクト103の位置に設定される。カメラオブジェクト103の位置はカメラキャラクタ102の位置によって決められる。また、基準状態となった時点においては、端末用仮想カメラ104は、ヨー方向(鉛直方向を軸とした回転方向)に関しては、カメラキャラクタ102の正面方向を向くように設定される。一方、ロール方向およびピッチ方向に関しては、端末用仮想カメラ104は、端末装置7の姿勢に応じた姿勢となるように設定される。
【0213】
また、図19に示す表の右欄は、上記基準状態から右方向へ端末装置7を回転させた状態を示す。このとき、端末用仮想カメラ104は、端末装置7の回転量と同じ量だけ、基準状態における姿勢から視線方向を右方向に向けた姿勢となる(図19に示す表の右欄下段を参照)。つまり、基準状態における姿勢が設定された後においては、端末用仮想カメラ104は、基準状態における姿勢から、端末装置7の姿勢の変化方向に応じた方向に、変化量に応じた量だけ回転される。端末用仮想カメラ104の姿勢は、端末用仮想カメラ104の視線方向がLCD51の画面に垂直な軸(図8に示すy軸)に対応するように設定される。このように、本実施形態においては、現実空間における端末装置7の姿勢に対応するように、仮想のゲーム空間における端末用仮想カメラの姿勢が制御される。また、本実施形態では、基準状態から端末装置7の姿勢が変化した場合、端末用仮想カメラ104の姿勢に加えて位置も若干変化する(図19に示す表の右欄下段を参照)。具体的には、端末用仮想カメラ104は、端末装置7の姿勢に応じて、カメラキャラクタ102の所定位置を中心として回転移動する。
【0214】
なお、ステップS19において、端末用仮想カメラ104の姿勢が基準状態から変化する場合、CPU10は、端末用仮想カメラ104の位置および姿勢に応じて(端末用仮想カメラ104に一致するように)カメラオブジェクト103の位置および姿勢を変化させる。また、CPU10は、カメラオブジェクト103の位置および姿勢に応じてカメラキャラクタ102の体勢を変化させる。これによって、カメラキャラクタ102およびカメラオブジェクト103がテレビ2に表示される場合には、ゲームプレイヤは、表示されるカメラキャラクタ102およびカメラオブジェクト103によって端末用仮想カメラの位置および姿勢をより詳細に知ることができる。したがって、例えばカメラキャラクタ102に所望の角度からプレイヤキャラクタ101を撮影させる場合等、ゲームプレイヤがカメラキャラクタ102による撮影(ゲーム画像の保存)に協力する場合におけるゲーム操作をより行いやすくなる。
【0215】
ステップS19の具体的な処理としては、CPU10は、端末姿勢データ117およびカメラキャラクタデータ119をメインメモリから読み出し、端末装置7の姿勢に基づいてカメラオブジェクト103および端末用仮想カメラの姿勢を算出する。また、カメラキャラクタ102の位置および端末装置7の姿勢に基づいてカメラオブジェクト103および端末用仮想カメラの位置を算出する。また、算出された端末用仮想カメラの位置および姿勢は、端末用カメラデータ121としてメインメモリに記憶される。ステップS19の次にステップS20の処理が実行される。
【0216】
以上のように、本実施形態においては、CPU10は、LCD51の画面が所定の基準よりも水平に近い姿勢となった場合(ステップS15でNoとなる場合)に、カメラキャラクタ102を視野範囲に含むように端末用仮想カメラを設定し、LCD51の画面が所定の基準よりも鉛直に近い姿勢となった場合(ステップS15でYesとなる場合)に、カメラキャラクタ102から見た視点となるように端末用仮想カメラを設定する。これによれば、端末装置7が水平状態となる場合にはカメラキャラクタ102の移動操作に適したゲーム画像が表示され、端末装置7が鉛直状態となる場合には撮影操作に適したゲーム画像が表示される。したがって、本実施形態によれば、カメラプレイヤは、カメラキャラクタ102(端末用仮想カメラ)を移動させる場合には端末装置7を水平にすることで腕が疲れずに操作を行うことができる。また、カメラプレイヤは、撮影操作を行う場合には端末装置7を鉛直にするので、実際のカメラのように端末装置7を操作することができる。これによって、カメラキャラクタ102(端末用仮想カメラ)の移動操作と撮影操作との操作性を向上することができる。また、カメラプレイヤは、2種類の操作の切り替えを容易に行うことができる。
【0217】
また、本実施形態においては、CPU10は、端末装置7の姿勢を算出し(ステップS14)、端末装置7の姿勢に基づいて端末用仮想カメラの姿勢を設定する(ステップS19)。したがって、プレイヤは、端末装置7の姿勢に応じて端末用仮想カメラの向きを変化させることで撮影方向を変化させることができ、直感的かつ容易な操作で撮影方向を変更することができる。
【0218】
また、本実施形態においては、端末装置7が有する方向入力デバイスに対する方向入力を表すデータ(スティックデータ)に基づいてカメラキャラクタ102の位置が算出され(ステップS17)、カメラキャラクタ102の位置に基づいて端末用仮想カメラの位置が設定される(ステップS19)。つまり、CPU10は、上記データに基づいて端末用仮想カメラの位置を設定する。したがって、本実施形態によれば、カメラプレイヤは、方向入力デバイスを用いて端末用仮想カメラを容易に移動することができる。なお、本実施形態においては、端末装置7が鉛直状態である場合にはカメラキャラクタ102は移動できないが、他の実施形態においては、CPU10は、この場合であっても端末操作データに基づいてカメラキャラクタ102の移動を制御するようにしてもよい。なお、この場合におけるカメラキャラクタ102の制御方法は、水平状態である場合と同じであってもよいし異なっていてもよい。例えば、鉛直状態である場合にはいわゆる一人称視点のゲーム画像が表示されるので、CPU10は、水平状態である場合に比べてカメラキャラクタ102の移動速度が遅くなるような方法で制御を行ってもよい。
【0219】
ステップS20において、CPU10は、カメラキャラクタ102と他の所定のオブジェクトとの当たり判定処理を実行する。すなわち、CPU10は、所定のオブジェクトとカメラキャラクタ102とが接触したか否かに応じてカメラキャラクタ102を制御する。具体的には、CPU10は、カメラキャラクタデータ119および必要な処理用データをメインメモリから読み出し、カメラキャラクタ102と他の所定のオブジェクトとが接触するか否かを判定する。そして、接触すると判定される場合には、接触に応じた処理を実行する。ここで、所定のオブジェクトは、上述のメインゲーム処理によって動作が制御されるオブジェクトであれば何でもよく、例えば、プレイヤキャラクタ101や、敵キャラクタや、これらのキャラクタが使用するアイテムのオブジェクト(例えば、これらのキャラクタが射撃を行った場合における弾のオブジェクト)等である。また、接触に応じた処理はどのような処理であってもよく、例えば、カメラキャラクタ102に所定の動作(例えば接触に応じて倒れる動作)を行わせる処理や、カメラキャラクタ102のゲームパラメータを変更する(例えば体力を減少させる)処理であってもよい。また、接触に応じた処理が実行された場合、CPU10は、当該処理によって得られたデータをメインメモリに記憶する。ステップS20の後、CPU10はゲーム制御処理を終了する。
【0220】
上記ステップS20の処理のように、カメラキャラクタ102は、ゲームプレイヤが行うゲームから影響を受けるものであってもよい。例えば、カメラキャラクタ102は、プレイヤキャラクタ101あるいは敵キャラクタと衝突したり、銃の弾に当たったりする。したがって、カメラキャラクタ102を操作して撮影を行うゲームのゲーム性を向上することができ、興趣性の高いゲームを提供することができる。また、カメラキャラクタ102は、ゲームプレイヤが行うゲームに対して影響を与えることになる。そのため、プレイヤキャラクタ101を操作するゲームにおいても、カメラキャラクタ102の動作を考慮してゲームを進める必要があるので、戦略性や興趣性の高いゲームを実現することができる。本実施形態によれば、例えば、カメラキャラクタ102が撮影を行いやすいようにプレイヤキャラクタ101が援護するというように、各プレイヤが協力するゲームを実現することも可能である。また、プレイヤキャラクタ101に射撃されないように逃げながらカメラキャラクタ102が撮影を行うというように、各プレイヤが対戦するゲームを実現することも可能である。
【0221】
なお、他の実施形態においては、カメラキャラクタ102は、ゲームプレイヤが行うゲームから影響を受けない(カメラキャラクタ102は、ゲームプレイヤが行うゲームに対して影響を与えない)ものであってもよい。すなわち、CPU10は、メインゲーム処理によって動作が制御される所定のオブジェクトとカメラキャラクタ102とが接触したか否かとは独立して、カメラキャラクタ102を制御してもよい。つまり、CPU10は上記ステップS20の処理を実行しないようにしてもよい。例えばプレイヤキャラクタ101と敵キャラクタとが銃や大砲を撃ち合う射撃ゲーム(戦争ゲーム)を例にとって説明すると、ゲーム装置3は、カメラキャラクタ102に関しては、プレイヤキャラクタ101や敵キャラクタや銃の弾との当たり判定(接触判定)処理を実行しないようにしてもよい。これによれば、ゲームプレイヤは、カメラキャラクタ102に邪魔されることなくゲームを行うことができる。また、カメラプレイヤもゲームプレイヤが行うゲームによって邪魔されることなくカメラキャラクタ102を操作することができる。カメラキャラクタ102は、ゲームプレイヤが行うゲームの影響を受けることなくゲーム空間を自由に移動することができるので、所望の位置からゲーム画像を撮影(保存)する操作がより行いやすくなる。なお、CPU10は、上記所定のオブジェクトとの当たり判定を実行しない場合であっても、地面や壁や建物といった地形オブジェクトとの当たり判定については実行するようにしてもよい。
【0222】
以上のゲーム制御処理によれば、ゲームプレイヤによる操作に応じてメインゲーム処理が実行される(ステップS11〜S13)とともに、カメラプレイヤによる操作に応じてカメラゲーム処理(ステップS14〜S20)が実行される。ここで、カメラゲーム処理は、メインゲーム処理とは独立して実行されてもよい。例えば、カメラゲーム処理は、メインゲーム処理の開始時に開始(終了)される必要はなく、メインゲーム処理が実行される間に、カメラプレイヤの指示に応じて開始(終了)されてもよい。また、カメラゲーム処理は、メインゲーム処理が一時停止され、プレイヤキャラクタ101や他のオブジェクトが停止している間にも実行されてもよい。また、メインゲーム処理もカメラゲーム処理と同様、カメラゲーム処理が実行される間に、ゲームプレイヤの指示に応じて開始または終了されてもよいし、カメラゲーム処理が一時停止され、カメラキャラクタ102が停止している間にも実行されてもよい。
【0223】
図16の説明に戻り、ステップS3のゲーム制御処理の次にステップS4の処理が実行される。ステップS4においては、テレビ用画像が生成される。すなわち、CPU10およびGPU11bは、ステップS3のゲーム制御処理の結果を表すデータ(ゲーム空間に配置される仮想カメラおよび各キャラクタに関するデータ等)をメインメモリから読み出し、また、ゲーム画像を生成するために必要なデータをVRAM11dから読み出し、テレビ用画像を生成する。本実施形態では、テレビ用仮想カメラは、プレイヤキャラクタ101を視野範囲に含む位置に設定される。したがって、プレイヤキャラクタ101を含む仮想空間内の領域を表すテレビ用画像が生成される。生成されたテレビ用画像はVRAM11dに記憶される。上記ステップS4の次にステップS5の処理が実行される。
【0224】
なお、本実施形態においては、上記ステップS4において、CPU10は、テレビ用仮想カメラの視野範囲にカメラキャラクタ102が含まれる場合、カメラキャラクタ102の画像を含むテレビ用画像を生成する。すなわち、CPU10は、上記の場合には、カメラキャラクタ102も他のオブジェクト同様に描画する。したがって、上記の場合にはカメラキャラクタ102がテレビ2に表示される(図13参照)。これによれば、テレビ2を見てゲームを行うゲームプレイヤはカメラキャラクタ102を視認することができるので、ゲーム中において端末用仮想カメラの位置を容易に把握することができる。これによれば、ゲームプレイヤは、例えばカメラキャラクタ102に所望の角度からプレイヤキャラクタ101を撮影させる等、カメラプレイヤと協力して所望の画像をカメラプレイヤに保存させることができる。このように、本実施形態によれば、ゲームプレイヤは、カメラキャラクタ102による撮影を考慮してゲームを行うことができるので、ゲーム性および興趣性の高いゲームを提供することができる。
【0225】
なお、他の実施形態においては、カメラキャラクタ102はテレビ2には半透明で表示されてもよい。すなわち、上記ステップS4でテレビ用画像が生成される際、カメラキャラクタ102は半透明となるように描画されてもよい。これによれば、ゲーム装置3は、表示上邪魔にならないようにカメラキャラクタ102をテレビ2に表示することができる。
【0226】
また、他の実施形態においては、上記カメラキャラクタ102は、テレビ2には表示されなくてもよい。すなわち、カメラキャラクタ102は、テレビ用画像の生成処理(ステップS4)においては描画されなくてもよい。具体的には、CPU10は、テレビ用仮想カメラの視野範囲にカメラキャラクタ102が含まれる場合であっても、カメラキャラクタ102を描画せずに(透明として取り扱って)テレビ用画像を生成するようにしてもよい。これによれば、カメラキャラクタ102はテレビ2には表示されず、ゲームプレイヤのゲームに表示上の影響を与えないので、ゲームプレイヤはカメラキャラクタ102に邪魔されることなくゲームを行うことができる。
【0227】
ステップS5においては、端末用画像が上記ゲーム制御処理に基づいて生成される。すなわち、CPU10およびGPU11bは、ステップS3のゲーム制御処理の結果を表すデータをメインメモリから読み出し、また、ゲーム画像を生成するために必要なデータをVRAM11dから読み出し、端末用画像を生成する。本実施形態では、端末用仮想カメラは、カメラキャラクタ102の位置(より具体的にはカメラオブジェクト103の位置)に設定される。したがって、カメラキャラクタ102(カメラオブジェクト103)の位置から見たゲーム空間を表す端末用画像が生成される。生成された端末用画像はVRAM11dに記憶される。上記ステップS5の次にステップS6の処理が実行される。
【0228】
なお、上記ステップS5で端末用画像が生成される際、上記ステップS18で設定されたカメラに関する設定情報に基づいて端末用画像に対して所定の加工処理が施されてもよい。例えば、CPU10およびGPU11bは、ズームの値に応じて端末用画像を拡大あるいは縮小する(端末用仮想カメラの視野角を変更してもよい)処理や、焦点距離に応じてオブジェクトの画像をぼかす処理を実行してもよい。これによれば、端末装置7を用いたゲーム画像の撮影(保存)のリアリティが高くなり、カメラプレイヤは、実際のカメラで撮影を行っているかのような感覚を味わうことができる。
【0229】
ステップS6において、CPU10は画像保存処理を実行する。画像保存処理は、端末装置7に対して撮影操作が行われたことに応じて、端末用ゲーム画像に関する画像情報を記憶(保存)する処理である。以下、図20を参照して、画像保存処理の詳細について説明する。
【0230】
図20は、図16に示す画像保存処理(ステップS6)の詳細な流れを示すフローチャートである。画像保存処理においてはまずステップS21において、CPU10は、端末装置7が鉛直状態にあるか否かを判定する。ステップS21の処理は上述のステップS15の処理と同じである。ステップS21の判定結果が肯定である場合(すなわち、端末装置7が鉛直状態である場合)、後述するステップS22の処理が実行される。一方、ステップS21の判定結果が否定である場合(すなわち、端末装置7が水平状態である場合)、CPU10は画像保存処理を終了する。
【0231】
ステップS22において、CPU10は、端末装置7に対して所定の撮影操作が行われたか否かを判定する。撮影操作は、端末用画像の記憶(保存)を行うための操作であり、例えば端末装置7の所定のボタン(ここでは第2Rボタン54L)を押下する操作である。具体的には、CPU10は、ステップS2で取得した端末操作データ113に含まれる操作ボタンデータを参照することによって、上記所定のボタンが押下されたか否かを判定する。ステップS22の判定結果が肯定である場合、ステップS23の処理が実行される。一方、ステップS22の判定結果が否定である場合、CPU10は画像保存処理を終了する。
【0232】
ステップS23において、CPU10は、端末用画像に対する加工処理を実行する。加工処理は、例えばカメラに関する設定情報に基づいて必要に応じて実行される。例えば、設定情報としてシャッタースピードが設定される場合には、CPU10(およびGPU11b)は、シャッタースピードの値に応じて端末用画像の明るさを変更してもよい。また例えば、設定情報として焦点距離が設定される場合には、CPU10(およびGPU11b)は、端末用画像をぼかす程度や焦点を合わせるオブジェクトを焦点距離の値に応じて変更してもよい。なお、加工処理は必要に応じて実行されればよく、設定情報の値によっては加工処理は実行されなくてもよい。また、上記ステップS5において端末用画像を生成する際に実行された加工処理については、ステップS23において再度実行する必要はない。また、他の実施形態においては、撮影操作の操作内容に基づいて加工処理が実行されてもよい。例えば、CPU10(およびGPU11b)は、シャッターを切る長さに応じて画像の明るさを変化させるべく、上記所定のボタンが押下された時間に応じて端末用画像の明るさを変更してもよい。また例えば、CPU10(およびGPU11b)は、保存される画像に撮影操作時の手ブレを反映するべく、撮影操作時における端末装置7の動き(例えば加速度データ115)に応じてブレを生じさせるように端末用画像を加工してもよい。これによれば、撮影操作のリアリティを向上することができ、カメラプレイヤは、実際のカメラで撮影を行っているかのような感覚をより強く味わうことができる。
【0233】
また、上記ステップS23の処理において加工処理の対象となる端末用画像(換言すれば、保存対象となる端末用画像)は、撮影操作が行われた時点に基づく所定のタイミングで端末装置7に表示された端末用画像である。加工処理の対象となる端末用画像は、撮影操作が行われた時点で端末装置7に表示されている画像でもよいし、その時点の前後に表示される画像でもよい。本実施形態では、撮影操作が行われた時点で生成された端末用画像、すなわち、直前のステップS5の処理において生成された端末用画像である。なお、他の実施形態においては、上記所定のタイミングはどのように決められてもよい。例えば、端末用画像にブレを生じさせるように加工処理を行う場合には、CPU10(およびGPU11b)は、上記所定のボタンが押下されている間に生成された複数の端末用画像を加工対象として、当該複数の端末用画像に基づいてブレの生じた画像を生成するようにしてもよい。以上のステップS23の次にステップS24の処理が実行される。
【0234】
ステップS24において、CPU10は、保存すべき端末用画像に関する画像情報を記憶する。ここで、画像情報は、画像情報に基づいて端末用画像を生成・表示することができる情報であればどのような情報であってもよい。本実施形態においては、CPU10は、画像情報として画像データ自体が記憶される。すなわち、CPU10は、ステップS5で生成された端末用画像の画像データ、あるいは、当該画像データに対してステップS23の加工処理が施された画像データを、メインメモリに記憶する。なお、ここでは画像情報がメインメモリに記憶されるものとするが、画像情報を記憶する記憶装置は、ゲーム装置3がアクセス可能な記憶装置であればよい。例えば、他の実施形態においては、画像情報はフラッシュメモリ17に記憶されてもよいし、ゲーム装置3と通信可能な外部の装置に記憶されてもよい。ステップS24の次にステップS25の処理が実行される。
【0235】
以上のように、本実施形態によれば、画像情報として画像データ自体を記憶するので、ゲームプログラム110を実行しない(実行できない)他の情報処理装置においても当該画像データを表示することができる。一方、他の実施形態においては、ゲーム装置3は、画像情報とゲームプログラムとを用いることによって端末用画像を生成することが可能な情報を記憶するようにしてもよい。これによれば、画像情報として記憶するデータ量を低減することができる。なお、上記の情報を記憶する場合には、端末用画像が生成される前にステップS24における保存処理が実行されてもよい。
【0236】
また、上記ステップS23の加工処理およびステップS24の保存処理においては、端末用画像の全領域が対象となる必要はなく、所定の一部の領域のみが対象となってもよい。すなわち、端末用画像のうちの所定の一部の画像に対して加工処理が施され、加工処理が施された画像に関する画像情報が保存されてもよい。上記所定の一部の領域は、予め定められていてもよいし、カメラプレイヤによって定められてもよいし、カメラに関する設定情報(カメラ設定データ123)あるいはゲーム状況に応じて定められてもよい。
【0237】
ステップS25において、CPU10は、記憶された画像情報に基づくゲーム処理を実行する。このゲーム処理は、ステップS24で記憶された画像情報に応じて何らかのゲーム上の効果を発生させる処理であればどのような処理でもよい。例えば、上記のゲーム処理は、予め定められた撮影ターゲットとなるオブジェクトが画像情報によって表される画像内に含まれている場合に得点を加算する処理であってもよい。これによれば、カメラプレイヤは、例えば撮影ターゲットとなるオブジェクトを見つけてそれを撮影する、といった遊び方が可能となり、ゲーム性をより向上することができる。このように、撮影によって保存される画像の内容に応じたゲーム効果を生じさせることで、カメラプレイヤによる撮影操作のゲーム性を向上させることができ、より興趣性の高いゲームを提供することができる。上記ゲーム処理の結果得られたデータはメインメモリに記憶される。上記ステップS25の後、CPU10は画像保存処理を終了する。
【0238】
上記の画像保存処理によれば、端末装置7に対して所定の撮影操作が行われたことに応じて、端末用画像に関する画像情報が記憶(保存)される。これによって、カメラプレイヤは、端末装置7を用いた操作によって所望の端末用画像を保存することができる。
【0239】
なお、上記実施形態においては、CPU10は、端末装置7が鉛直状態である場合にのみ画像情報の記憶を可能とした。これによれば、端末装置7が水平状態である場合において誤操作によって不要な画像情報が記憶されることを防止することができる。なお、他の実施形態においては、CPU10は、鉛直状態である場合に限らず、水平状態である場合にも、画像情報の記憶を可能としてもよい。
【0240】
図16の説明に戻り、ステップS6の次のステップS7において、CPU10は、テレビ2へテレビ用画像を出力する。具体的には、CPU10は、VRAM11dに記憶されたテレビ用画像のデータをAV−IC15へ送る。これに応じて、AV−IC15はテレビ用画像のデータを、AVコネクタ16を介してテレビ2へ出力する。これによって、テレビ用画像がテレビ2に表示される。また、ステップS7においては、ゲーム画像のデータと共にゲーム音声のデータがテレビ2へ出力され、テレビ2のスピーカ2aからゲーム音声が出力されてもよい。ステップS7の次にステップS8の処理が実行される。
【0241】
ステップS8において、CPU10は、端末装置7へ端末用画像を出力(送信)する。具体的には、VRAM11dに記憶された端末用画像の画像データは、CPU10によってコーデックLSI27に送られ、コーデックLSI27によって所定の圧縮処理が行われる。圧縮処理が施された画像のデータは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。端末装置7は、ゲーム装置3から送信されてくる画像のデータを無線モジュール80によって受信し、受信された画像データに対してコーデックLSI76によって所定の伸張処理が行われる。伸張処理が行われた画像データはLCD51に出力される。これによって、端末用画像がLCD51に表示される。また、ステップS8においては、ゲーム画像のデータと共にゲーム音声のデータが端末装置7へ送信され、端末装置7のスピーカ77からゲーム音声が出力されてもよい。ステップS8の次にステップS9の処理が実行される。
【0242】
ステップS9において、CPU10は、ゲームを終了するか否かを判定する。ステップS9の判定は、例えば、いずれかのプレイヤがゲームを中止する指示を行ったか否か等によって行われる。ステップS9の判定結果が否定の場合、ステップS2の処理が再度実行される。一方、ステップS9の判定結果が肯定の場合、CPU10は図16に示すゲーム処理を終了する。なお、ゲーム処理を終了する際には、ゲームデータをメモリカード等にセーブする等の処理が実行されてもよい。以降、ステップS2〜S9の一連の処理は、ステップS9でゲームを終了すると判定されるまで繰り返し実行される。
【0243】
以上に説明したゲーム処理によれば、カメラプレイヤは、ゲームプレイヤがゲームを行うゲーム空間において端末用仮想カメラを操作することができる。したがって、従来よりも自由な視点あるいは視線でゲーム空間の画像を撮影(保存)することが可能となる。
【0244】
また、上記ゲーム処理において保存された画像は、何らかの方法で閲覧可能であればよい。例えば、ゲームプログラム110によって実行されるゲーム中におけるメニュー画面、あるいは、ゲーム装置3の電源投入後に表示されるメニュー画面において、保存された画像を閲覧することが可能であってもよい。また、保存された画像は、所定の画像閲覧用のアプリケーションによって閲覧可能であってもよい。さらに、保存された画像は、ゲーム装置3以外の他の情報処理装置に移送されることによって当該情報処理装置において閲覧可能であってもよい。なお、ゲームプログラムを用いることによって画像を生成することが可能な画像情報が保存される場合には、ゲームプログラムを実行可能な情報処理装置において当該画像の閲覧が可能となる。すなわち、上記の場合、情報処理装置は、ゲームプログラムと画像情報とに基づいて画像を生成し、生成した画像を表示装置に表示する。
【0245】
[7.変形例]
(ゲームの内容に関する変形例)
上記実施形態においては、端末装置7を用いて行われるゲームは、コントローラ5を用いて行われるゲームとは(ゲーム空間は同一であるものの)目的が異なり、主にゲーム画像を撮影することを目的としたゲームであった。ここで、端末装置7を用いて行われるゲームの内容や目的はどのようなものであってもよい。例えば、他の実施形態においては、端末装置7を用いて行われるゲームと、コントローラ5を用いて行われるゲームとは同じ目的であってもよい。例えば、2人のプレイヤが協力する(あるいは対戦する)ゲームにおいて、ゲーム装置3は、端末装置7の操作対象となるカメラキャラクタが所定のゲーム条件(例えば、カメラのアイテムを取得すること等)を満たした場合に、端末装置7を用いてゲーム画像を保存することができるようにしてもよい。
【0246】
(保存される画像の態様に関する変形例)
上記実施形態においては、静止画を保存する場合を例として説明を行ったが、保存される画像(画像情報)は、動画を構成するものであってもよい。つまり、ゲーム装置3は、動画を構成する複数の端末用画像に関する画像情報を記憶するようにしてもよい。例えば、CPU10は、撮影操作が行われたことに応じて画像情報の保存を開始し、撮影終了の操作が行われたことに応じて画像情報の保存を終了してもよい。より具体的には、CPU10は、撮影操作が行われてから、撮影終了の操作が行われるまで、上記ステップS23(およびS22)の処理を毎フレーム繰り返し実行してもよい。
【0247】
また、他の実施形態において、ゲーム装置3は、立体視表示が可能な立体視表示装置に表示させるための立体視画像(3D画像)に関する画像情報を保存してもよい。なお、立体視画像は、例えば次の方法で生成されてもよい。すなわち、CPU10は、撮影操作が行われたことに応じて、端末用仮想カメラの位置から左右に所定距離だけそれぞれ移動させた2箇所の位置に仮想カメラをそれぞれ設定する。そして、設定された2つの仮想カメラから見たゲーム空間の画像をそれぞれ生成し、生成された2つの画像に関する画像情報を保存する。これによって、立体視画像を生成し、立体視画像に関する画像情報を保存することができる。
【0248】
(ゲームシステムの構成に関する変形例)
上記実施形態においては、ゲームシステム1は、ゲーム装置3と、表示部(LCD51)を備える端末装置7と、コントローラ5と、テレビ2とを備える構成であった。ここで、ゲームシステムは、ゲーム装置と、少なくとも2つの操作装置とを含み、少なくとも一方の操作装置の表示部と、所定の表示装置とに画像を表示させることができる構成であればよい。例えば、ゲームシステムは、所定の表示装置(テレビ2)を含まない形態で提供されてもよい。また例えば、ゲームシステムは、所定の表示装置として端末装置7と同様の表示装置を含む形態で提供されてもよい。つまり、ゲームシステムは、表示部を備える2つの操作装置と、ゲーム装置とを含む構成であってもよい。
【0249】
(表示部を備える操作装置に関する変形例)
上記実施形態においては、表示部を備える操作装置の一例として、端末装置7を挙げて説明したが、当該操作装置はこれに限らない。例えば、ゲームシステムは、端末装置7に代えて、表示部を備える携帯型のゲーム装置を含む構成であってもよい。また、他の実施形態においては、ゲームシステムは、操作装置として用いられる2つの携帯型ゲーム装置と、ゲーム装置とを含む構成であってもよい。
【0250】
(ゲーム処理を実行する情報処理装置に関する変形例)
上記実施形態においては、ゲームシステム1において実行される一連のゲーム処理をゲーム装置3が実行したが、ゲーム処理の一部は他の装置によって実行されてもよい。例えば、他の実施形態においては、ゲーム処理の一部(例えば、端末用画像の生成処理)を端末装置7が実行するようにしてもよい。また、他の実施形態では、互いに通信可能な複数の情報処理装置を有する入力システムにおいて、当該複数の情報処理装置がゲーム処理を分担して実行するようにしてもよい。すなわち、ゲームシステムは、第1操作装置と第2操作装置とを含み、(a)第1操作装置に対する操作を表す第1操作データに基づいてゲーム処理を実行するゲーム処理部と、(b)ゲーム空間に第1仮想カメラを設定する第1カメラ設定部と、(c)第1仮想カメラから見たゲーム空間を表すゲーム画像であって、第2操作装置とは別体の所定の表示装置に表示すべきゲーム画像である第1ゲーム画像を生成する第1画像生成部と、(d)ゲーム空間に配置され、第1仮想カメラとは異なる第2仮想カメラを、第2操作装置に対する操作を表す第2操作データに基づいて設定する第2カメラ設定部と、(e)第2仮想カメラから見たゲーム空間を表すゲーム画像であって、第2操作装置が備える表示部に表示すべきゲーム画像である第2ゲーム画像を生成する第2画像生成部と、(f)第2操作装置に対して所定の操作が行われたことに応じて、第2ゲーム画像に関する画像情報を所定の記憶装置に記憶する画像情報記憶部とを備えていてもよい。このとき、1つの装置が上記(a)〜(f)の各部を備える構成であってもよいし、複数の装置が上記(a)〜(f)の各部を備える構成であってもよい。
【0251】
なお、複数の情報処理装置においてゲーム処理が実行される場合には、各情報処理装置で実行されるゲーム処理を同期させる必要があり、ゲーム処理が複雑になってしまう。これに対して、上記実施形態のように、ゲーム処理が1つのゲーム装置3によって実行され、端末装置7がゲーム画像を受信して表示する処理を行う場合(つまり、端末装置7がシンクライアント端末として機能する場合)には、複数の情報処理装置間でゲーム処理の同期をとる必要がなく、ゲーム処理を簡易化することができる。
【0252】
上記のように、本明細書で説明した種々のシステム、方法、および技術は、デジタル電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、またはこれら要素の組み合わせによって提供されてもよい。上記の技術を実現するための装置は、プログラム可能なプロセッサによる実行のためのコンピュータ読み取り可能な非一時的な記憶装置において実体的に具体化されるコンピュータプログラムプロダクト、入出力装置、およびコンピュータプロセッサを含んでもよい。上記技術を実現するための処理は、入力データを処理して所望の出力を生成することによって、要求される機能を実行するためのプログラムを実行する、プログラム可能なプロセッサによって実行されてもよい。上記の技術は、入力装置、出力装置、および情報記憶装置といったハードウェア資源との間でデータや指示のやり取りを行うプログラム可能なプロセッサを含むコンピュータシステム上で実行可能な1以上のコンピュータプログラムによって実現されてもよい。また、各コンピュータプログラムは、手続型やオブジェクト指向型の高水準プログラミング言語、アセンブリ言語、または、機械語によって実現されてもよく、必要に応じてコンパイルまたはインタプリタされて実行されてもよい。また、上記のプロセッサは、汎用または専用のマイクロプロセッサであってもよい。プロセッサは、一般的に、ROMまたはRAMからデータおよび指示を受け取る。また、上記の記憶装置は、(a)EPROM、EEPROM、フラッシュメモリのような半導体メモリ装置を含む不揮発性のメモリ、(b)内部ハードディスクあるいは着脱可能な外部ディスクのような磁気ディスク、(c)光磁気ディスク、(d)CDROM、に限定されず、あらゆる種類のコンピュータメモリを含む。上記のプロセッサや記憶装置は、ASIC(Application Specific Integrated Circuit)によって補充される、あるいは、ASICに組み込まれる形で実現されてもよい。
【0253】
また、本明細書に記載の処理システム(回路)は、本明細書において記載された内容に応じたゲーム処理のような制御処理のためにプログラムされる。上記の内容に応じた指示を実行する少なくとも1つのCPUを含む処理システムが、上記の内容によって定義される処理動作を実行するための「プログラムされた論理回路」として作用するものであってもよい。
【産業上の利用可能性】
【0254】
以上のように、本発明は、自由な視点あるいは視線でゲーム空間を見たゲーム画像を保存すること等を目的として、例えばゲームシステム、ゲーム装置、およびゲームプログラム等として利用することが可能である。
【符号の説明】
【0255】
1 ゲームシステム
2 テレビ
3 ゲーム装置
4 光ディスク
5 コントローラ
6 マーカ装置
7 端末装置
10 CPU
11e 内部メインメモリ
12 外部メインメモリ
51 LCD
53 アナログスティック
54 操作ボタン
73 加速度センサ
74 ジャイロセンサ
101 プレイヤキャラクタ
102 カメラキャラクタ
103 カメラオブジェクト
104 端末用仮想カメラ
110 ゲームプログラム
112 コントローラ操作データ
113 端末操作データ
122 画像情報データ

【特許請求の範囲】
【請求項1】
ゲーム装置と、第1操作装置と、第2操作装置とを含むゲームシステムであって、
前記ゲーム装置は、
前記第1操作装置からの第1操作データおよび前記第2操作装置からの第2操作データを取得する操作データ取得部と、
前記第1操作データに基づいて所定のゲーム処理を実行するゲーム処理部と、
仮想のゲーム空間に第1仮想カメラを設定する第1カメラ設定部と、
前記第1仮想カメラから見たゲーム空間を表す第1ゲーム画像を生成する第1画像生成部と、
前記第2操作装置とは別体の所定の表示装置に前記第1ゲーム画像を出力する第1画像出力部と、
前記ゲーム空間に配置され、前記第1仮想カメラとは異なる第2仮想カメラを前記第2操作データに基づいて設定する第2カメラ設定部と、
前記第2仮想カメラから見たゲーム空間を表す第2ゲーム画像を生成する第2画像生成部と、
前記第2ゲーム画像を前記第2操作装置に出力する第2画像出力部と、
前記第2操作装置に対して所定の操作が行われたことに応じて、前記第2ゲーム画像に関する画像情報を所定の記憶装置に記憶する画像情報記憶部とを備え、
前記第2操作装置は、
前記第2ゲーム画像を受信する画像受信部と、
前記第2ゲーム画像を表示する表示部とを備える、ゲームシステム。
【請求項2】
前記画像情報記憶部は、前記画像情報として前記第2ゲーム画像の画像データを記憶する、請求項1に記載のゲームシステム。
【請求項3】
前記画像情報記憶部は、前記画像情報として、その情報と前記所定のゲーム処理を実行するためのゲームプログラムとを用いることによって前記第2ゲーム画像を生成することが可能な情報を記憶する、請求項1に記載のゲームシステム。
【請求項4】
前記画像情報記憶部は、前記所定の操作が行われたことに応じて、動画を構成する複数の第2ゲーム画像に関する画像情報を記憶する、請求項1から請求項3のいずれか1項に記載のゲームシステム。
【請求項5】
前記ゲーム装置は、前記第2操作データに基づいて前記ゲーム空間を移動する第2オブジェクトを制御する第2オブジェクト制御部をさらに備え、
前記第2カメラ設定部は、前記第2オブジェクトの位置に基づいて前記第2仮想カメラを設定する、請求項1から請求項4のいずれか1項に記載のゲームシステム。
【請求項6】
前記第2オブジェクト制御部は、ゲーム処理によって動作が制御される所定のオブジェクトと、前記第2オブジェクトとが接触したか否かとは独立して前記第2オブジェクトを制御する、請求項5に記載のゲームシステム。
【請求項7】
前記第2オブジェクト制御部は、ゲーム処理によって動作が制御される所定のオブジェクトと前記第2オブジェクトとが接触したか否かに応じて前記第2オブジェクトを制御する、請求項5に記載のゲームシステム。
【請求項8】
前記第1画像生成部は、前記第1仮想カメラの視野範囲に前記第2オブジェクトが含まれる場合、当該第2オブジェクトを描画せずに第1ゲーム画像を生成する、請求項5から請求項7のいずれか1項に記載のゲームシステム。
【請求項9】
前記第1画像生成部は、前記第1仮想カメラの視野範囲に前記第2オブジェクトが含まれる場合、当該第2オブジェクトの画像を含む第1ゲーム画像を生成する、請求項5から請求項7のいずれか1項に記載のゲームシステム。
【請求項10】
前記第2カメラ設定部は、前記表示部の画面が所定の基準よりも水平に近い姿勢となった場合に、前記第2オブジェクトを視野範囲に含むように前記第2仮想カメラを設定し、前記表示部の画面が所定の基準よりも鉛直に近い姿勢となった場合に、前記第2オブジェクトから見た視点となるように前記第2仮想カメラを設定する、請求項5から請求項9のいずれか1項に記載のゲームシステム。
【請求項11】
前記ゲーム処理部は、前記第1操作データに基づいて所定の第1オブジェクトの動作を制御するゲーム処理を実行し、
前記第2画像生成部は、前記第2仮想カメラの視野範囲に前記第1オブジェクトが含まれる場合、前記第1オブジェクトの画像を含む第2ゲーム画像を生成する、請求項1から請求項10のいずれか1項に記載のゲームシステム。
【請求項12】
前記ゲーム装置は、前記第2操作装置の姿勢を算出する姿勢算出部をさらに備え、
前記第2カメラ設定部は、前記第2操作装置の姿勢に基づいて前記第2仮想カメラの姿勢を設定する、請求項1から請求項11のいずれか1項に記載のゲームシステム。
【請求項13】
前記第2操作装置は、方向入力が可能な入力デバイスを有し、当該方向入力を表す第2操作データを出力し、
前記第2カメラ設定部は、前記第2操作データに基づいて前記第2仮想カメラの位置を設定する、請求項1から請求項12のいずれか1項に記載のゲームシステム。
【請求項14】
ゲーム装置と、第1操作装置と、第2操作装置とを含むゲームシステムであって、
前記第1操作装置に対する操作を表す第1操作データに基づいて所定のゲーム処理を実行するゲーム処理部と、
ゲーム空間に第1仮想カメラを設定する第1カメラ設定部と、
前記第1仮想カメラから見たゲーム空間を表すゲーム画像であって、前記第2操作装置とは別体の所定の表示装置に表示すべきゲーム画像である第1ゲーム画像を生成する第1画像生成部と、
前記ゲーム空間に配置され、前記第1仮想カメラとは異なる第2仮想カメラを、前記第2操作装置に対する操作を表す前記第2操作データに基づいて設定する第2カメラ設定部と、
前記第2仮想カメラから見たゲーム空間を表すゲーム画像であって、前記第2操作装置が備える表示部に表示すべきゲーム画像である第2ゲーム画像を生成する第2画像生成部と、
前記第2操作装置に対して所定の操作が行われたことに応じて、前記第2ゲーム画像に関する画像情報を所定の記憶装置に記憶する画像情報記憶部とを備える、ゲームシステム。
【請求項15】
ゲーム装置と、第1操作装置と、第2操作装置とを含むゲームシステムにおいて実行されるゲーム処理方法であって、
前記第1操作装置に対する操作を表す第1操作データに基づいて所定のゲーム処理を実行するゲーム処理ステップと、
ゲーム空間に第1仮想カメラを設定する第1カメラ設定ステップと、
前記第1仮想カメラから見たゲーム空間を表すゲーム画像であって、前記第2操作装置とは別体の所定の表示装置に表示すべきゲーム画像である第1ゲーム画像を生成する第1画像生成ステップと、
前記ゲーム空間に配置され、前記第1仮想カメラとは異なる第2仮想カメラを、前記第2操作装置に対する操作を表す前記第2操作データに基づいて設定する第2カメラ設定ステップと、
前記第2仮想カメラから見たゲーム空間を表すゲーム画像であって、前記第2操作装置が備える表示部に表示すべきゲーム画像である第2ゲーム画像を生成する第2画像生成ステップと、
前記第2操作装置に対して所定の操作が行われたことに応じて、前記第2ゲーム画像に関する画像情報を所定の記憶装置に記憶する画像情報記憶ステップとを備える、ゲーム処理方法。
【請求項16】
前記画像情報記憶ステップにおいては、前記画像情報として前記第2ゲーム画像の画像データが記憶される、請求項15に記載のゲーム処理方法。
【請求項17】
前記画像情報記憶ステップにおいては、前記画像情報として、その情報と前記所定のゲーム処理を実行するためのゲームプログラムとを用いることによって前記第2ゲーム画像を生成することが可能な情報が記憶される、請求項15に記載のゲーム処理方法。
【請求項18】
前記画像情報記憶ステップにおいては、前記所定の操作が行われたことに応じて、動画を構成する複数の第2ゲーム画像に関する画像情報が記憶される、請求項15から請求項17のいずれか1項に記載のゲーム処理方法。
【請求項19】
前記第2操作データに基づいて前記ゲーム空間を移動する第2オブジェクトを制御する第2オブジェクト制御ステップをさらに備え、
前記第2カメラ設定ステップにおいては、前記第2オブジェクトの位置に基づいて前記第2仮想カメラが設定される、請求項15から請求項18のいずれか1項に記載のゲーム処理方法。
【請求項20】
前記第2オブジェクト制御ステップにおいては、ゲーム処理によって動作が制御される所定のオブジェクトと、前記第2オブジェクトとが接触したか否かとは独立して前記第2オブジェクトが制御される、請求項19に記載のゲーム処理方法。
【請求項21】
前記第2オブジェクト制御ステップにおいては、ゲーム処理によって動作が制御される所定のオブジェクトと前記第2オブジェクトとが接触したか否かに応じて前記第2オブジェクトが制御される、請求項19に記載のゲーム処理方法。
【請求項22】
前記第1画像生成ステップにおいては、前記第1仮想カメラの視野範囲に前記第2オブジェクトが含まれる場合、当該第2オブジェクトを描画せずに第1ゲーム画像が生成される、請求項19から請求項21のいずれか1項に記載のゲーム処理方法。
【請求項23】
前記第1画像生成ステップにおいては、前記第1仮想カメラの視野範囲に前記第2オブジェクトが含まれる場合、当該第2オブジェクトの画像を含む第1ゲーム画像が生成される、請求項19から請求項21のいずれか1項に記載のゲーム処理方法。
【請求項24】
前記第2カメラ設定ステップにおいては、前記表示部の画面が所定の基準よりも水平に近い姿勢となった場合に、前記第2オブジェクトを視野範囲に含むように前記第2仮想カメラが設定され、前記表示部の画面が所定の基準よりも鉛直に近い姿勢となった場合に、前記第2オブジェクトから見た視点となるように前記第2仮想カメラが設定される、請求項19から請求項23のいずれか1項に記載のゲーム処理方法。
【請求項25】
前記ゲーム処理ステップにおいては、前記第1操作データに基づいて所定の第1オブジェクトの動作を制御するゲーム処理が実行され、
前記第2画像生成ステップにおいては、前記第2仮想カメラの視野範囲に前記第1オブジェクトが含まれる場合、前記第1オブジェクトの画像を含む第2ゲーム画像が生成される、請求項15から請求項24のいずれか1項に記載のゲーム処理方法。
【請求項26】
前記第2操作装置の姿勢を算出する姿勢算出ステップをさらに備え、
前記第2カメラ設定ステップにおいては、前記第2操作装置の姿勢に基づいて前記第2仮想カメラの姿勢が設定される、請求項15から請求項25のいずれか1項に記載のゲーム処理方法。
【請求項27】
前記第2操作装置は、方向入力が可能な入力デバイスを有し、当該方向入力を表す第2操作データを出力し、
前記第2カメラ設定ステップにおいては、前記第2操作データに基づいて前記第2仮想カメラの位置が設定される、請求項15から請求項26のいずれか1項に記載のゲーム処理方法。
【請求項28】
第1操作装置および第2操作装置と通信可能なゲーム装置であって、
前記第1操作装置からの第1操作データおよび前記第2操作装置からの第2操作データを取得する操作データ取得部と、
前記第1操作データに基づいてゲーム処理を実行するゲーム処理部と、
仮想のゲーム空間に第1仮想カメラを設定する第1カメラ設定部と、
前記第1仮想カメラから見たゲーム空間を表す第1ゲーム画像を生成する第1画像生成部と、
前記第2操作装置とは別体の所定の表示装置に前記第1ゲーム画像を出力する第1画像出力部と、
前記ゲーム空間に配置され、前記第1仮想カメラとは異なる第2仮想カメラを前記第2操作データに基づいて設定する第2カメラ設定部と、
前記第2仮想カメラから見たゲーム空間を表す第2ゲーム画像を生成する第2画像生成部と、
前記第2ゲーム画像を前記第2操作装置に出力する第2画像出力部と、
前記第2操作装置に対して所定の操作が行われたことに応じて、前記第2ゲーム画像に関する画像情報を所定の記憶装置に記憶する画像情報記憶部とを備える、ゲーム装置。
【請求項29】
第1操作装置および第2操作装置と通信可能なゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、
前記第1操作装置に対する操作を表す第1操作データに基づいてゲーム処理を実行するゲーム処理手段と、
ゲーム空間に第1仮想カメラを設定する第1カメラ設定手段と、
前記第1仮想カメラから見たゲーム空間を表すゲーム画像であって、前記第2操作装置とは別体の所定の表示装置に表示すべきゲーム画像である第1ゲーム画像を生成する第1画像生成手段と、
前記ゲーム空間に配置され、前記第1仮想カメラとは異なる第2仮想カメラを、前記第2操作装置に対する操作を表す前記第2操作データに基づいて設定する第2カメラ設定手段と、
前記第2仮想カメラから見たゲーム空間を表すゲーム画像であって、前記第2操作装置が備える表示部に表示すべきゲーム画像である第2ゲーム画像を生成する第2画像生成手段と、
前記第2操作装置に対して所定の操作が行われたことに応じて、前記第2ゲーム画像に関する画像情報を所定の記憶装置に記憶する画像情報記憶手段として前記コンピュータを機能させる、ゲームプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2012−239746(P2012−239746A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−114865(P2011−114865)
【出願日】平成23年5月23日(2011.5.23)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】