(57)【要約】  衝撃検出装置は、Ｙ軸方向の加速度の絶対値が１Ｇを超えたか否かを判定する第１の判定部１６８と、第１の判定部１６８によりＹ軸方向の加速度の絶対値が１Ｇを超えたと判定された後、所定の時間Ｔ内にＸ軸方向の加速度の絶対値が１Ｇを超えたことに応答して、Ｚ軸方向の衝撃を検出したことを示す所定の衝撃検出信号を出力する衝撃判定部１７０〜１９９とを含む。
2007116459.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２の軸方向の加速度を検知する２軸加速度センサを用いて、前記第１及び第２の軸方向と異なる第３の軸方向の衝撃を検出するための衝撃検出装置であって、
前記第１の軸方向の加速度の絶対値が所定の正の値の第１のしきい値を超えたか否かを判定するための第１の判定手段と、
前記第１の判定手段により前記第１の軸方向の加速度の絶対値が前記第１のしきい値を超えたと判定された後、所定の時間内に前記第２の軸方向の加速度の絶対値が所定の正の値の第２のしきい値を超えたことに応答して、前記第３の軸方向の衝撃を検出したことを示す所定の衝撃検出信号を出力するための衝撃判定手段とを含む、衝撃検出装置。
【請求項２】
前記衝撃判定手段は、
前記第１の判定手段により前記第１の軸方向の加速度の絶対値が前記第１のしきい値を超えたと判定されたことに応答して経過時間の計測を開始し、前記所定の時間が満了すると計時を終了するための計時手段と、
前記第２の軸方向の加速度の絶対値が前記第２のしきい値を超えたか否かを判定するための第２の判定手段と、
前記計時手段の計時中に、前記第２の判定手段により前記第２の軸方向の加速度の絶対値が前記第２のしきい値を超えたと判定されたことに応答して、前記衝撃検出信号を出力するための衝撃検出信号出力手段とを含む、請求項１に記載の衝撃検出装置。
【請求項３】
さらに、前記第１の判定手段、前記第２の判定手段、及び前記衝撃判定手段による衝撃の検出動作を所定の動作ウィンドウ時間中に限定するための検出時間限定手段を含む、請求項２に記載の衝撃検出装置。
【請求項４】
前記衝撃検出信号出力手段は、前記時間限定手段により限定された動作ウィンドウ時間中であってかつ前記計時手段の計時中に、前記第２の判定手段により前記第２の軸方向の加速度の絶対値が前記第２のしきい値を超えたと判定されたことに応答して、前記衝撃検出信号を出力するための手段を含む、請求項３に記載の衝撃検出装置。
【請求項５】
前記衝撃検出信号出力手段は、前記第１の軸方向の加速度の絶対値が前記第１のしきい値を超えたときの前記第１の軸方向の加速度の絶対値と、前記計時手段の計時中に、前記第２の軸方向の加速度の絶対値が前記第２のしきい値を超えたときの前記第２の軸方向の加速度の絶対値との関数として、前記衝撃検出信号を出力するための手段を含む、請求項２に記載の衝撃検出装置。
【請求項６】
前記衝撃検出信号出力手段は、前記第１の軸方向の加速度の絶対値が前記第１のしきい値を超えたとき以後、前記計時手段により計時の終了までに前記第１の軸方向の加速度が前記第１のしきい値を超えた量の最大値と、前記計時手段の計時中に、前記第２の軸方向の加速度の絶対値が前記第２のしきい値を超えた量の最大値との関数として、前記衝撃検出信号を出力するための手段を含む、請求項２に記載の衝撃検出装置。
【請求項７】
前記２軸加速度センサの出力によって得られる、前記第１の軸方向の加速度の絶対値が前記第１のしきい値以下でかつ所定の第１の下限値以上、又は、前記第２の軸方向の加速度の絶対値が前記第２のしきい値以下でかつ所定の第２の下限値以上であるときに、当該第１及び第２の軸方向の加速度の値の組合せに応じて、予め定められる複数種類の制御信号の一つを発生するための、制御信号発生手段をさらに含む、請求項１〜請求項６のいずれかに記載の衝撃検出装置。
【請求項８】
前記第１のしきい値及び前記第２のしきい値は互いに等しい、請求項７に記載の衝撃検出装置。
【請求項９】
前記第１の下限値及び前記第２の下限値はともに等しい、請求項７又は請求項８に記載の衝撃検出装置。
【請求項１０】
前記衝撃検出装置は、前記２軸加速度センサの出力によって得られる、前記第１の軸方向の加速度の絶対値が前記第１の下限値未満で、かつ、前記第２の軸方向の加速度の絶対値が前記第２の下限値未満であるときに、前記衝撃検出装置が静止していると判定するための手段をさらに含む、請求項７〜請求項９のいずれかに記載の衝撃検出装置。
【請求項１１】
前記２軸加速度センサの出力によって得られる、前記第１の軸方向の加速度の絶対値が前記第１のしきい値以下かつ所定の第１の下限値以上で、かつ前記第２の軸方向の加速度の絶対値が所定の第２の下限値未満であるときに、前記第１の軸方向の加速度の値に応じて、予め定められる複数種類の第１の制御信号の一つを発生するための第１の制御信号発生手段と、
前記２軸加速度センサの出力によって得られる、前記第２の軸方向の加速度の絶対値が前記第２のしきい値以下かつ前記第２の下限値以上で、かつ前記第１の軸方向の加速度の絶対値が前記第１の下限値未満であるときに、前記第２の軸方向の加速度の値に応じて、予め定められる複数種類の第２の制御信号の一つを発生するための第２の制御信号発生手段とをさらに含む、請求項１〜請求項６のいずれかに記載の衝撃検出装置。
【請求項１２】
前記２軸加速度センサの出力によって得られる、前記第１の軸方向の加速度の絶対値が前記第１のしきい値以下かつ前記第１の下限値以上で、かつ前記第２の軸方向の加速度の絶対値が前記第２のしきい値以下かつ前記第２の下限値以上であるときに、前記第１の軸方向の加速度及び前記第２の軸方向の加速度の値の組合せに応じて、予め定められる複数種類の第３の制御信号の一つを発生するための第３の制御信号発生手段をさらに含む、請求項１１に記載の衝撃検出装置。
【請求項１３】
前記衝撃検出信号を出力するための前記手段は、前記第１の軸方向の加速度の絶対値が前記第１のしきい値を超えたときの前記第１の軸方向の加速度の絶対値と、前記計時手段の計時中に、前記第２の軸方向の加速度の絶対値が前記第２のしきい値を超えたときの前記第２の軸方向の加速度の絶対値との組合せに応じて、予め定められた複数通りの衝撃の大きさのいずれかを示す値となる衝撃規模検出信号を出力するための衝撃規模検出手段を含む、請求項５に記載の衝撃検出装置。
【請求項１４】
利用者に所定の疑似体験をさせる疑似体験装置におけるコントローラであって、
前記利用者が保持する保持部材と、
前記保持部材に取付けられた、請求項１〜請求項１３のいずれかに記載の衝撃検出装置と、
前記衝撃検出装置の出力を前記疑似体験装置に送信するための送信手段とを含む、コントローラ。
【請求項１５】
前記保持部材は棒状の部材を含み、
前記衝撃検出装置は、前記第１の軸方向が前記棒状の部材の長手軸方向と一致するように前記棒状の部材に取付けられる、請求項１４に記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、疑似体験装置及び衝撃検出装置に関し、特に例えば、使用者が用具に対し何らかの操作をした際に、当該用具に与えられる衝撃を簡易な仕組みで検出できる衝撃検出装置、及び当該衝撃検出装置を利用して利用者に擬似的な体験をさせる疑似体験装置のコントローラに関する。
【背景技術】
【０００２】
最近の携帯電話には、加速度センサを搭載したものがある。例えば後掲の特許文献１には、加速度センサの出力（以下これを「加速度相関信号」と呼ぶ。）により、利用者が携帯電話をどのように空間的に動かしたかを判定し、その判定結果に応じた動作を行なう携帯電話機が開示されている。例えば意図的にある周波数で携帯電話機を揺り動かしたりすると、その振動に応じた加速度相関信号が得られ、その結果からどの処理を行なうかを決定する。【０００３】
特許文献１の記載によれば、加速度センサは１軸でも２軸でも３軸でもよいとされている。【０００４】
【特許文献１】特開２００５−３３２１１８
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記した特許文献１に記載の技術によれば、加速度相関信号を用いて携帯電話の動きを検出する。したがって、１軸センサよりも２軸センサ、２軸センサよりも３軸センサの方が多様な動きを検出できて便利である。【０００６】
しかし、アプリケーションによっては、２軸センサでは機能不足だが、３軸センサではオーバスペックである、という場合があり得る。例えば２軸センサの軸方向の加速度は比較的精密に検出する必要があるが、残る１軸方向の加速度の検出にはそれほどの精度が要求されない、というような場合である。例えば２軸方向では装置の位置又は角度を検出する必要があるが、残る１軸方向には何らかの衝撃があったか否かさえ検出できればよい、というような場合がそれに当たる。こうした装置は、例えば器具を使ったスポーツ等を擬似的に体験できるような装置のコントローラで使用できる。【０００７】
そうした場合に、２軸センサで３軸目の方向の急激な加速度の変化である衝撃を何らかの形で検出することができれば、コントローラのコストを下げることができる。しかし、現在までのところ、そのような技術は存在していない。【０００８】
また、仮に２軸センサでそのような検出を行なうことができたとしても、検出のために必要な構成が大規模となったのでは意味がない。簡単な構成でそうした検出を行なうことが可能であることが望まれる。【０００９】
それゆえに、この発明の主たる目的は、簡単な構成で、２軸加速度センサを用いて、３軸目の方向の衝撃の発生を検出できる衝撃検出装置、及びそのような衝撃検出装置を用いた、疑似体験装置のコントローラを提供することである。
【課題を解決するための手段】
【００１０】
本発明の第１の局面に係る衝撃検出装置は、第１及び第２の軸方向の加速度を検知する２軸加速度センサを用いて、第１及び第２の軸方向と異なる第３の軸方向の衝撃を検出するための衝撃検出装置であって、第１の軸方向の加速度の絶対値が所定の正の値の第１のしきい値を超えたか否かを判定するための第１の判定手段と、第１の判定手段により第１の軸方向の加速度の絶対値が第１のしきい値を超えたと判定された後、所定の時間内に第２の軸方向の加速度の絶対値が所定の正の値の第２のしきい値を超えたことに応答して、第３の軸方向の衝撃を検出したことを示す所定の衝撃検出信号を出力するための衝撃判定手段とを含む。【００１１】
第１の軸方向の加速度の絶対値が第１のしきい値を超えた後、所定の時間内に第２の軸方向の加速度の絶対値が第２のしきい値を超えた場合、それは第３の軸方向への衝撃が発生したことを意味することが、実験により判明した。したがって、第１の軸方向の加速度の絶対値が第１のしきい値を超えたと第１の判定手段で判定し、その後、所定の時間内に第２の軸方向の加速度の絶対値が第２のしきい値を超えたときに、第３の軸方向への衝撃が発生したと判定できる。したがって、３軸センサを用いなくても、第１及び第２の軸方向への加速度しか検出しない２軸加速度センサを用い、第３の軸方向への衝撃を検出できる。【００１２】
好ましくは、衝撃判定手段は、第１の判定手段により第１の軸方向の加速度の絶対値が第１のしきい値を超えたと判定されたことに応答して経過時間の計測を開始し、所定の時間が満了すると計時を終了するための計時手段と、第２の軸方向の加速度の絶対値が第２のしきい値を超えたか否かを判定するための第２の判定手段と、計時手段の計時中に、第２の判定手段により第２の軸方向の加速度の絶対値が第２のしきい値を超えたと判定されたことに応答して、衝撃検出信号を出力するための衝撃検出信号出力手段とを含む。【００１３】
第１の軸方向の加速度の絶対値が第１のしきい値を超えたと判定されてから所定の時間を、計時手段により計時する。計時手段の計時が終了するまでに、第２の判定手段によって第２の軸方向の加速度の絶対値が第２のしきい値を超えたと判定されると、それによって第３の軸方向への衝撃が発生したと判定できる。計時手段により、所定の時間の計測を確実に行ないながら、簡単な構成の第２の判定手段の判定を用いることで、簡単な構成で確実に衝撃の発生を検出できる。【００１４】
より好ましくは、衝撃検出装置はさらに、第１の判定手段、第２の判定手段、及び衝撃判定手段による衝撃の検出動作を所定の動作ウィンドウ時間中に限定するための検出時間限定手段を含む。【００１５】
衝撃検出装置を制御するために例えばＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｅｒ  Ｕｎｉｔ）等を用いる場合、ＭＣＵの処理は基本的に順次的に行なわれる。ＭＣＵには、他の処理も割当てられることが通常であり、衝撃検出のためにＭＣＵを長時間占有することはできない。したがって、上記した衝撃検出のための処理を検出時間限定手段で限定することにより、残った時間にはＭＣＵを他の処理に振分けることができる。したがって、ＭＣＵを用いた処理に好適な衝撃検出装置を提供できる。【００１６】
さらに好ましくは、衝撃検出信号出力手段は、検出時間限定手段により限定された動作ウィンドウ時間中であってかつ計時手段の計時中に、第２の判定手段により第２の軸方向の加速度の絶対値が第２のしきい値を超えたと判定されたことに応答して、衝撃検出信号を出力するための手段を含む。【００１７】
計時手段の計時中であって、かつ検出時間限定手段により限定された検出時間内の場合に、衝撃検出信号が出力される。ＭＣＵを用いた場合、衝撃検出処理に割当てられた時間内で処理を行なうことができ、ＭＣＵを用いた処理に好適な衝撃検出装置を提供できる。【００１８】
衝撃検出信号出力手段は、第１の軸方向の加速度の絶対値が第１のしきい値を超えたときの第１の軸方向の加速度の絶対値と、計時手段の計時中に、第２の軸方向の加速度の絶対値が第２のしきい値をこえたときの第２の軸方向の加速度の絶対値との関数として、衝撃検出信号を出力するための手段を含んでもよい。【００１９】
第１の軸方向の加速度と、第２の軸方向の加速度との関数として衝撃検出信号が出力される。これらの差は、衝撃の大きさと相関があると考えられる。したがって、この関数により衝撃の大きさもある程度の精度で検出できる。【００２０】
好ましくは、衝撃検出信号出力手段は、第１の軸方向の加速度の絶対値が第１のしきい値を超えたとき以後、計時手段により計時の終了までに第１の軸方向の加速度が第１のしきい値を超えた量の最大値と、計時手段の計時中に、第２の軸方向の加速度の絶対値が第２のしきい値を超えた量の最大値との関数として、衝撃検出信号を出力するための手段を含む。【００２１】
第１の軸方向の加速度の最大値と、第２の軸方向の加速度の最大値との関数として衝撃検出信号が出力される。これらの値は、衝撃の大きさと相関があり、特に衝撃の大きさの最大値と高い相関があると考えられる。したがって、この関数により衝撃の大きさを比較的高い精度で検出できる。【００２２】
好ましくは、衝撃検出装置は、２軸加速度センサの出力によって得られる、第１の軸方向の加速度の絶対値が第１のしきい値以下でかつ所定の第１の下限値以上、又は、第２の軸方向の加速度の絶対値が第２のしきい値以下でかつ所定の第２の下限値以上であるときに、当該第１及び第２の軸方向の加速度の値の組合せに応じて、予め定められる複数種類の制御信号の一つを発生するための、制御信号発生手段をさらに含む。【００２３】
第１の軸方向の加速度の絶対値が第１のしきい値以下でかつ第２の軸方向の加速度の絶対値が第２のしきい値以下の場合には、衝撃が発生していると判定はできない。しかしこの場合でも、これら加速度の絶対値が所定の大きさであるときには、これら加速度の値の組合せは、衝撃検出装置の動きの方向及びその大きさを示すと考えられる。したがって、第１及び第２の軸方向の加速度の値の組合せに応じて、予め定められる複数種類の制御信号の一つを発生するようにすれば、その値から衝撃検出装置の動きの方向及びその大きさを判定し、それを装置の制御に使用することが可能になる。例えばこの制御信号をもって、通常のコントローラの矢印キーがおされたときの信号として解釈できる。【００２４】
第１のしきい値及び第２のしきい値は互いに等しくてもよい。第１の下限値及び第２の下限値も、ともに等しくてもよい。【００２５】
第１の軸方向及び第２の軸方向の加速度については、特に対称性は必要とされない。しかし、例えばこの衝撃検出装置を人間が操作する場合を考えると、二つの軸に関し、その動きが対称性を有することも多い。したがって、応用に適合して第１のしきい値及び第２のしきい値、又は第１の下限値及び第２の下限値を互いに等しくすることが望ましい。【００２６】
より好ましくは、衝撃検出装置は、２軸加速度センサの出力によって得られる、第１の軸方向の加速度の絶対値が第１の下限値未満で、かつ、第２の軸方向の加速度の絶対値が第２の下限値未満であるときに、衝撃検出装置が静止していると判定するための手段をさらに含む。【００２７】
この衝撃検出装置が第１の軸方向又は第２の軸方向に動いたとしても、その加速度がそれぞれ第１の下限値及び第２の下限値未満であれば、衝撃検出装置が静止していると判定される。この構成により、人間が衝撃検出装置を保持している際に衝撃検出装置に不可避的に発生する小さな動きが無視される。したがって、衝撃検出装置の移動の方向を用いて何らかの制御を行なう際に、操作者の本来の意図とは異なる動きを無視することができ、いわゆるチャタリングを防止できる。【００２８】
好ましくは、衝撃検出装置はさらに、２軸加速度センサの出力によって得られる、第１の軸方向の加速度の絶対値が第１のしきい値以下かつ所定の第１の下限値以上で、かつ第２の軸方向の加速度の絶対値が所定の第２の下限値未満であるときに、第１の軸方向の加速度の値に応じて、予め定められる複数種類の第１の制御信号の一つを発生するための第１の制御信号発生手段と、２軸加速度センサの出力によって得られる、第２の軸方向の加速度の絶対値が第２のしきい値以下かつ第２の下限値以上で、かつ第１の軸方向の加速度の絶対値が第１の下限値未満であるときに、第２の軸方向の加速度の値に応じて、予め定められる複数種類の第２の制御信号の一つを発生するための第２の制御信号発生手段とをさらに含む。【００２９】
第１の軸方向への加速度の絶対値が大きく、第２の軸方向への加速度の絶対値が小さい場合、衝撃検出装置が第１の軸方向に沿って移動していると判定できる。同様に、第２の軸方向への加速度の絶対値が大きく、第１の軸方向への加速度の絶対値が小さい場合、衝撃検出装置が第２の軸方向に沿って移動していると判定できる。第１の軸方向の加速度の値及び第２の軸方向の加速度の値に応じてそれぞれ適切な第１の制御信号及び第２の制御信号が衝撃検出装置から出力されることにより、この衝撃検出装置が、第１の軸方向又は第２の軸方向に沿って、ある大きさの加速度で移動していると判定できる。【００３０】
衝撃検出装置はさらに、２軸加速度センサの出力によって得られる、第１の軸方向の加速度の絶対値が第１のしきい値以下かつ第１の下限値以上で、かつ第２の軸方向の加速度の絶対値が第２のしきい値以下かつ第２の下限値以上であるときに、第１の軸方向の加速度及び第２の軸方向の加速度の値の組合せに応じて、予め定められる複数種類の第３の制御信号の一つを発生するための第３の制御信号発生手段を含んでもよい。【００３１】
第１の軸方向の加速度と第２の軸方向の加速度との絶対値がこの範囲である場合、衝撃検出装置が、第１の軸及び第２の軸のいずれとも交差する方向に沿ってある程度の加速度を持って移動していることが分かる。またその方向は、第１の軸方向の加速度の値と、第２の軸方向の加速度の値とから、概ね知ることができる。したがって、これらの値の組合せに応じて適切な値の第３の制御信号を発生させ、外部装置で第３の制御信号を受けてその値を調べることにより、衝撃検出装置の移動方向を判定できる。【００３２】
より好ましくは、衝撃検出信号を出力するための手段は、第１の軸方向の加速度の絶対値が第１のしきい値を超えたときの第１の軸方向の加速度の絶対値と、計時手段の計時中に、第２の軸方向の加速度の絶対値が第２のしきい値を超えたときの第２の軸方向の加速度の絶対値との組合せに応じて、予め定められた複数通りの衝撃の大きさのいずれかを示す値となる衝撃規模検出信号を出力するための衝撃規模検出手段を含む。【００３３】
第１の軸方向の加速度の絶対値が第１のしきい値を超えたときの第１の軸方向の加速度の絶対値と、第２の軸方向の加速度の絶対値が第２のしきい値を超えたときの第２の軸方向の加速度の絶対値との組合せは、結果として、衝撃の大きさを表すと考えられる。したがって、これらの組合せに応じて衝撃規模検出信号の値を変化させることにより、衝撃検出装置の出力を受けるシステムでは、衝撃規模検出信号の値を調べることにより、衝撃検出装置に単に衝撃が加えられたことだけでなく、その大きさも知ることができる。【００３４】
衝撃規模検出手段は、第１の軸方向の加速度の絶対値が、第１のしきい値と所定の第１の上限値との間に定義される第３のしきい値以上であり、第２の軸方向の加速度が、第２のしきい値と所定の第２の上限値との間に定義される第４のしきい値以上であるときに、衝撃規模検出信号の値を所定の第１の値とし、第１の軸方向の加速度の絶対値が、第１のしきい値以上で、かつ第１のしきい値と第３のしきい値との間に定義される第５のしきい値以下であり、第２の軸方向の加速度が、第２のしきい値以上で、かつ第２のしきい値と第４のしきい値との間に定義される第６のしきい値以下であるときに、衝撃規模検出信号の値を所定の第２の値とし、第１の軸方向の加速度の絶対値が第５のしきい値より大きく第３のしきい値未満のとき、又は第２の軸方向の加速度の絶対値が第６のしきい値より大きく第４のしきい値未満のときに、衝撃規模検出信号の値を所定の第３の値とする。【００３５】
第１の軸方向の加速度と第２の軸方向の加速度とがいずれも最も大きな組合せのときに、衝撃規模検出信号の値を第１の値とする。したがって、外部システムは、衝撃規模検出信号の値が第１の値であれば、最も大きな衝撃が生じたと判定できる。第１の軸方向の加速度と第２の軸方向の加速度とがいずれも最も小さな組合せのときに、衝撃規模検出信号の値を第２の値とする。したがって、外部システムは、衝撃規模検出信号の値が第２の値であれば、衝撃が発生したが、その大きさは最も小さいものである、と判定できる。そして、それ以外のときには、その組合せに応じ、その中間の何らかの規模の衝撃が発生したと判定できる。【００３６】
第１のしきい値と第２のしきい値とは互いに等しく、第３のしきい値と第４のしきい値とは互いに等しく、第５のしきい値と第６のしきい値とは互いに等しくてもよい。【００３７】
第１の軸方向及び第２の軸方向の加速度については、特に対称性は必要とされない。しかし、例えばこの衝撃検出装置を人間が手で操作する場合を考えると、二つの軸に関し、この衝撃検出装置に対して衝撃を加えるときの人間の手の動きが対称性を有することも多い。したがって、応用に適合して、第１のしきい値及び第２のしきい値、第３のしきい値及び第４のしきい値、又は第５のしきい値及び第６のしきい値をそれぞれ等しくすることが望ましい。【００３８】
本発明の第２の局面に係るコントローラは、利用者に所定の疑似体験をさせる疑似体験装置におけるコントローラであって、利用者が保持する保持部材と、保持部材に取付けられた、上記したいずれかの衝撃検出装置と、衝撃検出装置の出力を疑似体験装置に送信するための送信手段とを含む。【００３９】
疑似体験装置のコントローラに、上記した衝撃検出装置を取付けて用いることにより、衝撃検出装置の動きの方向、第３の軸方向への衝撃及びその大きさなどを検出することができ、２軸加速度センサを用いて多彩に擬似体験装置をコントロールできる。【００４０】
好ましくは、保持部材は棒状の部材を含み、衝撃検出装置は、第１の軸方向が棒状の部材の長手軸方向と一致するように棒状の部材に取付けられる。【００４１】
棒状の部材の長手方向に、第１の軸方向が一致するよう衝撃検出装置を取付けることにより、棒状の部材を振上げたり振下ろしたりする際の第１の軸方向の加速度を精度よく検出できる。さらに、第１の軸方向と交わる第２の軸方向の加速度を検出できる上に、これら軸方向のいずれとも異なる第３の軸方向への衝撃の発生も検知できる。その結果、棒状の部材からなるコントローラを用い、疑似体験装置に対する多彩な制御信号を発生することが可能になる。
【図面の簡単な説明】
【００４２】
【図１】図１はこの発明の一実施の形態に係る釣り疑似体験システムの構成の全体を示す図である。
【図２】図２は図1の釣り疑似体験システムで用いるキャスティングロッド２０（コントローラ）を示す斜視図である。
【図３】図３は図２のキャスティングロッド２０の側面図である。
【図４】図４は図２のキャスティングロッド２０の平面図である。
【図５】図５は図２のキャスティングロッド２０のキャスティング動作時を示す側面図である。
【図６】図６は図２のキャスティングロッド２０のキャスティング動作時を示す平面図である。
【図７】図７はキャスティング時の２軸加速度センサ回路１１８のＸ軸方向及びＹ軸方向の加速度出力を模式的に示す波形図である。
【図８】図８は衝撃が検出されるときの、２軸加速度センサ回路１１８のＸ軸方向及びＹ軸方向の加速度出力を模式的に示す波形図である。
【図９】図９は衝撃が検出されないときの、２軸加速度センサ回路１１８のＸ軸方向及びＹ軸方向の加速度出力を模式的に示す波形図である。
【図１０】図１０は２軸加速度センサ回路１１８のＸ軸方向及びＹ軸方向の出力について、衝撃の検出及び方向キーとしての操作の検出に使用される範囲を模式的に示す図である。
【図１１】図１１は図１０の領域５００、５０２、５０４、及び５０６の詳細を説明するための図である。
【図１２】図１２は図１の釣り疑似体験システムの電気的構成を示すブロック図である。
【図１３】図１３は釣り疑似体験のためのプレイ画面の例示図である。
【図１４】図１４は釣り疑似体験の際のキャスティング開始時のプレイ画面の例示図である。
【図１５】図１５は釣り疑似体験の際のキャスティング完了時のプレイ画面の例示図である。
【図１６】図１６はキャスティングロッド２０のＭＣＵ１１２が実行するプログラムの制御構造を示すフローチャートである。
【図１７】図１７は図１６のＳ１４４で行なわれる衝撃検出処理の制御構造を示すフローチャートである。
【図１８】図１８は図１６のＳ１４６で行なわれる方向キー検出処理の制御構造を示すフローチャートである。
【図１９】複数のボタンとキー３８０とを含むＧＵＩ画面の一例の図である。
【図２０】多数のボタンを含むＧＵＩ画面の一例の図である。
【図２１】多数のオブジェクトを階層的に表示するＧＵＩ画面の一例の図である。
【符号の説明】
【００４３】
１０  釣り疑似体験システム
１２  アダプタ
１４  カートリッジ
１８  テレビジョンモニタ
２０  キャスティングロッド
２８  操作スイッチ
１００  プロセサ
１０４，１１０  ＲＦモジュール
１１２  ＭＣＵ
１１４  ドライバ
１１６  モータ
１１８  ２軸加速度センサ回路
１２０  ロータリエンコーダ
【発明を実施するための最良の形態】
【００４４】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一又は相当部分については同一の参照符号を付してある。それらの名称及び機能も同一である。したがって、それらについての詳細な説明は繰返さない。【００４５】
本実施の形態に係る擬似体験システムは、釣りの疑似体験をテレビジョンを用いて行なうものである。図１を参照して、本実施の形態に係る釣り疑似体験システム１０では、アダプタ１２とテレビジョンモニタ１８とを用い、このアダプタ１２に、釣り疑似体験用のプログラム、データ、及びプログラム実行用のプロセサ等を内蔵したカートリッジ１４を装着する。アダプタ１２は基本的には単なる箱であり、カートリッジ１４を装着しなければ、何も機能しない。ただし、このアダプタ１２は、カートリッジ１４に電源を供給する電源回路を備え、さらには、ＡＶコネクタ（図示せず）を背面に備えている。このＡＶコネクタにＡＶケーブル１６の一方のプラグを差し込み、そのＡＶケーブル１６の他方のプラグをテレビジョンモニタ１８のＡＶ端子１７に差し込むと、カートリッジ１４が作成したオーディオビデオ信号（ＡＶ信号）をテレビジョンモニタ１８に与えることができる。したがって、テレビジョンモニタ１８のスクリーン１９に、釣りのシチュエーションを表す画像を表示し、スピーカ（図示せず）から音楽や効果音を出力できる。【００４６】
この図１の釣り擬似体験システム１０では、図２に斜視図、図３に側面図、図４に平面図をそれぞれ示すキャスティングロッド２０を用いる。具体的には、図２〜図４を参照して、後述のように、キャスティングロッド２０とアダプタ１２に装着されたカートリッジ１４とは、本実施の形態では無線方式でつながれる。両者を有線方式でつないでもよい。無線方式で電波を使用する場合には、当該電波は微弱であるため、プレイヤ（図示せず）は、キャスティングロッド２０とカートリッジ１４との間で電波が届く位置でキャスティングロッド２０を操作する。ただし、プレイヤからテレビジョンモニタ１８のスクリーンが見える位置でなければならないのは当然である。【００４７】
キャスティングロッド２０は、棒状の部材であるロッド部２２を有する。このロッド部２２の手前側が把持部２４であり、プレイヤはこの把持部２４を例えば手のひらで把持する。ロッド部２２の把持部２４より上方には、リールハウジング２６が固着される。ロッド部２２もリールハウジング２６もともにプラスチックの成型によって作られる。リールハウジング２６の上面には２つのスイッチ２８ａおよび２８ｃが設けられる。スイッチ２８ａは決定キーとして機能する押しボタンスイッチであり、スイッチ２８ｃはキャンセル（取消し）キーである。なお、これらのスイッチ２８ａ及び２８ｃは、まとめて「２８」の参照符号で示すことがある。【００４８】
リールハウジング２６の右側面にはハンドル３０が回転可能に設けられる。プレイヤは、このハンドル３０を回すことによって、釣り疑似体験をプレイすることになる。【００４９】
リールハウジング２６内には、図示しない負荷トルク付与機構が内蔵されている。この負荷トルク付与機構により、ハンドル３０の回転時に所望の負荷トルクを与えることができ、釣りのファイティング時及び釣り上げ時の手ごたえを疑似体験できる。【００５０】
後述のようにキャスティングロッド２０は、そのリールハウジング２６の内部に２軸加速度センサ回路を持つ。以下、この２軸加速度センサ回路の出力する二つの加速度相関信号を用い、２軸加速度センサ回路で測定可能な加速度の２軸と交わる軸方向の衝撃を検出する方法について、説明する。【００５１】
リールハウジング２６の２軸加速度センサ回路を構成する加速度センサに固定されたＸＹＺ座標系を考える。ただし、図示の便宜上、図２〜図４では、把持部２４の末端にＸＹＺ座標系の原点を示している。この座標系のＸ軸、Ｙ軸及びＺ軸を図２〜図４に示す方向にとる。すなわち、Ｘ軸は利用者から見て左方向に正、Ｙ軸はロッド部２２の軸方向（長手方向）と一致する方向で、かつ手前方向に正、Ｚ軸は利用者がキャスティングロッド２０を水平に保持したときに鉛直下方を向く方向を正とする。本実施の形態に係るキャスティングロッド２０では、３軸加速度センサを用いず、Ｘ軸方向とＹ軸方向との加速度を検出する２軸加速度センサを用いて、キャスティングロッド２０のＺ軸方向に加えられた衝撃を検知する。具体的には、キャスティング時にキャスティングロッド２０を振下ろして静止させるタイミングでＺ軸方向に生じる衝撃を、Ｘ軸方向とＹ軸方向との２軸加速度センサを用いて検知する。【００５２】
この原理について以下に説明する。キャスティング時には、図５に示すようにキャスティングロッド２０を参照符号４０で示す垂直位置付近まで振上げ、参照符号４２で示す水平付近の位置まで振下ろし、静止させる。この場合、振上げ及び振下ろし時には、キャスティングロッド２０のＹ軸に沿った方向の加速度が遠心力により生じる。なお、Ｙ軸方向には重力加速度のＹ軸方向成分も加わる。【００５３】
しかし、キャスティングロッド２０を振下ろし、所望の位置で静止させようとしても、一般には直ちに静止させることはできない。したがって、図５の参照符号４４で示すようにキャスティングロッド２０の先頭は小刻みに振動する。また、この振上げ及び振下ろし時には、理論的にはＸ軸方向への加速度が生じないこともあり得る。しかし、キャスティングロッド２０を操作するのは人間であるから、Ｘ軸方向にキャスティングロッド２０を全く動かさないことは不可能である。むしろ、キャスティングロッド２０を振下ろして静止させようとする場合、Ｘ軸方向にかなり大きな加速度を生じるような振動がキャスティングロッド２０に生じることが判明した。この様子を図６に示す。【００５４】
図６を参照して、キャスティングロッド２０を振下ろして静止させようとしても、キャスティングロッド２０の先端は参照符号４６で示すようにＸ軸方向にかなりの加速度で振動する。この振動は、主として人間の手の動きによるものであると考えられる。【００５５】
キャスティングロッド２０に働くＸ軸方向及びＹ軸方向の加速度をそれぞれＸ及びＹとし、キャスティング時に２軸加速度センサから得られる加速度相関信号の典型的な波形を図７（Ａ）に示す。図７（Ａ）の横軸は時間であり、縦軸はＹ軸の正の方向への加速度センサの出力の大きさを示す。なお、加速度センサの出力は２５６レベル（０〜２５５）に量子化され、オフセットバイナリで表現すると、重力０（以下これを「０Ｇ」と表記する。）に相当する出力の大きさは１２８である。【００５６】
図７（Ａ）を参照して、上記したようにキャスティング時にはまずキャスティングロッド２０を垂直上方に振上げる。この振上げ時には、遠心力による加速度がＹ軸の負の方向に生じるが、重力加速度のＹ軸方向成分もＹ軸の正の方向に加わる。振上げの頂点では遠心力による加速度は０となる。したがってここまではＹ軸方向の加速度は０から１Ｇ程度まで徐々に増加する。【００５７】
振下ろし時にはＹ軸の負方向に遠心力による加速度が生じ、重力加速度も減少する。したがってＹ軸の正方向への加速度は減少する。静止位置でキャスティングロッド２０を静止させようとする時点では重力加速度はほぼ０Ｇとなるが、遠心力による加速度は直ちには０とならず、図７（Ａ）に示すように振動する。ただし、このときの加速度の最大値の絶対値は典型的には１Ｇより大きくなる。【００５８】
図７（Ｂ）にはＸ軸方向の加速度相関信号の変化を示す。図７（Ｂ）においても、横軸は時間であり、縦軸はＸ軸の正方向への加速度相関信号のレベルを示す。図７（Ｂ）に示すように、Ｘ軸方向への加速度はキャスティングロッド２０の振上げ開始時にはほぼ０Ｇであるが、振下ろして静止位置でキャスティングロッド２０を静止させる前後で大きな値を示す。この値も典型的には１Ｇを超える。【００５９】
振下ろし時、特にキャスティングロッド２０を静止位置まで振下ろしたときには、このようにＹ軸方向の加速度とＸ軸方向の加速度とがほぼ同時に、ともにかなり大きな値となることが分かった。ところで、このように静止位置まで振下ろして止めようとする場合、実際にはキャスティングロッド２０のＺ軸方向に大きな衝撃が加えられていることになる。キャスティングロッド２０にはＺ軸方向の加速度センサは備えられていないため、この衝撃を直接には検知できない。そこで、本実施の形態では次のようにしてＺ軸方向の衝撃の発生を検知し衝撃検出信号Ｚを出力する。後で詳しく説明するが、衝撃検出信号Ｚは、衝撃の大きさを３段階（弱、中、強）で示す２ビットの信号である。【００６０】
図８（Ａ）に示すように、まず、Ｙ軸方向の加速度Ｙの波形５０をＭＣＵ１１２に内蔵されたＡ／Ｄコンバータのサンプリング周波数でサンプリングし、加速度の絶対値があるしきい値を超える位置５４を検知する。そしてここから図８（Ｂ）に示すように時間Ｔの間にＸ軸方向の加速度Ｘの波形５２を同じくＭＣＵ１１２に内蔵されたＡ／Ｄコンバータのサンプリング周波数でサンプリングし、加速度の絶対値がしきい値を超えるようなピーク５６があるか否かを判定する。そのようなピーク５６が存在する場合には、Ｚ軸方向にその時点で衝撃が発生したものと判定し、衝撃検出信号Ｚを出力する。論理的には、ある時間Ｔの間に、Ｙ軸方向の加速度の絶対値がしきい値を超えた場合と、Ｘ軸方向の加速度の絶対値がしきい値を超えた場合とのＡＮＤをとることに相当する。本実施の形態では、しきい値として１Ｇを用いる。【００６１】
逆に、図９に示すように、Ｙ軸方向の加速度Ｙの大きさが１Ｇを超えても、そこから時間Ｔの間にＸ軸方向の加速度の波形６０において１Ｇを超えるようなピーク６２が検出できなかったり、そうしたピーク６２が検出されても時間Ｔが経過した後だったりした場合、衝撃はその時点では生じなかったものと判定する。【００６２】
すなわち、こうした処理により、Ｙ軸方向の加速度の絶対値がしきい値１Ｇを超えたと判定された後、所定の時間Ｔ内にＸ軸方向の加速度の絶対値がしきい値１Ｇを超えたことに応答して、Ｚ軸方向の衝撃を検出したことを示す衝撃検出信号Ｚが出力される。【００６３】
図１０に、Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値の組合せについて、上記したようにＺ軸方向に衝撃が生じたとの判定に用いられる領域を斜線領域５００、５０２、５０４及び５０６で示す。Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域５００、５０２、５０４及び５０６のうちのいずれかの領域に属するとき、Ｚ軸方向の衝撃が発生したと判定される。【００６４】
図１１に示すように、領域５００、５０２、５０４及び５０６の各々は、さらに、３つの領域６００（衝撃：強）、６０２（衝撃：中）、及び６０４（衝撃：弱）に分割される。Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域６００に属するときは、強い衝撃が発生したと判定され、衝撃検出信号Ｚを０ｂ１１とする。Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域６０２に属するときは、中程度の衝撃が発生したと判定され、衝撃検出信号Ｚを０ｂ１０とする。Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域６０４に属するときは、弱い衝撃が発生したと判定され、衝撃検出信号Ｚを０ｂ０１とする。なお、本明細書において、０ｂは二進数であることを示す。この衝撃検出信号Ｚの値を調べることにより、衝撃の規模を知ることができる。【００６５】
図１０に戻って、Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域５１８に属するときは、上方向への移動を指示する方向キーが操作されたと判定される。Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域５２０に属するときは、右上斜め方向への移動を指示する方向キーが操作されたと判定される。【００６６】
Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域５２２に属するときは、右方向への移動を指示する方向キーが操作されたと判定される。Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域５２４に属するときは、右下斜め方向への移動を指示する方向キーが操作されたと判定される。【００６７】
Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域５２６に属するときは、下方向への移動を指示する方向キーが操作されたと判定される。Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域５２８に属するときは、左下斜め方向への移動を指示する方向キーが操作されたと判定される。【００６８】
Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域５３０に属するときは、左方向への移動を指示する方向キーが操作されたと判定される。Ｘ軸方向の加速度ＸとＹ軸方向の加速度Ｙとの値により定まる点が、領域５３２に属するときは、左上斜め方向への移動を指示する方向キーが操作されたと判定される。【００６９】
このように、領域５１８〜５３２は、キャスティングロッド２０をコントローラとして用いる際に、方向キーに相当する操作がされたことを検出するために用いられる。【００７０】
一方、加速度Ｘ及びＹにより定まる点が、−０．５Ｇ〜＋０．５Ｇの領域５１６に属するときは、キャスティングロッド２０が静止していると判定される。なぜなら、キャスティングロッド２０を操作するのは人間であるため、操作を意図していない場合でも、つまり、単に把持しているだけでも、キャスティングロッド２０は、ある程度の動きを生じ、それ故、この程度の動きを方向キーの操作と認識しないためである。つまり、手ぶれ等によるチャタリング動作を防止するためである。【００７１】
なお、図１０において、領域５０８、５１０、５１２及び５１４は、上記した判定のいずれにも使用されない領域である。【００７２】
図１２は本実施の形態に係る釣り疑似体験システム１０の電気的構成を示すブロック図である。図１２を参照して、この実施の形態に係る釣り疑似体験システム１０では、アダプタ１２（図１を参照）に装着されているカートリッジ１４とキャスティングロッド２０とが、微弱電波を利用した無線によって、取得データや信号さらには制御データ等を送受信し、釣り疑似体験のための様々な処理を実現する。アダプタ１２は単なる中継装置としての役割しか果たさない。そのために、図１２においてはアダプタ１２の図示を省略してある。【００７３】
図１２に示すように、この実施の形態では、カートリッジ１４とキャスティングロッド２０の両方に、ＲＦモジュール１０４および１１０を設ける。そして、例えば本件出願人の製造販売にかかる「ＸａｖｉＸ」（商品名）のような高速プロセサからなるプロセサ１００がカートリッジ１４内に設けられ、ＲＦモジュール１０４がこのプロセサ１００に接続される。そして、先に説明したように、プロセサ１００で生成したＡＶ信号が、アダプタ１２のコネクタからＡＶケーブル１６を通して、テレビジョンモニタ１８に与えられる。カートリッジ１４にあるプロセサ１００には、外部メモリ１０２が接続される。【００７４】
キャスティングロッド２０には、ＲＦモジュール１１０に接続されたＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｅｒ  Ｕｎｉｔ）１１２が設けられる。このＭＣＵ１１２には、ロータリエンコーダ（フォトインタラプタ）１２０から２本のラインによりパルス信号が与えられる。このロータリエンコーダ１２０からの２本のパルス信号によって、ＭＣＵ１１２は、プレイヤによるハンドル３０の回転方向および回転速さを検出する。キャスティングロッド２０にはさらに、２軸加速度センサ回路１１８が設けられる。この２軸加速度センサ回路１１８は、キャスティングロッド２０のＹ軸方向の加速度とＸ軸方向の加速度とを検出しＸ軸方向及びＹ軸方向の二つの加速度相関信号をＭＣＵ１１２に与える。【００７５】
ＭＣＵ１１２では、与えられる加速度相関信号を加速度データに変換して、自身の一時メモリに蓄え、必要に応じて、ＲＦモジュール１１０および１０４を介して、プロセサ１００に伝送する。ＭＣＵ１１２は、また、ロータリエンコーダ１２０からの２本のパルス信号に基づいて、ハンドル３０の回転方向と回転速さとを検出し、それらのデータを、自身の一時メモリに蓄え、必要に応じて、プロセサ１００に伝送する。【００７６】
キャスティングロッド２０内のＭＣＵ１１２には、さらに、操作スイッチ２８からの操作信号が入力される。ＭＣＵ１１２では、その操作信号をＲＦモジール１１０および１０４を介して、プロセサ１００に伝送する。なお、操作スイッチ２８は、図２のスイッチ２８ａ及び２８ｃからなる。【００７７】
キャスティングロッド２０はさらに、ハンドル３０に対し負荷トルクを加えるためのモータ１１６及びそのドライバ１１４を含む。ドライバ１１４はＭＣＵ１１２に接続されており、ＭＣＵ１１２からドライバ１１４にモータオン／オフ信号が与えられる。モータドライバ１１４は、そのオン／オフ信号でオン／オフする図示しないスイッチングトランジスタを含む。スイッチングトランジスタがオンのとき、モータ１１６がオンとなり、スイッチングトランジスタがオフのとき、モータ１１６がオフとなる。【００７８】
外部メモリ１０２は、ＲＯＭ（読出専用メモリ）および／又はＲＡＭ（随時アクセス可能メモリ）であり、プログラム領域、データテーブル領域、画像データ領域、および音声データ領域を含む。プログラム領域には、後述の図１６〜図１８に示す制御プログラムが格納されていて、データテーブル領域には、例えば、異なる水場（釣りフィールド）毎に、天候、天候に応じた魚の種類、魚の分布・水深、および魚の大きさ（重量）等を示すデータテーブルが格納されている。画像データ領域には、テレビジョンモニタ１８に表示される釣り竿、釣り糸、ルアー、魚、魚の分布図、テンションインジケータ、および水面を含む水場等のすべての画像データや、他の必要な画像データが格納されている。音声データ領域には、音楽や効果音のための音声が格納されている。【００７９】
プロセサ１００は、図示しないが、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、グラフィックスプロセサ、サウンドプロセサおよびＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ等の各種機能ブロックを含むとともに、アナログ信号を取り込むときに用いられるＡ／Ｄコンバータ、キー操作信号のような入力デジタル信号を受けかつ出力デジタル信号を外部機器に与える入出力制御回路、及び内部メモリ等を含む。【００８０】
ＣＰＵは、外部メモリ１０２に格納された制御プログラムを実行する。Ａ／Ｄコンバータからのデジタル信号および入出力制御回路からのデジタル信号はＣＰＵに与えられ、ＣＰＵは、制御プログラムに従って、それらの信号に応じて必要な演算を実行する。グラフィックスプロセサは、外部メモリ１０２に格納された画像データに対して、ＣＰＵの演算結果によって必要になったグラフィック処理を実行して、テレビジョンモニタ１８に表示する画像を表すビデオ信号を生成する。サウンドプロセサは、外部メモリ１０２に格納された音声データに対して、ＣＰＵの演算結果によって必要になったサウンド処理を実行して、音楽や効果音を表すオーディオ信号を生成する。内部メモリは、例えば、ＲＡＭにより構成され、ワーキング領域、カウンタ領域、レジスタ領域、テンポラリデータ領域、及び／又はフラグ領域等として利用される。【００８１】
カートリッジ１４にあるプロセサ１００が、キャスティングロッド２０にあるＭＣＵ１１２から無線で伝送される計測又は検出信号（データ）に基づいて釣り疑似体験のための画像や音楽あるいは効果音等を生成し、それをテレビジョンモニタ１８に与える。また、プロセサ１００は、モータ制御信号すなわちモータオン／オフ信号を、無線を介して、ＭＣＵ１１２に伝送する。このとき、プロセサ１００は、ＭＣＵ１１２から与えられるハンドル３０の回転方向と回転速さとのデータ、及びプロセサ１００が保持している、魚（仮想空間中）の大きさ（重量）データに基づいて、そのときの釣り糸（仮想空間中）のテンションを算出し、そのテンションに基づいて負荷トルクのレベルを決定する。【００８２】
さて、次に、プロセサ１００が生成しテレビジョンモニタ１８に表示される釣り疑似体験のためのプレイ画面について例を挙げながら説明する。【００８３】
図１３は、釣り疑似体験のためのプレイ画面の例示図である。図１３に示すように、この画面は、釣竿オブジェクト（以下、「釣竿」と呼ぶ。）３１０、釣り糸オブジェクト（以下、「釣り糸」と呼ぶ。）３１２、およびルアーオブジェクト（以下、「ルアー」と呼ぶ。）３１４を含む。この画面の表示の際、参照符号３１６に示すように、プロセサ１００は、釣竿３１０の向きを、プレイヤがキャスティングロッド２０により指示した方向に応じた向きに設定する。この際、キャスティングロッド２０は、後述するように方向キーとしての動作をすることができる。また、プロセサ１００は、プレイヤが振下ろしたときのキャスティングロッド２０のキャスティングの強さ（つまり、Ｚ軸方向の衝撃の強さＺ（強、中、弱）、あるいはＺ軸方向の衝撃の強さＺＡ（後述））および釣竿３１０の向きに基づいて、ルアー３１４の着水位置および釣り糸３１２の長さを算出する。【００８４】
さらに、このプレイ画面は、魚分布図２９０、水深指標２９８、時刻表示部３００、重量表示部３０２、及び距離表示部３０４を含む。魚分布図２９０には、仮想空間中の池３０６に存在する魚２９２の分布と、ルアー３１４の位置２９４とが示される。魚分布図２９０の魚２９２は、各々が位置する水深に応じた色に着色されているので、プレイヤは、魚の分布のみならず水深をも知ることができる。水深指標２９８は、池３０６の深さを色で示すものであり、３メートル単位の５段階で示される。図中、水深指標２９８のハッチングの違いは色の違いを示している。魚分布図２９０の魚２９２の色は、その水深に応じて、水深指標２９８の５段階の色のいずれかで表される。【００８５】
時刻表示部３００には、仮想空間中での時刻が表示される。重量表示部３０２には、プレイヤが釣った魚の重量の合計が表示される。距離表示部３０４には、キャスティング距離が表示される。【００８６】
図１３を参照して、プレイヤは、最初にキャスティングの方向を定める。この際には、キャスティングロッド２０の２軸加速度センサ回路１１８を入力装置として用いることができる。すなわち、キャスティングロッド２０を静止位置（図１０の領域５１６）から、ほぼＸ軸に沿って正あるいは負方向に動かす（あるいは把持部２４の末端を中心とした左右への回動）と、Ｘ軸方向及びＹ軸方向の重力加速度により定まる点が、図１０の領域５３０あるいは５２２に属するようになる。この加速度信号の変化を用いることにより、ちょうど通常のキーボードに配置された左右の矢印キーとしての機能をキャスティングロッド２０により実現できる。具体的には、キャスティングロッド２０を左方向に動かすと上記した点は領域５３０に属し、右方向に動かすと領域５２２に属する。したがって検出された加速度信号により定まる点が領域５３０に属する場合には左方向の矢印キーが押されたと解釈し、領域５２２に属する場合には右方向の矢印キーが押されたものと解釈できる。【００８７】
さらに、キャスティングロッド２０を上下方向に動かす（あるいは把持部２４の末端を中心として上下に回動させる）ことにより、Ｘ軸方向及びＹ軸方向の重力加速度により定まる点が、図１０の領域５１８あるいは５２６に属するようになる。この加速度信号の変化を用いることにより、通常のキーボードに配置されている上下の矢印キーと同じ機能をキャスティングロッド２０により実現できる。具体的には、キャスティングロッド２０を上方向に動かすとＸ軸方向及びＹ軸方向の重力加速度により定まる点が領域５１８に属し、下方向に動かすと領域５２６に属する。したがって検出された加速度信号により定まる点が領域５１８に属する場合には上方向の矢印キーが押されたと解釈し、領域５２６に属する場合には下方向の矢印キーが押されたものと解釈できる。【００８８】
さらに、キャスティングロッド２０を斜め方向に動かすことにより、Ｘ軸方向及びＹ軸方向の重力加速度により定まる点が、図１０の領域５２０、５２４、５２８、あるいは５３２に属するようになる。この加速度信号の変化を用いることにより、右上斜め、右下斜め、左下斜め、及び左上斜め方向の矢印キーと同じ機能をキャスティングロッド２０により実現できる。具体的には、キャスティングロッド２０を右上斜め方向に動かすとＸ軸方向及びＹ軸方向の重力加速度により定まる点が領域５２０に属し、右下斜め方向に動かすと領域５２４に属し、左下斜め方向に動かすと領域５２８に属し、左上斜め方向に動かすと領域５３２に属する。したがって検出された加速度信号により定まる点が領域５２０に属する場合には右上斜め方向の矢印キーが押されたと解釈し、領域５２４に属する場合には右下斜め方向の矢印キーが押されたものと解釈し、領域５２８に属する場合には左下斜め方向の矢印キーが押されたものと解釈し、領域５３２に属する場合には左上斜め方向の矢印キーが押されたものと解釈できる。【００８９】
このように矢印キーの機能を実現するためにキャスティングロッド２０を操作する場合、キャスティング時のように、遠心力により大きな加速度が生じることはない。したがって、この場合には、加速度の値は比較的小さく、Ｘ軸方向及びＹ軸方向の双方において−１Ｇ〜１Ｇの範囲であることを前提とする。これ以外の領域に加速度の値があるときには、プロセサ１００は方向を定める操作として期待されているものとは異なる操作がキャスティングロッド２０に対してなされたものと判定し、その加速度を無視する。もちろん、逆にキャスティングが期待されているときに、Ｘ軸方向及びＹ軸方向の双方において−１Ｇ〜１Ｇの範囲に属するような加速度が検出された場合には、その加速度はプロセサ１００により無視される。【００９０】
釣りの疑似体験が開始され、このプレイヤがキャスティングロッド２０をキャスティングのために振上げると、キャスティングロッド２０に取付けられた２軸加速度センサ回路１１８により検出される加速度は図１０の領域５１８に属する。プロセサ１００は、ＲＦモジュール１１０及び１０４を介してＭＣＵ１１２から、加速度が領域５１８に属することを示すデータを受け取り、図１４に示すように、このデータに応じて釣竿３１０を振上げるアニメーションを作成する。プロセサ１００はこの際、釣り糸３１２及びルアー３１４についても実際の動きと同様のアニメーションを作成し、表示する。【００９１】
そして、プレイヤがキャスティングロッド２０を振下ろし、静止させようとしたときには、Ｘ軸方向の加速度及びＹ軸方向の加速度により定まる点は、領域５００、５０２、５０４、あるいは５０６のいずれかに属する（Ｚ軸方向の衝撃の検知に相当）。プロセサ１００は、ＲＦモジュール１１０及び１０４を介してＭＣＵ１１２から、加速度がこれらの領域のいずれかに属することを示すデータＺを受け取り、このデータＺに応じて、図１５に示すように釣竿３１０を振下げるアニメーションを作成し、釣竿３１０のアニメーションを釣竿３１０の静止位置で静止させる。このとき、キャスティングの強さ（つまり、Ｚ軸方向の衝撃の強さＺ（強、中、弱）、あるいはＺ軸方向の衝撃の強さＺＡ（後述））と、釣竿３１０の方向とに応じてルアー３１４の着水位置を決め、釣り糸３１２とルアー３１４が飛翔し、ルアー３１４が着水するアニメーションを作成する。着水位置までの距離を算出し、距離表示部３０４に表示する。【００９２】
このように、Ｘ軸方向とＹ軸方向との２軸加速度センサのみを用い、振下ろしの急速な停止に伴ってキャスティングロッド２０のＺ軸方向に生ずる衝撃を検知し、衝撃が検知されたタイミングにあわせて実際のキャスティングを疑似体験させるようなアニメーションを作成できる。【００９３】
なお、上記したように、Ｘ軸方向とＹ軸方向との２軸加速度センサを用いると、例えば画面に表示された複数のボタンのうちからいずれかを選択する場面で、左右、上下、又は斜めにカーソルを移動してボタンを選択できる。また、所望のボタンの位置にカーソルがあるときにスイッチ２８ａ（決定キー）を操作することで、そのボタンを押したことが検出される。なお、決定キーを操作するかわりに、キャスティングロッド２０を軽くキャスティングすることによりＺ軸方向に生ずる衝撃を検知することにより、決定キーと同じ機能を実現してもよい。【００９４】
本実施の形態では、カートリッジ１４のプロセサ１００はテレビジョンモニタ１８に送信するビデオ信号の１フレームごとに、キャスティングロッド２０に対してデータのリクエストを送り、キャスティングロッド２０はそのリクエストに応答する形で、キャスティングロッド２０に対するプレイヤの種々の操作を示す信号をカートリッジ１４に送信する。プロセサ１００は、釣りの疑似体験におけるシーンの設定、プレイヤの操作の解釈、その解釈に基づく疑似体験の新たな環境の計算等を、キャスティングロッド２０からのデータに基づいて行なう。プロセサ１００からＭＣＵ１１２に送信されるリクエストには、例えばファイティング時にハンドル３０の回転に対して与えるべき負荷を示すモータ制御信号が含まれている。この負荷は、釣りの疑似体験の場面に応じてプロセサ１００により算出される。【００９５】
図１６は、キャスティングロッド２０のＭＣＵ１１２における処理の流れの一例を示すフローチャートである。この処理はキャスティングロッド２０の電源が投入されると開始される。【００９６】
図１６を参照して、ステップ（以下単に「Ｓ」と表記する。」）１４０において、ＭＣＵ１１２は、内蔵のメモリやレジスタの初期化を行う。Ｓ１４２において、ＭＣＵ１１２は、プロセサ１００に対するデータの出力を行なう。ここではＭＣＵ１１２は、カートリッジ１４に送信するデータ（後述のＳ１４４，Ｓ１４６及びＳ１４８で算出・取得したキャスティングロッド２０のＺ軸方向の衝撃データ、方向データ（方向フラグ）、ハンドル３０の回転速度データ、並びに操作スイッチ２８のオン／オフデータ等）をＲＦモジュール１１０に与え、ＲＦモジュール１１０及び１０４を介してプロセサ１００にそのデータを送信する。【００９７】
Ｓ１４４においてＭＣＵ１１２は、キャスティングロッド２０のＺ軸方向への衝撃があったか否かを検知する処理を実行する。この詳細については図１７を参照して後述する。この後、Ｓ１４６においてＭＣＵ１１２は、キャスティングロッド２０に対し方向キーとして動作させる操作がされたか否かを検出する。この際にＭＣＵ１１２が実行する処理の詳細については図１８を参照して後述する。続いてＳ１４８において他の処理を実行する。ここで実行される処理は、ロータリエンコーダ１２０の出力の読出し、ロータリエンコーダ１２０からの２本のパル信号に基づいて、ハンドル３０の回転速さ及び回転方向、つまり、回転速度を算出する処理、プロセサ１００に送るデータの整形処理、操作スイッチ２８からのオン／オフデータの取得、モータ１１６の制御等を含む。そしてＳ１５０において、プロセサ１００からデータのリクエストを受信するまで待機する。リクエストがあればＳ１５２に進み、リクエスト中からモータ１１６の制御信号を読出して一時バッファに格納する。この後Ｓ１４２に進み、プロセサ１００に対してＲＦモジュール１１０を介して衝撃データ、方向データ等のデータを送信し、Ｓ１４４以下の処理を繰返す。【００９８】
Ｓ１５２において、ＭＣＵ１１２は、カートリッジ１４のプロセサ１００から受け取った送信データに含まれるモータ制御信号を読出す。ＭＣＵ１１２は、受信したデータから読出されたモータ制御信号を一時バッファに格納する。このデータを用いて次のサイクルでステップ１４８においてドライバ１１４を介してモータ１１６を駆動する。この駆動により、ハンドル３０をプレイヤが回転させる際の負荷が、疑似体験の場面によって変化する。【００９９】
プロセサ１００からのリクエストは、１フレーム毎に送られてくる。したがって、ＭＣＵ１１２は、１フレーム毎に、ＲＦモジュール１１０を介してプロセサ１００からの送信データを取得する。【０１００】
図１７に、図１６のＳ１４４で行なわれる衝撃の検出処理の詳細を示す。図１７を参照して、Ｓ１６０において、所定の時間３Ｔを計時するタイマ（以下「３Ｔタイマ」と呼ぶ。）を起動する。ここで、Ｔは、Ｚ軸方向の衝撃を検出するために設定された時間であり、図８及び図９を参照して説明したように、Ｙ軸方向の加速度の大きさが所定のしきい値１Ｇを超えてから時間Ｔの間にＸ軸方向の加速度もしきい値１Ｇを超えたときに、衝撃があったものと判定されるような時間である。ここでは、この判定を行なうためのウィンドウとして、上記した時間Ｔの３倍に相当する時間３Ｔだけ、２軸加速度センサ回路１１８の出力を観測する。【０１０１】
続いて、Ｓ１６２において、時間３Ｔの間に観測されたＸ軸方向及びＹ軸方向の加速度の絶対値から１Ｇを除いた分の最大値をそれぞれ表す変数ＸＭＡＸ及びＹＭＡＸに０を代入する。本実施の形態では、２軸加速度センサ回路１１８が出力する、加速度を示す値（Ｘ軸方向の値をＸ、Ｙ軸方向の値をＹとする。）は０〜２５５の範囲であり、０が−４Ｇ、３２が−３Ｇ、６４が−２Ｇ、９６が−１Ｇ、１２８が０Ｇ、１６０が＋１Ｇ、１９２が＋２Ｇ、２２４が＋３Ｇ、２５６が＋４Ｇ（但し、上限が２５５なので＋４Ｇは計測できない。）に対応する。変数ＸＭＡＸ及びＹＭＡＸは、それぞれＸ軸方向及びＹ軸方向の加速度を示す値Ｘ，Ｙのうち、絶対値が１Ｇを超えた部分の最大値（正）を表す。【０１０２】
Ｓ１６４において、３Ｔタイマが満了したか否か、すなわち衝撃の発生を観測すべきウィンドウが終了したか否かが判定される。満了していればＳ１８８に進み、さもなければＳ１６６に進む。Ｓ１８８以降の処理については後述する。【０１０３】
Ｓ１６６では、２軸加速度センサ回路１１８の出力する値Ｘ，Ｙ（０≦Ｘ，Ｙ≦２５５）を読み、所定のバッファに格納する。【０１０４】
Ｓ１６８では、Ｙ−１２８の絶対値が３２より大きいか否かを判定する。前述したとおり、１２８は０Ｇに相当し、Ｙ−１２８の絶対値が３２より大きければ、Ｙ方向の加速度は１Ｇより大きいということになる。Ｓ１６８での判定結果がＹＥＳであればＳ１７０に進み、それ以外の場合にはＳ１６４に戻る。【０１０５】
Ｓ１７０では、Ｔタイマを起動する。Ｔタイマは、時間Ｔを計時するためのタイマである。Ｓ１７０ではまた、｜Ｙ−１２８｜の値を変数ＹＭＡＸに代入する。【０１０６】
Ｓ１７２ではＴタイマが満了したか否かを判定する。Ｔタイマが満了していればＳ１８８に進む。満了していなければＳ１７４に進む。【０１０７】
Ｓ１７４では３Ｔタイマが満了したか否かを判定する。３Ｔタイマが満了していればＳ１８８に進む。満了していなければＳ１７６に進む。【０１０８】
Ｓ１７６では、２軸加速度センサ回路１１８の出力Ｘ，Ｙを読み、それぞれ所定のバッファに格納する。【０１０９】
Ｓ１７８では、｜Ｙ−１２８｜がＹＭＡＸの値を超えているか否かを判定する。超えていればＳ１８０において｜Ｙ−１２８｜をＹＭＡＸに代入し、Ｔタイマを再起動する。【０１１０】
Ｓ１８２では、｜Ｘ−１２８｜が３２より大きいか否かを判定する。前述したとおり、１２８は０Ｇに相当し、Ｘ−１２８の絶対値が３２より大きければ、Ｘ方向の加速度は１Ｇより大きいということになる。Ｓ１８２での判定結果がＹＥＳであればＳ１８４に進み、それ以外の場合にはＳ１７２に戻る。【０１１１】
続いてＳ１８４では、｜Ｘ−１２８｜がＸＭＡＸを超えているか否かを判定する。超えていれば、Ｓ１８６で｜Ｘ−１２８｜をＸＭＡＸに代入する。この後、Ｓ１７２に戻る。【０１１２】
Ｓ１７２〜Ｓ１８６の処理を繰返すことにより、｜Ｙ−１２８｜の値が３２を超えるたびに｜Ｙ−１２８｜の値がＹＭＡＸに代入される。同時にＴタイマが再起動され、Ｔタイマが満了する前に｜Ｘ−１２８｜の値が３２を超えれば｜Ｘ−１２８｜の値がＸＭＡＸに代入される。もしもＴタイマの満了又は３Ｔタイマの満了のどちらか早い方までに｜Ｘ−１２８｜の値が３２を超えることがなければ、ＸＭＡＸの値は初期値、すなわち０のままとなる。【０１１３】
さて、Ｓ１８８ではＸＭＡＸの値が０か否かが判定される。ＸＭＡＸ＝０であればＳ１９０でＺ軸方向の衝撃の大きさを段階的（強、中、弱）に表す変数Ｚに０ｂ００を代入するとともに、Ｚ軸方向の衝撃の大きさを表す変数ＺＡに０を代入する。一方、ＸＭＡＸが０でなければ、Ｙ軸方向の加速度の値が１Ｇを超えた最大値をとってから時間Ｔの間に、Ｘ軸方向の加速度の値も１Ｇを超えたということである。したがってＺ軸方向の衝撃が発生したと判定され、次のＳ１９２に進む。【０１１４】
Ｓ１９２では、ＸＭＡＸ及びＹＭＡＸがともに、９６を超えているか否かを判定する。前述したとおり、１２８は０Ｇに相当するので、ＸＭＡＸ及びＹＭＡＸがともに９６より大きければ、Ｘ軸及びＹ軸方向の加速度はともに３Ｇより大きいということになる。つまり、Ｘ軸及びＹ軸方向の加速度により定まる点は、図１１の領域６００に属することになり、強い衝撃が検知されたと判定される。従って、ＸＭＡＸ及びＹＭＡＸがともに、９６を超えている場合は、Ｓ１９４に進んで、強い衝撃を検知したことを表す０ｂ１１を変数Ｚに代入する。一方、それ以外では、Ｓ１９６に進む。【０１１５】
Ｓ１９６では、ＸＭＡＸ及びＹＭＡＸがともに、６４を下回っているか否かを判定する。前述したとおり、１２８は０Ｇに相当するので、ＸＭＡＸ及びＹＭＡＸがともに６４より小さければ、Ｘ軸及びＹ軸方向の加速度はともに２Ｇより小さいということになる。つまり、Ｘ軸及びＹ軸方向の加速度により定まる点は、図１１の領域６０４に属することになり、弱い衝撃が検知されたと判定される。従って、ＸＭＡＸ及びＹＭＡＸがともに、６４を下回る場合は、Ｓ１９７に進んで、弱い衝撃を検知したことを表す０ｂ０１を変数Ｚに代入する。一方、それ以外では、Ｘ軸及びＹ軸方向の加速度により定まる点は、図１１の領域６０２に属することになり、中程度の衝撃が検知されたと判定され、Ｓ１９８に進む。Ｓ１９８では、中程度の衝撃を検知したことを表す０ｂ１０を変数Ｚに代入する。【０１１６】
Ｓ１９９にて、本実施の形態では、変数ＺＡの値としてＸＭＡＸとＹＭＡＸとの関数、例えばこれらの算術平均値をとる。これでこの処理は終了する。【０１１７】
上記した処理では、図１１の領域５００、５０２、５０４、及び５０６の各々を、３つの領域６００、６０２、及び６０４に分割して、衝撃の強さを３段階で表した。ただし、これには限定されず、分割の数及び範囲（つまり、衝撃の強さを表す領域の数及び範囲／形状）は、任意に変更できる。例えば、衝撃の強さを段階的に知る必要がないときは分割をせず、また、衝撃の強さをより細かく段階的に知る必要があるときは、分割の数を４以上とする。もちろん、分割の数は２でもよい。【０１１８】
また、上記した処理では、一旦Ｙ軸方向の加速度の絶対値が１Ｇを超えた後、時間Ｔが経過するまでの間の、Ｙ軸方向の加速度の絶対値と１Ｇとの差の最大値、及びＸ軸方向の加速度の絶対値と１Ｇとの差の最大値をとり、それらの関数として変数ＺＡの値を定めている。こうすることにより、ＺＡの値は衝撃の大きさをある程度の精度で表すものと考えられる。しかし本発明はそのような実施の形態には限定されない。例えば衝撃の大きさの精度が低くてもよい場合には、最初にＹ軸方向の加速度の絶対値が１Ｇを超えたときのその差の大きさと、それから所定時間内に最初にＸ軸方向の加速度の絶対値が１Ｇを超えたときのその差の大きさとの関数で変数ＺＡの値を決めてもよい。又は、単に最初にＹ軸方向の加速度の絶対値が１Ｇを超えたときのその差の大きさによって、変数ＺＡの値を決めてもよい。【０１１９】
なお、キャスティングロッド２０のＸ軸方向及びＹ軸方向の加速度データをＭＣＵ１１２からプロセサ１００に送信して、上記した図１７の処理をプロセサ１００が実行することも可能である。もちろん、上記した図１７の処理結果に加えて、Ｘ軸方向及びＹ軸方向の加速度データをプロセサ１００に送信することも可能である。【０１２０】
図１８は、図１６のＳ１４６で行なわれる方向キー処理のフローチャートである。ここでも２軸加速度センサ回路１１８の出力Ｘ，Ｙが使用される。【０１２１】
まずＳ２００において、初期化処理が行なわれる。この処理では、フラグＦＲ，ＦＬ，ＦＵ，ＦＢ，ＦＲＵ，ＦＲＢ，ＦＬＵ，ＦＬＢ及びＦＭＬに０が代入される。これらフラグはそれぞれ、キャスティングロッド２０のＸ軸方向及びＹ軸方向の加速度により定まる点が、図１０の領域５２２、５３０、５１８、５２６、５２０、５２４、５３２、５２８、及び５１６に属することを示すフラグである。つまり、フラグＦＲ，ＦＬ，ＦＵ，ＦＢ，ＦＲＵ，ＦＲＢ，ＦＬＵ，ＦＬＢ及びＦＭＬはそれぞれ、キャスティングロッド２０が、右方向に動かされ（回動され）たこと、左方向に動かされ（回動され）たこと、上方向に動かされ（回動され）たこと、下方向に動かされ（回動され）たこと、右斜め上方向に動かされたこと、右斜め下方向に動かされたこと、左斜め上方向に動かされたこと、左斜め下方向に動かされたこと、及び、静止していること、を示す。これらフラグは、それぞれ「１」が代入されていると対応する方向にキャスティングロッド２０が動かされ（回動され）ていることを示し、「０」が代入されているとその方向には動かされ（回動され）ていないことを示すものとする。キャスティングロッド２０からプロセサ１００に送るデータとして、このフラグを送信することにより、実際のＸ軸方向及びＹ軸方向の加速度データをそのまま送信する場合と比較して送信データ量が少なくて済む。また、プロセサ１００での処理量も少なく済む。ただし、送信速度が十分高ければ加速度データをそのまま送信してもよいことはもちろんである。この場合、図１８の処理をプロセサ１００が実行する。もちろん、図１８の処理結果に加えて、Ｘ軸方向及びＹ軸方向の加速度データをプロセサ１００に送信することも可能である。【０１２２】
Ｓ２０２において、２軸加速度センサ回路１１８の出力する加速度を示す値Ｘ，Ｙを読み、所定のバッファに格納する。【０１２３】
Ｓ２０４において、値Ｘが１４４より大きくかつ１６０以下か否かを判定する。この条件が充足されていればＳ２０６に進み、さもなければＳ２１８に進む。Ｓ２０４からＳ２１６までの処理は、値Ｘ及びＹにより定まる点が、図１０の領域５２０、５２２、及び５２４のうちのいずれの領域に属するかを判定するための処理である。【０１２４】
Ｓ２０６において、値Ｙが１４４より大きくかつ１６０以下か否かを判定する。この条件が充足されていればＳ２０８に進み、さもなければＳ２１０に進む。Ｓ２０８では、値Ｘ及びＹにより定まる点が、領域５２０に属することを示すフラグＦＲＵに１が代入される。【０１２５】
Ｓ２１０において、値Ｙが１１２より大きくかつ１４４以下か否かを判定する。この条件が充足されていればＳ２１２に進み、さもなければＳ２１４に進む。Ｓ２１２では、値Ｘ及びＹにより定まる点が、領域５２２に属することを示すフラグＦＲに１が代入される。【０１２６】
Ｓ２１４において、値Ｙが９６以上かつ１１２以下か否かを判定する。この条件が充足されていればＳ２１６に進み、さもなければ処理を終了する。Ｓ２１６では、値Ｘ及びＹにより定まる点が、領域５２４に属することを示すフラグＦＲＢに１が代入される。【０１２７】
一方、Ｓ２０４で「ＮＯ」が判断された後Ｓ２１８において、値Ｘが１１２以上かつ１４４以下か否かを判定する。この条件が充足されていればＳ２２０に進み、さもなければＳ２３２に進む。Ｓ２１８からＳ２３０までの処理は、値Ｘ及びＹにより定まる点が、図１０の領域５１８、５１６、及び５２６のうちのいずれの領域に属するかを判定するための処理である。【０１２８】
Ｓ２２０において、値Ｙが１４４より大きくかつ１６０以下か否かを判定する。この条件が充足されていればＳ２２２に進み、さもなければＳ２２４に進む。Ｓ２２２では、値Ｘ及びＹにより定まる点が、領域５１８に属することを示すフラグＦＵに１が代入される。【０１２９】
Ｓ２２４において、値Ｙが１１２より大きくかつ１４４以下か否かを判定する。この条件が充足されていればＳ２２６に進み、さもなければＳ２２８に進む。Ｓ２２６では、値Ｘ及びＹにより定まる点が、領域５１６に属することを示すフラグＦＭＬに１が代入される。【０１３０】
Ｓ２２８において、値Ｙが９６以上かつ１１２以下か否かを判定する。この条件が充足されていればＳ２３０に進み、さもなければ処理を終了する。Ｓ２３０では、値Ｘ及びＹにより定まる点が、領域５２６に属することを示すフラグＦＢに１が代入される。【０１３１】
一方、Ｓ２１８で「ＮＯ」が判断された後Ｓ２３２において、値Ｘが９６以上かつ１１２より小さいか否かを判定する。この条件が充足されていればＳ２３４に進み、さもなければ処理を終了する。Ｓ２３２からＳ２４４までの処理は、値Ｘ及びＹにより定まる点が、図１０の領域５３２、５３０、及び５２８のうちのいずれの領域に属するかを判定するための処理である。【０１３２】
Ｓ２３４において、値Ｙが１４４より大きくかつ１６０以下か否かを判定する。この条件が充足されていればＳ２３６に進み、さもなければＳ２３８に進む。Ｓ２３６では、値Ｘ及びＹにより定まる点が、領域５３２に属することを示すフラグＦＬＵに１が代入される。【０１３３】
Ｓ２３８において、値Ｙが１１２より大きくかつ１４４以下か否かを判定する。この条件が充足されていればＳ２４０に進み、さもなければＳ２４２に進む。Ｓ２４０では、値Ｘ及びＹにより定まる点が、領域５３０に属することを示すフラグＦＬに１が代入される。【０１３４】
Ｓ２４２において、値Ｙが９６以上かつ１１２以下か否かを判定する。この条件が充足されていればＳ２４４に進み、さもなければ処理を終了する。Ｓ２４４では、値Ｘ及びＹにより定まる点が、領域５２８に属することを示すフラグＦＬＢに１が代入される。【０１３５】
さて、動作において、プレイヤは、まず、釣竿３１０の向きを選択するモードにおいて、キャスティングロッド２０を左右に傾けることにより、テレビジョンモニタ１８に表示された釣竿３１０の向きを所望の方向に調整する。この際には、前述したフラグＦＲ，ＦＬ，ＦＵ，ＦＢ，ＦＲＵ，ＦＲＢ，ＦＬＵ，ＦＬＢ及びＦＭＬが使用される。この釣竿３１０の向きがキャスティングの方向となる。そして、プレイヤは、キャスティングロッド２０を振って、キャスティング動作を行なう。そうすると、Ｚ軸方向の衝撃が発生したか否かが２軸加速度センサ回路１１８のＸ軸方向の出力とＹ軸方向の出力とによって判定され、変数Ｚ及びＺＡに、対応する値が設定される。この変数Ｚ又はＺＡにより、キャスティングの強さ及びタイミングが定められる。【０１３６】
プロセサ１００は、初期データを用いて釣りの擬似体験のシチュエーションを生成し、テレビジョンモニタ１８に表示する。テレビジョンモニタ１８に表示する映像の１フレームごとにプロセサ１００はＭＣＵ１１２に対してデータのリクエスト信号を送る。ＭＣＵ１１２は、ロータリエンコーダ１２０から得られたハンドル３０の回転速度データ、操作スイッチ２８の出力、２軸加速度センサ回路１１８の出力から得られたＺ軸方向の衝撃に関するデータＺ及びＺＡを１フレームごとにプロセサ１００返信する。プロセサ１００は、このデータを、擬似体験プログラムの動作フェーズにあわせて適宜解釈する。なお、加速度データＸ及び／又はＹを送信するようにした場合は、プロセサ１００は、これらのデータを処理に利用できる。【０１３７】
疑似体験の実行中には、プロセサ１００は、ＭＣＵ１１２からのデータを用いて擬似体験のシチュエーションを更新する。すなわち、プロセサ１００は、ＭＣＵ１１２からのデータを用いた釣竿３１０の向き、傾きなどを算出し、表示を更新する。このとき、何らかの条件が充足されると魚がかかったこととし、プロセサ１００はキャスティングロッド２０のＭＣＵ１１２に対してハンドル３０に対する負荷トルクを増加させるためのモータ制御信号を送信する。ＭＣＵ１１２は、この信号に応じてモータ１１６のオン／オフを制御し、ハンドル３０を回転させる際にかかる負荷トルクを変化させる。【０１３８】
さて、以上のように、本実施の形態によれば、キャスティングロッド２０とカートリッジ１４とが分離しているので、これらが有線で接続される場合と比較して、プレイヤによるキャスティングロッド２０の操作が容易になる。そればかりでなく、無線接続でありながらも、カートリッジ１４では、キャスティングロッド２０のハンドル３０の回転速度およびキャスティングロッド２０の加速度に基づいて釣りの演出を制御できるため、釣りの疑似体験の迫真性を高めることができる。また、キャスティングロッド２０では、カートリッジ１４の演出に基づいてハンドル３０への負荷を制御できる。【０１３９】
さらに、キャスティングロッド２０を振下ろしてキャスティング動作を行なったとき、キャスティングロッド２０のＺ軸方向に生ずる衝撃を、２軸加速度センサ回路１１８を用いて簡単な処理により検出できる。三軸加速度センサを用いずに、Ｚ軸方向に生ずる衝撃を検出できるため、キャスティングロッド２０の製造コストを下げることができる。【０１４０】
また、２軸加速度センサ回路１１８からの出力を用いて、キャスティングロッド２０の移動方向（あるいは回動方向）を検出できる。これら検出結果を方向キーに対応する操作とみなして、釣りの疑似体験の動作条件を設定したりすることができる。【０１４１】
これらの場合、キャスティングロッド２０では２軸加速度センサ回路１１８から得た情報をどのように使用するかまでは考慮する必要はなく、検出された衝撃を示す値及びキャスティングロッド２０の移動方向（あるいは回動方向）を示すフラグをカートリッジ１４に送信すればよく、キャスティングロッド２０において擬似体験の場面に応じた複雑な処理をする必要はない。したがって、キャスティングロッド２０には、カートリッジ１４のプロセサ１００よりもパフォーマンスが小さいＭＣＵ１１２を搭載すれば足り、キャスティングロッド２０およびカートリッジ１４の双方に、同程度のパフォーマンスを有するプロセサやＭＣＵを搭載する必要はなく、コストを低減できる。【０１４２】
なお、上述の実施の形態では、カートリッジ１４のプロセサ１００とキャスティングロッド２０のＭＣＵ１１２との間でデータや信号をやり取りするために微弱電波による無線方式を採用した。しかしながら、電波に代えて、赤外線で信号やデータを送受信するようにしてもよい。この場合には、カートリッジ１４およびキャスティングロッド２０にそれぞれ赤外線の送受信機を設ければよいが、両者間に遮蔽物があると赤外線の送受信が難しいので、キャスティングロッド２０の赤外線送受信機とカートリッジ１４の赤外線送受信機（ともに図示せず）とは互いの見通し位置になければならない。電波を使用する場合には、そのような制約はない。【０１４３】
上記した実施の形態では、キャスティングロッド２０の上下、左右、及び斜め方向への移動（あるいは回動）を、通常のコントローラに用いられる方向キーの機能を実現するために使用している。この機能は、本実施の形態に利用可能なだけでなく、様々な場面に応用できる。【０１４４】
例えば図１９に示すＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）画面３４０を考える。このＧＵＩ画面３４０には、複数のボタン３５０〜３６４が二次元的に配置されており、右端には８つの方向キー３８２〜３８９からなるキー３８０が表示される。これら複数のボタン３５０〜３６４のいずれかを選択するためには、通常は方向キー３８２〜３８９を押して所望のボタンまでカーソル（ポインタ、又はフォーカスでもよい。）を移動させた後、決定キーを押す。しかし本実施の形態では、キャスティングロッド２０というコントローラ自体の姿勢を変えることにより、方向キー３８２〜３８９を押したのと同様にカーソルを移動させることができる。【０１４５】
この場合、前述のフラグＦＲ，ＦＬ，ＦＵ，ＦＢ，ＦＲＵ，ＦＲＢ，ＦＬＵ，及びＦＬＢが、それぞれ、ボタン３８８、３８４、３８２、３８６、３８９、３８７、３８３、及び３８５に対応し、プロセサ１００は、１がセットされたフラグに対応するボタンが押下されたと判定する。【０１４６】
また、図２０に示すＧＵＩ画面４００のように、複数のボタン４１０のみが表示され、図１９に示すキー３８０が表示されていない場合でも、キャスティングロッド２０の姿勢を変えることにより、横方向４０４、縦方向４０２、斜め方向４０６、及び斜め方向４０８に沿って、任意の位置にカーソルを移動させることができる。【０１４７】
この場合、前述のフラグＦＲ，ＦＬ，ＦＵ，ＦＢ，ＦＲＵ，ＦＲＢ，ＦＬＵ，及びＦＬＢが、それぞれ、右方向、左方向、上方向、下方向、右斜め上方向、右斜め下方向、左斜め上方向、及び左斜め下方向に対応し、プロセサ１００は、１がセットされたフラグに対応する方向にカーソルを動かす。【０１４８】
なお、決定キーを押すことに代えて、上記した実施の形態のように２軸加速度センサ回路１１８の２軸と異なる第３番目の軸方向の衝撃を検出したときに（例えば、Ｚ＝０ｂ００以外）決定キーが押されたものと判定する実装を行なってもよい。この場合、コントローラに決定キーが不要となり、コントローラを実際の道具によく似たものにすることができる。【０１４９】
このようにキャスティングロッド２０のようなコントローラを、方向キーとして用いることができるため、擬似体験中に表示される特定のオブジェクトを、コントローラを用いて移動させたり、回転させたりする制御を実現することも容易である。さらに、上記したＺ軸方向の衝撃の検出を用い、オブジェクトを例えば遠くへ放り投げる、というような動作の疑似体験を実現することもできる。【０１５０】
さらに、上記した２軸加速度センサ回路１１８を用いたインターフェースを用いると、テレビジョンモニタ１８の画面上に２次元的に配置されたオブジェクトだけではなく、３次元的に配置されたオブジェクトの選択をすることもできる。【０１５１】
例えば図２１を参照して、第１の画面４３０に、多数のオブジェクト４４０，４４２及び４４４が表示されていたものとする。これらのうち、オブジェクト４４０が最も上層に、オブジェクト４４２がその下層に、オブジェクト４４４が最も下層に配置されているものとする。この画面で最も下層に配置されたオブジェクト４４４のいずれかを選択することも不可能ではないが、上層のオブジェクトに隠されて選択することができないオブジェクトも存在する。【０１５２】
この問題を解決するために、上記した実施の形態のキャスティングロッド２０における、Ｚ軸方向の衝撃の検出を使用できる。すなわち、Ｚ軸方向の衝撃が検出されたときに、この３次元的に配置された各層の間で表示を移動させるような制御をすることができる。例えばＺ軸の正方向（下方向）への衝撃が検出されたら（例えば、Ｚ＝０ｂ００以外）１層だけ下に移動した表示（画面４５０に示す。）に変化させることができる。つまり、キャスティングロッド２０をプレイヤが１回キャスティングすると、画面４３０から画面４５０に表示を変化させることができる。【０１５３】
画面４５０では、最上層のオブジェクトは画面の周辺領域に移動し、第２層のオブジェクト４４２が主として表示される。最下層のオブジェクト４４４はさらにその下層に表示される。この状態では、第２層のオブジェクト４４２を容易に選択できる。また最下層のオブジェクト４４４についても画面４３０のときより容易に選択できる。この状態でも最下層のオブジェクト４４４のうち、所望のものの選択がむずかしかったり、オブジェクトが見にくかったりした場合には、さらにもう一回だけキャスティングロッド２０をキャスティングすると、画面４７０に表示を変化させることができる。【０１５４】
画面４７０では、第２層のオブジェクトは画面の周辺領域に移動し、最下層のオブジェクト４４４が主として表示される。この状態では、最下層のオブジェクト４４４を容易に選択できる。【０１５５】
キャスティングロッド２０を振上げることにより、画面４７０から画面４５０に、さらに画面４３０に、表示を戻す制御も可能である。振上げと振下げとの区別には、Ｙ軸方向の加速度が負となったか正となったかを判定すればよい。振上げたときにはＹ軸方向の加速度はほぼゼロから正の値となるのに対し、振下げたときには正の値から負の値となる。この判定をＭＣＵ１１２で行い、振上げか振下げかを示すフラグをプロセサ１００に送信する。もちろん、Ｙ軸方向の加速度をプロセサ１００に送信して、プロセサが判定してもよい。【０１５６】
こうした制御に、さらに２軸加速度センサ回路１１８によって検出されるＺ軸方向の衝撃を表すデータＺＡを加味することにより、さらに便利なＧＵＩ画面を構築できる。データＺＡはキャスティングロッド２０を振下ろす（又は振上げる）速度に応じた大きさとなる。その大きさを、上記したように各階層を上下する際の階層差の決定に使用する。例えばデータＺＡがある範囲であれば１層だけ表示を移動させ、もっと大きなある範囲であれば２層だけ表示を移動させ、さらに大きな範囲であれば３層だけ表示を移動させる、というような制御を実現することもできる。この場合、表示されるオブジェクトが非常に多数あり、表示層の数が多くなる場合に特に有効である。【０１５７】
また、Ｚ軸方向の衝撃を表すデータＺＡではなく、Ｚ軸方向の衝撃を段階的に表すデータＺを利用することもできる。例えば、Ｚ＝０ｂ０１であれば１層だけ表示を移動させ、Ｚ＝０ｂ１０であれば２層だけ表示を移動させ、Ｚ＝０ｂ１１であれば３層だけ表示を移動させる、というような制御を実現することもできる。【０１５８】
こうしたインターフェースでは、表示されている最上層のオブジェクトだけでなく、その下層、さらにその下層のオブジェクトまで見ることができるので、多数のオブジェクトから目的のオブジェクトを容易に見つけ出すことができる。さらに階層間の移動を、簡単かつ容易な動作で行なうことができるので、多数のオブジェクトからの目的オブジェクトの選択が極めて容易になるという効果がある。またこの場合、オブジェクトを階層別に表示する必要はなく、単にオブジェクトをランダムに、３次元的に配置しておいて、その中の空間を進んでいくような形式のインターフェースとすることもできる。【０１５９】
なお、上記した３次元的なインターフェースは、２軸加速度センサを用いるものであるが、こうした３次元的なインタフェース自体は３軸加速度センサを用いても実現できる。また、１軸加速度センサを用いた場合、上記したような２次元的及び３次元的なインタフェースを構築することはむずかしいが、例えば一次元的に配置されたオブジェクトのいずれかを選択するような場合には、２軸加速度センサを用いたものと同様の仕組みよりユーザインタフェースを１軸加速度センサを用いて実現できる。【０１６０】
また、上記実施の形態では、プロセサ１００及び外部メモリ１０２をカートリッジ１４に設けたが、これらをキャスティングロッド２０に搭載して、キャスティングロッド２０とテレビジョンモニタ１８とをＡＶケーブル１６で接続することもできる。この場合、アダプタ１２、カートリッジ１４、並びにＲＦモジュール１０４及び１１０は不要である。また、ＭＣＵ１１２を省いて、ＭＣＵ１１２が行っていた処理をプロセサ１００が行うこともできる。【０１６１】
さらに、上記した実施の形態では、Ｙ軸方向の加速度の絶対値がしきい値１Ｇを超えたと判定された後、所定の時間Ｔ内にＸ軸方向の加速度の絶対値がしきい値１Ｇを超えたことに応答して、Ｚ軸方向の衝撃を検出したことを示す衝撃検出信号Ｚが出力される。すなわち、これら加速度がしきい値１Ｇを超えたときの、加速度の絶対値の関数として衝撃検出信号Ｚが出力される。しかし本発明はそのような実施の形態には限定されない。例えば、Ｙ軸方向の加速度の絶対値又はＸ軸方向の加速度の絶対値がしきい値１Ｇを超えた後、加速度の絶対値としきい値１Ｇとの差の関数として、衝撃検出信号Ｚを出力するようにしてもよい。【０１６２】
以上、本発明を実施の形態により詳細に説明したが、当業者にとっては、本発明が本願中に説明した実施の形態に限定されるものではないということは明らかである。本発明は、請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。従って、本願の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。
【産業上の利用可能性】
【０１６３】
本発明は、利用者に擬似的な体験をさせる疑似体験装置、及びそのためのコントローラの製造と、そうした疑似体験装置及びコントローラを用いる疑似体験のためのコンピュータソフトウエアの製造とに利用できる。
【図１】
2007116459.tif 000003
【図２】
2007116459.tif 000004
【図３】
2007116459.tif 000005
【図４】
2007116459.tif 000006
【図５】
2007116459.tif 000007
【図６】
2007116459.tif 000008
【図７】
2007116459.tif 000009
【図８】
2007116459.tif 000010
【図９】
2007116459.tif 000011
【図１０】
2007116459.tif 000012
【図１１】
2007116459.tif 000013
【図１２】
2007116459.tif 000014
【図１３】
2007116459.tif 000015
【図１４】
2007116459.tif 000016
【図１５】
2007116459.tif 000017
【図１６】
2007116459.tif 000018
【図１７】
2007116459.tif 000019
【図１８】
2007116459.tif 000020
【図１９】
2007116459.tif 000021
【図２０】
2007116459.tif 000022
【図２１】
2007116459.tif 000023
【国際調査報告】
2007116459.tif 000024
2007116459.tif 000025
2007116459.tif 000026
2007116459.tif 000027
2007116459.tif 000028
2007116459.tif 000029