(57)【要約】【課題】メモリの使用量を低減するとともに、プロセッサの処理コストを低減しながらオブジェクトの最も低い位置を比較的高精度に判定すること。【解決手段】画像処理装置に、所定のオブジェクトの仮想３次元空間上の位置を移動させる操作を受け付けるステップと、前記所定のオブジェクトの最下部の高さが、所定の立体の表面の高さ以下である場合、前記仮想３次元空間上の水平面の位置に対応付けられた所定の高さ以上となる高さの範囲で前記所定のオブジェクトを移動可能とするステップと、前記仮想３次元空間上で、前記所定のオブジェクトを、他のオブジェクトの上に表示させるステップと、を実行させる。【選択図】図３
2019121236.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置に、
所定のオブジェクトの仮想３次元空間上の位置を移動させる操作を受け付けるステップと、
前記所定のオブジェクトの最下部の高さが、所定の立体の表面の高さ以下である場合、前記仮想３次元空間上の水平面の位置に対応付けられた所定の高さ以上となる高さの範囲で前記所定のオブジェクトを移動可能とするステップと、
前記仮想３次元空間上で、前記所定のオブジェクトを、他のオブジェクトの上に表示させるステップと、
を実行させるプログラム。
【請求項２】
前記所定の立体は、前記仮想３次元空間上に存在するオブジェクトの少なくとも一部に応じた、多面体、円錐、及び円柱の少なくとも１つである、
請求項１に記載のプログラム。
【請求項３】
前記移動可能とするステップは、
前記水平面の位置に対応付けて前記所定の高さが設定されている場合、前記所定の高さ以上となる高さの範囲で前記所定のオブジェクトを移動可能とし、
前記水平面の位置に対応付けて前記所定の高さが設定されていない場合、前記所定の立体の表面の高さ以上となる高さの範囲で前記所定のオブジェクトを移動可能とする、
請求項１または２に記載のプログラム。
【請求項４】
前記移動可能とするステップは、仮想的な重力に従って、前記所定のオブジェクトの高さを移動させる、
請求項１乃至３のいずれか一項に記載のプログラム。
【請求項５】
前記所定のオブジェクトの前記水平面の位置の移動に応じて、当該位置から所定範囲内に位置するオブジェクトの３次元データ、当該オブジェクトに応じた前記所定の立体の表面を示すデータ、及び前記所定の範囲内における前記所定の高さを示すデータをそれぞれメモリに読み込むステップをさらに実行させ、
前記移動可能とするステップは、前記所定の立体の表面を示すデータ、及び前記所定の高さを示すデータに基づいて、前記高さの範囲を決定する、
請求項１乃至４のいずれか一項に記載のプログラム。
【請求項６】
画像処理装置が、
所定のオブジェクトの仮想３次元空間上の位置を移動させる操作を受け付けるステップと、
前記所定のオブジェクトの最下部の高さが、所定の立体の表面の高さ以下である場合、前記仮想３次元空間上の水平面の位置に対応付けられた所定の高さ以上となる高さの範囲で前記所定のオブジェクトを移動可能とするステップと、
前記仮想３次元空間上で、前記所定のオブジェクトを、他のオブジェクトの上に表示させるステップと、
を実行する画像処理方法。
【請求項７】
所定のオブジェクトの仮想３次元空間上の位置を移動させる操作を受け付ける受付部と、
前記所定のオブジェクトの最下部の高さが、所定の立体の表面の高さ以下である場合、前記仮想３次元空間上の水平面の位置に対応付けられた所定の高さ以上となる高さの範囲で前記所定のオブジェクトを移動可能とする制御部と、
前記仮想３次元空間上で、前記所定のオブジェクトを、他のオブジェクトの上に表示させる表示制御部と、
を有する画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、画像処理方法、及び画像処理装置に関する。
【背景技術】
【０００２】
従来、コンピュータゲームやシミュレーション等において、３次元コンピュータグラフィックスにより、ユーザが操作するキャラクター等のオブジェクトを、仮想３次元空間上で移動できるように表示する技術が知られている。
【０００３】
この技術において、例えば、複数の頂点の位置座標と、ポリゴン面全体で１つの法線ベクトルのデータとを有するポリゴンデータを用い、細かく区分けされた各ポリゴンデータにより地形を表現する。そして、オブジェクトの車輪や足等の最下部がポリゴン面上となるように、当該オブジェクトの接地位置を判定することが知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４２２６６６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術には、接地位置を判定するためのポリゴンデータ等を読み込むためのメモリの使用が必要となり、また、プロセッサの処理コストがかかるという問題がある。
【０００６】
そこで、一側面では、処理負荷を低減しながらオブジェクトの最も低い位置を比較的高精度に判定することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの案では、画像処理装置に、所定のオブジェクトの仮想３次元空間上の位置を移動させる操作を受け付けるステップと、前記所定のオブジェクトの最下部の高さが、所定の立体の表面の高さ以下である場合、前記仮想３次元空間上の水平面の位置に対応付けられた所定の高さ以上となる高さの範囲で前記所定のオブジェクトを移動可能とするステップと、前記仮想３次元空間上で、前記所定のオブジェクトを、他のオブジェクトの上に表示させるステップと、を実行させるプログラムが提供される。
【発明の効果】
【０００８】
一側面によれば、処理負荷を低減しながらオブジェクトの最も低い位置を比較的高精度に判定することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る画像処理装置のハードウェア構成例を示す図である。
【図２】実施形態に係る画像処理装置の機能ブロック図である。
【図３】画像処理装置の処理の一例を示すフローチャートである。
【図４Ａ】ゲーム中の３次元データの表示画面の例について説明する図である。
【図４Ｂ】ゲーム中の３次元データの表示画面の例について説明する図である。
【図５Ａ】コリジョンデータについて説明する図である。
【図５Ｂ】コリジョンデータについて説明する図である。
【図５Ｃ】コリジョンデータについて説明する図である。
【図６Ａ】高さマップについて説明する図である。
【図６Ｂ】高さマップについて説明する図である。
【図７Ａ】建物等のオブジェクトの上にプレイヤーキャラクターが乗った際の表示について説明する図である。
【図７Ｂ】建物等のオブジェクトの上にプレイヤーキャラクターが乗った際の表示について説明する図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて本発明の実施形態を説明する。
【００１１】
＜ハードウェア構成＞
図１は、実施形態に係る画像処理装置１０のハードウェア構成例を示す図である。図１に示す画像処理装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５、表示装置１０６、及び入力装置１０７等を有する。
【００１２】
画像処理装置１０での処理を実現するゲームプログラムは、記録媒体１０１によって提供される。ゲームプログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、ゲームプログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、ゲームプログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたゲームプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１３】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って画像処理装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７は、コントローラ等、キーボード及びマウス等、またはタッチパネル及びボタン等で構成され、様々な操作指示を入力させるために用いられる。
【００１４】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、ブルーレイディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００１５】
＜機能構成＞
次に、図２を参照し、画像処理装置１０の機能構成について説明する。図２は、実施形態に係る画像処理装置１０の機能ブロック図である。
【００１６】
画像処理装置１０は、記憶部１１を有する。記憶部１１は、例えば、補助記憶装置１０２等を用いて実現される。記憶部１１は、３次元データ１１１、コリジョンデータ１１２、高さマップ１１３等を記憶する。３次元データ１１１は、各オブジェクトの３次元モデルのデータである。コリジョンデータ１１２は、仮想３次元空間上のオブジェクトの概ねの形状を示す立体の表面を示すデータである。高さマップ１１３は、仮想３次元空間上のオブジェクトのうち、上面が比較的複雑な形状であるオブジェクトの、水平方向及び奥行き方向（水平面）の位置に対応付けられた高さ（垂直方向の位置）を示すデータである。なお、コリジョンデータ１１２、及び高さマップ１１３の例については後述する。
【００１７】
また、画像処理装置１０は、受付部１２、判定部１３、制御部１４、及び表示制御部１５を有する。これら各部は、画像処理装置１０にインストールされた１以上のプログラムが、画像処理装置１０のＣＰＵ１０４に実行させる処理により実現される。
【００１８】
受付部１２は、プレイヤーキャラクターを仮想３次元空間上で移動させる等の操作をユーザから受け付ける。
【００１９】
判定部１３は、受付部１２により受け付けた操作等によりプレイヤーキャラクターが後述するコリジョンに衝突したか否かを判定する。
【００２０】
また、判定部１３は、コリジョンに衝突し、プレイヤーキャラクターの水平面の位置に対応付けられた高さのデータが高さマップ１１３に設定されていない場合、コリジョンの高さを、プレイヤーキャラクターの最下部の高さと判定する。また、判定部１３は、コリジョンに衝突し、プレイヤーキャラクターの水平面の位置に対応付けられた高さのデータが高さマップ１１３に設定されている場合、高さマップ１１３に設定されている当該高さを、プレイヤーキャラクターの最下部の高さと判定する。
【００２１】
制御部１４は、ゲームの進行等を制御する。また、制御部１４は、受付部１２により受け付けた操作等に応答して、判定部１３により判定された高さ以上の範囲において、プレイヤーキャラクターを仮想３次元空間上で移動可能とする。
【００２２】
表示制御部１５は、制御部１４からの指示に従い、ゲームにおける画像を画面に表示させる。
【００２３】
＜処理＞
次に、図３乃至図７Ｂを参照して、画像処理装置１０の処理について説明する。図３は、画像処理装置１０の処理の一例を示すフローチャートである。図４Ａ、及び図４Ｂは、ゲーム中の３次元データの表示画面の例について説明する図である。図５Ａ、図５Ｂ、及び図５Ｃは、コリジョンデータ１１２について説明する図である。図６Ａ、及び図６Ｂは、高さマップ１１３について説明する図である。図７Ａ、及び図７Ｂは、建物等のオブジェクトの上にプレイヤーキャラクターが乗った際の表示について説明する図である。
【００２４】
以下では、オープンワールド（サンドボックス、フリーローミング）のゲームを例として説明する。オープンワールドのゲームでは、ユーザに操作されるプレイヤーキャラクターの移動に応じて、プレイヤーキャラクターの周辺の地形、建造物、草木等の３次元データ等を読み込んで表示する。これにより、ユーザは、プレイヤーキャラクターを、比較的広大な仮想３次元空間上の世界において、マップの切り替え等がなされずにシームレスに動き回ることができる。
【００２５】
ステップＳ１において、制御部１４は、ユーザの操作等によりゲームが起動されると、ゲームのデータをメモリ装置１０３に読み込む。ここで、ゲームのデータには、例えば、プレイヤーキャラクターの仮想３次元空間上における現在の位置と、当該位置から所定範囲内に存在する各オブジェクトの３次元データ１１１と、所定の立体の表面を示す衝突判定用のデータ（コリジョンデータ１１２）と、高さマップ１１３等のデータとが含まれる。また、当該各オブジェクトには、例えば、地形、建造物、草木、及びキャラクター等が含まれる。
【００２６】
続いて、制御部１４は、３次元コンピュータグラフィックスにより、読み込んだ３次元データ１１１に応じた各オブジェクトを表示制御部１５により画面に表示させる（ステップＳ２）。ここで、表示制御部１５により、図４Ａ、及び図４Ｂに示すような画像が表示される。図４Ａの例では、ユーザキャラクター４０１Ａ、敵のキャラクター４０２Ａ、建物４０３Ａ、及び矢倉４０４Ａ等が表示されている。図４Ｂの例では、ユーザキャラクター４０１Ｂ、敵のキャラクター４０２Ｂ、建物４０３Ｂ、及び塔４０４Ｂ等が表示されている。
【００２７】
続いて、受付部１２は、プレイヤーキャラクターを移動させる操作をユーザから受け付ける（ステップＳ３）。
【００２８】
続いて、制御部１４は、ユーザの操作に応答して、仮想３次元空間上でプレイヤーキャラクターの移動を開始させる（ステップＳ４）。ここで、例えば、跳躍（ジャンプ）等の操作に応答して、仮想３次元空間上の仮想的な重力に従って、プレイヤーキャラクターを階段や屋根等の上に乗らせる。または、プレイヤーキャラクターを歩行させて階段や屋根の上を移動させる。
【００２９】
また、ここで、制御部１４は、プレイヤーキャラクターの仮想３次元空間上の水平面の位置の移動に応じて、３次元データ１１１のうち当該位置から所定範囲内に位置するオブジェクトのデータ、コリジョンデータ１１２のうち当該オブジェクトに応じたデータ、及び高さマップ１１３のうち当該所定の範囲内の位置に対応するデータをそれぞれメモリに読み込む。例えば、前回データを読み込んだ水平面上の位置から、プレイヤーキャラクターの水平面上の現在位置が所定の距離以上離れたタイミング等で、現在位置から所定範囲内の各データのうち、メモリに記憶されていないデータを読み込む。これにより、プレイヤーキャラクターは、仮想３次元空間上の世界において、マップの切り替え等がなされずにシームレスに動き回ることができる。
【００３０】
続いて、判定部１３は、コリジョンデータ１１２に基づき、プレイヤーキャラクターがコリジョンに衝突したか否かを判定する（ステップＳ５）。コリジョンデータ１１２には、コリジョンを形成する立体の頂点の位置等のデータが含まれており、例えば、仮想３次元空間上に位置する建物等の各オブジェクトの屋根等の少なくとも一部を内包する立体のデータが予め設定されている。なお、コリジョンとは、プレイヤーキャラクター等が建物等のオブジェクトの上に乗っているか否かを判定するための衝突判定用データである。「コリジョンに衝突する」とは、例えば、プレイヤーキャラクター等のオブジェクトの足元等の最も低い位置（最下部）が、コリジョンの高さ以下の所定範囲内であることをいう。
【００３１】
図５Ａには、プレイヤーキャラクター５０２Ａが図４Ａの建物４０３Ａの屋根の上に飛び乗り、プレイヤーキャラクター５０２Ａの足元の位置が、コリジョンデータ１１２による円錐等の立体の表面の位置であるコリジョン５０１Ａと衝突した際の位置関係が図示されている。
【００３２】
図５Ｂには、プレイヤーキャラクター５０２Ｂが図４Ａの矢倉４０４Ａの屋根の上に飛び乗り、プレイヤーキャラクター５０２Ａの足元の位置が、コリジョンデータ１１２による四角柱等の多面体である立体の表面の位置であるコリジョン５０１Ｂと衝突した際の位置関係が図示されている。
【００３３】
図５Ｃには、プレイヤーキャラクター５０２Ｃが図４Ｂの建物４０３Ｂの屋根の上に飛び乗り、プレイヤーキャラクター５０２Ｃの足元の位置が、コリジョンデータ１１２による三角柱等の多面体である立体の表面の位置であるコリジョン５０１Ｃと衝突した際の位置関係が図示されている。
【００３４】
プレイヤーキャラクターがコリジョンに衝突していない場合（ステップＳ５でＮＯ）、後述するステップＳ９の処理に進む。
【００３５】
プレイヤーキャラクターがコリジョンに衝突している場合（ステップＳ５でＹＥＳ）、判定部１３は、プレイヤーキャラクターの仮想３次元空間上の現在位置に対して、高さマップ１１３のデータが設定されているか否かを判定する（ステップＳ６）。
【００３６】
高さマップ１１３のデータが設定されていない場合（ステップＳ６でＮＯ）、判定部１３は、コリジョンの高さを、当該オブジェクトの最も低い高さ（接地高さ、足元の高さ）とし（ステップＳ７）、後述するステップＳ９も処理に進む。
【００３７】
高さマップ１１３のデータが設定されている場合（ステップＳ６でＹＥＳ）、プレイヤーキャラクターの仮想３次元空間上の現在位置に対して、高さマップ１１３に設定されている高さを、当該オブジェクトの最も低い高さとする（ステップＳ８）。
【００３８】
図６Ａには、図４Ａの建物４０３Ａの屋根に応じた高さマップ１１３の一例が示されている。図６Ｂには、図４Ｂの建物４０３Ｂの屋根に応じた高さマップ１１３の一例が示されている。図６Ａ、及び図６Ｂの例では、仮想３次元空間上の水平方向及び奥行き方向を、それぞれｘ軸方向、ｙ軸方向とし、垂直方向の位置である高さの値が大きい程、濃く表示されている。また、図６Ａ、及び図６Ｂの例では、屋根上の装飾部分の位置６０１、及び位置６０２に対する高さが比較的高いため、比較的濃く表示されている。
【００３９】
続いて、制御部１４は、判定部１３により判定された高さ以上の高さの範囲において、プレイヤーキャラクターを仮想３次元空間上で移動可能とし、表示制御部１５により画面に表示させる（ステップＳ９）。ここで、制御部１４は、プレイヤーキャラクターが静止している場合は、プレイヤーキャラクターの足元の高さが、判定部１３により判定された高さと一致するように表示する。また、プレイヤーキャラクターが跳躍等の動作をする場合は、プレイヤーキャラクターの足元の高さが、判定部１３により判定された高さ以上の範囲となるように、仮想的な重力に従って跳躍させる。
【００４０】
図７Ａには、プレイヤーキャラクターが図４Ａの建物４０３Ａの屋根の上に乗っている際の、プレイヤーキャラクターの位置が示されている。図７Ａの例では、プレイヤーキャラクターが、比較的複雑な形状である図４Ａの建物４０３Ａの屋根の高さが足元の高さとなるように表示されている。
【００４１】
図７Ｂには、プレイヤーキャラクターが図４Ａの矢倉４０４Ａの上に乗っている際の、プレイヤーキャラクターの位置が示されている。図７Ｂの例では、プレイヤーキャラクターが、平面である図４Ａの矢倉４０４Ａの上面の高さが足元の高さとなるように表示されている。
【００４２】
続いて、制御部１４は、ユーザの操作等により、ゲームを終了するか否かを判定する（ステップＳ１０）。ゲームを終了しない場合（ステップＳ１０でＮＯ）、ステップＳ３の処理に進む。ゲームを終了する場合（ステップＳ１０でＹＥＳ）、処理を終了する。
【００４３】
＜効果＞
プレイヤーキャラクターが広大な仮想３次元空間上の世界を自由に移動できるオープンワールドのゲームでは、高い位置から一帯の風景を眺める場合等において、スケールの大きな映像表現が可能である。この場合、周辺の建物や木等のオブジェクトのみならず、遠くに位置するオブジェクトもできる限り表示することが臨場感の点で好ましい。
【００４４】
そのため、オープンワールドのゲームでは、個々の空間の端に到達したら別の空間に切り替えるようなオープンワールドではないゲームと比較して、メモリに読み込んでおくべきオブジェクト等のデータ量や、オブジェクトの表示等のための処理の負荷が大きい。
【００４５】
一方で、ゲーム装置のハードウェアの性能により、メモリサイズやＣＰＵ等の演算速度には上限がある。また、プレイヤーキャラクターが建物等のオブジェクトの上に乗った際の足元の高さの判定を、従来のようなオブジェクトの３次元モデルを用いて計算すると、処理の負荷が比較的高くなる。
【００４６】
そのため、従来技術では、例えば、オープンワールドのゲーム等、表示するオブジェクトの数が多いこと等により処理負荷が比較的高い３次元コンピュータグラフィックスにおいて、表示させるオブジェクトの数を減らすなどの対応が必要になる。
【００４７】
一方、上述した実施形態によれば、立体の表面を示すコリジョンデータを用いて比較的簡易に高さを求めることにより、上に乗られるオブジェクトの上面が多面体、円錐、及び円柱等の表面の一部である場合に、メモリやプロセッサの処理負荷を低減しながらオブジェクトの最も低い位置を比較的高精度に判定することができる。また、上に乗られるオブジェクトの上面が、屋根の鬼瓦等の飾り等により多面体等の表面で表現できない複雑な形状である場合は、当該オブジェクトの位置に応じた局所的な高さマップを用いて高さを求めることにより、メモリやプロセッサの処理負荷を低減しながらオブジェクトの最も低い位置を比較的高精度に判定することができる。
【００４８】
＜まとめ＞
上述した実施形態によれば、プレイヤーキャラクター等の所定のオブジェクトの最下部の高さが、所定の立体の表面の高さ以下である場合、当該所定のオブジェクトを、予め設定された所定の高さ以上となる範囲で移動可能とする。これにより、処理負荷を低減しながらオブジェクトの最も低い位置を比較的高精度に判定することができる。
【００４９】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００５０】
画像処理装置１０の各機能部は、例えば１以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。また、画像処理装置１０は、ユーザの端末にゲームの画面を表示させる、オンラインゲーム用のサーバであってもよい。
【００５１】
なお、上述した実施形態では、オープンワールドのゲームを例として説明したが、開示の技術は、オープンワールド以外のゲーム、シミュレーション等の３次元コンピュータグラフィックスにおいて、仮想３次元空間上で所定のオブジェクトを他のオブジェクトの上に乗せる場合に適用できる。
【符号の説明】
【００５２】
１０  画像処理装置
１１  記憶部
１１１  ３次元データ
１１２  コリジョンデータ
１１３  高さマップ
１２  受付部
１３  判定部
１４  制御部
１５  表示制御部
【図１】
2019121236.tif 000003
【図２】
2019121236.tif 000004
【図３】
2019121236.tif 000005
【図４Ａ】
2019121236.tif 000006
【図４Ｂ】
2019121236.tif 000007
【図５Ａ】
2019121236.tif 000008
【図５Ｂ】
2019121236.tif 000009
【図５Ｃ】
2019121236.tif 000010
【図６Ａ】
2019121236.tif 000011
【図６Ｂ】
2019121236.tif 000012
【図７Ａ】
2019121236.tif 000013
【図７Ｂ】
2019121236.tif 000014
【手続補正書】
【提出日】平成30年1月12日(2018.1.12)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2019121236.tif 000015