(57)【要約】【課題】アナログスティック等の方向入力を用いても、仮想ゲーム空間における剣オブジェクトに関するアクションが実現可能なゲームプログラムを提供すること。【解決手段】操作装置に対する第１の方向入力に基づいて、当該第１の方向入力にかかる入力方向に応じた向きにアイテムオブジェクトを構える構えアクションをプレイヤオブジェクトに行わせる。更に、第１の方向入力の解除に応じて、アイテムオブジェクトを振る振りアクションをプレイヤオブジェクトに行わせる。【選択図】図２２
2022002627.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムのプロセッサに実行させる情報処理プログラムであって、
前記プロセッサに、
仮想空間内において、所定のアイテムオブジェクトを持ったプレイヤオブジェクトを制御させ、
操作装置に対する第１の方向入力に基づいて、当該第１の方向入力にかかる入力方向に応じた向きに前記アイテムオブジェクトを構える構えアクションを前記プレイヤオブジェクトに行わせ、
前記第１の方向入力の解除に応じて、前記アイテムオブジェクトを振る振りアクションを前記プレイヤオブジェクトに行わせる、ゲームプログラム。
【請求項２】
前記プロセッサに、前記振りアクションとして、前記プレイヤオブジェクトに、前記構えアクションにおいて前記アイテムオブジェクトを構えた方向から逆方向に向かって前記アイテムオブジェクトを振らせる、請求項１記載のゲームプログラム。
【請求項３】
前記プロセッサに、前記振りアクションにおいて前記アイテムオブジェクトを振る方向に基づいた成功判定処理を含むゲーム処理を更に行わせる、請求項２記載のゲームプログラム。
【請求項４】
前記操作装置は、第１の方向入力のための第１のスティックを備え、当該第１のスティックの傾きに応じた方向入力データを出力し、
前記プロセッサに更に、
前記第１のスティックの傾き度合いが第１の基準を超えている間、前記第１のスティックの傾き方向に応じて前記構えアクションをさせ、
前記傾き度合いが前記第１の基準を超える状態から第２の基準を超えない状態に遷移をした場合に、前記第１の方向入力の解除がなされたものとして、前記振りアクションを行わせる、請求項１から３のいずれか記載のゲームプログラム。
【請求項５】
前記第２の基準は前記第１の基準よりも小さい傾き度合いであり、
前記傾き度合いが第１の基準を超えている状態から所定時間以内に前記第２の基準を超えない状態に変化した場合に、前記第１の方向入力の解除がなされたものとして前記振りアクションを行わせる、請求項４記載のゲームプログラム。
【請求項６】
前記プロセッサに更に、前記傾き度合いが前記第１の基準と前記第２の基準の間の場合に、前記傾き度合いと前記傾き方向に基づいて、前記プレイヤキャラクタが前記アイテムオブジェクトを動かすアクションを行わせる、請求項５に記載のゲームプログラム。
【請求項７】
前記操作装置は更に、第２の方向入力のための第２のスティックを備え、当該第２のスティックの傾きに応じた方向入力データを出力し、
前記プロセッサにさらに、前記第２の方向入力に基づいて、前記プレイヤキャラクタを前記仮想空間内において移動させる、請求項１から６のいずれか記載のゲームプログラム。
【請求項８】
前記操作装置は更に、慣性センサを備え、
前記ゲームプログラムは、前記プロセッサに更に、
第１の操作モードにおいては、前記プレイヤオブジェクトに、前記第１の方向入力に基づいて前記構えアクションおよび前記振りアクションを行わせ、
第２の操作モードにおいては、
前記操作装置の姿勢に基づいて前記構えアクションを行わせ、
前記操作装置に対する振り入力に基づいて、前記振りアクションを行わせる、
請求項１から７のいずれか記載のゲームプログラム。
【請求項９】
前記アイテムオブジェクトは、前記振りアクションによって敵オブジェクトに対して攻撃を行うための武器オブジェクトである、請求項１から８のいずれか記載のゲームプログラム。
【請求項１０】
前記プロセッサに更に、
前記操作装置に対する前記第１の方向入力以外の所定の入力が当該第１の方向入力と共に行われている間は、前記プレイヤオブジェクトに前記構えアクションおよび前記振りアクションを行わせずに、当該第１の方向入力に基づいて仮想カメラの制御を行わせる、請求項１から９のいずれか記載のゲームプログラム。
【請求項１１】
少なくとも１のプロセッサを含むゲーム装置であって、
仮想空間内において、所定のアイテムオブジェクトを持ったプレイヤオブジェクトを制御し、
方向入力が可能な操作装置から出力された当該操作装置に対する第１の方向入力を示すデータに基づいて、当該第１の方向入力にかかる入力方向に応じた向きに前記アイテムオブジェクトを構える構えアクションを前記プレイヤオブジェクトに行わせ、
前記操作装置から出力された前記第１の方向入力の解除を示すデータに応じて、前記アイテムオブジェクトを振る振りアクションを前記プレイヤオブジェクトに行わせる、ゲーム装置。
【請求項１２】
前記プロセッサは更に、前記振りアクションとして、前記プレイヤオブジェクトに、前記構えアクションにおいて前記アイテムオブジェクトを構えた方向から逆方向に向かって前記アイテムオブジェクトを振らせる、請求項１１記載のゲーム装置。
【請求項１３】
前記操作装置は、第１の方向入力のための第１のスティックを備え、
前記プロセッサは、
前記操作装置から出力される前記第１のスティックの傾きに応じた方向入力データを取得し、
前記第１のスティックの傾き度合いが第１の基準を超えている間、前記第１のスティックの傾き方向に応じて前記構えアクションをさせ、
前記傾き度合いが前記第１の基準を超える状態から第２の基準を超えない状態に遷移をした場合に、前記第１の方向入力の解除がなされたものとして、前記振りアクションを行わせる、請求項１１または１２記載のゲーム装置。
【請求項１４】
前記操作装置はさらに、第２の方向入力のための第２のスティックを備え、
前記プロセッサは、
前記操作装置から出力される前記第２のスティックの傾きに応じた方向入力データを取得し、
前記第２の方向入力に基づいて、前記プレイヤオブジェクトを前記仮想空間内において移動させる、請求項１１から１３のいずれか記載のゲーム装置。
【請求項１５】
少なくとも１のプロセッサを含むゲームシステムであって、
前記プロセッサは、
仮想空間内において、所定のアイテムオブジェクトを持ったプレイヤオブジェクトを制御し、
方向入力が可能な操作装置に対する第１の方向入力に基づいて、当該第１の方向入力にかかる入力方向に応じた向きに前記アイテムオブジェクトを構える構えアクションを前記プレイヤオブジェクトに行わせ、
前記第１の方向入力の解除に応じて、前記アイテムオブジェクトを振る振りアクションを前記プレイヤオブジェクトに行わせる、ゲームシステム。
【請求項１６】
前記プロセッサは更に、前記振りアクションとして、前記プレイヤオブジェクトに、前記構えアクションにおいて前記アイテムオブジェクトを構えた方向から逆方向に向かって前記アイテムオブジェクトを振らせる、請求項１５記載のゲームシステム。
【請求項１７】
前記プロセッサは更に、前記振りアクションにおいて前記アイテムオブジェクトを振る方向に基づいた成功判定処理を含むゲーム処理を行う、請求項１６記載のゲームシステム。
【請求項１８】
前記操作装置は、第１の方向入力のための第１のスティックを備え、当該第１のスティックの傾きに応じた方向入力データを出力し、
前記プロセッサは更に、
前記第１のスティックの傾き度合いが第１の基準を超えている間、前記第１のスティックの傾き方向に応じて前記構えアクションをさせ、
前記傾き度合いが前記第１の基準を超える状態から第２の基準を超えない状態に遷移をした場合に、前記第１の方向入力の解除がなされたものとして、前記振りアクションを行わせる、請求項１５から１７のいずれか記載のゲームシステム。
【請求項１９】
前記第２の基準は前記第１の基準よりも小さい傾き度合いであり、
前記プロセッサは、前記傾き度合いが第１の基準を超えている状態から所定時間以内に前記第２の基準を超えない状態に変化した場合に、前記第１の方向入力の解除がなされたものとして前記振りアクションを行わせる、請求項１８記載のゲームプログラム。
【請求項２０】
前記プロセッサは更に、前記傾き度合いが前記第１の基準と前記第２の基準の間の場合に、前記傾き度合いと前記傾き方向に基づいて、前記プレイヤキャラクタが前記アイテムオブジェクトを動かすアクションを行わせる、請求項１９に記載のゲームプログラム。
【請求項２１】
前記操作装置は更に、第２の方向入力のための第２のスティックを備え、当該第２のスティックの傾きに応じた方向入力データを出力し、
前記プロセッサにさらに、前記第２の方向入力に基づいて、前記プレイヤキャラクタを前記仮想空間内において移動させる、請求項１５から２０のいずれか記載のゲームプログラム。
【請求項２２】
前記操作装置は更に、慣性センサを備え、
前記ゲームプログラムは、前記プロセッサに更に、
第１の操作モードにおいては、前記プレイヤオブジェクトに、前記第１の方向入力に基づいて前記構えアクションおよび前記振りアクションを行わせ、
第２の操作モードにおいては、
前記操作装置の姿勢に基づいて前記構えアクションを行わせ、
前記操作装置に対する振り入力に基づいて、前記振りアクションを行わせる、
請求項１５から２１のいずれか記載のゲームプログラム。
【請求項２３】
前記ゲームシステムは、前記操作装置と当該操作装置が着脱可能な本体装置とを含み、
前記操作装置が前記本体装置に装着された状態である場合は、前記第１の操作モードのみが利用可能であり、
前記操作装置が前記本体装置に装着されていない状態の場合は、前記第１の操作モードと第２の操作モードとが切り替え可能である、請求項２２に記載のゲームプログラム。
【請求項２４】
前記アイテムオブジェクトは、前記振りアクションによって敵オブジェクトに対して攻撃を行うための武器オブジェクトである、請求項１５から２３のいずれか記載のゲームシステム。
【請求項２５】
前記プロセッサは更に、
前記操作装置に対する前記第１の方向入力以外の所定の入力が当該第１の方向入力と共に行われている間は、前記プレイヤオブジェクトに前記構えアクションおよび前記振りアクションを行わせずに、当該第１の方向入力に基づいて仮想カメラの制御を行わせる、請求項１５から２４のいずれか記載のゲームシステム。
【請求項２６】
情報処理システムを制御するプロセッサが実行するゲーム処理方法であって、
前記プロセッサに、
仮想空間内において、所定のアイテムオブジェクトを持ったプレイヤオブジェクトを制御させ、
方向入力が可能な操作装置に対する第１の方向入力に基づいて、当該第１の方向入力にかかる入力方向に応じた向きに前記アイテムオブジェクトを構える構えアクションを前記プレイヤオブジェクトに行わせ、
前記第１の方向入力の解除に応じて、前記アイテムオブジェクトを振る振りアクションを前記プレイヤオブジェクトに行わせる、ゲーム処理方法。
【請求項２７】
前記プロセッサに更に、前記振りアクションとして、前記プレイヤオブジェクトに、前記構えアクションにおいて前記アイテムオブジェクトを構えた方向から逆方向に向かって前記アイテムオブジェクトを振らせる、請求項２６記載のゲーム処理方法。
【請求項２８】
前記操作装置は、第１の方向入力のための第１のスティックを備え、当該第１のスティックの傾きに応じた方向入力データを出力し、
前記プロセッサに更に、
前記第１のスティックの傾き度合いが第１の基準を超えている間、前記第１のスティックの傾き方向に応じて前記構えアクションをさせ、
前記傾き度合いが前記第１の基準を超える状態から第２の基準を超えない状態に遷移をした場合に、前記第１の方向入力の解除がなされたものとして、前記振りアクションを行わせる、請求項２６または２７記載のゲーム処理方法。
【請求項２９】
前記操作装置はさらに、第２の方向入力のための第２のスティックを備え、当該第２のスティックの傾きに応じた方向入力データを出力し、
前記プロセッサにさらに、前記第２の方向入力に基づいて、前記プレイヤキャラクタを前記仮想空間内において移動させる、請求項２６から２８のいずれか記載のゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間内で所定のアイテムオブジェクトを持ったプレイヤオブジェクトに所定のアクションを実行させるゲーム処理に関する。
【背景技術】
【０００２】
従来から、コントローラに備えられている角速度センサと加速度センサの出力に基づき当該コントローラ自体の姿勢や動きを算出し、仮想ゲーム空間内のオブジェクトの挙動に反映させるゲームが知られている。具体的には、仮想ゲーム空間内におけるプレイヤオブジェクトの剣の構えをコントローラの姿勢に応じて変更し、コントローラの振り方向に応じて当該剣を振らせるというゲームが知られている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５２８９０３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のゲームは、コントローラ自体を動かして剣を振るという遊び方を前提としたものであり、その他の入力方法、具体的にはアナログスティック等の入力については特に考慮していなかった。
【０００５】
それ故に、本発明の目的は、アナログスティック等の方向入力を用いても、仮想ゲーム空間における剣オブジェクトに関するアクションが実現可能なゲームプログラムを提供することである。
【０００６】
また、他の目的は、アナログスティック等の方向入力による操作と、コントローラ自身の動きを用いる操作との２種類の操作のいずれを用いても、共通のアクションが実現可能なゲームプログラムを提供することである。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【０００８】
構成例の一例は、プロセッシングシステムのプロセッサに実行させる情報処理プログラムであって、プロセッサに、以下を実行させる。仮想空間内において、所定のアイテムオブジェクトを持ったプレイヤオブジェクトを制御させる。操作装置に対する第１の方向入力に基づいて、当該第１の方向入力にかかる入力方向に応じた向きに上記アイテムオブジェクトを構える構えアクションをプレイヤオブジェクトに行わせる。更に、第１の方向入力の解除に応じて、アイテムオブジェクトを振る振りアクションをプレイヤオブジェクトに行わせる。
【０００９】
上記構成例によれば、アイテムオブジェクトを構えてから振る、という一連のアクションを、方向入力という簡易な操作によってプレイヤオブジェクトに行わせることができる。
【００１０】
他の構成例として、プロセッサに、振りアクションとして、プレイヤオブジェクトに、構えアクションにおいてアイテムオブジェクトを構えた方向から逆方向に向かってアイテムオブジェクトを振らせてもよい。
【００１１】
上記構成例によれば、アイテムオブジェクトを構えて方向を定めてから、方向入力を解除するだけで振り方向が指定できる。これにより、振りたい方向に対して直接的に方向入力する場合に比べて、より正確に狙った方向へアイテムオブジェクトを振らせることができる。
【００１２】
他の構成例として、プロセッサに、振りアクションにおいてアイテムオブジェクトを振る方向に基づいた成功判定処理を含むゲーム処理を更に行わせてもよい。
【００１３】
上記構成例によれば、正解となる方向にアイテムオブジェクトを振るという条件をゲームの進行において利用する場合に、より正確な方向入力が可能となり、ゲームを有利に進めやすくすることができる。
【００１４】
他の構成例として、操作装置は、第１の方向入力のための第１のスティックを備え、当該第１のスティックの傾きに応じた方向入力データを出力してもよい。そして、ゲームプログラムは、プロセッサに更に、第１のスティックの傾き度合いが第１の基準を超えている間、第１のスティックの傾き方向に応じて構えアクションをさせ、傾き度合いが第１の基準を超える状態から第２の基準を超えない状態に遷移をした場合に、第１の方向入力の解除がなされたものとして、振りアクションを行わせてもよい。
【００１５】
上記構成例によれば、スティックをある程度大きな角度で傾かせた後、その傾き度合いを緩めるだけで、振りアクションを行わせることができる。
【００１６】
他の構成例として、第２の基準は第１の基準よりも小さい傾き度合いであってもよい。そして、傾き度合いが第１の基準を超えている状態から所定時間以内に第２の基準を超えない状態に変化した場合、第１の方向入力の解除がなされたものとして振りアクションを行わせてもよい。
【００１７】
上記構成例によれば、例えばスティックを傾けて、指を離したタイミングで振りアクションを行わせることができる。これにより、簡易な操作性をプレイヤに提供できる。
【００１８】
他の構成例として、プロセッサに更に、傾き度合いが第１の基準と第２の基準の間である場合には、傾き度合いと傾き方向に基づいて、プレイヤキャラクタがアイテムオブジェクトを動かすアクションを行わせてもよい。
【００１９】
他の構成例として、操作装置はさらに、第２の方向入力のための第２のスティックを備え、当該第２のスティックの傾きに応じた方向入力データを出力してもよい。そして、プロセッサにさらに、第２の方向入力に基づいて、プレイヤキャラクタを仮想空間内において移動させてもよい。
【００２０】
上記構成例によれば、アイテムオブジェクトに対する操作を行いながらプレイヤオブジェクトの移動も行わせることができ、プレイヤオブジェクトに多彩なアクションを簡易な操作で行わせることができる。
【００２１】
他の構成例として、操作装置は更に、慣性センサを備えていてもよい。そして、ゲームプログラムは、プロセッサに更に、第１の操作モードにおいては、プレイヤキャラクタに、第１の方向入力に基づいて構えアクションおよび振りアクションを行わせ、第２の操作モードにおいては、操作装置の姿勢に基づいて構えアクションを行わせ、操作装置に対する振り入力に基づいて振りアクションを行わせてもよい。
【００２２】
上記構成例によれば、アイテムオブジェクトを構えて振るという一連のアクションに対して、２種類の操作方法をプレイヤに提供することができる。
【００２３】
他の構成例として、アイテムオブジェクトは、振りアクションによって敵オブジェクトに対して攻撃を行うための武器オブジェクトであってもよい。
【００２４】
上記構成例によれば、敵を攻撃するために武器（剣など）を振るという操作について、簡易で直感的な操作方法をプレイヤに提供できる。
【００２５】
他の構成例として、プロセッサに更に、操作装置に対する第１の方向入力以外の所定の入力が当該第１の方向入力と共に行われている間は、プレイヤオブジェクトに構えアクションおよび振りアクションを行わせずに、当該第１の方向入力に基づいて仮想カメラの制御を行わせてもよい。
【００２６】
上記構成例によれば、同じ操作デバイスを用いて、仮想カメラ操作とアイテムオブジェクトを用いたアクションとを状況に応じて使い分けさせることができる。
できる。
【発明の効果】
【００２７】
本実施形態によれば、アナログスティック等の方向入力によって、剣オブジェクトを構えるアクション、および、その構えに基づいて剣オブジェクトを振るアクションを実現させることができる。
【図面の簡単な説明】
【００２８】
【図１】本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図
【図２】本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図
【図３】本体装置２の一例を示す六面図
【図４】左コントローラ３の一例を示す六面図
【図５】右コントローラ４の一例を示す六面図
【図６】本体装置２の内部構成の一例を示すブロック図
【図７】本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図
【図８】本実施形態に係るゲーム画面の一例
【図９】本実施形態に係るゲーム画面の一例
【図１０】剣を構えているプレイヤオブジェクトを示す図
【図１１】振りアクションの一例を示す図
【図１２】プレイヤオブジェクトの状態の遷移を説明するための図
【図１３】構えアクションの一例を示す図
【図１４】構えアクションの一例を示す図
【図１５】構えアクションの一例を示す図
【図１６】構えアクションの一例を示す図
【図１７】構えアクションの一例を示す図
【図１８】構えアクションの一例を示す図
【図１９】振り発生閾値を説明するための図
【図２０】リリース判定閾値を説明するための図
【図２１】ＤＲＡＭ８５に記憶される各種データの一例を示すメモリマップ
【図２２】本実施形態に係るゲーム処理の詳細を示すフローチャート
【図２３】構え遷移判定処理の詳細を示すフローチャート
【図２４】構えアクション処理の詳細を示すフローチャート
【図２５】構えアクション処理の詳細を示すフローチャート
【図２６】振り内容設定処理の詳細を示すフローチャート
【図２７】振りアクション処理の詳細を示すフローチャート
【発明を実施するための形態】
【００２９】
以下、本発明の一実施形態について説明する。
【００３０】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム１の一例は、本体装置（情報処理装置；本実施形態ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とを含む。本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能である。つまり、ゲームシステム１は、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用できる。また、ゲームシステム１は、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。以下では、本実施形態のゲームシステム１のハードウェア構成について説明し、その後に本実施形態のゲームシステム１の制御について説明する。
【００３１】
図１は、本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図である。図１に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、ゲームシステム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００３２】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００３３】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００３４】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００３５】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００３６】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。本実施形態においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００３７】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図６に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００３８】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための端子である左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１を備える。
【００３９】
図３に示すように、本体装置２は、スロット２３を備える。スロット２３は、ハウジング１１の上側面に設けられる。スロット２３は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。所定の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。
【００４０】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２がクレードルと通信を行うための端子である。本実施形態において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。上記一体型装置または本体装置２単体をクレードルに載置した場合、ゲームシステム１は、本体装置２が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードルは、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００４１】
図４は、左コントローラ３の一例を示す六面図である。図４に示すように、左コントローラ３は、ハウジング３１を備える。本実施形態においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１および図４に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００４２】
左コントローラ３は、左アナログスティック（以下、左スティックと呼ぶ）３２を備える。図４に示すように、左スティック３２は、ハウジング３１の主面に設けられる。左スティック３２は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、左スティック３２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、左コントローラ３は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、左スティック３２を押下する入力が可能である。
【００４３】
左コントローラ３は、各種操作ボタンを備える。左コントローラ３は、ハウジング３１の主面上に４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および左方向ボタン３６）を備える。さらに、左コントローラ３は、録画ボタン３７および−（マイナス）ボタン４７を備える。左コントローラ３は、ハウジング３１の側面の左上に第１Ｌボタン３８およびＺＬボタン３９を備える。また、左コントローラ３は、ハウジング３１の側面の、本体装置２に装着される際に装着される側の面に第２Ｌボタン４３および第２Ｒボタン４４を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００４４】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。
【００４５】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００４６】
右コントローラ４は、左コントローラ３と同様、方向入力部として右アナログスティック（以下、右スティックと呼ぶ）５２を備える。本実施形態においては、右スティック５２は、左コントローラ３の左スティック３２と同じ構成である。また、右コントローラ４は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、およびＹボタン５６）を備える。さらに、右コントローラ４は、＋（プラス）ボタン５７およびホームボタン５８を備える。また、右コントローラ４は、ハウジング５１の側面の右上に第１Ｒボタン６０およびＺＲボタン６１を備える。また、右コントローラ４は、左コントローラ３と同様、第２Ｌボタン６５および第２Ｒボタン６６を備える。
【００４７】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００４８】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図６に示す各構成要素８１〜９１、９７、および９８を備える。これらの構成要素８１〜９１、９７、および９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００４９】
本体装置２は、プロセッサ８１を備える。プロセッサ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のみから構成されてもよいし、ＣＰＵ機能、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）機能等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）から構成されてもよい。プロセッサ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、スロット２３に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００５０】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、プロセッサ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００５１】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。スロットＩ／Ｆ９１は、プロセッサ８１に接続される。スロットＩ／Ｆ９１は、スロット２３に接続され、スロット２３に装着された所定の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、プロセッサ８１の指示に応じて行う。
【００５２】
プロセッサ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００５３】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、プロセッサ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００５４】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、プロセッサ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００５５】
プロセッサ８１は、上述の左側端子１７、右側端子２１、および下側端子２７に接続される。プロセッサ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、プロセッサ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。また、プロセッサ８１は、クレードルと通信を行う場合、下側端子２７を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードルに装着された場合、本体装置２は、クレードルを介してデータ（例えば、画像データや音声データ）を据置型モニタ等に出力することができる。
【００５６】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、複数のユーザは、左コントローラ３および右コントローラ４のセットをそれぞれ用いて、本体装置２に対する入力を同時に行うことができる。一例として、第１ユーザが左コントローラ３および右コントローラ４の第１セットを用いて本体装置２に対して入力を行うと同時に、第２ユーザが左コントローラ３および右コントローラ４の第２セットを用いて本体装置２に対して入力を行うことが可能となる。
【００５７】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とプロセッサ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ８１へ出力する。
【００５８】
また、ディスプレイ１２は、プロセッサ８１に接続される。プロセッサ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００５９】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、プロセッサ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。
【００６０】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびプロセッサ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、プロセッサ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。
【００６１】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００６２】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００６３】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図７に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施形態においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００６４】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００６５】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９、４３、４４、および４７）を備える。また、左コントローラ３は、左スティック３２を備える。各ボタン１０３および左スティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００６６】
左コントローラ３は、慣性センサを備える。具体的には、左コントローラ３は、加速度センサ１０４を備える。また、左コントローラ３は、角速度センサ１０５を備える。本実施形態においては、加速度センサ１０４は、所定の３軸（例えば、図４に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ１０４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ１０５は、所定の３軸（例えば、図４に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ１０５は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。加速度センサ１０４および角速度センサ１０５は、それぞれ通信制御部１０１に接続される。そして、加速度センサ１０４および角速度センサ１０５の検出結果は、適宜のタイミングで繰り返し通信制御部１０１へ出力される。
【００６７】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、左スティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、またはセンサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００６８】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３および左スティック３２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、左コントローラ３の動きおよび／または姿勢に関する情報を、操作データ（具体的には、加速度センサ１０４および角速度センサ１０５の検出結果）に基づいて算出することができる。
【００６９】
左コントローラ３は、電力供給部１０８を備える。本実施形態において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００７０】
図７に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００７１】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部を備える。具体的には、各ボタン１１３、右スティック５２、慣性センサ（加速度センサ１１４および角速度センサ１１５）を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００７２】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。
【００７３】
［本実施形態におけるゲーム処理の概要］
次に、本実施形態にかかるゲームシステム１で実行されるゲーム処理の動作概要を説明する。ここで、上記ゲームシステム１では、本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能な構成となっている。本体装置２に左コントローラ３および右コントローラ４を装着した状態でゲームを遊ぶ場合は、ゲーム画像はディスプレイ１２に出力される。また、左コントローラ３および右コントローラ４をそれぞれ外した状態の本体装置２単体がクレードルに装着された場合は、本体装置２が、クレードルを介してゲーム画像を据置型モニタ等に出力することもできる。本実施形態では、後者の態様、すなわち、左コントローラ３および右コントローラ４をそれぞれ外した状態の本体装置２単体がクレードルに装着され、本体装置２が、クレードルを介してゲーム画像等を据置型モニタ等に出力する態様でゲームプレイを行う場合を例に説明する。
【００７４】
本実施形態で想定するゲーム（以下、本ゲームと呼ぶ）は、仮想３次元空間内でプレイヤオブジェクトを操作するアクションアドベンチャーゲームである。図８は、本実施形態で想定するゲーム画面の一例である。図８において、ゲーム画面には、３次元仮想ゲーム空間の様子が表示されている。３次元仮想ゲーム空間にはプレイヤオブジェクト２０１が存在しており、背後からの視点で仮想カメラに撮像された画像が表示されている。当該ゲーム画面では、プレイヤオブジェクト２０１の全身が表示されている。また、プレイヤオブジェクト２０１は剣オブジェクト２０４を背負っている。当該剣オブジェクト２０４は鞘に収まっている状態であり、後述する操作で鞘から剣オブジェクト２０４を抜くことができる。以下、鞘から剣オブジェクト２０４を抜くことを「抜剣」と呼ぶ。図９に、抜剣した後のプレイヤオブジェクト２０１にかかる画面例を示す。図９では、プレイヤオブジェクト２０１の右手に剣オブジェクト２０４が握られている状態である。この状態で、プレイヤは、プレイヤオブジェクト２０１の右腕の可動範囲に基づく範囲内で剣オブジェクト２０４を移動させることができる。
【００７５】
本ゲームでは、プレイヤオブジェクト２０１に上記剣オブジェクト２０４を「振る」動作を行わせることができる。このようにプレイヤオブジェクト２０１は、剣オブジェクト２０４を振ることで、所定の敵オブジェクト（図示は省略）への攻撃が可能である。また、敵以外の所定のオブジェクト、例えば植物オブジェクト等を「斬る」ことも可能である。そして、本実施形態に係る処理は、このような剣オブジェクト２０４を「振る」動作をプレイヤオブジェクト２０１に行わせるための操作に関する処理である。また、本実施形態では、このような剣オブジェクト２０４を「振る」動作は、後述の「構えアクション」および「振りアクション」の２つからなるアクションとなっている。
【００７６】
次に、具体的な操作内容の説明に先立って、上記のような「振る」動作に関するプレイヤオブジェクト２０１の「（ゲーム内での）状態」とその遷移について説明する。以下では、上記プレイヤオブジェクト２０１のゲーム内での状態のことを「ＰＯ状態」と呼ぶ。まず、本ゲームでは、上記図８で示したような剣オブジェクト２０４を鞘に収めているＰＯ状態を「非抜剣状態」と呼ぶ。この状態で、所定の抜剣操作を行うと、抜剣するモーションが表示された後、上記図９のように、剣オブジェクト２０４を右手に持った状態となる。本実施形態では、このＰＯ状態のことを「構え状態」と呼ぶ。当該構え状態において、プレイヤは、プレイヤオブジェクト２０１に構えアクションを行わせることができる。構えアクションとは、剣オブジェクト２０４の位置や姿勢を、プレイヤの右腕の可動範囲内において変化させるアクションである。つまり、剣を振ることに先立って剣を構えるようなアクションである。一例として、図１０に、剣オブジェクト２０４を、その切っ先を右方向に向けて構えているような姿勢の例を示す。構え状態においては、後述する操作によって剣オブジェクト２０４の姿勢を変化させることができる。そして、構え状態において、所定の条件が満たされる（所定の操作が行われる）ことで、実際に剣オブジェクト２０４を振る動きが表示される。以下、このように剣オブジェクト２０４を振っている最中のＰＯ状態のことを「振り状態」と呼ぶ。また、剣を振る動きのことを「振りアクション」と呼ぶ。図１１に、「振り状態」のおけるプレイヤオブジェクト２０１の一例を示す。この図の例では、右から左方向に向けての水平切りのような振りアクションが示されている。
【００７７】
図１２に、上述した各ＰＯ状態の遷移関係を示す。図１２において、まず、非抜剣状態において後述するような「抜剣操作」が行われることで上記構え状態に遷移する。次に、構え状態において、上記振りアクションへ遷移する条件が満たされると、上記振り状態に遷移する。この条件の詳細は後述するが、以下では当該条件のことを「剣振り発動条件」と呼ぶ。振り状態に遷移すると、上記のような振りアクションにかかるモーションが表示される。そして、振りアクションが終了することで、上記構え状態に戻る（遷移する）。そして、構え状態において、剣オブジェクト２０４を鞘に収めるための「納剣操作」が行われることで、上記非抜剣状態に遷移する。そのため、例えば、剣オブジェクト２０４を用いて敵オブジェクトを攻撃する場合、本実施形態では、上記構えアクションと振りアクションの２つから構成される一連のアクションが行われることになる。換言すれば、本実施形態では、剣オブジェクト２０４を振る動作は、「構えてから振る」という一連のアクションとなる。
【００７８】
［操作モードについて］
次に、上記のような動作を行わせるための具体的操作について説明する。本実施形態では、上記のような動作を行わせるための操作モードが２つ設けられている。第１の操作モードは、主に上記右コントローラ４に備えられている右スティック５２を用いる操作モードである。第２の操作モードでは、上記右コントローラ４の慣性センサを用いる操作モードである。なお、本実施形態では、これらの操作モードはいずれか１つが設定されるものとする。例えば、ゲームの設定画面において、操作モードを設定する項目が設けられ、いずれか一方の操作モードが指定される。そのため、第１の操作モードが設定されているときは、第２の操作モードによる操作はできないものとする。逆の場合も同様である。
【００７９】
［第２の操作モードについて］
次に、各操作モードについて説明するが、説明の便宜上、まず、第２の操作モードについて説明する。上記のように、第２の操作モードは右コントローラ４の慣性センサを用いるものである。具体的には、第２の操作モードでは、プレイヤは、右コントローラ４を剣オブジェクト２０４に見立てて、当該右コントローラ４を傾けたり、振ったりすることで、上記剣オブジェクト２０４の姿勢を変化させたり振ったりすることが可能である。
【００８０】
操作の一例を挙げると、まず、非抜刀状態において、プレイヤが所定のボタンを押すことで、プレイヤオブジェクト２０１は抜剣して、ＰＯ状態が構え状態に遷移する。このとき、慣性センサからの出力に基づき、右コントローラ４の姿勢が算出され、その姿勢が剣オブジェクト２０４の姿勢に反映される。たとえば、慣性センサはジャイロセンサを含み、当該ジャイロセンサが検出する角速度に基づいて右コントローラ４の姿勢が算出される。ここでは、抜剣の操作の結果、上記図９のような姿勢となった場合を想定する。次に、画面が図９のような状態において、プレイヤが右腕を水平に伸ばし、右コントローラ４も略水平の姿勢にしたとする。この場合、慣性センサからの出力に基づき、右コントローラ４の姿勢が算出され、この姿勢が剣オブジェクト２０４の位置や姿勢に反映される。その結果、剣オブジェクト２０４（およびプレイヤオブジェクト２０１）の位置および姿勢が、上記図１０で示したような姿勢に変化する。
【００８１】
更に、ゲーム画面が図１０のような状態のときに、プレイヤが右コントローラ４を左方向に所定の速度以上の速さで振ったとする。この場合、慣性センサからの出力に基づき、当該コントローラを振ったという動きが検出される。たとえば、慣性センサは加速度センサを含み、所定値以上の加速度が検出されたとの判定によって、当該コントローラが振られたと判定される。その結果、ＰＯ状態が上記振り状態に遷移し、この振りの動きにおける右コントローラ４の姿勢の変化が剣オブジェクト２０４の位置や姿勢の変化に反映される。その結果、プレイヤオブジェクト２０１は、上記図１１で示したような振りアクションを行うことになる。
【００８２】
このように、第２の操作モードでは、慣性センサの出力に基づいて、右コントローラ４の姿勢を算出し、振りを判定する。そして、算出した右コントローラ４の姿勢を剣オブジェクト２０４に反映させることで、上記構えアクションおよび振りアクションによる一連のアクションを実現している。これにより。右コントローラ４自体を動かすことで剣オブジェクト２０４を振ることができるため、直感的な操作が可能である。また、実際に剣を振っているかのようなユーザ体験を提供することもできる。
【００８３】
［第１の操作モードについて］
上記のように、第２の操作モードでは、慣性センサを利用することで、右コントローラ４自体を動かすという操作方法を提供している。ここで、本実施形態にかかるゲームシステム１は、上述したように、本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能な構成となっている。そのため、上記図１で示したように、本体装置２に左コントローラ３および右コントローラ４を装着した状態でゲームを遊ぶ場合、ゲーム画面がディスプレイ１２に表示されることもあり、右コントローラ４の慣性センサを用いる上記のような操作は困難になると考えられる。また、その他、プレイヤによってはそもそも第２の操作モードのような操作方法を好まない場合があることも考えられる。そこで、本実施形態では、第１の操作モードを提供している。この操作モードでは、右スティック５２を用いた簡単な方向入力操作で、上記第２の操作モードの場合と同様に構えアクションおよび振りアクションによる一連のアクションを行うことができる。そのため、本体装置２に左コントローラ３および右コントローラ４を装着した状態であっても、第２の操作モードの場合と同様にプレイヤオブジェクト２０１に剣オブジェクト２０４を振る動作を行わせることができる。
【００８４】
次に、第１の操作モードにおける操作および処理の概要について説明する。まず、右スティック５２の操作入力データの扱いに関して説明する。第１の操作モードにおいて、右スティック５２で示される操作入力データは、２次元値として得られる。すなわち、右スティック５２で示される操作入力データは、（ｘ、ｙ）という２次元値で得られるものとする。そして、本実施形態では、右スティック５２を真上から見て、右方向をｘ軸正方向、上方向をｙ軸正方向とする座標系の２次元平面（以下、スティック平面）を想定する。このスティック平面において、右スティック５２がニュートラルの状態（いずれの方向にも傾いていない状態）の場合を原点とする。この場合、この原点から上記２次元値で示される座標を結ぶベクトル（以下、入力ベクトルと呼ぶ）は、入力の強さと入力方向とを示すことになる。すなわち、当該入力ベクトルの長さは右スティック５２の傾きの度合いを示し、入力ベクトルの向きは入力方向を示す。
【００８５】
次に、右スティック５２の入力内容と上記構えアクションおよび振りアクションとの関係について説明する。本実施形態では、上記スティック平面を、プレイヤオブジェクト２０１を背面から見た状態で定義されるｘｙ平面に対応づけている。図１３に、上記スティック平面と当該ｘｙ平面（以下、プレイヤオブジェクト平面と呼ぶ）との対応を示す図である。図１３では、左側に円状のスティック平面を示している。また、右側にプレイヤオブジェクト２０１を示し、その周囲を囲む点線で上記プレイヤオブジェクト平面を示している。なお、スティック平面の円の外周は、右スティック５２の入力限界（最大まで傾けた場合）を示している。図１３では、プレイヤオブジェクト２０１を背面から見たような平面を想定し、プレイヤオブジェクト２０１の略中央部分がスティック平面の原点となるような対応付けを想定している。なお、他の例では、右腕の付け根部分とスティック平面の原点とを対応づけてもよい。
【００８６】
上記のような対応関係を前提に、第１の操作モードでは、以下のような操作が可能である。まず、抜剣の操作については上記第１の操作モードと同様の操作であるとする。抜剣が行われた場合、所定の抜剣モーションが表示された後、ＰＯ状態が構え状態に遷移する。この構え状態のときは、右スティック５２の入力に応じて、剣オブジェクト２０４の姿勢を変化させることができる。また、右スティック５２の入力がニュートラルの場合は、この場合に対応する所定の姿勢となる。
【００８７】
図１４に、右スティック５２を右方向に倒しきっている場合の例を示す。図１４では、左側にスティック平面とその入力ベクトル（矢印）を示し、右側にこの入力に対応する剣オブジェクト２０４（およびプレイヤオブジェクト２０１）の姿勢を示している。図１４に示すように、右スティック５２を右方向に倒しきると、これに応じて、剣オブジェクト２０４の姿勢も、その切っ先を右に向けたような姿勢に変化する。なお、奥行き方向（ｚ軸上）における位置に関しては、ゲーム内容に応じた任意の位置でよいが、基本的には剣オブジェクト２０４を持っているプレイヤオブジェクト２０１の右腕の可動範囲の影響を受ける位置となる。
【００８８】
上記図１４の姿勢から、更に、右スティック５２を倒しきったまま、その入力方向だけを反時計回りに回転させていく場合を想定する。図１５〜図１８に、この場合における姿勢の変化例を示す。図１５は、右スティック５２の入力方向が右上方向である場合を示す。この場合、剣オブジェクト２０４の切っ先も、プレイヤオブジェクト平面における右上方向を向くような姿勢となっている。更に、右スティック５２の入力方向を真上方向に変化させると、図１６に示すように、剣オブジェクト２０４の切っ先がプレイヤオブジェクト平面における真上を向くような姿勢に変化していく。更に、右スティック５２の入力方向を左方向に変化させると、図１７に示すように、剣オブジェクト２０４の切っ先がプレイヤオブジェクト平面における左方向を向くような姿勢に変化していく。更に、右スティック５２の入力方向を真下方向に変化させると、図１８に示すように、剣オブジェクト２０４の切っ先がプレイヤオブジェクト平面における真下を向くような姿勢に変化していく。
【００８９】
このように、第２の操作モードでは、構え状態においては、右スティック５２の入力操作で構えアクションを行わせることができる。すなわち、右スティック５２の方向入力に応じた方向に剣オブジェクト２０４（の切っ先）が向くように、剣オブジェクト２０４の姿勢を変化させることができる。
【００９０】
次に、第２の操作モードにおける振りアクションについて説明する。本実施形態では、構え状態において、右スティック５２を倒しきった状態でプレイヤが右スティック５２から指を離すことで、構え状態から振り状態に遷移することができる。右スティック５２は、ある方向に倒した状態から指を離すと、ニュートラルの位置に（自然に）戻るスティックである。これにより、右スティック５２を倒した状態で右スティック５２から指を離すことで、ほぼ瞬時に右スティック５２をニュートラル状態に戻すことができる。第２の操作モードでは、このような右スティック５２を倒しきった状態から指を離すこと（右スティックの方向入力の解除）をトリガーとして、プレイヤオブジェクト２０１を構え状態から振り状態に遷移し、上記のような振りアクションを行わせる。以下、このような振りアクションのトリガーとなる、方向入力を解除する操作のことを「リリース操作」と呼ぶ。
【００９１】
ここで、上記リリース操作の判定手法について補足説明する。図１９および図２０は、上記リリース操作の判定手法を説明するための図である。いずれの図も、上記スティック平面を示すものである。まず、図１９では、スティック平面の外周より少し内側になるような位置に、第１の閾値１３１が示されている。本実施形態では、構え状態において、原点からの上記入力ベクトルの長さがこの第１の閾値１３１を超えている場合に上記リリース操作を行うと、振りアクションを行うことができる。逆に、入力ベクトルの長さがこの第１の閾値を超えていない状態で右スティック５２から指を離しても、上記リリース操作とはならない。すなわち、プレイヤオブジェクト２０１は振り状態には遷移せず、構え状態を維持したまま、剣オブジェクト２０４の姿勢が変化する（ニュートラルのときの姿勢になる）だけとなる。つまり、振りアクションを行うためには、右スティック５２について、ある程度大きな傾きが要求されるものとなっている。以下の説明では、当該第１の閾値１３１を「振り発生閾値」と呼ぶ。
【００９２】
次に、図２０では、スティック平面の原点の少し外側に、第２の閾値１３２が示されている。本実施形態では、入力ベクトルの長さが上記図１９のような振り発生閾値１３１を超える入力状態から、当該入力ベクトルの長さが当該第２の閾値１３２を超えない状態に所定時間内、例えば３フレーム以内に変化した場合に、上述したリリース操作が発生したと判定する。つまり、上記の指をスティックから離した場合に、スティックがニュートラル位置付近まで戻るまでの時間がある程度小さい場合に、上記のようなスティックから指を離す操作があったと判定するものである。以下の説明では、当該第２の閾値１３２のことを「リリース判定閾値」と呼ぶ。なお、上記「３フレーム以内」はあくまで一例であり、ゲーム内容に応じて適切なフレーム数を用いればよいことはいうまでもない。
【００９３】
上記のように、プレイヤは、プレイヤオブジェクト２０１が構え状態にあるときに上記のようなリリース操作を行うことで、プレイヤオブジェクト２０１に振りアクションを行わせることができる。このときの剣オブジェクト２０４を振る方向については、右スティック５２が倒れていた方向とは逆の方向であるとする。例えば、上記図１４で示したように、右方向にスティックを倒しきっている状態で指を離すと、上記図１１で示したような、左方向に向けて剣を振りきるような振りアクションが行われることになる。このような操作方法により、プレイヤは、剣を振りたい方向とは逆の方向に右スティック５２を倒しきり、指を離すことで、所望の方向に剣オブジェクト２０４を振らせることができる。また、振りアクションを行うためには、右スティック５２をほぼ最大まで傾ける必要があるところ、右スティック５２の軸を囲う外周部分に沿って右スティック５２の傾き方向を変化させることができる。つまり、右スティック５２の軸の外周部分が一種のガイド的な役割を果たし、剣を振る方向の狙いが付けやすくなる。そのため、剣オブジェクト２０４を振る方向について、正確な方向入力が行いやすくなる。上記のような構えアクションからの振りアクションという一連の流れは、正確な方向入力を行いやすくすることができる。
【００９４】
また、上記のような構えアクションからの振りアクションという一連の流れによる正確な方向入力のしやすさは、例えばゲームの進行において、所定の方向に剣オブジェクト２０４を振ることを要求するギミックがある場合に特に有用である。このギミックとしては、例えば、所定の方向に剣を振らなければ倒せない敵オブジェクトや、所定の方向から剣オブジェクト２０４を当てないと解除されない罠オブジェクト等である。このような場合、振りアクションにおける振り方向を判別して、敵への攻撃が成功したか否かや、罠の解除に成功したか否か等を判定するゲーム処理が行われることになる。
【００９５】
また、第１の操作モードでは、上記のような処理を行う結果、右スティック５２をはじくような操作（以下、はじき操作）によって、構えアクションおよび振りアクションを連続的且つ瞬間的に行うことも可能である。このはじき操作として、例えば、抜剣している状態で、右スティック５２がニュートラルの状態のときに、右スティック５２を右方向にはじくようにして操作した場合を想定する。この場合は、右スティック５２の入力としては、ニュートラルの状態から上記振り発生閾値１３１を超える入力ベクトルが発生し、更にその後、その入力ベクトルがリリース判定閾値１３２を下回るようなものに変化する、というものとなる。そして、この右方向への振り発生閾値１３１を超える入力ベクトルの発生と、リリース判定閾値１３２を下回る入力ベクトルへの変化（および、リリース操作が発生したとの判定）とが、数フレーム程度という極めて短い時間内で発生することになる。そのため、プレイヤは、このようなはじき操作を行うだけで、はじいた方向とは逆方向への振りアクションを、ほぼ「瞬時」とも言えるような時間内にプレイヤオブジェクト２０１に行わせることが可能となっている。これにより、構えアクションによってじっくりと振る方向の狙いを定めてから振りアクションを実行するという操作の他、はじき操作によって瞬時に振りアクションを実行するという操作もプレイヤに提供できる。
【００９６】
なお、本実施形態では、非抜刀状態において、プレイヤが所定のボタンを押すことで構え状態に遷移する例で説明しているが、他の実施形態では、第１の操作モードで、非抜刀状態において右スティック５２の入力が行われたときに抜剣するようにしてもよい。この場合、上記はじき操作を行えば、非抜刀状態からいきなり振りアクションを実行させるような動きをプレイヤオブジェクト２０１に行わせることも可能である。
【００９７】
また、上記リリース操作について、右スティック５２から指を離した場合の例を挙げた。この点、判定処理としては、上記図１９のような入力状態から所定時間内に上記図２０のような入力状態に変化したことが判定できればリリース操作として判定される。そのため、指を右スティック５２から離さずに、例えば右に倒しきった状態から左に倒しきった状態に素早く方向入力を行った場合に、上記のような「３フレーム以内にリリース判定閾値を下回る」という条件が満たされていれば、リリース操作が行われたと判定され、振りアクションも行われ得る。そのため、例えば、右スティック５２を左右交互に倒す操作を素早く繰り返すことで、右振りと左振りの振りアクションが交互に繰り返され、あたかもプレイヤオブジェクト２０１が連続切りを行っているようなアクションを行わせることも可能である。つまり、このような連続的な操作が行われた場合は、構えアクションおよび振りアクションのセットが連続的に実行されるということになる。
【００９８】
このように、本実施形態では、上記構えアクション及び振りアクションについて、第２の操作モードとして慣性センサを用いた操作方法をプレイヤに提供する。更に、第１の操作モードでも、右スティック５２の操作のみで第２の操作モードと同様の構えアクションと振りアクションを行うことができる。これにより、プレイヤに応じた適切な操作方法を提供することができる。
【００９９】
また、本ゲームでは、上記のような剣オブジェクト２０４に関する操作の他、次のような操作も可能である。
【０１００】
［移動操作］
本ゲームでは、左スティック３２を用いることで、プレイヤオブジェクト２０１を移動させることができる。そのため、左スティック３２でプレイヤオブジェクト２０１を移動させながら、右コントローラ４を用いた剣オブジェクト２０４の操作を行うことも可能である。これにより、移動しながら敵オブジェクトに攻撃すること等も可能である。
【０１０１】
［仮想カメラ操作］
また、本ゲームでは、所定のボタンを押下した状態で右スティック５２を操作することで、仮想カメラの撮像方向を変化させることもできる。例えば、第１Ｒボタン６０を押しながら右スティック５２を操作することで、その方向入力に基づき、仮想カメラの向きを変えることが可能である。また、この仮想カメラの操作中は、上記右スティック５２による剣オブジェクト２０４の制御（第１、第２のいずれの操作モードでも）は行われない。つまり、第１Ｒボタン６０を押している間は、右スティック５２は仮想カメラ操作のために用いられ、第１Ｒボタン６０を押していない場合は、右スティック５２は剣オブジェクト２０４の制御のために用いられることになる。
【０１０２】
その他、各種アイテムの使用操作等、ゲーム進行に関連する各種の操作も可能となっている。
【０１０３】
［本実施形態のゲーム処理の詳細］
次に、図２１〜図２７を参照して、本実施形態におけるゲーム処理についてより詳細に説明する。
【０１０４】
［使用データについて］
まず、本ゲーム処理にて用いられる各種データに関して説明する。図２１は、本体装置２のＤＲＡＭ８５に記憶される各種データの一例を示すメモリマップである。本体装置２のＤＲＡＭ８５には、ゲームプログラム３０１、操作データ３０２、操作モード情報３０７、ＰＯ状態情報３０８、リリース操作判定用データ３０９、剣振りパラメータ３１０、仮想カメラ設定データ３１１、オブジェクトデータ３１２等が記憶されている。
【０１０５】
ゲームプログラム３０１は、本実施形態にかかるゲーム処理を実行するためのプログラムである。
【０１０６】
操作データ３０２は、上記左コントローラ３および右コントローラ４から得られるデータであり、プレイヤの操作内容を示すデータである。操作データ３０２には、デジタルボタンデータ３０３と、右アナログスティックデータ３０４と、左アナログスティックデータ３０５と、慣性センサデータ３０６とが少なくとも含まれている。デジタルボタンデータ３０３は、コントローラが有する各種ボタンの押下状態を示すデータである。右アナログスティックデータ３０４は、上記右スティック５２に対する操作内容を示すためのデータである。具体的には、ｘ、ｙの２次元のデータが含まれる。左アナログスティックデータ３０５は、上記左スティック３２に対する操作内容を示すためのデータである。慣性センサデータ３０６は、上述した加速度センサや角速度センサ等の慣性センサの検出結果を示すデータである。具体的には、加速度データや角速度データが含まれる。
【０１０７】
操作モード情報３０７は、現在の操作モードが上記第１の操作モードであるか第２の操作モードであるかを示すための情報である。
【０１０８】
ＰＯ状態情報３０８は、プレイヤオブジェクト２０１の状態が上述した「非抜剣状態」「構え状態」「振り状態」のいずれの状態であるかを示すための情報である。初期値は「非抜剣状態」であるとする。
【０１０９】
リリース操作判定用データ３０９は、上述したリリース操作が行われたか否かを判定するためのデータである。具体的には、直近数フレーム分の右アナログスティックデータ３０４が格納される（他の例では、上述した入力ベクトルを示すデータが格納されてもよい）。また、当該データは、古いデータから順に入れ替わっていくものとする。
【０１１０】
剣振りパラメータ３１０は、上記振りアクションにおいて剣オブジェクト２０４を移動させるための各種パラメータである。たとえば、剣オブジェクト２０４の移動方向や移動速度等を示すパラメータである。
【０１１１】
仮想カメラ設定データ３１１は、仮想カメラの撮像方向等を指定するためのデータである。上記のような第１Ｒボタン６０を押しながらの右スティック５２の操作に応じて、その方向が変化する。
【０１１２】
オブジェクトデータ３１２は、プレイヤオブジェクト２０１を含む、本ゲームに登場する各種オブジェクトの外観を示すデータである。モデルデータやテクスチャデータ等がこれに含まれる。
【０１１３】
その他、ゲーム処理に必要な各種データも適宜生成され、ＤＲＡＭ８５に格納される。
【０１１４】
［プロセッサ８１が実行する処理の詳細］
次に、図２２のフローチャートを参照して、本実施形態にかかるゲーム処理の詳細を説明する。なお、この説明では、主に、上述したような剣オブジェクト２０４の操作に関する処理について説明し、その他のゲーム処理についての詳細な説明は割愛する。
【０１１５】
図２２は、本ゲーム処理の詳細を示すフローチャートである。図２２において、まず、ステップＳ１で、プロセッサ８１は、以降の処理において用いられるデータを初期化するための初期化処理を実行する。具体的には、「非抜剣状態」を示すデータがＰＯ状態情報３０８としてＤＲＡＭ８５に記憶される。また、プロセッサ８１は、仮想カメラ設定データ３１１に、上記図８で示したような、プレイヤオブジェクト２０１の背後からの視点となるゲーム画像が表示されるような各種パラメータ（位置、画角、注視点）を設定する。更に、プロセッサ８１は、３次元の仮想ゲーム空間を構築し、プレイヤオブジェクト２０１等を適宜配置する。以上のように構築されたゲーム空間を仮想カメラで撮影したゲーム画像が生成され、生成されたゲーム画像が上記据置型モニタ等に出力される。
【０１１６】
次に、ステップＳ２で、プロセッサ８１は、ＰＯ状態情報３０８を参照し、ＰＯ状態が振り状態であるか否かを判定する。当該判定の結果、振り状態の場合は（ステップＳ２でＹＥＳ）、後述するステップＳ１０の処理を実行する。一方、振り状態ではない場合は（ステップＳ２でＮＯ）、ステップＳ３で、プロセッサ８１は、ＰＯ状態が構え状態であるか否かを判定する。その結果、構え状態であれば（ステップＳ３でＹＥＳ）、プロセッサ８１は、後述するステップＳ９の処理へ進む。
【０１１７】
一方、構え状態ではない場合は（ステップＳ３でＮＯ）、ＰＯ状態は非抜剣状態であるため、ステップＳ４で、プロセッサ８１は、操作データ３０２をＤＲＡＭ８５から取得する。
【０１１８】
次に、ステップＳ５で、プロセッサ８１は、構え遷移判定処理を実行する。この処理では、ＰＯ状態を非抜剣状態から構え状態に遷移させるか否かの判定等が行われる。図２３は、当該構え遷移判定処理の詳細を示すフローチャートである。図２３において、まず、ステップＳ２１で、現在のフレームに係る処理において、抜剣モーションの表示中の状態であるか否かが判定される。本実施形態では、抜剣の指示操作が行われた場合、数フレームかけてプレイヤオブジェクト２０１が剣オブジェクト２０４を抜剣するモーションを表示する。当該判定は、このモーションの途中の状態であるか否かを判定するためのものである。当該判定の結果、抜剣モーション中ではない場合は（ステップＳ２１でＮＯ）、ステップＳ２２で、プロセッサ８１は、抜剣操作が行われたか否かを操作データ３０２で示される操作内容に基づき判定する。本実施形態では、抜剣操作として割り当てられている所定のボタンが押下されたか否かを判定する。またこの他、他の実施形態では、例えば、右コントローラ４が所定の加速度以上で振られた場合や、右スティック５２への方向入力が発生したときにも、抜剣操作が行われたと判定するようにしてもよい。
【０１１９】
上記判定の結果、抜剣操作が行われていた場合は（ステップＳ２２でＹＥＳ）、ステップＳ２３で、プロセッサ８１は、上記抜剣モーションを表示するための表示設定を行う。この設定に基づき、後述するステップＳ７のゲーム画像出力処理において、抜剣モーションが表示される。また、この設定によって、上記ステップＳ２１の判定において、抜剣モーション中と判定される。この設定は、例えば、抜剣モーション中であることを示すフラグ（図示は省略）をオンにする等で設定され得る。
【０１２０】
一方、抜剣操作が行われていない場合は（ステップＳ２２でＮＯ）、上記ステップＳ２３の処理はスキップされて、構え遷移判定処理は終了する。
【０１２１】
次に、上記ステップＳ２１の判定の結果、抜剣モーションの表示中と判定された場合（ステップＳ２１でＹＥＳ）について説明する。この場合は、ステップＳ２４で、プロセッサ８１は、抜剣モーションが終了したか否かを判定する。まだ終了していない場合は（ステップＳ２４でＮＯ）、構え遷移判定処理は終了する。その結果、引き続き抜剣モーションが表示されることになる。一方、抜剣モーションが終了した場合は（ステップＳ２４でＹＥＳ）、ステップＳ２５で、プロセッサ８１は、抜剣モーションの表示を終了する旨の設定を行う。例えば、上述した抜剣モーション中であることを示すフラグをオフにする。次に、ステップＳ２６で、プロセッサ８１は、ＰＯ状態情報３０８に、構え状態を示すデータを設定する。つまり、本実施形態では、抜剣モーションが終了するまでは構え状態には遷移しない。なお、他の実施形態では、抜剣操作が行われた時点で構え状態に遷移させてもよい。その後、構え遷移判定処理は終了する。
【０１２２】
図２２に戻り、次に、ステップＳ６で、プロセッサ８１は、後述する構えアクション処理および振りアクション処理以外の各種ゲーム処理を実行する。具体的には、左スティック３２の操作内容（左アナログスティックデータ３０５）に基づきプレイヤオブジェクト２０１を移動させる処理が行われる。また、第１Ｒボタン６０を押しながらの右スティック５２の操作内容に基づき、仮想カメラのパラメータを変更する処理も行われる。また、今回のフレームにおいて取得した操作データ３０２の右アナログスティックデータ３０４を上記リリース操作判定用データ３０９に格納する処理も実行される。また、上記抜剣モーションの表示中の状態の場合は、プレイヤオブジェクト２０１に所定の抜剣モーションを行わせる処理も実行される。その他、プレイヤオブジェクト２０１が構えアクションや振りアクションを行っていないときも含め、ゲームの進行に関する各種のゲーム処理が適宜実行される。
【０１２３】
次に、ステップＳ７で、プロセッサ８１は、ゲーム画像出力処理を実行する。具体的には、プロセッサ８１は、上記の処理と、後述の構えアクション処理および振りアクション処理の結果が反映された仮想ゲーム空間を仮想カメラで撮像してゲーム画像を生成する。そして、プロセッサ８１は、当該ゲーム画像を据置型モニタに出力する。
【０１２４】
次に、ステップＳ８で、プロセッサ８１は、本実施形態にかかるゲームの終了条件が満たされたか否かを判定する。例えば、プレイヤがゲームの終了操作を行った場合等である。当該判定の結果、ＹＥＳの場合はゲーム処理を終了し、ＮＯの場合は、ステップＳ２に戻って、本実施形態にかかるゲーム処理を繰り返す。すなわち、ゲーム処理が終了されるまで、ステップＳ２からステップＳ７までの処理が、描画の時間単位である１フレーム毎に繰り返される。
【０１２５】
［構えアクション処理について］
次に、上記ステップＳ９にかかる構えアクション処理について説明する。図２４〜図２５は、当該構えアクション処理の詳細を示すフローチャートである。図２４において、まず、ステップＳ３１で、プロセッサ８１は、操作データ３０２を取得する。
【０１２６】
次に、ステップＳ３２で、プロセッサ８１は、現在の操作モードが第１の操作モード（右スティック５２を用いる操作モード）であるか否かを判定する。当該判定の結果、第１の操作モードの場合は（ステップＳ３２でＹＥＳ）、ステップＳ３３で、プロセッサ８１は、第１の操作モードにおける構え状態を終了させる操作（納剣操作）が行われたか否かを判定する。この終了操作は、本実施形態では、所定のボタンの押下である。なお、本実施形態では、当該構え状態を終了させる操作は第１の操作モードの場合と第２の操作モードの場合とで共通であるとする。この終了操作について第１の操作モードの場合と第２の操作モードとで異なる操作を採用する場合は、各モードに応じてその操作内容を判定すればよい。
【０１２７】
上記判定の結果、構え状態を終了させる操作が行われた場合は（ステップＳ３３でＹＥＳ）、ステップＳ３４で、プロセッサ８１は、ＰＯ状態情報３０８に非抜剣状態を設定する。またこの際、鞘に剣オブジェクト２０４を収める納剣モーションの表示設定も適宜行う。その後、構えアクション処理は終了する。
【０１２８】
一方、上記ステップＳ３３の判定の結果、構え状態を終了させる操作が行われていない場合は（ステップＳ３３でＮＯ）、次に、ステップＳ３５で、プロセッサ８１は、右アナログスティックデータ３０４に基づき、上記入力ベクトルを算出する。次に、ステップＳ３６で、プロセッサ８１は、上記算出した入力ベクトルと、リリース操作判定用データ３０９とに基づき、上述したようなリリース操作が発生したか否かを判定する。つまり、振り状態への遷移条件が満たされたか否かを判定する。より具体的には、プロセッサ８１は、上記図１９で示したような振り発生閾値１３１を超える入力があった状態から、上記図２０で示したようなリリース判定閾値１３２を下回る入力状態に、３フレーム以内に変化したか否かを判定する。当該判定の結果、リリース操作が発生していない場合は（ステップＳ３６でＮＯ）、ステップＳ３７で、プロセッサ８１は、上記ステップＳ３５で算出した入力ベクトルに基づき、剣オブジェクト２０４の姿勢と位置を設定する。これにより、上記構えアクションとして、右スティック５２の方向入力に応じて剣オブジェクト２０４の姿勢と位置を変化させることができる。なお、右スティック５２の入力がニュートラルの場合は、この場合に対応する所定の姿勢と位置が設定される。その後、構えアクション処理は終了する。
【０１２９】
一方、上記ステップＳ３６の判定の結果、リリース操作が発生した場合は（ステップＳ３６でＹＥＳ）、ステップＳ３８で、プロセッサ８１は、ＰＯ状態情報３０８に振り状態を示すデータを設定する。
【０１３０】
次に、ステップＳ３９で、プロセッサ８１は、振り内容設定処理を実行する。この処理は、上記剣振りパラメータ３１０の内容を設定する処理である。ここで設定された内容に基づき、次のフレームにかかる処理において剣オブジェクト２０４の姿勢変化や移動が行われることになる。図２６は、当該振り内容設定処理の詳細を示すフローチャートである、図２６において、ステップＳ６１で、プロセッサ８１は、操作モード情報３０７に基づき、操作モードが第１の操作モードであるか否かを判定する。第１の操作モードの場合は（ステップＳ６１でＹＥＳ）、右スティック５２の入力に基づいて剣振りパラメータ３１０の内容を設定する処理が行われる。まず、ステップＳ６２で、プロセッサ８１は、上記算出した入力ベクトルに基づき、剣オブジェクト２０４の移動方向を設定する。具体的には、プロセッサ８１は、リリース操作直前の上記入力ベクトルの方向とは逆方向を算出する。そして、当該算出した方向が剣オブジェクト２０４の移動方向を示すように、剣振りパラメータ３１０の内容を設定する。
【０１３１】
次に、ステップＳ６３で、プロセッサ８１は、上記入力ベクトルに基づき、剣オブジェクト２０４の移動方向を設定する。具体的には、プロセッサ８１は、リリース操作直前の上記入力ベクトルの長さに基づき、移動速度を算出する。そして、当該算出した移動速度が剣オブジェクト２０４の移動速度を示すように、剣振りパラメータ３１０の内容を設定する。つまり、右スティック５２の傾きが大きいほど、剣オブジェクト２０４の移動速度も速くなる。なお、他の実施形態では、第１の操作モードでの振りアクションにおける剣オブジェクト２０４の移動速度については、上記入力ベクトルの長さに関わらず、予め決められた固定の速度としてもよい。その後、振り内容設定処理は終了する。
【０１３２】
一方、上記ステップＳ６１の判定の結果、操作モードが第２の操作モードの場合（ステップＳ６１でＮＯ）、慣性センサデータ３０６に基づいて剣振りパラメータ３１０の内容を設定する処理が行われる。まず、ステップＳ６４で、プロセッサ８１は、慣性センサデータ３０６に含まれる加速度データに基づき、右コントローラ４が振られた方向を算出する。そして、当該算出した方向が剣オブジェクト２０４の移動方向を示すように、剣振りパラメータ３１０の内容を設定する。
【０１３３】
次に、ステップＳ６５で、プロセッサ８１は、慣性センサデータ３０６に含まれる加速度データに基づき、右コントローラ４が振られた速度を算出する。そして、当該算出した速度が剣オブジェクト２０４の移動速度を示すように、剣振りパラメータ３１０の内容を設定する。その後、振り内容設定処理は終了する。
【０１３４】
図２４に戻り、振り内容設定処理が終われば、構えアクション処理は終了する。
【０１３５】
次に、上記ステップＳ３２の判定の結果、操作モードが第２の操作モードの場合（ステップＳ３２でＮＯ）について説明する。この場合は、図２５のステップＳ４０で、プロセッサ８１は、第２の操作モードにおける構え状態を終了させる操作が行われたか否かを判定する。この終了操作は、本実施形態では、第１の操作モードの場合と同様に所定のボタンの押下であるとする。
【０１３６】
上記判定の結果、構え状態を終了させる操作が行われた場合は（ステップＳ４０でＹＥＳ）、ステップＳ４１で、プロセッサ８１は、ＰＯ状態情報３０８に非抜剣状態を設定する。その後、構えアクション処理は終了する。
【０１３７】
一方、上記ステップＳ４０の判定の結果、構え状態を終了させる操作が行われていない場合は（ステップＳ４０でＮＯ）、次に、ステップＳ４２で、プロセッサ８１は、慣性センサデータ３０６に基づき、所定値以上の加速度が発生したか否かを判定する。この所定値は、右コントローラ４を「振った」と判定されるに足る加速度の大きさである。つまり、右コントローラ４が、所定の速度以上の速さで振られたか否かを判定するものである。当該判定の結果、所定値未満の場合は（ステップＳ４２でＮＯ）、ステップＳ４３で、プロセッサ８１は、慣性センサデータ３０６に含まれる加速度データおよび角速度データに基づいて、右コントローラ４の姿勢を算出する。
【０１３８】
次に、ステップＳ４４で、プロセッサ８１は、上記算出された右コントローラ４の姿勢に対応するように剣オブジェクト２０４の姿勢と位置を算出する。これにより、慣性センサを用いた構えアクションが実現される。その後、構えアクション処理は終了する。
【０１３９】
一方、上記ステップＳ４２の判定の結果、加速度が所定値以上の場合は（ステップＳ４２でＹＥＳ）、第２の操作モードにおける、構え状態から振り状態へ遷移する条件が満たされたことになる。この場合は、ステップＳ４５で、プロセッサ８１は、ＰＯ状態情報３０８を振り状態に設定する。そして、ステップＳ４６で、プロセッサ８１は、振り内容設定処理を実行する。この処理は上述したステップＳ３９の処理と同様であるため、詳細は説明は割愛するが、第２の操作モードの場合は、上記ステップＳ６１の判定でＮＯと判定されてその後の処理が行われることになる。以上で、構えアクション処理は終了する。構えアクション処理が終了すれば、上記ステップＳ６に処理が進められる。
【０１４０】
［振りアクション処理について］
次に、上記ステップＳ１０の振りアクション処理の詳細について説明する。図２７は、当該振りアクション処理の詳細を示すフローチャートである。図２７において、まず、ステップＳ８１で、プロセッサ８１は、操作データ３０２を取得する。
【０１４１】
次に、ステップＳ８２で、プロセッサ８１は、上記剣振りパラメータ３１０の内容に基づいて剣オブジェクト２０４を移動させ、また、剣オブジェクト２０４の姿勢も変化させる。
【０１４２】
次に、ステップＳ８３で、プロセッサ８１は、当たり判定処理を行う。すなわち、剣オブジェクト２０４が所定のオブジェクトと接触したか否かが判定される。当該判定結果はＤＲＡＭ８５に適宜格納され、上記ステップＳ６のその他のゲーム処理において、当たり判定結果に基づいた各種のゲーム処理が実行される。
【０１４３】
次に、ステップＳ８４で、プロセッサ８１は、振りアクションが終了したか否かを判定する。例えば、振りアクションが開始されてから所定のフレーム数分の時間が経過したか否か、等で、振りアクション（剣を振るモーションの表示）が終了したか否かが判定される。当該判定の結果、振りアクションが終了していない場合は（ステップＳ８４でＮＯ）、ステップＳ８５で、振り内容設定処理が実行される。当該処理は上述したステップＳ３９の処理と同様であるため、詳細な説明は割愛する。その後、振りアクション処理は終了する。
【０１４４】
一方、ステップＳ８４の判定の結果、振りアクションが終了した場合は（ステップＳ８４でＹＥＳ）、ステップＳ８６で、プロセッサ８１は、ＰＯ状態情報３０８に構え状態を示すデータを設定する。これにより、振り状態から構え状態への遷移が行われることになる。その後、振りアクション処理は終了する。振りアクション処理が終了すれば、上記ステップＳ６に処理が進められる。
【０１４５】
以上で、本実施形態にかかるゲーム処理の詳細説明を終了する。
【０１４６】
このように、本実施形態では、アナログスティックの方向入力という簡単な操作によって、剣オブジェクト２０４の「構え」と「振り」からなる一連のアクションを行わせることができる。また、アナログスティックの方向入力を解除することで「振り」を発動させるという操作方法により、振りのタイミングや方向を定めやすくすることができる。更に、慣性センサを用いたコントローラ自体の動き・姿勢に基づく上記一連のアクションを行わせることもできる。この場合アナログスティック操作と慣性センサに基づく操作とのいずれの操作方法を用いても、剣オブジェクト２０４の「構え」と「振り」からなるアクション、という共通のアクションを実現することができる。これにより、同じアクションに対して多様多彩な操作方法をプレイヤに提供でき、プレイヤの利便性を高めることができる。 
【０１４７】
［変形例］
なお、上記実施形態では、リリース操作の際、右スティックの入力方向とは逆の方向を剣オブジェクトを振る方向として設定する例を挙げた。他の実施形態では、剣を振る方向については、このような逆方向に限らず、所定の方向に剣オブジェクト２０４を振るようにしてもよい。例えば、予め剣を振る方向が特定方向に設定されており、上記リリース操作が行われれば、そのときの入力方向に関わらず、常にこの特定方向に剣を振るようにしてもよい。
【０１４８】
また、上記構えアクションに関して、上記実施形態では、図１９で示した振り発生閾値１３１を越える入力が発生しているときにリリース操作が行われると、振りアクションが行われる例を挙げた。また、この例では、振り発生閾値１３１を越えない方向入力がある場合でも、構えアクション自体は行われ得るものとなっていた。他の実施形態では、当該振り発生閾値１３１を越えるような方向入力が行われときだけ上記構えアクションを行うような構成にしてもよい。この場合は、方向入力が行われても、振り発生閾値１３１を越えない方向入力であるときは（例えば、上記リリース判定閾値１３２以上、振り発生閾値１３１未満の範囲内の入力）、上記のような構えアクションは行わないようにしてもよい。この場合は、「非抜剣状態」と「構え状態」との間に、「抜剣はしているが構えていない」状態が加わるような態様となる。また、この状態においては、プレイヤオブジェクト２０１は剣を構えている状態ではないが、剣の位置や姿勢自体は入力内容に応じて変化させるようにしてもよい。また逆に、この状態においては、入力内容に応じた剣の位置や姿勢の変化は行わずに、例えば抜剣した際のデフォルトとして定義されている位置や姿勢に剣オブジェクト２０４を固定するようにしてもよい。
【０１４９】
また、リリース操作に関して、上記実施形態では、振り発生閾値１３１を超える入力状態から所定時間以内にリリース判定閾値１３２を超えない入力状態に変化した場合に、振りアクションを行わせる例を挙げた。リリース操作の判定手法についてはこれに限るものではなく、他の手法で方向入力が解除されたことを判別するようにしてもよい。そして、方向入力の解除が発生したときに上記振りアクションを行わせるようにしてもよい。
【０１５０】
また、上記実施形態では、第１の操作モードにおいて振りアクションが行われている間は、その振りアクションが終了するまでは剣オブジェクト２０４に関する操作を実質的に受け付けないような構成となっていた。これに限らず、他の実施形態では、振りアクションの途中において、次の操作を受け付け可能なように構成してもよい。例えば、振りアクションの開始から終了まで１０フレーム分の時間を要する場合を想定する。この場合、開始から１２０フレームまでは剣オブジェクト２０４に関する操作は受け付けないが、１２０フレーム以降は当該操作を受け付けるようにしてもよい。これにより、プレイヤオブジェクト２０１が剣を振るモーションを途中でキャンセルして、次の構えアクション〜振りアクションを行わせるような操作をプレイヤに提供することもできる。そのため、プレイヤが行うプレイの幅を広げることができ、ゲームの興趣性を高めることができる。
【０１５１】
また、上記実施形態では、第１の操作モードでアナログスティックを用いる場合を例に挙げた。入力デバイスについては、アナログスティックに限らない。入力がない場合は所定のニュートラルポジションとなるようなアナログ入力式の方向入力デバイスを用いる場合にも、上記処理は適用可能である。たとえば、スライドパッドなどにも適用可能である。
【０１５２】
また、上記実施形態では、剣オブジェクト２０４を振る場合を例に挙げたが、手に持って振って用いるような武器であれば、その他の種類の武器オブジェクトを用いる場合でも上記処理は適用可能である。例えば棍棒や斧等でもよい。
【０１５３】
更には、アナログ方式の入力デバイスだけでなく、例えば上下左右の方向入力が可能なデジタル式の方向入力ボタンを用いる場合でも、上記第１の操作モードにおける処理は適用可能である。この場合は、上記リリース操作として、上記のような各種の閾値の代わりに、方向入力がオンからオフに切り替わったタイミングを用いるようにすればよい。そして、入力されていた方向と逆方向あるいはこれ以外の所定の方向に剣を振らせるように、上記振りアクションを行わせてもよい。
【０１５４】
また、上記実施形態においては、ゲーム処理にかかる一連の処理が単一の装置において実行される場合を説明したが、他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。また、いわゆるクラウドゲーミングの構成としてもよい。例えば、本体装置２は、プレイヤの操作を示す操作データを所定のサーバに送り、当該サーバにおいて各種ゲーム処理が実行され、その実行結果が動画・音声として本体装置２にストリーミング配信されるような構成としてもよい。
【符号の説明】
【０１５５】
１    ゲームシステム
２    本体装置
３    左コントローラ
４    右コントローラ
８１  プロセッサ
８４  フラッシュメモリ
８５  ＤＲＡＭ
【図１】
2022002627.tif 000003
【図２】
2022002627.tif 000004
【図３】
2022002627.tif 000005
【図４】
2022002627.tif 000006
【図５】
2022002627.tif 000007
【図６】
2022002627.tif 000008
【図７】
2022002627.tif 000009
【図８】
2022002627.tif 000010
【図９】
2022002627.tif 000011
【図１０】
2022002627.tif 000012
【図１１】
2022002627.tif 000013
【図１２】
2022002627.tif 000014
【図１３】
2022002627.tif 000015
【図１４】
2022002627.tif 000016
【図１５】
2022002627.tif 000017
【図１６】
2022002627.tif 000018
【図１７】
2022002627.tif 000019
【図１８】
2022002627.tif 000020
【図１９】
2022002627.tif 000021
【図２０】
2022002627.tif 000022
【図２１】
2022002627.tif 000023
【図２２】
2022002627.tif 000024
【図２３】
2022002627.tif 000025
【図２４】
2022002627.tif 000026
【図２５】
2022002627.tif 000027
【図２６】
2022002627.tif 000028
【図２７】
2022002627.tif 000029