(57)【特許請求の範囲】
【請求項１】
プレイヤからの入力操作に基づき、キャラクタオブジェクトをゲームマップ内で移動又は行動させるゲームをコンピュータに実行させるゲームプログラムであって、
前記コンピュータを、
前記ゲームマップ内に配置されるマップオブジェクトの一部を成すマップピースを記憶する記憶手段、
画像データを読み込み、当該画像データから輝度画像を生成する輝度画像生成手段、
前記ゲームマップに対して予め設定した区分数の所定領域を、前記輝度画像を区分した領域にそれぞれ対応付け、前記所定領域毎に、当該所定領域に対応する前記輝度画像の区分領域の画素値を検出する検出手段、
前記検出手段により検出した画素値に基づいて、前記マップピースを配置する前記所定領域を決定し、前記決定した所定領域に前記マップピースを配置する配置手段、
として機能させる、ゲームプログラム。
【請求項２】
前記マップピースは複数種類からなり、
前記配置手段は、
配置するマップピースに対応する所定領域の周囲の所定領域の前記値の検出状況に応じて、当該マップピースの種類を決定する、請求項１に記載のゲームプログラム。
【請求項３】
前記マップピースは複数種類からなり、
前記コンピュータを、
難易度を決定する難易度決定手段
として更に機能させ、
前記配置手段は、
前記難易度に応じて、前記マップピースの種類を決定する、請求項１又は２に記載のゲームプログラム。
【請求項４】
前記配置手段は、
前記マップピースが隣接して配置された一のマップピース群と他のマップピース群との最短距離に対応する位置の所定領域に、当該一のマップピース群と当該他のマップピース群とを連結するマップピースを配置する、請求項１〜３のいずれか一項に記載のゲームプログラム。
【請求項５】
前記コンピュータを、
前記ゲームマップ内に前記キャラクタオブジェクトが移動又は行動を開始するスタート地点と、移動又は行動を終了するゴール地点とを設定する設定手段
として更に機能させ、
前記設定手段は、
配置されたマップピースのうちで最も遠距離同士になるマップピースを一組検索し、一方のマップピース上に前記スタート地点を設定し、他方のマップピース上に前記ゴール地点を設定する、請求項１〜４のいずれか一項に記載のゲームプログラム。
【請求項６】
前記コンピュータを、
前記輝度画像生成手段により生成された画像を異なる前記区分数の所定領域にそれぞれ当てはめる当てはめ手段
として更に機能させ、
前記当てはめ手段は、
前記難易度決定手段により決定した難易度に応じて前記当てはめに用いる前記区分数の所定領域を選択する、請求項３に記載のゲームプログラム。
【請求項７】
前記難易度決定手段は、前記コンピュータとともにゲーム装置を構成する加速度検出手段により検出した加速度の値が大きいほど難易度を高く決定する、請求項３に記載のゲームプログラム。
【請求項８】
プレイヤからの入力操作に基づき、キャラクタオブジェクトをゲームマップ内で移動又は行動させるゲームを実行するゲーム装置であって、
前記ゲームマップ内に配置されるマップオブジェクトの一部を成すマップピースを記憶する記憶手段と、
画像データを読み込み、当該画像データから輝度画像を生成する輝度画像生成手段と、
前記ゲームマップに対して予め設定した区分数の所定領域を、前記輝度画像を区分した領域にそれぞれ対応付け、前記所定領域毎に、当該所定領域に対応する前記輝度画像の区分領域の画素値を検出する検出手段と、
前記検出手段により検出した画素値に基づいて、前記マップピースを配置する前記所定領域を決定し、前記決定した所定領域に前記マップピースを配置する配置手段と、
を備える、ゲーム装置。
【請求項９】
請求項１〜７のいずれか一項に記載のゲームプログラムを記録した記録媒体。
【請求項１０】
プレイヤからの入力操作に基づき、ゲームフィールドに設定されたコースでキャラクタオブジェクトを移動又は行動させるゲームをコンピュータに実行させるゲームプログラムであって、
前記コンピュータを、
画像データを所定数に区分し、当該区分毎の前記画像データのカラー情報を記憶する記憶手段、
前記ゲームフィールドを平面で表現するマップ上に設けた各領域と前記区分とを対応させ、前記区分のカラー情報に基づいて、前記コースを設定するマップ上の領域を決定し、前記決定した領域に前記コースの一部を成すピースを設定する設定手段、
として機能させる、ゲームプログラム。
【請求項１１】
前記設定手段は、
複数の前記ピースを組み合わせた一のピース群と他のピース群とを繋ぐピースを設定する、請求項１０に記載のゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一態様は、ゲームプログラム、ゲーム装置、及び、ゲームプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
プレイヤがプレイヤキャラクタを操作して複数の部屋や通路からなるパターンが複数配置されたマップを進んでいくゲームにおいて、プレイヤ自らが部屋や通路のパターンを選択したり、そのサイズを指定したりすることにより、マップを作成し、自由度の高いゲーム展開を可能にさせる方法が知られている（例えば、下記の特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−１４０９３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のような方法では、プレイヤが、マップに配置する部屋や通路のパターンやサイズを全て指定しなければならない。そのため、プレイヤがマップを作成する際、非常に手間が掛かってしまう。
【０００５】
本発明の目的の一つは、ゲームマップを簡単に作成できるようにすることにある。
【０００６】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の一つとして位置付けることができる。
【課題を解決するための手段】
【０００７】
本発明のゲームプログラムの一態様は、プレイヤからの入力操作に基づき、キャラクタオブジェクトをゲームマップ内で移動又は行動させるゲームをコンピュータに実行させるゲームプログラムであって、前記コンピュータを、前記ゲームマップ内に配置されるマップオブジェクトの一部を成すマップピースを記憶する記憶手段、画像データを読み込み、当該画像データから輝度画像を生成する輝度画像生成手段、前記ゲームマップに対して予め設定した区分数の所定領域毎に、前記輝度画像の値を検出する検出手段、前記検出手段により検出した値に基づいて、前記所定領域のいずれかに前記マップピースを配置する配置手段、として機能させる。
【０００８】
ここで、前記マップピースは複数種類からなり、前記配置手段は、配置するマップピースに対応する所定領域の周囲の所定領域の前記値の検出状況に応じて、当該マップピースの種類を決定する、ようにしてもよい。
【０００９】
また、前記ゲームプログラムは、前記コンピュータを、難易度を決定する難易度決定手段として更に機能させ、前記配置手段は、前記難易度に応じて、前記マップピースの種類を決定する、ようにしてもよい。
【００１０】
さらに、前記配置手段は、前記マップピースが隣接して配置された一のマップピース群と他のマップピース群との最短距離に対応する位置の所定領域に、当該一のマップピース群と当該他のマップピース群とを連結するマップピースを配置する、ようにしてもよい。
【００１１】
また、前記ゲームプログラムは、前記コンピュータを、前記ゲームマップ内に前記キャラクタオブジェクトが移動又は行動を開始するスタート地点と、移動又は行動を終了するゴール地点とを設定する設定手段として更に機能させ、前記設定手段は、配置されたマップピースのうちで最も遠距離同士になるマップピースを一組検索し、一方のマップピース上に前記スタート地点を設定し、他方のマップピース上に前記ゴール地点を設定する、ようにしてもよい。
【００１２】
さらに、前記ゲームプログラムは、前記コンピュータを、前記輝度画像生成手段により生成された輝度画像を異なる前記区分数の所定領域にそれぞれ当てはめる当てはめ手段として更に機能させ、前記当てはめ手段は、前記難易度決定手段により決定した難易度に応じて前記当てはめに用いる前記区分数の所定領域を選択する、ようにしてもよい。
【００１３】
また、前記ゲームプログラムは、前記コンピュータを、加速度を検出する加速度検出手段として更に機能させ、前記難易度決定手段は、前記加速度検出手段により検出した加速度の値が大きいほど難易度を高く決定する、ようにしてもよい。
【００１４】
さらに、本発明のゲーム装置の一態様は、プレイヤからの入力操作に基づき、キャラクタオブジェクトをゲームマップ内で移動又は行動させるゲームを実行するゲーム装置であって、前記ゲームマップ内に配置されるマップオブジェクトの一部を成すマップピースを記憶する記憶手段と、画像データを読み込み、当該画像データから輝度画像を生成する輝度画像生成手段と、前記ゲームマップに対して予め設定した区分数の所定領域毎に、前記輝度画像の値を検出する検出手段と、前記検出手段により検出した値に基づいて、前記所定領域のいずれかに前記マップピースを配置する配置手段と、を備える。
【００１５】
また、本発明の記録媒体の一態様は、上述したゲームプログラムを記録した記録媒体である。
【００１６】
さらに、本発明のゲームプログラムの一態様は、プレイヤからの入力操作に基づき、ゲームフィールドに設定されたコースでキャラクタオブジェクトを移動又は行動させるゲームをコンピュータに実行させるゲームプログラムであって、前記コンピュータを、画像データを所定数に区分し、当該区分毎の前記画像データのカラー情報を記憶する記憶手段、前記ゲームフィールドを平面で表現するマップ上に設けた各領域と前記区分とを対応させ、前記区分のカラー情報に基づいて、当該区分に対応する領域に前記コースの一部を成すピースを設定する設定手段、として機能させる。
【００１７】
ここで、前記設定手段は、複数の前記ピースを組み合わせた一のピース群と他のピース群とを繋ぐピースを設定する、こととしてもよい。
【図面の簡単な説明】
【００１８】
【図１】一実施形態に係るゲーム装置の前面外観例を示す平面図である。
【図２】図１に例示するゲーム装置の外観を示す背面外観例を示す平面図である。
【図３】図１及び図２に例示するゲーム装置の概略ハードウェア構成の一例を示すブロック図である。
【図４】図３に例示するメモリモジュールの内容の一例を示す図である。
【図５】図１及び図２に例示するゲーム装置の機能的構成を説明するブロック図である。
【図６】本実施形態のゲーム装置においてゲームマップを作成する手順を説明するフローチャートである。
【図７】本実施形態のゲームマップ作成手順を説明するための図である。
【図８】本実施形態のゲームマップ作成手順を説明するための図である。
【図９】（Ａ）及び（Ｂ）はいずれも本実施形態のゲームマップ作成手順を説明するための図である。
【図１０】（Ａ）及び（Ｂ）はいずれも本実施形態のゲームマップ作成手順を説明するための図である。
【図１１】（Ａ）及び（Ｂ）はいずれも本実施形態のゲームマップ作成手順を説明するための図である。
【図１２】本実施形態のゲームマップ作成手順を説明するための図である。
【図１３】本実施形態のゲームマップ作成手順を説明するための図である。
【図１４】本実施形態のゲームマップ作成手順を説明するための図である。
【図１５】本実施形態のゲームマップ作成手順を説明するための図である。
【図１６】本実施形態のゲームマップ作成手順を説明するための図である。
【図１７】本実施形態のゲームマップ作成手順を説明するための図である。
【図１８】本実施形態のマップピースのリスト例を示す図である。
【図１９】本実施形態のマップピースのリスト例を示す図である。
【図２０】本実施形態のマップピースのリスト例を示す図である。
【図２１】本実施形態のマップピースのリスト例を示す図である。
【図２２】本実施形態のマップピースのリスト例を示す図である。
【図２３】本実施形態のマップピースのリスト例を示す図である。
【図２４】本実施形態のマップピースのリスト例を示す図である。
【図２５】本実施形態のマップピースの一例（コースの傾斜）を示す図である。
【図２６】本実施形態のマップピースの一例（段差：コースの凸凹）を示す図である。
【図２７】本実施形態のマップピースの一例（段差：コースの高低差）を示す図である。
【図２８】本実施形態のマップピースの一例（ギミック：動く床）を示す図である。
【図２９】本実施形態のマップピースの一例（ギミック：バンパー）を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。即ち、本発明は、その趣旨を逸脱しない範囲で種々変形（各実施例を組み合わせる等）して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
【００２０】
（ゲーム装置の構成例）
図１は、一実施形態に係るゲーム装置の前面外観を示す平面図であり、図２は、同ゲーム装置の背面外観例を示す平面図である。図１及び図２に例示するゲーム装置１００は、ハウジング１１０によりその外観を略規定されている。本例では、スーパーオーバル形状のハウジング１１０が採用され、ユーザが両手で把持しやすい程度の大きさにハウジング１１０が設計されている。なお、図１及び図２には図示していないが、ハウジング１１０の内部には、ゲーム装置１００を統括的に制御する制御部の一例であるコンピューティングデバイス２１０が収納されている。
【００２１】
ゲーム装置１００は、ハウジング１１０の前面略中央部に配置されたタッチスクリーン２２０（タッチパネル）を備える。タッチスクリーン２２０は、例示的に、ディスプレイ（スクリーン）２２１上に透過性のタッチセンサ２２２を配した、表示及び入力機能を備える装置である。タッチスクリーン２２０の一例、マルチタッチに対応した有機ＥＬディスプレイである。ただし、これに限定されない。
【００２２】
ハウジング１１０の左右両端部には複数の操作ボタン２６０を配置してよい。当該操作ボタンの配置位置は、例えば、ユーザが両手でハウジング１１０を把持した場合に親指が当接する左右それぞれの位置に相当する。操作ボタン２６０の一例として、十字ボタン及び丸形ボタンがハウジング１１０の左右両側に配置されている。また、左右の操作ボタンセット近傍には、それぞれオーディオ出力ユニット２３０を配置してよい。
【００２３】
ゲーム装置１００は、外部記憶媒体にアクセスするための外部メディアユニット２４０（図３参照）を備えてよい。外部記憶媒体の一例は、メモリカードやＵＳＢ（Universal Serial Bus）メモリ等であり、ゲームプログラム及び各種のデータを記録することができる。該記憶媒体には、様々な規格の媒体を採用してよい。外部記憶媒体を着脱するため、ゲーム装置１００のハウジング１１０には、外部記憶媒体の接続に適当な外部メディアスロットを設けてよい。
【００２４】
また、ゲーム装置１００は、ネットワーク通信を実現する通信ユニット２５０を備えてよい。ネットワーク通信の一例は、例えば、３ＧやＷｉＦｉといった無線通信規格に準拠した通信である。ただし、これらに限定されない。
【００２５】
さらに、ゲーム装置１００は、図１に例示するように前面（内側）カメラ２７０を備えてよく、また、図２に例示するように背面（外側）カメラ２９０を備えてもよい。前面カメラ２７０は、例示的に、操作ボタンセットの一方（図１において右側）の近傍に設けられている。前面カメラ２７０は、ハウジング１１０前面を成す平面の法線方向を撮影（撮像）方向とし、当該撮影方向にある撮影対象（例えばプレイヤ自身）を撮影することができる。
【００２６】
これに対し、背面カメラ２９０は、例示的に、図２においてハウジング１１０の縁部中央近傍に設けられている。背面カメラ２９０は、ハウジング１１０背面を成す平面の法線方向を撮影方向とし、当該撮影方向にある撮影対象を撮影することができる。
【００２７】
なお、カメラ２７０及び２９０の一方又は双方は、撮影対象を平面的に撮影する２Ｄカメラでもよいし、撮影対象を立体的に撮影可能ないわゆる３Ｄ対応のカメラとしてもよい。
【００２８】
次に、図３は、図１及び図２に例示するゲーム装置の概略ハードウェア構成の一例を示すブロック図である。図３に示すように、本実施形態のゲーム装置１００は、例示的に、コンピューティングデバイス２１０、タッチスクリーン２２０、オーディオ出力ユニット２３０、外部メディアユニット２４０、通信ユニット２５０、操作ボタン２６０、前面カメラ２７０、加速度センサ２８０、及び、背面カメラ２９０を備える。
【００２９】
コンピューティングデバイス２１０は、ゲーム装置１００を統括的に制御する。
【００３０】
タッチスクリーン２２０は、例えば、ゲームを表現あるいは演出するための画像（例えば、静止画、動画、映像等）を表示し、また、ユーザ（プレイヤ）のタッチ操作による入力を受け付ける。
【００３１】
オーディオ出力ユニット２３０は、例えば、ゲームを表現あるいは演出するためのサウンド（例えば、音楽、音声、効果音等）を出力する。
【００３２】
外部メディアユニット２４０は、外部記憶媒体に対するアクセスを可能にする。
【００３３】
通信ユニット２５０は、サーバコンピュータや他のゲーム装置１００とネットワーク通信を可能にする。
【００３４】
操作ボタン２６０は、タッチスクリーン２２０によるユーザ入力に代え、またはその入力を補完するために用いられる。
【００３５】
コンピューティングデバイス２１０は、各種のプロセッサ及びメモリ等からなる、例えばチップセットを含むコンピュータ回路要素である。本実施形態のコンピューティングデバイス２１０は、例示的に、プロセッサコア２１１と、メモリモジュール２１２と、グラフィックスエンジン２１３と、サウンドエンジン２１４と、Ｉ／Ｏコントローラ２１５と、これらを接続するシステムバス２１６とを含む。また、コンピューティングデバイス２１０は、動画像を高速に処理するためのメディアエンジンを備えてもよい。
【００３６】
プロセッサコア２１１は、コンピューティングデバイスのメインプロセッサとして機能するチップである。ここでは、「プロセッサコア」という用語は、メインプロセッサを意味するプロセッサやＣＰＵ、ＭＰＵ等と同義のものとして扱うことができる。
【００３７】
プロセッサコア２１１は、例えば、メモリモジュール２１２上に展開されたゲームプログラムを実行し、コンピューティングデバイス２１０に各種の機能を実現させる。言い換えれば、コンピューティングデバイス２１０は、プロセッサコア２１１の制御の下、ゲームプログラムを実行することにより、他のハードウェアユニット／コンポーネントと協働して、ゲーム装置１００においてゲームを実現する。
【００３８】
ゲームプログラムは、例えば、プロセッサコア２１１の制御の下で実現されるオペレーティングシステム（ＯＳ）の制御の下で、実行されてもよい。プロセッサコア２１１は、シングルコアでもよいしマルチコアでもよい。プロセッサコア２１１は、図示しない複数次のデータキャッシュを含んでよい。
【００３９】
また、プロセッサコア２１１は、図示しない浮動小数点プロセッサ（ＦＰＵ）やベクトル浮動小数点プロセッサ（ＶＦＰＵ）等を接続し、これらと協働して、ゲームプログラムを実行するように構成されてもよい。
【００４０】
メモリモジュール２１２は、ゲームの実行に用いられる各種のプログラム及びデータを記憶する。図４に、メモリモジュール２１２の内容の一例を示す。
【００４１】
メモリモジュール２１２は、例えば、ＤＲＡＭに代表される揮発性メモリ、マスクＲＯＭに代表される書き換え不能な不揮発性メモリ、及びフラッシュメモリに代表される書き換え可能な不揮発性メモリのいずれか又はこれらの適宜の組み合わせで構成してよい。
【００４２】
揮発性メモリは、例示的に、プロセッサコア２１１のメインメモリに供され、例えば、ゲームプログラム及びゲームデータの一部又は全部を必要に応じて記憶する。
【００４３】
不揮発性メモリは、例えば、ＢＩＯＳや、ＯＳプログラム、デバイスドライバ、ゲーム装置１００の制御に必要なシステムデータ、グラフィックデータ、カメラ２７０及び／又は２９０で撮影した画像データ等を記憶する。
【００４４】
グラフィックデータには、１又は複数の「マップピース（又はマップパート）」が含まれてよい。「マップピース」は、タッチスクリーン２２０に表示されるゲームフィールドに設定（あるいは配置）されるゲームマップの一部を成すピースオブジェクトである。複数のマップピースを組み合わせて繋げることで、ゲームマップ上に、ゲーム装置１００のプレイヤの操作入力に応じてキャラクタオブジェクトが移動又は行動するゲームコース（以下、単に「コース」ともいう。）を設定できる。
【００４５】
複数のマップピースは１種類でもよいし複数種類でもよい。複数種類あった方がコースのバリエーションを増やすことができる。マップピースの種類の非限定的な一例としては、平面視において矩形状、Ｉ字状、Ｌ字状、Ｖ字状、Ｙ字状や、それぞれについて太さ（幅）が異なる形状等が挙げられる。詳細については、図１８〜図２９により後述する。キャラクタオブジェクトは、人物、動物、物体等を模擬して表現されてよい。
【００４６】
不揮発性メモリは、マスクＲＯＭを採用することなく、その全てがフラッシュメモリで構成されてもよい。また、メモリモジュール２１２の全てをフラッシュメモリ等の書き換え可能な不揮発性メモリで構成してもよい。ゲーム装置１００の外部メディアスロット外部記憶媒体もまた、メモリモジュール２１２の一部として供されてもよい。
【００４７】
図３に戻り、グラフィックスエンジン２１３は、プロセッサコア２１１の制御の下、各種のグラフィックス処理を行なう。グラフィックスエンジン２１３は、例示的に、グラフィックコア２１３１及びグラフィックメモリ２１３２を含んでよい。
【００４８】
グラフィックコア２１３１は、２Ｄ及び／又は３Ｄのコンピュータグラフィックス（ＣＧ）を生成、描画する機能を有するグラフィックプロセッサの一例であり、ビデオディスプレイプロセッサ（ＶＤＰ）やグラフィックプロセッシングユニット（ＧＰＵ）と称されることもある。
【００４９】
グラフィックコア２１３１は、グラフィックメモリ２１３２に記憶されるグラフィックデータを読み出して、各種のグラフィック処理（例えば、ジオメトリ処理、レンダリング処理、テクスチャマッピング処理等）を行なって、画像データを生成することができる。
例示的に、グラフィックコア２１３１は、ポリゴンのジオメトリ（座標）を計算するジオメトリプロセッサと、ジオメトリ計算されたポリゴンをラスタライズ／レンダリング（描画）するレンダリングプロセッサとを含んでよい。また、グラフィックコア２１３１は、描画された画像をタッチスクリーン２２０等に出力するため、ビデオエンコーダやＨＤＭＩ（High-Definition Multimedia Interface）等を備えていてもよい。
【００５０】
ジオメトリプロセッサは、例えば、ポリゴンの２次元又は３次元のゲーム空間での座標について、行列の回転や拡大等を実施して、アフィン変換等を行ない、ポリゴンの座標を求める。また、ジオメトリプロセッサは、ポリゴンの分割やスプライン補完等のテッセレーションを行なう、「ジオメトリシェーダ」（又はバーテックスシェーダ）を備えてもよい。
【００５１】
レンダリングプロセッサは、例えば、座標計算されたポリゴンについて、テクスチャと呼ばれる画像データを貼り付け、各種効果を加えてグラフィックメモリに描画する。各種効果の一例としては、プログラマブル・シェーダ等を用いて、光点・影（シェーディング）計算、明暗の表現、半透明、ぶれ、霧、ぼかし、ＨＤＲ（ハイダイナミックレンジ合成）等の計算が挙げられる。
【００５２】
ポリゴンの種類の一例としては、点ポリゴン（ポイント）、線ポリゴン（ラインリスト）、三角形や四角形といった面ポリゴン、面ポリゴンの集合体等が挙げられる。加えて、レンダリングプロセッサがレイ・トレーシング等を用いて描画を行なう際には、円、楕円、球、メタボール等の領域で定義される物体を描画することも可能である。
【００５３】
なお、以上のグラフィックコア２１３１による画像処理の一部又は全部は、プロセッサコア２１１で処理するようにしてもよい。グラフィックコア２１３１によって生成された画像データは、ビデオエンコーダ等のビデオインターフェース回路によって所定のビデオ信号に変換され、タッチスクリーン２２０に出力される。
【００５４】
サウンドエンジン２１４は、プロセッサコア２１１の制御の下、サウンドメモリ（図示せず）に記憶されるサウンドデータに対して、適宜、各種のサウンド処理（例えば、エフェクト処理、ミキシング処理等）を施す。サウンドエンジン２１４は、音楽や音声や効果音を出力するためのＰＣＭ（Ｗａｖｅ）音源等を備えたデジタルシグナルプロセッサ（ＤＳＰ）等でもよく、また、物理演算音源、ＦＭ音源等の計算を行ない、残響や反射等の各種音声効果を計算することもできる。サウンドエンジン２１４によって処理されたサウンドデータは、図示しないサウンドインターフェース回路によって所定のオーディオ信号に変換され、オーディオ出力ユニット２３０に出力される。なお、サウンドエンジン２１４は、図示しないマイクから入力された音声の認識等をサポートしてもよい。
【００５５】
Ｉ／Ｏコントローラ２１５は、外部の様々なユニットとの入出力を制御するインターフェース回路の一例である。Ｉ／Ｏコントローラ２１５には、タッチセンサ２２２、操作ボタン２６０、外部メディアユニット２４０、及び通信ユニット２５０を接続することができる。Ｉ／Ｏコントローラ２１５は、接続された各種のユニットから与えられる外部信号をコンピューティングデバイス２１０内の内部データに変換し、また、内部データを各種のユニットに適した外部信号に変換する。
【００５６】
タッチスクリーン２２０は、ユーザインターフェースデバイスの一例であり、ディスプレイ（スクリーン）２２１及び当該ディスプレイ２２１のサイズに略一致するように形成された透過性のタッチセンサ２２２を含んでよい。タッチスクリーン２２０は、コンピューティングデバイス２１０の制御の下、ゲーム画像を表示して、ユーザによるインタラクティブなタッチ操作を受け付けることができる。
【００５７】
ディスプレイ２２１は、グラフィックスエンジン２１３からのビデオ信号に基づいて、画像（例えば、静止画、動画、映像等）をディスプレイ２２１上に表示する。ディスプレイ２２１は、２Ｄ表示に対応するものでもよいし３Ｄ表示に対応するものでもよい。
【００５８】
タッチセンサ２２２は、ユーザによるタッチ操作に応じた操作信号を出力する。ユーザのタッチ操作は、ユーザの指によりなされてもよいし、スタイラス等でもよい。タッチセンサ２２２は、例えば、静電容量タイプのものを採用することができるが、これに限定されない。
【００５９】
タッチセンサ２２２から出力された操作信号は、コンピューティングデバイス２１０に入力される。コンピューティングデバイス２１０は、タッチセンサ２２２からの操作信号を検出すると、ゲームに対する操作として解釈し、これに応じた処理が実行される。
【００６０】
例えば、コンピューティングデバイス２１０は、タッチセンサ２２２からの操作信号に基づいて、ディスプレイ２２１上の位置情報を算出し、ゲーム画像及び時間情報と相まって、操作アクションを決定するために用いられる。本実施形態のゲーム装置１００は、複数の指（又はスタイラス）によるマルチタッチ操作を受け付けることができる。
【００６１】
オーディオ出力ユニット２３０は、オーディオ出力デバイスの一例であり、ゲームの進行状況に合わせて、ユーザにゲーム音を提供する。オーディオ出力ユニット２３０は、サウンドエンジン２１４からのオーディオ信号に基づいて、音（例えば、音声、音楽、効果音等）を発生させる。
【００６２】
外部メディアユニット２４０は、メディアインターフェースデバイスの一例であり、コンピューティングデバイス２１０が外部記憶媒体にアクセスすることを可能にする。外部記憶媒体は、既述のメモリカードやＵＳＢメモリの他、ハードディスクドライブ（ＨＤＤ）、フラッシュメモリ、ＳＲＡＭ（Static Random Access Memory）、磁気テープ装置、光ディスク装置等であってもよい。外部記憶媒体には、ゲームの実行に用いられるゲームプログラム、パラメータ等の各種データを記憶することができる。コンピュータの一例であるゲーム装置１００は、外部記憶媒体からゲームプログラム等を読み取ってメモリモジュール２１２に転送し格納して用いる。
【００６３】
ゲームプログラム等は、コンピュータ読取可能な記録媒体に記録された形態で提供することができる。記録媒体には、例えば、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＢＤ（Blue-ray Disk）、ＲＯＭカートリッジ、バッテリバックアップ付きＲＡＭカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジ等が含まれてよい。また、ゲームプログラム等は、通信ユニット２５０により通信ネットワーク経由でゲーム装置１００に提供してもよい。
【００６４】
なお、「コンピュータ」とは、例えば、ハードウェアとオペレーティングシステム（ＯＳ）とを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味することがある。また、ＯＳが不要でプログラム単独でハードウェアを動作可能な場合には、そのハードウェアがコンピュータに相当するとみることができる。ハードウェアは、ＣＰＵ等の演算装置と、記録媒体に記録されたプログラムを読み取り可能な読み取り装置とを含むことができる。
【００６５】
ゲームプログラム等は、上述のようなコンピュータに、ゲーム装置１００としての機能を実現させるプログラムコードを含んでいる。その機能の一部はプログラムではなくＯＳによって実現されてもよい。
【００６６】
通信ユニット２５０は、通信ネットワークを通じてゲーム装置１００が他のゲーム装置やコンピュータと通信することを可能にする。通信ネットワークは、無線ネットワークでも有線ネットワークでもよい。通信ネットワークの一例としては、無線ＬＡＮや、３Ｇ、ＷｉＭａｘ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ｃ．Ｌｉｎｋ（登録商標）、ＨＤＭＩ（登録商標）、有線ＬＡＮ、電話線、携帯電話網、ＰＨＳ網、電灯線ネットワーク、ＩＥＥＥ１３９４等に準拠したネットワークが挙げられる。
【００６７】
通信ユニット２５０を介して、ゲーム装置１００は、他のゲーム装置１００やサーバ（図示省略）と適宜に通信することができる。これにより、例えば、通信可能に接続されている他のゲーム装置のプレイヤとの対戦ゲーム（対戦などの競争を行なうゲーム。以下、同じ。）や、共同ゲーム（協力して課題を解決するゲーム。以下、同じ。）の実施が可能になる。また、複数のゲーム装置１００が通信可能に接続されることで、サーバを介して、点数、得点等のゲームスコアの集計や、他の遊戯施設に配置されたゲーム装置との間で対戦ゲームを行なったり、ランキングを集計したりすることも可能になる。
【００６８】
操作ボタン２６０は、例示的に、複数のボタン（キー）で構成されるが、これに限定されない。図１の例では、十字ボタン及び丸形ボタンからなる、左右それぞれの操作ボタンセットが設けられている。
【００６９】
加速度センサ２８０は、ゲーム装置１００（ハウジング１１０）に与えられた加速度を検出する。検出された加速度は、後述するようにゲームマップ（あるいはゲームフィールド）に配置されるコースの難易度を変化させるために用いることができる。
【００７０】
次に、本実施形態のゲーム装置１００によってユーザに提供されるゲームについて、簡単に説明する。かかるゲームは、ゲーム装置１００が、コンピューティングデバイス２１０の制御の下、ゲームプログラムを実行することにより、実現される。
【００７１】
ゲーム装置１００が提供するゲームは、例示的に、プレイヤが操作ボタン２６０やタッチスクリーン２２０を通じてプレイヤキャラクタ（キャラクタオブジェクト）の移動や行動を制御することで、プレイヤキャラクタが通路（コース）等のパターンが配置されたゲームマップ内でスタート地点からゴール地点まで進んでゆくようなゲームである。ディスプレイ２２１に表示されるゲーム画面は、例示的に、仮想３次元空間を表現したゲーム画像である。プレイ中、仮想カメラの視線方向及び視野領域が制御され、当該制御に応じて、仮想３次元空間を表現するゲーム画像が変化する。
【００７２】
プレイヤは、独自のゲームマップを作成することができる。当該ゲームマップは、例示的に、ゲーム装置１００のカメラ２７０及び／又は２９０で撮影した画像から作成することができる。なお、ゲーム装置１００のユーザ（ゲーム装置１００を用いてゲームマップを作成するユーザ）と作成されたゲームマップでゲームをプレイするプレイヤとは、同じである場合もあるし異なる場合もある。
【００７３】
（ゲーム装置１００の機能的構成例）
次に、図５に、本実施形態のゲーム装置１００の機能的構成例を示す。図５は、コンピューティングデバイス２１０のプロセッサ（プロセッサコア２１１）がゲームプログラムを実行することにより、他のハードウェア及び／又はソフトウェアと協働して、ゲーム装置１００において実現される各種の機能的手段の構成例を示している。
【００７４】
図５に示すように、ゲーム装置１００は、例示的に、記憶部５０２、輝度画像生成部５０４、値検出部５０６、及び、マップピース配置部５０８としての機能的手段を備える。また、ゲーム装置１００は、加速度検出部５１０、ゲーム難易度決定部５１２、グリッド分割部５１４、及び、スタート／ゴール設定部５１６としての機能的手段を追加的に備えてもよい。
【００７５】
記憶部５０２は、例えば図３及び図４に例示したメモリモジュール２１２に対応させることができ、ゲームフィールドを平面的に表現するゲームマップ内に配置されるマップオブジェクトの一部を成すマップピースの候補を１又は複数記憶する。既述のように、「複数のマップピース」は１種類でもよいし複数種類でもよく、「マップピースの種類」の非限定的な一例としては、平面視において矩形状、Ｉ字状、Ｌ字状、Ｖ字状、Ｙ字状や、それぞれについて太さ（幅）が異なる形状等が挙げられる。「マップピース」の一例については、図１３〜図２９により後述する。
【００７６】
ゲームマップの作成に用いられる画像は例えばカラー画像であり、カラー情報が含まれてよい。カラー情報には、ＲＧＢ（赤・緑・青）、ＣＭＹ（シアン・マゼンタ・イエロー）、輝度、色合い、鮮やかさ、明るさ等の情報が含まれてよく、また、それぞれの平均値や代表ピクセルの値等が含まれてよい。この場合、記憶部５０２には、画像データを所定数に区分し、当該区分毎の画像データのカラー情報を記憶してもよい。
【００７７】
輝度画像生成部５０４は、画像データを読み込み、当該画像データから輝度画像（データ）を生成する。輝度画像は、読み込んだ画像データを二値化することで生成してもよいし、グレースケール化することで生成してもよい。
【００７８】
値検出部５０６は、ゲームマップに対して予め設定した区分数の所定領域（図９〜図１２により後述するグリッドが一例である）毎に、輝度画像生成部５０４によって生成された輝度画像の値（例えば二値化した画像であれば１及び０）を検出する。なお、例えば、検出値が「１」であれば対応するグリッドにマップピースが配置され（マップピース有り）、検出値が「０」であれば対応するグリッドにマップピースは配置されない（マップピース無し）。
【００７９】
マップピース配置部５０８は、値検出部５０６により検出した値に基づいて、グリッド毎にマップピースを配置する。別言すると、マップピース配置部５０８は、ゲームマップ上に設けた各領域（グリッドが一例である）と前記区分とを対応させ、カラー情報を画像データの区分毎に記憶した記憶部５０２における当該区分のカラー情報に基づいて、当該区分に対応する領域にコースの一部を成すピースを設定する設定部として機能する。
【００８０】
マップピース配置部５０８は、配置するマップピースに対応するグリッドの周囲のグリッドの値検出部５０６による値（例えば、１／０）の検出状況に応じて、配置するマップピースの種類（例えば、矩形状、Ｉ字状、Ｙ字状、Ｌ字状等）を決定する。これにより、マップピース群が成すコースにバリエーションをもたせることができ、ゲームの興趣性を向上できる。なお、例えば、着目グリッドの値が「１」（マップピース有り）で当該着目に隣接する周囲８つのグリッドの値も全て「１」（マップピース有り）であれば、着目グリッドには、矩形状のマップピースが選出される。また、着目グリッドの値が「１」（マップピース有り）で当該着目グリッドに隣接する上下２つのグリッドの値が「１」（マップピース有り）であれば、着目グリッドには、Ｉ字状のマップピースが選出される。また、着目グリッドの値が「１」（マップピース有り）で当該着目グリッドに隣接する左上、右上、下３つのグリッドの値が「１」（マップピース有り）であれば、着目グリッドには、Ｙ字状のマップピースが選出される。また、着目グリッドの値が「１」（マップピース有り）で当該着目グリッドに隣接する上、右２つのグリッドの値が「１」（マップピース有り）であれば、着目グリッドには、Ｌ字状のマップピースが選出される。
【００８１】
加速度検出部５１０は、図３に例示した加速度センサ２８０に対応し、ゲーム装置１００に与えられる加速度を検出する。
【００８２】
ゲーム難易度決定部５１２は、加速度検出部５１０により検出した加速度の値が大きいほどゲームの難易度を高く決定することができる。ゲーム難易度決定部５１２で決定した難易度に応じて、マップピース配置部５０８は、配置するマップピースの種類（例えば、後述する傾斜、凸凹、段差、ギミック等）を決定することもできる。詳細については後述する。
【００８３】
したがって、コースに更なるバリエーションをもたせることができるので、ゲームの興趣性を更に向上することができる。また、ゲーム装置１００を振る等して加速度をゲーム装置１００に与えることでゲームの難易度を調整できるので、ゲームマップを作成する際の興趣性も向上できる。
【００８４】
グリッド当てはめ部５１４は、輝度画像生成部５０４により生成変換された輝度画像を異なるサイズのグリッドにそれぞれ当てはめる（対応付ける）（例えば図９及び図１０参照）。最終的にいずれのサイズのグリッドを適用（選択）するかは、ゲーム難易度決定部５１２で決定した難易度に応じて決定することができる。
【００８５】
なお、マップピース配置部５０８は、マップピースが隣接して配置された一のマップピース群（例えば後述する「島」が一例である）と他のマップピース群との最短距離に対応する位置のグリッドに、当該一のマップピース群と当該他のマップピース群と（別言すると、「島」同士）を接続（あるいは連結）するマップピース（以下「連結ピース」ともいう）を配置することもできる。したがって、連結対象のマップピース群を一義的に定めて連結ピースを配置することができ、ゲーム装置１００の処理負荷軽減に寄与する。
【００８６】
スタート／ゴール設定部５１６は、ゲームマップ内にキャラクタオブジェクトが移動又は行動を開始するスタート地点と、移動又は行動を終了するゴール地点とを設定する。その際、スタート／ゴール設定部５１６は、配置されたマップピースのうちで最も遠距離同士になるマップピースを一組検索し、一方のマップピース上にスタート地点を設定し、他方のマップピース上にゴール地点を設定することができる。
【００８７】
これにより、プレイヤキャラクタがあまりに簡単にゴール地点へ辿り付けるようなコース設定がなされにくくなるので、ゲームの興趣性を向上できる。また、検索条件が「最も遠距離同士」なのでゲーム装置１００の処理負荷も軽減できる。
【００８８】
（ゲーム装置１００の動作例）
以下、上述のごとく構成されたゲーム装置１００（コンピューティングデバイス２１０）の動作例として、ゲームマップの作成方法について、図６〜図２９を参照して詳述する。
【００８９】
図６は、ゲーム装置１００においてゲームマップを作成する手順を説明するフローチャートである。まず、図６に例示するように、ゲーム装置１００のユーザは、ゲーム装置１００の例えば背面カメラ２９０によってゲームマップ化したい撮影対象を撮影する（処理Ｐ１１０）。
【００９０】
撮影対象は、物体、人物、風景等なんでもよい。撮影された画像は、コンピューティングデバイス２１０（図３参照）のシステムバス２１６を通じてメモリモジュール２１２に画像データとして一時的に記憶される（図４参照）。撮影された画像は例えばカラー画像であり、カラー情報が含まれてよい。カラー情報には、ＲＧＢ（赤・緑・青）、ＣＭＹ（シアン・マゼンタ・イエロー）、輝度、色合い、鮮やかさ、明るさ等の情報が含まれてよく、また、それぞれの平均値や代表ピクセルの値等が含まれてよい。
【００９１】
コンピューティングデバイス２１０（例えばプロセッサコア２１１。以下同様。）は、次に、撮影された画像データをメモリモジュール２１２から読み込んで、当該画像データを所定サイズ（例えば４００×４００ピクセル）に切り出す（処理Ｐ１２０）。切り出された画像（データ）の一例を図７に例示する。図７の例では、３種類の物体（四角形、楕円等）が画像に含まれており、例えば四角形は青、楕円は赤、背景は水色といったようにカラー情報を含んでいる。
【００９２】
さらに、コンピューティングデバイス２１０は、例えば輝度画像生成部５０４（図５参照）としての機能により、切り出した画像（データ）のカラー情報（例えば輝度情報）を調整することで、二階調化（二値化）した画像（輝度画像）を生成する（処理Ｐ１３０）。
【００９３】
二値化された画像（データ）の一例を図８に示す。カラー画像データを二値化することで、例えばカメラ２９０のホワイトバランス機能等の自動補正機能によって画像データが補正されていたとしても、その影響を低減あるいは無くして、撮影画像に含まれる例えば物体等と背景とを鮮明に区別できる画像になる。
【００９４】
このようにして生成された輝度画像（データ）（以下「二値化画像」ともいう。）は、次に第１の画像解析処理（Ｐ１４０）に供される。当該画像解析処理において、コンピューティングデバイス２１０は、例えば値検出部５０６（図５参照）としての機能により、二値化画像の輝度の中間値を算出し、中間値未満の輝度のピクセルを含む部分を、マップピース（あるいはマップパート）を配置する部分であると判定し、中間値未満の輝度のピクセルを含まない部分を、マップピースを配置しない部分であると判定する。なお、「マップピース」は、作成すべきゲームマップ（オブジェクト）の一部（例えばプレイヤキャラクタが進むコース等）を成すオブジェクトを意味する。
【００９５】
次いで、コンピューティングデバイス２１０は、例えばグリッド当てはめ部５１４（図５参照）としての機能により、例えば図８に例示した二値化画像を図９（Ａ）及び図９（Ｂ）に例示するように予め設定された２種類の区分数（例えば２０×２０と１６×１６）のグリッド（升目）にそれぞれ当てはめ又は対応付ける（処理Ｐ１５０）。なお、１グリッドは、例示的に、仮想ゲーム空間において５（ｍ）×５（ｍ）の区分数（以下「サイズ」ともいう。）に相当する。したがって、「２０×２０のグリッド」及び「１６×１６のグリッド」は、仮想ゲーム空間においてそれぞれ「１００（ｍ）×１００（ｍ）」及び「８０（ｍ）×８０（ｍ）」のサイズに相当する。ただし、当該サイズに限られない。なお、本例では、１６×１６のサイズのグリッドが、撮影対象の原型を表現可能な最小サイズであると想定している。したがって、ユーザの意図しないゲームマップが最終的に生成されてしまう確率を低減できる。ただし、最小サイズはこれに限られない。コンピューティングデバイス２１０の処理能力によるが、処理能力が高ければ、撮影対象の原型を表現可能な範囲で最小サイズをより小さくしてもよい。
【００９６】
そして、コンピューティングデバイス２１０は、例えばマップピース配置部５０８（図５参照）としての機能により、二値化画像において、マップピースを配置するグリッドと、そうでないグリッドとをグリッド毎に判別（あるいは検出）する。
【００９７】
その際、輝度の中間値未満のピクセルが少しでも含まれるグリッドは、マップピースを配置するグリッドであるとする。例えば図１０に示すように、コンピューティングデバイス２１０は、上記中間値未満の輝度のピクセルを含むグリッドを、マップピースを配置するグリッド（「１：マップピース有り」）と判別（検出）し、上記中間値未満の輝度のピクセルを含まないグリッドを、マップピースを配置しないグリッド（「０：マップピース無し」）と判別（検出）する。
【００９８】
なお、上述した例では二値化画像を生成しているが、次のような二値化画像を生成しない方法を採用してもよい。すなわち、上記処理Ｐ１３０において、撮影した画像のカラー情報に基づいて、グレースケール化した画像（以下「グレースケール化画像」ともいう。）を生成する（二値化ではない）。次いで、処理Ｐ１４０において、グレースケール化画像の全てのピクセルを走査し、グレースケール化画像の輝度の平均値を算出する（例えば、１００）。そして、処理Ｐ１５０において、グリッドに当てはめて、輝度の上記平均値未満のピクセルが少しでも含まれるグリッドは、マップピースを配置するグリッドであるとする。
【００９９】
次いで、ゲーム装置１００のユーザがハウジング１１０を振るような動作を行なうことで、ゲーム装置１００に加速度が与えられると、これが加速度センサ２８０で検出される。コンピューティングデバイス２１０は、ゲーム難易度決定部５１２としての機能により、検出した加速度に基づいて難易度を決定する（処理Ｐ１６０）。非限定的な一例として、難易度は、加速度の値に応じて０〜９の十段階設定しておくことができる。なお、「０〜９」の値が高いほど（あるいは低いほど）難易度は高い（あるいは低い）ものとすることができる。
【０１００】
その際、コンピューティングデバイス２１０は、難易度が変化する様子を、タッチスクリーン２２０に難易度メーター（あるいはゲージ）等の形式で表示してよい。これにより、ユーザは、難易度の変化を確認しながら、ゲーム装置１００に与える加速度を調整することができる。したがって、ユーザは、所望の難易度を狙ってゲーム装置１００に与える加速度の大きさや回数を加減することができる。
【０１０１】
コンピューティングデバイス２１０は、決定した難易度が、例えば「０〜４」であれば例えば図１１（Ｂ）に示す「１６×１６のグリッド」を適用（選択）し、「５〜９」であれば例えば図１１（Ａ）に示す「２０×２０のグリッド」を適用（選択）する（処理Ｐ１７０）。別言すると、難易度が低いほどグリッド数の少ないグリッドが選ばれ、難易度が高いほどグリッド数の多いグリッドが選ばれる。これは、生成するゲームマップ上に最終的に設定されるスタート地点とゴール地点との間の距離が難易度に応じて変化すると捉えることができる。すなわち、グリッド数が少なければ、多い場合に比べて、スタート地点とゴール地点との距離が相対的に短くなり易いから難易度が低くなる。
【０１０２】
次いで、コンピューティングデバイス２１０は、例えばマップピース配置部５０８（図５参照）としての機能により、配置するマップピースが成す「島」が５つ以内か否かをチェックする（処理Ｐ１８０）。ここで、「島」とは、隣接するグリッドに配置される２以上のマップピース群のかたまりである場合もあるし、いずれのマップピースにも隣接しない独立したマップピースである場合もある。
【０１０３】
チェックの結果、「島」が５つを超えていれば（処理Ｐ１８０でＮｏの場合）、コンピューティングデバイス２１０は、その中で一番サイズの大きな「島」（仮に「島Ａ」とする。）を検出し（処理Ｐ１９０）、当該「島Ａ」に距離が近い順に４つの「島」を選出する（処理Ｐ２００）。なお、コンピューティングデバイス２１０は、選出されなかった「島」を、処理負荷軽減のために削除してもよいが、にぎやかしのために例えば図１５に例示するようにオブジェクト（ＯＢＪ）として残してもよい。「島」と「島」との距離は、例えばグリッド数で識別することができる。
【０１０４】
そして、コンピューティングデバイス２１０は、選出された複数の「島」どうしを接続（連結）するマップピース（例えばレールオブジェクト）を当該「島」間に配置して、プレイヤキャラクタが「島」から「島」へレールオブジェクトを渡って移動可能なコースを設定する（処理Ｐ２１０）。レールオブジェクトは、最短距離にある「島」間に優先的に１つ設定することができる。ただし、複数のレールオブジェクトを「島」間に設定することを排除するものではない。
【０１０５】
一方、処理Ｐ１８０で「島」が５つ以内であった場合、コンピューティングデバイス２１０は、上記の処理Ｐ２１０により「島」どうしを接続（連結）する。非限定的な一例として、図１５には、５つの島Ａ〜Ｅのうち、島Ａと距離が近い島Ｂ及びＤがそれぞれレールオブジェクト３２０及び３３０によって接続され、島Ｂと島Ｃとがレールオブジェクト３１０によって接続され、かつ、島Ｄと島Ｅとがレールオブジェクト３４０によって接続されて、５つの島Ａ〜Ｅをプレイヤキャラクタが移動可能なコースが設定される様子を例示している。また、他の非限定的な一例として、図１７には、島Ａとそれぞれ距離の近い島Ｂ及びＣがそれぞれレールオブジェクト３５０及び３６０によって接続されて、３つの島Ａ〜Ｃをプレイヤキャラクタが移動可能なコースが設定される様子を例示している。
【０１０６】
なお、「島」が１つも無い場合、コンピューティングデバイス２１０は、例えば仮想ゲーム空間において「島」（地面又は床）となる最小サイズ以上（例えば５（ｍ）×５（ｍ）以上のサイズ）のマップピースをコースとしてゲームマップ内に配置する。これにより、ゲームマップ内にコースが設定されない不都合を回避する（別言すると、ゲームマップ内には少なくとも１つのコースが必ず設定される）ことができる。また、「島」同士の距離が同じ場合や基準となる一番サイズの大きな「島」が複数ある場合、コンピューティングデバイス２１０は、いずれかの「島」を例えば乱数を用いる等してランダムに選出してもよいし、予め決められた条件（優先順位等）に従って選出してもよい。
【０１０７】
次いで、コンピューティングデバイス２１０は、例えば図１２に示すように、マップを擬似アウトライン化する（処理Ｐ２２０）。なお、図１２には、処理Ｐ１７０において「２０×２０のグリッド」が適用された場合の擬似アウトライン化の様子を例示している。「擬似アウトライン化」では、コースとなる「島」等のアウトラインに相当するグリッド以外の値を「１」から「０」に変換する。
【０１０８】
例えば、着目グリッドの周囲に「床」が存在する（マップピース有りの）場合、コンピューティングデバイス２１０は、着目グリッドの値を「１」から「０」に変換することで、当該着目グリッドに配置された「床」を取り除く（あるいは間引く）処理を実施する。当該擬似アウトライン化処理によって、擬似アウトライン化を実施しない場合に比して、コンピューティングデバイス２１０の処理負荷を軽減することができる。
【０１０９】
さらに、コンピューティングデバイス２１０は、スタート／ゴール設定部５１６としての機能（図５参照）により、擬似アウトライン化されたマップにおけるコース上の２点の最長距離を検出、別言すると、配置されたマップピースのうちで最も遠距離同士になるマップピースを一組検索する。そして、コンピューティングデバイス２１０は、一方のマップピースにスタート地点４１０を設定し、他方のマップピースにゴール地点４２０を設定する（例えば図１３〜図１５及び図１７参照）（処理Ｐ２３０）。
【０１１０】
マップピース内のどの地点にスタート／ゴールを設定するかは、乱数を用いる等してランダムに決定してもよいし、予め決められた条件に従って決定してもよい。なお、「島」となるマップピースが１つしか無い場合でも、コンピューティングデバイス２１０は、例えば図１６に例示するように、当該１つのマップピースにおいて最長距離となる２点にスタート地点４１０とゴール地点４２０とを設定することができる。なお、スタート地点４１０及びゴール地点４２０の検索条件は「最長距離」でなくても構わないが、「最長距離」とすることでコンピューティングデバイス２１０の処理負荷を軽減できる。
【０１１１】
コンピューティングデバイス２１０は、処理Ｐ１６０で決定した難易度に基づいて、マップピースの種類を変化させてコースの難易度を変化させることができる（処理Ｐ２４０；例えば図１４参照）。なお、図１４には、非限定的な一例として、コースの幅が部分的に狭くなり、図１３に比して難易度が高くなった様子を示している。
【０１１２】
図１８〜図２４に、非限定的な一例として、難易度に応じて選ばれるマップピースの候補リストを示す。マップピースは、図１８〜図２４に例示するように、複数種類用意されており、例えばメモリモジュール２１２の「グラフィックデータ」（図４参照）に含まれる。図１８〜図２４において、難易度が高くなるほど高い「点数」が付されたマップピースが選出され易くなる。
【０１１３】
例えば図１８において、上から１番目及び２番目のマップピース（「点数」＝１）は、いずれも仮想ゲーム空間において縦横が５（ｍ）×５（ｍ）のサイズの「地面」（あるいは「床」）を表現したオブジェクトであり、上から３番目及び４番目のマップピースは５（ｍ）×５（ｍ）のサイズの「地面」（あるいは「床」。以下同様。）が特定の傾斜を有することを表現したオブジェクトであり、傾斜の無い場合よりも高い「点数」が設定されている。傾斜の度合いは複数設定することができ、図１８では細い矢印が付されたマップピース（地面）よりも太い矢印が付されたマップピース（地面）の方が傾斜の大きいことを示している。
【０１１４】
また、図１８において、上から５〜７番目の３種類のマップピースは、いずれも縦横が５（ｍ）×１（ｍ）のサイズの「地面」、別言すると、１〜４番目のマップピースが表現する「地面」よりも幅の狭い「地面」を表現したオブジェクトであり、上記と同様に、傾斜の有無が矢印の有無によって示され、傾斜の度合いが矢印の太さによって示されている。
【０１１５】
同様に、図１９には、サイズ（幅）及び傾斜の異なる６種類の「地面」を表現したオブジェクトのリストが示されている。図２０には、延在方向が図１８及び図１９の例とは異なる方向（斜め方向）でそれぞれサイズ（幅）及び傾斜の異なる９種類の「地面」を表現したオブジェクトのリストが示されている。他にも、マップピースは、図２１〜図２４に例示するように様々な形状、サイズ、傾斜等を有することができる。
【０１１６】
コンピューティングデバイス２１０は、マップピース配置部５０８（図５参照）としての機能により、以上のようなマップピースの配置を組み合わせることで、ゲームマップにおいて傾斜を有するコースや、段差（凸凹）や穴を有するコース、段差（高低差）を有するコース、ギミック（左右に動く床）を有するコース、ギミック（バンパー）を有するコース等、難易度に応じて様々なコースを生成、生成することができる（図６の処理Ｐ２５０）。「バンパー」は、コース上を移動するプレイヤキャラクタが衝突するとプレイヤキャラクタが撥ね返されるような動作を実現するギミック（オブジェクト）である。
【０１１７】
なお、タッチスクリーン２２０に表示されるコースの非限定的な一例として、図２５に「傾斜を有するコース」、図２６に「段差（凸凹）や穴を有するコース」、図２７に「高低差を有するコース」、図２８に「左右に動く床を有するコース」、図２９に「バンパーを有するコース」それぞれの表示例を示す。
【０１１８】
「段差（凸凹）」は、凸凹を表現したマップピース（例えば図２３の上から６〜８番目のマップピース）単体で実現してもよいし、平坦な「床」を表現したマップピースの繋ぎ目を僅かに上下にずらすことで実現してもよい。
【０１１９】
また、「高低差」のある複数の「床」が配置される場合、「高低差」のあることをプレイヤが視認し易いように、「床」の色を高低に応じて変えるようにするとよい。ただし、「高低差」は、例示的に、「スタート地点よりもゴール地点が低い」という条件で設定するのが好ましい。当該条件により、コース上を転がりながら移動するようなプレイヤキャラクタ（例えばボール等）がゴール地点に辿り付けるようなコース設定が可能となる。ただし、難易度によっては「スタート地点とゴール地点が同じ高さ」に設定されてもよい。要するに、「ゴール地点はスタート地点と同じ高さかそれよりも低い」位置に配置（設定）される。
【０１２０】
「動く床」は、図１８〜図２４に例示したいずれのマップピースでもよい。図２８には凸凹（ピラミッド形状）を表現したマップピース（例えば図２３の上から６番目のマップピース）が「動く床」として配置された様子を例示している。
【０１２１】
難易度が高くなるほど、配置されるマップピースのバリエーションが増え、通路が狭くなったり、傾斜や穴、凸凹等がコース上に配置されたりすることになる。したがって、プレイヤキャラクタが、ゴール地点へ辿りつくのが難しいコースとなる。
【０１２２】
なお、難易度に応じたコース生成（設定）は、マップピースが配置されるグリッドサイズ（別言すると、マップピースサイズ）を変化させることで実現してもよい。例えば、グリッドサイズ（マップピースサイズ）を大きくすることで、配置されるマップピースの通路が広くなり、難易度の低いコース設定を実現できる。逆に、グリッドサイズ（マップピースサイズ）を小さくすることで、配置されるマップピースの通路が狭くなり、難易度の高いコース設定を実現できる。さらに、難易度に応じたコース生成（設定）は、グリッド数を変化させることで実現してもよい。例えば、グリッド数を少なくすることで配置されるマップピースの総数が少なくなり、難易度の低いコース設定を実現できる。逆に、グリッド数を多くすることで配置されるマップピースの総数が多くなり、難易度の高いコース設定を実現できる。
【０１２３】
ゲーム装置１００のプレイヤは、操作ボタン２６０やタッチスクリーン２２０を通じてプレイヤキャラクタ（キャラクタオブジェクト）の移動や行動を制御することで、以上のようにして生成されたゲームマップのコースをプレイヤキャラクタがスタート地点からゴール地点まで進ませてゆくゲームを楽しむことができる（図６の処理Ｐ２６０）。
【０１２４】
以上のように、本実施形態によれば、カメラ２７０又は２９０で撮影した画像データを基にゲームマップを作成することができるので、従来のようにゲームマップに配置する通路等のパターンやサイズを全て指定する必要がなく、ゲームマップを簡単に作成することができる。したがって、自由度の高いゲーム展開を可能にさせることができ、ゲームの興趣性を向上することができる。
【０１２５】
なお、上述した実施形態では、カメラ２７０又は２９０で撮影した画像データを基にゲームマップを作成しているが、例えば、コンピューティングデバイス２１０は、外部メディアユニット２４０や通信ユニット２５０を通じて取得した画像データを基にゲームマップを作成してもよい。
【０１２６】
また、上述した実施形態は、コンピュータゲーム装置のほか、携帯電話、スマートフォン、タブレット型コンピュータ等のインテリジェントデバイスで実行されるゲームプログラムに広く適用することができる。
【符号の説明】
【０１２７】
１００…ゲーム装置、１１０…ハウジング、２１０…コンピューティングデバイス、２１１…プロセッサコア、２１２…メモリモジュール、２１３…グラフィックスエンジン、２１３１…グラフィックコア、２１３２…グラフィックメモリ、２１４…サウンドエンジン、２１５…Ｉ／Ｏコントローラ、２１６…システムバス、２２０…タッチスクリーン、２２１…ディスプレイ、２２２…タッチセンサ、２３０…オーディオ出力ユニット、２４０…外部メディアユニット、２５０…通信ユニット、２６０…操作ボタン、２７０…前面（内側）カメラ、２８０…加速度センサ、２９０…背面（外側）カメラ、３１０，３２０，３３０，３４０，３５０…レールオブジェクト、４１０…スタート地点、４２０…ゴール地点、５０２…記憶部、５０４…輝度画像生成部、５０６…値検出部、５０８…マップピース配置部、５１０…加速度検出部、５１２…ゲーム難易度決定部、５１４…グリッド当てはめ部、５１６…スタート／ゴール設定部、Ａ〜Ｅ…島
【図１】
0005843217.tif 000002
【図２】
0005843217.tif 000003
【図３】
0005843217.tif 000004
【図４】
0005843217.tif 000005
【図５】
0005843217.tif 000006
【図６】
0005843217.tif 000007
【図９】
0005843217.tif 000008
【図７】
0005843217.tif 000009
【図８】
0005843217.tif 000010
【図１０】
0005843217.tif 000011
【図１１】
0005843217.tif 000012
【図１２】
0005843217.tif 000013
【図１３】
0005843217.tif 000014
【図１４】
0005843217.tif 000015
【図１５】
0005843217.tif 000016
【図１６】
0005843217.tif 000017
【図１７】
0005843217.tif 000018
【図１８】
0005843217.tif 000019
【図１９】
0005843217.tif 000020
【図２０】
0005843217.tif 000021
【図２１】
0005843217.tif 000022
【図２２】
0005843217.tif 000023
【図２３】
0005843217.tif 000024
【図２４】
0005843217.tif 000025
【図２５】
0005843217.tif 000026
【図２６】
0005843217.tif 000027
【図２７】
0005843217.tif 000028
【図２８】
0005843217.tif 000029
【図２９】
0005843217.tif 000030