(57)【要約】【課題】水面における自然な波を描画できる新たな仕組みを提供する。【解決手段】水面における波を描画する情報処理装置であって、描画範囲である第１水面領域、及び描画範囲の外側に設けられる第２水面領域を設定する水面領域設定部と、第１水面領域において波を物理的な運動方程式に従って運動させるように制御を行う第１水面領域制御部と、第２水面領域において波を物理的な運動方程式に従って運動させ、運動により損失した波の運動エネルギーを補填するように制御を行うと共に、波を反射させるように制御を行う第２水面領域制御部と、第１水面領域を描画する描画部と、を有する情報処理装置が提供される。【選択図】図３
2020184210.tif 000002
【特許請求の範囲】
【請求項１】
水面における波を描画する情報処理装置であって、
描画範囲である第１水面領域、及び前記描画範囲の外側に設けられる第２水面領域を設定する水面領域設定部と、
前記第１水面領域において波を物理的な運動方程式に従って運動させるように制御を行う第１水面領域制御部と、
前記第２水面領域において波を物理的な運動方程式に従って運動させ、前記運動により損失した波の運動エネルギーを補填するように制御を行うと共に、前記波を反射させるように制御を行う第２水面領域制御部と、
前記第１水面領域を描画する描画部と、
を有する情報処理装置。
【請求項２】
前記第２水面領域制御部は、波の運動エネルギーの参照スペクトルと前記第１水面領域の波の運動エネルギーのスペクトルとを比較し、差分を補填するように運動エネルギーを波に注入すること
を特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第２水面領域制御部は、前記第２水面領域を複数の領域に分け、分けられた前記領域ごとに異なる前記参照スペクトルを設けること
を特徴とする請求項２記載の情報処理装置。
【請求項４】
前記第１水面領域制御部は、前記運動により所定の運動エネルギーまで減衰した波を前記第１水面領域で削除し、
前記第２水面領域制御部は、前記第１水面領域制御部が前記第１水面領域で削除した波の初期状態の特性を持った波を、前記第２水面領域に発生させること
を特徴とする請求項１乃至３何れか一項記載の情報処理装置。
【請求項５】
水面における波を描画する情報処理装置が、
描画範囲である第１水面領域、及び前記描画範囲の外側に設けられる第２水面領域を設定する水面領域設定ステップと、
前記第１水面領域において波を物理的な運動方程式に従って運動させるように制御を行う第１水面領域制御ステップと、
前記第２水面領域において波を物理的な運動方程式に従って運動させ、前記運動により損失した波の運動エネルギーを補填するように制御を行うと共に、前記波を反射させるように制御を行う第２水面領域制御ステップと、
前記第１水面領域を描画する描画ステップと、
を有する情報処理方法。
【請求項６】
水面における波を描画する情報処理装置を、
描画範囲である第１水面領域、及び前記描画範囲の外側に設けられる第２水面領域を設定する水面領域設定部、
前記第１水面領域において波を物理的な運動方程式に従って運動させるように制御を行う第１水面領域制御部、
前記第２水面領域において波を物理的な運動方程式に従って運動させ、前記運動により損失した波の運動エネルギーを補填するように制御を行うと共に、前記波を反射させるように制御を行う第２水面領域制御部、
前記第１水面領域を描画する描画部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
例えば、波の影響を受けて変化する沖合から波打ち際までの水面のリアルな画像を生成する技術は、従来から知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１６４７２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
海の波に関し、沖合ではある特定のエネルギースペクトル、ないしは周波数スペクトルを持つことが観測されている。したがって、海の波の描画については、これらのスペクトルを再現することが望ましい。例えば、これらのスペクトルをフーリエ変換して周期的な波高変化に落とし込む手法が提案されている。しかしながら、フーリエ変換を用いた手法は、長時間の波の描画において波形の周期性や等方性が目立ち、自然な波を描画できないという問題があった。
【０００５】
本開示は、水面における自然な波を描画できる新たな仕組みを提供すること、を課題とする。
【課題を解決するための手段】
【０００６】
本開示の一の態様によれば、水面における波を描画する情報処理装置であって、描画範囲である第１水面領域、及び前記描画範囲の外側に設けられる第２水面領域を設定する水面領域設定部と、前記第１水面領域において波を物理的な運動方程式に従って運動させるように制御を行う第１水面領域制御部と、前記第２水面領域において波を物理的な運動方程式に従って運動させ、前記運動により損失した波の運動エネルギーを補填するように制御を行うと共に、前記波を反射させるように制御を行う第２水面領域制御部と、前記第１水面領域を描画する描画部と、を有する情報処理装置が提供される。
【発明の効果】
【０００７】
一の側面によれば、水面における自然な波を描画可能な新たな仕組みを提供できる。
【図面の簡単な説明】
【０００８】
【図１】熱浴法の一例について説明する図である。
【図２】減衰や反射などにより失っていく運動エネルギーを補填する方法の一例について説明する図である。
【図３】本実施形態に係る波の描画方法の一例について説明する図である。
【図４】一実施形態に係る情報処理システムの一例を示す図である。
【図５】クライアントのハードウェア構成の一例を示す図である。
【図６】サーバのハードウェア構成の一例を示す図である。
【図７】クライアントの機能構成の一例を示す図である。
【図８】サーバの機能構成の一例を示す図である。
【図９】水面における波の描画に関する処理手順の一例を示したフローチャートである。
【図１０】本実施形態に係る波の描画方法の他の例について説明する図である。
【発明を実施するための形態】
【０００９】
以下、本開示を実施するための形態について図面を参照して説明する。
【００１０】
［概要］
本実施形態では、図１に示すような熱浴法を利用する。図１は熱浴法の一例について説明する図である。熱浴法とは、空気中で運動するある粒子群を一定温度に保つための方法である。温度は粒子の運動エネルギーと相関している。ある温度の粒子群は、対応した運動エネルギースペクトルを持つ。そのため、ある温度の粒子群系をシミュレーションしたい場合、図１（Ａ）に示すように、初期の運動エネルギーを、対応したスペクトルに合わせて設定することが考えられる。
【００１１】
しかしながら、このまま粒子群を運動させると粒子間の相互作用などを介して運動エネルギーの一部が図１（Ｂ）に示すようにポテンシャルエネルギーに変化するため、スペクトルが崩れ、温度が変化してしまう。この問題に対処するため、図１（Ｃ）に示すように参照スペクトルを持った仮想粒子で構成された熱浴を考え、その仮想粒子と擬似的なエネルギー交換を行うことで、運動エネルギーのスペクトルを維持する手法が各種熱浴法として考案された。本実施形態では、このような熱浴法を海の波へ適用する。海の波は水面における波の一例である。
【００１２】
海の波に関し、沖合ではある特定のエネルギースペクトル、ないしは周波数スペクトルを持つことが観測されている。したがって、海の波の描画については、これらのスペクトルを再現することが望ましい。例えば、初期状態として特定のスペクトルを再現するように局在波群を生成したとして、局在波群は物理的な運動方程式に従ってリアルタイムに運動し、減衰や反射などにより運動エネルギーを失っていく。
【００１３】
失っていく運動エネルギーを補填する方法としては、例えば図２に示すように、ある波源１０００からスペクトルに則った波を、一定の時間間隔で発生させるような方法が考えられるが、波源１０００の場所や発生間隔など、決定の難しいパラメータも多く、手法が確立していない。図２は減衰や反射などにより失っていく運動エネルギーを補填する方法の一例について説明する図である。
【００１４】
そこで、本実施形態では初期状態として特定のスペクトルを再現するように生成した局在波群の維持とスペクトルの維持とを両立させる図３のような方法を利用する。図３は本実施形態に係る波の描画方法の一例について説明する図である。
【００１５】
図３に示すように、描画範囲を自由運動領域１１００と設定する。なお、図３は一例であって、例えば描画範囲のうち、ゲームプレイ中に注目される特定範囲など、ユーザに注目される特定範囲を自由運動領域１１００と設定してもよい。自由運動領域１１００では波を物理的な運動方程式に従って運動させるように、減衰や反射などの制御を行う。
【００１６】
また、自由運動領域１１００の外側には制御領域１１１０を設定する。制御領域１１１０は波の固定端としての機能を有し、波を反射させ、自由運動領域１１００に送り返すことができる。これにより、本実施形態では初期状態として特定のスペクトルを再現するように生成した局在波群の波の数及び波の特性を維持しやすくしている。
【００１７】
また、自由運動領域１１００で運動により過度に減衰した波（所定の運動エネルギーまで減衰した波）は、一般的な局在波シミュレーションと同様に削除する。自由運動領域１１００で波が削除された場合、制御領域１１１０は自由運動領域１１００で削除された波の初期状態の特性を持った新しい波を発生させる。
【００１８】
また、制御領域１１１０では波を物理的な運動方程式に従って運動させるが、減衰や反射などによって運動エネルギーが損失しない。なお、自由運動領域１１００では減衰や反射などによって運動エネルギーが損失する。
【００１９】
また、制御領域１１１０に存在する波は、波の運動エネルギーの参照スペクトル（維持したいスペクトル）から、損失した運動エネルギーを補填するように運動エネルギーを供給される。具体的に、本実施形態では自由運動領域１１００の波の運動エネルギーのスペクトルと参照スペクトルとを比較し、スペクトルがずれていた場合に、そのずれを補填するようなエネルギー注入（波高の増強）を、制御領域１１１０の波に対して行う。
【００２０】
このように、本実施形態では描画範囲又はユーザに注目される特定範囲の外側に、参照スペクトルを持った波の熱浴としての機能を有する制御領域１１１０を設け、制御領域１１１０で波のずれを補正することで、自由運動領域１１００に自然な波を描画できる。
【００２１】
［情報処理システム］
本実施形態に係る情報処理システム１０について図４を参照して説明する。情報処理システム１０は、クライアント２０とサーバ３０とがネットワーク４０を介して通信可能に接続された構成である。
【００２２】
クライアント２０はユーザが操作する情報処理装置の一例である。ユーザはクライアント２０を操作し、水面における波の描画に関する処理をサーバ３０に実行させる。クライアント２０はユーザからの操作をタッチパネル、コントローラ、マウス、キーボード等で受け付ける。情報処理装置は、スマートフォンなどの携帯電話機、携帯ゲーム機、パーソナルコンピュータ、タブレット端末、家庭用ゲーム装置、業務用ゲーム装置等である。
【００２３】
サーバ３０は、ユーザの操作に基づき、水面における波の描画に関する処理を実行する情報処理装置の一例である。なお、サーバ３０はクラウドコンピュータにより実現してもよい。また、図１に示したサーバ３０の個数は、１つに限定されるものではなく、２つ以上で分散処理してもよい。さらに、図１の情報処理システム１０の機能を一台のクライアント２０で実現するようにしてもよい。つまり、クライアント２０がユーザからの操作を受け付け、水面における波の描画に関する処理を実行するようにしてもよい。
【００２４】
図５は、クライアント２０のハードウェア構成の一例を示す図である。クライアント２０は、ＣＰＵ（Central Processing Unit）１２１、記憶装置１２２、通信装置１２３、入力装置１２４及び表示装置１２５を有する。ＣＰＵ１２１は、クライアント２０を制御する。記憶装置１２２は、例えばＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などのメモリ、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などのストレージである。
【００２５】
通信装置１２３は、通信を制御するネットワーク回路などの通信デバイスである。入力装置１２４は、タッチパッド、コントローラ、マウス、キーボード、カメラ、マイクなどの入力デバイスである。また、表示装置１２５はディスプレイ、スピーカなどの出力デバイスである。タッチパネルはタッチパッドとディスプレイとを組み合わせることで実現される。
【００２６】
図６は、サーバ３０のハードウェア構成の一例を示す図である。サーバ３０は、ＣＰＵ１３１、記憶装置１３２及び通信装置１３３を有する。ＣＰＵ１３１は、サーバ３０を制御する。記憶装置１３２は、例えばＲＯＭやＲＡＭなどのメモリ、ＨＤＤやＳＳＤなどのストレージである。通信装置１３３は、通信を制御するネットワークカードなどの通信デバイスである。
【００２７】
図７はクライアント２０の機能構成の一例を示す図である。クライアント２０は、記憶部２１、制御部２２、操作部２３、表示部２４及び端末側通信部２５を有する。記憶部２１は、ユーザからの操作を受け付け、水面における波の描画に関する処理をサーバ３０に実行させ、その結果を表示するプログラム、そのプログラムが利用するデータなどを記憶している。なお、記憶部２１は記憶装置１２２により実現されてもよいし、ネットワーク４０を介して接続された記憶装置により実現されてもよい。
【００２８】
制御部２２はクライアント２０の全体の制御を行う。制御部２２はＣＰＵ１２１がプログラムに記載された処理を実行することにより実現される。操作部２３は入力装置１２４に対するプレイヤの各種操作を受け付ける。表示部２４は表示装置１２５にＵＩ画面などの画像を表示する。なお、操作部２３はＣＰＵ１２１が入力装置１２４を制御することで実現される。また、表示部２４は、ＣＰＵ１２１が表示装置１２５を制御することで実現される。
【００２９】
ここで入力装置１２４に対するプレイヤの各種操作とは、ＣＰＵ１２１に処理を実行させるため、ユーザが操作部２３を操る操作をいう。操作部２３はユーザから各種操作を受け付ける。制御部２２はユーザから受け付けた各種操作に基づき、水面における波の描画に関する処理をサーバ３０に実行させる。表示部２４は、例えばサーバ３０に実行させた水面における波の描画に関する処理の結果を表示する。端末側通信部２５は、サーバ３０と通信する。端末側通信部２５はＣＰＵ１２１がプログラムに従って通信装置１２３を制御することで実現される。
【００３０】
図８は、サーバ３０の機能構成の一例を示す図である。図８のサーバ３０は、記憶部３１、サーバ制御部３２及びサーバ側通信部３３を有する。記憶部３１は、波描画プログラム５１などのプログラム、そのプログラムが利用するデータ、波描画データ５２などを記憶している。波描画データ５２は、初期状態特性情報５６及び参照スペクトル情報５７を含む。記憶部３１は記憶装置１３２により実現されてもよいし、ネットワーク４０を介して接続された記憶装置により実現されてもよい。
【００３１】
サーバ制御部３２は、サーバ３０の全体の制御を行う。サーバ制御部３２は、ＣＰＵ１３１が波描画プログラム５１などに記載された処理を実行することにより、領域設定部６１、自由運動領域制御部６２、制御領域制御部６３、及び描画部６４を実現する。
【００３２】
領域設定部６１は、図３に示したように、描画範囲を自由運動領域１１００として設定すると共に、自由運動領域１１００の外側に制御領域１１１０を設定する。自由運動領域制御部６２は、自由運動領域１１００において波を物理的な運動方程式に従って運動させるように、自由運動領域１１００の制御を行う。また、自由運動領域制御部６２は自由運動領域１１００に存在する波の運動エネルギーを減衰や反射などによって損失させるように制御を行う。さらに、自由運動領域制御部６２は自由運動領域１１００に存在する波のうち、運動により過度に減衰した波を削除するように制御する。
【００３３】
制御領域制御部６３は、制御領域１１１０において波を物理的な運動方程式に従って運動させるように、自由運動領域１１００の制御を行うが、制御領域１１１０に存在する波の運動エネルギーを減衰や反射などによって損失させないように制御を行う。また、制御領域制御部６３は制御領域１１１０が波の固定端としての機能を有するように制御を行うことで、波を反射させ、自由運動領域１１００に送り返す。また、制御領域制御部６３は自由運動領域１１００において波が削除された場合、自由運動領域１１００で削除された波の初期状態の特性を持った新しい波を制御領域１１１０に発生させる。自由運動領域１１００で削除された波の初期状態の特性は、記憶部３１の初期状態特性情報５６から読み出すことができる。
【００３４】
さらに、制御領域制御部６３は制御領域１１１０に存在する波に対し、自由運動領域１１００で損失した運動エネルギーを、波の運動エネルギーの参照スペクトルから補填するように制御する。波の運動エネルギーの参照スペクトルは、記憶部３１の参照スペクトル情報５７から読み出すことができる。
【００３５】
具体的に、制御領域制御部６３は自由運動領域１１００の波の運動エネルギーのスペクトルと参照スペクトルとを比較し、スペクトルがずれていた場合に、そのずれを補填するようなエネルギー注入（波高の増強）を、制御領域１１１０の波に対して行う。また、制御領域制御部６３は、例えば、ある周波数におけるスペクトル強度の差分として得られるエネルギーを、その周波数に近い周波数を持つ制御領域１１１０の波に対して、ある一定の倍率（変化率）を付けながら加算していくなどの補填計算を行う。描画部６４は自由運動領域１１００の水面における波を描画した画像データを生成する。
【００３６】
また、サーバ側通信部３３はクライアント２０と通信する。サーバ側通信部３３はＣＰＵ１３１がサーバプログラムを実行し、サーバプログラムに従って通信装置１３３を制御することで実現される。描画部６４により生成された画像データは、クライアント２０に送信される。これにより、クライアント２０は水面における波を描画した画像データを表示できる。
【００３７】
[水面における波の描画に関する処理]
サーバ３０では、例えば図９に示すような手順で水面における波の描画に関する処理を行う。図９は、水面における波の描画に関する処理手順の一例を示したフローチャートである。
【００３８】
サーバ３０の領域設定部６１は、図３に示したように、描画範囲を自由運動領域１１００として設定する（Ｓ１０）。なお、設定される自由運動領域１１００は描画範囲全体でなくてもよく、描画範囲のうち、ユーザに注目される特定範囲であってもよい。
【００３９】
続いて、サーバ３０の領域設定部６１は、図３に示したように、自由運動領域１１００の外側に制御領域１１１０を設定する（Ｓ１２）。続いて、サーバ３０の自由運動領域制御部６２及び制御領域制御部６３は初期状態特性情報５６を参照し、初期状態の特性を持つ波を発生させるように制御を行う（Ｓ１４）。
【００４０】
この後、自由運動領域制御部６２は、自由運動領域１１００に存在する波の運動制御を行う。また、制御領域制御部６３は制御領域１１１０に存在する波の運動制御を行う（Ｓ１６）。自由運動領域制御部６２は自由運動領域１１００に存在する波のうち、運動により過度に減衰した削除すべき波があるか判定する（Ｓ１８）。
【００４１】
自由運動領域１１００に削除すべき波があれば（Ｓ１８においてＹＥＳ）、自由運動領域制御部６２は削除すべき波を自由運動領域１１００から削除する。また、制御領域制御部６３は初期状態特性情報５６を参照し、自由運動領域１１００で削除された波の初期状態の特性を持った新しい波を制御領域１１１０に発生させる（Ｓ２０）。なお、自由運動領域１１００に削除すべき波がなければ（Ｓ１８においてＮＯ）、ステップＳ２０の処理はスキップされる。
【００４２】
また、制御領域制御部６３は、制御領域１１１０に運動エネルギーを補填すべき波があるか判定する（Ｓ２２）。運動エネルギーを補填すべき波があれば（Ｓ２２においてＹＥＳ）、制御領域制御部６３は制御領域１１１０に存在する波に対し、自由運動領域１１００で損失した運動エネルギーを、波の運動エネルギーの参照スペクトルから補填するように制御する（Ｓ２４）。なお、運動エネルギーを補填すべき波がなければ（Ｓ２２においてＮＯ）、ステップＳ２４の処理はスキップされる。ステップＳ１６〜Ｓ２４の処理は水面における波の描画が終了するまで繰り返し実行される。
【００４３】
このように、本実施形態では描画範囲又はユーザに注目される特定範囲の外側に、参照スペクトルを持った波の熱浴としての機能を有する制御領域１１１０を設け、制御領域１１１０で波のずれを補正することで、自由運動領域１１００に自然な波を描画できる。
【００４４】
［他の実施形態］
図３では、一つの制御領域１１１０を設定したが、例えば図１０に示すように、異なる参照スペクトルから、損失した運動エネルギーを補填するように運動エネルギーを供給する複数の制御領域１１１０を設定するようにしてもよい。図１０のように複数の異なる制御領域１１１０を設定することで、制御領域制御部６３は異方的な運動エネルギーの注入を行い、等方的ではない波の流れを再現する応用も可能である。
【００４５】
開示した一実施形態の情報処理システム１０、クライアント２０及びサーバ３０は例示であって制限的なものではないと考えられるべきである。上記の実施形態は添付の請求の範囲及びその主旨を逸脱することなく、様々な形態で変形及び改良が可能である。また、上記した複数の実施形態に記載された事項は、矛盾しない範囲で他の構成も取り得ることができ、また、矛盾しない範囲で組み合わせることができる。
【符号の説明】
【００４６】
１０    情報処理システム
２０    クライアント
２１    記憶部
２２    制御部
２３    操作部
２４    表示部
２５    端末側通信部
３０    サーバ
３１    記憶部
３２    サーバ制御部
３３    サーバ側通信部
４０    ネットワーク
５１    波描画プログラム
５２    波描画データ
５６    初期状態特性情報
５７    参照スペクトル情報
６１    領域設定部
６２    自由運動領域制御部
６３    制御領域制御部
６４    描画部
１１００    自由運動領域
１１１０    制御領域
【図１】
2020184210.tif 000003
【図２】
2020184210.tif 000004
【図３】
2020184210.tif 000005
【図４】
2020184210.tif 000006
【図５】
2020184210.tif 000007
【図６】
2020184210.tif 000008
【図７】
2020184210.tif 000009
【図８】
2020184210.tif 000010
【図９】
2020184210.tif 000011
【図１０】
2020184210.tif 000012