JPWO2016079828A1 - 打撃操作のためのユーザーインターフェースシステムと操作信号解析方法及びプログラム - Google Patents
打撃操作のためのユーザーインターフェースシステムと操作信号解析方法及びプログラム Download PDFInfo
- Publication number
- JPWO2016079828A1 JPWO2016079828A1 JP2015551885A JP2015551885A JPWO2016079828A1 JP WO2016079828 A1 JPWO2016079828 A1 JP WO2016079828A1 JP 2015551885 A JP2015551885 A JP 2015551885A JP 2015551885 A JP2015551885 A JP 2015551885A JP WO2016079828 A1 JPWO2016079828 A1 JP WO2016079828A1
- Authority
- JP
- Japan
- Prior art keywords
- controller
- angular velocity
- user
- hit
- batting
- 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.)
- Granted
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/211—Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
- A63F13/428—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
Abstract
Description
(1)コントローラが、角速度センサと、ユーザーが両手で持って操作を行なうことが可能な本体とを持ち、
(2)打撃検出ステップが、角速度センサによって連続的に検知されるコントローラの角速度の一連の値を用いて、ユーザーがコントローラを両手で持ち左右どちらかの手を前に押し出す打撃操作を行なった際に生じ得るコントローラの回転運動に関する打撃操作の特徴を検出する打撃検出法を含み、
(3)打撃検出法を用いることにより、ユーザーから打撃操作の入力があったことを判断する機能を実現する
ことを特徴とする。
(1)コントローラが、角速度センサと、ユーザーが両手で持って操作を行なうことが可能な本体とを持ち、
(2)打撃検出ステップが、角速度センサによって連続的に検知されるコントローラの角速度の一連の値を用いて、ユーザーがコントローラを両手で持ち左右どちらかの手を前に押し出す打撃操作を行なった際に生じ得るコントローラの回転運動に関する打撃操作の特徴を検出する打撃検出法を含み、
(3)打撃検出法を用いることにより、ユーザーから打撃操作の入力があったことを判断する機能を実現することを特徴とする。
以下に添付図面を参照して、本発明の実施形態を詳細に説明する。図1は、本実施形態に係るユーザーによって打撃操作を入力するためのユーザーインターフェースシステムを構成するゲーム装置1を示す斜視図である。なお、本実施形態では、ゲーム装置1上で、ボクシングゲームソフトを実行する場合を例示する。また、本実施形態では、本発明をボクシングゲームソフトに適用した場合を例に説明するが、本発明はこれに限定されるものではなく、例えば、テニス、スカッシュ、卓球などのスポーツアクションゲーム等、仮想空間に配置されるプレイヤーオブジェクト等のオブジェクトに対して打撃のタイミングを指定する打撃操作を入力し、ゲームを進行させるゲームソフトウェアを実行するゲームソフトウェアなどにも適用することができる。他にも、実空間上にあるロボット玩具のような駆動装置を制御するのに用いることもできるし、さらには、操作対象となるオブジェクトは必ずしも実空間若しくは仮想空間に存在しなくてもよく、仮想的なオブジェクトが打撃動作を行なったとするシミュレーションを行ない、その演算結果のみを出力するようなソフトウェアにも適用できる。例えば、ユーザーの打撃操作により仮想的なプレイヤーオブジェクトが太鼓を叩いたかのように音を出すといった音楽ゲームソフトウェアなどである。
以上説明した表示・操作が可能なタッチパネル300及びジャイロセンサ164を有するゲーム装置1の具体的な内部構成について、以下に詳述する。図2は、本実施形態に係るゲーム装置1の内部構成を示すブロック図である。なお、以下の説明中で用いられる「モジュール」とは、装置や機器等のハードウェア、或いはその機能を持ったソフトウェア、又はこれらの組み合わせなどによって構成され、所定の動作を達成するための機能単位を示す。
次いで、CPU200上で実行されるソフトウェアによって仮想的に構築される演算処理装置の内部構造について説明する。図3は、本実施形態に係るCPU200上に仮想的に構築される内部構成を示すブロック図である。
z=(0,0,1) ……(式1)
そして、ベクトルzを回転行列A(t)で回転することで得られるベクトルをベクトルz'(t)とし、ベクトルz'(t)を次のように求める。
z'(t)=A(t)z ……(式2)
そして、式1及び式2によって得られたベクトルz'(t)のX成分をz'x(t)、Z成分をz'z(t)とすると、次の関係が成り立つ。
tanθy(t)=z'x(t)/z'z(t) ……(式3)
ここで、tanθy(t)は回転角θy(t)の正接(タンジェント)であり、正接関数の逆関数を用いることで式3からY軸まわりの回転角θy(t)を算出できる。但し、z'x(t)およびz'z(t)が共にゼロあるいは非常に小さい値の場合には計算誤差が大きくなるため、式1のベクトルzの代わりにX軸方向の単位ベクトルを使って同様の計算をするものとする。
先ず、動作制御部210における予備動作の制御について説明する。本実施形態において、動作制御部210は、角速度検出部205によって算出されたY軸まわりの回転角θy(t)に基づいて、オブジェクトの予備動作の制御を行う。なお、ここでは、(a)オブジェクトの体の回転(ねじり)の大きさφの算出、(b)オブジェクトの回転制御、(c)自動キャリブレーションに分けて説明する。
先ず、動作制御部210は、ある時刻tにおけるオブジェクトの体の回転(ねじり)の大きさφを算出する。具体的に、試合が開始した時刻をt0とし、この時刻t0でのY軸まわりの回転角θ0は、以下のように求める。
θ0=θy(t0) ……(式4)
そして、ある時刻tにおけるオブジェクトの体の回転(ねじり)の大きさφは、以下のように求める。
φ=S×(θy(t)−θ0) ……(式5)
ここで、式5における、Sは所定のスケールパラメータを示し、ゲーム装置1を大きく回転させなくても、オブジェクトに十分大きな動作をさせることができるようにするためのものである。また、オブジェクトの体の回転角には、上限Φがあり、上記回転(ねじり)の大きさφは、[−Φ,Φ]の範囲に切り詰められる。そして、回転(ねじり)の大きさφが上限に近づくにつれ、オブジェクトは体の回転だけでなく腕を振り上げ、パンチの準備をする。また、式5で算出される回転角をそのまま用いずに、目標値として用いることもできる。例えばオブジェクトの体の回転角の単位時間あたりの変化量が一定の大きさを越えないように目標値に近づくように制御すれば、オブジェクトが非現実的な速さで体を回転させようとすることを防ぐことができる。
次いで、回転(ねじり)の大きさφに応じた体の回転についての制御方法について説明する。先ず、オブジェクトの姿勢は、N個のパラメータで制御されているものとし、これらのパラメータの組を、N次元のベクトルaとする。この場合、回転(ねじり)の大きさφの値に応じてオブジェクトが体の回転動作をするためには、回転(ねじり)の大きさφに対応するパラメータの組a(φ)の値を決定する必要がある。ここで、ベクトルa(φ)の関数の形が単純な場合は、プログラムで計算することができるが、ほとんどの場合、ベクトルa(φ)は複雑な関数であり、人の手によって手動で値を設定する必要がある。
φ<φ1の場合、
a(φ)=a1 ……(式6)
φi≦φ<φi+1の場合、
a(φ)=s×ai+(1−s)×ai+1,
s=(φi+1−φ)/(φi+1−φi)……(式7)
φM≦φの場合、
a(φ)=aM ……(式8)
としてベクトルa(φ)の値を算出する。なお、補間方法としては、線形補間の他、高次のスプライン補間など他の補間方法を用いてもよい。
次いで、自動キャリブレーションについて説明する。本実施形態では、オブジェクトの体の回転の動作には、ゲーム装置1のY軸まわりの回転角θy(t)を使用しているが、この値は、ユーザー自身が向きを変えた場合にも変化してしまう。例えば、ユーザーが電車や車の中でゲームをプレイしていた場合に、気付かないうちにユーザー自身の向きが変わり、ゲームの中のオブジェクトが思わぬ方向に体を回転してしまうことが考えられる。またY軸まわりの回転角θy(t)の値は、角速度ベクトルω(t)を積分したときの誤差を含むため、それが無視できないほど大きくなる可能性も考えられる。
θ0→θ0+s×(θy(tj)−θ0) ……(式9)
ここで、式9のパラメータsはキャリブレーションの度合を表していて、sの値が0であればキャリブレーションの効果がまったくなくなり、sの値が1であればθ0が瞬時に現在の向きでキャリブレーションされることになる。キャリブレーションの度合がキャリブレーションの頻度に依存しないように、sの値はキャリブレーションの時間間隔に比例させるのが良い。すなわち、前回キャリブレーションしたときの時刻をtj-1とすると、sの値は次の式で求められる。
s=C×(tj−tj-1) ……(式10)
ここで、Cを定数としても良く、Cはキャリブレーションの速さ(単位時間あたりにキャリブレーションされる度合)を表す。Cの適切な値は、アプリケーションにより種々変更可能であるが、1〜5秒−1程度の値を設定するのが良い。また、キャリブレーションは十分高い頻度(少なくとも10Hz以上)で行なわれるとし、sの値が常に1よりも十分小さい値を取るようにしなければならない。
C=C'×exp(−|ω(t)|2/Ω2) ……(式11)
ここで、expは指数関数を表し、Ωはあらかじめ決めておく定数で、どの程度角速度が大きくなったらsの値を小さくするのかを決定するものである。また、C'は定数で、やはり1〜5秒−1程度の値を設定するのが良い。
次いで、打撃検出部211において、ユーザーによる打撃操作によって生じ得るコントローラの回転運動の特徴を検出する打撃検出法について説明する。本実施形態では、打撃検出部211は2つの打撃検出法を用いており、一方は(1)角加速度を用いて打撃操作の特徴を検出する打撃検出法1、他方は(2)角速度と角加速度との両方を用いて打撃操作の特徴を検出する打撃検出法2、である。しかし、本発明の実施に必ずこれらの2つの方法が必要なわけではなく、ゲームアプリケーションの要件に応じてどちらか一方を用いることも、変更を加えた方法を用いることも可能である。なお、どちらの検出方法も誤検出を生じる可能性があるため、後述する誤検出の改善方法を組み合わせて利用するものとする。ここで誤検出とは、ユーザーが意図していないタイミングでパンチが検出されてしまうことを意味する。以下、各検出方法、及び誤検出改善方法について説明する。
角加速度を用いて打撃動作を開始するタイミングを検出する打撃検出法1とは、角速度のY成分であるωy(t)の単位時間あたりの変化量、すなわちY軸まわりの角加速度、がしきい値を越えたときに打撃を検出するものである。
αy(tj)={ωy(tj)−ωy(tj-1)}/(tj−tj-1) ……(式12)
このようにして得られた角加速度αy(tj)の大きさがしきい値Tαを越えたときに打撃操作が入力されたと検出する。この方法のメリットは、角加速度αy(tj)の値はユーザーが打撃操作を入力しようとしてゲーム装置1を押し出した瞬間に増加するため、ユーザーの操作に対して遅延なく打撃を検出できることである。また、ユーザーは一瞬だけ力を入れれば良く、ゲーム装置1を大きく動かさなくても打撃操作を入力することができる。
次いで、角速度と角加速度との両方を用いた打撃検出法2について説明する。ここでの検出方法とは、角加速度αy(t)を使って現在時刻tから微小時間Δt後の角速度ωy(t+Δt)の値を予測し、その大きさをしきい値Tωと比較するという方法である。ここで、ωy(t+Δt)の予測値をω'y(t+Δt)と記述することにし、次のように予測する。
ω'y(t+Δt)=ωy(t)+αy(t)Δt ……(式13)
そして、式13で予測したω'y(t+Δt)の大きさが、しきい値Tωを越えたときに打撃操作が入力されたと検出する。この方法のメリットは、角速度ωy(t)の値が大きくなるのがゲーム装置1が速く回転運動しているときだけであるため、打撃検出法1に比べて誤検出が少なくなることである。
次いで、各打撃検出法で発生する打撃操作の誤検出を改善する方策を説明する。図5は、右手で打撃動作を1回入力した場合のY軸まわりの回転角θy(t)の変化を示したグラフであり、図6は、右手、左手の順に打撃動作を連続で入力した場合のY軸まわりの回転角θy(t)の変化を示したグラフである。また、図7は、右手で打撃動作を1回強く入力した場合のY軸まわりの回転角θy(t)の変化を示したグラフであり、図8は、右手だけで打撃動作を2回連続で入力した場合のY軸まわりの回転角θy(t)の変化を示したグラフである。
先ず、一方の手で打撃操作を1回行った場合について説明する。図5に示すように、ここでの操作は、グラフのAの時点から、右手を手前に引き始めてパンチの予備操作に入り、Dの時点で右手を強く押し出してパンチを入力する操作を行っている。そして、Fの時点で押し出した手を止め、Gの時点では、その反動で手を引き戻している。このグラフはパンチの操作をしたときに見られる典型的なパターンを示していて、特にGの時点での手を引き戻す動作は、ユーザーが意図して行うものではなく筋肉の反射的な動きであり、必ず見られる反応である。そして、各時点A〜Hにおいて、誤検出が生じる可能性がある。打撃検出法1におけるしきい値Tαや、打撃検出法2におけるしきい値Tω、式13のΔtなどの値を調整することで、誤検出をある程度軽減できるものの、いくつか抜本的な対策が必要となる時点があるため、それらの時点で生じ得る誤検出とそれに対する改善処理について説明する。
予備操作を開始するA時点では、ユーザーがゲーム装置1を持つ手を引いたときの角加速度αy(t)を誤って検出してしまうことが生じる。この誤検出によって、ユーザーが意図していた手と反対の手で打撃操作が入力されたと判断されてしまうため、ユーザーの操作感を大きく損なうことになる。この誤検出は上記の打撃検出法1で発生するが、打撃検出法2打撃検出法2を用いる場合でも、式13のΔtの値を大きく設定した場合に発生する可能性がある。この時点での誤検出に対しては以下の改善方法を用いる。
ここでの改善処理は、制御装置本体100に含まれている加速度センサ169を使うことで予備動作と打撃動作を区別するものである。つまり、加速度センサ169で検出された加速度のZ成分が正であった場合は、ゲーム装置1が手前に引き戻されたことになるため、角加速度αy(t)が増加した理由を予備操作のためであると判断し、打撃操作を検出しないようにする。しかし、ユーザーが片方の手を手前に引く時は、同時にもう一方の手をわずかに押し出す傾向があり、小さな逆向きの加速度を検出してしまう場合がある。そこで加速度のZ成分が正であるかを調べる代わりに、加速度のZ成分がしきい値−Taよりも大きいかどうかを調べ、大きければ打撃操作を検出しないようにする。本実施形態ではTaの大きさは0.1G(重力加速度の10分の1)程度の大きさにしている。
Cの時点では、予備操作でゲーム装置1を手前に引き戻す動作を止めたことによって角加速度αy(t)が大きくなり、打撃検出法1を使っている場合には誤検出が発生する。この場合、ユーザーが意図していた右手の打撃と判定されるので大きな問題はないが、C時点は、ユーザーの意図したタイミングではないため、仮にユーザーがフェイントで打撃するまねだけをした場合には誤検出となる。なお、打撃検出法2を利用する場合は、式13のΔtの値を大きく設定し過ぎるとC時点で誤検出が発生する可能性があるが、Δtの値が0.05秒程度であれば、その可能性は極めて低い。
改善処理C−1は、角加速度だけでなく角速度の向きも監視する処理である。すなわち、角加速度αy(t)の大きさがしきい値Tαを越えていても、Y軸まわりの角速度ωy(t)と角加速度αy(t)の正負が異っていたり、Y軸まわりの角速度ωy(t)の大きさが十分でない場合(あるしきい値T'ωよりも小さい場合)には、角加速度αy(t)の増加の理由が回転していたゲーム装置1が停止したためであると判断し、打撃操作を検出しないようにする。なお、しきい値T'ωは、打撃検出法2におけるしきい値Tωとは異なるものであり、しきい値T'ωの値はしきい値Tωに比べてかなり小さい値に設定する。
Dの時点は、ユーザーが打撃操作を行なった時刻なので、ここで打撃を検出するのは正しい処理だが、仮にユーザーがフェイントで打撃をするまねだけをした場合、予備操作の反動によってこの時点で打撃を検出してしまうことがある。フェイントをかける場合は反動が起きないようにユーザーに注意してもらえば良いのだが、次のような改善処理によって、フェイントが成功する確率を上げることができる。
改善処理D−1はゲーム装置1の回転が止まった瞬間を検知し、直後に反動か起こることを予測して一時的にしきい値を大きくする処理である。具体的には、まず回転が止まった瞬間を角速度ωy(t)の値がゼロになった時刻、若しくはゼロをまたいで正負が反転した時刻とする。この時刻はゲーム装置のY軸まわりの回転角θy(t)がピークを迎える時刻なので、ピーク時刻tpと呼ぶことにする。そして、このピーク時刻tpでの角加速度αy(tp)を使って次の条件式を満たす間は打撃を検出しないようにする。
|αy(t)| ≦ |αy(tp)|・exp(−λ(t−tp)) ……(式14)
つまり、角加速度αy(t)がピーク時刻tpでの角加速度αy(tp)を指数関数的に減衰させた値よりも大きくならない限り打撃を検出しないようにする。式14の右辺で算出している値はすぐに減衰してしきい値Tαより小さくなるため、この処理が適用される期間は限定的である。なお、本実施形態ではλの値には20秒-1程度の値を用いている。
Gの時点では、ゲーム装置1を押し出した右手を急に止めた反動で手を引き戻そうとしたときに増加する角加速度αy(t)によって誤検出が生じる。ここでの誤検出は打撃検出法1で発生するが、打撃検出法2を用いる場合でも、式13のΔtの値を大きく設定した場合に発生する可能性がある。ここでの誤検出は改善処理A−1と改善処理D−1を適用することで防ぐことができる。しかしながら、これらの改善処理によって、本来打撃を検出しなければならない状況、即ち、ユーザーがコンビネーションパンチのような左右の連続した打撃操作をした場合に打撃の検出に失敗してしまうことがある。
H時点は、G時点と同じくゲーム装置1を急に止めた反動で手が引き戻されたときに角速度ωy(t)の大きさが増加することにより、打撃検出法2で誤検出が生じる。G時点では改善処理A−1と改善処理D−1を適用することでコンビネーションパンチのような左右の連続した打撃操作の検出に失敗することがあった。そこで、H時点で反動とコンビネーションパンチを区別して検出することを試みる。そこで、まずコンビネーションパンチが入力された場合と反動によって手が引き戻された場合との違いについて分析し、次いで誤検出を防ぐための改善処理を説明する。
まず、打撃操作を2回連続で入力した場合について説明する。図6は右手、左手の順に打撃操作を続けて入力したときのY軸まわりの回転角θy(t)の変化を示したグラフである。この図では、I時点で右手を前に押し出して最初の打撃操作を入力し、J時点で右手が止まると同時に左手を押し出して2番目の打撃操作を入力していることを示している。
改善処理H−1は、打撃検出法2において、Y軸まわりの回転角θy(t)がピークに達した時刻からごく短い期間は、打撃検出法2で打撃操作を検出しないようにするものである。図7を例にとると、Y軸まわりの回転角θy(t)がピークに達した時点Oから微小期間εの間では打撃動作を検出しないようにする。この微小期間εはT1よりも若干長い0.055秒程度に設定する。これをあまり長い値に設定すると、コンビネーションパンチを検出できなくなる。
tp=(|ωy(tj)|tj-1+|ωy(tj-1)|tj)/(|ωy(tj-1)|+|ωy(tj)|) ……(式15)
また、ピークに逹した時刻tpから微小期間ε経過した後に始めて角速度を検出した時刻をtεとし、時刻tεにおいては、式13の代わりに次の式で角速度の値を推測することにする。
ω'y(tp+ε+Δt)=ωy(tε)+αy(tε)(Δt+tp+ε−tε) ……(式16)
時刻tεにおいて、式16で得られたω'y(tp+ε+Δt)をしきい値Tωと比較して打撃操作を検出することで、角速度検出部205が動作するタイミングの影響をあまり受けずに、改善処理H−1を適用することができるようになる。
次いで、図8に示すように、同じ手で2回続けて打撃操作を行った場合について説明する。図8では、Q時点で1回目の打撃操作が入力され、R時点からS時点にかけて反動で右手が引き戻されている。そして、S時点からT時点にかけては、反動の勢いを借りて2回目の予備操作が行われ、T時点で2回目の打撃操作が入力されている。
動作制御部210は、打撃動作や予備動作とは異なるオブジェクトの動作を制御する機能も備えており、例えば、ボクシングゲームでは、ジャイロセンサ164を、プレイヤーオブジェクトに対戦相手の打撃を避ける動作をさせる制御に使うことができる。
y=(0,1,0) ……(式17)
そして、ゲーム開始時のゲーム装置1の回転行列をA0とし、その逆行列をA0 -1とする。そして、Y軸方向の単位ベクトルyをA(t)A0 -1で回転することで得られるベクトルy'(t)を、次のように求める。
y'(t)=A(t)A0 -1y ……(式18)
式18で算出されたベクトルy'(t)は、ゲーム装置1のY軸がゲーム開始時からどれだけ傾いたかを表しているため、ベクトルy'(t)のX成分を左右の傾きの検出に使い、ベクトルy'(t)のZ成分を前後の傾きの検出に使うことができる。
Δr=ω(t)Δt+0.5×α(t)Δt2……(式19)
そして、式19で予測した微小時間Δt秒での回転ベクトルΔrを、次のように回転の大きさΔθと回転軸ベクトルaとに分解する。
Δθ=|Δr|, ……(式20)
a=Δr/Δθ ……(式21)
このようにして得られた回転角Δθと回転軸ベクトルaを使って、式17のY軸方向の単位ベクトルyを回転したものをベクトルy''として、ベクトルy''を次のようにして求める。
y''=(1−cosΔθ)(a・y)a+(cosΔθ)y+(sinΔθ)(a×y) ……(式22)
ここで、(a・y)はベクトルaとベクトルyの内積、(a×y)はベクトルaとベクトルyの外積を表している。そして、式18のベクトルyの代わりに式22で求めたベクトルy''を回転行列A(t)A0 -1で回転することで、次のように微小時間Δt後のベクトルy'(t+Δt)を予測する。
y'(t+Δt)=A(t)A0 -1y''……(式23)
この式23で得られたy'(t+Δt)をy'(t)の代わりに用いることで、パンチの回避動作の入力を検出する際の遅延を解消できる。なお、本実施形態において、微小時間Δtは0.05秒に設定されている。
さらに、打撃検出部211には、タッチパネル300などの入力部に対する入力信号の有無又は種別に応じて、打撃種類及び防御種類を変化させる機能を有している。例えば、ボクシングゲームであれば、打撃種類としては、ジャブ、ストレート、フック、ボディブロー、アッパーカット、防御種類としては頭部のカード、ボディのガードなどが考えられる。
上述したような本実施形態における本発明のユーザーインターフェースシステムにおいて、コントローラから入力される操作信号等の情報を元に、ユーザーによる打撃操作があったことを判断する操作信号解析方法について以下に説明する。図10は、本実施形態に係る操作信号解析方法の概略を示すフローチャート図であり、図11は、本実施形態に係るピーク検出処理のサブルーチンを示すフローチャート図である。また、図12は、実施形態に係る打撃検出処理1のサブルーチンを示すフローチャート図であり、図13は、実施形態に係る打撃検出処理2のサブルーチンを示すフローチャート図である。
本実施形態における、操作信号解析方法の概要について説明する。
先ず、最初のステップで、打撃検出部211は、打撃検出処理に必要な各変数に初期値を設定する(S101)。具体的には、開始時刻を変数tprevに、開始時刻におけるゲーム装置1のY軸まわりの角速度を変数ωprevに設定する(ωprev=ωy(tprev))。さらに、ピークを検出してからの経過時間であるピーク経過時間tpeekを0に設定する(tpeek=0)。さらに、ピークとピークの間でのゲーム装置1のY軸まわりの角速度の大きさの最大値を表す変数ωmaxと直近のピークの時刻におけるY軸まわりの角加速度を表す変数αpeekを0で初期化する(ωmax=0, αpeek=0)。また、開始時刻では左右どちらの打撃操作も検出していないことに設定し(punch=NONE)、コマンド待ち行列を初期化する。
また、ピーク時刻に検出されたY軸まわりの角加速度αpeekを式14の右辺のように減衰させる(αpeek=αpeek・exp(−λdt) )。
次いで、S106におけるピーク検出処理について説明する(図11)。先ず、打撃検出部211は、前回検出した角速度と今回検出した角速度とから、ゲーム装置1の回転が停止してゲーム装置1のY軸まわりの回転角がピークに達したかどうかを判断する(S201)。具体的には、前回動作制御部210が実行されたときに検出されたY軸まわりの角速度ωprevと、現時刻におけるY軸まわりの角速度ωcurとの乗算値が正か負かでピークを検出したかどうかを判断する(ωcur×ωprev≦0)。
次いで、S107における打撃検出処理1について説明する(図12)。この処理は、打撃検出法1に、改善処理A−1、改善処理C−1及び改善処理D−1を組み合わせて打撃動作を検出するものである。
次いで、S108における打撃検出法2について説明する(図13)。この処理は、打撃検出法2に改善処理A−1及び改善処理H−1を組み合わせてパンチを検出するものである。先ず、打撃検出部211は、ステップS401において、改善処理H−1と改善処理A−1を適用する。具体的には、ピーク検出処理でピークが検出されてからの経過時間tpeekが所定の微小期間εを越えているかどうか、加速度のZ成分azがしきい値−Ta以下かどうかを確認し、打撃検出処理を行なうかどうかを判断する(S401)。もしいずれかの条件を満たさなければ(S401における“NO”)、反動を誤検出しないように打撃検出処理を終了する。
punch変数をLEFTに設定した後(S408)、打撃検出法2を終了する。ステップS407の条件のいずれかを満たさない場合には、(S407における“NO”)、打撃検出無しとして処理を終了する。
上述した本実施形態に係るユーザーインターフェースシステム、及び操作信号解析方法は、所定の言語で記述された操作信号解析プログラムをコンピュータ71〜74上で実行することにより実現することができる。すなわち、図14に示すように、このプログラムを携帯情報端末(PDA)に携帯電話・通信機能を統合した携帯端末機71、クライアント側が使用するパーソナルコンピュータ72、ネットワーク上に配置されてクライアント側にデータや機能を提供するサーバー装置73、又はゲーム装置などの専用装置74、又はICチップ86にインストールし、CPU上で実行することにより、上述した各機能を有するユーザーインターフェースシステムを容易に構築することができ、及び操作信号解析方法を実行することができる。
このような本実施形態によれば、ゲーム装置1内にジャイロセンサ164を備え、このジャイロセンサ164によって、ゲーム装置1を持つユーザーの手の動きを検出し、ユーザーの手の動きに応じて、左右の打撃操作を認識しているので、例えば、ボクシングゲームなど左右の拳で打撃を行うゲームにおいても直感的にオブジェクトを操作でき、ユーザーはより良いゲーム体験を得ることができる。さらに本実施形態では、ジャイロセンサ164によって検出される角速度の向きを用いて、打撃操作の左右を区別しているので、単一の制御装置があれば良く、例えば、スマートフォンやタブレット端末などの広く普及している汎用性のある操作デバイスを利用でき、コスト全体を安価にすることができる。
なお、上述した実施形態の説明は、本発明の一例である。このため、本発明は上述した実施形態に限定されることなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更や、それぞれの構成を組み合わせることが可能であることはもちろんである。なお、以下に変更例を示すが、本発明はこれらの変更例にも限定されることはない。特に上記の打撃検出法1や打撃検出法2、及びこれらの打撃検出法に各種の改善方法を組み合わせた方法は、ジャイロセンサ164を持つゲーム装置1から入力された一連の角速度の値を用いて、ユーザーが前記ゲーム装置1を両手で持ち左右どちらかの手を前に押し出す打撃操作を行なった際に生じ得る前記ゲーム装置1の回転運動に関する何らかの特徴を検出し、ユーザーから打撃操作の入力があったことを判断する機能を実現するために用いることが可能であれば、他の方法に置換可能である。
上述した実施形態では、打撃操作の検出において、角加速度を用いた打撃検出法1と、角速度と角加速度との両方を用いた打撃検出法2とを用いたが、例えば、他の方法を用いて、ユーザーによる打撃操作を検出してもよい。以下に、他の打撃検出法について説明する。
この打撃検出法3は、角速度のみを用いてユーザーによる打撃操作の入力があったことを検出するものである。具体的に、この打撃検出法3とは、Y軸まわりの回転の角速度ωy(t)の大きさが、あるしきい値Tωを越えたときにパンチを検出するものである。この方法を用いることで、しきい値Tωの値をある程度大きく取れば、誤検出が少なくなるため実装が容易になるが、ユーザーが打撃操作を開始してから実際に打撃操作が検出されるまでに時間がかかるという欠点もある。
打撃検出法4としては、上述した打撃検出法2を拡張し、過去M回分のデータを使って微小時間Δt後の角速度を予測するものである。具体的に、上述した打撃検出法2は、過去2回分のデータを使って角速度ωy(t)の時間変化を直線で近似し、微小時間Δt後の角速度を予測する方法とも言えることから、この打撃検出法4では、さらに過去M回分のデータを使い、直線ではなくN次曲線を使って角速度の変化を予測することで精度を上げる。ここで、N次曲線は最小2乗法で求めることができるが、オーバーフィッティングを防ぐためにN+1<M である必要があり、その値はN=2、M=4又は5程度が好ましい。
すなわち、経過時間Δt後の角速度ω'y(t+Δt)が以下の形式を持つと仮定する。
ω'y(t+Δt) = a0 + a1×Δt + ... + aN×ΔtN ……(式24)
そして最小二乗法でパラメータa0, a1, ..., aNの値を決定し、得られたω'y(t+Δt)の値の大きさがしきい値Tωを越えたときにパンチを検出することにする。
次いで、上述した打撃検出法1及び打撃検出法2における他の誤検出改善処理、及び変更例で説明した打撃検出法3及び打撃検出法4についての誤検出改善処理について説明する。
・A時点について
予備動作を開始するA時点では、ユーザーがゲーム装置1を持つ手を引いたときの角加速度αy(t)を誤って検出してしまうことが生じる。この誤検出によって、ユーザーが意図していた手と反対の手で打撃を行うことになる。特に、この誤検出は上記の打撃検出法1、打撃検出法2、打撃検出法4のいずれかを用いる際に発生する可能性がある。この場合の改善方法としては、以下の改善方法を用いる。
改善処理A−2は、しきい値Tαを大きくするものである。具体的には、打撃検出法1を使っている場合において、しきい値Tαを大きくすることで誤検出を防止する。なお、この場合にしきい値Tαは、Dの時点で検出すべき打撃操作を検出できる程度の大きさに設定する。しかし、ゲームをプレイしているうちにユーザーは興奮して、ゲーム装置1を持つ手の動きも激しくなりがちになるので、加速度を用いた改善処理A−1を利用できるのであれば、その方が良い。
改善処理A−3は、しきい値Tωを大きくするものである。具体的には、打撃検出法2ないし4のいずれかを使っている場合において、しきい値Tωの値を大きくすることで誤検出を防止する。この場合もしきい値Tωは、Dの時点で検出すべき打撃動作を検出できる程度の大きさに設定する。この場合も改善処理A−1を利用できるのであれば、その方が良い。
打撃検出法2若しくは4を使っている場合の別の改善処理としては、微小時間Δtの値を小さくして、角加速度αy(t)の影響を小さくすることもできる。但し、微小時間Δtの値を小さくすると、検出の反応速度は低下する。
また、他の改善処理としては、予備操作が完了していない状態ではでは、角加速度αy(t)を検出しないように処理することもできる。すなわち、Y軸まわりの回転角θy(t)の大きさが一定のしきい値Tθより大きく、かつ、Y軸まわりの角速度ωy(t)と、Y軸まわりの回転角θy(t)との正負が異なるときだけ打撃動作の検出を行う。この方法は、予備操作を必ず行うとしても構わないテニスゲームなどには有効であるが、予備動作なしの打撃があるボクシングゲームには適用できない。
改善処理A−6では、予備操作が完了していない状態では、しきい値Tαの値を大きく設定するものである。この処理により、改善処理A−2と同様に誤検出を防ぎ、予備操作中に限定することで、Dの時点での打撃動作を検出することができる。また、ボクシングゲームなどにも適用可能であるが、予備動作なしのジャブのような打撃の入力が難しくなる。
Bの時点では、予備操作の速度の大きさが最大になり、打撃検出法2ないし4のいずれかを使っている場合に誤検出が発生する可能性がある。
改善処理B−1は、しきい値Tωの値を大きく設定するものである。ただし、この値を大きくしすぎるとEの時点での打撃操作が検出できず、打撃操作の入力のために、ゲーム装置1を大きく動かさなくてはいけなくなることになるため、しきい値TωをEの時点での打撃操作が検出できる値とする。
改善処理B−2は、改善処理A−5と同様に、予備操作が完了していない状態では、打撃操作の入力を検出しない処理である。
この改善処理B−3は、改善処理A−6と同様に予備操作が完了していない状態の時だけ、しきい値Tωの値を大きくするものである。これにより、改善処理B−1と同様に誤検出を防ぎ、予備操作中に限定することで、Eの時点での打撃操作を検出することができる。
Cの時点では、予備操作が止まったために、角加速度αy(t)が大きくなり、打撃検出法2及び4を利用する場合も、C時点で誤検出が発生する場合がある。
打撃検出法2若しくは4を利用していて、Cの時点で誤検出が起きるのは、微小時間Δtの値が大きすぎるためである。そこで、改善処理C−2は、微小時間Δtの値を小さくすることでC時点での誤検出を防止する。
Fの時点では、C時点での誤検出と同様に、打撃操作を止めたときの角加速度αy(t)が検出される。特に、ここでは、ユーザーが意図していた手とは反対の手の打撃操作と判定されることがある。ここでの誤検出の改善処理としては、上記改善処理C−1又はC−2を用いるものとする。
Gの時点では、ゲーム装置1を押し出した右手を急に止めたときの反動で手を引き戻したときに生じる角加速度αy(t)が検出される。
改善処理G−1は、一度打撃操作を検出したら一定時間パンチを検出しないようにするものである。具体的には、D時点で打撃操作を検出してから、所定の時間間隔δの間は打撃操作を検出しないようにする。本実施形態のボクシングゲームにおいては、オブジェクトの打撃動作は極めて速く、ユーザーが連続して打撃操作を入力できるように、時間間隔δを大きく設定することはできないが、確実に誤検出を防ぐためには、時間間隔δの値を0.2秒程度の長さに設定するのが良い。
なお、ゲームアプリケーションの要件によっては、一度打撃操作を入力したら、しばらくの間は打撃操作を行う必要がないこともある。その場合は時間間隔δの値を大きく取ることも可能である。例えば、テニスゲームの場合、一度ラケットを振ったら次の1秒程度はラケットを振る必要がないので、時間間隔δを1秒程度の大きさにすることができる。
H時点は、打撃検出法2だけでなく、打撃検出法3及び4でも誤検出が生じる。しかし、打撃検出法3は打撃検出法2における微小時間Δtをゼロにした特殊なケースであり、打撃検出法4は打撃検出法2をさらに拡張した方法であるので、改善処理H−1をこれらの打撃検出法にも適用できる。
また、他の改善処理としては、Y軸まわりの回転角θy(t)がピークに達してから打撃検出法2で打撃操作を検出しても、所定の時間内にY軸まわりの回転角θy(t)が十分大きく変化するまでは、打撃操作として処理しないものである。例えば、図6のK時点で打撃操作が検出されても、所定の時間内にY軸まわりの回転角θy(t)の値がθy=0のラインを横切るL時点までは検出を保留するような処理を行う。なお、この改善処理も打撃検出法3及び4に用いることもできる。この改善処理では片手で2回続けて打撃操作を行った場合の図8のSにおいて誤検出をしてしまうため、上述した実施形態に適用するのは難しいが、ゲームアプリケーションの要件によっては十分実用可能な改善方法となり得る。
これまでに述べた打撃検出法や改善処理において、様々なしきい値を用いてきた。これらは所定の値を持ち、改善処理D−1や改善処理A−6、B−3においてはしきい値を状況に応じて変更させていた。しかし、これらのしきい値はユーザーの環境に応じて変化させても良い。つまり、ユーザーの筋力やコントローラの重さなどによって、しきい値の値を変更することで、ユーザーがより楽に打撃操作を成功させることができるようになる。これらの変更はユーザー設定により直接行なっても良いし、ユーザーに打撃操作を何回か行なってもらい、適切なしきい値を測定するという方法を取ることもできる。
αy(tp)・exp(−λtpeek) 〜αy(tp) −λtpeek・αy(tp) ……(式25)
で近似するためである。また我々の経験では、回前に検出された加速度のZ成分も特徴に追加することでより良い識別関数を作ることができる。
ここで、識別関数をこれまでの議論を元にプログラミングしても良いが、ニューラルネットワーク等を用いて機械学習によって推定することもできる。また、機械学習によって、前述したようなユーザー環境に応じたしきい値の変更を行なったり、ユーザー毎の癖やゲームアプリケーションを実行しているゲーム装置の差異などを吸収したりできる可能性がある。例えば、ユーザーの筋力やゲーム装置の重さや大きさなどによって、打撃検出法1におけるしきい値Tαや打撃検出法2におけるしきい値Tω、及び改善処理H−1の微小期間εを変更した方がより正確に打撃操作を検出できるだろうし、加速度センサが配置された位置に応じて、特徴の1つであるの加速度のZ成分azと、別の特徴である角加速度αy(t)の重みを変更することによって、改善処理A−1と同様の処理をより正確に行なうことができると期待できる。
71…携帯端末機
71〜74…コンピュータ
72…パーソナルコンピュータ
73…サーバー装置
74…専用装置
81…光ディスク
81〜85…記録媒体
82…カセットテープ
83…フレキシブルディスク
84…メモリカード
85…USBメモリ
86…ICチップ
100…制御装置本体
100…本体
101…アンテナ
102…デュプレクサ
103…シンセサイザ
110…低ノイズアンプ
111…ミキサ
112…IFアンプ
113…直交ミキサ
114…コンバータ
115…復調器
116…チャネルデコーダ
117…音声デコーダ
118…コンバータ
119…アンプ
120…スピーカ
130…パワーアンプ
131…ミキサ
132…IFアンプ
133…直交ミキサ
134…コンバータ
135…変調器
136…チャネルエンコーダ
137…音声エンコーダ
138…コンバータ
139…アンプ
140…マイク
150…タイムベース
151…EEPROM
152…RAM
152,EEPROM151…RAM
153…ROM
164…ジャイロセンサ
165…ディスプレイ
165…液晶ディスプレイ
165…LCD
166…操作ボタン
167…LED
168…タッチセンサ
169…加速度センサ
171…電源系電池
172…電源
173…コンバータ
174…バイブレータ
200…CPU
201…操作信号取得部
201a…操作位置検出部
202…アプリケーション実行部
204…表示情報生成部
204a…3D構成部
204b…2D構成部
204c…GUI構成部
205…角速度検出部
206…操作デバイス
210…動作制御部
211…打撃検出部
300…タッチパネル
304,305…パワーゲージ
306,307…選択領域
306a,307a…A領域
306b,307b…B領域
306c,307c…C領域
1.前記コントローラが、角速度センサと、ユーザーが両手で持って操作を行なうことが可能な本体とを持つ。
2.前記打撃検出部が、前記角速度センサによって連続的に検知される前記コントローラの角速度の一連の値を用いて、ユーザーが前記コントローラを両手で持ち左右どちらかの手を前に押し出す打撃操作を行なった際に生じ得る前記コントローラの回転運動に関する前記打撃操作の特徴を検出する打撃検出法を備える。
3.前記打撃検出部が、次のいずれか若しくは両方を含む方法を用いて、前記打撃検出法によって検出された打撃操作の特徴が本当にユーザーの打撃操作によるものかを判断し、ユーザーの打撃操作によるものではないと判断した場合には、打撃操作の検出を抑制する誤検出改善処理を備える。
a)前記コントローラがさらに加速度センサを備え、前記加速度センサによって検出された加速度を用いることで、前記コントローラが前に押し出されているのか、後ろに引き戻されているのかを判断し、後ろに引き戻されていると判断した場合には打撃操作の検出を抑制する。
b)前記角速度センサによって過去に検出された一連の角速度のデータを用い、前記打撃検出法によって打撃操作の特徴が検出された時点で打撃操作後の反動が起きているかを判断し、打撃操作後の反動が起きていると判断した場合には打撃操作の検出を抑制する。
4.前記打撃検出部が、前記打撃検出法及び前記誤検出改善処理を用いることにより、ユーザーから打撃操作の入力があったかどうかを判断する機能を実現する。
前記演算処理装置若しくは前記演算処理装置で実行されるソフトウェアが前記コントローラから入力される操作信号等の情報を元に、ユーザーから打撃操作の入力があったことを判断する手段である打撃検出部を有するユーザーインターフェースシステムであって、以下の特徴を持つ。
1.前記コントローラが、角速度センサと、ユーザーが両手で持って操作を行なうことが可能な本体とを持つ。
2.前記打撃検出部が、前記角速度センサによって連続的に検知される前記コントローラの角速度の一連の値を用いて、ユーザーが前記コントローラを両手で持ち左右どちらかの手を前に押し出す打撃操作を行なった際に生じ得る前記コントローラの回転運動に関する前記打撃操作の特徴を検出する打撃検出法を備える。
3.前記打撃検出法として、ニューラルネットワーク等による機械学習が可能な識別関数を用い、前記識別関数がユーザーによる前記打撃操作の入力があったかどうかを、ユーザーが前記打撃操作を止めた後の反動及びユーザーが前記打撃操作前に行なう予備動作と区別して識別する能力を習得している、若しくは機械学習によって習得可能である。
4.前記打撃検出部が、前記打撃検出法を用いることにより、ユーザーから打撃操作の入力があったかどうかを判断する機能を実現する若しくは機械学習によって実現することができる。
上記発明では、前記識別関数が、ユーザーによる前記打撃操作の入力があったかどうかを、ユーザーが前記打撃操作を止めた後の反動及びユーザーが前記打撃操作前に行なう予備動作と区別して識別する能力を、より効率的に機械学習によって習得できるように、次のa),b)いずれか若しくは両方を入力パラメータ若しくは入力パラメータを算出するためのデータとして含むことが好ましい。
a)前記コントローラがさらに加速度センサを備え、前記加速度センサによって検出された加速度のZ軸方向の値。
b)前記コントローラのY軸まわりの回転運動が停止した瞬間の時刻からの経過時間。
ここでZ軸方向とは、前記打撃操作時にユーザーの手が押し出される方向とみなせる所定の方向とし、Y軸とは、前記打撃操作による前記コントローラの回転運動の自然な回転軸とみなせる所定の軸とする。
これまで議論してきた打撃検出法と改善処理を一般化すれば、ユーザーによる打撃操作の入力があったかどうかは、Y軸まわりの角速度ωy(t)の変化のパターン(波形)とゲーム装置1の加速度のZ成分とを解析することで識別できる。例えば、直近に検出された10回分の角速度の値と加速度のZ成分の値をニューラルネットワーク等でパターン解析すれば、ニューラルネットワークを用いた識別関数を打撃検出法として用いることができる。しかし、この方法だと多層のネットワークが必要で学習に時間がかかってしまいあまり実用的ではない。そこで、直近に検出された10回分のデータをそのまま使うのではなく、いくつかの特徴を抽出する必要がある。上記の打撃検出法1及び2,及び改善処理A−1,C−1,D−1,H−1などを考慮すると、特徴としては、現在時刻tでの角速度ωy(t)及び角加速度αy(t)、ゲーム装置1の加速度のZ成分az、式15で推定されるY軸まわりの回転角がピークに逹した時刻tpにおける角加速度αy(tp)、及び時刻tpからの経過時間tpeekと時刻tpにおける角加速度αy(tp)を掛けた値(tpeek・αy(tp))、などがあれば良い。tpeekとαy(tp)を掛けた値を特徴として使うのは、式14の右辺によるαy(tp)の減衰の計算を
αy(tp)・exp(−λtpeek) 〜αy(tp) −λtpeek・αy(tp) ……(式25)
で近似するためである。また我々の経験では、1回前に検出された加速度のZ成分も特徴に追加することでより良い識別関数を作ることができる。
Claims (24)
- コントローラ及び前記コントローラから入力される情報等を処理する演算処理装置を備え、
前記演算処理装置若しくは前記演算処理装置で実行されるソフトウェアが前記コントローラから入力される操作信号等の情報を元に、ユーザーから打撃操作の入力があったことを判断する手段である打撃検出部を有するユーザーインターフェースシステムであって、
前記コントローラが、角速度センサと、ユーザーが両手で持って操作を行なうことが可能な本体とを持ち、
前記打撃検出部が、前記角速度センサによって連続的に検知される前記コントローラの角速度の一連の値を用いて、ユーザーが前記コントローラを両手で持ち左右どちらかの手を前に押し出す打撃操作を行なった際に生じ得る前記コントローラの回転運動に関する前記打撃操作の特徴を検出する打撃検出法を備え、
前記打撃検出法を用いることにより、ユーザーから打撃操作の入力があったことを判断する機能を実現する
ことを特徴とするユーザーインターフェースシステム。 - 前記打撃検出部が、前記角速度センサによって検出される前記コントローラの角速度を用いることによって、前記打撃操作がユーザーの右手によって行なわれたのか左手によって行なわれたのかを判断する機能を備える
ことを特徴とする請求項1に記載のユーザーインターフェースシステム。 - 前記打撃検出法のひとつとして、
前記角速度センサによって検出される、前記打撃操作が行なわれた場合の前記コントローラの自然な回転軸とみなせる所定の軸まわりの角速度の値、若しくは角速度の値の単位時間あたりの変化量、若しくは一連の角速度の値を用いて予測された微小時間先の角速度の値、若しくはこれらの値を結合することによって得られる値を、所定の、若しくは状況により変化し得る、若しくはユーザー設定やユーザーの環境によって変更可能な、しきい値と比較する方法を用いる
ことを特徴とする請求項1又は2に記載のユーザーインターフェースシステム。 - 前記コントローラがさらに加速度センサを内部に備え、
前記打撃検出部が、前記加速度センサにより検出された加速度を用いることで、前記コントローラが回転運動をした際に前記コントローラが前に押し出されているのか後ろに引き戻されているのかを判断し、後ろに引き戻されていると判断した場合には前記コントローラの回転運動は予備操作若しくは打撃操作後の反動によるものとして、打撃操作の検出を抑制する機能を有する
ことを特徴とする請求項1ないし3のいずれかに記載のユーザーインターフェースシステム。 - ユーザーの打撃操作によるコントローラの回転運動が停止した瞬間を検出し、その直後に反動が起こることを予測して前記打撃検出法による打撃操作の特徴の検出を制限することにより、前記ユーザーによる打撃操作の後の反動を誤って検出してしまうことを防ぐ機能を実現する
ことを特徴とする請求項1ないし4のいずれかに記載のユーザーインターフェースシステム。 - ユーザーによる連続した打撃操作の入力を正確に検出するために、前記打撃検出部は少なくとも2つの打撃検出法を備え、1つを打撃操作が開始された瞬間の特徴を検出する方法にし、もう1つを打撃操作が行なわれている最中の特徴を検出する方法にすることを特徴とする請求項4又は5に記載のユーザーインターフェースシステム。
- 前記ユーザーインターフェースシステムが、前記コントローラから入力される情報を元に算出される前記コントローラの所定の軸まわりの回転角と連動して、操作対象のオブジェクトに打撃動作に関する予備動作を実行させる機能、若しくは予備動作を実行させるための制御信号を送信する機能を持つ
ことを特徴とする請求項1ないし6のいずれかに記載のユーザーインターフェースシステム。 - 前記コントローラが、前記コントローラ本体に配置された入力部をさらに備え、
前記打撃検出部が、前記入力部への入力信号の有無又は種別に応じて、打撃の種別又は強弱を変化させる機能を有する
ことを特徴とする請求項1ないし7のいずれかに記載のユーザーインターフェースシステム。 - コントローラから入力される操作信号等の情報を元に、ユーザーから打撃操作の入力があったことを判断する打撃検出ステップ
を有するユーザーインターフェースシステムにおける操作信号解析方法であって、
前記コントローラが、角速度センサと、ユーザーが両手で持って操作を行なうことが可能な本体とを持ち、
前記打撃検出ステップが、前記角速度センサによって連続的に検知される前記コントローラの角速度の一連の値を用いて、ユーザーが前記コントローラを両手で持ち左右どちらかの手を前に押し出す打撃操作を行なった際に生じ得る前記コントローラの回転運動に関する前記打撃操作の特徴を検出する打撃検出法を含み、
前記打撃検出法を用いることにより、ユーザーから打撃操作の入力があったことを判断する機能を実現する
ことを特徴とする操作信号解析方法。 - 前記打撃検出ステップが、前記角速度センサによって検出される前記コントローラの角速度を用いることによって、前記打撃操作がユーザーの右手によって行なわれたのか左手によって行なわれたのかを判断する機能を実現する
ことを特徴とする請求項9に記載の操作信号解析方法。 - 前記打撃検出法のひとつとして、
前記角速度センサによって検出される、前記打撃操作が行なわれた場合の前記コントローラの自然な回転軸とみなせる所定の軸まわりの角速度の値、若しくは角速度の値の単位時間あたりの変化量、若しくは一連の角速度の値を用いて予測された微小時間先の角速度の値、若しくはこれらの値を結合することによって得られる値を、所定の、若しくは状況により変化し得る、若しくはユーザー設定やユーザーの環境によって変更可能な、しきい値と比較する方法を用いる
ことを特徴とする請求項9又は10に記載の操作信号解析方法。 - 前記コントローラがさらに加速度センサを内部に備え、
前記打撃検出ステップが、前記加速度センサにより検出された加速度を用いることで、
前記コントローラが回転運動をした際に前記コントローラが前に押し出されているのか後ろに引き戻されているのかを判断し、後ろに引き戻されていると判断した場合には前記コントローラの回転運動は予備操作若しくは打撃操作後の反動によるものとして、打撃操作の検出を抑制する機能を実現する
ことを特徴とする請求項9ないし11のいずれかに記載の操作信号解析方法。 - 前記打撃検出ステップが、ユーザーの打撃操作によるコントローラの回転運動が停止した瞬間を検出し、その直後に反動が起こることを予測して前記打撃検出法による打撃操作の特徴の検出を制限することにより、前記ユーザーによる打撃操作の後の反動を誤って検出してしまうことを防ぐ機能を実現する
ことを特徴とする請求項9ないし12のいずれかに記載の操作信号解析方法。 - ユーザーによる連続した打撃操作の入力を正確に検出するために、前記打撃検出ステップは少なくとも2つの打撃検出法を用い、1つを打撃操作が開始された瞬間の特徴を検出する方法にし、もう1つを打撃操作が行なわれている最中の特徴を検出する方法にすることを特徴とする請求項12又は13に記載の操作信号解析方法。
- 前記操作信号解析方法が、前記コントローラから入力される情報を元に算出される前記コントローラの所定の軸まわりの回転角と連動して、操作対象のオブジェクトに打撃動作に関する予備動作を実行させるステップ、若しくは予備動作を実行させるための制御信号を送信するステップを有する
ことを特徴とする請求項9ないし14のいずれかに記載の操作信号解析方法。 - 前記コントローラが、前記コントローラ本体に配置された入力部をさらに備え、
前記打撃検出ステップが、前記入力部への入力信号の有無又は種別に応じて、打撃の種別又は強弱を変化させる機能を実現する
ことを特徴とする請求項9ないし15のいずれかに記載の操作信号解析方法。 - コントローラから入力される操作信号等の情報を元に、ユーザーから打撃操作の入力があったことを判断する打撃検出ステップ
を有するユーザーインターフェースシステムにおける操作信号解析プログラムであって、
前記コントローラが、角速度センサと、ユーザーが両手で持って操作を行なうことが可能な本体とを持ち、
前記打撃検出ステップが、前記角速度センサによって連続的に検知される前記コントローラの角速度の一連の値を用いて、ユーザーが前記コントローラを両手で持ち左右どちらかの手を前に押し出す打撃操作を行なった際に生じ得る前記コントローラの回転運動に関する前記打撃操作の特徴を検出する打撃検出法を含み、
前記打撃検出法を用いることにより、ユーザーから打撃操作の入力があったことを判断する機能を実現する
ことを特徴とする操作信号解析プログラム。 - 前記打撃検出ステップが、前記角速度センサによって検出される前記コントローラの角速度を用いることによって、前記打撃操作がユーザーの右手によって行なわれたのか左手によって行なわれたのかを判断する機能を実現する
ことを特徴とする請求項17に記載の操作信号解析プログラム。 - 前記打撃検出法のひとつとして、
前記角速度センサによって検出される、前記打撃操作が行なわれた場合の前記コントローラの自然な回転軸とみなせる所定の軸まわりの角速度の値、若しくは角速度の値の単位時間あたりの変化量、若しくは一連の角速度の値を用いて予測された微小時間先の角速度の値、若しくはこれらの値を結合することによって得られる値を、所定の、若しくは状況により変化し得る、若しくはユーザー設定やユーザーの環境によって変更可能な、しきい値と比較する方法
を用いる請求項17又は18に記載の操作信号解析プログラム。 - 前記コントローラがさらに加速度センサを内部に備え、
前記打撃検出ステップが、前記加速度センサにより検出された加速度を用いることで、
前記コントローラが回転運動をした際に前記コントローラが前に押し出されているのか後ろに引き戻されているのかを判断し、後ろに引き戻されていると判断した場合には前記コントローラの回転運動は予備操作若しくは打撃操作後の反動によるものとして、打撃操作の検出を抑制する機能を実現する
ことを特徴とする請求項17ないし19のいずれかに記載の操作信号解析プログラム。 - 前記打撃検出ステップが、ユーザーの打撃操作によるコントローラの回転運動が停止した瞬間を検出し、その直後に反動が起こることを予測して前記打撃検出法による打撃操作の特徴の検出を制限することにより、前記ユーザーによる打撃操作の後の反動を誤って検出してしまうことを防ぐ機能を実現する
ことを特徴とする請求項17ないし20のいずれかに記載の操作信号解析プログラム。 - ユーザーによる連続した打撃操作の入力を正確に検出するために、前記打撃検出ステップは少なくとも2つの打撃検出法を用い、1つを打撃操作が開始された瞬間の特徴を検出する方法にし、もう1つ打撃操作が行なわれている最中の特徴を検出する方法にすることを特徴とする、請求項20又は21に記載の操作信号解析プログラム。
- 前記操作信号解析プログラムが、前記コントローラから入力される情報を元に算出される前記コントローラの所定の軸まわりの回転角と連動して、操作対象のオブジェクトに打撃動作に関する予備動作を実行させるステップ、若しくは予備動作を実行させるための制御信号を送信するステップを有する
ことを特徴とする請求項17ないし22のいずれかに記載の操作信号解析プログラム。 - 前記コントローラが、前記コントローラ本体に配置された入力部をさらに備え、
前記打撃検出ステップが、前記入力部への入力信号の有無又は種別に応じて、打撃の種別又は強弱を変化させる機能を実現する
ことを特徴とする請求項17ないし23のいずれかに記載の操作信号解析プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/080665 WO2016079828A1 (ja) | 2014-11-19 | 2014-11-19 | 打撃操作のためのユーザーインターフェースシステムと操作信号解析方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6064111B2 JP6064111B2 (ja) | 2017-01-25 |
JPWO2016079828A1 true JPWO2016079828A1 (ja) | 2017-04-27 |
Family
ID=56013441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015551885A Active JP6064111B2 (ja) | 2014-11-19 | 2014-11-19 | 打撃操作のためのユーザーインターフェースシステムと操作信号解析方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6064111B2 (ja) |
WO (1) | WO2016079828A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101831295B1 (ko) * | 2016-07-21 | 2018-02-22 | 주식회사 네시삼십삼분 | 모바일 기기의 터치 인식 방법 및 장치 |
US11794094B2 (en) * | 2016-10-17 | 2023-10-24 | Aquimo Inc. | Method and system for using sensors of a control device for control of a game |
WO2018205152A1 (zh) * | 2017-05-09 | 2018-11-15 | 华为技术有限公司 | 一种vr绘图方法、设备及系统 |
JP7081921B2 (ja) * | 2017-12-28 | 2022-06-07 | 株式会社バンダイナムコエンターテインメント | プログラム及びゲーム装置 |
EP4083751B1 (en) * | 2019-12-25 | 2024-04-17 | Sony Group Corporation | Information processing device, program, and method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008276615A (ja) * | 2007-05-01 | 2008-11-13 | Nintendo Co Ltd | 情報処理プログラムおよび情報処理装置 |
JP2012181616A (ja) * | 2011-02-28 | 2012-09-20 | Namco Bandai Games Inc | プログラム、情報記憶媒体、ゲーム装置及びサーバシステム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8814641B2 (en) * | 2006-05-08 | 2014-08-26 | Nintendo Co., Ltd. | System and method for detecting moment of impact and/or strength of a swing based on accelerometer data |
JP5294442B2 (ja) * | 2006-09-13 | 2013-09-18 | 任天堂株式会社 | ゲーム装置およびゲームプログラム |
JP5224832B2 (ja) * | 2008-01-21 | 2013-07-03 | 任天堂株式会社 | 情報処理プログラムおよび情報処理装置 |
-
2014
- 2014-11-19 WO PCT/JP2014/080665 patent/WO2016079828A1/ja active Application Filing
- 2014-11-19 JP JP2015551885A patent/JP6064111B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008276615A (ja) * | 2007-05-01 | 2008-11-13 | Nintendo Co Ltd | 情報処理プログラムおよび情報処理装置 |
JP2012181616A (ja) * | 2011-02-28 | 2012-09-20 | Namco Bandai Games Inc | プログラム、情報記憶媒体、ゲーム装置及びサーバシステム |
Non-Patent Citations (1)
Title |
---|
"「Wii Sports ボクシング 攻略」", [ONLINE], JPN6015051227, 14 March 2007 (2007-03-14), ISSN: 0003249303 * |
Also Published As
Publication number | Publication date |
---|---|
JP6064111B2 (ja) | 2017-01-25 |
WO2016079828A1 (ja) | 2016-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240058691A1 (en) | Method and system for using sensors of a control device for control of a game | |
US8686939B2 (en) | System, method, and apparatus for three-dimensional input control | |
US10357714B2 (en) | Gesture-based user interface for navigating a menu | |
JP6064111B2 (ja) | 打撃操作のためのユーザーインターフェースシステムと操作信号解析方法及びプログラム | |
US8797260B2 (en) | Inertially trackable hand-held controller | |
US20100203969A1 (en) | Game device, game program and game object operation method | |
JP4412716B2 (ja) | ゲーム装置、プログラム及び情報記憶媒体 | |
US20110172017A1 (en) | Game machine, game program, and game machine control method | |
KR101539666B1 (ko) | 모바일 단말기를 통한 골프 시뮬레이션 방법, 이에 관한 프로그램 또는 어플리케이션이 기록된 기록매체 및 이를 이용한 골프 시뮬레이션 구동을 위한 모바일 단말기 | |
JP6115908B2 (ja) | 情報処理端末の操作信号入力ユニット、操作信号入力方法及び操作信号入力プログラム | |
US20230191253A1 (en) | Information processing system, non-transitory computer-readable storage medium having stored therein program, information processing apparatus, and information processing method | |
JP6672401B2 (ja) | ゲームプログラム、方法、および情報処理装置 | |
JP6360872B2 (ja) | ゲームプログラム、方法、および情報処理装置 | |
KR101977964B1 (ko) | 가상의 크리켓 경기를 제어하는 제어 장치, 제어 방법 및 컴퓨터 프로그램 | |
JP2020110453A (ja) | ゲームプログラム、方法、および情報処理装置 | |
JP6088030B1 (ja) | ゲームシステム、制御方法、及びプログラム | |
JP2018161513A (ja) | ゲームプログラム、方法、および情報処理装置 | |
JP7344354B2 (ja) | 情報処理プログラム、情報処理装置、情報処理方法、および情報処理システム | |
JP7337732B2 (ja) | プログラム | |
JP6307651B1 (ja) | ゲームプログラム、方法、および、情報処理装置 | |
JP7252915B2 (ja) | ゲームプログラム、方法、および情報処理装置 | |
JP6668425B2 (ja) | ゲームプログラム、方法、および情報処理装置 | |
JP6661595B2 (ja) | ゲームプログラム、方法および情報処理装置 | |
JP6779048B2 (ja) | ゲームの実行方法、プログラムおよび記録媒体 | |
JP2023122713A (ja) | 方法、記録媒体および情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151014 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151014 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20151014 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20151214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160204 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160420 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160623 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160707 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160707 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20160707 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6064111 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |