図1を参照して、本発明の一実施例に係る情報処理システムについて説明する。図1に示すように、当該情報処理システムの一例である情報処理システム1は、情報処理装置3およびサーバ200が、ネットワーク100を介して接続されて構築される。なお、図1においては、情報処理装置3が複数台図示されているが、情報処理システム1を構成する情報処理装置3は、1台であってもよい。
情報処理装置3は、無線または有線通信を用いて、ネットワーク100に接続可能に構成され、サーバ200との間でクライアント-サーバシステムを構成している。例えば、情報処理装置3は、所定のアプリケーション(例えば、ゲームアプリケーション)の実行が可能である。また、情報処理装置3は、上記所定のアプリケーションを実行することによって、ネットワーク100を介して、サーバ200と接続を確立して、サーバ200との通信が可能となる。例えば、情報処理装置3は、交換可能なメモリカードや光ディスク等の記憶媒体内に記憶され、または、他の装置から受信した情報処理プログラムを実行可能である。情報処理装置3は、一般的なパーソナルコンピュータ、据置型ゲーム機、携帯電話機、携帯ゲーム機、PDA(Personal Digital Assistant)等のデバイスであってもかまわない。
次に、図2を参照して、情報処理装置3について説明する。なお、図2は、情報処理装置3の構成の一例を示すブロック図である。図2において、情報処理装置3は、制御部31、記憶部32、プログラム格納部33、入力部34、表示部35、通信部36、および慣性センサ37を備える。なお、情報処理装置3は、制御部31を少なくとも含む情報処理装置と他の装置とを含む1以上の装置によって構成されてもよい。
制御部31は、各種の情報処理を実行するための情報処理手段(コンピュータ)であり、例えばCPUである。例えば、制御部31は、各種の情報処理として、上記アプリケーションを実行して、後述するゲーム処理やサーバ200を介したデータ送受信処理等を実行する機能を有し、CPUが所定のプログラムを実行することによって、制御部31における各機能が実現される。
記憶部32は、制御部31が上記情報処理を実行する際に用いる各種のデータを記憶する。記憶部32は、例えばCPU(制御部31)がアクセス可能なメモリである。
プログラム格納部33は、プログラムを記憶(格納)する。プログラム格納部33は、制御部31がアクセス可能な記憶装置(記憶媒体)であればどのようなものであってもよい。例えば、プログラム格納部33は、制御部31を含む情報処理装置内に設けられる記憶装置であってもよいし、制御部31を含む情報処理装置に着脱自在に装着される記憶媒体であってもよい。また、プログラム格納部33は、制御部31とネットワークを介して接続される記憶装置(サーバ等)であってもよい。制御部31(CPU)は、ゲームプログラムの一部または全部を適宜のタイミングで記憶部32に読み出し、読み出されたプログラムを実行するようにしてもよい。
入力部34は、ユーザによって操作可能な入力装置である。入力部34はどのような入力装置であってもよい。一例として、入力部34は、表示部35の画面上に設けられるタッチパネルでもよい。例えば、タッチパネルは、任意の種類のものであってよく、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものやシングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。なお、入力部34が、タッチ入力装置の一例に相当する。
表示部35は、制御部31の指示にしたがって画像を表示する。なお、情報処理装置3が据置型のゲーム装置やパーソナルコンピュータで構成される場合、表示部35が情報処理装置3と別体で構成されることもあり得る。本実施例においては、表示部35は、その表面にタッチパネル(入力部34)が設けられたタッチスクリーンで構成され、第1辺が第2辺より長い矩形の表示領域およびタッチ領域を有している。
通信部36は、所定の通信モジュールによって構成され、ネットワーク100を介して他の機器(例えば、サーバ200)との間でデータを送受信したり、他の情報処理装置3との間でデータを送受信したりする。
慣性センサ37は、一例として加速度センサおよび/または角速度センサによって構成される。例えば、加速度センサは、情報処理装置3(表示部35)における互いに直交する3軸方向に沿った加速度の大きさを検出する。なお、加速度センサは、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。また、角速度センサは、上記3軸回りの角速度を検出する。なお、角速度センサは、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。慣性センサ37は、制御部31に接続され、加速度センサおよび/または角速度センサの検出結果が制御部31へ出力される。制御部31は、上記の慣性センサ37の検出結果に基づいて、情報処理装置3(表示部35)の動きおよび/または姿勢に関する情報を算出することが可能であり、一例として実空間における重力方向に対する情報処理装置3(表示部35)の姿勢を算出することが可能である。
次に、図3を参照して、サーバ200について説明する。なお、図3は、サーバ200の構成の一例を示すブロック図である。
サーバ200は、通信部201、制御部202、および記憶部203を有している。通信部201は、通信パケットの送受信を行うことで、ネットワーク100を介して情報処理装置3等と通信を行う。一例として、制御部202は、情報処理装置3との間で行われるゲーム進行の管理、ユーザが購入するゲーム内通貨、ゲームアイテム(例えば、コイン)、ゲームオブジェクト(例えば、ゲーム内で使用される装備)等を管理する処理、スロット抽選に当選する確率を管理する処理、課金に関する情報を管理する処理のほか、通信部201を介して情報処理装置3等との通信リンクを確立し、ネットワーク100におけるデータ搬送制御や経路選択を行う。また、制御部202は、複数の情報処理装置3との間でゲームを行う場合、当該ゲームを行う情報処理装置3の組み合わせや当該情報処理装置3の間のデータ通信の管理を行う。記憶部203は、制御部202で実行されるプログラム、上記処理に必要な各種データ、情報処理装置3との通信に必要な各種データ等が記憶される。なお、ネットワーク100を用いたデータ送受信に所定のログイン処理が必要なシステムである場合、当該ログインしようとしているユーザが正規のユーザか否かを判別する認証処理をサーバ200において行ってもかまわない。また、サーバ200は、単一のサーバマシンから構成されてもいいし、複数のサーバマシンによって構成されてもよい。
次に、情報処理装置3やサーバ200が行う具体的な処理を説明する前に、図4~図8を用いて情報処理システム1において行われる移動および発射処理例の概要について説明する。移動および発射処理例は、情報処理システム1を用いて、プレイヤオブジェクトPO(移動オブジェクト)の移動方向の操作およびアイテムI(他のオブジェクト)の発射操作を行うための処理である。なお、図4は、情報処理装置3の表示部35に表示されるゲーム画像例を示す図である。図5は、情報処理装置3の表示部35に表示されるゲーム画像例を示す図である。図6は、表示画面を基準として、プレイヤオブジェクトPOの移動方向を制御する一例を示す図である。図7は、表示画面を基準として、アイテムIの発射動作を制御する一例を示す図である。図8は、表示画面を基準として、アイテムIに対する発射操作を判定するための判定領域の一例を説明するための図である。なお、以下の説明では、情報処理装置3において実行するアプリケーションの一例としてゲームを用いているが、情報処理装置3において他のアプリケーションを実行してもかまわない。
本実施例では、第1モードおよび第2モードを含む複数の操作モードが用意されている。具体的には、第1モードは、表示する画像の上下方向が表示部35の第1辺の方向(長軸方向)に平行な方向となり、表示部35の第2辺方向(短軸方向)が実空間における水平に近い方向となるようにユーザが表示部35を把持して操作(例えば、片手で表示部35を把持して操作する態様であり、この表示部35の把持態様を「縦持ち(図4参照)」と記載する)する縦持ち操作モードである。また、第2モードは、表示する画像の上下方向が表示部35の第2辺の方向(短軸方向)に平行な方向となり、表示部35の第1辺方向(長軸方向)が実空間における水平に近い方向となるようにユーザが表示部35を把持して操作(例えば、両手で表示部35を把持して操作する態様であり、この表示部35の把持態様を「横持ち(図14参照)」と記載する)する横持ち操作モードである。図4~図9を用いた説明においては、第1モードによる縦持ち操作例を用いて、上記移動および発射処理例の概要を説明する。
図4において、縦持ちされた情報処理装置3の表示部35には、情報処理装置3でプレイされているゲームに対応したゲーム画像が表示され、その一例としてプレイヤオブジェクトPOがレースゲームを行う一場面が表示されている。例えば、上記ゲームにおいて、プレイヤオブジェクトPOは、仮想世界内に設けられたコース上をカートに乗車して走行する。当該コース上には、別のカートに乗車する敵オブジェクトEOも走行しており、当該コース上に設けられたゴールに到着するまでの順位が競われる。また、ゲーム画像を生成するための仮想カメラは、プレイヤオブジェクトPOの走行に応じてプレイヤオブジェクトPOの後方にコースに沿って配置される。なお、上記仮想カメラは、プレイヤオブジェクトPOがスピンしたりドリフトしたりするなど、コースの走行方向に対して異なる方向を向いた場合、当該プレイヤオブジェクトPOの後方からプレイヤオブジェクトPOを見る位置に常時配置されてもよいし、コースに沿った走行方向の後方からプレイヤオブジェクトPOを見る位置に配置されてもよい。
図4に示すように、縦持ちされた表示部35の画面上に設けられたタッチパネル(入力部34)をタッチ操作することによって、プレイヤオブジェクトPOの移動方向を制御することができる。一例として、プレイヤオブジェクトPOは、コースに沿って自動的に前進走行するように制御されているが、プレイヤオブジェクトPOの左右の移動方向に関してはユーザ操作によってハンドル操作が可能に構成されている。具体的には、縦持ちされた表示部35のタッチパネルにタッチオンしたタッチ位置を基準として、右方向にスワイプするタッチ操作が行われた場合、プレイヤオブジェクトPOが右に移動方向を変化させる。また、縦持ちされた表示部35のタッチパネルにタッチオンしたタッチ位置を基準として、左方向にスワイプするタッチ操作が行われた場合、プレイヤオブジェクトPOが左に移動方向を変化させる。例えば、図4において、設定されている基準座標(例えば、タッチパネルにタッチオンしたタッチ位置)を示す基準位置Rと現在のタッチ位置を示すタッチ位置Tとが図示されており(実際には、基準位置および現在のタッチ位置を示す画像は表示部35に表示されないが、図4および図5では基準位置を示す基準位置Rおよびタッチ位置を示すタッチ位置Tをそれぞれ破線で便宜上図示している)、基準位置Rに対してタッチ位置Tが右方向に配置されているため、プレイヤオブジェクトPOが右に移動方向(図示a方向)を変化させている。なお、プレイヤオブジェクトPOは、コースに沿って自動的に前進走行するように制御されなくてもよく、ユーザのアクセル操作に応じて走行するものであってもよい。また、プレイヤオブジェクトPOは、コースに沿って自動的に左右にハンドル操作されるものであってもよい。例えば、コースが右に曲がっていれば、ユーザがハンドル操作しない場合であっても、プレイヤオブジェクトPOの移動方向がある程度は右に変化し、右ハンドル操作があった場合にさらにプレイヤオブジェクトPOの移動方向が右に変化するようなものであってもよい。なお、プレイヤオブジェクトPOの移動方向の制御が、第1制御の一例に相当する。
また、表示部35には、プレイヤオブジェクトPOの移動に関連する制御を指示するための態様切替ボタンIBが表示されている。ここで、態様切替ボタンIBは、上記スワイプするタッチ操作に対応するプレイヤオブジェクトPOの移動(走行)態様を選択するためのタッチ領域を示す画像である。具体的には、図4に示す態様切替ボタンIBは、表示部35を縦持ちした場合の表示画面下部中央付近に表示されることによって、タッチ操作に用いられる円形領域を当該位置に示し、選択可能な走行態様(図4の例では「ドリフト」)が当該円形領域内部に記述されている。そして、態様切替ボタンIBが示す円形領域内部でタッチオンしてスワイプする操作が行われた場合、当該態様切替ボタンIBが指定する走行態様によってプレイヤオブジェクトPOが当該スワイプされた方向に移動方向を変化させる(図4の例では、プレイヤオブジェクトPOがドリフト走行しながら移動方向を変化させる)。また、態様切替ボタンIBが示す円形領域外部でタッチオンしてスワイプする操作が行われた場合、通常の走行態様(図4の例では「ハンドル」操作による走行態様)によってプレイヤオブジェクトPOが当該スワイプされた方向に移動方向を変化させる。なお、態様切替ボタンIBを用いて指定可能な走行態様は、ユーザ操作に応じて予め指定可能であってもよい。一例として、ユーザ操作によって態様切替ボタンIBを用いて「ハンドル」操作による走行態様が設定された場合、態様切替ボタンIBが示す円形領域内部でタッチオンしてスワイプする操作が行われた場合に「ハンドル」操作による走行態様によってプレイヤオブジェクトPOが移動方向を変化させ、態様切替ボタンIBが示す円形領域外部でタッチオンしてスワイプする操作が行われた場合にドリフト走行しながらプレイヤオブジェクトPOが移動方向を変化させてもよい。また、異なる走行態様をそれぞれ示す複数の態様切替ボタンIBが表示部35に表示されてもよい。
また、縦持ちされた表示部35のタッチパネルをタッチ操作することによって、プレイヤオブジェクトPOが所持しているアイテムIを発射する動作を制御することができる。例えば、縦持ちされた表示部35の表示画面上部には、プレイヤオブジェクトPOが所持しているアイテムIを示す複数の所持枠HFが設けられている。図4に示す所持枠HFの例では、3つのアイテムI1、I2、およびI3をそれぞれ所持することが可能である。また、プレイヤオブジェクトPOが所持している所持枠HF内のアイテムIのうち、1つのアイテムIがプレイヤオブジェクトPOのカート後方に設けられている使用準備位置に、使用準備アイテムIPとして表示されている。例えば、使用準備アイテムIPは、所持枠HF内のアイテムIのうち、最も早くに取得したアイテムIが選択され、図4の例では、左端の所持枠HFに表示されているバナナのアイテムI1が、使用準備アイテムIPとして上記使用準備位置に表示されている。なお、アイテムIを発射する動作の制御が、第2制御の一例に相当する。
図5において、縦持ちされた表示部35のタッチパネルに対して上方向にスワイプするタッチ操作が行われると、プレイヤオブジェクトPOの使用準備位置に配置されている使用準備アイテムIPが発射可能な種類である場合、発射アイテムIMとなってプレイヤオブジェクトPOの前方に発射される。なお、典型的には、使用準備アイテムIPと発射アイテムIMとは同じオブジェクトであるが、異なる態様のオブジェクトに変化してもかまわない。また、使用準備位置に配置されている使用準備アイテムIPの種類(例えば、バナナのアイテム)によって、縦持ちされた表示部35のタッチパネルに対して下方向にスワイプするタッチ操作が行われた場合、プレイヤオブジェクトPOの後方に発射アイテムIMとして発射することもできる。なお、プレイヤオブジェクトPOの使用準備位置に配置されている使用準備アイテムIPの発射方向が固定されている場合、縦持ちされた表示部35のタッチパネルに対して上方向および下方向の何れの方向にスワイプするタッチ操作が行われたとしても、当該固定された発射方向に発射アイテムIMとなって発射されてもかまわない。また、使用準備位置に配置されている使用準備アイテムIPがプレイヤオブジェクトPOから発射されずにプレイヤオブジェクトPO自体によって使用される種類である場合、縦持ちされた表示部35のタッチパネルに対して上方向または下方向にスワイプするタッチ操作が行われると、プレイヤオブジェクトPOの使用準備位置に配置されている使用準備アイテムIPがプレイヤオブジェクトPOによって使用される。なお、所持枠HFは、仮想空間内に配置されてもよいし、表示画面にオーバーレイして配置されてもよい。
プレイヤオブジェクトPOが発射アイテムIMを発射した場合、当該発射アイテムIMの種類に応じて、プレイヤオブジェクトPOがレースを進める上で有利となる効果を得ることができる。例えば、甲羅を示す発射アイテムIMが敵オブジェクトEOに衝突した場合、当該衝撃によって敵オブジェクトEOの走行を減速させたり停止させたりすることによる妨害を行うとともに、衝突状況に応じて敵オブジェクトEOが損傷することがある。また、バナナを示す発射アイテムIMが敵オブジェクトEOに衝突した場合、敵オブジェクトEOが路上で滑るような影響が与えられて、敵オブジェクトEOの走行を減速させたり停止させたりする。なお、上記甲羅を示す発射アイテムIMおよびバナナを示す発射アイテムIMが、衝突したオブジェクトを減速または停止させる攻撃アイテムの一例に相当する。
また、使用準備アイテムIPを使用することによって、プレイヤオブジェクトPO自体の能力が一定期間上昇する場合もある。例えば、キノコを示す使用準備アイテムIPが使用された場合、プレイヤオブジェクトPOの速度が一定期間上昇する。なお、使用準備アイテムIPを使用することによって、プレイヤオブジェクトPO自体のサイズが一定期間大きくなったり、プレイヤオブジェクトPOが所有するゲーム内コインが増えたりする効果が得られてもよい。
アイテムIを使用した場合、当該アイテムIがプレイヤオブジェクトPOにおいて未所持状態となるため、使用準備位置に表示されていた使用準備アイテムIPが消去されるとともに、当該使用準備アイテムIPに対応する所持枠HFのアイテムI(図5の例では、左端の所持枠HFに表示されていたアイテムI1)も消去される。これによって、発射アイテムIMとして発射されたアイテムIを表示していた所持枠HFは、アイテムIが表示されていない空枠Eとなる。例えば、上記ゲームにおいて、プレイヤオブジェクトPOは、仮想世界内に設けられたコース上をカートに乗車して走行しており、当該コース上に設置されたアイテムボックスIBを通過して開封することによって、新たなアイテムIを取得することができる。なお、プレイヤオブジェクトPOは、空枠Eの所持枠HFがある場合に限って、新たなアイテムIを取得することができる。
上述したように、情報処理システム1において行われる第1モードの移動および発射処理例では、縦持ちされた表示部35のタッチパネルに対するスワイプ入力が左右方向である場合にプレイヤオブジェクトPOの移動方向を変化させ、タッチパネルに対するスワイプ入力が上下方向である場合にアイテムIの発射動作を制御している。以下、図6および図7を参照して、スワイプ入力の方向を判別する一例について説明する。
図6において、プレイヤオブジェクトPOの左右の移動方向は、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における表示画面の左右方向成分の大きさに応じて設定される。具体的には、タッチパネルに対するタッチ操作において、当該タッチパネルに対してタッチオンされた基準座標R0と、当該タッチオンから継続して行われているスワイプ操作における現タッチ位置座標Tとを、表示部35の表示画面座標系に基づいてそれぞれ設定する。例えば、図6に示すように、縦持ちされ表示部35の表示画面には、表示画面の左右方向(短軸方向)となる第1軸をX軸(右方向がX軸正方向)とし、表示画面の上下方向(長軸方向)となる当該第1軸と直交する第2軸をY軸(上方向がY軸正方向)とする表示画面座標系が定義される。このとき、基準座標がR0(X0、Y0)として設定され、現タッチ位置座標TがT(Xt、Yt)として設定される。この場合、スワイプ入力における表示画面の左右方向成分(X軸方向成分)の大きさがXt-X0で算出され、スワイプ入力における表示画面の上下方向成分(Y軸方向成分)の大きさがYt-Y0で算出される。本実施例では、X軸方向成分Xt-X0が正の値である場合、Xt-X0の絶対値に応じたハンドル角度で右方向にプレイヤオブジェクトPOの移動方向を変化させる。また、X軸方向成分Xt-X0が負の値である場合、Xt-X0の絶対値に応じたハンドル角度で左方向にプレイヤオブジェクトPOの移動方向を変化させる。そして、タッチパネルに対してタッチオフされた場合、上記基準座標R0および現タッチ位置座標Tを初期化するとともに、所定の変化量でハンドル角度を中立位置まで戻すようにプレイヤオブジェクトPOの移動方向を変化させる。
なお、Xt-X0の絶対値に応じたハンドル角度は、コースに対するプレイヤオブジェクトPOの位置に応じて変化させてもかまわない。例えば、プレイヤオブジェクトPOがコースの中央にいる場合はユーザ操作に応じて設定されるハンドル角度を相対的に大きくし、プレイヤオブジェクトPOがコースの端ではユーザ操作に応じて設定されるハンドル角度を相対的に小さくしてもよい。また、ユーザ操作に応じたハンドル角度、コースの状況、カートの性能や選択されている走行態様等によって、プレイヤオブジェクトPOが乗車しているカートが滑って、いわゆるドリフト走行が行われてもよい。この場合、ハンドル角度とプレイヤオブジェクトPOのカートの移動方向とが一致しない状態が生じるため、結果的に、タッチパネルに対するスワイプ入力における左右方向成分の大きさとプレイヤオブジェクトPOの移動方向とが、完全に一致していない状態が生じることもあり得る。
図7において、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における表示画面の上下方向成分に応じて、アイテムIの発射動作が制御される。具体的には、タッチパネルに対するタッチ操作において、当該タッチパネルに対してタッチオンされた基準座標Rm(タッチオン時点では、上述した基準座標R0と同じ位置)と、当該タッチオンから継続して行われているスワイプ操作における現タッチ位置座標Tとを、表示部35の表示画面座標系に基づいてそれぞれ設定する。例えば、図7に示すように、縦持ちされた表示部35の表示画面には、上記図6と同様に、表示画面の左右方向(短軸方向)となる第1軸をX軸(右方向がX軸正方向)とし、表示画面の上下方向(長軸方向)となる当該第1軸と直交する第2軸をY軸(上方向がY軸正方向)とする表示画面座標系が定義される。このとき、基準座標がRm(Xm、Ym)として設定され、現タッチ位置座標TがT(Xt、Yt)として設定される。そして、基準座標Rmから現タッチ位置座標Tに向かうベクトルFDが算出され、当該ベクトルFDの方向に基づいて、縦持ちされた表示部35のタッチパネルに対するスワイプ入力が上方向または下方向に相当するか否かが判定される。
縦持ちされた表示部35のタッチパネルに対するスワイプ入力における表示画面の上下方向成分の判定処理では、基準座標Rmと現タッチ位置座標Tとの間の位置関係が所定の条件を満たすように維持され、当該条件から外れた場合に当該条件を満たすように基準座標Rmが移動する。例えば、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ位置の軌跡(タッチ入力軌跡)の長さが閾値Lより長い場合、当該長さが閾値L以下となるように基準座標Rmが当該タッチ入力軌跡上を現タッチ位置座標Tに向かって移動する(図示b方向)。このように、基準座標Rmは、タッチオン時はタッチオンされた位置に設定され、その後は現タッチ位置座標Tが現タッチ位置座標Tから閾値L以上離れると、現タッチ位置座標Tに追従して移動する。なお、上記長さが閾値L以下となるように上記タッチ入力軌跡上を現タッチ位置座標Tに向かって移動する基準座標Rmは、閾値L以下の長さとなるまで時間経過に応じて所定の速度で閾値Lの長さとなるまで移動してもよいし、即時に閾値L以下の長さとなるように移動してもよい。また、タッチ位置座標Tに向かって基準座標Rmを移動させる処理は、閾値Lより長くなる過去に記録されたタッチ位置座標Tを上記所定の速度に基づいて順次削除し、当該削除処理に応じて最も古いタッチ位置座標Tとなった位置が基準座標Rmに設定されてもよい。このように基準座標Rmがタッチ入力軌跡に沿って移動することによって、基準座標Rmと現タッチ位置座標Tとの間は、その間のタッチ入力軌跡長さがL以下となる位置関係に維持され、当該移動後の基準座標Rmから現タッチ位置座標Tに向かうベクトルFDが算出される。なお、タッチ入力が行われている限り、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さが閾値Lより短くても、基準座標Rmが常に現タッチ位置座標Tに近づくようにタッチ入力軌跡上を移動してもよい。
ベクトルFDの長さが所定の長さ以上、かつ、ベクトルFDの方向が判定領域内にある場合、縦持ちされた表示部35のタッチパネルに対して表示画面の上方向または下方向のスワイプ入力が行われたと判定され、使用準備アイテムIPが発射アイテムIMとなって当該判定に応じた方向に発射される。例えば、図8に示すように、Y軸正方向を中心とする所定の角度範囲が前方判定領域UAとして設定され、Y軸負方向を中心とする所定の角度範囲が後方判定領域LAとして設定される。そして、ベクトルFDの長さが所定の長さ以上でベクトルFDの方向が前方判定領域UA内となった場合、使用準備アイテムIPが発射アイテムIMとなってプレイヤオブジェクトPOの前方(例えば、真正面方向)に発射される。また、使用準備アイテムIPがプレイヤオブジェクトPOの後方にも発射可能、かつ、ベクトルFDの長さが所定の長さ以上でベクトルFDの方向が後方判定領域LA内となった場合、使用準備アイテムIPが発射アイテムIMとなってプレイヤオブジェクトPOの後方(例えば、真後ろ方向)に発射される。
なお、後方判定領域LAの角度範囲は、前方判定領域UAの角度範囲より大きく設定してもよい。一般的に、タッチパネルを用いた下方向へのスワイプ入力は、上方向のスワイプ入力より難しいことが多く、特に情報処理装置3を把持した手の親指でタッチ操作をする場合に顕著となり、このように相対的に難しいスワイプ入力の判定条件を緩和することによって、操作性を向上することができる。また、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さを判定するための所定の長さは、判定する方向に応じて異なる閾値としてもよい。上述した理由により相対的に難しいスワイプ入力の判定条件を緩和するために、後方判定領域LA内であるか否かを判定する対象となるために要求されるタッチ入力軌跡の長さは、前方判定領域UAであるか否かを判定する対象となるために要求されるタッチ入力軌跡の長さより短くてもよい。また、上記処理では、基準座標Rmがタッチ入力軌跡に沿って移動する例を用いたが、基準座標Rmが移動する態様はこれに限らない。例えば、基準座標Rmと現タッチ位置座標Tとの直線距離が閾値L以下となるように、基準座標Rmが現タッチ位置座標Tに向かって近づく直線上を移動してもよい。また、基準座標Rmを基準座標R0と同じ位置、すなわちタッチオンされた位置に固定して設定してもよい。なお、異なる角度範囲に設定された上記前方判定領域UAおよび後方判定領域LAが、異なる値が用いられた基準値の一例に相当する。
また、上記入力判定に用いている基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さは、他のパラメータに代えてもかまわない。第1の例として、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さに代えて、基準座標Rmと現タッチ位置座標Tとの間の直線距離を用いてもかまわない。第2の例として、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さに代えて、ベクトルFDにおけるY軸成分の長さを用いてもかまわない。第3の例として、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さに代えて、ベクトルFDの長さを用いてもかまわない。
また、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における表示画面の上下方向成分の判定処理では、基準座標Rmを用いずに判定してもかまわない。第1の例として、現タッチ位置座標Tまでのスワイプ位置の変化速度(例えば、前回検出された現タッチ位置座標Tから今回検出された現タッチ位置座標Tまでの長さや、直前に検出された所定時間内のタッチ入力軌跡の長さ)が基準値以上である場合に、当該変化速度が検出されたスワイプ入力の方向が前方判定領域UAまたは後方判定領域LA内であれば、タッチパネルに対して表示画面の上方向または下方向のスワイプ入力が行われたと判定してもよい。第2の例として、現タッチ位置座標Tまでのスワイプ位置の変化速度が基準値以上である場合に、当該変化速度が検出されたスワイプ入力のY軸方向成分の長さが所定の長さ以上であれば、タッチパネルに対して表示画面の上方向または下方向のスワイプ入力が行われたと判定してもよい。
また、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さを判定する基準値となる所定の長さは、ユーザのスワイプ入力に応じて変化させてもよい。例えば、スワイプ入力における左右方向成分Xt-X0が所定の閾値以上の大きさである場合、上記基準値となる所定の長さを変化させてもよい。一例として、スワイプ入力における左右方向成分Xt-X0が所定の閾値以上の大きさである場合に、上記基準値となる所定の長さを長くすることによって、プレイヤオブジェクトPOのハンドルを左右に大きく切るような操作やいわゆるドリフト走行するような操作、すなわちスワイプ入力における変化量が大きい操作を行う場合に、ユーザが意図せずアイテムを前後に発射する操作を行ったと判定されることを防止することができる。他の例として、スワイプ入力における左右方向成分Xt-X0が所定の閾値以上の大きさである場合に、上記基準値となる所定の長さを短くすることによって、プレイヤオブジェクトPOのハンドルを左右に大きく切るような操作やいわゆるドリフト走行するような操作中にアイテムIを発射する操作を行っても、当該発射操作による左右移動方向への影響を少なくすることができる。
また、上述した実施例では、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さが所定の長さ以上、かつ、ベクトルFDの方向が判定領域内にある条件を満たした場合に、プレイヤオブジェクトPOの真正面方向または真後ろ方向に発射アイテムIMが発射される。これは、スワイプ入力の上下方向成分のみを用いて判定する場合に、ユーザが左右方向のスワイプ入力をしたつもりであっても当該スワイプ入力に上下方向成分が含まれていることによって発射判定されることを防止するためであり、上記条件を設定することによって正確な入力判定が可能となる。また、プレイヤオブジェクトPOの真正面方向または真後ろ方向に発射方向を制限することによって、当該方向からずれた入力誤差を吸収することができ、操作の難易度を考慮することも可能である。しかしながら、このような効果を期待しない場合、発射アイテムIMが発射される方向は、プレイヤオブジェクトPOの真正面方向または真後ろ方向からずれた方向であってもよい。例えば、ベクトルFDの方向が前方判定領域UA内となった場合、Y軸正方向とベクトルFDの方向との角度差に基づいて、プレイヤオブジェクトPOの真正面方向から当該角度差だけずれた方向に発射アイテムIMが発射されてもよい。また、ベクトルFDの方向が後方判定領域LA内となった場合、Y軸負方向とベクトルFDの方向との角度差に基づいて、プレイヤオブジェクトPOの真後ろ方向から当該角度差だけずれた方向に発射アイテムIMが発射されてもよい。
また、発射アイテムIMが発射される方向は、プレイヤオブジェクトPOのタイプやプレイヤオブジェクトPOが用いている装備(例えば、プレイヤオブジェクトPOが乗車しているカート)に応じて異なってもよい。
また、上述した説明では、ハンドル操作を行うために算出される縦持ちされた表示部35のタッチパネルに対するスワイプ入力における表示画面の左右方向成分の大きさは、当該タッチパネルに対してタッチオンされた基準座標R0と、当該タッチオンから継続して行われているスワイプ操作における現タッチ位置座標Tとの差における第1軸(短軸)方向成分の大きさが用いられているが、現タッチ位置座標Tに追従して移動する基準座標Rmが用いられてもかまわない。この場合、スワイプ入力における表示画面の左右方向成分の大きさは、現タッチ位置座標Tに追従して移動する基準座標Rmと、タッチオンから継続して行われているスワイプ操作における現タッチ位置座標Tとの差における第1軸(短軸)方向成分の大きさが用いられる。
また、アイテムの使用においては、表示画面に表示された所持枠HF内のアイテムIや使用準備位置の使用準備アイテムIP上のタッチパネルをタッチ操作(例えば、タップ操作)されることによって、当該タッチ操作されたアイテムが使用されてもよい。具体的には、使用準備アイテムIP上のタッチパネルをタッチオンしたタイミング、または使用準備アイテムIP上のタッチパネルをタッチオンした後にタッチオフしたタイミングで、タッチ操作されたアイテムが使用される。この場合、タッチ操作されたアイテムがプレイヤオブジェクトPOから発射されるタイプであれば、その発射方向がデフォルト方向に設定されてもよい。なお、表示画面に表示された所持枠HF内のアイテムIや使用準備位置の使用準備アイテムIP上のタッチパネルをタッチ操作することによってこれらのアイテムが使用される場合であっても、スワイプ操作(ドラッグ操作)された方向(例えば、縦持ちされた表示部35の上方向や下方向)に応じて当該アイテムが発射される方向が変化してもかまわない。
また、入力方向を判定するための判定領域(前方判定領域UAおよび後方判定領域LA)は、プレイヤオブジェクトPOの動作に応じて、その大きさが変化してもかまわない。例えば、プレイヤオブジェクトPOがハンドル角度とは異なる方向に向く動作(例えば、ドリフト走行動作、スピン動作等)をしている状態において、上記判定領域の大きさを狭く変化させてもよい。プレイヤオブジェクトPOがハンドル角度とは異なる方向に向くように動作している場合、ユーザが入力した方向がユーザの操作の意図とは異なって判定領域内に入ってしまうことが考えられる。したがって、このようなプレイヤオブジェクトPOの動作に対応して判定領域を狭くすることによって、ユーザの意図とは異なる操作判定を少なくすることができる。
また、上述した説明では、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における左右方向成分の大きさに応じて、プレイヤオブジェクトPOの移動方向を制御しているが、少なくとも当該左右方向成分の大きさを用いていれば、他の操作や他の方向成分を加えてもかまわない。一例として、所定の操作(例えば、所定の操作ボタンを押下する操作や所定の操作ボタン画像へのタッチ操作)が行われている状態に限って、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における左右方向成分の大きさに応じて、プレイヤオブジェクトPOの移動方向を制御してもよい。他の例として、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における左右方向成分の大きさに上下方向成分の大きさの少なくとも一部を加えて、プレイヤオブジェクトPOの移動方向を制御してもよい。この場合、スワイプ入力における上下左右方向成分に応じてプレイヤオブジェクトPOの左右移動方向を制御することとなり、一例として、スワイプ入力における左右方向成分が+1.73、上下方向成分が+1.00の場合に右へのハンドリング量として2が用いられることが考えられる。
また、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における上下方向成分に応じて、アイテムIに対する動作制御が行われているが、少なくとも当該上下方向成分を用いていれば、他の操作や他の方向成分を加えてもかまわない。一例として、所定の操作(例えば、所定の操作ボタンを押下する操作や所定の操作ボタン画像へのタッチ操作)が行われている状態に限って、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における上下方向成分の大きさに応じて、アイテムIに対する動作を制御してもよい。他の例として、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における上下方向成分および左右方向成分に応じて、アイテムIに対する動作を制御してもよい。この場合、スワイプ入力における上下方向成分に応じてアイテムIの発射動作を制御し、スワイプ入力における左右方向成分に応じて発射されたアイテムIの方向を制御することが考えられる。
また、上述した説明では、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における左右方向成分の大きさに応じて、プレイヤオブジェクトPOの移動方向を制御しているが、他の要素を制御してもかまわない。例えば、プレイヤオブジェクトPOの主観視点によるゲーム画像が表示される場合、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における左右方向成分の大きさに応じて、当該ゲーム画像を生成するための仮想カメラの移動方向を制御することが考えられる。また、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における上下方向成分に応じて、アイテムIに対する動作制御が行われているが、他の要素を制御してもかまわない。例えば、ビームを撃つ動作、装備を切り替える操作、ターゲットを切り替える動作、視界や視点を切り替える操作等の動作制御を、縦持ちされた表示部35のタッチパネルに対するスワイプ入力における上下方向成分に応じて行うことが考えられる。
また、上述した実施例では、ベクトルFDの長さが所定の長さ以上、かつ、ベクトルFDの方向が判定領域内にある条件が満たされることに応じて、使用準備アイテムIPが発射アイテムIMとなって当該判定に応じた方向に発射される例を用いたが、発射アイテムIMとなって発射されるタイミングは、他のタイミングであってもよい。例えば、ベクトルFDの長さ以上、かつ、ベクトルFDの方向が判定領域内にある条件が満たされた後、タッチパネルからタッチオフされることに応じて、使用準備アイテムIPが発射アイテムIMとなって当該判定に応じた方向に発射されてもよい。
また、上述した実施例では、アイテムIが発射アイテムIMとなって発射される位置(使用準備位置)を、プレイヤオブジェクトPOが乗車するカートの後部に設定されているが、他の位置に設定されてもよい。一例として、プレイヤオブジェクトPOが乗車するカートの前部等、プレイヤオブジェクトPOが乗車するカートの他の位置やカート近傍から発射アイテムIMが発射されてもよい。他の例として、表示画面の上端または下端やコース外に設けられた発射位置等に使用準備位置が設定され、プレイヤオブジェクトPOが乗車するカートとは離れた位置から発射アイテムIMが発射されてもよい。
また、発射された発射アイテムIMが移動する速度は、発射アイテムIMのタイプに応じて設定されてもよいし、ユーザ入力に応じて変化してもよい。例えば、発射アイテムIMを発射するためのスワイプ入力が行われた速度(スワイプ入力が行われた際にタッチ位置が移動する速度)に応じて、発射された発射アイテムIMが移動する速度が変化してもよい。
また、上述した説明では、ベクトルFDの長さが所定の長さ以上、かつ、ベクトルFDの方向が判定領域内にある場合、縦持ちされた表示部35のタッチパネルに対して表示画面の上方向または下方向のスワイプ入力が行われたと判定され、使用準備アイテムIPが発射アイテムIMとなって当該判定に応じた方向に発射される例を用いたが、タッチ入力軌跡を用いてスワイプ入力方向が判定されてもかまわない。例えば、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さが所定の長さ以上、かつ、ベクトルFDの方向が判定領域内にある場合に、縦持ちされた表示部35のタッチパネルに対して表示画面の上方向または下方向のスワイプ入力が行われたと判定してもかまわない。
ここで、所定時間前のタッチ位置座標Tと現タッチ位置座標Tとの差を用いてスワイプ入力方向を判定することを考えた場合、タッチオンされてから当該所定時間を経過するまではスワイプ入力方向の判定ができないことになる。一例として、0.5秒前にタッチ入力されたタッチ位置座標Tと現タッチ位置座標Tとの差が所定値以上であることをスワイプ入力方向の判定に用いた場合、タッチオンして即時に大きくスワイプ操作したとしても、0.5秒間はスワイプ入力方向が判定されないため、アイテムを発射するまでの応答性が低下してユーザに違和感を与えることが考えられる。一方、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さを用いてスワイプ入力方向を判定する場合、タッチオンしてから即時に大きくスワイプ操作した場合に即時にスワイプ入力方向が判定されるため、アイテムを発射するまでの応答性が向上してユーザに違和感を与えることがない。
なお、上述したように、タッチ入力軌跡の長さが閾値Lよりも長い場合、当該タッチ入力軌跡の長さが当該閾値L以下となるまで、タッチ位置座標Tの履歴からより古い履歴を所定の速度で削除することによって当該削除後に最も古いタッチ位置座標Tの履歴を基準座標Rmとして設定している。これによって、タッチ入力軌跡の長さが閾値Lよりも長い場合、当該タッチ入力軌跡の長さが当該閾値L以下となるまで、タッチ位置座標Tの履歴のうち、より新しいタッチ位置座標Tを新たな基準座標Rmとして再設定される処理が繰り返されていることになり、このようなタッチ入力軌跡および基準座標Rmを用いて上述したスワイプ入力方向の判定が行われている。このように、より新しいタッチ位置座標Tを新たな基準座標Rmとして再設定される処理が行われる場合、上述したスワイプ入力が行われたと判定されるための判定条件の1つである基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さが所定の長さ以上であることを判定する際の「所定の長さ」は、閾値Lより短く設定することが望ましい。
また、タッチ入力されている時間に応じて基準座標Rmが再設定されてもよい。例えば、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡として保持されるタッチ位置座標Tの履歴を、所定の処理回数分(例えば、5フレーム分に対応する5点のタッチ位置座標Tの履歴)だけ保持して、当該履歴を用いてスワイプ入力方向を判定してもよい。一例として、上記履歴のうち、最古の履歴となるタッチ位置座標Tと最新の履歴となる現タッチ位置座標Tとを比較した値を、上記タッチ入力軌跡として用いてもかまわない。この場合、最古の履歴となるタッチ位置座標Tは、基準座標Rmとして機能していることになる。これによって、タッチ入力軌跡を生成するために継続しているタッチ操作しているタッチ入力時間の長さが所定の時間(例えば、5フレーム)よりも長い場合、当該タッチ入力軌跡を生成するために要した時間が当該所定の時間以下となるように、タッチ位置座標Tの履歴のうち、より新しいタッチ位置座標Tを新たな基準座標Rmとして再設定される処理が繰り返されていることになり、このようなタッチ入力軌跡および基準座標Rmを用いて上述したスワイプ入力方向の判定が行われていることになる。なお、上記履歴が所定の処理回数分に満たない場合、当該履歴のうち、最古の履歴となるタッチ位置座標Tと最新の履歴となる現タッチ位置座標Tとを比較した値を、上記タッチ入力軌跡として用いればよい。なお、タッチ入力されている時間に応じて基準座標Rmが再設定されるこれらの記載は、「ベクトルFD」および「タッチ入力軌跡」のいずれを用いた処理でも適宜適用できる。
ベクトルFDの長さや上記タッチ入力軌跡の長さを判定するための閾値となる上記所定の長さは、上方向へのスワイプ操作と判定される長さと下方向へのスワイプ操作と判定される長さと異なる長さに設定してもよい。一例として、上方向へのスワイプ操作と判定される上記所定の長さと比べて、下方向へのスワイプ操作と判定される上記所定の長さを短く設定することによって、スワイプ操作が相対的に難しい下方向へのスワイプ操作が判定されやすくしてもよい。
また、ベクトルFDの長さや上記タッチ入力軌跡の長さを判定するための閾値となる上記所定の長さは、タッチオンからの経過時間に応じて変化させてもかまわない。一例として、継続してタッチ操作されている時間が0.2秒未満の場合、当該時間が0.2秒以上において設定される上記閾値の0.25倍にしてもよい。これによって、タッチオンして即時にスワイプ操作した場合に、スワイプ操作が判定されやすくすることができる。
また、ベクトルFDの長さや上記タッチ入力軌跡の長さを判定するための閾値となる上記所定の長さは、一方への方向へのスワイプ操作が行われたと判定された後では、他方への方向へのスワイプ操作が行われたと判定されるための当該閾値が変化してもかまわない。一例として、上方向および下方向の一方へのスワイプ操作が行われたと判定された後もタッチ操作が継続している場合、上方向および下方向の他方へのスワイプ操作が行われたと判定されるための上記所定の長さを1.5倍に変化させてもよい。これによって、一方への方向にスワイプ操作された後は、タッチ操作している指を単に元のタッチ位置に戻すために逆方向に動かす傾向があったとしても、そのような場合にユーザの意図に反するスワイプ操作の判定が行われることを防止することができる。なお、ベクトルFDの長さや上記タッチ入力軌跡の長さを判定するための閾値となる上記所定の長さを長く変化させる場合、基準座標Rmと現タッチ位置座標Tとの間に形成されているタッチ入力軌跡の長さを維持するための上記閾値Lも長く変化(例えば、閾値Lを1.5倍)させてもよい。
次に、図9および図10を用いて情報処理システム1において行われる第1アイテム抽選処理例の概要について説明する。第1アイテム抽選処理例は、プレイヤオブジェクトPOが所持しているアイテムI(ゲームオブジェクト)が所定の組み合わせ条件を満たした場合に、ゲームを相対的に有利に進めることができる効果をプレイヤオブジェクトPOに付与するための処理である。なお、図9は、情報処理装置3の表示部35に表示されるゲーム画像の例を示す図である。図10は、情報処理装置3の表示部35に表示されるゲーム画像の例を示す図である。
図9において、図4および図5と同様に、情報処理装置3の表示部35には、情報処理装置3でプレイされているゲームに対応したゲーム画像が表示され、その一例としてプレイヤオブジェクトPOがレースゲームを行う一場面が表示されている。例えば、上記ゲームにおいて、プレイヤオブジェクトPOは、仮想世界内に設けられたコース上をカートに乗車して走行しており、当該コース上に設置されたアイテムボックスIBを通過して開封することによって、新たなアイテムIを取得することができる。なお、プレイヤオブジェクトPOは、空枠Eの所持枠HFがある場合に限って、新たなアイテムIを取得することができる。
プレイヤオブジェクトPOがアイテムボックスIBを通過して開封する際、取得する新たなアイテムIを抽選する演出が行われる。例えば、図9では、プレイヤオブジェクトPOがアイテムボックスIBを通過することに応じて、複数種類のアイテムIが順次表示されて抽選中であることを示す回転表示アイテムIRが、全所持枠HF(3つの枠)内において回転抽選表示されている例を示している。なお、上記アイテムIを取得するための抽選は、既にアイテムIが表示されている所持枠HFに対しては行われない。つまり、所持枠HFにおいて、空枠EとアイテムIの表示枠とが混在している場合、空枠Eに対してのみ上記抽選が行われることになる。また、空枠Eの所持枠HFがない場合、上記抽選が行われないため、プレイヤオブジェクトPOは、当該抽選によって新たなアイテムIを取得できない状態となる。なお、アイテムボックスIBは、コース上における特定の位置に設置されてもよいし、時間経過に応じてコース上の任意の位置に出現してもよい。
所持枠HF内において停止表示されたアイテムIは、プレイヤオブジェクトPOが抽選によって取得したことが確定し、当該確定後に上述した操作方法によってプレイヤオブジェクトPOが所定の順番(例えば、取得順)で1つずつ使用することができる。そして、プレイヤオブジェクトPOは、アイテムIを使用することによって、レースを進める上で有利な効果を得ることができる。
図10に示すように、本実施例では、全所持枠HFにおいて同じアイテムIが抽選によって確定した場合、いわゆる「フィーバー状態」となる当たりとなり、プレイヤオブジェクトPOがレースを進める上でさらに有利な効果を得ることができる。一例として、プレイヤオブジェクトPOが「フィーバー状態」となった場合、予め定められたフィーバー期間中に限って「フィーバー状態」となったアイテムを連続して使用することができる。
例えば、図10の例では、左端の所持枠HFに甲羅のアイテムI1が停止表示され、中央の所持枠HFに甲羅のアイテムI2が停止表示され、右端の所持枠HFに甲羅のアイテムI3が停止表示されており、抽選によって全所持枠HFにおいて同じ甲羅のアイテムIが確定した状態となっている。この場合、所定期間内において甲羅のアイテムによる「フィーバー状態」となり、予め定められたフィーバー期間中に限って、甲羅のアイテムを用いた有利な効果がプレイヤオブジェクトPOに与えられる。例えば、甲羅のアイテムによる「フィーバー状態」では、プレイヤオブジェクトPOの周辺に複数の甲羅のアイテムIFが配置されて、甲羅のアイテムによる「フィーバー状態」であることがユーザに示される。そして、ユーザがタッチパネルに対して何らかのタッチ操作を行っている場合、所定の周期で連続して甲羅の発射アイテムIMがプレイヤオブジェクトPOの前方に発射される。つまり、通常状態おいて甲羅のアイテムIを使用した場合、甲羅の発射アイテムIMをプレイヤオブジェクトPOから単発で発射することができるが、甲羅のアイテムによる「フィーバー状態」では、複数発の甲羅の発射アイテムIMをプレイヤオブジェクトPOから連続発射することができる。また、「フィーバー状態」では、アイテムを発射するためのスワイプ操作をしなくても所定の周期で連続して甲羅の発射アイテムIMが発射されるため、タッチ操作によってプレイヤオブジェクトPOの移動方向を制御しながら、繰り返しアイテムを使用することが容易となる。さらに、通常状態において、所持枠HF毎に1回アイテムIを使用することができるため、所持枠HFの数、すなわちアイテムIを例えば3回使用することができるが、同じアイテムIが3つ揃った「フィーバー状態」となったフィーバー期間中は、所持枠HFの数に限らずに連続して無制限(すなわち、所持枠HFの数以上であり、例えば、4回以上)にアイテムIを使用することができるため、ユーザにとって通常状態より非常に有利な状態となる。
なお、「フィーバー状態」においてプレイヤオブジェクトPOから発射される発射アイテムIMの方向は、所定の方向(例えば、プレイヤオブジェクトPOの真正面方向)に固定されてもよいし、プレイヤオブジェクトPOの周辺方向となるランダムな方向に逐次発射されてもよい。また、「フィーバー状態」において発射アイテムIMの発射条件を満たすベクトルFD(すなわち、ベクトルFDの長さが所定の長さ以上、かつ前方判定領域UAまたは後方判定領域LA内の方向となるベクトルFD)が設定された場合、当該ベクトルFDの方向に基づいて発射アイテムIMが逐次発射されてもよい。
このように、情報処理システム1において行われる第1アイテム抽選処理例においては、複数の所持枠にそれぞれ含まれるアイテムIの少なくとも1つを選択して使用することにより、当該選択されたアイテムIの種類に基づいたゲーム内効果を得ることができるとともに、当該ゲーム内効果を発生させたアイテムIが表示されていた所持枠を空枠Eとしている。また、アイテム抽選によって、上記複数の所持枠に含まれるアイテムIが全て同じになる条件を満たした場合、上記ゲーム内効果よりさらに有利なゲーム内効果を得ることができる。
なお、上述した実施例では、空枠Eの所持枠HFがある場合に限って、プレイヤオブジェクトPOが新たなアイテムIを取得することができるが、所持枠HFに空枠Eがない場合であっても、新たなアイテムIを取得することができるようにしてもよい。この場合、所持枠HFに空枠Eがない場合であってもアイテム抽選が可能となり、アイテムIが表示されている所持枠HFにおいても回転抽選状態となる。また、空枠EとアイテムIが表示されている枠とが所持枠HFに混在している場合、アイテム抽選が行われることに応じて、空枠EだけでなくアイテムIが表示されている所持枠HFにおいても回転抽選状態としてもよい。このようにアイテムIが表示されている所持枠HFにおいても回転抽選状態としてアイテム抽選を行う場合、アイテムIの使用に応じて所持枠HFを空枠Eに変更しなくてもよい。
次に、図11および図12を用いて情報処理システム1において行われる第2アイテム抽選処理例の概要について説明する。第2アイテム抽選処理例は、レース上に設けられたアイテムボックスIBを開封しなくても、所定の条件を満たすことによって上記アイテム抽選を行うことが可能となる処理である。なお、図11は、情報処理装置3の表示部35に表示されるゲーム画像例を示す図である。図12は、情報処理装置3の表示部35に表示されるゲーム画像例を示す図である。
図11において、図4および図5と同様に、情報処理装置3の表示部35には、情報処理装置3でプレイされているゲームに対応したゲーム画像が表示され、その一例としてプレイヤオブジェクトPOがレースゲームを行う一場面が表示されている。例えば、上記ゲームにおいて、プレイヤオブジェクトPOは、仮想世界内に設けられたコース上をカートに乗車して走行している。そして、プレイヤオブジェクトPOが走行中に所定の条件を満たしている場合、所持枠HFに代わってアイテム抽選アイコンABが出現する。
アイテム抽選アイコンABは、ユーザのタッチ操作によって選択されることによって実行される操作指示ボタンとして機能し、表示部35を縦持ちした場合の表示画面上部中央付近に表示される。また、アイテム抽選アイコンABの近傍には、当該アイテム抽選アイコンABを選択して実行した場合に消費される仮想通貨の価格を示す価格情報Mが付与される。図15の例では、アイテム抽選アイコンABが使用された場合、ユーザが課金することによって取得できる星形の仮想通貨が1枚消費されることが、価格情報Mとして示されている。なお、アイテム抽選アイコンABおよび価格情報Mは、全所持枠HFが空枠Eである場合に出現するが、使用することにより使用回数制限(例えば、1レース1回に制限)を超える場合やユーザが使用するために必要な仮想通貨を所持していない場合等では出現しない。例えば、アイテム抽選アイコンAB上のタッチパネルをタッチ操作(例えば、タップ操作)されてアイテム抽選アイコンABが使用された場合、新たなアイテムIを取得するためのアイテム抽選を行う演出が開始される。つまり、アイテム抽選アイコンABは、新たにアイテムIを取得するための抽選演出を行うためのユーザ指示を受け付ける操作ボタンであり、タッチパネルに対するスワイプ入力における表示画面の上下方向成分に応じて行われるアイテムIの発射動作の制御に関連する制御をユーザが指示するための画像となる。なお、アイテム抽選アイコンABが出現しない状態は、表示画面にアイテム抽選アイコンABが表示されていない状態でもよいし、アイテム抽選アイコンABをグレーアウト表示や半透明表示されている状態でもよい。また、アイテム抽選アイコンABが選択できない状態であっても、アイテム抽選アイコンABを表示画面に表示していてもよく、その場合、ユーザがアイテム抽選アイコンABを選択する操作を行ったとしても、アイテム抽選アイコンABが無反応となる。
図12に示すように、アイテム抽選アイコンABが使用された場合、アイテム抽選アイコンABおよび価格情報Mに代わって所持枠HFが出現する。そして、上記第1アイテム抽選処理例と同様に、全所持枠HF内において、回転抽選表示状態を示す回転表示アイテムIRが表示された後、各枠において何れか1つのアイテムIを停止表示させることによって、停止表示されたアイテムIが抽選で確定して取得されたことが示される。
アイテム抽選アイコンABを使用したことによるアイテム抽選においても、所持枠HF内において停止表示されたアイテムIは、プレイヤオブジェクトPOが抽選によって取得したことが確定し、当該確定後に上述した操作方法によってプレイヤオブジェクトPOが所定の順番で1つずつ使用することができる。そして、プレイヤオブジェクトPOは、アイテムIを使用することによって、レースを進める上で有利な効果を得ることができる。
また、アイテム抽選アイコンABを使用したことによるアイテム抽選においても、全所持枠HFにおいて同じアイテムIが抽選によって確定した場合、「フィーバー状態」となる当たりとなり、プレイヤオブジェクトPOがレースを進める上でさらに有利な効果を得ることができる。上記第1アイテム抽選処理例と同様に、プレイヤオブジェクトPOが「フィーバー状態」となった場合、予め定められたフィーバー期間中に限って「フィーバー状態」となったアイテムを連続して使用することができる。
このように、アイテム抽選アイコンABを使用したことによるアイテム抽選では、コース上に設けられたアイテムボックスIBを開封することによるアイテム抽選と同様に、新たなアイテムIが取得されたり「フィーバー状態」となる当たりの抽選が行われたりすることができる。したがって、ユーザは、コース上にアイテムボックスIBが配置されている場合に限らず、アイテム抽選アイコンABが出現すればいつでも新たなアイテム抽選を開始することができる。なお、アイテム抽選アイコンABを使用したことによるアイテム抽選とアイテムボックスIBを開封することによるアイテム抽選との間には、さらに異なる要素を盛り込んでもよい。
第1の例として、アイテム抽選アイコンABを使用したことによってアイテム抽選が行われている時間(アイテムIの回転抽選演出が行われている時間)を、アイテムボックスIBを開封することによってアイテム抽選が行われる時間より短くしてもよい。これによって、アイテム抽選アイコンABを使用した場合に、プレイヤオブジェクトPOが新たなアイテムIを取得したり「フィーバー状態」となる当たりによる効果を得たりするまでの時間を短縮することが可能となり、結果的にプレイヤオブジェクトPOが有利な効果を早期に得ることが可能となる。
第2の例として、アイテム抽選アイコンABを使用したことによるアイテム抽選によって「フィーバー状態」となる当たりになる確率を、アイテムボックスIBを開封することによるアイテム抽選によって「フィーバー状態」となる当たりになる確率より高くしてもよい。これによって、アイテム抽選アイコンABを使用した場合に、プレイヤオブジェクトPOが「フィーバー状態」となる当たりによる効果を得る確率が高くなるため、プレイヤオブジェクトPOがより有利な効果を得る可能性が高くなる。なお、「フィーバー状態」となる当たりになる確率が上昇する大きさは、アイテム抽選アイコンABを選択して実行した場合に消費される仮想通貨の価格に応じて変化させてもよい。一例として、アイテム抽選アイコンABを選択して実行した場合に消費される仮想通貨の価格が高額であるほど、上記確率を上昇させることが考えられる。この場合、1レース中にアイテム抽選アイコンABを選択して実行した回数が増えるほど、当該実行によって消費される仮想通貨の価格を上昇させ、当該価格の上昇とともに上記確率も上昇させることも考えられる。また、アイテムボックスIBを開封することによるアイテム抽選によって「フィーバー状態」となる当たりに対して、アイテム抽選アイコンABを使用したことによるアイテム抽選によって「フィーバー状態」となる当たりでは、より効果が高いアイテムによる当たりとなる確率が高くてもよい。
また、上述したゲーム例では、アイテム抽選アイコンABを選択して実行する際に、星形の仮想通貨が消費される例を用いたが、上記購入画面において星形の仮想通貨から交換可能なゲーム内コインが当該実行の際に消費される態様でもかまわない。このように、アイテム抽選アイコンABを選択して実行する際にゲーム内コインが消費される態様であっても、星形の仮想通貨をゲーム内コインに一旦交換した後、当該ゲーム内コインを用いてアイテム抽選アイコンABの実行が可能となるため、結果的に、星形の仮想通貨を用いてアイテム抽選アイコンABの実行が可能であると考えることもできる。
なお、上述した実施例では、空枠Eの全所持枠HFが空枠Eである場合に限って、アイテム抽選アイコンABが出現することとしたが、所持枠HFに空枠Eがない場合や一部の所持枠HFが空枠Eである場合にもアイテム抽選アイコンABが出現可能にしてもよい。この場合、所持枠HFに空枠Eがない場合や一部の所持枠HFが空枠Eである場合であってもアイテム抽選アイコンABを選択することによるアイテム抽選が可能となり、アイテムIが表示されている所持枠HFにおいても回転抽選状態となる。また、空枠EとアイテムIが表示されている枠とが所持枠HFに混在している状態でアイテム抽選アイコンABを選択することによるアイテム抽選が行われた場合、空枠EだけでなくアイテムIが表示されている所持枠HFにおいても回転抽選状態としてもよい。
また、上述した説明では、レースにおいてコース上に配置されたアイテムボックスIBとプレイヤオブジェクトPOとが接触した場合、当該レースにおいて有効となるアイテムIの使用による一時的な効果をプレイヤオブジェクトPOが得ることができるが、アイテムボックスIBとの接触がなくても上記一時的な効果が得られてもよい。例えば、アイテムボックスIBとプレイヤオブジェクトPOとが接触したことに応じて新たなアイテムIを抽選する演出が行われることに代えて、所定時間が経過する毎に自動的に新たなアイテムIを抽選する演出が行われてもよい。この場合、アイテム抽選アイコンABを選択することによって、上記所定時間が経過していなくても新たなアイテムIを抽選して取得することが可能としてもよい。
また、所持枠HFの数は、プレイヤオブジェクトPOの種類に応じて変化してもよい。一例として、走行するコースとプレイヤオブジェクトPOとの相性の善し悪しに応じて、相性がよいコースでは3つの所持枠HFが表示され、相性が悪いコースでは1つの所持枠HFが表示される態様でもかまわない。所持枠HFが1つ表示されるコースを用いてプレイする場合、プレイヤオブジェクトPOが同時に所持できるアイテムIの数が少なくなるとともに、全所持枠HFのアイテムIが揃うことによる「フィーバー状態」にならないため、ユーザにとって不利な条件となる。なお、相性が悪いコースで1つの所持枠HFが表示される場合であっても、アイテム抽選アイコンABを選択した場合は3つの所持枠HFが出現して新たなアイテムIを抽選する演出が行われてもよい。このように、プレイヤオブジェクトPOとコースとの相性に応じて表示する所持枠HFの数を変化させることによって、ユーザが使用するプレイヤオブジェクトPOの種類を選択する動機付けとなる。
次に、図13を参照して、表示部35が横持ち操作されることによって第2モードにおいて操作される例について説明する。なお、図13は、第2モードによる横持ち操作において情報処理装置3の表示部35に表示されるゲーム画像例を示す図である。
横持ちされた情報処理装置3の表示部35には、上述した縦持ち操作と同様に、情報処理装置3でプレイされているゲームに対応したゲーム画像が表示され、その一例としてプレイヤオブジェクトPOがレースゲームを行う一場面が表示されている。ここで、ユーザが表示部35を縦持ちから横持ちに変更した場合、実空間の重力方向に対する表示部35の姿勢に応じて、表示部35にゲーム画像を表示するための仮想カメラの画角および注視点からの距離が横画面用のもの(横方向の表示画面のアスペクト比に合わせた画角および横方向表示の表示サイズに合わせた距離)に変更される。なお、表示部35に表示する画像の表示方向に関しては、実空間の重力方向に対する表示部35の姿勢に応じて、表示部35が横持ちと判定された場合に、仮想カメラによって取得されたゲーム画像の上下方向が表示部35の短軸方向となり、かつ、当該ゲーム画像の上方向より下方向が表示部35に作用している重力方向に近くなるように変更される。
例えば、本実施例では、情報処理装置3(表示部35)に作用している重力加速度を用いて、情報処理装置3(表示部35)が縦持ちされているのか横持ちされているのかを判定する。ここで、上述したように、情報処理装置3は、慣性センサ(加速度センサおよび/または角速度センサ)を備えており、慣性センサが検出した検出結果(加速度センサが検出した3軸方向に沿った加速度および/または角速度センサが検出した3軸回りの角速度)に基づいて、任意の方法を用いて情報処理装置3(表示部35)に作用している重力加速度の方向を算出することができる。例えば、表示部35に作用している重力加速度の方向が表示部35の短軸方向より長軸方向に近い場合、情報処理装置3(表示部35)が縦持ちされていると判定する。また、表示部35に作用している重力加速度の方向が表示部35の長軸方向より短軸方向に近い場合、情報処理装置3(表示部35)が横持ちされていると判定する。
情報処理装置3(表示部35)の姿勢が縦持ちから横持ちに変更された場合、または横持ちから縦持ちに変更された場合、当該変更方向に応じて仮想空間における仮想カメラの画角および注視点からの距離が横画面用のものに変更される。例えば、情報処理装置3(表示部35)が縦持ちされている場合、表示部35の画角および注視点からの距離が縦画面用のもの(縦方向の表示画面のアスペクト比に合わせた画角および縦方向表示の表示サイズに合わせた距離)に設定される。また、表示部35に表示する画像の表示方向に関しては、実空間の重力方向に対する表示部35の姿勢に応じて、仮想カメラによって取得されたゲーム画像の上下方向が表示部35の長軸方向となり、かつ、当該ゲーム画像の上方向より下方向が表示部35に作用している重力方向に近くなるように設定される。そして、上記縦持ち状態から表示部35が表示画面奥行方向を中心に右回りに90°回転(ロール回転)することによって横持ち状態に変更された場合、上記仮想カメラの画角および注視点からの距離が横画面用のものに変更される。これによって、情報処理装置3(表示部35)が横持ちされている場合、表示部35の短軸方向が仮想空間の上下方向となるように(より具体的には、実空間の下方向となる表示部35の短軸方向が仮想空間の重力方向となるように)、ゲーム画像の表示方向が設定される。
図13に示すように、表示部35を横持ち状態にして操作する第2モードの場合、表示部35に設けられているタッチパネルのタッチ領域に、互いに重ならない第1領域A1と第2領域A2とが設定される。具体的には、第1領域A1は、横持ちされた表示部35の表示画面の左半分を覆うタッチ領域に設定される。また、第2領域A2は、横持ちされた表示部35の表示画面の右半分を覆うタッチ領域に設定され、第1領域A1と上記表示画面の中央で隣接して設けられる。そして、第2モードでは、第1領域A1をタッチ操作することによって、プレイヤオブジェクトPOの移動方向を制御することができる。また、第2モードでは、第2領域A2をタッチ操作することによって、プレイヤオブジェクトPOが所持しているアイテムIを発射する動作を制御することができる。
なお、表示部35に設けられているタッチパネルのタッチ領域には、プレイヤオブジェクトPOの移動方向およびアイテムIの発射動作の何れも制御されないタッチ操作無効領域が設けられていてもかまわない。一例として、表示部35を縦持ち状態にして操作する第1モードおよび表示部35を横持ち状態にして操作する第2モードの何れの場合であっても、表示画面の上部となるタッチ領域の一定領域(例えば、表示画面最上部から当該表示画面の17.5%分までの表示画面上部領域のタッチ領域)を上記タッチ操作無効領域として、当該タッチ操作無効領域にスワイプ操作によるタッチ位置が侵入した場合に当該スワイプ操作を無効にして当該スワイプ操作によってプレイヤオブジェクトPOの移動方向およびアイテムIの発射動作の何れも制御しないようにしてもよい。このように、何れの操作モードでも表示画面の上部となるタッチ領域にタッチ操作無効領域を設けることによって、何れの操作モードでもユーザにとって操作しやすい当該表示画面下部のタッチ領域を用いたタッチ操作をユーザに促すことが可能となる。なお、上記タッチ操作無効領域にタッチ操作が行われた場合、プレイヤオブジェクトPOの移動方向制御およびアイテムIの発射動作制御とは異なる他のゲーム制御が実行可能に構成されてもかまわない。
横持ちされた表示部35の第1領域A1に設定された左側基準座標(例えば、第1領域A1にタッチオンされた左側基準座標RL0)を基準として、右方向に第1領域A1内でスワイプするタッチ操作が行われた場合、プレイヤオブジェクトPOが右に移動方向を変化させる。また、横持ちされた表示部35の第1領域A1に設定された左側基準座標を基準として、左方向に第1領域A1内でスワイプするタッチ操作が行われた場合、プレイヤオブジェクトPOが左に移動方向を変化させる。例えば、図13において、第1領域A1内に設定された左側基準座標を示す左側基準位置RLと現在の第1領域A1内のタッチ位置を示す左側タッチ位置TLとが図示されており(実際には、左側基準位置および現在の左側タッチ位置を示す画像は表示部35に表示されないが、図13では左側基準位置を示す左側基準位置RLおよび左側タッチ位置を示す左側タッチ位置TLをそれぞれ破線で便宜上図示している)、左側基準位置RLに対して左側タッチ位置TLが左方向に配置されているため、プレイヤオブジェクトPOが左に移動方向を変化させる。なお、第2モードでは、第1領域A1内の左側基準座標を基準として、表示部35の上下方向に第1領域A1内でスワイプするタッチ操作が行われたとしても、アイテムIを発射する動作は行われない。すなわち、横持ちされた表示部35の第1領域A1に対するスワイプ入力において、当該スワイプ入力に上下方向成分が含まれていたとしても、アイテムIの発射動作の制御が行われることはなく、第1領域A1は、タッチ操作に応じてプレイヤオブジェクトPOの移動方向を変化させるためのタッチ操作専用領域として作用する。
また、横持ちされた表示部35においても、プレイヤオブジェクトPOの移動に関連する制御を指示するための態様切替ボタンIBが第1領域A1内に表示される。ここで、態様切替ボタンIBは、第1モードと同様に上記スワイプするタッチ操作に対応するプレイヤオブジェクトPOの移動(走行)態様を選択するためのタッチ領域を示す画像である。第2モードにおける態様切替ボタンIBは、表示部35を横持ちした場合の第1領域A1の下部中央付近に表示されることによって、第1領域A1のタッチ操作に用いられる円形領域を当該位置に示し、選択可能な走行態様(図13の例では「ドリフト」)が当該円形領域内部に記述されている。つまり、第2モードにおける態様切替ボタンIBは、第1モードと比べて第1領域A1側に移動させて表示されることになる。そして、態様切替ボタンIBが示す円形領域内部でタッチオンしてスワイプする操作が行われた場合、第1モードと同様に当該態様切替ボタンIBが指定する走行態様によってプレイヤオブジェクトPOが当該スワイプされた方向に移動方向を変化させる。また、態様切替ボタンIBが示す第1領域A1の円形領域外部でタッチオンしてスワイプする操作が行われた場合、当該態様切替ボタンIBが指定する走行態様とは異なる走行態様によってプレイヤオブジェクトPOが当該スワイプされた方向に移動方向を変化させる。なお、第2モードにおいても、態様切替ボタンIBを用いて指定可能な走行態様は、ユーザ操作に応じて予め指定可能であってもよい。また、第2モードにおいても、異なる走行態様をそれぞれ示す複数の態様切替ボタンIBが第1領域A1内に表示されてもよい。
なお、横持ちされた表示部35の第1領域A1に対するスワイプ入力が左右方向である場合にプレイヤオブジェクトPOの移動方向を変化させる方法および処理については、第1領域A1内でタッチ操作が行われている限り、上述した第1モードと同様であるため、詳細な説明を省略する。また、上述した第1モードにおける基準座標R0と同様に、第1領域A1内に対してタッチオンされた位置に左側基準座標RL0が設定される。また、上述した第1モードにおける現タッチ位置座標Tに基づいて(例えば、追従して)設定される基準座標Rmと同様に、第1領域A1内における左側タッチ位置座標TLに追従して左側基準座標RLmが設定される。これらの第1領域A1に設定される左側基準座標RL0および左側基準座標RLmについても、上述した第1モードにおいて設定される基準座標R0および基準座標Rmと同様にそれぞれ設定されるため、詳細な説明を省略する。
ここで、第2モードにおいて、ハンドル操作を行うために算出される横持ちされた表示部35の第1領域A1に対するスワイプ入力における表示画面の左右方向成分の大きさは、表示部35が90°ロール回転しているため、第1領域A1に設定された左側基準座標(例えば、第1領域A1にタッチオンされた左側基準座標RL0)と、継続して行われているスワイプ操作における現在の左側タッチ位置座標TLとの差における第2軸(長軸)方向成分の大きさが用いられることになる。なお、第2モードにおいても、上記左右方向成分の大きさを算出するための左側基準座標は、現在の左側タッチ位置座標TLに追従して移動する左側基準座標RLmが用いられてもかまわない。この場合、スワイプ入力における第1領域A1の左右方向成分の大きさは、現在の左側タッチ位置座標TLに追従して移動する左側基準座標RLmと、タッチオンから継続して行われているスワイプ操作における現在の左側タッチ位置座標TLとの差における第2軸(長軸)方向成分の大きさが用いられる。
また、第2モードでは、横持ちされた表示部35の第2領域A2内をタッチ操作することによって、プレイヤオブジェクトPOが所持しているアイテムIを発射する動作を制御することができる。例えば、横持ちされた表示部35の第2領域A2に対して上方向にスワイプするタッチ操作が行われると、プレイヤオブジェクトPOの使用準備位置に配置されている使用準備アイテムIPが発射可能な種類である場合、発射アイテムIMとなってプレイヤオブジェクトPOの前方に発射される。また、使用準備位置に配置されている使用準備アイテムIPの種類(例えば、バナナのアイテム)によって、横持ちされた表示部35の第2領域A2に対して下方向にスワイプするタッチ操作が行われた場合、プレイヤオブジェクトPOの後方に発射アイテムIMを発射することもできる。
横持ちされた表示部35の第2領域A2内に設定される右側基準座標を基準とする第2領域A2内のスワイプ入力における表示画面の上下方向成分に応じて、アイテムIの発射動作が制御される。例えば、図13において、第2領域A2内に設定されている右側基準座標を示す右側基準位置RRと現在の第2領域A2内のタッチ位置を示す右側タッチ位置TRとが図示されており(実際には、右側基準位置および現在の右側タッチ位置を示す画像は表示部35に表示されないが、図13では右側基準位置を示す右側基準位置RRおよび右側タッチ位置を示す右側タッチ位置TRをそれぞれ破線で便宜上図示している)、右側基準位置RRに対して上側にスワイプ操作されることにより右側タッチ位置TRが右側基準位置RRの上側に配置されているため、プレイヤオブジェクトPOの前方に発射アイテムIMが発射されている。なお、第2モードでは、第2領域A2内の右側基準座標を基準として、表示部35の左右方向に第2領域A2内でスワイプするタッチ操作が行われたとしても、プレイヤオブジェクトPOの移動方向の制御は行われない。すなわち、横持ちされた表示部35の第2領域A2に対するスワイプ入力において、当該スワイプ入力に左右方向成分が含まれていたとしても、プレイヤオブジェクトPOの移動方向の制御が行われることはなく、第2領域A2は、タッチ操作に応じてアイテムIの発射動作を制御するためのタッチ操作専用領域として作用する。
また、横持ちされた表示部35においても、アイテムIの発射動作の制御に関連する制御を指示するためのアイテム抽選アイコンABが第2領域A2内に表示される。ここで、アイテム抽選アイコンABは、第1モードと同様に新たにアイテムIを取得するための抽選演出を行うためのユーザ指示を受け付ける操作ボタンである。第2モードにおけるアイテム抽選アイコンABは、表示部35を横持ちした場合の第2領域A2の上部中央付近に表示される。つまり、第2モードにおけるアイテム抽選アイコンABは、第1モードと比べて第2領域A2側に移動させて表示されることになる。そして、アイテム抽選アイコンABを選択する操作が行われた場合、アイテム抽選アイコンABおよび価格情報Mに代わって所持枠HFが出現し、全所持枠HF内において、回転抽選表示状態を示す回転表示アイテムIRが表示された後、各枠において何れか1つのアイテムIを停止表示させることによって、停止表示されたアイテムIが抽選で確定して取得されたことが示される。
なお、第2モードにおいても、アイテム抽選方法やアイテムの使用方法については第1モードと同様であるため、詳細な説明を省略する。また、横持ちされた表示部35の第2領域A2に対するスワイプ入力が上下方向である場合にアイテムIを発射させる方法および処理については、第2領域A2内でタッチ操作が行われている限り、上述した第1モードと同様であるため、詳細な説明を省略する。また、上述した第1モードにおける基準座標R0と同様に、第2領域A2内に対してタッチオンされた位置に右側基準座標RR0が設定される。また、上述した第1モードにおける現タッチ位置座標Tに基づいて(例えば、追従して)設定される基準座標Rmと同様に、第2領域A2内における右側タッチ位置座標TRに追従して右側基準座標RRmが設定される。これらの第2領域A2に設定される右側基準座標RR0および右側基準座標RRmについても、上述した第1モードにおいて設定される基準座標R0および基準座標Rmと同様にそれぞれ設定されるため、詳細な説明を省略する。
ここで、第2モードにおいて、アイテムIの発射制御を行うために算出される横持ちされた表示部35の第2領域A2に対するスワイプ入力における表示画面の上下方向成分は、表示部35が90°ロール回転しているため、第2領域A2に設定された右側基準座標(例えば、現在の右側タッチ位置座標TRに追従して移動する右側基準座標RRm)と、継続して行われているスワイプ操作における現在の右側タッチ位置座標TRとの差における第1軸(短軸)方向成分が用いられることになる。なお、第2モードにおいても、上記上下方向成分を算出するための右側基準座標は、第2領域A2内にタッチオンされた左側基準座標RR0が用いられてもかまわない。この場合、スワイプ入力における第2領域A2の上下方向成分は、タッチオンされた右側基準座標RR0と、当該タッチオンから継続して行われているスワイプ操作における現在の右側タッチ位置座標TRとの差における第1軸(短軸)方向成分が用いられる。
上述した第2モードにおけるプレイヤオブジェクトPOの移動方向制御とアイテムIの発射制御とは、並行して行うことができる。すなわち、第2モードでは、横持ちされた表示部35における第1領域A1を用いたタッチ操作に基づいてプレイヤオブジェクトPOの移動方向制御を行われている間であっても、第2領域A2を用いたタッチ操作に基づいてアイテムIの発射制御を行うことができるため、ユーザは左右の指でマルチタッチ操作をしながら複数の制御を同時進行することができる。
なお、第2モードにおいて第1領域A1および第2領域A2を跨ぐスワイプ操作が行われた場合、一方の領域に対するタッチ操作を用いた制御から当該跨いだ先の他方の領域に対するタッチ操作を用いた制御に切り替えられる。
例えば、第1領域A1内のスワイプ操作に応じたプレイヤオブジェクトPOの移動方向制御が行われている状態において、当該スワイプ操作によるタッチ座標が第2領域A2内に侵入した場合、第1領域A1内において設定されている各種タッチ座標データ(左側基準座標データ、現左側タッチ入力座標データ、左側タッチ履歴データ等)がクリアされて、当該侵入した第2領域A2内のスワイプ操作が用いられたアイテムIの発射制御に切り替えられる。一例として、第2領域A2内に対するタッチ操作が行われていない状態において、第1領域A1内から第2領域A2に侵入するスワイプ操作が行われた場合、侵入した第2領域A2内のスワイプ操作が用いられて切り替えられるアイテムIの発射制御では、第2領域A2に当該侵入した位置に右側基準座標RR0が新たに設定され、第2領域A2内における最新のタッチ入力座標TRと右側基準座標RR0または右側基準座標RRmとの間の上下方向成分が用いられる。他の例として、第2領域A2内に対するタッチ操作も行われている状態において、第1領域A1内から第2領域A2に侵入するスワイプ操作が行われて第2領域A2内に2つのタッチ入力座標が検出される状態となった場合、侵入した第2領域A2内のスワイプ操作を用いたアイテムIの発射制御では、当該2つのタッチ入力座標の中間位置となる座標を最新の右側タッチ入力座標TRとして、第2領域A2内に設定されている右側基準座標RR0または右側基準座標RRmとの間の上下方向成分が用いられる。
また、第2領域A2内のスワイプ操作に応じたアイテムIの発射制御が行われている状態において、当該スワイプ操作によるタッチ座標が第1領域A1内に侵入した場合、第2領域A2内において設定されている各種タッチ座標データ(右側基準座標データ、現右側タッチ入力座標データ、右側タッチ履歴データ等)がクリアされて、当該侵入した第1領域A1内のスワイプ操作が用いられたプレイヤオブジェクトPOの移動方向制御に切り替えられる。一例として、第1領域A1内に対するタッチ操作が行われていない状態において、第2領域A2内から第1領域A1に侵入するスワイプ操作が行われた場合、侵入した第1領域A1内のスワイプ操作が用いられて切り替えられるプレイヤオブジェクトPOの移動方向制御では、第1領域A1に当該侵入した位置に左側基準座標RL0が新たに設定され、第1領域A1内における最新のタッチ入力座標TLと左側基準座標RL0または左側基準座標RLmとの間の左右方向成分が用いられる。他の例として、第1領域A1内に対するタッチ操作も行われている状態において、第2領域A2内から第1領域A1に侵入するスワイプ操作が行われて第1領域A1内に2つのタッチ入力座標が検出される状態となった場合、侵入した第1領域A1内のスワイプ操作を用いたプレイヤオブジェクトPOの移動方向制御では、当該2つのタッチ入力座標の中間位置となる座標を最新の左側タッチ入力座標TLとして、第1領域A1内に設定されている左側基準座標RL0または左側基準座標RLmとの間の左右方向成分が用いられる。
なお、上述した説明では、スワイプ操作中に他の領域に侵入した場合、当該スワイプ操作されていた領域において設定されている各種タッチ座標データがクリアされる例を用いたが、当該各種タッチ座標データのクリアを行わなくてもかまわない。例えば、スワイプ操作によって選択されている走行態様に応じて(例えば、プレイヤオブジェクトPOがドリフト走行している場合)、当該スワイプ操作によるタッチ座標が第2領域A2内に侵入した場合、第1領域A1内において設定されている各種タッチ座標データ(左側基準座標データ、現左側タッチ入力座標データ、左側タッチ履歴データ等)を維持しながら、当該スワイプ操作による左右方向成分を0として当該走行態様によるプレイヤオブジェクトPOの走行を継続しつつ、第2領域A2内に侵入したスワイプ操作に応じて、アイテムIの発射制御が行われてもよい。この場合、上記スワイプ操作が第1領域A1内のタッチ入力に戻った際、第1領域A1内において維持されている各種タッチ座標データを用いて、プレイヤオブジェクトPOの移動方向制御が再度行われることになる。
ここで、横持ちされた表示部35に設定される第1領域A1と第2領域A2は、左右(表示部35の長軸方向)に並んで設定されている。また、第1領域A1に対するスワイプ操作は、その左右方向成分(表示部35の長軸方向成分)がプレイヤオブジェクトPOの移動方向制御に用いられ、その上下方向成分はプレイヤオブジェクトPOの移動方向制御(例えば、ハンドル制御やドリフト制御等)に用いられない。また、第2領域A2に対するスワイプ操作は、その上下方向成分(表示部35の短軸方向成分)がアイテムIの発射制御に用いられ、その左右方向成分はゲーム制御に用いられない。したがって、ユーザが第1領域A1におけるスワイプ操作の左右方向成分を用いたゲーム制御を行うつもりが、誤ってユーザが意図しない第2領域A2からスワイプ操作を開始してしまった場合であっても、ユーザが意図しない当該第2領域A2内のスワイプ操作が左右方向成分を生じさせる第1領域A1に向かうスワイプ操作になることが想定されるため、当該第2領域A2内のスワイプ操作ではアイテムIの発射制御が行われないことになる。したがって、上記スワイプ操作によるゲーム制御をユーザの意図に沿ったものに即座に切り替えることを可能にするとともに、当該スワイプ操作の途中で変更中の操作対象が他の操作対象に変更されることがないため、操作結果において混乱が生じることを防止することができる。また、ユーザが第2領域A2におけるスワイプ操作の上下方向成分を用いたゲーム制御を行うつもりが、誤ってユーザが意図しない第1領域A1からスワイプ操作を開始してしまった場合であっても、ユーザが上下方向成分を用いたゲーム制御が第2領域A2を用いることを理解しているため、表示画面の中心より少し左側となる第1領域A1内でタッチ操作を開始したとしてもその右側となる第2領域A2内にタッチ位置を移動させると考えられ、その際に制御対象を切り替えることで第1領域A1を用いた制御が継続することなく、その後第2領域A2を用いた制御が行えることになる。
なお、上述した操作モードの変更において、表示部35の縦持ち操作で用いられる第1モードにおけるプレイヤオブジェクトPOの移動方向制御では、スワイプ入力における第1領域A1の左右方向成分として表示部35の第1軸(短軸)方向成分が用いられている。また、表示部35の横持ち操作で用いられる第2モードにおけるアイテムIの発射制御では、スワイプ入力における第2領域A2の上下方向成分として表示部35の第1軸(短軸)方向成分が用いられている。つまり、表示部35を縦持ちする操作における左右方向成分として用いられる軸と、表示部35を横持ちする操作における上下方向成分として用いられる軸とが同じ軸となっているが、異なる軸が用いられてもかまわない。また、上述した操作モードの変更において、表示部35の縦持ち操作で用いられる第1モードにおけるアイテムIの発射制御では、スワイプ入力における第2領域A2の上下方向成分として表示部35の第2軸(長軸)方向成分が用いられている。また、表示部35の横持ち操作で用いられる第2モードにおけるプレイヤオブジェクトPOの移動方向制御では、スワイプ入力における第1領域A1の左右方向成分として表示部35の第2軸(長軸)方向成分が用いられている。つまり、表示部35を縦持ちする操作における上下方向成分として用いられる軸と、表示部35を横持ちする操作における左右方向成分として用いられる軸とが同じ軸となっているが、異なる軸が用いられてもかまわない。
また、上述した実施例では、実空間における情報処理装置3(表示部35)の姿勢に基づいて、操作モードを切り替えているが、他の態様によって操作モードが切り替えられてもかまわない。一例として、複数の操作モードを示す選択肢からユーザが選択することによって、操作モードが切り替えられてもよい。他の例として、タッチパネルに対してタッチ操作されている数に基づいて、操作モードが切り替えられてもよい。一例として、タッチパネルに対してタッチ操作されている数が1つである場合に第1モードが選択され、タッチパネルに対してタッチ操作されている数が2つである場合に第2モードが選択されてもよい。
また、上述したスワイプ操作をガイドする画像を表示部35に表示してもかまわない。この場合、表示するガイド画像は、選択されている操作モードに応じた表示位置に表示することが考えられる。例えば、表示部35を縦持ちして操作する第1モードでは、左右方向へのスワイプ操作によってプレイヤオブジェクトPOの移動方向が変化することをガイドする画像と上下方向へのスワイプ操作によってアイテムIが発射されることをガイドする画像とを、表示画面の下部中央付近に表示することが考えられる。また、表示部35を横持ちして操作する第2モードでは、左右方向へのスワイプ操作によってプレイヤオブジェクトPOの移動方向が変化することをガイドする画像を第1領域A1の下部中央付近に表示し、上下方向へのスワイプ操作によってアイテムIが発射されることをガイドする画像を、第2領域A2の下部中央付近に表示することが考えられる。
また、タッチ領域における第1領域A1と第2領域A2との間に、何れの領域にも属さない間隙が設けられてもかまわない。この場合、第1領域A1内または第2領域A2内のスワイプ操作によるタッチ操作が上記間隙に逸脱した場合、第1領域A1内または第2領域A2内において設定されている各種タッチ座標データ(基準座標データ、現タッチ入力座標データ、タッチ履歴データ等)がクリアされて、当該スワイプ操作による制御処理が解除されてもよい。そして、上記間隙から第1領域A1内または第2領域A2内に侵入するスワイプ操作が行われた場合、当該侵入した位置を基準位置として当該侵入した領域を用いた制御処理が開始されてもよい。
また、上述した実施例では、スワイプ操作における左右方向成分または上下方向成分を用いてゲーム処理が行われる例を用いたが、他のタッチ操作態様を適用してもかまわない。例えば、途中で一旦タッチオフされるスワイプ操作であっても、同じ領域内でタッチ操作されている場合は、1つのスワイプ操作として取り扱って上述した処理を適用してもかまわない。この場合、第1領域A1内または第2領域A2内において設定されている各種タッチ座標データ(基準座標データ、現タッチ入力座標データ、タッチ履歴データ等)は、タッチオフされたとしても一定期間内において保持され、再度タッチオンされた場合に当該タッチ座標データが利用されてもよい。
また、上述した実施例では、スワイプ操作の左右方向成分に応じて、プレイヤオブジェクトPOの移動方向が制御される例を用いたが、第1モードおよび第2モードの何れにおいても他の操作によってさらにプレイヤオブジェクトPOの移動方向が制御可能であってもかまわない。例えば、情報処理装置3(表示部35)全体を表示画面奥行方向周りに左右にロールする操作に応じて、プレイヤオブジェクトPOの移動方向が左右に変更可能であってもよい。このような情報処理装置3(表示部35)全体の姿勢を変化させる操作は、慣性センサ37からの出力を用いて実空間の重力方向を基準とした情報処理装置3(表示部35)全体の姿勢を算出することによって検出可能であり、重力方向を基準とした上記ロール角度に基づいてプレイヤオブジェクトPOの移動方向を制御することができる。
また、上述した実施例では、横持ちされた表示部35におけるタッチ領域全体を左右に分割することによって、2つのタッチ領域(第1領域A1および第2領域A2)を設定しているが、タッチ領域全体を上下に分割することよって2つのタッチ領域をそれぞれ設定してもよい。例えば、表示部35におけるタッチ領域全体の上側半分領域をユーザの右手でタッチ操作する領域として設定し、当該タッチ領域全体の下側半分領域をユーザの左手でタッチ操作する領域として設定することによって、ユーザにとって好適なタッチ操作領域を設定することができる。
次に、情報処理装置3において行われる処理の詳細を説明する。まず、図14を参照して、情報処理装置3において行われる処理において用いられる主なデータについて説明する。なお、図14は、情報処理装置3の記憶部32に記憶される主なデータおよびプログラムの一例を示す図である。
図14に示すように、記憶部32のデータ記憶領域には、操作データDa、操作モードデータDb、縦持ち操作内容データDc、左側操作内容データDd、右側操作内容データDe、ハンドル角度データDf、発射方向データDg、プレイヤオブジェクト動作データDh、敵オブジェクト動作データDi、アイテム位置データDj、および画像データDk等が記憶される。なお、記憶部32には、図14に示す情報に含まれるデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータが記憶される。また、記憶部32のプログラム記憶領域には、情報処理プログラム(ゲームプログラム)等を構成する各種プログラム群Paが記憶される。
操作データDaは、ユーザが情報処理装置3を操作した操作情報を示すデータである。例えば、タッチパネルを含む入力部34を操作したことを示す操作データは、情報処理装置3が処理する時間単位(例えば、1/60秒)毎に取得され、当該取得に応じて操作データDaに格納されて更新される。また、情報処理装置3(表示部35)を動かす操作によって慣性センサ37が検出した操作データも、情報処理装置3が処理する時間単位毎に取得され、当該取得に応じて操作データDaに格納されて更新される。
操作モードデータDbは、設定されている操作モードを示すデータであり、具体的には現時点の操作モードが第1モードおよび第2モードの何れであるのかを示すデータである。
縦持ち操作内容データDcは、表示部35が縦持ちで操作されている場合の操作内容(第1モードにおける操作内容)を示すデータであり、現タッチ入力座標データDc1、タッチ軌跡座標データDc2、第1基準座標データDc3、第2基準座標データDc4、左右方向成分データDc5、入力長さデータDc6、入力ベクトルデータDc7、および判定領域データDc8等を含んでいる。
現タッチ入力座標データDc1は、第1モードにおいて入力部34(タッチパネル)を現時点でタッチ操作している現タッチ位置座標Tを示すデータである。タッチ軌跡座標データDc2は、タッチパネルに対してタッチオンしてから現時点までのタッチ入力座標の履歴(タッチ軌跡座標)を示すデータである。第1基準座標データDc3は、タッチパネルに対してタッチオンしたタッチ入力座標を示すデータであり、スワイプ入力における左右方向成分を算出するための第1基準座標(基準座標R0)を示すデータである。第2基準座標データDc4は、所定の条件を満たすようにタッチ軌跡座標上を移動するタッチ入力座標を示すデータであり、スワイプ入力における上下方向成分を算出するための第2基準座標(基準座標Rm)を示すデータである。なお、上述したように、第1モードにおけるスワイプ入力における左右方向成分は、第2基準座標Rmを基準として算出されてもかまわない。
左右方向成分データDc5は、第1モードにおいて入力されたスワイプ入力の左右方向成分を示すデータである。
入力長さデータDc6は、第1モードにおいて入力されたタッチ位置の軌跡の長さを示すデータである。入力ベクトルデータDc7は、基準座標Rmから現タッチ位置座標Tに向かうベクトルFDを示すデータである。
判定領域データDc8は、上方向または下方向のスワイプ入力を判定するための判定領域UAおよびLAを示すデータである。
左側操作内容データDdは、表示部35が横持ちで操作されている場合の第1領域A1を用いた操作内容(第2モードにおいて第1領域A1をタッチ操作した操作内容)を示すデータであり、現左側タッチ入力座標データDd1、左側タッチ軌跡座標データDd2、左側第1基準座標データDd3、左側第2基準座標データDd4、左右方向成分データDd5、および左側入力長さデータDd6等を含んでいる。
現左側タッチ入力座標データDd1は、第2モードにおいて入力部34(タッチパネル)の第1領域A1を現時点でタッチ操作している現左側タッチ位置座標TLを示すデータである。左側タッチ軌跡座標データDd2は、第1領域A1に対してタッチオンしてから現時点までの第1領域A1内のタッチ入力座標の履歴(タッチ軌跡座標)を示すデータである。左側第1基準座標データDd3は、第1領域A1に対してタッチオンしたタッチ入力座標を示すデータであり、第1領域A1のスワイプ入力における左右方向成分を算出するための左側基準座標(左側基準座標RL0)を示すデータである。左側第2基準座標データDd4は、所定の条件を満たすように第1領域A1内のタッチ軌跡座標上を移動するタッチ入力座標を示すデータであり、左側基準座標(左側基準座標RLm)を示すデータである。なお、上述したように、第2モードにおけるスワイプ入力における左右方向成分は、左側基準座標RLmを基準として算出されてもかまわない。
左右方向成分データDd5は、第2モードにおいて第1領域A1に入力されたスワイプ入力の左右方向成分を示すデータである。
左側入力長さデータDd6は、第2モードにおいて第1領域A1に入力されたタッチ位置の軌跡の長さを示すデータである。
右側操作内容データDeは、表示部35が横持ちで操作されている場合の第2領域A2を用いた操作内容(第2モードにおいて第2領域A2をタッチ操作した操作内容)を示すデータであり、現右側タッチ入力座標データDe1、右側タッチ軌跡座標データDe2、右側第1基準座標データDe3、右側第2基準座標データDe4、右側入力長さデータDe5、入力ベクトルデータDe6、および判定領域データDe7等を含んでいる。
現右側タッチ入力座標データDe1は、第2モードにおいて入力部34(タッチパネル)の第2領域A2を現時点でタッチ操作している現右側タッチ位置座標TRを示すデータである。右側タッチ軌跡座標データDe2は、第2領域A2に対してタッチオンしてから現時点までの第2領域A2内のタッチ入力座標の履歴(タッチ軌跡座標)を示すデータである。右側第1基準座標データDe3は、第2領域A2に対してタッチオンしたタッチ入力座標を示すデータであり、右側基準座標(右側基準座標RR0)を示すデータである。右側第2基準座標データDe4は、所定の条件を満たすように第2領域A2内のタッチ軌跡座標上を移動するタッチ入力座標を示すデータであり、第2領域A2のスワイプ入力における上下方向成分を算出するための右側基準座標(右側基準座標RRm)を示すデータである。
右側入力長さデータDe5は、第2モードにおいて第2領域A2に入力されたタッチ位置の軌跡の長さを示すデータである。
入力ベクトルデータDe6は、右側基準座標RRmから現右側タッチ位置座標TRに向かうベクトルFDを示すデータである。
判定領域データDe7は、第2領域A2における上方向または下方向のスワイプ入力を判定するための判定領域UAおよびLAを示すデータである。
ハンドル角度データDfは、上記スワイプ入力の左右方向成分に基づいて算出される、プレイヤオブジェクトPOのハンドル角度を示すデータである。発射方向データDgは、プレイヤオブジェクトPOが発射する発射アイテムIMの方向を示すデータである。
プレイヤオブジェクト動作データDhは、プレイヤオブジェクトPOの動作を示すデータであり、レース中のプレイヤオブジェクトPOの位置、速度、姿勢、周回回数、順位等を示すデータも含んでいる。敵オブジェクト動作データDiは、敵オブジェクトEOの動作を示すデータであり、レース中の敵オブジェクトEOの位置、速度、姿勢、周回回数、順位等を示すデータも含んでいる。アイテム位置データDjは、使用準備位置に配置されているアイコンI(使用準備アイテムIP)の位置や発射されたアイコンI(発射アイテムIM)の位置を示すデータである。
画像データDkは、ゲームの際に情報処理装置3の表示部35にゲーム画像(例えば、プレイヤオブジェクトPOの画像、敵オブジェクトEOの画像、アイテムIの画像、所持枠HFの画像、アイテム抽選アイコンABの画像、他の仮想オブジェクトの画像、コース等のフィールド画像、背景画像等)を表示するためのデータである。
次に、図15~図18を参照して、情報処理装置3において行われる処理の詳細を説明する。なお、図15は、情報処理装置3において実行される処理の一例を示すフローチャートである。図16は、図15のステップS105における縦持ち操作内容判定処理の詳細な一例を示すサブルーチンである。図17は、図15のステップS106における左側操作内容判定処理の詳細な一例を示すサブルーチンである。図18は、図15のステップS107における右側操作内容判定処理の詳細な一例を示すサブルーチンである。ここで、図15~図18に示すフローチャートにおいては、情報処理システム1における処理のうち、一例としてプレイヤオブジェクトPOに対する制御に関連するゲーム処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、図15~図18では、制御部31が実行する各ステップを「S」と略称する。
本実施例においては、図15~図18に示す一連の処理は、制御部31(CPU)が、プログラム記憶部33に記憶されるゲームプログラム等を実行することによって行われる。なお、図15~図18に示す処理が開始されるタイミングは任意である。このとき、ゲームプログラムは、適宜のタイミングでその一部または全部が記憶部32に読み出され、制御部31によって実行される。これによって、図15~図18に示す一連の処理が開始される。なお、ゲームプログラムは、プログラム記憶部33に予め記憶されているものとする。ただし、他の実施例においては、情報処理装置3に着脱可能な記憶媒体から取得されて記憶部32に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されて記憶部32に記憶されてもよい。
また、図15~図18に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理を制御部31が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記制御部31のCPU以外のプロセッサや専用回路が実行するようにしてもよい。
図15において、制御部31は、初期設定を行い(ステップS101)、次のステップに処理を進める。例えば、制御部31は、以降の処理に用いる各パラメータを初期化する。
次に、制御部31は、入力部34および慣性センサ37から操作データを取得して操作データDaを更新し(ステップS102)、次のステップに処理を進める。
次に、制御部31は、操作データDaを参照して、操作モードを判定する処理を行い(ステップS103)、次のステップに処理を進める。例えば、制御部31は、操作データDaが示す慣性センサ37が検出した検出結果(加速度センサが検出した3軸方向に沿った加速度および/または角速度センサが検出した3軸回りの角速度)に基づいて、任意の方法を用いて情報処理装置3(表示部35)に作用している重力加速度の方向を算出する。そして、制御部31は、表示部35に作用している重力加速度の方向が表示部35の短軸方向より長軸方向に近い場合、情報処理装置3(表示部35)が縦持ちされていると判定して、操作モードを第1モードに設定して操作モードデータDbを更新する。また、制御部31は、表示部35に作用している重力加速度の方向が表示部35の長軸方向より短軸方向に近い場合、情報処理装置3(表示部35)が横持ちされていると判定して、操作モードを第2モードに設定して操作モードデータDbを更新する。
次に、制御部31は、操作モードデータDbを参照して、現時点の操作モードが第1モードであるか否かを判定する(ステップS104)。そして、制御部31は、現時点の操作モードが第1モードである場合、ステップS105に処理を進める。一方、制御部31は、現時点の操作モードが第2モードである場合、ステップS106に処理を進める。
ステップS105において、制御部31は、縦持ち操作内容判定処理を行い、ステップS108に処理を進める。以下、図16を参照して、上記ステップS105において行われる縦持ち操作内容判定処理について説明する。
図16において、制御部31は、上記ステップS102において取得した最新の操作データに基づいて、現タッチ位置座標を更新して(ステップS121)、次のステップに処理を進める。例えば、制御部31は、表示部35の表示画面に、当該表示画面の左右方向(表示部35の短軸方向)となるX軸(右方向がX軸正方向)と当該表示画面の上下方向(表示部35の長軸方向)となるY軸(上方向がY軸正方向)とが設定された表示画面座標系を定義する。そして、制御部31は、上記ステップS102において取得した最新の操作データから、情報処理装置3のタッチパネルに対してタッチ操作されている上記表示画面座標系のタッチ入力座標を現タッチ入力座標Tとして取得し、当該現タッチ入力座標Tを用いて現タッチ入力座標データDc1を更新する。なお、制御部31は、上記ステップS102において取得した最新の操作データに、タッチパネルに対してタッチ操作されているタッチ入力座標が含まれない場合、タッチパネルに対してユーザがタッチオフしていると判定して、タッチオフを示すデータを用いて現タッチ入力座標データDc1を更新する。
次に、制御部31は、上記ステップS121において更新された現タッチ入力座標Tをタッチ軌跡座標に追加し(ステップS122)、次のステップに処理を進める。例えば、制御部31は、タッチ軌跡座標データDc2が示すタッチ軌跡座標に、上記ステップS121において更新された現タッチ入力座標Tを追加し、当該追加後のタッチ軌跡座標を用いてタッチ軌跡座標データDc2を更新する。なお、制御部31は、現タッチ入力座標データDc1がタッチオフを示す場合、タッチ軌跡座標データDc2を更新することなく次のステップに処理を進める。
次に、制御部31は、情報処理装置3のタッチパネルがタッチオフ状態からタッチオン状態となったか否かを判定する(ステップS123)。そして、制御部31は、タッチパネルがタッチオフ状態からタッチオン状態となった場合、ステップS124に処理を進める。一方、制御部31は、タッチパネルがタッチオフ状態からタッチオン状態となっていない場合(例えば、タッチオフ中やタッチオンされた後に継続してタッチ操作中である場合)、ステップS125に処理を進める。
ステップS124において、制御部31は、第1基準座標および第2基準座標を設定し、ステップS125に処理を進める。例えば、制御部31は、現タッチ入力座標データDc1を参照して、上記ステップS121において更新された現タッチ入力座標Tを取得し、当該現タッチ入力座標Tを上記表示画面座標系の第1基準座標R0および第2基準座標Rmとしてそれぞれ設定する。そして、制御部31は、設定された第1基準座標R0を用いて第1基準座標データDc3を更新し、設定された第2基準座標Rmを用いて第2基準座標データDc4を更新する。
ステップS125において、制御部31は、タッチパネルに対するスワイプ入力の左右方向成分を算出し、次のステップに処理を進める。例えば、制御部31は、第1基準座標データDc3および現タッチ入力座標データDc1を参照して、上記表示画面座標系における第1基準座標R0(X0、Y0)と現タッチ位置座標T(Xt、Yt)とを取得する。そして、制御部31は、スワイプ入力における表示画面の左右方向成分(X軸方向成分)の大きさとして、Xt-X0を算出し、当該算出されたXt-X0を用いて左右方向成分データDc5を更新する。なお、タッチパネルに対するスワイプ入力の左右方向成分を算出するために、第2基準座標Rmを用いる場合、制御部31は、第2基準座標データDc4および現タッチ入力座標データDc1を参照して、上記表示画面座標系における第2基準座標Rm(Xm、Ym)と現タッチ位置座標T(Xt、Yt)とを取得する。そして、制御部31は、スワイプ入力における表示画面の左右方向成分(X軸方向成分)の大きさとして、Xt-Xmを算出し、当該算出されたXt-Xmを用いて左右方向成分データDc5を更新する。
次に、制御部31は、プレイヤオブジェクトPOのハンドル角度を算出し(ステップS126)、次のステップに処理を進める。例えば、制御部31は、上記ステップS125において算出された左右方向成分が正の値である場合、当該左右方向成分の絶対値に応じて右方向のハンドル角度を算出し、当該ハンドル角度を用いてハンドル角度データDfを更新する。また、制御部31は、上記ステップS125において算出された左右方向成分が負の値である場合、当該左右方向成分の絶対値に応じて左方向のハンドル角度を算出し、当該ハンドル角度を用いてハンドル角度データDfを更新する。なお、制御部31は、タッチパネルに対してタッチオフされている場合、所定の速度でハンドル角度を中立位置に戻すように変化させて、ハンドル角度データDfを更新する。
次に、制御部31は、第2基準座標Rmから現タッチ入力座標Tまでの入力長さを算出し(ステップS127)、次のステップに処理を進める。例えば、制御部31は、現タッチ入力座標データDc1、タッチ軌跡座標データDc2、および第2基準座標データDc4を参照して、タッチ入力軌跡に沿った第2基準座標Rmから現タッチ位置座標Tまでの入力長さを算出し、当該入力長さを用いて入力長さデータDc6を更新する。
次に、制御部31は、上記ステップS127において算出された入力長さが所定の閾値Lより長いか否かを判定する(ステップS128)。そして、制御部31は、上記入力長さが所定の閾値Lより長い場合、ステップS129に処理を進める。一方、制御部31は、上記入力長さが所定の閾値L以下である場合、ステップS130に処理を進める。
ステップS129において、制御部31は、上記入力長さが閾値L以下となるように第2基準座標Rmを移動させ、ステップS130に処理を進める。例えば、制御部31は、上記ステップS127において算出された入力長さが所定の速度で閾値L以下となるように、閾値Lより長くなるタッチ位置座標Tの履歴を所定の速度に基づいて順次削除し、当該削除処理に応じて最も古いタッチ位置座標Tとなった位置を第2基準座標Rmとして設定する。これによって、制御部31は、タッチ入力軌跡に沿って現タッチ位置座標Tの方向に第2基準座標Rmを移動させ、当該移動後の第2基準座標Rmを用いて第2基準座標データDc4を更新する。
ステップS130において、制御部31は、入力ベクトルFDを算出し、次のステップに処理を進める。例えば、制御部31は、現タッチ入力座標データDc1および第2基準座標データDc4を参照して、上記表示画面座標系において第2基準座標Rmから現タッチ位置座標Tに向かう入力ベクトルFDを算出し、当該入力ベクトルFDを用いて入力ベクトルデータDc7を更新する。
次に、制御部31は、入力ベクトルFDの長さが所定の長さ以上、かつ、当該入力ベクトルFDが示す方向が予め定められている判定領域内であるか否かを判定する(ステップS131)。そして、制御部31は、入力ベクトルFDの長さが所定の長さ以上、かつ、当該入力ベクトルFDが示す方向が上記判定領域内である場合、ステップS132に処理を進める。一方、制御部31は、入力ベクトルFDの長さが所定の長さ以上ではない、または入力ベクトルFDが示す方向が上記判定領域内でない場合、発射方向データDgが示す発射方向を消去して、ステップS133に処理を進める。例えば、制御部31は、判定領域データDc8を参照して、Y軸正方向を中心とする所定の角度範囲である前方判定領域UAと、Y軸負方向を中心とする所定の角度範囲である後方判定領域LAとを取得し、上記ステップS130において算出された入力ベクトルFDの長さが所定の長さ以上、かつ、入力ベクトルFDの方向が前方判定領域UA内または後方判定領域LA内にある場合、上記ステップS131において肯定判定する。
ステップS132において、制御部31は、発射方向を設定し、ステップS133に処理を進める。例えば、制御部31は、上記ステップS130において算出された入力ベクトルFDの方向が前方判定領域UA内である場合、プレイヤオブジェクトPOの真正面方向を発射方向に設定し、当該発射方向を用いて発射方向データDgを更新する。また、制御部31は、上記ステップS130において算出された入力ベクトルFDの方向が後方判定領域LA内である場合、プレイヤオブジェクトPOの真後ろ方向を発射方向に設定し、当該発射方向を用いて発射方向データDgを更新する。なお、制御部31は、Y軸方向と入力ベクトルFDの方向との角度差だけ、プレイヤオブジェクトPOの真正面方向または真後ろ方向からずれた方向を、上記発射方向として設定してもかまわない。
ステップS133において、制御部31は、情報処理装置3のタッチパネルがタッチ操作されている状態からタッチオフ状態となったか否かを判定する。そして、制御部31は、タッチパネルがタッチ操作されている状態からタッチオフ状態となった場合、ステップS134に処理を進める。一方、制御部31は、タッチパネルがタッチ操作されている状態からタッチオフ状態となっていない場合(例えば、タッチオフされてから継続してタッチ操作されていない場合、タッチオンされた場合、タッチオンされた後に継続してタッチ操作中である場合)、当該サブルーチンによる処理を終了する。
ステップS134において、制御部31は、第1基準座標R0、第2基準座標Rm、タッチ軌跡座標を消去して、当該サブルーチンによる処理を終了する。例えば、制御部31は、第1基準座標データDc3が示す第1基準座標R0、第2基準座標データDc4が示す第2基準座標Rm、およびタッチ軌跡座標データDc2が示すタッチ軌跡座標をそれぞれ消去する。
図15に戻り、上記ステップS104において、現時点の操作モードが第2モードであると判定された場合、制御部31は、左側操作内容判定処理を行い(ステップS106)、ステップS107に処理を進める。以下、図17を参照して、上記ステップS106において行われる左側操作内容判定処理について説明する。
図17において、制御部31は、上記ステップS102において取得した最新の操作データに基づいて、現左側タッチ位置座標を更新して(ステップS141)、次のステップに処理を進める。例えば、制御部31は、表示部35の表示画面に、当該表示画面の左右方向(表示部35の長軸方向)となるX軸(左方向がX軸正方向)と当該表示画面の上下方向(表示部35の短軸方向)となるY軸(上方向がY軸正方向)とが設定された表示画面座標系を定義する。そして、制御部31は、上記ステップS102において取得した最新の操作データから、第1領域A1に対してタッチ操作されている上記表示画面座標系のタッチ入力座標を現左側タッチ入力座標TLとして取得し、当該現左側タッチ入力座標TLを用いて現左側タッチ入力座標データDd1を更新する。なお、制御部31は、上記ステップS102において取得した最新の操作データに、第1領域A1に対してタッチ操作されているタッチ入力座標が2つ含まれている場合、当該タッチ入力座標の中間位置を現左側タッチ入力座標TLとして現左側タッチ入力座標データDd1を更新する。また、制御部31は、上記ステップS102において取得した最新の操作データに、第1領域A1に対してタッチ操作されているタッチ入力座標が含まれない場合、第1領域A1がタッチオフされていると判定して、タッチオフを示すデータを用いて現左側タッチ入力座標データDd1を更新する。なお、領域設定手段は、タッチ領域において互いに重ならず、第1軸方向に並ぶ第1領域および第2領域を設定する処理を行うものであり、一例としてステップS141の処理を行う制御部31に相当する。
次に、制御部31は、上記ステップS141において更新された現左側タッチ入力座標TLを左側タッチ軌跡座標に追加し(ステップS142)、次のステップに処理を進める。例えば、制御部31は、左側タッチ軌跡座標データDd2が示す左側タッチ軌跡座標に、上記ステップS141において更新された現左側タッチ入力座標TLを追加し、当該追加後の左側タッチ軌跡座標を用いて左側タッチ軌跡座標データDd2を更新する。なお、制御部31は、現左側タッチ入力座標データDd1がタッチオフを示す場合、左側タッチ軌跡座標データDd2を更新することなく次のステップに処理を進める。
次に、制御部31は、第1領域A1に対するタッチ操作が開始されたか否かを判定する(ステップS143)。例えば、制御部31は、第1領域A1にタッチオンされた場合や第2領域A2から第1領域A1に跨ぐタッチ操作が行われた場合、上記ステップS143において肯定判定する。そして、制御部31は、第1領域A1に対するタッチ操作が開始された場合、ステップS144に処理を進める。一方、制御部31は、第1領域A1に対するタッチ操作が開始されていない場合(例えば、第1領域A1内がタッチ操作されていない場合や第1領域A1に対して継続してタッチ操作中である場合)、ステップS145に処理を進める。
ステップS144において、制御部31は、左側第1基準座標および左側第2基準座標を設定し、ステップS125に処理を進める。例えば、制御部31は、現左側タッチ入力座標データDd1を参照して、上記ステップS141において更新された現左側タッチ入力座標TLを取得し、当該現左側タッチ入力座標TLを上記表示画面座標系の左側第1基準座標RL0および左側第2基準座標RLmとしてそれぞれ設定する。そして、制御部31は、設定された左側第1基準座標RL0を用いて左側第1基準座標データDd3を更新し、設定された左側第2基準座標RLmを用いて左側第2基準座標データDd4を更新する。
ステップS145において、制御部31は、第1領域A1に対するスワイプ入力の左右方向成分を算出し、次のステップに処理を進める。例えば、制御部31は、左側第1基準座標データDd3および現左側タッチ入力座標データDd1を参照して、上記表示画面座標系における左側第1基準座標RL0(XL0、YL0)と現左側タッチ位置座標TL(XtL、YtL)とを取得する。そして、制御部31は、スワイプ入力における表示画面の左右方向成分(X軸方向成分)の大きさとして、XtL-XL0を算出し、当該算出されたXtL-XL0を用いて左右方向成分データDd5を更新する。なお、タッチパネルに対するスワイプ入力の左右方向成分を算出するために、左側第2基準座標RLmを用いる場合、制御部31は、左側第2基準座標データDd4および現左側タッチ入力座標データDd1を参照して、上記表示画面座標系における左側第2基準座標RLm(XLm、YLm)と現タッチ位置座標T(XtL、YtL)とを取得する。そして、制御部31は、スワイプ入力における表示画面の左右方向成分(X軸方向成分)の大きさとして、XtL-XLmを算出し、当該算出されたXtL-XLmを用いて左右方向成分データDd5を更新する。
次に、制御部31は、プレイヤオブジェクトPOのハンドル角度を算出し(ステップS146)、次のステップに処理を進める。例えば、制御部31は、上記ステップS145において算出された左右方向成分が正の値である場合、当該左右方向成分の絶対値に応じて右方向のハンドル角度を算出し、当該ハンドル角度を用いてハンドル角度データDfを更新する。また、制御部31は、上記ステップS145において算出された左右方向成分が負の値である場合、当該左右方向成分の絶対値に応じて左方向のハンドル角度を算出し、当該ハンドル角度を用いてハンドル角度データDfを更新する。なお、制御部31は、第1領域A1内がタッチ操作されていない場合、所定の速度でハンドル角度を中立位置に戻すように変化させて、ハンドル角度データDfを更新する。なお、第1制御手段は、第1領域基準座標が設定された後に行われた第1領域内での座標入力の座標と当該第1領域基準座標との差の第1軸方向の成分に基づき、第1制御の方向を決定する処理を行うものであり、一例としてステップS146の処理を行う制御部31に相当する。
次に、制御部31は、左側第2基準座標RLmから現左側タッチ入力座標TLまでの左側入力長さを算出し(ステップS147)、次のステップに処理を進める。例えば、制御部31は、現左側タッチ入力座標データDd1、左側タッチ軌跡座標データDd2、および左側第2基準座標データDd4を参照して、左側タッチ入力軌跡に沿った左側第2基準座標RLmから現左側タッチ位置座標TLまでの左側入力長さを算出し、当該左側入力長さを用いて左側入力長さデータDd6を更新する。
次に、制御部31は、上記ステップS147において算出された左側入力長さが所定の閾値Lより長いか否かを判定する(ステップS148)。そして、制御部31は、上記左側入力長さが所定の閾値Lより長い場合、ステップS149に処理を進める。一方、制御部31は、上記左側入力長さが所定の閾値L以下である場合、ステップS150に処理を進める。
ステップS149において、制御部31は、上記左側入力長さが閾値L以下となるように左側第2基準座標RLmを移動させ、ステップS150に処理を進める。例えば、制御部31は、上記ステップS157において算出された左側入力長さが所定の速度で閾値L以下となるように、閾値Lより長くなる左側タッチ位置座標TLの履歴を所定の速度に基づいて順次削除し、当該削除処理に応じて最も古い左側タッチ位置座標TLとなった位置を左側第2基準座標RLmとして設定する。これによって、制御部31は、左側タッチ入力軌跡に沿って現左側タッチ位置座標TLの方向に左側第2基準座標RLmを移動させ、当該移動後の左側第2基準座標RLmを用いて左側第2基準座標データDd4を更新する。なお、基準設定手段は、第1領域内で行われた座標入力に基づいて当該第1領域内に基準座標として第1領域基準座標を設定する処理を行うものであり、一例としてステップS144およびS149の処理を行う制御部31に相当する。
ステップS150において、制御部31は、第1領域A1に対するタッチ操作が終了したか否かを判定する。例えば、制御部31は、第1領域A1からタッチオフされた場合や第1領域A1から第2領域A2に跨ぐタッチ操作が行われた場合、上記ステップS150において肯定判定する。そして、制御部31は、第1領域A1に対するタッチ操作が終了した場合、ステップS151に処理を進める。一方、制御部31は、第1領域A1に対するタッチ操作が終了していない場合(例えば、第1領域A1に対するタッチ操作が継続して行われていない場合、第1領域A1にタッチオンされた場合、第1領域A1にタッチオンされた後に継続して第1領域A1内をタッチ操作中である場合)、当該サブルーチンによる処理を終了する。
ステップS151において、制御部31は、左側第1基準座標RL0、左側第2基準座標RLm、左側タッチ軌跡座標を消去して、当該サブルーチンによる処理を終了する。例えば、制御部31は、左側第1基準座標データDd3が示す左側第1基準座標RL0、左側第2基準座標データDd4が示す左側第2基準座標RLm、および左側タッチ軌跡座標データDd2が示す左側タッチ軌跡座標をそれぞれ消去する。
図15に戻り、上記ステップS106における左側操作内容判定処理の後、制御部31は、右側操作内容判定処理を行い(ステップS107)、ステップS108に処理を進める。以下、図18を参照して、上記ステップS107において行われる右側操作内容判定処理について説明する。
図18において、制御部31は、上記ステップS102において取得した最新の操作データに基づいて、現右側タッチ位置座標を更新して(ステップS161)、次のステップに処理を進める。例えば、制御部31は、上記ステップS102において取得した最新の操作データから、第2領域A2に対してタッチ操作されている上記表示画面座標系のタッチ入力座標を現右側タッチ入力座標TRとして取得し、当該現右側タッチ入力座標TRを用いて現右側タッチ入力座標データDe1を更新する。なお、制御部31は、上記ステップS102において取得した最新の操作データに、第2領域A2に対してタッチ操作されているタッチ入力座標が2つ含まれている場合、当該タッチ入力座標の中間位置を現右側タッチ入力座標TRとして現右側タッチ入力座標データDe1を更新する。また、制御部31は、上記ステップS102において取得した最新の操作データに、第2領域A2に対してタッチ操作されているタッチ入力座標が含まれない場合、第2領域A2がタッチオフされていると判定して、タッチオフを示すデータを用いて現右側タッチ入力座標データDe1を更新する。なお、領域設定手段は、タッチ領域において互いに重ならず、第1軸方向に並ぶ第1領域および第2領域を設定する処理を行うものであり、一例としてステップS161の処理を行う制御部31に相当する。
次に、制御部31は、上記ステップS161において更新された現右側タッチ入力座標TRを右側タッチ軌跡座標に追加し(ステップS142)、次のステップに処理を進める。例えば、制御部31は、右側タッチ軌跡座標データDe2が示す右側タッチ軌跡座標に、上記ステップS161において更新された現右側タッチ入力座標TRを追加し、当該追加後の右側タッチ軌跡座標を用いて右側タッチ軌跡座標データDe2を更新する。なお、制御部31は、現右側タッチ入力座標データDe1がタッチオフを示す場合、右側タッチ軌跡座標データDe2を更新することなく次のステップに処理を進める。
次に、制御部31は、第2領域A2に対するタッチ操作が開始されたか否かを判定する(ステップS163)。例えば、制御部31は、第2領域A2にタッチオンされた場合や第1領域A1から第2領域A2に跨ぐタッチ操作が行われた場合、上記ステップS163において肯定判定する。そして、制御部31は、第2領域A2に対するタッチ操作が開始された場合、ステップS164に処理を進める。一方、制御部31は、第2領域A2に対するタッチ操作が開始されていない場合(例えば、第2領域A2内がタッチ操作されていない場合や第2領域A2に対して継続してタッチ操作中である場合)、ステップS165に処理を進める。
ステップS164において、制御部31は、右側第1基準座標および右側第2基準座標を設定し、ステップS165に処理を進める。例えば、制御部31は、現右側タッチ入力座標データDe1を参照して、上記ステップS161において更新された現右側タッチ入力座標TRを取得し、当該現右側タッチ入力座標TRを上記表示画面座標系の右側第1基準座標RR0および右側第2基準座標RRmとしてそれぞれ設定する。そして、制御部31は、設定された右側第1基準座標RR0を用いて右側第1基準座標データDe3を更新し、設定された右側第2基準座標RRmを用いて右側第2基準座標データDe4を更新する。
ステップS165において、制御部31は、右側第2基準座標RRmから現右側タッチ入力座標TRまでの右側入力長さを算出し、次のステップに処理を進める。例えば、制御部31は、現右側タッチ入力座標データDe1、右側タッチ軌跡座標データDe2、および右側第2基準座標データDe4を参照して、右側タッチ入力軌跡に沿った右側第2基準座標RRmから現右側タッチ位置座標TRまでの右側入力長さを算出し、当該右側入力長さを用いて右側入力長さデータDe5を更新する。
次に、制御部31は、上記ステップS165において算出された右側入力長さが所定の閾値Lより長いか否かを判定する(ステップS166)。そして、制御部31は、上記右側入力長さが所定の閾値Lより長い場合、ステップS167に処理を進める。一方、制御部31は、上記右側入力長さが所定の閾値L以下である場合、ステップS168に処理を進める。
ステップS167において、制御部31は、上記右側入力長さが閾値L以下となるように右側第2基準座標RRmを移動させ、ステップS168に処理を進める。例えば、制御部31は、上記ステップS165において算出された右側入力長さが所定の速度で閾値L以下となるように、閾値Lより長くなる右側タッチ位置座標TRの履歴を所定の速度に基づいて順次削除し、当該削除処理に応じて最も古い右側タッチ位置座標TRとなった位置を右側第2基準座標RRmとして設定する。これによって、制御部31は、右側タッチ入力軌跡に沿って現右側タッチ位置座標TRの方向に右側第2基準座標RRmを移動させ、当該移動後の右側第2基準座標RRmを用いて右側第2基準座標データDe4を更新する。なお、基準設定手段は、第2領域内で行われた座標入力に基づいて当該第2領域内に基準座標として第2領域基準座標を設定する処理を行うものであり、一例としてステップS164およびS167の処理を行う制御部31に相当する。
ステップS168において、制御部31は、入力ベクトルFDを算出し、次のステップに処理を進める。例えば、制御部31は、現右側タッチ入力座標データDe1および右側第2基準座標データDe4を参照して、上記表示画面座標系において右側第2基準座標RRmから現右側タッチ位置座標TRに向かう入力ベクトルFDを算出し、当該入力ベクトルFDを用いて入力ベクトルデータDe6を更新する。
次に、制御部31は、入力ベクトルFDの長さが所定の長さ以上、かつ、当該入力ベクトルFDが示す方向が予め定められている判定領域内であるか否かを判定する(ステップS169)。そして、制御部31は、入力ベクトルFDの長さが所定の長さ以上、かつ、当該入力ベクトルFDが示す方向が上記判定領域内である場合、ステップS170に処理を進める。一方、制御部31は、入力ベクトルFDの長さが所定の長さ以上ではない、または入力ベクトルFDが示す方向が上記判定領域内でない場合、発射方向データDgが示す発射方向を消去して、ステップS171に処理を進める。例えば、制御部31は、判定領域データDe7を参照して、Y軸正方向を中心とする所定の角度範囲である前方判定領域UAと、Y軸負方向を中心とする所定の角度範囲である後方判定領域LAとを取得し、上記ステップS168において算出された入力ベクトルFDの長さが所定の長さ以上、かつ、入力ベクトルFDの方向が前方判定領域UA内または後方判定領域LA内にある場合、上記ステップS169において肯定判定する。
ステップS170において、制御部31は、発射方向を設定し、ステップS171に処理を進める。例えば、制御部31は、上記ステップS168において算出された入力ベクトルFDの方向が前方判定領域UA内である場合、プレイヤオブジェクトPOの真正面方向を発射方向に設定し、当該発射方向を用いて発射方向データDgを更新する。また、制御部31は、上記ステップS168において算出された入力ベクトルFDの方向が後方判定領域LA内である場合、プレイヤオブジェクトPOの真後ろ方向を発射方向に設定し、当該発射方向を用いて発射方向データDgを更新する。なお、制御部31は、Y軸方向と入力ベクトルFDの方向との角度差だけ、プレイヤオブジェクトPOの真正面方向または真後ろ方向からずれた方向を、上記発射方向として設定してもかまわない。なお、第2制御手段は、第2領域基準座標が設定された後に行われた第2領域内での座標入力の座標と当該第2領域基準座標との差の第1軸方向とは異なる第2軸方向の成分に基づき、第2制御の方向を決定する処理を行うものであり、一例としてステップS170の処理を行う制御部31に相当する。
ステップS171において、制御部31は、第2領域A2に対するタッチ操作が終了したか否かを判定する。例えば、制御部31は、第2領域A2からタッチオフされた場合や第2領域A2から第1領域A1に跨ぐタッチ操作が行われた場合、上記ステップS171において肯定判定する。そして、制御部31は、第2領域A2に対するタッチ操作が終了した場合、ステップS172に処理を進める。一方、制御部31は、第2領域A2に対するタッチ操作が終了していない場合(例えば、第2領域A2に対するタッチ操作が継続して行われていない場合、第2領域A2にタッチオンされた場合、第2領域A2にタッチオンされた後に継続して第2領域A2内をタッチ操作中である場合)、当該サブルーチンによる処理を終了する。
ステップS172において、制御部31は、右側第1基準座標RR0、右側第2基準座標RRm、右側タッチ軌跡座標を消去して、当該サブルーチンによる処理を終了する。例えば、制御部31は、右側第1基準座標データDe3が示す右側第1基準座標RR0、右側第2基準座標データDe4が示す右側第2基準座標RRm、および右側タッチ軌跡座標データDe2が示す右側タッチ軌跡座標をそれぞれ消去する。
図15に戻り、ステップS108において、制御部31は、第1アイテム抽選処理を行い、次のステップに処理を進める。ここで、制御部31は、上記第1アイテム抽選処理として、プレイヤオブジェクトPOが所定の条件を満たした場合に新たなアイテムIを抽選して取得して、取得したアイテムIをプレイヤオブジェクトPOが使用する処理等を行う。
例えば、上述したように、上記第1アイテム抽選処理では、プレイヤオブジェクトPOがアイテムボックスIBを通過して開封した場合、取得する新たなアイテムIを抽選する演出が行われる。そして、上記抽選結果に応じて、新たなアイテムIをプレイヤオブジェクトPOが取得するとともに、「フィーバー状態」となる当たりの演出が行われる。また、制御部31は、所持しているアイテムIをプレイヤオブジェクトPOが使用する処理を行う。例えば、制御部31は、発射方向データDgに発射方向が設定されており、発射可能なアイテムIが使用可能な状態である場合、当該アイテムIを発射アイテムIMとしてプレイヤオブジェクトPO近傍から発射して移動させるアイテム使用処理を行って、プレイヤオブジェクト動作データDhおよびアイテム位置データDj等を更新する。
なお、上記ステップS108において、制御部31は、アイテムIの使用に伴って発射方向データDgが示す発射方向や第2基準座標データDc4または右側第2基準座標データDe4が示す第2基準座標Rmまたは右側第2基準座標RRmをそれぞれ消去してもかまわないし、それぞれそのままの状態を維持してもかまわない。前者の場合、アイテムIを再度使用するためには、タッチパネルに対して再度タッチオンしてアイテムIが使用される方向へスワイプ操作する必要がある。後者の場合、アイテムIが使用可能となった時点で、維持されている発射方向や第2基準座標Rmまたは右側第2基準座標RRmに基づいてアイテムIが即時に使用される。
次に、制御部31は、第2アイテム抽選処理を行い(ステップS109)、次のステップに処理を進める。ここで、制御部31は、上記第2アイテム抽選処理として、所定の条件を満たした場合にアイテム抽選アイコンABを出現させ、当該アイテム抽選アイコンABが使用された場合に新たなアイテムIを取得するためのアイテム抽選を行う処理等を行う。
例えば、上述したように、上記第2アイテム抽選処理では、制御部31は、プレイヤオブジェクトPOが走行中に所定の条件を満たした場合、所持枠HFに代わってアイテム抽選アイコンABが出現させる。ここで、制御部31は、表示部35が縦持ちされた第1モードの場合、表示部35の表示画面上部中央付近にアイテム抽選アイコンABを出現させ(図11参照)、表示部35が横持ちされた第2モードの場合、表示部35の第2領域A2上部中央付近にアイテム抽選アイコンABを出現させる(図13参照)。そして、制御部31は、ユーザのタッチ操作によってアイテム抽選アイコンABが選択された場合、新たなアイテムIを取得するためのアイテム抽選を行う演出を行って、抽選結果に応じて、新たなアイテムIをプレイヤオブジェクトPOに取得させる。
次に、制御部31は、プレイヤオブジェクトPOの動作を設定する処理を行い(ステップS110)、次のステップに処理を進める。例えば、制御部31は、ハンドル角度データDfが示すハンドル角度や他の仮想オブジェクトからの影響等を考慮して、プレイヤオブジェクトPOの位置および姿勢を設定するとともに、プレイヤオブジェクト動作データDhに設定されているプレイヤオブジェクトPOの状態を考慮してプレイヤオブジェクトPOの動作、位置、姿勢等を決定して、プレイヤオブジェクト動作データDhを更新する。
次に、制御部31は、敵オブジェクトEOの動作を設定する処理を行い(ステップS111)、次のステップに処理を進める。一例として、敵オブジェクトEOの動作が制御部31によって制御されている場合、制御部31は、所定のアルゴリズムに基づいて敵オブジェクトEOを動作させ、当該動作に基づいて敵オブジェクトデータDiを更新する。他の例として、通信可能な他の情報処理装置3のユーザによって敵オブジェクトEOの動作が制御されている場合、制御部31は、プレイヤオブジェクトPOと同様に当該他の情報処理装置3のユーザの操作に基づいて敵オブジェクトEOを動作させ、当該動作に基づいて敵オブジェクトデータDiを更新する。
次に、制御部31は、アイテムの動作を設定する処理を行い(ステップS112)、次のステップに処理を進める。例えば、制御部31は、上記処理によって使用が設定されてプレイヤオブジェクトPOから発射された発射アイテムIMを、発射方向データDgに基づいて移動させる処理を行い、当該移動後の位置や姿勢に基づいてアイテム位置データDjを更新する。
次に、制御部31は、表示画像を生成して表示部35に表示する表示制御処理を行い(ステップS113)、次のステップに処理を進める。例えば、制御部31は、プレイヤオブジェクト動作データDh、敵オブジェクトデータDi、およびアイテム位置データDj等に応じて、上述した各ステップにおける処理結果に応じた表示画像を生成して、当該表示画像を表示部35に表示する処理を行う。また、制御部31は、上記表示画像を生成するための仮想カメラの位置をプレイヤオブジェクトPOの位置に基づいて移動させるとともに、操作モードが変更された場合、実空間の重力方向に対する表示部35の姿勢に基づいて、仮想カメラの画角および注視点からの距離を縦画面用または横画面用のものに変更する。なお、表示部35では、表示する画像の表示方向に関して、表示部35が縦持ちである場合に、表示画像の上下方向が表示部35の長軸方向となり、かつ、当該表示画像の上方向より下方向が表示部35に作用している重力方向に近くなるように変更される。また、表示部35では、表示する画像の表示方向に関して、表示部35が横持ちである場合に、表示画像の上下方向が表示部35の短軸方向となり、かつ、当該表示画像の上方向より下方向が表示部35に作用している重力方向に近くなるように変更される。
次に、制御部31は、ゲーム処理を終了するか否かを判断する(ステップS114)。ゲーム処理を終了する条件としては、例えば、ゲーム処理を終了させる条件が満たされたことや、ユーザがゲーム処理を終了する操作を行ったこと等がある。制御部31は、ゲーム処理を継続する場合に上記ステップS102に戻って処理を繰り返し、ゲーム処理を終了する場合に当該フローチャートによる処理を終了する。
このように、上記ゲーム処理を行う情報処理システム1によれば、第1モードおよび第2モードの何れにおいても左右方向のタッチ操作によってプレイヤオブジェクトPOの移動方向の制御が可能であり、第1モードおよび第2モードの何れにおいても上下方向のタッチ操作によってアイテムIの発射制御が可能である。したがって、一方の操作モードによる操作を習得すれば、他方の操作モードによる操作を容易に行うことができるため、操作方法が異なる操作モードそれぞれにおける操作を容易に習得することが可能となる。また、上記ゲーム処理を行う情報処理システム1によれば、ユーザが意図しない操作領域(例えば、第2領域A2)からタッチ操作を開始したとしても、当該操作領域に対するタッチ操作による制御が行われずにユーザが意図する操作領域(例えば、第1領域A1)を用いた操作による制御に切り替えられ、当該タッチ操作の途中で変更中の操作対象が他の操作対象に変更されることがないため、タッチ操作における操作性を向上させることができる。
また、第2モードでは、スワイプ操作の左右方向成分をハンドル操作として検出するための領域(第1領域A1)とスワイプ操作の上下方向成分を発射操作として検出するための領域(第2領域A2)とが分けられている。そして、左右方向成分を検出するための領域において上下方向成分が検出されても当該上下方向成分が発射操作として取り扱われることはなく、上下方向成分を検出するための領域において左右方向成分が検出されても当該左右方向成分がハンドル操作として取り扱われることがない。したがって、発射操作を意図するタッチ操作が行われている場合に、当該タッチ操作の左右方向成分が検出されることによってユーザが意図していないハンドル操作が行われるような操作ミスや、ハンドル操作を意図するタッチ操作が行われている場合に、当該タッチ操作の上下方向成分が検出されることによってユーザが意図していない発射操作が行われるような操作ミスを防止することができる。
なお、上述した実施例では、タッチ操作を検出する入力部34の一例として、表示部35の表示画面を覆うタッチパネルを用いたが、タッチパッド等の他のデバイスであってもよい。一例として、据置型モニターに表示されたゲーム画像を見ながら別体のコントローラを用いて操作するゲームシステムを用いる場合、当該コントローラに備えられたタッチパッドを用いてタッチ操作される態様であってもよい。
また、上述した実施例では、操作モードが切り替えられることによって、表示部35に表示する画像の表示方向を90°変更しているが、画像の表示方向を変更することなく操作モードが切り替えられてもよい。また、実空間における表示部35の姿勢の変化がない場合であっても、操作モードが変更されてもよい。一例として、表示部35が縦持ちで操作されている場合であっても、第1モードから第2モードに変更可能であってもかまわない。
なお、上述した情報処理システム1は、情報処理装置3と通信可能なサーバ200が含まれているが、サーバ200と接続されることなく情報処理装置3単独でゲーム処理を行ってもかまわない。特に、ユーザがプレイヤオブジェクトPOを操作してレースゲームを行う処理では、サーバ200が介在することなく実行可能であるため、情報処理装置3の内部処理だけで実現することができる。また、複数の情報処理装置3が参加するレースゲームを行う場合であっても、サーバ200を介さずに情報処理装置3同士や他の装置と通信が行われて上記ゲーム処理が実現されてもよい。また、ユーザがプレイヤオブジェクトPOを操作してレースゲームを行う処理の一部をサーバ200が実行してもかまわない。これにより、複数の情報処理装置3における処理をサーバ200において集中して管理することができる。
また、上述した説明では情報処理や通信処理を情報処理装置3で行う例を用いたが、上記処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、情報処理装置3と通信可能なサーバ200や他の装置(例えば、別のサーバ、他のゲーム装置、他の携帯端末)が協働することによって、上記処理における処理ステップが実行されてもよい。このように、上記処理における処理ステップの少なくとも一部をサーバ200や他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、情報処理装置3の制御部31が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、情報処理装置3が備える専用回路によって上記処理の一部または全部が行われてもよい。
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
また、上記各プログラムは、外部メモリ等の外部記憶媒体を通じて情報処理装置3に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置3に供給されてもよい。また、上記プログラムは、情報処理装置3内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD-ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。