(57)【要約】      （修正有）【課題】移動可能領域を示す情報の生成を効率的に行うことが可能なプログラムを提供する。【解決手段】情報処理装置１００に実行させるプログラムであって、探索領域を示すオブジェクトの指定を受け付ける探索領域設定部１１１と、探索領域及び該探索領域内のオブジェクトの表層の高さに関する情報を抽出する高さ情報抽出部１１２と、高さの差が所定範囲内にある領域を用いて、キャラクターオブジェクトが移動可能な領域を示す移動領域情報を生成する移動領域情報生成部１１４として、情報処理装置１００を機能させることを特徴とする。【選択図】図１
2019170427.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に実行させるプログラムであって、
探索領域を示すオブジェクトの指定を受け付ける探索領域設定部と、
前記探索領域及び該探索領域内のオブジェクトの表層の高さに関する情報を抽出する高さ情報抽出部と、
前記高さの差が所定範囲内にある領域を用いて、キャラクターオブジェクトが移動可能な領域を示す移動領域情報を生成する移動領域情報生成部として、前記情報処理装置を機能させることを特徴とする、プログラム。
【請求項２】
請求項１に記載のプログラムであって、
前記高さ情報抽出部は、前記探索領域内の所定の方向に進行する複数の光線の各々と、前記各オブジェクトの表層との交点を抽出し、
前記移動領域情報生成部は、隣り合う交点との前記高さの差が所定範囲内にある複数の前記交点を含む領域に前記移動領域情報を生成することを特徴とする、プログラム。
【請求項３】
請求項１に記載のプログラムであって、
前記探索領域内の特定のオブジェクトを含むよう通過除外領域を示すオブジェクトを生成する通過除外領域生成部を備え、
前記高さ情報抽出部は、前記探索領域内の所定の方向に進行する複数の光線の各々と、前記各オブジェクトの表層との交点を抽出し、
前記移動領域情報生成部は、前記通過除外領域と前記複数の光線との交点を除く他の前記交点を含む領域に前記移動領域情報を生成することを特徴とする、プログラム。
【請求項４】
請求項２又は３に記載のプログラムであって、
前記探索領域設定部は、前記光線の密度の設定を受け付けることを特徴とする、プログラム。
【請求項５】
請求項３に記載のプログラムであって、
前記移動領域情報生成部は、前記探索領域と前記複数の光線との交点を含む領域に前記移動領域情報を生成することを特徴とする、プログラム。
【請求項６】
請求項３に記載のプログラムであって、
前記移動領域情報生成部は、複数の前記交点から所定の方法で抽出した前記交点を結ぶ線を輪郭とする前記領域に前記移動領域情報を生成することを特徴とする、プログラム。
【請求項７】
請求項１に記載のプログラムであって、
前記高さ情報抽出部は、前記探索領域に前記オブジェクトの一部が含まれる場合、前記探索領域に含まれる前記オブジェクトの一部の高さに関する情報を抽出し、前記探索領域に含まれない前記オブジェクトの部分の高さに関する情報を抽出しないことを特徴とする、プログラム。
【請求項８】
探索領域を示すオブジェクトの指定を受け付ける探索領域設定部と、
前記探索領域及び前記探索領域内のオブジェクトの表層の高さに関する情報を抽出する高さ情報抽出部と、
前記高さの差が所定範囲内にある領域を用いて、キャラクターオブジェクトが移動可能な領域を示す移動領域情報を生成する移動領域情報生成部と、を備えることを特徴とする、情報処理装置。
【請求項９】
情報処理装置において実行される移動領域生成方法であって、
前記情報処理装置は、探索領域設定部と、高さ情報抽出部と、移動領域情報生成部と、を備え、
前記探索領域設定部は、探索領域を示すオブジェクトの指定を受け付ける探索領域設定手順を実行し、
前記高さ情報抽出部は、前記探索領域及び前記探索領域内のオブジェクトの表層の高さに関する情報を抽出する高さ情報抽出実行手順を実行し、
前記移動領域情報生成部は、前記高さの差が所定範囲内にある領域を用いて、キャラクターオブジェクトが移動可能な領域を示す移動領域情報を生成する移動領域情報生成手順を実行することを特徴とする、移動領域生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理装置、及び移動領域生成方法に関する。
【背景技術】
【０００２】
ゲームに表示されるノンプレイヤーキャラクターが移動することのできる移動可能領域を設定する技術が知られている。
【０００３】
特許文献１には、「「ナビゲーションメッシュ」の概念について述べる必要がある。ナビゲーションメッシュはキャラクタの原型（例えば、ヒーロ、悪役、傍観者、……）に対して規定され、及び／又はキャラクタの大きさ（例えば、小さい、中くらい、大きい、……）にも依存する。ナビゲーションメッシュはキャラクタが移動又は操縦されることが許容されるゲーム環境内の領域又はパスの集合体を指定している。」と記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−２１７４８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
制作者は、コンピューターグラフィックスの編集用ソフトウェアを用いて、ゲーム内の背景を含む地図情報を参照しながら、移動可能領域を定め、該移動可能領域を示す情報を生成する。地図情報が広大であれば、移動可能領域の決定には多大な労力が必要となる。
【０００６】
特許文献１に開示された技術は、移動可能領域の生成に関するものではなく、製作者の労力を削減しうるものではない。
【０００７】
そこで、本発明は、移動可能領域を示す情報の生成を効率的に行うことを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様に係るプログラムは、情報処理装置に実行させるプログラムであって、探索領域を示すオブジェクトの指定を受け付ける探索領域設定部と、前記探索領域及び該探索領域内のオブジェクトの表層の高さに関する情報を抽出する高さ情報抽出部と、前記高さの差が所定範囲内にある領域を用いて、キャラクターオブジェクトが移動可能な領域を示す移動領域情報を生成する移動領域情報生成部として、前記情報処理装置を機能させることを特徴とする。
【０００９】
上記のプログラムにおいて、前記高さ情報抽出部は、前記探索領域内の所定の方向に進行する複数の光線の各々と、前記各オブジェクトの表層との交点を抽出し、前記移動領域情報生成部は、隣り合う交点との前記高さの差が所定範囲内にある複数の前記交点を含む領域に前記移動領域情報を生成することを特徴としてもよい。
【００１０】
上記のプログラムにおいて、前記探索領域内の特定のオブジェクトを含むよう通過除外領域を示すオブジェクトを生成する通過除外領域生成部を備え、前記高さ情報抽出部は、前記探索領域内の所定の方向に進行する複数の光線の各々と、前記各オブジェクトの表層との交点を抽出し、前記移動領域情報生成部は、前記通過除外領域と前記複数の光線との交点を除く他の前記交点を含む領域に前記移動領域情報を生成することを特徴としてもよい。
【００１１】
上記のプログラムにおいて、前記探索領域設定部は、前記光線の密度の設定を受け付けることを特徴としてもよい。
【００１２】
上記のプログラムにおいて、前記移動領域情報生成部は、前記探索領域と前記複数の光線との交点を含む領域に前記移動領域情報を生成することを特徴としてもよい。
【００１３】
上記のプログラムにおいて、前記移動領域情報生成部は、複数の前記交点から所定の方法で抽出した前記交点を結ぶ線を輪郭とする前記領域に前記移動領域情報を生成することを特徴としてもよい。
【００１４】
上記のプログラムにおいて、前記高さ情報抽出部は、前記探索領域に前記オブジェクトの一部が含まれる場合、前記探索領域に含まれる前記オブジェクトの一部の高さに関する情報を抽出し、前記探索領域に含まれない前記オブジェクトの部分の高さに関する情報を抽出しないことを特徴してもよい。
【００１５】
上記の課題を解決する本発明の他の態様は、情報処理装置であって、探索領域を示すオブジェクトの指定を受け付ける探索領域設定部と、前記探索領域及び前記探索領域内のオブジェクトの表層の高さに関する情報を抽出する高さ情報抽出部と、前記高さの差が所定範囲内にある領域を用いて、キャラクターオブジェクトが移動可能な領域を示す移動領域情報を生成する移動領域情報生成部と、を備えることを特徴とする。
【００１６】
上記の課題を解決する本発明の他の態様は、情報処理装置において実行される移動領域生成方法であって、前記情報処理装置は、探索領域設定部と、高さ情報抽出部と、移動領域情報生成部と、を備え、前記探索領域設定部は、探索領域を示すオブジェクトの指定を受け付ける探索領域設定手順を実行し、前記高さ情報抽出部は、前記探索領域及び前記探索領域内のオブジェクトの表層の高さに関する情報を抽出する高さ情報抽出実行手順を実行し、前記移動領域情報生成部は、前記高さの差が所定範囲内にある領域を用いて、キャラクターオブジェクトが移動可能な領域を示す移動領域情報を生成する移動領域情報生成手順を実行することを特徴とする。
【発明の効果】
【００１７】
本発明の一態様によれば、移動可能領域を示す情報の生成を効率的に行うことができる。
【図面の簡単な説明】
【００１８】
【図１】情報処理装置の機能ブロック構成の一例を示す図である。
【図２】移動領域情報生成処理の概要を示す図である。
【図３】情報処理装置のハードウェア構成の一例を示す図である。
【図４】移動領域情報生成処理の一例を示すフローチャートである。
【図５】シーンデータの表示例を示す図（その１）である。
【図６】シーンデータの表示例を示す図（その２）である。
【図７】シーンデータの表示例を示す図（その３）である。
【図８】シーンデータの表示例を示す図（その４）である。
【図９】シーンデータの表示例を示す図（その５）である。
【図１０】変形例における移動領域情報生成処理の概要を示す図である。
【図１１】変形例における移動領域情報生成処理の一例を示すフローチャートである。
【図１２】変形例におけるシーンデータの表示例を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、情報処理装置１００の機能ブロック構成の一例を示す図である。情報処理装置１００は、例えばＰＣ（Personal Computer）等の装置である。一例として、情報処理装置１００は、ゲームの制作者により操作される。
【００２０】
また、本実施形態において、オブジェクトとは、３Ｄコンピューターグラフィックスの編集用ソフトウェアを用いて表示される各種物体である。オブジェクトは、３本以上の線（エッジ）に囲われた領域に、描画用の面情報（ポリゴン）を有するものであってもよく、例えばドットやワイヤーフレームなど、面情報を有さないものであってもよい。
【００２１】
情報処理装置１００は、制御部１１０と、入力部１２０と、出力部１３０とを備える。制御部１１０は、情報処理装置１００の全体を統括的に制御する。入力部１２０は、入力装置を用いて制作者からの入力操作を受け付ける。出力部１３０は、出力装置を介して情報処理装置１００の有する情報を出力する。
【００２２】
制御部１１０は、探索領域設定部１１１と、高さ情報抽出部１１２と、通過除外領域生成部１１３と、移動領域情報生成部１１４と、を備える。探索領域設定部１１１は、移動領域情報の生成の対象となる探索領域の設定を受け付ける。
【００２３】
一例として、制作者は、編集用ソフトウェアを操作し、幅情報、奥行き情報、及び高さ情報を有する３Ｄ空間上で、背景のオブジェクトに対して、机や椅子、縁石等の配置物であるオブジェクトが設置されたシーンデータを表示する。制作者は、シーンデータに対して探索領域となるオブジェクトを配置して表示させる。探索領域となるオブジェクトは、幅情報、奥行き情報、及び高さ情報を有する立体形状である。制作者は、探索領域の位置や大きさ、及び形状等を設定可能である。
【００２４】
探索領域設定部１１１は、探索領域となるオブジェクトを指定した探索領域決定指示を受け付けると、該オブジェクトを探索領域として設定する。また、探索領域設定部１１１は、探索領域内に仮想的に走査される複数の光線の密度の設定を受け付ける。
【００２５】
高さ情報抽出部１１２は、探索領域を示すオブジェクト、及び探索領域内のオブジェクトの表層の高さに関する情報を抽出する。例えば、高さ情報抽出部１１２は、探索領域内の所定の方向に複数の光線を仮想的に走査する、いわゆるレイキャスト処理を実行する。レイキャスト処理は、探索領域の一面（例えば上面）上の複数の点をそれぞれ始点とし、該一面に対向する他面（例えば下面）に向けて、他面に対して各々の始点から垂直に光線を進行させることにより実行される。
【００２６】
高さ情報抽出部１１２は、所定の方向に進行する複数の光線の各々と、探索領域自身及び探索領域内のオブジェクトの表層との交点を抽出する。交点の高さ情報を参照することにより、オブジェクトの表層の高さに関する情報を抽出可能である。
【００２７】
なお、高さ情報抽出部１１２は、探索領域内にオブジェクトの一部が含まれ、他の一部が探索領域からはみ出す場合に、探索領域に含まれるオブジェクトの一部の高さに関する情報を抽出し、探索領域に含まれないオブジェクトの部分の高さに関する情報を抽出しない。
【００２８】
通過除外領域生成部１１３は、キャラクターオブジェクトの移動の障害となるオブジェクトである障害オブジェクトを含むよう通過除外領域を生成する。通過除外領域は、高さ情報抽出部１１２が探索領域内の障害オブジェクトの表層の高さ情報を抽出するために用いられる。即ち、先述の高さ情報抽出部１１２は、複数の光線と通過除外領域との交点を抽出することにより、障害オブジェクトの表層の高さに関する情報を得る。
【００２９】
通過除外領域は、例えば面情報を有するオブジェクトである。通過除外領域は、障害オブジェクトのコピーであってもよいが、処理をより高速に行うため、障害オブジェクトをより単純化したオブジェクトであることが望ましい。例えば、後述のレイキャストによる衝突判定を効率的に行うため、通過除外領域生成部１１３は、ＡＡＢＢＴｒｅｅ（axis-aligned bounding box tree）と呼ばれる構造を利用した通過除外領域を生成することができる。
【００３０】
この場合、通過除外領域は、３Ｄ空間におけるＸＹＺ軸に各辺が平行な立方体を通過除外領域とすることができる。また、探索領域に複数の障害オブジェクトが存在する場合、各障害オブジェクトに対して生成される通過除外領域は任意の探索処理高速化のためのデータ構造とすることができる。
【００３１】
又は、例えば通過除外領域生成部１１３は、障害オブジェクトのコピーに対し、公知のポリゴンリダクション処理を行うことにより、データ容量の軽い通過除外領域を得てもよい。なお、通過除外領域生成部１１３は、例えば探索領域の基準面（例えば下面）との高さの差が所定範囲の値を超える障害オブジェクトに対して、通過除外領域を生成するよう設定されていてもよい。
【００３２】
移動領域情報生成部１１４は、探索領域内のオブジェクトの表層の高さの差が所定範囲内にある領域を用いて、キャラクターオブジェクトが移動可能な領域を示す移動領域情報を生成する。
【００３３】
図２は、移動領域情報生成処理の概要を示す図である。図２には、探索領域Ｂと、オブジェクトＡとが示されている。本実施形態の一例として、移動領域情報生成部１１４は、探索領域Ｂの下面と、複数の光線との交点を含む領域に、移動領域情報を生成する。
【００３４】
先述したように、高さ情報抽出部１１２は、探索領域内に光線を走査することにより、探索領域Ｂのオブジェクトの下面、及び探索領域内のオブジェクト（即ち通過除外領域）の表層の高さに関する情報を抽出する。光線と通過除外領域とが交わった場合、光線は通過除外領域に遮られ、探索領域Ｂの下面には届かないため、光線と探索領域Ｂの下面との交点は形成されない。即ち、移動領域情報生成部１１４は、通過除外領域と光線との交点を除く他の交点（即ち光線と探索領域Ｂの下面との交点）を含む領域に、移動領域情報を生成する。
【００３５】
通過除外領域生成部１１３が、探索領域Ｂの下面との高さの差が所定範囲の値を超える障害オブジェクトに対して、通過除外領域を生成する場合について説明する。通過除外領域生成部１１３が、図２に示す高さｓを超える障害オブジェクトに対して通過除外領域を生成する場合、オブジェクトＡは高さｓを超えるため、オブジェクトＡに対し通過除外領域が生成される。
【００３６】
レイキャスト処理を行う結果、探索領域Ｂの上面から下面に向かって進行する光線が、オブジェクトＡに対して生成された通過除外領域と衝突する場合、光線は通過除外領域に遮られ、探索領域Ｂの下面とは交わらない。即ち、領域ｂ内において、光線と探索領域Ｂの下面との交点は形成されない。その一方で、領域ａ及び領域ｃについては、光線と探索領域Ｂの下面との交点が形成される。移動領域情報生成部１１４は、領域ａ及び領域ｃについて、移動領域情報を生成する。
【００３７】
通過除外領域生成部１１３が、図２に示す高さｔを超える障害オブジェクトに対して通過除外領域を生成する場合、オブジェクトＡは高さｔを超えないため、オブジェクトＡに対し通過除外領域が生成されない。
【００３８】
レイキャスト処理を行う結果、探索領域Ｂの上面から下面に向かって進行する光線が、オブジェクトＡを通過し、探索領域Ｂの下面に衝突する。即ち、領域ａ、領域ｂ、及び領域ｃにおいて、光線と探索領域Ｂの下面との交点が形成される。移動領域情報生成部１１４は、領域ａ、領域ｂ、及び領域ｃについて、移動領域情報を生成する。
【００３９】
換言すれば、探索領域の基準面との高さの差が所定範囲の値を超える障害オブジェクトに対して通過除外領域を生成する場合、移動領域情報生成部１１４は、高さの差が所定範囲内にある領域に対して、移動領域情報を生成するといえる。
【００４０】
なお、基準面は探索領域Ｂの下面に限定されない。例えば、探索領域Ｂの下面よりも上に床面を構成するオブジェクトがある場合、光線が床面のオブジェクトに遮られ、探索領域Ｂの下面に到達しないことが考えられる。その場合、移動領域情報生成部１１４は、床面のオブジェクトを基準面とし、床面のオブジェクトと光線との交点を含む領域に、移動領域情報を生成することができる。
【００４１】
図３は、情報処理装置１００のハードウェア構成の一例を示す図である。情報処理装置１００は、演算処理装置１４１と、主記憶装置１４２と、記録装置１４３と、入力装置１４４と、出力装置１４５とを有し、各構成要素はバスにより接続されている。
【００４２】
演算処理装置１４１は、例えば、ＣＰＵ（Central Processing Unit）などの演算ユニットであって、主記憶装置１４２又は記録装置１４３に記録されたプログラムに従って処理を実行する。制御部１１０を構成する各処理部は、演算処理装置１４１がプログラムを実行することにより各々の機能を実現する。主記憶装置１４２は、例えば、ＲＡＭ（Random Access Memory）などの記憶装置である。記録装置１４３は、例えば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、フラッシュＲＯＭ（Read Only Memory）などの記録装置である。
【００４３】
入力装置１４４は、制作者からの入力操作を受け付ける装置であって、タッチパネルやキーボード等の入力デバイスである。出力装置１４５は、情報処理装置１００に格納されたデータの出力処理を行う装置であって、例えばＬＣＤ（Liquid Crystal Display）等の表示装置である。
【００４４】
例えば、演算処理装置１４１は、記録装置１４３に記憶されているコンピューターグラフィックスソフトウェアのプログラムを読み込み、主記憶装置１４２に展開する。なお、情報処理装置１００には、該コンピューターグラフィックスソフトウェアが予めダウンロードされている。演算処理装置１４１は、プログラムを実行することで、例えば情報処理装置１００からの入力操作の信号に従ってコンピューターグラフィックスソフトウェアの表示画面上に所望の情報を出力する。
【００４５】
なお、情報処理装置１００の各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。また、情報処理装置１００の各構成要素の処理は、１つのプログラムで実現されてもよいし、複数のプログラムで実現されてもよい。
【００４６】
図４は、移動領域情報生成処理の一例を示すフローチャートである。本処理開始前に、制作者は、シーンデータを出力装置１４５であるディスプレイに表示させる。
【００４７】
図５は、シーンデータの表示例を示す図（その１）である。出力装置１４５に表示されたシーンデータには、例えば床及び壁の背景オブジェクトと、机とが配置されている。机のオブジェクトをオブジェクトＡとする。
【００４８】
説明を図４に戻す。探索領域設定部１１１は、探索領域を配置する（ステップＳ１１）。具体的には、探索領域設定部１１１は、探索領域を示すオブジェクトの生成指示を示す入力操作を受け付ける。探索領域を示すオブジェクトは、任意の形状及び大きさに設定することができる。探索領域設定部１１１は、当該オブジェクトを指定した探索領域決定指示を受け付けると、該オブジェクトを探索領域として取り扱う。
【００４９】
次に、探索領域設定部１１１は、レイキャストの密度を決定する（ステップＳ１２）。具体的には、探索領域設定部１１１は、探索領域内を進行する光線の密度の指定の入力操作を受け付ける。光線の密度は、探索領域内の単位面積当たりの光線の数と同義である。
【００５０】
図６は、シーンデータの表示例を示す図（その２）である。図６は、図５に示すシーンデータに探索領域Ｂを配置した状態を示している。図６では、探索領域Ｂの内部に、オブジェクトＡの全体が含まれるよう配置されている。上述のステップＳ１１において、制作者は立方体のオブジェクトをシーンデータに配置し、オブジェクトを指定して探索領域決定指示を入力する。オブジェクトは探索領域Ｂとして取り扱われる。
【００５１】
また、図６に示す探索領域Ｂの下面は、シーンデータの床面に一致している。本実施形態において、光線は探索領域Ｂの上面から下面に向けて、Ｙ軸−方向に進行するが、光線の進行方向については設定による変更が可能である。
【００５２】
図６に示す探索領域Ｂの下面には、格子（グリッド）が表示されている。グリッドの交点に向かって、下面に対して垂直に光線が進行する。即ち、上述のステップＳ１２で決定した光線の密度により、探索領域Ｂの下面のグリッドの細かさが定まる。
【００５３】
説明を図４に戻す。次に、通過除外領域生成部１１３は、探索領域の範囲内の通過除外領域を生成する（ステップＳ１３）。具体的には、通過除外領域生成部１１３は、探索領域Ｂ内に少なくとも１つの頂点を有する１又は複数のオブジェクトを抽出する。通過除外領域生成部１１３は、抽出したオブジェクトを障害オブジェクトとして特定し、障害オブジェクトの各々について通過除外領域を生成する。
【００５４】
なお、通過除外領域生成部１１３は、探索領域の下面を基準として所定範囲の値を超えた高さを有する頂点をもつオブジェクトを、障害オブジェクトとして抽出してもよい。また、通過除外領域生成部１１３は、制作者の入力により障害オブジェクトを特定し、通過除外領域を生成してもよい。
【００５５】
図７は、シーンデータの表示例を示す図（その３）である。図７は、図６に示すシーンデータのオブジェクトＡに対し、通過除外領域Ｍを生成した状態を示している。障害オブジェクトＡの全体を含むように、通過除外領域Ｍが設定されている。
【００５６】
説明を図４に戻す。次に、高さ情報抽出部１１２が、レイキャストを実行する（ステップＳ１４）。具体的には、高さ情報抽出部１１２は、設定された密度の光線を用いて、探索領域の上面から下面へと探索領域Ｂ内を走査する。高さ情報抽出部１１２は、光線と通過除外領域Ｍ との交点を抽出する。また、高さ情報抽出部１１２は、探索領域Ｂの下面と通過除外領域Ｍとの交点を抽出する。
【００５７】
次に、移動領域情報生成部１１４は、通過除外領域に衝突した点を除去する（ステップＳ１５）。具体的には、移動領域情報生成部１１４は、光線と通過除外領域Ｍとの交点に関する情報を削除する。その結果、高さ情報抽出部１１２の抽出した交点のうち、探索領域Ｂの下面と通過除外領域Ｍとの交点が除去されずに残る。その後、移動領域情報生成部１１４は、探索領域と通過除外領域とを削除する。
【００５８】
図８は、シーンデータの表示例を示す図（その４）である。図８には、削除されずに残った、探索領域Ｂの下面と光線との交点により構成されるグリッドＣが表示されている。本実施形態において、グリッドは、各点を結ぶことにより得られる格子状の情報である。グリッドＣは、探索領域Ｂの下面に該当する領域のうち、障害オブジェクトＡの真下に当たる部分をくりぬいた領域であるといえる。
【００５９】
説明を図４に戻す。次に、移動領域情報生成部１１４は、交点をグループ化し、移動領域情報を生成する（ステップＳ１６）。具体的には、移動領域情報生成部１１４は、ステップＳ１５において除去されずに残った交点を、所定の方法を用いて１又は複数のグループに分ける。
【００６０】
例えば移動領域情報生成部１１４は、除去されずに残った交点により構成されるグリッドを定義する。移動領域情報生成部１１４は、グリッドのうち３以上の交点により囲われる複数の多角形領域を、所定の方法を用いて併合する。一例として、移動領域情報生成部１１４は、併合してできた領域が閉じた多角形であり、かつ穴や自己交差のないよう、多角形領域を併合する。穴とは、併合した多角形領域により構成される面の内部に含まれる、面のない部分である。
【００６１】
なお、移動領域情報生成部１１４は、併合してできた領域の角の数が予め設定された上限値以下となるよう多角形領域を併合してもよい。多角形領域を併合した結果、同じ領域を構成する複数の交点は同じグループに属するものとして、交点が１又は複数のグループに分割される。なお、併合後の複数の領域の境界に位置する交点は、各々の領域を構成する点として、両グループに属するよう設定される。
【００６２】
その後、移動領域情報生成部１１４は、同じグループに属する交点を含む領域の輪郭にあたる部分の点を抽出し、抽出した点を結ぶ線を輪郭とするポリゴンデータを生成する。より具体的には、移動領域情報生成部１１４は、同じグループに属する交点を含む領域を定義し、領域の輪郭にあたる部分の点を残し、それ以外の点、即ち領域内部に位置する点を削除する。
【００６３】
移動領域情報生成部１１４は、残った点に対し、例えば輪郭追跡アルゴリズム等の公知の方法を用いてポリゴンデータを生成する。その後、移動領域情報生成部１１４は、生成したポリゴンデータを移動領域情報として図示しない記憶部に記憶させ、本フローチャートの処理を終了する。
【００６４】
図９は、シーンデータの表示例を示す図（その５）である。図９は、図８に示すグリッドＣを構成する多角形領域を併合して輪郭にあたる部分の点を抽出し、抽出した点を結ぶ線を輪郭とするポリゴンデータにより構成される移動領域情報Ｄを表している。移動領域情報Ｄは、グリッドＣに比べて交点が減少していることが分かる。なお、図７に示すグリッドＣから生成される移動領域情報Ｄは、図９に示す態様に限られない。
【００６５】
その後、本処理により生成された移動領域情報の示す領域を、ノンプレイヤーオブジェクトが移動するよう設定することができる。
【００６６】
なお、本実施形態では、通過除外領域との間で交点を形成しない光線は、探索領域の下面との交点を形成するものと説明した。しかしながら、通過除外領域との間で交点を形成しない光線は、床面のオブジェクトとの交点を形成してもよい。その場合、床面のオブジェクトと光線との交点を含む領域に、移動領域情報が形成される。
【００６７】
本実施形態により、障害オブジェクトの位置を反映させた移動領域情報を効率的に生成することができる。また、探索領域の配置を調整することにより、移動領域情報を生成させる位置を調整することができるため、例えば広大な地図情報の一部をノンプレイヤーオブジェクトの移動可能な領域としたい場合等に、制作者の意図を反映させた移動領域情報の設置を柔軟に行うことができる。
【００６８】
また、本実施形態では、レイキャスト処理を行う光線の密度を調整することができるため、移動領域情報がどの程度通過除外領域の形状に追随するかを調整できるといえる。例えば通過除外領域を探索領域の下面に投影した際に円形を構成する場合、光線の密度が高ければ、移動領域情報は円形に近い形がくり抜かれた形状となる。また、光線の密度が低ければ、移動領域情報は円形を含む多角形（例えば四角形）がくり抜かれた形状となり、光線の密度が高い場合に比べデータ容量の低減が可能となる。
【００６９】
なお、障害オブジェクトの一部が探索領域からはみ出す場合においても、図４に示す処理と同様の処理が行われる。障害オブジェクトのうち、探索領域内の一部を部分Ｘ、探索領域からはみ出る部分を部分Ｙとする。高さ情報抽出部１１２は、探索領域内に光線を進行させるため、レイキャストを実行することにより、部分Ｘに対して生成された通過除外領域の高さ情報を抽出することができる。
【００７０】
その後、移動領域情報生成部１１４は、探索領域の下面に該当する領域のうち、部分Ｘの真下に当たる部分をくりぬいた領域を示す移動領域情報を生成する。従って、本実施形態によれば、障害オブジェクトの一部が探索領域からはみ出す場合であっても、探索領域及び障害オブジェクトの位置に従った移動領域情報を生成することができる。
【００７１】
付言すると、本実施形態において、探索領域内に存在するオブジェクトであっても、障害オブジェクトと取り扱わないよう設定することができる。その場合、例えば探索領域の配置後に、障害オブジェクトとして取り扱わないオブジェクト（以下、「例外オブジェクト」とする）の指定を、入力装置１４４を介して受け付ける。
【００７２】
その後、通過除外領域生成部１１３は、探索領域内のオブジェクトの通過除外領域を生成する際に、例外オブジェクトの通過除外領域の生成を回避する。これにより、探索領域内の光線は例外オブジェクトを透過し、例外オブジェクトが配置された探索領域の下面に衝突して交点を形成する。従って、例外オブジェクトが配置された下面に対しても移動可能領域が生成され、キャラクターオブジェクトの移動が可能となる。
【００７３】
＜変形例＞
【００７４】
次に、本実施形態の変形例について説明する。本変形例では、移動領域情報の生成の際に、隣り合う交点の高さの比較を行う点が、上述の実施形態と異なる。以下、上述の実施形態と異なる点について説明する。
【００７５】
図１０は、変形例における移動領域情報生成処理の概要を示す図である。図１０の領域ａにおいて、光線と探索領域Ｂの下面との交点が点ｅ１群であって、領域ｂにおいて、光線と通過除外領域Ｍとの交点が点ｅ２群であって、領域ｃにおいて、光線と探索領域Ｂの下面との交点が点ｅ３群である。
【００７６】
本変形例における移動領域情報生成部１１４は、探索領域内の所定の方向に進行する複数の光線の各々と、探索領域自身及び探索領域内のオブジェクトとの交点のうち、隣り合う交点の高さの差が所定範囲内にある複数の交点を含む領域に、移動領域情報を生成する。そのため、移動領域情報生成部１１４は、レイキャスト処理の後に形成された複数の交点について、隣り合う交点との高さの差が所定範囲内の値であるか否かを各々判定する。
【００７７】
図１０に示す例において、前述の所定範囲の上限を示す値がｓであるとする。隣り合う交点の高さの差を判定した結果、点ｅ１群を構成する各点の高さの差は、上限ｓを超えないため、同じグループに分類される。同様に、点ｅ２群を構成する各点は同じグループに分類され、点ｅ３群を構成する各店は同じグループに分類される。点ｅ１群と点ｅ２群は異なるグループであって、点ｅ２群と点ｅ３群は異なるグループである。点ｅ１群と点ｅ３群は、図１０の図示しない奥行方向において穴を有さないよう連結していれば、同じグループに分類されていてもよいが、ここでは異なるグループに分類されたものとして説明する。
【００７８】
移動領域情報生成部１１４は、点ｅ１群を含む移動領域情報を生成する。同様に、移動領域情報生成部１１４は、点ｅ２群を含む移動領域情報、及び点ｅ３群を含む移動領域情報を、各々生成する。
【００７９】
図１１は、変形例における移動領域情報生成処理の一例を示すフローチャートである。ステップＳ２１〜ステップＳ２４において行われる処理は、図４に示すステップＳ１１〜ステップＳ１４において行われる処理と同様であるため、説明を省略する。
【００８０】
次に、移動領域情報生成部１１４は、隣り合う交点の高さの差が所定範囲内の交点をグループ化する（ステップＳ２５）。具体的には、移動領域情報生成部１１４は、探索領域の下面と光線との交点、及び通過除外領域と光線との交点について、隣り合う交点の高さを比較する。移動領域情報生成部１１４は、比較の結果、隣り合う交点の高さの差が所定範囲内の交点をグループ化する。
【００８１】
なお、移動領域情報生成部１１４は、上述の実施形態と同様に、同じグループの交点により形成される領域に穴や自己交差がないか否かを判定し、穴や自己交差がある場合にグループをより細かく分割する。
【００８２】
次に、移動領域情報生成部１１４は、グループ化した交点から移動領域情報を生成する（ステップＳ２６）。具体的には、移動領域情報生成部１１４は、同じグループに属する交点を含む領域の輪郭に当たる部分の点を抽出し、抽出した点を結ぶ線を輪郭とするポリゴンデータを生成する。その際、移動領域情報生成部１１４は、上述の実施形態と同様に、同じグループに属する交点を含む領域を定義し、領域の輪郭にあたる部分の点を残し、それ以外の点、即ち領域内部に位置する点を削除する。
【００８３】
移動領域情報生成部１１４は、残った点に対し、例えば輪郭追跡アルゴリズム等の公知の方法を用いてポリゴンデータを生成する。その後、移動領域情報生成部１１４は、生成したポリゴンデータを移動領域情報として図示しない記憶部に記憶させ、本フローチャートの処理を終了する。
【００８４】
図１２は、変形例におけるシーンデータの表示例を示す図である。本変形例では、高さの差が所定範囲内の交点を用いて移動領域情報を生成するため、探索領域の下面に該当する部分のほか、机のオブジェクトＡの天面にも移動領域情報が生成される。
【００８５】
本変形例により、オブジェクトの天面等にも移動可能領域が生成される。これは、探索領域の下面とオブジェクトの天面等、異なる高さの複数の領域にキャラクターオブジェクトを移動させたい場合に特に有用である。
【００８６】
以上、本発明に係る各実施形態及び変形例の説明を行ってきたが、本発明は、上記した実施形態の一例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態の一例は、本発明を分かり易くするために詳細に説明したものであり、本発明は、ここで説明した全ての構成を備えるものに限定されない。また、ある実施形態の一例の構成の一部を他の一例の構成に置き換えることが可能である。また、ある実施形態の一例の構成に他の一例の構成を加えることも可能である。また、各実施形態の一例の構成の一部について、他の構成の追加・削除・置換をすることもできる。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、図中の制御線や情報線は、説明上必要と考えられるものを示しており、全てを示しているとは限らない。ほとんど全ての構成が相互に接続されていると考えてもよい。
【００８７】
また、上記の情報処理装置１００の機能構成は、理解を容易にするために、主な処理内容に基づいて分類したものである。構成要素の分類の仕方や名称によって、本発明が制限されることはない。上述に示す通り、情報処理装置１００の構成は、処理内容に基づいて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。
【００８８】
また、本発明は、プログラムだけでなく、当該プログラムを記録したコンピューター読み取り可能な記録媒体、当該プログラムを実行する情報処理装置あるいはコンピューター、移動領域生成方法、などの様々な態様で提供することができる。
【符号の説明】
【００８９】
１００：情報処理装置、１１０：制御部、１１１：探索領域設定部、１１２：高さ情報抽出部、１１３：通過除外領域生成部、１１４：移動領域情報生成部、１２０：入力部、１３０：出力部、１４１：演算処理装置、１４２：主記憶装置、１４３：記録装置、１４４：入力装置、１４５：出力装置、Ａ：オブジェクト、Ｂ：探索領域、Ｃ：グリッド、Ｄ：移動領域情報、Ｍ：通過除外領域、ａ・ｂ・ｃ：領域、ｅ１・ｅ２・ｅ３：点、ｓ・ｔ：高さ
【図１】
2019170427.tif 000003
【図２】
2019170427.tif 000004
【図３】
2019170427.tif 000005
【図４】
2019170427.tif 000006
【図５】
2019170427.tif 000007
【図６】
2019170427.tif 000008
【図７】
2019170427.tif 000009
【図８】
2019170427.tif 000010
【図９】
2019170427.tif 000011
【図１０】
2019170427.tif 000012
【図１１】
2019170427.tif 000013
【図１２】
2019170427.tif 000014