(57)【要約】      （修正有）【課題】衝突判定の処理を容易に行うことができる情報処理装置を提供する。【解決手段】情報処理装置は、ユーザの指示に基づいて、衝突判定に用いられるパーツオブジェクトとして、傾斜オブジェクトを仮想空間内に配置する。パーツオブジェクトが配置された仮想空間を表す画像が生成される。情報処理装置は、ユーザの第１指示に基づいて、単位部分を有する第１傾斜オブジェクトを仮想空間内に配置する。単位部分は、第１部分と第２部分とを有する。第１部分は、内角が鋭角となる第１辺と第２辺とを有する。第２部分は、第１辺と第２辺とのなす角の頂点に連続する連続辺を有し、第２辺の少なくとも一部を一辺とし、連続辺と第１辺とのなす内角が９０°以上となる。情報処理装置は、ユーザの第２指示に基づいて、複数の第１辺が連続することにより１つの辺をなすように複数の単位部分が連続する連続単位部分を有する第２傾斜オブジェクトを仮想空間内に配置する。【選択図】図１０
2019154981.tif 000002
【特許請求の範囲】
【請求項１】
衝突判定に用いられるパーツオブジェクトをユーザの指示に基づいて仮想空間内に配置する、情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
前記ユーザの指示に基づいて、前記パーツオブジェクトとして、単位部分を有する傾斜オブジェクトを前記仮想空間内に配置するオブジェクト配置手段と、
前記パーツオブジェクトが配置された前記仮想空間を表す画像を生成する画像生成手段として前記コンピュータを機能させ、
前記オブジェクト配置手段は、前記ユーザの第１指示に基づいて、１つの前記単位部分を有する第１傾斜オブジェクトを前記傾斜オブジェクトとして前記仮想空間内に配置し、
前記単位部分は、第１部分と第２部分とを有し、
前記第１部分は、内角が鋭角となる第１辺と第２辺とを有し、
前記第２部分は、前記第１辺と前記第２辺とのなす角の頂点に連続する連続辺を有し、前記第２辺の少なくとも一部を一辺とし、当該連続辺と前記第１辺とのなす内角が９０°以上となり、
前記オブジェクト配置手段は、前記ユーザの第２指示に基づいて、複数の前記第１辺が連続することにより１つの辺をなすように複数の前記単位部分が連続する連続単位部分を有する第２傾斜オブジェクトを前記傾斜オブジェクトとして前記仮想空間内に配置する、情報処理プログラム。
【請求項２】
前記単位部分の前記第１部分は、第３辺を有し、前記第１辺と当該第３辺とのなす内角が鋭角であり、
前記傾斜オブジェクトは、
当該傾斜オブジェクトにおける前記第１辺を含む辺の端に連続し、前記単位部分の前記第３辺に連続する連続辺を有し、当該第３辺の少なくとも一部を一辺とし、当該第１辺を含む辺と当該連続辺とのなす内角が９０°以上となる第１連続部分をさらに有する、請求項１に記載の情報処理プログラム。
【請求項３】
前記第１辺に連続し、前記第３辺に連続する連続辺は、前記仮想空間の重力方向に対して垂直である、請求項２に記載の情報処理プログラム。
【請求項４】
前記傾斜オブジェクトは、
当該傾斜オブジェクトにおける前記第１辺を含む辺の端に連続し、前記単位部分の前記第２辺に連続し、前記仮想空間の重力方向に対して垂直である連続辺を有する第２連続部分をさらに有する、請求項１から請求項３のいずれか１項に記載の情報処理プログラム。
【請求項５】
前記仮想空間において、前記傾斜オブジェクトにおける前記第１辺を含む辺の端が他のパーツオブジェクトの辺に連続するように配置される場合において、当該傾斜オブジェクトの一部が当該他のパーツオブジェクトの一部に重複する場合、当該傾斜オブジェクトの当該一部または当該他のパーツオブジェクトの当該一部を消去する消去処理を実行する消去手段として前記コンピュータを機能させる、請求項１から請求項４のいずれか１項に記載の情報処理プログラム。
【請求項６】
前記消去手段は、前記消去処理において、前記他のパーツオブジェクトと重複する、前記傾斜オブジェクトの前記第１連続部分または前記第２連続部分を消去する、請求項５に記載の情報処理プログラム。
【請求項７】
前記消去処理によって一部が消去されたパーツオブジェクトが、前記ユーザの指示に基づいて移動された結果、他のパーツオブジェクトとの重複が解消した場合、当該一部が消去されたパーツオブジェクトを、当該消去処理による消去前の状態に復元する復元手段として前記コンピュータをさらに機能させる、請求項５または請求項６のいずれか１項に記載の情報処理プログラム。
【請求項８】
前記オブジェクト配置手段は、前記ユーザの指示に基づいて、前記仮想空間に配置された前記傾斜オブジェクトに含まれる前記単位部分の数を変更する、請求項１から請求項７のいずれか１項に記載の情報処理プログラム。
【請求項９】
前記単位部分は、前記第１辺および前記第２辺を含む平行四辺形である、請求項１から請求項８のいずれか１項に記載の情報処理プログラム。
【請求項１０】
前記オブジェクト配置手段は、前記仮想空間に設定されるグリッドの交点に前記パーツオブジェクトの頂点が位置するように当該パーツオブジェクトを配置する、請求項１から請求項９のいずれか１項に記載の情報処理プログラム。
【請求項１１】
所定の種類の前記パーツオブジェクトが前記仮想空間内に配置される場合、当該パーツオブジェクトが配置されるグリッドのセルから所定距離内に位置する判定対象セルの一部に前記傾斜オブジェクトが配置されているか否かを判定し、当該判定対象セルの一部に前記傾斜オブジェクトが配置されている場合、当該判定対象セルの全体が埋められるように、前記パーツオブジェクトとして補完オブジェクトを配置する補完手段として前記コンピュータをさらに機能させる、請求項１０に記載の情報処理プログラム。
【請求項１２】
前記グリッドは、複数の正方形のセルによって構成され、
前記オブジェクト配置手段は、前記ユーザの指示に基づいて、前記パーツオブジェクトを前記仮想空間内において反転または回転させる、請求項１０または請求項１１に記載の情報処理プログラム。
【請求項１３】
前記オブジェクト配置手段は、前記グリッドにおける１以上のセルによって構成される四角形の対角線に沿って前記単位部分の前記第１辺が配置され、前記セルの辺に沿って前記第２辺が配置されるように、前記傾斜オブジェクトを配置する、請求項１０から請求項１２のいずれか１項に記載の情報処理プログラム。
【請求項１４】
前記単位部分の前記第１辺が対角線となる四角形における縦方向のセルの数と、当該四角形における横方向のセルの数とを共に割り切る正の整数は１のみである、請求項１３に記載の情報処理プログラム。
【請求項１５】
前記パーツオブジェクトが配置された前記仮想空間内において、当該仮想空間内に配置されるプレイヤオブジェクトをプレイヤの指示に応じて移動させるプレイヤオブジェクト制御手段として前記コンピュータをさらに機能させる、請求項１から請求項１４のいずれか１項に記載の情報処理プログラム。
【請求項１６】
前記オブジェクト配置手段は、前記パーツオブジェクトとして２次元のオブジェクトまたは３次元のオブジェクトを前記仮想空間内に配置する、請求項１から請求項１５のいずれか１項に記載の情報処理プログラム。
【請求項１７】
衝突判定に用いられるパーツオブジェクトをユーザの指示に基づいて仮想空間内に配置する情報処理装置であって、
前記ユーザの指示に基づいて、前記パーツオブジェクトとして、単位部分を有する傾斜オブジェクトを前記仮想空間内に配置するオブジェクト配置手段と、
前記パーツオブジェクトが配置された前記仮想空間を表す画像を生成する画像生成手段とを備え、
前記オブジェクト配置手段は、前記ユーザの第１指示に基づいて、１つの前記単位部分を有する第１傾斜オブジェクトを前記傾斜オブジェクトとして前記仮想空間内に配置し、
前記単位部分は、第１部分と第２部分とを有し、
前記第１部分は、内角が鋭角となる第１辺と第２辺とを有し、
前記第２部分は、前記第１辺と前記第２辺とのなす角の頂点に連続する連続辺を有し、前記第２辺の少なくとも一部を一辺とし、当該連続辺と前記第１辺とのなす内角が９０°以上となり、
前記オブジェクト配置手段は、前記ユーザの第２指示に基づいて、複数の前記第１辺が連続することにより１つの辺をなすように複数の前記単位部分が連続する連続単位部分を有する第２傾斜オブジェクトを前記傾斜オブジェクトとして前記仮想空間内に配置する、情報処理装置。
【請求項１８】
衝突判定に用いられるパーツオブジェクトをユーザの指示に基づいて仮想空間内に配置する情報処理システムであって、
前記ユーザの指示に基づいて、前記パーツオブジェクトとして、単位部分を有する傾斜オブジェクトを前記仮想空間内に配置するオブジェクト配置手段と、
前記パーツオブジェクトが配置された前記仮想空間を表す画像を生成する画像生成手段とを備え、
前記オブジェクト配置手段は、前記ユーザの第１指示に基づいて、１つの前記単位部分を有する第１傾斜オブジェクトを前記傾斜オブジェクトとして前記仮想空間内に配置し、
前記単位部分は、第１部分と第２部分とを有し、
前記第１部分は、内角が鋭角となる第１辺と第２辺とを有し、
前記第２部分は、前記第１辺と前記第２辺とのなす角の頂点に連続する連続辺を有し、前記第２辺の少なくとも一部を一辺とし、当該連続辺と前記第１辺とのなす内角が９０°以上となり、
前記オブジェクト配置手段は、前記ユーザの第２指示に基づいて、複数の前記第１辺が連続することにより１つの辺をなすように複数の前記単位部分が連続する連続単位部分を有する第２傾斜オブジェクトを前記傾斜オブジェクトとして前記仮想空間内に配置する、情報処理システム。
【請求項１９】
衝突判定に用いられるパーツオブジェクトをユーザの指示に基づいて仮想空間内に配置する情報処理システムにおいて実行される情報処理方法であって、
前記ユーザの指示に基づいて、前記パーツオブジェクトとして、単位部分を有する傾斜オブジェクトを前記仮想空間内に配置するオブジェクト配置ステップと、
前記パーツオブジェクトが配置された前記仮想空間を表す画像を生成する画像生成ステップとを備え、
前記オブジェクト配置ステップにおいては、前記ユーザの第１指示に基づいて、１つの前記単位部分を有する第１傾斜オブジェクトを前記傾斜オブジェクトとして前記仮想空間内に配置し、
前記単位部分は、第１部分と第２部分とを有し、
前記第１部分は、内角が鋭角となる第１辺と第２辺とを有し、
前記第２部分は、前記第１辺と前記第２辺とのなす角の頂点に連続する連続辺を有し、前記第２辺の少なくとも一部を一辺とし、当該連続辺と前記第１辺とのなす内角が９０°以上となり、
前記オブジェクト配置手段においては、前記ユーザの第２指示に基づいて、複数の前記第１辺が連続することにより１つの辺をなすように複数の前記単位部分が連続する連続単位部分を有する第２傾斜オブジェクトを前記傾斜オブジェクトとして前記仮想空間内に配置する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間内にオブジェクトを配置する情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法に関する。
【背景技術】
【０００２】
従来、ユーザの指示に基づいて仮想空間内にオブジェクトを配置する情報処理プログラムがある（例えば、非特許文献１参照）。例えば、ブロック等のオブジェクトがユーザの指示に基づいてゲーム空間内に配置され、オブジェクトが配置されたゲーム空間についてプレイヤがゲームプレイを行うことができるゲームプログラムがある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“ＳＵＰＥＲ  ＭＡＲＩＯ  ＭＡＫＥＲ”、［online］、任天堂株式会社、［平成３０年２月２０日検索］、インターネット<http://supermariomaker.nintendo.com/make-it/>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
鋭角となる部分を有するオブジェクトが仮想空間内に配置される場合、当該オブジェクトと他のオブジェクトとの衝突判定の処理を適切に行うことができなくなったり、あるいは、衝突判定の処理が複雑になったりする可能性があった。
【０００５】
それ故、本発明の目的は、衝突判定の処理を容易に行うことができる情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は、以下の（１）〜（１６）の構成を採用した。
【０００７】
（１）
本発明の一例は、衝突判定に用いられるパーツオブジェクトをユーザの指示に基づいて仮想空間内に配置する、情報処理装置のコンピュータにおいて実行される情報処理プログラムである。情報処理プログラムは、オブジェクト配置手段と、画像生成手段としてコンピュータを機能させる。オブジェクト配置手段は、ユーザの指示に基づいて、パーツオブジェクトとして、単位部分を有する傾斜オブジェクトを仮想空間内に配置する。画像生成手段は、パーツオブジェクトが配置された仮想空間を表す画像を生成する。オブジェクト配置手段は、ユーザの第１指示に基づいて、１つの単位部分を有する第１傾斜オブジェクトを傾斜オブジェクトとして仮想空間内に配置する。単位部分は、第１部分と第２部分とを有する。第１部分は、内角が鋭角となる第１辺と第２辺とを有する。第２部分は、第１辺と第２辺とのなす角の頂点に連続する連続辺を有し、第２辺の少なくとも一部を一辺とし、当該連続辺と第１辺とのなす内角が９０°以上となる。オブジェクト配置手段は、ユーザの第２指示に基づいて、第２傾斜オブジェクトを傾斜オブジェクトとして仮想空間内に配置する。第２傾斜オブジェクトは、複数の第１辺が連続することにより１つの辺をなすように複数の単位部分が連続する連続単位部分を有する。
【０００８】
上記（１）の構成によれば、単位部分は、鋭角となる部分を有する第１部分に加えて、第２部分を有するので、この第２部分によって、第１部分における鋭角部分を９０°以上の角にすることができる。これによって、傾斜オブジェクトにおける鋭角を少なくしたり、あるいは、傾斜オブジェクトにおける鋭角の位置を変更したりすることができる。したがって、仮想空間において鋭角が存在することに起因する問題が発生する可能性を低減することができるので、情報処理装置は、衝突判定の処理を容易に行うことができる。
【０００９】
（２）
単位部分の第１部分は、第３辺を有してもよく、第１辺と当該第３辺とのなす内角が鋭角であってもよい。傾斜オブジェクトは、第１連続部分をさらに有する。第１連続部分は、当該傾斜オブジェクトにおける第１辺を含む辺の端に連続し、単位部分の第３辺に連続する連続辺を有する。また、第１連続部分は、当該第３辺の少なくとも一部を一辺とし、当該第１辺を含む辺と当該連続辺とのなす内角が９０°以上となる。
【００１０】
上記（２）の構成によれば、傾斜オブジェクトにおける第１辺と第３辺とのなす鋭角をなくすことができる。このような傾斜オブジェクトを配置することによって、仮想空間において鋭角が発生する可能性を低減することができる。
【００１１】
（３）
第１辺に連続し、第３辺に連続する連続辺は、仮想空間の重力方向に対して垂直であってもよい。
【００１２】
上記（３）の構成によれば、重力方向に対して斜めを向く第１辺に、重力方向に対して垂直な辺（換言すれば、仮想空間における水平方向を向く辺）が連続する傾斜オブジェクトを配置することができる。このような傾斜オブジェクトは、ユーザにとって利用しやすい形状であるので、上記（３）の構成によれば、ユーザの利便性を向上することができる。
【００１３】
（４）
傾斜オブジェクトは、当該傾斜オブジェクトにおける第１辺を含む辺の端に連続し、単位部分の第２辺に連続し、仮想空間の重力方向に対して垂直である連続辺を有する第２連続部分をさらに有してもよい。
【００１４】
上記（４）の構成によれば、上記（３）の構成と同様、重力方向に対して斜めを向く第１辺に、仮想空間における水平方向を向く辺が連続する傾斜オブジェクトを配置することができる。これによって、ユーザの利便性を向上することができる。
【００１５】
（５）
情報処理プログラムは、消去手段としてコンピュータを機能させてもよい。消去手段は、仮想空間において、傾斜オブジェクトにおける第１辺を含む辺の端が他のパーツオブジェクトの辺に連続するように配置される場合において、当該傾斜オブジェクトの一部が当該他のパーツオブジェクトの一部に重複する場合、当該傾斜オブジェクトの当該一部または当該他のパーツオブジェクトの当該一部を消去する消去処理を実行する。
【００１６】
上記（５）の構成によれば、消去処理によって、傾斜オブジェクトの斜辺が他のパーツオブジェクトに連続するようにパーツオブジェクトを配置することができる。これによって、パーツオブジェクトによって生成可能な形状の自由度を向上することができる。
【００１７】
（６）
消去手段は、消去処理において、他のパーツオブジェクトと重複する、傾斜オブジェクトの第１連続部分または第２連続部分を消去してもよい。
【００１８】
上記（６）の構成によれば、連続部分を消去することによって、傾斜オブジェクトの斜辺が他のパーツオブジェクトに連続することができる形状に傾斜オブジェクトを変更することができる。
【００１９】
（７）
情報処理プログラムは、復元手段としてコンピュータを機能させてもよい。復元手段は、消去処理によって一部が消去されたパーツオブジェクトが、ユーザの指示に基づいて移動された結果、他のパーツオブジェクトとの重複が解消した場合、当該一部が消去されたパーツオブジェクトを、当該消去処理による消去前の状態に復元する。
【００２０】
上記（７）の構成によれば、消去処理が実行された後で傾斜オブジェクトの重複が解消した場合に、一部が消去されたパーツオブジェクトを元の形状に戻すことができる。
【００２１】
（８）
オブジェクト配置手段は、ユーザの指示に基づいて、仮想空間に配置された傾斜オブジェクトに含まれる単位部分の数を変更してもよい。
【００２２】
上記（８）の構成によれば、オブジェクト配置手段は、傾斜オブジェクトの斜辺の長さを容易に変更することができる。
【００２３】
（９）
単位部分は、第１辺および第２辺を含む平行四辺形であってもよい。
【００２４】
上記（９）の構成によれば、単位部分および連続単位部分が平行四辺形となるので、オブジェクト配置手段は、２つの斜辺を有する傾斜オブジェクトを配置することができる。
【００２５】
（１０）
オブジェクト配置手段は、仮想空間に設定されるグリッドの交点にパーツオブジェクトの頂点が位置するように当該パーツオブジェクトを配置してもよい。
【００２６】
上記（１０）の構成によれば、グリッドを基準としてパーツオブジェクトが配置されるので、ユーザにとってオブジェクトが配置しやすくなり、パーツオブジェクトの配置の利便性を向上することができる。
【００２７】
（１１）
情報処理プログラムは、補完手段としてコンピュータを機能させてもよい。補完手段は、所定の種類のパーツオブジェクトが仮想空間内に配置される場合、当該パーツオブジェクトが配置されるグリッドのセルから所定距離内に位置する判定対象セルの一部に傾斜オブジェクトが配置されているか否かを判定する。当該判定対象セルの一部に傾斜オブジェクトが配置されている場合、補完手段は、当該判定対象セルの全体が埋められるように、パーツオブジェクトとして補完オブジェクトを配置する。
【００２８】
上記（１１）の構成によれば、傾斜オブジェクトの周囲に、必要に応じて補完オブジェクトが配置される。これによって、プレイヤオブジェクトが進入した場合に容易に脱出できなくなるような領域（後述する実施形態における小セル領域）が傾斜オブジェクトの周囲に発生する可能性を低減することができる。
【００２９】
（１２）
グリッドは、複数の正方形のセルによって構成されてもよい。オブジェクト配置手段は、ユーザの指示に基づいて、パーツオブジェクトを仮想空間内において反転または回転させてもよい。
【００３０】
上記（１２）の構成によれば、傾斜オブジェクトの配置の自由度を向上することができる。
【００３１】
（１３）
オブジェクト配置手段は、グリッドにおける１以上のセルによって構成される四角形の対角線に沿って単位部分の第１辺が配置され、セルの辺に沿って第２辺が配置されるように、傾斜オブジェクトを配置してもよい。
【００３２】
（１４）
単位部分の第１辺が対角線となる四角形における縦方向のセルの数と、当該四角形における横方向のセルの数とを共に割り切る正の整数は１のみであってもよい。
【００３３】
上記（１４）の構成によれば、グリッドを単位としてパーツオブジェクトが配置される場合において、オブジェクト配置手段は、傾斜オブジェクトの斜辺の長さを最小単位で変更することができる。これによって、配置可能な傾斜オブジェクトの自由度を向上することができ、ゲーム空間のスペースを有効活用することができる。
【００３４】
（１５）
情報処理プログラムは、プレイヤオブジェクト制御手段としてコンピュータを機能させてもよい。プレイヤオブジェクト制御手段は、パーツオブジェクトが配置された仮想空間内において、当該仮想空間内に配置されるプレイヤオブジェクトをプレイヤの指示に応じて移動させる。
【００３５】
上記（１５）の構成によれば、ユーザの指示に基づいてパーツオブジェクトが生成された仮想空間においてプレイヤオブジェクトを移動させる処理において、プレイヤオブジェクトとパーツオブジェクトとの衝突判定の処理を容易に行うことができる。
【００３６】
（１６）
オブジェクト配置手段は、パーツオブジェクトとして２次元のオブジェクトまたは３次元のオブジェクトを仮想空間内に配置してもよい。
【００３７】
なお、本発明の別の一例は、上記（１）〜（１６）における各手段を備える情報処理装置または情報処理システムであってもよい。また、本発明の別の一例は、上記（１）〜（１６）における情報処理装置（または情報処理システム）において実行される情報処理方法であってもよい。
【発明の効果】
【００３８】
上記情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法によれば、衝突判定の処理を容易に行うことができる。
【図面の簡単な説明】
【００３９】
【図１】本体装置に左コントローラおよび右コントローラを装着した状態の一例を示す図
【図２】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の一例を示す図
【図３】本体装置の一例を示す六面図
【図４】左コントローラの一例を示す六面図
【図５】右コントローラの一例を示す六面図
【図６】本体装置の内部構成の一例を示すブロック図
【図７】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
【図８】ゲームシステムの機能的構成の一例を示す機能ブロック図
【図９】作成モードにおいて表示されるゲーム画像の一例を示す図
【図１０】傾斜オブジェクトの一例を示す図
【図１１】ゲーム空間における、鋭角部分を有する地形の一例を示す図
【図１２】傾斜オブジェクトを伸張させる処理の一例を示す図
【図１３】傾斜オブジェクトの傾きを変化させる処理の一例を示す図
【図１４】傾斜オブジェクトの一部を消去する処理の一例を示す図
【図１５】傾斜オブジェクトの周辺にパーツオブジェクトが配置されたゲーム空間の一例を示す図
【図１６】緩斜オブジェクトの周辺にパーツオブジェクトが配置されたゲーム空間の一例を示す図
【図１７】緩斜オブジェクトの周辺にパーツオブジェクトが配置されたゲーム空間の他の一例を示す図
【図１８】傾斜オブジェクトの周辺に他の種類のパーツオブジェクトが配置されたゲーム空間の一例を示す図
【図１９】プレイモードにおいて表示されるゲーム画像の一例を示す図
【図２０】ゲームシステム１における情報処理に用いられる各種情報の一例を示す図
【図２１】ゲームシステム１によって実行されるゲーム処理の流れの一例を示すフローチャート
【図２２】図２１に示すステップＳ５の消去・復元処理の詳細な流れの一例を示すサブフローチャート
【図２３】図２１に示すステップＳ６の補完処理の詳細な流れの一例を示すサブフローチャート
【図２４】単位部分の一例を示す図
【図２５】傾斜オブジェクトの変形例の一例を示す図
【発明を実施するための形態】
【００４０】
［１．ゲームシステムの構成］
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム１の一例は、本体装置（情報処理装置；本実施形態ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とを含む。本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能である。つまり、ゲームシステム１は、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用できる。また、ゲームシステム１は、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。以下では、本実施形態のゲームシステム１のハードウェア構成について説明し、その後に本実施形態のゲームシステム１の制御について説明する。
【００４１】
図１は、本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図である。図１に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、ゲームシステム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００４２】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００４３】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００４４】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００４５】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００４６】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。本実施形態においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００４７】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図６に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００４８】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための端子である左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１を備える。
【００４９】
図３に示すように、本体装置２は、スロット２３を備える。スロット２３は、ハウジング１１の上側面に設けられる。スロット２３は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。所定の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。
【００５０】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２がクレードルと通信を行うための端子である。本実施形態において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。上記一体型装置または本体装置２単体をクレードルに載置した場合、ゲームシステム１は、本体装置２が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードルは、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００５１】
図４は、左コントローラ３の一例を示す六面図である。図４に示すように、左コントローラ３は、ハウジング３１を備える。本実施形態においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１および図４に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００５２】
左コントローラ３は、アナログスティック３２を備える。図４に示すように、アナログスティック３２は、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック３２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、左コントローラ３は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック３２を押下する入力が可能である。
【００５３】
左コントローラ３は、各種操作ボタンを備える。左コントローラ３は、ハウジング３１の主面上に４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および左方向ボタン３６）を備える。さらに、左コントローラ３は、録画ボタン３７および−（マイナス）ボタン４７を備える。左コントローラ３は、ハウジング３１の側面の左上に第１Ｌボタン３８およびＺＬボタン３９を備える。また、左コントローラ３は、ハウジング３１の側面の、本体装置２に装着される際に装着される側の面に第２Ｌボタン４３および第２Ｒボタン４４を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００５４】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。
【００５５】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００５６】
右コントローラ４は、左コントローラ３と同様、方向入力部としてアナログスティック５２を備える。本実施形態においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、右コントローラ４は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、およびＹボタン５６）を備える。さらに、右コントローラ４は、＋（プラス）ボタン５７およびホームボタン５８を備える。また、右コントローラ４は、ハウジング５１の側面の右上に第１Ｒボタン６０およびＺＲボタン６１を備える。また、右コントローラ４は、左コントローラ３と同様、第２Ｌボタン６５および第２Ｒボタン６６を備える。
【００５７】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００５８】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図６に示す各構成要素８１〜９１、９７、および９８を備える。これらの構成要素８１〜９１、９７、および９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００５９】
本体装置２は、プロセッサ８１を備える。プロセッサ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のみから構成されてもよいし、ＣＰＵ機能、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）機能等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）から構成されてもよい。プロセッサ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、スロット２３に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００６０】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、プロセッサ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００６１】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。スロットＩ／Ｆ９１は、プロセッサ８１に接続される。スロットＩ／Ｆ９１は、スロット２３に接続され、スロット２３に装着された所定の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、プロセッサ８１の指示に応じて行う。
【００６２】
プロセッサ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００６３】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、プロセッサ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００６４】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、プロセッサ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００６５】
プロセッサ８１は、上述の左側端子１７、右側端子２１、および下側端子２７に接続される。プロセッサ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、プロセッサ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。また、プロセッサ８１は、クレードルと通信を行う場合、下側端子２７を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードルに装着された場合、本体装置２は、クレードルを介してデータ（例えば、画像データや音声データ）を据置型モニタ等に出力することができる。
【００６６】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、複数のユーザは、左コントローラ３および右コントローラ４のセットをそれぞれ用いて、本体装置２に対する入力を同時に行うことができる。一例として、第１ユーザが左コントローラ３および右コントローラ４の第１セットを用いて本体装置２に対して入力を行うと同時に、第２ユーザが左コントローラ３および右コントローラ４の第２セットを用いて本体装置２に対して入力を行うことが可能となる。
【００６７】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とプロセッサ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ８１へ出力する。
【００６８】
また、ディスプレイ１２は、プロセッサ８１に接続される。プロセッサ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００６９】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、プロセッサ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。
【００７０】
また、本体装置２は、加速度センサ８９を備える。本実施形態においては、加速度センサ８９は、所定の３軸（例えば、図１に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ８９は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。
【００７１】
また、本体装置２は、角速度センサ９０を備える。本実施形態においては、角速度センサ９０は、所定の３軸（例えば、図１に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ９０は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。
【００７２】
加速度センサ８９および角速度センサ９０は、プロセッサ８１に接続され、加速度センサ８９および角速度センサ９０の検出結果は、プロセッサ８１へ出力される。プロセッサ８１は、上記の加速度センサ８９および角速度センサ９０の検出結果に基づいて、本体装置２の動きおよび／または姿勢に関する情報を算出することが可能である。
【００７３】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびプロセッサ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、プロセッサ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。
【００７４】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００７５】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００７６】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図７に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施形態においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００７７】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００７８】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９、４３、４４、および４７）を備える。また、左コントローラ３は、アナログスティック（図７では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００７９】
左コントローラ３は、慣性センサを備える。具体的には、左コントローラ３は、加速度センサ１０４を備える。また、左コントローラ３は、角速度センサ１０５を備える。本実施形態においては、加速度センサ１０４は、所定の３軸（例えば、図４に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ１０４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ１０５は、所定の３軸（例えば、図４に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ１０５は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。加速度センサ１０４および角速度センサ１０５は、それぞれ通信制御部１０１に接続される。そして、加速度センサ１０４および角速度センサ１０５の検出結果は、適宜のタイミングで繰り返し通信制御部１０１へ出力される。
【００８０】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、アナログスティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、またはセンサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００８１】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、左コントローラ３の動きおよび／または姿勢に関する情報を、操作データ（具体的には、加速度センサ１０４および角速度センサ１０５の検出結果）に基づいて算出することができる。
【００８２】
左コントローラ３は、電力供給部１０６を備える。本実施形態において、電力供給部１０６は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００８３】
図７に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００８４】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部を備える。具体的には、各ボタン１１３、アナログスティック５２、慣性センサ（加速度センサ１１４および角速度センサ１１５）を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００８５】
右コントローラ４は、電力供給部１１６を備える。電力供給部１１６は、左コントローラ３の電力供給部１０６と同様の機能を有し、同様に動作する。
【００８６】
［２．ゲームシステムにおける処理の概要］
［２−１．ゲームおよびゲーム処理の概要］
以下、図８を参照して、本実施形態におけるゲームシステム１によって実行される情報処理の概要について説明する。本実施形態においては、ゲームシステム１は、ユーザがゲーム空間（換言すれば、ゲームステージ）を作成するとともに、作成されたゲーム空間を用いて遊ぶゲームのためのゲームプログラムを実行する。すなわち、上記ゲームにおいては、ユーザがゲーム空間を作成する作成モードと、作成されたゲーム空間についてユーザ（換言すれば、プレイヤ）がゲームプレイを行うプレイモードとがある。作成モードにおいては、ユーザは、ゲーム空間内にオブジェクトを配置することによってゲーム空間を作成する。プレイモードにおいては、プレイヤは、ゲーム空間に登場するプレイヤオブジェクトを操作してゲーム上の目的（例えば、ゴールに到達する）を達成する。なお、本実施形態では、作成モードにおいてゲーム空間を作成する者をユーザと呼び、プレイモードにおいてゲームをプレイする者をプレイヤと呼ぶ。なお、ユーザとプレイヤとは、同じ者であってもよいし、異なる者であってもよい。
【００８７】
図８は、ゲームシステム１の機能的構成の一例を示す機能ブロック図である。本実施形態においては、ゲームシステム１は、オブジェクト配置手段１５１と、消去手段１５２と、復元手段１５３と、補完手段１５４と、画像生成手段１５５と、プレイヤオブジェクト制御手段１５６とを備える。本実施形態において、上記各手段１５１〜１５６は、本体装置２のプロセッサ８１によって実現される。具体的には、上記各手段１５１〜１５６は、プロセッサ８１がアクセス可能な記憶媒体に記憶された情報処理プログラム（具体的には、ゲームプログラム）をプロセッサ８１が実行することによって実現される。なお、「プロセッサ８１がアクセス可能な記憶媒体」とは、例えば、スロット２３に装着される記憶媒体であってもよいし、フラッシュメモリ８４であってもよい。
【００８８】
オブジェクト配置手段１５１は、作成モードにおいて、ユーザの指示に基づいて、ゲーム空間内にパーツオブジェクトを配置する。パーツオブジェクトとは、例えば、ゲーム空間を構成する地形（例えば、後述するブロックオブジェクト、傾斜オブジェクト、および、補完オブジェクト）、または、障害物（例えば、後述する土管オブジェクト）等を表すオブジェクトである。本実施形態においては、パーツオブジェクトは、衝突判定（当たり判定とも言う）に用いられるオブジェクトである。つまり、ゲームシステム１は、プレイモードにおけるゲームプレイ中において、パーツオブジェクトとプレイヤオブジェクトとの衝突判定を行う。また、オブジェクト配置手段１５１は、ゲーム空間内に配置されたパーツオブジェクトを、ユーザの指示に基づいて移動させたり、変形させたりする。
【００８９】
オブジェクト配置手段１５１は、ユーザの指示を示す入力情報を受け付け、当該指示に基づいてゲーム空間内に配置し、パーツオブジェクト情報を出力する。例えば、パーツオブジェクト情報は、ゲーム空間内に配置されるパーツオブジェクトを規定するための情報であり、具体的には、パーツオブジェクトの種類、位置、形状、および、向きを示す。
【００９０】
消去手段１５２は、作成モードにおいて、ゲーム空間内に配置されたパーツオブジェクトの一部を消去する消去処理を、所定の条件下で実行する。消去処理の詳細については、後述する“［２−５．傾斜オブジェクトに対する消去処理］”で述べる。消去手段１５２は、オブジェクト配置手段１５１から出力されたパーツオブジェクト情報に基づいてパーツオブジェクトに対する消去処理を必要に応じて実行し、消去処理後のパーツオブジェクトを示すパーツオブジェクト情報を出力する。
【００９１】
復元手段１５３は、作成モードにおいて、上記消去処理によって一部が消去されたパーツオブジェクトについて、消去された部分を復元する復元処理を、所定の条件下で実行する。復元処理の詳細については、後述する“［２−５．傾斜オブジェクトに対する消去処理］”で述べる。復元手段１５３は、オブジェクト配置手段１５１から出力されたパーツオブジェクト情報に基づいてパーツオブジェクトに対する復元処理を必要に応じて実行し、復元処理後のパーツオブジェクトを示すパーツオブジェクト情報を出力する。
【００９２】
補完手段１５４は、作成モードにおいて、ゲーム空間内にパーツオブジェクトが配置された場合に、後述する補完条件が満たされたことに応じて、ゲーム空間内に補完オブジェクトを配置する補完処理を実行する。補完オブジェクトおよび補完処理の詳細については、後述する“［２−６．傾斜オブジェクトに関する補完処理］”で述べる。補完手段１５４は、オブジェクト配置手段１５１から出力されたパーツオブジェクト情報に基づいて補完処理を必要に応じて実行し、補完処理によってゲーム空間内に配置された補完オブジェクトに関するパーツオブジェクト情報を出力する。
【００９３】
画像生成手段１５５は、上記各手段１５１〜１５４から出力される情報に基づいて生成されるゲーム空間を表すゲーム画像を生成する。画像生成手段１５５によって生成されたゲーム画像は、表示装置に出力されて表示される。作成モードにおいては、作成中のゲーム空間を表すゲーム画像（図９）が表示装置に表示される。なお、ゲーム画像が表示される表示装置は、本体装置２のディスプレイ１２であってもよいし、上述のクレードルに接続される据置型モニタであってもよい。
【００９４】
プレイヤオブジェクト制御手段１５６は、プレイモードにおいて、パーツオブジェクトが配置されたゲーム空間内において、当該ゲーム空間内に配置されるプレイヤオブジェクトをプレイヤの指示に基づいて移動させる。プレイヤオブジェクト制御手段１５６は、ユーザの指示を示す入力情報を受け付け、当該指示に基づいてプレイヤオブジェクトを移動させ、移動後のプレイヤオブジェクトに関するプレイヤオブジェクト情報を出力する。例えば、プレイヤオブジェクト情報は、ゲーム空間内に配置されるプレイヤオブジェクトを規定するための情報であり、具体的には、プレイヤオブジェクトの状態、大きさ、位置、および、体勢を示す。なお、プレイヤオブジェクト制御手段１５６は、プレイヤオブジェクトに加えて、ゲーム空間に登場する他のオブジェクトの動作を制御してもよい。当該他のオブジェクトは、例えば、敵オブジェクト、アイテムオブジェクト、および、地形オブジェクト（つまり、地形オブジェクトは、移動可能なものであってもよい）等である。
【００９５】
プレイモードにおいて、画像生成手段１５５は、プレイヤオブジェクト情報に基づいて、プレイヤオブジェクトを含むゲーム空間を表す画像を生成する。プレイモードにおいては、プレイヤによって操作中であるプレイヤオブジェクトを含むゲーム空間を表すゲーム画像が表示装置に表示される。
【００９６】
［２−２．ゲーム空間内に配置されるオブジェクト］
次に、図９を参照して、ゲーム空間内に配置される各種オブジェクトについて説明する。図９は、作成モードにおいて表示されるゲーム画像の一例を示す図である。図９に示すように、作成モードにおけるゲーム画像は、ゲーム空間を表すゲーム空間画像２０１を含む。
【００９７】
本実施形態においては、ゲーム空間内には、上記パーツオブジェクトとして、ブロックオブジェクト２０４、傾斜オブジェクト２０５、および、土管オブジェクト２０６が配置され得る。ブロックオブジェクト２０４および傾斜オブジェクト２０５は、ゲーム空間における地形を表すオブジェクトである。ブロックオブジェクト２０４は、ゲーム空間における縦方向または横方向を向く辺のみによって構成されるオブジェクトである。本実施形態においては、傾斜オブジェクト２０５は、ゲーム空間における縦方向または横方向に対して傾いた斜辺を有するオブジェクトである。傾斜オブジェクト２０５は、ゲーム空間における坂道を表すオブジェクトであると言うことができる。土管オブジェクト２０６は、ゲーム空間における障害物を表すオブジェクトである。
【００９８】
図９に示すように、ゲーム空間内には、プレイヤオブジェクト２０７が配置される。プレイモードにおいては、作成モードにおいて配置された位置にプレイヤオブジェクト２０７が配置された状態でゲームが開始される。なお、本実施形態において、ゲーム空間内には、プレイヤオブジェクト２０７の他に、敵オブジェクトおよびアイテムオブジェクトがプレイヤの指示に基づいて配置され得る。
【００９９】
図９に示すように、作成モードにおけるゲーム画像は、ゲーム空間内に配置するオブジェクトを指示するためのオブジェクトバー画像２０２を含む。オブジェクトバー画像２０２は、ゲーム空間内に配置され得るオブジェクトを配置する配置指示を行うためのアイコン２１１〜２１４を含む。具体的には、ブロックアイコン２１１は、ブロックオブジェクト２０４を配置する配置指示を行うためのアイコンである。傾斜アイコン２１２は、傾斜オブジェクト２０５を配置する配置指示を行うためのアイコンである。土管アイコン２１３は、土管オブジェクト２０６を配置する配置指示を行うためのアイコンである。プレイヤアイコン２１４は、プレイヤオブジェクト２０７を配置する配置指示を行うためのアイコンである。
【０１００】
本実施形態においては、作成モードにおいて、ユーザは、アイコン２１１〜２１４のいずれか１つを選択する指示（例えば、アイコンをタッチする指示）を行った後、画面上におけるゲーム空間内の位置を指定する配置指示（例えば、当該位置をタッチする指示）を行うことによって、選択したアイコンに対応するオブジェクトをゲーム空間内に配置することができる。なお、ゲーム空間内にオブジェクトを配置するための指示操作は任意であり、他の操作によってオブジェクトが配置されてもよい。
【０１０１】
図９に示すように、作成モードにおけるゲーム画像は、作成モードにおける各種の指示を行うためのメニューバー画像２０３を含む。本実施形態においては、メニューバー画像２０３は、メニューアイコン２１５と、消去アイコン２１６とを含む。メニューアイコン２１５は、メニュー画像を表示する指示を行うためのアイコンである。メニュー画像は、例えば、作成されたゲーム空間を保存する指示、作成モードを終了する指示、プレイモードへ移行する指示、および、ゲームを終了する指示等を行うためのアイコンを含む。つまり、ユーザは、メニュー画像を表示させることによってこれらの指示を行うことができる。また、消去アイコン２１６は、ゲーム空間内に配置されたオブジェクトを消去する指示を行うためのアイコンである。例えば、作成モードにおいて、ユーザは、消去アイコン２１６を選択する指示を行った後、ゲーム空間内に配置されたオブジェクトを指定する指示を行うことによって、指定したオブジェクトをゲーム空間から消去することができる。
【０１０２】
また、本実施形態においては、図９に示すように、作成モードにおいては、ゲーム空間にグリッドが設定される。本実施形態においては、グリッドは、縦方向のグリッド線と横方向のグリッド線とによって規定される（図９に示す点線を参照）。なお、本実施形態においては、ゲーム空間における縦方向は、ゲーム空間において仮想的に設定される重力方向（鉛直方向。より具体的には、鉛直下方向）に平行であり、ゲーム空間における横方向は、当該重力方向に垂直な方向（換言すれば、水平方向）である。図９に示すように、グリッドを構成するセル（換言すれば、グリッドのマス目）は、正方形である。
【０１０３】
本実施形態においては、作成モードにおいて、各オブジェクトは、グリッドのセルに従って配置される。すなわち、オブジェクト配置手段１５１は、グリッドの交点にパーツオブジェクトの頂点が位置するように当該パーツオブジェクトを配置する。例えば、上記ブロックオブジェクトおよび傾斜オブジェクトは、オブジェクトの頂点がグリッドの交点（換言すれば、セルの頂点）に一致するように配置される。なお、オブジェクトの頂点がグリッドの交点と必ずしも一致するように当該オブジェクトが配置される必要はない。例えば、オブジェクトの角部分が丸みを帯びている場合には、配置されたオブジェクトの角部分はグリッドの交点と一致しなくてもよい。この場合、例えば、オブジェクトの辺の一部がグリッド線上に位置するように当該オブジェクトが配置されてもよい。ゲーム空間にグリッドが設定されることによって、ユーザにとってオブジェクトが配置しやすくなる。なお、他の実施形態においては、パーツオブジェクトが配置されるゲーム空間にグリッドが設定されなくてもよい。
【０１０４】
［２−３．傾斜オブジェクト］
次に、図９および図１０を参照して、傾斜オブジェクトについて説明する。本実施形態において、オブジェクト配置手段１５１は、ユーザの配置指示に基づいてゲーム空間内に傾斜オブジェクトを配置する。図１０は、傾斜オブジェクトの種類の一例を示す図である。本実施形態においては、図１０に示すように、ゲームシステム１においては、急斜オブジェクトと緩斜オブジェクトという２種類の傾斜オブジェクトが用意されている。急斜オブジェクトは、斜辺の傾きが相対的に急である斜面オブジェクトである。本実施形態においては、急斜オブジェクトの斜辺は、縦：横の比が１：１となる傾きである（図１０参照）。緩斜オブジェクトは、斜辺の傾きが相対的に緩やかである斜面オブジェクトである。本実施形態においては、緩斜オブジェクトの斜辺は、縦：横の比が１：２となる傾きである（図１０参照）。
【０１０５】
なお、本実施形態においては、ユーザは、ゲーム画像として表示される上記傾斜アイコン２１２を、切替指示によって切り替えることができる。すなわち、ゲームシステム１は、ユーザの切替指示に応じて、傾斜アイコン２１２を、急斜オブジェクトを表すアイコンと、緩斜オブジェクトを表すアイコンとで切り替える。ユーザは、急斜オブジェクトと緩斜オブジェクトとのうち、配置したい急斜オブジェクトを表すアイコンを傾斜アイコン２１２として表示させた後、当該傾斜アイコン２１２を選択する指示を行うことによって、所望の傾斜オブジェクトをゲーム空間内に配置することができる。
【０１０６】
図１０に示すように、傾斜オブジェクトは、単位部分と、連続部分とを含む。単位部分は、基準方向（すなわち、グリッド線の方向）に対して傾いた向きを向く斜辺を有する。なお、図１０に示すように、急斜オブジェクトと緩斜オブジェクトとでは、単位部分における斜辺の傾きが異なっている。なお、図１０では、左端より右端が上側になる斜辺を有する傾斜オブジェクトの例を示しているが、本実施形態においては、右端より左端が上側になる斜辺を有する傾斜オブジェクトを配置することも可能である。
【０１０７】
また、本実施形態においては、単位部分は、斜辺と、ゲーム空間における縦方向に平行な辺とを有する平行四辺形である。ただし、単位部分の形状は平行四辺形に限らず、他の形状であってもよい（後述する“（傾斜オブジェクトの形状に関する変形例）”を参照）。
【０１０８】
図１０に示すように、本実施形態においては、１つの単位部分を有する傾斜オブジェクトと、複数の単位部分を有する傾斜オブジェクトとを配置可能である。ここで、１つの単位部分を有する傾斜オブジェクトを「単傾斜オブジェクト」と呼び、複数の単位部分を有する傾斜オブジェクトを「複傾斜オブジェクト」と呼ぶ。図１０に示すように、急斜オブジェクトと緩斜オブジェクトとの両方について、単傾斜オブジェクトと複傾斜オブジェクトとをそれぞれ配置可能である。
【０１０９】
図１０に示すように、複傾斜オブジェクトにおいては、複数の単位部分が連続して設けられる。具体的には、複傾斜オブジェクトにおける複数の単位部分は、複数の単位部分の各斜辺が連続することにより１つの斜辺をなすように、配置されている。なお、以下では、複傾斜オブジェクトに含まれる複数の単位部分からなる部分を「連続単位部分」と呼ぶ。
【０１１０】
図１０に示すように、傾斜オブジェクトは、連続部分（具体的には、上連続部分および下連続部分）を有する。連続部分は、斜辺に連続する連続辺を有する部分である。図１０に示すように、本実施形態においては、傾斜オブジェクトは、下連続部分と上連続部分という２つの連続部分を含む。２つの連続部分の一方は、単位部分または連続単位部分の一方端に連続し、２つの連続部分の他方は、単位部分または連続単位部分の他方端に連続する。具体的には、下連続部分は、斜辺の下側の端に連続する連続辺（「下連続辺」と呼ぶ）を有する連続部分である。上連続部分は、斜辺の上側の端に連続する連続辺（「上連続辺」と呼ぶ）を有する連続部分である。
【０１１１】
図１０に示すように、本実施形態においては、連続辺は、横方向のグリッド線と平行である。したがって、本実施形態においては、連続辺は、斜辺とのなす内角が、９０°以上となるように設定される。より具体的には、上連続辺は、斜辺とのなす角θ１が、鈍角（すなわち、９０°＜θ１＜１８０°）となるように設定される。また、下連続辺は、斜辺とのなす角θ２が、優角（すなわち、１８０°＜θ２＜３６０°）となるように設定される。なお、連続辺と斜辺とのなす内角は、９０°以上であって、２７０°以下であってもよい。例えば、下連続辺は、斜辺とのなす内角θ２が、１８０°＜θ２＜２７０°となるように設定されてもよい。このとき、連続辺と斜辺との外角についても鋭角にならないようにすることができる。
【０１１２】
また、連続部分は、グリッドの方向（すなわち、縦方向および横方向）に平行な辺のみで構成される。本実施形態においては、連続部分は、グリッドのセルと同じ大きさの正方形である。
【０１１３】
以上のように、本実施形態においては、傾斜オブジェクトは、単位部分と連続部分とによって構成される。したがって、ゲームシステム１は、単位部分の数を変更することで、斜辺の長さが異なる複数種類の傾斜オブジェクトを配置することができる。例えば、図１０においては３つの単位部分を有する急斜オブジェクトを示しているが、ゲームシステム１は、２つの単位部分を有する急斜オブジェクトを配置することも可能であるし、４つ以上の単位部分を有する急斜オブジェクトを配置することも可能である。
【０１１４】
なお、本明細書においては、傾斜オブジェクトの構成を説明する目的で、傾斜オブジェクトを上記単位部分と連続部分とに区切って説明を行う。また、後述する“［４．上記実施形態の作用効果および変形例］”においては、単位部分の構成を説明する目的で、単位部分を第１部分と第２部分とに区切って説明を行う（図２４）。ただし、ゲームシステム１は、傾斜オブジェクトを上記の各部分に分けて管理する必要はない。すなわち、ゲームシステム１は、傾斜オブジェクトを１つのパーツオブジェクトとして管理してもよいし、傾斜オブジェクトを構成する上記各部分のオブジェクトをそれぞれ別のパーツオブジェクトとして管理してもよい。
【０１１５】
なお、ゲームシステム１は、単位部分の数が異なる複数種類の傾斜オブジェクトを予め用意していてもよい。また、ゲームシステム１は、単位部分と連続部分とを予め用意しておき、これらの単位部分と連続部分とを組み合わせることで、斜辺の長さが異なる複数種類の傾斜オブジェクトを生成するようにしてもよい。
【０１１６】
以上のように、本実施形態においては、傾斜オブジェクトは、斜辺に接続される連続辺を有するので、鋭角がない形状となる（図１０参照）。ここで、鋭角を有するオブジェクトがゲーム空間内に配置される結果、ゲーム空間内における地形に鋭角部分が発生すると、オブジェクトと地形との衝突判定の処理を適切に行うことができなかったり、当該衝突判定の処理が複雑化したりするおそれがある。ひいては、ゲームシステム１における処理負担が大きくなったり、開発者の作業負担が大きくなったりするおそれがある。
【０１１７】
図１１は、ゲーム空間における、鋭角部分を有する地形の一例を示す図である。例えば、図１１に示すように、鋭角部分を有する直角三角形のオブジェクト２１８が連続するような地形が生成された場合を考える。なお、本実施形態のようにゲーム空間をユーザが作成するゲームにおいては、開発者がこのような地形を作成しない場合であっても、ユーザによってこのような地形が作成されることもあり得る。
【０１１８】
図１１においては、４つの直角三角形のオブジェクト２１８が、それぞれの斜辺が連続するように配置されている。このとき、各オブジェクト２１８は鋭角の頂点で互いに接触しており、各オブジェクト２１８は互いに点でのみ接触している。そのため、プレイヤオブジェクト２０７は、２つのオブジェクト２１８が接触する点の位置で、斜面からすり抜けてしまったり、引っ掛かってスムーズに動けなくなったりする可能性がある。また、図１１においては、４つのオブジェクト２１８によって形成される斜面の両端が鋭角となっている。この鋭角部分の近傍において、プレイヤオブジェクト２０７の挙動が不自然になる可能性がある。例えば、斜面の端部の鋭角部分をすり抜けてプレイヤオブジェクト２０７が移動したり、端部の鋭角部分にプレイヤオブジェクト２０７が引っ掛かってスムーズに移動できなかったりする可能性がある。なお、これらの可能性を低減するために、衝突判定の処理を複雑にする（例えば、上記の地形については特別な衝突判定処理を実行するようにする）ことが考えられる。しかし、衝突判定の処理が複雑になると、ゲームシステム１における処理負担が大きくなったり、開発者の作業負担が大きくなったりするおそれがある。
【０１１９】
これに対して、本実施形態においては、オブジェクト配置手段１５１は、鋭角を有していない傾斜オブジェクトをゲーム空間内に配置するので、ゲーム空間内における地形に鋭角部分が発生する可能性を低減することができる。これによって、衝突判定の処理を簡易化することができ、ゲームシステム１は、衝突判定の処理を容易に行うことができる。したがって、ゲームシステム１における処理負担を軽減したり、開発者の作業負担を軽減したりすることができる。
【０１２０】
本実施形態においては、単位部分は、斜辺と、当該斜辺に隣接する辺Ａ（図１０参照。換言すれば、図２４における第３辺）とを有し、斜辺と辺Ａとのなす角が鋭角となる。ここで、本実施形態においては、傾斜オブジェクトは、斜辺の端に連続し、単位部分の上記辺Ａに連続する連続辺（換言すれば、斜辺の両端のうちで単位部分の上記辺Ａに連続する側の端に連続する連続辺。すなわち、上連続辺）を有し、当該辺Ａを一辺とし、当該斜辺と当該連続辺とのなす内角が９０°以上となる連続部分（すなわち、上連続部分）を有する。これによって、傾斜オブジェクトにおける斜辺と辺Ａとのなす鋭角がなくなるので、ゲーム空間内における地形に鋭角部分が発生する可能性を低減することができる。
【０１２１】
また、本実施形態においては、上記連続辺（すなわち、上連続辺）は、ゲーム空間の重力方向に対して垂直（換言すれば、水平）である。したがって、傾斜オブジェクトは、ゲーム空間における水平な地形に斜辺を連続させることができるので、ユーザにとって利用しやすい形状のパーツオブジェクトを提供することができる。
【０１２２】
また、本実施形態においては、傾斜オブジェクトは、斜辺の端に連続し、単位部分の上記辺Ｂ（図１０参照）に連続し（換言すれば、斜辺の両端のうちで単位部分の辺Ｂに連続する側の端に連続し）、ゲーム空間の重力方向に対して垂直である連続辺（すなわち、下連続辺）を有する連続部分（すなわち、下連続部分）をさらに有する。これによって、傾斜オブジェクトは、ゲーム空間における水平な地形に斜辺を連続させることができるので、ユーザにとって利用しやすい形状のパーツオブジェクトを提供することができる。
【０１２３】
また、本実施形態においては、単位部分において、斜辺に対向する辺と上記辺Ｂとのなす角も鋭角となる（図１０）。ここで、本実施形態においては、傾斜オブジェクトは、斜辺の両端のうちで単位部分の上記辺Ｂに連続する側の端に連続する連続辺（すなわち、下連続辺）を有し、当該辺Ｂを一辺とし、上記斜辺に対向する辺と当該連続辺とのなす内角が９０°以上となる連続部分（すなわち、下連続部分）を有する。これによって、傾斜オブジェクトにおける斜辺と辺Ｂとのなす鋭角がなくなるので、ゲーム空間内における地形に鋭角部分が発生する可能性を低減することができる。
【０１２４】
［２−４．傾斜オブジェクトに対する変形処理］
次に、図１２および図１３を参照して、傾斜オブジェクトに対する変形処理について説明する。本実施形態においては、作成モードにおいて、ユーザは、ゲーム空間内に配置された傾斜オブジェクトを変形させることができる。具体的には、ゲームシステム１は、ユーザの指示に基づいて、傾斜オブジェクトの斜辺を伸縮させたり、斜辺の向きを変化させたりする。以下、傾斜オブジェクトを変形させる処理について説明する。
【０１２５】
図１２は、傾斜オブジェクトを伸張させる処理の一例を示す図である。図１２に示す状態ａでは、ゲーム空間内に傾斜オブジェクト２２１が配置されている。ここでは、傾斜オブジェクト２２１は、単傾斜オブジェクトである。以下では、傾斜オブジェクト２２１に対する変形処理を例として説明する。
【０１２６】
図１２に示す状態ａにおいて、ユーザは、傾斜オブジェクトに対する変形指示を行う。本実施形態においては、オブジェクト配置手段１５１は、変形指示として、画面上における連続部分の位置を指定した後で、指示位置を画面上で移動させるドラッグ操作による指示を受け付ける。なお、変形指示の具体的な操作内容は任意であり、ドラッグ操作以外の他の操作によって変形指示が行われてもよい。
【０１２７】
図１２に示す状態ａにおいては、ユーザは、傾斜オブジェクト２２１の上連続部分を指定し、指示位置を上連続部分の位置から右上の方向へ移動させる操作によって変形指示を行うものとする（図１２参照）。このとき、オブジェクト配置手段１５１は、図１２に示す状態ｂのように、傾斜オブジェクト２２１の斜辺を伸張させるように傾斜オブジェクト２２１を変形させる。なお、図示しないが、状態ｂにおいて、指示位置を左下の方向へ移動させる操作が行われると、オブジェクト配置手段１５１は、傾斜オブジェクトの斜辺を短縮させる。このように、オブジェクト配置手段１５１は、傾斜オブジェクト２２１の連続部分を指定してから、指定した位置を移動させる操作に応じて、傾斜オブジェクト２２１の斜辺を伸縮させる。
【０１２８】
具体的には、本実施形態においては、オブジェクト配置手段１５１は、傾斜オブジェクトに含まれる単位部分を増減させることで、傾斜オブジェクトの斜辺を伸縮させる。具体的には、オブジェクト配置手段１５１は、単位部分と連続部分とを予め用意しておき、単位部分の数を変形指示に応じて変更することで、傾斜オブジェクトが伸縮する様子を表現する。なお、他の実施形態においては、オブジェクト配置手段１５１は、単位部分の数が異なる複数種類の傾斜オブジェクトを予め用意しておき、ゲーム空間内に配置される傾斜オブジェクトを変形指示に応じて置き換えることで、傾斜オブジェクトが伸縮する様子を表現してもよい。
【０１２９】
上記のように、本実施形態においては、オブジェクト配置手段１５１は、ユーザの変形指示に基づいて、ゲーム空間に配置された傾斜オブジェクトに含まれる単位部分の数を変更する。これによって、ゲームシステム１は、例えばオブジェクトを拡縮する処理を行うことなく、傾斜オブジェクトの斜辺の長さを容易に変更することができる。
【０１３０】
また、本実施形態においては、オブジェクト配置手段１５１は、傾斜オブジェクトの連続部分を指定する指示に基づいて、当該傾斜オブジェクトを変形させる。このように、本実施形態においては、傾斜オブジェクトの連続部分が、変形指示を行う目印となるので、ユーザは変形指示を容易に行うことができる。また、詳細は後述するが、本実施形態においては、傾斜オブジェクトに対する移動指示は、傾斜オブジェクトの単位部分を指定する指示を含む。つまり、本実施形態においては、ゲームシステム１は、変形指示と移動指示とを、連続部分を指定するか単位部分を指定するかによって区別するので、これら２つの指示をユーザにとってわかりやすくすることができる。
【０１３１】
図１３は、傾斜オブジェクトの傾きを変化させる処理の一例を示す図である。図１３に示す状態ｃでは、ゲーム空間内に傾斜オブジェクト２２２が配置されている。ここでは、傾斜オブジェクト２２２は、斜辺が右上がりとなる向きの傾斜オブジェクトである。以下では、傾斜オブジェクト２２２に対する変形処理を例として説明する。
【０１３２】
図１３に示す状態ｃにおいては、ユーザは、傾斜オブジェクト２２２の上連続部分を指定し、指示位置を上連続部分の位置から下方向へ移動させる操作を行うものとする（図１３参照）。このとき、オブジェクト配置手段１５１は、図１３に示す状態ｄのように、傾斜オブジェクト２２２の斜辺の傾きを変更するように傾斜オブジェクト２２２を変形させる。具体的には、傾斜オブジェクト２２２は、斜辺が右下がりとなる向きに変形される。このように、オブジェクト配置手段１５１は、傾斜オブジェクト２２２の連続部分を指定してから、指定した位置を移動させる操作に応じて、傾斜オブジェクト２２２の斜辺の向きを変更させる。なお、図示しないが、状態ｃにおいて、指示位置を左の方向へ、傾斜オブジェクト２２２の下連続部分よりも左側の位置まで移動させる操作が行われる場合も上記と同様に、オブジェクト配置手段１５１は、斜辺が右下がりとなる向きとなるように、傾斜オブジェクト２２２を変形させる。なお、傾斜オブジェクト２２２を状態ｃから状態ｄへと変形することは、傾斜オブジェクトを反転させることであると言うことができる。
【０１３３】
なお、本実施形態においては、変形指示に基づいて傾斜オブジェクトを変形する場合、オブジェクト配置手段１５１は、変形指示において指定されていない連続部分の位置を変更しない。つまり、変形指示によって傾斜オブジェクトが変形される場合であっても、変形指示において指定されていない連続部分の位置は固定されたままとなる。これによれば、傾斜オブジェクトを変形させる操作がユーザにとってわかりやすくなり、操作性を向上することができる。
【０１３４】
また、本実施形態においては、オブジェクト配置手段１５１は、変形指示において指定された連続部分が配置可能な位置のうちで、指示位置に最も近い位置に連続部分を配置する。また、オブジェクト配置手段１５１は、現在の指示位置に応じて連続部分の位置をリアルタイムに変化させることによって、傾斜オブジェクトをリアルタイムに変形させる。これによって、変形指示による変形後の傾斜オブジェクトの形状をユーザにとってわかりやすく提示することができる。
【０１３５】
図１２および図１３においては、急斜オブジェクトを変形する場合を例として説明したが、緩斜オブジェクトも傾斜オブジェクトと同様に、上記変形指示に基づいて変形される。ただし、急斜オブジェクトと緩斜オブジェクトとでは、単位部分の横方向の長さが異なるので、伸縮する単位長さも両者で異なっている。すなわち、急斜オブジェクトについては、横方向について１グリッド単位で斜辺が伸縮するのに対して、緩斜オブジェクトについては、横方向について２グリッド単位で斜辺を伸縮する点で、両者は異なる。
【０１３６】
また、本実施形態においては、オブジェクト配置手段１５１は、変形指示に基づいて、急斜オブジェクトを緩斜オブジェクトに変更したり、緩斜オブジェクトを急斜オブジェクトに変更したりすることはない。つまり、ユーザは、変形指示によって傾斜オブジェクトの斜辺の傾き量を変更することはできない。ここで、上記のように、急斜オブジェクトと緩斜オブジェクトとでは、斜辺を伸縮することができる単位長さが異なっている。そのため、変形指示の操作中において、急斜オブジェクトと緩斜オブジェクトとを切り替えるとすれば、傾斜オブジェクトの斜辺の伸縮単位が操作中に変化することとなる結果、ユーザが操作に違和感を抱く可能性がある。そこで、本実施形態においては、変形指示によっては急斜オブジェクトと緩斜オブジェクトとが切り替えられないようにすることによって、変形指示の操作性を向上するようにしている。なお、他の実施形態においては、オブジェクト配置手段１５１は、変形指示に基づいて、急斜オブジェクトと緩斜オブジェクトとを互いに切り替えるようにしてもよい。
【０１３７】
なお、本実施形態においては、オブジェクト配置手段１５１は、上述の配置指示に基づいて、単傾斜オブジェクトをゲーム空間内に配置し、変形指示に基づいて、当該単傾斜オブジェクトを複傾斜オブジェクトに変形するものとする。ただし、他の実施形態においては、配置指示に基づいて、所定の長さの斜辺を有する複傾斜オブジェクトをゲーム空間内に配置し、変形指示に基づいて、当該複傾斜オブジェクトの斜辺の長さを変化させるようにしてもよい。また、他の実施形態においては、オブジェクト配置手段１５１は、第１の配置指示に基づいて、単傾斜オブジェクトをゲーム空間内に配置し、第２の配置指示に基づいて、所定の長さの斜辺を有する複傾斜オブジェクトをゲーム空間内に配置するようにしてもよい。なお、ゲームシステム１は、上述の切替指示によって第１の配置指示と第２の配置指示とを切り替えることができるようにしてもよい。
【０１３８】
［２−５．傾斜オブジェクトに対する消去処理］
次に、図１４を参照して、傾斜オブジェクトの一部を一定条件下で消去する消去処理について説明する。本実施形態においては、上述のように、傾斜オブジェクトは連続部分を有する形状である。傾斜オブジェクトの斜辺の端部は連続部分に連続しているので、連続部分があると、傾斜オブジェクトの斜辺に他のパーツオブジェクトを連続させることができない。そこで、本実施形態においては、消去手段１５２は、一定条件下で傾斜オブジェクトの連続部分を消去する消去処理を実行する。これによって、傾斜オブジェクトの斜辺に他のパーツオブジェクトを連続させることができる。以下、消去処理の詳細について説明する。
【０１３９】
図１４は、傾斜オブジェクトの一部を消去する処理の一例を示す図である。図１４においては、傾斜オブジェクト２２３を傾斜オブジェクト２２４に繋げるように傾斜オブジェクト２２３を移動させる操作が行われる場合を例として説明する。
【０１４０】
図１４に示す状態ｅにおいては、２つの傾斜オブジェクト２２３および２２４は、互いに離れて配置されている。状態ｅにおいて、ユーザは、傾斜オブジェクト２２３を傾斜オブジェクト２２４の方へ移動させる移動指示を行うものとする。なお、移動指示の具体的な操作内容は任意である。本実施形態においては、移動指示は、例えば、単位部分（複傾斜オブジェクトの連続単位部分とも言える）を指定した後で、指示位置を画面上で移動させるドラッグ操作によって行われる。
【０１４１】
状態ｅにおいて傾斜オブジェクト２２３が移動された結果、傾斜オブジェクト２２３の上連続部分が、傾斜オブジェクト２２４の上連続部分と同じ位置（すなわち、同じセル）に配置される場合を考える。この場合、傾斜オブジェクト２２３の上連続部分と傾斜オブジェクト２２４の上連続部分とが重複して配置されることとなる。消去手段１５２は、２つの傾斜オブジェクトが重複する部分について、一方の傾斜オブジェクトを消去する。具体的には、消去手段１５２は、傾斜オブジェクト２２３の上連続部分を消去する。その結果、図１４の状態ｆに示すように、傾斜オブジェクト２２４の上連続部分に傾斜オブジェクト２２３の斜辺が連続するように各傾斜オブジェクトが配置される。つまり、消去処理によって、傾斜オブジェクト２２３の斜辺を他のパーツオブジェクト（ここでは、傾斜オブジェクト２２４）に連続させることができる。
【０１４２】
また、図１４に示す状態ｆにおいて、傾斜オブジェクト２２３をさらに右側へ移動させる移動指示をユーザが行った結果、傾斜オブジェクト２２３の斜辺の一端が、傾斜オブジェクト２２４の斜辺の一端と同じ位置に配置される場合を考える。この場合、傾斜オブジェクト２２４の上連続部分は、傾斜オブジェクト２２３の斜辺（換言すれば、単位部分）と重複する。また、傾斜オブジェクト２２３の上連続部分が消去されていないとすれば、当該傾斜オブジェクト２２３の上連続部分は、傾斜オブジェクト２２４の斜辺（換言すれば、単位部分）と重複する。上記の場合、消去手段１５２は、傾斜オブジェクト２２３の上連続部分を消去し、傾斜オブジェクト２２４の上連続部分を消去する。その結果、図１４の状態ｇに示すように、傾斜オブジェクト２２３の斜辺に傾斜オブジェクト２２４の斜辺が連続するように各傾斜オブジェクトが配置される。つまり、消去処理によって、２つの傾斜オブジェクトの斜辺を連続させることができる。例えば、図１４に示すように、向きが互いに異なる２つの斜辺を連続させることも可能であるし、急斜オブジェクトの斜辺と緩斜オブジェクトの斜辺とのような、傾き量が互いに異なる２つの斜辺を連続させることも可能である。
【０１４３】
なお、図１４に示す状態ｆおよび状態ｇでは、２つの傾斜オブジェクト２２３および２２４が一体であるように表示される。このとき、ゲームシステム１は、２つの傾斜オブジェクトが互いに隣接する状態として管理してもよいし、２つの傾斜オブジェクトを合体させて１つのパーツオブジェクトとして管理してもよい。すなわち、ゲームシステム１は、２つの傾斜オブジェクト２２３および２２４についてそれぞれパーツオブジェクト情報を記憶してもよいし、２つの傾斜オブジェクトを合体させた１つのパーツオブジェクトについてパーツオブジェクト情報を記憶してもよい。
【０１４４】
図１４においては、傾斜オブジェクト同士が重複して配置される場合を例として説明したが、傾斜オブジェクトと他の種類のパーツオブジェクト（例えば、ブロックオブジェクト）とが重複して配置される場合も上記と同様に、消去処理が実行される。例えば、傾斜オブジェクトの連続部分と土管オブジェクトの一部とが重複して配置される場合、消去手段１５２は、土管オブジェクトと重複する連続部分を消去する。これによって、ゲームシステム１は、傾斜オブジェクトの斜辺と土管オブジェクトとが連続するようにパーツオブジェクトを配置することができる。
【０１４５】
なお、本実施形態においては、オブジェクト配置手段１５１は、傾斜オブジェクトの単位部分が他のパーツオブジェクトの一部と重複するような配置状態を禁止する。つまり、本実施形態においては、このような配置状態にはならないので、当該配置状態において消去手段が消去処理を実行することはない。
【０１４６】
以上のように、本実施形態においては、ゲーム空間において、傾斜オブジェクトにおける斜辺の端が他のパーツオブジェクトの辺に連続するように配置される場合において、当該傾斜オブジェクトの一部が当該他のパーツオブジェクトの一部に重複する場合、消去手段１５２は、当該傾斜オブジェクトの当該一部を消去する消去処理を実行する。なお、本実施形態においては、消去手段１５２は、消去処理において、他のパーツオブジェクトと重複する、傾斜オブジェクトの連続部分を消去する。ただし、他の実施形態においては、傾斜オブジェクトの一部と重複する、上記他のパーツオブジェクトの一部を消去してもよい。以上のように、ゲームシステム１は、消去処理によって、傾斜オブジェクトの斜辺を他のパーツオブジェクトに連続させることができるので、生成可能な地形の自由度を向上することができる。本実施形態においては、傾斜オブジェクトが他のパーツオブジェクトと重複しない状態では連続部分が設けられることによって、傾斜オブジェクトが鋭角を有しないようにすることができるとともに、傾斜オブジェクトが他のパーツオブジェクトと重複する状態では、連続部分を消去することによって、生成可能な地形の自由度を向上することができる。
【０１４７】
また、本実施形態においては、消去処理によって一部が消去されたパーツオブジェクトが、ユーザの指示に基づいて移動された結果、他のパーツオブジェクトとの重複が解消した場合、復元手段１５３は、当該一部が消去されたパーツオブジェクトを、当該消去処理による消去前の状態に復元する。例えば、図１４に示す状態ｇにおいて、傾斜オブジェクト２２３が移動されて、傾斜オブジェクト２２３と傾斜オブジェクト２２４とが重複しない状態となった場合、復元手段１５３は、傾斜オブジェクト２２３を元の形状（すなわち、上連続部分を有する形状）に復元する。すなわち、復元手段１５３は、傾斜オブジェクト２２３を、上連続部分を有する形状に復元してゲーム空間に配置する。これによれば、消去処理が実行された後に傾斜オブジェクトの重複が解消した場合に、当該傾斜オブジェクトが鋭角を有する形状となる可能性を低減することができる。また、ユーザは、傾斜オブジェクトの形状を元に戻す操作を行う必要がないので、操作の利便性を向上することができる。
【０１４８】
［２−６．傾斜オブジェクトに関する補完処理］
次に、図１５〜図１８を参照して、傾斜オブジェクトに関する補完処理について説明する。傾斜オブジェクトは、斜辺を有するので、グリッドのセルの一部のみを埋めるように配置されることがある。そのため、ゲーム空間内において、傾斜オブジェクトの近傍に他のパーツオブジェクトが配置された場合、１セル分よりも小さい領域（例えば、図１５に示す斜線領域）が生じる可能性がある。このような領域にプレイヤオブジェクトが進入した場合、当該領域から容易に脱出できなくなる可能性がある。ここでは、このような領域を「小セル領域」と呼ぶ。また、小セル領域が発生する場合、１セル分よりも短い間隔で２つのオブジェクトが配置されたり、２つのオブジェクトが点でのみ接触するように配置されたりすることがある。このとき、ユーザが意図しないにもかかわらず、プレイヤオブジェクトが当該２つのオブジェクトを通過して（換言すれば、すり抜けて）しまう可能性もある。以上より、小セル領域が生じる可能性を低減するべく、本実施形態においては、補完手段１５４は、一定条件下で補完処理を実行することによって、補完オブジェクトを配置する。以下、補完処理について説明する。
【０１４９】
図１５は、傾斜オブジェクトの周辺にパーツオブジェクトが配置されたゲーム空間の一例を示す図である。なお、図１５に示す（Ａ）は、補完オブジェクトが配置されていない状態を示し、図１５に示す（Ｂ）は、補完オブジェクトが配置された状態を示している。図１５では、傾斜オブジェクトの周辺に、パーツオブジェクトの一例としてブロックオブジェクトが配置された場合を例として説明する。
【０１５０】
図１５に示すように、ゲーム空間内にブロックオブジェクト２３２が配置された場合、補完手段１５４は、ブロックオブジェクト２３２が配置されたセルから所定の補完判定距離内のセルを、判定対象セルに設定する。判定対象セルとは、後述する補完条件を満たすか否かを判定する対象となるセルである。
【０１５１】
本実施形態においては、上記補完判定距離は、１グリッド分（換言すれば、１セル分）の距離である。つまり、本実施形態においては、補完手段１５４は、ブロックオブジェクト２３２が配置されたセルから上下左右方向で隣接する４つのセルを、判定対象セルに設定する。なお、他の実施形態においては、上記補完判定距離は、任意であり、１グリッド分の距離でなくてもよい。例えば、補完判定距離は、２グリッド分の距離であってもよい。また、補完手段１５４は、ブロックオブジェクト２３２が配置されたセルの上下左右にある４つのセルに限らず、ブロックオブジェクト２３２が配置されたセルの周囲８個のセルを判定対象セルに設定してもよい。また、本実施形態においては、ゲーム空間にグリッドが設定されるので、グリッドを単位として補完判定距離が設定されたが、他の実施形態においては、ゲーム空間における任意の長さの単位で補完判定距離が設定されてもよい。
【０１５２】
また、図１５においては、１個のセルにブロックオブジェクト２３２が配置される場合を例として説明するが、複数個のセルに亘ってブロックオブジェクトが配置される場合も、上記と同様に判定対象セルが設定される。図示しないが、例えば、縦の長さが１グリッド分で、横の長さが２個グリッド分であるブロックオブジェクトが配置される場合、当該ブロックオブジェクトが配置される２個のセルに対して上下左右方向で隣接する、合計６個のセルが、判定対象セルに設定される。
【０１５３】
補完手段１５４は、判定対象セルについて、補完条件を満たすか否かを判定する。本実施形態において、補完条件は、判定対象セルの一部に傾斜オブジェクトが配置されていることである。ここで、セルの全体ではなく、セルの一部のみに傾斜オブジェクトが配置されるセルを、「部分配置セル」と呼ぶ。本実施形態における上記補完条件は、判定対象セルが部分配置セルであることである。図１５に示す例においては、判定対象セルのうちで、ブロックオブジェクト２３２の上側のセルと左側のセルとが部分配置セルとなっている。したがって、これら２つのセルが補完条件を満たす。
【０１５４】
ここで、補完条件を満たすセルのうちの傾斜オブジェクトが配置されない領域（図１５に示す斜線領域）は、１セル分の領域より小さく、上述の小セル領域となる可能性がある。そのため、本実施形態においては、補完手段１５４は、小セル領域が生じる可能性を低減するべく、当該セルに補完オブジェクトを配置する。図１５に示す例においては、ブロックオブジェクト２３２の上側のセルに補完オブジェクト２３３が配置され、ブロックオブジェクト２３２の左側のセルに補完オブジェクト２３４が配置される。
【０１５５】
なお、補完条件を満たすセルには、その一部に傾斜オブジェクトが配置されているので、補完手段１５４は、残りの部分を埋めるように補完オブジェクトを配置する。なお、図１５に示す例においては、直角三角形である補完オブジェクト２３３および２３４が配置される。なお、他の実施形態においては、補完オブジェクトは、任意の形状であってよい。例えば、補完手段１５４は、補完条件を満たすセルに配置されている傾斜オブジェクトの一部を消去し、当該セルに、セル１つ分の大きさの補完オブジェクトを配置するようにしてもよい。また、補完手段１５４は、他の実施形態においては、補完条件を満たすセル全体を埋めるように傾斜オブジェクトを変形させることによって、補完オブジェクトを配置してもよい。このとき、傾斜オブジェクトのうちで変形によって追加された部分が補完オブジェクトであると言うことができる。このように、補完オブジェクトは、傾斜オブジェクトの一部として管理されてもよい。
【０１５６】
なお、本実施形態においては、ブロックオブジェクトと傾斜オブジェクトには、同じテクスチャが付されてゲーム画像が生成される。また、補完オブジェクトにもブロックオブジェクトおよび傾斜オブジェクトと同じテクスチャが付されてゲーム画像が生成される。そのため、図１５の（Ｂ）に示すように、傾斜オブジェクト、ブロックオブジェクト、および、補完オブジェクトが隣接して配置された場合には、各オブジェクトに同じテクスチャが付される。したがって、ユーザが指示していない補完オブジェクトが配置される場合であっても、ユーザに与える違和感を軽減することができる。
【０１５７】
図１６は、緩斜オブジェクトの周辺にパーツオブジェクトが配置されたゲーム空間の一例を示す図である。図１５においては、急斜オブジェクトの周辺にパーツオブジェクトが配置される場合を例として説明したが、緩斜オブジェクトの周辺にパーツオブジェクトが配置される場合も同様に、判定対象セルが補完条件を満たす場合は、補完オブジェクトが配置される。なお、緩斜オブジェクトと急斜オブジェクトとでは、斜辺の傾きが異なるので、補完オブジェクトの形状および配置位置が異なる。以下、図１６に示す場合における補完処理の詳細を説明する。
【０１５８】
図１６に示す例においては、緩斜オブジェクト２４１の周辺にブロックオブジェクト２４２が配置される（図１６に示す（Ａ））。このとき、補完手段１５４は、図１５に示す場合と同様に、ブロックオブジェクト２４２が配置されたセルから上下左右方向で隣接する４つのセルを、判定対象セルに設定する。そして、補完手段１５４は、判定対象セルについて補完条件を満たすか否かを判定する。図１６に示す例においては、ブロックオブジェクト２４２の上側のセルと、左側のセルとが部分配置セルとなっており、補完条件を満たす。
【０１５９】
補完手段１５４は、補完条件を満たす判定対象セルに補完オブジェクトを配置する。ここで、緩斜オブジェクトの横の長さは２グリッド分の長さであるので、左右に並んだ２つの部分配置セルが生じる。したがって、判定対象セルに配置される傾斜オブジェクトが緩斜オブジェクトである場合には、当該判定対象セルと、その横のセルとが部分配置セルとなる。本実施形態においては、補完手段１５４は、補完条件を満たす判定対象セルと、当該判定対象セルの隣の部分配置セルとを埋めるように、補完オブジェクトを配置する。図１６に示す例においては、ブロックオブジェクト２４２の上側の判定対象セルと、その右隣の部分配置セルとに亘る補完オブジェクト２４３が配置され、また、ブロックオブジェクト２４２の左隣の判定対象セルと、その左側の部分配置セルとに亘る補完オブジェクト２４４が配置される（図１６に示す（Ｂ））。
【０１６０】
なお、図１６に示す例において、小セル領域となり得る領域は、傾斜オブジェクトによって生じる鋭角の領域（図１６に示す斜線領域）であると考えられる。そのため、他の実施形態においては、補完手段１５４は、判定対象セルのみを埋めるように補完オブジェクトを配置してもよい。すなわち、例えば、図１６に示す例においては、補完手段１５４は、横の長さが２グリッド分の補完オブジェクト２４３に代えて、横の長さが１グリッド分の補完オブジェクト２４５を配置してもよい（図１６に示す（Ｃ））。補完オブジェクト２４５を配置することによっても、補完オブジェクト２４３を配置する場合と同様に、小セル領域が生じる可能性を低減することができる。
【０１６１】
図１７は、緩斜オブジェクトの周辺にパーツオブジェクトが配置されたゲーム空間の他の一例を示す図である。図１７に示す例では、図１６に示す例とは異なる位置に（具体的には、ブロックオブジェクト２４２の右隣のセルに）ブロックオブジェクト２５２が配置されている。
【０１６２】
図１７に示す例においては、判定対象セルのうち、ブロックオブジェクト２５２の上側のセルのみが部分配置セルとなり、補完条件を満たす。したがって、補完手段１５４は、ブロックオブジェクト２５２の上側のセルと、当該セルの左隣の部分配置セルとを埋める補完オブジェクト２５３を配置する。このように、緩斜オブジェクトの周囲においては、１つの補完オブジェクトのみが配置されることもある。
【０１６３】
図１８は、傾斜オブジェクトの周辺に他の種類のパーツオブジェクトが配置されたゲーム空間の一例を示す図である。図１８に示す（Ａ）は、傾斜オブジェクト２６１の周辺に、土管オブジェクト２６２が配置された状態を示している。図１８に示す例においては、図１５〜図１７に示す例とは異なり、土管オブジェクト２６２が、傾斜オブジェクト２６１の周辺に配置されている。土管オブジェクト２６２は、傾斜オブジェクトとは異なるテクスチャが付されるパーツオブジェクトである。
【０１６４】
土管オブジェクト２６２が傾斜オブジェクト２６１の周辺に配置される場合であっても、ブロックオブジェクトが配置される場合と同様、小セル領域が生じる可能性がある。そのため、補完手段１５４は、土管オブジェクト２６２が傾斜オブジェクト２６１の周辺に配置される場合も、ブロックオブジェクトが配置される場合と同様の方法で、同様の位置（図１８の（Ａ）に示す例においては、斜線領域の位置）に補完オブジェクトを配置する。
【０１６５】
ここで、土管オブジェクトは、ブロックオブジェクトとは異なり、傾斜オブジェクトとは異なるテクスチャが付されるパーツオブジェクトである。したがって、図１８に示す例において、補完オブジェクトに傾斜オブジェクトと同じテクスチャを付すとすれば、土管オブジェクトの上に異なるテクスチャのパーツオブジェクトが配置されることとなり、ユーザが違和感を抱くおそれがある。したがって、本実施形態においては、土管オブジェクト２６２が傾斜オブジェクト２６１の周辺に配置される場合、補完手段１５４は、表示されない補完オブジェクト（換言すれば、透明の補完オブジェクト）を配置する（図１８（Ｂ））。これによって、プレイヤオブジェクトは、図１８（Ａ）に示す斜線領域に進入することができなくなる。また、土管オブジェクト２６２の上に異なるテクスチャのパーツオブジェクトが配置されるようなゲーム画像が表示されないので、ユーザが違和感を抱くおそれを低減することができる。
【０１６６】
以上のように、補完オブジェクトは、ユーザが視認可能に表示される（換言すれば、ゲーム画像の一部として表示される）ものであってもよいし、ユーザが視認不可能である（換言すれば、ゲーム画像の一部として表示されない）ものであってもよい。なお、いずれの表示態様であっても、補完オブジェクトは、衝突判定の処理において用いられる。
【０１６７】
以上のように、本実施形態においては、補完手段１５４は、所定の種類のパーツオブジェクト（例えば、ブロックオブジェクト、または、土管オブジェクト）がゲーム空間内に配置される場合、当該パーツオブジェクトが配置されるグリッドのセルから所定距離内に位置する判定対象セルの一部に傾斜オブジェクトが配置されているか否かを判定する。そして、補完手段１５４は、当該判定対象セルの一部に傾斜オブジェクトが配置されている場合、当該判定対象セルの全体が埋められるように補完オブジェクトを配置する。これによって、ゲーム空間に上記小セル領域が生じる可能性を低減することができる。なお、補完手段１５４は、所定の種類のパーツオブジェクト（本実施形態においては、ブロックオブジェクト、または、土管オブジェクト）がゲーム空間内に配置される場合に、一定条件下で補完オブジェクトを配置し、他の種類のオブジェクトがゲーム空間内に配置される場合には、補完オブジェクトを配置しなくてもよい。
【０１６８】
なお、補完手段１５４は、傾斜オブジェクトの周辺に所定の種類のパーツオブジェクトが配置された場合に補完オブジェクトを配置し、他の種類のパーツオブジェクトが配置された場合には補完オブジェクトを配置しないようにしてもよい。また、補完手段１５４は、傾斜オブジェクトの周辺に任意の種類のパーツオブジェクトが配置された場合に補完オブジェクトを配置するようにしてもよい。
【０１６９】
本実施形態においては、補完オブジェクトが配置される元となったパーツオブジェクトがゲーム空間から消去されたり、移動または変形されたりすることによって、補完条件が満たされなくなる場合がある。この場合、補完手段１５４は、当該補完オブジェクトを消去する。例えば、図１５に示すブロックオブジェクト２３２が、例えばユーザの指示に基づいて消去された場合、補完手段１５４は、ブロックオブジェクト２３２に対応する補完オブジェクト２３３および２３４を消去する。これによれば、ゲームシステム１は、パーツオブジェクトの消去によって不要となった補完オブジェクトを、自動的に（例えば、補完オブジェクトを消去する指示がなくても）消去する。これによって、ユーザは、補完オブジェクトを消去する指示操作を行う手間を省略することができるので、操作の利便性を向上することができる。
【０１７０】
［２−７．プレイモード］
次に、図１９を参照して、プレイモードにおける処理の概要について説明する。本実施形態においては、ゲームシステム１は、上記作成モードにおいて作成されたゲーム空間を示すステージ情報を記憶する（換言すれば、保存する）。例えば、ゲームシステム１は、上述のメニュー画像においてユーザによって保存指示が行われたことに応じて、作成されていたゲーム空間を示すステージ情報を記憶する。ステージ情報は、例えば、ゲーム空間内に配置された各オブジェクトの配置に関する情報を含む。
【０１７１】
なお、ゲームシステム１に記憶されたステージ情報は、ネットワークを介してサーバにアップロードされたり、ゲームシステム１とは異なる他のゲームシステムへ送信されたりしてもよい。このとき、ステージ情報は、他のゲームシステムにおけるプレイモードにおいて用いられてもよい。
【０１７２】
図１９は、プレイモードにおいて表示されるゲーム画像の一例を示す図である。図１９に示すように、プレイモードにおいては、ゲーム空間を表すゲーム空間画像２７１が表示装置に表示される。このゲーム空間は、ゲームシステム１に記憶されているステージ情報が示すゲーム空間である。また、プレイモードにおいて、ゲーム空間にはプレイヤオブジェクト２０７が配置される。プレイモードにおいて、プレイヤオブジェクト制御手段１５６は、ゲーム空間内において、プレイヤの指示に応じて、プレイヤオブジェクトの動作を制御する。つまり、プレイモードにおいては、プレイヤは、作成モードにおいて作成されたゲーム空間を用いてゲームを行うことができる。
【０１７３】
なお、プレイモードにおいては、作成モードにおいて表示される、ゲーム空間を作成するために用いられる画像は表示されない。すなわち、プレイモードにおいては、上述のオブジェクトバー画像２０２、メニューバー画像２０３、および、グリッドは表示されない。これによって、ゲーム空間をプレイヤにとって見やすくすることができる。
【０１７４】
［３．ゲームシステムにおける処理の具体例］
次に、図２０〜図２４を参照して、ゲームシステム１における情報処理の具体例について説明する。
【０１７５】
［３−１．情報処理に用いられるデータ］
図２０は、ゲームシステム１における情報処理に用いられる各種情報の一例を示す図である。図２０に示す各種情報は、本体装置２がアクセス可能な記憶媒体（例えば、フラッシュメモリ８４、ＤＲＡＭ８５、および／または、スロット２３に装着されたメモリカード等）に記憶される。
【０１７６】
図２０に示すように、ゲームシステム１は、ゲームプログラムを記憶する。ゲームプログラムは、本実施形態におけるゲームを実行するためのゲームプログラムであり、例えば、フラッシュメモリ８４、および／または、スロット２３に装着されたメモリカードに記憶される。
【０１７７】
また、図２０に示すように、ゲームシステム１は、ステージ情報、および、上述したプレイヤオブジェクト情報を記憶する。これらの情報（換言すれば、データ）は、後述するゲーム処理（図２１〜図２３）において生成されて用いられる。
【０１７８】
ステージ情報は、作成モードにおいて作成されたゲーム空間（換言すれば、ゲームステージ）を示す。図２０に示すように、ステージ情報は、上述のパーツオブジェクト情報を含む。なお、本実施形態においては、パーツオブジェクト情報は、オブジェクト毎に生成されて記憶される。なお、図示しないが、ステージ情報は、パーツオブジェクトおよび補完オブジェクト以外の他のオブジェクト（例えば、プレイヤオブジェクト、敵オブジェクト、および、アイテムオブジェクト等）の配置に関する情報を含む。また、ステージ情報は、１つのステージ毎に生成されて記憶される。
【０１７９】
プレイヤオブジェクト情報は、プレイモードにおけるゲームプレイ中におけるプレイヤオブジェクトに関する情報を示す。なお、ゲームプレイ中においては、プレイヤオブジェクト情報に加えて、ゲームプレイ中にゲーム空間において動作する各種のオブジェクト（例えば、敵オブジェクト、アイテムオブジェクト、および、地形オブジェクト等）の状態および動作に関する情報が記憶される。
【０１８０】
［３−２．ゲームシステムにおいて実行される処理］
図２１〜図２３は、ゲームシステム１によって実行されるゲーム処理の流れの一例を示すフローチャートである。なお、図２１〜２４に示す一連のゲーム処理は、プロセッサ８１によって上記ゲームプログラムが起動されたことに応じて開始される。
【０１８１】
なお、本実施形態では、本体装置２のプロセッサ８１が、ゲームシステム１に記憶されている上記ゲームプログラムを実行することによって、図２１〜図２３に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ８１とは別のプロセッサ（例えば、専用回路等）が実行するようにしてもよい。また、ゲームシステム１が他の情報処理装置（例えば、サーバ）と通信可能である場合、図２１〜図２３に示す各ステップの処理の一部は、他の情報処理装置において実行されてもよい。また、図２１〜図２３に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて（または代えて）別の処理が実行されてもよい。
【０１８２】
また、プロセッサ８１は、図２１〜図２３に示す各ステップの処理を、メモリ（例えば、ＤＲＡＭ８５）を用いて実行する。すなわち、プロセッサ８１は、各処理ステップによって得られる情報（換言すれば、データ）をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【０１８３】
図２１に示すステップＳ１において、プロセッサ８１は、作成モードが実行されるか否かを判定する。本実施形態においては、プロセッサ８１は、作成モードを実行するか、それとも、プレイモードを実行するかを、ユーザの指示に基づいて判定する。すなわち、作成モードを開始する旨の指示をユーザが行った場合、ステップＳ１の判定結果は肯定となり、プレイモードを開始する旨の指示をユーザが行った場合、ステップＳ１の判定結果は否定となる。ステップＳ１の判定結果が肯定である場合、ステップＳ２の処理が実行される。一方、ステップＳ１の判定結果が否定である場合、後述するステップＳ１１の処理が実行される。
【０１８４】
作成モードにおいては、ステップＳ２〜Ｓ８の一連の処理が実行される。まず、ステップＳ２において、プロセッサ８１は、ユーザによる指示入力を受け付ける。すなわち、プロセッサ８１は、ゲームシステム１における入力部（例えば、タッチパネル１３、ボタン、および／または、アナログスティック等）に対して行われた入力を示すデータを当該入力部から取得する。ステップＳ２の次に、ステップＳ３の処理が実行される。
【０１８５】
ステップＳ３において、プロセッサ８１（換言すれば、オブジェクト配置手段１５１）は、ユーザの指示に基づいて、オブジェクト（例えば、パーツオブジェクト、および／または、プレイヤオブジェクト等）を配置する。すなわち、上記ステップＳ２において受け付けられた指示が、オブジェクトを配置する指示である場合、プロセッサ８１は、当該指示に従ってオブジェクトを配置する。本実施形態においては、上記“［２−２．ゲーム空間内に配置されるオブジェクト］”において説明したように、プロセッサ８１は、配置されるオブジェクトと、配置位置とを指定する指示に基づいて、指定されたオブジェクトをゲーム空間内に配置する。このとき、プロセッサ８１は、配置されたオブジェクトを示す情報（例えば、上記パーツオブジェクト情報）をメモリに記憶する。ステップＳ３の次に、ステップＳ４の処理が実行される。
【０１８６】
ステップＳ４において、プロセッサ８１（換言すれば、オブジェクト配置手段１５１）は、ゲーム空間内に配置されているパーツオブジェクト（例えば、傾斜オブジェクト）を、ユーザの指示に基づいて変化させる。具体的には、プロセッサ８１は、上記ステップＳ２において受け付けられた指示が、パーツオブジェクトを移動する指示である場合、プロセッサ８１は、当該指示に従ってパーツオブジェクトを移動させる。また、プロセッサ８１は、上記ステップＳ２において受け付けられた指示が、パーツオブジェクトを変形する指示である場合、プロセッサ８１は、当該指示に従ってパーツオブジェクトを変形させる（上記“［２−４．傾斜オブジェクトに対する変形処理］”を参照）。また、プロセッサ８１は、上記ステップＳ２において受け付けられた指示が、パーツオブジェクトを消去する指示である場合、プロセッサ８１は、当該指示に従ってパーツオブジェクトを消去する。ステップＳ４において、プロセッサ８１は、メモリに記憶されているパーツオブジェクト情報のうち、変化したパーツオブジェクトに関するパーツオブジェクト情報を、変化後の状態を示すように更新する（なお、パーツオブジェクトが消去される場合は、当該パーツオブジェクトに関するパーツオブジェクト情報を消去する）。ステップＳ４の次に、ステップＳ５の処理が実行される。
【０１８７】
ステップＳ５において、プロセッサ８１（換言すれば、消去手段１５２または復元手段１５３）は、消去・復元処理を実行する。消去・復元処理は、上述の消去処理および復元処理を含む。以下、図２２を参照して、消去・復元処理の詳細について説明する。
【０１８８】
図２２は、図２１に示すステップＳ５の消去・復元処理の詳細な流れの一例を示すサブフローチャートである。消去・復元処理においては、まずステップＳ２１において、プロセッサ８１（換言すれば、消去手段１５２）は、パーツオブジェクト同士の重複が生じているか否かを判定する。例えば、上記ステップＳ３においてパーツオブジェクトが新たに配置された場合、または、上記ステップＳ４においてパーツオブジェクトが変化した場合、当該パーツオブジェクトが他のパーツオブジェクトと重複して配置されることがある。具体的には、ステップＳ２１の判定処理は、メモリに記憶されているパーツオブジェクト情報を参照することによって行うことができる。ステップＳ２１の判定結果が肯定である場合、ステップＳ２２の処理が実行される。一方、ステップＳ２１の判定結果が否定である場合、ステップＳ２２の処理がスキップされてステップＳ２２の処理が実行される。
【０１８９】
ステップＳ２２において、プロセッサ８１（換言すれば、消去手段１５２）は、２つのパーツオブジェクトが重複する部分について、一方のパーツオブジェクトを消去する。例えば、傾斜オブジェクトの連続部分が他のパーツオブジェクトの一部と重複する場合、プロセッサ８１は、当該傾斜オブジェクトの当該連続部分を消去する（上記“［２−５．傾斜オブジェクトに対する消去処理］”を参照）。ステップＳ２２において、プロセッサ８１は、メモリに記憶されているパーツオブジェクト情報のうち、一部を消去したパーツオブジェクトに関するパーツオブジェクト情報を、消去後の状態を示すように更新する。ステップＳ２２の次に、ステップＳ２３の処理が実行される。
【０１９０】
ステップＳ２３において、プロセッサ８１（換言すれば、復元手段１５３）は、重複して配置されていた２つのパーツオブジェクトの重複が解除されたか否かを判定する。ステップＳ２３の判定処理は、メモリに記憶されているパーツオブジェクト情報を参照することによって行うことができる。ステップＳ２３の判定結果が肯定である場合、ステップＳ２４の処理が実行される。一方、ステップＳ２３の判定結果が否定である場合、ステップＳ２４の処理がスキップされて、プロセッサ８１は消去・復元処理を終了する。
【０１９１】
ステップＳ２４において、プロセッサ８１（換言すれば、復元手段１５３）は、重複が解除されたパーツオブジェクトについて、消去処理（ステップＳ２２）によって消去されていた部分を復元する。例えば、傾斜オブジェクトの連続部分が他のパーツオブジェクトの一部と重複するために消去されていた場合、プロセッサ８１は、当該傾斜オブジェクトの当該連続部分を復元する（上記“［２−５．傾斜オブジェクトに対する消去処理］”を参照）。なお、本実施形態においては、上記ステップＳ２２において消去処理が実行された場合、プロセッサ８１は、パーツオブジェクトのうちで消去した部分を示す消去部分情報を含むパーツオブジェクト情報をメモリに記憶する。ステップＳ２４においては、プロセッサ８１は、上記消去部分情報を参照して、パーツオブジェクトに対する復元処理を行う。また、プロセッサ８１は、メモリに記憶されているパーツオブジェクト情報のうち、復元処理を行ったパーツオブジェクトに関するパーツオブジェクト情報を、復元後の状態を示すように更新する。ステップＳ２４の処理が終了すると、プロセッサ８１は消去・復元処理を終了する。ステップＳ５の消去・復元処理が終了すると、ステップＳ６の処理が実行される。
【０１９２】
ステップＳ６において、プロセッサ８１（換言すれば、補完手段１５４）は、上述の補完処理を実行する。以下、図２３を参照して、補完処理の詳細について説明する。
【０１９３】
図２３は、図２１に示すステップＳ６の補完処理の詳細な流れの一例を示すサブフローチャートである。補完処理においては、まずステップＳ３１において、プロセッサ８１は、上記ステップＳ３の処理によって新たにパーツオブジェクトがゲーム空間内に配置されたか否かを判定する。ステップＳ３１の判定結果が肯定である場合、ステップＳ３２の処理が実行される。一方、ステップＳ３１の判定結果が否定である場合、ステップＳ３２〜Ｓ３６の一連の処理がスキップされてステップＳ３５の処理が実行される。
【０１９４】
ステップＳ３２において、プロセッサ８１は、上述の判定対象セルを特定する。本実施形態においては、プロセッサ８１は、パーツオブジェクトが配置されたセルに対して上下左右方向で隣接する各セルを、判定対象セルに設定する（上記“［２−６．傾斜オブジェクトに関する補完処理］”を参照）。ステップＳ３２の次に、ステップＳ３３の処理が実行される。
【０１９５】
ステップＳ３３において、プロセッサ８１は、ステップＳ３１で設定された判定対象セルについて、上述の補完条件を満たすか否かを判定する。ここで、判定対象セルが補完条件を満たすか否かの判定は、メモリに記憶されているパーツオブジェクト情報を参照することによって行うことができる。なお、プロセッサ８１は、ステップＳ３１で設定された判定対象セルが複数である場合、判定対象セル毎に補完条件を満たすか否かを判定する。そして、補完条件を満たす判定対象セルが（１つでも）ある場合、ステップＳ３３の判定結果は肯定となり、補完条件を満たす判定対象セルがない場合、ステップＳ３３の判定結果は否定となる。ステップＳ３３の判定結果が肯定である場合、ステップＳ３４の処理が実行される。一方、ステップＳ３３の判定結果が否定である場合、ステップＳ３４の処理がスキップされてステップＳ３５の処理が実行される。
【０１９６】
ステップＳ３４において、プロセッサ８１は、補完条件を満たす判定対象セルを埋めるように、補完オブジェクトを配置する。補完オブジェクトの具体的な配置方法は、上述の“［２−６．傾斜オブジェクトに関する補完処理］”で述べた通りである。ステップＳ３４において、プロセッサ８１は、配置された補完オブジェクトを示すパーツオブジェクト情報をメモリに記憶する。ここで、本実施形態においては、プロセッサ８１は、補完オブジェクトを配置する原因となったパーツオブジェクトを示す関連パーツ情報を、当該補完オブジェクトに関するパーツオブジェクト情報に含めてメモリに記憶する。ステップＳ３４の次に、ステップＳ３５の処理が実行される。
【０１９７】
ステップＳ３５において、プロセッサ８１は、補完条件が満たされていた判定対象セルいついて補完条件が満たされなくなったか否かを判定する。例えば、プロセッサ８１は、上記ステップＳ４の処理によって、ゲーム空間においてパーツオブジェクトが変化した（移動、消去、または変形された）場合、補完条件が満たされなくなったか否かを判定する。なお、この判定は、メモリに記憶されているパーツオブジェクト情報を参照することによって行うことができる。ステップＳ３５の判定結果が肯定である場合、ステップＳ３６の処理が実行される。一方、ステップＳ３５の判定結果が否定である場合、ステップＳ３６の処理がスキップされて、プロセッサ８１は補完処理を終了する。
【０１９８】
ステップＳ３６において、プロセッサ８１は、補完オブジェクトを消去する。具体的には、プロセッサ８１は、上記ステップＳ４の処理によって変化したパーツオブジェクトが原因となって配置された補完オブジェクトを消去する。ここで、ステップＳ３６の処理において消去すべき補完オブジェクトは、上記ステップＳ４の処理によって変化したパーツオブジェクトを示す関連パーツ情報を含むパーツオブジェクト情報が示す補完オブジェクトである。また、プロセッサ８１は、消去する補完オブジェクトに関するパーツオブジェクト情報をメモリから消去する。ステップＳ３６の処理が終了すると、プロセッサ８１は補完処理を終了する。ステップＳ６の補完処理が終了すると、ステップＳ７の処理が実行される。
【０１９９】
図２１に示すステップＳ７において、プロセッサ８１（換言すれば、画像生成手段１５５）は、作成モードにおいて表示すべきゲーム画像（図９参照）を生成する。具体的には、プロセッサ８１は、メモリに記憶されているステージ情報を用いて、ゲーム空間を表すゲーム空間画像を生成し、上記オブジェクトバー画像およびメニューバー画像を生成する。ステップＳ７の次に、ステップＳ８の処理が実行される。
【０２００】
ステップＳ８において、プロセッサ８１は、ステップＳ７において生成されたゲーム画像を表示装置に表示する。すなわち、プロセッサ８１は、上記ゲーム空間画像、オブジェクトバー画像、および、メニューバー画像を含むゲーム画像を表示装置に表示させる。なお、ステップＳ２〜Ｓ９の一連の処理ループが繰り返し実行される場合、ステップＳ８の処理は、所定時間（例えば、１フレーム時間）に１回の割合で実行される。ステップＳ８の次に、ステップＳ９の処理が実行される。
【０２０１】
ステップＳ９において、プロセッサ８１は、作成モードを終了するか否かを判定する。例えば、作成モードを終了する指示がユーザによって行われた場合、プロセッサ８１は、作成モードを終了すると判定する。ステップＳ９の判定結果が肯定である場合、上記ステップＳ１の処理が再度実行される。一方、ステップＳ９の判定結果が否定である場合、上記するステップＳ２の処理が再度実行される。本実施形態においては、ステップＳ９の判定処理の結果が肯定となるまで、作成モードにおけるステップＳ２〜Ｓ８の一連の処理が繰り返し実行される。
【０２０２】
一方、プレイモードにおいては、ステップＳ１１〜Ｓ１８の一連の処理が実行される。まず、ステップＳ１１において、プロセッサ８１は、プレイ対象となるステージのゲーム空間を表すゲーム空間画像（図１９参照）を生成し、表示装置に表示する。なお、プレイ対象となるステージを決定する方法は、任意である。例えば、プレイ対象となるステージは、プレイヤによる選択指示によって決定される。ステップＳ１１の次に、ステップＳ１２の処理が実行される。
【０２０３】
ステップＳ１２において、プロセッサ８１は、プレイヤによる指示入力を受け付ける。ステップＳ１２の処理は、上述のステップＳ２の処理と同様である。ステップＳ１２の次に、ステップＳ１３の処理が実行される。
【０２０４】
ステップＳ１３において、プロセッサ８１（換言すれば、プレイヤオブジェクト制御手段１５６）は、プレイヤによる入力に基づいて、ゲーム空間におけるプレイヤオブジェクトの動作を制御する。このとき、プロセッサ８１は、動作が制御された後のプレイヤオブジェクトに関するプレイヤオブジェクト情報をメモリに記憶する。ステップＳ１３の次に、ステップＳ１４の処理が実行される。
【０２０５】
ステップＳ１４において、プロセッサ８１は、プレイヤオブジェクト以外の他のオブジェクトの動作を制御する。例えば、プロセッサ８１は、ゲームプログラムにおいて予め定められたアルゴリズムに従って、敵オブジェクト、および、アイテムオブジェクトの動作を制御する。ステップＳ１４の次に、ステップＳ１５の処理が実行される。
【０２０６】
ステップＳ１５において、プロセッサ８１は、衝突判定処理を実行する。具体的には、プロセッサ８１は、ゲーム空間内に配置される各種のオブジェクト同士の衝突判定を行う。この衝突判定には、少なくとも上記パーツオブジェクトが用いられる。例えば、本実施形態においては、プロセッサ８１は、ゲーム空間に配置されるパーツオブジェクトと、プレイヤオブジェクトとの衝突判定を行う。なお、衝突判定は、メモリに記憶されているステージ情報およびプレイヤオブジェクト情報を参照して行うことができる。また、２つのオブジェクト同士が衝突すると判定される場合には、プロセッサ８１は、衝突に応じた動作を必要に応じて当該オブジェクトに行わせる。このとき、プロセッサ８１は、動作が制御された後のプレイヤオブジェクトに関するプレイヤオブジェクト情報をメモリに記憶する。ステップＳ１５の次に、ステップＳ１６の処理が実行される。
【０２０７】
ステップＳ１６において、プロセッサ８１は、ゲーム画像を生成する。具体的には、プロセッサ８１は、メモリに記憶されているステージ情報およびプレイヤオブジェクト情報を用いて、ゲーム空間を表すゲーム空間画像を生成する。ステップＳ１６の次に、ステップＳ１７の処理が実行される。
【０２０８】
ステップＳ１７において、プロセッサ８１は、ステップＳ１６において生成されたゲーム画像を表示装置に表示する。すなわち、プロセッサ８１は、ゲーム空間においてプレイヤによって操作されるプレイヤオブジェクトが動作する様子を表すゲーム空間画像を表示装置に表示させる。なお、ステップＳ１２〜Ｓ１８の一連の処理ループが繰り返し実行される場合、ステップＳ１７の処理は、所定時間（例えば、１フレーム時間）に１回の割合で実行される。ステップＳ１７の次に、ステップＳ１８の処理が実行される。
【０２０９】
ステップＳ１８において、プロセッサ８１は、プレイモードを終了するか否かを判定する。例えば、プレイモードを終了する指示がユーザによって行われた場合、プロセッサ８１は、プレイモードを終了すると判定する。ステップＳ１８の判定結果が肯定である場合、上記ステップＳ１の処理が再度実行される。一方、ステップＳ１８の判定結果が否定である場合、上記ステップＳ１２の処理が再度実行される。本実施形態においては、ステップＳ１８の判定処理の結果が肯定となるまで、プレイモードにおけるステップＳ１２〜Ｓ１８の一連の処理が繰り返し実行される。
【０２１０】
なお、図示しないが、図２１〜図２３に示すゲーム処理中において、ユーザによってゲーム処理を終了する旨の終了指示が行われた場合、プロセッサ８１は、図２１〜図２３に示すゲーム処理を終了する。なお、プロセッサ８１は、ゲーム処理中における任意のタイミングで上記終了指示を受け付けるようにしてもよい。
【０２１１】
［４．上記実施形態の作用効果および変形例］
以上のように、本実施形態における情報処理プログラム（すなわち、ゲームプログラム）は、衝突判定に用いられるパーツオブジェクトをユーザの指示に基づいてゲーム空間内に配置するものであり、情報処理装置（すなわち、本体装置２）のコンピュータにおいて実行される。情報処理プログラムは、以下の手段としてコンピュータを機能させる。
・ユーザの指示に基づいて、パーツオブジェクトとして、単位部分を有する傾斜オブジェクトをゲーム空間内に配置するオブジェクト配置手段
・パーツオブジェクトが配置されたゲーム空間を表す画像を生成する画像生成手段
ここで、オブジェクト配置手段は、ユーザの第１指示（例えば、傾斜オブジェクトを配置する配置指示）に基づいて、１つの単位部分を有する第１傾斜オブジェクト（すなわち、単傾斜オブジェクト）を上記傾斜オブジェクトとしてゲーム空間内に配置する。また、オブジェクト配置手段は、ユーザの第２指示（例えば、傾斜オブジェクトを変形する変形指示）に基づいて、複数の単位部分を有する第２傾斜オブジェクト（すなわち、複傾斜オブジェクト）を上記傾斜オブジェクトとしてゲーム空間内に配置する。第２傾斜オブジェクトは、複数の斜辺（図２４に示す例においては、第１辺）が連続することにより１つの辺をなすように複数の単位部分が連続する連続単位部分を含む（図１０）。
【０２１２】
上記によれば、情報処理装置は、斜辺の長さが異なる複数種類の傾斜オブジェクトを、単位部分の数を変えて用いることによって容易に生成することができる。また、上記実施形態においては、単位部分を連続させることによって傾斜オブジェクトの斜辺の長さを調整するので、１種類の形状の傾斜オブジェクト（例えば、直角三角形の傾斜オブジェクト）を拡大または縮小することによって傾斜オブジェクトの斜辺の長さを調整する方法に比べて、斜辺が長くなった場合における傾斜オブジェクトの配置スペースを小さくすることができる。上記実施形態によれば、傾斜オブジェクトの配置スペースを小さくすることによって、他のオブジェクトをゲーム空間に配置しやすくなるので、オブジェクトの配置の自由度を向上することができる。
【０２１３】
ここで、上記実施形態においては、単位部分は、次のように構成される。図２４は、単位部分の一例を示す図である。図２４の（ａ）は、上記実施形態における単位部分を示している。図２４の（ａ）に示すように、上記実施形態における単位部分は、第１部分と、第２部分とを有する。第１部分は、第１辺と第２辺とを有し、当該第１辺と当該第２辺とのなす内角が鋭角となる部分である。第２部分は、第１辺と第２辺とのなす角の頂点に連続する連続辺を有し、第２辺の少なくとも一部を一辺とし、当該連続辺と第１辺とのなす内角が９０°以上となる部分である。
【０２１４】
なお、上記実施形態においては、第１部分は直角三角形であり、第１部分の第２辺と第３辺とが、グリッド線に対して平行に配置され、第１辺が斜辺となる。このように、傾斜オブジェクトは、グリッドにおける１以上のセルによって構成される四角形の対角線に沿って単位部分の第１辺が配置され、セルの辺に沿って第２辺が配置されるように、配置される。
【０２１５】
上記のように、上記実施形態における単位部分は、鋭角となる部分を有する第１部分に加えて、第２部分を有する構成である。第２部分によって、第１部分における鋭角部分を９０°以上の角にすることができ、鋭角が存在することに起因する問題が発生する可能性を低減することができる。したがって、上記実施形態においては、衝突判定の処理を簡易化することができ、ひいては、ゲームシステム１における処理負担を軽減したり、開発者の作業負担を軽減したりすることができる。
【０２１６】
また、上記実施形態においては、単位部分は、第１辺および第２辺を含む平行四辺形である。したがって、上記実施形態においては、連続単位部分が平行四辺形となるので（図１０参照）、ゲームシステム１は、２つの斜辺を有する傾斜オブジェクトを配置することができる。また、上記実施形態においては、例えば図２４の（ｂ）に示す単位部分を用いる場合に比べて、傾斜オブジェクトの配置スペースを低減することができる。
【０２１７】
なお、本明細書においては、本実施形態および変形例を理解しやすくする目的で、傾斜オブジェクトをいくつかの部分（例えば、上記単位部分および連続部分、または、上記第１部分および第２部分）に分けて説明し、当該部分の輪郭となる直線を「辺」と呼んでいる。ただし、以上の説明からも明らかなように、辺は、必ずしも傾斜オブジェクトの輪郭である必要はないし、傾斜オブジェクトは辺で分けて分離することができる（換言すれば、部分に分離することができる）必要はない。例えば、傾斜オブジェクトは、図１０に示す辺Ａまたは辺Ｂで分離することができる必要はないし、傾斜オブジェクトの単位部分は、図２４に示す第２辺で２つに分離することができる必要はない。
【０２１８】
（傾斜オブジェクトの形状に関する変形例）
他の実施形態においては、単位部分の形状は、平行四辺形に限らず、他の形状であってもよい。図２４の（ｂ）は、上記実施形態の変形例における傾斜オブジェクトが有する単位部分を示している。図２４の（ｂ）に示すように、変形例における単位部分は、台形形状である。上記変形例における単位部分は、斜辺である第１辺の各端に接続される２つの辺が、上下方向のグリッド線に平行となり、斜辺に向かい合う辺が、左右方向のグリッド線に平行となるように配置される。
【０２１９】
具体的には、変形例に係る単位部分の第１部分は、上記実施形態における単位部分の第１部分と同じ形状である。また、変形例における単位部分の第２部分は、上記実施形態における単位部分の第２部分とは異なり、正方形である。ただし、変形例における第２部分も、上記実施形態における第２部分と同様、第１辺と第２辺とのなす角の頂点に連続する連続辺を有し、第２辺の少なくとも一部を一辺とし、当該連続辺と第１辺とのなす内角が９０°以上となる部分である。したがって、変形例における第２部分も上記実施形態と同様、第１部分の鋭角をなくすことができる。
【０２２０】
また、本実施形態においては、傾斜オブジェクトは、２つの連続部分（すなわち、上連続部分および下連続部分）を有する構成であった。ここで、他の実施形態においては、傾斜オブジェクトは、連続部分を有していなくてもよいし、１つの連続部分のみを有していてもよい。
【０２２１】
図２５は、傾斜オブジェクトの変形例の一例を示す図である。図２５に示す第１変形例のように、傾斜オブジェクトは、連続部分を有していない形状であってもよい。すなわち、単傾斜オブジェクトは、１つの単位部分のみで構成され、複傾斜オブジェクトは、複数の単位部分（換言すれば、連続単位部分）のみで構成されてもよい。
【０２２２】
なお、第１変形例においては、傾斜オブジェクトは２箇所の鋭角を有しており、第１部分のみを単位部分とするオブジェクト（すなわち、直角三角形のオブジェクト）と鋭角の数は同じである。しかし、第１変形例における傾斜オブジェクトによれば、２つの鋭角が互いに反対側（すなわち、上端と下端）に配置されるので、他のオブジェクトが単位部分に接近した際に、２つの鋭角の両方に接近する可能性を低減することができる。例えば、図２５に示す傾斜オブジェクトの上側の斜辺上にプレイヤオブジェクトが配置された状況では、プレイヤオブジェクトは当該傾斜オブジェクトの下側の鋭角に接近することはない。一方、直角三角形のオブジェクトの斜辺上にプレイヤオブジェクトが配置された状況では、プレイヤオブジェクトは、斜辺の両端の鋭角に接近する可能性があるので、鋭角による問題が生じる可能性は、第１変形例よりも高くなる。以上のように、第１変形例によれば、傾斜オブジェクトにおける鋭角の配置を第２部分によって変更することができ、それによって、ゲーム空間に鋭角が存在することに起因する問題が発生する可能性を低減することができる。
【０２２３】
また、図２５に示す第２変形例のように、傾斜オブジェクトは、１つの連続部分（具体的には、上連続部分）のみを有する形状であってもよい。すなわち、単傾斜オブジェクトは、１つの単位部分と、１つの上連続部分とによって構成され、複傾斜オブジェクトは、複数の単位部分（換言すれば、連続単位部分）と、１つの上連続部分とによって構成されてもよい。第２変形例によれば、連続部分を有することによって、傾斜オブジェクトに生じる鋭角を少なくすることができ、ゲーム空間に鋭角部分が生じる可能性を低減することができる。
【０２２４】
また、図２５に示す第３変形例のように、単位部分が台形形状である場合であっても、傾斜オブジェクトは、２つの連続部分を有していてもよい。また、図示しないが、単位部分が台形形状である場合であっても、傾斜オブジェクトは、１つの連続部分（例えば、上連続部分）と単位部分とによって構成されてもよいし、単位部分のみで構成されてもよい。
【０２２５】
上記第１〜第３変形例においても上記実施形態と同様、傾斜オブジェクトの配置スペースを小さくすることができ、ゲーム空間におけるオブジェクトの配置の自由度を向上することができる。
【０２２６】
また、上記実施形態においては、２種類の傾斜オブジェクトの単位部分は、（縦の長さ，横の長さ）が、それぞれ、（１グリッド，１グリッド）または（１グリッド，２グリッド）である。つまり、上記２種類のいずれの傾斜オブジェクトについても、単位部分の斜辺（換言すれば、上記第１辺）が対角線となる四角形における縦方向のセルの数と、当該四角形における横方向のセルの数とを共に割り切る正の整数は、１のみである。これによれば、グリッドを単位としてパーツオブジェクトが配置される場合において、ゲームシステム１は、単位部分の数を変更することによって、傾斜オブジェクトの斜辺（具体的には、縦：横の比が１：１または１：２の傾きを有する斜辺）の長さを最小単位で変更することができる。これによって、配置可能な傾斜オブジェクトの自由度を向上することができ、その結果、ゲーム空間のスペースを有効活用することができる。
【０２２７】
なお、他の実施形態においては、傾斜オブジェクトの単位部分は、（縦の長さ，横の長さ）が、（２グリッド，３グリッド）であってもよいし、（３グリッド，４グリッド）であってもよい。これらによれば、縦：横の比が２：３または３：４の傾きを有する傾斜オブジェクトの傾斜の長さを最小単位で変更することができる。
【０２２８】
（傾斜オブジェクトに対する操作に関する変形例）
上記実施形態においては、オブジェクト配置手段１５１は、ユーザの指示に基づいて、傾斜オブジェクトを反転させた（図１３参照）。ここで、他の実施形態においては、オブジェクト配置手段１５１は、傾斜オブジェクトを反転させることに加えて、傾斜オブジェクトを回転させるようにしてもよい。例えば、上記実施形態のように、グリッドが正方形のセルによって構成される場合において、オブジェクト配置手段１５１は、ユーザの指示に基づいて、傾斜オブジェクトを９０°ずつ回転させるようにしてもよい。これによれば、傾斜オブジェクトの配置の自由度をより向上することができる。
【０２２９】
（ゲーム空間に関する変形例）
上記実施形態においては、２次元のゲーム空間において２次元の傾斜オブジェクトを配置する場合を例として説明した。ここで、他の実施形態においては、ゲームシステム１は、３次元のゲーム空間内に３次元の傾斜オブジェクトを配置するものであってもよい。例えば、オブジェクト配置手段１５１は、上記実施形態における傾斜オブジェクトの形状を底面とし、所定の高さを有する柱状の立体を、傾斜オブジェクトとして３次元のゲーム空間内に配置してもよい。なお、上記傾斜オブジェクトは、上記高さ方向が、ゲーム空間における奥行き方向に平行となるように配置される。このように、上記実施形態は、３次元のゲーム空間内に３次元の傾斜オブジェクトを配置する場合にも適用することができる。なお、３次元のゲーム空間に３次元のオブジェクトが配置される場合において、ゲームシステム１は、固定的に設定される視線方向から見たゲーム画像（すなわち、実質的には２次元のゲーム画像）を生成して表示してもよい。
【０２３０】
また、上記実施形態、ゲームに用いられるゲーム空間に傾斜オブジェクトを配置する場合を例として説明した。ここで、他の実施形態においては、傾斜オブジェクトが配置される仮想空間は、ゲーム空間に限らず、衝突判定に用いられるオブジェクトが配置される任意の仮想空間であってよい。つまり、傾斜オブジェクトおよびそれが配置される仮想空間は、ゲーム処理以外の情報処理において用いられるものであってもよい。
【産業上の利用可能性】
【０２３１】
上記実施形態は、衝突判定の処理を容易に行うこと等を目的として、例えばゲームシステムやゲームプログラムに利用することが可能である。
【符号の説明】
【０２３２】
１  ゲームシステム
２  本体装置
８１  プロセッサ
１５１  オブジェクト配置手段
１５２  消去手段
１５３  復元手段
１５４  補完手段
１５５  画像生成手段
１５６  プレイヤオブジェクト制御手段
２０５，２２１〜２２４，２３１，２４１，２５１，２６１  傾斜オブジェクト
２３３，２３４，２４２，２４３，２５３，２６４  補完オブジェクト
【図１】
2019154981.tif 000003
【図２】
2019154981.tif 000004
【図３】
2019154981.tif 000005
【図４】
2019154981.tif 000006
【図５】
2019154981.tif 000007
【図６】
2019154981.tif 000008
【図７】
2019154981.tif 000009
【図８】
2019154981.tif 000010
【図９】
2019154981.tif 000011
【図１０】
2019154981.tif 000012
【図１１】
2019154981.tif 000013
【図１２】
2019154981.tif 000014
【図１３】
2019154981.tif 000015
【図１４】
2019154981.tif 000016
【図１５】
2019154981.tif 000017
【図１６】
2019154981.tif 000018
【図１７】
2019154981.tif 000019
【図１８】
2019154981.tif 000020
【図１９】
2019154981.tif 000021
【図２０】
2019154981.tif 000022
【図２１】
2019154981.tif 000023
【図２２】
2019154981.tif 000024
【図２３】
2019154981.tif 000025
【図２４】
2019154981.tif 000026
【図２５】
2019154981.tif 000027