【文献】
ゴルフボールの空気力測定と3次元飛翔軌道解析,[online],一般社団法人 日本流体力学会,2016年 1月 8日,第207、208頁,学会開催:2004年,URL,http://www.nagare.or.jp/download/noauth.html?d=23-3-g01.pdf&dir=46
(58)【調査した分野】(Int.Cl.,DB名)
請求項1又は2に記載のゲームシステムにおいて、前記初期条件が、ボールの初速度(ベクトル)、回転軸の方向、スピン量で与えられることを特徴とするゲームシステム。
請求項3に記載のゲームシステムにおいて、ボールの初速度(ベクトル)が初速度の大きさ、初期横ブレ角、打出角で決定され、該初速度の大きさ、初期横ブレ角、打出角は、前記理想ラインと前記タッチ情報に基づいて決定されることを特徴とするゲームシステム。
請求項8に記載の制御方法において、ボールの初速度(ベクトル)が初速度の大きさ、初期横ブレ角、打出角で決定され、該初速度の大きさ、初期横ブレ角、打出角は、前記理想ラインと前記タッチ情報に基づいて決定されることを特徴とする制御方法。
【発明を実施するための形態】
【0010】
本発明の実施の形態の概要を例示的に列挙すると以下のとおりである。
〔形態1〕
ボールに打撃やスピンを与えて飛翔させ、3次元飛翔軌道をシミュレートするゲームシステムであって、
最適な3次元飛翔のための初期条件を与えるタッチ軌跡を理想ラインとして表示する理想ライン表示手段と、
プレイヤによるタッチ軌跡を取得しタッチ情報として記憶するタッチ情報取得手段と、
前記理想ラインと前記タッチ情報に基づいて3次元飛翔のための初期条件を演算・設定する初期条件演算・設定手段と、
前記初期条件に基づいてボールの3次元飛翔軌道を演算する3次元飛翔軌道演算手段と、
を備えたことを特徴とするゲームシステム。
本形態1によれば、ボールの飛距離や移動方向に関して正確なシミュレーションを実現することができる。
【0011】
〔形態2〕
また、上記形態1において、更に、ボール着地後のランを演算するラン演算手段を備えするようにしてもよい。
本形態2によれば、ボール着地後のランを考慮してボールの停止位置に関して正確なシミュレーションを実現することができる。
【0012】
〔形態3〕
また、上記形態1又は2において、前記初期条件が、ボールの初速度(ベクトル)、回転軸の方向、スピン量で与えられてもよい。
本形態3によれば、剛体の運動として3次元飛翔軌道を正確にシミュレートすることができる。
【0013】
〔形態4〕
また、上記形態3において、ボールの初速度(ベクトル)が初速度の大きさ、初期横ブレ角、打出角で決定され、該初速度の大きさ、初期横ブレ角、打出角は、前記理想ラインと前記タッチ情報に基づいて決定されるようにしてもよい。
本形態4によれば、ボールの初速度(ベクトル)を球座標表示で与えることができ、ボールの初速度(ベクトル)を設定に当たり、タッチ情報との相性を良くすることができる。
【0014】
〔形態5〕
形態1〜4において、ゲームがゴルフゲームであってもよい。
本形態5によれば、ゴルフボールの3次元飛翔軌道やランの正確なシミュレーションを実現することができる。
【0015】
本発明の他の実施の形態は、上記各システムと略同様の内容を有する制御方法、及び、該方法をコンピュータにより実現するためのプログラムに係るものである。
そして、前記方法、及び、プログラムにおいても、前記システムと同様の作用効果を奏するものである。
【0016】
本発明を理解する上で、ボールの3次元飛翔軌道計算に係る技術的背景を理解することが重要である。そこで、ゴルフボールの3次元飛翔軌道計算を例にとり、本発明の理解に必要な範囲でその概略を説明する。なお、以下の説明は、基本的に、「ながれ23(2004)203-211」に掲載された論文「ゴルフボールの空気力測定と3次元飛翔軌道解析」に基づくものであるが、当該論文は本願発明の技術的背景の一例を説明するものであり、本願発明は当該論文により限定的に解釈されるべきではないことに留意されたい。
【0017】
まず、ゴルフボール3次元飛翔軌道の定式化のために、
図5のように座標系および各記号を定義する。
図5は、ゴルフボールが、X軸に対して打ち出されたケース(β
0=0)を示すものであり、
図5ではボールがスライスして右に曲がる場合を表しており、ボールの初期飛び出し方向をX−Y面内とし、鉛直方向をY軸、横ぶれ方向をZ軸に取っている。
【0018】
ゴルフボールは、初期速度U
0、X軸からα
0の仰角で打ち出され、回転軸Z
RはθだけZ軸から傾いているとする。飛翔中、回転速度Nで回転しているボールに力は、抗力D、揚力L、重力mg、トルクT(D、L、mg、Tはベクトル)が作用しているが、揚力LがY軸方向に対して傾いているために,ボールは時々刻々、横ぶれ角度βを変化させながら曲がる。なお、図中の(Xt,Yt,Zt)座標は時刻tにボール中心を原点とする移動座標である。
【0019】
次に、ボールがスライスするメカニズムを
図6の模式図を用いて説明する。ボールの飛球線方向の水平成分をX軸、水平直交軸方向をZ軸、鉛直重力方向をY軸とすると、ボールは飛翔中、ある回転軸Z
R周りにバックスピンで回転している(回転速度N(rps))。なお、回転軸の方向はボールがクラブから離れたときに決定し、スライスの場合は右に傾いている(回転軸傾き角度θ(deg))。
【0020】
ボールは回転速度Nによって、揚力Lが生じる。この揚力Lは、回転軸に対して直角方向であるため、鉛直方向に対して角度θ右に傾いていることになる。そのため、飛球線方向に対して直角方向、右への横ぶれ方向にLsinθの力が働き、この力がボールを右に曲げる原動力となる。そして、この回転軸の傾きは、飛球方向に対して、常に直角の断面内で傾いていると考えられる。
【0021】
また、ゴルフボールの回転軸周りの回転速度Nは流体トルクTにより減衰するものの、ゴルフボールは高速で回転しているため、回転慣性により回転軸の方向を一定に保とうとすることから、回転軸の傾きθは、ボールが着地するまで一定に維持されると考えられる。
【0022】
抗力Dの大きさ|D|、揚力Lの大きさ|L|、トルクTの大きさの大きさ|T|は、空気力係数である、抗力係数C
D、揚力係数C
L、流体トルク係数C
mを用いてそれぞれ次のように表される。
|D|=0.5ρ|U|
2A*C
D (1)
|L|=0.5ρ|U|
2A*C
L (2)
|T|=0.5ρ|U|
2Ad*C
m (3)
但し、ρ:空気の密度、|U|:ボールの飛翔速度の大きさ、A:ゴルフボール直径断面積、d:ゴルフボール直径である。
【0023】
ここで、抗力係数C
D、揚力係数C
L、流体トルク係数C
mの空気力パラメータは、近似的にボールの回転速度と飛翔速度の関数として表すことができる。なお、上記各空気力パラメータは、ゴルフボールに付されたディンプルの形状や配置・配列にも依存するものである。
【0024】
抗力(ベクトル)Dは、ボールの速度(ベクトル)Uと逆方向であること、揚力(ベクトル)Lは、ボールの速度(ベクトル)Uと回転軸Z
Rに直交すること等を考慮すれば、飛翔中のボールの運動方程式(微分方程式)を容易に導出することができ、ボールの初速度(ベクトル)、回転軸の方向、スピン量を初期条件として与えれば、ボールの飛翔軌跡やボールの回転速度を数値計算(例えば、オイラー法)等により求めることができる。
【0025】
以下、本発明に係る実施の一形態を図面に基づいて詳細に説明する。なお、本発明は、以下において説明する実施の形態に限定されるべきではなく、特許請求の範囲の記載に基き解釈されるべきである。また、当業者であれば、他の類似する実施形態を使用することができること、また、本発明から逸脱することなく適宜形態の変更又は追加を行うことができることに留意すべきである。
【0026】
図1は、本発明の実施の一形態に係るシステム1の構成を示すブロック図である。システム1は、「理想ライン表示手段2」、「タッチ情報取得手段3」、「理想ラインとタッチ情報に基づく初期条件演算・設定手段4」、「3次元飛翔軌道演算手段5」とを具備している。
【0027】
なお、システム1は、「ラン演算手段6」を具備してもよい。
システム1の各構成要素2〜6の果たす機能の詳細については、以下において詳述する。
【0028】
図2は、本発明の実施の一形態に係るシステム1を実現するためのハードウェア構成10の一例を示すブロック図である。ハードウェア構成10は、CPU11と、GPU(グラフィックプロセッサユニット)12と、インターフェース13と、記憶部14とを備えている。CPU11、GPU12、インターフェース13、および記憶部14は、バス15によって接続されている。
【0029】
インターフェース13には、例えば、不図示の操作ボタン群およびタッチ・スクリーンを含む操作部16が接続されている。また、インターフェース13には、例えば、ゲーム音声などを出力するための音出力部17が接続されている。
【0030】
GPU12には、表示部19が接続されると共に、メモリバス21を介してVRAM(ビデオRAM)20が接続されている。なお、操作部16と表示部19とを一体化しタッチパネルとして構成してもよい。
【0031】
CPU11は、例えば、外部よりダウンロードされたプログラムを実行することにより、ゲームの制御のための処理等を行う。
【0032】
GPU12は、CPU11からの指示により描画処理を行い、表示部19にゲーム画像を表示させる。また、GPU12は、ユーザによる操作部16の操作入力に応じたCPU11からの指示により、描画処理を行い、表示部19に表示する。
【0033】
インターフェース13は、CPU11と、操作部16あるいは不図示の周辺装置との間のデータのやりとりを制御する。
【0034】
次に、本発明の実施の形態に係るシステム1の処理の一例の概略を、
図3、
図4A〜
図4Cに示されるようなゴルフゲームの例に基づき説明する。
【0035】
メインメニュー画面(不図示)に表示される実行可能なゲームの中からゴルフゲームの実行が指示されると、ゴルフゲームが開始され(S101)、
図4Aに示すように、ゲーム画面100中にプレイヤキャラクタ102が表示される。
図4Aから分かるように、プレイヤキャラクタ102はゴルフクラブ(以下、単に「クラブ」という)104を持っており、ゴルフボール(以下、単に「ボール」という)106を打撃する体勢に入った状態(アドレスの状態)で示される。
【0036】
また、ゲーム画面100の上部に、打撃位置からカップまでの距離(ここでは、ヤード(Y))が表示されるとともに、ゴルフコースをプレイヤキャラクタ102の後方から仮想カメラで撮影した画像が背景画像として表示される。なお、広範囲にホールの状況を確認できるように、仮想カメラの視点を遠距離からの視点や俯瞰的な視点にしてもよい。
【0037】
次に、
図4Bに示すように、ゲーム画面100には、プレイヤに理想的なスライド操作を実行させるための軌跡(理想ライン)110が演算・表示される(S102)。なお、理想ライン110は、プレイヤが選択したゴルフクラブの種類に応じて異なる軌跡を描くようにしてもよい。
【0038】
図4Bに示すように、プレイヤがゲーム画面100中の理想ライン110の一端点近傍の適宜の位置112をタッチオンすることによりスイング操作の開始位置を指定し、バックスイングに相当する所定方向へのスライド操作を継続した後、
図4Cに示すように、理想ライン110の他端点近傍の適宜の位置114でスライド操作の方向を反転し、ダウンスイングに相当する前記所定方向とは逆の方向へのスライド操作を実行し、理想ライン110の一端点近傍の適宜の位置116でタッチ操作を終了するとタッチ情報が順次取得され(S103)、ゲーム画面100上にタッチ軌跡120が表示される。また、理想ライン110とタッチ軌跡120とを区別するために、線の太さや色を変えてある。なお、上記ダウンスイングにはフォロースルーが含まれてもよい。
【0039】
プレイヤのスライド操作に連動して、プレイヤキャラクタ102のスイング動作が行われ、プレイヤキャラクタ102がバックスイング、ダウンスイング、フォロースルーの動作を行うように、画面上にアニメーションが表示される(
図4A〜
図4C参照)。
【0040】
タッチ操作の終了により、タッチ情報の解析、理想ライン110とタッチ軌跡120との比較が行われる(S104)。なお、詳細は後述する。
【0041】
次に、解析結果並びに比較結果に基づき、3次元飛翔軌道計算を行うための初期条件(ボールの初速度(ベクトル)、回転軸の方向、スピン量)が演算・設定される(S105)。なお、初期条件の演算・設定手法の詳細は後述する。
【0042】
次に、設定された初期条件(ボールの初速度(ベクトル)、回転軸の方向、スピン量)に基づいて、ボール106の3次元飛翔軌道計算を逐次実行する(S106)。なお、3次元飛翔軌道計算の原理は先に説明したとおりである。
【0043】
次に、ボール106が着地した後のラン(距離、方向)を演算する(S107)。そして、求められたランを含むボールの総飛距離を、必要に応じてゲーム画面100の中央に表示する。
【0044】
以下、タッチ情報の取得、解析、理想ラインとタッチ軌跡との比較、タッチ情報の解析結果並びに理想ラインとタッチ軌跡との比較結果に基づく初期条件(ボールの初速度(ベクトル)、回転軸の方向、スピン量)の演算・設定の詳細について説明する。
【0045】
タッチ情報の取得、解析
プレイヤが画面にタッチ操作を行うと、タッチ・スクリーンへの物体の接触が検知され、スイング操作の開始位置に相当するタッチ操作の始点位置が指定される。そして、所定周期(例えば、30fbpsのフレーム・レート)で、タッチ・スクリーン上でのタッチ位置を検知し記憶する。
【0046】
このようにして、バックスイングに相当する所定方向へのスライド操作を継続すると、タッチ位置の情報が順次取得され、フレーム毎に記録されたタッチ位置の情報に基づいて、タッチ開始点からのスライド操作に対応した軌跡が画面上に表示される。これにより、プレイヤは当該軌跡を確認できる。
【0047】
上記軌跡は、前フレームのタッチ位置(座標位置)と現フレームのタッチ位置(座標位置)とを線で結ぶことにより描画されるが、前フレームのタッチ位置(座標位置)と現フレームのタッチ位置(座標位置)との間の距離を算出し、算出した距離をフレームレートで割ることにより、スライド操作の速さが算出される。このスライド操作の速さの情報も必要に応じて記憶する。
【0048】
なお、スライド操作の反転位置の特定は、例えば、以下のようにすればよい。即ち、前フレームのタッチ位置(座標位置)と現フレームのタッチ位置(座標位置)とを線で結ぶと、前フレームのタッチ位置(座標位置)を始点、現フレームのタッチ位置(座標位置)を終点とする2次元ベクトルが各フレームごとに得られることになるが、前フレームのベクトルに対して現フレームのベクトルの射影(射影ベクトル)を計算し、前フレームのベクトルの方向と現フレームの射影ベクトルの方向が180°異なった場合に前フレームのタッチ位置をタッチ操作の反転位置とすればよい。
【0049】
この場合、前記タッチ操作の始点位置から反転位置に至る軌跡がバックスイングに相当し、タッチ操作の反転位置から終点位置に至る軌跡がダウンスイングに相当することになる。なお、前記タッチ操作の始点位置から反転位置に至る軌跡の長さがバックスイング量に相当することになる。
【0050】
理想ラインとタッチ軌跡との比較
理想ラインの軌跡を、所定の球面上の曲線を画面上に投影して得られる曲線であるとした場合に、前記所定の球の中心を画面上に投影した仮想中心点と各フレームごとのタッチ位置とを通る直線と理想ラインとの交点を求め、各フレームごとにタッチ位置と前記交点との距離を計算して、各フレームごとに理想ラインからのズレ量を求める。これらのズレ量の平均を理想ラインからのズレ量とする。なお、ズレ量は、タッチ位置が理想ラインよりも前記仮想中心点に近い位置にある場合には正、遠い位置にある場合に負とする。
【0051】
なお、タッチ位置の軌跡が蛇行し理想ラインと交差してS字型を描くようなケースも想定されるが、このようなケースにおいてはズレ量が正負の値を取ることになる。このような場合には、例えば、正のズレ量の総計が、負のズレ量の絶対値の総計よりも大きいときは、負のズレ量を無視して、正のズレ量の平均を理想ラインからのズレ量として採用するようにしてもよい。また、負のズレ量の絶対値の総計が、正のズレ量の総計よりも大きいときは、正のズレ量を無視して、負のズレ量の平均を理想ラインからのズレ量として採用するようにしてもよい。
【0052】
タッチ情報の解析結果並びに理想ラインとタッチ軌跡との比較結果に基づく初期条件(ボールの初速度(ベクトル)、回転軸の方向、スピン量)の演算・設定
プレイヤのタッチ操作の情報を用いて、初期条件を設定する手法の一例を以下詳述する。
(1)ボールの初速度(ベクトル)
ボールの初速度(ベクトル)は、初速度の大きさ、初期横ブレ角、打出角(仰角)で決まる。
初速度の大きさは、クラブのヘッドスピードとボールの反発性能によって決定されるが、クラブのヘッドスピードはバックスイング量との相関が高いことから、初速度の大きさは、タッチ操作の始点位置から反転位置に至る軌跡の長さの関数として設定される。なお、初速度の設定に当たり、スライド操作の速さの情報を加味してもよい。
初期横ブレ角は、理想ラインからのズレ量の関数として設定されるが、前述のように、ズレ量が正負の値を取り得ることから、それに応じて、初期横ブレ角も正負の値を取り得る。
打出角(仰角)は、使用されるクラブのロフト角に依存しており、クラブごとに決められる基準打出角にタッチ情報から算出した補正量を加えて設定される。この場合、タッチ情報から算出した補正量は、例えば、理想ラインを決定する前記所定の球の中心とタッチ操作の始点位置及び終点位置を結んだ線分のなす角(以下、「補正角」と呼ぶ)を求め、これにクラブごとに決められる係数をかけることにより算出される。
【0053】
(2)回転軸の方向
回転軸の方向は、例えば、前記補正角を変数とする関数を予め設定しておき、所定の方向(例えば、X軸正方向)を基準方向として、該基準方向を当該関数値分だけZ軸の周りに回転させて決定する。
【0054】
(3)スピン量
スピン量は、使用されるクラブごとに決められる基準スピン量にタッチ情報から算出した補正量を加えて設定される。この場合、タッチ情報から算出した補正量は、前記補正角にクラブごとに決められる係数をかけることにより算出される。
【0055】
また、ボールが飛翔後に着地してランする場合のラン方向及び距離に関しては、例えば、ボールの着地時の速度(ベクトル)や回転速度、着地点の傾斜や動摩擦係数等に基づいて、ボールのバウンドや転がりを数値計算することで、ラン方向及び距離をシミュレーションすることができる。なお、ドライバーで打った場合のラン距離は、打出角が支配的な要素と考えられていることから、簡便な手法としては、打出角の関数として設定することもできる。
【0056】
なお、ボールのバウンド挙動に関しては、地面の動摩擦係数により、ボールのスピンと速度が互いにエネルギーを与え合うことや、地面上方向の反射には反発係数がかかり減衰すること等を考慮する必要がある。また、ボールの転がりに関しては、重力による坂下への加速度と地面の転がり抵抗による加速度を計算した上でボールの角速度を求め、角速度に基づいてボールの転がる距離を求めることができる。
【0057】
以上、ゴルフゲームを例に説明したが、本発明は、これに限られるものではなく、ボールに打撃やスピンを与えて飛翔させるゲーム、例えば、野球ボールやサッカーボールを用いたゲームにも適用可能であることはいうまでもない。
【0058】
なお、前記システムを構成する各手段は、専用のハードウェアであってもよいが、コンピュータがプログラムを実行することにより各処理段階ごとに実現される仮想的手段(所謂、機能実現手段)であってもよい。
【0059】
また、前記システムは、ゲーム専用の装置に搭載されるものであってもよいが、ユーザが所持する携帯電話機、スマートフォン、PDA(Personal Digital Assistant)、携帯型パーソナル・コンピュータ等の携帯端末に搭載されるものであってもよい。
【0060】
さらに、前記システムは、ゲームを実行するための各処理が複数のコンピュータ等によって分散処理されるようなゲームシステムとしても構成できる。
【解決手段】プレイヤに理想的なスライド操作を実行させるための軌跡(理想ライン)が演算・表示される(S102)。理想ラインを基にプレイヤがスライド操作をするとタッチ情報が取得され(S103)、タッチ情報が解析されて理想ラインとタッチ軌跡との比較がなされる(S104)。そして、解析結果並びに比較結果に基づいて3次元飛翔初期条件が演算・設定され(S105)、当該初期条件に基づいてボールの3次元飛翔軌道が逐次演算され(S106)、ボールが着地した後のランが演算される(S107)。