(58)【調査した分野】(Int.Cl.,DB名)
前記補正手段は、前記第1受付手段によって傾き情報を受け付けている場合に、前記第2受付手段によって押下情報を受け付けたとき、当該押下情報を無効にする、請求項1記載の情報処理装置。
前記補正手段は、前記スティック部が押下されていない状態から押下された状態に変化したとき、前記第1受付手段によって受け付けられる傾き情報が示す傾き量に応じて、前記第2受付手段によって受け付けられた押下情報を無効にする、請求項2記載の情報処理装置。
前記補正手段は、前記第1受付手段によって受け付けられる傾き情報が示す傾き量が一定量以上である場合に、前記第2受付手段によって受け付けられた押下情報を無効にする、請求項2または3記載の情報処理装置。
押下することによりプッシュボタンとしても機能するアナログスティックを備える操作装置の操作に従ってコンピュータに情報処理を実行させる情報処理プログラムであって、
前記コンピュータを、
前記アナログスティックのスティック部が傾けられたことを示す傾き情報を受け付ける第1受付手段、
前記アナログスティックのスティック部が押下されたことを示す押下情報を受け付ける第2受付手段、および
前記第1受付手段および前記第2受付手段の一方で情報を受け付けている場合に、他方で受け付けた情報を無効にする補正手段として機能させ、
前記補正手段は、前記第2受付手段によって押下情報を受けている状態から受付けていない状態に変化してから所定時間以内である場合に、前記第1受付手段によって傾き情報を受け付けたとき、当該傾き情報を無効にする、情報処理プログラム。
押下することによりプッシュボタンとしても機能するアナログスティックを備える操作装置の操作に従ってコンピュータに情報処理を実行させる情報処理プログラムであって、
前記コンピュータを、
前記操作装置から入力される第1操作情報を検出する第1検出手段、
前記第1検出手段によって検出された第1操作情報に基づいて前記アナログスティックの操作状況を検出する第2検出手段、および
前記第1検出手段によって検出された第1操作情報と前記第2検出手段によって検出された操作状況に基づいて、当該第1操作情報を前記情報処理で用いる第2操作情報に補正する補正手段として機能させ、
前記補正手段は、前記第2検出手段によって検出された前記アナログスティックの操作状況が、押下された状態から押下されていない状態に変化してから所定時間以内である場合に、前記第1検出手段によって第1操作情報が検出されたとき、当該第1操作情報を無効にする、情報処理プログラム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示されたゲームコントローラでは、左スティックおよび右スティックのようなアナログスティックによって、任意の方向が指示されるとともに、押し込んだことが指示される場合がある。このため、プレイヤが方向だけを指示したい場合であっても、押し込んだことも指示されてしまうことがある。逆に、プレイヤが押し込んだことだけを指示したい場合であっても、方向についても指示されてしまうことがある。
【0005】
それゆえに、この発明の主たる目的は、新規な、情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法を提供することである。
【0006】
また、この発明の他の目的は、操作者の意図しない指示に従う情報処理の実行を防止できる、情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法を提供することである。
【課題を解決するための手段】
【0007】
第1の発明は、押下することによりプッシュボタンとしても機能するアナログスティックを備える操作装置の操作に従って情報処理を実行する情報処理装置である。この情報処理装置は、第1受付手段、第2受付手段および補正手段を備える。第1受付手段は、アナログスティックのスティック部が傾けられたことを示す傾き情報を受け付ける。第2受付手段は、アナログスティックのスティック部が押下されたことを示す押下情報を受け付ける。補正手段は、第1受付手段および第2受付手段の一方で情報を受け付けている場合に、他方で受け付けた情報を無効にする。
補正手段は、第2受付手段によって押下情報を受けている状態から受付けていない状態に変化してから所定時間以内である場合に、第1受付手段によって傾き情報を受け付けたとき、当該傾き情報を無効にする。
【0008】
第1の発明によれば、傾き情報または押下情報を受け付けている場合に、他方の情報を受け付けても無効にするので、操作者の意図しない指示に従う情報処理の実行を防止することができる。
また、第1の発明によれば、スティック部の押下の状態が解除されてから所定時間において、傾き情報を無効にするので、スティック部をプッシュボタンとして使用する場合のオフの操作によってスティック部が傾けられたとしても、傾き情報が情報処理に使用されることはない。したがって、操作者の意図しない指示に従う情報処理の実行を防止することができる。
【0009】
第2の発明は、第1の発明に従属し、補正手段は、第1受付手段によって傾き情報を受け付けている場合に、第2受付手段によって押下情報を受け付けたとき、当該押下情報を無効にする。したがって、この押下情報は情報処理に使用されない。
【0010】
第2の発明によれば、スティック部が傾けられている場合には、スティック部の押下情報は無効にされるので、押下情報を用いずに傾き情報を用いて情報処理を実行することができる。
【0011】
第3の発明は、第2の発明に従属し、補正手段は、スティック部が押下されていない状態から押下された状態に変化したとき、第1受付手段によって受け付けられる傾き情報が示す傾き量に応じて、第2受付手段によって受け付けられた押下情報を無効にする。このように、スティック部が押下されていない状態から押下された状態に変化されたことを条件とするのは、スティック部を押下した状態で、スティック部の傾きを無くすように操作する場合に、無効にしていた押下情報を受け付けてしまうのを防止するためである。
【0012】
第3の発明によれば、スティック部が押下されていない状態から押下された状態に変化したことを条件として加えるため、操作者の意図しない指示に従う情報処理の実行をより効果的に防止することができる。
【0013】
第4の発明は、第2または第3の発明に従属し、補正手段は、第1受付手段によって受け付けられる傾き情報が示す傾き量が一定量以上である場合に、第2受付手段によって受け付けられた押下情報を無効にする。スティック部の傾ける量が増えるに従ってスティック部を押下してしまう傾向がある。また、スティック部を押下する場合には、スティック部は少し傾いてしまうこともある。したがって、傾き量が一定量以上であることが条件とされる。
【0014】
第4の発明によれば、スティック部の傾き量が一定量以上である場合に受け付けられた押下情報を無効にするので、操作者の意図しない指示に従う情報処理の実行をより効果的に防止することができる。
【0015】
第5の発明は、第1ないし第4の発明に従属し、補正手段は、押下情報を押下していない情報に補正することにより、当該押下情報を無効にする。
【0016】
第5の発明によれば、押下していない情報に補正するだけなので、簡単に補正することができる。
【0017】
第6の発明は、第1ないし第5の発明のいずれかに従属し、補正手段は、第2受付手段によって押下情報を受け付けている場
合に、第1受付手段によって傾き情報を受け付けたとき、当該傾き情報を無効にする。したがって、この傾き情報は、情報処理に使用されない。
【0018】
第6の発明によれば、スティック部が押下された状
態において、傾き情報を無効にするので、スティック部をプッシュボタンとして使用する場合のオンやオフの操作によってスティック部が傾けられたとしても、傾き情報が情報処理に使用されることはない。したがって、操作者の意図しない指示に従う情報処理の実行を防止することができる。
【0019】
第7の発明は、第6の発明に従属し、補正手段は、傾き情報を傾いていない情報に補正することにより、当該傾き情報を無効にする。
【0020】
第7の発明によれば、傾いていない情報に補正するだけなので、簡単に補正することができる。
【0021】
第8の発明は、押下することによりプッシュボタンとしても機能するアナログスティックを備える操作装置の操作に従って情報処理を実行する情報処理装置である。情報処理装置は、第1検出手段、第2検出手段および補正手段を備える。第1検出手段は、操作装置から入力される第1操作情報を検出する。第2検出手段は、第1検出手段によって検出された第1操作情報に基づいてアナログスティックの操作状況を検出する。補正手段は、第1検出手段によって検出された第1操作情報と第2検出手段によって検出された操作状況に基づいて、当該第1操作情報を情報処理で用いる第2操作情報に補正する。
補正手段は、第2検出手段によって検出されたアナログスティックの操作状況が、押下された状態から押下されていない状態に変化してから所定時間以内である場合に、第1検出手段によってアナログスティックの傾きについての第1操作情報が検出されたとき、当該第1操作情報を無効にする。
【0022】
第8の発明によれば、アナログスティックの操作状況に応じて第1操作情報を第2操作情報に補正するので、操作者の意図しない指示に従う情報処理の実行を防止することができる。
また、第8の発明によれば、アナログスティックの操作状況が、押下された状態が解除されてから所定時間において、アナログスティックの傾きについて第1操作情報が検出されたとき、当該第1操作情報を無効にするので、アナロググスティックをプッシュボタンとして使用する場合のオフの操作によってアナログスティックが傾けられたとしても、傾きについての第1操作情報が情報処理に使用されることはない。したがって、操作者の意図しない指示に従う情報処理の実行を防止することができる。
【0023】
第9の発明は、押下することによりプッシュボタンとしても機能するアナログスティックを備える操作装置の操作に従って情報処理を実行する情報処理システムであって、アナログスティックのスティック部が傾けられたことを示す傾き情報を受け付ける第1受付手段、アナログスティックのスティック部が押下されたことを示す押下情報を受け付ける第2受付手段、および第1受付手段および第2受付手段の一方で情報を受け付けている場合に、他方で受け付けた情報を無効にする補正手段を備える、情報処理システムである。
補正手段は、第2受付手段によって押下情報を受けている状態から受付けていない状態に変化してから所定時間以内である場合に、第1受付手段によって傾き情報を受け付けたとき、当該傾き情報を無効にする。
【0024】
第10の発明は、押下することによりプッシュボタンとしても機能するアナログスティックを備える操作装置の操作に従って情報処理を実行する情報処理システムであって、操作装置から入力される第1操作情報を検出する第1検出手段、第1検出手段によって検出された第1操作情報に基づいてアナログスティックの操作状況を検出する第2検出手段、および第1検出手段によって検出された第1操作情報と第2検出手段によって検出された操作状況に基づいて、当該第1操作情報を情報処理で用いる第2操作情報に補正する補正手段を備え
、補正手段は、第2検出手段によって検出されたアナログスティックの操作状況が、押下された状態から押下されていない状態に変化してから所定時間以内である場合に、第1検出手段によって第1操作情報が検出されたとき、当該第1操作情報を無効にする、情報処理システムである。
【0025】
第11の発明は、押下することによりプッシュボタンとしても機能するアナログスティックを備える操作装置の操作に従ってコンピュータに情報処理を実行させる情報処理プログラムであって、コンピュータを、アナログスティックのスティック部が傾けられたことを示す傾き情報を受け付ける第1受付手段、アナログスティックのスティック部が押下されたことを示す押下情報を受け付ける第2受付手段、および第1受付手段および第2受付手段の一方で情報を受け付けている場合に、他方で受け付けた情報を無効にする補正手段として機能させ
、補正手段は、第2受付手段によって押下情報を受けている状態から受付けていない状態に変化してから所定時間以内である場合に、第1受付手段によって傾き情報を受け付けたとき、当該傾き情報を無効にする、情報処理プログラムである。
【0026】
第12の発明は、押下することによりプッシュボタンとしても機能するアナログスティックを備える操作装置の操作に従ってコンピュータに情報処理を実行させる情報処理プログラムであって、コンピュータを、操作装置から入力される第1操作情報を検出する第1検出手段、第1検出手段によって検出された第1操作情報に基づいてアナログスティックの操作状況を検出する第2検出手段、および第1検出手段によって検出された第1操作情報と第2検出手段によって検出された操作状況に基づいて、当該第1操作情報を情報処理で用いる第2操作情報に補正する補正手段として機能させ
、補正手段は、第2検出手段によって検出されたアナログスティックの操作状況が、押下された状態から押下されていない状態に変化してから所定時間以内である場合に、第1検出手段によって第1操作情報が検出されたとき、当該第1操作情報を無効にする、情報処理プログラムである。
【0027】
第13の発明は、押下することによりプッシュボタンとしても機能するアナログスティックを備える操作装置の操作に従って情報処理を実行するコンピュータの情報処理方法であって、コンピュータは、(a)アナログスティックのスティック部が傾けられたことを示す傾き情報を受け付け
るステップ、(b)アナログスティックのスティック部が押下されたことを示す押下情報を受け付け
るステップ、および(c)ステップ(a)およびステップ(b)の一方で情報を受け付けている場合に、他方で受け付けた情報を無効にする
ステップを含み、ステップ(c)は、ステップ(b)において押下情報を受けている状態から受付けていない状態に変化してから所定時間以内である場合に、ステップ(a)において傾き情報を受け付けたとき、当該傾き情報を無効にする、情報処理方法である。
【0028】
第14の発明は、押下することによりプッシュボタンとしても機能するアナログスティックを備える操作装置の操作に従って情報処理を実行するコンピュータの情報処理方法であって、コンピュータは、(a)操作装置から入力される第1操作情報を検出
するステップ、(b)ステップ(a)において検出した第1操作情報に基づいてアナログスティックの操作状況を検出
するステップ、および(c)ステップ(a)において検出した第1操作情報とステップ(b)において検出した操作状況に基づいて、当該第1操作情報を情報処理で用いる第2操作情報に補正する
ステップを含み、ステップ(c)は、ステップ(b)において検出したアナログスティックの操作状況が、押下された状態から押下されていない状態に変化してから所定時間以内である場合に、ステップ(a)で第1操作情報を検出したとき、当該第1操作情報を無効にする、情報処理方法である。
【0029】
第8ないし第14の発明においても、第1の発明と同様に、操作者の意図しない指示に従う情報処理の実行を防止することができる。
【発明の効果】
【0030】
この発明によれば、傾き情報または押下情報を受け付けている場合に、他方の情報を受け付けても無効にするので、操作者の意図しない指示に従う情報処理の実行を防止することができる。
【0031】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための形態】
【0033】
以下、図面を参照して、本発明の一実施例に係るゲームシステム10について説明する。
図1に示すゲームシステム10は、据置型のゲーム装置12および可搬型の端末装置14を含む。また、ゲームシステム10は、テレビジョン受像器等に代表される据置型のディスプレイ装置(以下、「テレビ」と記載する)16を含み、接続コードを介して、ゲーム装置12とテレビ16が接続される。このゲームシステム10は、端末装置14を用いたゲーム操作に基づいて、ゲーム装置12においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ16および/または端末装置14に表示するものである。
【0034】
図示は省略するが、ゲーム装置12には、当該ゲーム装置12に対して交換可能に用いられる情報記憶媒体の一例である光ディスクが脱着可能に挿入される。光ディスクには、ゲーム装置12において実行されるための情報処理プログラム(典型的にはゲームプログラムのようなアプリケーションプログラム)が記憶されている。ゲーム装置12は、光ディスクに記憶されている情報処理プログラムを読み出して実行することによって情報処理(ゲーム処理)を実行する。
【0035】
テレビ16は、ゲーム装置12において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ16はスピーカ16a(
図2)を有しており、スピーカ16aは、上記ゲーム処理の結果得られるゲーム音声を出力する。
【0036】
なお、他の実施例では、ゲーム装置12と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置12とテレビ16との通信は無線通信であってもよい。
【0037】
端末装置14は、少なくとも、ゲーム装置12との間でデータを送受信する。ユーザ(プレイヤ)は、端末装置14を手に持って動かしたり、端末装置14を自由な位置に配置したりして使用することが可能である。端末装置14は、タッチパネル56、アナログスティック58および操作ボタン60のような入力手段と、LCD62のような表示手段を備える。たとえば、Bluetooth(ブルートゥース)(登録商標)の技術を用いた無線通信によってゲーム装置12と通信可能である。ただし、端末装置14とゲーム装置12とは有線で接続されてもよい。端末装置14は、ゲーム装置12で生成された画像(たとえばゲーム画像)のデータをゲーム装置12から受信し、受信した画像をLCD62に表示する。また、端末装置14は、自機に対して行われた操作の内容を表す端末操作データをゲーム装置12に送信する。
【0038】
なお、この実施例では表示装置としてLCDを用いているが、端末装置14は、たとえばEL(Electro Luminescence)を利用した表示装置等、他の任意の表示装置を有していてもよい。
【0039】
また、
図1では、ゲームシステム10に含まれる端末装置14は1つであるが、ゲーム装置12は複数の端末装置14と通信可能であり、所定台数の端末装置14を同時に使用することによって複数人でゲームをプレイすることが可能である。
【0040】
図2は、ゲーム装置12の電気的な構成を示すブロック図である。ゲーム装置12は、CPU20、システムLSI22、外部メインメモリ26、ROM/RTC28、およびAV−IC36等を有する。
【0041】
CPU20は、光ディスクに記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU20は、システムLSI22に接続される。このシステムLSI22には、CPU20の他、外部メインメモリ26、ROM/RTC28およびAV−IC36が接続される。システムLSI22は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部情報処理装置からのデータの取得等の処理を行う。
【0042】
揮発性の外部メインメモリ26は、光ディスクから読み出されたゲームプログラムや、フラッシュメモリ24から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU20のワーク領域やバッファ領域として用いられる。ROM/RTC28は、ゲーム装置12の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC)とを有する。
【0043】
なお、光ディスクから読み出されたプログラムデータやテクスチャデータ等は、後述する内部メインメモリ22eまたは外部メインメモリ26に書き込まれる。
【0044】
システムLSI22には、入出力プロセッサ(I/Oプロセッサ)22a、GPU22b、DSP22c、VRAM22d、および内部メインメモリ22eが設けられる。図示は省略するが、これらの構成要素22a〜22eは内部バスによって互いに接続される。
【0045】
GPU22bは、描画手段の一部を形成し、CPU20からのグラフィクスコマンド(作画命令)に従って画像データを生成する。ただし、VRAM22dに、メインメモリ(22e、26)から読み出したポリゴンデータやテクスチャデータ等のデータが記憶され、GPU22bは、そのデータを用いて画像データを生成する。この実施例においては、ゲーム装置12は、テレビ16に表示するゲーム画像と、端末装置14に表示するゲーム画像との両方を生成する。以下では、テレビ16に表示されるゲーム画像を「テレビ用ゲーム画像」と呼び、端末装置14に表示されるゲーム画像を「端末用ゲーム画像」と呼ぶことがある。
【0046】
DSP22cは、オーディオプロセッサとして機能し、内部メインメモリ22eや外部メインメモリ26に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。なお、この実施例においては、ゲーム音声についてもゲーム画像と同様、テレビ16のスピーカ16aから出力するゲーム音声と、端末装置14のスピーカ66から出力するゲーム音声との両方が生成される。以下では、テレビ16から出力されるゲーム音声を「テレビ用ゲーム音声」と呼び、端末装置14から出力されるゲーム音声を「端末用ゲーム音声」と呼ぶことがある。
【0047】
上記のように、ゲーム装置12において生成される画像および音声のうちで、テレビ16において出力される画像および音声(効果音や音楽なども含む。以下、同じ。)のデータは、AV−IC36によって読み出される。AV−IC36は、読み出した画像データを、AVコネクタ38を介してテレビ16に出力するとともに、読み出した音声データを、テレビ16に内蔵されるスピーカ16aに出力する。これによって、テレビ16に画像が表示されるとともにスピーカ16aから音声が出力される。
【0048】
また、ゲーム装置12において生成される画像および音声のうちで、端末装置14において出力される画像および音声のデータは、入出力プロセッサ22a等によって端末装置14へ送信される。入出力プロセッサ22a等による端末装置14へのデータの送信については後述する。
【0049】
入出力プロセッサ22aは、それに接続される構成要素との間でデータの送受信を実行したり、外部情報処理装置からのデータのダウンロードを実行したりする。また、入出力プロセッサ22aは、フラッシュメモリ24およびコーデックLSI30に接続される。また、コーデックLSI30は端末通信モジュール32に接続され、端末通信モジュール32にはアンテナ34が接続される。
【0050】
CPU20はゲームプログラムを実行することにより、フラッシュメモリ24に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ24には、ゲーム装置12と外部情報処理装置との間で送受信されるデータの他、ゲーム装置12を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。また、フラッシュメモリ24にはゲームプログラムが記憶されてもよい。
【0051】
なお、図示は省略するが、入出力プロセッサ22aは、ネットワーク通信モジュールを用いてインターネット等のネットワークに接続し、ネットワークに接続される外部情報処理装置(たとえば他のゲーム装置や、各種サーバ等)と通信する(データを送受信する)ことができる。
【0052】
また、ゲーム装置12は、端末装置14との間で画像や音声等のデータを送受信することが可能である。入出力プロセッサ22aは、端末装置14へゲーム画像(端末用ゲーム画像)を送信する場合、GPU22bが生成したゲーム画像のデータをコーデックLSI30へ出力する。コーデックLSI30は、入出力プロセッサ22aからの画像データに対して所定の圧縮処理を行う。端末通信モジュール32は、端末装置14との間で無線通信を行う。したがって、コーデックLSI30によって圧縮された画像データは、端末通信モジュール32によってアンテナ34を介して端末装置14へ送信される。この実施例では、コーデックLSI30は、たとえばH.264規格といった高効率の圧縮技術を用いて画像データを圧縮する。
【0053】
なお、それ以外の圧縮技術を用いてもよいし、通信速度が十分である場合には圧縮せずに画像データを送信する構成であってもよい。
【0054】
また、端末通信モジュール32は、たとえばWi−Fiの認証を受けた通信モジュールであり、たとえばIEEE802.11n規格で採用されるMIMO(Multiple Input Multiple Output)の技術を用いて、端末装置14との間の無線通信を高速に行うようにしてもよいし、他の通信方式を用いてもよい。
【0055】
また、ゲーム装置12は、画像データの他、音声データを端末装置14へ送信する。すなわち、入出力プロセッサ22aは、DSP22cが生成した音声データを、コーデックLSI30を介して端末通信モジュール32へ出力する。コーデックLSI30は、音声データに対しても画像データと同様に圧縮処理を行う。音声データに対する圧縮の方式は、どのような方式であってもよい。また、他の実施例においては、音声データは圧縮されずに送信されてもよい。端末通信モジュール32は、圧縮された画像データおよび音声データを、アンテナ34を介して端末装置14へ送信する。
【0056】
また、ゲーム装置12は、端末装置14から各種データを受信(受付)可能である。この実施例では、端末装置14は、端末操作データ、画像データ、および音声データを送信する。端末装置14から送信される各データはアンテナ34を介して端末通信モジュール32によって受信される。ここで、端末装置14からの画像データおよび音声データは、ゲーム装置12から端末装置14への画像データおよび音声データと同様の圧縮処理が施されている。
【0057】
したがって、これら画像データおよび音声データについては、端末通信モジュール32からコーデックLSI30に送られ、コーデックLSI30によって伸張処理が施されて入出力プロセッサ22aに出力される。
【0058】
なお、端末装置14からの画像データは、図示しないカメラで撮影された撮影画像に対応する画像データなどを含み、端末装置14からの音声データは、マイク68(
図3参照)によって検出されたプレイヤが発生する音(音声ないし拍手等)に対応する音声データなどを含む。
【0059】
一方、端末装置14からの端末操作データに関しては、画像や音声に比べてデータ量が少ないので、圧縮処理が施されていなくともよい。また、必要に応じて暗号化がされていてもよいし、されていなくともよい。端末操作データは、端末通信モジュール32で受信された後、コーデックLSI30を介して入出力プロセッサ22aに出力される。入出力プロセッサ22aは、端末装置14から受信したデータを、内部メインメモリ22eまたは外部メインメモリ26のバッファ領域に記憶(一時記憶)する。
【0060】
なお、ゲーム装置12の構成は限定される必要は無い。たとえば、拡張機器を接続可能な構成とすることもできる。
【0061】
図3は、端末装置14の電気的な構成を示すブロック図である。
図3に示すように、端末装置14は、
図1に示した構成の他、ユーザインタフェースコントローラ(UIコントローラ)50、タッチパネルコントローラ54、コーデックLSI52、スピーカ66、サウンドIC64、マイク68、無線モジュール70、アンテナ72、およびフラッシュメモリ74を備える。これらの電子部品は、電子回路基板上に実装されてハウジング内に収納される。
【0062】
UIコントローラ50は、各種の入出力部に対するデータの入出力を制御するための回路である。このUIコントローラ50は、タッチパネルコントローラ54、アナログスティック58、および操作ボタン60に接続される。また、UIコントローラ50は、コーデックLSI52に接続される。
【0063】
タッチパネルコントローラ54は、タッチパネル56に接続され、タッチパネル56の制御を行う回路である。タッチパネルコントローラ54は、タッチパネル56からの信号に基づいて所定の形式のタッチ位置データを生成してUIコントローラ50へ出力する。タッチ位置データは、タッチパネル56の入力面において入力が行われた位置(タッチ位置)の座標を表す。
【0064】
なお、タッチパネルコントローラ54は、タッチパネル56からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。また、UIコントローラ50からタッチパネルコントローラ54へは、タッチパネル56に対する各種の制御指示が出力される。
【0065】
アナログスティック58は、可動部材(たとえば、スティック部)が端末装置14のハウジングの表面に対して任意の方向(上下左右の方向および斜め方向)に傾倒可能な方向入力部である。また、アナログスティック58は、スティック部を端末装置14の背面側に略垂直に押下可能なプッシュボタンでもある。ただし、端末装置14の背面は、当該端末装置14のハウジングにおいて、アナログスティック58、操作ボタン60およびLCD62が設けられている面(表面)の裏側(反対側)の面である。つまり、この実施例のアナログスティック58では、スティック部を任意の方向に傾倒させる操作と、スティック部を押下させる操作を行うことができる。したがって、アナログスティック58は、スティック部を傾倒させた方向(傾き方向)および傾倒させた量(傾き量)についてのデータ(傾倒データ)と、スティック部を押下させたか否かの状況(以下、「ボタン押下状況」という)を表す操作ボタンデータを含むデータ(以下、「スティック操作データ」という)をUIコントローラ50へ出力する。
【0066】
なお、この実施例では、スティック部を傾倒させるアナログスティック58を用いるようにしてあるが、これに限定される必要はない。アナログスティック58は、スティック部が端末装置14のハウジングの表面に対して任意の方向にスライド可能な方向入力部であってもよい。
【0067】
また、操作ボタン60は、各種のプッシュボタンないしキースイッチに対するボタン押下状況(押下されたか否かの状況)を表す操作ボタンデータをUIコントローラ50へ出力する。たとえば、操作ボタン60は、十字ボタン、Aボタン、Bボタン、Xボタン、Yボタンなどのプッシュボタンを含む。
【0068】
UIコントローラ50は、上記の各構成要素から受け取ったタッチ位置データ、スティック操作データ、および操作ボタンデータを含む端末操作データをコーデックLSI52に出力する。
【0069】
コーデックLSI52は、ゲーム装置12へ送信するデータに対する圧縮処理、および、ゲーム装置12から送信されたデータに対する伸張処理を行う回路である。コーデックLSI52には、LCD62、サウンドIC64、無線モジュール70、およびフラッシュメモリ74が接続される。また、コーデックLSI52はCPU52aと内部メモリ52bを含む。
【0070】
端末装置14はゲーム処理自体を行なわない構成であるが、端末装置14の管理や通信のための最小限のプログラムを実行する必要がある。電源投入時にフラッシュメモリ74に格納されたプログラムを内部メモリ52bに読み出してCPU52aが実行することで、端末装置14が起動する。ただし、端末装置14は、ゲーム装置12からの動作データに基づいて起動または停止する。この実施例では、端末装置14の停止は、一部の回路コンポーネント(UIコントローラ50、コーデックLSI52および無線モジュール70)に電源が供給されているスリープの状態を意味する。また、内部メモリ52bの一部の領域はLCD62のためのVRAMとして使用される。
【0071】
サウンドIC64は、スピーカ66およびマイク68に接続され、スピーカ66およびマイク68への音声データの入出力を制御する回路である。すなわち、コーデックLSI52から音声データを受け取った場合、サウンドIC64は当該音声データに対してD/A変換を行って得られる音声信号をスピーカ66へ出力し、スピーカ66から音を出力させる。また、マイク68は、端末装置14に伝わる音(ユーザの音声や手拍子等)を検知して、当該音を示す音声信号をサウンドIC64へ出力する。サウンドIC64は、マイク68からの音声信号に対してA/D変換を行い、所定の形式の音声データをコーデックLSI52へ出力する。
【0072】
コーデックLSI52は、カメラからの画像データ、マイク68からの音声データ、および、UIコントローラ50からの端末操作データを、無線モジュール70を介してゲーム装置12へ送信する。この実施例では、コーデックLSI52は、画像データおよび音声データに対して、コーデックLSI30と同様の圧縮処理を行う。上記端末操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール70に出力される。
【0073】
無線モジュール70にはアンテナ72が接続されており、無線モジュール70はアンテナ72を介してゲーム装置12へ上記送信データを送信する。無線モジュール70は、ゲーム装置12の端末通信モジュール32と同様の機能を有している。すなわち、無線モジュール70は、たとえばIEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。
【0074】
以上のように、端末装置14からゲーム装置12へ送信される送信データには、端末操作データ、画像データ、および音声データが含まれる。
【0075】
なお、この実施例の端末装置14は、タッチパネル56、アナログスティック58、および操作ボタン60といった操作手段を備えるが、これらの操作手段に限定される必要はない。たとえば、タッチパネル56や操作ボタン60の一部は設けなくてもよい。他の実施例においては、上記の操作手段とともに、他の操作手段を備える構成であってもよい。たとえば、端末装置14の動き(位置や姿勢、あるいは、位置や姿勢の変化を含む)を算出するためのセンサとして、磁気センサ、加速度センサ、およびジャイロセンサの少なくとも1つを備えるようにしてよい。
【0076】
また、端末装置14は、カメラおよびマイク68を備える構成であるが、他の実施例においては、カメラおよびマイク68を備えていなくてもよく、また、いずれか一方のみを備えていてもよい。
【0077】
図4には、端末装置14からゲーム装置12に送信(入力)される端末操作データ(端末操作信号)の具体的な内容が示される。上述したように、端末操作データは、タッチパネル56のタッチ位置データ、第1アナログスティック58Aおよび第2アナログスティック58Bのスティック操作データ、および操作ボタン60の操作ボタンデータを含む。この端末操作データは、所定のフォーマットに従って生成される。したがって、ゲーム装置12では、受信した端末操作データを参照することにより、操作された操作手段および操作の内容を容易に知ることができるとともに、操作されていない操作手段を容易に知ることができる。
【0078】
タッチ座標データは、タッチパネル56で検出されたタッチ位置の座標データである。第1アナログスティック58Aのスティック操作データは、スティック部の傾き情報(傾き方向および傾き量)の傾倒データと、スティック部のボタン押下状況の操作ボタンデータである。ただし、上述したように、スティック部の傾き方向は、任意の方向(上下左右の方向および斜め方向)である。また、スティック部のボタン押下状況は、オン(押下げ有り)/オフ(押下げ無し)である。以下、他のプッシュボタンのボタン押下状況についても同様である。第2アナログスティック58Bのスティック操作データは、スティック部の傾き情報のデータおよびスティック部のボタン押下状況のデータである。詳細は、第1アナログスティック58Aと同様であるため、重複した説明は省略する。
【0079】
十字ボタンは、上ボタン、下ボタン、左ボタンおよび右ボタンで構成され、十字ボタンの操作ボタンデータは、これらのプッシュボタンの各々についてのボタン押下状況(オン/オフ)のデータである。Aボタン、Bボタン、XボタンおよびYボタンの各操作ボタンデータは、これらのプッシュボタンについてのボタン押下状況(オン/オフ)のデータである。図示は省略するが、端末装置14に設けられる他のボタンの操作ボタンデータも同様である。
【0080】
このようなゲームシステム10では、ゲーム装置12でゲームプログラムのような所定のアプリケーションプログラムが実行される。このとき、ゲーム装置12は、端末装置14からの端末操作データに従ってアプリケーションプログラムの処理(情報処理)を進行させる場合がある。
【0081】
上述したように、アナログスティック58のスティック操作データは、傾倒データと操作ボタンデータを含むため、スティック部が傾けられることによる方向の指示とスティック部が押下されることによる指示が同時に入力されることがある。
【0082】
このため、たとえば、プレイヤがスティック部を傾けて方向だけを指示したい場合であっても、スティック部を押下してしまい、その押下による指示も与えられてしまうことがある。また、プレイヤがスティック部の押下による指示だけを与えたい場合であっても、スティック部を傾けてしまい、その傾きによる指示も与えてしまうこともある。
【0083】
より具体的には、アナログスティック58のスティック部を傾けることにより、3次元の仮想空間に配置された仮想カメラを移動させ、当該アナログスティック58のスティック部を押し下げることにより、当該仮想カメラの位置をリセットする仕様において、スティック部を傾けて仮想カメラを移動させている途中に、スティック部を押し下げてしまうと、当該仮想カメラの位置がリセットされ、当該仮想カメラが元の位置(移動前の位置やデフォルトの位置)に戻ってしまうことがある。
【0084】
また、たとえば、射撃ゲームにおいて、アナログスティック58のスティック部を傾けることにより、仮想空間内で敵キャラクタに照準を合わせたり、銃口を向けたりし、当該アナログスティック58のスティック部を押し下げることにより、弾を撃つ仕様において、スティック部を押し下げて弾を撃つときに、スティック部を傾けてしまうと、照準や銃口が移動されて(ずれて)しまい、弾が狙った方向とは異なる方向に発射されてしまうことがある。
【0085】
このように、プレイヤが意図してしない動作(情報処理)が実行されてしまうのは不都合であるため、この実施例では、このような不都合を回避するようにしてある。
【0086】
具体的には、ゲーム装置12では、アナログスティック58のスティック部の傾き量が一定量以上である場合には、スティック部が押下されたとしても、アプリケーションの処理においては、スティック部が押下されていないものとされる。つまり、スティック部が押下された状態が押下されていない状態に補正されることにより、スティック部が押下されたことが無効にされる。
【0087】
このように、アナログスティック58のスティック部の傾き量が一定量以上であることを条件としているのは、スティック部を押下する場合には、当該スティック部が少し傾いてしまうことがあるためである。また、スティック部を倒す量が増えるに従ってスティック部を押下してしまう傾向があるからでもある。たとえば、アナログスティック58のスティック部が傾けられていないホームポジションである場合の傾き量を0とし、任意の方向にスティック部を最大限傾けた場合の傾き量を10とすると、「一定量以上傾いている状態」とは傾き量が5以上(5〜10)である状態を意味する。ただし、一定量を含めずに、一定量を超えて傾いている状態を条件としてもよい。
【0088】
また、アナログスティック58のスティック部が押下されている場合と、スティック部が押下された状態から押下されていない状態に変化してからの所定時間(たとえば、10フレーム)においては、スティック部が傾けられても、アプリケーションの処理においては、スティック部が傾いていないものとされる。つまり、スティック部が傾いている状態が傾いていない状態に補正されることにより、スティック部が傾けられていることが無効にされる。ただし、フレームは、画面を更新する単位時間であり、たとえば1/60秒である。
【0089】
このようにするのは、上記のように、アナログスティック58のスティック部を押下する場合には、スティック部を押下するときのみならず、スティック部の押下を解除(解放)するときにも、スティック部が傾いてしまう場合があり、解放時のスティック部の傾きによる指示を与えないようにしてある。
【0090】
さらに、この実施例では、アナログスティック58のスティック部が押下されていない状態(オフ)から押下された状態(オン)に変化した場合であり、かつアナログスティック58の傾き量が5未満である場合にのみ、アプリケーションの処理において、スティック部が押下されているものとされる。これは、上記のように、この実施例では、スティック部の傾き量が一定量以上である場合には、スティック部の押下が無いものとしてアプリケーションで扱うようにしてあるためである。また、スティック部が押下されていない状態から押下された状態に変化したことを条件とするのは、アナログスティック58のスティック部を押下したままその傾きを無くすように(ホームポジションに戻すように)操作し、傾き量が一定量未満になったときに、押し下げの指示を受け付けてしまうのを防止するためのである。
【0091】
図5は、
図2に示したゲーム装置12のメインメモリ(22e,26)のメモリマップ300の一例を示す。
図5に示すように、メインメモリ(22e,26)は、プログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、ゲームプログラムなどの情報処理プログラムが記憶される。たとえば、ゲームプログラムは、ゲーム装置12に電源が投入された後の適宜のタイミングで光ディスクからその一部または全部が読み込まれてメインメモリ(22e,26)に記憶される。
【0092】
なお、ゲームプログラムは、光ディスクに代えて、フラッシュメモリ24やゲーム装置12の外部情報処理装置から(たとえばインターネットを介して)取得されてもよい。また、ゲームプログラムに含まれる一部のプログラムについては、ゲーム装置12内に予め記憶されていてもよい。
【0093】
この実施例では、ゲームプログラムは、メイン処理プログラム310、画像生成プログラム312、画像表示プログラム314、音生成プログラム316、音出力プログラム318、操作検出プログラム320および補正プログラム322などによって構成される。
【0094】
メイン処理プログラム310は、仮想ゲームのメインルーチンの処理(
図8の全体処理)を実行するためのプログラムである。画像生成プログラム312は、ポリゴンデータやテクスチャデータなどのデータを用いて、テレビ用ゲーム画像を生成したり、端末用ゲーム画像を生成したりするためのプログラムである。
【0095】
画像表示プログラム314は、画像生成プログラム312に従って生成したテレビ用ゲーム画像の画像データをAV−IC36に出力し、テレビ用ゲーム画像をテレビ16に表示するためのプログラムである。また、画像表示プログラム314は、画像生成プログラム312に従って生成した端末用ゲーム画像の画像データを端末装置14に送信するためのプログラムでもある。
【0096】
音生成プログラム316は、CPU20の指示の下、DSP22cによって、テレビ用ゲーム音声を生成したり、端末用ゲーム音声を生成したりするためのプログラムである。音出力プログラム318は、音生成プログラム316に従って生成されたテレビ用ゲーム音声の音声データをAV−IC36に出力し、テレビ用ゲーム音声をテレビ16のスピーカ16aから出力するためのプログラムである。また、音出力プログラム318は、音生成プログラム316に従って生成された端末用ゲーム音声の音声データを端末装置14に送信するためのプログラムでもある。
【0097】
操作検出プログラム320は、端末装置14から入力(送信)される送信データに含まれる端末操作データを検出する(受け付ける)ためのプログラムである。補正プログラム322は、操作検出プログラム320に従って検出された端末操作データのうち、アナログスティック58のスティック操作データを補正するためのプログラムである。
【0098】
なお、プログラム記憶領域302には、通信プログラムおよびバックアッププログラムなども記憶される。
【0099】
図6は
図5に示したデータ記憶領域304の具体的な内容の一例を示す。
図6に示すように、データ記憶領域304には、受信データ330、送信データ332、第1出力ボタンデータ334、第2出力ボタンデータ336、第1出力スティックデータ338、第2出力スティックデータ340、前回第1入力ボタンデータ342および前回第2入力ボタンデータ344などが記憶される。
【0100】
受信データ330は、端末装置14から受信される各種のデータである。受信データ330は、端末操作データ330aを含む。端末装置14がゲーム装置12に複数接続される場合には、各端末装置14に対応して、端末操作データ330aも複数記憶される。
【0101】
端末操作データ330aは、端末装置14に対するプレイヤの操作を表すデータであり、上述したように、タッチ位置データ、スティック操作データおよび操作ボタンデータを含む。ただし、端末操作データ330aは、端末装置14を操作するプレイヤの操作を表すものであればよく、上記各データのいずれか1つのみを含むものであってもよい。端末操作データ330aは、端末装置14から送信されてゲーム装置12において取得され、メインメモリ(22e,26)に記憶される。
【0102】
なお、メインメモリ(22e,26)には、最新の(最後に取得された)ものから順に所定個数の端末操作データが記憶されてもよい。
【0103】
送信データ332は、画像データ332aおよび音声データ332bなどを含む。画像データ332aは、ゲーム処理(後述する全体処理)によって生成され、端末装置14で出力される端末用ゲーム画像の画像データなどである。音声データ332bは、ゲーム処理によって生成され、端末装置14で出力される端末用ゲーム音声の音声データである。
【0104】
第1出力ボタンデータ334は、アプリケーション(この実施例では、「ゲーム」である。以下、同じ。)の処理で用いるためのアナログスティック58Aのスティック部のボタン押下状況についてのデータである。第2出力ボタンデータ336は、アプリケーションの処理で用いるためのアナログスティック58Bのスティック部のボタン押下状況についてのデータである。
【0105】
第1出力スティックデータ338は、アプリケーションの処理で用いるためのアナログスティック58Aのスティック部の傾き方向および傾き量についてのデータである。第2出力スティックデータ340は、アプリケーションの処理で用いるためのアナログスティック58Bの傾き方向および傾き量についてのデータである。
【0106】
ただし、第1出力ボタンデータ334、第2出力ボタンデータ336、第1出力スティックデータ338および第2出力スティックデータ340は、端末装置14からゲーム装置12に入力された端末操作データのうち、アナログスティック58Aおよびアナログスティックボタン58Bについてのスティック操作データに補正プログラム322に従う補正処理を施したデータである。
【0107】
前回第1入力ボタンデータ342は、前フレームにおいて端末装置14から入力された端末操作データのうち、アナログスティック58Aのスティック部のボタン押下状況についての操作ボタンデータである。前回第2入力ボタンデータ344は、前フレームにおいて端末装置14から入力された端末操作データのうち、アナログスティック58Bのスティック部のボタン押下状況についての操作ボタンデータである。
【0108】
また、データ記憶領域304には、第1入力ボタン変化フラグ346、第2入力ボタン変化フラグ348、第1カウンタ350および第2カウンタ352が設けられる。
【0109】
第1入力ボタン変化フラグ346は、端末装置14においてアナログスティック58Aのスティック部のボタン押下状況がオフからオンに変化したかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。端末装置14においてアナログスティック58Aのスティック部のボタン押下状況がオフからオンに変化した場合には、第1入力ボタン変化フラグ346はオンされ、レジスタにデータ値「1」が設定される。一方、端末装置14においてアナログスティック58Aのスティック部のボタン押下状況が変化していない場合やオンからオフに変化した場合には、第1入力ボタン変化フラグ346はオフされ、レジスタにデータ値「0」が設定される。
【0110】
第2入力ボタン変化フラグ348は、端末装置14においてアナログスティック58Bスティック部のボタン押下状況がオフからオンに変化したかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。端末装置14においてアナログスティック58Bのスティック部のボタン押下状況がオフからオンに変化した場合には、第2入力ボタン変化フラグ348はオンされ、レジスタにデータ値「1」が設定される。一方、端末装置14においてアナログスティック58Bのスティック部のボタン押下状況が変化していない場合やオンからオフに変化した場合には、第2入力ボタン変化フラグ348はオフされ、レジスタにデータ値「0」が設定される。
【0111】
第1カウンタ350は、アナログスティック58Aのスティック部が押下されていない(オフされている)時間をカウントするためのカウンタであり、所定時間(この実施例では、10フレーム)をカウントする。
【0112】
第2カウンタ352は、アナログスティック58Bのスティック部が押下されていない(オフされている)時間をカウントするためのカウンタであり、所定時間(この実施例では、10フレーム)をカウントする。
【0113】
図示は省略するが、データ記憶領域304には、サウンドデータや音波形データなどの他のデータが記憶されたり、他のフラグやカウンタ(タイマ)が設けられたりする。
【0114】
図7は、
図3に示した端末装置14の内部メモリ52bのメモリマップ400の一例を示す。
図7に示すように、内部メモリ52bは、データ記憶領域402を含む。
【0115】
データ記憶領域402には、送信データ410および受信データ412が記憶される。
【0116】
送信データ410は、端末操作データ410aを含む。これは、上述した受信データ330に含まれる端末操作データ330aと同じ内容であるため、重複した説明は省略する。
【0117】
受信データ412は、画像データ412aおよび音声データ412bなどを含む。これらは、上述した送信データ332に含まれる画像データ332aおよび音声データ332bと同じ内容であるため、重複した説明は省略する。
【0118】
図示は省略するが、データ記憶領域402には、端末装置14の動作に必要な他のデータが記憶されたり、フラグやカウンタ(タイマ)が設けられたりする。
【0119】
図8は、
図2に示したゲーム装置12に設けられるCPU20の全体処理についてのフロー図である。なお、
図8(後述する
図9および
図10についても同様。)に示すフロー図の各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、この実施例では、基本的には、
図8−
図10に示すフロー図の各ステップの処理をCPU20が実行するものとして説明するが、CPU20以外のプロセッサや専用回路が一部のステップを実行するようにしてもよい。
【0120】
ゲーム装置12の電源が投入されると、全体処理の実行に先立って、CPU20は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ(22e,26)等の各ユニットが初期化される。そして、光ディスクに記憶されたゲームプログラムがメインメモリ(22e、26)に読み込まれ、CPU20によって当該ゲームプログラムの実行が開始される。
【0121】
CPU20は、全体処理を開始すると、ステップS1で、初期処理を実行する。初期処理では、たとえば、CPU20は、ゲーム画面100を生成および表示するための仮想のゲーム空間を構築し、このゲーム空間に登場するプレイヤキャラクタ等の各キャラクタないし各オブジェクトを初期位置に配置する。また、CPU20は、ゲーム処理で用いる各種パラメータの初期値を設定する。
【0122】
続いて、CPU20は、ステップS3で、端末装置14から送信されてくる各種のデータを取得し、ステップS5で、入力ボタンフラグを更新する。ここでは、CPU20は、端末装置14から受信した端末操作データを参照して、アナログスティック58Aのスティック部のボタン押下状況を取得し、前回第1入力ボタンデータ342が示すボタン押下状況と比較する。そして、CPU20は、アナログスティック58Aのスティック部のボタン押下状況がオフからオンに変化されている場合には、第1入力ボタン変化フラグ346をオンし、それ以外であれば、第1入力ボタン変化フラグ346をオフする。同様に、CPU20は、アナログスティック58Bのスティック部のボタン押下状況および前回第2入力ボタンデータ344が示すボタン押下状況に基づいて、第2入力ボタン変化フラグ348をオンまたはオフする。さらに、CPU20は、第1入力ボタン変化フラグ346および第2入力ボタンフラグ348を更新した後に、今回受信した端末操作データに含まれるアナログスティック58Aのスティック部のボタン押下状況のデータを前回第1入力ボタンデータ342として記憶するとともに、今回受信した端末操作データに含まれるアナログスティック58Bのスティック部のボタン押下状況の操作ボタンデータを前回第2入力ボタンデータ344として記憶する。
【0123】
続いて、ステップS7で、後述する補正処理(
図9および
図10を参照)を実行し、ステップS9で、ゲーム制御処理を実行する。ステップS9では、CPU20は、プレイヤの操作に従って、または、プレイヤの操作に関係無く、プレイヤキャラクタなどのキャラクタを動作させたり、ゲームクリアまたはゲームオーバーを判定したりするなど、ゲームについての様々な処理を実行する。このように、ゲーム制御処理では、ステップS7の補正処理が施された端末操作データが用いられるのである。ただし、補正処理が施されるのは、アナログスティック58Aおよび58Bについてのスティック操作データ(傾倒データおよび操作ボタンデータを含む)である。
【0124】
次のステップS11では、CPU20およびGPU22bは、テレビ16に表示するためのテレビ用ゲーム画像の生成処理を実行する。簡単に説明すると、CPU20およびGPU22bは、ステップS9のゲーム制御処理の結果を表すデータをメインメモリ(22e,26)から読み出し、また、ゲーム画像を生成するために必要なデータをVRAM22dから読み出し、テレビ用ゲーム画像を生成する。
【0125】
次のステップS13において、CPU20およびGPU22bは、端末装置14に表示するための端末用ゲーム画像の生成処理を実行する。簡単に説明すると、端末用ゲーム画像もまた、上記テレビ用ゲーム画像と同様に、ステップS9のゲーム制御処理の結果を表すデータをメインメモリ(22e,26)から読み出し、また、ゲーム画像を生成するために必要なデータをVRAM22dから読み出して生成される。
【0126】
続いて、ステップS15では、CPU20は、テレビ16のスピーカ16aに出力するためのテレビ用ゲーム音声を生成する。すなわち、CPU20は、ステップS9のゲーム制御処理の結果に応じたゲーム音声をDSP22cに生成させる。
【0127】
次に、ステップS17では、CPU20は、端末装置14のスピーカ66に出力するための端末用ゲーム音声を生成する。すなわち、CPU20は、ステップS9のゲーム制御処理の結果に応じたゲーム音声をDSP22cに生成させる。
【0128】
ただし、テレビ用ゲーム音声と端末用ゲーム音声とが同一である場合には、ステップS15またはステップS17の処理は実行されなくてよい。
【0129】
続いて、ステップS19では、CPU20は、テレビ16へデータを出力する。具体的には、CPU20は、VRAM22dに記憶されたテレビ用ゲーム画像の画像データと、ステップS15でDSP22cによって生成されたテレビ用ゲーム音声の音声データとをAV−IC36へ送る。
【0130】
次に、ステップS21で、CPU20は、端末装置14へデータを送信する。具体的には、VRAM22dに記憶された端末用ゲーム画像の画像データ、および、ステップS17でDSP22cによって生成された音声データは、CPU20によってコーデックLSI52に送られ、コーデックLSI52によって所定の圧縮処理が行われる。さらに、圧縮処理が施された画像および音声のデータは、端末通信モジュール32によってアンテナ34を介して端末装置14へ送信される。端末装置14は、ゲーム装置12から送信されてくる画像および音声のデータを無線モジュール70によって受信し、コーデックLSI52によって所定の伸張処理を行う。伸張処理が行われた画像データはLCD62に出力され、伸張処理が行われた音声データはサウンドIC64に出力される。
【0131】
そして、ステップS23では、CPU20は、ゲームを終了するかどうかを判断する。ステップS23の判断は、たとえば、ゲームオーバーになったか否か、あるいは、プレイヤがゲームを中止する指示を行ったか否か等によって行われる。
【0132】
ステップS23で“NO”であれば、つまりゲームを終了しない場合には、ステップS3に戻る。一方、ステップS23で“YES”であれば、つまりゲームを終了する場合には、全体処理を終了する。
【0133】
図9および
図10は、
図8に示したステップS7の補正処理の一例を示すフロー図である。この補正処理は、アナログスティック58Aおよび58Bのそれぞれについて実行される。ここでは、アナログスティック58Aについての補正処理のみを説明し、アナログスティック58Bの補正処理はアナログスティック58Aの場合と同様であるため、アナログスティック58Bの補正処理についての説明は割愛することにする。
【0134】
図9に示すように、CPU20は、補正処理を開始すると、ステップS31で、出力ボタン状態がオンかどうかを判断する。ここでは、CPU20は、第1出力ボタンデータ334のボタン押下状況がオンであるかどうかを判断する。つまり、CPU20は、前フレームにおいて、補正処理を施された後のアナログスティック58Aのスティック部のボタン押下状況がオンであるかどうかを判断しているのである。
【0135】
ステップS31で“NO”であれば、つまり出力ボタン状態がオフであれば、
図10に示すステップS43に進む。一方、ステップS31で“YES”であれば、つまり出力ボタン状態がオンであれば、ステップS33で、入力ボタン状態がオンであるかどうかを判断する。ここでは、CPU20は、ステップS3で取得した端末操作データを参照し、現フレームにけるアナログスティック58Aのスティック部のボタン押下状況がオンであるかどうかを判断する。
【0136】
ステップS33で“NO”であれば、つまり入力ボタン状態がオフであれば、ステップS35で、出力ボタン状態をオフに変更する。つまり、CPU20は、ボタン押下状況がオフである第1出力ボタンデータ334をデータ記憶領域304に記憶する。次のステップS37では、リリースカウンタに所定値を設定する。ここでは、CPU20は、第1カウンタ350に所定値(この実施例では、10)を設定する。そして、CPU20は、ステップS41に進む。
【0137】
一方、ステップS33で“YES”であれば、つまり入力ボタン状態がオンであれば、ステップS39で、出力ボタン状態をオンで継続して、つまり第1出力ボタンデータ334を更新せずに、ステップS41に進む。
【0138】
ステップS41では、出力スティックの値を傾き無しの値に補正して、
図8に示した全体処理にリターンする。たとえば、ステップS41では、CPU20は、傾き方向が無く(null)、傾き量が0を示す第1出力スティックデータ338をデータ記憶領域304に記憶する。
【0139】
上述したように、出力ボタン状態がオフである場合には、ステップS31で“NO”となり、
図10に示すステップS43で、入力ボタン状態がオフからオンに変化したかどうかを判断する。ここでは、CPU20は、第1入力ボタン変化フラグ346がオンであるかどうかを判断する。
【0140】
ステップS43で“NO”であれば、つまり入力ボタン状態がオフからオンに変化していなければ、ステップS49に進む。一方、ステップS43で“YES”であれば、つまり入力ボタン状態がオフからオンに変化すれば、ステップS45で、入力スティックの値が一定量以上であるかどうかを判断する。ただし、この実施例では、一定量は、アナログスティック58のスティック部がホームポジション(傾き無し)である場合の傾き量を「0」とし、任意の方向にスティック部を最大限傾けた場合の傾き量を「10」とした場合の「5」である。
【0141】
ステップS45で“NO”であれば、つまり入力スティックの値が一定量未満であれば、ステップS47で、出力ボタン状態をオンに変更し、
図9に示したステップS41に進む。ただし、CPU20は、ステップS47において、状態情報がオンである第1ボタン出力データ334をデータ記憶領域304に記憶する。
【0142】
一方、ステップS45で“YES”であれば、つまり入力スティックの値が一定量以上であれば、ステップS49で、出力ボタン状態をオフで継続し、ステップS51に進む。つまり、ステップS49では、CPU20は、第1出力ボタンデータ334を更新しない。このように、スティック部が押下されることにより、入力ボタン状態がオフからオン変化されたとしても(S43で“YES”)、出力ボタン状態はオフで継続され、スティック部が押下されたことが無効にされる。
【0143】
ステップS51では、リリースカウタンのカウント値が0かどうかを判断する。つまり、CPU20は、第1カウンタ350のカウント値が0になったかどうかを判断する。ステップS51で“NO”であれば、つまりリリースカウンタのカウント値が0でなければ、ステップS53で、リリースカウンタ(ここでは、第1カウンタ350)のカウント値を1減らして、
図9のステップS41に進む。一方、ステップS51で“YES”であれば、つまりリリースカウンタのカウント値が0であれば、ステップS55で、出力スティックの値を入力スティックの値に設定して、全体処理にリターンする。つまり、CPU20は、ステップS55で、現フレームのアナログスティック58Aについてのスティック操作データを、第1出力スティックデータ338としてデータ記憶領域304に記憶する。このように、スティック部が傾けられても、スティック部の押下されている場合やスティック部が押下された状態から押下されていない状態に変化した後の所定期間においては、傾き量が「0」に補正され、スティック部が傾けられたことが無効にされる。
【0144】
この実施例によれば、ゲーム装置は、スティック部を押下することにより、プッシュボタンとしても機能するアナログスティックを操作する場合に、スティック部が一定量以上傾けられている場合には、スティック部の押下による入力を無効にし、また、スティック部が押下されている場合およびスティック部が押下された状態から押下されていない状態に変化してから所定期間においては、スティック部の傾きによる入力を無効にする。したがって、操作者の意図しない指示に従う処理が実行されるのを防止することができる。
【0145】
なお、この実施例では、端末装置にアナログスティックを2つ設けたが少なくとも1つ設けられていればよく、3つ以上設けられもよい。
【0146】
また、この実施例では、ゲーム装置と端末装置のような入力装置が無線で通信するゲームシステムについて説明したがこれに限定される必要はない。入力装置がゲーム装置にケーブルで接続されてもよいし、入力装置とゲーム装置が一体的に形成されたアーケードゲームや携帯型のゲーム装置であってもよい。
【0147】
さらに、この実施例では、端末装置のような入力装置がLCDやスピーカを備えるため、
図8において、端末用ゲーム画像を生成する(S13)とともに、端末用ゲーム音声を生成して(S17)、入力端末装置へ送信するようにした(S21)がこれらの処理は実行されなくてもよい。ただし、端末用ゲーム画像を生成して(S13)、または、端末用ゲーム音声を生成して(S17)、生成した端末用ゲーム画像または端末用ゲーム音声を入力端末装置へ送信するようにしてもよい(S21)。また、端末装置が、LCDやスピーカを備えていない場合には、これらの処理(S13、S17、S21)は当然実行されない。
【0148】
さらにまた、この実施例では、情報処理装置の一例としてゲーム装置を挙げたが、汎用のPCやワークステーションのようなコンピュータについても適用可能である。かかる場合には、コンピュータの入力装置には、プッシュボタンとしても機能するアナログスティックが設けられる。
【0149】
また、この実施例では、プッシュボタンとしても機能するアナログスティックについて説明したが、これに限定される必要はない。たとえば、プッシュボタンとしも機能するマウスホイールの操作についても同様の補正処理を施すことができる。たとえば、プッシュボタンの操作を受け付けている場合には、マウスホイールの回転操作については無効にされる。一方、マウスホイールの回転操作を受け付けている場合には、プッシュボタンの操作については無効にされる。
【0150】
なお、上述の実施例で示した具体的な数値は単なる一例であり、実際の製品において、適宜設定されるべきある。