(57)【特許請求の範囲】
【請求項１】
下方向への重力が設定された仮想空間において、それぞれキャラクタと干渉する複数のオブジェクトを互いに接続して配置し、
前記複数のオブジェクトの水平方向の最外周の少なくとも一部において、当該最外周から水平方向の外側へのキャラクタの移動を制限する制限領域を所定の制限条件にしたがって設定し、
入力された操作に応じて、前記オブジェクト上で前記キャラクタを移動して、当該キャラクタの位置に関連し前記オブジェクトに隣接した位置に新たなオブジェクトを配置し、
前記新たなオブジェクトの位置が前記制限領域によって移動が制限される領域に対応する場合に、前記新たなオブジェクトの位置に応じて前記制限領域を前記制限条件にしたがって再設定すること
をコンピュータに実行させるためのプログラム。
【請求項２】
前記制限条件は、前記仮想空間における上下方向に拡がるように前記制限領域を設定することを含む、請求項１に記載のプログラム。
【請求項３】
前記制限条件は、前記最外周に対する水平方向の外側領域において、当該外側領域の上方向に前記オブジェクトが存在する場合に、当該オブジェクトまで上方向に拡がる前記制限領域を設定することを含む、請求項２に記載のプログラム。
【請求項４】
前記制限条件は、前記最外周に対する水平方向の外側領域において、当該外側領域の下方向に前記オブジェクトが存在しない場合に、当該外側領域へのキャラクタの移動を制限するように前記制限領域を設定することを含む、請求項１から請求項３のいずれかに記載のプログラム。
【請求項５】
前記制限条件は、前記最外周に対する水平方向の外側領域において、当該外側領域の下方向に前記オブジェクトが存在する場合に、当該外側領域へのキャラクタの移動を制限しないように前記制限領域を設定することを含む、請求項１から請求項４のいずれかに記載のプログラム。
【請求項６】
前記仮想空間において前記キャラクタを動作させるときの動作モードを、前記オブジェクトを配置するための第１動作モードと、前記第１動作モードとは異なる第２動作モードと、のいずれかに設定することをさらに含み、
前記オブジェクトは、第１種類のオブジェクトと第２種類のオブジェクトとを含み、
前記第２種類のオブジェクトは、前記第１動作モードと前記第２動作モードとにおいて、前記キャラクタへの干渉の態様が異なる、請求項１から請求項５のいずれかに記載のプログラム。
【請求項７】
前記第２種類のオブジェクトは、前記第１動作モードでは前記第１種類のオブジェクトと同じ態様で前記キャラクタへ干渉し、前記第２動作モードでは前記キャラクタへの干渉をしない、請求項６に記載のプログラム。
【請求項８】
コンピュータが実行する設定方法であって、
下方向への重力が設定された仮想空間において、それぞれキャラクタと干渉する複数のオブジェクトを互いに接続して配置し、
前記複数のオブジェクトの水平方向の最外周の少なくとも一部において、当該最外周から水平方向の外側へのキャラクタの移動を制限する制限領域を所定の制限条件にしたがって設定し、
入力された操作に応じて、前記オブジェクト上で前記キャラクタを移動して、当該キャラクタの位置に関連し前記オブジェクトに隣接した位置に新たなオブジェクトを配置し、
前記新たなオブジェクトの位置が前記制限領域によって移動が制限される領域に対応する場合に、前記新たなオブジェクトの位置に応じて前記制限領域を前記制限条件にしたがって再設定すること
を含む、設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間に関する設定を制御する技術に関する。
【背景技術】
【０００２】
仮想空間において立方体形状のオブジェクトを配置することによって、仮想空間に自由に地形を生成する技術がある（例えば、特許文献１）。仮想空間に配置されるキャラクタは、仮想空間の範囲内で地形に応じて移動することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−０９７５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
オブジェクトを仮想空間に配置する手法は、仮想空間においてキャラクタが移動可能なゲームを作成する場合に用いられてもよい。一般的に、仮想空間においてオブジェクトを配置するときには、基礎となるオブジェクト（例えば地面や床といった足場となるオブジェクト）が仮想空間の大きさに対応して予め配置されている。基礎となるオブジェクトが配置されていることによって、ユーザは、例えば地面の上に追加的にオブジェクトを配置すればよいが、用意されている地面の範囲内でしか新たなオブジェクトを配置することができず、配置の自由度が小さくなる。一方で仮想空間を大きくして、その一部にのみに基礎となるオブジェクト、例えば地面を予め配置し、仮想空間における当該地面の範囲を超えた領域にも新たなオブジェクトの配置を許可する場合、配置の自由度は大きくなる。
【０００５】
しかしながら、通常仮想空間には重力が設定されているため、キャラクタは、基礎となるオブジェクトまたは自ら新たに配置したオブジェクトを足場にしなければ重力方向に落下してしまう。したがって、そのような現象が生じないように、すなわち、オブジェクトが配置された範囲からキャラクタが外側に出てしまわないようにキャラクタの移動範囲を規定することが必要であった。
【０００６】
本発明の目的の一つは、仮想空間におけるキャラクタの移動範囲を容易に規定することにある。
【課題を解決するための手段】
【０００７】
本発明の一実施形態によれば、下方向への重力が設定された仮想空間において、それぞれキャラクタと干渉する複数のオブジェクトを互いに接続して配置し、前記複数のオブジェクトの水平方向の最外周の少なくとも一部において、当該最外周から水平方向の外側へのキャラクタの移動を制限する制限領域を所定の制限条件にしたがって設定し、入力された操作に応じて、前記オブジェクト上で前記キャラクタを移動して、当該キャラクタの位置に関連し前記オブジェクトに隣接した位置に新たなオブジェクトを配置し、前記新たなオブジェクトの位置が前記制限領域によって移動が制限される領域に対応する場合に、前記新たなオブジェクトの位置に応じて前記制限領域を前記制限条件にしたがって再設定することをコンピュータに実行させるためのプログラムが提供される。
【０００８】
前記制限条件は、前記仮想空間における上下方向に拡がるように前記制限領域を設定することを含んでもよい。
【０００９】
前記制限条件は、前記最外周に対する水平方向の外側領域において、当該外側領域の上方向に前記オブジェクトが存在する場合に、当該オブジェクトまで上方向に拡がる前記制限領域を設定することを含んでもよい。
【００１０】
前記制限条件は、前記最外周に対する水平方向の外側領域において、当該外側領域の下方向に前記オブジェクトが存在しない場合に、当該外側領域へのキャラクタの移動を制限するように前記制限領域を設定することを含んでもよい。
【００１１】
前記制限条件は、前記最外周に対する水平方向の外側領域において、当該外側領域の下方向に前記オブジェクトが存在する場合に、当該外側領域へのキャラクタの移動を制限しないように前記制限領域を設定することを含んでもよい。
【００１２】
前記仮想空間において前記キャラクタを動作させるときの動作モードを、前記オブジェクトを配置するための第１動作モードと、前記第１動作モードとは異なる第２動作モードと、のいずれかに設定することをさらに含んでもよい。前記オブジェクトは、第１種類のオブジェクトと第２種類のオブジェクトとを含んでもよい。前記第２種類のオブジェクトは、前記第１動作モードと前記第２動作モードとにおいて、前記キャラクタへの干渉の態様が異なってもよい。
【００１３】
前記第２種類のオブジェクトは、前記第１動作モードでは前記第１種類のオブジェクトと同じ態様で前記キャラクタへ干渉し、前記第２動作モードでは前記キャラクタへの干渉をしなくてもよい。
【００１４】
一実施形態によれば、下方向への重力が設定された仮想空間において、それぞれキャラクタと干渉する複数のオブジェクトを互いに接続して配置し、前記複数のオブジェクトの水平方向の最外周の少なくとも一部において、当該最外周から水平方向の外側へのキャラクタの移動を制限する制限領域を設定し、入力された操作に応じて、前記オブジェクト上で前記キャラクタを移動して、当該キャラクタの位置に関連し前記オブジェクトに隣接した位置に新たなオブジェクトを配置し、前記新たなオブジェクトの位置が前記制限領域によって移動が制限される領域に対応する場合に、前記新たなオブジェクトの位置に応じて前記制限領域を再設定することを含む、設定方法が提供される。
【発明の効果】
【００１５】
本発明の一実施形態によれば、仮想空間におけるキャラクタの移動範囲を容易に規定するができる。
【図面の簡単な説明】
【００１６】
【図１】一実施形態における通信システムの構成を示すブロック図である。
【図２】一実施形態における通信装置の構成を示すブロック図である。
【図３】一実施形態におけるサーバの構成を示すブロック図である。
【図４】一実施形態におけるゲーム表示機能を示すブロック図である。
【図５】一実施形態におけるゲーム制御機能を示すブロック図である。
【図６】仮想空間を説明する図である。
【図７】仮想空間におけるステージを示す図である。
【図８】仮想空間におけるステージを示す図である。
【図９】仮想空間におけるステージを示す図である。
【図１０】仮想空間における視野制御を説明するための図である。
【図１１】生成モードにおけるゲーム画面の第１例を示す図である。
【図１２】生成モードにおけるゲーム画面の第２例を示す図である。
【図１３】生成モードにおけるゲーム画面の第３例を示す図である。
【図１４】生成モードにおけるゲーム画面の第４例を示す図である。
【図１５】仮想空間におけるステージの設定方法を示すフローチャートである。
【図１６】ブロックの配置による制限領域の変化の第１例を示す図である。
【図１７】ブロックの配置による制限領域の変化の第２例を示す図である。
【図１８】ブロックの配置による制限領域の変化の第３例を示す図である。
【図１９】生成モードにおける特殊ブロックの配置例を示す図である。
【図２０】対戦モードにおける特殊ブロックの効果を示す図である。
【図２１】制限領域を設定する方法について別の例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の一実施形態について、図面を参照して詳細に説明する。以下に示す実施形態は本発明の実施形態の一例であって、本発明はこれらの実施形態に限定されない。本実施形態で参照する図面において、同一部分または同様な機能を有する部分には同一の符号または類似の符号を付し、その繰り返しの説明は省略する場合がある。
【００１８】
［通信システムの構成］
図１は、一実施形態における通信システムの構成を示すブロック図である。一実施形態における通信システム１０００は、通信装置１０およびサーバ５０を有するクライアントサーバシステムである。通信装置１０およびサーバ５０は、インターネット、通信回線などのネットワークＮＷに接続される。図１において、サーバ５０は、単一の装置として記載しているが、互いに協働する複数の装置で構成されていてもよい。
【００１９】
クライアントである通信装置１０は、例えば、スマートフォンであり、ネットワークＮＷに接続することによって他の装置と通信することができる。通信装置１０は、スマートフォンに限らず、タブレット型端末、携帯ゲーム機等のユーザが保持可能な携帯装置であってもよいし、デスクトップパソコンのような据え置き型の装置であってもよい。
【００２０】
通信装置１０は、インストールされたゲームプログラムを実行することにより、複数のユーザにより対戦可能なゲームを、サーバ５０と連携して通信装置１０のユーザに提供する。このゲームは、２つの動作モードのいずれかに設定される。２つの動作モードは、対戦モードおよび生成モードである。
【００２１】
対戦モードは、仮想空間に生成されたステージにおいて移動可能なゲームキャラクタをユーザが操作することによって他のゲームキャラクタと戦闘ができるゲームを、ユーザに提供する動作モードである。対戦モードであるときには、複数のゲームキャラクタが対戦するゲームであることから、複数のゲームキャラクタにそれぞれ対応する複数の通信装置１０がサーバ５０に接続する。
【００２２】
生成モードは、対戦モードで用いられるステージを生成するための動作モードである。このステージは、仮想空間において互いに接続された複数のオブジェクトによって実現される。各オブジェクトは、ゲームキャラクタと干渉して、オブジェクトが存在する部分へのゲームキャラクタの侵入を妨げる。例えば、ゲームキャラクタは、オブジェクト上を移動することができる。したがって、ユーザの指示に応じてオブジェクトを接続することによって、様々な形状のステージを生成することができる。
【００２３】
仮想空間においては、下方向に向けて重力が発生するように設定されている。オブジェクトが存在しない部分に侵入したゲームキャラクタは、重力の影響により仮想空間下方に落下することになることが想定される。この例では、そのような現象が起きないように、ステージの形状に応じてゲームキャラクタの侵入を禁止する領域（以下、進入禁止領域という場合がある）が設定される。その結果として、ステージは、仮想空間におけるゲームキャラクタの移動範囲を規定する。生成モードにおいて様々なステージを予め生成しておくことで、対戦モードにおいて用いるステージを生成済みのステージから選択することができる。
【００２４】
サーバ５０は、通信装置１０に対して、アプリケーションプログラムを提供したり、各種のサービスを提供したりする情報処理装置の一例である。各種のサービスには、例えば、通信装置１０においてオンラインゲームを実行する際におけるログイン処理、同期処理などのサービスが含まれる。そのほか、各種のサービスには、例えば、ＳＮＳ（ソーシャルネットワーキングサービス）が含まれていてもよい。
【００２５】
アプリケーションプログラムには、例えば、以下に説明するゲームを実行するためのアプリケーションプログラム（ゲームプログラムという）が含まれる。アプリケーションプログラムは、サーバ５０が読み取り可能な記録媒体に記録されている。記録媒体は、サーバ５０に含まれる記憶装置であってもよいし、サーバ５０に接続される記憶装置であってもよいし、サーバ５０がネットワークＮＷを介して接続される記憶装置であってもよい。
【００２６】
［通信装置の構成］
図２は、一実施形態における通信装置の構成を示すブロック図である。一実施形態における通信装置１０は、制御部１１、記憶部１２、表示部１３、操作部１４、センサ部１５、撮像部１６、位置検出部１７および通信部１８を含む。通信装置１０は、これらの構成のすべてを含むものに限定されない。また、通信装置１０は、マイクロフォン、スピーカなど他の構成を含んでもよい。
【００２７】
制御部１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサ（演算処理回路）およびＲＡＭ等の記憶装置を備えるコンピュータの一例である。制御部１１は、記憶部１２に記憶されたプログラムをプロセッサにより実行して、各種機能を通信装置１０において実現させる。通信装置１０の各要素から出力される信号は、通信装置１０において実現される各種機能によって使用される。制御部１１は、ゲームプログラムを実行することによって、ゲームをユーザに提供するときに用いるゲーム表示機能を実現する。
【００２８】
記憶部１２は、不揮発性メモリ、ハードディスクドライブなどの記憶装置である。記憶部１２は、プログラムおよび当該プログラムの実行に必要となるパラメータ等の各種データを記憶する。上述したゲームプログラムは、サーバ５０または他のサーバからネットワークＮＷ経由でダウンロードされ、記憶部１２に記憶されることによって、通信装置１０にインストールされる。ゲームプログラムは、磁気記録媒体、光記録媒体、光磁気記録媒体、半導体メモリ等の記録媒体に記録した状態で提供されてもよい。この場合、通信装置１０は、この記録媒体を読み取る装置を備えていればよい。記憶部１２も記録媒体の一例である。
【００２９】
表示部１３は、制御部１１の制御に応じて、各種の画面（例えば、ゲーム画面等）を表示する表示領域を有するディスプレイである。表示部１３は、例えば、液晶ディスプレイまたは有機ＥＬディスプレイ等の表示装置である。
【００３０】
操作部１４は、ユーザの操作に応じた信号を制御部１１に出力する操作装置である。操作部１４は、表示部１３の表面に配置されたタッチセンサである。操作部１４は、表示部１３と組み合わせることによってタッチパネルを構成する。ユーザの指またはスタイラスペン等で操作部１４に接触することによって、ユーザの操作に応じた命令または情報が通信装置１０へ入力される。操作部１４は、通信装置１０の筐体に配置されたスイッチを含んでもよい。
【００３１】
センサ部１５は、通信装置１０の動き、通信装置１０の周囲の環境などに関する情報を収集して信号に変換する機能を備える装置である。センサ部１５は、例えば、加速度センサ、ジャイロセンサ等を含む。制御部１１は、センサ部１５の出力信号に基づいて、通信装置１０の挙動（例えば、傾き、振動など）に関する情報を取得する。センサ部１５は、照度センサ、温度センサ、磁気センサその他のセンサを含んでもよい。
【００３２】
撮像部１６は、撮像対象の像を信号に変換する撮像装置である。通信装置１０は、撮像部１６から出力された撮像信号に基づいて画像データを生成する。画像データは、静止画像のデータであってもよいし、動画像のデータであってもよい。以下の説明において画像といった場合には、特に断りがない限り、静止画像および動画像のいずれも含む。撮像部１６は、一次元コードまたは二次元コードなどの識別コードを読み取るスキャナーとしても機能する。
【００３３】
位置検出部１７は、位置情報に基づいて通信装置１０の位置を検出する。本実施形態の位置検出部１７は、ＧＮＳＳ（Ｇｌｏｂａｌ  Ｎａｖｉｇａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ  Ｓｙｓｔｅｍ）を用いて通信装置１０の位置を検出する。
【００３４】
通信部１８は、制御部１１の制御により、ネットワークＮＷと接続して、ネットワークＮＷに接続されたサーバ５０など他の装置と情報の送信および受信を行う無線通信モジュールである。通信部１８は、赤外線通信、近距離無線通信などを行う通信モジュールを含んでいてもよい。
【００３５】
［サーバの構成］
図３は、一実施形態におけるサーバの構成を示すブロック図である。一実施形態におけるサーバ５０は、制御部５１、記憶部５２および通信部５３を含む。
【００３６】
制御部５１は、ＣＰＵなどのプロセッサ（演算処理回路）およびＲＡＭ等の記憶装置を備えるコンピュータの一例である。制御部５１は、記憶部５２に記憶されたプログラムをプロセッサにより実行して、各種機能をサーバ５０において実現させる。サーバ５０の各要素から出力される信号は、サーバ５０において実現される各種機能によって使用される。制御部５１は、ゲーム提供プログラムを実行することによって、通信装置１０に提供するゲームを制御するためのゲーム制御機能を実現する。ゲーム制御機能は、対戦モードにおいてゲームを制御するための進行制御機能と、生成モードにおいてゲームを制御するための生成制御機能とを含む。
【００３７】
記憶部５２は、不揮発性メモリ、ハードディスクドライブなどの記憶装置である。記憶部５２は、プログラムおよび当該プログラムの実行に必要となるパラメータ等の情報を記憶する。プログラムにはゲーム提供プログラムも含まれる。ゲーム提供プログラムも、記憶部５２に記憶される。ゲームを提供中に通信装置１０から受信した各種データについても記憶部５２に記憶される。記憶部５２は、通信装置１０に提供されるゲームプログラムを記憶してもよい。
【００３８】
ゲーム提供プログラムは、他のサーバからネットワークＮＷ経由でダウンロードされ、記憶部５２に記憶されることによって、サーバ５０にインストールされてもよい。ゲーム提供プログラムは、磁気記録媒体、光記録媒体、光磁気記録媒体、半導体メモリなどのコンピュータ読み取り可能な記録媒体に記録した状態で提供されてもよい。この場合、サーバ５０は、この記録媒体を読み取る装置を備えていればよい。記憶部５２も記録媒体の一例である。
【００３９】
通信部５３は、制御部５１の制御により、ネットワークＮＷと接続して、ネットワークＮＷに接続された通信装置１０、他のサーバなど、他の装置と情報の送信および受信を行う無線通信モジュールである。他のサーバとしては、例えば、ゲームサーバ、ＳＮＳサーバ、メールサーバなどである。
【００４０】
［ゲーム表示機能］
ゲームは、ゲーム表示機能およびゲーム制御機能によって、ユーザに提供される。まず、ゲーム表示機能について説明する。ゲーム表示機能は、通信装置１０の制御部１１がゲームプログラムを実行することによって実現される。以下に説明するゲーム表示機能を実現するための構成の一部または全部がハードウエアによって実現されてもよい。
【００４１】
図４は、一実施形態におけるゲーム表示機能を示すブロック図である。一実施形態におけるゲーム表示機能１００は、ゲーム操作取得部１０１、操作データ送信部１０３、制御データ受信部１０５、ゲームデータ記憶領域１０７、および表示データ生成部１０９を含む。
【００４２】
ゲーム操作取得部１０１は、ユーザによって操作部１４に入力された操作のうち、ゲーム操作を取得する。ゲーム操作は、ユーザによって操作部１４に入力された操作のうち、ゲームに関する操作であって、例えば、ゲームキャラクタの移動、パラメータの指定等を含む。
【００４３】
操作データ送信部１０３は、ゲーム操作取得部１０１によって取得されたゲーム操作を示す操作データを生成して、通信部１８を介してサーバ５０に送信する。
【００４４】
制御データ受信部１０５は、制御データをサーバ５０から通信部１８を介して受信する。制御データは、各通信装置１０から送信された操作データに基づいてサーバ５０が生成するデータである。
【００４５】
ゲームデータ記憶領域１０７は、ゲーム画面を表示するために必要なデータ（例えば、画像データ等）を記憶する領域である。
【００４６】
表示データ生成部１０９は、ゲーム操作取得部１０１によって取得されたゲーム操作および制御データ受信部１０５によって受信された制御データに基づいて、ゲーム画面を表示部１３に表示するための表示データを生成する。このとき、表示データ生成部１０９は、必要に応じてゲームデータ記憶領域１０７に記憶されたデータを用いる。
【００４７】
ゲーム操作がゲーム画面上に表示される設定画面等における操作のように、ゲームキャラクタを移動させる操作とは別の操作を示す場合などにおいて、表示データ生成部１０９は、ゲーム操作に基づく表示データを制御データとは関係なく生成する場合もある。
【００４８】
［ゲーム制御機能］
続いて、ゲーム制御機能について説明する。ゲーム制御機能は、サーバ５０の制御部５１がゲーム提供プログラムを実行することによって実現される。以下に説明するゲーム制御機能を実現するための構成の一部または全部がハードウエアによって実現されてもよい。
【００４９】
図５は、本発明の一実施形態におけるゲーム進行制御機能を示すブロック図である。一実施形態におけるゲーム制御機能５００は、操作データ受信部５０１、処理実行部５０３および制御データ送信部５０５を含む。
【００５０】
操作データ受信部５０１は、複数の通信装置１０から送信された操作データを受信する。これらの操作データは、送信元の通信装置１０に対応するゲームキャラクタに関連付けられる。通信装置１０に対応するゲームキャラクタは、通信装置１０を介してログインしたユーザに割り当てられ、ユーザによって操作可能なゲームキャラクタである。
【００５１】
処理実行部５０３は、操作データ受信部５０１が受信した操作データに基づいて、この操作データに対応するゲームキャラクタの動作を、仮想空間において制御するためのステータスデータを生成する。
【００５２】
ステータスデータは、例えば、ゲームキャラクタに関して、仮想空間における座標、向き、動き、その他さまざまな状態を規定する。ゲームキャラクタの動作は、ステータスデータに規定される状態になるように制御される。ステータスデータは、ユーザが操作するゲームキャラクタの状態を規定する場合に限らない。例えば、対戦モードにおけるゲームでは、仮想空間における様々なオブジェクトの状態を規定する場合もある。ここでいうオブジェクトとは、例えば、ゲームの進行（時間経過またはゲームキャラクタの動作の結果）に伴って状態が変化するものを含んでもよいし、ゲームの進行において状態が全く変化しないものを含んでもよい。生成モードにおけるゲームでは、ステージを生成するものであって、ゲームの進行という概念がなければ、オブジェクトの状態は変化しなくてもよい。
【００５３】
処理実行部５０３は、各ゲームキャラクタに対応して生成したステータスデータを制御データ送信部５０５に提供する。
【００５４】
制御データ送信部５０５は、複数の通信装置１０のそれぞれに対して、通信部５８を介して、所定時間毎にステータスデータを含む制御データを送信する。
【００５５】
このように、ゲーム表示機能１００およびゲーム制御機能５００によって、ゲームがユーザに提供される。
【００５６】
［生成モード］
続いて、ゲームの動作モードが生成モードに設定されている場合の機能、すなわち、ステージを生成するための機能について、さらに詳しく説明する。
【００５７】
まず、仮想空間に配置されたステージの例について説明する。
【００５８】
図６は、仮想空間を説明する図である。仮想空間ＶＳには、ステージＳＴが配置されている。仮想空間ＶＳには下方向への重力が設定されている。図６に示すように、仮想空間ＶＳにおける上下方向がｚ軸として定義され、水平方向が互いに垂直に交わるｘ軸およびｙ軸として定義される。ｚ軸方向における上方向および下方向はＺ１方向およびＺ２方向としてそれぞれ定義される。Ｘ１方向およびＸ２方向は、ｘ軸に沿って互いに反対を向くように定義される。Ｙ１方向およびＹ２方向は、ｙ軸に沿って互いに反対を向くように定義される。以下の図において、これらの方向が図示されている場合には、各方向は、図６における定義と同じ方向であるとして扱われる。
【００５９】
仮想空間ＶＳに配置されたステージＳＴは、上述したように、互いに接続された複数のオブジェクトによって形成されている。ここでは、オブジェクトが立方体の形状を有するブロックＢＫであるものとして説明する。以下の説明において、ブロックＢＫ１、ＢＫ２、・・・という場合には、図６に示す個別のブロックを示す。ブロックＢＫの各辺は、ｘ軸、ｙ軸およびｚ軸のいずれかに沿って配置されている。したがって、ブロックＢＫの上面は、ｘ軸とｙ軸とを含む水平面に対応する。ブロックＢＫは、ゲームキャラクタＣＨと干渉し、ブロックＢＫが存在する部分への侵入を妨げる。したがって、ゲームキャラクタＣＨは、ブロックＢＫ上を移動することができる。
【００６０】
ゲームキャラクタＣＨは、最外周に配置されたブロックＢＫの外側、すなわちステージＳＴの外側に移動することを想定すると、仮想空間ＶＳに設定された重力により下方に落下する。一方、この例では、原則としてゲームキャラクタＣＨがステージＳＴの外側領域（上述した進入禁止領域に対応）には移動できないように制限領域が設定されている。
【００６１】
図７〜図９は、仮想空間におけるステージを示す図である。図７は、仮想空間ＶＳの上部から見た場合におけるステージＳＴと進入禁止領域ＬＡと制限領域ＬＷとの関係を示している。図８は、仮想空間ＶＳのＸ１方向の側部から見た場合におけるステージＳＴと進入禁止領域ＬＡと制限領域ＬＷとの関係を示している。図８に示す例では、ブロックＢＫ１と同じｙｚ面内に存在するブロックのみが抽出されている。図９は、仮想空間ＶＳの下部から見た場合におけるステージＳＴを示している。図７〜図９では、高さの違うブロックＢＫは異なる模様によって示されている。破線で区切られた領域は、ブロックＢＫの配置が可能な領域に対応する。破線で区切られた領域は、以下に説明するゲーム画面においては表示されないが、表示されるようにしてもよい。
【００６２】
進入禁止領域ＬＡは、予め決められた条件（以下、制限条件という場合がある）に基づいて、ゲームキャラクタＣＨが侵入できないように設定される。この例では、進入禁止領域ＬＡは、制約条件に基づいて次のように定義される。仮想空間ＶＳの任意の位置において、当該位置よりも下方向（Ｚ２方向）にブロックＢＫが存在しない場合、当該位置は進入禁止領域ＬＡである。すなわち、下方に何も足場となるオブジェクトが存在せず、侵入した場合には仮想空間ＶＳの最下部（Ｚ２方向の最大値）まで落下させられる領域を含む。言い換えると、図９に示すように、仮想空間ＶＳの下部から上方向にステージＳＴを見た場合、すなわちステージＳＴをその下側から見た場合に、ブロックＢＫによって隠されていない領域が、進入禁止領域ＬＡに対応する。この例では、ブロックＢＫ１〜ＢＫ３、ＢＫ３１〜ＢＫ３３の下方向は進入禁止領域ＬＡに対応するが、ブロックＢＫ４、ＢＫ２１、ＢＫ２２の下方向には他のブロックＢＫが配置されているため、例えばブロックＢＫ２２とブロックＢＫ３２との間の領域は、進入禁止領域ＬＡに対応しない。このように進入禁止領域ＬＡを設定するための条件が制約条件に相当する。
【００６３】
進入禁止領域ＬＡにゲームキャラクタＣＨが侵入できないようにするために、進入禁止領域ＬＡには制限領域ＬＷが設定される。したがって、制限領域ＬＷは、制約条件に基づいて設定されているともいえる。制限領域ＬＷには、制限オブジェクトが配置される。制限オブジェクトは、ゲームキャラクタＣＨの移動を制限するオブジェクトである。また、制限オブジェクトは、ブロックＢＫの配置を許可する役割を有していてもよい。制限オブジェクトは、この例では、不可視の壁状（または面状）のオブジェクトである。制限オブジェクトは、不可視である場合に限らず、ブロックＢＫと異なる態様で表示されればよく、例えば、半透過で表示されてもよい。
【００６４】
進入禁止領域ＬＡにゲームキャラクタＣＨが侵入できないようにできれば、制限領域ＬＷは、進入禁止領域ＬＡの一部にのみ配置されてもよい。例えば、図７および図８に示すように、ステージＳＴを構成する各ブロックＢＫに対して上方向の領域（以下、上空領域という場合がある）と、進入禁止領域ＬＡと、の境界部分に制限領域ＬＷが設定されれば、ゲームキャラクタＣＨが進入禁止領域ＬＡに侵入することはできない。制限領域ＬＷは、壁状のオブジェクトに限らず、様々な形状が取り得る。例えば、制限領域ＬＷは、ブロック状のオブジェクト（ブロックＢＫと同じ形状）で構成されてもよいし、進入禁止領域ＬＡを充填するオブジェクトで構成されてもよいし、単に侵入を妨げる境界面として構成されてもよい。
【００６５】
このように制限領域ＬＷが設定されることで、ステージＳＴを構成するブロックＢＫにおける水平方向の最外周において、最外周から水平方向の外側へのゲームキャラクタＣＨの移動を制限する。このとき、最外周であっても、下方向にブロックＢＫが存在する領域は進入禁止領域ＬＡとして設定されないため、最外周の全てに対応して制限領域ＬＷが設定される場合に限られず、最外周の少なくとも一部に対応して制限領域ＬＷが設定される。ここでいう最外周は、各ブロックＢＫにおいて隣接するブロックＢＫが存在しない部分によって構成される縁部をいう。例えば、図８に示すブロックＢＫ１とブロックＢＫ３は、最外周を構成するブロックＢＫである。また、ステージＳＴの中央部分にブロックＢＫが存在しない空間部分があれば、その空間部分を取り囲むブロックＢＫのうち空間部分側の縁部は最外周となる。例えば、図８に示すブロックＢＫ４とブロックＢＫ５とは、互いに対向する部分が最外周に対応する。このとき、ブロックＢＫ４とブロックＢＫ５とによって取り囲まれる空間部分の下方向には、ブロックＢＫ３２が存在するため、ブロックＢＫ４とブロックＢＫ５との互いに対向する部分は最外周でありながら進入禁止領域ＬＡは設定されない。
【００６６】
生成モードによれば、ステージＳＴを構成するブロックＢＫを追加したり削除したりすることができる。この例では、ユーザはゲームキャラクタＣＨを操作することによって指定した位置にブロックＢＫを配置する。ゲームキャラクタＣＨは、上述のように設定された制限領域ＬＷによりステージＳＴの外部に移動することはないため、誤ってステージＳＴから落下してしまうことがない。ブロックＢＫが配置されたり削除されたりすると、ステージＳＴの形状が変わるため、制限領域ＬＷを更新しなければならない場合がある。例えば、進入禁止領域ＬＡにブロックＢＫが配置された場合、および進入禁止領域ＬＡに隣接するブロックＢＫが削除された場合には、進入禁止領域ＬＡおよび制限領域ＬＷが再設定される。以下の説明において、制限領域ＬＷが設定される場合には、特に明示しなくても進入禁止領域ＬＡも設定されている。
【００６７】
［生成モードにおけるゲーム画面の例］
通信装置１０は、ゲームキャラクタＣＨの後方の視点からの視野を制御することによって、ステージＳＴをゲーム画面に表示する。生成モードにおいては、ユーザは、このゲーム画面でゲームキャラクタＣＨを移動させる操作、およびブロックＢＫを配置したり削除したりする操作を通信装置１０に入力する。ここでは、視野の制御方法および生成モードにおけるゲーム画面の例について説明する。
【００６８】
図１０は、仮想空間における視野制御を説明するための図である。視野ＶＡは、仮想空間ＶＳの一部の領域であって、視点ＶＰから視線方向ＶＤに沿って仮想空間ＶＳ内を見たときに、表示部１３にゲーム画面として表示される領域に対応する（例えば、図１１から図１４を参照）。ゲームキャラクタＣＨは、通信装置１０のユーザによって操作されるゲームキャラクタである。ここでは、ゲームの動作モードが生成モードである場合について説明しているが、対戦モードである場合は、他のユーザによって操作されるゲームキャラクタまたは所定のアルゴリズムにしたがってサーバ５０によって制御されるゲームキャラクタも仮想空間ＶＳに存在する。
【００６９】
キャラクタ基準点ＶＣは、通信装置１０のユーザによって操作されるゲームキャラクタＣＨの位置に対して連動する位置として定義される。例えば、キャラクタ基準点ＶＣは、ゲームキャラクタＣＨの頭部中心であってもよいし、この頭部中心から所定の方向に所定距離ずれることで、ゲームキャラクタＣＨの外側の位置であってもよい。
【００７０】
キャラクタ方向ＤＣは、ゲームキャラクタＣＨの正面方向に対応する。視点ＶＰは、ゲームキャラクタＣＨの後方に設定され、詳細には、キャラクタ基準点ＶＣに対してキャラクタ方向ＤＣとは反対側に設定される。視点ＶＰとキャラクタ基準点ＶＣとの距離は予め設定されている。
【００７１】
視線方向ＶＤは、視点ＶＰからキャラクタ基準点ＶＣへの方向に対応する。視点ＶＰは、キャラクタ基準点ＶＣを中心に上下左右に移動する。視点ＶＰがＤ１方向に移動すると、視線方向ＶＤが下側に傾くため視野ＶＡは下側に変化する。視点ＶＰがＤ２方向に移動すると、視線方向ＶＤが上側に傾くため視野ＶＡは上側に変化する。視点ＶＰがＤ３方向に移動すると、視線方向ＶＤが右に傾くため視野ＶＡは右側に変化する。視点ＶＰがＤ４方向に移動すると、視線方向ＶＤが左に傾くため視野ＶＡは左側に変化する。この例では、移動方向に対応するキャラクタ方向ＤＣと視線方向ＶＤとが同じになるように、視点ＶＰが制御される。以上が視野の制御方法についての説明である。
【００７２】
図１１は、生成モードにおけるゲーム画面の第１例を示す図である。図１１に示す生成モードにおけるゲーム画面ＣＤは、仮想空間ＶＳにおける視野ＶＡに対応する領域を含む。上述したように、操作部１４に対する操作を受け付ける領域は、表示部１３と同じ領域に配置されている。領域ＴＡは、この例では、ゲームキャラクタＣＨが表示される領域と少なくとも一部が重畳する位置に配置された半円形の領域である。領域ＴＡは、ゲームキャラクタＣＨに対する制御のための操作を受け付ける領域である。操作の起点が領域ＴＡに含まれていれば、ゲームキャラクタＣＨの移動制御のための操作として認識される。この例では、領域ＴＡを起点としてスライドさせる操作が入力された場合、スライドさせた方向にゲームキャラクタＣＨが移動する。領域ＴＡより上側の領域を起点としてスライドさせる操作が入力された場合、スライドさせた方向にゲームキャラクタＣＨの向き（キャラクタ方向ＤＣ）を変えてもよいし、ゲームキャラクタＣＨの向きを変えずに視線方向ＶＤのみを変えてもよい。
【００７３】
操作ボタンＴＢ１、ＴＢ２、ＴＢ３、ＴＢ４は、タップ操作によって仮想空間ＶＳに配置するオブジェクトを選択するための画像である。この例では、仮想空間ＶＳに配置するオブジェクトの例は、ブロックＢＫであるが、操作ボタンＴＢ１、ＴＢ２、ＴＢ３、ＴＢ４への操作（例えば、長押し、フリックなどの操作）により配置するオブジェクトの種類を変更することもできる。ブロックＢＫ以外のオブジェクトの種類は、例えば、ブロックＢＫとは異なる形状（例えば、階段状）のオブジェクトであってもよいし、複数のブロックＢＫを連結したようなオブジェクトであってもよい。
【００７４】
操作ボタンＴＣは、操作ボタンＴＢ１、ＴＢ２、ＴＢ３、ＴＢ４によって設定されたオブジェクトを、タップ操作によって仮想空間ＶＳに配置したり、タップ操作によって既に配置されたオブジェクトを削除したりするための画像である。操作ボタンＴＣに対するフリック操作により、オブジェクトの配置に用いるか、オブジェクトの削除に用いるかを切り替えて設定することができる。例えば、オブジェクトの配置に用いるように設定されているときに、操作ボタンＴＣへタップ操作が入力されると、オブジェクト（例えば、ブロックＢＫ）を仮想空間ＶＳに配置することができる。
【００７５】
オブジェクトが配置されたり削除されたりする対象の位置は、ゲームキャラクタＣＨの位置および向きに関連して決められ、オブジェクトの形状を模した画像のカーソルＣＡによって示される。この例では、オブジェクトの配置ができる位置は、既に配置されているオブジェクトに隣接する位置に制限される。図１１に示すカーソルＣＡの例では、配置されるオブジェクト（この例ではブロックＢＫ）の外縁および半透過による面を表示することで、オブジェクトが配置される対象の位置を示している。オブジェクトが削除される対象の位置を示す場合には、その対象の位置は、削除対象のオブジェクトを特定するように表示される。以下の説明では、ブロックＢＫが配置される場合の例を説明する。
【００７６】
図１２は、生成モードにおけるゲーム画面の第２例を示す図である。図１２は、図１１において、操作ボタンＴＣへの操作により、ブロックＢＫが配置された後の画面例である。図１１において示されていたカーソルＣＡの位置に、新たなブロックＢＫＮが配置される。カーソルＣＡは、新たなブロックＢＫＮに隣接する位置のうち予め決められたアルゴリズムにしたがって特定される位置に移動する。この例では、カーソルＣＡは、新たなブロックＢＫＮに隣接する位置のうちゲームキャラクタＣＨの前側かつゲームキャラクタＣＨに最も近い位置に移動する。
【００７７】
図１１および図１２では、既に配置されているブロックＢＫの上面に、新たなブロックＢＫＮを配置する例を示した。続く図１３および図１４では、既に配置されているブロックＢＫの最外周において、進入禁止領域ＬＡに新たなブロックＢＫＮを配置する例を示す。
【００７８】
図１３は、生成モードにおけるゲーム画面の第３例を示す図である。図１３では、図７に示すブロックＢＫ２にゲームキャラクタＣＨが移動することによって、ブロックＢＫ２に隣接する位置にカーソルＣＡが配置される。図１３に示すカーソルＣＡの位置は、上述した進入禁止領域ＬＡに存在する。このとき、ゲームキャラクタＣＨは、ブロックＢＫ２のさらに前方（Ｘ１方向）に不可視で存在する制限領域ＬＷによって、ステージＳＴ外に落ちることがない。
【００７９】
図１４は、生成モードにおけるゲーム画面の第４例を示す図である。図１４は、図１３において、操作ボタンＴＣへの操作により、ブロックＢＫが配置された後の画面例である。図１３において示されていたカーソルＣＡの位置に、新たなブロックＢＫＮが配置される。この例においても上述の例と同様に、カーソルＣＡは、新たなブロックＢＫＮに隣接する位置のうち予め決められたアルゴリズムにしたがって特定される位置に移動する。
【００８０】
続いて説明する設定方法においては、図１１および図１２に示すように進入禁止領域ＬＡではない位置にブロックＢＫを配置する場合と、図１３および図１４に示すように進入禁止領域ＬＡに含まれる位置にブロックＢＫを配置する場合とでは、実行される処理の一部が異なっている。
【００８１】
［設定方法］
仮想空間ＶＳにおけるステージＳＴの設定方法について説明する。この例では、特に、ブロックＢＫの配置および削除による制限領域ＬＷを再設定する部分について説明する。
【００８２】
図１５は、仮想空間におけるステージの設定方法を示すフローチャートである。図１５に示す処理は、例えば、ユーザによってゲームの動作モードが生成モードに設定され、基準となるステージＳＴを決定すると実行される。基準となるステージＳＴは、通信装置１０の記憶部１２に記憶されていてもよいし、サーバ５０の記憶部５２に記憶されていてもよい。基準となるステージＳＴは、予めテンプレートとして設定された初期ステージであってもよいし、この生成モードによって既に生成したステージＳＴであってもよい。以下に説明する各処理は、ゲーム表示機能とゲーム制御機能（特に生成制御機能）との連携によって実現される。したがって、以下の処理は、通信装置１０の制御部１１によって実行されてもよいし、サーバ５０の制御部５１によって実行されてもよいし、制御部１１と制御部５１との双方によって分担して実行されてもよい。
【００８３】
まず、基準となるステージＳＴに対応したブロックＢＫおよびゲームキャラクタＣＨが仮想空間ＶＳに配置され（ステップＳ１００）、制限条件に基づいて制限領域ＬＷが設定される（ステップＳ１１０）。続いて、生成モードを終了する指示、ブロックＢＫを配置する指示、またはブロックＢＫを削除する指示のいずれかが入力されるまで待機する（ステップＳ５００；Ｎｏ，ステップＳ２００；Ｎｏ、ステップＳ３００；Ｎｏ）。この状態を待機状態という。待機状態において、生成モードを終了する指示が入力されると（ステップＳ５００；Ｙｅｓ）、図１５に示す設定方法の処理が終了する。
【００８４】
待機状態において、ブロックＢＫを配置する指示が入力されると（ステップＳ２００；Ｙｅｓ）、ゲームキャラクタＣＨに応じて指定された位置（カーソルＣＡが表示された位置）にブロックＢＫを配置する（ステップＳ２３０）。ブロックＢＫが配置された位置が進入禁止領域ＬＡではない場合（ステップＳ２５０；Ｎｏ）、待機状態に戻って処理を続ける。ブロックＢＫが配置された位置が進入禁止領域ＬＡである場合（ステップＳ２５０；Ｙｅｓ）、上述した制限条件に基づいて制限領域ＬＷを再設定し（ステップＳ４００）、待機状態に戻って処理を続ける。
【００８５】
図１６は、ブロックの配置による制限領域の変化の第１例を示す図である。図１６は、図７に対応する図であり、図１３および図１４に示す例のようにブロックＢＫ２に隣接してブロックＢＫＮが配置された場合において、制限領域ＬＷが再設定された状態を示している。すなわち、図７において、ブロックＢＫＮの位置は進入禁止領域ＬＡに含まれていたが、ブロックＢＫＮが配置されることによって、進入禁止領域ＬＡおよび制限領域ＬＷが変化する。この制限領域ＬＷの再設定によって、新たに配置されたブロックＢＫＮ上にもゲームキャラクタＣＨが移動可能になる。
【００８６】
図１７は、ブロックの配置による制限領域の変化の第２例を示す図である。図１８は、ブロックの配置による制限領域の変化の第３例を示す図である。図１７および図１８は、図８に対応する図であり、ブロックＢＫ３３に隣接して、そのＹ２方向にブロックＢＫＮ１が配置された場合（図１７）、続いて、Ｙ２方向にブロックＢＫＮ２、ＢＫＮ３が順次配置された場合（図１８）において、制限領域ＬＷが再設定された状態を示している。すなわち、図７において、ブロックＢＫＮ１、ＢＫＮ２、ＢＫＮ３の位置は進入禁止領域ＬＡに含まれていたが、ブロックＢＫＮ１、ＢＫＮ２、ＢＫＮ３が配置されることによって、進入禁止領域ＬＡおよび制限領域ＬＷが変化する。
【００８７】
図１８に示すブロックＢＫＮ３が配置された場合には、ブロックＢＫＮ３に隣接する部分の進入禁止領域ＬＡが変化するだけではなく、その上方向（Ｚ１方向）に配置されているブロックＢＫ１１に隣接する部分の進入禁止領域ＬＡも変化する。ゲームキャラクタＣＨがブロックＢＫ１１からＹ２方向に移動すると、ブロックＢＫ１１から落下するが、ブロックＢＫＮ３に移動するだけでステージＳＴから落下することはない。
【００８８】
一方、図１７に示すブロックＢＫ２２に隣接して、そのＹ１方向にブロックＢＫＮ４が配置された場合、すなわち、進入禁止領域ＬＡではない位置に新たなブロックＢＫＮ４が配置された場合には、制限領域ＬＷは再設定されない。この場合にもステップＳ２５０の処理をせずにステップＳ４００の処理を実行することで制限条件にしたがって制限領域ＬＷが再設定されてもよいが、進入禁止領域ＬＡおよび制限領域ＬＷは変化しない。ステップＳ２５０の処理が無い場合でも、新たなブロックＢＫが進入禁止領域ＬＡに配置された場合には、ステップＳ２５０の処理があった場合と同じようにステップＳ４００の処理が実行されるから、制限領域ＬＷの再設定がされて、進入禁止領域ＬＡおよび制限領域ＬＷが変化する態様としてもよい。
【００８９】
図１５に戻って説明を続ける。待機状態において、ブロックＢＫを削除する指示が入力されると（ステップＳ３００；Ｙｅｓ）、ゲームキャラクタＣＨによって指定されたブロックＢＫを削除する（ステップＳ３３０）。削除されたブロックＢＫと進入禁止領域ＬＡとが隣接していない場合（ステップＳ３５０；Ｎｏ）、待機状態に戻って処理を続ける。削除されたブロックＢＫと進入禁止領域ＬＡとが隣接している場合（ステップＳ３５０；Ｎｏ）、上述した制限条件にしたがって制限領域ＬＷを再設定し（ステップＳ４００）、待機状態に戻って処理を続ける。以上が、仮想空間ＶＳにおけるステージＳＴの設定方法についての説明である。
【００９０】
一般的に仮想空間ＶＳの外縁とステージＳＴの最外周とが一致していない場合において、配置したブロックＢＫを足場としつつ、さらに足場を広げてステージＳＴを拡張するように新たなブロックを配置していくことを想定する。この場合、ゲームキャラクタＣＨを移動させてステージＳＴの最外周まで到達する必要がある。この際、ユーザが注意深くゲームキャラクタＣＨを操作しないと、ステージＳＴの最外周からゲームキャラクタＣＨが落下する場合がある。ゲームキャラクタＣＨの落下を防ぐためには、ゲームキャラクタＣＨの侵入を妨げるオブジェクトを配置する必要がある。ゲームキャラクタＣＨが仮想空間ＶＳにおいて飛行できるようにすればで落下を防ぐことができるが、ゲーム性や世界観を損なう場合があった。本実施形態によれば、生成モードにおいてステージＳＴを生成するときに、ブロックＢＫの配置に応じて自動的に制限領域ＬＷを設定することができる。したがって、本実施形態によれば、ゲームキャラクタＣＨがステージＳＴから意図せず落下してしまわないように、仮想空間ＶＳにおけるゲームキャラクタＣＨの移動範囲を容易に規定することができる。
【００９１】
［特殊ブロック］
一方、ゲームキャラクタＣＨがステージＳＴから落下する場所を意図的に生成してもよい。このように意図的に制限領域ＬＷを設けない領域を実現するため、通常のブロックＢＫとは異なる種類の特殊なオブジェクトを用いてもよい。特殊なオブジェクトは、例えば、生成モードにおいては上述したブロックＢＫと同じ機能を有し、対戦モードにおいてはゲームキャラクタＣＨと干渉しない不可視の領域として機能するようなブロック（以下、特殊ブロックＢＫＳという）をいう。
【００９２】
図１９は、生成モードにおける特殊ブロックの配置例を示す図である。図１９は、図８に対応し、ステージＳＴの一部に特殊ブロックＢＫＳが配置されている例を示している。操作ボタンＴＢ１、ＴＢ２、ＴＢ３、ＴＢ４への操作によって特殊ブロックＢＫＳを配置するオブジェクトとして設定することによって、上述した通常のブロックＢＫと同じ方法で仮想空間ＶＳに特殊ブロックＢＫＳを配置することができる。
【００９３】
図２０は、対戦モードにおける特殊ブロックの効果を示す図である。図２０は、図１９に示したステージＳＴを対戦モードで用いた場合の例を示している。図１９における特殊ブロックＢＫＳは、対戦モードにおいては、図２０に示すようにブロックＢＫが存在しない空間ＢＳとして機能する。したがって、ゲームキャラクタＣＨは、生成モードでは特殊ブロックＢＫＳ上を移動することができるが、対戦モードでは特殊ブロックＢＫＳがあった場所に移動すると空間ＢＳを通過してステージＳＴから落下する。このように、特殊ブロックＢＫＳは、生成モードにおいてゲームキャラクタＣＨに干渉する一方、対戦モードにおいてゲームキャラクタＣＨに干渉しない。すなわち、特殊ブロックＢＫＳは、ゲームキャラクタＣＨへの干渉の態様が動作モードによって異なるブロックである。
【００９４】
生成モードにおいて、仮に図２０のように空間ＢＳに相当する部分にブロックＢＫを配置しないようにすると、空間ＢＳおよび上下方向の領域は、制限条件にしたがうと進入禁止領域ＬＡとして設定される。したがって、ゲームキャラクタＣＨは、空間ＢＳの部分には侵入できない。一方、図１９のように特殊ブロックＢＫＳを用いることで、生成モードにおいて特殊ブロックＢＫＳの周囲に制限領域ＬＷが設定されず、対戦モードに切り替えても制限領域ＬＷの再設定は行われないため、特殊ブロックＢＫＳが存在した位置をステージＳＴから落下する領域として設定することができる。
【００９５】
生成モードにおいて、特殊ブロックＢＫＳは、通常のブロックＢＫと同じ方法で扱うことができるから、例えば、図１９において、ブロックＢＫ４１は、ブロックＢＫ５とブロックＢＫ３１とを接続する。このブロックＢＫ４１を特殊ブロックＢＫＳとすれば、対戦モードにおけるステージＳＴでは、ブロックＢＫ５とブロックＢＫ３１とが離れた構成が実現される。対戦モードでは、ブロックＢＫ４１が無くなることでブロックＢＫ３１、ＢＫ３２、ＢＫ３３がブロックＢＫ５から分離されるが、そのままの位置を維持するように設定される。そのため、ブロックＢＫ３１、ＢＫ３２、ＢＫ３３は、空中に浮いているブロック群としてステージＳＴを構成する。
【００９６】
＜変形例＞
以上、本発明の一実施形態について説明したが、本発明の一実施形態は、以下のように様々な形態に変形することもできる。また、上述した実施形態および以下に説明する変形例とは、矛盾を生じない限り、それぞれ互いに組み合わせて適用することもできる。さらに、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００９７】
（１）上述したように、通信装置１０において実現されるゲーム表示機能およびサーバ５０において実現されるゲーム制御機能によって、ゲームがユーザに提供される。ゲーム表示機能の一部がサーバ５０において実現されてもよい。例えば、ゲーム表示機能のうち、制御データ受信部１０５、ゲームデータ記憶領域１０７および表示データ生成部１０９がサーバ５０において実現されてもよい。この場合、通信装置１０は、サーバ５０から表示データを受信して、表示データに基づいて表示部１３に表示すればよい。
【００９８】
（２）進入禁止領域ＬＡへゲームキャラクタＣＨが浸入できないようにするために、制限領域ＬＷは上空領域と進入禁止領域ＬＡとの境界部分のみに配置された壁状のオブジェクトとして設定されているが、その境界部分からさらに下方向にも拡がる壁状のオブジェクトとして設定されてもよい。このように上下方向に拡がる制限領域ＬＷを設定する場合には、以下に示す設定方法が適用されてもよい。
【００９９】
ステージＳＴを構成する各ブロックＢＫの側面（上面および下面以外の４面）のそれぞれに対して、各側面に隣接した外側の領域およびその領域から上下方向（Ｚ１方向およびＺ２方向）に拡がる領域を制限領域ＬＷの候補として設定する。制限領域ＬＷの候補のうち、他のブロックＢＫと接続されて露出されなくなった側面に対応する候補、および制限領域ＬＷの下方向（Ｚ２方向）において他のブロックＢＫが存在する候補については、制限領域ＬＷとしては設定しない。
【０１００】
一方、その他の制限領域ＬＷの候補については、下方向（Ｚ２方向）に仮想空間ＶＳの下限位置まで拡がり、上方向（Ｚ１方向）に他のブロックＢＫが存在する位置まで拡がり、上方向（Ｚ１方向）に他のブロックＢＫが存在しない場合には仮想空間ＶＳの上限位置まで拡がる制限領域ＬＷとして設定する。新たなブロックＢＫの配置される度に、このような制限領域ＬＷの設定が実行されることにより、図１５に示すステップＳ２５０における処理は不要である。
【０１０１】
図２１は、制限領域を設定する方法について別の例を示す図である。図２１は、この例において設定される制限領域について、説明するための図である。
【０１０２】
制限領域ＬＷ１は、ブロックＢＫ３またはＢＫ１１における側面に対応して設定されている。制限領域ＬＷ１は、その上下方向に他のブロックＢＫが存在しないため、仮想空間ＶＳの上限および下限まで拡がっている。制限領域ＬＷ２は、ブロックＢＫ３３の側面に対応して設定されている。制限領域ＬＷ２は、その上方においてブロックＢＫ６が存在するため、ブロックＢＫ６の下面まで拡がっている。一方、制限領域ＬＷ２は、その下方において他のブロックＢＫが存在しないため、仮想空間ＶＳの下限まで拡がっている。制限領域ＬＷ３は、ブロックＢＫ４の側面に対応するため制限領域ＬＷの候補となるが、その下方においてブロックＢＫ３２が存在するため、実際には制限領域ＬＷとしては設定されない。
【０１０３】
このように、別の方法によって制限領域ＬＷが設定されても、上述した実施形態と同様の効果を得ることができる。
【０１０４】
（３）ブロックＢＫ等の仮想空間ＶＳへの配置は、生成モードにおいて実現されていたが、対戦モードにおいても実現されてもよい。例えば、対戦モードにおいてゲームキャラクタＣＨを操作し、ブロックＢＫの配置または削除を実行することで、対戦中にステージＳＴの形状を変化させてもよい。この場合、進入禁止領域ＬＡへブロックＢＫが配置できないようにして、制限領域ＬＷが再設定されないようにしてもよい。
【０１０５】
（４）特殊ブロックＢＫＳは、生成モードと対戦モードとにおいて、ゲームキャラクタＣＨへの干渉の態様が異なるブロックであれば、機能の違いは上述した実施形態における例に限らない。特殊ブロックＢＫＳは、例えば、生成モードにおいては通常のブロックＢＫと同じ機能を有しつつ、対戦モードではゲームキャラクタＣＨを上方向に吹き飛ばす機能を有するようにしてもよい。
【０１０６】
（５）この例ではゲームの動作モードは、対戦モードと生成モードとから選択される。一方、動作モードの選択対象は、対戦モードに代えて他の動作モードを含んでいてもよいし、さらに多くの動作モードを含んでいてもよい。例えば、対戦モード以外の例としては、他のユーザが存在せずに単独のユーザでゲームを楽しむことができるようなモードであってもよい。単独ユーザおよび複数ユーザにかかわらず、ゲームの種類としては、対戦ゲームのほか、レースゲーム、シューティングゲーム、アクションロールプレイングゲーム、およびオープンワールドが例示される。
【符号の説明】
【０１０７】
１０…通信装置、１１…制御部、１２…記憶部、１３…表示部、１４…操作部、１５…センサ部、１６…撮像部、１７…位置検出部、１８…通信部、５０…サーバ、５１…制御部、５２…記憶部、５８…通信部、１００…ゲーム表示機能、１０１ゲーム操作取得部、１０３…操作データ送信部、１０５…制御データ受信部、１０７…ゲームデータ記憶領域、１０９…表示データ生成部、５００…ゲーム制御機能、５０１…操作データ受信部、５０３…処理実行部、５０５…制御データ送信部、１０００…通信システム
【要約】
【課題】仮想空間におけるキャラクタの移動範囲を容易に規定すること
【解決手段】一実施形態におけるプログラムは、下方向への重力が設定された仮想空間において、それぞれキャラクタと干渉する複数のオブジェクトを互いに接続して配置し、複数のオブジェクトの水平方向の最外周の少なくとも一部において、当該最外周から水平方向の外側へのキャラクタの移動を制限する制限領域を所定の制限条件にしたがって設定し、入力された操作に応じて、オブジェクト上で前記キャラクタを移動して、当該キャラクタの位置に関連し前記オブジェクトに隣接した位置に新たなオブジェクトを配置し、新たなオブジェクトの位置が前記制限領域によって移動が制限される領域に対応する場合に、新たなオブジェクトの位置に応じて制限領域を制限条件にしたがって再設定することをコンピュータに実行させる。
【選択図】図１５【図１】
0006936913.tif 000002
【図２】
0006936913.tif 000003
【図３】
0006936913.tif 000004
【図４】
0006936913.tif 000005
【図５】
0006936913.tif 000006
【図６】
0006936913.tif 000007
【図７】
0006936913.tif 000008
【図８】
0006936913.tif 000009
【図９】
0006936913.tif 000010
【図１０】
0006936913.tif 000011
【図１１】
0006936913.tif 000012
【図１２】
0006936913.tif 000013
【図１３】
0006936913.tif 000014
【図１４】
0006936913.tif 000015
【図１５】
0006936913.tif 000016
【図１６】
0006936913.tif 000017
【図１７】
0006936913.tif 000018
【図１８】
0006936913.tif 000019
【図１９】
0006936913.tif 000020
【図２０】
0006936913.tif 000021
【図２１】
0006936913.tif 000022