JP5061271B2 - ゲーム機、ゲーム制御方法、及び、ゲームプログラム - Google Patents

ゲーム機、ゲーム制御方法、及び、ゲームプログラム Download PDF

Info

Publication number
JP5061271B2
JP5061271B2 JP2005069256A JP2005069256A JP5061271B2 JP 5061271 B2 JP5061271 B2 JP 5061271B2 JP 2005069256 A JP2005069256 A JP 2005069256A JP 2005069256 A JP2005069256 A JP 2005069256A JP 5061271 B2 JP5061271 B2 JP 5061271B2
Authority
JP
Japan
Prior art keywords
handle
torque
operation object
player
rotation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005069256A
Other languages
English (en)
Other versions
JP2006247183A (ja
Inventor
洋 桐田
勳 朴
拓 上島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SSD Co Ltd
Original Assignee
SSD Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SSD Co Ltd filed Critical SSD Co Ltd
Priority to JP2005069256A priority Critical patent/JP5061271B2/ja
Publication of JP2006247183A publication Critical patent/JP2006247183A/ja
Application granted granted Critical
Publication of JP5061271B2 publication Critical patent/JP5061271B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、フォースフィードバック機能を有するゲーム機及びその関連技術に関する。
特許文献1には、フォースフィードバック機能付ジョイスティックが開示されている。このようなジョイスティックでは、ゲームプログラムに基づいて、振動や操作抵抗が与えられる。
一方、特許文献2には、ドライブビデオゲーム装置が開示されている。このビデオゲーム装置では、ゲーム状況(事故、スピン、コースアウトあるいは悪路走行)に応じて、モータ駆動用パルスを発生し、モータを駆動して、ハンドルを振動させる。その機構は次の通りである。ハンドルが取り付けられるハンドル軸は、回動自在に、かつ、軸方向には不動に、回動板に取り付けられる。この回動板は、その一端の回転軸によって、回動自在である。モータを駆動して、この回動板をその回転軸を中心として揺動させる。すると、回動板に取付けられたハンドル軸が、その軸方向に振動し、これに伴いハンドルも振動する。このように、ハンドル自体をその軸方向に振動させて、臨場感の向上を図っている。
特開平11−161423号公報 特開平3−97485号公報
しかしながら、特許文献2のビデオゲーム装置では、その機構が複雑であるため、コストの増大を招いたり、不具合が発生する確率も高くなる。また、ゲームによっては、上記のような、ハンドル軸方向の振動を与えることが馴染まない場合もある。さらに、特許文献2では、モータの駆動が、表示されている操作オブジェクト(レーシングカー等)の動きに影響を与えることはない。このため、自然現象の演出が不十分な場合も発生する。
そこで、本発明の目的は、プレイヤが操作するハンドルの回転に応じて、表示された操作オブジェクトの動きを制御する場合において、操作抵抗としての、ハンドルを回転させるトルクを発生して、自然現象をより的確に演出できるゲーム機及びその関連技術を提供することである。
本発明の観点によれば、ゲーム機は、プレイヤに把持されて、プレイヤにより回転が与えられるハンドルと、前記ハンドルの回転量及び回転方向を検出する検出手段と、前記ハンドルの回転量及び回転方向に応じて、表示装置に表示された操作オブジェクトの動きを制御する制御手段と、前記操作オブジェクトの表示位置に応じた回転方向に、前記操作オブジェクトの表示位置に応じて、前記ハンドルを回転させるトルクを発生して、そのトルクを前記ハンドルに伝達するトルク発生手段と、を備える。
この構成によれば、プレイヤが操作するハンドルの回転に応じて、表示された操作オブジェクトの動きを制御する場合において、操作抵抗として、操作オブジェクトの表示位置に応じて、ハンドルを回転させるトルクを発生する。従って、プレイヤによるハンドルの回転だけでなく、モータの駆動のみによっても、操作オブジェクトが動くことになって、自然現象をより的確に演出できる。例えば、坂道を自転車で下る場合、ペダル(本発明に係るハンドルに相当)をこがなくても、自転車(本発明に係る操作オブジェクトに相当)は、重力によって、自然に下っていく。本発明によれば、ゲーム画面において、このような自然現象を的確に演出できる。
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。
図1は、本発明の実施の形態によるゲームシステムの全体構成を示すブロック図である。図1に示すように、このゲームシステムは、ゲーム機1、及びテレビジョンモニタ5を備える。ゲーム機1は、A/Vケーブル3により、テレビジョンモニタ5に接続される。さらに、ゲーム機1には、図示していないが、ACアダプタあるいは電池により電源電圧が供給される。
図2は、図1のゲーム機1の斜視図である。図2に示すように、このゲーム機1は、基部36、胴部34、及び把持部22により形成される。基部36は、略直方体状に形成され、第1側面、第2側面、第3側面、及び第4側面を有する。第3側面には、DCジャック32が設けられると共に、A/Vケーブル3が接続される。基部36に続く胴部34は、略円筒状に形成され、その円筒軸を中心に回転自在にハンドル20が取り付けられる。また、胴部34には、電源スイッチ30が設けられる。胴部34に続く把持部22は、略板状に形成され、第1側面、第2側面、第3側面、及び第4側面を有する。第2側面には、ジャンプボタン24が設けられ、第3側面には、方向スイッチ26及び28が設けられる。
図1も参照して、プレイヤ9は、例えばテーブル7の上にゲーム機1を載置する。そして、プレイヤ9は、左手で把持部22を把持し、ジャンプボタン24並びに方向スイッチ26及び28を押下したり、右手でハンドル20を回しながら、テレビジョンモニタ5に映し出された操作オブジェクト40(後述)を操作して、ゲームを行う。
図3は、図1のテレビジョンモニタ5に表示されるゲーム画面の例示図である。図3に示すように、このゲーム画面は、操作オブジェクト40、及び地面画像42を含む。図上、地面画像42は、右下がりの緩やかな斜面44、それに連なる水平面46、さらにそれに連なる右上がりの急な斜面48からなる。
図2のハンドル20が時計回り(順方向)に回転すると、操作オブジェクト40は、その回転速度に応じた速度で、図上、左から右へ移動する。一方、ハンドル20が反時計回り(逆方向)に回転すると、操作オブジェクト40は、その回転速度に応じた速度で、図上、右から左へ移動する。
また、操作オブジェクト40が、斜面44に位置する場合は、後述の直流モータ50は、ハンドル20を時計回りに回転させるトルクを発生する。従って、この場合、プレイヤ9は、ハンドル20を時計回りに回転させる場合は軽く感じ、反時計回りに回転させる場合は重く感じる。
一方、操作オブジェクト40が、斜面48に位置する場合は、直流モータ50は、ハンドル20を反時計回りに回転させるトルクを発生する。従って、この場合、プレイヤ9は、ハンドル20を時計回りに回転させる場合は重く感じ、反時計回りに回転させる場合は軽く感じる。
以上のように、直流モータ50によって、ハンドル20に操作抵抗(負荷)を加えることにより、つまり、フォースフィードバック機能を設けることにより、操作オブジェクト40に加わる重力を表現し、それをプレイヤ9に体感させることができる。しかも、斜面の傾斜に応じて、操作抵抗の大きさを異ならせている。つまり、斜面44のように緩やかな斜面では、操作抵抗を小さく設定し、斜面48のように急な斜面では、操作抵抗を大きく設定する。従って、プレイヤ9は、より緻密な操作感を楽しむことができる。ただし、操作オブジェクト40が、水平面46に位置する場合は、直流モータ50は停止状態となり、操作抵抗は加えられない。
図4は、図1のテレビジョンモニタ5に表示されるゲーム画面の他の例示図である。図4に示すように、このゲーム画面は、操作オブジェクト40及び道画像43を含む。プレイヤ9が、ハンドル20を時計回りに回転させると、その回転速度に応じた速度で、画面がスクロールされ、操作オブジェクト40が、道画像43の上を進んでいく様子が表示される。また、プレイヤ9が、方向スイッチ26を押下すると、操作オブジェクト40が矢印Lのほうへ向きを変え、方向スイッチ28を押下すると、操作オブジェクト40が矢印Rのほうへ向きを変える。さらに、プレイヤ9が、ジャンプボタン24を押下すると、操作オブジェクト40がジャンプする。このジャンプボタン24による操作は、図3のゲーム画面でも同様である。ただし、図3ゲーム画面では、方向スイッチ26及び28からの入力は受け付けられない。
図5は、図2のハンドル20に操作抵抗(負荷)を加える機構の図解図である。図5に示すように、胴部34の内部に固定される板状部材62の表面に、直流モータ50が固定され、直流モータ50の回転軸にはギア52が取り付けられる。一方、ハンドル20が連結される回転軸60には、ギア58が取り付けられる。そして、直流モータ50のギア52と回転軸60のギア58とは、ギア54及び56により連結される。従って、直流モータ50の回転は、回転軸60に伝達され、ひいては、ハンドル20に伝達される。このような機構をもって、ハンドル20に操作抵抗が加えられる。
一方において、直流モータ50による操作抵抗の有無に関係なく、プレイヤ9によるハンドル20の回転により、連結された回転軸60が回転する。
図6は、図2のハンドル20の回転量/方向を検出する機構の図解図である。図6に示すように、板状部材62の裏面には、基板63が取り付けられ、この基板63には、一定間隔で配置されたフォトトランジスタ230及び232(後述)からなるフォトトランジスタユニット74、及び赤外発光ダイオード72が搭載される。
一方、円筒部材70の中心を貫いて回転軸60が固定される。なお、図では、説明の便宜のため、回転軸60を円筒部材70に固定する前(貫く前)の状態を示している。この円筒部材70の側壁(円筒面)は櫛形に形成され、これにより、光遮断部(遮光部)と光通過部とが交互に形成される(櫛形部71)。円筒部材70が回転軸60に固定された状態では、櫛形部71は、フォトトランジスタユニット74と赤外発光ダイオード72との間に位置する。従って、赤外発光ダイオード72からの赤外光は、櫛形部71を介して、フォトトランジスタユニット74に入射する。このため、回転軸60に取り付けられたハンドル20の回転に応じて、つまり円筒部材70の回転に応じて、フォトトランジスタユニット74に、間欠的に赤外光が入射する。
以上のようにして、円筒部材70、フォトトランジスタユニット74、及び赤外発光ダイオード72により、ロータリエンコーダ114が構成され、円筒部材70の回転量及び回転方向、つまり、ハンドル20の回転量及び回転方向が検知される。
図7は、図1のゲーム機1の電気的構成を示す図である。図7に示すように、ゲーム機1は、プロセッサ100、ROM(read only memory)102、バス104、モータユニット110、ドライブユニット112、ロータリエンコーダ114、スイッチユニット116、並びにショートランド106及び108を含む。
プロセッサ100は、操作オブジェクト40の位置に応じて、ドライブユニット112を介して、直流モータ50のPWM(pulse width modulation)制御を行う。これにより、ハンドル20に操作抵抗が与えられる。また、プロセッサ100は、ロータリエンコーダ114からの二本のパルス信号を受けて、ハンドル20の回転量及び方向を検出し、検出結果に応じて、操作オブジェクト40の移動速度及び移動方向(図3の場合)、並びに画面のスクロール速度(図4の場合)を制御する。さらに、プロセッサ100は、スイッチユニット116を構成するジャンプボタン24並びに方向スイッチ26及び28からのオン/オフ信号を受けて、操作オブジェクト40の動きを制御する。
プロセッサ100は、図示しないが、CPU(central processing unit)、グラフィックプロセッサ、サウンドプロセッサおよびDMAプロセッサ等の各種プロセッサを含むとともに、アナログ信号を取り込むときに用いられるA/Dコンバータや、外部の電子回路や電子部品等から入力信号を受け、かつ出力信号をそれらに与える入出力制御回路を含む。入出力制御回路に含まれる図示しないカウンタ(以下、「内蔵カウンタ」と呼ぶ。)が、ロータリエンコーダ114からの二本のパルス信号を受けて、ハンドル20の回転量及び回転方向を検出する。入出力制御回路に対する入出力は、入出力ポートIO0〜IO15を介して行われる。なお、入出力ポートIO6〜IO15の図示は省略している。
CPUは、ROM102に格納されたゲームプログラムを実行し、各種演算を行う。グラフィックプロセッサやサウンドプロセッサは、CPUによる演算結果に従って、ROM102に格納された画像データや音声データを読み込んで、ビデオ信号やオーディオ信号を生成し、A/Vケーブル3に出力する。
さらに、プロセッサ100には、図示しないが内部メモリが設けられ、この内部メモリは、例えば、RAM(random access memory)により構成される。内部メモリは、ワーキング領域、カウンタ領域、レジスタ領域、テンポラリデータ領域、及び/又はフラグ領域等として利用される。
図8は、図7のモータユニット110及びドライブユニット112の回路図である。図8に示すように、ドライブユニット112は、抵抗素子160〜176及びトランジスタ180〜190を含む。抵抗素子176及び174の一方端は、トランジスタ190のベースに接続され、抵抗素子176及び174の他方端は、それぞれ、入出力ポートIO3及び接地に接続される。トランジスタ186のエミッタとトランジスタ190のコレクタとの間には、抵抗素子170及び172が直列に接続され、それらの接続点は、トランジスタ186のベースに接続される。トランジスタ186のコレクタとトランジスタ188のコレクタとが接続され、その接続点が、ダイオード202のアノード及びダイオード204のカソードに接続される。
抵抗素子160及び162の一方端は、トランジスタ180のベースに接続され、抵抗素子160及び162の他方端は、それぞれ、入出力ポートIO2及び接地に接続される。トランジスタ182のエミッタとトランジスタ180のコレクタとの間には、抵抗素子164及び166が直列に接続され、それらの接続点は、トランジスタ182のベースに接続される。トランジスタ182のコレクタとトランジスタ184のコレクタとが接続され、その接続点が、ダイオード200のアノード及びダイオード206のカソードに接続される。
トランジスタ190のエミッタは、トランジスタ184のベースに接続され、トランジスタ180のエミッタは、トランジスタ188のベースに接続される。トランジスタ182及び186のエミッタ、並びにダイオード200及び202のカソードは、電源Vccに接続される。トランジスタ184及び188のエミッタ、並びにダイオード204及び206のアノードは、抵抗素子168の一方端に接続され、その他方端は接地される。
モータユニット110は、直流モータ50及びコンデンサ152〜156を含む。直流モータ50の一方端子は、トランジスタ186及び188の接続点に接続され、その他方端子は、トランジスタ182及び184の接続点に接続される。
動作を説明する。入出力ポートIO2の値がローレベル(「0」)に設定されている場合において、入出力ポートIO3の値がハイレベル(「1」)に設定されると、トランジスタ190,186及び184がオンになる。従って、電源Vccから、順方向(矢印a)に電流が流れる。これにより、直流モータ50が、順方向(時計回り)に回転する。一方、入出力ポートIO3の値がローレベル(「0」)に設定されている場合において、入出力ポートIO2の値がハイレベル(「1」)に設定されると、トランジスタ180,182及び188がオンになる。従って、電源Vccから、逆方向(矢印b)に電流が流れる。これにより、直流モータ50が、逆方向(反時計回り)に回転する。
直流モータ50が発生するトルクのレベル(つまり、ハンドル20の操作抵抗のレベル)として、9つのレベル0〜8が用意されている。このトルクのレベルは、入出力ポートIO3(順方向に回転させる場合)あるいは入出力ポートIO2(逆方向に回転させる場合)に設定するハイレベルの期間をコントロールすることにより設定される(PWM制御)。
図9は、図8の直流モータ50のPWM制御の説明図である。直流モータ50を順方向に回転させる場合を想定する。そうすると、入出力ポートIO2の値はローレベル(「0」)に設定される。一方、入出力ポートIO3については、発生させるトルクのレベルに応じて、一定期間T(図の例では10ms(ミリ秒))でのハイレベル(「1」)期間が設定される。
レベル0では、一定期間Tにおいて、入出力ポートIO3の値が「0」に設定されるため、モータ50に電流が流れず、駆動しない(トルクは発生しない)。レベルt(t=1〜8)では、一定期間Tにおいて、入出力ポートIO3の値が(1×t)ms(ミリ秒)の間「1」に設定されるため、「1」に設定された期間に応じて、モータ50に電流が流れ、駆動する(トルクが発生する)。ここで、トルクの大きさは、レベル1<2<3<4<5<6<7<8、となり、一定期間Tでのハイレベル(「1」)期間が長くなるほど大きくなる。
一方、モータ50を逆方向に回転させる場合は、順方向に回転させる場合の上記説明において、入出力ポートIO2とIO3とを入れ替えて考えればよい。
図10は、図8の直流モータ50の性能バラツキを吸収するための手法の説明図である。図10の設定4の場合は、図7のショートランド106及び108は、ショートされず、それ故、入出力ポートIO0及びIO1の値は、ローレベル(「0」)となる。設定3の場合は、ショートランド106がショートされ、ショートランド108はショートされず、それ故、入出力ポートIO0及びIO1の値は、それぞれ、ハイレベル(「1」)及びローレベル(「0」)となる。設定2の場合は、ショートランド106がショートされず、ショートランド108はショートされ、それ故、入出力ポートIO0及びIO1の値は、それぞれ、ローレベル(「0」)及びハイレベル(「1」)となる。設定1の場合は、ショートランド106及び108が、ショートされ、それ故、入出力ポートIO0及びIO1の値は、ハイレベル(「1」)となる。
プロセッサ100は、設定1〜4に応じて、トルクコード#0〜#10を設定する。例えば、設定4では、トルクコード#0を設定したときは、図9のレベル0が設定され、トルクコード#1を設定したときは、図9のレベル1が設定され、トルクコード#2を設定したときは、図9のレベル2が設定され、トルクコード#3を設定したときは、図9のレベル3が設定され、トルクコード#4及び#5を設定したときは、図9のレベル4が設定され、トルクコード#6を設定したときは、図9のレベル5が設定され、トルクコード#7を設定したときは、図9のレベル6が設定され、トルクコード#8を設定したときは、図9のレベル7が設定され、トルクコード#9及び#10を設定したときは、図9のレベル8が設定される。
例えば、デフォルトとして、設定4にしておく。ところが、直流モータ50の仕様が同じでも、性能のバラツキが存在する場合がある。例えば、プロセッサ100が同じパルス(図9参照)をドライブユニット112に与えた場合でも、発生するトルクが特に大きい直流モータ50もある。この場合、このような直流モータ50に対して、他の標準的な直流モータ50と同じPWM制御を行うと、必要以上に大きなトルクが発生してしまう。この場合、そのような直流モータ50を搭載するゲーム機1においては、性能のバラツキの程度に応じて、ショートランド106及び/又は108をショートして、設定3、設定2、あるいは設定1を設定する。そうすると、図10から明らかなように、同じトルクコード#x(x=0〜10)を設定した場合でも、トルクのレベルは、設定4、設定3、設定2、及び設定1の順に小さくなる。例えば、トルクコード#9に注目すると、設定4、設定3、設定2、及び設定1では、それぞれ、トルクのレベルは、レベル8、レベル6、レベル4、及びレベル2となって、発生するトルクは段々小さくなる(図9参照)。このように、設定1〜4を適宜変更することにより、直流モータ50の性能のバラツキを吸収できる。
図11は、図7のロータリエンコーダ114の回路図である。図11に示すように、ロータリエンコーダ114は、赤外発光ダイオード72並びに2つのフォトトランジスタ230及び232を含む。抵抗素子224及び赤外発光ダイオード72は、電源Vccと接地との間に直列に接続される。フォトトランジスタ230及び232のコレクタは、電源Vccに接続され、エミッタは、それぞれプロセッサ100の入出力ポートIO5及びIO4に接続される。
図6の円筒部材70が回転すると、その櫛形部71により、赤外発光ダイオード72の光が間欠的に、フォトトランジスタ230及び232に入力される。これにより、フォトトランジスタ230及び232のエミッタからはパルス信号が出力される。ただし、フォトトランジスタ230及び232は、一定間隔で配置されているため、2つのパルス信号の位相は、フォトトランジスタ230及び232の間隔並びに櫛形部71の隣り合う遮光部同士の間隔に応じて異なったものとなる。プロセッサ100は、この二本のパルス信号に基づいて、円筒部材70(つまりハンドル20)の回転量及び回転方向を検出する。
図12は、図7のプロセッサ100による処理の流れの一例を示すフローチャートである。図12及び後述の図13の説明では、直流モータ50によるトルクのレベルとして、図9と同じレベル0〜8を例に挙げる。従って、上記した一定期間Tは、10msである。
ステップS1では、プロセッサ100は、システムの初期設定を実行する(後述のカウンタk及びトルクコード#x(x=0〜10)の「0」設定を含む)。ステップS2にて、プロセッサ100は、内蔵のタイマをセットする。例えば、1ms(ミリ秒)ごとにタイマによる割り込みが発生するようにセットする。これは、直流モータ50のPWM制御のための設定である。
ステップS3にて、プロセッサ100は、内蔵カウンタの値を取得する。取得した値は、円筒部材70(つまりハンドル20)の回転量及び回転方向を表している。つまり、この内蔵カウンタは、ロータリエンコーダ114からの回転量及び回転方向を表す二本のパルス信号を受けて、その位相関係に応じて、アップカウント(円筒部材70(つまりハンドル20)が時計回りに回転する場合)あるいはダウンカウント(円筒部材70(つまりハンドル20)が反時計回りに回転する場合)を実行して、入力パルスの数をカウントする。従って、内蔵カウンタから取得した値の絶対値は、円筒部材70(つまりハンドル20)の回転量を示し、その符号は、回転方向を示す。プロセッサ100は、内蔵カウンタから取得した値の符号に応じて、方向フラグの値をセットする。ステップS4にて、プロセッサ100は、内蔵カウンタをクリアする。
ステップS5にて、プロセッサ100は、ハンドル20の回転量及び回転方向、並びにスイッチユニット116からのオン/オフ信号に基づいて、操作オブジェクト40の位置を算出する。
ステップS6にて、プロセッサ100は、操作オブジェクト40の位置に応じて、直流モータ50を制御するためのパラメータを設定する。このパラメータは、直流モータ50の回転方向(順方向/逆方向)、及び発生するトルクのレベル0〜8(トルクコード#0〜#10)である。
ここで、ゲーム画面上の各位置に対して、直流モータ50の回転方向及びトルクコードが予め割り当てられている。例えば、図3のゲームでは、右下がりの斜面44が、8つ用意され、各斜面44に、直流モータ50の回転方向として順方向が割り当てあられると共に、その傾斜に応じて、トルクコードが割り当てられる。この場合、斜面44の傾斜が大きいほど、大きいトルクを発生するように、トルクコードが割り当てられる。また、右上がりの斜面48が、8つ用意され、各斜面48に、直流モータ50の回転方向として逆方向が割り当てあられると共に、その傾斜に応じて、トルクコードが割り当てられる。この場合、斜面48の傾斜が大きいほど、大きいトルクを発生するように、トルクコードが割り当てられる。さらに、水平面46には、トルクのレベルが「0」を示すトルクコードが割り当てられ、それ故、この場合は、直流モータ50は駆動されない。
ステップS7にて、プロセッサ100は、操作オブジェクト40が、直流モータ50が駆動される位置にあって(図3では、斜面44あるいは48)、かつ、3つのスイッチ24,26及び28のいずれからもオン入力が一定時間(例えば1分間)ない場合は、直流モータ50が停止するように、パラメータを設定する。つまり、トルクのレベルが「0」を示すトルクコードを設定する。これにより、無操作の状態が一定時間続いた場合に、直流モータ50が回転し続けることを防止でき、消費電力の抑制を図ることができる。
ステップS8では、プロセッサ100は、ビデオ同期信号による割り込みが発生したときは(例えば、1/60秒ごと)、ステップS9に進み、ビデオ信号を新たに生成して表示画像を更新し、割り込み待ちの状態であれば、同じステップS8に進む。ステップS9では、プロセッサ100は、ステップS5の結果に応じて、テレビジョンモニタ5に表示される画像(ビデオフレーム)の更新処理を実行する。また、プロセッサ100は、ビデオ同期信号による割り込みの発生に応じて、ステップS10にて、音声処理を実行し、それによって、オーディオ信号が生成され、音楽や効果音が出力される。ステップS11のPWM制御は、タイマ割り込みが発生したときに実行される。
図13は、図12のステップS11のPWM制御の流れの一例を示すフローチャートである。図13に示すように、ステップS20にて、プロセッサ100は、カウンタkの値と、現在設定されているトルクコード#x(x=0〜10)が示すトルクレベル(図9参照)と、を比較して、カウンタkの値が小さいときは、ステップS24に進み、入出力ポートIO2及びIO3の値を「0」に設定し、それ以外は、ステップS21に進む。
ここで、カウンタkは、タイマ割り込みの回数をカウントするものであり、この例では、1msごとにカウントアップされる。
ステップS21では、プロセッサ100は、方向フラグを参照して、ハンドル20の回転方向を判定し、逆方向の回転の場合はステップS22に進んで、入出力ポートIO2及びIO3の値を、それぞれ、「1」及び「0」に設定し、順方向の回転の場合はステップS23に進んで、入出力ポートIO2及びIO3の値を、それぞれ、「0」及び「1」に設定する。
ステップS25では、プロセッサ100は、カウンタkの値を参照して、k=10のときはステップS27に進み、それ以外はステップS26に進んで、カウンタkをインクリメントする。一方、ステップS27では、プロセッサ100は、トルクレベルが「0」を示すトルクコード#xを設定する。ステップS28では、プロセッサ100は、カウンタkに「0」を設定(クリア)する。
以上のようにして、カウンタkは、1msごとにカウントアップされ、一定期間T(つまり10ms(図9参照))ごとにクリアされる。
ここで、図13の処理を具体例を挙げて説明する。設定4において、現在トルクコード#4が設定されており(ステップS6)、方向フラグが順方向を示している(ステップS3)とする。そうすると、カウンタkの値が、「0」から「3」までは、ステップS23において、入出力ポートIO3の値が「1」に設定され、カウンタkの値が「4」以上になると、ステップS24にて、入出力ポートIO3の値が「0」に設定される。それ故、図9に示すトルクレベル4が設定される。
図14は、図1のテレビジョンモニタ5に表示されるゲーム選択画面の例示図である。図14に示すように、このゲーム選択画面は、選択オブジェクト300〜306及び針オブジェクト308を含む。画面表示直後では、針オブジェクト308は、選択オブジェクト300を指している。プレイヤ9が、ハンドル20を回転させると、その回転量/方向に応じて、針オブジェクト308が回転し、選択オブジェクトを指し示していく。
具体的には、次の通りである。針オブジェクト308が選択オブジェクト300を指しているときは、角度θ/2に対応する回転量を超えるハンドル20の順方向回転量が検出されたとき、針オブジェクト308が選択オブジェクト302を指し示すアニメーションが表示されると共に、停止した直流モータ50を順方向に駆動し、直ちに、逆方向に切り替え、直ちに停止させることにより、クリック感を演出する。針オブジェクト308が選択オブジェクト302を指している場合において、角度θ/2に対応する回転量を超えるハンドル20の順方向回転量が検出されたとき、針オブジェクト308が選択オブジェクト304を指し示すアニメーションが表示されると共に、クリック感の演出が行われる。一方、針オブジェクト308が選択オブジェクト302を指している場合において、角度θ/2に対応する回転量を超えるハンドル20の逆方向回転量が検出されたとき、針オブジェクト308が選択オブジェクト300を指し示すアニメーションが表示されると共に、クリック感の演出が行われる。
針オブジェクト308が選択オブジェクト304を指している場合は、針オブジェクト308が選択オブジェクト302を指している場合と同様である。針オブジェクト308が選択オブジェクト306を指しているときは、角度θ/2に対応する回転量を超えるハンドル20の逆方向回転量が検出されたとき、針オブジェクト308が選択オブジェクト304を指し示すアニメーションが表示されると共に、クリック感の演出が行われる。
さて、以上のように、本実施の形態によれば、プレイヤ9が操作するハンドル20の回転に応じて、表示された操作オブジェクト40の動きを制御する場合において、操作抵抗として、操作オブジェクト40の表示位置に応じて、ハンドル20を回転させるトルクを発生する。従って、プレイヤ9によるハンドル20の回転だけでなく、モータ50の駆動のみによっても、操作オブジェクト40が動くことになって、自然現象をより的確に演出できる。例えば、坂道を自転車で下る場合、ペダル(ハンドル20に相当)をこがなくても、自転車(操作オブジェクト40に相当)は、重力によって、自然に下っていく。本実施の形態によれば、ゲーム画面において、このような自然現象を的確に演出できる。上記では、直流モータ50が発生するトルクにより、操作オブジェクト40にあたかも重力が働いているかのような演出(自然現象の演出)を行った(図3参照)。
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
(1)上記では、重力が働いているかのような自然現象の演出を行った。ただし、自然現象の演出はこれに限定されない。例えば、モータ50が発生するトルクによって、遠心力、摩擦力、浮力、及び衝突などの様々な自然現象の演出が可能である。
(2)例えば、操作オブジェクト40が他のオブジェクトに衝突したことを表現するために、停止した直流モータ50を順方向に駆動し、直ちに、逆方向に切り替え、直ちに停止させることにより、衝突感を演出できる。例えば、操作オブジェクト40の所定動作(着地やゴール到着など)に関連付けて、衝突感の演出と同様の制御を行うことにより、臨場感を演出することができる。例えば、操作オブジェクト40が悪路を移動していることを演出するために、ハンドル20の現在の回転方向と逆方向にトルクを与えることもできる。例えば、一方向への流れ(川など)を表現するために、ハンドル20の現在の回転方向と関係なく、一方向にトルクを与えたりすることもできる。例えば、ジャンプボタン24が押下されたことに応じて、衝突感の演出と同様の制御を行うことができる。
本発明の実施の形態によるゲームシステムの全体構成を示すブロック図。 図1のゲーム機1の斜視図。 図1のテレビジョンモニタ5に表示されるゲーム画面の例示図。 図1のテレビジョンモニタ5に表示されるゲーム画面の他の例示図。 図2のハンドル20に負荷を加える機構の図解図。 図2のハンドル20の回転量/方向を検出するロータリエンコーダ114の図解図。 図1のゲーム機1の電気的構成を示す図。 図7のモータユニット110及びドライブユニット112の回路図。 図8のモータ50のPWM制御の説明図。 図8のモータ50の性能バラツキを吸収するための手法の説明図。 図7のロータリエンコーダ114の回路図。 図7のプロセッサ100による処理の流れの一例を示すフローチャート。 図12のステップS11のPWM制御の流れの一例を示すフローチャート。 図1のテレビジョンモニタ5に表示されるゲーム選択画面の例示図。
符号の説明
1…ゲーム機、5…テレビジョンモニタ、20…ハンドル、22…把持部、24…ジャンプボタン、26,28…方向スイッチ、34…胴部、36…基部、40…操作オブジェクト、50…直流モータ、60…回転軸、70…円筒部材、71…櫛形部、72…赤外発光ダイオード、74…フォトトランジスタユニット、100…プロセッサ、102…ROM、104…バス、106,108…ショートランド、110…モータユニット、112…ドライブユニット、114…ロータリエンコーダ、116…スイッチユニット、230,232…フォトトランジスタ。

Claims (5)

  1. プレイヤに把持されて、前記プレイヤにより回転が与えられるハンドルと、
    前記ハンドルの回転量及び回転方向を検出する検出手段と、
    前記ハンドルの回転量及び回転方向に応じて、表示装置に表示された操作オブジェクトの動きを制御する制御手段と、
    前記操作オブジェクトの表示位置に応じた回転方向に、前記操作オブジェクトの表示位置に応じて、前記ハンドルを回転させるトルクを発生して、そのトルクを前記ハンドルに伝達するトルク発生手段と、を備え、
    前記プレイヤの操作だけでなく、前記トルク発生手段が発生したトルクのみによっても、前記操作オブジェクトの表示位置に応じて、前記ハンドルが回転し、前記操作オブジェクトが動く、ゲーム機。
  2. 前記検出手段は、ロータリエンコーダであり、
    前記制御手段は、ゲームプログラムに従った演算を実行して、ビデオ信号及びオーディオ信号を生成するプロセッサであり、
    前記トルク発生手段は、直流モータと、その直流モータを駆動するための駆動手段と、を含み、
    前記プロセッサは、前記駆動手段を介して、前記直流モータのPWM制御を行うことにより、前記直流モータに対して、前記操作オブジェクトの表示位置に応じた回転方向に、前記操作オブジェクトの表示位置に応じて、前記ハンドルを回転させるトルクを発生させる、請求項1記載のゲーム機。
  3. 前記操作オブジェクトの表示位置が、前記トルク発生手段がトルクを発生する位置であるときに、プレイヤによる無操作の状態が一定時間発生した場合に、トルクを発生している前記トルク発生手段を停止させる停止手段をさらに備える請求項1又は2記載のゲーム機。
  4. プレイヤに把持されて、前記プレイヤにより回転が与えられるハンドル、前記ハンドルの回転量及び回転方向を検出する検出手段、及び、前記ハンドルを回転させるトルクを発生して、そのトルクを前記ハンドルに伝達するトルク発生手段を含むゲーム機のコンピュータに、
    前記ハンドルの回転量及び回転方向に応じて、表示装置に表示された操作オブジェクトの動きを制御するステップと、
    前記操作オブジェクトの表示位置に応じた回転方向に、前記操作オブジェクトの表示位置に応じて、前記ハンドルを回転させるトルクを発生するように前記トルク発生手段を制御するステップと、を実行させ
    前記プレイヤの操作だけでなく、前記トルク発生手段が発生したトルクのみによっても、前記操作オブジェクトの表示位置に応じて、前記ハンドル回転させ、前記操作オブジェクトかすステップ実行させるためのゲーム制御方法。
  5. プレイヤに把持されて、前記プレイヤにより回転が与えられるハンドル、前記ハンドルの回転量及び回転方向を検出する検出手段、及び、前記ハンドルを回転させるトルクを発生して、そのトルクを前記ハンドルに伝達するトルク発生手段を含むゲーム機のコンピュータに、
    前記ハンドルの回転量及び回転方向に応じて、表示装置に表示された操作オブジェクトの動きを制御するステップと、
    前記操作オブジェクトの表示位置に応じた回転方向に、前記操作オブジェクトの表示位置に応じて、前記ハンドルを回転させるトルクを発生するように、前記トルク発生手段を制御するステップと、を実行させ、
    前記プレイヤの操作だけでなく、前記トルク発生手段が発生したトルクのみによっても、前記操作オブジェクトの表示位置に応じて、前記ハンドル回転させ、前記操作オブジェクトかすステップを実行させるためのゲームプログラム。
JP2005069256A 2005-03-11 2005-03-11 ゲーム機、ゲーム制御方法、及び、ゲームプログラム Expired - Fee Related JP5061271B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005069256A JP5061271B2 (ja) 2005-03-11 2005-03-11 ゲーム機、ゲーム制御方法、及び、ゲームプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005069256A JP5061271B2 (ja) 2005-03-11 2005-03-11 ゲーム機、ゲーム制御方法、及び、ゲームプログラム

Publications (2)

Publication Number Publication Date
JP2006247183A JP2006247183A (ja) 2006-09-21
JP5061271B2 true JP5061271B2 (ja) 2012-10-31

Family

ID=37088258

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005069256A Expired - Fee Related JP5061271B2 (ja) 2005-03-11 2005-03-11 ゲーム機、ゲーム制御方法、及び、ゲームプログラム

Country Status (1)

Country Link
JP (1) JP5061271B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5237571B2 (ja) * 2007-03-26 2013-07-17 株式会社タイトー ゲーム機
KR101619095B1 (ko) * 2015-04-30 2016-05-10 (주)피엔아이시스템 자전거형 게임 시뮬레이션 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH067873B2 (ja) * 1986-08-01 1994-02-02 美津濃株式会社 トレ−ニング自転車装置
JP3485500B2 (ja) * 1999-07-27 2004-01-13 アルプス電気株式会社 ゲーム用コントローラ

Also Published As

Publication number Publication date
JP2006247183A (ja) 2006-09-21

Similar Documents

Publication Publication Date Title
US9134795B2 (en) Directional tactile feedback for haptic feedback interface devices
US7182691B1 (en) Directional inertial tactile feedback using rotating masses
EP2502215B1 (en) Systems and methods for increasing haptic bandwidth in an electronic device
US7446752B2 (en) Controlling haptic sensations for vibrotactile feedback interface devices
JP3655438B2 (ja) ビデオゲームシステム
JP4903371B2 (ja) タッチパネルを用いたゲーム装置およびゲームプログラム
US7607983B2 (en) Game program and game device using touch panel
US9501084B1 (en) Wearable electronic device with force feedback
JP2016131018A (ja) 触覚信号を制御するためのシステムおよび方法
US20080004114A1 (en) Video game controller with compact and efficient force feedback mechanism
JP2003199974A6 (ja) 触覚フィードバックインターフェースデバイス用の方向接触フィードバック
WO2001024898A1 (fr) Appareil de jeu de peche
JP2008257295A (ja) 触覚刺激提示方法
JP5061271B2 (ja) ゲーム機、ゲーム制御方法、及び、ゲームプログラム
JP2010029711A (ja) タッチパネルを用いたゲーム装置およびゲームプログラム
JP2006251845A (ja) 力覚付与型入力装置
JP4040558B2 (ja) 図柄表示装置およびその使用方法
JP2006285434A (ja) 情報表示装置
US10614654B2 (en) Driving-device control apparatus for driving moving body back and forth and game machine including driving-device control apparatus
WO2001003105A9 (en) Controlling vibrotactile sensations for haptic feedback devices
WO2001003105A1 (en) Controlling vibrotactile sensations for haptic feedback devices
JP2004201941A (ja) 弾球遊技機
JPH0590524U (ja) 模擬操縦装置
JP2012063986A (ja) 入力装置および触感付与システム
JP2001113048A (ja) ゲーム機用操作装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100915

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110330

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110518

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111226

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150817

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees