(57)【要約】テニスゲームシステムはＡＶケーブルによってテレビジョン受像機に接続されるゲーム機と、そのゲーム機に対して操作入力を与えるラケット型入力装置とを含み、ゲームプレイヤは、そのラケット型入力装置を操作することによって、モニタ画面上において打球側プレイヤがボールを打球することを指示する。このとき、ゲーム機に含まれるゲームプロセサは、相手方プレイヤからの返球予測位置を計算し、そのときの打球側プレイヤの現在位置とその予測返球位置とを比較して、予測返球位置が打球側プレイヤの打球可能範囲かどうか判断し、その判断手段が打球可能範囲外を判断したとき、打球位置移動手段すなわちゲームプロセサが打球位置を移動する。
2003090888.tif 000002
【特許請求の範囲】
【請求項１】
モニタ画面上に表示されるボールを打球側プレイヤと相手方プレイヤとの間で打ち合うテニスゲームシステムであって、
相手方プレイヤから返球される予測返球位置を計算する手段、および
前記予測返球位置に基づいて打球側プレイヤの打球位置を移動する打球位置移動手段を備える、テニスゲームシステム。
【請求項２】
請求項１に従属するテニスゲームシステムであって、
前記打球側プレイヤの現在位置と前記予測返球位置とを比較して、前記予測返球位置は前記打球側プレイヤの打球可能範囲かどうか判断する判断手段をさらに備え、
前記判断手段が打球可能範囲外を判断したとき前記打球位置移動手段によって前記打球位置を移動する。
【請求項３】
請求項１または２に従属するテニスゲームシステムであって、前記打球位置移動手段は前記モニタ画面の左右方向において前記打球位置を移動する。
【請求項４】
請求項３に従属するテニスゲームシステムであって、
打球指示を与える入力装置をさらに備え、前記入力装置からの打球指示に応じて前記モニタ画面上で打球する。
【請求項５】
請求項４に従属するテニスゲームシステムであて、
前記入力装置は操作スイッチを含み、
前記操作スイッチの操作に応答して前記モニタ画面上において前記打球位置を前衛位置または後衛位置に変更する位置変更手段をさらに備える。
【発明の詳細な説明】
技術分野
この発明はテニスゲームシステムに関し、特にたとえば、入力装置を操作することによってモニタ画面上に表示されたボールを打ち合う、テニスゲームシステムに関する。
従来技術
従来のこの種のテニスゲームシステムにおいては、一般的には、ゲームプレイヤが入力装置としてのコントローラに設けられたジョイスティックなどを操作することによって、モニタ画面上のテニスプレイヤの位置を制御し、打球位置を調整する。
したがって、従来のいずれのテニスゲームシステムにおいても、コントローラの操作の適否および巧拙がゲームの勝敗を左右することになり、特に老人や幼児にとっては、難しいゲームであった。
発明の概要
それゆえに、この発明の主たる目的は、比較的簡単にプレイできる、テニスゲーム装置を提供することである。
この発明に従ったテニスゲーム装置は、モニタ画面上に表示されるボールを打球側プレイヤと相手方プレイヤとの間で打ち合うテニスゲームシステムであって、相手方プレイヤから返球される予測返球位置を計算する手段、および予測返球位置に基づいて打球側プレイヤの打球位置を移動する打球位置移動手段を備える、テニスゲームシステムである。
テニスゲームシステムは、実施例でいえば、参照符号１０で示され、ＡＶケーブル（２２：実施例中の該当部分を示す参照符号。以下同様。）によってモニタであるテレビジョン受像機（２０）に接続されるゲーム機（１２）と、そのゲーム機に対して操作入力を与えるラケット型入力装置（３４）とを含み、ゲームプレイヤは、そのラケット型入力装置を操作することによって、モニタ画面上において打球側プレイヤがボールを打球することを指示する。このとき、ゲーム機は、ゲームプロセサ（５２）を含み、このゲームプロセサによって、予測返球位置計算手段（ステップＳ１４１）、および打球位置移動手段（ステップＳ１４５およびＳ１４６）を構成する。
具体的には、ゲームプロセサは、実施例の図１９のステップＳ１４１で相手方プレイヤからの返球予測位置を計算し、そのときの打球側プレイヤの現在位置とその予測返球位置とを比較して、予測返球位置が打球側プレイヤの打球可能範囲かどうか判断し（ステップＳ１４３）、その判断手段が打球可能範囲外を判断したとき、打球位置移動手段すなわちゲームプロセサが打球位置を移動する。
なお、モニタ画面の左右方向をＸ軸とするとき、打球位置移動手段はＸ軸方向において打球位置を移動する。
また、入力装置に操作スイッチ（３８）が設けられているとき、位置変更手段（図２０のステップＳ１５２およびＳ１５８）は、その操作スイッチの操作に応答して打球位置をモニタ画面に対する垂直方向に相当するＺ軸方向に変更し、打球位置を前衛位置または後衛位置とする。
この発明によれば、打球側プレイヤの打球位置が自動的に制御されるので、操作装置がうまく操作できなくても的確に打球位置を移動できるため、老人や幼児にとっても比較的簡単にプレイできる。
この発明の上述の目的，その他の目的，特徴，および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
発明を実施するための最良の形態
図１を参照して、この発明の一実施例である体感テニスゲームシステム１０は、ゲーム機１２を含み、このゲーム機１２には、ＡＣアダプタ１４によって直流電源が与えられる。ただし、それは電池１６に代えられてもよい。ゲーム機１２は、さらに、ＡＶケーブル２２を通して、テレビジョンモニタ２０のＡＶ端子１８に接続される。
ゲーム機１２は、また、ハウジングを含み、このハウジング上に電源スイッチ２４が設けられるとともに、方向ボタン２６ならびに決定キー２８およびキャンセルキー３０が設けられる。方向ボタン２６は、４方向（上下左右）の個別のボタンを有し、たとえばテレビジョンモニタ２０の表示画面上においてメニューやゲームモード選択のためにカーソルを移動させたりするために用いられる。決定キー２８はゲーム機１２への入力を決定するために用いられる。また、キャンセルキー３０は、ゲーム機１２への入力をキャンセルするために用いられる。
ゲーム機１２にはさらに、赤外線受光部３２が設けられていて、この赤外線受光部３２は、後述のラケット型入力装置３４の赤外線ＬＥＤ３６からの赤外線信号を受ける。
この実施例では、２つのラケット型入力装置３４が用いられる。それぞれのラケット型入力装置３４には赤外線ＬＥＤ３６が設けられるとともに、サーブスイッチ３８が設けられる。サーブスイッチ３８は、テニスゲームにおいてサーブを打つときのトスアップのために操作されるものであるが、さらに後述のラリー中においては、打球位置を前衛または後衛に移動させるためのトグルスイッチとしても用いられる。また、上述のように、赤外線ＬＥＤ３６からの赤外線信号がゲーム機１２の赤外線受光部３２によって受光される。後に説明するように、ラケット型入力装置３４には、加速度センサとして利用される圧電ブザー素子が設けられていて、ゲーム機１２はその圧電ブザー素子からの加速度相関信号を受信して、図２または図３に示すゲーム画面上のボール４０に変化を与える。
図２を参照して、体感テニスゲームシステム１０におけるテレビジョンモニタ２０で表示されるゲーム画面には、ボール４０および選手キャラクタ４２がスプライト画像として、そしてネットキャラクタ４４およびコートキャラクタ４６が、テキストスクリーンとして表示される。また、現在プレイ中のテニスゲームのスコアを表示するスコア表示部４７が形成される。なお、図３に示すように、対戦型ゲームのときには、テレビジョンモニタ２０の表示画面は上下２つの画面に仕切られ、上側に一方のゲームプレイヤからみた画像が、下側に他方のゲームプレイヤからみた画像が、それぞれ表示される。そして、上下いずれにも、ボール４０，選手キャラクタ４２，ネットキャラクタ４４およびコートキャラクタ４６が表示される。
この体感テニスゲームシステム１０では、ゲーム画面上に表示されたボール４０の移動タイミングに合わせてラケット型入力装置３４をゲームプレイヤが実空間中で実際に振ったとき、ゲームプロセサ５２（図４）が、圧電ブザー素子からの加速度相関信号を、赤外線ＬＥＤ３６から赤外線受光部３２へ伝達される赤外線信号によって検出し、たとえばラケット型入力装置３４が所定の移動速度に達したタイミングとボール４０の画面上での位置とに従って、あたかもボール４０がラケットにはじき返されたように、ボール４０をコート４６の相手側方向に向かって移動させる。ボール４０が移動した位置に応じて、アウトかインか等を識別する。ただし、ラケット型入力装置３４を振ったタイミングとボール４０の画面上での位置とにずれがある場合には、たとえば空振り（後逸）として認識する。
図４を参照して、ラケット型入力装置３４は、上述のように、赤外線ＬＥＤ３６およびサーブスイッチ（キースイッチ）３８を含み、さらに加速度センサ回路４８を内蔵している。加速度センサ回路４８は、後述の図５に示すように圧電ブザー素子６６とその関連回路を含み、この加速度センサ回路４８からの加速度相関信号がＭＣＵ５０に与えられる。ＭＣＵ５０は、たとえば８ビットの１チップマイコンであり、圧電ブザー素子からの加速度相関信号をディジタル信号に変換して赤外線ＬＥＤ３６に与える。
２つのラケット型入力装置３４のそれぞれの赤外線ＬＥＤ３６からのディジタル変調された赤外線信号は、ゲーム機１２の赤外線受光部３２によって受光されかつディジタル復調されてゲームプロセサ５２に入力される。このディジタル信号の１ビットがスイッチ３８のオンまたはオフに応じて「１」または「０」として伝送され、したがって、ゲームプロセサ５２は、そのビットをチェックすることによって、どちらのゲームプレイヤからサーブが打ち込まれたか判別することができる。
ゲームプロセサ５２としては、任意の種類のプロセサを利用できるが、この実施例では、本件出願人が開発しかつ既に特許出願している高速プロセサを用いる。この高速プロセサは、たとえば特開平１０−３０７７９０号公報［Ｇ０６Ｆ１３／３６，１５／７８］およびこれに対応するアメリカ特許第６，０７０，２０５号に詳細に開示されている。
ゲームプロセサ５２は、図示しないが、演算プロセサ，グラフィックプロセサ，サウンドプロセサおよびＤＭＡプロセサ等の各種プロセサを含むとともに、アナログ信号を取り込むときに用いられるＡ／Ｄコンバータやキー操作信号や赤外線信号のような入力信号を受けかつ出力信号を外部機器に与える入出力制御回路を含む。したがって、赤外線受光部３２からの復調信号および操作キー２６−３０からの入力信号がこの入出力制御回路を経て、演算プロセサに与えられる。演算プロセサは、その入力信号に応じて必要な演算を実行し、その結果をグラフィックプロセサ等に与える。したがって、グラフィックプロセサやサウンドプロセサはその演算結果に応じた画像処理や音声処理を実行する。
プロセサ５２には、内部メモリ５４が設けられ、この内部メモリ５４は、ＲＯＭまたはＲＡＭ（ＳＲＡＭおよび／またはＤＲＡＭ）を含む。ＲＡＭは一時メモリ，ワーキングメモリあるいはカウンタまたはレジスタ領域（テンポラリデータ領域）およびフラグ領域として利用される。なお、プロセサ５２には外部メモリ５６（ＲＯＭおよび／またはＲＡＭ）が外部バスを通して接続される。この外部メモリ５６にゲームプログラムが予め設定される。
プロセサ５２は、赤外線受光部３２や操作キー２６−３０からの入力信号に従って上記各プロセサで演算、グラフィック処理、サウンド処理等を実行し、ビデオ信号およびオーディオ信号を出力する。ビデオ信号は前述の図２または図３に示すテキストスクリーンとスプライト画像とを合成したものであり、これらビデオ信号およびオーディオ信号は、ＡＶケーブル２２およびＡＶ端子１８を通して、テレビジョンモニタ２０に与えられる。したがって、テレビジョンモニタ２０の画面上に、たとえば図２または図３に示すようなゲーム画像が、必要なサウンド（効果音、ゲーム音楽）の再生とともに、表示される。
この体感テニスゲームシステム１０では、簡単にいうと、ゲーム機１２すなわちゲームプロセサ５２は、２つのラケット型入力装置３４からの赤外線信号に含まれる加速度データを受け、ラケット型入力装置３４の移動加速度がピークに達したとき、ボール４０（図２）の移動パラメータを決定し、そのパラメータに従って、ゲーム画面上で、ボール４０を移動させる。
ラケット型入力装置３４は、図５に示すように、グリップ部分５８とそのグリップの先端から延びる打球部分ないしラケット面部分６０とを含み、これらグリップ部分５８およびラケット面部分６０は、たとえば２つ割りのプラスチックハウジングによって一体的に形成される。
ラケット型入力装置３４のプラスチックハウジングのラケット面部分６０の内部には、２つ割りハウジングを互いに接合するためのボスが形成され、さらに、加速度センサ回路４８（図４）を構成する圧電ブザー素子６６が固着される。圧電ブザー素子６６は、よく知られているように、金属板６８上に貼付されたセラミック板７０を含み、金属板６８とセラミック板７０上の電極との間に電圧を印加するとブザー音を発生するというものである。この実施例では、このような構成の圧電ブザー素子６６を加速度センサとして利用するものである。つまり、セラミック板７０は、圧電セラミックであり、その圧電セラミックに応力が作用したとき、圧電セラミックから電気信号が発生することがよく知られている。そこで、この実施例では、金属板６８と上記電極との間で、圧電ブザー素子６６すなわちラケット型入力装置３４の移動に応じてセラミック板７０で発生する電気信号を取り出す。ただし、この実施例では、後述のように、電気信号に従って所定のディジタル信号処理をすることによって、ＭＣＵ５０に、加速度相関ディジタル信号またはデータを取り込むようにしている。
ハウジング内にはさらにボスによってプリント基板７２が取り付けられる。プリント基板７２上には、サーブスイッチ３８が装着されるとともに、図４に示すＭＣＵ５０が装着され、さらには赤外線ＬＥＤ３６が取り付けられる。
図６を参照して、先に説明した圧電ブザー素子６６は、加速度センサ回路４８に含まれる。また、ＭＣＵ５０には、外付けの発振回路８０が設けられ、ＭＣＵ５０は、この発振回路８０からのクロック信号に応答して動作する。
そして、ＭＣＵ５０は、矩形波信号を出力ポート０から出力し、たとえば１０ｋΩの抵抗８２を通して、圧電ブザー素子６６の一方電極６６ａに印加する。圧電ブザー素子６６の電極６６ａは、たとえば０．１μＦのようなコンデンサ８４を介して接地される。電極６６ａにはまたダイオード回路８６が接続されていて、それによって電圧の変動幅が一定以内になるようにされている。
圧電ブザー素子６６の他方の電極６６ｂは、ＭＣＵ５０の入力ポート０に接続されるとともに、ダイオード回路８８に接続され、それによって電圧の変動幅が一定以内になるようにされている。なお、圧電ブザー素子６６の２つの電極６６ａおよび６６ｂは、たとえば１ＭΩのような比較的高抵抗９０で電気的に分離されている。
図７（Ａ）に示す矩形波信号が圧電ブザー素子６６の電極６６ａに印加されると、ＭＣＵ５０の入力ポート０には、コンデンサ８４の充放電に伴って、図７（Ｂ）のような三角波信号が入力される。ただし、矩形波信号の大きさ（波高値）および三角波信号の大きさ（波高値）は、ダイオード回路８６および８８によってそれぞれ決まる。
ラケット型入力装置３４（図４）が静止しているとき、すなわち、変位されていないとき、図７（Ｂ）の左端に示すように、三角波信号のマイナス（負）側レベルは変化しない。しかしながら、ラケット型入力装置３４が操作者によって三次元空間内で変位されると、その変位に伴なう圧電効果によって、圧電ブザー素子６６に電圧が生じる。この加速度相関電圧は、三角波信号のマイナス側レベルをバイアスする。したがって、ラケット型入力装置３４が変位されると、その変位加速度の大きさに応じたレベルの加速度相関電圧が圧電ブザー素子６６に生じ、したがって、ＭＣＵ５０の入力ポート０に入力される三角波信号のマイナス側レベルが図７（Ｂ）に示すように、加速度相関電圧９２のレベルに応じて変動する。
ＭＣＵ５０は、後述のように、このような三角波信号のマイナス側レベル変動を加速度データに変換し、その加速度データに応じてＬＥＤ３６を駆動する。
ここで、図８および図９を参照して、図１実施例の体感テニスゲームシステム１０の概略動作を説明する。図１に示す電源スイッチ２４をオンしてゲームスタートとなるが、図４に示すゲームプロセサ５２は、まず、ステップＳ１で初期化処理を実行する。具体的には、システムおよび各変数を初期化する。
その後、ゲームプロセサ５２は、ステップＳ２で画像信号を更新してモニタ２０に表示される画像を更新する。ただし、この表示画像更新は、１フレーム（テレビジョンフレームまたはビデオフレーム）毎に実行される。
そして、ゲームプロセサ５２は、ステート（状態）に応じた処理を実行する。ただし、最初に処理するのは、ゲームモードの選択である。このゲームモード選択では、操作者ないしゲームプレイヤは、図７のステップＳ３で、図１に示す選択キー２６を操作して、１人プレイモードまたは２人プレイモードあるいはシングルスモードまたはダブルスモードを選択するとともに、ゲームの難易度等を設定する。
実際のテニスゲームは、サーブからラリーへ移行するが、サービスのためには、ボール４０（図２，図３）をゲーム画面内でトスする必要がある。そこで、ゲームプロセサ５２は、ステップＳ４でトス前の処理を実行し、ついでステップＳ５で、トス中処理を実行する。つまり、トス前処理でサーブスイッチ３８が押されれば、トス中処理に移行し、トス中処理においてラケット型入力装置３４のスイングが行われなかった場合には、トス前処理に戻る。そして、トス中処理中にラケット型入力装置３４のスイングが行われた場合には、その後、ステップＳ６でのラリー中処理に移行する。そして、ラリー中処理においてポイントが確定すると、次のステップＳ７でのポイント処理に移る。また、ポイント処理において、そのポイントがゲーム終了条件を満たしたか満たさなかったかによって、ゲームモード選択（Ｓ３）あるいはトス前処理（Ｓ４）に戻ることになる。
なお、図８に示すように、ステップＳ５でのトス処理の後、およびステップＳ６でのラリー処理の後、ステップＳ８で、ラケット型入力装置３４からの加速度データに従ってボール４０（図２，図３）をゲーム画面内で変位させるために、ボール４０の座標演算処理を実行する。
その後、ビデオ同期信号による割り込みがあれば、ステップＳ２（図８）の画像更新を実行する。また、ステップＳ９の音声処理は、音声割り込みが発生したとき実行され、それによってゲーム音楽や打球音のような効果音を出力する。その音声処理以外の割り込みが発生したとき、図８のステップＳ１０で、ゲームプロセサ５２は、赤外線受光部３２から入力される赤外線信号（コード）を受信する。
図１０を参照して、この図１０はＭＣＵ５０の全体動作を示し、この最初のステップＳ１１では、ＭＣＵ５０は、後に説明する検出オフセット値，オフセットカウンタ等のＭＣＵ５０が取り扱う変数を初期化するとともに、入力ポートおよび出力ポート（図６）を初期化する。
その後、ステップＳ１２の加速度検出処理（後に詳述）を経て、ステップＳ１３で、ＭＣＵ５０は、ラケット型入力装置３４が第１プレイヤのものかどうか判断する。ＭＣＵ５０の特定の入力ポートが「１」に設定されていれば第１プレイヤであり、「０」なら第２プレイヤであるので、このステップＳ１３ではＭＣＵ５０のその特定の入力ポートをみればよい。そして、ステップＳ１３で“ＹＥＳ”の場合、すなわち、第１プレイヤの場合ステップＳ１４で、“ＮＯ”の場合、すなわち、第２プレイヤの場合ステップＳ１５で、それぞれ、送信ステートであるかどうか判断する。
ＭＣＵ５０は、図示しないが、ステートカウンタをソフトウェアカウンタとして有していて、このステートカウンタが一定値になる毎に、送信ステートとなる。したがって、ステップＳ１４およびＳ１５では、このステートカウンタが一定値になったかどうかを検出することになる。ステップＳ１４またはＳ１５で“ＮＯ”の場合には、ステップＳ１６で送信コードを「０」とし、またはステップＳ１４またはＳ１５で“ＹＥＳ”の場合にはそのまま、ステップＳ１７のコード送信処理（後に詳述）に進む。ステップＳ１７でコード送信処理を実行した後に、ステップＳ１８でステートカウンタ（図示せず）をインクリメント（＋１）してステップＳ１２に戻る。なお、後述のように、コード送信処理は、ビットシリアルに行われるが、その必要時間は、数マイクロ秒程度と極めて短時間である。
図１１が図１０のステップＳ１２を詳細に示すフロー図であり、この加速度検出処理の最初のステップＳ２１では、ＭＣＵ５０は、レジスタ（図示せず）に設定されている検出オフセット値をオフカウンタ（図示せず）にコピーする。「検出オフセット値」は、図７（Ａ）に示す矩形波判断のハイレベルおよびローレベルを、圧電ブザー素子６６に電圧が発生していないときに、時間的に等分に入力するための値であり、動作スタート時にはこの検出オフセット値は任意のデフォルト値に設定されている。
ステップＳ２１に続くステップＳ２２では、ＭＣＵ５０は、その出力ポート０に「１」を設定する。つまり、「１」すなわちハイレベルを出力する。ついでステップＳ２３で、ＭＣＵ５０は、入力ポート０からデータを読込む。
ステップＳ２４では、ステップＳ２３で読込んだ入力ポート０のデータが「１」かどうか判断する。もし、“ＹＥＳ”なら、次のステップＳ２５で、ＭＣＵ５０は、積算カウンタ（図示せず）をインクリメント（＋１）する。「積算カウンタ」とは、ハイレベルを読み取った期間を算出するためのカウンタであり、当該入力ポートが「１」またはハイレベルのときにインクリメントされ、「０」のときにはなにもされない。
ステップＳ２５で積算カウンタをインクリメントした場合、またはステップＳ２４で“ＮＯ”を判断した場合には、続くステップＳ２６で、ＭＣＵ５０は、オフセットカウンタをインクリメントし、次のステップＳ２７でそのオフセットカウンタのカウント値が規定値に達したかどうか判断する。つまり、ステップＳ２２で出力ポート０に「１」をセットした後、このステップＳ２７で“ＮＯ”が判断される限り、ＭＣＵ５０は、出力ポート０の「１」を継続して出力する。
そして、このオフセットカウンタのカウント値が規定値に達したとステップＳ２７で判断した場合には、次のステップＳ２８で、ＭＣＵ５０は、その出力ポート０に「０」すなわちローレベルをセットする。次のステップＳ２９では、ＭＣＵ５０は、レジスタに設定されている検出オフセット値をオフカウンタにコピーする。
続くステップＳ３０では、ＭＣＵ５０は、入力ポート０からデータを読込む。ステップＳ３１では、ステップＳ３０で読込んだ入力ポート０のデータが「１」かどうか判断する。もし、“ＹＥＳ”なら、次のステップＳ３２で、ＭＣＵ５０は、積算カウンタをインクリメント（＋１）する。
ステップＳ３２で積算カウンタをインクリメントした場合、またはステップＳ３１で“ＮＯ”を判断した場合には、続くステップＳ３３で、ＭＣＵ５０は、オフセットカウンタをディクリメント（−１）し、次のステップＳ３４でそのオフセットカウンタのカウント値がゼロに達したかどうか判断する。つまり、ステップＳ２８で出力ポート０に「０」をセットした後、このステップＳ３４で“ＮＯ”が判断される限り、ＭＣＵ５０は、出力ポート０の「０」を継続して出力する。
そして、ステップＳ３４で“ＹＥＳ”が判断されたとき、すなわち、オフセットカウンタがゼロ（０）になったとき、続くステップＳ３５において、ＭＣＵ５０は、積算カウンタのカウント値から中間値を引いて、差分を求める。ここで、「中間値」とは、ステップＳ２７からステップＳ２３に戻るハイレベル検出のための繰り返し数およびステップＳ３４からステップＳ３０に戻るローレベル検出のための繰り返し数の合計回数を「Ｎ」とした場合の「Ｎ／２」である。このステップＳ３５で中間値を使って差分値を求めるのは、理想的な圧電ブザー素子でかつどんな加速度相関電圧も圧電ブザー素子に発生していない状態でのハイレベルとローレベルとの期間の比（デューティ５０％）を加速度決定の基準とするためである。
詳しく述べると、積算カウンタは、上述のように、「１」またはハイレベルを入力ポート０に読込んだ回数であり、理想的な圧電ブザー素子でありかつ電圧が発生していない場合、ステップＳ３５での「積算カウンター中間値」の差分はゼロになるはずである。しかるに、圧電ブザー素子６６に何らかの電圧が発生している場合には、その差分として有意な数値が得られる。そこで、ステップＳ３６で、この差分値に従ってラケット型入力装置３４の変位加速度を決定する。基本的には、差分値データに所定の係数を掛けたものが加速度データとなる。
その後、ステップＳ３７で、ステップＳ３５で求めた差分値に基づいて、検出オフセット値を補正する。つまり、初期状態ではゲームプレイヤないし操作者はラケット型入力装置３４をスイングしていないので、圧電ブザー素子６６には加速度相関電圧は発生していない。それにも拘わらずステップＳ３５でゼロではない差分値が検出されたということは、ステップＳ２１で設定していた検出オフセット値が、そのラケット型入力装置に用いた圧電ブザー素子の特性からみて、正しくなかったことを意味している。つまり、圧電ブザー素子が理想的な圧電ブザー素子ではないことを意味している。そこで、このような場合、圧電ブザー素子の個々の特性の理想的な圧電ブザー素子の特性からのずれを補正するために、ステップＳ３７で差分値に従って検出オフセット値を補正するようにしている。
他方、ステップＳ３７で必ず検出オフセット値を変更または補正するようにすれば、圧電ブザー素子が実際に加速度相関電圧を発生した結果の差分値であっても検出オフセット値を補正することになる。しかしながら、圧電ブザー素子の電圧発生期間は他の期間に比べて非常に短い。そのために、ステップＳ３７を差分値検出の都度実行しても特に問題はない。すなわち、実際のテニスゲームの開始時には適正な補正が行われているので、その後、ステップＳ３７を加速度検出の都度実行しても検出オフセット値に大きな変動を生じることがなく、したがって、実際のテニスゲームに何の支障もない。
次のステップＳ３８では、ＭＣＵ５０は、入力ポート１からキースイッチすなわちサーブスイッチ３８からの値「１」か「０」を読み込み、続くステップＳ３９では、ＭＣＵ５０は、そのキースイッチ３８からの値と先のステップＳ３６で決定したラケット型入力装置３４の変位加速度または移動加速度に基づいて、さらにパリティビットを付加して、送信コードを算出し、メインルーチンのステップＳ１３（図１０）にリターンする。
ここで、図１２を参照して、ステップＳ１７（図１０）でのラケット型入力装置３４からゲームプロセサ５２へのコード送信について説明する。最初のステップＳ４１では、ＭＣＵ５０は、ステップＳ１２またはＳ１６で作成した送信コードをテンポラリデータレジスタ（図示せず）にコピーする。そして、その最上位ビットが「１」かどうか判断する。最上位ビットが「１」であれば、ステップＳ４２で“ＹＥＳ”が判断され、続くステップＳ４３では、ＭＣＵ５０は、出力ポート１に「１」をセットしてＬＥＤ３６（図４）をオンする。その後、ステップＳ４４で一定の待機時間の経過を待つ。ただし、ステップＳ４２で“ＮＯ”なら、つまり最上位ビットが「０」であればそのまま、ステップＳ４４に進む。
ステップＳ４４で規定待機時間経過した後、ステップＳ４５で、ＭＣＵ５０は、出力ポート１に「０」をセットし、ＬＥＤ３６をオフする。その後、ステップＳ４６で一定の待機時間の経過を待つ。
ステップＳ４６で規定待機時間経過した後、ステップＳ４７で、ＭＣＵ５０は、１ビット左シフトし、送信済みビットを最下位ビットとする。つまり、ビットシリアル送信のために、送信ビットを入れ替える。そして、ステップＳ４８で、全ビットの送信が完了したかどうか判断する。“ＮＯ”ならステップＳ４２に戻り、“ＹＥＳ”なら終了して、図１０に示すステップＳ１８に進む。
ここで、図１３を参照して、図８のステップＳ１０で示すゲームプロセサ５２によるコード受信処理について説明する。このコード受信処理は、タイマ割り込みによって処理するため、最初のステップＳ５１では、ゲームプロセサ５２は、タイマ割り込みがあるかどうか判断する。“ＮＯ”ならステップＳ５２でタイマ割り込みを設定して、“ＹＥＳ”ならそのまま、ステップＳ５３に進む。
ステップＳ５３では、ゲームプロセサ５２は、メモリ５４（図４）内にコード受信用のテンポラリデータ領域を確保する。そして、次のステップＳ５４で、赤外線受光部３２からの出力信号が入力される入力ポートのデータを読込む。次のステップＳ５５では、ゲームプロセサ５２は、テンポラリデータを右シフトし、ステップＳ５４で読込んだデータをそのテンポラリデータの最上位ビットとする。
その後、ステップＳ５６で全ビットの受信を完了したかどうか判断し、“ＮＯ”ならステップＳ５７で次のタイマ割り込みを待機する。“ＹＥＳ”なら、ステップＳ５８でタイマ割り込みを解除して、ステップＳ５９で、テンポラリデータを受信コードとしてコピーする。ゲームプロセサ５２は、この受信コードを用いて図８のゲーム処理を実行する。
先の図８に示すように、ステップＳ３でゲームモードを選択した後、ゲームプロセサ５２は、次のステップＳ６で、「トス前」処理を実行する。このトス前処理は、具体的には、図１４に示すフロー図に従って実行される。
トス前処理の最初のステップＳ６１では、ゲームプロセサ５２は、ゲーム開始時には乱数を用い、以降は実際のテニスのルールに従い、サーバがＣＰＵプレイヤ（ゲームプレイヤではない）かどうか判断する。
このステップＳ６１で“ＮＯ”が判断されると、そのラケット型入力装置を使っているゲームプレイヤがサーブをしなければならないことを意味し、したがって、ゲームプロセサ５２は、ステップＳ６２において入力装置３４からの受信データをチェックする。具体的には、メモリ５４中に一時的にストアした受信データをチェックする。そして、その受信データに基づいて、サーブスイッチ３８が押されたかどうか判断する。ステップＳ６３で“ＮＯ”が判断されると、ステップＳ６４において、ゲームプロセサ５２は、たとえば「ボタンをおしてトスアップ！」のようなメッセージを表示して、ゲームプレイヤにトスアップすなわち、サーブスイッチ３８の操作をするように促す。
なお、ステップＳ６１において“ＹＥＳ”が判断されると、次のステップＳ６５およびステップＳ６６において、ゲームプロセサ５２は、ＣＰＵプレイヤによってトスアップが行われたかどうか判断する。もし、トスアップが行われたのであれば、先のステップＳ６３で“ＹＥＳ”が判断されたと同様に、ゲームプロセサ５２は、次のステップＳ６７で、「トス中」処理で実行されるボール４０（図２，図３）の投げ上げ（トス）のために、ボールの各軸速度Ｖｘ，Ｖｙ，Ｖｚを決定する。その後、ステップＳ６８でステートを「トス中」に移行させる。
「トス中」処理は、具体的には、図１５で示すフロー図に従って実行される。すなわち、最初のステップＳ７１では、ゲームプロセサ５２は、トスされたボールの各軸座標Ｐｘ，Ｐｙ，Ｐｚを更新するとともに、ステップＳ７２において、その更新済座標に基づいて、ボールの位置がサービス（サーブ）可能な範囲に達したかどうか判断する。たとえば、Ｙ軸位置すなわちボール高さが一定値以内になればサーブできないので、ボールがそのような予め設定しているサーブ可能範囲内に到達したかどうか判断する。
ステップＳ７２で“ＹＥＳ”が判断されると、次のステップＳ７３において、ゲームプロセサ５２は、ボール位置がサーブ可能範囲をオーバーしたかどうか判断する。そして、ステップＳ７３で“ＹＥＳ”と判断した場合、つまりボールがサーブ可能範囲外にあれば、次のステップＳ７４で、ゲームプロセサ５２は、トスしたボールの各軸座標をトス前の状態に戻すとともに、ステートを再び「トス前」に移行させる。
ステップＳ７３で“ＮＯ”が判断されると、つまりボールがサーブ可能範囲内にあれば、ゲームプロセサ５２は、ステップＳ７５で、サーバはＣＰＵプレイヤかどうか判断する。ステップＳ７５でサーバがゲームプレイヤである（“ＮＯ”）と判断した場合には、ゲームプロセサ５２は次のステップＳ７６で、ゲームプレイヤが操作しているラケット型入力装置３４からの受信データをチェックする。また、このステップＳ７５で“ＹＥＳ”を判断した場合には、ステップＳ７７において、ゲームプロセサ５２はスイングの有無（ゲームプレイヤがラケット型入力装置３４をスイングする動作に相当する処理の有無）を予め定められたＣＰＵプレイヤの行動アルゴリズムに従って判断する。そして、ステップＳ７８でスイング（またはそれに相当する動作）があったかどうか判断する。
スイングの判断が“ＹＥＳ”であるときには、次のステップＳ７９で、ゲームプロセサ５２は、ボール座標とスイングの大きさからサーブ後のボールの初速を計算する。サーバがゲームプレイヤであるときには、ゲームプレイヤが操作したラケット型入力装置から送られてくるコードから、当該入力装置のラケット面に垂直な方向の変位加速度を検出することによって、スイングの大きさを検出し、それに基づいてボールの初期速度が計算される。このことによって、サーブ動作が終了し、したがって、ゲームプロセサ５２は、ステップＳ８０でサーバ側プレイヤを次の打球側プレイヤとして設定するとともに、ステップＳ８１において、ステートを「ラリー中」に移行させる。
「ラリー中」処理は、具体的には、図１６で示すフロー図に従って実行される。すなわち、最初のステップＳ９１でボール座標制御処理を実行し、次のステップＳ９２においてステートが「ラリー中」かどうか判断し、“ＮＯ”であればそのままリターンするが、“ＹＥＳ”であれば、ステップＳ９３およびＳ９４において、それぞれ、プレイヤ１およびプレイヤ２の座標の制御処理を実行する。
ステップＳ９１でのボール座標制御処理ステップは、具体的には、図１７および図１８に示すフロー図に従って実行される。
図１７の最初のステップＳ１０１では、ゲームプロセサ５２は、サーブで打ち込まれたボールの各軸座標Ｐｘ，Ｐｙ，Ｐｚおよび速度ベクトルを更新し、次のステップＳ１０２において、ボールの位置（座標）は、プレイヤ１のレシーブ範囲内かどうか判断する。このステップＳ１０２において“ＹＥＳ”を判断すると、ゲームプロセサ５２は、続くステップＳ１０３において、プレイヤ１用のラケット型入力装置からの受信データをチェックし、その受信データに基づいて、ラケット型入力装置がスイングされたかどうか判断する。“ＮＯ”であれば、ステップＳ９２（図１６）にそのままリターンするが、“ＹＥＳ”なら、次のステップＳ１０５において、そのときのボール座標とスイングの大きさ（すなわちラケット型入力装置をスイングしたときの加速度）とに基づいて、レシーブ後のボールの初期速度ベクトルを計算する。その後、ステップＳ１０６において、プレイヤ１を打球側プレイヤとして設定し、ステップＳ９２にリターンする。
ステップＳ１０２において、“ＮＯ”なら、ステップＳ１０７において、ボールの位置はプレイヤ２のレシーブ範囲内かどうか判断する。ステップＳ１０７で“ＹＥＳ”を判断したとき、ステップＳ１０８において、ゲームプロセサ５２は、プレイヤ２はＣＰＵかどうか判断する。“ＮＯ”ならステップＳ１０９でプレイヤ２用のラケット型入力装置からの受信データをチェックし、“ＹＥＳ”なら，ステップＳ１１０において、スイング（に相当する信号）の有無を判定する。そして、ステップＳ１１１において、スイングがあったかどうか判断する。このステップＳ１１１において“ＮＯ”が判断されると、プロセスはそのままリターンする。しかしながら、“ＹＥＳ”なら、次のステップＳ１１２において、そのときのボール座標とスイングの大きさ（すなわちラケット型入力装置をスイングしたときの加速度）とに基づいて、レシーブ後のボールの初期速度ベクトルを計算する。そして、ステップＳ１１３において、プレイヤ２を打球側プレイヤとして設定し、ステップＳ９２にリターンする。
ステップＳ１０７で“ＮＯ”が判断されると、つまりボールがレシーブ可能範囲外であれば、次のステップＳ１１４で、ゲームプロセサ５２は、ボールがレシーブ可能範囲をオーバーしたかどうか判断する。上述のようにレシーブ可能範囲として予め一定の各軸Ｘ，Ｙ，Ｚの範囲を設定していて、この範囲内でレシーバ側のプレイヤがボールを打ち返せるものとしている。したがって、ステップＳ１０２，Ｓ１０７およびＳ１１４では、ゲームプロセサ５２は、ボールがそのようなレシーブ可能範囲内にあるかどうか判断していることになる。
ステップＳ１１４で“ＹＥＳ”を判断したとき、すなわち、ボールがレシーブ可能範囲をオーバーしている場合には、ステップＳ１１５で結果レジスタ（メモリ５４内に設定している）に「後逸」を設定し、次のステップＳ１１６でステートを「ポイント処理」に移行させる。
ステップＳ１１４で“ＮＯ”が判断されると、つまりボールがレシーブ可能範囲内にあれば、図１８に示す最初のステップＳ１１７で、ゲームプロセサ５２は、ボール座標のＺ座標がネット位置に到達したかどうか判断する。このステップＳ１１７で“ＹＥＳ”が判断されると、ステップＳ１１８において、ゲームプロセサ５２は、ボール座標のＸＹ座標は「レット（Ｌｅｔ）」の判定範囲内かどうか判断する。“ＮＯ”の場合、ステップＳ１１９において，ゲームプロセサ５２は、ボール座標のＸＹ座標は「ネット（Ｎｅｔ）」の判定範囲内かどうか判断する。“ＮＯ”ならそのままリターンするが、“ＹＥＳ”なら、ステップＳ１２０で、打球がサーブかどうか判断する。そして、ステップＳ１２０で“ＹＥＳ”の場合には、ステップＳ１２１において結果レジスタに「フォールト（Ｆａｕｌｔ）」を設定するが、“ＮＯ”の場合には、結果レジスタに「ネット」を設定し、それぞれ次のステップＳ１２３において、ステートを「ポイント処理」に移行させてリターンする。
ステップＳ１１８で“ＹＥＳ”が判断されると、レット判定位置に到達したと判断されると、ステップＳ１２４で、打球がサーブかどうか判断する。そして、ステップＳ１２４で“ＹＥＳ”の場合には、ステップＳ１２１において結果レジスタに「レット」を設定し、ステップＳ１２６でステートを「ポイント処理」に移行させてリターンする。“ＮＯ”の場合には、ボールの速度ベクトルからネット接触後のボールの初期速度ベクトルを計算し、リターンする。
ステップＳ１１７で“ＮＯ”が判断されると、つまりボールのＺ座標がネット位置に到達していない場合には、次のステップＳ１２８において、ゲームプロセサ５２は、ボール座標のＹ座標がコート面に到達したかどうか（すなわち、モニタ画面上において、ボール４０がコート４６に落下したかどうか）を判断する。このステップＳ１２８で“ＹＥＳ”が判断されると、ステップＳ１２９において、ゲームプロセサ５２は、ボール座標のＸＺ座標はコート内かどうか判断する。
“ＮＯ”の場合、ステップＳ１３１において，結果レジスタに「アウト（Ｏｕｔ）」を設定し、次のステップＳ１３２において、ステートを「ポイント処理」に移行させてリターンする。ステップＳ１２９で“ＹＥＳ”の場合、ボールの速度ベクトルからバウンド後のボールの初期速度ベクトルを計算し、リターンする。
図１７および図１８に示すボール座標制御処理が終了すると、ステップＳ９２において、ステートが「ラリー中」かどうか判断され、“ＹＥＳ”なら、図１９および図２０に示すプレイヤ座標制御処理に進む。ただし、その処理はプレイヤ１についても、プレイヤ２についても同様であるので、以下では、両方に適用されるものとして説明する。なお、このプレイヤ位置制御処理も、先の処理と同様に、１ビデオフレーム毎に実行されるものである。
最初のステップＳ１４１において、ゲームプロセサ５２は、ボールの速度ベクトルから、予測返球位置（これは次の打球側プレイヤのコートに帰ってくるボールを返球する予測位置）を計算する。そして、ステップＳ１４２において、ステップＳ１４１で計算した予測返球位置と、プレイヤの現在の位置（Ｘ座標）とを比較し、ステップＳ１４３において、ボールの予測返球位置は打球側プレイヤの打球可能範囲内かどうか判断する。“ＹＥＳ”が判断されるということは、打球側プレイヤによる打球位置を移動または変更することなく、打球側プレイヤがボールを打つことができることを意味し、その場合には、そのまま次のステップＳ１４７（図２０）へ進む。
予測返球位置が打球側プレイヤの打球可能範囲内ではない場合、この実施例の特徴である、打球位置自動制御を実行する。つまり、ステップＳ１４４において、ゲームプロセサ５２は、打球側プレイヤの現在のＸ座標が予測返球位置のＸ座標より大きいかどうか、判断する。このステップＳ１４４において“ＹＥＳ”が判断されるということは、打球側プレイヤ予測返球位置よりモニタ画面上で右側にいるため打球位置を左に動かす必要があることを意味する。したがって、この場合には、ステップＳ１４５において、打球位置のＸ座標を現在の値から一定値減算する。逆に、ステップＳ１４４で“ＮＯ”が判断されるということは、打球側プレイヤ予測返球位置よりモニタ画面上で左側にいるため打球位置を右に動かす必要があることを意味する。したがって、この場合には、ステップＳ１４６において、打球位置のＸ座標を現在の値に一定値加算する。このように、このステップＳ１４５またはＳ１４６が実行されて、予測返球位置に対して打球側プレイヤの打球位置を自動的に移動することができる。その後、ステップＳ１４７に進む
なお、ステップＳ１４５またはＳ１４６での「一定値」の大きさは、プレイヤの移動速度つまり脚の早さに関係するので、この一定値を各プレイヤ毎に異ならせることによって、各プレイヤの特性（脚の早さ）を設定するようにすればよい。
また、上の説明では、Ｘ座標のみを自動的に制御するものとして説明した。しかしながら、この実施例の考え方は、必要に応じて、他の座標たとえばＺ座標にも容易に適用できることはいうまでもない。
図２０のステップＳ１４７では、ゲームプロセサ５２は、メモリ５４内に設定している「前衛後衛ステート」をチェックし、ステップＳ１４８でステートを判定する。前衛後衛ステートが「前衛」の場合、ステップＳ１４９に進み、当該プレイヤはＣＰＵかどうか判断する。“ＮＯ”の場合には、当該プレイヤはゲームプレイヤであるので、次のステップＳ１５０で，ゲームプロセサ５２は、サーブスイッチ３８の状態をチェックし、ステップＳ１５１で、サーブスイッチ３８が押されたかどうか判断する。つまり、このステップＳ１５１では、ラリー中にサーブスイッチ３８が押されたかどうか判断する。“ＹＥＳ”の場合、「前衛」にあったプレイヤの前衛後衛ステートを「後退」に設定する。ただし、ステップＳ１４９において“ＹＥＳ”が判断された場合、すなわち、当該プレイヤがＣＰＵプレイヤであるときには、ステップＳ１５３およびＳ１５４において後退を行うかどうか判断する。後退を行うのであれば、ステップＳ１５２に進み、“ＮＯ”であれば、そのままリターンする。このようにして、ラリー中にサーブスイッチ３８を操作すると、前衛にある打球側プレイヤすなわち打球位置を後衛に移動させることができる。
前衛後衛ステートが「後衛」の場合、ステップＳ１５５に進み、当該プレイヤはＣＰＵかどうか判断する。“ＮＯ”の場合には、当該プレイヤはゲームプレイヤであるので、次のステップＳ１５６で，ゲームプロセサ５２は、サーブスイッチ３８の状態をチェックし、ステップＳ１５７で、サーブスイッチ３８が押されたかどうか判断する。つまり、このステップＳ１５７では、ラリー中にサーブスイチ３８が押されたかどうか判断する。“ＹＥＳ”の場合、「後衛」にあったプレイヤの前衛後衛ステートを「前進」に設定する。そして、ステップＳ１５５において“ＹＥＳ”が判断された場合、すなわち、当該プレイヤがＣＰＵプレイヤであるときには、ステップＳ１５９およびＳ１６０において前進を行うかどうか判断する。前進を行うのであれば、ステップＳ１５８に進み、“ＮＯ”であれば、そのままリターンする。このようにして、ラリー中にサーブスイッチ３８を操作すると、後衛にある打球側プレイヤすなわち打球位置を前衛に移動させることができる。
さらに、「前衛後衛ステート」が「前進」の場合、ステップＳ１６１において、ゲームプロセサ５２は現在のＺ座標に一定値を加算し、プレイヤを前進方向へ移動させる。そして、ステップＳ１６２において、前進方向限界のＺ座標に達したことを判断すると、次のステップＳ１６３において、ステートを「前衛」に移行させる。逆に、前衛後衛ステート」が「後退」の場合、ステップＳ１６４において、ゲームプロセサ５２は現在のＺ座標から一定値を減算し、プレイヤを後退方向へ移動させる。そして、ステップＳ１６５において、後退方向限界のＺ座標に達したことを判断すると、次のステップＳ１６６において、ステートを「後衛」に移行させる。そして、いずれの場合にも、リターンする。
なお、「ポイント計算」の動作は、図２１に示すフロー図に従って実行される。詳しく説明すると、ステップＳ１７１で、ゲームプロセサ５２は、結果レジスタをチェックし、ステップＳ１７２で結果を判定する。結果が「フォールト」の場合には、ステップＳ１７３で既にフォールトフラグがセットされているかどうか、つまり、１回フォールトしているかどうかを判断する。“ＹＥＳ”の場合、ゲームプロセサ５２は、「ダブルフォールト」の表示メッセージをモニタ上に表示するように、ステップＳ１７４において、表示メッセージ「ＤＯＵＢＬＥ  ＦＡＵＬＴ」を設定する。それととともに、ステップＳ１７５において、ゲームプロセサ５２は、打球側ではないプレイヤの得点をインクリメントする。つまり、打球側ではないプレイヤに得点を加算し、ステップＳ１７６でその得点を得点表示部４８（図２，図３）に表示させる。その後、ステップＳ１７７でフォールトフラグをクリアし、ステップＳ１７７およびＳ１７８で、ゲーム終了かどうか判断する。ステップＳ１７９で“ＹＥＳ”なら、次のステップＳ１８０およびＳ１８１で、試合（マッチ）終了か動か判断する。“ＹＥＳ”なら、ステップＳ１８４で「ゲームモード選択」ステートに移行させた後、リターンする。
ステップＳ１８１で“ＮＯ”なら、ステップＳ１８２でサーバを交代し、後衛に設定した後、ステップＳ１８３に進んで、ステートをトス前に移行させ、リターンする。なお、ステップＳ１７９のゲーム終了判断で“ＮＯ”の場合には、ステップＳ１８３に進む。
そして、結果レジスタ内に蓄積されている結果が「ネット」の場合には、ステップＳ１８５で表示メッセージ「ＮＥＴ」を設定し、先のステップＳ１７５に進む。また、結果レジスタが指示する結果が「アウト」であった場合、ステップＳ１８６で表示メッセージ「ＯＵＴ」を設定してステップＳ１７５に進む。そして、結果が「後逸」である場合には、ステップＳ１８７で打球側プレイヤの得点を加算した後、先のステップＳ１７６に進む。
先のステップＳ１７２の判定が「レット」であった場合、ステップＳ１８８で表示メッセージ「ＬＥＴ」を設定するとともに、ステップＳ１８９で双方のプレイヤの前衛後衛ステートを「後衛」に設定するとともに、ステップＳ１９０においてステートを「トス前」に移行させてリターンする。
なお、結果がフォールトでかつステップＳ１７３で“ＮＯ”が判断された場合には、１回目のフォールトであるから、ステップＳ１９１で表示メッセージ「ＦＡＵＬＴ」を設定するとともに、ステップＳ１９２においてフォールトフラグを設定し、その後、ステップＳ１８９に進む。
このようにして、ラケット型入力装置３４を三次元空間中で変位またはスイングさせることによって、図１の体感テニスゲームシステム１０によって、モニタ２０の画面内でテニスゲームがプレイできる。
なお、上述の実施例では、圧電ブザー素子に生じる加速度相関信号とし電圧信号を取り出すようにした。しかしながら、それを電流信号として取り出すようにしてもよい。
さらに、上述の実施例では、ＭＣＵ５０およびＬＥＤ３６がディジタル信号伝送手段を構成し、加速度相関ディジタル信号をワイアレスでプロセサ側に伝送するようにした。しかしながら、信号伝送手段はワイアレスでなく適宜のデータ伝送線を用いるものであってもよい。
さらに、加速度相関信号としてディジタル信号を出力するものを例示したが、検出した電圧値または電流値をアナログ信号として伝送するようにしてもよい。
この発明が詳細に説明され図示されたが、それは単なる図解および一例として用いたものであり、限定であると解されるべきではないことは明らかであり、この発明の精神および範囲は添付されたクレームの文言によってのみ限定される。
【図面の簡単な説明】
図１はこの発明の一実施例の体感テニスゲームシステムの全体構成を示す図解図である。
図２は図１実施例におけるテレビジョンモニタに表示されるゲーム画面の一例を示す図解図である。
図３は図１実施例におけるテレビジョンモニタに表示されるゲーム画面の他の例を示す図解図である。
図４は図１実施例を示すブロック図である。
図５は図１実施例におけるラケット型入力装置の内部構造を示す図解図である。
図６はラケット型入力装置を示す回路図である。
図７はラケット型入力装置の動作を示す各部波形図である。
図８は図１実施例の全体動作を示すフロー図である。
図９は図１実施例の状態ないしステートの遷移を示す図解図である。
図１０は図４実施例におけるＭＣＵの全体動作を示すフロー図である。
図１１は図１０に示す加速度検出処理の具体的動作を示すフロー図である。
図１２は図１０実施例におけるコード送信処理の具体的動作を示すフロー図である。
図１３は図８実施例におけるゲームプロセサによるコード受信処理の具体的動作を示すフロー図である。
図１４は図８実施例におけるゲームプロセサによるトス前処理の具体的動作を示すフロー図である。
図１５は図８実施例におけるゲームプロセサによるトス中処理の具体的動作を示すフロー図である。
図１６は図８実施例におけるゲームプロセサによるラリー中処理の具体的動作を示すフロー図である。
図１７は図８実施例におけるゲームプロセサによるボール座標制御処理の具体的動作の一部を示すフロー図である。
図１８はボール座標制御処理の具体的動作の他の一部を示すフロー図である。
図１９は図８実施例におけるゲームプロセサによるプレイヤ座標制御処理の具体的動作の一部を示すフロー図である。
図２０はプレイヤ座標制御処理の具体的動作の他の一部を示すフロー図である。
図２１は図８実施例におけるゲームプロセサによるポイント処理の具体的動作を示すフロー図である。
【図１】
2003090888.tif 000003
【図２】
2003090888.tif 000004
【図３】
2003090888.tif 000005
【図４】
2003090888.tif 000006
【図５】
2003090888.tif 000007
【図６】
2003090888.tif 000008
【図７】
2003090888.tif 000009
【図８】
2003090888.tif 000010
【図９】
2003090888.tif 000011
【図１０】
2003090888.tif 000012
【図１１】
2003090888.tif 000013
【図１２】
2003090888.tif 000014
【図１３】
2003090888.tif 000015
【図１４】
2003090888.tif 000016
【図１５】
2003090888.tif 000017
【図１６】
2003090888.tif 000018
【図１７】
2003090888.tif 000019
【図１８】
2003090888.tif 000020
【図１９】
2003090888.tif 000021
【図２０】
2003090888.tif 000022
【図２１】
2003090888.tif 000023
【手続補正書】
【提出日】平成15年8月11日(2003.8.11)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
（補正）ゲーム機およびテニスラケットの形状を模したラケット型入力装置を含み、プレイヤが前記ラケット型入力装置を用いてテニスゲームを行うテニスゲームシステムであって、
前記ラケット型入力装置は、前記プレイヤが実空間中で前記ラケット型入力装置を実際に振ったとき、加速度相関信号を生成する加速度センサ、および生成された前記加速度相関信号を前記ゲーム機へ送信する送信手段を備え、
前記ゲーム機は、
コンピュータプログラムによって制御されるＣＰＵプレイヤと前記プレイヤとが対戦するテニスゲームプログラムを実行してモニタ画面上にボールを表示し、さらに
前記ＣＰＵプレイヤから返球される予測返球位置を計算する第１計算手段、
前記予測返球位置と前記プレイヤの現在位置とを比較して打球可能範囲内かどうか判断する判断手段、
前記判断手段による否定的判断に応じて前記プレイヤの打球位置を移動する打球位置移動手段、
前記ラケット型入力装置が実際に振られたかどうか検出するスイング検出手段、および
前記打球可能範囲で前記スイング検出手段がスイングを検出したとき、前記ボールの位置と前記加速度相関信号に応じた前記ラケット型入力装置の加速度とによってレシーブ後の前記ボールの初期速度ベクトルを計算する第２計算手段を備える、テニスゲームシステム。
【請求項２】
削除
【請求項３】
削除
【請求項４】
削除
【請求項５】
削除
【請求項６】
（追加）ゲーム機およびそれぞれがテニスラケットの形状を模した２つのラケット型入力装置を含み、２人のプレイヤがそれぞれ前記ラケット型入力装置を用いてテニスゲームを行うテニスゲームシステムであって、
前記ラケット型入力装置は、前記プレイヤが実空間中で前記ラケット型入力装置を実際に振ったとき、加速度相関信号を生成する加速度センサ、および生成された前記加速度相関信号を前記ゲーム機へ送信する送信手段を備え、
前記ゲーム機は、
前記２人のプレイヤどうしがが対戦するテニスゲームプログラムを実行してモニタ画面上にボールを表示し、さらに
相手プレイヤから返球される予測返球位置を計算する第１計算手段、
前記予測返球位置と打球側プレイヤの現在位置とを比較して打球可能範囲内かどうか判断する判断手段、
前記判断手段による否定的判断に応じて前記打球側プレイヤの打球位置を移動する打球位置移動手段、
前記ラケット型入力装置が実際に振られたかどうか検出するスイング検出手段、および
前記打球可能範囲で前記スイング検出手段がスイングを検出したとき、前記ボールの位置と前記加速度相関信号に応じた前記ラケット型入力装置の加速度とによってレシーブ後の前記ボールの初期速度ベクトルを計算する第２計算手段を備える、テニスゲームシステム。
【請求項７】
（追加）請求項１または６に従属するテニスゲームシステムであって、
前記ラケット型入力装置は操作スイッチをさらに含み、前記送信手段は前記操作スイッチの操作信号を前記加速度相関信号とともに前記ゲーム機に送信し、
前記ゲーム機は、前記ラケット型入力装置から送信された前記操作信号に応答して前記モニタ画面上において前記打球位置を前衛位置から後衛位置または後衛位置から前衛位置に変更する位置変更手段をさらに備える。
【請求項８】
（追加）請求項１または６に従属するテニスゲームシステムであって、前記ラケット型入力装置の前記送信手段は赤外線によって前記加速度相関信号および前記操作信号を送信する赤外線発光素子を含む。
【請求項９】
（追加）請求項８に従属するテニスゲームシステムであって、前記送信手段は、前記加速度相関信号および前記操作信号をディジタル変調して前記ゲーム機に送信するものであり、前記ゲーム機は、前記送信手段によって送信された前記加速度相関信号および前記操作信号をディジタル復調する。
【国際調査報告】
2003090888.tif 000024
2003090888.tif 000025