(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-13
(45)【発行日】2023-04-21
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
G06T 13/60 20110101AFI20230414BHJP
A63F 13/52 20140101ALI20230414BHJP
A63F 13/57 20140101ALI20230414BHJP
【FI】
G06T13/60
A63F13/52
A63F13/57
(21)【出願番号】P 2019088421
(22)【出願日】2019-05-08
【審査請求日】2022-03-03
(73)【特許権者】
【識別番号】595000427
【氏名又は名称】株式会社コーエーテクモゲームス
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】畑 智行
【審査官】板垣 有紀
(56)【参考文献】
【文献】特開2007-164728(JP,A)
【文献】特開平05-292394(JP,A)
【文献】特開2002-216165(JP,A)
【文献】向井 信彦,水面波モデルの動的制御による河川のリアルタイム表現,画像ラボ,日本,日本工業出版株式会社,2009年07月10日,第20巻 第7号,pp.64-68
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/60
A63F 13/00 - 13/98
(57)【特許請求の範囲】
【請求項1】
水面における波を描画する情報処理装置であって、
描画範囲である第1水面領域、及び前記描画範囲の外側に設けられる第2水面領域を設定する水面領域設定部と、
前記第1水面領域において波を物理的な運動方程式に従って運動させるように制御を行う第1水面領域制御部と、
前記第2水面領域において波を物理的な運動方程式に従って運動させ、前記運動により損失した波の運動エネルギーを補填するように制御を行うと共に、前記波を反射させるように制御を行う第2水面領域制御部と、
前記第1水面領域を描画する描画部と、
を有する情報処理装置。
【請求項2】
前記第2水面領域制御部は、波の運動エネルギーの参照スペクトルと前記第1水面領域の波の運動エネルギーのスペクトルとを比較し、差分を補填するように運動エネルギーを波に注入すること
を特徴とする請求項1記載の情報処理装置。
【請求項3】
前記第2水面領域制御部は、前記第2水面領域を複数の領域に分け、分けられた前記領域ごとに異なる前記参照スペクトルを設けること
を特徴とする請求項2記載の情報処理装置。
【請求項4】
前記第1水面領域制御部は、前記運動により所定の運動エネルギーまで減衰した波を前記第1水面領域で削除し、
前記第2水面領域制御部は、前記第1水面領域制御部が前記第1水面領域で削除した波の初期状態の特性を持った波を、前記第2水面領域に発生させること
を特徴とする請求項1乃至3何れか一項記載の情報処理装置。
【請求項5】
水面における波を描画する情報処理装置が、
描画範囲である第1水面領域、及び前記描画範囲の外側に設けられる第2水面領域を設定する水面領域設定ステップと、
前記第1水面領域において波を物理的な運動方程式に従って運動させるように制御を行う第1水面領域制御ステップと、
前記第2水面領域において波を物理的な運動方程式に従って運動させ、前記運動により損失した波の運動エネルギーを補填するように制御を行うと共に、前記波を反射させるように制御を行う第2水面領域制御ステップと、
前記第1水面領域を描画する描画ステップと、
を有する情報処理方法。
【請求項6】
水面における波を描画する情報処理装置を、
描画範囲である第1水面領域、及び前記描画範囲の外側に設けられる第2水面領域を設定する水面領域設定部、
前記第1水面領域において波を物理的な運動方程式に従って運動させるように制御を行う第1水面領域制御部、
前記第2水面領域において波を物理的な運動方程式に従って運動させ、前記運動により損失した波の運動エネルギーを補填するように制御を行うと共に、前記波を反射させるように制御を行う第2水面領域制御部、
前記第1水面領域を描画する描画部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
例えば、波の影響を受けて変化する沖合から波打ち際までの水面のリアルな画像を生成する技術は、従来から知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
海の波に関し、沖合ではある特定のエネルギースペクトル、ないしは周波数スペクトルを持つことが観測されている。したがって、海の波の描画については、これらのスペクトルを再現することが望ましい。例えば、これらのスペクトルをフーリエ変換して周期的な波高変化に落とし込む手法が提案されている。しかしながら、フーリエ変換を用いた手法は、長時間の波の描画において波形の周期性や等方性が目立ち、自然な波を描画できないという問題があった。
【0005】
本開示は、水面における自然な波を描画できる新たな仕組みを提供すること、を課題とする。
【課題を解決するための手段】
【0006】
本開示の一の態様によれば、水面における波を描画する情報処理装置であって、描画範囲である第1水面領域、及び前記描画範囲の外側に設けられる第2水面領域を設定する水面領域設定部と、前記第1水面領域において波を物理的な運動方程式に従って運動させるように制御を行う第1水面領域制御部と、前記第2水面領域において波を物理的な運動方程式に従って運動させ、前記運動により損失した波の運動エネルギーを補填するように制御を行うと共に、前記波を反射させるように制御を行う第2水面領域制御部と、前記第1水面領域を描画する描画部と、を有する情報処理装置が提供される。
【発明の効果】
【0007】
一の側面によれば、水面における自然な波を描画可能な新たな仕組みを提供できる。
【図面の簡単な説明】
【0008】
【
図2】減衰や反射などにより失っていく運動エネルギーを補填する方法の一例について説明する図である。
【
図3】本実施形態に係る波の描画方法の一例について説明する図である。
【
図4】一実施形態に係る情報処理システムの一例を示す図である。
【
図5】クライアントのハードウェア構成の一例を示す図である。
【
図6】サーバのハードウェア構成の一例を示す図である。
【
図7】クライアントの機能構成の一例を示す図である。
【
図9】水面における波の描画に関する処理手順の一例を示したフローチャートである。
【
図10】本実施形態に係る波の描画方法の他の例について説明する図である。
【発明を実施するための形態】
【0009】
以下、本開示を実施するための形態について図面を参照して説明する。
【0010】
[概要]
本実施形態では、
図1に示すような熱浴法を利用する。
図1は熱浴法の一例について説明する図である。熱浴法とは、空気中で運動するある粒子群を一定温度に保つための方法である。温度は粒子の運動エネルギーと相関している。ある温度の粒子群は、対応した運動エネルギースペクトルを持つ。そのため、ある温度の粒子群系をシミュレーションしたい場合、
図1(A)に示すように、初期の運動エネルギーを、対応したスペクトルに合わせて設定することが考えられる。
【0011】
しかしながら、このまま粒子群を運動させると粒子間の相互作用などを介して運動エネルギーの一部が
図1(B)に示すようにポテンシャルエネルギーに変化するため、スペクトルが崩れ、温度が変化してしまう。この問題に対処するため、
図1(C)に示すように参照スペクトルを持った仮想粒子で構成された熱浴を考え、その仮想粒子と擬似的なエネルギー交換を行うことで、運動エネルギーのスペクトルを維持する手法が各種熱浴法として考案された。本実施形態では、このような熱浴法を海の波へ適用する。海の波は水面における波の一例である。
【0012】
海の波に関し、沖合ではある特定のエネルギースペクトル、ないしは周波数スペクトルを持つことが観測されている。したがって、海の波の描画については、これらのスペクトルを再現することが望ましい。例えば、初期状態として特定のスペクトルを再現するように局在波群を生成したとして、局在波群は物理的な運動方程式に従ってリアルタイムに運動し、減衰や反射などにより運動エネルギーを失っていく。
【0013】
失っていく運動エネルギーを補填する方法としては、例えば
図2に示すように、ある波源1000からスペクトルに則った波を、一定の時間間隔で発生させるような方法が考えられるが、波源1000の場所や発生間隔など、決定の難しいパラメータも多く、手法が確立していない。
図2は減衰や反射などにより失っていく運動エネルギーを補填する方法の一例について説明する図である。
【0014】
そこで、本実施形態では初期状態として特定のスペクトルを再現するように生成した局在波群の維持とスペクトルの維持とを両立させる
図3のような方法を利用する。
図3は本実施形態に係る波の描画方法の一例について説明する図である。
【0015】
図3に示すように、描画範囲を自由運動領域1100と設定する。なお、
図3は一例であって、例えば描画範囲のうち、ゲームプレイ中に注目される特定範囲など、ユーザに注目される特定範囲を自由運動領域1100と設定してもよい。自由運動領域1100では波を物理的な運動方程式に従って運動させるように、減衰や反射などの制御を行う。
【0016】
また、自由運動領域1100の外側には制御領域1110を設定する。制御領域1110は波の固定端としての機能を有し、波を反射させ、自由運動領域1100に送り返すことができる。これにより、本実施形態では初期状態として特定のスペクトルを再現するように生成した局在波群の波の数及び波の特性を維持しやすくしている。
【0017】
また、自由運動領域1100で運動により過度に減衰した波(所定の運動エネルギーまで減衰した波)は、一般的な局在波シミュレーションと同様に削除する。自由運動領域1100で波が削除された場合、制御領域1110は自由運動領域1100で削除された波の初期状態の特性を持った新しい波を発生させる。
【0018】
また、制御領域1110では波を物理的な運動方程式に従って運動させるが、減衰や反射などによって運動エネルギーが損失しない。なお、自由運動領域1100では減衰や反射などによって運動エネルギーが損失する。
【0019】
また、制御領域1110に存在する波は、波の運動エネルギーの参照スペクトル(維持したいスペクトル)から、損失した運動エネルギーを補填するように運動エネルギーを供給される。具体的に、本実施形態では自由運動領域1100の波の運動エネルギーのスペクトルと参照スペクトルとを比較し、スペクトルがずれていた場合に、そのずれを補填するようなエネルギー注入(波高の増強)を、制御領域1110の波に対して行う。
【0020】
このように、本実施形態では描画範囲又はユーザに注目される特定範囲の外側に、参照スペクトルを持った波の熱浴としての機能を有する制御領域1110を設け、制御領域1110で波のずれを補正することで、自由運動領域1100に自然な波を描画できる。
【0021】
[情報処理システム]
本実施形態に係る情報処理システム10について
図4を参照して説明する。情報処理システム10は、クライアント20とサーバ30とがネットワーク40を介して通信可能に接続された構成である。
【0022】
クライアント20はユーザが操作する情報処理装置の一例である。ユーザはクライアント20を操作し、水面における波の描画に関する処理をサーバ30に実行させる。クライアント20はユーザからの操作をタッチパネル、コントローラ、マウス、キーボード等で受け付ける。情報処理装置は、スマートフォンなどの携帯電話機、携帯ゲーム機、パーソナルコンピュータ、タブレット端末、家庭用ゲーム装置、業務用ゲーム装置等である。
【0023】
サーバ30は、ユーザの操作に基づき、水面における波の描画に関する処理を実行する情報処理装置の一例である。なお、サーバ30はクラウドコンピュータにより実現してもよい。また、
図1に示したサーバ30の個数は、1つに限定されるものではなく、2つ以上で分散処理してもよい。さらに、
図1の情報処理システム10の機能を一台のクライアント20で実現するようにしてもよい。つまり、クライアント20がユーザからの操作を受け付け、水面における波の描画に関する処理を実行するようにしてもよい。
【0024】
図5は、クライアント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)などのストレージである。
【0025】
通信装置123は、通信を制御するネットワーク回路などの通信デバイスである。入力装置124は、タッチパッド、コントローラ、マウス、キーボード、カメラ、マイクなどの入力デバイスである。また、表示装置125はディスプレイ、スピーカなどの出力デバイスである。タッチパネルはタッチパッドとディスプレイとを組み合わせることで実現される。
【0026】
図6は、サーバ30のハードウェア構成の一例を示す図である。サーバ30は、CPU131、記憶装置132及び通信装置133を有する。CPU131は、サーバ30を制御する。記憶装置132は、例えばROMやRAMなどのメモリ、HDDやSSDなどのストレージである。通信装置133は、通信を制御するネットワークカードなどの通信デバイスである。
【0027】
図7はクライアント20の機能構成の一例を示す図である。クライアント20は、記憶部21、制御部22、操作部23、表示部24及び端末側通信部25を有する。記憶部21は、ユーザからの操作を受け付け、水面における波の描画に関する処理をサーバ30に実行させ、その結果を表示するプログラム、そのプログラムが利用するデータなどを記憶している。なお、記憶部21は記憶装置122により実現されてもよいし、ネットワーク40を介して接続された記憶装置により実現されてもよい。
【0028】
制御部22はクライアント20の全体の制御を行う。制御部22はCPU121がプログラムに記載された処理を実行することにより実現される。操作部23は入力装置124に対するプレイヤの各種操作を受け付ける。表示部24は表示装置125にUI画面などの画像を表示する。なお、操作部23はCPU121が入力装置124を制御することで実現される。また、表示部24は、CPU121が表示装置125を制御することで実現される。
【0029】
ここで入力装置124に対するプレイヤの各種操作とは、CPU121に処理を実行させるため、ユーザが操作部23を操る操作をいう。操作部23はユーザから各種操作を受け付ける。制御部22はユーザから受け付けた各種操作に基づき、水面における波の描画に関する処理をサーバ30に実行させる。表示部24は、例えばサーバ30に実行させた水面における波の描画に関する処理の結果を表示する。端末側通信部25は、サーバ30と通信する。端末側通信部25はCPU121がプログラムに従って通信装置123を制御することで実現される。
【0030】
図8は、サーバ30の機能構成の一例を示す図である。
図8のサーバ30は、記憶部31、サーバ制御部32及びサーバ側通信部33を有する。記憶部31は、波描画プログラム51などのプログラム、そのプログラムが利用するデータ、波描画データ52などを記憶している。波描画データ52は、初期状態特性情報56及び参照スペクトル情報57を含む。記憶部31は記憶装置132により実現されてもよいし、ネットワーク40を介して接続された記憶装置により実現されてもよい。
【0031】
サーバ制御部32は、サーバ30の全体の制御を行う。サーバ制御部32は、CPU131が波描画プログラム51などに記載された処理を実行することにより、領域設定部61、自由運動領域制御部62、制御領域制御部63、及び描画部64を実現する。
【0032】
領域設定部61は、
図3に示したように、描画範囲を自由運動領域1100として設定すると共に、自由運動領域1100の外側に制御領域1110を設定する。自由運動領域制御部62は、自由運動領域1100において波を物理的な運動方程式に従って運動させるように、自由運動領域1100の制御を行う。また、自由運動領域制御部62は自由運動領域1100に存在する波の運動エネルギーを減衰や反射などによって損失させるように制御を行う。さらに、自由運動領域制御部62は自由運動領域1100に存在する波のうち、運動により過度に減衰した波を削除するように制御する。
【0033】
制御領域制御部63は、制御領域1110において波を物理的な運動方程式に従って運動させるように、自由運動領域1100の制御を行うが、制御領域1110に存在する波の運動エネルギーを減衰や反射などによって損失させないように制御を行う。また、制御領域制御部63は制御領域1110が波の固定端としての機能を有するように制御を行うことで、波を反射させ、自由運動領域1100に送り返す。また、制御領域制御部63は自由運動領域1100において波が削除された場合、自由運動領域1100で削除された波の初期状態の特性を持った新しい波を制御領域1110に発生させる。自由運動領域1100で削除された波の初期状態の特性は、記憶部31の初期状態特性情報56から読み出すことができる。
【0034】
さらに、制御領域制御部63は制御領域1110に存在する波に対し、自由運動領域1100で損失した運動エネルギーを、波の運動エネルギーの参照スペクトルから補填するように制御する。波の運動エネルギーの参照スペクトルは、記憶部31の参照スペクトル情報57から読み出すことができる。
【0035】
具体的に、制御領域制御部63は自由運動領域1100の波の運動エネルギーのスペクトルと参照スペクトルとを比較し、スペクトルがずれていた場合に、そのずれを補填するようなエネルギー注入(波高の増強)を、制御領域1110の波に対して行う。また、制御領域制御部63は、例えば、ある周波数におけるスペクトル強度の差分として得られるエネルギーを、その周波数に近い周波数を持つ制御領域1110の波に対して、ある一定の倍率(変化率)を付けながら加算していくなどの補填計算を行う。描画部64は自由運動領域1100の水面における波を描画した画像データを生成する。
【0036】
また、サーバ側通信部33はクライアント20と通信する。サーバ側通信部33はCPU131がサーバプログラムを実行し、サーバプログラムに従って通信装置133を制御することで実現される。描画部64により生成された画像データは、クライアント20に送信される。これにより、クライアント20は水面における波を描画した画像データを表示できる。
【0037】
[水面における波の描画に関する処理]
サーバ30では、例えば
図9に示すような手順で水面における波の描画に関する処理を行う。
図9は、水面における波の描画に関する処理手順の一例を示したフローチャートである。
【0038】
サーバ30の領域設定部61は、
図3に示したように、描画範囲を自由運動領域1100として設定する(S10)。なお、設定される自由運動領域1100は描画範囲全体でなくてもよく、描画範囲のうち、ユーザに注目される特定範囲であってもよい。
【0039】
続いて、サーバ30の領域設定部61は、
図3に示したように、自由運動領域1100の外側に制御領域1110を設定する(S12)。続いて、サーバ30の自由運動領域制御部62及び制御領域制御部63は初期状態特性情報56を参照し、初期状態の特性を持つ波を発生させるように制御を行う(S14)。
【0040】
この後、自由運動領域制御部62は、自由運動領域1100に存在する波の運動制御を行う。また、制御領域制御部63は制御領域1110に存在する波の運動制御を行う(S16)。自由運動領域制御部62は自由運動領域1100に存在する波のうち、運動により過度に減衰した削除すべき波があるか判定する(S18)。
【0041】
自由運動領域1100に削除すべき波があれば(S18においてYES)、自由運動領域制御部62は削除すべき波を自由運動領域1100から削除する。また、制御領域制御部63は初期状態特性情報56を参照し、自由運動領域1100で削除された波の初期状態の特性を持った新しい波を制御領域1110に発生させる(S20)。なお、自由運動領域1100に削除すべき波がなければ(S18においてNO)、ステップS20の処理はスキップされる。
【0042】
また、制御領域制御部63は、制御領域1110に運動エネルギーを補填すべき波があるか判定する(S22)。運動エネルギーを補填すべき波があれば(S22においてYES)、制御領域制御部63は制御領域1110に存在する波に対し、自由運動領域1100で損失した運動エネルギーを、波の運動エネルギーの参照スペクトルから補填するように制御する(S24)。なお、運動エネルギーを補填すべき波がなければ(S22においてNO)、ステップS24の処理はスキップされる。ステップS16~S24の処理は水面における波の描画が終了するまで繰り返し実行される。
【0043】
このように、本実施形態では描画範囲又はユーザに注目される特定範囲の外側に、参照スペクトルを持った波の熱浴としての機能を有する制御領域1110を設け、制御領域1110で波のずれを補正することで、自由運動領域1100に自然な波を描画できる。
【0044】
[他の実施形態]
図3では、一つの制御領域1110を設定したが、例えば
図10に示すように、異なる参照スペクトルから、損失した運動エネルギーを補填するように運動エネルギーを供給する複数の制御領域1110を設定するようにしてもよい。
図10のように複数の異なる制御領域1110を設定することで、制御領域制御部63は異方的な運動エネルギーの注入を行い、等方的ではない波の流れを再現する応用も可能である。
【0045】
開示した一実施形態の情報処理システム10、クライアント20及びサーバ30は例示であって制限的なものではないと考えられるべきである。上記の実施形態は添付の請求の範囲及びその主旨を逸脱することなく、様々な形態で変形及び改良が可能である。また、上記した複数の実施形態に記載された事項は、矛盾しない範囲で他の構成も取り得ることができ、また、矛盾しない範囲で組み合わせることができる。
【符号の説明】
【0046】
10 情報処理システム
20 クライアント
21 記憶部
22 制御部
23 操作部
24 表示部
25 端末側通信部
30 サーバ
31 記憶部
32 サーバ制御部
33 サーバ側通信部
40 ネットワーク
51 波描画プログラム
52 波描画データ
56 初期状態特性情報
57 参照スペクトル情報
61 領域設定部
62 自由運動領域制御部
63 制御領域制御部
64 描画部
1100 自由運動領域
1110 制御領域