(57)【要約】【課題】仮想空間で撃力を与えられた物理オブジェクトの動きの方向及び速度を調整する新たな仕組みを提供する。【解決手段】仮想空間に表示された物理オブジェクトの位置移動を制御する情報処理装置であって、第１の撃力を与えられた物理オブジェクトの動きを物理シミュレーションにより制御する物理オブジェクト制御部と、物理オブジェクトの動きに干渉する力場を生成し、力場の中に存在する物理オブジェクトの動きの方向及び速度が、第１の撃力の種類に応じて設定されている目標方向及び目標速度となるように、第２の撃力を加える力場制御部と、を有する情報処理装置が提供される。【選択図】図１２
2020130808.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間に表示された物理オブジェクトの位置移動を制御する情報処理装置であって、
第１の撃力を与えられた前記物理オブジェクトの動きを物理シミュレーションにより制御する物理オブジェクト制御部と、
前記物理オブジェクトの動きに干渉する力場を生成し、前記力場の中に存在する前記物理オブジェクトの動きの方向及び速度が、前記第１の撃力の種類に応じて設定されている目標方向及び目標速度となるように、第２の撃力を加える力場制御部と、
を有する情報処理装置。
【請求項２】
前記力場制御部は、前記物理オブジェクトの動きの方向及び速度と、前記第１の撃力の種類に応じて設定されている目標方向及び目標速度と、の差分を計算し、前記差分に応じた前記第２の撃力を連続して加えること
を特徴とする請求項１記載の情報処理装置。
【請求項３】
前記力場制御部は、前記力場における前記物理オブジェクトの位置に応じて変化するように設定されている前記目標方向及び目標速度を利用すること
を特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記第１の撃力の種類は、前記仮想空間に表示されたキャラクタが前記物理オブジェクトに前記第１の撃力を与えた行動の種類であること
を特徴とする請求項１乃至３何れか一項記載の情報処理装置。
【請求項５】
仮想空間に表示された物理オブジェクトの位置移動を制御する情報処理装置が、
第１の撃力を与えられた前記物理オブジェクトの動きを物理シミュレーションにより制御する物理オブジェクト制御ステップと、
前記物理オブジェクトの動きに干渉する力場を生成し、前記力場の中に存在する前記物理オブジェクトの動きの方向及び速度が、前記第１の撃力の種類に応じて設定されている目標方向及び目標速度となるように、第２の撃力を加える力場制御ステップと、
を実行する情報処理方法。
【請求項６】
仮想空間に表示された物理オブジェクトの位置移動を制御する情報処理装置を、
第１の撃力を与えられた前記物理オブジェクトの動きを物理シミュレーションにより制御する物理オブジェクト制御部、
前記物理オブジェクトの動きに干渉する力場を生成し、前記力場の中に存在する前記物理オブジェクトの動きの方向及び速度が、前記第１の撃力の種類に応じて設定されている目標方向及び目標速度となるように、第２の撃力を加える力場制御部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来から、位置移動を引き起こす特性を持つ衝撃を受けた際のキャラクタの移動や、周囲のオブジェクトとの衝突の様子をゲーム画像として生成する画像生成システムが知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２７２２６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば仮想空間に表示された物理オブジェクトに任意の動きをさせたい場合は、撃力を与えられた物理オブジェクトの動きを、物理シミュレーションにより制御する。しかしながら、物理シミュレーション上の正しい物理オブジェクトの動きが、仮想空間における演出に適した物理オブジェクトの動きとは限らない。
【０００５】
本開示は、仮想空間で撃力を与えられた物理オブジェクトの動きの方向及び速度を調整する新たな仕組みを提供することを課題とする。
【課題を解決するための手段】
【０００６】
本開示の一の態様によれば、仮想空間に表示された物理オブジェクトの位置移動を制御する情報処理装置であって、第１の撃力を与えられた前記物理オブジェクトの動きを物理シミュレーションにより制御する物理オブジェクト制御部と、前記物理オブジェクトの動きに干渉する力場を生成し、前記力場の中に存在する前記物理オブジェクトの動きの方向及び速度が、前記第１の撃力の種類に応じて設定されている目標方向及び目標速度となるように、第２の撃力を加える力場制御部と、を有する情報処理装置が提供される。
【発明の効果】
【０００７】
一の側面によれば、仮想空間で撃力を与えられた物理オブジェクトの動きの方向及び速度を調整する新たな仕組みを提供できる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係るゲームシステムの一例を示す図である。
【図２】一実施形態に係るクライアントのハードウェア構成の一例を示す図である。
【図３】一実施形態に係るサーバのハードウェア構成の一例を示す図である。
【図４】一実施形態に係るクライアントの機能構成の一例を示す図である。
【図５】一実施形態に係るサーバの機能構成の一例を示す図である。
【図６】力場テーブルについて説明する一例の図である。
【図７】破片テーブルについて説明する一例の図である。
【図８】ビルの破片を飛ばすために、プレイヤキャラクタがビルに攻撃する様子を表した一例の図である。
【図９】プレイヤキャラクタのビルへの攻撃により破片が飛ぶ様子を表した一例の図である。
【図１０】破片の動きに干渉する力場の一例の図である。
【図１１】力場の中を移動する破片の移動の方向及び速度を調整する処理の一例の説明図である。
【図１２】プレイヤキャラクタがビルの破片を飛ばして、敵キャラクタにぶつける様子を表した一例の図である。
【図１３】クライアントでプレイされるゲーム内の破片の位置移動に関する処理の一例のフローチャートである。
【図１４】力場の中に存在する破片への撃力を計算する処理の一例のフローチャートである。
【図１５】ステップＳ３６において撃力を計算する処理の一例を表した図である。
【図１６】力場の他の例を示した図である。
【発明を実施するための形態】
【０００９】
以下、本開示を実施するための形態について図面を参照して説明する。なお、一実施形態では仮想空間の一例であるゲーム内において、プレイヤキャラクタが攻撃により破壊したビルなどの破片（物理オブジェクトの一例）を飛ばして、敵キャラクタにぶつける例について説明するが、この例に限定するものではない。
【００１０】
［ゲームシステム］
まず、一実施形態に係るゲームシステム１０について、図１を参照して説明する。一実施形態に係るゲームシステム１０は、クライアント２０とサーバ３０とがネットワーク４０を介して通信可能に接続された構成である。
【００１１】
クライアント２０はプレイヤがゲームをプレイする情報処理装置の一例である。情報処理装置はスマートフォンなどの携帯電話機、携帯ゲーム機、パーソナルコンピュータ、タブレット端末、家庭用ゲーム装置、業務用ゲーム装置等である。クライアント２０はプレイヤからの操作をタッチパネル、コントローラ、マウス、キーボード等で受け付け、プレイヤにゲームをプレイさせる。なお、クライアント２０の個数は３つに限定されるものではなく、３つ以外であってもよい。
【００１２】
サーバ３０はクライアント２０との間でデータを送受信することで、ゲームに必要な機能をクライアント２０に提供する情報処理装置の一例である。サーバ３０はクラウドコンピュータにより実現してもよい。なお、図１に示したサーバ３０の個数は、１つに限定されるものではなく、２つ以上で分散処理してもよい。
【００１３】
例えばサーバ３０はクライアント２０へのゲームプログラム（アプリケーション）などのダウンロード処理やプレイヤのログイン処理、プレイヤ情報やゲームスコアの管理などに利用される。
【００１４】
図２は、クライアント２０のハードウェア構成の一例を示す図である。クライアント２０は、ＣＰＵ（Central Processing Unit）１２１、記憶装置１２２、通信装置１２３、入力装置１２４及び表示装置１２５を有する。ＣＰＵ１２１は、クライアント２０を制御する。記憶装置１２２は、例えばＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などのメモリ、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などのストレージである。
【００１５】
通信装置１２３は、通信を制御するネットワーク回路などの通信デバイスである。入力装置１２４は、タッチパッド、コントローラ、マウス、キーボード、カメラ、マイクなどの入力デバイスである。また、表示装置１２５はディスプレイ、スピーカなどの出力デバイスである。タッチパネルはタッチパッドとディスプレイとを組み合わせることで実現される。
【００１６】
図３は、サーバ３０のハードウェア構成の一例を示す図である。サーバ３０は、ＣＰＵ１３１、記憶装置１３２及び通信装置１３３を有する。ＣＰＵ１３１は、サーバ３０を制御する。記憶装置１３２は、例えばＲＯＭやＲＡＭなどのメモリ、ＨＤＤやＳＳＤなどのストレージである。通信装置１３３は、通信を制御するネットワークカードなどの通信デバイスである。
【００１７】
図４はクライアント２０の機能構成の一例を示す図である。クライアント２０は、記憶部２１、制御部２２、操作部２３、表示部２４及び端末側通信部２５を有する。記憶部２１は、ゲームプログラム３１などのプログラム、そのプログラムが利用するデータ、後述する力場テーブル３２、及び破片テーブル３３などを記憶している。なお、記憶部２１は記憶装置１２２により実現されてもよいし、ネットワーク４０を介して接続された記憶装置により実現されてもよい。
【００１８】
図４に戻り、制御部２２はクライアント２０の全体の制御を行う。制御部２２は、ＣＰＵ１２１がゲームプログラム３１に記載された処理を実行することにより実現される。制御部２２は、物理オブジェクト制御部３５、力場制御部３６、及びゲーム制御部３７を有する。
【００１９】
物理オブジェクト制御部３５は物理オブジェクトの位置移動に関する制御を行う。力場制御部３６は、物理オブジェクトの動きに干渉する力場に関する制御を行う。ゲーム制御部３７はプレイヤキャラクタに関する制御とプレイヤがプレイするゲーム全般に関する制御を行う。
【００２０】
操作部２３は入力装置１２４に対するプレイヤの各種操作を受け付ける。表示部２４は表示装置１２５にゲーム画像を表示する。なお、操作部２３はＣＰＵ１２１が入力装置１２４を制御することで実現される。また、表示部２４は、ＣＰＵ１２１が表示装置１２５を制御することで実現される。
【００２１】
ここで入力装置１２４に対するプレイヤの各種操作とは、ＣＰＵ１２１に処理を実行させるため、プレイヤが操作部２３を操る操作をいう。操作部２３はゲームをプレイするプレイヤから各種操作を受け付ける。制御部２２はプレイヤから受け付けた各種操作に基づき、ゲームを進行させる。表示部２４は制御部２２が生成したゲーム画像を表示する。端末側通信部２５は、サーバ３０と通信する。端末側通信部２５はＣＰＵ１２１がゲームプログラム３１を実行し、ゲームプログラム３１に従って通信装置１２３を制御することで実現される。
【００２２】
図５は、サーバ３０の機能構成の一例を示す図である。図５のサーバ３０は、記憶部５１、サーバ制御部５２及びサーバ側通信部５３を有する。記憶部５１は、ゲームプログラム５５、サーバプログラム５６などのプログラム、そのプログラムが利用するデータ、後述する力場テーブル５７などを記憶している。記憶部５１は記憶装置１３２により実現されてもよいし、ネットワーク４０を介して接続された記憶装置により実現されてもよい。
【００２３】
図５に戻り、サーバ制御部５２は、サーバ３０の全体の制御を行う。サーバ制御部５２は、ＣＰＵ１３１がサーバプログラム６２に記載された処理を実行することにより実現される。
【００２４】
例えば、サーバ制御部５２は記憶部５１に記憶されているゲームプログラム５５、そのゲームプログラム５５が利用するデータや後述する力場テーブル５７をクライアント２０へダウンロードさせるダウンロード処理を行う。また、サーバ側通信部５３はクライアント２０と通信する。サーバ側通信部５３は、ＣＰＵ１３１がサーバプログラム５６を実行し、サーバプログラム５６に従って通信装置１３３を制御することで実現される。
【００２５】
クライアント２０の力場テーブル３２及びサーバ３０の力場テーブル５７は、ゲーム内で破片などの物理オブジェクトの動きに干渉する力場が設定されている。また、クライアント２０の破片テーブル３３は、ゲーム内で撃力を与えられて動いている破片の破片情報が設定されている。ここでは、クライアント２０の力場テーブル３２及び破片テーブル３３を一例として説明する。
【００２６】
図６は、力場テーブル３２について説明する一例の図である。一実施形態のゲームシステム１０では、ゲーム内で破片などの物理オブジェクトの動きに干渉する力場を生成するため、図６の力場テーブル３２を利用する。
【００２７】
図６の力場テーブル３２は項目として、行動の種類、領域、目標方向、及び目標速度を有する。行動の種類は、ビルなどの破片に撃力を与えるプレイヤキャラクタの行動の種類であり、ストレートパンチ、アッパーパンチ、キック、魔法などである。領域は、力場を生成するゲーム内の空間、範囲、エリアなどを示している。なお、領域の形状は２次元であれば丸、四角など、３次元であれば球、立方体など、様々考えられる。
【００２８】
目標方向は撃力が与えられた破片を動かしたい方向が設定されている。目標速度は撃力を与えられた破片の目標とする速度が設定されている。なお、一実施形態において撃力とはプレイヤキャラクタが攻撃により破壊したビルなどの破片に、瞬間的に与えられた力である。
【００２９】
このように、力場テーブル３２には、プレイヤキャラクタの行動の種類と対応付けて力場を生成する領域を設定できる。また、力場テーブル３２にはプレイヤキャラクタの行動の種類と対応付けて、そのプレイヤキャラクタの行動により撃力を与えられた破片の目標方向及び目標速度を設定できる。
【００３０】
図７は破片テーブル３３について説明する一例の図である。一実施形態のゲームシステム１０では、ゲーム内で撃力を与えられて動いている破片の位置移動を制御するため、図７の破片テーブル３３を利用する。
【００３１】
図７の破片テーブル３３は項目として、破片ＩＤ、位置、重さ、現在の方向、及び現在の速度を有する。破片ＩＤは、破片を一意に識別するための識別情報の一例である。位置はゲーム内における破片の位置を表している。重さは破片の重さを表している。現在の方向は、破片が動いている方向が設定されている。現在の速度は、現在の破片の速度が設定されている。
【００３２】
[ゲーム動作]
次に、クライアント２０でプレイヤによりプレイされるゲーム内の破片の位置移動に関する処理について図８〜図１６を参照しながら説明する。図８はビル１００４の破片を飛ばすために、プレイヤキャラクタ１０００がビル１００４に攻撃する様子を表した一例の図である。
【００３３】
破片を飛ばして敵キャラクタ１００２にぶつけたいプレイヤは、プレイヤキャラクタ１０００にビル１００４を攻撃させて、ビル１００４に撃力を与える。撃力を与えたビル１００４の一部は、破片１００４ａ〜１００４ｆに分かれる。図８に示したように、破片１００４ａ〜１００４ｆはサイズ、重さなどが異なる。
【００３４】
破片１００４ａ〜１００４ｆの動きは物理シミュレーションにより例えば図９のように制御される。図９はプレイヤキャラクタ１０００のビル１００４への攻撃により破片が飛ぶ様子を表した一例の図である。図９に示したように、物理シミュレーションにより動きが制御される破片１００４ａ〜１００４ｆは、形状、サイズ、重さなどによって、飛ぶ方向や速度が異なる。
【００３５】
例えば破片１００４ａは重すぎて全然飛ばない例を表している。また、破片１００４ｂ及び１００４ｄは狙った方向に飛ばない例を表している。さらに、破片１００４ｅは飛ぶ速度が遅い例を表している。このように、物理シミュレーションにより制御される破片１００４ａ〜１００４ｆの動きは、プレイヤキャラクタが攻撃により破片１００４ａ〜１００４ｆを飛ばして、敵キャラクタ１００２にぶつけるという演出に適さない場合がある。
【００３６】
なお、物理シミュレーションにより動きが制御される破片１００４ａ〜１００４ｆを敵キャラクタ１００２にぶつけるという演出に適した（任意の）方向及び速度で動かす為には、破片１００４ａ〜１００４ｆの形状、サイズ、重さなどから与える撃力を逆算して求める必要があるため、容易でない。
【００３７】
そこで、一実施形態のゲームシステム１０では、物理シミュレーションにより制御される破片１００４ａ〜１００４ｆの動きに干渉する力場１０１０を例えば図１０のように生成する。図１０は、破片１００４ａ〜１００４ｆの動きに干渉する力場１０１０の一例の図である。
【００３８】
力場１０１０の中を移動する破片１００４ａ〜１００４ｆは、ストレートパンチなどのプレイヤキャラクタの行動の種類に応じて力場テーブル３２に設定されている目標方向及び目標速度に近付くように、連続して撃力（第２の撃力）が加えられる。
【００３９】
図１１は、力場１０１０の中を移動する破片１００４ａ〜１００４ｆの移動の方向及び速度を調整する処理の一例の説明図である。図１１（Ａ）〜図１１（Ｃ）は、連続するフレームにおける破片１００４ａ〜１００４ｆの位置移動を表している。なお、図１１の例は破片１００４ａ〜１００４ｆの目標方向が前方向である例を示している。
【００４０】
図１１（Ａ）は物理シミュレーションにより制御される破片１００４ａ〜１００４ｆの動きと、破片１００４ａ〜１００４ｆに追加される撃力を表している。図１１（Ａ）の破片１００４ａは、移動の速度と目標速度との差分が大きいため、前方向に強めの撃力が加えられる。破片１００４ｂは、移動の方向と目標方向との差分が大きいため、下方向に強めの撃力が加えられている。破片１００４ｄは、移動の速度と目標速度との差分及び移動の方向と目標方向との差分に従い、斜め上方向に小さめの撃力が加えられている。破片１００４ｆは、移動の速度と目標速度との差分に従い、前方向に小さめの撃力が加えられている。なお、破片１００４ｃ及び１００４ｅは移動の速度と目標速度との差分及び移動の方向と目標方向との差分がなく、撃力が加えられていない例である。
【００４１】
図１１（Ｂ）は図１１（Ａ）のフレームの次のフレームにおける破片１００４ａ〜１００４ｆの動きと、破片１００４ａ〜１００４ｆに追加される撃力を表す。図１１（Ｂ）の破片１００４ａの移動の速度は、図１１（Ａ）において与えられた前方向への強めの撃力により目標速度に近付いている。したがって、図１１（Ｂ）の破片１００４ａは移動の速度と目標速度との差分に従い、前方向に弱めの撃力が加えられる。
【００４２】
破片１００４ｂの移動の方向は、図１１（Ａ）において与えられた下方向への強めの撃力により目標方向に近付いている。したがって、図１１（Ｂ）の破片１００４ｂは移動の方向と目標方向との差分に従い、下方向に弱めの撃力が加えられている。
【００４３】
破片１００４ｄの移動の速度及び方向は、図１１（Ａ）において与えられた斜め上方向への小さめの撃力により目標速度及び目標方向との差分がなくなり、撃力が加えられていない。破片１００４ｆの移動の速度は、図１１（Ａ）において与えられた前方向への小さめの撃力により目標速度との差分がなくなり、撃力が加えられていない。なお、破片１００４ｃ及び１００４ｅは移動の速度と目標速度との差分及び移動の方向と目標方向との差分がないため、撃力が加えられていない。
【００４４】
図１１（Ｃ）は図１１（Ｂ）のフレームの次のフレームにおける破片１００４ａ〜１００４ｆの動き表す。図１１（Ｃ）の破片１００４ａ〜１００４ｆの移動の方向及び速度は目標方向及び目標速度との差分がなくなっている。図１１に示すように、力場１０１０の中を移動する破片１００４ａ〜１００４ｆの移動の方向及び速度を調整することで、一実施形態のゲームシステム１０では破片１００４ａ〜１００４ｆを飛ばして敵キャラクタ１００２にぶつけるという演出を行うことができる。図１２はプレイヤキャラクタ１０００がビル１００４の破片１００４ａ〜１００４ｆを飛ばして、敵キャラクタ１００２にぶつける様子を表した一例の図である。
【００４５】
図１３はクライアント２０でプレイされるゲーム内の破片１００４ａ〜１００４ｆの位置移動に関する処理の一例のフローチャートである。
【００４６】
クライアント２０の物理オブジェクト制御部３５は、プレイヤキャラクタ１０００の攻撃により破壊可能オブジェクトの一例であるビル１００４が破壊されたと判定するまで待機する（Ｓ１０においてＮＯ）。
【００４７】
ビル１００４が破壊されたと判定すると（Ｓ１０においてＹＥＳ）、物理オブジェクト制御部３５は、ビル１００４の破壊により生じた破片１００４ａ〜１００４ｆの動きの方向と速度とを含む破片情報を物理シミュレーションにより決定する（Ｓ１２）。ステップＳ１２で物理シミュレーションにより決定された破片情報は図７の破片テーブル３３に設定される。
【００４８】
力場制御部３６は破片１００４ａ〜１００４ｆを生じさせたプレイヤキャラクタ１０００の行動の種類（例えばストレートパンチなど）に応じて設定されている力場１０１０の情報を力場テーブル３２から読み出す。そして、力場制御部３６は力場テーブル３２から読み出した力場１０１０の情報を利用して、破片１００４ａ〜１００４ｆの動きに干渉する力場１０１０を生成する（Ｓ１４）。
【００４９】
力場制御部３６は力場１０１０の中に存在する破片１００４ａ〜１００４ｆがあるか否かを判定する（Ｓ１６）。力場１０１０の中に存在する破片１００４ａ〜１００４ｆがあれば（Ｓ１６においてＹＥＳ）、力場制御部３６は図１４を用いて後述するように、力場１０１０の中に存在する破片１００４ａ〜１００４ｆへの撃力を計算する（Ｓ１８）。
【００５０】
物理オブジェクト制御部３５は力場１０１０の中を移動する破片１００４ａ〜１００４ｆについて、破片テーブル３３の現在の方向及び現在の速度と、ステップＳ１８で計算した撃力とを考慮した移動制御を行う。また、物理オブジェクト制御部３５は力場１０１０の外を移動する破片１００４ａ〜１００４ｆについて、破片テーブル３３の現在の方向及び現在の速度を考慮した移動制御を行う。図７の破片テーブル３３の破片情報は破片１００４ａ〜１００４ｆの移動制御の結果で更新される（Ｓ２０）。ステップＳ１６〜Ｓ２０の処理は破片１００４ａ〜１００４ｆの動きが無くなるまで繰り返される。
【００５１】
ステップＳ１８の力場１０１０の中に存在する破片１００４ａ〜１００４ｆへの撃力を計算する処理は、例えば図１４のフローチャートに示すように実行される。図１４は力場１０１０の中に存在する破片１００４ａ〜１００４ｆへの撃力を計算する処理の一例のフローチャートである。
【００５２】
力場制御部３６は破片テーブル３３から１つの破片情報を読み出す（Ｓ３０）。読み出した破片情報の位置が力場１０１０の中であれば（Ｓ３２においてＹＥＳ）、力場制御部３６は力場テーブル３２から目標方向及び目標速度を取得する（Ｓ３４）。また、力場制御部３６は読み出した破片情報の現在の方向及び現在の速度と、取得した目標方向及び目標速度との差分に応じた撃力を計算し、その撃力をステップＳ３０で読み出した破片情報に対応する破片１００４ａ〜１００４ｆの何れかに追加する（Ｓ３６）。
【００５３】
なお、力場制御部３６は破片テーブル３３から全ての破片情報を読み出すまでステップＳ３０〜Ｓ３８の処理を繰り返す（Ｓ３８においてＮＯ）。破片テーブル３３から全ての破片情報を読み出したと判定すると（Ｓ３８にいてＹＥＳ）、力場制御部３６は図１４のフローチャートの処理を終了する。
【００５４】
図１４のステップＳ３６の処理では、例えば図１５に示すように行われる。図１５はステップＳ３６において撃力を計算する処理の一例を表した図である。ここでは、図１５の力場１０１０の中を移動している破片などの物理オブジェクト１００４ｚを一例として説明する。
【００５５】
図１５では物理オブジェクト１００４ｚの動きの現在の方向及び現在の速度をベクトルν0で表し、力場１０１０の目標方向及び目標速度をベクトルνtargetで表す。ステップＳ３６の処理では、例えば式（１）により撃力Ｆを計算する。
【００５６】
Ｆ＝Ｃ×ｍ×（νtarget−ν0）…（１）
式（１）のｍは物理オブジェクト１００４ｚの重さである。Ｃは力場１０１０において物理オブジェクト１００４ｚの動きが目標方向及び目標速度に近付くスピードを調整するための定数である。例えばＣが大きいほど、物理オブジェクト１００４ｚの動きが目標方向及び目標速度に近付くまでの時間が短くなり、Ｃが小さいほど、物理オブジェクト１００４ｚの動きが目標方向及び目標速度に近付くまでの時間が長くなる。
【００５７】
したがって、例えば力場１０１０の領域を小さく設定し、更にＣを小さく設定することにより、物理オブジェクト１００４ｚが力場１０１０の目標方向及び目標速度に収束し過ぎないようにすることもできる。
【００５８】
なお、式（１）では撃力Ｆが物理オブジェクト１００４ｚの重さに比例する例を示したが、式（１）のｍをｍによる関数ｆ（ｍ）に置き換えることで、撃力Ｆが物理オブジェクト１００４ｚの重さに比例しないようにしてもよい。
【００５９】
式（１）では、力場１０１０の目標方向及び目標速度のベクトルνtargetと、力場１０１０の中で動いている物理オブジェクト１００４ｚの現在の方向及び現在の速度のベクトルν0との差分を計算し、差分に応じた撃力Ｆを算出している。このような撃力Ｆをフレーム毎に算出して、力場１０１０の中を動く物理オブジェクト１００４ｚに加算することで、物理オブジェクト１００４ｚの動きを、フレーム毎に目標方向及び目標速度へ近付けることができる。
【００６０】
なお、式（１）は物理オブジェクト１００４ｚの動きの方向及び速度のフィードバック制御の一例であって、他のＰＩＤ（Proportional-Integral-Differential）制御などを利用するものであってもよい。
【００６１】
例えば一度の加算で物理オブジェクト１００４ｚの目標方向及び目標速度にする撃力の計算は摩擦、重さ、慣性テンソルなどの影響があるため面倒である。一実施形態のゲームシステム１０では一度の撃力の加算で物理オブジェクト１００４ｚの目標方向及び目標速度にするのでなく、力場１０１０の中にある物理オブジェクト１００４ｚへの複数回の撃力の加算で物理オブジェクト１００４ｚの目標方向及び目標速度に近付けていくことができる。
【００６２】
なお、物理シミュレーションにより制御される物理オブジェクト１００４ｚの動きに干渉する力場１０１０は、様々考えられ、例えば図１６のような力場１０１０であってもよい。図１６は力場１０１０の他の例を示した図である。図１６の力場１０１０は、力場の中にある物理オブジェクト１００４ｚを竜巻により巻き上げる例である。
【００６３】
図１６の力場１０１０では、力場１０１０の目標方向及び目標速度を物理オブジェクト１００４ｚの位置により変えることで、竜巻からでないような物理オブジェクト１００４ｚの挙動を表現できる。その他、力場１０１０の目標方向及び目標速度を物理オブジェクト１００４ｚの重さ、速度に応じて変えることで、物理オブジェクト１００４ｚの様々な挙動を表現できる。
【００６４】
以上、本実施形態によれば、ゲーム内で撃力を与えられて移動する物理オブジェクト１００４ｚの動きの方向及び速度を、目標方向及び目標速度に調整する新たな仕組みを提供できる。
【００６５】
開示した一実施形態のゲームシステム１０、クライアント２０及びサーバ３０は例示であって制限的なものではないと考えられるべきである。上記の実施形態は添付の請求の範囲及びその主旨を逸脱することなく、様々な形態で変形及び改良が可能である。また、上記した複数の実施形態に記載された事項は、矛盾しない範囲で他の構成も取り得ることができ、また、矛盾しない範囲で組み合わせることができる。
【符号の説明】
【００６６】
１０    ゲームシステム
２０    クライアント
２１    記憶部
２２    制御部
２３    操作部
２４    表示部
２５    端末側通信部
３０    サーバ
３１    ゲームプログラム
３２    力場テーブル
３３    破片テーブル
３５    物理オブジェクト制御部
３６    力場制御部
３７    ゲーム制御部
４０    ネットワーク
５１    記憶部
５２    サーバ制御部
５３    サーバ側通信部
５５    ゲームプログラム
５６    サーバプログラム
５７    力場テーブル
【図１】
2020130808.tif 000003
【図２】
2020130808.tif 000004
【図３】
2020130808.tif 000005
【図４】
2020130808.tif 000006
【図５】
2020130808.tif 000007
【図６】
2020130808.tif 000008
【図７】
2020130808.tif 000009
【図８】
2020130808.tif 000010
【図９】
2020130808.tif 000011
【図１０】
2020130808.tif 000012
【図１１】
2020130808.tif 000013
【図１２】
2020130808.tif 000014
【図１３】
2020130808.tif 000015
【図１４】
2020130808.tif 000016
【図１５】
2020130808.tif 000017
【図１６】
2020130808.tif 000018