(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-30
(45)【発行日】2022-04-07
(54)【発明の名称】情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
(51)【国際特許分類】
A63F 13/63 20140101AFI20220331BHJP
A63F 13/55 20140101ALI20220331BHJP
A63F 13/822 20140101ALI20220331BHJP
G06F 3/04845 20220101ALI20220331BHJP
【FI】
A63F13/63
A63F13/55
A63F13/822
G06F3/0484 150
(21)【出願番号】P 2020067246
(22)【出願日】2020-04-03
【審査請求日】2021-02-18
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】東 智子
(72)【発明者】
【氏名】清水 勇作
【審査官】岸 智史
(56)【参考文献】
【文献】特開2011-101754(JP,A)
【文献】特開2004-329792(JP,A)
【文献】特開2002-239240(JP,A)
【文献】特開平10-174782(JP,A)
【文献】特開平07-185134(JP,A)
【文献】「スーパーマリオメーカー2」で自作したコースで自分だけのワールドが作れる「World Map Builder」,Gigazine [online],2019年08月02日,https://gigazine.net/news/20190802-world-map-builder/,[2022年1月31日検索]
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24、13/00-13/98
G06F 3/048-3/0489
(57)【特許請求の範囲】
【請求項1】
情報処理装置に含まれるコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
ユーザの配置操作に応じて、少なくとも1つの接続方向を有するパーツを第1配置方向で仮想空間に配置する配置手段と、
前記第1配置方向で前記仮想空間に配置された前記パーツを、ユーザの回転操作に応じて
、第2配置方向で配置されるように変更する回転手段と、
前記仮想空間に配置された前記パーツである第1パーツおよび第2パーツが互いに隣接する場合、当該第2パーツに対して当該第1パーツが隣接する方向、当該第1パーツが有する前記接続方向、および当該第2パーツが有する接続方向から少なくともなる組み合わせに基づいて、当該第1パーツと当該第2パーツとが接続されているか否かを判定する接続判定手段と、
前記第1パーツと前記第2パーツとが接続されていると判定された場合、当該第1パーツと当該第2パーツにおいて、当該第1パーツと当該第2パーツとが接続されていないと判定された場合と比べて異なるゲーム上の作用を実行する作用実行手段として機能させ、
前記配置手段は、前記仮想空間において前記パーツを配置する仮想空間における配置位置に応じて、当該パーツを新たに前記仮想空間に配置するときの前記第1配置方向を決定する、情報処理プログラム。
【請求項2】
少なくとも前記配置操作により配置された前記パーツの内部において、前記仮想空間に配置された移動オブジェクトをユーザのオブジェクト移動操作に応じて移動させるオブジェクト移動手段として、さらに前記コンピュータを機能させ、
前記作用実行手段は、前記第1パーツと前記第2パーツとが接続されていると判定された場合、当該第1パーツの内部から当該第2パーツの内部に向けて、かつ当該第2パーツの内部から当該第1パーツの内部に向けて、前記移動オブジェクトが移動することを許可する、請求項1に記載の情報処理プログラム。
【請求項3】
前記パーツは、当該パーツの内部において、前記移動オブジェクトが移動できるルートである移動可能ルートおよび当該移動オブジェクトができないルートである移動不可能ルートの少なくとも一方を有し、
前記情報処理プログラムは、前記移動可能ルートを有するパーツが配置されている場合、少なくとも当該移動可能ルートを表すマップ画像を、表示画面に表示するために生成するルート画像生成手段として、さらに前記コンピュータを機能させる、請求項2に記載の情報処理プログラム。
【請求項4】
前記ルート画像生成手段は、前記移動不可能ルートを有するパーツが配置されている場合、当該パーツの内部において、当該移動不可能ルートを、前記移動可能ルートとは表示態様を変更させて、前記マップ画像を生成する、請求項3に記載の情報処理プログラム。
【請求項5】
前記ルート画像生成手段は、前記仮想空間の端部に配置された前記パーツのルートのうち、当該仮想空間の当該端部から外側に伸びるルートを前記移動不可能ルートとして、前記マップ画像を生成する、請求項4に記載の情報処理プログラム。
【請求項6】
前記配置手段は、前記パーツを新たに前記仮想空間に配置する場合、当該仮想空間に既に配置され、当該パーツと隣接するパーツである少なくとも1つの隣接パーツが存在するときは、当該パーツと接続される当該隣接パーツの数が最も多くなるように、前記第1配置方向を決定する、請求項1乃至5の何れか1つに記載の情報処理プログラム。
【請求項7】
前記配置手段は、前記パーツを新たに前記仮想空間に配置する場合、当該パーツと接続される前記隣接パーツの数が最も多くなる配置方向が複数存在するときは、当該複数の配置方向のうち、当該パーツに設定された初期設定方向から時計回りに回転させたときの回転量が最も少ない配置方向を、前記第1配置方向として決定する、請求項6に記載の情報処理プログラム。
【請求項8】
前記配置手段は、前記パーツを新たに前記仮想空間に配置する場合、当該パーツと接続される前記隣接パーツの数が最も多くなる配置方向が複数存在するとき、かつ当該パーツを前記仮想空間の端部に配置するときは、当該複数の配置方向のうち、当該仮想空間の当該端部から外側を向く前記接続方向の数が最も少ない配置方向を、前記第1配置方向
として決定する、請求項6に記載の情報処理プログラム。
【請求項9】
前記配置手段により前記仮想空間に配置された前記パーツの少なくとも1つを、ユーザのパーツ移動操作に応じて当該仮想空間の別の位置に移動して配置するパーツ移動手段として、さらに前記コンピュータを機能させる、請求項1乃至8の何れか1つに記載の情報処理プログラム。
【請求項10】
前記パーツ移動手段は、移動前の配置方向である移動前配置方向で前記仮想空間に配置された前記パーツを前記別の位置に移動パーツとして移動する場合、
当該仮想空間に既に配置され、当該移動後の当該移動パーツと隣接するパーツである隣接パーツが存在しないときは、移動後の当該仮想空間における配置位置にかかわらず、前記移動前配置方向を維持して当該移動パーツを当該仮想空間に配置し、
少なくとも1つの前記隣接パーツが存在する場合、当該移動後の当該移動パーツと接続される当該隣接パーツの数が最も多くなるように、移動後の当該移動パーツの配置方向である移動後配置方向で当該移動パーツを当該仮想空間に配置する、請求項9に記載の情報処理プログラム。
【請求項11】
前記パーツ移動手段は、前記移動後の移動パーツと接続される前記隣接パーツの数が最も多くなる配置方向が複数存在する場合、当該複数の配置方向のうち、前記移動前配置方向から時計回りに回転させたときの回転量が最も少ない配置方向を、前記移動後配置方向として決定する、請求項10に記載の情報処理プログラム。
【請求項12】
前記配置手段は、前記接続方向が互いに異なる複数種類のパーツから選択された前記パーツを、前記仮想空間に配置する、請求項1乃至11の何れか1つに記載の情報処理プログラム。
【請求項13】
前記配置手段は、前記仮想空間の端部である端部エリアに前記パーツを配置する場合、前記パーツが有する前記接続方向のうち、当該仮想空間の当該端部から外側を向く接続方向の数が最も少なくなるように、前記第1配置方向を決定する、請求項1乃至12の何れか1つに記載の情報処理プログラム。
【請求項14】
前記仮想空間は、グリッドを有する2次元空間であり、
前記配置手段は、前記グリッドに合わせて前記パーツをそれぞれ配置する、請求項1乃至13の何れか1つに記載の情報処理プログラム。
【請求項15】
前記グリッドは、複数の正方形の格子によって構成され、
前記配置手段は、前記正方形の格子に配置される正方形の前記パーツを当該格子内で90度ずつ回転させることによって、当該パーツの配置方向を決定する、請求項14に記載の情報処理プログラム。
【請求項16】
前記配置手段は、少なくとも、前記正方形のパーツにおける1辺のみに前記接続方向を有する1方向パーツ、前記正方形のパーツにおいて対向する2辺にそれぞれ前記接続方向を有する2方向I字パーツ、前記正方形のパーツにおいて隣接する2辺にそれぞれ前記接続方向を有する2方向L字パーツ、および前記正方形のパーツにおける3辺にそれぞれ前記接続方向を有する3方向パーツから選択された前記パーツを前記仮想空間に配置する、請求項15に記載の情報処理プログラム。
【請求項17】
前記配置手段は、前記仮想空間の端部を除く中央エリアに前記パーツを配置する場合、前記1方向パーツについては前記接続方向が右方向になるように、前記2方向I字パーツについては前記接続方向が左方向および右方向となるように、前記2方向L字パーツについては前記接続方向が少なくとも左方向を含むように、前記3方向パーツについては前記接続方向が少なくとも左方向および上方向を含むように、前記第1配置方向をそれぞれ決定する、請求項16に記載の情報処理プログラム。
【請求項18】
前記配置手段は、前記仮想空間の上端部である上端エリアおよび下端部である下端エリアに前記パーツを配置する場合、複数の前記接続方向
を有するパーツについて、互いに前記接続方向が180度回転させた関係となるようにそれぞれ前記第1配置方向を決定する、請求項16または17に記載の情報処理プログラム。
【請求項19】
前記配置手段は、前記仮想空間の左端部である左端エリアおよび右端部である右端エリアに前記パーツを配置する場合、互いに前記接続方向が左右反転させた関係となるようにそれぞれ前記第1配置方向を決定する、請求項16乃至18の何れか1つに記載の情報処理プログラム。
【請求項20】
前記配置手段は、前記1方向パーツについては、前記仮想空間の右端部である右端エリアに配置する場合に前記接続方向が左方向となるように前記第1配置方向を決定し、前記仮想空間の当該右端エリアを除くエリアに配置する場合に前記接続方向が右方向となるように前記第1配置方向を決定する、請求項16乃至19の何れか1つに記載の情報処理プログラム。
【請求項21】
前記配置手段は、前記2方向I字パーツについては、前記仮想空間の左端部および右端部のうち、上下端部を除く左右端中央エリアに配置する場合に前記接続方向が上方向および下方向となるように前記第1配置方向を決定し、前記仮想空間の当該左右端中央エリアを除くエリアに配置する場合に前記接続方向が左方向および右方向となるように前記第1配置方向を決定する、請求項16乃至20の何れか1つに記載の情報処理プログラム。
【請求項22】
前記配置手段は、前記2方向L字パーツについては、前記仮想空間の角部である角部エリアに配置する場合に前記接続方向が当該仮想空間の角部から外側に向かないように前記第1配置方向を決定する、請求項16乃至21の何れか1つに記載の情報処理プログラム。
【請求項23】
前記配置手段は、前記3方向パーツについては、前記仮想空間の端部に隣接しない中央エリアに配置する場合に前記接続方向が左方向、下方向、および右方向となるように前記第1配置方向を決定する、請求項16乃至22の何れか1つに記載の情報処理プログラム。
【請求項24】
前記配置手段は、既に当該仮想空間に配置されている前記1方向パーツと隣接する位置に前記パーツを配置する場合に、当該1方向パーツの上下左右方向のうち、当該パーツが配置された方向以外の方向に、当該1方向パーツと接続され得る他のパーツが存在しないときは、前記1方向パーツの配置方向を前記パーツと接続されるように、変更する、請求項16乃至23の何れか1つに記載の情報処理プログラム。
【請求項25】
ユーザの配置操作に応じて、少なくとも1つの接続方向を有するパーツを第1配置方向で仮想空間に配置する配置手段と、
前記第1配置方向で前記仮想空間に配置された前記パーツを、ユーザの回転操作に応じて
、第2配置方向で配置されるように変更する回転手段と、
前記仮想空間に配置された前記パーツである第1パーツおよび第2パーツが互いに隣接する場合、当該第2パーツに対して当該第1パーツが隣接する方向、当該第1パーツが有する前記接続方向、および当該第2パーツが有する接続方向から少なくともなる組み合わせに基づいて、当該第1パーツと当該第2パーツとが接続されているか否かを判定する接続判定手段と、
前記第1パーツと前記第2パーツとが接続されていると判定された場合、当該第1パーツと当該第2パーツにおいて、当該第1パーツと当該第2パーツとが接続されていないと判定された場合と比べて異なるゲーム上の作用を実行する作用実行手段とを備え、
前記配置手段は、前記仮想空間において前記パーツを配置する仮想空間における配置位置に応じて、当該パーツを新たに前記仮想空間に配置するときの前記第1配置方向を決定する、情報処理装置。
【請求項26】
少なくとも情報処理装置を含む情報処理システムであって、
ユーザの配置操作に応じて、少なくとも1つの接続方向を有するパーツを第1配置方向で仮想空間に配置する配置手段と、
前記第1配置方向で前記仮想空間に配置された前記パーツを、ユーザの回転操作に応じて
、第2配置方向で配置されるように変更する回転手段と、
前記仮想空間に配置された前記パーツである第1パーツおよび第2パーツが互いに隣接する場合、当該第2パーツに対して当該第1パーツが隣接する方向、当該第1パーツが有する前記接続方向、および当該第2パーツが有する接続方向から少なくともなる組み合わせに基づいて、当該第1パーツと当該第2パーツとが接続されているか否かを判定する接続判定手段と、
前記第1パーツと前記第2パーツとが接続されていると判定された場合、当該第1パーツと当該第2パーツにおいて、当該第1パーツと当該第2パーツとが接続されていないと判定された場合と比べて異なるゲーム上の作用を実行する作用実行手段とを備え、
前記配置手段は、前記仮想空間において前記パーツを配置する仮想空間における配置位置に応じて、当該パーツを新たに前記仮想空間に配置するときの前記第1配置方向を決定する、情報処理システム。
【請求項27】
ユーザの配置操作に応じて、少なくとも1つの接続方向を有するパーツを第1配置方向で仮想空間に配置する配置ステップと、
前記第1配置方向で前記仮想空間に配置された前記パーツを、ユーザの回転操作に応じて
、第2配置方向で配置されるように変更する回転ステップと、
前記仮想空間に配置された前記パーツである第1パーツおよび第2パーツが互いに隣接する場合、当該第2パーツに対して当該第1パーツが隣接する方向、当該第1パーツが有する前記接続方向、および当該第2パーツが有する接続方向から少なくともなる組み合わせに基づいて、当該第1パーツと当該第2パーツとが接続されているか否かを判定する接続判定ステップと、
前記第1パーツと前記第2パーツとが接続されていると判定された場合、当該第1パーツと当該第2パーツにおいて、当該第1パーツと当該第2パーツとが接続されていないと判定された場合と比べて異なるゲーム上の作用を実行する作用実行ステップとを備え、
前記配置ステップでは、前記仮想空間において前記パーツを配置する仮想空間における配置位置に応じて、当該パーツを新たに前記仮想空間に配置するときの前記第1配置方向が決定される、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザ操作に応じて仮想空間を形成する処理を行う情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関する。
【背景技術】
【0002】
従来、ユーザ操作に応じてパーツを配置し、当該配置されたパーツを回転することによって仮想空間を形成するゲーム装置がある(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】”SUPER MARIO MAKER“、[online]、Nintendo of America Inc、[令和2年3月19日検索]、インターネット(URL:https://www.nintendo.com/consumer/downloads/manual-WiiU-Super_Mario_Maker.pdf)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記非特許文献1で開示されたゲーム装置では、パーツをどの位置に配置したとしても初期のパーツの方向が同じであるため、パーツを一旦配置した後で適宜回転させる操作が必要であった。
【0005】
それ故に、本発明の目的は、仮想空間にパーツを配置する操作を容易にすることを可能とする情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の情報処理プログラムの一構成例は、情報処理装置に含まれるコンピュータで実行される。情報処理プログラムは、配置手段、回転手段、接続判定手段、および作用実行手段として、コンピュータを機能させる。配置手段は、ユーザの配置操作に応じて、少なくとも1つの接続方向を有するパーツを第1配置方向で仮想空間に配置する。回転手段は、第1配置方向で仮想空間に配置されたパーツを、ユーザの回転操作に応じて、第2配置方向で配置されるように変更する。接続判定手段は、仮想空間に配置されたパーツである第1パーツおよび第2パーツが互いに隣接する場合、当該第2パーツに対して当該第1パーツが隣接する方向、当該第1パーツが有する接続方向、および当該第2パーツが有する接続方向から少なくともなる組み合わせに基づいて、当該第1パーツと当該第2パーツとが接続されているか否かを判定する。作用実行手段は、第1パーツと第2パーツとが接続されていると判定された場合、当該第1パーツと当該第2パーツにおいて、当該第1パーツと当該第2パーツとが接続されていないと判定された場合と比べて異なるゲーム上の作用を実行する。配置手段は、仮想空間においてパーツを配置する仮想空間における配置位置に応じて、当該パーツを新たに仮想空間に配置するときの第1配置方向を決定する。
【0008】
上記によれば、ユーザ操作に応じて仮想空間にパーツを配置する場合、配置位置に応じて配置方向が決定されるため、当該パーツの配置に必要なユーザ操作を容易にすることができる。
【0009】
また、上記情報処理プログラムは、オブジェクト移動手段として、さらにコンピュータを機能させてもよい。オブジェクト移動手段は、少なくとも配置操作により配置されたパーツの内部において、仮想空間に配置された移動オブジェクトをユーザのオブジェクト移動操作に応じて移動させる。この場合、上記作用実行手段は、第1パーツと第2パーツとが接続されていると判定された場合、当該第1パーツの内部から当該第2パーツの内部に向けて、かつ当該第2パーツの内部から当該第1パーツの内部に向けて、移動オブジェクトが移動することを許可してもよい。
【0010】
上記によれば、パーツを接続することによって移動オブジェクトが移動可能なルートを仮想空間に設定することができる。
【0011】
また、上記パーツは、当該パーツの内部において、移動オブジェクトが移動できるルートである移動可能ルートおよび当該移動オブジェクトができないルートである移動不可能ルートの少なくとも一方を有していてもよい。上記情報処理プログラムは、ルート画像生成手段として、さらにコンピュータを機能させてもよい。ルート画像生成手段は、移動可能ルートを有するパーツが配置されている場合、少なくとも当該移動可能ルートを表すマップ画像を、表示画面に表示するために生成する。
【0012】
上記によれば、移動オブジェクトが移動できるルートの区別が容易になる。
【0013】
また、上記ルート画像生成手段は、移動不可能ルートを有するパーツが配置されている場合、当該パーツの内部において、当該移動不可能ルートを、移動可能ルートとは表示態様を変更させて、マップ画像を生成してもよい。
【0014】
上記によれば、移動オブジェクトが移動できるルートと移動できないルートとの区別が容易になる。
【0015】
また、上記ルート画像生成手段は、仮想空間の端部に配置されたパーツのルートのうち、当該仮想空間の当該端部から外側に伸びるルートを移動不可能ルートとして、マップ画像を生成してもよい。
【0016】
上記によれば、仮想空間外に向かうルートの区別が容易になる。
【0017】
また、上記配置手段は、パーツを新たに仮想空間に配置する場合、当該仮想空間に既に配置され、当該パーツと隣接するパーツである少なくとも1つの隣接パーツが存在するときは、当該パーツと接続される当該隣接パーツの数が最も多くなるように、第1配置方向を決定してもよい。
【0018】
上記によれば、最もパーツ間の接続が多くなるようにパーツを配置するための操作が容易となる。
【0019】
また、上記配置手段は、パーツを新たに仮想空間に配置する場合、当該パーツと接続される隣接パーツの数が最も多くなる配置方向が複数存在するときは、当該複数の配置方向のうち、当該パーツに設定された初期設定方向から時計回りに回転させたときの回転量が最も少ない配置方向を、第1配置方向として決定してもよい。
【0020】
上記によれば、パーツ配置前の当該パーツの配置方向を基準に、当該配置方向を変更する量を少なくすることができる。
【0021】
また、上記配置手段は、パーツを新たに仮想空間に配置する場合、当該パーツと接続される隣接パーツの数が最も多くなる配置方向が複数存在するとき、かつ当該パーツを仮想空間の端部に配置するときは、当該複数の配置方向のうち、当該仮想空間の当該端部から外側を向く接続方向の数が最も少ない配置方向を、第1配置方向を決定してもよい。
【0022】
上記によれば、仮想空間外に向かうルートを少なくしながら、パーツ間の接続が多くなるようにパーツを配置するための操作が容易となる。
【0023】
また、上記情報処理プログラムは、パーツ移動手段として、さらにコンピュータを機能させてもよい。パーツ移動手段は、配置手段により仮想空間に配置されたパーツの少なくとも1つを、ユーザのパーツ移動操作に応じて当該仮想空間の別の位置に移動して配置する。
【0024】
上記によれば、一旦配置したパーツの配置位置を変えて再配置することが可能となる。
【0025】
また、上記パーツ移動手段は、移動前の配置方向である移動前配置方向で仮想空間に配置されたパーツを別の位置に移動パーツとして移動する場合、当該仮想空間に既に配置され、当該移動後の当該移動パーツと隣接するパーツである隣接パーツが存在しないときは、移動後の当該仮想空間における配置位置にかかわらず、移動前配置方向を維持して当該移動パーツを当該仮想空間に配置し、少なくとも1つの隣接パーツが存在する場合、当該移動後の当該移動パーツと接続される当該隣接パーツの数が最も多くなるように、移動後の当該移動パーツの配置方向である移動後配置方向で当該移動パーツを当該仮想空間に配置してもよい。
【0026】
上記によれば、パーツを再配置する場合であっても、当該パーツの再配置に必要なユーザ操作を容易にすることができる。
【0027】
また、上記パーツ移動手段は、移動後の移動パーツと接続される隣接パーツの数が最も多くなる配置方向が複数存在する場合、当該複数の配置方向のうち、移動前配置方向から時計回りに回転させたときの回転量が最も少ない配置方向を、移動後配置方向として決定してもよい。
【0028】
上記によれば、配置されていたパーツの配置方向を基準に、再配置する際の当該配置方向を変更する量を少なくすることができる。
【0029】
また、上記配置手段は、接続方向が互いに異なる複数種類のパーツから選択されたパーツを、仮想空間に配置してもよい。
【0030】
上記によれば、バリエーションに富んだパーツ配置が可能となる。
【0031】
また、上記配置手段は、仮想空間の端部である端部エリアにパーツを配置する場合、パーツが有する接続方向のうち、当該仮想空間の当該端部から外側を向く接続方向の数が最も少なくなるように、第1配置方向を決定してもよい。
【0032】
上記によれば、パーツ間の接続がない状態を少なくすることができる。
【0033】
また、上記仮想空間は、グリッドを有する2次元空間でもよい。上記配置手段は、グリッドに合わせてパーツをそれぞれ配置してもよい。
【0034】
上記によれば、2次元空間にパーツを配置する際のユーザ操作を容易にすることができる。
【0035】
また、上記グリッドは、複数の正方形の格子によって構成されてもよい。上記配置手段は、正方形の格子に配置される正方形のパーツを当該格子内で90度ずつ回転させることによって、当該パーツの配置方向を決定してもよい。
【0036】
上記によれば、正方形パーツを仮想空間に配する際のユーザ操作を容易にすることができる。
【0037】
また、上記配置手段は、少なくとも、正方形のパーツにおける1辺のみに接続方向を有する1方向パーツ、正方形のパーツにおいて対向する2辺にそれぞれ接続方向を有する2方向I字パーツ、正方形のパーツにおいて隣接する2辺にそれぞれ接続方向を有する2方向L字パーツ、および正方形のパーツにおける3辺にそれぞれ接続方向を有する3方向パーツから選択されたパーツを仮想空間に配置してもよい。
【0038】
上記によれば、多種多様なパーツを用いることによって、バリエーションに富んだパーツ配置が可能となる。
【0039】
また、上記配置手段は、仮想空間の端部を除く中央エリアにパーツを配置する場合、1方向パーツについては接続方向が右方向になるように、2方向I字パーツについては接続方向が左方向および右方向となるように、2方向L字パーツについては接続方向が少なくとも左方向を含むように、3方向パーツについては接続方向が少なくとも左方向および上方向を含むように、第1配置方向をそれぞれ決定してもよい。
【0040】
上記によれば、仮想空間の中央エリアにおけるパーツの配置方向を、設計者が意図する方向に導くことができる。
【0041】
また、上記配置手段は、仮想空間の上端部である上端エリアおよび下端部である下端エリアにパーツを配置する場合、複数の接続方向有するパーツについて、互いに接続方向が180度回転させた関係となるようにそれぞれ第1配置方向を決定してもよい。
【0042】
上記によれば、仮想空間の上端エリアおよび下端エリアにおいてパーツを配置するユーザ操作を容易にすることができる。
【0043】
また、上記配置手段は、仮想空間の左端部である左端エリアおよび右端部である右端エリアにパーツを配置する場合、互いに接続方向が左右反転させた関係となるようにそれぞれ第1配置方向を決定してもよい。
【0044】
上記によれば、仮想空間の左端エリアおよび右端エリアにおいてパーツを配置するユーザ操作を容易にすることができる。
【0045】
また、上記配置手段は、1方向パーツについては、仮想空間の右端部である右端エリアに配置する場合に接続方向が左方向となるように第1配置方向を決定し、仮想空間の当該右端エリアを除くエリアに配置する場合に接続方向が右方向となるように第1配置方向を決定してもよい。
【0046】
上記によれば、仮想空間に1方向パーツを配置するユーザ操作を容易にすることができる。
【0047】
また、上記配置手段は、2方向I字パーツについては、仮想空間の左端部および右端部のうち、上下端部を除く左右端中央エリアに配置する場合に接続方向が上方向および下方向となるように第1配置方向を決定し、仮想空間の当該左右端中央エリアを除くエリアに配置する場合に接続方向が左方向および右方向となるように第1配置方向を決定してもよい。
【0048】
上記によれば、仮想空間に2方向I字パーツを配置するユーザ操作を容易にすることができる。
【0049】
また、上記配置手段は、2方向L字パーツについては、仮想空間の角部である角部エリアに配置する場合に接続方向が当該仮想空間の角部から外側に向かないように第1配置方向を決定してもよい。
【0050】
上記によれば、仮想空間に2方向L字パーツを配置するユーザ操作を容易にすることができる。
【0051】
また、上記配置手段は、3方向パーツについては、仮想空間の端部に隣接しない中央エリアに配置する場合に接続方向が左方向、下方向、および右方向となるように第1配置方向を決定してもよい。
【0052】
上記によれば、仮想空間に3方向パーツを配置するユーザ操作を容易にすることができる。
【0053】
また、上記配置手段は、既に当該仮想空間に配置されている1方向パーツと隣接する位置にパーツを配置する場合に、当該1方向パーツの上下左右方向のうち、当該パーツが配置された方向以外の方向に、当該1方向パーツと接続され得る他のパーツが存在しないときは、前記1方向パーツの配置方向を前記パーツと接続されるように、変更してもよい。
【0054】
上記によれば、さらにパーツ間の接続がない状態を少なくすることができる。
【0055】
また、本発明は、情報処理装置、情報処理システム、および情報処理方法の形態で実施されてもよい。
【発明の効果】
【0056】
本発明によれば、ユーザ操作に応じて仮想空間にパーツを配置する場合、配置位置に応じて配置方向が決定されるため、当該パーツの配置に必要なユーザ操作を容易にすることができる。
【図面の簡単な説明】
【0057】
【
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
【
図2】本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図
【
図6】本体装置2の内部構成の一例を示すブロック図
【
図7】本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図
【
図8】本体装置2のディスプレイ12に表示されるゲーム画像のうち、仮想空間の生成/編集してゲームワールドを形成する演出の例を示す図
【
図10】2方向I字パーツが中央左端エリアに初期配置される場合に配置方向が変更される一例を示す図
【
図11】仮想空間における配置位置に応じて、ルートパーツが初期配置される際に配置方向が回転するルールの一例を示す図
【
図12】2方向I字パーツが配置済みの1方向パーツと隣接して初期配置される場合に配置方向が変更される一例を示す図
【
図13】特定のルートパーツと隣接して新たに初期配置されるルートパーツとの接続方向の関係に基づいて、当該特定のルートパーツが回転する一例を説明する図
【
図14】移動可能ルートと移動不可能ルートとを異なる表示態様によって表示するマップ画像の一例を示す図
【
図15】移動可能ルートと移動不可能ルートとを異なる表示態様によって表示するマップ画像の一例を示す図
【
図16】ルートパーツの配置方向変更ルールにおける例外ルールの一例を示す図
【
図17】本実施例において本体装置2のDRAM85に設定されるデータ領域の一例を示す図
【
図18】ゲームシステム1で実行される情報処理の一例を示すフローチャート
【
図19】
図18におけるステップS125において行われる初期配置処理の詳細な一例を示すサブルーチン
【
図20】
図18におけるステップS127において行われるパーツ移動処理の詳細な一例を示すサブルーチン
【発明を実施するための形態】
【0058】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含み、情報処理システムとしても機能する。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0059】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0060】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0061】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0062】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0063】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0064】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0065】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、
図6に示すスピーカ88)を備えている。
図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0066】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0067】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0068】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0069】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0070】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0071】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33~36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および-(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0072】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0073】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0074】
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。本実施形態においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53~56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上に第1Rボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。
【0075】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0076】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0077】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0078】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0079】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0080】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0081】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0082】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0083】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0084】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0085】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0086】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0087】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0088】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0089】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0090】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0091】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。
図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0092】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0093】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0094】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0095】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。
【0096】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0097】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0098】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113およびアナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0099】
右コントローラ4は、処理部121を備える。処理部121は、通信制御部111に接続される。
【0100】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0101】
以上に説明したように、本実施形態におけるゲームシステム1については左コントローラ3および右コントローラ4が本体装置2から着脱可能である。また、クレードルに左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置や本体装置2単体を装着することによって据置型モニタ等の外部表示装置に画像(および音声)を出力可能である。以下、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置の利用態様におけるゲームシステム1を用いて説明する。
【0102】
このように、一体型装置となったゲームシステム1における左コントローラ3および/または右コントローラ4の各操作ボタンやスティックの操作、あるいは本体装置2のタッチパネル13に対するタッチ操作、一体型装置全体を動かす操作に応じて、仮想空間の生成/編集や仮想空間を用いたゲームプレイが行われる。本実施例では、一例として、上記操作ボタン、スティック、およびタッチパネル13を用いたユーザ操作に応じて、ディスプレイ12に表示された仮想空間内にルートパーツを配置することによって、当該仮想空間内にユーザ所望のゲームワールドを形成することができる。また、上記操作ボタン、スティック、およびタッチパネル13を用いたユーザ操作に応じて、形成されたゲームワールドを用いたゲームプレイが可能となる。
【0103】
図8を用いてゲームシステム1において行われるゲーム処理の概要について説明する。なお、
図8は、本体装置2のディスプレイ12に表示されるゲーム画像のうち、仮想空間の生成/編集してゲームワールドを形成する演出の例を示す図である。なお、以下の説明では、ゲームシステム1において実行するアプリケーションの一例としてゲームを用いているが、ゲームシステム1において他のアプリケーションを実行してもかまわない。
【0104】
図8において、ゲームシステム1のディスプレイ12には、ゲームシステム1でプレイされるゲームで用いられるゲームワールドを生成/編集するためのゲーム画像が表示されている。例えば、本実施例におけるゲームワールドは、ユーザ操作に応じて移動するプレイヤオブジェクトが、移動開始位置(スタートポイント;
図8における「S」字表記)から到達目標位置(ゴールポイント;
図8における「G」字表記)までの移動可能なルートを示す画像によって表示される。具体的には、
図8に示すように、スタートポイントからゴールポイントまでのルートは、分岐ルートも形成可能であり、当該ルート途中にコースポイント(
図8における黒塗りつぶし丸印表記)も設定可能である。ここで、コースポイントは、プレイヤオブジェクトが到達することによって、上記ゲームワールドとは別の仮想空間の少なくとも1つのゲームステージを用いたゲームがプレイすることができる位置である。そして、コースポイントに設定されたゲームステージがクリアされることによって、当該コースポイントを通過してルートに沿ったゴールポイントへ向かって移動することが可能となる。そして、上記ゲームワールドにおけるエンドポイントにプレイヤオブジェクトが到達した場合に、当該ゲームワールドを用いたゲームがクリアされる。
【0105】
本実施例では、このような仮想空間内に設けられるゲームワールドにおけるルートを、ユーザ操作に応じて生成/編集することができる。例えば、ディスプレイ12に表示される仮想空間全体は、複数のグリッド(
図8の例では、4行7列のグリッド)に分割されている。そして、各グリッド内に配置可能な複数種類のルートパーツが用意されており、各グリッドにルートパーツを配置することによって、仮想空間内にゲームワールドを形成することができる。本実施例では、仮想空間全体が同じサイズの正方形グリッドで分割され、当該グリッドに配置可能な正方形のルートパーツが用意されている例を用いる。
【0106】
各ルートパーツは、その内部にゲームワールドに設定するルート画像が描写されている。例えば、各ルートパーツは、ゲームワールド上に形成される地形(例えば、平地、荒れ地、地下、砂漠、森、雪原、空、海、宇宙、火山等)内に、プレイヤオブジェクトが移動可能なルートの一部が描写されている。本実施例では、仮想空間内に配置可能なルートパーツ候補として、1方向パーツ、2方向I字パーツ、2方向L字パーツ、および3方向パーツの4種類が用意されている。具体的には、1方向パーツは、他のルートパーツと接続可能な接続方向が正方形の4辺のうちの1辺に設定され、行き止まりのルートが描写されたルートパーツである。2方向I字パーツは、上記接続方向が正方形の4辺のうちの対向する2辺に設定され、直線(I字型)のルートが描写されたルートパーツである。2方向L字パーツは、上記接続方向が正方形の4辺のうちの隣接する2辺に設定され、直角に曲がる(L字型)のルートが描写されたルートパーツである。そして、3方向パーツは、上記接続方向が正方形の4辺のうちの3辺に設定され、T字型のルートが描写されたルートパーツである。なお、本実施例では、説明を容易にするために4種類のルートパーツを用いているが、他のルートパーツが用意されていてもよい。例えば、ルートが描写されていないルートパーツ、曲線(カーブ)のルートが描写されたルートパーツ、十字路のルートが描写されたルートパーツ、高低差のあるルートが描写されたルートパーツ等が、さらに用意されていてもかまわない。
【0107】
ユーザは、用意されているルートパーツ候補から選択したルートパーツを仮想空間のグリッドと一致するように初期配置することができる。そして、隣接して配置されたルートパーツにおいて、当該ルートパーツが接触している互いの辺の何れにも接続方向が設定されている、すなわち接続方向が設定されている辺同士が接合している場合、それぞれのルートパーツに描写されているルートが接続された状態で仮想空間内に配置される。例えば、
図8に例示されているように、スタートポイントが設定され右辺に接続方向が設定されている1方向パーツ(3行1列目のグリッドに配置されたルートパーツ)と、その右に隣接して左右辺に接続方向が設定されている2方向I字パーツ(3行2列目のグリッドに配置されたルートパーツ)とは、互いに接続方向が設定されている辺が接合した状態で隣接しているため、互いのルートが左右に連結されたルートが描写された隣接パーツとして配置される。
【0108】
ユーザによって選択されたルートパーツの配置位置および配置方向は、ユーザ操作によっても設定される。例えば、タッチパネル13を用いたタッチ操作によって、タッチオンされたルートパーツをドラッグおよびドロップするタッチ操作によってルートパーツをユーザ所望のグリッドの位置に配置することができ、当該配置後にルートパーツをタップするタッチ操作や所定の操作ボタンを押下する操作によって当該ルートパーツを所定の方向(例えば、時計方向)に90度ずつ回転させて配置方向を変えることができる。
【0109】
また、仮想空間に配置されたルートパーツ内には、ユーザ操作に応じて、所定の機能を有するポイントパーツを付加することができる。具体的には、ルートパーツの中央付近には、ポイントパーツが付加可能な空地がルート途中に設けられており、当該ルートパーツにポイントパーツが付加された場合、当該空地に当該ポイントパーツを示す標識が表示される。一例として、ポイントパーツとしてルートの起点を示すスタートポイントが付加された場合、当該スタートポイントを示す「S」字標識が上記空地内に表示される。ポイントパーツとしてルートの終点を示すゴールポイントが付加された場合、当該ゴールポイントを示す「G」字標識が上記空地内に表示される。また、ポイントパーツとしてゲームステージが設定されていることを示すコースポイントが付加された場合、当該コースポイントを示す「黒塗りつぶしの丸印」の標識が上記空地内に表示される。
【0110】
ここで、本実施例では、スタートポイントからゴールポイントへ到達できないルートが形成されない(表示されない)ルールとなっているため、このようなルートをユーザがルート生成/編集時に形成したとしても、当該ルートを確定させた後の当該ルートを用いたプレイ時点には当該ルートが消去されてプレイヤオブジェクトが移動することができない。一例として、本実施例では、ディスプレイ12に表示されている範囲がゲームワールドを形成可能な仮想空間全体であり、当該仮想空間の端部から外側に向かうルートは、上記プレイ時点には消去される。また、他の例において、上記仮想空間内においてルートの起点(スタートポイント)および終点(ゴールポイント)以外で行き止まりとなるルートは、上記プレイ時点には消去される。本実施例では、ルートパーツを配置および/または移動する場合に、このようなプレイ時点において消去されるルートができるだけ少なくなるように、当該ルートパーツの配置方向が自動的に変更される。
【0111】
図9~
図11を参照して、ルートパーツの配置方向が自動的に変更される一例として、ルートパーツを配置する仮想空間における配置位置に応じて、当該ルートパーツを初期配置するときの配置方向が自動的に変更される例について説明する。なお、
図9は、仮想空間における配置エリアの一例を示す図である。
図10は、2方向I字パーツが中央左端エリアに初期配置される場合に配置方向が変更される一例を示す図である。
図11は、仮想空間における配置位置に応じて、ルートパーツが初期配置される際に配置方向が回転するルールの一例を示す図である。
【0112】
図9において、本実施例においては、ゲームワールドを形成可能な仮想空間全体がディスプレイ12に表示される。一例として、ディスプレイ12に表示される仮想空間全体は、横4行縦7列の正方形グリッドに分割されて管理される。説明を具体的にするために、ディスプレイ12に表示される仮想空間全体は、仮想空間の上端から下端へ行1から行4の4行に分割され、仮想空間の左端から右端へ列1~列7の7列に分割された、合計28個の正方形グリッドに分割されているとする。
【0113】
例えば、仮想空間全体において当該仮想空間の外側との境界となる端部(上端、下端、左端、右端)に属さないエリア(
図9の例では、上端から2行目の行2に属するグリッドと上端から3行目の行3に属するグリッドのうち、左端から1列目の列1のグリッドと右端から1列目の列7のグリッドを除いた合計10個のグリッド)を「中央エリア」とする。また、仮想空間全体において当該仮想空間の左上角となる上端および左端に属するエリア(
図9の例では、上端から1行目の行1、かつ、左端から1列目の列1に位置する角のグリッド)を「左上角エリア」とする。仮想空間全体において当該仮想空間の右上角となる上端および右端に属するエリア(
図9の例では、上端から1行目の行1、かつ、右端から1列目の列7に位置する角のグリッド)を「右上角エリア」とする。仮想空間全体において当該仮想空間の左下角となる下端および左端に属するエリア(
図9の例では、下端から1行目の行4、かつ、左端から1列目の列1に位置する角のグリッド)を「左下角エリア」とする。仮想空間全体において当該仮想空間の右下角となる下端および右端に属するエリア(
図9の例では、下端から1行目の行4、かつ、右端から1列目の列7に位置する角のグリッド)を「右下角エリア」とする。また、仮想空間全体において当該仮想空間の上端に属するエリアのうち、「左上角エリア」および「右上角エリア」を除くエリア(
図9の例では、上端から1行目の行1、かつ、左端から2列目の列2~6列目の列6に位置する合計5個のグリッド)を「中央上端エリア」とする。仮想空間全体において当該仮想空間の下端に属するエリアのうち、「左下角エリア」および「右下角エリア」を除くエリア(
図9の例では、下端から1行目の行4、かつ、左端から2列目の列2~6列目の列6に位置する合計5個のグリッド)を「中央下端エリア」とする。仮想空間全体において当該仮想空間の左端に属するエリアのうち、「左上角エリア」および「左下角エリア」を除くエリア(
図9の例では、上端から2行目の行2および3行目の行3、かつ、左端から1列目の列1に位置する合計2個のグリッド)を「中央左端エリア」とする。仮想空間全体において当該仮想空間の右端に属するエリアのうち、「右上角エリア」および「右下角エリア」を除くエリア(
図9の例では、上端から2行目の行2および3行目の行3、かつ、右端から1列目の列7に位置する合計2個のグリッド)を「中央右端エリア」とする。
【0114】
このような複数のエリアに分類された仮想空間において、ユーザ操作に応じてルートパーツが「中央エリア」を除くエリアに初期配置される場合、当該ルートパーツが当該初期配置前の配置方向(初期設定方向;第1配置方向の一例に相当)から自動的に回転して配置されることがある。例えば、
図10に示すように、2方向I字パーツは、初期配置される前の配置方向である初期設定方向として、左右方向のルートが描写される方向(すなわち、ルートパーツの左辺および右辺にそれぞれ隣接パーツとルート接続可能な接続方向が設定されている方向)が予め設定されている。そして、上記2方向I字パーツが仮想空間の「中央左端エリア」に初期配置される場合、左右方向のルートが描写された2方向I字パーツが、上下方向のルートが描写される方向に時計回りに90度回転して配置される。このようなルートパーツの配置方向が回転することによって、仮想空間の「中央左端エリア」から当該仮想空間の外側(仮想空間外となる左側)に向かうルートが設定されることがないため、プレイヤオブジェクトが移動できない無駄なルートが形成されることを防止することができる。
【0115】
図11を参照して、各エリアに初期配置されるルートパーツの配置方向の例について説明する。上述したように各ルートパーツには、初期配置される前の配置方向である初期設定方向が設定されている。一例として、1方向パーツの初期設定方向は、行き止まり地点から右方向に向かうルートが描写される方向(すなわち、ルートパーツの右辺に接続方向が設定されている方向)が設定されている。2方向I字パーツの初期設定方向は、左右方向のルートが描写される方向(すなわち、ルートパーツの左辺および右辺にそれぞれ接続方向が設定されている方向)が設定されている。2方向L字パーツの初期設定方向は、左方向からのルートが上方向に曲がるルートが描写される方向(すなわち、ルートパーツの左辺および上辺にそれぞれ接続方向が設定されている方向)が設定されている。そして、3方向パーツの初期設定方向は、左右方向のルートと当該ルートの途中に上方向からのルートが交差するルートが描写される方向(すなわち、ルートパーツの左辺、右辺、および上辺にそれぞれ接続方向が設定されている方向)が設定されている。
【0116】
各ルートパーツが仮想空間における「中央エリア」に初期配置される場合、各ルートパーツは、上述した初期設定方向のままの配置方向で初期配置される。また、各ルートパーツが仮想空間における「中央下端エリア」に初期配置される場合も、各ルートパーツは、上述した初期設定方向のままの配置方向で初期配置される。
【0117】
各ルートパーツが仮想空間における「中央上端エリア」に初期配置される場合、複数の接続方向を有するルートパーツについては、上述した初期設定方向を180度回転させた配置方向で初期配置され、1方向パーツについては、上述した初期設定方向のままの配置方向で初期配置される。
【0118】
各ルートパーツが仮想空間における「中央左端エリア」に初期配置される場合、複数の接続方向を有するルートパーツについては、上述した初期設定方向から時計回りに90度回転させた配置方向で初期配置され、1方向パーツについては、上述した初期設定方向のままの配置方向で初期配置される。そして、各ルートパーツが仮想空間における「中央右端エリア」に初期配置される場合、「中央左端エリア」に初期配置される配置方向を左右反転させた配置方向で初期配置される。
【0119】
4つの角エリアに関しては、以下の配置方向で初期配置される。1方向パーツについては、「左上角エリア」および「左下角エリア」に初期配置される場合に上述した初期設定方向のままの配置方向で初期配置され、「右上角エリア」および「右下角エリア」に初期配置される場合に上述した初期設定方向を180度回転させた配置方向で初期配置される。2方向I字パーツについては、「左上角エリア」、「右上角エリア」、「左下角エリア」、および「右下角エリア」に初期配置される場合の何れも、上述した初期設定方向のままの配置方向で初期配置される。2方向L字パーツについては、「左上角エリア」に初期配置される場合にルートパーツの右辺および下辺にそれぞれ接続方向が設定されている配置方向で初期配置され、「右上角エリア」に初期配置される場合にルートパーツの左辺および下辺にそれぞれ接続方向が設定されている配置方向で初期配置され、「左下角エリア」に初期配置される場合にルートパーツの右辺および上辺にそれぞれ接続方向が設定されている配置方向で初期配置され、「右下角エリア」に初期配置される場合にルートパーツの左辺および上辺にそれぞれ接続方向が設定されている配置方向で初期配置される。そして、3方向パーツについては、「左下角エリア」および「右下角エリア」に初期配置される場合に上述した初期設定方向のままの配置方向で初期配置され、「左上角エリア」および「右上角エリア」に初期配置される場合に上述した初期設定方向を180度回転させた配置方向で初期配置される。
【0120】
したがって、各ルートパーツが「右上角エリア」に初期配置される場合、「左上角エリア」に初期配置される配置方向を左右反転させた配置方向で初期配置されることになる。また、各ルートパーツが「左下角エリア」に初期配置される場合、「左上角エリア」に初期配置される配置方向を上下反転させた配置方向(「右上角エリア」に初期配置される配置方向を180度回転させた配置方向)で初期配置されることになる。そして、各ルートパーツが「右下角エリア」に初期配置される場合、「右上角エリア」に初期配置される配置方向を上下反転させた配置方向(「左下角エリア」に初期配置される配置方向を左右反転させた配置方向)で初期配置されることになる。
【0121】
このように、ユーザ操作に応じて、各ルートパーツが仮想空間に初期配置される場合、仮想空間の端部から当該仮想空間の外側に向かうルートが最も少なくなるように配置方向が回転して初期設定される。具体的には、1方向パーツについては、仮想空間の右端に属するエリア(「中央右端エリア」、「右上角エリア」、「右下角エリア」)に初期配置される場合に初期設定方向から左右反転させた配置方向で初期配置され、他のエリアに初期配置される場合に初期設定方向のまま初期配置される。2方向I字パーツについては、「中央左端エリア」および「中央右端エリア」に初期配置される場合に初期設定方向から90度回転させた配置方向で初期配置され、他のエリアに初期配置される場合に初期設定方向のまま初期配置される。2方向L字パーツについては、仮想空間における4つの角エリアに初期配置される場合、当該ルートパーツに描写されている曲がるルートの形状が仮想空間の角形状と合う配置方向で初期配置される。そして、3方向パーツについては、角エリアを除く仮想空間の端部に属するエリア(「中央上端エリア」、「中央下端エリア」、「中央左端エリア」、「中央右端エリア」)に初期配置される場合に当該ルートパーツに描写されている対向する2辺につながる直線ルートの形状が仮想空間の端形状と合う配置方向で初期配置され、仮想空間の角エリアに初期配置される場合に当該ルートパーツに描写されている対向する2辺につながる直線ルートの形状が仮想空間の上端または下端形状と合う配置方向で初期配置される。
【0122】
図12を参照して、ルートパーツの配置方向が自動的に変更される一例として、ルートパーツを仮想空間に配置する際に当該ルートパーツと隣接する他のルートパーツとの接続関係に応じて配置方向が自動的に変更される例について説明する。なお、
図12は、2方向I字パーツが配置済みの1方向パーツと隣接して初期配置される場合に配置方向が変更される一例を示す図である。
【0123】
ユーザ操作に応じて、配置済みの他のルートパーツと隣接して新たなルートパーツが仮想空間に初期配置される場合、当該新たなルートパーツが初期設定方向から自動的に回転して配置されることがある。例えば、
図12に示すように、仮想空間には上方向を接続方向とした1方向パーツが既に配置されている。そして、新たに初期配置する2方向I字パーツは、上述したように初期設定方向として、左右方向のルートが描写される方向(すなわち、ルートパーツの左辺および右辺に接続方向が設定されている方向)が予め設定されている。そして、上記2方向I字パーツが配置済みの1方向パーツの上辺と隣接するように初期配置される場合、2方向I字パーツが時計回りに90度回転して、双方の接続方向(すなわち、1方向パーツの上辺に設定された接続方向と2方向I字パーツの下辺に設定された接続方向)が重なるように配置される。このように2方向I字パーツの配置方向が回転することによって、隣接するルートパーツの接続方向が重なるため、隣接するルートパーツ同士のルートが連結され、1方向パーツのルートを通って2方向I字パーツのルートを通るようにプレイヤオブジェクトが移動することが可能となる。したがって、上記回転なしで2方向I字パーツが初期配置される場合と比較すると、仮想空間において1方向パーツのルートおよび/または2方向I字パーツのルートにおいて行き止まりとなるルートが設定されることを極力防止することができるため、プレイヤオブジェクトが移動できない無駄なルートが形成されることを防止することができる。このようにルートパーツ間においてルートが連結された場合、当該ルートパーツ間においてプレイヤオブジェクトが移動可能となるゲーム上の作用が実行可能となり、ルートパーツ間においてルートが連結状態にない場合、当該ルートパーツ間においてプレイヤオブジェクトが移動できないため当該ゲーム上の作用が実行できない状態となる。
【0124】
なお、後述の説明により明らかとなるが、配置済みの複数のルートパーツと隣接して新たなルートパーツが仮想空間に初期配置される際に、当該複数のルートパーツとの間で複数の接続方向候補がある場合、新たなルートパーツとの間で最も多いルート連結が可能となる配置方向で当該新たなルートパーツが初期配置されてもよい。また、新たなルートパーツとの間で最も多いルート連結が可能となる配置方向候補が複数ある場合、現在設定されている配置方向から所定の方向(例えば、時計回り)に回転させて最初に到達する配置方向候補を、初期配置する配置方向として選択されてもよい。
【0125】
また、配置済みのルートパーツと隣接して新たなルートパーツが仮想空間に初期配置される場合、配置済みのルートパーツを回転させてもよい。例えば、特定のルートパーツ(例えば、1方向パーツ)が他のルートパーツとルート連結されていない状態で仮想空間に配置済みである場合に限って、当該特定のルートパーツと隣接して新たに初期配置されるルートパーツとの接続方向の関係に基づいて、当該特定のルートパーツが回転してもよい。
【0126】
図13を参照して、特定のルートパーツと隣接して新たに初期配置されるルートパーツとの接続方向の関係に基づいて、当該特定のルートパーツが回転する一例を説明する。一例として、上記特定のルートパーツとして、仮想空間に上方向を接続方向とした1方向パーツが他のルートパーツとルート連結されていない状態で配置されている。そして、新たに初期配置する2方向I字パーツが初期設定方向(すなわち、ルートパーツの左辺および右辺に接続方向が設定されている方向)を配置方向として、上記配置済みの1方向パーツの右側に初期配置する場合を考える。この場合、双方の接続方向(すなわち、1方向パーツの右辺に設定された接続方向と2方向I字パーツの左辺に設定された接続方向)が重なるように、配置済みの1方向パーツが時計回りに90度回転する。このように既に配置済みの1方向パーツが回転することによって、新たに初期配置されて隣接するルートパーツの接続方向が重なるため、隣接するルートパーツ同士のルートが連結され、1方向パーツのルートを通って2方向I字パーツのルートを通るようにプレイヤオブジェクトが移動することが可能となる。したがって、上記回転なしで1方向パーツが固定される場合と比較すると、仮想空間において1方向パーツのルートおよび/または2方向I字パーツのルートにおいて行き止まりとなるルートが設定されることを極力防止することができるため、プレイヤオブジェクトが移動できない無駄なルートが形成されることを防止することができる。なお、仮想空間に配置した後に回転可能なルートパーツの種類は、少なくとも1つの特定のルートパーツに限定(例えば、1方向パーツに限定)してもよいし、全種類のルートパーツを回転可能にしてもかまわない。
【0127】
また、仮想空間にルートパーツを配置する際、行き止まりやプレイヤオブジェクトが通ることができない移動不可能ルートが形成された場合に、当該移動不可能ルートをプレイヤオブジェクトが移動できるルート(移動可能ルート)とは異なる表示態様に変化させることによってマップ画像を表示してもかまわない。
【0128】
図14および
図15を参照して、移動可能ルートと移動不可能ルートとを異なる表示態様によって表示するマップ画像の一例について説明する。例えば、
図14に例示するように、ルートパーツを配置する仮想空間における配置位置に応じて、当該ルートパーツを初期配置するときの配置方向を自動的に変更したとしても、当該仮想空間の外側に向かう移動不可能ルートが形成されてしまう場合もあり得る。一例として、3方向パーツは、初期設定方向として、ルートパーツの左辺、右辺、および上辺にそれぞれ接続方向が設定されている方向が予め設定されている。そして、3方向パーツが仮想空間の「左上角エリア」に初期配置される場合、左辺、右辺、および下辺にそれぞれ接続方向が設定されるように180度回転して初期配置される。これによって、「左上角エリア」に初期配置された3方向パーツから左方向となる仮想空間の外側に伸びるルートが、移動不可能ルートとして形成される。このように、仮想空間の外側に伸びる移動不可能ルートが形成された場合、当該ルートパーツに描画されているルートのうち、当該移動不可能ルートに相当する領域が他のルートの領域とは異なる表示態様(例えば、
図14に示す一例では、黒塗りつぶしの表示態様)に変化する。これによって、仮想空間にゲームワールドにおけるルートを生成/編集しているユーザは、当該ルート完成後にプレイヤオブジェクトが通ることができないルートが形成されたことをマップ画像によって知ることができる。
【0129】
また、
図15に例示するように、既に配置された隣接するルートパーツに応じて、新たに配置するルートパーツの配置方向を自動的に変更したとしても、当該既に配置するルートパーツとの間で移動不可能ルートが形成されてしまう場合もあり得る。一例として、左辺および右辺に接続方向が設定された2方向I字パーツが初期配置する3方向パーツの上方向および右方向にそれぞれ配置済みであり、上辺に接続方向が設定された1方向パーツが初期配置する3方向パーツの下方向に配置済みである場合を考える。この場合、上記3方向パーツは、右辺、上辺、および下辺にそれぞれ接続方向が設定されるように初期設定方向から90度回転して初期配置される。これによって、当該3方向パーツの右方向に隣接する2方向I字パーツの接続方向と当該3方向パーツの下方向に隣接する1方向パーツの接続方向とはそれぞれルート連結した状態となる。しかしながら、上記3方向パーツの上方向に隣接する2方向I字パーツとの間は、ルート連結できない状態となり、初期配置された3方向パーツから上方向に伸びるルートが移動不可能ルートとして形成される。このように、仮想空間の内側において移動不可能ルートが形成された場合、ルートパーツに描画されているルートのうち、当該移動不可能ルートに相当する領域が他のルートの領域とは異なる表示態様(例えば、
図15に示す一例では、黒塗りつぶしの表示態様)に変化する。これによって、仮想空間にゲームワールドにおけるルートを生成/編集しているユーザは、当該ルート完成後にプレイヤオブジェクトが通ることができないルートが形成されたことをマップ画像によって知ることができる。
【0130】
なお、上述した説明では、移動不可能ルートの表示態様を変化させる例を用いたが、移動可能ルートの表示態様を変化させてもよいし、移動不可能ルートおよび移動可能ルートの両方の表示態様を変化させてもよい。また、上述した表示態様の変更は、ルート上に設定されたスタートポイントおよびゴールポイントに基づいて行われてもかまわない。例えば、ルート上に設定されたスタートポイントからゴールポイントに到達可能なルートを開通ルートとして、当該開通ルートから外れるルートを移動不可能ルートとしてもよい。一例として、任意のポイントからコースを通ってゴールポイントとつながる、かつ、ゴールポイントを介さずにコースを通ってスタートポイントとつながる任意のポイントがコース上にある場合に、仮想空間に開通ルートが設定されているとみなし、当該仮想空間にルートパーツを初期配置したときに当該開通ルートに属さないルートを移動不可能ルートとして表示態様を変化させてもよい。また、仮想空間に上記開通ルートが設定されていない状態では、当該仮想空間に形成されている全ルートを移動不可能ルートとして表示態様を変化させ、上記開通ルートが開通したタイミングで当該開通ルートに属するルートを移動可能ルートとして変化前の表示態様に戻したり、さらに異なる表示態様に変化させたりしてもかまわない。
【0131】
また、ルートパーツの配置方向が自動的に変更される他の例として、ユーザ操作に応じて、仮想空間に一旦配置されたルートパーツを他の配置位置に移動させる際に、当該ルートパーツを移動させて再配置するときの配置方向が自動的に変更される。この場合、第1の例として、上述した初期配置の際の配置方向変更ルールに対して、ルートパーツを再配置する配置位置に応じた配置方向の変更は行わずに、再配置するルートパーツと隣接する他のルートパーツとの接続関係に応じた配置方向の変更を行う。この場合、ルートパーツを再配置する前の当該ルートパーツの配置方向は、当該ルートパーツを移動させる前の配置方向を維持して、再配置の際に隣接するルートパーツとの接続関係に応じて当該配置方向を上記初期配置の場合と同様に自動的に変更して、ルートの表示態様を変化させることが考えられる。第2の例として、上述した初期配置の際の配置方向変更ルールと同様に、ルートパーツを再配置する配置位置に応じた配置方向の変更を自動的に行うとともに、再配置するルートパーツと隣接する他のルートパーツとの接続関係に応じた配置方向の変更も行う。この場合、ルートパーツを再配置する前の当該ルートパーツの配置方向は、当該ルートパーツを移動させる前の配置方向として、再配置する際の配置位置および隣接するルートパーツとの接続関係に応じて当該配置方向を上記初期配置の場合と同様に自動的に変更し、ルートの表示態様を変化させることが考えられる。このように、一旦配置されたルートパーツを移動して再配置する際には、上記初期設定方向ではなく当該配置されていた配置方向を基準として回転させることにより、ユーザが一度配置したルートパーツの配置方向を生かした再配置が可能となり、再配置前のルート設定を残して別の位置に移動させることも可能となる。
【0132】
また、上述において例示した配置方向変更ルールにおいて、ルートパーツの種類、配置位置、および隣接パーツとの接続関係に基づいて、例外ルールを設けてもかまわない。
図16は、ルートパーツの配置方向変更ルールにおける例外ルールの一例を示す図である。
【0133】
図16において、本実施例においては、2方向L字パーツが仮想空間の4つの角エリアを除く端部エリアに初期配置または再配置される場合に、隣接パーツとの接続関係に応じて上述した配置方向変更ルールの例外となるルールが適用されて配置方向が設定される。このように、配置方向変更ルールに例外を設けることによって、設計者が意図しているルートを作成する場合に便利な配置方向で優先してルートパーツを配置することを促すことができる。
【0134】
例えば、2方向L字パーツが仮想空間の「中央上端エリア」に初期配置または再配置される場合、当該2方向L字パーツに対して隣接する接続方向がない、当該2方向L字パーツの左辺に接続方向がなく右辺に隣接する接続方向がある、または当該2方向L字パーツの左辺および右辺に隣接する接続方向があるときは、右辺および下辺にそれぞれ接続方向が設定される配置方向で当該2方向L字パーツが配置される。また、2方向L字パーツが仮想空間の「中央上端エリア」に初期配置または再配置される場合、当該2方向L字パーツの右辺に接続方向がなく左辺に隣接する接続方向があるときは、左辺および下辺にそれぞれ接続方向が設定される配置方向で当該2方向L字パーツが配置される。
【0135】
例えば、2方向L字パーツが仮想空間の「中央下端エリア」に初期配置または再配置される場合、当該2方向L字パーツに対して隣接する接続方向がない、当該2方向L字パーツの右辺に接続方向がなく左辺に隣接する接続方向がある、または当該2方向L字パーツの左辺および右辺に隣接する接続方向があるときは、左辺および上辺にそれぞれ接続方向が設定される配置方向で当該2方向L字パーツが配置される。また、2方向L字パーツが仮想空間の「中央下端エリア」に初期配置または再配置される場合、当該2方向L字パーツの左辺に接続方向がなく右辺に隣接する接続方向があるときは、右辺および上辺にそれぞれ接続方向が設定される配置方向で当該2方向L字パーツが配置される。
【0136】
例えば、2方向L字パーツが仮想空間の「中央左端エリア」に初期配置または再配置される場合、当該2方向L字パーツに対して隣接する接続方向がない、当該2方向L字パーツの下辺に接続方向がなく上辺に隣接する接続方向がある、または当該2方向L字パーツの上辺および下辺に隣接する接続方向があるときは、右辺および上辺にそれぞれ接続方向が設定される配置方向で当該2方向L字パーツが配置される。また、2方向L字パーツが仮想空間の「中央左端エリア」に初期配置または再配置される場合、当該2方向L字パーツの上辺に接続方向がなく下辺に隣接する接続方向があるときは、右辺および下辺にそれぞれ接続方向が設定される配置方向で当該2方向L字パーツが配置される。
【0137】
例えば、2方向L字パーツが仮想空間の「中央右端エリア」に初期配置または再配置される場合、当該2方向L字パーツに対して隣接する接続方向がない、当該2方向L字パーツの下辺に接続方向がなく上辺に隣接する接続方向がある、または当該2方向L字パーツの上辺および下辺に隣接する接続方向があるときは、左辺および上辺にそれぞれ接続方向が設定される配置方向で当該2方向L字パーツが配置される。また、2方向L字パーツが仮想空間の「中央左端エリア」に初期配置または再配置される場合、当該2方向L字パーツの上辺に接続方向がなく下辺に隣接する接続方向があるときは、左辺および下辺にそれぞれ接続方向が設定される配置方向で当該2方向L字パーツが配置される。
【0138】
次に、
図17~
図20を参照して、本実施例においてゲームシステム1で実行される具体的な処理の一例について説明する。
図17は、本実施例において本体装置2のDRAM85に設定されるデータ領域の一例を示す図である。なお、DRAM85には、
図17に示すデータの他、他の処理で用いられるデータも記憶されるが、詳細な説明を省略する。
【0139】
DRAM85のプログラム記憶領域には、ゲームシステム1で実行される各種プログラムPaが記憶される。本実施例においては、各種プログラムPaは、左コントローラ3および/または右コントローラ4から取得したデータに基づいた情報処理を行うためのアプリケーションプログラム(例えば、仮想空間を生成/編集するエディターやゲームプログラム)等が記憶される。なお、各種プログラムPaは、フラッシュメモリ84に予め記憶されていてもよいし、ゲームシステム1に着脱可能な記憶媒体(例えば、スロット23に装着された所定の種類の記憶媒体)から取得されてDRAM85に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてDRAM85に記憶されてもよい。プロセッサ81は、DRAM85に記憶された各種プログラムPaを実行する。
【0140】
また、DRAM85のデータ記憶領域には、ゲームシステム1において実行される情報処理等の処理において用いられる各種のデータが記憶される。本実施形態においては、DRAM85には、操作データDa、ルートパーツ候補データDb、仮想空間データDc、処理対象パーツデータDd、パーツ配置位置/配置方向データDe、ルートデータDf、ポイントパーツデータDg、配置ルールデータDh、および画像データDi等が記憶される。
【0141】
操作データDaは、左コントローラ3および/または右コントローラ4からそれぞれ適宜取得した操作データである。上述したように、左コントローラ3および/または右コントローラ4からそれぞれ取得される操作データには、各入力部(具体的には、各ボタン、アナログスティック、各センサ)からの入力に関する情報(具体的には、操作に関する情報や各センサによる検出結果)が含まれている。本実施例では、無線通信によって左コントローラ3および/または右コントローラ4からそれぞれ操作データを取得しており、当該取得した操作データを用いて操作データDaが適宜更新される。なお、操作データDaの更新周期は、後述するゲームシステム1で実行される処理の周期である1フレーム毎に更新されてもよいし、上記操作データが取得される周期毎に更新されてもよい。
【0142】
ルートパーツ候補データDbは、仮想空間に配置可能なルートパーツの候補を示すデータであり、当該ルートパーツの種別毎にルートの種別、接続方向の設定、初期方向(初期設定方向)、およびサイズ等を示すデータである。
【0143】
仮想空間データDcは、ルートパーツを配置してゲームワールドを構成するための仮想空間を示すデータであり、当該仮想空間の形状、サイズ、および分割されるグリッド等を示すデータである。
【0144】
処理対象パーツデータDdは、ユーザが初期配置または移動するために選択しているルートパーツを示すデータであり、当該ルートパーツの種別、位置、および方向等を示すデータである。
【0145】
パーツ配置位置/配置方向データDeは、仮想空間に配置されたルートパーツの状態を示すデータであり、配置されたルートパーツ毎の種別、配置位置、配置方向等を示すデータである。
【0146】
ルートデータDfは、仮想空間に形成されているルートを示すデータであり、仮想空間における開通ルート、移動可能ルート、移動不可能ルート等を示すデータである。
【0147】
ポイントパーツデータDgは、仮想空間に形成されているルート上に設定されたポイントパーツを示すデータである。
【0148】
配置ルールデータDhは、ルートパーツを初期配置および再配置する際の配置方向変更ルールや例外ルール等を示すデータである。
【0149】
画像データDiは、表示画面(例えば、本体装置2のディスプレイ12)に画像(例えば、ルートパーツの画像、仮想空間の画像、背景画像等)を表示するためのデータである。
【0150】
次に、
図18~
図20を参照して、本実施例における情報処理の詳細な一例を説明する。
図18は、ゲームシステム1で実行される情報処理の一例を示すフローチャートである。
図19は、
図18におけるステップS125において行われる初期配置処理の詳細な一例を示すサブルーチンである。
図20は、
図18におけるステップS127において行われるパーツ移動処理の詳細な一例を示すサブルーチンである。本実施例においては、
図18~
図20に示す一連の処理は、プロセッサ81が各種プログラムPaに含まれる所定のアプリケーションプログラム(エディターやゲームプログラム)を実行することによって行われる。また、
図18~
図20に示す情報処理が開始されるタイミングは任意である。
【0151】
なお、
図18~
図20に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をプロセッサ81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、プロセッサ81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち、
図18~
図20に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
【0152】
図18において、プロセッサ81は、情報処理における初期設定を行い(ステップS121)、次のステップに処理を進める。例えば、上記初期設定では、プロセッサ81は、以下に説明する処理を行うためのパラメータを初期化する。例えば、プロセッサ81は、仮想空間において複数のグリッドを定義するとともに、ルートパーツ候補を設定し、当該設定された仮想空間およびルートパーツ候補を用いてルートパーツ候補データDbおよび仮想空間データDcを更新する。また、プロセッサ81は、予め設定されている配置方向変更ルールや例外ルール等の情報に基づいて、配置ルールデータDhを初期設定する。
【0153】
次に、プロセッサ81は、左コントローラ3および/または右コントローラ4から操作データを取得して操作データDaを更新し(ステップS122)、次のステップに処理を進める。
【0154】
次に、プロセッサ81は、仮想空間にゲームワールドを設定してルートを生成/編集する処理を行うか否かを判定する(ステップS123)。例えば、プロセッサ81は、操作データDaを参照してユーザがルートを生成/編集する処理を開始する操作を行った場合やルートを生成/編集する処理中である場合、上記ステップS123において肯定判定する。そして、プロセッサ81は、ルートを生成/編集する処理を行う場合、ステップS124に処理を進める。一方、プロセッサ81は、ルートを生成/編集する処理以外の処理を行う場合、ステップS132に処理を進める。
【0155】
ステップS124において、プロセッサ81は、新たなルートパーツを仮想空間に配置する初期配置を行うか否かを判定する。そして、プロセッサ81は、初期配置を行う場合、ステップS125に処理を進める。一方、プロセッサ81は、初期配置を行わない場合、ステップS126に処理を進める。
【0156】
ステップS125において、プロセッサ81は、初期配置処理を行い、ステップS128に処理を進める。以下、
図19を参照して、上記ステップS125において行われる初期配置処理について説明する。なお、配置手段は、ユーザの配置操作に応じて、少なくとも1つの接続方向を有するパーツを第1配置方向で仮想空間に配置する処理を行うものであり、一例としてステップS125の処理を行うプロセッサ81に相当する。
【0157】
図19において、プロセッサ81は、初期配置処理を行う対象となる処理対象パーツを設定し(ステップS141)、次のステップに処理を進める。例えば、プロセッサ81は、ユーザ操作によって初期配置するためにルートパーツ候補から選択されているルートパーツを処理対象パーツとして設定し、処理対象パーツデータDdを更新する。なお、プロセッサ81は、処理対象パーツの種別および初期設定方向の情報をルートパーツ候補データDdから抽出するとともに、仮想空間における処理対象パーツの位置については、操作データDaが示すユーザ操作内容に基づいて設定して、処理対象パーツデータDdを更新する。
【0158】
次に、プロセッサ81は、仮想空間における処理対象パーツの配置位置が決定される操作が行われたか否かを判定する(ステップS142)。例えば、プロセッサ81は、操作データDaを参照して、処理対象パーツを仮想空間におけるグリッド内に初期配置する操作が行われた場合、上記ステップS142において肯定判定する。そして、プロセッサ81は、配置位置が決定される操作が行われた場合、当該配置位置に初期設定方向で処理対象パーツを配置して当該配置に基づいてパーツ配置位置/配置方向データDeを更新し、ステップS143に処理を進める。一方、プロセッサ81は、配置位置が決定される操作が行われずにルートパーツを初期配置する操作が継続している場合、当該サブルーチンによる処理を終了する。
【0159】
ステップS143において、プロセッサ81は、配置位置が決定されたルートパーツに関して、例外ルール(
図16参照)が適用されるか否かを判定する。例えば、プロセッサ81は、配置ルールデータDhにおける例外ルールを参照して、配置位置が決定されて配置されたルートパーツが当該例外ルールに適用される場合、上記ステップS143において肯定判定する。そして、プロセッサ81は、配置位置が決定されたルートパーツに例外ルールが適用される場合、ステップS144に処理を進める。一方、プロセッサ81は、配置位置が決定されたルートパーツに例外ルールが適用されない場合、ステップS145に処理を進める。
【0160】
ステップS144において、プロセッサ81は、配置位置が決定されたルートパーツが適用される例外ルールに基づいて、当該ルートパーツの配置方向を変更して確定し、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、配置位置が決定されたルートパーツが適用される例外ルールおよびパーツ配置位置/配置方向データDeが示す当該ルートパーツの隣接パーツとの接続関係に基づいて、当該ルートパーツの配置方向を変更してパーツ配置位置/配置方向データDeを更新し、初期配置処理を終了する。なお、例外ルールを用いたルートパーツの配置方向の変更方法については、
図16を用いて説明されているため、ここでは詳細な説明を省略する。
【0161】
ステップS145において、プロセッサ81は、仮想空間データDcを参照して、上記ステップS142において決定された配置位置が仮想空間における「中央エリア」か否かを判定する。そして、プロセッサ81は、決定された配置位置が「中央エリア」でない場合、ステップS146に処理を進める。一方、プロセッサ81は、決定された配置位置が「中央エリア」である場合、ステップS147に処理を進める。
【0162】
ステップS146において、プロセッサ81は、配置位置が決定されたルートパーツにおける当該配置位置に基づいて当該ルートパーツの配置方向を変更し、ステップS147に処理を進める。例えば、プロセッサ81は、配置ルールデータDhにおける配置方向変更ルールに基づいて、決定された配置位置に応じて初期配置されたルートパーツの配置方向を変更し、変更後の配置方向を用いてパーツ配置位置/配置方向データDeを更新する。なお、配置方向変更ルールを用いたルートパーツの配置方向の変更方法については、
図10および
図11を用いて説明されているため、ここでは詳細な説明を省略する。
【0163】
ステップS147において、プロセッサ81は、パーツ配置位置/配置方向データDeを参照して、配置位置が決定されたルートパーツに隣接するルートパーツがあるか否かを判定する。そして、プロセッサ81は、配置位置が決定されたルートパーツに隣接するルートパーツがある場合、ステップS148に処理を進める。一方、プロセッサ81は、配置位置が決定されたルートパーツに隣接するルートパーツがない場合、ステップS149に処理を進める。
【0164】
ステップS148において、プロセッサ81は、配置位置が決定されたルートパーツに隣接するルートパーツに接続ルートが設定されているか否かを判定する。例えば、プロセッサ81は、パーツ配置位置/配置方向データDeを参照して、配置位置が決定されたルートパーツに隣接するルートパーツにおいて設定されている接続方向を抽出し、配置位置が決定されたルートパーツと接する辺に当該接続方向が設定されている場合に、上記ステップS148において肯定判定する。そして、プロセッサ81は、隣接するルートパーツに接続ルートが設定されていない場合、ステップS149に処理を進める。一方、プロセッサ81は、隣接するルートパーツに接続ルートが設定されている場合、ステップS150に処理を進める。
【0165】
ステップS149において、プロセッサ81は、配置位置が決定されたルートパーツの配置方向を現在設定されている方向に確定し、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、パーツ配置位置/配置方向データDeに設定されている配置位置が決定されたルートパーツの配置方向を、現在設定されている方向として配置方向を確定し、初期配置処理を終了する。
【0166】
ステップS150において、プロセッサ81は、パーツ配置位置/配置方向データDeを参照して、配置位置が決定されたルートパーツを当該配置位置で回転させることによって上記隣接するルートパーツとの間で連結可能なルートの数が最大となる配置方向が複数あるか否かを判定する。そして、プロセッサ81は、連結可能なルートの数が最大となる配置方向が複数ある場合、ステップS151に処理を進める。一方、プロセッサ81は、連結可能なルートの数が最大となる配置方向が1つである場合、ステップS152に処理を進める。
【0167】
ステップS151において、プロセッサ81は、連結可能なルートの数が最大となる複数の配置方向候補のうち、配置位置が決定されたルートパーツに設定されている配置方向から所定の方向(例えば、時計回り)に当該ルートパーツを回転させて最初に到達する配置方向候補を配置方向として確定し、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、配置方向候補から選択されたルートパーツの配置方向を用いて、配置位置が決定されたルートパーツのパーツ配置位置/配置方向データDeを更新して確定し、初期配置処理を終了する。なお、隣接パーツとの接続関係に基づいて、初期配置するルートパーツの配置方向を変更する方法については、
図12を用いて説明されているため、ここでは詳細な説明を省略する。
【0168】
ステップS152において、プロセッサ81は、連結可能なルートが最大となる配置方向を初期配置するルートパーツの配置方向として確定し、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、連結可能なルートが最大となる配置方向を用いて、配置位置が決定されたルートパーツのパーツ配置位置/配置方向データDeを更新して確定し、初期配置処理を終了する。なお、隣接パーツとの接続関係に基づいて、初期配置するルートパーツの配置方向を変更する方法については、
図12を用いて説明されているため、ここでは詳細な説明を省略する。
【0169】
図18に戻り、上記ステップS124において初期配置を行わないと判定した場合、プロセッサ81は、仮想空間において配置済みのルートパーツの移動(ルートパーツの再配置)を行うか否かを判定する。そして、プロセッサ81は、ルートパーツの移動を行う場合、ステップS127に処理を進める。一方、プロセッサ81は、ルートパーツの移動を行わない場合、ステップS129に処理を進める。
【0170】
ステップS127において、プロセッサ81は、パーツ移動処理を行い、ステップS128に処理を進める。以下、
図20を参照して、上記ステップS127において行われるパーツ移動処理について説明する。なお、パーツ移動手段は、配置手段により仮想空間に配置されたパーツの少なくとも1つを、ユーザのパーツ移動操作に応じて当該仮想空間の別の位置に移動して配置する処理を行うものであり、一例としてステップS127の処理を行うプロセッサ81に相当する。
【0171】
図20において、プロセッサ81は、パーツ移動処理を行う対象となる処理対象パーツを設定し(ステップS161)、次のステップに処理を進める。例えば、プロセッサ81は、ユーザ操作によって移動させて再配置するために選択されている配置済みのルートパーツを処理対象パーツとして設定し、処理対象パーツデータDdを更新する。なお、プロセッサ81は、処理対象パーツの種別および再配置前の配置方向の情報をパーツ配置位置/配置方向データDeを用いて設定するとともに、仮想空間における処理対象パーツの位置については、操作データDaが示すユーザ操作内容に基づいて設定して、処理対象パーツデータDdを更新する。なお、処理対象パーツの再配置前の配置方向は、パーツ配置位置/配置方向データDeに基づいて、処理対象パーツを移動させる前に確定されていた配置方向となる。
【0172】
次に、プロセッサ81は、仮想空間における処理対象パーツの再配置位置が決定される操作が行われたか否かを判定する(ステップS162)。例えば、プロセッサ81は、操作データDaを参照して、処理対象パーツを仮想空間におけるグリッド内に再配置する操作が行われた場合、上記ステップS162において肯定判定する。そして、プロセッサ81は、再配置位置が決定される操作が行われた場合、当該再配置位置に移動前に確定されていた配置方向で処理対象パーツを配置して当該再配置に基づいてパーツ配置位置/配置方向データDeを更新し、ステップS163に処理を進める。一方、プロセッサ81は、再配置位置が決定される操作が行われずにルートパーツを移動させる操作が継続している場合、当該サブルーチンによる処理を終了する。
【0173】
ステップS163において、プロセッサ81は、再配置位置が決定されたルートパーツに関して、例外ルール(
図16参照)が適用されるか否かを判定する。例えば、プロセッサ81は、配置ルールデータDhにおける例外ルールを参照して、再配置位置が決定されて再配置されたルートパーツが当該例外ルールに適用される場合、上記ステップS163において肯定判定する。そして、プロセッサ81は、再配置位置が決定されたルートパーツに例外ルールが適用される場合、ステップS164に処理を進める。一方、プロセッサ81は、再配置位置が決定されたルートパーツに例外ルールが適用されない場合、ステップS167に処理を進める。
【0174】
ステップS164において、プロセッサ81は、再配置位置が決定されたルートパーツが適用される例外ルールに基づいて、当該ルートパーツの配置方向を変更して確定し、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、再配置位置が決定されたルートパーツが適用される例外ルールおよびパーツ配置位置/配置方向データDeが示す当該ルートパーツの隣接パーツとの接続関係に基づいて、当該ルートパーツの配置方向を変更してパーツ配置位置/配置方向データDeを更新し、パーツ移動処理を終了する。なお、例外ルールを用いたルートパーツの配置方向の変更方法については、
図16を用いて説明されているため、ここでは詳細な説明を省略する。
【0175】
ステップS167において、プロセッサ81は、パーツ配置位置/配置方向データDeを参照して、再配置位置が決定されたルートパーツに隣接するルートパーツがあるか否かを判定する。そして、プロセッサ81は、再配置位置が決定されたルートパーツに隣接するルートパーツがある場合、ステップS168に処理を進める。一方、プロセッサ81は、再配置位置が決定されたルートパーツに隣接するルートパーツがない場合、ステップS169に処理を進める。
【0176】
ステップS168において、プロセッサ81は、再配置位置が決定されたルートパーツに隣接するルートパーツに接続ルートが設定されているか否かを判定する。例えば、プロセッサ81は、パーツ配置位置/配置方向データDeを参照して、再配置位置が決定されたルートパーツに隣接するルートパーツにおいて設定されている接続方向を抽出し、再配置位置が決定されたルートパーツと接する辺に当該接続方向が設定されている場合に、上記ステップS168において肯定判定する。そして、プロセッサ81は、隣接するルートパーツに接続ルートが設定されていない場合、ステップS169に処理を進める。一方、プロセッサ81は、隣接するルートパーツに接続ルートが設定されている場合、ステップS170に処理を進める。
【0177】
ステップS169において、プロセッサ81は、再配置位置が決定されたルートパーツの配置方向を現在設定されている方向に確定し、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、パーツ配置位置/配置方向データDeに設定されている再配置位置が決定されたルートパーツの配置方向を、現在設定されている方向として配置方向を確定し、パーツ移動処理を終了する。
【0178】
ステップS170において、プロセッサ81は、パーツ配置位置/配置方向データDeを参照して、再配置位置が決定されたルートパーツを当該再配置位置で回転させることによって上記隣接するルートパーツとの間で連結可能なルートの数が最大となる配置方向が複数あるか否かを判定する。そして、プロセッサ81は、連結可能なルートの数が最大となる配置方向が複数ある場合、ステップS171に処理を進める。一方、プロセッサ81は、連結可能なルートの数が最大となる配置方向が1つである場合、ステップS172に処理を進める。
【0179】
ステップS171において、プロセッサ81は、連結可能なルートの数が最大となる複数の配置方向候補のうち、再配置位置が決定されたルートパーツに設定されている配置方向から所定の方向(例えば、時計回り)に当該ルートパーツを回転させて最初に到達する配置方向候補を配置方向として確定し、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、配置方向候補から選択されたルートパーツの配置方向を用いて、再配置位置が決定されたルートパーツのパーツ配置位置/配置方向データDeを更新して確定し、パーツ移動処理を終了する。なお、隣接パーツとの接続関係に基づいて、再配置するルートパーツの配置方向を変更する方法については、
図12を用いて説明されているため、ここでは詳細な説明を省略する。
【0180】
ステップS172において、プロセッサ81は、連結可能なルートが最大となる配置方向を再配置するルートパーツの配置方向として確定し、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、連結可能なルートが最大となる配置方向を用いて、再配置位置が決定されたルートパーツのパーツ配置位置/配置方向データDeを更新して確定し、パーツ移動処理を終了する。なお、隣接パーツとの接続関係に基づいて、再配置するルートパーツの配置方向を変更する方法については、
図12を用いて説明されているため、ここでは詳細な説明を省略する。
【0181】
図19に戻り、ステップS128において、プロセッサ81は、表示態様を設定する処理を行い、ステップS129に処理を進める。例えば、プロセッサ81は、パーツ配置位置/配置方向データDeに基づいて、新たに初期配置されたルートパーツおよび配置位置が変更されたルートパーツに関連して、仮想空間に形成されたルートの変更がある場合、当該変更に応じてルートの表示態様を変更したマップ画像を生成する。例えば、プロセッサ81は、仮想空間のルートパーツに変更(初期配置、再配置、削除等)があった場合、当該ルートパーツに描写されたルートに応じて、仮想空間に形成されているルートを変更する。一例として、プロセッサ81は、ルートパーツ間において新たに連結されたルートが生成されたり、ルート連結状態が解消されたりした場合、当該ルートパーツに描写されているそれぞれのルートの連結状態を示す表示態様に変更するとともに、ポイントパーツデータDgが示す各ポイントパーツの位置に基づいて当該ルートの種別(移動可能ルートまたは移動不可能ルート)に応じた表示態様を設定して仮想空間におけるマップ画像を生成する。このようにルートパーツ間において新たに連結されたルートが生成された場合、当該ルートパーツ間においてプレイヤオブジェクトが移動可能となるゲーム上の作用が実行可能となり、ルートパーツ間においてルート連結状態にない場合、当該ルートパーツ間においてプレイヤオブジェクトが移動できないため当該ゲーム上の作用が実行できない状態となる。なお、接続判定手段は、仮想空間に配置されたパーツである第1パーツおよび第2パーツが互いに隣接する場合、当該第2パーツに対して当該第1パーツが隣接する方向、当該第1パーツが有する接続方向、および当該第2パーツが有する接続方向から少なくともなる組み合わせに基づいて、当該第1パーツと当該第2パーツとが接続されているか否かを判定する処理を行うものであり、一例としてステップS128の処理を行うプロセッサ81に相当する。
【0182】
ステップS129において、プロセッサ81は、仮想空間に形成されているゲームワールドのルートが確定したか否かを判定する。例えば、プロセッサ81は、操作データDaを参照して、ユーザがルートを生成/編集する処理を終了してルートを確定する操作を行った場合、上記ステップS129において肯定判定する。そして、プロセッサ81は、ルートが確定された場合、ステップS130に処理を進める。一方、プロセッサ81は、ルートが確定していない場合、ステップS131に処理を進める。
【0183】
ステップS130において、プロセッサ81は、ルート確定処理を行い、ステップS133に処理を進める。例えば、プロセッサ81は、パーツ配置位置/配置方向データDeおよびルートデータDfに基づいて、現時点で仮想空間に形成されているゲームワールドのルートを、プレイヤオブジェクトを移動させるゲームに用いるルートとして確定する処理を行う。一例として、プロセッサ81は、現時点で仮想空間に形成されているゲームワールドのルートのうち、移動不可能ルートを削除することによって、移動可能ルート、すなわち開通ルートのみ仮想空間に残す処理を行って、プレイヤオブジェクトがスタートポイントからゴールポイントまで移動可能なルートが描写されたマップ画像を生成する。
【0184】
ステップS131において、プロセッサ81は、ユーザ操作に応じて、ルートを生成/編集する処理におけるその他の処理を行い、ステップS133に処理を進める。第1の例として、上記その他の処理としては、ユーザ操作に応じて、配置済みのルートパーツの配置方向を変更して、パーツ配置位置/配置方向データDeを更新する処理がある。第2の例として、上記その他の処理としては、ユーザ操作に応じて、ポイントパーツをルート上に配置してポイントパーツデータDgを更新する処理がある。第3の例として、上記その他の処理としては、ルートパーツの配置状況に基づいて、配置済みの特定のルートパーツの配置方向を変更して、パーツ配置位置/配置方向データDeを更新する処理等がある。なお、特定のルートパーツの配置方向を変更する方法については、
図13を用いて説明されているため、ここでは詳細な説明を省略する。なお、回転手段は、第1配置方向で仮想空間に配置されたパーツを、ユーザの回転操作に応じて、第2配置方向で配置されるように変更する処理を行うものであり、一例としてステップS131の処理を行うプロセッサ81に相当する。
【0185】
ステップS132において、プロセッサ81は、その他のゲーム処理を行い、ステップS133に処理を進める。ここで、上記ステップS132において行われるその他のゲーム処理とは、ルート生成/編集処理以外のゲーム処理を示しており、確定したルートを用いてプレイヤオブジェクトをユーザのオブジェクト移動操作に応じて移動させるゲーム処理や、上述したルートが生成されるゲームワールドとは異なるゲーム空間を生成/編集する処理等が考えられる。なお、作用実行手段は、第1パーツと第2パーツとが接続されていると判定された場合、当該第1パーツと当該第2パーツにおいて、当該第1パーツと当該第2パーツとが接続されていないと判定された場合と比べて異なるゲーム上の作用を実行する処理を行うものであり、一例としてステップS132の処理を行うプロセッサ81に相当する。また、オブジェクト移動手段は、少なくとも配置操作により配置されたパーツの内部において、仮想空間に配置された移動オブジェクトをユーザのオブジェクト移動操作に応じて移動させる処理を行うものであり、一例としてステップS132の処理を行うプロセッサ81に相当する。
【0186】
ステップS133において、プロセッサ81は、表示制御処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、仮想空間においてルートを生成/編集中である場合、仮想空間データDc、パーツ配置位置/配置方向データDe、ルートデータDf、ポイントパーツデータDg、および画像データDiに基づいて、仮想空間に配置されたルートパーツやポイントパーツ等を設定された表示態様を用いて表示する制御を行うとともに、処理対象パーツデータDdに基づいて、移動中のルートパーツを仮想空間に配置して表示する制御を行う。また、プロセッサ81は、ルート確定後である場合、確定されたルートが描写されたゲームワールドにプレイヤオブジェクトが配置された仮想空間等を表示する制御を行う。なお、ルート画像生成手段は、移動可能ルートを有するパーツが配置されている場合、少なくとも当該移動可能ルートを表すマップ画像を、表示画面に表示するために生成する処理を行うものであり、一例としてステップS128およびステップS127の処理を行うプロセッサ81に相当する。
【0187】
次に、プロセッサ81は、ゲーム処理を終了するか否かを判定する(ステップS134)。上記ステップS134においてゲーム処理を終了する条件としては、例えば、ゲーム処理が終了される条件が満たされたことや、ユーザがゲーム処理を終了する操作を行ったこと等がある。プロセッサ81は、ゲーム処理を終了しない場合に上記ステップS122に戻って処理を繰り返し、ゲーム処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップS122~ステップS134の一連の処理は、ステップS134で処理を終了すると判定されるまで繰り返し実行される。
【0188】
このように、本実施例においては、ユーザ操作に応じて、仮想空間にルートパーツを配置する際、移動不可能ルートとならないように自動的に配置方向が変更されるため、当該ルートパーツの配置に必要なユーザの操作回数や操作量を減らすことができる。
【0189】
なお、上述した実施例におけるコース上に、スタートポイントやゴールポイントを2つ以上設定可能であってもよく、仮想空間上に複数の開通ルートが設定されてもよい。また、上述した実施例では、プレイヤオブジェクトが移動可能なコースを仮想空間に設定する例を用いたが、複数のパーツが接続されている場合に、複数のパーツが接続されていない場合と比較して異なるゲーム上の作用が実行される態様であれば他のものであってもよい。例えば、パイプの一部が描写されたパーツを複数配置することによって完成されたパイプラインに水が流れるような態様、導電体(例えば、電線)の一部が描写されたパーツを複数配置することによって完成された導電体ラインに電気が流れる(通電部が光る)ような態様等、他の態様であってもかまわない。
【0190】
また、上述した実施例では、複数の正方形グリッドに正方形のパーツを配置する例を用いたが、グリッドおよびパーツの形状は他の正多角形形状でもよい。例えば、複数の正三角形グリッドに配置可能な正三角形のパーツを配置してもよいし、複数の正六角形グリッドに配置可能な正六角形のパーツを配置してもよい。
【0191】
また、ゲームシステム1は、どのような装置であってもよく、携帯型のゲーム装置、任意の携帯型電子機器(PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ、タブレット等)等であってもよい。この場合、オブジェクトを移動する操作を行うための入力装置は、左コントローラ3や右コントローラ4でなくてもよく、別のコントローラ、マウス、タッチパッド、タッチパネル、トラックボール、キーボード、十字キー、スライドパッド等であってもよい。
【0192】
また、上述した説明では情報処理をゲームシステム1でそれぞれ行う例を用いたが、上記処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲームシステム1がさらに他の装置(例えば、別のサーバ、他の画像表示装置、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、ゲームシステム1のプロセッサ81が所定のプログラムを実行することによって情報処理を行うことが可能であるが、ゲームシステム1が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0193】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【0194】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【0195】
また、上記プログラムは、外部メモリ等の外部記憶媒体を通じてゲームシステム1に供給されるだけでなく、有線または無線の通信回線を通じて当該装置に供給されてもよい。また、上記プログラムは、当該装置内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD-ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0196】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0197】
以上のように、本発明は、仮想空間にパーツを配置する操作を容易にすること等を可能とする情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法等として利用することができる。
【符号の説明】
【0198】
1…情報処理システム
2…本体装置
3…左コントローラ
4…右コントローラ
11…ハウジング
12…ディスプレイ
13…タッチパネル
32、52…アナログスティック
42、64…端子
81…プロセッサ
82…ネットワーク通信部
83…コントローラ通信部
85…DRAM
101、111…通信制御部