IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社コーエーテクモゲームスの特許一覧

特許7258594情報処理装置、情報処理方法、及びプログラム
<>
  • 特許-情報処理装置、情報処理方法、及びプログラム 図1
  • 特許-情報処理装置、情報処理方法、及びプログラム 図2
  • 特許-情報処理装置、情報処理方法、及びプログラム 図3
  • 特許-情報処理装置、情報処理方法、及びプログラム 図4
  • 特許-情報処理装置、情報処理方法、及びプログラム 図5
  • 特許-情報処理装置、情報処理方法、及びプログラム 図6
  • 特許-情報処理装置、情報処理方法、及びプログラム 図7
  • 特許-情報処理装置、情報処理方法、及びプログラム 図8
  • 特許-情報処理装置、情報処理方法、及びプログラム 図9
  • 特許-情報処理装置、情報処理方法、及びプログラム 図10
  • 特許-情報処理装置、情報処理方法、及びプログラム 図11
  • 特許-情報処理装置、情報処理方法、及びプログラム 図12
  • 特許-情報処理装置、情報処理方法、及びプログラム 図13
  • 特許-情報処理装置、情報処理方法、及びプログラム 図14
  • 特許-情報処理装置、情報処理方法、及びプログラム 図15
  • 特許-情報処理装置、情報処理方法、及びプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-07
(45)【発行日】2023-04-17
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
   A63F 13/57 20140101AFI20230410BHJP
   A63F 13/52 20140101ALI20230410BHJP
