(57)【要約】  【課題】  プレイヤが操作するハンドルの回転に応じて、表示された操作オブジェクトの動きを制御する場合において、操作抵抗としての、ハンドルを回転させるトルクを発生して、自然現象をより的確に演出できるゲーム機を提供することである。  【解決手段】  プレイヤ９が操作するハンドル２０の回転に応じて、テレビジョンモニタ５に表示された操作オブジェクト４０の動きを制御する場合において、操作抵抗として、操作オブジェクト４０の表示位置に応じて、ハンドル２０を回転させるトルクを発生する。従って、プレイヤ９によるハンドル２０の回転だけでなく、モータ５０の駆動のみによっても、操作オブジェクト４０が動くことになって、自然現象をより的確に演出できる。【選択図】  図２
2006247183.tif 000002
【特許請求の範囲】
【請求項１】
プレイヤに把持されて、プレイヤにより回転が与えられるハンドルと、
前記ハンドルの回転量及び回転方向を検出する検出手段と、
前記ハンドルの回転量及び回転方向に応じて、表示装置に表示された操作オブジェクトの動きを制御する制御手段と、
前記操作オブジェクトの表示位置に応じた回転方向に、前記操作オブジェクトの表示位置に応じて、前記ハンドルを回転させるトルクを発生して、そのトルクを前記ハンドルに伝達するトルク発生手段と、を備えるゲーム機。
【請求項２】
前記検出手段は、ロータリエンコーダであり、
前記制御手段は、ゲームプログラムに従った演算を実行して、ビデオ信号及びオーディオ信号を生成するプロセッサであり、
前記トルク発生手段は、直流モータと、その直流モータを駆動するための駆動手段と、を含み、
前記プロセッサは、前記駆動手段を介して、前記直流モータのＰＷＭ制御を行うことにより、前記直流モータに対して、前記操作オブジェクトの表示位置に応じた回転方向に、前記操作オブジェクトの表示位置に応じて、前記ハンドルを回転させるトルクを発生させる、請求項１記載のゲーム機。
【請求項３】
プレイヤによる無操作の状態が一定時間発生した場合に、駆動している前記直流モータを停止させる停止手段をさらに備える請求項１記載のゲーム機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォースフィードバック機能を有するゲーム機及びその関連技術に関する。
【背景技術】
【０００２】
特許文献１には、フォースフィードバック機能付ジョイスティックが開示されている。このようなジョイスティックでは、ゲームプログラムに基づいて、振動や操作抵抗が与えられる。
【０００３】
一方、特許文献２には、ドライブビデオゲーム装置が開示されている。このビデオゲーム装置では、ゲーム状況（事故、スピン、コースアウトあるいは悪路走行）に応じて、モータ駆動用パルスを発生し、モータを駆動して、ハンドルを振動させる。その機構は次の通りである。ハンドルが取り付けられるハンドル軸は、回動自在に、かつ、軸方向には不動に、回動板に取り付けられる。この回動板は、その一端の回転軸によって、回動自在である。モータを駆動して、この回動板をその回転軸を中心として揺動させる。すると、回動板に取付けられたハンドル軸が、その軸方向に振動し、これに伴いハンドルも振動する。このように、ハンドル自体をその軸方向に振動させて、臨場感の向上を図っている。
【０００４】
【特許文献１】特開平１１−１６１４２３号公報
【特許文献２】特開平３−９７４８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献２のビデオゲーム装置では、その機構が複雑であるため、コストの増大を招いたり、不具合が発生する確率も高くなる。また、ゲームによっては、上記のような、ハンドル軸方向の振動を与えることが馴染まない場合もある。さらに、特許文献２では、モータの駆動が、表示されている操作オブジェクト（レーシングカー等）の動きに影響を与えることはない。このため、自然現象の演出が不十分な場合も発生する。
【０００６】
そこで、本発明の目的は、プレイヤが操作するハンドルの回転に応じて、表示された操作オブジェクトの動きを制御する場合において、操作抵抗としての、ハンドルを回転させるトルクを発生して、自然現象をより的確に演出できるゲーム機及びその関連技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明の観点によれば、ゲーム機は、プレイヤに把持されて、プレイヤにより回転が与えられるハンドルと、前記ハンドルの回転量及び回転方向を検出する検出手段と、前記ハンドルの回転量及び回転方向に応じて、表示装置に表示された操作オブジェクトの動きを制御する制御手段と、前記操作オブジェクトの表示位置に応じた回転方向に、前記操作オブジェクトの表示位置に応じて、前記ハンドルを回転させるトルクを発生して、そのトルクを前記ハンドルに伝達するトルク発生手段と、を備える。
【０００８】
この構成によれば、プレイヤが操作するハンドルの回転に応じて、表示された操作オブジェクトの動きを制御する場合において、操作抵抗として、操作オブジェクトの表示位置に応じて、ハンドルを回転させるトルクを発生する。従って、プレイヤによるハンドルの回転だけでなく、モータの駆動のみによっても、操作オブジェクトが動くことになって、自然現象をより的確に演出できる。例えば、坂道を自転車で下る場合、ペダル（本発明に係るハンドルに相当）をこがなくても、自転車（本発明に係る操作オブジェクトに相当）は、重力によって、自然に下っていく。本発明によれば、ゲーム画面において、このような自然現象を的確に演出できる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
【００１０】
図１は、本発明の実施の形態によるゲームシステムの全体構成を示すブロック図である。図１に示すように、このゲームシステムは、ゲーム機１、及びテレビジョンモニタ５を備える。ゲーム機１は、Ａ／Ｖケーブル３により、テレビジョンモニタ５に接続される。さらに、ゲーム機１には、図示していないが、ＡＣアダプタあるいは電池により電源電圧が供給される。
【００１１】
図２は、図１のゲーム機１の斜視図である。図２に示すように、このゲーム機１は、基部３６、胴部３４、及び把持部２２により形成される。基部３６は、略直方体状に形成され、第１側面、第２側面、第３側面、及び第４側面を有する。第３側面には、ＤＣジャック３２が設けられると共に、Ａ／Ｖケーブル３が接続される。基部３６に続く胴部３４は、略円筒状に形成され、その円筒軸を中心に回転自在にハンドル２０が取り付けられる。また、胴部３４には、電源スイッチ３０が設けられる。胴部３４に続く把持部２２は、略板状に形成され、第１側面、第２側面、第３側面、及び第４側面を有する。第２側面には、ジャンプボタン２４が設けられ、第３側面には、方向スイッチ２６及び２８が設けられる。
【００１２】
図１も参照して、プレイヤ９は、例えばテーブル７の上にゲーム機１を載置する。そして、プレイヤ９は、左手で把持部２２を把持し、ジャンプボタン２４並びに方向スイッチ２６及び２８を押下したり、右手でハンドル２０を回しながら、テレビジョンモニタ５に映し出された操作オブジェクト４０（後述）を操作して、ゲームを行う。
【００１３】
図３は、図１のテレビジョンモニタ５に表示されるゲーム画面の例示図である。図３に示すように、このゲーム画面は、操作オブジェクト４０、及び地面画像４２を含む。図上、地面画像４２は、右下がりの緩やかな斜面４４、それに連なる水平面４６、さらにそれに連なる右上がりの急な斜面４８からなる。
【００１４】
図２のハンドル２０が時計回り（順方向）に回転すると、操作オブジェクト４０は、その回転速度に応じた速度で、図上、左から右へ移動する。一方、ハンドル２０が反時計回り（逆方向）に回転すると、操作オブジェクト４０は、その回転速度に応じた速度で、図上、右から左へ移動する。
【００１５】
また、操作オブジェクト４０が、斜面４４に位置する場合は、後述の直流モータ５０は、ハンドル２０を時計回りに回転させるトルクを発生する。従って、この場合、プレイヤ９は、ハンドル２０を時計回りに回転させる場合は軽く感じ、反時計回りに回転させる場合は重く感じる。
【００１６】
一方、操作オブジェクト４０が、斜面４８に位置する場合は、直流モータ５０は、ハンドル２０を反時計回りに回転させるトルクを発生する。従って、この場合、プレイヤ９は、ハンドル２０を時計回りに回転させる場合は重く感じ、反時計回りに回転させる場合は軽く感じる。
【００１７】
以上のように、直流モータ５０によって、ハンドル２０に操作抵抗（負荷）を加えることにより、つまり、フォースフィードバック機能を設けることにより、操作オブジェクト４０に加わる重力を表現し、それをプレイヤ９に体感させることができる。しかも、斜面の傾斜に応じて、操作抵抗の大きさを異ならせている。つまり、斜面４４のように緩やかな斜面では、操作抵抗を小さく設定し、斜面４８のように急な斜面では、操作抵抗を大きく設定する。従って、プレイヤ９は、より緻密な操作感を楽しむことができる。ただし、操作オブジェクト４０が、水平面４６に位置する場合は、直流モータ５０は停止状態となり、操作抵抗は加えられない。
【００１８】
図４は、図１のテレビジョンモニタ５に表示されるゲーム画面の他の例示図である。図４に示すように、このゲーム画面は、操作オブジェクト４０及び道画像４３を含む。プレイヤ９が、ハンドル２０を時計回りに回転させると、その回転速度に応じた速度で、画面がスクロールされ、操作オブジェクト４０が、道画像４３の上を進んでいく様子が表示される。また、プレイヤ９が、方向スイッチ２６を押下すると、操作オブジェクト４０が矢印Ｌのほうへ向きを変え、方向スイッチ２８を押下すると、操作オブジェクト４０が矢印Ｒのほうへ向きを変える。さらに、プレイヤ９が、ジャンプボタン２４を押下すると、操作オブジェクト４０がジャンプする。このジャンプボタン２４による操作は、図３のゲーム画面でも同様である。ただし、図３ゲーム画面では、方向スイッチ２６及び２８からの入力は受け付けられない。
【００１９】
図５は、図２のハンドル２０に操作抵抗（負荷）を加える機構の図解図である。図５に示すように、胴部３４の内部に固定される板状部材６２の表面に、直流モータ５０が固定され、直流モータ５０の回転軸にはギア５２が取り付けられる。一方、ハンドル２０が連結される回転軸６０には、ギア５８が取り付けられる。そして、直流モータ５０のギア５２と回転軸６０のギア５８とは、ギア５４及び５６により連結される。従って、直流モータ５０の回転は、回転軸６０に伝達され、ひいては、ハンドル２０に伝達される。このような機構をもって、ハンドル２０に操作抵抗が加えられる。
【００２０】
一方において、直流モータ５０による操作抵抗の有無に関係なく、プレイヤ９によるハンドル２０の回転により、連結された回転軸６０が回転する。
【００２１】
図６は、図２のハンドル２０の回転量／方向を検出する機構の図解図である。図６に示すように、板状部材６２の裏面には、基板６３が取り付けられ、この基板６３には、一定間隔で配置されたフォトトランジスタ２３０及び２３２（後述）からなるフォトトランジスタユニット７４、及び赤外発光ダイオード７２が搭載される。
【００２２】
一方、円筒部材７０の中心を貫いて回転軸６０が固定される。なお、図では、説明の便宜のため、回転軸６０を円筒部材７０に固定する前（貫く前）の状態を示している。この円筒部材７０の側壁（円筒面）は櫛形に形成され、これにより、光遮断部（遮光部）と光通過部とが交互に形成される（櫛形部７１）。円筒部材７０が回転軸６０に固定された状態では、櫛形部７１は、フォトトランジスタユニット７４と赤外発光ダイオード７２との間に位置する。従って、赤外発光ダイオード７２からの赤外光は、櫛形部７１を介して、フォトトランジスタユニット７４に入射する。このため、回転軸６０に取り付けられたハンドル２０の回転に応じて、つまり円筒部材７０の回転に応じて、フォトトランジスタユニット７４に、間欠的に赤外光が入射する。
【００２３】
以上のようにして、円筒部材７０、フォトトランジスタユニット７４、及び赤外発光ダイオード７２により、ロータリエンコーダ１１４が構成され、円筒部材７０の回転量及び回転方向、つまり、ハンドル２０の回転量及び回転方向が検知される。
【００２４】
図７は、図１のゲーム機１の電気的構成を示す図である。図７に示すように、ゲーム機１は、プロセッサ１００、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）１０２、バス１０４、モータユニット１１０、ドライブユニット１１２、ロータリエンコーダ１１４、スイッチユニット１１６、並びにショートランド１０６及び１０８を含む。
【００２５】
プロセッサ１００は、操作オブジェクト４０の位置に応じて、ドライブユニット１１２を介して、直流モータ５０のＰＷＭ（ｐｕｌｓｅ  ｗｉｄｔｈ  ｍｏｄｕｌａｔｉｏｎ）制御を行う。これにより、ハンドル２０に操作抵抗が与えられる。また、プロセッサ１００は、ロータリエンコーダ１１４からの二本のパルス信号を受けて、ハンドル２０の回転量及び方向を検出し、検出結果に応じて、操作オブジェクト４０の移動速度及び移動方向（図３の場合）、並びに画面のスクロール速度（図４の場合）を制御する。さらに、プロセッサ１００は、スイッチユニット１１６を構成するジャンプボタン２４並びに方向スイッチ２６及び２８からのオン／オフ信号を受けて、操作オブジェクト４０の動きを制御する。
【００２６】
プロセッサ１００は、図示しないが、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、グラフィックプロセッサ、サウンドプロセッサおよびＤＭＡプロセッサ等の各種プロセッサを含むとともに、アナログ信号を取り込むときに用いられるＡ／Ｄコンバータや、外部の電子回路や電子部品等から入力信号を受け、かつ出力信号をそれらに与える入出力制御回路を含む。入出力制御回路に含まれる図示しないカウンタ（以下、「内蔵カウンタ」と呼ぶ。）が、ロータリエンコーダ１１４からの二本のパルス信号を受けて、ハンドル２０の回転量及び回転方向を検出する。入出力制御回路に対する入出力は、入出力ポートＩＯ０〜ＩＯ１５を介して行われる。なお、入出力ポートＩＯ６〜ＩＯ１５の図示は省略している。
【００２７】
ＣＰＵは、ＲＯＭ１０２に格納されたゲームプログラムを実行し、各種演算を行う。グラフィックプロセッサやサウンドプロセッサは、ＣＰＵによる演算結果に従って、ＲＯＭ１０２に格納された画像データや音声データを読み込んで、ビデオ信号やオーディオ信号を生成し、Ａ／Ｖケーブル３に出力する。
【００２８】
さらに、プロセッサ１００には、図示しないが内部メモリが設けられ、この内部メモリは、例えば、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）により構成される。内部メモリは、ワーキング領域、カウンタ領域、レジスタ領域、テンポラリデータ領域、及び／又はフラグ領域等として利用される。
【００２９】
図８は、図７のモータユニット１１０及びドライブユニット１１２の回路図である。図８に示すように、ドライブユニット１１２は、抵抗素子１６０〜１７６及びトランジスタ１８０〜１９０を含む。抵抗素子１７６及び１７４の一方端は、トランジスタ１９０のベースに接続され、抵抗素子１７６及び１７４の他方端は、それぞれ、入出力ポートＩＯ３及び接地に接続される。トランジスタ１８６のエミッタとトランジスタ１９０のコレクタとの間には、抵抗素子１７０及び１７２が直列に接続され、それらの接続点は、トランジスタ１８６のベースに接続される。トランジスタ１８６のコレクタとトランジスタ１８８のコレクタとが接続され、その接続点が、ダイオード２０２のアノード及びダイオード２０４のカソードに接続される。
【００３０】
抵抗素子１６０及び１６２の一方端は、トランジスタ１８０のベースに接続され、抵抗素子１６０及び１６２の他方端は、それぞれ、入出力ポートＩＯ２及び接地に接続される。トランジスタ１８２のエミッタとトランジスタ１８０のコレクタとの間には、抵抗素子１６４及び１６６が直列に接続され、それらの接続点は、トランジスタ１８２のベースに接続される。トランジスタ１８２のコレクタとトランジスタ１８４のコレクタとが接続され、その接続点が、ダイオード２００のアノード及びダイオード２０６のカソードに接続される。
【００３１】
トランジスタ１９０のエミッタは、トランジスタ１８４のベースに接続され、トランジスタ１８０のエミッタは、トランジスタ１８８のベースに接続される。トランジスタ１８２及び１８６のエミッタ、並びにダイオード２００及び２０２のカソードは、電源Ｖｃｃに接続される。トランジスタ１８４及び１８８のエミッタ、並びにダイオード２０４及び２０６のアノードは、抵抗素子１６８の一方端に接続され、その他方端は接地される。
【００３２】
モータユニット１１０は、直流モータ５０及びコンデンサ１５２〜１５６を含む。直流モータ５０の一方端子は、トランジスタ１８６及び１８８の接続点に接続され、その他方端子は、トランジスタ１８２及び１８４の接続点に接続される。
【００３３】
動作を説明する。入出力ポートＩＯ２の値がローレベル（「０」）に設定されている場合において、入出力ポートＩＯ３の値がハイレベル（「１」）に設定されると、トランジスタ１９０，１８６及び１８４がオンになる。従って、電源Ｖｃｃから、順方向（矢印ａ）に電流が流れる。これにより、直流モータ５０が、順方向（時計回り）に回転する。一方、入出力ポートＩＯ３の値がローレベル（「０」）に設定されている場合において、入出力ポートＩＯ２の値がハイレベル（「１」）に設定されると、トランジスタ１８０，１８２及び１８８がオンになる。従って、電源Ｖｃｃから、逆方向（矢印ｂ）に電流が流れる。これにより、直流モータ５０が、逆方向（反時計回り）に回転する。
【００３４】
直流モータ５０が発生するトルクのレベル（つまり、ハンドル２０の操作抵抗のレベル）として、９つのレベル０〜８が用意されている。このトルクのレベルは、入出力ポートＩＯ３（順方向に回転させる場合）あるいは入出力ポートＩＯ２（逆方向に回転させる場合）に設定するハイレベルの期間をコントロールすることにより設定される（ＰＷＭ制御）。
【００３５】
図９は、図８の直流モータ５０のＰＷＭ制御の説明図である。直流モータ５０を順方向に回転させる場合を想定する。そうすると、入出力ポートＩＯ２の値はローレベル（「０」）に設定される。一方、入出力ポートＩＯ３については、発生させるトルクのレベルに応じて、一定期間Ｔ（図の例では１０ｍｓ（ミリ秒））でのハイレベル（「１」）期間が設定される。
【００３６】
レベル０では、一定期間Ｔにおいて、入出力ポートＩＯ３の値が「０」に設定されるため、モータ５０に電流が流れず、駆動しない（トルクは発生しない）。レベルｔ（ｔ＝１〜８）では、一定期間Ｔにおいて、入出力ポートＩＯ３の値が（１×ｔ）ｍｓ（ミリ秒）の間「１」に設定されるため、「１」に設定された期間に応じて、モータ５０に電流が流れ、駆動する（トルクが発生する）。ここで、トルクの大きさは、レベル１＜２＜３＜４＜５＜６＜７＜８、となり、一定期間Ｔでのハイレベル（「１」）期間が長くなるほど大きくなる。
【００３７】
一方、モータ５０を逆方向に回転させる場合は、順方向に回転させる場合の上記説明において、入出力ポートＩＯ２とＩＯ３とを入れ替えて考えればよい。
【００３８】
図１０は、図８の直流モータ５０の性能バラツキを吸収するための手法の説明図である。図１０の設定４の場合は、図７のショートランド１０６及び１０８は、ショートされず、それ故、入出力ポートＩＯ０及びＩＯ１の値は、ローレベル（「０」）となる。設定３の場合は、ショートランド１０６がショートされ、ショートランド１０８はショートされず、それ故、入出力ポートＩＯ０及びＩＯ１の値は、それぞれ、ハイレベル（「１」）及びローレベル（「０」）となる。設定２の場合は、ショートランド１０６がショートされず、ショートランド１０８はショートされ、それ故、入出力ポートＩＯ０及びＩＯ１の値は、それぞれ、ローレベル（「０」）及びハイレベル（「１」）となる。設定１の場合は、ショートランド１０６及び１０８が、ショートされ、それ故、入出力ポートＩＯ０及びＩＯ１の値は、ハイレベル（「１」）となる。
【００３９】
プロセッサ１００は、設定１〜４に応じて、トルクコード＃０〜＃１０を設定する。例えば、設定４では、トルクコード＃０を設定したときは、図９のレベル０が設定され、トルクコード＃１を設定したときは、図９のレベル１が設定され、トルクコード＃２を設定したときは、図９のレベル２が設定され、トルクコード＃３を設定したときは、図９のレベル３が設定され、トルクコード＃４及び＃５を設定したときは、図９のレベル４が設定され、トルクコード＃６を設定したときは、図９のレベル５が設定され、トルクコード＃７を設定したときは、図９のレベル６が設定され、トルクコード＃８を設定したときは、図９のレベル７が設定され、トルクコード＃９及び＃１０を設定したときは、図９のレベル８が設定される。
【００４０】
例えば、デフォルトとして、設定４にしておく。ところが、直流モータ５０の仕様が同じでも、性能のバラツキが存在する場合がある。例えば、プロセッサ１００が同じパルス（図９参照）をドライブユニット１１２に与えた場合でも、発生するトルクが特に大きい直流モータ５０もある。この場合、このような直流モータ５０に対して、他の標準的な直流モータ５０と同じＰＷＭ制御を行うと、必要以上に大きなトルクが発生してしまう。この場合、そのような直流モータ５０を搭載するゲーム機１においては、性能のバラツキの程度に応じて、ショートランド１０６及び／又は１０８をショートして、設定３、設定２、あるいは設定１を設定する。そうすると、図１０から明らかなように、同じトルクコード＃ｘ（ｘ＝０〜１０）を設定した場合でも、トルクのレベルは、設定４、設定３、設定２、及び設定１の順に小さくなる。例えば、トルクコード＃９に注目すると、設定４、設定３、設定２、及び設定１では、それぞれ、トルクのレベルは、レベル８、レベル６、レベル４、及びレベル２となって、発生するトルクは段々小さくなる（図９参照）。このように、設定１〜４を適宜変更することにより、直流モータ５０の性能のバラツキを吸収できる。
【００４１】
図１１は、図７のロータリエンコーダ１１４の回路図である。図１１に示すように、ロータリエンコーダ１１４は、赤外発光ダイオード７２並びに２つのフォトトランジスタ２３０及び２３２を含む。抵抗素子２２４及び赤外発光ダイオード７２は、電源Ｖｃｃと接地との間に直列に接続される。フォトトランジスタ２３０及び２３２のコレクタは、電源Ｖｃｃに接続され、エミッタは、それぞれプロセッサ１００の入出力ポートＩＯ５及びＩＯ４に接続される。
【００４２】
図６の円筒部材７０が回転すると、その櫛形部７１により、赤外発光ダイオード７２の光が間欠的に、フォトトランジスタ２３０及び２３２に入力される。これにより、フォトトランジスタ２３０及び２３２のエミッタからはパルス信号が出力される。ただし、フォトトランジスタ２３０及び２３２は、一定間隔で配置されているため、２つのパルス信号の位相は、フォトトランジスタ２３０及び２３２の間隔並びに櫛形部７１の隣り合う遮光部同士の間隔に応じて異なったものとなる。プロセッサ１００は、この二本のパルス信号に基づいて、円筒部材７０（つまりハンドル２０）の回転量及び回転方向を検出する。
【００４３】
図１２は、図７のプロセッサ１００による処理の流れの一例を示すフローチャートである。図１２及び後述の図１３の説明では、直流モータ５０によるトルクのレベルとして、図９と同じレベル０〜８を例に挙げる。従って、上記した一定期間Ｔは、１０ｍｓである。
【００４４】
ステップＳ１では、プロセッサ１００は、システムの初期設定を実行する（後述のカウンタｋ及びトルクコード＃ｘ（ｘ＝０〜１０）の「０」設定を含む）。ステップＳ２にて、プロセッサ１００は、内蔵のタイマをセットする。例えば、１ｍｓ（ミリ秒）ごとにタイマによる割り込みが発生するようにセットする。これは、直流モータ５０のＰＷＭ制御のための設定である。
【００４５】
ステップＳ３にて、プロセッサ１００は、内蔵カウンタの値を取得する。取得した値は、円筒部材７０（つまりハンドル２０）の回転量及び回転方向を表している。つまり、この内蔵カウンタは、ロータリエンコーダ１１４からの回転量及び回転方向を表す二本のパルス信号を受けて、その位相関係に応じて、アップカウント（円筒部材７０（つまりハンドル２０）が時計回りに回転する場合）あるいはダウンカウント（円筒部材７０（つまりハンドル２０）が反時計回りに回転する場合）を実行して、入力パルスの数をカウントする。従って、内蔵カウンタから取得した値の絶対値は、円筒部材７０（つまりハンドル２０）の回転量を示し、その符号は、回転方向を示す。プロセッサ１００は、内蔵カウンタから取得した値の符号に応じて、方向フラグの値をセットする。ステップＳ４にて、プロセッサ１００は、内蔵カウンタをクリアする。
【００４６】
ステップＳ５にて、プロセッサ１００は、ハンドル２０の回転量及び回転方向、並びにスイッチユニット１１６からのオン／オフ信号に基づいて、操作オブジェクト４０の位置を算出する。
【００４７】
ステップＳ６にて、プロセッサ１００は、操作オブジェクト４０の位置に応じて、直流モータ５０を制御するためのパラメータを設定する。このパラメータは、直流モータ５０の回転方向（順方向／逆方向）、及び発生するトルクのレベル０〜８（トルクコード＃０〜＃１０）である。
【００４８】
ここで、ゲーム画面上の各位置に対して、直流モータ５０の回転方向及びトルクコードが予め割り当てられている。例えば、図３のゲームでは、右下がりの斜面４４が、８つ用意され、各斜面４４に、直流モータ５０の回転方向として順方向が割り当てあられると共に、その傾斜に応じて、トルクコードが割り当てられる。この場合、斜面４４の傾斜が大きいほど、大きいトルクを発生するように、トルクコードが割り当てられる。また、右上がりの斜面４８が、８つ用意され、各斜面４８に、直流モータ５０の回転方向として逆方向が割り当てあられると共に、その傾斜に応じて、トルクコードが割り当てられる。この場合、斜面４８の傾斜が大きいほど、大きいトルクを発生するように、トルクコードが割り当てられる。さらに、水平面４６には、トルクのレベルが「０」を示すトルクコードが割り当てられ、それ故、この場合は、直流モータ５０は駆動されない。
【００４９】
ステップＳ７にて、プロセッサ１００は、操作オブジェクト４０が、直流モータ５０が駆動される位置にあって（図３では、斜面４４あるいは４８）、かつ、３つのスイッチ２４，２６及び２８のいずれからもオン入力が一定時間（例えば１分間）ない場合は、直流モータ５０が停止するように、パラメータを設定する。つまり、トルクのレベルが「０」を示すトルクコードを設定する。これにより、無操作の状態が一定時間続いた場合に、直流モータ５０が回転し続けることを防止でき、消費電力の抑制を図ることができる。
【００５０】
ステップＳ８では、プロセッサ１００は、ビデオ同期信号による割り込みが発生したときは（例えば、１／６０秒ごと）、ステップＳ９に進み、ビデオ信号を新たに生成して表示画像を更新し、割り込み待ちの状態であれば、同じステップＳ８に進む。ステップＳ９では、プロセッサ１００は、ステップＳ５の結果に応じて、テレビジョンモニタ５に表示される画像（ビデオフレーム）の更新処理を実行する。また、プロセッサ１００は、ビデオ同期信号による割り込みの発生に応じて、ステップＳ１０にて、音声処理を実行し、それによって、オーディオ信号が生成され、音楽や効果音が出力される。ステップＳ１１のＰＷＭ制御は、タイマ割り込みが発生したときに実行される。
【００５１】
図１３は、図１２のステップＳ１１のＰＷＭ制御の流れの一例を示すフローチャートである。図１３に示すように、ステップＳ２０にて、プロセッサ１００は、カウンタｋの値と、現在設定されているトルクコード＃ｘ（ｘ＝０〜１０）が示すトルクレベル（図９参照）と、を比較して、カウンタｋの値が小さいときは、ステップＳ２４に進み、入出力ポートＩＯ２及びＩＯ３の値を「０」に設定し、それ以外は、ステップＳ２１に進む。
【００５２】
ここで、カウンタｋは、タイマ割り込みの回数をカウントするものであり、この例では、１ｍｓごとにカウントアップされる。
【００５３】
ステップＳ２１では、プロセッサ１００は、方向フラグを参照して、ハンドル２０の回転方向を判定し、逆方向の回転の場合はステップＳ２２に進んで、入出力ポートＩＯ２及びＩＯ３の値を、それぞれ、「１」及び「０」に設定し、順方向の回転の場合はステップＳ２３に進んで、入出力ポートＩＯ２及びＩＯ３の値を、それぞれ、「０」及び「１」に設定する。
【００５４】
ステップＳ２５では、プロセッサ１００は、カウンタｋの値を参照して、ｋ＝１０のときはステップＳ２７に進み、それ以外はステップＳ２６に進んで、カウンタｋをインクリメントする。一方、ステップＳ２７では、プロセッサ１００は、トルクレベルが「０」を示すトルクコード＃ｘを設定する。ステップＳ２８では、プロセッサ１００は、カウンタｋに「０」を設定（クリア）する。
【００５５】
以上のようにして、カウンタｋは、１ｍｓごとにカウントアップされ、一定期間Ｔ（つまり１０ｍｓ（図９参照））ごとにクリアされる。
【００５６】
ここで、図１３の処理を具体例を挙げて説明する。設定４において、現在トルクコード＃４が設定されており（ステップＳ６）、方向フラグが順方向を示している（ステップＳ３）とする。そうすると、カウンタｋの値が、「０」から「３」までは、ステップＳ２３において、入出力ポートＩＯ３の値が「１」に設定され、カウンタｋの値が「４」以上になると、ステップＳ２４にて、入出力ポートＩＯ３の値が「０」に設定される。それ故、図９に示すトルクレベル４が設定される。
【００５７】
図１４は、図１のテレビジョンモニタ５に表示されるゲーム選択画面の例示図である。図１４に示すように、このゲーム選択画面は、選択オブジェクト３００〜３０６及び針オブジェクト３０８を含む。画面表示直後では、針オブジェクト３０８は、選択オブジェクト３００を指している。プレイヤ９が、ハンドル２０を回転させると、その回転量／方向に応じて、針オブジェクト３０８が回転し、選択オブジェクトを指し示していく。
【００５８】
具体的には、次の通りである。針オブジェクト３０８が選択オブジェクト３００を指しているときは、角度θ／２に対応する回転量を超えるハンドル２０の順方向回転量が検出されたとき、針オブジェクト３０８が選択オブジェクト３０２を指し示すアニメーションが表示されると共に、停止した直流モータ５０を順方向に駆動し、直ちに、逆方向に切り替え、直ちに停止させることにより、クリック感を演出する。針オブジェクト３０８が選択オブジェクト３０２を指している場合において、角度θ／２に対応する回転量を超えるハンドル２０の順方向回転量が検出されたとき、針オブジェクト３０８が選択オブジェクト３０４を指し示すアニメーションが表示されると共に、クリック感の演出が行われる。一方、針オブジェクト３０８が選択オブジェクト３０２を指している場合において、角度θ／２に対応する回転量を超えるハンドル２０の逆方向回転量が検出されたとき、針オブジェクト３０８が選択オブジェクト３００を指し示すアニメーションが表示されると共に、クリック感の演出が行われる。
【００５９】
針オブジェクト３０８が選択オブジェクト３０４を指している場合は、針オブジェクト３０８が選択オブジェクト３０２を指している場合と同様である。針オブジェクト３０８が選択オブジェクト３０６を指しているときは、角度θ／２に対応する回転量を超えるハンドル２０の逆方向回転量が検出されたとき、針オブジェクト３０８が選択オブジェクト３０４を指し示すアニメーションが表示されると共に、クリック感の演出が行われる。
【００６０】
さて、以上のように、本実施の形態によれば、プレイヤ９が操作するハンドル２０の回転に応じて、表示された操作オブジェクト４０の動きを制御する場合において、操作抵抗として、操作オブジェクト４０の表示位置に応じて、ハンドル２０を回転させるトルクを発生する。従って、プレイヤ９によるハンドル２０の回転だけでなく、モータ５０の駆動のみによっても、操作オブジェクト４０が動くことになって、自然現象をより的確に演出できる。例えば、坂道を自転車で下る場合、ペダル（ハンドル２０に相当）をこがなくても、自転車（操作オブジェクト４０に相当）は、重力によって、自然に下っていく。本実施の形態によれば、ゲーム画面において、このような自然現象を的確に演出できる。上記では、直流モータ５０が発生するトルクにより、操作オブジェクト４０にあたかも重力が働いているかのような演出（自然現象の演出）を行った（図３参照）。
【００６１】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
【００６２】
（１）上記では、重力が働いているかのような自然現象の演出を行った。ただし、自然現象の演出はこれに限定されない。例えば、モータ５０が発生するトルクによって、遠心力、摩擦力、浮力、及び衝突などの様々な自然現象の演出が可能である。
【００６３】
（２）例えば、操作オブジェクト４０が他のオブジェクトに衝突したことを表現するために、停止した直流モータ５０を順方向に駆動し、直ちに、逆方向に切り替え、直ちに停止させることにより、衝突感を演出できる。例えば、操作オブジェクト４０の所定動作（着地やゴール到着など）に関連付けて、衝突感の演出と同様の制御を行うことにより、臨場感を演出することができる。例えば、操作オブジェクト４０が悪路を移動していることを演出するために、ハンドル２０の現在の回転方向と逆方向にトルクを与えることもできる。例えば、一方向への流れ（川など）を表現するために、ハンドル２０の現在の回転方向と関係なく、一方向にトルクを与えたりすることもできる。例えば、ジャンプボタン２４が押下されたことに応じて、衝突感の演出と同様の制御を行うことができる。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施の形態によるゲームシステムの全体構成を示すブロック図。
【図２】図１のゲーム機１の斜視図。
【図３】図１のテレビジョンモニタ５に表示されるゲーム画面の例示図。
【図４】図１のテレビジョンモニタ５に表示されるゲーム画面の他の例示図。
【図５】図２のハンドル２０に負荷を加える機構の図解図。
【図６】図２のハンドル２０の回転量／方向を検出するロータリエンコーダ１１４の図解図。
【図７】図１のゲーム機１の電気的構成を示す図。
【図８】図７のモータユニット１１０及びドライブユニット１１２の回路図。
【図９】図８のモータ５０のＰＷＭ制御の説明図。
【図１０】図８のモータ５０の性能バラツキを吸収するための手法の説明図。
【図１１】図７のロータリエンコーダ１１４の回路図。
【図１２】図７のプロセッサ１００による処理の流れの一例を示すフローチャート。
【図１３】図１２のステップＳ１１のＰＷＭ制御の流れの一例を示すフローチャート。
【図１４】図１のテレビジョンモニタ５に表示されるゲーム選択画面の例示図。
【符号の説明】
【００６５】
１…ゲーム機、５…テレビジョンモニタ、２０…ハンドル、２２…把持部、２４…ジャンプボタン、２６，２８…方向スイッチ、３４…胴部、３６…基部、４０…操作オブジェクト、５０…直流モータ、６０…回転軸、７０…円筒部材、７１…櫛形部、７２…赤外発光ダイオード、７４…フォトトランジスタユニット、１００…プロセッサ、１０２…ＲＯＭ、１０４…バス、１０６，１０８…ショートランド、１１０…モータユニット、１１２…ドライブユニット、１１４…ロータリエンコーダ、１１６…スイッチユニット、２３０，２３２…フォトトランジスタ。
【図１】
2006247183.tif 000003
【図２】
2006247183.tif 000004
【図３】
2006247183.tif 000005
【図４】
2006247183.tif 000006
【図５】
2006247183.tif 000007
【図６】
2006247183.tif 000008
【図７】
2006247183.tif 000009
【図８】
2006247183.tif 000010
【図９】
2006247183.tif 000011
【図１０】
2006247183.tif 000012
【図１１】
2006247183.tif 000013
【図１２】
2006247183.tif 000014
【図１３】
2006247183.tif 000015
【図１４】
2006247183.tif 000016