(57)【要約】【課題】チャット相手に対応するキャラクタがどの方向にいるのかを把握させる。【解決手段】ネットワークシステム（１２０）は、複数の情報処理装置（１２，１２，…）を含む。各情報処理装置は、チャット相手の情報処理装置を特定して、この相手の情報処理装置との間でメッセージの送受信を行う。また、自身の情報処理装置に対応する自キャラクタＡおよび相手の情報処理装置に対応する相手キャラクタＢを仮想空間内に配置して、仮想空間を任意の位置から見た画像を生成し、この画像をモニタ（３４）に出力する。また、自キャラクタＡから相手キャラクタＢへの方向を算出して、この方向を示すように指標Ｍを生成し、仮想空間内に定義された所定範囲（Ｅ）内に相手キャラクタが含まれているか否かを判別し、メッセージを送信中または受信中であるか否かを判別し、そして所定範囲外でありかつ送信中または受信中であると判別したとき指標Ｍをモニタに出力する。【選択図】図１０
2010262523.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置の間でネットワークを介してチャットを行うネットワークシステムであって、
各情報処理装置は、
チャットを行う相手の情報処理装置を特定するチャット相手特定手段、
自身の情報処理装置と前記チャット相手特定手段によって特定された前記相手の情報処理装置との間でメッセージの送信または受信を行うメッセージ送受信手段、
前記自身の情報処理装置に対応する自キャラクタおよび前記相手の情報処理装置に対応する相手キャラクタを仮想空間内に配置するキャラクタ配置手段、
前記仮想空間を任意の位置から見た画像を生成する画像生成手段、
前記自キャラクタから前記相手キャラクタへの方向を算出する方向算出手段、
前記方向算出手段によって算出された方向を示すように指標を生成する指標生成手段、
前記仮想空間内に定義された所定範囲の内部に前記相手キャラクタが含まれているか否かを判別する相手キャラクタ判別手段、
前記メッセージ送受信手段によって送信中または受信中であるか否かを判別する送受信判別手段、および
前記画像生成手段によって生成された画像を表示手段に出力する表示出力手段を備え、
前記表示出力手段は、前記相手キャラクタ判別手段によって前記所定範囲内に前記相手キャラクタが含まれていないと判別され、かつ前記送受信判別手段によって送信中または受信中であると判別されたとき、前記指標生成手段によって生成された指標を所定の態様で前記表示手段に出力する、ネットワークシステム。
【請求項２】
前記指標生成手段は、前記相手キャラクタ判別手段によって前記所定範囲内に前記相手キャラクタが含まれていないと判別され、かつ前記送受信判別手段によって送信中または受信中ではないと判別されたとき、第１の態様で前記指標を生成し、前記相手キャラクタ判別手段によって前記所定範囲内に前記相手キャラクタが含まれていないと判別され、かつ前記送受信判別手段によって送信中または受信中であると判別されたとき、第２の態様で前記指標を生成する、請求項１記載のネットワークシステム。
【請求項３】
前記メッセージは音声データであり、
前記送受信判別手段は、前記メッセージ送受信手段によって送信または受信した音声データの音量が、所定値以上であるとき送信中または受信中であると判別する一方、前記所定値未満であるとき送信中または受信中でないと判別する、請求項１または２記載のネットワークシステム。
【請求項４】
前記各情報処理装置は、前記自キャラクタを中心とする所定の大きさの球を生成する球生成手段をさらに備え、
前記方向算出手段は、前記自キャラクタと前記相手キャラクタとを結ぶ線を生成し、
前記指標生成手段は、前記球の表面と前記線との交点に前記指標を生成する、請求項１ないし３のいずれかに記載のネットワークシステム。
【請求項５】
前記各情報処理装置は、前記自キャラクタと前記相手キャラクタとの間の距離を算出する距離算出手段をさらに備え、
前記指標生成手段は、前記距離算出手段によって算出された距離に基づいて、前記指標の態様を変化させる、請求項１ないし４のいずれかに記載のネットワークシステム。
【請求項６】
前記態様は大きさを含む、請求項５記載のネットワークシステム。
【請求項７】
前記指標生成手段は、前記距離の大きさに比例して前記指標が大きくなるように生成する、請求項６記載のネットワークシステム。
【請求項８】
前記指標には、大きさの最大値と最小値が設定され、
前記指標生成手段は、前記距離が第１設定値以上であれば前記最大値に対応する大きさの指標を生成し、当該距離が第２設定値以下であれば前記最小値に対応する大きさの指標を生成する、請求項６または７記載のネットワークシステム。
【請求項９】
前記指標生成手段は、前記方向算出手段によって算出された方向を示す形状の指標を生成する、請求項１ないし８のいずれかに記載のネットワークシステム。
【請求項１０】
前記指標生成手段は、前記方向算出手段によって算出された方向を示す位置に指標を生成する、請求項１ないし９のいずれかに記載のネットワークシステム。
【請求項１１】
ネットワークを介してチャットを行う情報処理装置であって、
チャットを行う相手の情報処理装置を特定するチャット相手特定手段、
自身の情報処理装置と前記チャット相手特定手段によって特定された前記相手の情報処理装置との間でメッセージの送信または受信を行うメッセージ送受信手段、
前記自身の情報処理装置に対応する自キャラクタおよび前記相手の情報処理装置に対応する相手キャラクタを仮想空間内に配置するキャラクタ配置手段、
前記仮想空間を任意の位置から見た画像を生成する画像生成手段、
前記自キャラクタから前記相手キャラクタへの方向を算出する方向算出手段、
前記方向算出手段によって算出された方向を示すように指標を生成する指標生成手段、
前記仮想空間内に定義された所定範囲の内部に前記相手キャラクタが含まれているか否かを判別する相手キャラクタ判別手段、
前記メッセージ送受信手段によって送信中または受信中であるか否かを判別する送受信判別手段、および
前記画像生成手段によって生成された画像を表示手段に出力する表示出力手段を備え、
前記表示出力手段は、前記相手キャラクタ判別手段によって前記所定範囲内に前記相手キャラクタが含まれていないと判別され、かつ前記送受信判別手段によって送信中または受信中であると判別されたとき、前記指標生成手段によって生成された指標を所定の態様で前記表示手段に出力する、情報処理装置。
【請求項１２】
ネットワークを介してチャットを行う情報処理装置のコンピュータを、
チャットを行う相手の情報処理装置を特定するチャット相手特定手段、
自身の情報処理装置と前記チャット相手特定手段によって特定された前記相手の情報処理装置との間でメッセージの送信または受信を行うメッセージ送受信手段、
前記自身の情報処理装置に対応する自キャラクタおよび前記相手の情報処理装置に対応する相手キャラクタを仮想空間内に配置するキャラクタ配置手段、
前記仮想空間を任意の位置から見た画像を生成する画像生成手段、
前記自キャラクタから前記相手キャラクタへの方向を算出する方向算出手段、
前記方向算出手段によって算出された方向を示すように指標を生成する指標生成手段、
前記仮想空間内に定義された所定範囲の内部に前記相手キャラクタが含まれているか否かを判別する相手キャラクタ判別手段、
前記メッセージ送受信手段によって送信中または受信中であるか否かを判別する送受信判別手段、および
前記画像生成手段によって生成された画像を表示手段に出力する表示出力手段として機能させ、
前記表示出力手段は、前記相手キャラクタ判別手段によって前記所定範囲内に前記相手キャラクタが含まれていないと判別され、かつ前記送受信判別手段によって送信中または受信中であると判別されたとき、前記指標生成手段によって生成された指標を所定の態様で前記表示手段に出力する、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワークシステム，情報処理装置および情報処理プログラムに関し、特にたとえば、ネットワークを介してチャットを行う、ネットワークシステム，情報処理装置および情報処理プログラムに関する。
【背景技術】
【０００２】
この種の従来の背景技術としては、たとえば特許文献１に開示されたチャットシステムが知られている。この背景技術では、送話者や受話者（チャットを行う相手）を表すオブジェクト（相手キャラクタ）の頭上位置に矢印が付される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３０４３５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記の背景技術では、送話者や受話者を表すオブジェクトが画面外に出れば、これを識別する矢印も消失するので、ユーザは、チャット相手がどの方向にいるのかわからなくなる。
【０００５】
それゆえ、この発明の主たる目的は、新規な、ネットワークシステム，情報処理プログラムおよび情報処理装置を提供することである。
【０００６】
また、この発明の他の目的は、チャット相手に対応するキャラクタがどの方向にいるかを把握させることができる、ネットワークシステム，情報処理装置および情報処理プログラムを提供することである。
【課題を解決するための手段】
【０００７】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００８】
第１の発明は、複数の情報処理装置の間でネットワークを介してチャットを行うネットワークシステムであって、各情報処理装置は、チャットを行う相手の情報処理装置を特定するチャット相手特定手段、自身の情報処理装置とチャット相手特定手段によって特定された相手の情報処理装置との間でメッセージの送信または受信を行うメッセージ送受信手段、自身の情報処理装置に対応する自キャラクタおよび相手の情報処理装置に対応する相手キャラクタを仮想空間内に配置するキャラクタ配置手段、仮想空間を任意の位置から見た画像を生成する画像生成手段、自キャラクタから相手キャラクタへの方向を算出する方向算出手段、方向算出手段によって算出された方向を示すように指標を生成する指標生成手段、仮想空間内に定義された所定範囲の内部に相手キャラクタが含まれているか否かを判別する相手キャラクタ判別手段、メッセージ送受信手段によって送信中または受信中であるか否かを判別する送受信判別手段、および画像生成手段によって生成された画像を表示手段に出力する表示出力手段を備え、表示出力手段は、相手キャラクタ判別手段によって所定範囲内に相手キャラクタが含まれていないと判別され、かつ送受信判別手段によって送信中または受信中であると判別されたとき、指標生成手段によって生成された指標を所定の態様で表示手段に出力する。
【０００９】
第１の発明のネットワークシステム（１２０）では、複数の情報処理装置（１２，１２，…）の間でネットワーク（１２２）を介してチャットを行う。各情報処理装置は、チャット相手特定手段（Ｓ３，Ｓ５）、メッセージ送受信手段（Ｓ１，Ｓ３５〜Ｓ３９，Ｓ５３〜Ｓ５５，Ｓ４１ａ〜Ｓ４３ａ，２０４）、キャラクタ配置手段（Ｓ９）、画像生成手段（Ｓ６９，Ｓ５９ａ，Ｓ６３ａ）、方向算出手段（Ｓ４５，Ｓ４９ａ）、指標生成手段（Ｓ６７，Ｓ５７ａ）、相手キャラクタ判別手段（Ｓ４１，Ｓ４５ａ）、送受信判別手段（Ｓ５３，Ｓ４１ａ）および表示出力手段（Ｓ７１，Ｓ６１ａ，Ｓ６５ａ）を備える。チャット相手特定手段は、チャットを行う相手の情報処理装置を特定する。メッセージ送受信手段は、自身の情報処理装置とチャット相手特定手段によって特定された相手の情報処理装置との間でメッセージの送信または受信を行う。キャラクタ配置手段は、自身の情報処理装置に対応する自キャラクタ（Ａ）および相手の情報処理装置に対応する相手キャラクタ（Ｂ）を仮想空間内に配置する。画像生成手段は、仮想空間を任意の位置から見た画像を生成する。方向算出手段は、自キャラクタから相手キャラクタへの方向を算出する。指標生成手段は、方向算出手段によって算出された方向を示すように指標（Ｍ）を生成する。相手キャラクタ判別手段は、仮想空間内に定義された所定範囲（Ｅ）の内部に相手キャラクタが含まれているか否かを判別する。送受信判別手段は、メッセージ送受信手段によって送信中または受信中であるか否かを判別する。表示出力手段は、画像生成手段によって生成された画像を表示手段（３４）に出力する。表示出力手段はまた、相手キャラクタ判別手段によって所定範囲内に相手キャラクタが含まれていないと判別され、かつ送受信判別手段によって送信中または受信中であると判別されたとき、指標生成手段によって生成された指標を所定の態様で表示手段に出力する。
【００１０】
第１の発明によれば、チャット相手に対応するキャラクタが所定範囲外で発言したとき、この相手キャラクタへの方向を所定の態様の指標で示すので、相手キャラクタが画面外に出てしまっても、ユーザは、相手キャラクタがどの方向にいるのかを視覚的に容易に把握することができる。なお、ここでいう発言は、音声によるメッセージの伝達（音声チャット）と、文字によるメッセージの伝達（文字チャット）との少なくとも一方を含む。
【００１１】
第２の発明は、第１の発明に従属するネットワークシステムであって、指標生成手段（Ｓ６７）は、相手キャラクタ判別手段によって所定範囲内に相手キャラクタが含まれていないと判別され、かつ送受信判別手段によって送信中または受信中ではないと判別されたとき、第１の態様で指標を生成し、相手キャラクタ判別手段によって所定範囲内に相手キャラクタが含まれていないと判別され、かつ送受信判別手段によって送信中または受信中であると判別されたとき、第２の態様で指標を生成する。
【００１２】
第２の発明によれば、チャット相手に対応するキャラクタが所定範囲外にいれば、たとえ相手が発言中でなくても指標を生成するので、ユーザは、相手キャラクタがどの方向にいるのかを常時把握することができる。さらには、相手が発言中か否かで指標の態様を異ならせるので、ユーザは、相手が発言中かどうかも容易に把握できる。
【００１３】
第３の発明は、第１または第２の発明に従属するネットワークシステムであって、メッセージは音声データであり、送受信判別手段は、メッセージ送受信手段によって送信または受信した音声データの音量が、所定値以上であるとき送信中または受信中であると判別する一方、所定値未満であるとき送信中または受信中でないと判別する。
【００１４】
第３の発明によれば、メッセージは音声で、その音量が、所定値以上のとき送信中または受信中であると判別する一方、所定値未満であるとき送信中または受信中でないと判別するので、ユーザは、音声による興趣性の高いチャットを楽しむことができる。また、音声の音量が所定値以上か否かを容易に認識させることができるので、ユーザに大きな声で話すように促すことができる。
【００１５】
第４の発明は、第１ないし第３のいずれかの発明に従属するネットワークシステムであって、各情報処理装置は、自キャラクタを中心とする所定の大きさの球を生成する球生成手段をさらに備え、方向算出手段は、自キャラクタと相手キャラクタとを結ぶ線を生成し、指標生成手段は、球の表面と線との交点に指標を生成する。
【００１６】
第４の発明では、各情報処理装置は、球生成手段（Ｓ４３，Ｓ４７ａ）をさらに備える。球生成手段は、自キャラクタを中心とする所定の大きさの球（Ｓ）を生成し、方向算出手段は、自キャラクタと相手キャラクタとを結ぶ線（Ｌ）を生成し、そして指標生成手段は、球の表面と線との交点に指標を生成する。
【００１７】
第４の発明によれば、球面と線分の交点に指標を生成するので、自キャラクタと指標との位置関係によって方向を示すことができる。また、指標はどの方向を示す場合であっても自キャラクタからの距離が同じになる位置に表示されるため、ユーザは、指標の位置をより容易に把握することができる。
【００１８】
第５の発明は、第１ないし第４のいずれかの発明に従属するネットワークシステムであって、各情報処理装置は、自キャラクタと相手キャラクタとの間の距離を算出する距離算出手段をさらに備え、指標生成手段は、距離算出手段によって算出された距離に基づいて指標の態様を変化させる。
【００１９】
第５の発明では、各情報処理装置は、距離算出手段（Ｓ４７，Ｓ５１ａ）をさらに備える。距離算出手段は、自キャラクタと相手キャラクタとの間の距離を算出し、指標生成手段は、距離算出手段によって算出された距離に基づいて指標の態様を変化させる。ここで態様は、形状，色，大きさ，輝度，濃淡，点滅周期などを含み、これらの少なくとも１つが変化の対象となる。
【００２０】
第５の発明によれば、自キャラクタと相手キャラクタとの間の距離に応じて指標の態様が変化するので、両者の間の距離を視覚的に容易に把握することができる。
【００２１】
第６の発明は、第５の発明に従属するネットワークシステムであって、態様は大きさを含む。
【００２２】
第６の発明によれば、指標の少なくとも大きさを変化させることで、距離を直感的に把握できる。
【００２３】
第７の発明は、第６の発明に従属するネットワークシステムであって、指標生成手段は、距離に比例して指標が大きくなるように生成する。
【００２４】
第７の発明によれば、指標の大きさは距離に比例するので、距離を的確に把握することができる。
【００２５】
第８の発明は、第６または第７の発明に従属するネットワークシステムであって、指標には、大きさの最大値と最小値が設定され、指標生成手段は、距離が第１設定値以上であれば最大値に対応する大きさの指標を生成し、当該距離が第２設定値以下であれば最小値に対応する大きさの指標を生成する（Ｓ８１〜Ｓ８７）。
【００２６】
第８の発明によれば、指標の大きさに最大値、最小値といった制限を設けることで、指標を適度な大きさで表示することができ、視認性を良好に保つことができる。
【００２７】
第９の発明は、第１ないし第８のいずれかの発明に従属するネットワークシステムであって、指標生成手段は、方向算出手段によって算出された方向を示す形状の指標を生成する。
【００２８】
第９の発明によれば、方向は指標の形状で示されるので、指標の位置にかかわらず、チャット相手に対応するキャラクタがどの方向にいるのかを視覚的に容易に把握することができる。言い換えると、指標の位置の自由度が増す。
【００２９】
第１０の発明は、第１ないし第９のいずれかの発明に従属するネットワークシステムであって、指標生成手段は、方向算出手段によって算出された方向を示す位置に指標を生成する。
【００３０】
第１０の発明によれば、方向は指標の位置で示されるので、指標の形状にかかわらず、チャット相手に対応するキャラクタがどの方向にいるのかを視覚的に容易に把握することができる。言い換えると、指標の形状の自由度が増す。なお、方向を形状および位置の両方で示せば、方向の視覚的な把握がいっそう容易になる。
【００３１】
第１１の発明は、ネットワーク（１２２）を介してチャットを行う情報処理装置（１２）であって、チャットを行う相手の情報処理装置を特定するチャット相手特定手段（Ｓ３，Ｓ５）、自身の情報処理装置とチャット相手特定手段によって特定された相手の情報処理装置との間でメッセージの送信または受信を行うメッセージ送受信手段（Ｓ１，Ｓ３５〜Ｓ３９，Ｓ５３〜Ｓ５５，Ｓ４１ａ〜Ｓ４３ａ，２０４）、自身の情報処理装置に対応する自キャラクタ（Ａ）および相手の情報処理装置に対応する相手キャラクタ（Ｂ）を仮想空間内に配置するキャラクタ配置手段（Ｓ９）、仮想空間を任意の位置から見た画像を生成する画像生成手段（Ｓ６９，Ｓ５９ａ，Ｓ６３ａ）、自キャラクタから相手キャラクタへの方向を算出する方向算出手段（Ｓ４５，Ｓ４９ａ）、方向算出手段によって算出された方向を示すように指標（Ｍ）を生成する指標生成手段（Ｓ６７，Ｓ５７ａ）、仮想空間内に定義された所定範囲（Ｅ）の内部に相手キャラクタが含まれているか否かを判別する相手キャラクタ判別手段（Ｓ４１，Ｓ４５ａ）、メッセージ送受信手段によって送信中または受信中であるか否かを判別する送受信判別手段（Ｓ５３，Ｓ４１ａ）、および画像生成手段によって生成された画像を表示手段（３４）に出力する表示出力手段（Ｓ７１，Ｓ６１ａ，Ｓ６５ａ）を備え、表示出力手段は、相手キャラクタ判別手段によって所定範囲内に相手キャラクタが含まれていないと判別され、かつ送受信判別手段によって送信中または受信中であると判別されたとき、指標生成手段によって生成された指標を所定の態様で表示手段に出力する。
【００３２】
第１２の発明は、ネットワーク（１２２）を介してチャットを行う情報処理装置（１２）のコンピュータ（４０）を、チャットを行う相手の情報処理装置を特定するチャット相手特定手段（Ｓ３，Ｓ５）、自身の情報処理装置とチャット相手特定手段によって特定された相手の情報処理装置との間でメッセージの送信または受信を行うメッセージ送受信手段（Ｓ１，Ｓ３５〜Ｓ３９，Ｓ５３〜Ｓ５５，Ｓ４１ａ〜Ｓ４３ａ，２０４）、自身の情報処理装置に対応する自キャラクタ（Ａ）および相手の情報処理装置に対応する相手キャラクタ（Ｂ）を仮想空間内に配置するキャラクタ配置手段（Ｓ９）、仮想空間を任意の位置から見た画像を生成する画像生成手段（Ｓ６９，Ｓ５９ａ，Ｓ６３ａ）、自キャラクタから相手キャラクタへの方向を算出する方向算出手段（Ｓ４５，Ｓ４９ａ）、方向算出手段によって算出された方向を示すように指標（Ｍ）を生成する指標生成手段（Ｓ６７，Ｓ５７ａ）、仮想空間内に定義された所定範囲（Ｅ）の内部に相手キャラクタが含まれているか否かを判別する相手キャラクタ判別手段（Ｓ４１，Ｓ４５ａ）、メッセージ送受信手段によって送信中または受信中であるか否かを判別する送受信判別手段（Ｓ５３，Ｓ４１ａ）、および画像生成手段によって生成された画像を表示手段（３４）に出力する表示出力手段（Ｓ７１，Ｓ６１ａ，Ｓ６５ａ）として機能させ、表示出力手段は、相手キャラクタ判別手段によって所定範囲内に相手キャラクタが含まれていないと判別され、かつ送受信判別手段によって送信中または受信中であると判別されたとき、指標生成手段によって生成された指標を所定の態様で表示手段に出力する、情報処理プログラム（２０２）である。
【００３３】
第１１，第１２の発明でも、第１の発明と同様に、相手キャラクタが画面外に出てしまっても、ユーザは、相手キャラクタがどの方向にいるのかを視覚的に容易に把握することができる。
【発明の効果】
【００３４】
この発明によれば、チャット相手に対応するキャラクタがどの方向にいるのかを把握させることができる、ネットワークシステム，情報処理プログラムおよび情報処理装置が実現される。
【００３５】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００３６】
【図１】この発明のゲームシステムの一実施例を示す図解図である。
【図２】ゲームシステムの電気的な構成を示すブロック図である。
【図３】コントローラの外観を説明するための図解図である。
【図４】コントローラの電気的な構成を示すブロック図である。
【図５】音声入力装置の電気的な構成を示すブロック図である。
【図６】複数のゲーム装置を含むネットワークシステムを示すブロック図である。
【図７】コントローラおよび音声入力装置を用いて仮想ゲームをプレイするときの状態を概説するための図解図である。
【図８】マーカおよびコントローラの視野角を説明するための図解図である。
【図９】コントローラによる撮像画像の一例を示す図解図である。
【図１０】３次元仮想空間の一部を示す図解図である。
【図１１】３次元仮想空間を仮想カメラから見た映像の一例を示す図解図である。
【図１２】ゲーム画面の一例を示す図解図である。
【図１３】ゲーム画面の他の一例を示す図解図である。
【図１４】ゲーム画面のその他の一例を示す図解図である。
【図１５】ゲーム画面のさらにその他の一例を示す図解図である。
【図１６】メモリマップの一例を示す図解図である。
【図１７】ＣＰＵ動作の一部を示すフロー図である。
【図１８】ＣＰＵ動作の他の一部を示すフロー図である。
【図１９】ＣＰＵ動作のその他の一部を示すフロー図である。
【図２０】ＣＰＵ動作のさらにその他の一部を示すフロー図である。
【図２１】ＣＰＵ動作の他の一部を示すフロー図である。
【図２２】視野範囲の一例を示す図解図である。
【図２３】他の実施例におけるＣＰＵ動作の一部を示すフロー図である。
【図２４】他の実施例におけるＣＰＵ動作の他の一部を示すフロー図である。
【発明を実施するための形態】
【００３７】
図１を参照して、この発明の一実施例であるゲームシステム１０は、ビデオゲーム装置（以下、単に「ゲーム装置」という）１２、コントローラ２２および音声入力装置３６を含む。なお、図示は省略するが、この実施例のゲーム装置１２は、最大４つのコントローラ（２２）と通信可能に設計されている。また、ゲーム装置１２と各コントローラ（２２）とは、無線によって接続される。たとえば、無線通信は、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格に従って実行されてもよい。一方、ゲーム装置１２と音声入力装置３６との接続には、有線方式（たとえばＵＳＢ方式）が用いられる。詳しくは、音声入力装置３６は音声入力装置本体３６ａおよびこれとは別体のマイク３６ｂからなり、音声入力装置本体３６ａとマイク３６ｂとはケーブル３６ｃで固定的に接続されている。そして音声入力装置本体３６ａとゲーム装置１２とが、ケーブル３６ｄで着脱可能に接続される。
【００３８】
ゲーム装置１２は、略直方体のハウジング１４を含み、ハウジング１４の前面にはディスクスロット１６が設けられる。ディスクスロット１６から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク１８が挿入されて、ハウジング１４内のディスクドライブ５４（図２参照）に装着される。ディスクスロット１６の周囲には、ＬＥＤと導光板が配置され、さまざまな処理に応答させて点灯させることが可能である。
【００３９】
また、ゲーム装置１２のハウジング１４の前面であり、その上部には、電源ボタン２０ａおよびリセットボタン２０ｂが設けられ、その下部には、イジェクトボタン２０ｃが設けられる。さらに、リセットボタン２０ｂとイジェクトボタン２０ｃとの間であり、ディスクスロット１６の近傍には、外部メモリカード用コネクタカバー２８が設けられる。この外部メモリカード用コネクタカバー２８の内側には、外部メモリカード用コネクタ６２（図２参照）が設けられ、図示しない外部メモリカード（以下、単に「メモリカード」という）が挿入される。メモリカードは、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置１２の内部に設けられるフラッシュメモリ４４（図２参照）のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。
【００４０】
なお、メモリカードとしては、汎用のＳＤカードを用いることができるが、メモリスティックやマルチメディアカード（登録商標）のような他の汎用のメモリカードを用いることもできる。
【００４１】
ゲーム装置１２のハウジング１４の後面には、ＡＶコネクタ５８（図２参照）が設けられ、そのＡＶコネクタ５８を用いて、ＡＶケーブル３２ａを通してゲーム装置１２にモニタ３４およびスピーカ３４ａを接続する。このモニタ３４およびスピーカ３４ａは典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２ａは、ゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ（モニタ）３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ３４の周辺（この実施例では、モニタ３４の上側）には、２つの赤外ＬＥＤ（マーカ）３４０ｍ，３４０ｎを備えるマーカ部３４ｂが設けられる。このマーカ部３４ｂは、電源ケーブル３２ｂを通してゲーム装置１２に接続される。したがって、マーカ部３４ｂには、ゲーム装置１２から電源が供給される。これによって、マーカ３４０ｍ，３４０ｎは発光し、それぞれモニタ３４の前方に向けて赤外光を出力する。
【００４２】
なお、ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置１２は、家庭用電源（商用電源）を、駆動に適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００４３】
このゲームシステム１０において、ユーザまたはプレイヤがゲーム（またはゲームに限らず、他のアプリケーション）をプレイするために、ユーザはまずゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）のプログラムを記録している適宜の光ディスク１８を選択し、その光ディスク１８をゲーム装置１２のディスクドライブ５４にローディングする。応じて、ゲーム装置１２がその光ディスク１８に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置１２に入力を与えるためにコントローラ２２を操作する。たとえば、入力手段２６のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段２６に対する操作以外にも、コントローラ２２自体を動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３Ｄのゲーム世界におけるユーザの視点（カメラ位置）を変化させることができる。
【００４４】
図２は図１実施例のビデオゲームシステム１０の電気的な構成を示すブロック図である。図示は省略するが、ハウジング１４内の各コンポーネントは、プリント基板に実装される。図２に示すように、ゲーム装置１２には、ＣＰＵ４０が設けられる。このＣＰＵ４０は、ゲームプロセッサとして機能する。このＣＰＵ４０には、システムＬＳＩ４２が接続される。このシステムＬＳＩ４２には、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８、ディスクドライブ５４およびＡＶ  ＩＣ５６が接続される。
【００４５】
外部メインメモリ４６は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりし、ＣＰＵ４０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ４８は、いわゆるブートＲＯＭであり、ゲーム装置１２の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ５４は、光ディスク１８からプログラムデータやテクスチャデータ等を読み出し、ＣＰＵ４０の制御の下で、後述する内部メインメモリ４２ｅまたは外部メインメモリ４６に書き込む。
【００４６】
システムＬＳＩ４２には、入出力プロセッサ４２ａ、ＧＰＵ(Graphics Processor Unit)４２ｂ，ＤＳＰ(Digital Signal Processor)４２ｃ，ＶＲＡＭ４２ｄおよび内部メインメモリ４２ｅが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【００４７】
入出力プロセッサ（Ｉ／Ｏプロセッサ）４２ａは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後で詳細に説明する。
【００４８】
ＧＰＵ４２ｂは、描画手段の一部を形成し、ＣＰＵ４０からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵ４０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ４２ｂに与える。
【００４９】
図示は省略するが、上述したように、ＧＰＵ４２ｂにはＶＲＡＭ４２ｄが接続される。ＧＰＵ４２ｂが作画コマンドを実行するにあたって必要なデータ（画像データ：ポリゴンデータやテクスチャデータなどのデータ）は、ＧＰＵ４２ｂがＶＲＡＭ４２ｄにアクセスして取得する。なお、ＣＰＵ４０は、描画に必要な画像データを、ＧＰＵ４２ｂを介してＶＲＡＭ４２ｄに書き込む。ＧＰＵ４２ｂは、ＶＲＡＭ４２ｄにアクセスして描画のためのゲーム画像データを作成する。
【００５０】
なお、この実施例では、ＧＰＵ４２ｂがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、ＧＰＵ４２ｂは当該任意のアプリケーションについての画像データを生成する。
【００５１】
また、ＤＳＰ４２ｃは、オーディオプロセッサとして機能し、内部メインメモリ４２ｅや外部メインメモリ４６に記憶されるサウンドデータや音波形（音色）データを用いて、スピーカ３４ａから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【００５２】
上述のように生成されたゲーム画像データおよびオーディオデータは、ＡＶ  ＩＣ５６によって読み出され、ＡＶコネクタ５８を介してモニタ３４およびスピーカ３４ａに出力される。したがって、ゲーム画面がモニタ３４に表示され、ゲームに必要な音（音楽）がスピーカ３４ａから出力される。
【００５３】
また、入出力プロセッサ４２ａには、フラッシュメモリ４４、無線通信モジュール５０および無線コントローラモジュール５２が接続されるとともに、拡張コネクタ６０および外部メモリカード用コネクタ６２が接続される。また、無線通信モジュール５０にはアンテナ５０ａが接続され、無線コントローラモジュール５２にはアンテナ５２ａが接続される。
【００５４】
入出力プロセッサ４２ａは、無線通信モジュール５０を介して、ネットワークに接続される他のゲーム装置やサーバと通信することができる。ネットワークの一例を図６に示す。このネットワーク１２２は、たとえばインターネットやＬＡＮで構成され、サーバ１２４および複数のゲーム装置１２，１２，…などが接続されている。サーバ１２４は、各ゲーム装置１２にデータをダウンロードしたり、ネットワーク１２２にゲーム装置１２を接続しているオンラインユーザの管理を行ったりする。なお、以下では、ユーザのゲーム装置１２を単に“ゲーム装置１２”と記し、他のゲーム装置１２をたとえば“相手のゲーム装置（１２）”などのように記す。
【００５５】
ただし、ゲーム装置１２は、ネットワーク１２２を介さずに、直接的に他のゲーム装置（１２）と通信することもできる。入出力プロセッサ４２ａは、定期的にフラッシュメモリ４４にアクセスし、ネットワーク１２２へ送信する必要があるデータ（送信データとする）の有無を検出し、当該送信データが有る場合には、無線通信モジュール５０およびアンテナ５０ａを介してネットワーク１２２に送信する。また、入出力プロセッサ４２ａは、他のゲーム装置（１２）から送信されるデータ（受信データとする）を、ネットワーク１２２、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、受信データをフラッシュメモリ４４に記憶する。ただし、一定の場合には、受信データをそのまま破棄する。さらに、入出力プロセッサ４２ａは、サーバ１２４からダウンロードしたデータ（ダウンロードデータとする）をネットワーク１２２、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、ダウンロードデータをフラッシュメモリ４４に記憶する。
【００５６】
また、入出力プロセッサ４２ａは、コントローラ２２から送信される入力データをアンテナ５２ａおよび無線コントローラモジュール５２を介して受信し、内部メインメモリ４２ｅまたは外部メインメモリ４６のバッファ領域に記憶（一時記憶）する。入力データは、ＣＰＵ４０のゲーム処理によって利用された後、バッファ領域から消去される。
【００５７】
なお、この実施例では、上述したように、無線コントローラモジュール５２は、Ｂｌｕｅｔｏｏｔｈ規格にしたがってコントローラ２２との間で通信を行う。
【００５８】
さらに、入出力プロセッサ４２ａには、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。拡張コネクタ６０は、ＵＳＢやＳＣＳＩのようなインターフェイスのためのコネクタであり、音声入力装置３６や、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ６０に有線ＬＡＮアダプタを接続し、無線通信モジュール５０に代えて当該有線ＬＡＮを利用することもできる。メモリカード用コネクタ６２には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ４２ａは、拡張コネクタ６０やメモリカード用コネクタ６２を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００５９】
詳細な説明は省略するが、図１にも示したように、ゲーム装置１２（ハウジング１４）には、電源ボタン２０ａ、リセットボタン２０ｂおよびイジェクトボタン２０ｃが設けられる。電源ボタン２０ａは、システムＬＳＩ４２に接続される。この電源ボタン２０ａがオンされると、システムＬＳＩ４２は、ゲーム装置１２の各コンポーネントに図示しないＡＣアダプタを経て電源が供給され、通常の通電状態となるモード（通常モードと呼ぶこととする）を設定する。一方、電源ボタン２０ａがオフされると、システムＬＳＩ４２は、ゲーム装置１２の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード（以下、「スタンバイモード」という）を設定する。この実施例では、スタンバイモードが設定された場合には、システムＬＳＩ４２は、入出力プロセッサ４２ａ、フラッシュメモリ４４、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８および無線通信モジュール５０、無線コントローラモジュール５２以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、このスタンバイモードは、ＣＰＵ４０によってアプリケーションの実行が行われないモードである。
【００６０】
なお、システムＬＳＩ４２には、スタンバイモードにおいても電源が供給されるが、ＧＰＵ４２ｂ、ＤＳＰ４２ｃおよびＶＲＡＭ４２ｄへのクロックの供給を停止することにより、これらを駆動させないようにして、消費電力を低減するようにしてある。
【００６１】
また、図示は省略するが、ゲーム装置１２のハウジング１４内部には、ＣＰＵ４０やシステムＬＳＩ４２などのＩＣの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
【００６２】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン２０ａがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【００６３】
また、通常モードとスタンバイモードの切り替えは、コントローラ２２の電源スイッチ２６ｈのオン／オフの切り替えによっても遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール５２への電源供給を行わない設定にしてもよい。
【００６４】
リセットボタン２０ｂもまた、システムＬＳＩ４２に接続される。リセットボタン２０ｂが押されると、システムＬＳＩ４２は、ゲーム装置１２の起動プログラムを再起動する。イジェクトボタン２０ｃは、ディスクドライブ５４に接続される。イジェクトボタン２０ｃが押されると、ディスクドライブ５４から光ディスク１８が排出される。
【００６５】
図３（Ａ）ないし図３（Ｅ）は、コントローラ２２の外観の一例を示す。図３（Ａ）はコントローラ２２の先端面を示し、図３（Ｂ）はコントローラ２２の上面を示し、図３（Ｃ）はコントローラ２２の右側面を示し、図３（Ｄ）はコントローラ２２の下面を示し、そして、図３（Ｅ）はコントローラ２２の後端面を示す。
【００６６】
図３（Ａ）ないし図３（Ｅ）を参照して、コントローラ２２は、たとえばプラスチック成型によって形成されたハウジング２２ａを有している。ハウジング２２ａは、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング２２ａ（コントローラ２２）には、入力手段（複数のボタンないしスイッチ）２６が設けられる。具体的には、図３（Ｂ）に示すように、ハウジング２２ａの上面には、十字キー２６ａ、１ボタン２６ｂ、２ボタン２６ｃ、Ａボタン２６ｄ、−ボタン２６ｅ、ＨＯＭＥボタン２６ｆ、＋ボタン２６ｇおよび電源スイッチ２６ｈが設けられる。また、図３（Ｃ）および図３（Ｄ）に示すように、ハウジング２２ａの下面に傾斜面が形成されており、この傾斜面に、Ｂトリガースイッチ２６ｉが設けられる。
【００６７】
十字キー２６ａは、４方向プッシュスイッチであり、矢印で示す４つの方向、前（または上）、後ろ（または下）、右および左の操作部を含む。この操作部のいずれか１つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト（プレイヤキャラクタまたはプレイヤオブジェクト）の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００６８】
１ボタン２６ｂおよび２ボタン２６ｃは、それぞれ、押しボタンスイッチである。たとえば３次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。または、１ボタン２６ｂおよび２ボタン２６ｃは、Ａボタン２６ｄおよびＢトリガースイッチ２６ｉと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
【００６９】
Ａボタン２６ｄは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
【００７０】
−ボタン２６ｅ、ＨＯＭＥボタン２６ｆ、＋ボタン２６ｇおよび電源スイッチ２６ｈもまた、押しボタンスイッチである。−ボタン２６ｅは、ゲームモードを選択するために使用される。ＨＯＭＥボタン２６ｆは、ゲームメニュー（メニュー画面）を表示するために使用される。＋ボタン２６ｇは、ゲームを開始（再開）したり、一時停止したりするなどのために使用される。電源スイッチ２６ｈは、ゲーム装置１２の電源を遠隔操作によってオン／オフするために使用される。
【００７１】
なお、この実施例では、コントローラ２２自体をオン／オフするための電源スイッチは設けておらず、コントローラ２２の入力手段２６のいずれかを操作することによってコントローラ２２はオンとなり、一定時間（たとえば、３０秒）以上操作しなければ自動的にオフとなるようにしてある。
【００７２】
Ｂトリガースイッチ２６ｉもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ２２で選択した位置を指示したりするために使用される。また、Ｂトリガースイッチ２６ｉを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Ｂトリガースイッチ２６ｉは、通常のＢボタンと同様に機能し、Ａボタン２６ｄによって決定したアクションを取り消すなどのために使用される。
【００７３】
また、図３（Ｅ）に示すように、ハウジング２２ａの後端面に外部拡張コネクタ２２ｂが設けられ、また、図３（Ｂ）に示すように、ハウジング２２ａの上面であり、後端面側にはインジケータ２２ｃが設けられる。外部拡張コネクタ２２ｂは、図示しない別の拡張コントローラを接続するためなどに使用される。インジケータ２２ｃは、たとえば、４つのＬＥＤで構成され、４つのうちのいずれか１つを点灯することにより、点灯ＬＥＤに対応するコントローラ２２の識別情報（コントローラ番号）を示したり、点灯させるＬＥＤの個数によってコントローラ２２の電源残量を示したりすることができる。
【００７４】
さらに、コントローラ２２は、撮像情報演算部８０（図４参照）を有しており、図３（Ａ）に示すように、ハウジング２２ａの先端面には撮像情報演算部８０の光入射口２２ｄが設けられる。また、コントローラ２２は、スピーカ８６（図４参照）を有しており、このスピーカ８６は、図３（Ｂ）に示すように、ハウジング２２ａの上面であり、１ボタン２６ｂとＨＯＭＥボタン２６ｆとの間に設けられる音抜き孔２２ｅに対応して、ハウジング２２ａ内部に設けられる。
【００７５】
なお、図３（Ａ）ないし図３（Ｅ）に示したコントローラ２２の形状や、各入力手段２６の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。
【００７６】
図４はコントローラ２２の電気的な構成を示すブロック図である。この図４を参照して、コントローラ２２はプロセッサ７０を含み、このプロセッサ７０には、内部バス（図示せず）によって、外部拡張コネクタ２２ｂ、入力手段２６、メモリ７２、加速度センサ７４、無線モジュール７６、撮像情報演算部８０、ＬＥＤ８２（インジケータ２２ｃ）、バイブレータ８４、スピーカ８６および電源回路８８が接続される。また、無線モジュール７６には、アンテナ７８が接続される。
【００７７】
プロセッサ７０は、コントローラ２２の全体制御を司り、入力手段２６、加速度センサ７４および撮像情報演算部８０によって入力された情報（入力情報）を、入力データとして無線モジュール７６およびアンテナ７８を介してゲーム装置１２に送信（入力）する。このとき、プロセッサ７０は、メモリ７２を作業領域ないしバッファ領域として用いる。
【００７８】
上述した入力手段２６（２６ａ−２６ｉ）からの操作信号（操作データ）は、プロセッサ７０に入力され、プロセッサ７０は操作データを一旦メモリ７２に記憶する。
【００７９】
また、加速度センサ７４は、コントローラ２２の縦方向（ｙ軸方向）、横方向（ｘ軸方向）および前後方向（ｚ軸方向）の３軸で各々の加速度を検出する。この加速度センサ７４は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【００８０】
たとえば、加速度センサ７４は、第１所定時間毎に、ｘ軸，ｙ軸，ｚ軸の各々についての加速度（ａｘ，ａｙ，ａｚ）を検出し、検出した加速度のデータ（加速度データ）をプロセッサ７０に入力する。たとえば、加速度センサ７４は、各軸方向の加速度を、−２．０ｇ〜２．０ｇ（ｇは重力加速度である。以下、同じ。）の範囲で検出する。プロセッサ７０は、加速度センサ７４から与えられる加速度データを、第２所定時間毎に検出し、一旦メモリ７２に記憶する。プロセッサ７０は、操作データ、加速度データおよび後述するマーカ座標データの少なくとも１つを含む入力データを作成し、作成した入力データを、第３所定時間（たとえば、５ｍｓｅｃ）毎にゲーム装置１２に送信する。
【００８１】
なお、図３（Ａ）−図３（Ｅ）では省略したが、この実施例では、加速度センサ７４は、ハウジング２２ａ内部の基板上の十字キー２６ａが配置される付近に設けられる。
【００８２】
無線モジュール７６は、たとえばＢｌｕｅｔｏｏｔｈの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ７８から放射する。つまり、入力データは、無線モジュール７６によって微弱電波信号に変調されてアンテナ７８（コントローラ２２）から送信される。この微弱電波信号が上述したゲーム装置１２に設けられた無線コントローラモジュール５２によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置１２（ＣＰＵ４０）は、コントローラ２２からの入力データを取得することができる。そして、ＣＰＵ４０は、取得した入力データとプログラム（ゲームプログラム）とに従ってゲーム処理を行う。
【００８３】
さらに、上述したように、コントローラ２２には、撮像情報演算部８０が設けられる。この撮像情報演算部８０は、赤外線フィルタ８０ａ、レンズ８０ｂ、撮像素子８０ｃおよび画像処理回路８０ｄによって構成される。赤外線フィルタ８０ａは、コントローラ２２の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ３４の表示画面近傍（周辺）に配置されるマーカ３４０ｍおよび３４０ｎは、モニタ３４の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ８０ａを設けることによってマーカ３４０ｍおよび３４０ｎの画像をより正確に撮像することができる。レンズ８０ｂは、赤外線フィルタ８０ａを透過した赤外線を集光して撮像素子８０ｃへ出射する。撮像素子８０ｃは、たとえばＣＭＯＳセンサあるいはＣＣＤのような固体撮像素子であり、レンズ８０ｂによって集光された赤外線を撮像する。したがって、撮像素子８０ｃは、赤外線フィルタ８０ａを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子８０ｃによって撮像された画像を撮像画像と呼ぶ。撮像素子８０ｃによって生成された画像データは、画像処理回路８０ｄで処理される。画像処理回路８０ｄは、撮像画像内における撮像対象（マーカ３４０ｍおよび３４０ｎ）の位置を算出し、第４所定時間毎に、当該位置を示す各座標値を撮像データとしてプロセッサ７０に出力する。
【００８４】
図５は音声入力装置本体３６ａの電気的な構成を示すブロック図である。図５を参照して、音声入力装置本体３６ａは、コントローラ１００，ＤＳＰ１０２，ＡＤＣ１０４およびＡＳＩＣ１０６を含む。コントローラ１００は、たとえば８ビットのマイクロコントローラで構成され、ゲーム装置１２との間の通信を制御する。また、コントローラ１００には、ＤＳＰ１０２，ＡＤＣ１０４およびケーブル３６ｃを介してマイク３６ｂが接続されている。マイク３６ｂは、たとえば４個のエレクトレットコンデンサーマイクロホン（ECM）で構成され、ユーザの発話を含む音声を４ｃｈの音声信号に変換する。ＡＤＣ１０４は、たとえば４個のＡ／Ｄコンバータ（サンプリング周波数：１６ｋＨｚ）で構成され、マイク３６ｂからの４ｃｈの音声信号を４ｃｈの音声データに変換する。ＤＳＰ１０２は、たとえば１６ビットの固定小数点ＤＳＰで構成され、ＡＤＣ１０４からの４ｃｈの音声データにエコーキャンセル，エコーサプレス，ノイズサプレス等の処理を施す。この処理によって、スピーカ３４ａからの出力をマイク３６ｂが拾うことで生じるエコーやハウリングが抑制される。ＤＳＰ１０２による処理後の音声データは、コントローラ１００によってゲーム装置１２へと送信される。
【００８５】
ＡＳＩＣ１０６は、たとえばゲートアレーＩＣで構成されており、コントローラ１００，ＤＳＰ１０２およびＡＤＣ１０４の各々の動作タイミングを制御して、ゲーム装置１２と音声入力装置３６とを互いに同期させる。このほか、電源オン／オフ時のリセットシーケンス制御なども、ＡＳＩＣ１０６によって行われる。なお、コントローラ１００，ＡＳＩＣ１０６などが動作するための電源は、ゲーム装置１２からケーブル３６ｄ（たとえばＵＳＢケーブル）を通して音声入力装置３６に供給される。
【００８６】
上述のようにして音声入力装置３６（コントローラ１００）から送信された音声データは、拡張コネクタ６０を通して入出力プロセッサ４２ａにより受信される。受信された音声データは、内部メインメモリ４２ｅに一時記憶された後、入出力プロセッサ４２ａによって無線通信モジュール５０に与えられる。無線通信モジュール５０は、与えられた音声データをアンテナ５０ａからネットワーク１２２経由で相手のゲーム装置（１２）に送信する。
【００８７】
相手のゲーム装置（１２）では、ゲーム装置１２からの音声データは、アンテナ（５０ａ）および無線通信モジュール５０を通して入出力プロセッサ（４２ａ）により受信される。受信された音声データは、内部メインメモリ（４２ｅ）に一時記憶された後、ＡＶ  ＩＣ（５６）に与えられる。ＡＶ  ＩＣ（５６）は、与えられた音声データをＤ／Ａ変換し、これにより得られた音声信号をＡＶコネクタ（５８）を介してスピーカ（３４ａ）に出力する。こうして、ユーザの発話音声が、相手のスピーカ（３４ａ）から出力される。
【００８８】
図７は、コントローラ２２および音声入力装置３６を用いて「水中遊泳ゲーム」（後述）などの仮想ゲームをプレイするときの状態を概説する図解図である。図７に示すように、ビデオゲームシステム１０でコントローラ２２および音声入力装置３６を用いて仮想ゲームをプレイする際、プレイヤは、モニタ３４（マイク３６ｂ）から数メートルたとえば１〜３ｍの範囲に位置し、一方の手でコントローラ２２を把持する。厳密に言うと、プレイヤは、コントローラ２２の先端面（撮像情報演算部８０が撮像する光の入射口２２ｄ側）がマーカ３４０ｍおよび３４０ｎの方を向く状態で、コントローラ２２を把持する。ただし、図１からも分かるように、マーカ３４０ｍおよび３４０ｎは、モニタ３４の画面の横方向と平行に配置されている。この状態で、プレイヤは、コントローラ２２が指示する画面上の位置を変更したり、コントローラ２２と各マーカ３４０ｍおよび３４０ｎとの距離を変更したり、マイク３６ｂに向けて発話したりすることによって、ゲーム操作を行う。
【００８９】
図８は、マーカ３４０ｍおよび３４０ｎと、コントローラ２２との視野角を説明するための図である。図８に示すように、マーカ３４０ｍおよび３４０ｎは、それぞれ、視野角θ１の範囲で赤外光を放射する。また、撮像情報演算部８０の撮像素子８０ｃは、コントローラ２２の視線方向を中心とした視野角θ２の範囲で入射する光を受光することができる。たとえば、マーカ３４０ｍおよび３４０ｎの視野角θ１は、共に３４°（半値角）であり、一方、撮像素子８０ｃの視野角θ２は４１°である。プレイヤは、撮像素子８０ｃが２つのマーカ３４０ｍおよび３４０ｎからの赤外光を受光することが可能な位置および向きとなるように、コントローラ２２を把持する。具体的には、撮像素子８０ｃの視野角θ２の中に少なくとも一方のマーカ３４０ｍおよび３４０ｎが存在し、かつ、マーカ３４０ｍまたは３４０ｎの少なくとも一方の視野角θ１の中にコントローラ２２が存在する状態となるように、プレイヤはコントローラ２２を把持する。この状態にあるとき、コントローラ２２は、マーカ３４０ｍおよび３４０ｎの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ２２の位置および向きを変化させることによってゲーム操作を行うことができる。
【００９０】
なお、コントローラ２２の位置および向きがこの範囲外となった場合、コントローラ２２の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、上記範囲を「操作可能範囲」と呼ぶ。
【００９１】
操作可能範囲内でコントローラ２２が把持される場合、撮像情報演算部８０によって各マーカ３４０ｍおよび３４０ｎの画像が撮像される。すなわち、撮像素子８０ｃによって得られる撮像画像には、撮像対象である各マーカ３４０ｍおよび３４０ｎの画像（対象画像）が含まれる。図９は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路８０ｄは、各マーカ３４０ｍおよび３４０ｎの撮像画像における位置を表す座標（マーカ座標）を算出する。
【００９２】
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路８０ｄは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路８０ｄは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である２つのマーカ３４０ｍおよび３４０ｎの画像３４０ｍ’および３４０ｎ’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像であるマーカ３４０ｍおよび３４０ｎの画像３４０ｍ’および３４０ｎ’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【００９３】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路８０ｄは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子８０ｃの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子８０ｃによって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、マーカ座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。
【００９４】
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをＹ軸正方向とし、右向きをＸ軸正方向とする座標系（ＸＹ座標系）で表現されるものとする。
【００９５】
また、対象画像が正しく検出される場合には、判定処理によって２つの高輝度部分が対象画像として判定されるので、２箇所のマーカ座標が算出される。画像処理回路８０ｄは、算出された２箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ（マーカ座標データ）は、上述したように、プロセッサ７０によって入力データに含まれ、ゲーム装置１２に送信される。
【００９６】
ゲーム装置１２（ＣＰＵ４０）は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ３４の画面上におけるコントローラ２２の指示位置（座標位置）と、コントローラ２２からマーカ３４０ｍおよび３４０ｎまでの各距離とを算出することができる。具体的には、２つのマーカ座標の中点の位置から、コントローラ２２の向いている位置すなわち指示位置が算出される。また、撮像画像における対象画像間の距離が、コントローラ２２と、マーカ３４０ｍおよび３４０ｎとの距離に応じて変化するので、２つのマーカ座標間の距離を算出することによって、ゲーム装置１２はコントローラ２２とマーカ３４０ｍおよび３４０ｎとの間の距離を把握できる。
【００９７】
以上のように構成されたゲームシステム１０で「水中遊泳ゲーム」をプレイする場合、ユーザはゲーム装置１２をネットワーク１２２に接続する（図６参照）。サーバ１２４には、現時点でゲーム装置１２をネットワーク１２２に接続しているユーザがオンラインユーザとして登録されており、ユーザはこれらオンラインユーザの中から相手を選択する。応じて、ユーザのゲーム装置１２と相手のゲーム装置（１２）とが接続され、ゲーム処理のためのデータ通信を行うことができるようになる。こうして、図６に示すような、サーバ１２４および複数のゲーム装置１２（ゲームシステム１０）を含むネットワークシステム１２０が確立される。
【００９８】
ゲーム装置１２（ＣＰＵ４０）は、コントローラ２２からの入力データに含まれる操作データおよび／またはマーカ座標データと、音声入力装置３６からの入力データつまり音声データと、相手のゲーム装置１２からの受信データに含まれる位置データおよび音声データに基づいて、次のようなゲーム処理を実行する。なお、コントローラ２２からの入力データに含まれる加速度データは、「水中遊泳ゲーム」では特に利用されない。
【００９９】
ゲーム処理では、操作データおよび／またはマーカ座標データから自キャラクタＡの位置を計算し、計算結果に基づいて３次元の仮想空間（以下“仮想空間”）内で自キャラクタＡを移動させると共に、受信した位置データに基づいて相手キャラクタＢも仮想空間内で移動させる。また、入力した音声データを相手のゲーム装置（１２）に送信すると共に、受信した音声データに基づいて相手の音声を出力する。これにより、図１０に示すように、ユーザ（自キャラクタＡ）は、相手（相手キャラクタＢ）とチャットしながら仮想空間内で水中遊泳を楽しむことができる。
【０１００】
このとき、ユーザ側では、図１１〜図１５に示すような、仮想空間を自キャラクタＡの背後から仮想カメラＶＣで捉えた映像が、ゲーム画面としてモニタ３４に表示される。スピーカ３４ａからは、相手の音声が出力される。一方、相手側では、仮想空間を相手キャラクタＢの背後から別の仮想カメラＶＣで捉えた映像がモニタ（３４）に表示され、かつスピーカ（３４ａ）からユーザの音声が出力される。
【０１０１】
ところで、ユーザは自キャラクタＡを自由に移動させ、相手もまた相手キャラクタＢを自由に移動させるので、相手キャラクタＢが常に自キャラクタＡの視野の範囲内にいるとは限らない。相手キャラクタＢが自キャラクタＡの視野外にいれば、自キャラクタＡつまりユーザは、相手キャラクタＢつまり相手の位置がわからず、相手からの音声だけが聞こえる状態となる。
【０１０２】
ここで視野範囲は、仮想空間内において、たとえば図２２のように定義される。図２２に示す視野範囲Ｅは、自キャラクタＡ（を示す点Ａ）からの距離が所定値ｒ０以下であるような範囲（つまり点Ａを中心とする半径ｒ０の球の内部）のうち、自キャラクタＡの前方にある部分（つまり球の前方半分：これを“半球”と呼ぶ）。なお、この半径ｒ０の球は、完全な球体でなくてもよく、たとえば奥行き方向に伸びたラグビーボール状でも、奥に行くにつれて断面が広がるように変形されてもよい。または、自キャラクタＡの前方に配置された多面体（直方体や四角錐など）でもよく、仮想空間内において自キャラクタＡの前方に配置された物体や地表に沿うような任意の形状の三次元領域でもよい。他の実施例では、視野範囲は、自キャラクタＡを追跡する仮想カメラＶＣの撮影範囲（つまり図１２〜図１５のようなゲーム画面そのもの）であってもよい（後述）。
【０１０３】
そこで、ゲーム装置１２は、相手キャラクタＢが自キャラクタＡの視野範囲の内部（視野内）にいるか否かを判別する。そして、視野内にいると判別した場合、ゲーム装置１２は、自キャラクタＡの位置および相手キャラクタＢの位置に基づいて、自キャラクタＡから見た相手キャラクタＢの方向および両キャラクタ間の距離を計算し、計算結果を視覚的に示す指標オブジェクトＭを画面に表示する（図１０参照）。ここで、方向は、自キャラクタＡおよび相手キャラクタＢの位置をそれぞれ示す２点ＡＢを通る直線Ｌの方向（言い換えると点Ａから点Ｂに向かうベクトルＡＢの方向）として計算され、距離は２点ＡＢ間の距離（ベクトルＡＢの大きさ）として計算される。
【０１０４】
指標オブジェクトＭは、たとえば、図１４および図１５に示されるように、点線で示す円錐Ｃの側面に沿う複数のリングで構成され、円錐Ｃは、計算された方向（直線Ｌの方向）を向き、かつ計算された距離（２点ＡＢ間の距離）に応じた高さ（ここでは距離に比例する高さＨ）を有する。したがって、自キャラクタＡおよび相手キャラクタＢの位置関係によって円錐Ｃの方向および高さが変化し、ひいては円錐Ｃに沿う複数のリングの方向および高さも変化する。
【０１０５】
指標オブジェクトＭの表示位置は、たとえば次のように決定される。図１０を参照して、まず、自キャラクタＡを中心として所定の半径を有する球Ｓを仮想空間内に生成し、次に、球Ｓの表面と直線Ｌとの交点を求める。そして指標オブジェクトＭを、その先端（円錐Ｃの頂点）がこの交点の位置で球Ｓの表面と内接するような位置に表示する。したがって、指標オブジェクトＭは、常に球Ｓの内部にある。
【０１０６】
なお、カメラアングル等によっては、球Ｓがゲーム画面からはみ出すことがあり、したがって指標オブジェクトＭもまた、ゲーム画面からはみ出す可能性がある。しかし、このような場合には、たとえば、指標オブジェクトＭを直線Ｌに沿って自キャラクタＡに接近させるなど、指標オブジェクトＭがゲーム画面からはみ出すことのないように位置調整が行われる。
【０１０７】
このように、指標オブジェクトＭは、相手キャラクタＢがゲーム画面の外部に位置する状態で、相手キャラクタＢがどの辺りに位置するか（自キャラクタＡから見た方向および距離）を示すべく表示されるので、相手キャラクタＢがゲーム画面の内部に位置する状態では、ゲーム画面から消去される。なお、図１０，図１１に示した直線Ｌおよび球Ｓは、この実施例では、表示用のゲーム画面には描画されない（図１２〜図１５参照）。他の実施例では、直線Ｌおよび／または球Ｓを描画してもよい。
【０１０８】
また、指標オブジェクトＭは、相手の発話状態（発話中か否か）によって形状が変化する。上述したリング状の指標オブジェクトＭ（図１４および図１５参照）は、相手が発話中に表示されるものあり、相手が発話していない状態では、たとえば、図１２および図１３に示すような、四角推の指標オブジェクトＭが表示される。この四角推の指標オブジェクトＭは、上述したリング状の指標オブジェクトＭを規定する円錐Ｃに対応するもので、その頂点によって相手キャラクタＢの方向を、その高さ（Ｈ）によって相手キャラクタＢまでの距離を、それぞれ表現している。なお、指標オブジェクトＭの形状は、方向および距離を表現可能であれば、どのような形状でもよい（たとえば矢印や手指の形状など）。
【０１０９】
したがって、図１２〜図１５では、指標オブジェクトＭが右斜め前方を指していることから、相手キャラクタＢは自キャラクタＡの右斜め前方に位置することがわかる。また、図１２および図１４では、指標オブジェクトＭの高さＨが比較的高いことから、相手キャラクタＢは自キャラクタＡから遠く離れた場所に位置することがわかる一方、図１３および図１５では、指標オブジェクトＭの高さＨが比較的低いことから、相手キャラクタＢは自キャラクタＡからあまり離れていない場所（視野範囲Ｅのすぐ外）に位置することがわかる。また、図１４および図１５では、指標オブジェクトＭがリング状であることから、相手は発話中であることがわかる一方、図１２および図１３では、指標オブジェクトＭが四角錐であることから、相手は発話中でないことがわかる。
【０１１０】
なお、図１２〜図１５には表現されていないが、相手が発話中か否かで指標オブジェクトＭの表示色も異なっている。他の実施例では、指標オブジェクトＭの形状は変えずに表示色だけを変えてもよく、一般には、相手が発話中か否かで指標オブジェクトＭの表示態様を変更すればよい。ここで表示態様は、形状，色，大きさ，輝度，濃淡，点滅，動揺などを含み、これらの少なくとも１つが変更対象となる。
【０１１１】
以下、「水中遊泳ゲーム」を実現するための具体的なゲーム処理について、図１６のメモリマップおよび図１７〜図２１のフローチャートにより説明する。「水中遊泳ゲーム」をプレイするとき、内部メインメモリ４２ｅおよび／または外部メインメモリ４６には、図１６に示すように、プログラム記憶領域２００およびデータ記憶領域２１０が形成され、プログラム記憶領域２００には、ゲームプログラム２０２および通信制御プログラム２０４などが格納される。
【０１１２】
ゲームプログラム２０２は、ＣＰＵ４０を介してハードウェア全体（図２参照）を制御することにより「水中遊泳ゲーム」を実現するソフトウェアであり、図１７〜図２１のフローチャートに対応する。通信制御プログラム２０４は、主として入出力プロセッサ４２ａおよび無線通信モジュール５０を制御して、他のゲーム装置（１２）やサーバ１２４との間でネットワーク１２２を通じたデータ通信を行うためのソフトウェアであり、ゲームプログラム２０２によって利用される。
【０１１３】
データ記憶領域２１０は、受信データ領域２１２，送信データ領域２１４，仮想カメラ情報領域２１６，視野範囲情報領域２１７，球情報領域２１８，直線情報領域２２０，および指標オブジェクト情報領域２２２などを含む。受信データ領域２１２には、相手のゲーム装置１２からの受信データが記憶される。受信データは、相手の音声を示す音声データおよび相手キャラクタＢの位置を示す位置データを含む。送信データ領域２１４には、相手のゲーム装置１２への送信データが記憶される。送信データは、ユーザの音声を示す音声データおよび自キャラクタＡの位置を示す位置データを含む。仮想カメラ情報領域２１６には、自キャラクタＡに追従する仮想カメラＶＣについて位置および撮影範囲を示す仮想カメラ情報が記憶される。視野範囲情報領域２１７には、自キャラクタＡの視野範囲Ｅを示す視野情報が記憶される。球情報領域２１８には、球Ｓに関して中心位置および半径を示す球情報が記憶される。直線情報領域２２０には、直線Ｌに関して２点ＡＢ間の距離および方向を示す直線情報が記憶される。指標オブジェクト情報領域２２２には、指標オブジェクトＭについて位置，方向，高さ，形状および色を示す指標オブジェクト情報が記憶される。なお、各領域２１２〜２２２の記憶内容は、ゲームプログラム２０２や通信制御プログラム２０４によって、たとえば１フレーム毎に更新される。
【０１１４】
ＣＰＵ４０は、図１６のメモリマップに示したプログラムやデータに基づいて、図１７〜図２１のフローチャートに従う処理を実行する。図１７を参照して、「水中遊泳ゲーム」が開始されると、ＣＰＵ４０は、まずステップＳ１で通信制御プログラム２０４を起動する。ステップＳ３では、通信制御プログラム２０４を利用して、サーバ１２４から、ゲーム装置１２に予め登録してある各ユーザのオンライン状況を表す、オンラインユーザのリスト（図示せず）を取得し、これをモニタ３４に表示する。ステップＳ５では、ユーザがリストから相手を選択したか否かを判別し、ＮＯであればステップＳ３に戻る。たとえばコントローラ２２で画面上のリストからいずれかのオンラインユーザを選択する操作が行われると、ステップＳ５でＹＥＳと判別して、ステップＳ７に進む。ステップＳ７では、このゲーム装置１２（ＣＰＵ４０自身）を、ネットワーク１２２を介して相手のゲーム装置（１２）と接続する。これにより、このゲーム装置１２と相手のゲーム装置（１２）との間でデータ（音声データおよび位置データなど）の送受信を行える状態となると、ステップＳ８に進んで位置データの送受信を行う。すなわち、送信データ領域２１４に記憶されている自キャラクタＡの位置データを相手のゲーム装置（１２）に送信すると共に、相手のゲーム装置（１２）から相手キャラクタＢの位置データを受信してこれを受信データ領域２１２に書き込む。
【０１１５】
ステップＳ９では、送信データ領域２１４の位置データおよび受信データ領域２１２の位置データに基づいて仮想空間内に自キャラクタＡと相手キャラクタＢとを配置し、ステップＳ１１では、自キャラクタＡから所定距離だけ後方に仮想カメラＶＣを配置し、そしてステップＳ１３で、相手のゲーム装置（１２）との間でデータの送受信を行いつつ、チャット処理（後述）を実行する。なお、各キャラクタＡ，Ｂの初期位置や所定距離などを示す情報（プリセットデータ）は、図１６では省略しているが、データ領域２１０に記憶されている。チャット処理が完了すると、「水中遊泳ゲーム」は終了される。
【０１１６】
なお、この実施例では、接続確立後に相手との間で自キャラクタの位置を通知し合い、通知した位置に自キャラクタＡを、通知された位置に相手キャラクタＢをそれぞれ配置したが（Ｓ８〜Ｓ９）、他の実施例では、自キャラクタＡおよび相手キャラクタＢを第１初期位置および第２初期位置に配置してもよい。ここで、第１初期位置は、たとえばスタンドアロン（１Ｐ）モードの初期位置と同じ位置であり、第２初期位置は、たとえば第１初期位置に向かい合う位置である。したがって、ユーザのゲーム装置１２つまり親機では、第１初期位置に自キャラクタＡが、第２初期位置に相手キャラクタＢがそれぞれ配置され、相手のゲーム装置（１２）つまり子機では、第２初期位置に自キャラクタＡが、第１初期位置に相手キャラクタＢがそれぞれ配置される。各初期位置を示すデータは、データ記憶領域２１０に記憶される。
【０１１７】
また、Ｎ人（Ｎは３以上の整数）でチャットをする場合には、自キャラクタＡを第１初期位置に、第１相手キャラクタＢを第２初期位置に、…そして第（Ｎ−１）相手キャラクタを第Ｎ初期位置に、それぞれ配置してもよい。第１初期位置は、たとえばスタンドアロンモードの初期位置と同じ位置であり、第２〜第Ｎ初期位置は、たとえば第１初期位置を取り囲むように配置される。
【０１１８】
上記ステップＳ１３のチャット処理は、図１８〜図２０のサブルーチンに従って実行される。なお、このサブルーチン（Ｓ２１〜Ｓ７５）は、所定周期で（たとえば１フレーム毎に）実行される。図１８を参照して、ステップＳ２１では、相手から位置を受信したか否かを通信制御プログラム２０４からの通知に基づいて判別し、ＮＯであればステップＳ２７に進む。通信制御プログラム２０４から位置受信の通知を受けると、ステップＳ２１でＹＥＳと判別し、ステップＳ２３およびＳ２５を経てステップＳ２７に進む。ステップＳ２３では、受信データ領域２１２に受信した位置つまり相手キャラクタＢの新たな位置を書き込み、ステップＳ２５では、仮想空間内で相手キャラクタＢをこの新たな位置に移動させる。
【０１１９】
ステップＳ２７では、ユーザがコントローラ２２を操作したか否かを判別し、ＮＯであればステップＳ３３に進む。ステップＳ２７でＹＥＳであれば、ステップＳ２９およびＳ３１を経てステップＳ３３に進む。ステップＳ２９では、操作による指示に従って仮想空間内で自キャラクタＡを移動させ、ステップＳ３１では、自キャラクタＡの新たな位置を送信データ領域２１４に書き込んで、通信制御プログラム２０４を利用して相手にこれを送信する。ステップＳ３３では、仮想カメラＶＣを自キャラクタＡから所定距離だけ後ろの位置に移動する。
【０１２０】
ステップＳ３５では、ユーザからの音声入力があったか否かを判別し、ＮＯであればステップＳ４１に進む。ステップＳ３５でＹＥＳであれば、ステップＳ３７およびＳ３９を経てステップＳ４１に進む。ステップＳ３７では、音声入力装置３６から入力音声を取得し、ステップＳ３９では、取得した音声つまりユーザの音声を送信データ領域２１４に書き込んで、通信制御プログラム２０４を利用して相手にこれを送信する。
【０１２１】
ステップＳ４１では、受信データ領域２１２の情報（相手キャラクタＢの位置）と視野範囲情報領域２１７の情報とに基づいて、相手キャラクタＢの位置が自キャラクタＡの視野範囲Ｅ（図２２参照）の内部（ここでは境界面を含む）であるか否かを判別し、ＹＥＳであればステップＳ６９（後述）に進む。相手キャラクタＢが視野範囲Ｅの外部にあれば、ステップＳ４１でＮＯと判別してステップＳ４３に進む。なお、境界面は、視野範囲Ｅの外部に含めてもよい。
【０１２２】
ステップＳ４３では、自キャラクタＡを中心として所定半径を有する球Ｓを仮想空間内に生成する（図１０参照：前述）。ステップＳ４５では、自キャラクタＡと相手キャラクタＢとを結ぶ直線Ｌの方向（ＡからＢに向かうベクトルの方向）を算出し、算出結果を直線情報領域２２０に書き込む。ステップＳ４７では、自キャラクタＡと相手キャラクタＢとの間の距離（ＡからＢに向かうベクトルの大きさ）を算出し、算出結果を直線情報領域２２０に書き込む。ステップＳ４９では、算出した距離に基づいて指標オブジェクトＭの高さ（Ｈ：図１２〜図１５参照）を算出し、算出結果を指標オブジェクト情報領域２２２に書き込む。ステップＳ５１では、算出した高さＨに対して制限処理（図２１参照：後述）を施す。この高さ制限処理は、図２１のサブルーチンに従って実行される。
【０１２３】
ここで図２１を参照して、ステップＳ８１では、高さＨが予め決められた最大値Ｈｍａｘよりも大きいか否かを判別し、ＹＥＳつまりＨｍａｘ＜Ｈであれば、ステップＳ８３でＨ＝Ｈｍａｘとした後、上位層のルーチンに復帰する。ステップＳ８１でＮＯつまりＨｍａｘ≧Ｈであれば、ステップＳ８５に進む。ステップＳ８５では、高さＨが予め決められた最小値Ｈｍｉｎよりも小さいか否かを判別し、ＹＥＳつまりＨ＜Ｈｍｉｎであれば、ステップＳ８７でＨ＝Ｈｍｉｎとした後、上位層のルーチンに復帰する。ステップＳ８５でＮＯつまりＨ≧Ｈｍｉｎであれば、算出した高さＨが一定範囲内であるので、高さ制限処理を施さず、直ちに上位層のルーチンに復帰する。これによって、高さＨは一定範囲内（Ｈｍｉｎ≦Ｈ≦Ｈｍａｘ）に制限され、指標オブジェクトＭを表示した状態でも視認性が確保される。
【０１２４】
再び図１９を参照して、ステップＳ５３では、受信データ領域２１２の情報（相手の音声）に基づいて、相手から一定音量以上の音声を受信中であるか否かを判別する。ここでＹＥＳであればステップＳ５５〜Ｓ５９を経てステップＳ６７に進み、ＮＯであればステップＳ６３〜Ｓ６５を経てステップＳ６７に進む。
【０１２５】
ステップＳ５５では、受信した音声つまり相手の発話音声をスピーカ３４ａから出力する。ステップＳ５７では、指標オブジェクトＭの形状をリング状のものに設定し、設定結果を指標オブジェクト情報領域２２２に書き込む。ステップＳ５９では、指標オブジェクトＭの色を会話中を表す色（たとえば赤）に設定し、設定結果を指標オブジェクト情報領域２２２に書き込む。
【０１２６】
ステップＳ６３では、指標オブジェクトＭの形状を四角錐に設定し、設定結果を指標オブジェクト情報領域２２２に書き込む。ステップＳ６５では、指標オブジェクトＭの色を標準の色（たとえば青）に設定し、設定結果を指標オブジェクト情報領域２２２に書き込む。
【０１２７】
図２０を参照して、ステップＳ６７では、指標オブジェクト情報領域２２２の情報に基づいて指標オブジェクトＭを仮想空間内に生成する。この指標オブジェクトＭは、上記のようにして算出ないし設定した方向，高さ，形状および色を有し、かつ、その先端（円錐Ｃや四角錐の頂点）が、球Ｓの表面と直線Ｌとの交点の位置で球Ｓの表面に内接するような位置に配置される（図１０参照）。ステップＳ６９では、仮想空間を仮想カメラＶＣから見た映像を生成し、そしてステップＳ７１で、こうして生成した映像と指標オブジェクトＭとをモニタ３４に表示出力する。
【０１２８】
このような処理によって、相手キャラクタＢが自キャラクタＡの視野範囲Ｅの外部にいるとき、図１２〜図１５に示すようなゲーム画面がモニタ３４に表示される結果となる。ゲーム画面内の指標オブジェクトＭは、その頂点の方向および高さＨによって、相手キャラクタＢのいる方向および相手キャラクタＢまでの距離を示している。指標オブジェクトＭはまた、相手が発話中か否かを、その形状および色によって表現している。図１２〜図１３のような青色の四角錐で表現された指標オブジェクトＭは、相手が発話中でないことを示し、図１４〜図１５のような赤色のリングで表現された指標オブジェクトＭは、相手が発話中であることを示す。なお、図示は省略するが、相手キャラクタＢが自キャラクタＡの視野範囲内にいるときには、指標オブジェクトＭは非表示とされる（つまりゲーム画面から消去される）。
【０１２９】
その後、チャット終了が指示されたか否かをステップＳ７３で判別し、ＮＯであればステップＳ２１に戻って同様の処理を繰り返す。ステップＳ７３でＹＥＳであれば、上位層のルーチンに復帰する。
【０１３０】
以上から明らかなように、この実施例のゲーム装置１２（ＣＰＵ４０）は、チャットを行う相手のゲーム装置（１２）を特定して（Ｓ３，Ｓ５）、この相手のゲーム装置（１２）との間でメッセージの送受信を行う（Ｓ１，Ｓ３５〜Ｓ３９，Ｓ５３〜Ｓ５５，２０４）。また、自己に対応する自キャラクタＡおよび相手のゲーム装置に対応する相手キャラクタＢを仮想空間内に配置し（Ｓ９）、仮想空間を任意の位置から見た映像を生成し（Ｓ６９）、自キャラクタＡから相手キャラクタＢへの方向を算出し（Ｓ４５）、自キャラクタＡの近傍に定義された所定範囲Ｅの内部に相手キャラクタＢが含まれているか否かを判別し（Ｓ４１）、そして含まれていない（所定範囲外）と判別したとき、算出した方向を示す指標オブジェクトＭを生成する（Ｓ６７）。生成された映像および指標オブジェクトＭは、モニタ３４に出力される（Ｓ７１）。こうして、チャット相手に対応するキャラクタが視野範囲外に出てもどの方向にいるのかを把握させることができる。
【０１３１】
ゲーム装置１２はさらに、メッセージを受信中か否かを判別して（Ｓ５３）、受信中であると判別したとき、上記のようにして生成した指標の態様を変化させる。これにより、相手キャラクタが画面外に出てしまっても、相手キャラクタがどの方向にいるのかだけでなく、相手が発言中かどうかも、容易に把握させることができる。
【０１３２】
なお、上記の実施例では、指標オブジェクトＭは、相手キャラクタＢが視野範囲Ｅの外部にいる限り常に表示されているが、他の実施例では、相手キャラクタＢが視野範囲Ｅの外部にいる状態で相手が発話したときだけ表示するようにしてもよい。このような実施例について、次に説明する。
（他の実施例）
この実施例のハードウェア構成は上記の実施例と共通でよく（図１〜図９参照）、ソフトウェア構成も基本的には共通でよい（図１６〜図２１）。
【０１３３】
ただし、ゲームプログラム２０２の一部（チャット処理）は、次のように変更される。すなわち、図１８〜図２１に示すチャット処理において、ステップＳ４１〜Ｓ７１の部分が、図２３〜図２４に示すステップＳ４１ａ〜Ｓ６５ａに置き換わる。したがって、図２３〜図２４には、図１８のステップＳ３９に続く処理が示されている。また、指標オブジェクト領域２２２に記憶される形状および色は、上記の実施例では変数であったが、ここでは発話中か否かを形状および色で示す必要がないので、定数でよい。
【０１３４】
図２３〜図２４を参照して、ＣＰＵ４０は、最初のステップＳ４１ａで、図１９のステップＳ５３と同様の処理を実行する。すなわち、受信データ領域２１２の情報（相手の音声）に基づいて、相手から一定音量以上の音声を受信中であるか否かを判別する。ここでＹＥＳ、すなわち一定音量以上の音声を受信中であれば、ステップＳ４３ａ〜Ｓ６１ａを経てステップＳ７３に進む。一方、ステップＳ４１ａでＮＯ、すなわち何ら音声を受信していないか、または相手から音声を受信中であってもそれが一定音量に満たない場合には、ステップＳ６３ａ〜Ｓ６５ａを経てステップＳ７３に進む。
【０１３５】
まず、ステップＳ４１ａでＹＥＳの場合、ステップＳ４３ａで受信した音声つまり相手の発話音声をスピーカ３４ａから出力する。そしてステップＳ４５ａで、図１９のステップＳ４１と同様の処理を実行する。すなわち、受信データ領域２１２の情報（相手キャラクタＢの位置）と視野範囲情報領域２１７の情報とに基づいて、相手キャラクタＢの位置が自キャラクタＡの視野範囲Ｅ（図２２参照）の内部であるか否かを判別し、ＹＥＳであればステップＳ６３ａ（後述）に進む。相手キャラクタＢが視野範囲Ｅの外部にあれば、ステップＳ４５ａでＮＯと判別してステップＳ４７ａに進む。
【０１３６】
ステップＳ４７ａ〜Ｓ４９ａでは、図１９のステップＳ４３〜Ｓ４５と同様の処理を実行する。すなわち、ステップＳ４７ａで、自キャラクタＡを中心として所定半径を有する球Ｓを仮想空間内に生成する（図１０参照：前述）。ステップＳ４９ａでは、自キャラクタＡと相手キャラクタＢとを結ぶ直線Ｌの方向（ＡからＢに向かうベクトルの方向）を算出し、算出結果を直線情報領域２２０に書き込む。
【０１３７】
Ｓ５１ａ〜Ｓ５５ａでは、図１９のステップＳ４７〜Ｓ５１と同様の処理を実行する。すなわち、ステップＳ５１ａでは、自キャラクタＡと相手キャラクタＢとの間の距離（ＡからＢに向かうベクトルの大きさ）を算出し、算出結果を直線情報領域２２０に書き込む。ステップＳ５３ａでは、算出した距離に基づいて指標オブジェクトＭの高さ（Ｈ：図１２〜図１５参照）を算出し、算出結果を指標オブジェクト情報領域２２２に書き込む。ステップＳ５５ａでは、算出した高さＨに対して制限処理を施す。この高さ制限処理もまた、図２１のサブルーチンに従って実行される。
【０１３８】
ステップＳ５７ａでは、指標オブジェクト情報領域２２２の情報に基づいて指標オブジェクトＭを仮想空間内に生成する。この指標オブジェクトＭは、上記のようにして算出した方向および高さを有し、かつ、その先端（円錐Ｃや四角錐の頂点）が、球Ｓの表面と直線Ｌとの交点の位置で球Ｓの表面に内接するような位置に配置される（図１０参照）。指標オブジェクトＭの形状および色については、予め決められた形状および色が採用される。ステップＳ５９ａでは、仮想空間を仮想カメラＶＣから見た映像を生成し、そしてステップＳ６１ａで、こうして生成した映像と指標オブジェクトＭとをモニタ３４に表示出力する。
【０１３９】
一方、ステップＳ４１ａでＮＯ、またはステップＳ４５ａでＹＥＳの場合には、ステップＳ６３ａで仮想空間を仮想カメラＶＣから見た映像を生成し、そしてステップＳ６５ａで、こうして生成した映像をモニタ３４に出力する。指標オブジェクトＭについては、生成も表示もされない。
【０１４０】
このような処理によって、キャラクタＢが視野範囲Ｅの外部にいる状態で相手が発話したときだけ、指標オブジェクトＭを表示することができるようになる。
【０１４１】
以上から明らかなように、この実施例のゲーム装置１２（ＣＰＵ４０）は、チャットを行う相手のゲーム装置（１２）を特定して（Ｓ３，Ｓ５）、この相手のゲーム装置（１２）との間でメッセージの送受信を行う（Ｓ１，Ｓ３５〜Ｓ３９，Ｓ４１ａ〜Ｓ４３ａ，２０４）。また、自己に対応する自キャラクタＡおよび相手のゲーム装置に対応する相手キャラクタＢを仮想空間内に配置し（Ｓ９）、仮想空間を任意の位置から見た映像を生成し（Ｓ５９ａ）、自キャラクタＡから相手キャラクタＢへの方向を算出し（Ｓ４９ａ）、自キャラクタＡの近傍に定義された所定範囲Ｅの内部に相手キャラクタＢが含まれているか否かを判別し（Ｓ４５ａ）、メッセージを受信中であるか否かを判別し（Ｓ４１ａ）、そして所定範囲外でありかつ送信中または受信中であると判別したとき、算出した方向を示す指標オブジェクトＭを生成する（Ｓ５７ａ）。生成された映像および指標オブジェクトＭは、モニタ３４に出力される（Ｓ６１ａ，Ｓ６５ａ）。こうして、チャット相手の発言中に、チャット相手に対応するキャラクタが視野範囲外であってもどの方向にいるのかを把握させることができる。
【０１４２】
なお、上記の実施例または他の実施例（以下“実施例”）において、一部の要素を次のように変更してもよい。いくつかの変形例を次に説明する。
（変形例）
各ゲーム装置１２は、据置ゲーム機に限らず、携帯ゲーム機でもよい。一般には、ゲーム機，ＰＣ，ＰＤＡ等々の情報処理装置でよく、送信側と受信側とで違った種類の情報処理装置を用いてもよい。
【０１４３】
複数のゲーム装置１２，１２，…の間の関係は、ピア・ツー・ピアに限らず、サーバ・クライアントであってもよい。
【０１４４】
実施例では発話音声を送受信しているが、音声以外のメッセージを送受信してもよい（文字によるチャットなど）。
【０１４５】
実施例では、自キャラクタＡと相手キャラクタＢとの間の距離から指標オブジェクトＭの高さ（Ｈ）を決める際に、上限（Ｈｍａｘ）と下限（Ｈｍｉｎ）を設定し、その間では距離ＡＢに比例するように高さＨを設定しているが、これに限らない。たとえば、上限と下限を設定しなくてもよいし、比例関係ではない演算方法を用いてもよいし、また、距離と高さの対応関係を表したテーブルによって段階的に決定する方法をとってもよい。
【０１４６】
実施例では、指標オブジェクトＭは、四角錐（図１２，図１３参照）や、円錐Ｃに沿う複数のリング（図１４，図１５参照）であるが、方向を示すことが可能な形状であればよい（たとえば矢印，指差し形状など）。または、指標オブジェクトＭの位置で方向を示すことも可能であり（自キャラクタＡから指標オブジェクトＭに向かうベクトルが相手キャラクタＢの位置を示している）、この場合、指標オブジェクトＭは、方向性を持つような形状である必要はない。つまり、単なる円，球，立方体などでもよいし、相手キャラクタを示すアイコンであってもよい。逆に、形状で方向を把握することができるような指標オブジェクトＭであれば、位置が変化する必要はない（たとえば、常に自キャラクタの頭上に矢印があって、相手キャラクタの方向を向き続ける場合など）。要するに、実施例では位置および形状の両方で方向を示しているが、どちらか１つで方向を示すようにしてもよい。
【０１４７】
実施例では、発話中か否かの判断を音量に基づいて行っているが、トランシーバーのように所定のボタンが押下されている状態（たとえばコントローラ２２のＡボタン２６ｄが押下されている状態）を発話中と判断してもよい。文字チャットの場合には、発言（メッセージの送受信，表示等）のための指示の有無に基づいて、このような判断を行うことができる。たとえば、送受信，表示等の指示を受けてから数秒間を発話中と判断してもよい。あるいは、送受信された文字の表示を開始してから終了するまでの時間を発話中と判断してもよい。
【０１４８】
実施例では、相手キャラクタＢまでの距離に応じて指標オブジェクトＭの高さＨを変化させたが、これに代えて、またはこれに加えて、面積，体積，高さ以外の長さ（リングの円周や四角錐の奥行きなど）を変化させてもよい。あるいは、こうして指標オブジェクトＭの大きさを変化させるのに代えて、またはこれに加えて、形状，色，輝度，濃淡，点滅周期などを距離に応じて変化させてもよい。要するに、相手キャラクタＢまでの距離に応じて指標オブジェクトＭの表示態様を変化させれば、距離の把握が可能になる。
【０１４９】
指標オブジェクトＭは、相手からの音声を受信中のみならず、ユーザ自身の音声を送信中に表示してもよい。すなわち、発話しているのがユーザか相手かにかかわらず、指標オブジェクトＭを表示してもよい。その場合、ユーザおよび相手のどちらが発話中であるかが分かるように指標オブジェクトＭの向きを変えてもよい。あるいは、相手が発話していても指標オブジェクトＭを表示せず、ユーザが発話している場合にのみ指標オブジェクトＭを表示してもよい。
【０１５０】
実施例では２人で会話したが、３人以上の会話にも応用できる。この場合、複数の相手キャラクタＢが登場するので、これと同数の指標オブジェクトＭを生成して、互いに異なる態様で（たとえば互いに異なる色で）表示するのが好ましい。また、指標オブジェクトＭを表示する相手と表示しない相手を選択できるようにしてもよい。また、チャット中の相手にだけ指標オブジェクトＭを表示し、チャット中でない相手には指標オブジェクトＭを非表示としたり、または、どの指標オブジェクトＭも常時表示しておいて、チャット中か否かで表示態様を変化させたりしてもよい。
【０１５１】
実施例では、送信時に所定音量以上の入力であってもなくても、とりあえず音声を送信し、受信側で所定音量以上か否かをみて音声入力があったかを判別しているが、送信時に音量をみて、所定音量以上であるときだけ送信し、受信側ではデータを受信したときはすなわち音声入力があるものと判別するような方法にしてもよい。要するに、音量の閾値をみて音声入力の有無を判別する処理は、送信側で行っても、受信側で行ってもよい。
【０１５２】
実施例では、球Ｓは所定の半径を有するが、必ず画面内に収まるようにその半径を動的に変化させてもよい。例えば、自キャラクタＡから画面の輪郭線に至る最短の距離を算出し、その最短距離よりも球Ｓの半径を小さく設定する。このようにすれば、指標オブジェクトＭは必ず画面内に表示されるようになるため、相手キャラクタＢの方向を確実にユーザに示すことができる。
【０１５３】
実施例では、球Ｓおよび直線Ｌは非表示としたが、その一方または両方を表示してもよい。表示／非表示をコントローラ２２の操作に応じて切り換えてもよい。
【０１５４】
実施例では、指標オブジェクトＭの表示／非表示は、相手キャラクタＢの位置が視野範囲Ｅ（図２２参照）の内部か否かで判別した（Ｓ４１，Ｓ４５ａ）が、仮想カメラＶＣによって撮影されている範囲の現在または過去（数フレーム前など）の画像に他オブジェクトＢが含まれているか否かによって判断してもよい。
【０１５５】
なお、実施例の場合、相手キャラクタＢが真正面にいても、自キャラクタＡからの距離が遠ければ、相手キャラクタＢは視野範囲Ｅ内に含まれないので、指標オブジェクトＭは表示される。また、相手キャラクタＢが自キャラクタＡのすぐ近くに存在するが壁に遮られて見えないという状況では、相手キャラクタＢは視野範囲Ｅ内に含まれるので、指標オブジェクトＭは表示されない結果となる。これに対して、仮想カメラＶＣによる画像に他オブジェクトＢが含まれているか否かで判断する場合には、相手キャラクタＢが自キャラクタＡの真正面にいるときは、距離が遠くても画像に相手キャラクタＢが含まれることになり、指標オブジェクトＭは表示されない。また、壁で相手キャラクタＢが見えないときは、画像に相手キャラクタＢは含まれないため、指標オブジェクトＭは表示される結果となる。
【０１５６】
このほか、視線チェックを行って判断する方法もある。たとえば、１フレーム毎に（または一定の間隔で）自キャラクタＡから視線をとばし、この視線が相手キャラクタＢと衝突したか否かで判断すればよい。このように、自キャラクタＡからの視線の到達範囲内に相手キャラクタＢが含まれるかで判断する場合も同様に、相手が真正面にいれば指標オブジェクトＭは表示されず、壁に隠れていれば指標オブジェクトＭは表示される、という結果になる。
【符号の説明】
【０１５７】
１０  …ゲームシステム
１２  …ゲーム装置
２２  …コントローラ
３４  …モニタ
３４ａ  …スピーカ
３６  …音声入力装置
４０  …ＣＰＵ
４２ｅ  …内部メインメモリ
４６  …外部メインメモリ
１２０  …ネットワークシステム
１２２  …ネットワーク
Ａ  …自キャラクタまたはその中心点
Ｂ  …相手キャラクタまたはその中心点
Ｓ  …Ａを中心とする球
Ｌ  …ＡＢを通る直線（ＡからＢに向かうベクトル）
Ｍ  …指標オブジェクト
ＶＣ  …仮想カメラ
【図１】
2010262523.tif 000003
【図２】
2010262523.tif 000004
【図３】
2010262523.tif 000005
【図４】
2010262523.tif 000006
【図５】
2010262523.tif 000007
【図６】
2010262523.tif 000008
【図７】
2010262523.tif 000009
【図８】
2010262523.tif 000010
【図９】
2010262523.tif 000011
【図１０】
2010262523.tif 000012
【図１１】
2010262523.tif 000013
【図１２】
2010262523.tif 000014
【図１３】
2010262523.tif 000015
【図１４】
2010262523.tif 000016
【図１５】
2010262523.tif 000017
【図１６】
2010262523.tif 000018
【図１７】
2010262523.tif 000019
【図１８】
2010262523.tif 000020
【図１９】
2010262523.tif 000021
【図２０】
2010262523.tif 000022
【図２１】
2010262523.tif 000023
【図２２】
2010262523.tif 000024
【図２３】
2010262523.tif 000025
【図２４】
2010262523.tif 000026