【FI】
A63F13/57
A63F13/52
【請求項の数】 5
(21)【出願番号】P 2019030785
(22)【出願日】2019-02-22
(65)【公開番号】P2020130808
(43)【公開日】2020-08-31
【審査請求日】2021-11-11
(73)【特許権者】
【識別番号】595000427
【氏名又は名称】株式会社コーエーテクモゲームス
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】隆藤 唯信
(72)【発明者】
【氏名】田中 光
(72)【発明者】
【氏名】小林 大智
(72)【発明者】
【氏名】藤森 玄樹
【審査官】岸 智史
(56)【参考文献】
【文献】特開2001-286676(JP,A)
【文献】特開2007-222549(JP,A)
【文献】特開2000-113225(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24、13/00-13/98
(57)【特許請求の範囲】
【請求項1】
仮想空間に表示された物理オブジェクトの位置移動を制御する情報処理装置であって、
第1の撃力を与えられた前記物理オブジェクトの動きの方向及び速度、前記第1の撃力に応じた物理シミュレーションにより決定する物理オブジェクト制御部と、
前記物理オブジェクトの動きに干渉する力場を生成し、前記力場の中に存在する前記物理オブジェクトの動きの方向及び速度が、前記第1の撃力の種類に応じて設定されている目標方向及び目標速度となるように、第2の撃力を加える力場制御部と、
を有し、
前記力場制御部は、前記物理オブジェクトの動きの方向及び速度と、前記第1の撃力の種類に応じて設定されている目標方向及び目標速度と、の差分に応じた前記第2の撃力を連続して加えること
を特徴とする情報処理装置。
【請求項2】
前記力場制御部は、前記力場における前記物理オブジェクトの位置に応じて変化するように設定されている前記目標方向及び目標速度を利用すること
を特徴とする請求項1記載の情報処理装置。
【請求項3】
前記第1の撃力の種類は、前記仮想空間に表示されたキャラクタが前記物理オブジェクトに前記第1の撃力を与えた行動の種類であること
を特徴とする請求項1又は2記載の情報処理装置。
【請求項4】
仮想空間に表示された物理オブジェクトの位置移動を制御する情報処理装置が、
第1の撃力を与えられた前記物理オブジェクトの動きの方向及び速度、前記第1の撃力に応じた物理シミュレーションにより決定する物理オブジェクト制御ステップと、
前記物理オブジェクトの動きに干渉する力場を生成し、前記力場の中に存在する前記物理オブジェクトの動きの方向及び速度が、前記第1の撃力の種類に応じて設定されている目標方向及び目標速度となるように、第2の撃力を加える力場制御ステップと、
を実行し、
前記力場制御ステップは、前記物理オブジェクトの動きの方向及び速度と、前記第1の撃力の種類に応じて設定されている目標方向及び目標速度と、の差分に応じた前記第2の撃力を連続して加えること
を特徴とする情報処理方法。
【請求項5】
仮想空間に表示された物理オブジェクトの位置移動を制御する情報処理装置を、
第1の撃力を与えられた前記物理オブジェクトの動きの方向及び速度、前記第1の撃力に応じた物理シミュレーションにより決定する物理オブジェクト制御部、
前記物理オブジェクトの動きに干渉する力場を生成し、前記力場の中に存在する前記物理オブジェクトの動きの方向及び速度が、前記第1の撃力の種類に応じて設定されている目標方向及び目標速度となるように、第2の撃力を加える力場制御部、
として機能させ
前記力場制御部は、前記物理オブジェクトの動きの方向及び速度と、前記第1の撃力の種類に応じて設定されている目標方向及び目標速度と、の差分に応じた前記第2の撃力を連続して加えること
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
従来から、位置移動を引き起こす特性を持つ衝撃を受けた際のキャラクタの移動や、周囲のオブジェクトとの衝突の様子をゲーム画像として生成する画像生成システムが知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2007-272267号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば仮想空間に表示された物理オブジェクトに任意の動きをさせたい場合は、撃力を与えられた物理オブジェクトの動きを、物理シミュレーションにより制御する。しかしながら、物理シミュレーション上の正しい物理オブジェクトの動きが、仮想空間における演出に適した物理オブジェクトの動きとは限らない。
【0005】
本開示は、仮想空間で撃力を与えられた物理オブジェクトの動きの方向及び速度を調整する新たな仕組みを提供することを課題とする。
【課題を解決するための手段】
【0006】
本開示の一の態様によれば、仮想空間に表示された物理オブジェクトの位置移動を制御する情報処理装置であって、第1の撃力を与えられた前記物理オブジェクトの動きの方向及び速度、前記第1の撃力に応じた物理シミュレーションにより決定する物理オブジェクト制御部と、前記物理オブジェクトの動きに干渉する力場を生成し、前記力場の中に存在する前記物理オブジェクトの動きの方向及び速度が、前記第1の撃力の種類に応じて設定されている目標方向及び目標速度となるように、第2の撃力を加える力場制御部と、を有し、前記力場制御部は、前記物理オブジェクトの動きの方向及び速度と、前記第1の撃力の種類に応じて設定されている目標方向及び目標速度と、の差分に応じた前記第2の撃力を連続して加えることを特徴とする情報処理装置が提供される。

【発明の効果】
【0007】
一の側面によれば、仮想空間で撃力を与えられた物理オブジェクトの動きの方向及び速度を調整する新たな仕組みを提供できる。
【図面の簡単な説明】
【0008】
図1】一実施形態に係るゲームシステムの一例を示す図である。
図2】一実施形態に係るクライアントのハードウェア構成の一例を示す図である。
図3】一実施形態に係るサーバのハードウェア構成の一例を示す図である。
図4】一実施形態に係るクライアントの機能構成の一例を示す図である。
図5】一実施形態に係るサーバの機能構成の一例を示す図である。
図6】力場テーブルについて説明する一例の図である。
図7】破片テーブルについて説明する一例の図である。
図8】ビルの破片を飛ばすために、プレイヤキャラクタがビルに攻撃する様子を表した一例の図である。
図9】プレイヤキャラクタのビルへの攻撃により破片が飛ぶ様子を表した一例の図である。
図10】破片の動きに干渉する力場の一例の図である。
図11】力場の中を移動する破片の移動の方向及び速度を調整する処理の一例の説明図である。
図12】プレイヤキャラクタがビルの破片を飛ばして、敵キャラクタにぶつける様子を表した一例の図である。
図13】クライアントでプレイされるゲーム内の破片の位置移動に関する処理の一例のフローチャートである。
図14】力場の中に存在する破片への撃力を計算する処理の一例のフローチャートである。
図15】ステップS36において撃力を計算する処理の一例を表した図である。
図16】力場の他の例を示した図である。
【発明を実施するための形態】
【0009】
以下、本開示を実施するための形態について図面を参照して説明する。なお、一実施形態では仮想空間の一例であるゲーム内において、プレイヤキャラクタが攻撃により破壊したビルなどの破片(物理オブジェクトの一例)を飛ばして、敵キャラクタにぶつける例について説明するが、この例に限定するものではない。
【0010】
[ゲームシステム]
まず、一実施形態に係るゲームシステム10について、図1を参照して説明する。一実施形態に係るゲームシステム10は、クライアント20とサーバ30とがネットワーク40を介して通信可能に接続された構成である。
【0011】
クライアント20はプレイヤがゲームをプレイする情報処理装置の一例である。情報処理装置はスマートフォンなどの携帯電話機、携帯ゲーム機、パーソナルコンピュータ、タブレット端末、家庭用ゲーム装置、業務用ゲーム装置等である。クライアント20はプレイヤからの操作をタッチパネル、コントローラ、マウス、キーボード等で受け付け、プレイヤにゲームをプレイさせる。なお、クライアント20の個数は3つに限定されるものではなく、3つ以外であってもよい。
【0012】
サーバ30はクライアント20との間でデータを送受信することで、ゲームに必要な機能をクライアント20に提供する情報処理装置の一例である。サーバ30はクラウドコンピュータにより実現してもよい。なお、図1に示したサーバ30の個数は、1つに限定されるものではなく、2つ以上で分散処理してもよい。
【0013】
例えばサーバ30はクライアント20へのゲームプログラム(アプリケーション)などのダウンロード処理やプレイヤのログイン処理、プレイヤ情報やゲームスコアの管理などに利用される。
【0014】
図2は、クライアント20のハードウェア構成の一例を示す図である。クライアント20は、CPU(Central Processing Unit)121、記憶装置122、通信装置123、入力装置124及び表示装置125を有する。CPU121は、クライアント20を制御する。記憶装置122は、例えばROM(Read Only Memory)やRAM(Random Access Memory)などのメモリ、HDD(Hard Disk Drive)やSSD(Solid State Drive)などのストレージである。
【0015】
通信装置123は、通信を制御するネットワーク回路などの通信デバイスである。入力装置124は、タッチパッド、コントローラ、マウス、キーボード、カメラ、マイクなどの入力デバイスである。また、表示装置125はディスプレイ、スピーカなどの出力デバイスである。タッチパネルはタッチパッドとディスプレイとを組み合わせることで実現される。
【0016】
図3は、サーバ30のハードウェア構成の一例を示す図である。サーバ30は、CPU131、記憶装置132及び通信装置133を有する。CPU131は、サーバ30を制御する。記憶装置132は、例えばROMやRAMなどのメモリ、HDDやSSDなどのストレージである。通信装置133は、通信を制御するネットワークカードなどの通信デバイスである。
【0017】
図4はクライアント20の機能構成の一例を示す図である。クライアント20は、記憶部21、制御部22、操作部23、表示部24及び端末側通信部25を有する。記憶部21は、ゲームプログラム31などのプログラム、そのプログラムが利用するデータ、後述する力場テーブル32、及び破片テーブル33などを記憶している。なお、記憶部21は記憶装置122により実現されてもよいし、ネットワーク40を介して接続された記憶装置により実現されてもよい。
【0018】
図4に戻り、制御部22はクライアント20の全体の制御を行う。制御部22は、CPU121がゲームプログラム31に記載された処理を実行することにより実現される。制御部22は、物理オブジェクト制御部35、力場制御部36、及びゲーム制御部37を有する。
【0019】
物理オブジェクト制御部35は物理オブジェクトの位置移動に関する制御を行う。力場制御部36は、物理オブジェクトの動きに干渉する力場に関する制御を行う。ゲーム制御部37はプレイヤキャラクタに関する制御とプレイヤがプレイするゲーム全般に関する制御を行う。
【0020】
操作部23は入力装置124に対するプレイヤの各種操作を受け付ける。表示部24は表示装置125にゲーム画像を表示する。なお、操作部23はCPU121が入力装置124を制御することで実現される。また、表示部24は、CPU121が表示装置125を制御することで実現される。
【0021】
ここで入力装置124に対するプレイヤの各種操作とは、CPU121に処理を実行させるため、プレイヤが操作部23を操る操作をいう。操作部23はゲームをプレイするプレイヤから各種操作を受け付ける。制御部22はプレイヤから受け付けた各種操作に基づき、ゲームを進行させる。表示部24は制御部22が生成したゲーム画像を表示する。端末側通信部25は、サーバ30と通信する。端末側通信部25はCPU121がゲームプログラム31を実行し、ゲームプログラム31に従って通信装置123を制御することで実現される。
【0022】
図5は、サーバ30の機能構成の一例を示す図である。図5のサーバ30は、記憶部51、サーバ制御部52及びサーバ側通信部53を有する。記憶部51は、ゲームプログラム55、サーバプログラム56などのプログラム、そのプログラムが利用するデータ、後述する力場テーブル57などを記憶している。記憶部51は記憶装置132により実現されてもよいし、ネットワーク40を介して接続された記憶装置により実現されてもよい。
【0023】
図5に戻り、サーバ制御部52は、サーバ30の全体の制御を行う。サーバ制御部52は、CPU131がサーバプログラム62に記載された処理を実行することにより実現される。
【0024】
例えば、サーバ制御部52は記憶部51に記憶されているゲームプログラム55、そのゲームプログラム55が利用するデータや後述する力場テーブル57をクライアント20へダウンロードさせるダウンロード処理を行う。また、サーバ側通信部53はクライアント20と通信する。サーバ側通信部53は、CPU131がサーバプログラム56を実行し、サーバプログラム56に従って通信装置133を制御することで実現される。
【0025】
クライアント20の力場テーブル32及びサーバ30の力場テーブル57は、ゲーム内で破片などの物理オブジェクトの動きに干渉する力場が設定されている。また、クライアント20の破片テーブル33は、ゲーム内で撃力を与えられて動いている破片の破片情報が設定されている。ここでは、クライアント20の力場テーブル32及び破片テーブル33を一例として説明する。
【0026】
図6は、力場テーブル32について説明する一例の図である。一実施形態のゲームシステム10では、ゲーム内で破片などの物理オブジェクトの動きに干渉する力場を生成するため、図6の力場テーブル32を利用する。
【0027】
図6の力場テーブル32は項目として、行動の種類、領域、目標方向、及び目標速度を有する。行動の種類は、ビルなどの破片に撃力を与えるプレイヤキャラクタの行動の種類であり、ストレートパンチ、アッパーパンチ、キック、魔法などである。領域は、力場を生成するゲーム内の空間、範囲、エリアなどを示している。なお、領域の形状は2次元であれば丸、四角など、3次元であれば球、立方体など、様々考えられる。
【0028】
目標方向は撃力が与えられた破片を動かしたい方向が設定されている。目標速度は撃力を与えられた破片の目標とする速度が設定されている。なお、一実施形態において撃力とはプレイヤキャラクタが攻撃により破壊したビルなどの破片に、瞬間的に与えられた力である。
【0029】
このように、力場テーブル32には、プレイヤキャラクタの行動の種類と対応付けて力場を生成する領域を設定できる。また、力場テーブル32にはプレイヤキャラクタの行動の種類と対応付けて、そのプレイヤキャラクタの行動により撃力を与えられた破片の目標方向及び目標速度を設定できる。
【0030】
図7は破片テーブル33について説明する一例の図である。一実施形態のゲームシステム10では、ゲーム内で撃力を与えられて動いている破片の位置移動を制御するため、図7の破片テーブル33を利用する。
【0031】
図7の破片テーブル33は項目として、破片ID、位置、重さ、現在の方向、及び現在の速度を有する。破片IDは、破片を一意に識別するための識別情報の一例である。位置はゲーム内における破片の位置を表している。重さは破片の重さを表している。現在の方向は、破片が動いている方向が設定されている。現在の速度は、現在の破片の速度が設定されている。
【0032】
[ゲーム動作]
次に、クライアント20でプレイヤによりプレイされるゲーム内の破片の位置移動に関する処理について図8図16を参照しながら説明する。図8はビル1004の破片を飛ばすために、プレイヤキャラクタ1000がビル1004に攻撃する様子を表した一例の図である。
【0033】
破片を飛ばして敵キャラクタ1002にぶつけたいプレイヤは、プレイヤキャラクタ1000にビル1004を攻撃させて、ビル1004に撃力を与える。撃力を与えたビル1004の一部は、破片1004a~1004fに分かれる。図8に示したように、破片1004a~1004fはサイズ、重さなどが異なる。
【0034】
破片1004a~1004fの動きは物理シミュレーションにより例えば図9のように制御される。図9はプレイヤキャラクタ1000のビル1004への攻撃により破片が飛ぶ様子を表した一例の図である。図9に示したように、物理シミュレーションにより動きが制御される破片1004a~1004fは、形状、サイズ、重さなどによって、飛ぶ方向や速度が異なる。
【0035】
例えば破片1004aは重すぎて全然飛ばない例を表している。また、破片1004b及び1004dは狙った方向に飛ばない例を表している。さらに、破片1004eは飛ぶ速度が遅い例を表している。このように、物理シミュレーションにより制御される破片1004a~1004fの動きは、プレイヤキャラクタが攻撃により破片1004a~1004fを飛ばして、敵キャラクタ1002にぶつけるという演出に適さない場合がある。
【0036】
なお、物理シミュレーションにより動きが制御される破片1004a~1004fを敵キャラクタ1002にぶつけるという演出に適した(任意の)方向及び速度で動かす為には、破片1004a~1004fの形状、サイズ、重さなどから与える撃力を逆算して求める必要があるため、容易でない。
【0037】
そこで、一実施形態のゲームシステム10では、物理シミュレーションにより制御される破片1004a~1004fの動きに干渉する力場1010を例えば図10のように生成する。図10は、破片1004a~1004fの動きに干渉する力場1010の一例の図である。
【0038】
力場1010の中を移動する破片1004a~1004fは、ストレートパンチなどのプレイヤキャラクタの行動の種類に応じて力場テーブル32に設定されている目標方向及び目標速度に近付くように、連続して撃力(第2の撃力)が加えられる。
【0039】
図11は、力場1010の中を移動する破片1004a~1004fの移動の方向及び速度を調整する処理の一例の説明図である。図11(A)~図11(C)は、連続するフレームにおける破片1004a~1004fの位置移動を表している。なお、図11の例は破片1004a~1004fの目標方向が前方向である例を示している。
【0040】
図11(A)は物理シミュレーションにより制御される破片1004a~1004fの動きと、破片1004a~1004fに追加される撃力を表している。図11(A)の破片1004aは、移動の速度と目標速度との差分が大きいため、前方向に強めの撃力が加えられる。破片1004bは、移動の方向と目標方向との差分が大きいため、下方向に強めの撃力が加えられている。破片1004dは、移動の速度と目標速度との差分及び移動の方向と目標方向との差分に従い、斜め上方向に小さめの撃力が加えられている。破片1004fは、移動の速度と目標速度との差分に従い、前方向に小さめの撃力が加えられている。なお、破片1004c及び1004eは移動の速度と目標速度との差分及び移動の方向と目標方向との差分がなく、撃力が加えられていない例である。
【0041】
図11(B)は図11(A)のフレームの次のフレームにおける破片1004a~1004fの動きと、破片1004a~1004fに追加される撃力を表す。図11(B)の破片1004aの移動の速度は、図11(A)において与えられた前方向への強めの撃力により目標速度に近付いている。したがって、図11(B)の破片1004aは移動の速度と目標速度との差分に従い、前方向に弱めの撃力が加えられる。
【0042】
破片1004bの移動の方向は、図11(A)において与えられた下方向への強めの撃力により目標方向に近付いている。したがって、図11(B)の破片1004bは移動の方向と目標方向との差分に従い、下方向に弱めの撃力が加えられている。
【0043】
破片1004dの移動の速度及び方向は、図11(A)において与えられた斜め上方向への小さめの撃力により目標速度及び目標方向との差分がなくなり、撃力が加えられていない。破片1004fの移動の速度は、図11(A)において与えられた前方向への小さめの撃力により目標速度との差分がなくなり、撃力が加えられていない。なお、破片1004c及び1004eは移動の速度と目標速度との差分及び移動の方向と目標方向との差分がないため、撃力が加えられていない。
【0044】
図11(C)は図11(B)のフレームの次のフレームにおける破片1004a~1004fの動き表す。図11(C)の破片1004a~1004fの移動の方向及び速度は目標方向及び目標速度との差分がなくなっている。図11に示すように、力場1010の中を移動する破片1004a~1004fの移動の方向及び速度を調整することで、一実施形態のゲームシステム10では破片1004a~1004fを飛ばして敵キャラクタ1002にぶつけるという演出を行うことができる。図12はプレイヤキャラクタ1000がビル1004の破片1004a~1004fを飛ばして、敵キャラクタ1002にぶつける様子を表した一例の図である。
【0045】
図13はクライアント20でプレイされるゲーム内の破片1004a~1004fの位置移動に関する処理の一例のフローチャートである。
【0046】
クライアント20の物理オブジェクト制御部35は、プレイヤキャラクタ1000の攻撃により破壊可能オブジェクトの一例であるビル1004が破壊されたと判定するまで待機する(S10においてNO)。
【0047】
ビル1004が破壊されたと判定すると(S10においてYES)、物理オブジェクト制御部35は、ビル1004の破壊により生じた破片1004a~1004fの動きの方向と速度とを含む破片情報を物理シミュレーションにより決定する(S12)。ステップS12で物理シミュレーションにより決定された破片情報は図7の破片テーブル33に設定される。
【0048】
力場制御部36は破片1004a~1004fを生じさせたプレイヤキャラクタ1000の行動の種類(例えばストレートパンチなど)に応じて設定されている力場1010の情報を力場テーブル32から読み出す。そして、力場制御部36は力場テーブル32から読み出した力場1010の情報を利用して、破片1004a~1004fの動きに干渉する力場1010を生成する(S14)。
【0049】
力場制御部36は力場1010の中に存在する破片1004a~1004fがあるか否かを判定する(S16)。力場1010の中に存在する破片1004a~1004fがあれば(S16においてYES)、力場制御部36は図14を用いて後述するように、力場1010の中に存在する破片1004a~1004fへの撃力を計算する(S18)。
【0050】
物理オブジェクト制御部35は力場1010の中を移動する破片1004a~1004fについて、破片テーブル33の現在の方向及び現在の速度と、ステップS18で計算した撃力とを考慮した移動制御を行う。また、物理オブジェクト制御部35は力場1010の外を移動する破片1004a~1004fについて、破片テーブル33の現在の方向及び現在の速度を考慮した移動制御を行う。図7の破片テーブル33の破片情報は破片1004a~1004fの移動制御の結果で更新される(S20)。ステップS16~S20の処理は破片1004a~1004fの動きが無くなるまで繰り返される。
【0051】
ステップS18の力場1010の中に存在する破片1004a~1004fへの撃力を計算する処理は、例えば図14のフローチャートに示すように実行される。図14は力場1010の中に存在する破片1004a~1004fへの撃力を計算する処理の一例のフローチャートである。
【0052】
力場制御部36は破片テーブル33から1つの破片情報を読み出す(S30)。読み出した破片情報の位置が力場1010の中であれば(S32においてYES)、力場制御部36は力場テーブル32から目標方向及び目標速度を取得する(S34)。また、力場制御部36は読み出した破片情報の現在の方向及び現在の速度と、取得した目標方向及び目標速度との差分に応じた撃力を計算し、その撃力をステップS30で読み出した破片情報に対応する破片1004a~1004fの何れかに追加する(S36)。
【0053】
なお、力場制御部36は破片テーブル33から全ての破片情報を読み出すまでステップS30~S38の処理を繰り返す(S38においてNO)。破片テーブル33から全ての破片情報を読み出したと判定すると(S38にいてYES)、力場制御部36は図14のフローチャートの処理を終了する。
【0054】
図14のステップS36の処理では、例えば図15に示すように行われる。図15はステップS36において撃力を計算する処理の一例を表した図である。ここでは、図15の力場1010の中を移動している破片などの物理オブジェクト1004zを一例として説明する。
【0055】
図15では物理オブジェクト1004zの動きの現在の方向及び現在の速度をベクトルν0で表し、力場1010の目標方向及び目標速度をベクトルνtargetで表す。ステップS36の処理では、例えば式(1)により撃力Fを計算する。
【0056】
F=C×m×(νtarget-ν0)…(1)
式(1)のmは物理オブジェクト1004zの重さである。Cは力場1010において物理オブジェクト1004zの動きが目標方向及び目標速度に近付くスピードを調整するための定数である。例えばCが大きいほど、物理オブジェクト1004zの動きが目標方向及び目標速度に近付くまでの時間が短くなり、Cが小さいほど、物理オブジェクト1004zの動きが目標方向及び目標速度に近付くまでの時間が長くなる。
【0057】
したがって、例えば力場1010の領域を小さく設定し、更にCを小さく設定することにより、物理オブジェクト1004zが力場1010の目標方向及び目標速度に収束し過ぎないようにすることもできる。
【0058】
なお、式(1)では撃力Fが物理オブジェクト1004zの重さに比例する例を示したが、式(1)のmをmによる関数f(m)に置き換えることで、撃力Fが物理オブジェクト1004zの重さに比例しないようにしてもよい。
【0059】
式(1)では、力場1010の目標方向及び目標速度のベクトルνtargetと、力場1010の中で動いている物理オブジェクト1004zの現在の方向及び現在の速度のベクトルν0との差分を計算し、差分に応じた撃力Fを算出している。このような撃力Fをフレーム毎に算出して、力場1010の中を動く物理オブジェクト1004zに加算することで、物理オブジェクト1004zの動きを、フレーム毎に目標方向及び目標速度へ近付けることができる。
【0060】
なお、式(1)は物理オブジェクト1004zの動きの方向及び速度のフィードバック制御の一例であって、他のPID(Proportional-Integral-Differential)制御などを利用するものであってもよい。
【0061】
例えば一度の加算で物理オブジェクト1004zの目標方向及び目標速度にする撃力の計算は摩擦、重さ、慣性テンソルなどの影響があるため面倒である。一実施形態のゲームシステム10では一度の撃力の加算で物理オブジェクト1004zの目標方向及び目標速度にするのでなく、力場1010の中にある物理オブジェクト1004zへの複数回の撃力の加算で物理オブジェクト1004zの目標方向及び目標速度に近付けていくことができる。
【0062】
なお、物理シミュレーションにより制御される物理オブジェクト1004zの動きに干渉する力場1010は、様々考えられ、例えば図16のような力場1010であってもよい。図16は力場1010の他の例を示した図である。図16の力場1010は、力場の中にある物理オブジェクト1004zを竜巻により巻き上げる例である。
【0063】
図16の力場1010では、力場1010の目標方向及び目標速度を物理オブジェクト1004zの位置により変えることで、竜巻からでないような物理オブジェクト1004zの挙動を表現できる。その他、力場1010の目標方向及び目標速度を物理オブジェクト1004zの重さ、速度に応じて変えることで、物理オブジェクト1004zの様々な挙動を表現できる。
【0064】
以上、本実施形態によれば、ゲーム内で撃力を与えられて移動する物理オブジェクト1004zの動きの方向及び速度を、目標方向及び目標速度に調整する新たな仕組みを提供できる。
【0065】
開示した一実施形態のゲームシステム10、クライアント20及びサーバ30は例示であって制限的なものではないと考えられるべきである。上記の実施形態は添付の請求の範囲及びその主旨を逸脱することなく、様々な形態で変形及び改良が可能である。また、上記した複数の実施形態に記載された事項は、矛盾しない範囲で他の構成も取り得ることができ、また、矛盾しない範囲で組み合わせることができる。
【符号の説明】
【0066】
10 ゲームシステム
20 クライアント
21 記憶部
22 制御部
23 操作部
24 表示部
25 端末側通信部
30 サーバ
31 ゲームプログラム
32 力場テーブル
33 破片テーブル
35 物理オブジェクト制御部
36 力場制御部
37 ゲーム制御部
40 ネットワーク
51 記憶部
52 サーバ制御部
53 サーバ側通信部
55 ゲームプログラム
56 サーバプログラム
57 力場テーブル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16