"4方向スイッチに対する入力に基づく第1制御方向を設定する方向制御システムであって、前記4方向スイッチに対する入力に基づいて、当該4方向または当該4方向のうちの2方向の間の方向を示す第1入力方向を取得する第1入力方向取得手段と、前記第1入力方向が、前記4方向の何れかの方向を示す第1方向であるか、または、前記4方向のうちの2方向の間の方向を示す第2方向であるかを判定する判定手段と、前記第1入力方向に基づいて前記第1制御方向を更新し、前記第1入力方向が前記第2方向である場合、前記第1入力方向が前記第1方向である場合よりも前記第1制御方向を前記第1入力方向に近づける度合いを低くして、前記第1制御方向を前記第1入力方向に近づける方向設定手段とを備える、方向制御システム。前記方向設定手段は、前記第1入力方向と、前記第1制御方向との違いに基づいて、前記第1制御方向を前記第1入力方向に近づける度合いを変化させる、請求項1に記載の方向制御システム。前記方向設定手段は、前記第1入力方向と直前の第1制御方向との違いが大きいほど、前記近づける度合いを高くする、請求項2に記載の方向制御システム。前記第1制御方向に基づいて、仮想空間内の所定のオブジェクトの方向を制御するオブジェクト制御手段をさらに備える、請求項1から3の何れかに記載の方向制御システム。アナログ方向入力部への入力に基づいて、2次元の第2入力方向を取得する第2入力方向取得手段をさらに備え、前記方向設定手段は、前記第2入力方向を第2制御方向として設定する、請求項1から3の何れかに記載の方向制御システム。前記4方向スイッチと、前記アナログ方向入力部とを有する操作装置と、前記4方向スイッチへの入力に応じて、前記第1制御方向に基づいて仮想空間内の所定のオブジェクトの方向を制御し、前記アナログ方向入力部への入力に応じて、前記第2制御方向に基づいて前記所定のオブジェクトの方向を制御する、オブジェクト制御手段とをさらに備える、請求項5に記載の方向制御システム。前記4方向スイッチを有する第1操作装置と、前記アナログ方向入力部を有する第2操作装置とを備え、前記4方向スイッチへの入力に応じて、前記第1制御方向に基づいて仮想空間内の第1オブジェクトの方向を制御し、前記アナログ方向入力部への入力に応じて、前記第2制御方向に基づいて第2オブジェクトの方向を制御する、オブジェクト制御手段をさらに備える、請求項5に記載の方向制御システム。4方向スイッチに対する入力に基づく第1制御方向を設定する方向制御装置であって、前記4方向スイッチに対する入力に基づいて、当該4方向または当該4方向のうちの2方向の間の方向を示す第1入力方向を取得する第1入力方向取得手段と、前記第1入力方向が、前記4方向の何れかの方向を示す第1方向であるか、または、前記4方向のうちの2方向の間の方向を示す第2方向であるかを判定する判定手段と、前記第1入力方向に基づいて前記第1制御方向を更新し、前記第1入力方向が前記第2方向である場合、前記第1入力方向が前記第1方向である場合よりも前記第1制御方向を前記第1入力方向に近づける度合いを低くして、前記第1制御方向を前記第1入力方向に近づける方向設定手段とを備える、方向制御装置。4方向スイッチに対する入力に基づく第1制御方向を設定する方向制御装置のコンピュータにおいて実行される方向制御プログラムであって、前記コンピュータを、前記4方向スイッチに対する入力に基づいて、当該4方向または当該4方向のうちの2方向の間の方向を示す第1入力方向を取得する第1入力方向取得手段と、前記第1入力方向が、前記4方向の何れかの方向を示す第1方向であるか、または、前記4方向のうちの2方向の間の方向を示す第2方向であるかを判定する判定手段と、前記第1入力方向に基づいて前記第1制御方向を更新し、前記第1入力方向が前記第2方向である場合、前記第1入力方向が前記第1方向である場合よりも前記第1制御方向を前記第1入力方向に近づける度合いを低くして、前記第1制御方向を前記第1入力方向に近づける方向設定手段として機能させる、方向制御プログラム。4方向スイッチに対する入力に基づく第1制御方向を設定する方向制御システムにおいて実行される方向制御方法であって、前記4方向スイッチに対する入力に基づいて、当該4方向または当該4方向のうちの2方向の間の方向を示す第1入力方向を取得する第1入力方向取得ステップと、前記第1入力方向が、前記4方向の何れかの方向を示す第1方向であるか、または、前記4方向のうちの2方向の間の方向を示す第2方向であるかを判定する判定ステップと、前記第1入力方向に基づいて前記第1制御方向を更新し、前記第1入力方向が前記第2方向である場合、前記第1入力方向が前記第1方向である場合よりも前記第1制御方向を前記第1入力方向に近づける度合いを低くして、前記第1制御方向を前記第1入力方向に近づける方向設定ステップとを含む、方向制御方法。前記方向設定ステップでは、前記第1入力方向と、前記第1制御方向との違いに基づいて、前記第1制御方向を前記第1入力方向に近づける度合いを変化させる、請求項10に記載の方向制御方法。前記方向設定ステップでは、前記第1入力方向と、直前の第1制御方向との違いが大きいほど、前記近づける度合いを高くする、請求項11に記載の方向制御方法。前記第1制御方向に基づいて、仮想空間内の所定のオブジェクトの方向を制御するオブジェクト制御ステップをさらに含む、請求項10から12の何れかに記載の方向制御方法。アナログ方向入力部への入力に基づいて、2次元の第2入力方向を取得する第2入力方向取得ステップをさらに含み、前記方向設定ステップでは、前記第2入力方向を第2制御方向として設定する、請求項10から12の何れかに記載の方向制御方法。前記方向制御システムは、前記4方向スイッチと、前記アナログ方向入力部とを有する操作装置を含み、前記4方向スイッチへの入力に応じて、前記第1制御方向に基づいて仮想空間内の所定のオブジェクトの方向を制御し、前記アナログ方向入力部への入力に応じて、前記第2制御方向に基づいて前記所定のオブジェクトの方向を制御する、オブジェクト制御ステップをさらに含む、請求項14に記載の方向制御方法。前記方向制御システムは、前記4方向スイッチを有する第1操作装置と、前記アナログ方向入力部を有する第2操作装置とを含み、前記4方向スイッチへの入力に応じて、前記第1制御方向に基づいて仮想空間内の第1オブジェクトの方向を制御し、前記アナログ方向入力部への入力に応じて、前記第2制御方向に基づいて第2オブジェクトの方向を制御する、オブジェクト制御ステップをさらに含む、請求項14に記載の方向制御方法。4方向スイッチでは入力が可能な方向は8つであり、プレイヤが4方向スイッチを用いてプレイヤキャラクタの移動方向を制御する場合、プレイヤキャラクタを任意の方向に移動させることが難しい。この場合、仮想的なアナログスティックをゲーム装置において定義し、4方向スイッチに対する入力に応じて、仮想的なアナログスティックの方向を変化させ、当該仮想的なアナログスティックの方向を用いてプレイヤキャラクタを制御する方法が考えられる。具体的には、当該方法では、4方向スイッチに対する入力があった場合、仮想的なアナログスティックの方向を4方向スイッチの入力方向に所定時間かけて徐々に近づける。しかしながら、当該方法では、必ずしもプレイヤは意図した通りにプレイヤキャラクタを移動させることができず、4方向スイッチを用いた方向の入力には改善の余地があった。それ故、本発明の目的は、4方向スイッチを用いて方向を入力する場合においてユーザの操作性を向上することが可能な方向制御システム、方向制御装置、方向制御プログラム、および方向制御方法を提供することである。本発明は、上記の課題を解決するために、以下の構成を採用した。本発明の一形態は、4方向スイッチに対する入力に基づく第1制御方向を設定する方向制御システムである。当該方向制御システムは、第1入力方向取得手段と、判定手段と、方向設定手段とを備える。第1入力方向取得手段は、上記4方向スイッチに対する入力に基づいて、当該4方向または当該4方向のうちの2方向の間の方向を示す第1入力方向を取得する。判定手段は、上記第1入力方向が、上記4方向の何れかの方向を示す第1方向であるか、または、上記4方向のうちの2方向の間の方向を示す第2方向であるかを判定する。方向設定手段は、上記第1入力方向に基づいて上記第1制御方向を更新し、上記第1入力方向が上記第2方向である場合、上記第1入力方向が上記第1方向である場合よりも上記第1制御方向を上記第1入力方向に近づける度合いを低くして、上記第1制御方向を上記第1入力方向に近づける。なお、4方向スイッチは、例えば、十字ボタンであったり、十字ボタンの上下左右の方向が斜めを向くように設定されたスイッチ等であってもよい。上記4方向のうちの2方向の間の方向を示す第2方向とは、例えば、十字ボタンであれば、十字ボタンの斜め方向であったり、十字ボタンの上下左右の方向が斜めを向くように設定されたスイッチであれば、上下左右の方向である。上記形態によれば、4方向スイッチに対して行われた第1入力方向が上記第2方向である場合は、第1制御方向を第1入力方向に近づける度合いを比較的低くし、第1入力方向が上記第2方向である場合は、近づける度合いを比較的高くすることができる。これにより、ユーザは、例えば、4方向スイッチを用いて所定のオブジェクトを移動させる場合でも、意図した方向に当該所定のオブジェクトを移動させることができる。また、他の形態では、上記方向設定手段は、上記第1入力方向と、上記第1制御方向との違いに基づいて、上記第1制御方向を上記第1入力方向に近づける度合いを変化させてもよい。上記形態によれば、第1入力方向と第1制御方向との違いに基づいて、第1制御方向を第1入力方向に近づける度合いを変化させることができる。また、他の形態では、上記方向設定手段は、上記第1入力方向と、直前の第1制御方向との違いが大きいほど、上記近づける度合いを高くしてもよい。上記形態によれば、第1入力方向と第1制御方向との違いが大きいほど、上記近づける度合いを高くすることができる。これにより、ユーザの意図をより反映して第1制御方向を設定することができる。また、他の形態では、上記方向制御システムは、上記第1制御方向に基づいて、仮想空間内の所定のオブジェクトの方向を制御するオブジェクト制御手段をさらに備えてもよい。上記形態によれば、仮想空間内の所定のオブジェクトの方向移動方向や視線方向等であってもよいを第1制御方向に基づいて制御することができる。また、他の形態では、上記方向制御システムは、アナログ方向入力部への入力に基づいて、2次元の第2入力方向を取得する第2入力方向取得手段をさらに備えてもよい。上記方向設定手段は、上記第2入力方向を第2制御方向として設定する。ここで、上記第2制御方向は、上記第1制御方向と同じものであってもよいし、異なるものであってもよい。上記形態によれば、第2入力方向を第2制御方向として設定することができる。例えば、第2制御方向と第1制御方向とが同じである場合には、上記第2入力方向を上記第1制御方向として設定することができる。また、他の形態では、上記方向制御システムは、上記4方向スイッチと、上記アナログ方向入力部とを有する操作装置を備えてもよい。また、上記方向制御システムは、オブジェクト制御手段をさらに備えてもよい。オブジェクト制御手段は、上記4方向スイッチへの入力に応じて、上記第1制御方向に基づいて仮想空間内の所定のオブジェクトの方向を制御し、上記アナログ方向入力部への入力に応じて、上記第2制御方向に基づいて上記所定のオブジェクトの方向を制御する。上記形態によれば、例えば、4方向スイッチおよび/またはアナログ方向入力部に対する入力に応じて所定のオブジェクトの方向を制御することができる。また、他の形態では、上記方向制御システムは、上記4方向スイッチを有する第1操作装置と、上記アナログ方向入力部を有する第2操作装置とを備えてもよい。また、上記方向制御システムは、オブジェクト制御手段をさらに備える。オブジェクト制御手段は、上記4方向スイッチへの入力に応じて、上記第1制御方向に基づいて仮想空間内の第1オブジェクトの方向を制御し、上記アナログ方向入力部への入力に応じて、上記第2制御方向に基づいて第2オブジェクトの方向を制御する。上記形態によれば、第1操作装置の4方向スイッチに対する入力に応じて第1オブジェクトの方向を制御し、第2操作装置のアナログ方向入力部に対する入力に応じて第2オブジェクトの方向を制御することができる。これにより、例えば、アナログ方向入力部に対する入力に応じて移動方向が制御される第2オブジェクトを、4方向スイッチに対する入力に応じて移動方向が制御される第1オブジェクトが追いかけるようなゲームを行うことができる。なお、上記方向制御システムは、単体の装置によって構成されてもよいし、複数の装置によって構成されてもよい。また、他の形態では、方向制御装置であってもよい。また、方向制御装置のコンピュータを上記各手段として機能させる方向制御プログラムの形態であってもよい。さらに、他の形態では、方向制御方法であってもよい。本発明によれば、4方向スイッチを用いて方向を入力する場合においてユーザの操作性を向上させることができる。[1.ゲームシステムの全体構成]以下、図面を参照して、本発明の一実施形態に係るゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。図1において、ゲームシステム1は、テレビジョン受像器等に代表される据置型のディスプレイ装置以下、テレビと記載する2、据置型のゲーム装置3、光ディスク4、コントローラ5、マーカ装置6、および、端末装置7を含む。ゲームシステム1は、コントローラ5を用いたゲーム操作に基づいてゲーム装置3においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ2および/または端末装置7に表示するものである。ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるための情報処理プログラム典型的にはゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。ゲーム装置3には、テレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ2はスピーカ2a図2を有しており、スピーカ2aは、上記ゲーム処理の結果得られるゲーム音声を出力する。なお、他の実施形態においては、ゲーム装置3と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置3とテレビ2との通信は無線通信であってもよい。テレビ2の画面の周辺図1では画面の上側には、マーカ装置6が設置される。詳細は後述するが、ユーザプレイヤはコントローラ5を動かすゲーム操作を行うことができ、マーカ装置6は、コントローラ5の動きや位置や姿勢等をゲーム装置3が算出するために用いられる。マーカ装置6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6Rマーカ6Lも同様は、具体的には1以上の赤外LEDLightEmittingDiodeであり、テレビ2の前方に向かって赤外光を出力する。マーカ装置6は有線で無線であってもよいゲーム装置3に接続されており、ゲーム装置3はマーカ装置6が備える各赤外LEDの点灯を制御することが可能である。なお、マーカ装置6は可搬型であり、ユーザはマーカ装置6を自由な位置に設置することができる。図1ではマーカ装置6がテレビ2の上に設置された態様を表しているが、マーカ装置6を設置する位置および向きは任意である。コントローラ5は、自機に対する操作に基づく操作データをゲーム装置3に与えるものである。本実施形態では、コントローラ5は、メインコントローラ8とサブコントローラ9とを有し、サブコントローラ9がメインコントローラ8に着脱可能に装着される構成である。コントローラ5とゲーム装置3とは無線通信によって通信可能である。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetoothブルートゥース登録商標の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。また、図1では、ゲームシステム1に含まれるコントローラ5は1つとするが、ゲームシステム1は複数のコントローラ5を含んでいてもよい。つまり、ゲーム装置3は複数のコントローラと通信可能であり、所定台数のコントローラを同時に使用することによって複数人でゲームをプレイすることが可能である。コントローラ5の詳細な構成については後述する。端末装置7は、ユーザが把持可能な程度の大きさであり、ユーザは端末装置7を手に持って動かしたり、あるいは、端末装置7を自由な位置に配置したりして使用することが可能である。詳細な構成は後述するが、端末装置7は、表示手段であるLCDLiquidCrystalDisplay:液晶表示装置51、および、入力手段後述するタッチパネル52やジャイロセンサ64等を備える。端末装置7とゲーム装置3とは無線有線であってもよいによって通信可能である。端末装置7は、ゲーム装置3で生成された画像例えばゲーム画像のデータをゲーム装置3から受信し、画像をLCD51に表示する。なお、本実施形態では表示装置としてLCDを用いているが、端末装置7は、例えばELElectroLuminescence:電界発光を利用した表示装置等、他の任意の表示装置を有していてもよい。また、端末装置7は、自機に対する操作に基づく操作データをゲーム装置3に送信する。[2.ゲーム装置3の内部構成]次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の内部構成を示すブロック図である。ゲーム装置3は、CPUCentralProcessingUnit10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV-IC15等を有する。CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV-IC15が接続される。システムLSI11は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROMいわゆるブートROMと、時間をカウントするクロック回路RTC:RealTimeClockとを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。システムLSI11には、入出力プロセッサI/Oプロセッサ11a、GPUGraphicsProcessorUnit11b、DSPDigitalSignalProcessor11c、VRAMVideoRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a~11eは内部バスによって互いに接続される。GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド作画命令に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータポリゴンデータやテクスチャデータ等のデータを記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。なお、本実施形態においては、ゲーム装置3は、テレビ2に表示するゲーム画像と、端末装置7に表示するゲーム画像との両方を生成する。以下では、テレビ2に表示されるゲーム画像をテレビ用ゲーム画像と呼び、端末装置7に表示されるゲーム画像を端末用ゲーム画像と呼ぶことがある。DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形音色データを用いて、音声データを生成する。なお、本実施形態においては、ゲーム音声についてもゲーム画像と同様、テレビ2のスピーカから出力するゲーム音声と、端末装置7のスピーカから出力するゲーム音声との両方が生成される。以下では、テレビ2から出力されるゲーム音声をテレビ用ゲーム音声と呼び、端末装置7から出力されるゲーム音声を端末用ゲーム音声と呼ぶことがある。上記のようにゲーム装置3において生成される画像および音声のうちで、テレビ2において出力される画像および音声のデータは、AV-IC15によって読み出される。AV-IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、テレビ2に画像が表示されるとともにスピーカ2aから音が出力される。また、ゲーム装置3において生成される画像および音声のうちで、端末装置7において出力される画像および音声のデータは、入出力プロセッサ11a等によって端末装置7へ送信される。入出力プロセッサ11a等による端末装置7へのデータの送信については後述する。入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、ネットワーク通信モジュール18、コントローラ通信モジュール19、拡張コネクタ20、メモリカード用コネクタ21、コーデックLSI27に接続される。また、ネットワーク通信モジュール18にはアンテナ22が接続される。コントローラ通信モジュール19にはアンテナ23が接続される。コーデックLSI27は端末通信モジュール28に接続され、端末通信モジュール28にはアンテナ29が接続される。ゲーム装置3は、インターネット等のネットワークに接続して外部情報処理装置例えば他のゲーム装置や、各種サーバや、各種情報処理装置等と通信を行うことが可能である。すなわち、入出力プロセッサ11aは、ネットワーク通信モジュール18およびアンテナ22を介してインターネット等のネットワークに接続し、ネットワークに接続される外部情報処理装置と通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、ネットワーク通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、外部情報処理装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22およびネットワーク通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と外部情報処理装置との間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータゲームの結果データまたは途中データが記憶されてもよい。また、フラッシュメモリ17にはゲームプログラムが記憶されてもよい。また、ゲーム装置3は、コントローラ5からの操作データを受信することが可能である。すなわち、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23およびコントローラ通信モジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶一時記憶する。また、ゲーム装置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規格で採用されるMIMOMultipleInputMultipleOutputの技術を用いて端末装置7との間の無線通信を高速に行うようにしてもよいし、他の通信方式を用いてもよい。また、ゲーム装置3は、画像データの他、音声データを端末装置7へ送信する。すなわち、入出力プロセッサ11aは、DSP11cが生成した音声データを、コーデックLSI27を介して端末通信モジュール28へ出力する。コーデックLSI27は、音声データに対しても画像データと同様に圧縮処理を行う。音声データに対する圧縮の方式は、どのような方式であってもよいが、圧縮率が高く、音声の劣化が少ない方式が好ましい。また、他の実施形態においては、音声データは圧縮されずに送信されてもよい。端末通信モジュール28は、圧縮された画像データおよび音声データを、アンテナ29を介して端末装置7へ送信する。さらに、ゲーム装置3は、上記画像データおよび音声データの他に、必要に応じて各種の制御データを端末装置7へ送信する。制御データは、端末装置7が備える構成要素に対する制御指示を表すデータであり、例えばマーカ部図10に示すマーカ部55の点灯を制御する指示や、カメラ図10に示すカメラ56の撮像を制御する指示等を表す。入出力プロセッサ11aは、CPU10の指示に応じて制御データを端末装置7へ送信する。なお、この制御データに関して、本実施形態ではコーデックLSI27はデータの圧縮処理を行わないが、他の実施形態においては圧縮処理を行うようにしてもよい。なお、ゲーム装置3から端末装置7へ送信される上述のデータは、必要に応じて暗号化がされていてもよいし、されていなくともよい。また、ゲーム装置3は、端末装置7から各種データを受信可能である。詳細は後述するが、本実施形態では、端末装置7は、操作データ、画像データ、および音声データを送信する。端末装置7から送信される各データはアンテナ29を介して端末通信モジュール28によって受信される。ここで、端末装置7からの画像データおよび音声データは、ゲーム装置3から端末装置7への画像データおよび音声データと同様の圧縮処理が施されている。したがって、これら画像データおよび音声データについては、端末通信モジュール28からコーデックLSI27に送られ、コーデックLSI27によって伸張処理が施されて入出力プロセッサ11aに出力される。一方、端末装置7からの操作データに関しては、画像や音声に比べてデータ量が少ないので、圧縮処理が施されていなくともよい。また、必要に応じて暗号化がされていてもよいし、されていなくともよい。したがって、操作データは、端末通信モジュール28で受信された後、コーデックLSI27を介して入出力プロセッサ11aに出力される。入出力プロセッサ11aは、端末装置7から受信したデータを、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶一時記憶する。また、ゲーム装置3は、他の機器や外部記憶媒体に接続することが可能である。すなわち、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタである。拡張コネクタ20に対しては、外部記憶媒体のようなメディアを接続したり、他のコントローラ等の周辺機器を接続したり、有線の通信用コネクタを接続することによってネットワーク通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、図示しないACアダプタによって外部の電源からゲーム装置3の各構成要素に対して電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。なお、他の実施形態においては、ゲーム装置3が備える各構成要素のうちでいくつかの構成要素は、ゲーム装置3とは別体の拡張機器として構成されてもよい。このとき、拡張機器は、例えば上記拡張コネクタ20を介してゲーム装置3と接続されるようにしてもよい。具体的には、拡張機器は、例えば上記コーデックLSI27、端末通信モジュール28およびアンテナ29の各構成要素を備えており、拡張コネクタ20に対して着脱可能であってもよい。これによれば、上記各構成要素を備えていないゲーム装置に対して上記拡張機器を接続することによって、当該ゲーム装置を端末装置7と通信可能な構成とすることができる。[3.コントローラ5の構成]次に、図3~図7を参照して、コントローラ5について説明する。上述のように、コントローラ5は、メインコントローラ8とサブコントローラ9とによって構成される。図3は、メインコントローラ8の外観構成を示す斜視図である。図4は、メインコントローラ8の外観構成を示す斜視図である。図3は、メインコントローラ8の上側後方から見た斜視図であり、図4は、メインコントローラ8を下側前方から見た斜視図である。図3および図4において、メインコントローラ8は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向図3に示すZ1軸方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ユーザは、メインコントローラ8に設けられたボタンを押下すること、および、メインコントローラ8自体を動かしてその位置や姿勢傾きを変えることによってゲーム操作を行うことができる。ハウジング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を誤って押下することを防止することができる。ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、メインコントローラ8に他の機器例えば、サブコントローラ9や他のセンサユニット等を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。ハウジング31上面の後方には複数図3では4つのLED34a~34dが設けられる。ここで、コントローラ5メインコントローラ8には、他のコントローラと区別するためにコントローラ種別番号が付与される。各LED34a~34dは、コントローラ5に現在設定されている上記コントローラ種別をユーザに通知したり、コントローラ5の電池残量をユーザに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a~34dのいずれか1つが点灯する。また、メインコントローラ8は撮像情報演算部35図6を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、メインコントローラ8に内蔵されるスピーカ47図5からの音を外部に放出するための音抜き孔31aが形成されている。次に、図5および図6を参照して、メインコントローラ8の内部構造について説明する。図5および図6は、メインコントローラ8の内部構造を示す図である。なお、図5は、メインコントローラ8の上筐体ハウジング31の一部を外した状態を示す斜視図である。図6は、メインコントローラ8の下筐体ハウジング31の一部を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a~32h、各LED34a~34d、加速度センサ37、アンテナ45、およびスピーカ47等が設けられる。これらは、基板30等に形成された配線図示せずによってマイクロコンピュータMicroComputer:マイコン42図6参照に接続される。本実施形態では、加速度センサ37は、X1軸方向に関してメインコントローラ8の中心からずれた位置に配置されている。これによって、メインコントローラ8をZ1軸回りに回転させたときのメインコントローラ8の動きが算出しやすくなる。また、加速度センサ37は、長手方向Z1軸方向に関してメインコントローラ8の中心よりも前方に配置されている。また、無線モジュール44図6およびアンテナ45によって、コントローラ5メインコントローラ8がワイヤレスコントローラとして機能する。一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、メインコントローラ8の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38~41はそれぞれ基板30の下主面に取り付けられる。さらに、基板30の下主面上には、上記マイコン42およびバイブレータ46が設けられている。バイブレータ46は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ46が作動することによってメインコントローラ8に振動が発生する。これによって、メインコントローラ8を把持しているユーザの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ46は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ46がメインコントローラ8の中心よりも端側に配置することによって、バイブレータ46の振動によりメインコントローラ8全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、メインコントローラ8は、マイコン42の基本クロックを生成する水晶振動子、スピーカ47に音声信号を出力するアンプ等を備えている。図7は、サブコントローラ9の外観構成を示す斜視図である。サブコントローラ9は、例えばプラスチック成型によって形成されたハウジング80を有している。ハウジング80は、メインコントローラ8と同様に、全体として大人や子供の片手で把持可能な大きさである。このサブコントローラ9を用いることによっても、プレイヤは、ボタンやスティックを操作することと、コントローラ自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。図7に示すように、ハウジング80の上面Y2軸負方向側の面の先端側Z2軸正側には、アナログジョイスティック81が設けられる。また、図示されないが、ハウジング80の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向図7に示すY2軸方向に並べて、CボタンおよびZボタンが設けられる。アナログジョイスティック81および各ボタンCボタンおよびZボタンには、ゲーム装置3が実行するゲームプログラムに応じてそれぞれ適宜の機能が割り当てられる。なお、アナログジョイスティック81および各ボタンを包括的に操作部82図8参照と呼ぶことがある。また、図7では示されないが、サブコントローラ9は、ハウジング80の内部に加速度センサ図8に示す加速度センサ83を有している。本実施形態においては、加速度センサ83は、メインコントローラ8の加速度センサ37と同様のものが用いられる。ただし、加速度センサ83は、加速度センサ37とは異なるものであってもよく、例えば所定の1軸または2軸の加速度を検出するものであってもよい。また、図7に示すように、ハウジング80の後端にはケーブルの一端が接続されている。図7では示されないが、ケーブルの他端にはコネクタ図8に示すコネクタ84が接続される。このコネクタはメインコントローラ8のコネクタ33と接続可能である。つまり、コネクタ33とコネクタ84とを接続することによって、メインコントローラ8とサブコントローラ9とが接続される。なお、図3~図7に示したメインコントローラ8およびサブコントローラ9の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。また、本実施形態では、メインコントローラ8の撮像手段による撮像方向はZ1軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置撮像情報演算部35の光入射面35aは、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。図8は、コントローラ5の構成を示すブロック図である。図8に示すように、メインコントローラ8は、操作部32各操作ボタン32a~32i、撮像情報演算部35、通信部36、加速度センサ37、およびジャイロセンサ48を備えている。また、サブコントローラ9は、操作部82および加速度センサ83を備えている。コントローラ5は、自機に対して行われた操作内容を表すデータを操作データとしてゲーム装置3へ送信するものである。なお、以下では、コントローラ5が送信する操作データをコントローラ操作データと呼び、端末装置7が送信する操作データを端末操作データと呼ぶことがある。操作部32は、上述した各操作ボタン32a~32iを含み、各操作ボタン32a~32iに対する入力状態各操作ボタン32a~32iが押下されたか否かを表す操作ボタンデータを通信部36のマイコン42へ出力する。撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。撮像情報演算部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の向きや位置を算出することができる。なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。加速度センサ37は、コントローラ5の加速度重力加速度を含むを検出する、すなわち、コントローラ5に加わる力重力を含むを検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度直線加速度の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。なお、加速度センサ37は、例えば静電容量式のMEMSMicroElectroMechanicalSystem型加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向図3に示すY1軸方向、左右方向図3に示すX1軸方向および前後方向図3に示すZ1軸方向の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ5を基準に設定されるX1Y1Z1座標系コントローラ座標系における3次元のベクトルとして表される。加速度センサ37が検出した加速度を表すデータ加速度データは、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き傾斜角度や動きに対応して変化するので、ゲーム装置3は取得された加速度データを用いてコントローラ5の向きや動きを算出することができる。本実施形態では、ゲーム装置3は、取得された加速度データに基づいてコントローラ5の姿勢や傾斜角度等を算出する。なお、加速度センサ37後述する加速度センサ63についても同様から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ例えばCPU10またはコントローラ5のプロセッサ例えばマイコン42等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出判定することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G重力加速度がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。一方、コントローラ5が動的な状態コントローラ5が動かされている状態であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の動き方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度例えば、重力加速度を検出するために用いられる場合、加速度信号を傾斜角あるいは、他の好ましいパラメータに変換するものであってもよい。ジャイロセンサ48は、3軸本実施形態では、X1Y1Z1軸回りの角速度を検出する。本明細書では、コントローラ5の撮像方向Z1軸正方向を基準として、X1軸回りの回転方向をピッチ方向、Y1軸回りの回転方向をヨー方向、Z1軸回りの回転方向をロール方向と呼ぶ。ジャイロセンサ48は、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。例えば、ジャイロセンサ48は、3軸ジャイロセンサであってもよいし、2軸ジャイロセンサと1軸ジャイロセンサとを組み合わせて3軸周りの角速度を検出するものであってもよい。ジャイロセンサ48で検出された角速度を表すデータは、通信部36へ出力される。また、ジャイロセンサ48は1軸または2軸回りの角速度を検出するものであってもよい。また、サブコントローラ9の操作部82は、上述したアナログジョイスティック81、CボタンおよびZボタンを含む。操作部82は、アナログジョイスティック81に対する傾倒方向および傾倒量を表すスティックデータサブスティックデータと呼ぶと、各ボタンに対する入力状態各ボタンが押下されたか否かを表す操作ボタンデータサブ操作ボタンデータと呼ぶとを、コネクタ84を介してメインコントローラ8へ出力する。また、サブコントローラ9の加速度センサ83は、メインコントローラ8の加速度センサ37と同様のセンサであり、サブコントローラ9の加速度重力加速度を含むを検出する、すなわち、サブコントローラ9に加わる力重力を含むを検出する。加速度センサ83は、当該加速度センサ83の検出部に加わっている加速度のうち、所定の3軸方向に沿った直線方向の加速度直線加速度の値を検出する。検出された加速度を表すデータサブ加速度データと呼ぶは、コネクタ84を介してメインコントローラ8へ出力される。以上のように、サブコントローラ9は、上記サブスティックデータ、サブ操作ボタンデータ、およびサブ加速度データを含むサブコントローラデータをメインコントローラ8へ出力する。メインコントローラ8の通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。サブコントローラ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へ出力する。以上のように、メインコントローラ8は、自機に対する操作を表す操作データとして、マーカ座標データ、加速度データ、角速度データ、および操作ボタンデータを送信可能である。サブコントローラ9は、自機に対する操作を表す操作データとして、加速度データ、サブスティックデータ、および操作ボタンデータを送信可能である。また、ゲーム装置3は、上記操作データをゲーム入力として用いてゲーム処理を実行する。したがって、上記コントローラ5を用いることによって、ユーザは、各操作ボタンを押下するという従来の一般的なゲーム操作に加えて、コントローラ5自体を動かすゲーム操作を行うことができる。例えば、メインコントローラ8および/またはサブコントローラ9を任意の姿勢に傾ける操作、メインコントローラ8によって画面上の任意の位置を指示する操作、および、メインコントローラ8および/またはサブコントローラ9自体を動かす操作等を行うことが可能となる。また、本実施形態において、コントローラ5は、ゲーム画像を表示する表示手段を有しないが、例えば電池残量を表す画像等を表示するための表示手段を有していてもよい。[4.端末装置7の構成]次に、図9~図11を参照して、端末装置7の構成について説明する。図9は、端末装置7の外観構成を示す図である。図9におけるa図は端末装置7の正面図であり、b図は上面図であり、c図は右側面図であり、d図は下面図である。また、図10は、ユーザが端末装置7を把持した様子を示す図である。図9に示されるように、端末装置7は、大略的には横長の長方形の板状形状であるハウジング50を備える。ハウジング50は、ユーザが把持することができる程度の大きさである。したがって、ユーザは、端末装置7を持って動かしたり、端末装置7の配置位置を変更したりすることができる。端末装置7は、ハウジング50の表面にLCD51を有する。LCD51は、ハウジング50の表面の中央付近に設けられる。したがって、ユーザは、図10に示すようにLCD51の両側部分のハウジング50を持つことによって、LCD51の画面を見ながら端末装置を持って動かすことができる。なお、図10ではユーザがLCD51の左右両側の部分のハウジング50を持つことで端末装置7を横持ちで横に長い向きにして持つ例を示しているが、端末装置7を縦持ちで縦に長い向きにして持つことも可能である。図9のa図に示すように、端末装置7は、操作手段として、LCD51の画面上にタッチパネル52を有する。本実施形態では、タッチパネル52は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。また、タッチパネル52はシングルタッチ方式でもよいし、マルチタッチ方式であってもよい。本実施形態では、タッチパネル52として、LCD51の解像度と同解像度検出精度のものを利用する。ただし、必ずしもタッチパネル52の解像度とLCD51の解像度が一致している必要はない。タッチパネル52に対する入力は通常タッチペンを用いて行われるが、タッチペンに限らずユーザの指でタッチパネル52に対する入力をすることも可能である。なお、ハウジング50には、タッチパネル52に対する操作を行うために用いられるタッチペンを収納するための収納穴が設けられていてもよい。このように、端末装置7はタッチパネル52を備えるので、ユーザは、端末装置7を動かしながらタッチパネル52を操作することができる。つまりユーザは、LCD51の画面を動かしつつ、その画面に対して直接タッチパネル52によって入力を行うことができる。図9に示すように、端末装置7は、操作手段として、2つのアナログスティック53Aおよび53Bと、複数のボタン54A~54Lとを備えている。各アナログスティック53Aおよび53Bは、方向を指示するデバイスである。各アナログスティック53Aおよび53Bは、ユーザの指で操作されるスティック部がハウジング50の表面に対して任意の方向上下左右および斜め方向の任意の角度にスライドまたは傾倒することができるように構成されている。また、左アナログスティック53AはLCD51の画面の左側に、右アナログスティック53BはLCD51の画面の右側にそれぞれ設けられる。したがって、ユーザは、左右いずれの手でもアナログスティックを用いて方向を指示する入力を行うことができる。また、図10に示すように、各アナログスティック53Aおよび53Bは、ユーザが端末装置7の左右部分を把持した状態で操作可能な位置に設けられるので、ユーザは、端末装置7を持って動かす場合においても各アナログスティック53Aおよび53Bを容易に操作することができる。各ボタン54A~54Lは、所定の入力を行うための操作手段である。以下に示すように、各ボタン54A~54Lは、ユーザが端末装置7の左右部分を把持した状態で操作可能な位置に設けられる図10参照。したがって、ユーザは、端末装置7を持って動かす場合においてもこれらの操作手段を容易に操作することができる。図9のa図に示すように、ハウジング50の表面には、各操作ボタン54A~54Lのうち、十字ボタン方向入力ボタン54Aと、ボタン54B~54Hとが設けられる。つまり、これらのボタン54A~54Hは、ユーザの親指で操作可能な位置に配置されている図10参照。十字ボタン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を機能させることも可能である。また、図9のa図、b図、およびc図に示すように、第1Lボタン54Iおよび第1Rボタン54Jは、ハウジング50の斜め上部分左上部分および右上部分に設けられる。具体的には、第1Lボタン54Iは、板状のハウジング50における上側の側面の左端に設けられ、上側および左側の側面から露出している。また、第1Rボタン54Jは、ハウジング50における上側の側面の右端に設けられ、上側および右側の側面から露出している。このように、第1Lボタン54Iは、ユーザの左手人差し指で操作可能な位置に配置され、第1Rボタン54Jは、ユーザの右手人差し指で操作可能な位置に配置される図10参照。また、図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を把持したまま操作しやすくなる。なお、図9に示す端末装置7に関しては、第2Lボタン54Kおよび第2Rボタン54Lが裏面に設けられるので、LCD51の画面ハウジング50の表面が上を向いた状態で端末装置7を載置させる場合、画面が完全に水平にはならない場合がある。そのため、他の実施形態においては、ハウジング50の裏面に3つ以上の足部が形成されてもよい。これによれば、LCD51の画面が上を向いた状態では足部が床面または他の水平な面に接することで床面に載置できるので、画面が水平になるように端末装置7を載置することができる。また、着脱可能な足部を追加することで端末装置7を水平に載置するようにしてもよい。各ボタン54A~54Lには、ゲームプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン54Aおよびボタン54E~54Hは方向指示操作や選択操作等に用いられてもよいし、各ボタン54B~54Eは決定操作やキャンセル操作等に用いられてもよい。なお、図示しないが、端末装置7は、端末装置7の電源をオン/オフするための電源ボタンを有している。また、端末装置7は、LCD51の画面表示をオン/オフするためのボタンや、ゲーム装置3との接続設定ペアリングを行うためのボタンや、スピーカ図11に示すスピーカ67の音量を調節するためのボタンを有していてもよい。図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の点灯を制御することが可能である。端末装置7は、撮像手段であるカメラ56を備えている。カメラ56は、所定の解像度を有する撮像素子例えば、CCDイメージセンサやCMOSイメージセンサ等と、レンズとを含む。図9に示すように、本実施形態では、カメラ56はハウジング50の表面に設けられる。したがって、カメラ56は、端末装置7を持っているユーザの顔を撮像することができ、例えばLCD51を見ながらゲームを行っている時のユーザを撮像することができる。なお、他の実施形態では、1以上のカメラが端末装置7に設けられてもよい。なお、端末装置7は、音声入力手段であるマイク図11に示すマイク69を備えている。ハウジング50の表面には、マイクロフォン用孔60が設けられる。マイク69はこのマイクロフォン用孔60の奥のハウジング50内部に設けられる。マイクは、ユーザの音声等、端末装置7の周囲の音を検出する。なお、他の実施形態では、1以上のマイクが端末装置7に設けられてもよい。端末装置7は、音声出力手段であるスピーカ図11に示すスピーカ67を備えている。図9のd図に示すように、ハウジング50の下側側面にはスピーカ孔57が設けられる。スピーカ67の出力音はこのスピーカ孔57から出力される。本実施形態では、端末装置7は2つのスピーカを備えており、左スピーカおよび右スピーカのそれぞれの位置にスピーカ孔57が設けられる。なお、端末装置7が備えるスピーカの数はいくつであってもよく、上記2つのスピーカに加えて追加のスピーカが端末装置7に設けられてもよい。また、端末装置7は、他の装置を端末装置7に接続するための拡張コネクタ58を備えている。本実施形態においては、図9のd図に示すように、拡張コネクタ58は、ハウジング50の下側側面に設けられる。なお、拡張コネクタ58に接続される他の装置はどのようなものであってもよく、例えば、特定のゲームに用いるコントローラ銃型のコントローラ等やキーボード等の入力装置であってもよい。他の装置を接続する必要がなければ、拡張コネクタ58は設けられていなくともよい。なお、図9に示した端末装置7に関して、各操作ボタンやハウジング50の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。次に、図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内に収納される。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を装着することで充電を行うようにしてもよい。タッチパネルコントローラ61は、タッチパネル52に接続され、タッチパネル52の制御を行う回路である。タッチパネルコントローラ61は、タッチパネル52からの信号に基づいて所定の形式のタッチ位置データを生成してUIコントローラ65へ出力する。タッチ位置データは、タッチパネル52の入力面において入力が行われた位置タッチパネル52がマルチタッチ方式である場合は複数の位置であってもよいの座標を表す。なお、タッチパネルコントローラ61は、タッチパネル52からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。また、UIコントローラ65からタッチパネルコントローラ61へは、タッチパネル52に対する各種の制御指示が出力される。アナログスティック53は、ユーザの指で操作されるスティック部がスライドしたまたは傾倒した方向および量を表すスティックデータをUIコントローラ65へ出力する。また、操作ボタン54は、各操作ボタン54A~54Lに対する入力状況押下されたか否かを表す操作ボタンデータをUIコントローラ65へ出力する。磁気センサ62は、磁界の大きさおよび方向を検知することで方位を検出する。検出された方位を示す方位データは、UIコントローラ65へ出力される。また、UIコントローラ65から磁気センサ62へは、磁気センサ62に対する制御指示が出力される。磁気センサ62に関しては、MI磁気インピーダンス素子、フラックスゲートセンサ、ホール素子、GMR巨大磁気抵抗素子、TMRトンネル磁気抵抗素子、あるいはAMR異方性磁気抵抗素子等を用いたセンサがあるが、方位を検出することができればどのようなものが用いられてもよい。なお、厳密には、地磁気以外に磁界が発生している場所においては、得られた方位データは方位を示さないことになるが、そのような場合であっても、端末装置7が動いた場合には方位データが変化するため、端末装置7の姿勢の変化を算出することができる。加速度センサ63は、ハウジング50の内部に設けられ、3軸図9のa図に示すXYZ軸方向に沿った直線加速度の大きさを検出する。具体的には、加速度センサ63は、ハウジング50の長辺方向をZ軸、ハウジング50の短辺方向をX軸、ハウジング50の表面に対して垂直な方向をY軸として、各軸の直線加速度の大きさを検出する。検出された加速度を表す加速度データはUIコントローラ65へ出力される。また、UIコントローラ65から加速度センサ63へは、加速度センサ63に対する制御指示が出力される。加速度センサ63は、本実施形態では例えば静電容量式のMEMS型加速度センサであるとするが、他の実施形態においては他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ63は1軸または2軸方向を検出する加速度センサであってもよい。ジャイロセンサ64は、ハウジング50の内部に設けられ、上記X軸、Y軸およびZ軸の3軸周りの角速度を検出する。検出された角速度を表す角速度データは、UIコントローラ65へ出力される。また、UIコントローラ65からジャイロセンサ64へは、ジャイロセンサ64に対する制御指示が出力される。なお、3軸の角速度を検出するために用いられるジャイロセンサの数および組み合わせはどのようなものであってもよく、ジャイロセンサ64はジャイロセンサ48と同様、2軸ジャイロセンサと1軸ジャイロセンサとで構成されてもよい。また、ジャイロセンサ64は1軸または2軸方向を検出するジャイロセンサであってもよい。バイブレータ79は、例えば振動モータやソレノイドであり、UIコントローラ65に接続される。UIコントローラ65の指示によりバイブレータ79が作動することによって端末装置7に振動が発生する。これによって、端末装置7を把持しているユーザの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。UIコントローラ65は、上記の各構成要素から受け取ったタッチ位置データ、スティックデータ、操作ボタンデータ、方位データ、加速度データ、および角速度データを含む操作データ端末操作データをコーデックLSI66に出力する。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置に対する操作を表すデータが上記操作データにさらに含まれていてもよい。コーデックLSI66は、ゲーム装置3へ送信するデータに対する圧縮処理、および、ゲーム装置3から送信されたデータに対する伸張処理を行う回路である。コーデックLSI66には、LCD51、カメラ56、サウンドIC68、無線モジュール70、フラッシュメモリ73、および赤外線通信モジュール72が接続される。また、コーデックLSI66はCPU77と内部メモリ78を含む。端末装置7はゲーム処理自体を行なわない構成であるが、端末装置7の管理や通信のための最小限のプログラムを実行する必要がある。電源投入時にフラッシュメモリ73に格納されたプログラムを内部メモリ78に読み出してCPU77が実行することで、端末装置7が起動する。また、内部メモリ78の一部の領域はLCD51のためのVRAMとして使用される。カメラ56は、ゲーム装置3からの指示に従って画像を撮像し、撮像した画像データをコーデックLSI66へ出力する。また、コーデックLSI66からカメラ56へは、画像の撮像指示等、カメラ56に対する制御指示が出力される。なお、カメラ56は動画の撮影も可能である。すなわち、カメラ56は、繰り返し撮像を行って画像データをコーデックLSI66へ繰り返し出力することも可能である。サウンドIC68は、スピーカ67およびマイク69に接続され、スピーカ67およびマイク69への音声データの入出力を制御する回路である。すなわち、コーデックLSI66から音声データを受け取った場合、サウンドIC68は当該音声データに対してD/A変換を行って得られる音声信号をスピーカ67へ出力し、スピーカ67から音を出力させる。また、マイク69は、端末装置7に伝わる音ユーザの音声等を検知して、当該音を示す音声信号をサウンドIC68へ出力する。サウンドIC68は、マイク69からの音声信号に対してA/D変換を行い、所定の形式の音声データをコーデックLSI66へ出力する。コーデックLSI66は、カメラ56からの画像データ、マイク69からの音声データ、および、UIコントローラ65からの操作データを、端末操作データとして無線モジュール70を介してゲーム装置3へ送信する。本実施形態では、コーデックLSI66は、画像データおよび音声データに対して、コーデックLSI27と同様の圧縮処理を行う。上記端末操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール70に出力される。無線モジュール70にはアンテナ71が接続されており、無線モジュール70はアンテナ71を介してゲーム装置3へ上記送信データを送信する。無線モジュール70は、ゲーム装置3の端末通信モジュール28と同様の機能を有している。すなわち、無線モジュール70は、例えばIEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。以上のように、端末装置7からゲーム装置3へ送信される送信データには、操作データ端末操作データ、画像データ、および音声データが含まれる。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置から受け取ったデータが上記送信データにさらに含まれていてもよい。また、赤外線通信モジュール72は、他の装置との間で例えばIRDAの規格に従った赤外線通信を行う。コーデックLSI66は、赤外線通信によって受信したデータを、必要に応じて上記送信データに含めてゲーム装置3へ送信してもよい。また、上述のように、ゲーム装置3から端末装置7へは、圧縮された画像データおよび音声データが送信される。これらのデータはアンテナ71および無線モジュール70を介してコーデックLSI66に受信される。コーデックLSI66は、受信した画像データおよび音声データを伸張する。伸張された画像データはLCD51へ出力され、画像がLCD51に表示される。また、伸張された音声データはサウンドIC68へ出力され、サウンドIC68はスピーカ67から音を出力させる。また、ゲーム装置3から受信されるデータに制御データが含まれる場合、コーデックLSI66およびUIコントローラ65は、制御データに従った制御指示を各部に行う。上述のように、制御データは、端末装置7が備える各構成要素本実施形態では、カメラ56、タッチパネルコントローラ61、マーカ部55、各センサ62~64、赤外線通信モジュール72、およびバイブレータ79に対する制御指示を表すデータである。本実施形態では、制御データが表す制御指示としては、上記各構成要素を動作させたり、動作を休止停止させたりする指示が考えられる。すなわち、ゲームで使用しない構成要素については電力消費を抑えるために休止させてもよく、その場合、端末装置7からゲーム装置3へ送信される送信データには、休止した構成要素からのデータが含まれないようにする。なお、マーカ部55は赤外LEDであるので、制御は単に電力の供給のON/OFFでよい。以上のように、端末装置7は、タッチパネル52、アナログスティック53、および操作ボタン54といった操作手段を備えるが、他の実施形態においては、これらの操作手段に代えて、または、これらの操作手段とともに、他の操作手段を備える構成であってもよい。また、端末装置7は、端末装置7の動き位置や姿勢、あるいは、位置や姿勢の変化を含むを算出するためのセンサとして、磁気センサ62、加速度センサ63、およびジャイロセンサ64を備えるが、他の実施形態においては、これらのセンサのうち1つまたは2つのみを備える構成であってもよい。また、他の実施形態においては、これらのセンサに代えて、または、これらのセンサとともに、他のセンサを備える構成であってもよい。また、端末装置7は、カメラ56およびマイク69を備える構成であるが、他の実施形態においては、カメラ56およびマイク69を備えていなくてもよく、また、いずれか一方のみを備えていてもよい。また、端末装置7は、端末装置7とメインコントローラ8との位置関係メインコントローラ8から見た端末装置7の位置および/または姿勢等を算出するための構成としてマーカ部55を備える構成であるが、他の実施形態ではマーカ部55を備えていない構成としてもよい。また、他の実施形態では、端末装置7は、上記位置関係を算出するための構成として他の手段を備えていてもよい。例えば、他の実施形態においては、メインコントローラ8がマーカ部を備え、端末装置7が撮像素子を備える構成としてもよい。さらにこの場合、マーカ装置6は赤外LEDに代えて、撮像素子を備える構成としてもよい。[5.ゲーム処理の概要]次に、本実施形態のゲームシステム1において実行されるゲーム処理の概要について説明する。本実施形態におけるゲームは、複数のプレイヤによって行われる鬼ごっこのゲームである。本実施形態では、ゲーム装置3には1台の端末装置7と、複数台のコントローラ5とが無線通信により接続される。例えば、最大で4台のコントローラ5がゲーム装置3に接続可能であり、当該ゲームは最大で5人のプレイヤによって行われてもよい。以下では、端末装置7を操作する第1プレイヤと、コントローラ5aを操作する第2プレイヤAと、コントローラ5bを操作する第2プレイヤBの3人でゲームが行われる場合について説明する。なお、本実施形態のゲームでは、サブコントローラ9がメインコントローラ8に接続されてコントローラ5として用いられてもよいし、サブコントローラ9がメインコントローラ8に接続されずにメインコントローラ8単体がコントローラ5として用いられてもよい。図12は、本実施形態のゲームが実行された場合にテレビ2の画面に表示されるゲーム画像の一例を示す図である。図12に示すように、ゲーム画像90には、第1キャラクタ91、第2キャラクタ92a、および第2キャラクタ92bが、仮想のゲーム空間仮想空間内に配置される。第1キャラクタ91は、鬼の役割をする仮想キャラクタであり、端末装置7を操作する第1プレイヤによって制御される。第2キャラクタ92aは、鬼から逃げる仮想キャラクタであり、コントローラ5aを操作する第2プレイヤAによって制御される。第2キャラクタ92bは、鬼から逃げる仮想キャラクタであり、コントローラ5bを操作する第2プレイヤBによって制御される。以下では、鬼から逃げるキャラクタを第2キャラクタと総称することがある。なお、テレビ2の画面には、各キャラクタの視点からゲーム空間を見た画像がそれぞれ表示されてもよい。例えば、画面が複数の領域に分割されて、各領域に、それぞれのキャラクタの視点からゲーム空間を見た画像が表示されてもよい。また、テレビ2の画面には、各第2キャラクタの視点からゲーム空間を見た複数の画像のみが表示されてもよい。この場合、端末装置7のLCD51には、第1キャラクタの視点からゲーム空間を見た画像、あるいは、ゲーム空間の上方からゲーム空間全体を見た画像が表示されてもよい。本実施形態では、第1プレイヤが、端末装置7の十字ボタン54A、左アナログスティック53A、あるいは右アナログスティック53Bの何れかを用いて方向を入力することによって、第1キャラクタ91をゲーム空間内で移動させる。第1プレイヤは、第1キャラクタ91を移動させることで、第2キャラクタ92aおよび第2キャラクタ92bを捕まえる。一方、第2プレイヤAは、コントローラ5aメインコントローラ8aの十字ボタン32a、あるいはコントローラ5aサブコントローラ9aのアナログジョイスティック81を用いて方向を入力することで、第2キャラクタ92aをゲーム空間内で移動させる。第2プレイヤAは、第2キャラクタ92aが第1キャラクタ91に捕まらないように、第2キャラクタ92aをゲーム空間内で移動させる。第2プレイヤBも同様に、コントローラ5bの十字ボタン32a、あるいはコントローラ5bのアナログジョイスティック81を用いて方向を入力することで、第2キャラクタ92aをゲーム空間内で移動させて、第1キャラクタ91から第2キャラクタ92aを逃がす。以下では、コントローラ5の十字ボタン32aが押された場合の第2キャラクタの制御について説明する。図13は、十字ボタン32aが押された場合の入力方向を示す入力ベクトルS1を示す図である。図13に示すように、十字ボタン32aに対する入力は、2次元の単位ベクトル入力ベクトルS1で表される。入力ベクトルS1は、右方向をSx軸、上方向Sy軸としたSxSy座標系の座標値sx,syで表される。例えば、十字ボタン32aの上方向が押された場合、入力ベクトルS1は0,1となり、十字ボタン32aの右方向が押された場合、入力ベクトルS1は1,0となる。また、十字ボタン32aの下方向が押された場合、入力ベクトルS1は0,-1となり、十字ボタン32aの左方向が押された場合、入力ベクトルS1は-1,0となる。ここでは、これら上下左右の4つの方向を総称して第1方向と呼ぶことがある。なお、十字ボタン32aが押されていない場合は、入力ベクトルS1は0,0となる。また、十字ボタン32aの右上方向が押された場合、入力ベクトルS1は0.707,0.707となり、十字ボタン32aの右下方向が押された場合、入力ベクトルS1は0.707,-0.707となる。また、十字ボタン32aの左上方向が押された場合、入力ベクトルS1は-0.707,0.707となり、十字ボタン32aの左下方向が押された場合、入力ベクトルS1は-0.707,-0.707となる。ここでは、これら斜めの4つの方向右上、右下、左上、左下を総称して第2方向と呼ぶことがある。本実施形態では、十字ボタン32aのうちのどの方向が押されたかに応じて、コントローラ5が上記入力ベクトルS1を算出して当該入力ベクトルS1の値がゲーム装置3に出力されるものとする。例えば、十字ボタン32aのうちの上方向および右方向のボタンが押されている場合、コントローラ5は、入力ベクトルS1の値として0.707,0.707をゲーム装置3に出力する。なお、十字ボタン32aのうちの1つの方向例えば上方向とその反対方向例えば下方向とが同時に押されることはない。また、コントローラ5が十字ボタン32aのうちのどの方向が押されているかに関する情報ON/OFFに関する情報をゲーム装置3に送信し、ゲーム装置3が当該情報に基づいて、入力ベクトルS1の値を算出してもよい。ゲーム装置3は、コントローラ5から出力された入力ベクトルS1sx,syに基づいて、仮想スティックベクトルVを算出する。仮想スティックベクトルは、ゲーム装置3において定義される仮想的なアナログスティック仮想スティックによる入力方向を表す2次元のベクトルである。仮想スティックベクトルVの長さは、最大で1である。ゲーム装置3は、コントローラ5からの入力ベクトルS1をそのまま用いて第2キャラクタの移動を制御せず、入力ベクトルS1を仮想スティックベクトルVに変換してから、当該仮想スティックベクトルVを用いて第2キャラクタの移動を制御する。仮想スティックベクトルVは、入力ベクトルS1に追従して変化する。例えば、入力ベクトルS1が1,0から0.707,0.707に変化すると、仮想スティックベクトルVは、1,0から0.707,0.707に所定時間かけて変化する。具体的には、入力ベクトルS1が第1方向上下左右の方向を示す場合、仮想スティックベクトルVは、現在の仮想スティックベクトルが示す方向から入力ベクトルS1が示す方向へ比較的素早く変化する。一方、入力ベクトルS1が第2方向斜め方向;右上、右下、左上、左下の方向を示す場合、仮想スティックベクトルVは、現在の仮想スティックベクトルが示す方向から入力ベクトルS1が示す方向へ比較的ゆっくりと変化する。図14Aは、十字ボタン32aにおいて行われた入力方向が上方向から右上方向に変化した場合に、仮想スティックベクトルVが変化する様子を示す図である。図14Bは、十字ボタン32aにおいて行われた入力方向が右上方向から上方向に変化した場合に、仮想スティックベクトルVが変化する様子を示す図である。図14Aに示すように、入力ベクトルS1の値がある時刻t0で0,1から0.707,0.707に変化した場合、仮想スティックベクトルVは、0,1から0.707,0.707に即時に変化せず、比較的ゆっくりと変化する。具体的には、入力ベクトルS1の値が変化した時刻t0から所定時間tdが経過した時刻t1t0tdでは、仮想スティックベクトルはV1となる。さらに時間が経過して時刻t2t02tdでは、仮想スティックベクトルはV2となり、時刻t3t03tdでは、仮想スティックベクトルはV3となる。そして、例えば、時刻t4t04tdで、仮想スティックベクトルの方向は、右上方向を示す入力ベクトルS10.707,0.707の方向と一致する。一方、図14Bに示すように、入力ベクトルS1の値がある時刻t0で0.707,0.707から0,1に変化した場合、仮想スティックベクトルVは、比較的早く変化する。具体的には、入力ベクトルS1の値が変化した時刻t0から所定時間tdが経過した時刻t1t0tdでは、仮想スティックベクトルはV1’となる。そして、例えば、時刻t2t02tdで仮想スティックベクトルの方向は、上方向を示す入力ベクトルS10,1の方向と一致する。入力ベクトルS1に基づいて算出された仮想スティックベクトルVに応じて、第2キャラクタの移動方向が決定される。具体的には、仮想スティックベクトルVが示す方向と、第2キャラクタが画面に表示された場合の表示上の移動方向とが一致するように、第2キャラクタのゲーム空間における移動方向が決定される。例えば、仮想スティックベクトルVが示す方向が上方向1,0の場合、第2キャラクタは画面の奥方向仮想カメラの撮像方向に移動する。また、例えば、仮想スティックベクトルVが示す方向が右方向0,1の場合、第2キャラクタは画面の右方向に移動する。また、第2キャラクタの移動速度は、仮想スティックベクトルVの長さに応じて設定される。なお、仮想スティックベクトルVの算出方法の詳細については、後述する。このように本実施形態では、十字ボタン32aに対する入力に応じた入力ベクトルS1の値に追従して仮想スティックベクトルVが変化する。具体的には、コントローラ5から出力された入力ベクトルS1が上下左右の方向第1方向を示す場合、仮想スティックベクトルVは、現在の方向から当該入力ベクトルS1が示す方向へ比較的素早く変化する。一方で、コントローラ5から出力された入力ベクトルS1が斜め方向第2方向を示す場合、仮想スティックベクトルVは、現在の方向から当該入力ベクトルS1が示す方向へ比較的ゆっくりと変化する。これにより、第2プレイヤが十字ボタン32aを用いて第2キャラクタを移動させる場合でも、意図した方向に移動させやすい。すなわち、第2プレイヤが、十字ボタン32aの上方向を押して第2キャラクタを画面の奥方向に移動させている状態から、第2キャラクタの進行方向を少し右に曲げたい場合、第2プレイヤは十字ボタン32aの右上方向を押すことにより、仮想スティックベクトルVが徐々に右斜め上方向に変化する。これにより、第2キャラクタを右方向に滑らかに旋回させることができる。一方、例えば、第2キャラクタが右方向に旋回している間に、第2キャラクタを画面の奥方向に直進させる場合、第2プレイヤは、十字ボタン32aの上方向を押す。この場合において、仮想スティックベクトルVがゆっくりと上方向に変化してしまうと、第2キャラクタは、旋回している状態から画面の奥方向に直進する状態にゆっくりと変化する。このため、第2プレイヤが意図したよりも大きく第2キャラクタが旋回してしまい、第2プレイヤが意図した方向に第2キャラクタを直進させることができない。しかしながら、本実施形態では、十字ボタン32aの上方向が押された場合、仮想スティックベクトルVが素早く上方向に変化するため、第2プレイヤは、第2キャラクタを意図した通りに直進させることができる。なお、アナログジョイスティック81に対する入力があった場合、コントローラ5は、入力ベクトルS2の値sx2,sy2をゲーム装置3に出力する。入力ベクトルS2は、アナログジョイスティック81の入力方向上下左右を含む任意の方向を示す2次元の単位ベクトルである。sx2およびsy2は、それぞれ任意の値を取り得る。アナログジョイスティック81に対する入力が無い場合、入力ベクトルS2の値は0,0となる。ゲーム装置3は、コントローラ5から長さが0でない入力ベクトルS2が出力された場合、当該入力ベクトルS2を上記仮想スティックベクトルVとして設定する。なお、上記では、コントローラ5の十字ボタン32aが操作された場合について説明したが、端末装置7の十字ボタン54Aが操作された場合も同様である。すなわち、端末装置7の十字ボタン54Aが操作された場合、十字ボタン54Aに対応する仮想スティックベクトルが算出されて、当該仮想スティックベクトルに基づいて第1キャラクタ91の移動が制御される。[6.ゲーム処理の詳細]次に、本ゲームシステムにおいて実行されるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる各種データについて説明する。図15は、ゲーム処理において用いられる各種データを示す図である。図15において、ゲーム装置3のメインメモリ外部メインメモリ12または内部メインメモリ11eに記憶される主なデータを示す図である。図15に示すように、ゲーム装置3のメインメモリには、ゲームプログラム100、コントローラ操作データ110、端末操作データ120、および処理用データ130が記憶される。なお、メインメモリには、図15に示すデータの他、ゲームに登場する各種オブジェクトの画像データやゲームに使用される音声データ等、ゲームに必要なデータが記憶される。ゲームプログラム100は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム100は、光ディスク4に代えて、フラッシュメモリ17やゲーム装置3の外部装置から例えばインターネットを介して取得されてもよい。また、ゲームプログラム100に含まれる一部例えば、上記仮想スティックベクトルを算出するためのプログラムについては、ゲーム装置3内に予め記憶されていてもよい。コントローラ操作データ110は、コントローラ5に対するユーザ第2プレイヤの操作を表すデータであり、コントローラ5に対する操作に基づいてコントローラ5から出力送信される。コントローラ操作データ110は、コントローラ5から送信されてゲーム装置3において受信され、メインメモリに記憶される。コントローラ操作データ110は、十字ボタンデータ111、サブスティックデータ112を含む。なお、コントローラ操作データ110は、これらのデータの他、その他の操作ボタン32b~32i等が押されたか否かを示すデータ、コントローラ5の加速度センサ37によって検出された加速度を表すメイン加速度データ、コントローラ5の画像処理回路41によって算出される座標を示すマーカ座標データ等を含む。また、ゲーム装置3は、複数のコントローラ5具体的には、コントローラ5aおよび5bから操作データを取得するため、各コントローラ5からそれぞれ送信されてくる各コントローラ操作データ110をメインメモリにそれぞれ記憶する。最新の最後に受信されたデータから所定個数のコントローラ操作データ110が、コントローラ5毎に、時系列に記憶されてもよい。十字ボタンデータ111は、コントローラ5の十字ボタン32aの4方向または斜め方向のうちの何れの方向が押されたかを表すデータである。ここでは、十字ボタンデータ111は、上記入力ベクトルS1sx,syを表すデータである。サブスティックデータ112は、コントローラ5サブコントローラ9のアナログジョイスティック81に対する操作を表すデータである。具体的には、サブスティックデータ112は、アナログジョイスティック81が検出した入力方向傾倒方向を示す2次元の入力ベクトルS2sx2,sy2を表すデータである。端末操作データ120は、端末装置7に対するユーザ第1プレイヤの操作を表すデータであり、端末装置7に対する操作に基づいて端末装置7から出力送信される。端末操作データ120は、端末装置7から送信されてゲーム装置3において受信され、メインメモリに記憶される。端末操作データ120は、十字ボタンデータ121、スティックデータ122を含む。なお、端末操作データ120は、これらのデータの他、各操作ボタンが押されたか否かを示すデータ、タッチパネル52のタッチ位置を示すタッチデータ、端末装置7の加速度センサ63によって検出された加速度を表す加速度データ、端末装置7の磁気センサ62によって検出された方位を示す方位データデータ等を含む。また、ゲーム装置3は、複数の端末装置7から端末操作データを取得する場合、各端末装置7からそれぞれ送信されてくる各端末操作データ120をメインメモリにそれぞれ記憶してもよい。十字ボタンデータ121は、端末装置7の十字ボタン54Aの4方向または斜め方向の何れの方向が押されたかを表すデータである。ここでは、十字ボタンデータ121は、十字ボタン54Aの入力方向を示すベクトルを表すデータである。スティックデータ122は、端末装置7の左アナログスティック53Aあるいは右アナログスティック53Bに対する操作を示すデータである。具体的には、スティックデータ112は、アナログスティック53に対して行われた入力方向スライド方向または傾倒方向を示す2次元のベクトルを表すデータである。処理用データ130は、後述するゲーム処理図16において用いられるデータである。処理用データ130は、仮想スティックデータ131、キャラクタデータ132、追従パラメータ133を含む。なお、図15に示すデータの他、処理用データ130は、ゲームに登場する各種オブジェクトに設定される各種パラメータを表すデータ等、ゲーム処理において用いられる各種データを含む。仮想スティックデータ131は、上記仮想スティックベクトルVVx,Vyを表すデータである。メインメモリには、各コントローラ5および端末装置7に対応する仮想スティックデータが記憶される。すなわち、メインメモリには、コントローラ5aに対応する仮想スティックデータ、コントローラ5bに対応する仮想スティックデータ、および端末装置7に対応する仮想スティックデータが記憶される。キャラクタデータ132は、各キャラクタのゲーム空間における位置および姿勢を表すデータである。追従パラメータ133は、仮想スティックベクトルVを算出するための追従パラメータKである。次に、ゲーム装置3において実行されるゲーム処理の詳細を、図16および図17を用いて説明する。図16は、ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図16に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、ゲーム装置3においては、電源投入後にゲームプログラムがすぐに実行される構成であってもよいし、電源投入後にまず所定のメニュー画面を表示する内蔵プログラムが実行され、その後例えばユーザによるメニュー画面に対する選択操作によってゲームの開始が指示されたことに応じてゲームプログラムが実行される構成であってもよい。なお、図16および図17に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数や定数の値等も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU10が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、CPU10以外のプロセッサや専用回路が実行するようにしてもよい。まず、ステップS11において、CPU10は初期処理を実行する。初期処理は、仮想のゲーム空間を構築し、ゲーム空間に登場する各オブジェクト第1、第2キャラクタや仮想カメラ、その他のオブジェクト等を初期位置に配置したり、ゲーム処理で用いる各種パラメータの初期値を設定したりする処理である。また、初期処理では、仮想スティックデータ131が初期化される。すなわち、仮想スティックベクトルVが0,0に初期化される。また、ステップS11の処理以降、ステップS12~S17の一連の処理からなる処理ループが所定時間1フレーム時間。例えば1/60秒に1回の割合で繰り返し実行される。ステップS12において、CPU10は、端末装置7および2つのコントローラ5から送信されてメインメモリに記憶されている操作データ入力ベクトルS1、入力ベクトルS2等をそれぞれ取得する。端末装置7および各コントローラ5は操作データ端末操作データおよびコントローラ操作データをゲーム装置3へ繰り返し送信する。ゲーム装置3においては、端末通信モジュール28が端末操作データを逐次受信し、受信された端末操作データが入出力プロセッサ11aによってメインメモリに逐次記憶される。また、コントローラ通信モジュール19が各コントローラ操作データを逐次受信し、受信された各コントローラ操作データが入出力プロセッサ11aによってメインメモリに逐次記憶される。コントローラ5とゲーム装置3との間における送受信の間隔、および、端末装置7とゲーム装置3との間における送受信の間隔はゲームの処理時間よりも短い方が好ましく、例えば200分の1秒である。ステップS2においては、CPU10は、最新のコントローラ操作データ110および最新の端末操作データ120をメインメモリから読み出す。ステップS12の次にステップS13の処理が実行される。ステップS13において、CPU10は方向設定処理を実行する。方向設定処理は、各仮想キャラクタの移動方向を算出するための処理であり、上記仮想スティックベクトルVを設定する処理である。ステップS13の方向設定処理は、各キャラクタに対応する入力装置、すなわち、端末装置7、コントローラ5a、コントローラ5bのそれぞれに対して行われる。なお、以下では、コントローラ5に対応する仮想スティックベクトルの設定について説明するが、端末装置7に対しても同様の処理が行われることによって、端末装置7に対応する仮想スティックベクトルが設定される。以下、図17を参照して、方向設定処理の詳細について説明する。図17は、図16に示す方向設定処理ステップS13の詳細な流れを示すフローチャートである。ステップS21において、CPU10は、十字ボタン32aおよびアナログジョイスティック81が無入力状態か否かを判定する。具体的には、CPU10は、十字ボタンデータ111およびサブスティックデータ112を参照して、コントローラ5の十字ボタン32aおよびアナログジョイスティック81に対する入力がなかったか否かを判定する。より具体的には、ステップS12で取得した十字ボタン32aの入力ベクトルS1が0,0であり、かつ、アナログジョイスティック81の入力ベクトルS2が0,0である場合、CPU10は、無入力状態であると判定する。CPU10は、無入力状態であると判定した場合、次にステップS22の処理を実行する。一方、CPU10は、無入力状態でないと判定した場合、次にステップS23の処理を実行する。ステップS22において、CPU10は、仮想スティックベクトルVの長さを徐々に小さくする。ステップS22の処理は、十字ボタン32aおよびアナログジョイスティック81に対する入力がないため、仮想スティックベクトルVの長さを0に近づけるための処理である。具体的には、CPU10は、仮想スティックデータ131で示される仮想スティックベクトルVVx、Vyの長さLenが、予め定められた値dよりも小さければ、仮想スティックベクトルVの長さLenを0に設定するすなわち、VxおよびVyに0を設定する。一方、仮想スティックベクトルVVx、Vyの長さLenが、予め定められた値d以上であれば、CPU10は、以下の式1および式2に基づいて、仮想スティックベクトルVVx、Vyを算出する。Vx←Vx-Vx×d/Len1Vy←Vy-Vy×d/Len2上記式1および式2に基づいて更新された仮想スティックベクトルVは、仮想スティックデータ131としてメインメモリに記憶される。CPU10は、ステップS22の処理の後、図17に示す方向設定処理を終了する。一方、ステップS23において、CPU10は、サブスティックデータ112を参照して、アナログジョイスティック81に対する入力があったか否かを判定する。具体的には、CPU10は、ステップS12で取得した入力ベクトルS2の長さが0か否かを判定する。アナログジョイスティック81に対する入力があった場合、CPU10は、次にステップS24の処理を実行する。アナログジョイスティック81に対する入力が無かった場合、CPU10は、次にステップS25の処理を実行する。ステップS24において、CPU10は、ステップS12で取得した入力ベクトルS2を仮想スティックベクトルVとして設定し、メインメモリに記憶する。CPU10は、ステップS24の処理の後、図17に示す方向設定処理を終了する。ステップS25において、CPU10は、十字ボタン32aが検出した入力方向が斜め方向か否かを判定する。ステップS25は、ステップS21およびステップS23において判定結果が何れもNoである場合、すなわち、十字ボタン32aに対する入力が行われている場合に、実行される処理である。具体的には、CPU10は、十字ボタンデータ111を参照して、入力ベクトルS1が斜め方向第2方向;右上、右下、左下、左上の何れかの方向を示すか否かを判定する。判定結果が否定の場合、CPU10は、次にステップS26の処理を実行する。判定結果が肯定の場合、CPU10は、次にステップS27の処理を実行する。ステップS26において、CPU10は、追従パラメータKを算出するのためのパラメータK1およびK2を設定する。具体的には、CPU10は、K1に0.5を、K2に2.0を設定する。ここで、追従パラメータKは、仮想スティックベクトルVを入力ベクトルS1にどの程度近づけるかを示すパラメータであり、後述するステップS29の処理において用いられるパラメータである。また、K1は、Kの最小値であり、K2はKの最大値である。ステップS26の処理は、十字ボタン32aへの入力が斜め方向でない、すなわち、十字ボタン32aが示す4方向の何れかの方向第1方向;上下左右の何れかの方向である場合に実行される。このため、仮想スティックベクトルVを入力ベクトルS1に素早く近づけるために近づける度合いを高くするために、K1およびK2が上記の値に設定される。ステップS26の処理の後、CPU10は、次にステップS28の処理を実行する。ステップS27において、CPU10は、追従パラメータKの算出のためのパラメータK1およびK2を設定する。具体的には、CPU10は、K1に0.0を、K2に1.0を設定する。ステップS27の処理は、十字ボタン32aへの入力が、斜め方向第2方向;右上、右下、左上、左下の何れかの方向である場合に実行される。このため、仮想スティックベクトルVを入力ベクトルS1にゆっくり近づけるために近づける度合いを低くするために、K1およびK2が上記の値に設定される。ステップS27の処理の後、CPU10は、次にステップS28の処理を実行する。ステップS28において、CPU10は、仮想スティックデータ131および十字ボタンデータ111を参照して、仮想スティックベクトルVと入力ベクトルS1との内積値dpを算出する。CPU10は、次にステップS29の処理を実行する。ステップS29において、CPU10は、追従パラメータKを算出する。具体的には、CPU10は、以下の式3に基づいて、追従パラメータKを算出する。K←K1K2-K1×1-dp/23ここで、dpは、ステップS28で算出された仮想スティックベクトルVと入力ベクトルS1との内積値である。また、K1およびK2は、ステップS26またはステップS27で設定された値である。例えば、内積値dpが1の場合、すなわち、仮想スティックベクトルVと入力ベクトルS1との間の角度が0度の場合、KはK1となって最小の値となる。また、内積値dpが-1の場合、すなわち、仮想スティックベクトルVと入力ベクトルS1との間の角度が180度の場合、KはK2となって最大の値となる。上記式3により、入力ベクトルS1が示すプレイヤの入力方向が、現在の仮想スティックベクトルVが示す方向と一致するほど追従パラメータKの値が最小値に近づく。逆に、入力ベクトルS1が示す入力方向が、現在の仮想スティックベクトルVが示す方向と異なるほど反対方向であるほど追従パラメータKの値が最大値に近づく。すなわち、入力ベクトルS1が示す入力方向が、現在の仮想スティックベクトルVが示す方向と異なるほど、仮想スティックベクトルVの方向が入力ベクトルS1の方向により早く近づく。CPU10は、次にステップS30の処理を実行する。ステップS30において、CPU10は、現在の仮想スティックベクトルVと、入力ベクトルS1と、追従パラメータKとに基づいて、仮想スティックベクトルVを更新する。具体的には、CPU10は、以下の式4および式5に基づいて、仮想スティックベクトルVを算出する。Vx←Vxsx×K4Vy←Vysy×K5上記式4および式5によって新たなVx,Vyが算出されることにより、仮想スティックベクトルVが更新される。式4および式5から明らかなように、追従パラメータKの値が大きいほど、仮想スティックベクトルVは入力ベクトルS1により近づく。CPU10は、次にステップS31の処理を実行する。ステップS31において、CPU10は、仮想スティックベクトルVの長さが1より大きければ、仮想スティックベクトルVを正規化する。具体的には、CPU10は、まず、ステップS30で算出した仮想スティックベクトルVの長さが1より大きいか否かを判定する。そして、CPU10は、仮想スティックベクトルVの長さが1より大きければ、仮想スティックベクトルVの長さが1になるように仮想スティックベクトルVを正規化する。CPU10は、仮想スティックベクトルVの長さが1以下であれば、仮想スティックベクトルVを正規化しない。ステップS31の処理の後、CPU10は、図17に示す方向設定処理を終了する。図16に戻り、CPU10は、次にステップS14の処理を実行する。ステップS14において、CPU10は、ゲーム処理を実行する。具体的には、CPU10は、ステップS13において設定された仮想スティックベクトルVに基づいて、各キャラクタをゲーム空間内で移動させる。例えば、CPU10は、コントローラ5aに対応する仮想スティックベクトルVに基づいて、第2キャラクタ92aをゲーム空間内で移動させる。また、例えば、CPU10は、端末装置7に対応する仮想スティックベクトルに基づいて、第1キャラクタ91をゲーム空間内で移動させる。さらに、CPU10は、各キャラクタの移動に応じたゲーム処理を実行する。例えば、CPU10は、移動後の第1キャラクタ91と第2キャラクタ92との距離に基づいて、第1キャラクタ91が第2キャラクタ92を捕まえたか否かを判定し、判定結果に応じた処理を実行する。CPU10は、次にステップS15の処理を実行する。ステップS15において、CPU10は、画像の生成処理を実行する。具体的には、CPU10は、ゲーム空間に配置された仮想カメラでゲーム空間を撮像することにより、テレビ2に表示される画像テレビ用ゲーム画像を生成する。なお、各キャラクタに対応する複数の仮想カメラが設定される場合、複数の仮想カメラによって生成された複数の画像を含む1つのテレビ用ゲーム画像が生成される。また、CPU10は、端末装置7に表示される画像端末用ゲーム画像を生成してもよい。この場合において、端末用ゲーム画像は、テレビ用ゲーム画像と異なっていてもよい。CPU10は、次にステップS16の処理を実行する。ステップS16において、CPU10は、ステップS15で生成した画像テレビ用ゲーム画像をテレビ2に出力する。また、テレビ用ゲーム画像と共に音声データがテレビ2へ出力され、テレビ2のスピーカ2aからゲーム音声が出力される。なお、CPU10は、端末用ゲーム画像を生成する場合、当該画像を端末装置7に対して無線で送信してもよい。この場合において、CPU10は、ステップS15で生成した端末用ゲーム画像をコーデックLSI27に送り、当該コーデックLSI27は、端末用ゲーム画像に対して所定の圧縮処理を行う。圧縮処理が施された画像のデータは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。端末装置7は、ゲーム装置3から送信されてくる画像のデータを無線モジュール70によって受信する。コーデックLSI66は、受信された画像データに対して所定の伸張処理を行う。伸張処理が行われた画像データはLCD51に出力される。これによって、端末用ゲーム画像がLCD51に表示される。また、端末用ゲーム画像と共に音声データが端末装置7へ送信され、端末装置7のスピーカ67からゲーム音声が出力されてもよい。CPU10は、次にステップS17の処理を実行する。ステップS17において、CPU10は、ゲームを終了するか否かを判定する。ステップS17の処理は、例えば、全ての第2キャラクタ92が第1キャラクタ91に捕まったか否か、あるいは、プレイヤがゲームを中止する指示を行ったか否か等を判定する処理である。ステップS17の判定結果が否定の場合、ステップS12の処理が再度実行される。一方、ステップS17の判定結果が肯定の場合、CPU10は図16に示すゲーム処理を終了する。以上のように、十字ボタンに対する入力に応じた入力ベクトルS1に基づいて、仮想スティックベクトルVが算出される。仮想スティックベクトルVは、入力ベクトルS1に追従して変化する。具体的には、入力ベクトルS1が示す方向が十字ボタンの斜め方向である場合は、仮想スティックベクトルVは比較的ゆっくりと入力ベクトルS1に近づく。入力ベクトルS1が示す方向が十字ボタンの上下左右の方向である場合は、仮想スティックベクトルVは比較的早く入力ベクトルS1に近づく。これにより、プレイヤが十字ボタンを用いてキャラクタをゲーム空間内で移動させる場合でも、意図した方向に移動させやすい。すなわち、十字ボタンの上下左右の何れかの方向が入力された場合、プレイヤは、意図的にキャラクタを上下左右の何れかに移動させようとしていると考えられる。一方、十字ボタンの斜め方向の入力された場合、プレイヤは、キャラクタの移動方向を調整していると考えられる。したがって、十字ボタンの上下左右の何れかの方向が入力された場合は、仮想スティックベクトルVを入力ベクトルS1に素早く近づけることにより、キャラクタの移動方向をプレイヤが示した方向に素早く変化させる。これにより、プレイヤの意図をゲームに反映させることができる。一方で、十字ボタンの斜め方向の入力された場合は、仮想スティックベクトルVを入力ベクトルS1にゆっくりと近づけることにより、キャラクタの移動方向をプレイヤが示した方向にゆっくりと変化させる。これにより、プレイヤは、キャラクタの移動方向を微調整し易く、プレイヤが意図した方向にキャラクタを移動させることができる。また、本実施形態では、現在の仮想スティックベクトルVが示す方向と、入力ベクトルS1が示す方向とが異なるほど、仮想スティックベクトルVを入力ベクトルS1により早く近づけるようにして、仮想スティックベクトルVの値を更新する。これにより、プレイヤの意図をより反映することができ、プレイヤの操作性操作感を向上させることができる。例えば、現在の仮想スティックベクトルVが示す方向が入力ベクトルS1が示す方向の反対方向である場合2つのベクトルの角度が180度の場合、プレイヤは、キャラクタを反転させようとしていると考えられる。したがって、この場合、現在の仮想スティックベクトルVを入力ベクトルS1により早く近づけることにより、プレイヤの意図をすぐに反映して、キャラクタを反転させることができる。また、例えば、現在の仮想スティックベクトルVが示す方向と、入力ベクトルS1が示す方向とが近い場合2つのベクトルの角度が比較的小さい場合、プレイヤは、キャラクタの移動方向を調整していると考えられる。したがって、この場合、現在の仮想スティックベクトルVを入力ベクトルS1にゆっくりと近づけることにより、プレイヤは、キャラクタの移動方向を微調整することができる。[7.変形例]なお、上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成で本発明を実施することも可能である。例えば、本実施形態では、複数のプレイヤによって行われる鬼ごっこゲームを想定した。他の実施形態では、単数のプレイヤによって行われる他の任意のゲームであってもよく、十字ボタンに対する入力に基づいて、仮想空間内の所定のオブジェクトを移動させるゲームであればどのようなものでもよい。また、本実施形態では、4方向スイッチとして十字ボタンが用いられた。他の実施形態では、4方向スイッチとして、斜め4方向右上、右下、左上、左下のスイッチが用いられてもよい。この場合、斜め4方向への入力が行われた場合よりも、上下左右の方向すなわち、4方向スイッチが示す4方向のうちの2方向の間の方向への入力が行われた方が、仮想スティックベクトルVは入力ベクトルS1にゆっくりと近づくように更新される。また、本実施形態では、入力ベクトルS1と仮想スティックベクトルVとの内積値が大きいほど、仮想スティックベクトルVを入力ベクトルS1に近づける度合いを高くした。すなわち、十字ボタンに対する入力に応じた入力方向と、仮想スティックの方向との違いが大きいほど、仮想スティックの方向を入力方向に近づける度合いを高くした。他の実施形態では、仮想スティックベクトルVを入力ベクトルS1に近づける度合いは、上記違いによらず一定であってもよいし、上記違いに基づいて変化されてもよい。例えば、入力方向と仮想スティックの方向との角度が所定値以上の場合は、より近づける度合いを高くしてもよい。また、例えば、入力方向と仮想スティックの方向との角度が所定値以下の場合は、近づける度合いを一定にしてもよい。また、本実施形態では、十字ボタンに対する入力と、アナログスティックに対する入力とがあった場合、アナログスティックからの入力ベクトルS2を仮想スティックベクトルVとして設定した。すなわち、十字ボタンに対する入力と、アナログスティックに対する入力とがあった場合、アナログスティックに対する入力を優先して、当該アナログスティックからの入力ベクトルS2を仮想スティックベクトルVとして設定した。他の実施形態では、十字ボタンに対する入力と、アナログスティックに対する入力とがあった場合、十字ボタンに対する入力を優先してもよい。また、他の実施形態では、アナログスティックに対する入力があった場合、現在の仮想スティックベクトルVにアナログスティックの入力ベクトルS2を加えることにより、仮想スティックベクトルVを更新してもよい。この場合において、更新された仮想スティックベクトルVの長さが1を超えた場合、長さを1にする正規化を行う。また、他の実施形態では、十字ボタンに対する入力に基づいて、上述した方法により第1仮想スティックベクトル第1制御方向を算出し、アナログスティックに対する入力に基づいて、第2仮想スティックベクトル第2制御方向を設定してもよい。この場合、アナログスティックの入力方向が第2制御方向として設定されてもよいし、現在の第2制御方向にアナログスティックの入力方向を加えることによって、第2制御方向が更新されてもよい。そして、第1制御方向および/または第2仮想制御方向に基づいて、ゲーム空間の所定のオブジェクトが制御されてもよい。なお、第2制御方向は、第1制御方向と同じものであってもよいし、異なるものであってもよい。すなわち、ゲーム装置3において、1つの仮想スティックベクトルVが定義されて、十字ボタンに対する入力に基づいて第1制御方向としての当該仮想スティックベクトルVが算出され、アナログスティックに対する入力に基づいて第2制御方向としての当該仮想スティックベクトルVが設定されてもよい。また、本実施形態では、入力方向が、4つの第1方向十字ボタンの上下左右の4つの方向か、または、4つの第2方向斜め方向;右上、右下、左上、左下の4つの方向かによって、仮想スティックの方向を入力方向に近づける度合いを異ならせた。具体的には、入力方向が第2方向である場合、当該入力方向が第1方向である場合よりも近づける度合いを低くして、仮想スティックの方向を入力方向に近づけた。他の実施形態では、入力方向が4つの第2方向のうちの特定の方向例えば、右上方向および左上方向である場合にのみ、近づける度合いを相対的に低くしてもよい。例えば、キャラクタが、特定の方向、具体的には、画面の奥方向あるいは上方向にのみ移動可能なゲームにおいて、上記仮想スティックに基づいてキャラクタの移動方向を制御してもよい。また、本実施形態では、コントローラ5が入力ベクトルS1を算出し、ゲーム装置3がコントローラ5から送信された入力ベクトルS1を取得した。他の実施形態では、ゲーム装置3がコントローラ5から送信された十字ボタンの入力情報に基づいて、入力ベクトルS1を算出することにより、上記入力ベクトルS1を取得してもよい。また、他の実施形態では、互いに通信可能な複数の情報処理装置を有するシステムにおいて、当該複数の情報処理装置が、上述のようなゲーム装置3において実行された処理を分担して実行するようにしてもよい。どの処理をどの装置に実行させるかは適宜調整されてもよい。例えば、インターネットのようなネットワークに接続された十字ボタンを有する入力装置からの入力情報入力ベクトルS1が、当該ネットワークに接続された情報処理装置に送信されてもよい。この場合、当該情報処理装置は、受信した入力情報に基づいて、上述した処理を行うことにより仮想スティックベクトルVを算出し、当該仮想スティックベクトルに基づいて例えば所定のオブジェクトの移動を制御してもよい。また、他の実施形態では、ゲーム装置3と、コントローラ5および端末装置7とが無線ではなく有線で接続されることによって、情報が送受信されてもよい。上記プログラムは、ゲーム装置3以外の様々な情報処理を行う目的で用いられる任意の情報処理装置、例えばパーソナルコンピュータ等において実行されてもよい。例えば、パーソナルコンピュータ等に十字ボタンを含むコントローラが接続され、当該十字ボタンに対する操作に基づいて、アイコンを選択するためのポインタを制御してもよい。また、上記プログラムは、光ディスクに限らず、磁気ディスク、不揮発性メモリ等の記憶媒体に記憶されてもよく、ネットワークに接続されたサーバ上のRAMや磁気ディスク等のコンピュータ読み取り可能な記憶媒体に記憶されて、ネットワークを介して当該プログラムが提供されてもよい。また、上記プログラムは、ソースコードとして情報処理装置に読み込まれて、プログラムの実行の際にコンパイルされて実行されてもよい。また、上記実施形態においては、ゲーム装置3のCPU10が上記ゲームプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置10が備える専用回路によって行われてもよし、他の汎用プロセッサによって行われてもよい。少なくとも1つのプロセッサが、上記処理を実行するためのプログラムされた論理回路として動作するものであってもよい。"