(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023128691
(43)【公開日】2023-09-14
(54)【発明の名称】情報処理装置、描画方法及びプログラム
(51)【国際特許分類】
G06T 13/60 20110101AFI20230907BHJP
G01C 13/00 20060101ALI20230907BHJP
【FI】
G06T13/60
G01C13/00 W
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022033225
(22)【出願日】2022-03-04
(71)【出願人】
【識別番号】595000427
【氏名又は名称】株式会社コーエーテクモゲームス
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】畑 智行
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050BA08
5B050BA09
5B050BA13
5B050DA10
5B050EA07
5B050EA12
5B050EA24
5B050EA27
5B050EA28
5B050FA02
(57)【要約】
【課題】沿岸部におけるリアルな水面又は液面の画像を描画できる新たな仕組みを提供すること。
【解決手段】水面又は液面を含む画像を描画する情報処理装置であって、水面又は液面に対応したオブジェクトの複数の水平面位置の波高を算出するように構成された波高算出部と、算出した複数の水平面位置の波高に基づいて形状が変化するオブジェクトを描画するように構成された描画部と、を有し、波高算出部は、水深又は液深に起因して生じる波高変化及び砕波による波高変化に基づき、沿岸部における複数の水平面位置の波高を補正する処理を行うことを特徴とする情報処理装置が提供される。
【選択図】
図3
【特許請求の範囲】
【請求項1】
水面又は液面を含む画像を描画する情報処理装置であって、
前記水面又は液面に対応したオブジェクトの複数の水平面位置の波高を算出するように構成された波高算出部と、
算出した前記複数の水平面位置の波高に基づいて形状が変化する前記オブジェクトを描画するように構成された描画部と、
を有し、
前記波高算出部は、水深又は液深に起因して生じる波高変化及び砕波による波高変化に基づき、沿岸部における前記複数の水平面位置の波高を補正する処理を行うこと
を特徴とする情報処理装置。
【請求項2】
前記波高算出部は、前記波高を算出した前記水平面位置と、前記水平面位置における砕波限界との関係に基づき、前記水平面位置における砕波限界を超えた余剰波高をシフト幅として前記波高を算出した前記水平面位置から波の平均進行方向にシフトした他の水平面位置の地形高さを測定し、
前記波高を算出した前記水平面位置の地形高さと前記他の水平面位置の地形高さとの差を地形高さの差として算出し、
前記地形高さの差、前記余剰波高、及び前記水平面位置における砕波限界に基づいて前記水平面位置の波高を補正すること
を特徴とする請求項1記載の情報処理装置。
【請求項3】
前記波高算出部は、算出した前記水平面位置の波高が、波の生じていない状態の基準波高よりも低い位置である場合に、算出した前記水平面位置の波高が前記水平面位置の地面よりも低い位置とならないように、水深又は液深を考慮して前記水平面位置の波高を補正すること
を特徴とする請求項1又は2記載の情報処理装置。
【請求項4】
前記波高算出部は、前記水面又は液面に対応したオブジェクトの水平面位置(x、z)と時間とを引数として前記水平面位置(x、z)の波高を演算する複数の関数に基づいて、前記水平面位置(x、z)における重ね合わせ計算のあとの波高hを以下の式(1)により補正して波高h′とし、
波高h′が砕波限界Hを超えていた場合に、h′-Hをシフト幅として、前記水平面位置(x、z)から波の平均進行方向にシフトした水平面位置(x′、z′)の地形高さと前記水平面位置(x、z)の地形高さとの差を差dHとし、
以下の式(2)により計算した波高h″を前記水平面位置(x、z)の波高とし、
浅水係数Sを式(3)で計算し、
砕波限界Hを式(4)で計算する
請求項2又は3記載の情報処理装置。
【数1】
【請求項5】
前記波高算出部は、算出した前記水平面位置(x、z)の波高が、波の生じていない状態の基準波高よりも低い位置であることを示す負の値である場合に、算出した前記波高hを以下の式(5)により補正して波高h
sとし、(h
s+D
0)<0、かつD
0>D(Dは、しきい深さ)のとき、以下の式(6)により前記水平面位置(x、z)の波高を補正する
請求項4記載の情報処理装置。
【数2】
【請求項6】
水面又は液面を含む画像を描画する情報処理装置の描画方法であって、
前記水面又は液面に対応したオブジェクトの複数の水平面位置の波高を算出するステップと、
算出した前記複数の水平面位置の波高に基づいて形状が変化する前記オブジェクトを描画するステップと、
を有し、
前記算出するステップは、水深又は液深に起因して生じる波高変化及び砕波による波高変化に基づき、沿岸部における前記複数の水平面位置の波高を補正する処理を行うこと
を特徴とする描画方法。
【請求項7】
水面又は液面を含む画像を描画する情報処理装置に、
前記水面又は液面に対応したオブジェクトの複数の水平面位置の波高を算出する手順、
算出した前記複数の水平面位置の波高に基づいて形状が変化する前記オブジェクトを描画する手順、
を実行させ、
前記算出する手順は、水深又は液深に起因して生じる波高変化及び砕波による波高変化に基づき、沿岸部における前記複数の水平面位置の波高を補正する処理を行うこと
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、描画方法及びプログラムに関する。
【背景技術】
【0002】
従来、仮想空間において仮想カメラから見える画像を生成する画像生成システムが知られている。例えば、海水面の画像を表示するゲームシステムでは、よりリアルな海水面の画像を表現することが望まれる。波の影響を受けて変化する沖合から波打ち際までの水面のリアルな画像を生成することを目的とする技術は、従来から知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
波によって生じる海水面の変化は、深海部と沿岸部とで異なる。具体的に、沿岸部の海水面で生じる波形は、水深が浅くなることに起因する波高の立ち上がりと砕波による砕けの影響を受ける。しかしながら、このような水深に起因して生じる波高変化及び砕波による波高変化の影響を反映したリアルな海水面の画像を描画できていなかった。
【0005】
本開示は、沿岸部におけるリアルな水面又は液面の画像を描画できる新たな仕組みを提供すること、を課題とする。
【課題を解決するための手段】
【0006】
本開示の一の態様によれば、水面又は液面を含む画像を描画する情報処理装置であって、前記水面又は液面に対応したオブジェクトの複数の水平面位置の波高を算出するように構成された波高算出部と、算出した前記複数の水平面位置の波高に基づいて形状が変化する前記オブジェクトを描画するように構成された描画部と、を有し、前記波高算出部は、水深又は液深に起因して生じる波高変化及び砕波による波高変化に基づき、沿岸部における前記複数の水平面位置の波高を補正する処理を行うことを特徴とする情報処理装置が提供される。
【発明の効果】
【0007】
一の側面によれば、沿岸部におけるリアルな水面又は液面の画像を描画できる新たな仕組みを提供できる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る情報処理システムの一例の構成図である。
【
図2】本実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【
図3】情報処理装置の機能構成の一例を示す図である。
【
図4】海水面オブジェクトの形状を変化させる処理の一例のフローチャートである。
【
図5】水平面位置の波高、地形高さ、及び水深の一例の説明図である。
【
図6】波高の第1の補正処理の一例のフローチャートである。
【
図7】波高の第2の補正処理の一例のフローチャートである。
【発明を実施するための形態】
【0009】
以下、本開示を実施するための形態について図面を参照して説明する。
【0010】
[第1の実施形態]
[システム構成]
まず、一実施形態に係るシステム構成について
図1を参照して説明する。
図1は本実施形態に係る情報処理システムの一例の構成図である。一実施形態に係る情報処理システムは例えば
図1(A)又は
図1(B)に示すように構成される。
図1(A)は、情報処理装置10により構成される情報処理システムの一例である。
図1(B)は、情報処理装置10とサーバ装置14とがネットワーク18を介して通信可能に接続された構成の情報処理システムの一例である。
【0011】
図1(A)の情報処理装置10はユーザが操作するコンピュータである。
図1(A)の情報処理装置10は、ユーザからの操作をタッチパネル、コントローラ、キーボード、又はマウス等で受け付けて、操作に応じた情報処理を実行し、実行結果を表示する。
【0012】
また、
図1(B)の情報処理装置10及びサーバ装置14は、
図1(A)と同様なコンピュータである。サーバ装置14は情報処理装置10との間でデータを送受信し、情報処理装置10がユーザから受け付けた操作に応じた情報処理を実行し、実行結果を情報処理装置10に提供する。情報処理装置10はサーバ装置14から提供された実行結果を表示する。
【0013】
サーバ装置14はクラウドコンピュータにより実現してもよい。なお、
図1(B)に示したサーバ装置14の個数は、1つに限定されるものではなく、2つ以上で分散処理してもよい。サーバ装置14は情報処理装置10へのプログラム(アプリケーション)などのダウンロード処理、ユーザのログイン処理、又は各種データベースを管理する処理、などに利用してもよい。なお、
図1のシステム構成は一例である。
【0014】
図1に示した情報処理システムは、水面又は液面を含む画像を描画するゲームシステム、描画システム、ソーシャルネットワーキングサービスシステムなど、水面又は液面を含む画像を描画する様々な情報処理システムに適用可能である。
【0015】
[ハードウェア構成]
本実施形態に係る情報処理装置10は、例えば
図2に示すように構成される。サーバ装置14の構成は情報処理装置10と同様であるため、説明を省略する。
図2は本実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【0016】
図2の情報処理装置10は、例えばCPU(Central Processing Unit)100、記憶装置102、通信装置104、入力装置106、及び出力装置108を有する。CPU100はプログラムに従って情報処理装置10を制御する。記憶装置102は、例えばROM(Read Only Memory)やRAM(Random Access Memory)などのメモリ、HDD(Hard Disk Drive)やSSD(Solid State Drive)などのストレージである。記憶装置102はCPU100で実行するプログラム及びデータを記憶する。
【0017】
通信装置104は、通信を制御するネットワーク回路などの通信デバイスである。入力装置106は、タッチパッド、コントローラ、マウス、キーボード、カメラ、マイクなどの入力デバイスである。また、出力装置108はディスプレイ、スピーカなどの出力デバイスである。タッチパネルは入力装置106の一例であるタッチパッドと出力装置108の一例であるディスプレイとを組み合わせることで実現される。
図2のハードウェア構成は一例である。例えば情報処理装置10は、スマートフォン、携帯ゲーム機、パーソナルコンピュータ、ワークステーション、タブレット端末、家庭用ゲーム装置、業務用ゲーム装置等であってもよい。
【0018】
[機能構成]
以下では、
図1(A)に示した情報処理装置10が海水面を含む画像を描画する例を説明するが、
図1(A)に示した機能構成を
図1(B)に示した情報処理装置10とサーバ装置14とに分散して設け、情報処理装置10とサーバ装置14とが連携して処理を行うようにしてもよい。海水面は水面又は液面の一例である。
【0019】
図3は、情報処理装置の機能構成の一例を示す図である。
図3に示す情報処理装置10は、制御部20、操作受付部22、出力制御部24、通信部26、及び記憶部28を有する構成である。
【0020】
記憶部28は、プログラム40及びオブジェクト情報42を記憶する。プログラム40は海水面を含む画像の描画に関する処理を情報処理装置10に実行させる。オブジェクト情報42はプログラム40が利用するデータの一例であって、例えば海水面に対応した後述のオブジェクトのデータ等である。記憶部28は、記憶装置102により実現されてもよいし、通信部26により通信可能に接続された記憶装置により実現されてもよい。
【0021】
制御部20は情報処理装置10の全体の制御を行う。制御部20はCPU100がプログラム40に記載された処理を実行することにより実現される。
図3の制御部20は、仮想空間設定部50、波高算出部52、描画部54を有する構成である。
【0022】
仮想空間設定部50は、海水面などの表示物を表すオブジェクトを仮想空間に設定して配置する処理を行う。本実施形態では、海水面に対応したオブジェクトの位置や回転角度が調整されて、仮想空間に配置される。なお、以下では、海水面に対応したオブジェクトが仮想空間に配置された例を説明するが、キャラクタや建物などの海水面以外の表示物が配置されてもよい。キャラクタなどの移動や動作を行う表示物のオブジェクトは、例えば1フレームごとに移動情報や動作情報を求める処理を行い、仮想空間内を移動したり仮想空間内で動作を行ったりする。
【0023】
波高算出部52は、海水面に対応したオブジェクト(以下、単に海水面オブジェクトと呼ぶ)について、海水面オブジェクトの複数の構成点(海水面オブジェクトの複数の水平面位置)の波高を、1フレームごとに算出する。なお、海水面オブジェクトの複数の水平面位置は、ある水平面の複数の格子点(グリッド)などである。波高算出部52は、水深に起因して生じる波高変化及び砕波による波高変化に基づき、海水面オブジェクトの沿岸部における水平面位置の波高を、後述のように調整する。波高算出部52は時間経過により変化する海水面オブジェクトの複数の水平面位置の高さを算出して、各フレームにおける海水面オブジェクトの形状を変化させる。なお、波高算出部52の処理の詳細ついては後述する。
【0024】
描画部54は、波高算出部52が算出した複数の水平面位置の波高に基づいて形状が変化する海水面オブジェクトを、仮想カメラから見た画像として描画する。描画部54は波形の勾配を、浅水係数を利用して単純なスケールを行って描画してもよい。
【0025】
操作受付部22は入力装置106に対するユーザの各種操作を受け付ける。出力制御部24は制御部20の制御に従って各種画面を出力装置108に表示する。操作受付部22はCPU100がプログラム40に従って入力装置106を制御することにより実現される。また、出力制御部24は、CPU100がプログラム40に従って出力装置108を制御することにより実現される。入力装置106に対するユーザの各種操作とは、CPU100に処理を実行させるため、ユーザが操作受付部22を操る操作をいう。出力制御部24は、制御部200の制御に従い、各種画面の表示と音の出力とを行う。
【0026】
通信部26は、ネットワーク18等を介して通信する。通信部26はCPU100がプログラム40を実行し、通信装置104を制御することにより実現される。
【0027】
[処理]
情報処理装置10は、例えば
図4に示すような手順で、海水面オブジェクトの沿岸部における水平面位置の波高を算出し、海水面オブジェクトの形状を変化させる。
図4は、海水面オブジェクトの形状を変化させる処理の一例のフローチャートである。
【0028】
ステップS100において、情報処理装置10の仮想空間設定部50は描画対象となるフレームの時刻を設定し、その時刻の仮想空間に配置されている海水面オブジェクトを選択する。海水面オブジェクトには、波のある水面を表現するために高さを変化させる複数の構成点が水平面に格子状となるように配置されている。海水面オブジェクトの複数の構成点は、海水面オブジェクトの水平面位置を表している。
【0029】
ステップS102において、波高算出部52は海水面オブジェクトの水平面位置を1つ選択する。ステップS104において、波高算出部52はステップS102で選択した水平面位置の波高h、地形高さ、及び水深を算出する。波高hは、例えば複数の関数による波高の重ね合わせ計算により算出できる。関数は、例えば海水面に対応したオブジェクトの水平面位置(x、z)と時間とを引数として波高を演算する。
【0030】
図5は水平面位置の波高、地形高さ、及び水深の一例の説明図である。
図5では波の生じていない状態の海水面を基準波高と記載している。波が生じている海水面は波の影響を受けて波高が変化する。例えば
図5の水平面位置aにおける波高h
aは、基準波高の海水面よりも高い位置の波高を表している。水平面位置bにおける波高h
bは、基準波高の海水面よりも低い位置の波高を表している。水深は基準波高の海水面から海底である地面までの垂直距離である。基準波高及び地面は例えば標高などの地形高さにより表すことができる。波高は基準波高の海水面を基準とした波の高さである。
【0031】
図4に戻り、ステップS106において、波高算出部52はステップS102で選択した水平面位置の浅水係数S、砕波限界Hを算出する。浅水係数Sの算出は、例えば以下の式(3)により算出できる。また、砕波限界Hの算出は、例えば以下の式(4)により算出できる。浅水係数Sは浅水変形を表す係数である。浅水変形とは、水深変化による波形の変化を表す。浅水係数Sは、水深が浅くなるほど大きくなる。砕波限界Hは水深に対応する砕波限界波高である。砕波限界Hは、水深が浅くなるほど小さくなる。沿岸部において波は、波高hが砕波限界Hを超えると砕けて、波高が小さくなる。
【数1】
【0032】
ステップS108に進み、波高算出部52はステップS104で算出した波高hが正であるか否かを判定する。波高hが正であれば、波高算出部52はステップS110の処理を行う。ステップS110において波高算出部52は、基準波高の海水面よりも高い位置の波高に対応した第1の補正処理を行う。ステップS110の処理の詳細は後述する。
【0033】
波高hが正でなければ、波高算出部52はステップS112の処理を行う。ステップS112において波高算出部52は、基準波高の海水面よりも低い位置の波高に対応した第2の補正処理を行う。ステップS112の処理の詳細は後述する。
【0034】
ステップS110又はステップS112に続いてステップS114の処理に進み、波高算出部52は全ての水平面位置を処理済みであるか否かを判定する。処理済みでなければ波高算出部52はステップS102の処理に戻り、未処理の水平面位置を1つ選択してステップS104~S114の処理を行う。
【0035】
また、処理済みであれば波高算出部52はステップS116の処理に進む。ステップS116において仮想空間設定部50は描画対象となる次のフレームがあればステップS100に戻り、処理を続ける。描画対象となる次のフレームがなければ仮想空間設定部50は
図4の処理を終了する。
【0036】
図6は波高の第1の補正処理の一例のフローチャートである。ステップS200において波高算出部52は
図4のステップS104で算出した波高hを以下の式(1)により波高h′に補正する。浅水係数Sは水深が浅くなるほど小さくなる。このため、補正される波高h′は水深が浅いほど大きくなる。
【数2】
【0037】
式(1)の波峰係数Cは、波高の重ね合わせ計算の際、その位相をπ/2ずらしたものについても計算しておき、波の峰部分を判定する係数である。補正強度係数Aは補正強度を示すユーザパラメータである。
【0038】
ステップS202において波高算出部52は波高h′が砕波限界Hを超えているか否かを判定する。波高h′が砕波限界Hを超えていなければ、波高算出部52はステップS204~S208の処理をスキップして、
図6のフローチャートの処理を終了する。
【0039】
波高h′が砕波限界Hを超えていれば、波高算出部52はステップS204の処理に進む。ステップS204において、波高算出部52は波高h′-砕波限界Hをシフト幅として、ステップS102で選択した水平面位置(x、z)から波の平均進行方向にシフトした水平面位置(x′、z′)の地形高さを測定する。
【0040】
ステップS206において、波高算出部52は水平面位置(x、z)の地形高さと水平面位置(x′、z′)の地形高さとの差dHを算出する。ステップS208において、波高算出部52はステップS200で算出した波高h′を以下の式(2)により波高h″に補正する。補正した波高h″は砕波限界Hの2倍を超えない範囲内にスケールした余剰波高と差dHとに基づいて算出される。
【数3】
【0041】
このように、本実施形態に係る情報処理装置10は、波高h′が砕波限界Hを超えている場合、補正した波高h″をステップS102で選択した水平面位置(x、z)の描画に利用する。本実施形態に係る情報処理装置10は、波高h′が砕波限界Hを超えていない場合、波高h′をステップS102で選択した水平面位置(x、z)の描画に利用する。
【0042】
図7は波高の第2の補正処理の一例のフローチャートである。ステップS300において波高算出部52は、
図4のステップS104で算出した波高hが基準波高の海水面よりも低い位置にあるため、波が地面にもぐりこむ現象を回避するために、以下の式(5)により波高h
sに補正する。式(5)はステップS104で算出した波高hを浅水係数Sで除算するものである。
【数4】
【0043】
波高算出部52はユーザパラメータD(しきい深さ)と、水平面位置(x、z)の水深である基準水深D
0と、を利用して、(h
s+D
0)<0、かつD
0>Dであるか否かを満たしているか否かを判定する。満たしていると判定すると、波高算出部52はステップS304の処理を行う。ステップS304において、波高算出部52は以下の式(6)により波高h
sを補正する。補正強度係数Bは補正強度を示すユーザパラメータである。
【数5】
【0044】
開示した一実施形態の情報処理装置10、サーバ装置14は例示であって制限的なものではないと考えられるべきである。上記の実施形態は添付の請求の範囲及びその主旨を逸脱することなく、様々な形態で変形及び改良が可能である。また、上記した複数の実施形態に記載された事項は、矛盾しない範囲で他の構成も取り得ることができ、また、矛盾しない範囲で組み合わせることができる。なお、上記した水深は、液面を含む画像を描画する場合に、液深に置き換えられる。
【符号の説明】
【0045】
10 情報処理装置
14 サーバ装置
18 ネットワーク
20 制御部
50 仮想空間設定部
52 波高算出部
54 描画部