(57)【要約】【課題】  生成されるフィールドについて、形状の同一性をある程度維持しつつ、バリエーションを持たせることのできる、プログラム、コンピュータ装置、及び、プログラム実行方法を提供することを目的とする。【解決手段】  仮想空間にオブジェクトを自動的に配置することができるプログラムで、コンピュータ装置を、仮想空間内に配置可能な属性の異なる複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係記憶手段、仮想空間の生成に用いられる対象画像を構成する画素の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当手段、前記対応関係にしたがって、対象画像を構成する画素に対応するオブジェクトを、割り当てられた仮想空間内の位置又は領域に配置するオブジェクト配置手段として機能させるプログラム。【選択図】    図２
2020201985.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ装置において実行され、仮想空間にオブジェクトを自動的に配置するプログラムであって、
コンピュータ装置を、
仮想空間内に配置可能な、異なる種類の複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係記憶手段、
オブジェクトを配置するために用いる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当手段、
前記対応関係及びオブジェクト毎に定められた確率にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを特定するオブジェクト特定手段、
割り当てられた仮想空間内の位置又は領域に、特定されたオブジェクトを配置するオブジェクト配置手段
として機能させる、プログラム。
【請求項２】
コンピュータ装置において実行され、仮想空間にオブジェクトを自動的に配置するプログラムであって、
コンピュータ装置を、
仮想空間内に配置可能な、異なる種類の複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係記憶手段、
オブジェクトを配置するために用いる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当手段、
前記対応関係にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを特定するオブジェクト特定手段、
割り当てられた仮想空間内の位置又は領域に、特定されたオブジェクトを配置するオブジェクト配置手段、
乱数を生成する乱数生成手段
として機能させ、
前記オブジェクト配置手段が、割り当てられた仮想空間内の位置又は領域に、乱数に応じた数のオブジェクトを高さ方向に重ねて配置する、プログラム。
【請求項３】
前記オブジェクト配置手段が、割り当てられた仮想空間内の位置又は領域に、特定されたオブジェクトとは異なる種類のオブジェクトを、特定されたオブジェクトとは異なる高さに配置する、請求項１又は２に記載のプログラム。
【請求項４】
前記割当手段が、
画素の割り当てが可能な仮想空間内の領域サイズが前記対象画像の画像サイズよりも小さい場合、前記対象画像の画像サイズを前記割り当て可能な領域サイズに適合するよう処理し、処理後の対象画像の画素毎に仮想空間内の位置又は領域を割り当てる、請求項１〜３のいずれかに記載のプログラム。
【請求項５】
前記割当手段が、
画素の割り当てが可能な仮想空間内の領域サイズが前記対象画像の画像サイズよりも大きい場合、前記割り当て可能な領域を前記対象画像の画素数と同じ数の領域に分割し、前記対象画像の画素毎に、分割した仮想空間内の位置又は領域を割り当てる、請求項１〜４のいずれかに記載のプログラム。
【請求項６】
仮想空間にオブジェクトを自動的に配置するコンピュータ装置であって、
仮想空間内に配置可能な、異なる種類の複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係記憶手段と、
オブジェクトを配置するために用いる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当手段と、
前記対応関係及びオブジェクト毎に定められた確率にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを特定するオブジェクト特定手段と、
割り当てられた仮想空間内の位置又は領域に、特定されたオブジェクトを配置するオブジェクト配置手段と
を備える、コンピュータ装置。
【請求項７】
仮想空間にオブジェクトを自動的に配置するコンピュータ装置であって、
仮想空間内に配置可能な、異なる種類の複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係記憶手段と、
オブジェクトを配置するために用いる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当手段と、
前記対応関係にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを特定するオブジェクト特定手段と、
割り当てられた仮想空間内の位置又は領域に、特定されたオブジェクトを配置するオブジェクト配置手段と、
乱数を生成する乱数生成手段と
を備え、
前記オブジェクト配置手段が、割り当てられた仮想空間内の位置又は領域に、乱数に応じた数のオブジェクトを高さ方向に重ねて配置する、コンピュータ装置。
【請求項８】
コンピュータ装置において実行され、仮想空間にオブジェクトを自動的に配置するプログラム制御方法であって、
仮想空間内に配置可能な、異なる種類の複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係記憶ステップと、
オブジェクトを配置するために用いる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当ステップと、
前記対応関係及びオブジェクト毎に定められた確率にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを特定するオブジェクト特定ステップと、
割り当てられた仮想空間内の位置又は領域に、特定されたオブジェクトを配置するオブジェクト配置ステップと
を有する、プログラム制御方法。
【請求項９】
コンピュータ装置において実行され、仮想空間にオブジェクトを自動的に配置するプログラム制御方法であって、
仮想空間内に配置可能な、異なる種類の複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係記憶ステップと、
オブジェクトを配置するために用いる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当ステップと、
前記対応関係にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを特定するオブジェクト特定ステップと、
割り当てられた仮想空間内の位置又は領域に、特定されたオブジェクトを配置するオブジェクト配置ステップと、
乱数を生成する乱数生成ステップと
を有し、
前記オブジェクト配置ステップが、割り当てられた仮想空間内の位置又は領域に、乱数に応じた数のオブジェクトを高さ方向に重ねて配置する、プログラム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、コンピュータ装置、及び、プログラム実行方法に関する。
【背景技術】
【０００２】
従来より、ビデオゲーム装置において、仮想世界内のフィールドの自動生成に関する技術が公開されている。公開された技術の多くは、例えば、プレイヤの状況に応じて生成されるフィールドが変化するものや、ダンジョン内に潜入するたびにランダムに迷路の形状が変化するといったものであり、複数の異なるフィールドを開発者が作成する負担を軽減し、複数のマップを自動生成することで、プレイヤの興趣を尽きさせないことを目的とするものであった。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ところで、ゲームのストーリーや世界観を維持するためには、ある程度、定まった形状のフィールドを維持しなければいけないという制約がある場合がある。例えば、新たに開発するゲームなどにおいて、過去のゲームなどでプレイヤに十分に認知されたフィールドを再現し、活用するような場合がある。ただし、フィールドの地形を固定化してしまうと、プレイヤとしては、同じフィールドで繰り返しゲームを行うことになり、飽きやすいという課題があった。また、同じゲームをプレイする全てのプレイヤが、全く同じフィールドでプレイをするため、ゲームの進め方が似通ったものとなり、面白みが低減することもあった。
【０００４】
本発明は、このような課題を解決するためのもので、生成されるフィールドについて、形状の同一性をある程度維持しつつ、バリエーションを持たせることのできる、プログラム、コンピュータ装置、及び、プログラム実行方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
非限定的な観点によると、コンピュータ装置において実行され、仮想空間にオブジェクトを自動的に配置することができるプログラムであって、コンピュータ装置を、仮想空間内に配置することのできる属性の異なる複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係記憶手段、仮想空間の生成に用いられる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当手段、前記対応関係にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを、割り当てられた仮想空間内の位置又は領域に配置するオブジェクト配置手段として機能させるプログラムである。
【０００６】
非限定的な観点によると、仮想空間にオブジェクトを自動的に配置することができるコンピュータ装置であって、仮想空間内に配置することのできる属性の異なる複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係記憶手段と、仮想空間の生成に用いられる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当手段と、前記対応関係にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを、割り当てられた仮想空間内の位置又は領域に配置するオブジェクト配置手段とを備えるコンピュータ装置である。
【０００７】
非限定的な観点によると、コンピュータ装置において実行され、仮想空間にオブジェクトを自動的に配置することができるプログラム実行方法であって、仮想空間内に配置することのできる属性の異なる複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係ステップと、仮想空間の生成に用いられる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当ステップと、前記対応関係にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを、割り当てられた仮想空間内の位置又は領域に配置するオブジェクト配置ステップとを有するプログラム実行方法である。
【発明の効果】
【０００８】
本発明の各実施形態により１または２以上の不足が解決される。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。
【図２】本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。
【図３】本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。
【図４】本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。
【図５】本発明の実施の形態の少なくとも１つに対応する、画素情報を表す図である。
【図６】本発明の実施の形態の少なくとも１つに対応する、オブジェクト対応関係マスタテーブルを表す図である。
【図７】本発明の実施の形態の少なくとも１つに対応する、割当処理の概念を表す図である。
【図８】本発明の実施の形態の少なくとも１つに対応する、オブジェクト配置処理のフローチャートである。
【図９】本発明の実施の形態の少なくとも１つに対応する、隣接の概念を表す図である。
【図１０】本発明の実施の形態の少なくとも１つに対応する、属性対応マスタテーブルを表す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の実施の形態について説明する。以下、効果に関する記載は、本発明の実施の形態の効果の一側面であり、ここに記載するものに限定されない。また、以下で説明するフローチャートを構成する各処理の順序は、処理内容に矛盾や不整合が生じない範囲で順不同である。
【００１１】
［第一の実施の形態］
次に、本発明の第一の実施の形態の概要について説明をする。図１は、本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。コンピュータ装置１は、割当部１０１、及び、オブジェクト配置部１０２を少なくとも備える。
【００１２】
割当部１０１は、仮想空間の生成に用いられる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる機能を有する。オブジェクト配置部１０２は、仮想空間内に配置することのできる属性の異なる複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを、割り当てられた仮想空間内の位置又は領域に配置する機能を有する。
【００１３】
本発明の第一の実施の形態におけるプログラム実行処理について説明する。図２は、本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。
【００１４】
コンピュータ装置１は、仮想空間の生成に用いられる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる（ステップＳ１）。仮想空間内に配置することのできる属性の異なる複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを、割り当てられた仮想空間内の位置又は領域に配置し（ステップＳ２）、終了する。
【００１５】
第一の実施の形態の一側面として、仮想空間の生成に用いられる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当て、オブジェクトを割り当てられた仮想空間内の位置又は領域に配置することにより、フィールドの同一性をある程度維持しつつ、生成されるフィールドにバリエーションをもたせることができる。
【００１６】
第一の実施の形態において、「コンピュータ装置」とは、例えば、デスクトップ型又はノート型パーソナルコンピュータ、タブレットコンピュータ、又は、ＰＤＡ等をいい、表示画面がタッチパネルセンサを備える携帯型端末であってもよい。
【００１７】
「仮想空間」とは、例えば、コンピューターやコンピューターネットワーク上の仮想的な空間であって、ゲーム内の空間をいい、オブジェクトが配置される場所をいう。「オブジェクト」とは、例えば、物体であって、仮想空間に配置可能なものをいう。
【００１８】
「属性」とは、例えば、ある事物に属する性質・特徴であって、オブジェクトの性質又は特徴をいう。「画像」とは、例えば、コンピューターグラフィックスによって作成された図形であって、所定の数の画素を含むものをいう。「画素」とは、例えば、画像を構成する単位要素をいう。「対象画像」とは、例えば、オブジェクト配置のもととなる処理対象の画像をいう。
【００１９】
「対象画像を構成する画素の画像上の位置」とは、例えば、対象画像内における画素の位置であり、二軸値で表すことができる。「配置」とは、例えば、オブジェクトを仮想空間上の所定の位置に割り当てることをいう。
【００２０】
［第二の実施の形態］
次に、本発明の第二の実施の形態の概要について説明をする。第二の実施の形態におけるコンピュータ装置の構成は、図１のブロック図に示されるものと同じ構成を採用することができる。さらに、第二の実施の形態におけるプログラム実行処理のフローは、図２のフローチャートに示されるものと同じ構成を採用することができる。
【００２１】
第二の実施の形態において、画素に隣接する隣接画素の画素情報に対応するオブジェクトを、該画素に割り当てられた仮想空間内の位置又は領域に配置するものである。
【００２２】
第二の実施の形態の一側面として、画素に隣接する隣接画素の画素情報に対応するオブジェクトを、該画素に割り当てられた仮想空間内の位置又は領域に配置することにより、異なる画素間の境界において、異なる属性を有するオブジェクトの境界が直線状になることなく、地形の不自然さなくオブジェクトを配置することができる。
【００２３】
第二の実施の形態において、「コンピュータ装置」、「仮想空間」、「オブジェクト」、「属性」、「画像」、「画素」、「対象画像」、「対象画像を構成する画素の画像上の位置」、「仮想空間上の位置又は領域」、及び、「配置」とは、それぞれ第一の実施形態において記載した内容と同一である。
【００２４】
［第三の実施の形態］
次に、本発明の第三の実施の形態の概要について説明をする。第三の実施の形態におけるコンピュータ装置の構成は、図１のブロック図に示されるものと同じ構成を採用することができる。さらに、第三の実施の形態におけるプログラム実行処理のフローは、図２のフローチャートに示されるものと同じ構成を採用することができる。
【００２５】
第三の実施の形態において、仮想空間内の領域は、複数のオブジェクトを配置することが可能であり、画素に隣接する隣接画素の画素情報に対応するオブジェクトを、該領域の境界から該領域の内側へ向かうにつれて、配置される数が少なくなるように配置するものである。
【００２６】
第三の実施の形態の一側面として、仮想空間内の領域は、複数のオブジェクトを配置することが可能で、かつ、画素に隣接する隣接画素の画素情報に対応するオブジェクトを、該領域の境界から該領域の内側へ向かうにつれて、配置される数が少なくなるように配置することで、隣接画素の画素情報に対応するオブジェクトが、画素の境界に対応する位置の近辺に配置されるようになり、地形の不自然さもなくオブジェクトを配置することができる。
【００２７】
第三の実施の形態において、「コンピュータ装置」、「仮想空間」、「オブジェクト」、「属性」、「画像」、「画素」、「対象画像」、「対象画像を構成する画素の画像上の位置」、「仮想空間上の位置又は領域」、及び、「配置」とは、それぞれ第一の実施形態において記載した内容と同一である。
【００２８】
［第四の実施の形態］
次に、本発明の第四の実施の形態の概要について説明する。図３は、本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。コンピュータ装置１は、制御部１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２、ストレージ部１３、サウンド処理部１４、グラフィックス処理部１５、ＤＶＤ／ＣＤ−ＲＯＭドライブ１６、通信インタフェース１７、インタフェース部１８とを少なくとも備え、それぞれ内部バスにより接続されている。
【００２９】
制御部１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）から構成される。制御部１１は、ストレージ部１３や記録媒体２４に格納されたプログラムを実行し、コンピュータ装置１の制御を行う。また、制御部１１は時間を計時する内部タイマを備えている。ＲＡＭ１２は、制御部１１のワークエリアである。ストレージ部１３は、プログラムやデータを保存するための記憶領域である。
【００３０】
ＤＶＤ／ＣＤ−ＲＯＭドライブ１６は、ＤＶＤ−ＲＯＭやＣＤ−ＲＯＭなどのプログラムが格納された記録媒体２４を装着することが可能である。記録媒体２４には、例えばプログラム及びデータが記憶されている。ＤＶＤ／ＣＤ−ＲＯＭドライブ１６により、プログラム及びデータが記録媒体２４から読み出され、ＲＡＭ１２にロードされる。
【００３１】
制御部１１は、プログラム及びデータをＲＡＭ１２から読み出して処理を行う。制御部１１は、ＲＡＭ１２にロードされたプログラム及びデータを処理することで、サウンド出力の指示をサウンド処理部１４に出力し、描画命令をグラフィックス処理部１５に出力する。
【００３２】
サウンド処理部１４は、スピーカであるサウンド出力装置２１に接続されている。制御部１１がサウンド出力の指示をサウンド処理部１４に出力すると、サウンド処理部１４はサウンド出力装置２１にサウンド信号を出力する。
【００３３】
グラフィックス処理部１５は表示装置２２に接続されている。表示装置２２は表示画面２３を有している。制御部１１が描画命令をグラフィックス処理部１５に出力すると、グラフィックス処理部１５は、フレームメモリ（フレームバッファ）１９に画像を展開し、表示画面２３上に画像を表示するためのビデオ信号を出力する。グラフィックス処理部１５は、フレーム単位で１枚の画像の描画を実行する。画像の１フレーム時間は、例えば３０分の１秒である。グラフィックス処理部１５は、制御部１１だけで行ってきた描画に関する演算処理の一部を受け持ち、システム全体の負荷を分散させる役割を有する。
【００３４】
インタフェース部１８には入力部２０（例えば、マウスやキーボード等）が接続され得る。ユーザによる入力部２０からの入力情報はＲＡＭ１２に格納され、制御部１１は入力情報をもとに各種の演算処理を実行する。あるいは、インタフェース部１８に記憶媒体読取装置を接続し、メモリ等からプログラム及びデータ等を読み込むことも可能である。また、タッチパネルを備えた表示装置２２を入力部２０とすることもできる。
【００３５】
通信インタフェース１７は無線又は有線により通信ネットワーク２に接続が可能であり、通信ネットワーク２を介して他のコンピュータ装置との間で情報の送受信を行うことが可能である。
【００３６】
次に、本発明の第四の実施の形態におけるプログラム実行処理について説明する。図４は、本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。第四の実施の形態は、一例として、９６×９６ピクセルのビットマップ形式の画像を用いて、仮想空間にオブジェクトを配置するプログラムを挙げる。
【００３７】
最初に、仮想空間の大きさを表すフィールドサイズを読み込む（ステップＳ１１）。フィールドサイズは任意の大きさを設定することができる。
【００３８】
次に、画像を読み込む（ステップＳ１２）。画像は画素に関する情報を得られるものであれば形式は問わず、上述したように、ビットマップ形式を初め、ＪＰＥＧ形式、あるいはＰＮＧ形式であってもよい。
【００３９】
続いて、画像に含まれる全ての画素に関する情報を取得する（ステップＳ１３）。ここでは、例えば、画素の位置情報、色情報、及び、属性情報を取得する。
【００４０】
ここで、画素に含まれる情報の取得について説明する。図５は、本発明の実施の形態の少なくとも１つに対応する、画素情報を表す図である。図５（ａ）は、画素の位置を説明するための図である。画像３０は複数の画素から構成されており、画素はマスにより表される。画像３０の左上の隅を基準点Ｏとし、かつ、基準点Ｏの縦方向に伸びる軸をｘ軸、横方向に伸びる軸をｙ軸とした場合に、画素の位置は基準点Ｏからｘ軸方向に沿って何番目であり、ｙ軸方向に沿って何番目の画素であるかによって、ｘ及びｙを用いて表すことができる。例えば、図に示す画素３１は、基準点Ｏからｘ軸方向に沿って２番目で、ｙ軸方向でに沿って３番目の画素であり、ｘが２、ｙが３であるから、画素３１の位置を（ｘ，ｙ）＝（２，３）と表すことができる。
【００４１】
図５（ｂ）は、画素情報テーブルを表す図である。画素情報テーブル４０には、画素のｘ座標４１及びｙ座標４２に関連付けて、画素のＲＧＢの濃度値をそれぞれ表す、Ｒ４３、Ｇ４４、及び、Ｂ４５が記憶されている。プログラムは、各々の画素に設定されたＲＧＢの濃度値を取得することができる。
【００４２】
取得した画素のＲＧＢの濃度値と、ストレージ部１３に記憶された、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を表すマスタデータとを照合し、画素に対応付けられる属性情報を取得する。
【００４３】
図６は、本発明の実施の形態の少なくとも１つに対応する、オブジェクト対応関係マスタテーブルを表す図である。オブジェクト対応関係マスタ５０には、ＲＧＢの濃度値をそれぞれ表すＲ５１、Ｇ５２、及び、Ｂ５３に関連付けて、属性５４、及び、基準高さ５５が記憶されている。取得した画素のＲＧＢの濃度値に対応する、オブジェクト対応関係マスタ５０のＲ５１、Ｇ５２、及びＢ５３を抽出し、画素に関する情報として属性５４及び基準高さ５５を取得する。ここで、オブジェクト対応関係マスタ５０に含まれるＲＧＢの濃度値は、それぞれ特定の値であっても、範囲を有する値であってもよい。
【００４４】
次に、各々の画素に対応するオブジェクトを配置するための処理を行う。後述するステップＳ１４〜Ｓ１７までの処理は各々の画素について行われ、全ての画素について処理を完了するまで、繰り返し実行される。まず、処理をする対象の画素である処理対象画素を特定し（ステップＳ１４）、処理対象画素の画像上の位置にしたがって、仮想空間内の領域を割り当てる割当てを行う（ステップＳ１５）。
【００４５】
ここで、ステップＳ１５の割当てについて説明する。図７は、割当処理の概念を表す図である。９６×９６ピクセルのビットマップ形式の画像を用いて、割り当て処理を行う場合、仮想空間は、Ｘ軸（仮想空間の水平面上の所定の方向に伸びる軸）方向に９６分割し、Ｙ軸（該水平面上であってＸ軸に垂直な方向に伸びる軸）方向に９６分割した直方体状の領域（９２１６個の直方体状の領域）に分割することができる。つまり、仮想空間を画素数と同じ数の領域に分割することができる。分割された領域は、仮想空間において、所定の面積を有し、Ｚ軸方向（高さ方向）に沿って、Ｚの値が下限から上限までの高さを有する直方体状の形状を有している。
【００４６】
各領域の位置は、仮想空間６３の所定の点を基準点Ｏ’とした場合に、基準点Ｏ’からＸ軸方向に沿って何番目の領域であり、Ｙ軸方向に沿って何番目の領域であるかによって、Ｘ及びＹを用いて表すことができる。例えば、図に示す領域６４は、基準点Ｏ’からＸ軸方向に沿って２番目で、Ｙ軸方向に沿って３番目の画素であり、Ｘが２、Ｙが３であるから、領域６４の位置は（Ｘ，Ｙ）＝（２，３）と表すことができる。
【００４７】
処理対象の画像は、仮想空間のＸＹ平面に対応し、各領域は、ビットマップ形式の画像を構成する一画素が、この一領域に対応する。例えば、処理対象画素が基準点Ｏからｘ軸方向に沿ってａ番目であり、ｙ軸方向に沿ってｂ番目の画素である場合、この画素は、仮想空間の基準点Ｏ’からＸ軸方向に沿ってａ番目で、Ｙ軸方向に沿ってｂ番目の領域に割り当てられる。よって、画素の位置が（ｘ，ｙ）＝（２，３）で表される画素６１は、領域の位置が（Ｘ，Ｙ）＝（２，３）で表される領域６４に割り当てられる。また、画素６１に隣接する（ｘ，ｙ）＝（１，３）、（３，３）、（２，２）、（２，４）で表される画素は、領域６４に隣接する（Ｘ，Ｙ）＝（１，３）、（３，３）、（２，２）、（２，４）で表される領域に割り当てられる。つまり、隣接する２つの画素は、ＸＹ平面においてｘｙ平面での位置関係を維持しつつ、仮想空間の隣接する２つの領域が割り当てられる。よって、ステップＳ１５における割当て処理により、処理対象の画像中のそれぞれの画素の位置にしたがって、仮想空間内の領域が対応付けされるため、後の処理ステップにより、画素に対して割当てられた領域内に、その画素の色情報をもとに特定されるオブジェクトを配置することで、処理対象の画像をいわゆる地図に相当するものとした場合に、地図に対応する地形を有する仮想空間を生成することが可能となる。
【００４８】
次に、図４のフローチャートに戻り、オブジェクト配置処理を行う（ステップＳ１６）。図８は、本発明の実施の形態の少なくとも１つに対応する、オブジェクト配置処理のフローチャートである。
【００４９】
最初に、処理対象画素に対する、ステップＳ１５において割り当てた情報を読み込む（ステップＳ２１）。次に、隣接画素の情報を用いて、オブジェクトを配置する領域の境界を決める。
【００５０】
ここで、隣接の概念について説明する。本発明の実施の形態の少なくとも１つに対応する、隣接の概念を表す図である。中心となる位置が中心位置７０である場合に、隣接する位置は、上下左右の位置である位置７１のみ、あるいは、左上、右上、左下、及び右下方向の位置７２も含めて、隣接する位置としてもよい。ここでは、一例として、隣接する位置を、中心位置の上下左右の位置７１とする。
【００５１】
次に、処理対象画素に隣接する画素のいずれかを特定し、隣接する画素が対応するオブジェクトが配置される位置との境界を設定する（ステップＳ２２）。境界の設定とは、仮想空間における処理対象画素に対応する領域に、隣接画素の画素情報に対応する領域のオブジェクトを配置するものである。例えば、処理対象画素の属性が「草」であり、隣接画素の属性が「水」であるような場合に、「草原」のオブジェクトと「湖」のオブジェクトの境界が数〜数十のオブジェクトの長さにわたって直線状となると、不自然な地形となる。境界の設定をすることで、領域の境界に不自然さを生ずることなくオブジェクトを配置することができる。
【００５２】
より具体的には、境界の設定は、例えば、１画素に対応する領域が、立方体状のオブジェクトを一単位として、縦１６オブジェクト×横１６オブジェクト×高さ３２オブジェクトの直方体状の領域である場合に、隣接する画素に対応する隣接領域との境界から所定の数のオブジェクト以内（例えば、３オブジェクト以内）のオブジェクトについて、隣接画素に対応するオブジェクトを配置するか否か決定するものである。
【００５３】
決定は任意のルールに基づいてよく、例えば、各オブジェクトに乱数の値を設定し、所定の基準を超えたオブジェクトには隣接画素に対応するオブジェクトを配置することとしてもよい。なお、隣接オブジェクトに対応するオブジェクトの数は、領域の境界から領域の内側へ向かうにつれて、少なくなるように配置されることが好ましい。
【００５４】
次に、領域内にオブジェクトを配置するまでの処理について説明する。例えば、１画素に対応する領域が、縦１６オブジェクト×横１６オブジェクト×高さ３２オブジェクトの直方体状の領域である場合、ＸＹ平面を、Ｘ軸に平行に１６等分に分割し、Ｙ軸に平行に１６等分に分割することで得られる１６×１６個の正方形状のマスの上に、マスの形状に沿ってオブジェクトを配置することができる。この場合、オブジェクトは立方体であり、立方体の一面とマスは同一形状を有する。ステップＳ２３〜２８までの処理はマスの位置毎に行われ、仮想領域内の全ての位置について、オブジェクトが配置されるまで、繰り返し実行される。例えば、基準点Ｏ’に最も近いマスから一列にＸ軸方向に沿って順にステップＳ２３〜Ｓ２８までの処理が実行され、続いて、最初に処理されたマスに隣接する未処理のマスから一列にＸ軸方向に沿って同ステップの処理を実行する、といったように、マスを一列づつ処理していくことができる。
【００５５】
まず、処理の対象となるマスの位置（以下、処理位置という）を特定し（ステップＳ２３）、処理位置におけるオブジェクトの高さを算出する（ステップＳ２４）。ここで、オブジェクトの高さとは、マス上に重ねて配置されるオブジェクトの数をいう。同じマスに配置されるオブジェクトは、画素に対応する属性を有するオブジェクトが配置される。処理位置におけるオブジェクトの高さの算出は、ステップＳ２１において読み込んだ割当情報に含まれる、基準高さに基づいて行われる。例えば、オブジェクトの高さは、基準高さに乱数を用いて生成された値を加算する、或いは、基準高さに乱数を用いて生成された値を乗じることにより算出できる。このようにすることで、オブジェクトの高さは、画素情報に応じて特定される基準高さから所定の範囲内となり、マスの位置に応じて高さを維持しつつも、その地形に応じた高さを設定することができる。
【００５６】
次に、ステップＳ２４にて算出された処理位置のオブジェクトの高さと、処理位置に隣接する隣接位置のオブジェクトの高さとの差分の絶対値を取得し、所定の範囲外か否かを判定する（ステップＳ２５）。ステップＳ２４によりオブジェクトの高さが、すでに設定されている隣接位置が複数ある場合は、処理位置のオブジェクトの高さと、隣接位置のオブジェクトの高さの平均との差分の絶対値を取得し、所定の範囲外か否かを判定してもよい。
【００５７】
高さの差分が所定の範囲外である場合には（ステップＳ２５にてＹＥＳ）、処理位置の高さを所定の範囲内に含まれるように調整する（ステップＳ２６）。高さの調整後、あるいは、高さの差分が所定の範囲内である場合には（ステップＳ２５にてＮＯ）、処理位置に配置するオブジェクトを決定する（ステップＳ２７）。なお、最初の処理位置については、隣接位置の高さが未定であるので、ステップＳ２５、Ｓ２６の処理は実行されず、ステップＳ２４の後にステップＳ２７が実行される。
【００５８】
ここで、配置されるオブジェクトについて説明する。図１０は、本発明の実施の形態の少なくとも１つに対応する、属性対応マスタテーブルを表す図である。属性対応マスタテーブル８０には、属性８１に関連付けて、オブジェクト８２が記憶されている。属性８１は、オブジェクト対応関係マスタ５０に記憶された属性５４と対応する。すなわち、画素情報に含まれる属性であって、画素に対応する属性に基づいて、属性対応マスタテーブル８０に記憶されたオブジェクト８２が決定される。
【００５９】
図１０に示すように、同一の属性８１であっても、異なる表示態様のオブジェクト８２が含まれ得る。例えば、属性８１が「草」である場合に、オブジェクト８２は、「草原」「低木」「高木」が含まれる。いずれのオブジェクト８２が決定されるかは、任意のオブジェクトが決定されるようにしてもよく、予め定められた確率に基づいて決定されるようにしてもよい。
【００６０】
また、配置されるオブジェクトは、ステップＳ２４において算出された、あるいは、ステップＳ２６において調整された処理位置の高さとなるように積み上げられるものであるから、属性８１が配置される高さに関する情報にしたがって分別されているものでもよい。例えば、属性８１が「草」である場合に、領域の底から２オブジェクトは「粘土」、底から３〜５オブジェクトは「土」、底から６〜８オブジェクトは「砂」、そして、最上階層のオブジェクトのみが「草原」となるように配置してもよい。この場合には、属性対応マスタテーブル８０に配置高さの概念を追加し得る。
【００６１】
図８のフローチャートに戻り、ステップＳ２７において決定されたオブジェクトを、処理位置に配置する（ステップＳ２８）。その後、次の位置を処理位置とし（ステップＳ２９）、領域内の全ての位置について処理したら終了する。
【００６２】
続いて、図４のフローチャートに戻り、オブジェクトの配置が完了したら、次の画素を処理対象画素とし（ステップＳ１７）、画像中の全ての画素に対して処理を完了したら、全てのオブジェクトの配置が完了し、フィールドが生成されたとして、終了する。
【００６３】
上述の例において、フィールドサイズが画像サイズより大きい場合を説明したが、第四の実施の形態はこれに限られない。例えば、フィールドサイズが画像サイズと同一であれば、画素と、画素に対応する領域とが対応するため、画素の情報にしたがってオブジェクトが配置され、境界の設定は行われないこととしてもよい。
【００６４】
あるいは、フィールドサイズが画像サイズと同一の場合には、画像サイズを縮小したうえで、オブジェクトの配置処理を行うようにしてもよい。
【００６５】
また、フィールドサイズが画像サイズより小さい場合には、画像サイズをフィールドサイズに適合するために、画素を統合する処理を行う。例えば、複数の画素に含まれる色彩情報を平均化する、あるいは、複数の画素に含まれる色彩情報のうち、最も含まれている数が多い色彩を代表の色彩情報とする等により、統合した新たな画素の色彩情報とし、図４のフローチャートにしたがって処理することができる。
【００６６】
上述の例においては、図４のフローチャートのステップＳ１２において画像を読み込んでいるが、第四の実施の形態はこれに限られない。例えば、ゲームを開始する際に、複数の画像が用意されている中から、ユーザの操作にしたがって選択した画像を読み込むようにしてもよく、あるいは、ユーザの操作により描かれた画像を読み込むようにしてもよい。このようにすることで、ユーザは、自身が選択あるいは描画した画像と同一性をある程度維持しつつ、バリエーションをもったフィールドを生成することができる。
【００６７】
上述の例においては、処理位置ごとのオブジェクトの高さを算出した後に、高さを調整しているが、第四の実施の形態はこれに限られない。例えば、最初に乱数を用いて高低の差分を表すノイズフィルタを作成し、領域内の各オブジェクトの位置にフィルタを適用して、各位置のオブジェクトの高さを算出するようにしてもよい。あるいは、高さを算出せずに、領域内の全てのオブジェクトを一律に基準高さとするようにしてもよい。
【００６８】
第四の実施の形態において、読み込む画像を自動で生成するものであってもよい。この場合には、ストーリーや世界観を保つために動かしてはならない画素（例えば、街や城等の重要要素）に関する設定を可能としたり、自由に動かせる画素は任意に配置を変更させたりしてもよい。
【００６９】
第四の実施の形態において、上述した例に加えて、画素に他の情報を関連付けることも可能である。例えば、敵キャラクタのレベルに関する情報等を画素に関連付けることで、画像に含まれる画素情報を変更した際に、他の情報の更新を都度行わなければならない手間を減らすことができ、開発工数を削減することができる。
【００７０】
第四の実施の形態の一側面として、オブジェクトを高さ方向に重ねて配置することが可能であり、任意の数のオブジェクトが高さ方向に重ねて配置されることにより、複雑な計算をすることなく、地形の高さにバリエーションをもたせることができる。
【００７１】
第四の実施の形態の一側面として、オブジェクト又は画素情報に設定される基準高さに応じた、所定の範囲内の数のオブジェクトが、高さ方向に重ねて配置されることにより、同一の属性を有するオブジェクトの高さが著しく不均衡になることなく、オブジェクトを配置することができる。
【００７２】
第四の実施の形態の一側面として、仮想空間内の或る位置において高さ方向に重ねて配置されたオブジェクトの数と、該位置と隣接する隣接位置において高さ方向に重ねて配置されたオブジェクトの数との差が所定の範囲内となるように、直方体状のオブジェクトを配置することにより、地形の不自然さなくオブジェクトを配置することができる。
【００７３】
第四の実施の形態の一側面として、コンピュータ装置にオブジェクトの属性毎に、複数の種類のオブジェクトを記憶させ、仮想空間内に配置することのできる属性の異なる複数のオブジェクトについて、各オブジェクトに関する属性情報と、画像を構成する画素に関する画素情報との対応関係を記憶するものであり、前記対応関係にしたがって、記憶された複数のオブジェクトから、対象画像を構成する画素の画素情報に対応する属性を有する任意のオブジェクトを配置することにより、同一の画素であっても、異なる種類のオブジェクトを配置することができ、生成される地形にバリエーションをもたせることができる。
【００７４】
第四の実施の形態の一側面として、複数の画像からユーザの操作により選択された画像を対象画像として仮想空間にオブジェクトを配置することにより、ユーザがプレイすることのできる仮想空間にバリエーションをもたせることができる。
【００７５】
第四の実施の形態の一側面として、コンピュータ装置に、ユーザの操作により画像を描画する機能を備えさせ、描画された画像を対象画像として仮想空間にオブジェクトを配置することにより、ユーザは簡単な操作で、自分の好みの仮想空間を発生させるこ都が可能となる。
【００７６】
第四の実施の形態の一側面として、仮想世界を自動生成させるために、容易に編集可能な画像を用いることで、開発者は例えばビットマップ形式の色を変更するだけで設定を容易に変更することができ、工数を削減することができる。
【００７７】
第四の実施の形態の一側面として、容量の小さな画像データを用いて仮想世界を自動生成させることにより、ネットワーク通信により画像データを配信することが可能となり、通信量の削減に貢献することが可能となる。
【００７８】
第四の実施の形態において、「コンピュータ装置」、「仮想空間」、「オブジェクト」、「属性」、「画像」、「画素」、「対象画像」、「対象画像を構成する画素の画像上の位置」、「仮想空間上の位置又は領域」、及び、「配置」とは、それぞれ第一の実施形態において記載した内容と同一である。
【００７９】
第四の実施の形態において、「画像に関する情報」とは、例えば、画像データに関する情報であって、画素の位置情報、画素の色彩情報、輝度情報等をいう。「境界の設定」とは、例えば、画素に対応するオブジェクトの境界を定めることをいう。「基準高さ」とは、例えば、色彩情報に予め関連付けられた、画素に設定される情報であって、基準となる高さである。
【００８０】
［付記］
上で述べた実施の形態の説明は、下記の発明を、発明の属する分野における通常の知識を有する者がその実施をすることができるように記載した。
【００８１】
［１］  コンピュータ装置において実行され、仮想空間にオブジェクトを自動的に配置することができるプログラムであって、
コンピュータ装置を、
仮想空間内に配置することのできる属性の異なる複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係記憶手段、
仮想空間の生成に用いられる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当手段、
前記対応関係にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを、割り当てられた仮想空間内の位置又は領域に配置するオブジェクト配置手段
として機能させるプログラム。
【００８２】
［２］  オブジェクト配置手段は、さらに、該画素に隣接する隣接画素の画素情報に対応するオブジェクトを、該画素に割り当てられた仮想空間内の位置又は領域に配置する、
［１］に記載のプログラム。
【００８３】
［３］  仮想空間内の領域は、複数のオブジェクトを配置することが可能であり、
オブジェクト配置手段は、該画素に隣接する隣接画素の画素情報に対応するオブジェクトを、該領域の境界から該領域の内側へ向かうにつれて、配置される数が少なくなるように配置する、［２］に記載のプログラム。
【００８４】
［４］  オブジェクト配置手段は、オブジェクトを高さ方向に重ねて配置することが可能であり、任意の数のオブジェクトが高さ方向に重ねて配置される、［１］〜［３］のいずれかに記載のプログラム。
【００８５】
［５］  オブジェクト配置手段は、オブジェクト又は画素情報に設定される基準高さに応じた、所定の範囲内の数のオブジェクトが、高さ方向に重ねて配置される、［４］に記載のプログラム。
【００８６】
［６］  オブジェクトは直方体状であり、
オブジェクト配置手段は、仮想空間内の或る位置において高さ方向に重ねて配置されたオブジェクトの数と、該位置と隣接する隣接位置において高さ方向に重ねて配置されたオブジェクトの数との差が所定の範囲内となるようにオブジェクトを配置する、［４］又は［５］に記載のプログラム。
【００８７】
［７］  コンピュータ装置を、
オブジェクトの属性毎に、複数の種類のオブジェクトを記憶するオブジェクト記憶手段
として機能させ、
対応関係記憶手段が、仮想空間内に配置することのできる属性の異なる複数のオブジェクトについて、各オブジェクトに関する属性情報と、画像を構成する画素に関する画素情報との対応関係を記憶するものであり、
オブジェクト配置手段が、前記対応関係にしたがって、オブジェクト記憶手段に記憶された複数のオブジェクトから、対象画像を構成する画素の画素情報に対応する属性を有する任意のオブジェクトを配置する、［１］〜［６］のいずれかに記載のプログラム。
【００８８】
［８］  コンピュータ装置を、
複数の画像から少なくとも１つの画像を選択する選択手段
として機能させ、
選択手段により選択された画像を対象画像として、割当手段及びオブジェクト配置手段を実行する、［１］〜［７］のいずれかに記載のプログラム。
【００８９】
［９］  コンピュータ装置を、
ユーザの操作により画像を描画する描画手段
として機能させ、
描画手段により描画された画像を対象画像として、割当手段及びオブジェクト配置手段を実行する、［１］〜［７］のいずれかに記載のプログラム。
【００９０】
［１０］  仮想空間にオブジェクトを自動的に配置することができるコンピュータ装置であって、
仮想空間内に配置することのできる属性の異なる複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係記憶手段と、
仮想空間の生成に用いられる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当手段と、
前記対応関係にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを、割り当てられた仮想空間内の位置又は領域に配置するオブジェクト配置手段と
を備えるコンピュータ装置。
【００９１】
［１１］  コンピュータ装置において実行され、仮想空間にオブジェクトを自動的に配置することができるプログラム実行方法であって、
仮想空間内に配置することのできる属性の異なる複数のオブジェクトについて、各オブジェクトに関するオブジェクト情報と、画像を構成する画素に関する画素情報との対応関係を記憶する対応関係ステップと、
仮想空間の生成に用いられる対象画像を構成する画素の画像上の位置にしたがって、画素毎に仮想空間内の位置又は領域を割り当てる割当ステップと、
前記対応関係にしたがって、対象画像を構成する画素の画素情報に対応するオブジェクトを、割り当てられた仮想空間内の位置又は領域に配置するオブジェクト配置ステップと
を有するプログラム実行方法。
【符号の説明】
【００９２】
１      コンピュータ装置
１１    制御部
１２    ＲＡＭ
１３    ストレージ部
１４    サウンド処理部
１５    グラフィックス処理部
１６    ＤＶＤ／ＣＤ−ＲＯＭドライブ
１７    通信インタフェース
１８    インタフェース部
１９    ビデオメモリ
２０    入力部
２１    サウンド出力装置
２２    表示部
２３    表示画面
２４    記録媒体
２      通信ネットワーク
４０    画素情報テーブル
５０    オブジェクト対応関係マスタ
８０    属性対応マスタ
【図１】
2020201985.tif 000003
【図２】
2020201985.tif 000004
【図３】
2020201985.tif 000005
【図４】
2020201985.tif 000006
【図５】
2020201985.tif 000007
【図６】
2020201985.tif 000008
【図７】
2020201985.tif 000009
【図８】
2020201985.tif 000010
【図９】
2020201985.tif 000011
【図１０】
2020201985.tif 000012