(57)【要約】【課題】汎用のゲームコントローラの入力部の操作信号をゲームに提供する情報処理装置において、ガンコントローラなどの専用コントローラを利用可能とする技術を提供する。【解決手段】第１算出部１２２は、モーションセンサにおいて検出された角速度から第１信号を算出する。第２算出部１２４は、コントローラの向く方向と基準方向とのずれ量に応じた第２信号を算出する。加算部１２６は、第１信号と第２信号を加算したモーション操作信号を生成する。アナログスティック信号生成部１３２は、モーション操作信号から、アナログスティック信号を生成する。出力処理部１６０は、変換されたアナログスティック信号をゲームに提供する。【選択図】図６
2019084339.tif 000002
【特許請求の範囲】
【請求項１】
アナログスティックの操作信号をゲームに提供する情報処理装置であって、
コントローラの動きを検出した検出値を、アナログスティック信号に変換する変換処理部と、
変換されたアナログスティック信号をゲームに提供する出力処理部と、を備え、
前記変換処理部は、
検出された角速度から第１信号を算出する第１算出部と、
コントローラの向く方向と基準方向とのずれ量に応じた第２信号を算出する第２算出部と、
第１信号と第２信号を加算したモーション操作信号を生成する加算部と、
モーション操作信号から、アナログスティック信号を生成するアナログスティック信号生成部と、を有する、
ことを特徴とする情報処理装置。
【請求項２】
前記第２算出部は、ずれ量が所定の角度閾値を超えた場合に、第２信号を算出する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２算出部は、モーションセンサにおいて検出された角速度または加速度を積分して、第２信号を算出する、
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
アナログスティック信号は、Ｘ軸成分とＹ軸成分とから構成されるものであって、
前記第２算出部は、アナログスティック信号のＸ軸成分に反映される第２信号を算出する一方で、アナログスティック信号のＹ軸成分に反映される第２信号を算出しない、
ことを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記変換処理部は、ガンシューティングゲームにおいてリコイルコントロールが実施されていることを検出すると、リコイルコントロールの実施終了後に、コントローラを上向きに傾動する動作に相当するアナログスティック信号を、出力処理部に伝えない、
ことを特徴とする請求項１から４のいずれかに記載の情報処理装置。
【請求項６】
アナログスティックの操作信号をゲームに提供する情報処理装置において、コントローラの動きを検出した検出値を、アナログスティックの操作信号に変換する方法であって、
コントローラの動きを検出した検出値を取得するステップと、
検出された角速度から第１信号を算出するステップと、
コントローラの向く方向と基準方向とのずれ量から第２信号を算出するステップと、
第１信号と第２信号を加算したモーション操作信号を生成するステップと、
モーション操作信号から、アナログスティック信号を生成するステップと、を有する、
ことを特徴とする信号変換方法。
【請求項７】
アナログスティックの操作信号をゲームに提供するコンピュータに、
コントローラの動きを検出した検出値を取得する機能と、
検出された角速度から第１信号を算出する機能と、
コントローラの向く方向と基準方向とのずれ量から第２信号を算出する機能と、
第１信号と第２信号を加算したモーション操作信号を生成する機能と、
モーション操作信号から、アナログスティック信号を生成する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力装置の操作信号をゲームに提供する技術に関する。
【背景技術】
【０００２】
ゲーム専用機は、ゲームコントローラの入力部の操作信号を受け付けて、ゲームに提供する。特許文献１は、ゲームコントローラの機能を備えたキーボードを開示し、このキーボードは、ゲームコントローラの操作ボタンの機能を割り当てられた割当キーと、ポインティングスティックと、修飾キーとを備える。修飾キーが操作された状態でポインティングスティックが操作されると、ゲームコントローラのアナログスティックの操作信号が出力されて、ゲームに提供される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１２／０２８９３３６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、特定種類のゲームに使用される特殊な形状のゲームコントローラが販売されており、ガンシューティングゲームにおけるガンコントローラは、その代表である。ゲームソフトウェアは、汎用のゲームコントローラの操作信号を処理できるように構成されているが、ガンコントローラなどの専用コントローラはあくまでもオプション機器の扱いであるため、専用コントローラの入力信号に対応していないこともある。
【０００５】
現状、ゲームソフトウェアが専用コントローラの入力信号に対応していなければ、ユーザは専用コントローラを、そのゲームに使用できる手段を有しない。通常、専用コントローラは、ユーザの直観的な操作を可能とするため、専用コントローラに非対応なゲームに対しても、ユーザが専用コントローラでゲームプレイできる環境を実現することが好ましい。
【０００６】
そこで本発明は、汎用のゲームコントローラの入力部の操作信号をゲームに提供する情報処理装置において、ガンコントローラなどの専用コントローラを利用可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の情報処理装置は、アナログスティックの操作信号をゲームに提供する情報処理装置であって、コントローラの動きを検出した検出値を、アナログスティック信号に変換する変換処理部と、変換されたアナログスティック信号をゲームに提供する出力処理部とを備える。変換処理部は、検出された角速度から第１信号を算出する第１算出部と、コントローラの向く方向と基準方向とのずれ量に応じた第２信号を算出する第２算出部と、第１信号と第２信号を加算したモーション操作信号を生成する加算部と、モーション操作信号から、アナログスティック信号を生成するアナログスティック信号生成部とを有する。
【０００８】
本発明の別の態様は、アナログスティックの操作信号をゲームに提供する情報処理装置において、コントローラの動きを検出した検出値を、アナログスティックの操作信号に変換する方法である。この方法は、コントローラの動きを検出した検出値を取得するステップと、検出された角速度から第１信号を算出するステップと、コントローラの向く方向と基準方向とのずれ量から第２信号を算出するステップと、第１信号と第２信号を加算したモーション操作信号を生成するステップと、モーション操作信号から、アナログスティック信号を生成するステップとを有する。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によると、汎用のゲームコントローラの入力部の操作信号をゲームに提供する情報処理装置において、ガンコントローラなどの専用コントローラを利用可能とする技術を提供する。
【図面の簡単な説明】
【００１１】
【図１】実施例にかかる情報処理システムを示す図である。
【図２】（ａ）は第１コントローラの上面図、（ｂ）は第１コントローラの奥側側面図である。
【図３】第２コントローラの斜視図である。
【図４】第２コントローラの内部構成を示す図である。
【図５】情報処理装置の機能ブロックを示す図である。
【図６】情報処理装置の構成を示す図である。
【図７】右アナログスティックの出力範囲を示す図である。
【図８】モーション操作信号を生成する方法を説明するための図である。
【図９】変換カーブの一例を示す図である。
【図１０】モーションセンサ信号の変換処理を説明するための図である。
【図１１】調整処理を説明するための図である。
【図１２】丸め処理を説明するための図である。
【図１３】第２コントローラのモーションと、第１コントローラの入力部との対応関係を示す図である。
【図１４】モーション検出手法を説明するための図である。
【図１５】モーション検出手法を説明するための別の図である。
【図１６】エイムモーション検出手法を説明するための図である。
【発明を実施するための形態】
【００１２】
図１は、実施例にかかる情報処理システム１を示す。情報処理システム１は、情報処理装置１０、テレビなどの表示機能を有する出力装置４、入力装置である第１コントローラ６を備える。情報処理装置１０はゲームソフトウェアを実行するゲーム装置であって、第１コントローラ６と通信可能に接続する。図示の例では、情報処理装置１０と第１コントローラ６とが無線接続しているが、ケーブルにより接続してもよい。撮像装置であるカメラ７は出力装置４の近傍に設けられ、出力装置４前方の空間を撮影する。
【００１３】
第１コントローラ６はユーザにより操作されて、ゲーム操作信号を情報処理装置１０に送信する汎用のゲームコントローラであり、各種ボタンやアナログスティックなどの複数の入力部を有して構成される。情報処理装置１０は第１コントローラ６からゲーム操作信号を受け付けてゲームに提供し、ゲームはゲーム操作信号をゲーム空間内のゲームキャラクタの動きに反映する。
【００１４】
さらに情報処理システム１は、入力装置である第２コントローラ１２を備える。実施例の第２コントローラ１２は、ガンシューティングゲームで使用される専用のゲームコントローラ（ガンコントローラ）であり、第１コントローラ６と同じ複数の入力部を備えるとともに、モーションセンサを搭載する。なおユーザが第２コントローラ１２の入力部を操作すると、第１コントローラ６と同じゲーム操作信号が情報処理装置１０に出力されることとなり、したがって情報処理装置１０で実行されるゲームは、第２コントローラ１２からのゲーム操作信号を問題なく処理する。
【００１５】
第２コントローラ１２に対応したゲームソフトウェアは、第２コントローラ１２におけるモーションセンサの検出値を、ゲーム操作信号として受け付ける機能をもつ。これによりユーザは、第２コントローラ１２を動かしたり、姿勢を変化させることで、ゲームに対するコマンドを入力できるようになる。このことは第２コントローラ１２の特殊な形状と相俟って、ユーザの直観的な操作を実現可能とし、汎用の第１コントローラ６より深いゲーム没入感をユーザに与えられるようになる。なお第２コントローラ１２を使用する場合、ユーザは、第２コントローラ１２を動かすことでコマンドを入力しつつ、入力部を操作することでもコマンドを入力して、直観的操作によるゲームプレイを行う。
【００１６】
以下、第１コントローラ６に設けられた入力部について説明する。
［上面部の構成］
図２（ａ）は、第１コントローラ６の上面図である。ユーザは左手で左側把持部７８ｂを把持し、右手で右側把持部７８ａを把持して、第１コントローラ６を操作する。第１コントローラ６の筐体上面には、方向ボタン７１、アナログスティック７７ａ、７７ｂと、操作ボタン７６が設けられる。方向ボタン７１は、上ボタン７１ａ、左ボタン７１ｂ、下ボタン７１ｃおよび右ボタン７１ｄを含む。４種の操作ボタン７６には、それぞれを区別するために、異なる色で異なる図形が記されており、○ボタン７２には赤色の丸、×ボタン７３には青色のバツ、□ボタン７４には紫色の四角形、△ボタン７５には緑色の三角形が記されている。
【００１７】
右アナログスティック７７ａおよび左アナログスティック７７ｂは、方向および傾動量を入力するための入力部である。右アナログスティック７７ａおよび左アナログスティック７７ｂは、ユーザが押すことで下方に沈み込み、またユーザが手を離すと元の位置に復帰する押下式ボタンとしても機能する。右アナログスティック７７ａを用いた押し込みによるボタン機能をＲ３ボタンと呼び、左アナログスティック７７ｂを用いた押し込みによるボタン機能をＬ３ボタンと呼ぶ。筐体上面において、方向ボタン７１と操作ボタン７６の間の平坦な領域には、タッチパッド７９が設けられる。タッチパッド７９は、ユーザが押すことで下方に沈み込み、またユーザが手を離すと元の位置に復帰する押下式ボタンとしても機能する。
【００１８】
右アナログスティック７７ａおよび左アナログスティック７７ｂの間にはホームボタン８０が設けられる。ホームボタン８０は第１コントローラ６の電源をオンし、同時に情報処理装置１０と無線接続する通信機能をアクティブにするために使用される。第１コントローラ６が情報処理装置１０と接続した後は、ホームボタン８０は、出力装置４にメニュー画面を表示させるためにも使用される。
【００１９】
ＳＨＡＲＥボタン８１は、タッチパッド７９の左側に設けられる。ＳＨＡＲＥボタン８１は、システムソフトウェアに対するユーザからの指示を入力するために利用される。ＯＰＴＩＯＮＳボタン８２は、タッチパッド７９の右側に設けられる。ＯＰＴＩＯＮＳボタン８２は、ゲームに対するユーザからの指示を入力するために利用される。ＳＨＡＲＥボタン８１およびＯＰＴＩＯＮＳボタン８２は、いずれもプッシュ式ボタンとして形成されてよい。
【００２０】
［奥側側面部の構成］
図２（ｂ）は、第１コントローラ６の奥側側面図である。第１コントローラ６の筐体奥側側面の上側には、タッチパッド７９が筐体上面から折れ曲がって延設されており、筐体奥側側面の下側には、横長の発光部８５が設けられる。発光部８５は、赤（Ｒ）、緑（Ｇ）、青（Ｂ）のＬＥＤを有し、情報処理装置１０から送信される発光色情報にしたがって点灯する。筐体奥側側面において、Ｒ１ボタン８３ａ、Ｒ２ボタン８４ａと、Ｌ１ボタン８３ｂ、Ｌ２ボタン８４ｂとが長手方向の左右対称な位置に設けられる。Ｒ１ボタン８３ａ、Ｒ２ボタン８４ａは、それぞれユーザ右手の人差し指、中指により操作され、Ｌ１ボタン８３ｂ、Ｌ２ボタン８４ｂは、それぞれユーザ左手の人差し指、中指により操作される。上側のＲ１ボタン８３ａ、Ｌ１ボタン８３ｂはプッシュ式ボタンとして構成され、下側のＲ２ボタン８４ａ、Ｌ２ボタン８４ｂは回動支持されたトリガー式のボタンとして構成されてよい。
【００２１】
図３は、第２コントローラ１２の斜視図である。実施例では、第２コントローラ１２の３次元座標を、図示のように設定し、Ｘ軸をピッチ軸、Ｙ軸をヨー軸、Ｚ軸をロール軸とする。ガンシューティングゲーム用の第２コントローラ１２は、汎用の第１コントローラ６に設けられた入力部を、基本的に全て備えて構成される。これによりユーザは、第１コントローラ６で行っていた入力操作を、第２コントローラ１２においても行うことができる。
【００２２】
図２（ａ）−図２（ｂ）を参照して、操作ボタン１７６に含まれる○ボタン１７２、×ボタン１７３、□ボタン１７４、△ボタン１７５は、操作ボタン７６に含まれる○ボタン７２、×ボタン７３、□ボタン７４、△ボタン７５にそれぞれ対応する。また方向ボタン１７１に含まれる上ボタン１７１ａ、左ボタン１７１ｂ、下ボタン１７１ｃ、右ボタン１７１ｄは、方向ボタン７１に含まれる上ボタン７１ａ、左ボタン７１ｂ、下ボタン７１ｃ、右ボタン７１ｄにそれぞれ対応する。タッチパッド１７９、ホームボタン１８０、ＳＨＡＲＥボタン１８１、ＯＰＴＩＯＮＳボタン１８２、Ｒ１ボタン１８３ａ、Ｒ２ボタン１８４ａは、タッチパッド７９、ホームボタン８０、ＳＨＡＲＥボタン８１、ＯＰＴＩＯＮＳボタン８２、Ｒ１ボタン８３ａ、Ｒ２ボタン８４ａにそれぞれ対応する。アナログスティック１７７ａ、１７７ｂは、右アナログスティック７７ａ、左アナログスティック７７ｂにそれぞれ対応する。第２コントローラ１２の先端には、任意の色で発光する発光部１８５が設けられる。
【００２３】
第２コントローラ１２は銃を模した形状を有しており、たとえばファーストパーソンシューター（ＦＰＳ）ゲームで、ユーザはトリガスイッチとして構成されるＲ２ボタン１８４ａを引き操作することで、銃を撃つことができる。ガンシューティングゲームにおいてユーザは、ガンコントローラである第２コントローラ１２を用いた直観的操作により、ゲームへの没入感を高められる。
【００２４】
図４は、第２コントローラ１２の内部構成を示す。第２コントローラ１２は、無線通信モジュール１９０、処理部１９１および発光部１８５を備える。無線通信モジュール１９０は、情報処理装置１０の無線通信モジュールとの間でデータを送受信する機能をもつ。処理部１９１は、メイン制御部１９２、入力受付部１９３、発光制御部１９４およびモーションセンサ１９５を備え、第２コントローラ１２における所期の処理を実行する。メイン制御部１９２は、無線通信モジュール１９０との間で必要なデータの送受を行う。
【００２５】
入力受付部１９３は、方向ボタン１７１や操作ボタン１７６などの各種入力部の操作信号を受け付け、メイン制御部１９２に送る。メイン制御部１９２は、受け取った操作信号を無線通信モジュール１９０に供給し、無線通信モジュール１９０は、所定の周期で情報処理装置１０に送信する。なおメイン制御部１９２は受け取った操作信号を必要に応じて所定の制御信号に変換してもよい。
【００２６】
発光制御部１９４は、発光部１８５の発光を制御する。たとえば情報処理装置１０が発光部１８５の発光色を指定する発光色情報を送信することで、発光制御部１９４が、指定された発光色で発光部１８５を点灯させてよい。
【００２７】
モーションセンサ１９５は、３軸加速度センサ１９６および３軸ジャイロセンサ１９７を有して、第２コントローラ１２の動きを検出する。３軸加速度センサ１９６は、第２コントローラ１２のＸＹＺの３軸方向の加速度成分を検出する。３軸ジャイロセンサ１９７は、Ｘ軸回り、Ｙ軸回り、Ｚ軸回りの角速度を検出する。メイン制御部１９２は３軸加速度センサ１９６および３軸ジャイロセンサ１９７から検出値信号を受け付け、無線通信モジュール１９０は検出値信号（センサ信号）を、入力部の操作信号とともに、所定の周期で情報処理装置１０に送信する。
【００２８】
図５は、情報処理装置１０の機能ブロックを示す。情報処理装置１０は、メイン電源ボタン２０、電源ＯＮ用ＬＥＤ２１、スタンバイ用ＬＥＤ２２、システムコントローラ２４、クロック２６、デバイスコントローラ３０、メディアドライブ３２、ＵＳＢモジュール３４、フラッシュメモリ３６、無線通信モジュール３８、有線通信モジュール４０、サブシステム５０およびメインシステム６０を有して構成される。
【００２９】
メインシステム６０は、メインＣＰＵ（Central Processing Unit）、主記憶装置であるメモリおよびメモリコントローラ、ＧＰＵ（Graphics Processing Unit）などを備える。ＧＰＵはゲームプログラムの演算処理に主として利用される。これらの機能はシステムオンチップとして構成されて、１つのチップ上に形成されてよい。メインＣＰＵはシステムソフトウェアを起動し、システムソフトウェアが提供する環境下においてゲームを実行する機能をもつ。
【００３０】
サブシステム５０は、サブＣＰＵ、主記憶装置であるメモリおよびメモリコントローラなどを備え、ＧＰＵを備えない。サブＣＰＵは、メインＣＰＵがスタンバイ状態にある間に動作するものであり、消費電力を低く抑えるべく、その処理機能を制限されている。
【００３１】
メイン電源ボタン２０は、情報処理装置１０の筐体の前面に設けられ、メインシステム６０への電源供給をオンまたはオフするために操作される。電源ＯＮ用ＬＥＤ２１は、メイン電源ボタン２０がオンされたときに点灯し、スタンバイ用ＬＥＤ２２は、メイン電源ボタン２０がオフされたときに点灯する。
【００３２】
システムコントローラ２４は、ユーザによるメイン電源ボタン２０の押下を検出する。クロック２６はリアルタイムクロックであって、現在の日時情報を生成し、システムコントローラ２４やサブシステム５０およびメインシステム６０に供給する。
【００３３】
デバイスコントローラ３０は、サウスブリッジのようにデバイス間の情報の受け渡しを実行するＬＳＩ（Large-Scale Integrated Circuit）として構成される。図示のように、デバイスコントローラ３０には、システムコントローラ２４、メディアドライブ３２、ＵＳＢモジュール３４、フラッシュメモリ３６、無線通信モジュール３８、有線通信モジュール４０、サブシステム５０およびメインシステム６０などのデバイスが接続される。デバイスコントローラ３０は、それぞれのデバイスの電気特性の違いやデータ転送速度の差を吸収し、データ転送のタイミングを制御する。
【００３４】
メディアドライブ３２は、ゲームなどのアプリケーションソフトウェアおよびライセンス情報を記録したＲＯＭ媒体４４を装着して駆動し、ＲＯＭ媒体４４からプログラムやデータなどを読み出すドライブ装置である。ＲＯＭ媒体４４は、光ディスクや光磁気ディスク、ブルーレイディスクなどの読出専用の記録メディアである。
【００３５】
ＵＳＢモジュール３４は、カメラ７などの外部機器とＵＳＢケーブルで接続するモジュールである。フラッシュメモリ３６は、内部ストレージを構成する補助記憶装置である。無線通信モジュール３８は、Bluetooth（登録商標）プロトコルやIEEE802.11プロトコルなどの通信プロトコルで、第１コントローラ６および第２コントローラ１２と無線通信する。有線通信モジュール４０は、外部機器と有線通信し、たとえばＡＰを介してネットワークに接続する。
【００３６】
実施例において、情報処理装置１０はゲーム専用機であり、第１コントローラ６は汎用のゲームコントローラである。ゲーム専用機で実行される全てのゲームは、第１コントローラ６からのゲーム操作信号にもとづいて動作するように構成されている。また上記したように、全てのゲームは、第２コントローラ１２の入力部をユーザが操作したゲーム操作信号にもとづいて動作する。
【００３７】
一方で、第２コントローラ１２をユーザが使用する目的は、第２コントローラ１２を動かしたり、姿勢を変化させることで、直観的にコマンドを入力することにある。そのためゲームソフトウェアがモーションセンサ１９５の検出値を処理する能力を有していなければ、ユーザが第２コントローラ１２を使用する意味は乏しい。当然のことであるが、第２コントローラ１２が市販される前に製造されたゲームソフトウェアは、第２コントローラ１２の使用を前提としていないために、モーションセンサ１９５の検出値を処理する機能を有しないことが多い。そこで実施例の情報処理装置１０は、第２コントローラ１２のモーションセンサ信号をゲーム操作信号に変換することで、第２コントローラ１２に非対応のゲームにおいてもユーザが第２コントローラ１２を使用できる仕組みを提供する。
【００３８】
図６は、第１コントローラ６の操作信号をゲームに提供する情報処理装置１０の構成を示す。情報処理装置１０は、取得部１００、変換処理部１１０、設定部１５０および出力処理部１６０を備える。取得部１００は、第１コントローラ６の入力部の操作信号を取得する第１操作信号取得部１０２、第２コントローラ１２の入力部の操作信号を取得する第２操作信号取得部１０４、第２コントローラ１２のモーションセンサ１９５の検出値信号を取得するセンサ信号取得部１０６、およびカメラ７で撮影された画像を取得する撮影画像取得部１０８を備える。変換処理部１１０は、第２コントローラ１２のモーションセンサ１９５の検出値を処理できないゲームに対して、モーションセンサ１９５の検出値を第１コントローラ６の入力部の操作信号に変換して供給する機能を有し、モーション操作信号生成部１２０、調整部１３０、アナログスティック信号生成部１３２および操作信号生成部１４０を備える。
【００３９】
図６において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたシステムソフトウェアなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００４０】
第１操作信号取得部１０２は、第１コントローラ６の入力部の操作信号を取得して出力処理部１６０に供給し、出力処理部１６０は、第１コントローラ６の入力部の操作信号をゲームに提供する。また第２操作信号取得部１０４は、第２コントローラ１２の入力部の操作信号を取得して出力処理部１６０に供給し、出力処理部１６０は、第２コントローラ１２の入力部の操作信号をゲームに提供する。ゲームは、コントローラの入力部の操作信号を処理できる。
【００４１】
ＦＰＳゲームで、第１コントローラ６の右アナログスティック７７ａおよび第２コントローラ１２のアナログスティック１７７ａ（以下、「右アナログスティック７７ａ」で代表させる）は、キャラクタの視点操作に用いられる。右アナログスティック７７ａは、ばね等によってセンター位置を維持するように付勢されており、ユーザによりセンター位置から傾動されると、傾動された２次元位置を示すアナログ値、すなわちセンター位置を原点として移動したＸ軸成分とＹ軸成分の移動量を示す操作信号を出力する。Ｘ軸成分は、左右方向の視点移動、Ｙ軸成分は、上下方向の視点移動に利用される。出力処理部１６０は、右アナログスティック７７ａの操作信号に丸め処理を施し、８ビットのデジタル値でそれぞれ表現するＸ軸成分とＹ軸成分の操作信号を生成して、ゲームに提供する。
【００４２】
図７（ａ）は、右アナログスティック７７ａの一軸成分の出力範囲を示す。出力処理部１６０は、右アナログスティック７７ａの操作信号の各軸成分に丸め処理を施し、Ｘ軸成分およびＹ軸成分を、それぞれ０〜２５５の間の整数値として出力する。
図７（ｂ）は、右アナログスティック７７ａのＸ軸成分およびＹ軸成分の出力範囲を示す。右アナログスティック７７ａがセンター位置にあるとき、出力処理部１６０は、Ｘ軸成分の信号値を１２８、Ｙ軸成分の信号値を１２８とする操作信号を、ゲームに提供する。
【００４３】
ゲームは、右アナログスティック７７ａの出力範囲の全てを有効な入力として受け付けるのではなく、センター位置近傍の操作に対して不感帯を設定して、不感帯の信号値を無視することが多い。この理由の一つは、右アナログスティック７７ａに設けられる位置センサの精度がそれほど高くないために、ユーザが右アナログスティック７７ａに触れていなくても、センター位置（１２８，１２８）からずれた位置にあることを示す操作信号を出力する可能性が否定できないことにある。また別の理由として、ユーザは右アナログスティック７７ａの頂部に右親指を載せるため、操作する意志がなくても親指の震えなどの動きにより右アナログスティック７７ａを動かすことがある。そのためゲームは、右アナログスティック７７ａのセンター位置近傍の操作に対して不感帯を設定し、不感帯を超えた操作を有効な視点操作入力として受け付けるようにしている。
【００４４】
図７（ｃ）は、右アナログスティック７７ａの出力範囲に対してゲームが設定する不感帯の例を示す。この例で、不感帯は、センター位置（１２８，１２８）を中心とした所定径の円内の範囲として設定されている。ゲームは、不感帯の範囲を自由に設定してよく、たとえばセンター位置を中心とした矩形範囲として設定してもよい。ゲームは、不感帯に含まれる操作信号を無視し、すなわちゲームの処理に反映しない。
【００４５】
実施例の情報処理装置１０は、ユーザが視点を移動するように第２コントローラ１２を動かすと、その動きを視点操作入力、つまり右アナログスティック７７ａの操作入力に変換する処理を行う。また視点操作以外にも、情報処理装置１０は、ユーザが第２コントローラ１２に所定の動き（モーション）を行わせると、その動きをゲームの操作入力に変換する処理を行う。なお第２コントローラ１２は、第１コントローラ６と同様の入力部を備えており、ユーザは入力部を操作することで、ゲームへの操作入力を行うことができるが、実施例では情報処理装置１０が、ユーザが第２コントローラ１２を動かすことによる直観的な操作入力を支援する。
【００４６】
第２コントローラ１２の動き（モーション）をゲームの操作入力として利用できるようにするために、情報処理装置１０は、第２コントローラ１２のモーションを第１コントローラ６の操作信号に変換するためのデータを記述した設定ファイル２００を、外部サーバから取得する。なお設定ファイル２００がゲームソフトウェアに含まれていれば、情報処理装置１０はゲームソフトウェアから設定ファイル２００を取得する。設定ファイル２００には、感度調整値、モーション操作信号を右アナログスティックの操作信号に変換するための変換カーブを構成するデータ、出力不感帯に関するデータ、所定のモーションを検出するためのモーション閾値、右アナログスティックの操作信号への変換を停止する停止閾値、モーションの優先順位などが記述される。
【００４７】
＜右アナログスティック信号への変換処理＞
最初に、情報処理装置１０が、第２コントローラ１２のモーションセンサ１９５の検出値を用いて、右アナログスティック７７ａの操作信号を生成する処理について説明する。基本的に情報処理装置１０は、３軸ジャイロセンサ１９７の検出値のうち、ヨー軸回りの角速度を用いて右アナログスティック７７ａのＸ軸成分の出力（左右方向の視点操作に利用される）を生成し、ピッチ軸回りの角速度を用いて右アナログスティック７７ａのＹ軸成分の出力（上下方向の視点操作に利用される）を生成する。なお右アナログスティック７７ａのＸ軸成分の生成にあたっては、さらにヨー軸回りの角速度またはピッチ軸方向の加速度が利用される。
【００４８】
図８は、モーションセンサ１９５の検出値をもとに、右アナログスティック信号に変換するためのモーション操作信号を生成する方法を説明するための図である。図８では、右アナログスティック７７ａのＸ軸成分に変換されるモーション操作信号のｘ軸成分の生成手法が示されている。モーション操作信号の生成にあたって、ユーザは第２コントローラ１２の基準方向を設定する必要があり、たとえばゲーム開始前に、ユーザが第２コントローラ１２を出力装置４に向けた状態で所定のボタンを操作することで、基準方向が設定される。
【００４９】
モーション操作信号生成部１２０は、第１算出部１２２、第２算出部１２４および加算部１２６を有する。なおモーション操作信号のｘ軸成分の生成に際し、第１算出部１２２および第２算出部１２４の双方が動作する一方で、モーション操作信号のｙ軸成分の生成に際しては、第２算出部１２４は動作しない。この理由については後述する。
【００５０】
センサ信号取得部１０６は、第２コントローラ１２に搭載されたモーションセンサ１９５の検出値を取得し、モーション操作信号生成部１２０に供給する。モーション操作信号生成部１２０は、ヨー軸回りの角速度を用いて、右アナログスティック７７ａのＸ軸成分に変換されるモーション操作信号のｘ軸成分の生成処理を実行する。
【００５１】
第１算出部１２２は、３軸ジャイロセンサ１９７において検出されたヨー軸回りの角速度から第１信号（ｘ１）を算出する。ここで第１算出部１２２は、Ｙ軸すなわちヨー軸回りの角速度（ωｙ）を用いて、第１信号（ｘ１）を以下のように算出する。
ｘ１＝ωｙ×sensitivity
ここでsensitivity（感度調整値）は、３軸ジャイロセンサ１９７の検出感度に応じて適切に設定される。
【００５２】
また第１算出部１２２とは別に、第２算出部１２４は、第２コントローラ１２の向く方向と基準方向とのずれ量に応じた第２信号（ｘ２）を算出する。ここで第２算出部１２４は、第２コントローラ１２の向く方向が基準方向から所定の角度閾値（ang_th）を超えたことを条件として、第２信号（ｘ２）を以下のように算出する。
・  pos_x＞０のとき、
ｘ２＝scale×（pos_x−閾値）
・  pos_x＜０のとき、
ｘ２＝scale×（pos_x＋閾値）
ここで図８に示す半円の半径は第２コントローラ１２の全長Ｌに等しいものとする。scaleは感度を調整するための係数であり、（閾値）は、角度閾値（ang_th）により定まるピッチ軸上の所定長であり、Ｌ×sin(ang_th)で求められる。
【００５３】
第２算出部１２４は、モーションセンサにおいて検出されたヨー軸回りの角速度の積分値を利用して、またはピッチ軸方向の加速度を積分してピッチ軸方向の移動量（pos_x）を算出することで、第２信号を算出してよい。加算部１２６は、第１信号（ｘ１）と第２信号（ｘ２）を加算したモーション操作信号のｘ軸成分を生成して、調整部１３０に出力する。
【００５４】
なお第２算出部１２４は、第２コントローラ１２の向く方向と基準方向とのずれ量（変化量）が角度閾値（ang_th）を超えた場合に第２信号を算出する。したがってずれ量が角度閾値（ang_th）を超えなければ、第２算出部１２４の出力はゼロ値となり、加算部１２６は、第１信号をモーション操作信号として調整部１３０に出力する。この場合、右アナログスティック７７ａのＸ軸成分は、第１信号（ｘ１）、つまりヨー軸回りの角速度の大きさによって定められることになる。
【００５５】
ずれ量（変化量）が角度閾値（ang_th）を超えた場合に、第２算出部１２４が第２信号を算出することで、第２コントローラ１２が静止している（つまりヨー軸回りの角速度がゼロであり、第１信号がゼロ値をとる）場合であっても、加算部１２６は、ゼロ値ではないモーション操作信号を調整部１３０に出力できる。その結果、ゲームはキャラクタの視線方向をヨー軸回りに回転させ、ユーザは周囲の様子を確認できる。以上は、右アナログスティック７７ａのＸ軸成分に変換されるモーション操作信号のｘ軸成分についての説明である。
【００５６】
次に、右アナログスティック７７ａのＹ軸成分に変換されるモーション操作信号のｙ軸成分の生成について説明する。モーション操作信号生成部１２０は、ピッチ軸回りの角速度を用いて、右アナログスティック７７ａのＹ軸成分に変換されるモーション操作信号のｙ軸成分の生成処理を実行する。
【００５７】
第１算出部１２２は、３軸ジャイロセンサ１９７において検出されたピッチ軸回りの角速度から第１信号（ｙ１）を算出する。ここで第１算出部１２２は、Ｘ軸すなわちピッチ軸回りの角速度（ωｘ）を用いて、第１信号（ｙ１）を以下のように算出する。
ｙ１＝ωｘ×sensitivity
sensitivity（感度調整値）は、３軸ジャイロセンサ１９７の検出感度に応じて適切に設定される。
【００５８】
上記したように、モーション操作信号のｙ軸成分の生成に際し、第２算出部１２４は動作しない。右アナログスティック７７ａのＹ軸成分は、上下方向の視点操作に利用されるが、ゲームにおいて、ユーザがピッチ軸回りに視線方向を連続して回転させたい状況は少なく、また現実世界での視線移動との乖離も大きい。そのため実施例の第２算出部１２４は、アナログスティック信号のＸ軸成分に反映される第２信号を算出する一方で、アナログスティック信号のＹ軸成分に反映される第２信号を算出しないように構成されている。
【００５９】
以上のようにモーション操作信号生成部１２０は、アナログスティック信号のＸ軸成分およびＹ軸成分に対応するモーション操作信号のｘ軸成分およびｙ軸成分を生成して、調整部１３０に出力する。
【００６０】
図９は、モーション操作信号を右アナログスティックの操作信号に変換するための変換カーブの一例を示す。この変換カーブの横軸は第２コントローラ１２のモーション操作信号を表現し、信号値「１．０」は、加算部１２６が算出したモーション操作信号（ｘ１＋ｘ２）が所定値以上となったときの信号値を示す。縦軸は右アナログスティック７７ａの操作信号を表現し、「１．０」の右アナログスティック信号は、傾動量の最大値を示す。
【００６１】
この変換カーブでは、たとえばモーション操作信号の信号値が０．７５のとき、右アナログスティック７７ａの操作信号が０．９に設定される。（右アナログスティック信号）／（モーション操作信号）を「増幅率」と定義すると、変換カーブは、正規化したモーション操作信号に対する右アナログスティック信号の増幅率を定義したものとなる。
【００６２】
設定部１５０は、ゲームに対応する設定ファイル２００を取得し、変換処理部１１０に提供する。ゲームソフトウェアが起動されると、設定部１５０は、自動的に設定ファイル２００を外部サーバないしはゲームソフトウェアから取得して、変換処理部１１０に提供することが好ましい。
【００６３】
第２コントローラ１２は、所定の周期でモーションセンサ１９５の検出値を情報処理装置１０に送信する。第２コントローラ１２の送信周期は、ゲームがゲーム画面を生成する周期（たとえば６０ｆｐｓ）よりも短く設定される。センサ信号取得部１０６は、所定の周期で出力されるセンサ信号を取得し、変換処理部１１０に供給する。変換処理部１１０は、センサ信号を、右アナログスティック７７ａを含む入力部の操作信号に変換し、出力処理部１６０は、変換された操作信号をゲームに提供する。
【００６４】
図１０は、変換処理部１１０におけるモーションセンサ信号の変換処理を説明するための図である。
図１０（ａ）は、ジャイロセンサ信号の範囲を示す。モーション操作信号生成部１２０は、ジャイロセンサ信号を用いて第１信号を生成する。なおモーション操作信号のｘ軸成分は、上記したように、第２算出部１２４により算出された第２信号を加算されて生成される。図１０（ａ）において、範囲の区切りとして示す値「２」は、ユーザがゲームプレイ中に操作するジャイロセンサ信号の仮の最大値を示したものであり、ジャイロセンサ信号の最大値が２に制限されることを意味したものではない。以下、変換処理部１１０において、ジャイロセンサ信号値Ａ（＝０．５）が右アナログスティック７７ａの信号値Ｅに変換される流れを説明する。
【００６５】
センサ信号取得部１０６は、センサ信号値をモーション操作信号生成部１２０に供給する。モーション操作信号生成部１２０は、センサ信号値を用いて、モーション操作信号を生成する。なおモーション操作信号生成部１２０は、手振れによる振動の影響を除去するために、ジャイロセンサ信号の所定の範囲（たとえば−０．０１６〜０．０１６の範囲）の信号値をゼロとした後に、モーション操作信号を生成してもよい。
【００６６】
図１０（ｂ）は、モーション操作信号の各軸成分の範囲を示す。モーション操作信号生成部１２０は、設定ファイル２００に含まれる感度調整値（sensitivity, scale）を用いて感度調整を行い、モーション操作信号（ｘ１＋ｘ２）を生成する。ここでは、ジャイロセンサ信号値Ａ（＝０．５）から、モーション操作信号値Ｂ（＝７５）が算出され、調整部１３０に供給される。
【００６７】
調整部１３０は、モーション操作信号に変換カーブを適用する。
図１０（ｃ）は、変換カーブを適用した状態を示す。調整部１３０は、モーション操作信号に、図９に示す変換カーブで定められる増幅率を乗算する。図９に示す変換カーブにおいて、感度調整された７５の信号値に対応する増幅率が１．２であるとすると、調整部１３０は、信号値Ｂに１．２を乗算して、信号値Ｃ（＝９０）に変換する。
【００６８】
調整部１３０は、右アナログスティック７７ａに設定されている不感帯に相当する信号分を、変換カーブを適用したモーション操作信号に加算する。調整部１３０は、不感帯に相当する信号分をモーション操作信号に加算することで、モーション操作信号が不感帯の信号値を示さないようにする。なお不感帯に相当する信号分は、変換カーブ適用後の信号値に応じて設定されてよい。具体的には、手振れによる振動の影響を低減するために、小さい信号値は、より小さい出力となるように、不感帯に相当する信号分が小さく設定されてよい。
【００６９】
図１０（ｄ）は、不感帯を調整された各軸成分の出力範囲を示す。ここでは、−３０から３０までの範囲が不感帯に相当し、調整部１３０は、信号値Ｃに３０を加算して、信号値Ｄ（＝１２０）に変換する。なお調整部１３０は、信号値Ｃが負であれば、信号値Ｃに−３０を加算して、信号値Ｄに変換する。このように調整部１３０は、信号値Ｃの正負に応じて、加算する不感帯信号分の正負を定める。信号値Ｃが０の場合、調整部１３０は、不感帯信号分の加算処理を実施しない。
【００７０】
なお図７（ｃ）に示すように右アナログスティック７７ａのセンター位置に対して不感帯を円形に設定している場合には、モーション操作信号のｘ軸成分、ｙ軸成分に応じて、不感帯としてモーション操作信号に加算する値は変化する。
【００７１】
図１１は、調整部１３０による調整処理を説明するための図である。調整部１３０は、変換カーブを適用したモーション操作信号（ｘα，ｙα）に、角度（Ａｒｃｔａｎ（ｙα／ｘα））を維持する方向に、不感帯に相当する信号分を加算する。
【００７２】
不感帯が円形に設定されている場合、調整部１３０は、原点から（ｘα，ｙα）を通る直線と不感帯の境界部分との交点（ａ，ｂ）を求める。ここでａは、ｘ軸成分の不感帯に相当する信号分であり、ｂはｙ軸成分の不感帯に相当する信号分である。これにより調整部１３０は、モーション操作信号（ｘα，ｙα）に、不感帯に相当する信号分（ａ，ｂ）を加えて、不感帯の信号値を調整したモーション操作信号（ｘβ，ｙβ）を生成する。ここでｘβ＝ｘα＋ａ、ｙβ＝ｙα＋ｂである。調整部１３０が、モーション操作信号（ｘα，ｙα）の角度を維持して不感帯の信号分を加算したモーション操作信号を生成することで、ユーザに違和感を与えない視点移動を実現できる。
【００７３】
不感帯を調整されたモーション操作信号は、アナログスティック信号生成部１３２に供給される。アナログスティック信号生成部１３２は、モーション操作信号から、右アナログスティック７７ａの操作信号を生成する。
【００７４】
図１０（ｅ）は、モーション操作信号から、アナログスティック信号を生成する様子を示す。アナログスティック信号は、０〜２５５までの信号値をとるため、アナログスティック信号生成部１３２は、図１０（ｄ）に示す出力範囲をアナログスティック信号の出力範囲に合わせる処理を実施する。
【００７５】
右アナログスティック７７ａのセンター位置は１２８であり、アナログスティック信号生成部１３２は、図１０（ｄ）に示す信号値に１２８を加算することで、アナログスティック信号を生成する。アナログスティック信号生成部１３２は、信号値Ｄに１２８を加算して、右アナログスティック７７ａの操作信号の信号値Ｅ（＝２４８）を生成する。
【００７６】
なおアナログスティック信号生成部１３２は、信号値に１２８を加算した結果、０より小さい信号値は信号値０に、２５５より大きい信号値は信号値２５５に設定する。つまり０〜２５５の範囲外にある信号値については、０ないし２５５の信号値を設定する。
【００７７】
またアナログスティック信号は、０〜２５５までの整数値をとるため、アナログスティック信号生成部１３２は、モーション操作信号値に１２８を加算した信号値に対して、モーション操作信号の丸め処理を実施し、整数値に変換する。
【００７８】
図１２は、丸め処理を説明するための図である。ゲームが６０ｆｐｓでゲーム画面を生成している場合、アナログスティック信号生成部１３２は、丸め処理を、フレームの生成周期つまり（１／６０）秒ごとに実施する。
【００７９】
「信号値」は、モーション操作信号に１２８を加算した今回の信号値である。「前回の丸め誤差を加算した信号値」は、「信号値」に、前回の丸め処理における丸め誤差を加算した信号値である。「丸め処理後の信号値」は、「前回の丸め誤差を加算した信号値」の小数点を四捨五入して今回の丸め処理を実施した信号値である。「丸め誤差」は、「前回の丸め誤差を加算した信号値」と「丸め処理後の信号値」の差分であり、今回の丸め処理における丸め誤差である。
【００８０】
Ｎ回目の丸め処理における丸め誤差が０．４であったとき、アナログスティック信号生成部１３２は、（Ｎ＋１）回目の丸め処理において、今回の信号値（１２５．３）に前回の丸め誤差（０．４）を加算し、丸め処理を実施して右アナログスティック７７ａの操作信号値（１２６）を生成する。これにより（Ｎ＋１）回目の丸め処理における丸め誤差は−０．３となる。
【００８１】
（Ｎ＋２）回目の丸め処理において、アナログスティック信号生成部１３２は、今回の信号値（１３２．６）に前回の丸め誤差（−０．３）を加算し、丸め処理を実施して右アナログスティック７７ａの操作信号値（１３２）を生成する。これにより（Ｎ＋２）回目の丸め処理における丸め誤差は０．３となる。
【００８２】
このようにアナログスティック信号生成部１３２は、前回のモーション操作信号の丸め処理における丸め誤差を、今回のモーション操作信号に加算してから丸め処理を実施する。このように丸め処理を実施することで、アナログスティック信号生成部１３２は、前回の丸め誤差を今回の右アナログスティック７７ａの操作信号に含ませることができ、これによりユーザによる第２コントローラ１２の動きを高精度に反映した右アナログスティック７７ａの操作信号を生成できる。アナログスティック信号生成部１３２は、生成した右アナログスティック７７ａの操作信号を、出力処理部１６０に供給する。出力処理部１６０は、右アナログスティック７７ａの操作信号を、ゲームに提供する。
【００８３】
実施例では、変換処理部１１０が、モーション操作信号をアナログスティック信号に変換するため、変換タイミングを自在に制御できる。たとえばゲームが６０ｆｐｓで画面を作成している場合、変換処理部１１０は、変換タイミングの周期を（１／６０）秒に設定してよい。また変換処理部１１０は、ゲームが操作信号を要求するタイミングに合わせて、モーション操作信号をアナログスティック信号に変換してもよい。
【００８４】
＜入力部操作信号への変換処理＞
以下、右アナログスティック７７ａ以外の入力部の操作信号への変換処理について説明する。変換処理部１１０は、センサ信号取得部１０６が取得したモーションセンサ１９５の検出値を、第１コントローラ６の入力部の操作信号に変換し、出力処理部１６０が、変換された操作信号をゲームに提供する。
【００８５】
入力部操作信号への変換処理に関し、設定ファイル２００には、第２コントローラ１２の所定のモーションに対して、第１コントローラ６の入力部を対応付けた対応関係が記述されている。
図１３は、第２コントローラ１２のモーションと、第１コントローラ６の入力部との対応関係を示す。なお「キャラクタ動作」は、ゲームにおけるキャラクタの動作を示し、説明の便宜上、図示しているが、これはゲーム側で把握していればよい事項であるため、設定ファイル２００には記述されていなくてよい。
【００８６】
たとえば対応表の上段には、第２コントローラ１２を正回転方向にローリングすることが、第１コントローラ６の□ボタン７４の入力操作に対応することが示される。各モーションの成立の有無は、変換処理部１１０における操作信号生成部１４０が判定する。ここで"ROTATE", "TILT_UP", "MOVE_UP", "MOVE_FORWARD"のモーション成立の有無については、操作信号生成部１４０が、センサ信号取得部１０６で取得したモーションセンサ１９５の検出値を用いて判定する。一方で"AIM"のモーション成立の有無については、操作信号生成部１４０が、撮影画像取得部１０８で取得した撮影画像を用いて判定する。
【００８７】
図１４は、操作信号生成部１４０によるモーション検出手法を説明するための図である。操作信号生成部１４０は、モーションセンサ１９５の所定の回転方向または軸方向の検出値を監視する。ここで監視する検出値は、"ROTATE"に関してロール軸回りの正回転方向の角速度、"TILT_UP"に関してピッチ軸回りの正回転方向の角速度、"MOVE_UP"に関してヨー軸正方向の加速度、"MOVE_FORWARD"に関してロール軸負方向の加速度である。
【００８８】
ここで監視対象であるロール軸回りの正回転方向の角速度、ピッチ軸回りの正回転方向の角速度、ヨー軸正方向の加速度、ロール軸負方向の加速度には、それぞれモーション成立を判定するためのモーション閾値が設定されている。これらのモーション閾値も、設定ファイル２００に記述されていてよい。図１４に示すように、操作信号生成部１４０は、モーションセンサ１９５の監視対象である検出値がモーション閾値を超えると、モーション成立を判定し、対応する入力部の操作信号を生成する。たとえば図１４に示すセンサ値が、ロール軸回りの正回転方向の角速度を示す場合、操作信号生成部１４０は、時間ｔ１からｔ２の間、□ボタン７４の操作信号を生成して、出力処理部１６０に供給する。このようにユーザは、第２コントローラ１２を動かすことによって、ゲームに対してコマンドを入力できる。
【００８９】
なお第２コントローラ１２の複数のモーションには、その検出に関する優先順位が設定されていてよい。たとえば、上記４つのモーションを優先順位の高い順に並べると、
"TILT_UP" > "ROTATE" > "MOVE_FORWARD" > "MOVE_UP"
となってよい。モーションの優先順位は、対応するキャラクタ動作にしたがって設定される。
【００９０】
操作信号生成部１４０は、第２コントローラ１２の複数のモーションに設定された優先順位にもとづいて、第１コントローラ６の入力部の操作信号を生成する。具体的には、優先順位の高いモーションの検出中と、検出終了後の所定時間（たとえば５００ｍｓ）が経過するまでの間、操作信号生成部１４０は、それよりも優先順位の低いモーションの検出を停止する。このようにモーションに優先順位を設定することで、複数のモーションが同時に検出されて、キャラクタが複数のコマンドで動作する状況を回避する。
【００９１】
ユーザが第２コントローラ１２に所定のモーションをさせる意志がないにもかかわらず、操作信号生成部１４０がモーションを検出することのないように、モーション閾値は、ユーザが普通に使用している状態でセンサ値が超えないような値に設定される。つまりユーザは第２コントローラ１２を所定の回転方向または軸方向に素早く動かした場合に限って、操作信号生成部１４０が、対応するモーションを検出するようにモーション閾値が設定される。
【００９２】
上記したように変換処理部１１０においてアナログスティック信号生成部１３２は、ヨー軸回りの角速度、ピッチ軸回りの角速度、ピッチ軸方向の加速度から導出されたモーション操作信号から、キャラクタの視点操作に用いられる右アナログスティック７７ａの信号を生成する。ユーザが、第２コントローラ１２に所定のモーションをさせようとする場合に、キャラクタの視点が移動すると、出力装置４に出力されるゲーム画面が変わるため、その後のゲーム操作がしづらくなるという問題がある。そこでアナログスティック信号生成部１３２は、モーションセンサ１９５の検出値がモーション閾値よりも小さい停止閾値を超えると、無用な視点移動を避けるために、アナログスティックの操作信号の出力処理部１６０への出力を停止してもよい。
【００９３】
図１５は、操作信号生成部１４０によるモーション検出手法を説明するための別の図である。図示されるように、アナログスティック信号生成部１３２によるアナログスティック信号の出力を停止する停止閾値が、モーション閾値よりも小さく設定される。これによりアナログスティック信号生成部１３２は、センサ値が停止閾値を超えている状態で、アナログスティック信号を出力処理部１６０に供給しなくなるため、ゲーム中のキャラクタの視点移動が行われなくなり、ユーザは支障なくゲームをプレイできる。
【００９４】
なおアナログスティック信号生成部１３２は、生成したアナログスティック信号に、図示する減衰係数を乗算したものを出力処理部１６０に供給してよい。減衰係数は、センサ値が停止閾値を下回った後、アナログスティック信号を徐々に大きくするように定められている。ここでは、センサ値が停止閾値を下回ると、５００ｍｓをかけて減衰係数が０から１に回復するように設定されている。これによりアナログスティック信号生成部１３２は、アナログスティック信号を出力できるようになったタイミングから、徐々に大きくなるアナログスティック信号を出力処理部１６０に出力するため、キャラクタのスムーズな視点移動が実現できる。
【００９５】
以下、操作信号生成部１４０が、"AIM"のモーション成立の有無を判定する手法を説明する。上記したように操作信号生成部１４０は、撮影画像取得部１０８で取得した撮影画像を用いて"AIM"のモーションを検出する。
【００９６】
図１６は、操作信号生成部１４０によるエイムモーション検出手法を説明するための図である。操作信号生成部１４０は、撮影画像に含まれる第２コントローラ１２の発光部１８５の高さをもとに、"AIM"のモーション成立の有無を判定する。ここではゲーム開始前に発光部１８５の基準高さが定められ、基準高さから所定の高さ閾値以上、上方に移動すると、操作信号生成部１４０は、"AIM"モーションを検出する。なおユーザがゲーム開始前、アナログスティック信号を生成する基準となる基準方向を定めるために第２コントローラ１２を出力装置４に向けた状態で所定のボタンを操作することを説明したが、このとき基準高さも同時に定められてよい。
【００９７】
なお"AIM"モーションは、スコープによる照準合わせのトリガとなる動作であり、現実の戦場では、兵士が銃を顔の脇に持ってスコープを覗き込む。ゲーム世界においても同様の動作をユーザに求める場合には、たとえば操作信号生成部１４０が、撮影画像からユーザの顔の近傍に発光部１８５が存在することを確認したときに、"AIM"モーションを検出してもよい。たとえば操作信号生成部１４０は、顔と発光部１８５の距離が所定長以下である場合に、"AIM"モーションを検出する。操作信号生成部１４０は、"AIM"モーションを検出すると、出力処理部１６０に、Ｌ２ボタン８４ｂの操作信号を供給する。
【００９８】
以上の実施例において、変換処理部１１０は、第２コントローラ１２のモーションセンサ１９５の検出値を処理できないゲームに対して、モーションセンサ１９５の検出値を、第１コントローラ６の入力部の操作信号に変換する。情報処理装置１０のシステムソフトウェアは、ゲームに対してモーションセンサ１９５の検出値を処理可能であるか問い合わせ、処理不能である場合に、変換処理部１１０のモジュールを起動して、モーションセンサ１９５の検出値を変換処理部１１０に提供するようにしてよい。
【００９９】
なおガンシューティングゲームの中には、銃を撃つと反動により銃口が上がるように演出され、銃を撃つのを止めると銃口が下がって元の位置に戻るように演出されるものがある。反動で銃口が上がるとターゲットに対する照準がずれるため、ユーザは銃を撃ちながら、銃口の上がりを抑えるように右アナログスティック７７ａを下向きに操作するテクニック（リコイルコントロール）を実施して、ターゲットに対する照準を維持する。以下、説明の便宜上、ゲーム中のターゲットが水平方向に存在するものとする。
【０１００】
ユーザがガンコントローラである第２コントローラ１２を使用して銃を撃っている間、第２コントローラ１２を下向き（ピッチ軸回りの負回転方向）に徐々に傾けてリコイルコントロールを実施することで、銃の反動による銃口上がりを抑え、照準を水平に維持できる。これにより結果として銃を撃ち続けている間は、照準を水平に維持するためにユーザは第２コントローラ１２を、どんどん下方に傾けていくことになる。そのため銃を撃ち終わった後、下方を向いた第２コントローラ１２を上向きに傾けて元の姿勢（水平姿勢）に戻すと、ゲーム中の銃は水平状態から、その分だけ上方を向くようになってしまう。
【０１０１】
実施例においては、ユーザがトリガスイッチであるＲ２ボタン１８４ａを引きながら、第２コントローラ１２を下向きに傾けると、操作信号生成部１４０は、ユーザがリコイルコントロールを実施していることを判定する。たとえばＲ２ボタン１８４ａが引かれながら、所定角度以上、第２コントローラ１２が下向きに傾けられたときに、操作信号生成部１４０は、リコイルコントロールが実施されていることを判定してよい。ユーザは銃を撃ち終わると（Ｒ２ボタン１８４ａを離した後）、下方を向いた第２コントローラ１２を元の姿勢（水平状態）に戻すが、このときアナログスティック信号生成部１３２は、リコイルコントロールによって下方に傾いた傾動量に相当する分だけ第２コントローラ１２を上方に傾動する動作に相当するアナログスティック信号を出力処理部１６０には伝えない。つまりアナログスティック信号生成部１３２は、リコイルコントロールによって下方に傾けられた傾動量分だけ第２コントローラ１２が相対的に上方に傾けられた場合に（下向きに傾いた姿勢を元の水平姿勢に戻す場合に）、相対的な上方への傾動量に相当するアナログスティック信号を出力処理部１６０には出力しない。これにより、リコイルコントロール後に、第２コントローラ１２を下向きから元の水平姿勢に戻しても、その動作に相当するアナログスティック信号はゲームに伝わらないために、ゲーム中では銃が水平な状態を維持できる。
【０１０２】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１０３】
実施例では、変換処理部１１０が、第２コントローラ１２に搭載されたモーションセンサ１９５の検出値を入力部の操作信号に変換することを説明した。変換処理部１１０は、モーションセンサ１９５の検出値に限らず、第２コントローラ１２の動きを検出した検出値を入力部の操作信号に変換できる機能を有していればよい。変換処理部１１０は、たとえばカメラ７により第２コントローラ１２を撮影した撮影画像から第２コントローラ１２の動きを検出した検出値を導出して、入力部の操作信号に変換してもよい。
【符号の説明】
【０１０４】
１・・・情報処理システム、６・・・第１コントローラ、１０・・・情報処理装置、１２・・・第２コントローラ、１００・・・取得部、１０２・・・第１操作信号取得部、１０４・・・第２操作信号取得部、１０６・・・センサ信号取得部、１０８・・・撮影画像取得部、１１０・・・変換処理部、１２０・・・モーション操作信号生成部、１２２・・・第１算出部、１２４・・・第２算出部、１２６・・・加算部、１３０・・・調整部、１３２・・・アナログスティック信号生成部、１４０・・・操作信号生成部、１５０・・・設定部、１６０・・・出力処理部、１８５・・・発光部、１９０・・・無線通信モジュール、１９１・・・処理部、１９２・・・メイン制御部、１９３・・・入力受付部、１９４・・・発光制御部、１９５・・・モーションセンサ、１９６・・・３軸加速度センサ、１９７・・・３軸ジャイロセンサ、２００・・・設定ファイル。
【図１】
2019084339.tif 000003
【図２】
2019084339.tif 000004
【図３】
2019084339.tif 000005
【図４】
2019084339.tif 000006
【図５】
2019084339.tif 000007
【図６】
2019084339.tif 000008
【図７】
2019084339.tif 000009
【図８】
2019084339.tif 000010
【図９】
2019084339.tif 000011
【図１０】
2019084339.tif 000012
【図１１】
2019084339.tif 000013
【図１２】
2019084339.tif 000014
【図１３】
2019084339.tif 000015
【図１４】
2019084339.tif 000016
【図１５】
2019084339.tif 000017
【図１６】
2019084339.tif 000018