JP2019146975A - ゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材 - Google Patents

ゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材 Download PDF

Info

Publication number
JP2019146975A
JP2019146975A JP2019074847A JP2019074847A JP2019146975A JP 2019146975 A JP2019146975 A JP 2019146975A JP 2019074847 A JP2019074847 A JP 2019074847A JP 2019074847 A JP2019074847 A JP 2019074847A JP 2019146975 A JP2019146975 A JP 2019146975A
Authority
JP
Japan
Prior art keywords
game
controller
game controller
accessory
attitude
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019074847A
Other languages
English (en)
Inventor
祐貴 小野沢
Yuki Onozawa
祐貴 小野沢
宏智 河井
Koichi Kawai
宏智 河井
正太郎 後藤
Shotaro Goto
正太郎 後藤
惇一郎 宮武
Junichiro Miyatake
惇一郎 宮武
山本 洋史
Yoji Yamamoto
洋史 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2019074847A priority Critical patent/JP2019146975A/ja
Publication of JP2019146975A publication Critical patent/JP2019146975A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】姿勢を用いた操作の多様性を向上させることができるゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材を提供する。【解決手段】アクセサリの第1固定部は、少なくとも所定の軸を中心に回動可能に第1ゲームコントローラを固定し、アクセサリの第2固定部は、第2ゲームコントローラを固定する。そして、第1ゲームコントローラの姿勢を示す第1の値と第2ゲームコントローラの姿勢を示す第2の値との差を示す差分値に基づいて、所定のゲーム処理を実行する。【選択図】図11

Description

本発明は、複数のゲームコントローラを用いてゲーム処理を行うゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法と、当該ゲームコントローラを装着可能なアクセサリおよび厚紙部材とに関する。
従来、ゲームコントローラに装着されることによってゲームコントローラに機能を付加するアクセサリがある(例えば、特許文献1参照)。例えば、上記特許文献1には、ゲームコントローラの下端部に球面を有する弾性部材をアクセサリとして装着する技術が開示されている。
特開2011−227804号公報
しかしながら、上記アクセサリは、ゲームコントローラの姿勢を用いた操作が可能であるが、当該姿勢に基づいて多様な操作を行うことについて改善の余地があった。
それ故、本発明の目的は、姿勢を用いた操作の多様性を向上させることができるゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材を提供することである。
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
本発明のゲームシステムの一構成例は、第1ジャイロセンサを備える第1ゲームコントローラと、第2ジャイロセンサを備える第2ゲームコントローラと、当該第1ゲームコントローラおよび当該第2ゲームコントローラを着脱可能なアクセサリと、所定のゲーム処理を実行するゲーム処理手段とを含むゲームシステムである。アクセサリは、第1固定部および第2固定部を含む。第1固定部は、少なくとも所定の軸を中心に回動可能に第1ゲームコントローラを固定する。第2固定部は、第2ゲームコントローラを固定する。ゲームシステムは、第1算出手段、第2算出手段、および第3算出手段を含む。第1算出手段は、第1固定部に固定された第1ゲームコントローラの第1ジャイロセンサからの出力に基づいて、当該第1ゲームコントローラの姿勢を示す第1の値を算出する。第2算出手段は、第2固定部に固定された第2ゲームコントローラの第2ジャイロセンサからの出力に基づいて、当該第2ゲームコントローラの姿勢を示す第2の値を算出する。第3算出手段は、第1の値と第2の値との差を示す差分値を算出する。ゲーム処理手段は、第1ゲーム処理手段を含む。第1ゲーム処理手段は、差分値に基づいて、所定の第1ゲーム処理を実行する。
上記によれば、第1ゲームコントローラの姿勢を示す第1の値と第2ゲームコントローラの姿勢を示す第2の値との差分値によって、アクセサリに対する操作内容を検出することができるため、第1ゲームコントローラの姿勢および第2ゲームコントローラの姿勢を用いた操作の多様性を向上させることができる。また、第1ゲームコントローラおよび第2ゲームコントローラがアクセサリに装着されることによって、第1ゲームコントローラがアクセサリに対して少なくとも所定の軸を中心に回動可能に装着される。したがって、第1ゲームコントローラの姿勢を示す第1の値と第2ゲームコントローラの姿勢を示す第2の値との差分値を算出することによって、両コントローラがアクセサリに装着されることによって、アクセサリにおける第1ゲームコントローラの所定の軸を中心とした回動動作を容易に抽出することが可能となり、当該回動動作の内容に基づいてゲーム処理を行うことができる。
また、上記ゲーム処理手段は、第2ゲーム処理手段を、さらに含んでもよい。第2ゲーム処理手段は、第1ゲームコントローラの姿勢または第2ゲームコントローラの姿勢に基づいて、第1ゲーム処理とは異なる第2ゲーム処理を実行する。
上記によれば、上記差分値だけでなく、第1ゲームコントローラの姿勢または第2ゲームコントローラの姿勢に基づいたゲーム処理も可能となるため、第1ゲームコントローラの姿勢および第2ゲームコントローラの姿勢を用いた操作の多様性をさらに向上させることができる。
また、上記第2ゲーム処理は、第1ゲームコントローラの姿勢および第2ゲームコントローラの姿勢の少なくとも一方に基づいて、所定のゲームオブジェクトの姿勢制御を行う処理でもよい。
上記によれば、第1ゲーム処理とは別に、第1ゲームコントローラの姿勢および第2ゲームコントローラの姿勢の少なくとも一方に基づいて、ゲームオブジェクトの姿勢を制御するゲーム処理が可能となるため、より多様性のある操作が可能となる。
また、上記第1ゲーム処理は、差分値に基づいて、姿勢制御とは異なるゲームオブジェクトの動きの制御を行う処理でもよい。
上記によれば、ゲームオブジェクトの姿勢制御とは別に、当該ゲームオブジェクトの動きを第1ゲームコントローラの姿勢を示す第1の値と第2ゲームコントローラの姿勢を示す第2の値との差分値によって制御することができるため、第1ゲームコントローラの姿勢および第2ゲームコントローラの姿勢の両方を用いた多様な操作が可能となる。
また、上記第1ゲーム処理は、差分値に基づいて、ゲームオブジェクトの仮想空間における移動速度、加速度、および移動距離の少なくとも1つを制御する処理でもよい。
上記によれば、ゲームオブジェクトの仮想空間における移動速度、加速度、および移動距離の少なくとも1つを第1ゲームコントローラの姿勢を示す第1の値と第2ゲームコントローラの姿勢を示す第2の値との差分値によって制御することができるため、ゲームコントローラの姿勢を用いた多様な操作が可能となる。
また、上記第2固定部は、第2ゲームコントローラが所定の軸と平行または略平行な方向の軸を中心に回動しないように当該第2ゲームコントローラを固定してもよい。
上記によれば、第2ゲームコントローラに対する所定の軸を中心とした第1ゲームコントローラの回動動作を、第1ゲームコントローラの姿勢を示す第1の値と第2ゲームコントローラの姿勢を示す第2の値との差分値によって推定することができる。
また、上記第1固定部は、第2固定部に固定された第2ゲームコントローラに対して、第1ゲームコントローラが所定の軸を中心に相対的に回動可能に当該第1ゲームコントローラを固定してもよい。
上記によれば、第2ゲームコントローラに対して所定の軸を中心とした第1ゲームコントローラの相対的な回動動作を、第1ゲームコントローラの姿勢を示す第1の値と第2ゲームコントローラの姿勢を示す第2の値との差分値によって推定することができる。
また、上記アクセサリは、付勢部を、さらに含んでもよい。付勢部は、第1固定部に固定された第1ゲームコントローラが所定の軸を中心とする第1方向へ回動した場合に、当該第1方向の逆方向へ回動するように付勢する。
上記によれば、第1固定部に固定された第1ゲームコントローラに対する操作が行われていない場合であっても、実空間における第1ゲームコントローラの姿勢を制御することができる。
また、上記アクセサリは、第1回動制限部を、さらに含んでもよい。第1回動制限部は、第1固定部に固定された第1ゲームコントローラが所定の第1角度を超えて第1方向の逆方向へ回動しないように回動を制限する。
上記によれば、第1固定部に固定された第1ゲームコントローラに対する操作が行われていない場合の、実空間における第1ゲームコントローラの初期姿勢を設定することができる。
また、上記アクセサリは、第2回動制限部を、さらに含んでもよい。第2回動制限部は、第1固定部に固定された第1ゲームコントローラが所定の第2角度を超えて第1方向へ回動しないように回動を制限する。
上記によれば、第1固定部に固定された第1ゲームコントローラに対する操作量を制限することができる。
また、上記付勢部は、第1固定部に固定された第1ゲームコントローラが第1角度と第2角度との間の角度にある場合に、当該第1ゲームコントローラが第1角度に向かって回動するように付勢してもよい。
上記によれば、第1固定部に固定された第1ゲームコントローラに対する操作が行われていない場合、設定された初期姿勢に第1ゲームコントローラの姿勢を戻すことができる。
また、上記アクセサリは、本体部を、さらに含んでもよい。本体部は、表示画面を取り付け可能である。上記本体部は、表示画面取り付け位置の左右に第1側面および第2側面が形成されてもよい。この場合、上記第1固定部は、第1側面側に設けられてもよい。上記第2固定部は、第2側面側に設けられてもよい。
上記によれば、アクセサリの中央付近に装着された表示装置を見ながらゲームプレイすることが可能となる。
また、上記アクセサリは、支持部を、さらに含んでもよい。支持部は、本体部を支持する。上記本体部は、第1固定部および第2固定部とともに支持部を中心に回動可能でもよい。
上記によれば、第1ゲームコントローラおよび第2ゲームコントローラを、上記所定の軸を中心とする回動とは独立して回動させる操作が可能となる。
また、上記アクセサリは、軸部を、さらに含んでもよい。軸部は、第1固定部および第2固定部をともに回動させる。
上記によれば、第1ゲームコントローラおよび第2ゲームコントローラを、上記所定の軸を中心とする回動と独立して回動させる操作が可能となる。
また、上記第1固定部は、アクセサリの一方側に設けられてもよい。上記第2固定部は、第1固定部の反対側となるアクセサリの他方側に設けられてもよい。
上記によれば、アクセサリの両側に第1ゲームコントローラおよび第2ゲームコントローラをそれぞれ装着して、当該アクセサリを操作するゲームプレイが可能となる。
また、上記第1ゲームコントローラおよび第2ゲームコントローラは、それぞれ長手形状でもよい。上記第1固定部および第2固定部は、第1固定部に固定された第1ゲームコントローラの長手方向と第2固定部に固定された第2ゲームコントローラの長手方向とが平行または略平行となるように付属装置に設けられてもよい。
上記によれば、第1ゲームコントローラおよび第2ゲームコントローラの長手方向が同じ方向に向けた状態で、アクセサリに対する操作を検出することができる。
また、上記第1固定部および第2固定部は、それぞれの長手方向が付属装置において同一直線上または略同一直線上となるように設けられてもよい。
上記によれば、第1ゲームコントローラおよび第2ゲームコントローラの長手方向が同一直線上に並べた状態で、アクセサリに対する操作を検出することができる。
また、上記ゲームシステムは、ゲーム装置を、さらに含んでもよい。ゲーム装置は、ゲーム処理手段と当該ゲーム処理手段による処理結果に基づいて生成されるゲーム画面を表示するための表示画面とを有する。この場合、上記アクセサリは、ゲーム装置固定部を、さらに含んでもよい。ゲーム装置固定部は、ゲーム装置が着脱可能に固定される。
上記によれば、ゲーム処理を行う制御装置もアクセサリに搭載するとともに、アクセサリに装着された表示装置を見ながらゲームプレイすることが可能となる。
また、上記第1ゲームコントローラおよび第2ゲームコントローラの少なくとも一方は、第1ボタンを、さらに有してもよい。上記アクセサリは、可動部を、さらに含んでもよい。可動部は、操作部および第1ボタン押下部を含んでもよい。操作部は、ユーザの手によって操作が可能である。第1ボタン押下部は、操作部に対する操作に応じて第1ボタンに向かって動くことによって、第1固定部に固定された第1ゲームコントローラの第1ボタンまたは第2固定部に固定された第2ゲームコントローラの第1ボタンを押下可能である。
上記によれば、アクセサリを用いて操作する場合に、アクセサリに装着された第1ゲームコントローラまたは第2ゲームコントローラの第1ボタンを用いた操作も可能となる。
また、上記第1ゲームコントローラおよび第2ゲームコントローラの少なくとも一方は、第2ボタンを、さらに有してもよい。上記可動部は、第2ボタン押下部を含んでもよい。第2ボタン押下部は、操作部に対する操作に応じて第2ボタンに向かって動くことによって、第1固定部に固定された第1ゲームコントローラの第2ボタンまたは第2固定部に固定された第2ゲームコントローラの第2ボタンを押下可能である。
上記によれば、アクセサリに設けられた1つの操作部に対する操作によって、2つの操作ボタンに対する操作が可能となる。
また、上記第1ボタン押下部は、操作部に対する操作に応じて当該操作部が所定の方向に動かされた場合に第1ボタンを押下してもよい。上記第2ボタン押下部は、操作部に対する操作に応じて当該操作部が当該所定の方向とは異なる方向に動かされた場合に第2ボタンを押下してもよい。
上記によれば、アクセサリに設けられた1つの操作部に対する操作方向によって、2つの操作ボタンを区別した操作が可能となる。
また、本発明のアクセサリの一構成例は、第1ジャイロセンサを備える第1ゲームコントローラおよび第2ジャイロセンサを備える第2ゲームコントローラを着脱可能である。アクセサリは、第1固定部および第2固定部を備える。第1固定部は、少なくとも所定の軸を中心に回動可能に第1ゲームコントローラを固定する。第2固定部は、第2ゲームコントローラを固定する。
上記によれば、第1ゲームコントローラおよび第2ゲームコントローラがアクセサリに装着されることによって、第1ゲームコントローラがアクセサリに対して少なくとも所定の軸を中心に回動可能に装着される。したがって、両コントローラがアクセサリに装着されることによって、アクセサリにおける第1ゲームコントローラの所定の軸を中心とした回動動作を容易に抽出することが可能となり、当該回動動作の内容に基づいてゲーム処理を行うことができる。
また、上記第1固定部および第2固定部は、少なくとも1枚の厚紙を折り曲げることによって形成可能に構成されてもよい。
上記によれば、厚紙部材を折り曲げることによって、アクセサリの第1固定部および第2固定部を組み立てることができる。
また、本発明のゲームシステムの他の構成例は、第1ジャイロセンサを備える第1ゲームコントローラと、第2ジャイロセンサを備える第2ゲームコントローラと、所定のゲーム処理を実行するゲーム処理手段とを含む。ゲームシステムは、第1算出手段、第2算出手段、および第3算出手段を含む。第1算出手段は、第1ゲームコントローラの第1ジャイロセンサからの出力に基づいて、当該第1ゲームコントローラの姿勢を示す第1の値を算出する。第2算出手段は、第2ゲームコントローラの第2ジャイロセンサからの出力に基づいて、当該第2ゲームコントローラの姿勢を示す第2の値を算出する。第3算出手段は、第1の値と第2の値との差を示す差分値を算出する。ゲーム処理手段は、第1ゲーム処理手段および第2ゲーム処理手段を含む。第1ゲーム処理手段は、差分値に基づいて、所定の第1ゲーム処理を実行する。第2ゲーム処理手段は、第1ゲームコントローラの姿勢または第2ゲームコントローラの姿勢に基づいて、第1ゲーム処理とは異なる第2ゲーム処理を実行する。
上記によれば、第1ゲームコントローラの姿勢を示す第1の値と第2ゲームコントローラの姿勢を示す第2の値との差分値によって、アクセサリに対する操作内容を検出することができるため、第1ゲームコントローラの姿勢および第2ゲームコントローラの姿勢を用いた操作の多様性を向上させることができる。また、上記差分値だけでなく、第1ゲームコントローラの姿勢または第2ゲームコントローラの姿勢に基づいたゲーム処理も可能となるため、第1ゲームコントローラの姿勢および第2ゲームコントローラの姿勢を用いた操作の多様性をさらに向上させることができる。
また、上記ゲームシステムは、ゲームプログラム、ゲーム装置、およびゲーム方法の形態で実施されてもよい。
また、本発明の厚紙部材の一構成例は、第1ジャイロセンサを備える第1ゲームコントローラおよび第2ジャイロセンサを備える第2ゲームコントローラを着脱可能なアクセサリを形成可能である。アクセサリは、第1固定部および第2固定部を含む。第1固定部は、少なくとも所定の軸を中心に回動可能に第1ゲームコントローラを固定する。第2固定部は、第2ゲームコントローラを固定する。厚紙部材は、第1固定部および第2固定部を有するアクセサリを、折り曲げることによって一体的に形成可能である。
上記によれば、厚紙部材を折り曲げることによって、第1ゲームコントローラおよび第2ゲームコントローラを装着可能なアクセサリを構成することができる。
本発明によれば、第1ゲームコントローラの姿勢および第2ゲームコントローラの姿勢を用いた操作の多様性を向上させることができる。
本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図 本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図 本体装置2の一例を示す六面図 左コントローラ3の一例を示す六面図 右コントローラ4の一例を示す六面図 本体装置2の内部構成の一例を示すブロック図 本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図 ユーザがアクセサリ200を装着してゲーム操作する様子の一例を示す図 アクセサリ200の外観の一例を示す斜視図 アクセサリ200の外観の一例を示す六面図 アクセサリ200に本体装置2、左コントローラ3、および右コントローラ4が装着された状態の一例を示す図 アクセサリ200のアクセル機構の一例を示す図 アクセサリ200のアクセル機構における第1の状態の一例を示す図 アクセサリ200のアクセル機構における第2の状態の一例を示す図 アクセサリ200のアクセル機構における第3の状態の一例を示す図 アクセサリ200のブレーキ機構の一例を示す図 アクセサリ200のウィンカ機構の一例を示す図 本体部202を組み立てるための厚紙部材の一部の一例を示す図 左コントローラ支持部203および右コントローラ支持部204を組み立てるための厚紙部材の一部の一例を示す図 本実施形態において本体装置2のDRAM85に設定されるデータ領域の一例を示す図 本体装置2で実行される情報処理の一例を示すフローチャート
以下、本実施形態の一例に係るゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法について説明する。本実施形態におけるゲームシステム1は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とアクセサリ200とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。また、ゲームシステム1におけるアクセサリ200は、その内部にコントローラ(例えば、左コントローラ3および右コントローラ4)を装着することによって、拡張操作装置や操作具として利用することができる。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。なお、本実施形態においては、ゲームシステム1の主面の長手方向を横方向(左右方向とも言う)と呼び、当該主面の短手方向を縦方向(上下方向とも言う)と呼び、主面に垂直な方向を奥行方向(前後方向とも言う)と呼ぶこととする。また、ゲームシステム1における方向をわかりやすくするために、ゲームシステム1に対する3軸(xyz軸)方向を定義する。具体的には、図1に示すように、ゲームシステム1においてディスプレイ12が設けられている前面から背面に向かうディスプレイ12の奥行方向をz軸正方向とし、当該奥行方向に対して垂直な横方向において右から左に向かう方向(右コントローラ4の装着位置から左コントローラ3の装着位置に向かう方向)をx軸正方向とし、当該奥行方向および当該横方向に対して垂直な上下方向において下から上に向かうディスプレイ12に沿った方向をy軸正方向とする。
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。また、本実施形態において、2つのコントローラ(例えば、左コントローラ3および右コントローラ4)を拡張操作装置(例えば、アクセサリ200)に装着することにより、ユーザが当該拡張操作装置を操作することによって本体装置2において実行されている情報処理(例えばゲーム処理)を制御することができる。
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1および図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33〜36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および−(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。本実施形態においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53〜56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上に第1Rボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81〜91、97、および98を備える。これらの構成要素81〜91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System−on−a−chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi−Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
また、本体装置2は、加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、図1に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
また、本体装置2は、角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、図1に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
加速度センサ89および角速度センサ90は、プロセッサ81に接続され、加速度センサ89および角速度センサ90の検出結果は、プロセッサ81へ出力される。プロセッサ81は、上記の加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
左コントローラ3は、各ボタン103(具体的には、ボタン33〜39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサ104を備える。また、左コントローラ3は、角速度センサ105を備える。本実施形態においては、加速度センサ104は、所定の3軸(例えば、図4に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ105は、所定の3軸(例えば、図4に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。なお、後述する説明においては、左コントローラ3がx軸方向(図1、図2、図4参照)周りに回転する方向をピッチ方向とし、左コントローラ3がy軸方向周りに回転する方向をロール方向とし、左コントローラ3がz軸方向周りに回転する方向をヨー方向とする。
左コントローラ3は、振動によってユーザに通知を行うための振動子107を備える。本実施形態においては、振動子107は、本体装置2からの指令によって制御される。すなわち、通信制御部101は、本体装置2からの上記指令を受け取ると、当該指令に従って振動子107を駆動させる。ここで、左コントローラ3は、コーデック部106を備える。通信制御部101は、上記指令を受け取ると、指令に応じた制御信号をコーデック部106へ出力する。コーデック部106は、通信制御部101からの制御信号から振動子107を駆動させるための駆動信号を生成して振動子107へ与える。これによって振動子107が動作する。
振動子107は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅および周波数で振動をさせることができる。本実施形態において、本体装置2から左コントローラ3に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、本体装置2から波形そのものを示す情報を送信するようにしてもよいが、振幅および周波数だけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅および周波数の数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部106は、通信制御部101から取得される振幅および周波数の値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子107を駆動させる。したがって、本体装置2は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子107を振動させる振幅および周波数を制御することができる。なお、本体装置2から左コントローラ3に送信される振幅および周波数は、1つに限らず、2つ以上送信するようにしてもよい。その場合、コーデック部106は、受信された複数の振幅および周波数それぞれが示す波形を合成することで、振動子107を制御する電圧の波形を生成することができる。
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。なお、本体装置2は、右コントローラ4の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ114および角速度センサ115の検出結果)に基づいて算出することができる。また、後述する説明においては、右コントローラ4がx軸方向(図1、図2、図5参照)周りに回転する方向をピッチ方向とし、右コントローラ4がy軸方向周りに回転する方向をロール方向とし、右コントローラ4がz軸方向周りに回転する方向をヨー方向とする。
また、右コントローラ4は、振動子117およびコーデック部116を備える。振動子117およびコーデック部116は、左コントローラ3の振動子107およびコーデック部106と同様に動作する。すなわち、通信制御部111は、本体装置2からの指令に従って、コーデック部116を用いて振動子117を動作させる。
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
次に、図8を参照して、拡張操作装置の一例であるアクセサリ200を用いた操作について説明する。図8は、ユーザがアクセサリ200を装着してゲーム操作する様子の一例を示す図である。本実施例において、アクセサリ200には本体装置2、左コントローラ3、および右コントローラ4を装着することが可能であり、アクセサリ200に装着された左コントローラ3および右コントローラ4から本体装置2へ送信される操作データに基づいて、アクセサリ200に対する操作内容に応じた処理が実行される。ここで、詳細は後述するが、アクセサリ200に対する操作内容は、左コントローラ3および右コントローラ4に設けられた操作ボタンに対する操作と、左コントローラ3および右コントローラ4の姿勢や動きとに基づいて検出される。したがって、アクセサリ200は、ユーザによる操作内容を検出したり、検出結果を本体装置2へ送信したりする電子回路等の電気的構成を必要としない。そのため、本実施例によれば、拡張操作装置の一例であるアクセサリ200の構成を簡易化することができる。
例えば、本実施例では、図8に示すように、ユーザは、アクセサリ200の両端(左右)に設けられた把持部(後述する左コントローラ固定部203および右コントローラ固定部204)をそれぞれ把持しながら、両把持部の間に設けられた支持部(後述する支持部201)の先端を身体の胴体前部と当接させた状態でアクセサリ200を使用する。そして、ユーザは、アクセサリ200全体を傾けたり、一方の把持部(例えば、ユーザの右手で把持される右コントローラ固定部204)をひねったり、ハンドルを操作するように両把持部を動かしたり、アクセサリ200に設けられた操作部(後述するウィンカ操作部205、ブレーキ操作部206、セル操作部207)を操作したりすることによって、アクセサリ200を用いた操作を行う。典型的には、アクセサリ200はバイクを模することが可能であり、ユーザは、アクセサリ200を用いてバイクを模擬運転するような操作が可能となる。ここで、アクセサリ200における上下左右方向は、アクセサリ200をユーザが使用している状態を基準として、ユーザから見た方向が定義されている。つまり、ユーザが支持部の先端を身体の胴体前部と当接させた状態でアクセサリ200を使用する場合に、左手で把持可能な把持部(後述する左コントローラ固定部203)が設けられる方向がアクセサリ200における左方向であり、右手で把持可能な把持部(後述する右コントローラ固定部204)が設けられる方向がアクセサリ200における右方向となる。
アクセサリ200の本体部(後述する本体部202)の上面には、本体装置2が装着される。そして、上述したようなアクセサリ200を用いた操作に応じて、仮想空間に配置されたプレイヤオブジェクトが動作し、当該プレイヤオブジェクトの動作が反映された仮想空間の画像が本体装置11のディスプレイ12に表示される。
例えば、ユーザがアクセサリ200に設けられた操作部を操作した場合、当該操作部の操作に応じて左コントローラ固定部203の内部に装着された左コントローラ4の操作ボタン(第1Lボタン38、ZLボタン39)や右コントローラ固定部204の内部に装着された右コントローラ4の操作ボタン(第1Rボタン60、ZRボタン61)が押下される。このような操作ボタンに対する押下操作を検出することによって、アクセサリ200を操作するユーザが操作部を操作したことが推測され、操作が推測された操作部に応じてプレイヤオブジェクトも仮想空間において動作する。
ここで、アクセサリ200に装着されている左コントローラ3および右コントローラ4には、それぞれ慣性センサ(加速度センサおよび角速度センサ)が備えられており、当該慣性センサの検出結果を用いて、左コントローラ3と右コントローラ4との姿勢および/または動き(すなわち、アクセサリ200の姿勢および/または動き)を算出することが可能である。本実施例では、このようなアクセサリ200の姿勢および/または動きに応じて、プレイヤオブジェクトの動作を制御することが可能である。
例えば、ユーザがアクセルをひねるように右手で把持している右コントローラ固定部204(図9〜図11参照)を回転させた場合、右コントローラ固定部204の内部に装着された右コントローラ4がロール回転する。このような右コントローラ4の動きを検出することによって、アクセサリ200を操作するユーザがアクセルをひねるような動作をしたことが推測され、推測されたアクセル開度に応じた速度でプレイヤオブジェクトも仮想空間において移動する。また、ユーザがアクセサリ200全体を上に向けるように操作(バイクの前輪を地面から浮かせた状態で走行する操作:以下、ウィリー操作と記載する)をした場合、左コントローラ固定部203(図9〜図11参照)の内部に装着された左コントローラ4がロール回転する。このような左コントローラ4のロール回転の動きを検出することによって、アクセサリ200を操作するユーザがウィリーするような操作をしたことが推測され、推測された姿勢変化に応じてプレイヤオブジェクトも仮想空間においてウィリー動作を行う。また、ユーザがハンドルを切るように左右の手で把持している左コントローラ固定部203および右コントローラ固定部204を動かす操作をした場合、左コントローラ固定部203の内部に装着された左コントローラ4がヨー回転する。このような左コントローラ4のヨー回転の動きを検出することによって、アクセサリ200を操作するユーザがハンドルを切る操作をしたことが推測され、推測された方向変化に応じてプレイヤオブジェクトも仮想空間において移動方向を変化させる。さらに、ユーザがアクセサリ200全体を左右に傾けるような操作をした場合、左コントローラ固定部203の内部に装着された左コントローラ4がピッチ回転する。このような左コントローラ4のピッチ回転の動きを検出することによって、アクセサリ200を操作するユーザが左右に倒れる操作をしたことが推測され、推測された傾倒変化に応じてプレイヤオブジェクトも仮想空間において傾倒させる、および/または移動方向を変化させる。
なお、左コントローラ4の姿勢に応じて変化させるプレイヤオブジェクトの動作や姿勢は、仮想空間を移動するプレイヤオブジェクトの状態(例えば、移動速度やアクセル開度)に応じて別の変化が生じてもよい。例えば、上記ウィリー動作は、仮想空間においてプレイヤオブジェクトが所定の移動速度以上で移動中(例えば、アクセル開度が所定値以上の状態)の場合に限って可能にしてもよい。この場合、ユーザが上記ウィリー操作を行ったとしても、プレイヤオブジェクトがウィリー動作する条件を満たしていない場合は、上記ウィリー動作を行わずにプレイヤオブジェクトが向く方向を単に仮想空間の上方向に変化させてもかまわない。
また、上述した例では、左コントローラ4のロール回転の動きを検出することによって、アクセサリ200を操作するユーザがウィリーするような操作をしたことを推測しているが、他の動きを検出することによってウィリー操作を検出してもよい。例えば、アクセサリ200に装着されている本体装置2がピッチ方向(図1に示すx軸方向周りに回転する方向)に回転する動きを検出することによって、アクセサリ200を操作するユーザがウィリーするような操作をしたことを推測してもよい。この場合、本体装置2に設けられた角速度センサ90が検出する角速度を用いて、本体装置2のピッチ方向の回転を検出すればよい。他の例として、アクセサリ200に装着されている右コントローラ4のロール回転を検出することによって、アクセサリ200を操作するユーザがウィリーするような操作をしたことを推測してもよい。この場合、左コントローラ4と右コントローラ4とのロール回転の差が所定値以下であることを条件として、右コントローラ4のロール回転によってウィリー操作を検出することが考えられる。
また、上述した例では、アクセル操作の他に、ウィリー操作、ハンドルを切る操作、および左右に傾ける操作が行われる例を記載したが、アクセル操作の他に、ウィリー操作、ハンドルを切る操作、および左右に傾ける操作の少なくとも1つが実装されてもよい。
上述したように、アクセサリ200を用いた操作に応じて動作するプレイヤオブジェクトは、本体装置11のディスプレイ12に表示される。したがって、アクセサリ200を操作するユーザは、アクセサリ200の上面(本体部202の上面)に設けられた本体装置11のディスプレイ12を見ることによってゲームを楽しむことになるが、ディスプレイ12にプレイヤオブジェクトを表示するための視点は、仮想空間においてどのような位置に配置されてもよい。第1の例として、プレイヤオブジェクトの背後からプレイヤオブジェクトを見た仮想空間画像を上記表示装置に表示してもよい。第2の例として、プレイヤオブジェクトの第1人称視点によって、上記表示装置に仮想空間画像を表示してもよい。第3の例として、プレイヤオブジェクトの正面からプレイヤオブジェクトを見た仮想空間画像を上記表示装置に表示してもよい。ここで、仮想空間に配置する視点および視線方向によっては、ユーザにとって自分自身の動きに対するプレイヤオブジェクトの動きを把握することが難しくなることが考えられるが、アクセサリ200を用いた操作に対応して動作するプレイヤオブジェクトの部位や動作方向を当該視点および視線方向に応じて設定することによって、臨場感のあるゲームプレイを提供することが可能となる。また、左コントローラ3および/または右コントローラ4には、ゲーム状況に応じた振動が与えられる。したがって、左コントローラ固定部203および/または右コントローラ固定部204を介して、左コントローラ3および/または右コントローラ4の振動が伝えられるため、左コントローラ固定部203および右コントローラ固定部204を把持して操作しているユーザにも当該振動を知覚させることができ、さらに臨場感のあるゲームプレイを提供することが可能となる。
次に、図9〜図17を参照して、拡張操作装置の一例であるアクセサリ200について説明する。なお、図9は、アクセサリ200の外観の一例を示す斜視図である。図10は、アクセサリ200の外観の一例を示す六面図である。図11は、アクセサリ200に本体装置2、左コントローラ3、および右コントローラ4が装着された状態の一例を示す図である。図12は、アクセサリ200のアクセル機構の一例を示す図である。図13は、アクセサリ200のアクセル機構における第1の状態の一例を示す図である。図14は、アクセサリ200のアクセル機構における第2の状態の一例を示す図である。図15は、アクセサリ200のアクセル機構における第3の状態の一例を示す図である。図16は、アクセサリ200のブレーキ機構の一例を示す図である。図17は、アクセサリ200のウィンカ機構の一例を示す図である。
図9〜図11において、アクセサリ200は、大略的に、支持部201、本体部202、左コントローラ支持部203、および右コントローラ支持部204を有している。アクセサリ200は、全体としてハンドルを有するバイクの前部を模した形状であり、左右の左コントローラ支持部203および右コントローラ支持部204を左右の手で把持しながら、支持部201の後端をユーザの胴体前部と当接させることによって、ユーザがアクセサリ200を用いてバイクを模擬運転するような操作が可能である。本体部202は、支持部201の上面に図示B方向に回動可能に取り付けられる。そして、左コントローラ支持部203は、本体部202の左側面に挿設され、右コントローラ支持部204は、本体部202の右側面に挿設される。
支持部201は、前後方向を長手方向とする板状部材である。支持部201の前方上面には、本体部202に挿入される軸部(図示せず)が上方向へ立設されている。支持部201の後端部分には、上記長手方向長さを調整するための延長部201aを装着することが可能である。延長部201aを支持部201の後端部分に装着した場合、上記長手方向長さが長くなるため、アクセサリ200の後端から本体部202、左コントローラ支持部203、および右コントローラ支持部204までの距離が長くなる。したがって、ユーザは、延長部201aを支持部201から着脱することによって、ユーザ自身の体格に合わせてアクセサリ200の前後方向長さを調整することが可能となる。
本体部202は、支持部201に設けられた軸部に枢設され、支持部201の前方上面において図示B方向に回動可能に支持される。本体部202の上面には本体装置2を着脱可能に固定するための本体装置固定部202aが形成される。本体装置固定部202aは、本体装置2の上下左右端部を挟持して本体装置2を本体部202の上面に固定することが可能である。したがって、本体装置固定部202aは、本体装置2のディスプレイ12を上面にして本体装置2を固定することによって、ユーザがアクセサリ200を操作しながらディスプレイ12に表示される画像を見ることが可能となる。
また、本体部202の左側面には、左コントローラ支持部203の長手方向が左方向となるように、左コントローラ支持部203が当該左側面に横設されて固定される。一方、本体部202の右側面には、右コントローラ支持部204の長手方向が右方向となるように、右コントローラ支持部204が当該右側面に横設される。つまり、左コントローラ支持部203が本体部202の一方側に設けられ、右コントローラ支持部204が本体部202の他方側に設けられることになる。したがって、左コントローラ支持部203および右コントローラ支持部204は、本体部202の動きと一体的に動くことになり、本体部202が図示B方向に回動した場合、左コントローラ支持部203および右コントローラ支持部204も一体的に図示B方向に回動することになる。また、左コントローラ支持部203の長手方向と右コントローラ支持部204の長手方向とが略同一直線上または略平行となる左右方向となるように、左コントローラ支持部203および右コントローラ支持部204が本体部202に設けられる。ここで、後述により明らかとなるが、右コントローラ支持部204は、長手方向となる長軸周り(図示A方向)に回動可能に右コントローラ支持部204の右側面に挿設される。したがって、右コントローラ支持部204は、左コントローラ支持部203や本体部202に対して相対的に図示A方向にロール回転することが可能である。
左コントローラ支持部203は、その内部に左コントローラ3を着脱可能に装着する。左コントローラ支持部203の内部空間は、その上下方向の長さが左コントローラ3の最大厚さ(図1に示すz軸方向における最大長さ)とほぼ同じであり、その左右方向の長さが左コントローラ3の左右方向の最大幅(図1に示すx軸方向の最大長さ)とほぼ同じである。したがって、左コントローラ支持部203は、その長手方向と左コントローラ3の長手方向とが一致するように、その内部空間に左コントローラ3を装入して固定することができる。例えば、図11に図示されているように、左コントローラ支持部203は、左コントローラ3の主面(図4におけるz軸負方向側に形成されている面)が上方となるとともに、左コントローラ3の上側面(図4におけるy軸正方向側の面)が本体部202側となる右方向となるように、左コントローラ3を装着することができる。したがって、左コントローラ支持部203に装着された左コントローラ3は、x軸正方向がアクセサリ200の前方向となり、y軸正方向がアクセサリ200の右方向となり、z軸正方向がアクセサリ200の下方向となるように、アクセサリ200に装着される。そして、左コントローラ支持部203に装着された左コントローラ3は、アクセサリ200の前方を持ち上げたり前方を下げたりした場合にロール方向に回転し、ハンドルを切るように本体部202を図示B方向に回動させた場合にヨー方向に回転し、アクセサリ200全体を左右に傾けた場合にピッチ方向に回転することになる。なお、左コントローラ支持部203に装着された左コントローラ3は、その一部が外部に露出してもかまわない。例えば、アナログスティック32等が左コントローラ支持部203の上面に露出してもよい。
左コントローラ支持部203は、ウィンカ操作部205を有している。ウィンカ操作部205は、左コントローラ支持部203の後方側面(アクセサリ200を操作するユーザ側の側面)における本体部202側に設けられ、左コントローラ支持部203を把持するユーザの左親指等によって操作可能となっている。具体的には、ウィンカ操作部205は、ユーザ操作に応じて左右に動く操作片を有している。そして、後述により明らかとなるが、ウィンカ操作部205は、上記操作片を左右に動かすことによって左コントローラ3の第1Lボタン38およびZLボタン39の一方を選択的に押下操作することができる。
右コントローラ支持部204は、その内部に右コントローラ4を着脱可能に装着する。右コントローラ支持部204の内部空間は、その上下方向の長さが右コントローラ4の最大厚さ(図1に示すz軸方向における最大長さ)とほぼ同じであり、その左右方向の長さが右コントローラ4の左右方向の最大幅(図1に示すx軸方向の最大長さ)とほぼ同じである。したがって、右コントローラ支持部204は、その長手方向と右コントローラ4の長手方向とが一致するように、その内部空間に右コントローラ4を装入して固定することができる。例えば、図11に図示されているように、右コントローラ支持部204は、右コントローラ4の主面(図5におけるz軸負方向側に形成されている面)が上方となるとともに、右コントローラ4の上側面(図5におけるy軸正方向側の面)が本体部202側となる左方向となるように、右コントローラ4を装着することができる。したがって、右コントローラ支持部204に装着された右コントローラ4は、x軸正方向がアクセサリ200の後方向となり、y軸正方向がアクセサリ200の左方向となり、z軸正方向がアクセサリ200の下方向となるように、アクセサリ200に装着される。そして、右コントローラ支持部204に装着された右コントローラ4は、右コントローラ支持部204が図示A方向に回動するように操作された場合にロール方向に回転する。また、右コントローラ支持部204に装着された右コントローラ4は、アクセサリ200の前方を持ち上げたり前方を下げたりした場合にロール方向に回転し、ハンドルを切るように本体部202を図示B方向に回動させた場合に図示A方向への右コントローラ支持部204の回動角度に応じてヨー方向および/またはピッチ方向に回転し、アクセサリ200全体を左右に傾けた場合に図示A方向への右コントローラ支持部204の回動角度に応じてヨー方向および/またはピッチ方向に回転することになる。なお、右コントローラ支持部204に装着された右コントローラ4は、その一部が外部に露出してもかまわない。例えば、アナログスティック52や+ボタン57等が右コントローラ支持部204の上面に露出してもよい。
右コントローラ支持部204は、ブレーキ操作部206およびセル操作部207を有している。ブレーキ操作部206は、右コントローラ支持部204の前方側面(アクセサリ200を操作するユーザ側の側面と対向する逆側の面)における本体部202側に設けられ、右コントローラ支持部204を把持するユーザの右人差し指等によって操作可能となっている。具体的には、ブレーキ操作部206は、ユーザ操作に応じて手前に動く操作片を有している。そして、後述により明らかとなるが、ブレーキ操作部206は、上記操作片を手前に動かすことによって右コントローラ4の第1Rボタン60を押下操作することができる。また、セル操作部207は、右コントローラ支持部204の後方側面(アクセサリ200を操作するユーザ側の側面)における本体部202側に設けられ、右コントローラ支持部204を把持するユーザの右親指等によって操作可能となっている。具体的には、セル操作部207は、ユーザ操作に応じて押下(押し込む操作)可能な操作片を有している。そして、セル操作部207は、上記操作片を押下する(押し込む)ことによって右コントローラ4のZRボタン61を押下操作することができる。
次に、図12〜図15を参照して、アクセサリ200に設けられているアクセル機構について説明する。上述したように、右コントローラ支持部204は、本体部202に対して図示A方向に回動可能に挿設されている。図12に示すように、本体部202の内部には、右コントローラ支持部204を回動可能に支持するための軸受部202bが設けられており、右コントローラ支持部204は、軸受部202bの円筒内面Sに沿って図示A方向に回動することができる。
図13に示すように、右コントローラ支持部204は、軸受部202bの軸を中心として図示−A方向(例えば、右コントローラ支持部204の右端部から本体部202を見て時計回り方向)に付勢されている。例えば、右コントローラ支持部204は、軸受部202bとの間に張設された弾性部材202cによる引っ張り応力によって図示−A方向に付勢される。図12に示した一例では、右コントローラ支持部204の側面に弾性部材202c(例えば、輪ゴム)を掛着するための弾性部材掛着部204aが複数設けられている。そして、図示−A方向に右コントローラ支持部204が付勢されるように、軸受部202bの円筒内面Sに一方端が固定された複数の弾性部材202cの他方端が、弾性部材掛着部204aにそれぞれ掛着される。
また、軸受部202bの円筒内面Sには、右コントローラ支持部204の回動動作を止めるための回動制限部202dが設けられている。例えば、回動制限部202dは、軸受部202bの円筒内面Sから突出する凸部によって構成される。これによって、軸受部202bの円筒内面Sに沿って回動する右コントローラ支持部204の側面が回動制限部202dと当接した場合、当該当接した位置で右コントローラ支持部204の回動が停止する。したがって、右コントローラ支持部204が弾性部材202cによる付勢によって図示−A方向に回動する場合、右コントローラ支持部204の側面と回動制限部202dとが当接する位置で当該回動が停止することになり、当該停止する位置が当該回動動作における右コントローラ支持部204の初期位置となる(図13の状態)。なお、図13に示す一例では、軸受部202bの円筒内面Sの2箇所に回動制限部202dが設けられており、上記初期位置において2つの回動制限部202dが同時に右コントローラ支持部204の側面(より具体的には、対向する2つの側面)とそれぞれ当接する。このように、複数の回動制限部202dを設けることによって、右コントローラ支持部204の回動を確実に上記初期位置で停止させることができる。なお、右コントローラ支持部204の初期位置は、任意の角度であってもよい。例えば、図13に例示している水平方向から仰角または俯角方向に10度傾いていてもよく、当該初期角度は任意の角度でもよい。
図14に示すように、アクセサリ200のユーザは、上記初期位置で回動動作を停止している右コントローラ支持部204を図示+A方向に回動する操作が可能である。具体的には、右手で把持している右コントローラ支持部204を、弾性部材202cによる付勢力より大きな力で図示+A方向にひねる操作を行うことによって、右コントローラ支持部204は、軸受部202bの円筒内面Sに沿って図示+A方向に回動する。このとき、ユーザは、さらに右コントローラ支持部204を図示+A方向に回動させることができる。また、把持している右コントローラ支持部204をユーザが放した場合、弾性部材202cによる付勢力によって右コントローラ支持部204が図示−A方向に回動して上記初期位置で停止する。つまり、右コントローラ支持部204を回動させる操作は、あたかもバイクのアクセル操作を模したものとなり、アクセサリ200におけるアクセル機構として右コントローラ支持部204を機能させることができる。そして、右コントローラ支持部204内部に装着されている右コントローラ4は、右コントローラ支持部204を用いたアクセル操作に応じてロール方向に回転するため、当該回転を検出することによってユーザのアクセル操作(アクセル開度)を算出することができる。
なお、ユーザがアクセサリ200全体を上に向けるように操作(ウィリー操作)をした場合や、アクセサリ200全体を下に向けるように操作した場合であっても、右コントローラ支持部204内部に装着されている右コントローラ4がロール方向に回転する。したがって、右コントローラ4のロール方向の回転動作だけを検出するだけではアクセサリ200全体を上下に向ける操作とアクセル操作とを区別することができない。本実施例では、アクセサリ200全体を上下に向ける操作とアクセル操作とを見分けるために、左コントローラ3の姿勢と右コントローラ4の姿勢との差分を算出し、当該差分を示す値を用いてユーザのアクセル操作(アクセル開度)を算出する。ここで、左コントローラ3を固定する左コントローラ固定部203は、右コントローラ支持部204のように本体部202に対して図示A方向に回転することができず本体部202に対して固定されている。つまり、左コントローラ3のロール方向における姿勢と右コントローラ4のロール方向における姿勢との差は、上記アクセル操作によるものであると考えることができる。本実施例では、このようなアクセサリ200の特徴を利用して、左コントローラ3の姿勢と右コントローラ4の姿勢との差分値を用いてユーザのアクセル操作(アクセル開度)を算出している。
さらに、右コントローラ支持部204を図示+A方向に回動させた場合、軸受部202bの円筒内面Sに沿って回動する右コントローラ支持部204の側面が回動制限部202dと当接する状態となる(図15の状態)。具体的には、上記初期位置において回動制限部202dの一方側当接面と当接していた右コントローラ支持部204の側面が、当該回動制限部202dの他方側当接面と当接することによって、右コントローラ支持部204の回動を停止させる。つまり、右コントローラ支持部204を初期位置で停止させるストッパとして機能する回動制限部202dは、右コントローラ支持部204の最大回動角度で停止させるストッパとしても機能することになる。なお、図13〜図15に示した一例では、右コントローラ支持部204を回動させることが可能な最大回動角度が90度となる例を用いているが、回動制限部202dの形状、数、右コントローラ支持部204の形状等によって、当該最大回動角度を様々な角度に設定することができる。
次に、図16を参照して、アクセサリ200に設けられているブレーキ機構について説明する。上述したように、右コントローラ支持部204は、ブレーキ操作部206が設けられている。
図16に示すように、ブレーキ操作部206は、右コントローラ支持部204の内部まで貫装されており、その一部がユーザ操作可能な操作片として右コントローラ支持部204の外部に突出している。そして、ブレーキ操作部206は、右コントローラ支持部204の前方側面(アクセサリ200を操作するユーザ側の側面と対向する逆側の面)に設けられており、ブレーキ操作部206の上記操作片を当該前方側面に引き寄せるように手前(図示+C方向)に動かすような操作が可能となっている。また、ブレーキ操作部206は、上記操作方向とは逆となる方向(図示−C方向)に付勢されている。例えば、ブレーキ操作部206は、右コントローラ支持部204の内部の部材との間に張設された弾性部材206aによる引っ張り応力によって図示−C方向に付勢される。図16に示した一例では、ブレーキ操作部206の+C方向側側面に弾性部材206a(例えば、輪ゴム)を掛着するための弾性部材掛着部206bが形成されている。そして、右コントローラ支持部204の内部の部材に一方端が固定された弾性部材206aの他方端が弾性部材掛着部206bに掛着されることによって、図示−C方向にブレーキ操作部206が付勢される。
なお、上述した例では、例えば輪ゴム等の弾性部材206aによってブレーキ操作部206を付勢しているが、弾性部材206aがなくてもよい。例えば、ブレーキ操作部206や右コントローラ支持部204自体が有する復元力を利用して、図示−C方向にブレーキ操作部206を付勢してもよい。
アクセサリ200のユーザは、図示−C方向に付勢されたブレーキ操作部206の操作片を図示+C方向に倒す操作が可能である。具体的には、弾性部材206aによる付勢力より大きな力で図示+C方向にブレーキ操作部206を倒す操作を行うことによって、ブレーキ操作部206が右コントローラ支持部204内部に装着された右コントローラ4に向かって傾倒する。そして、図示+C方向に傾倒するブレーキ操作部206の一部が右コントローラ4の第1Rボタン60と当接するため、ブレーキ操作部206を図示+C方向に倒す操作によって第1Rボタン60を押下操作することができる。また、傾倒しているブレーキ操作部206をユーザが放した場合、弾性部材206aによる付勢力によってブレーキ操作部206が図示−C方向に起立して停止する。つまり、ブレーキ操作部206を傾倒させる操作は、あたかもバイクのブレーキ操作を模したものとなり、アクセサリ200におけるブレーキ機構としてブレーキ操作部206を機能させることができる。そして、右コントローラ4の第1Rボタン60に対する押下操作を検出することによって、ユーザのブレーキ操作を検出することができる。
次に、図17を参照して、アクセサリ200に設けられているウィンカ機構について説明する。上述したように、左コントローラ支持部203は、ウィンカ操作部205が設けられている。
図17に示すように、ウィンカ操作部205は、左コントローラ支持部203の内部まで貫装されており、その一部がユーザ操作可能な操作片として左コントローラ支持部203の外部に突出している。そして、ウィンカ操作部205は、左コントローラ支持部203の後方側面(アクセサリ200を操作するユーザ側の側面)に設けられており、ウィンカ操作部205の上記操作片を左(図示+D方向)または右(図示−D方向)に動かすような操作が可能となっている。
図17中段図に示すように、ウィンカ操作部205の上記操作片が左(図示+D方向)に動かされた場合、ウィンカ操作部205が所定の固定部(図示帯形状の射線領域)を中心に右に倒れる(回動する)。これによって、ウィンカ操作部205において上記固定部より操作片側の部位が左側へ移動し、ウィンカ操作部205において上記固定部より前方側の部位が右側へ移動する。このようにウィンカ操作部205が移動することによって、ウィンカ操作部205の上記操作片側の部位が左コントローラ支持部203内部に装着された左コントローラ3に向かって移動し、ウィンカ操作部205の上記前方側の部位が左コントローラ支持部203内部に装着された左コントローラ3から離れる方向に移動する。そして、図示+D方向に上記操作片を移動させる操作に応じて移動するウィンカ操作部205の一部が左コントローラ3のZLボタン39と当接するため、ウィンカ操作部205を図示+D方向に動かす操作によってZLボタン39を押下操作することができる。
また、図17下段図に示すように、ウィンカ操作部205の上記操作片が右(図示−D方向)に動かされた場合、ウィンカ操作部205が所定の固定部(図示帯形状の射線領域)を中心に左に倒れる(回動する)。これによって、ウィンカ操作部205において上記固定部より操作片側の部位が右側へ移動し、ウィンカ操作部205において上記固定部より前方側の部位が左側へ移動する。このようにウィンカ操作部205が移動することによって、ウィンカ操作部205の上記前方側の部位が左コントローラ支持部203内部に装着された左コントローラ3に向かって移動し、ウィンカ操作部205の上記操作片側の部位が左コントローラ支持部203内部に装着された左コントローラ3から離れる方向に移動する。そして、図示−D方向に上記操作片を移動させる操作に応じて移動するウィンカ操作部205の一部が左コントローラ3の第1Lボタン38と当接するため、ウィンカ操作部205を図示−D方向に動かす操作によって第1Lボタン38を押下操作することができる。
このようにウィンカ操作部205は、上記操作片を左に動かすことによって左コントローラ3のZLボタン39を押下操作することができ、同じ操作片を右に動かすことによって左コントローラ3の第1Lボタン38を押下操作することができる。つまり、ウィンカ操作部205を動かす操作は、あたかもバイクのウィンカ操作を模したものとなり、アクセサリ200におけるウィンカ機構としてウィンカ操作部205を機能させることができる。そして、左コントローラ3のZLボタン39に対する押下操作を検出することによって、左方向を指示するユーザのウィンカ操作を検出することができ、左コントローラ3の第1Lボタン38に対する押下操作を検出することによって、右方向を指示するユーザのウィンカ操作を検出することができる。
次に、図18および図19を参照して、アクセサリ200の組立方法について説明する。なお、図18は、本体部202を組み立てるための厚紙部材の一部の一例を示す図である。図19は、左コントローラ支持部203および右コントローラ支持部204を組み立てるための厚紙部材の一部の一例を示す図である。なお、図18および図19においては、実線が厚紙部材から切り取る線を示し、破線が厚紙部材を山折りまたは谷折りにする線を示している。
図18および図19において、アクセサリ200における各構成部品は、厚紙部材を折り曲げることによって構成されている。なお、図18および図19に図示している部品は、アクセサリ200における各構成部品の一部を例示しているに過ぎず、図18および図19に図示していない構成部品についても厚紙部材を折り曲げることによって組み立てられる。また、本実施例における厚紙部材は、積層構造を有する板紙単体や複数の板紙を貼り合わせた部材であってよい。一例として、波状に成形した板紙の片面または両面に板紙を貼り合わせた、いわゆる段ボール部材であってもよい。
本体部202は、1枚の厚紙部材を立体形状に折り曲げることによって形成される。そして、本体部202は、その上面に本体装置固定部202aの側壁となる部材を差し込んで固定する等、本体部202を構成する各部品を組み込むことによって組み立てられる。また、左コントローラ支持部203および右コントローラ支持部204は、それぞれ角筒状に折り曲げることによって本体部分が組み立てられ、当該本体部分に左コントローラ支持部203および右コントローラ支持部204を構成する各部品を組み込むことによって組み立てられる。
図18に示すように、本体部202は、本体装置固定部202aの側壁となる部材等を貫装するための複数の貫装孔や軸受部202bの一部となる軸受孔等がそれぞれ形成された板材を折り曲げることによって組み立てられる。具体的には、上記板材は、厚紙部材によって構成され、本体部202を形成する立体形状に当該厚紙部材を折り曲げることによって、本体部202が組み立てられる。また、本体装置固定部202aの側壁部は、本体部202の貫装孔に差し込むための差し込み片等が形成された板材を折り曲げることによって組み立てられる。
また、図19に示すように、左コントローラ支持部203は、左コントローラ支持部203を構成する各構成部品を貫装するための複数の貫装孔、左コントローラ3を内部に固定するための内壁、左コントローラ3を内部に装着した後に閉じる端部の蓋等がそれぞれ形成された板材を、角筒状に折り曲げることによって組み立てられる右コントローラ支持部204は、右コントローラ支持部204を構成する各構成部品を貫装するための複数の貫装孔、右コントローラ4を内部に固定するための内壁、右コントローラ4を内部に装着した後に閉じる端部の蓋、軸受部202bに貫装される軸部等がそれぞれ形成された板材を、角筒状に折り曲げることによって組み立てられる。
そして、本体部202、左コントローラ支持部203、および右コントローラ支持部204等を組み合わせることによって、アクセサリ200が組み立てられる。このように、上述したアクセサリ200は、厚紙部材を折り曲げることによって組み立てられる各構成部品を組み合わせることによって構成されるため、板状の部材群を商品形態としてユーザが組み立てるような拡張操作装置を実現することができる。また、上述したように、アクセサリ200は、ユーザによる操作内容を検出したり、検出結果を本体装置2へ送信したりする電子回路等の電気的構成を必要としないため、上述したユーザ組立による商品として実現することが可能となる。
なお、上述した厚紙部材を折り曲げて多面体を形成する際の面同士の接合方法については、任意の方法でかまわない。例えば、当該面同士の接合辺を粘着テープで貼り合わせてもよいし、当該接合辺に差し込み辺および差し込み孔を形成して当該差し込みによって当該接合辺を接合してもよいし、当該接合辺同士を接着剤で接合してもよい。また、アクセサリ200を構成する各部品が厚紙部材で構成される例を用いたが、これらの各部品の少なくとも一部は、薄紙部材や他の材質の板材であってもよい。例えば、上記各部品の少なくとも一部は、樹脂製や木製や金属製の薄板材や厚板材を折り曲げることによって組み立てられてもよいし、帯状の繊維材で構成されてもよい。また、上述した弾性部材202cや弾性部材206aについては、金属材料やゴム、樹脂、セラミックス等の非金属材料の部材で構成されてもよい。また、上記各部品の一部に他の材質の部品が組み付けられていてもよい。例えば、他の部材が貫装される孔(例えば、軸受孔)は、当該部材の移動によって削られることが考えられるため、当該孔において他の部材と接触する部分に樹脂製等のリング部材やシート部材を挟入することが考えられる。また、上記各部品の少なくとも一部は、予め多面体形状の部品として形成されていてもよい。
次に、図20および図21を参照して、本実施形態において本体装置2で実行される具体的な処理の一例について説明する。図20は、本実施形態において本体装置2のDRAM85に設定されるデータ領域の一例を示す図である。なお、DRAM85には、図20に示すデータの他、他の処理で用いられるデータも記憶されるが、詳細な説明を省略する。
DRAM85のプログラム記憶領域には、本体装置2で実行される各種プログラムPaが記憶される。本実施形態においては、各種プログラムPaは、上述した左コントローラ3および右コントローラ4との間で無線通信するための通信プログラムや、左コントローラ3および/または右コントローラ4から取得したデータに基づいた情報処理(例えば、ゲーム処理)を行うためのアプリケーションプログラム、左コントローラ3および/または右コントローラ4を振動させるための振動制御プログラム等が記憶される。なお、各種プログラムPaは、フラッシュメモリ84に予め記憶されていてもよいし、ゲームシステム1に着脱可能な記憶媒体(例えば、スロット23に装着された記憶媒体)から取得されてDRAM85に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてDRAM85に記憶されてもよい。プロセッサ81は、DRAM85に記憶された各種プログラムPaを実行する。
また、DRAM85のデータ記憶領域には、本体装置2において実行される通信処理や情報処理等の処理において用いられる各種のデータが記憶される。本実施形態においては、DRAM85には、操作データDa、姿勢データDb、差分値データDc、オブジェクト動作データDd、移動速度/移動方向データDe、振動データDf、および画像データDg等が記憶される。
操作データDaは、左コントローラ3および/または右コントローラ4からそれぞれ適宜取得した操作データである。上述したように、左コントローラ3および/または右コントローラ4からそれぞれ送信される操作データには、各入力部(具体的には、各ボタン、アナログスティック、各センサ)からの入力に関する情報(具体的には、操作に関する情報、または、センサによる検出結果)が含まれている。本実施形態では、無線通信によって左コントローラ3および/または右コントローラ4からそれぞれ所定周期で操作データが送信されており、当該受信した操作データを用いて操作データDaが適宜更新される。なお、操作データDaの更新周期は、後述するゲームシステム1で実行される処理の周期である1フレーム毎に更新されてもよいし、上記無線通信によって操作データが送信される周期毎に更新されてもよい。具体的には、操作データDaは、ボタン操作データDa1、角速度データDa2、および加速度データDa3等を含んでいる。ボタン操作データDa1は、左コントローラ3および右コントローラ4の各ボタンやアナログスティックからの入力に関する情報を示すデータである。角速度データDa2は、左コントローラ3の角速度センサ105によって検出された左コントローラ3に生じている角速度に関する情報および右コントローラ4の角速度センサ115によって検出された右コントローラ4に生じている角速度に関する情報をそれぞれ示すデータである。例えば、角速度データDa2は、左コントローラ3や右コントローラ4にそれぞれ生じているxyz軸周りの角速度を示すデータ等を含んでいる。加速度データDa3は、左コントローラ4の加速度センサ104によって検出された左コントローラ3に生じている加速度に関する情報および右コントローラ4の加速度センサ114によって検出された右コントローラ4に生じている加速度に関する情報をそれぞれ示すデータである。例えば、加速度データDa3は、左コントローラ3および右コントローラ4にそれぞれ生じているxyz軸方向の加速度を示すデータ等を含んでいる。
姿勢データDbは、実空間における重力加速度の方向を基準とした左コントローラ3および右コントローラ4の姿勢をそれぞれ示すデータである。例えば、姿勢データDbは、左コントローラ3および右コントローラ4にそれぞれ作用している重力加速度の方向を示すデータや、当該重力加速度方向に対するxyz軸方向をそれぞれ示すデータ等を含んでいる。
差分値データDcは、ロール方向において、左コントローラ3および右コントローラ4の姿勢の差を示す差分値(例えば、角度の差)を示すデータである。
オブジェクト動作データDdは、仮想世界に配置されるプレイヤオブジェクトの動作に関するデータである。移動速度/移動方向データDeは、仮想世界に配置されるプレイヤオブジェクトの移動速度や移動方向を示すデータである。
振動データDfは、左コントローラ3および右コントローラ4を振動させるための振動を示すデータである。
画像データDgは、ゲームの際に表示装置(例えば、本体装置2のディスプレイ12)に画像(例えば、プレイヤオブジェクトの画像、他のオブジェクトの画像、背景画像等)を表示するためのデータである。
次に、本実施形態における情報処理(例えば、ゲーム処理)の詳細な一例を説明する。図21は、本体装置2で実行される情報処理の一例を示すフローチャートである。本実施形態においては、図21に示す一連の処理は、プロセッサ81が各種プログラムPaに含まれる通信プログラムや所定のアプリケーションプログラム(例えば、ゲームプログラム)を実行することによって行われる。また、図21に示す情報処理が開始されるタイミングは任意である。
なお、図21に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をプロセッサ81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、プロセッサ81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち、図21に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
図21において、プロセッサ81は、ゲーム処理における初期設定を行い(ステップS161)、次のステップに処理を進める。例えば、上記初期設定では、プロセッサ81は、以下に説明する処理を行うためのパラメータを初期化する。また、上記初期設定において、プロセッサ81は、本体装置2、左コントローラ3、および右コントローラ4が装着されているアクセサリ200(拡張操作装置)の種別や識別情報を必要に応じて設定する。例えば、本体装置2、左コントローラ3、または右コントローラ4を用いて、ユーザがアクセサリ200の種別を選択する操作を行うことによって、アクセサリ200の種別が初期設定されてもよい。
次に、プロセッサ81は、左コントローラ3および右コントローラ4から操作データをそれぞれ取得して操作データDaを更新し(ステップS162)、次のステップに処理を進める。例えば、プロセッサ81は、左コントローラ3および右コントローラ4からそれぞれ取得した操作データに応じて、ボタン操作データDa1、角速度データDa2、および加速度データDa3を更新する。
次に、プロセッサ81は、左コントローラ3および右コントローラ4に設けられている操作ボタンを用いた操作に応じて、オブジェクト動作を設定する処理を行い(ステップS163)、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS162で取得した操作データを用いて、左コントローラ3および右コントローラ4に設けられている操作ボタン(具体的には、左コントローラ3の第1Lボタン38およびZLボタン39と、右コントローラ4の第1Rボタン60およびZRボタン61)が押下操作されたか否かを判定する。そして、プロセッサ81は、第1Lボタン38が押下操作された場合、仮想空間において、プレイヤオブジェクトが左を方向指示する動作(例えば、プレイヤオブジェクトが乗るバイクの左ウィンカを点滅させる動作)を設定して、オブジェクト動作データDdを更新する。また、プロセッサ81は、ZLボタン39が押下操作された場合、仮想空間において、プレイヤオブジェクトが右を方向指示する動作(例えば、プレイヤオブジェクトが乗るバイクの右ウィンカを点滅させる動作)を設定して、オブジェクト動作データDdを更新する。また、プロセッサ81は、第1Rボタン60が押下操作された場合、仮想空間において、プレイヤオブジェクトの移動速度を減速(例えば、プレイヤオブジェクトが乗るバイクの移動速度を所定の負の加速度で減速)させる動作を設定して、オブジェクト動作データDdを更新する。さらに、プロセッサ81は、ZRボタン61が押下操作された場合、仮想空間において、プレイヤオブジェクトが乗る乗物のエンジンやモータを始動させる動作を設定して、オブジェクト動作データDdを更新する。
次に、プロセッサ81は、左コントローラ3および右コントローラ4の姿勢を算出し(ステップS164)、次のステップに処理を進める。例えば、プロセッサ81は、左コントローラ3に生じている加速度を示すデータを加速度データDa3から取得し、左コントローラ3に作用している重力加速度の方向を算出して、当該方向を示すデータを用いて左コントローラ3の姿勢データDbを更新する。重力加速度を抽出する方法については任意の方法を用いればよく、例えば左コントローラ3に平均的に生じている加速度成分を算出して当該加速度成分を重力加速度として抽出してもよい。そして、プロセッサ81は、左コントローラ3に生じている角速度を示すデータを角速度データDa2から取得し、左コントローラ3のxyz軸周りの角速度を算出して、当該角速度を示すデータを用いて重力加速度の方向を基準とした左コントローラ3のxyz軸方向を算出して左コントローラ3の姿勢データDbを更新する。また、プロセッサ81は、右コントローラ4に生じている加速度を示すデータを加速度データDa3から取得し、右コントローラ4に作用している重力加速度の方向を算出して、当該方向を示すデータを用いて右コントローラ4の姿勢データDbを更新する。そして、プロセッサ81は、右コントローラ4に生じている角速度を示すデータを角速度データDa2から取得し、右コントローラ4のxyz軸周りの角速度を算出して、当該角速度を示すデータを用いて重力加速度の方向を基準とした右コントローラ4のxyz軸方向を算出して右コントローラ4の姿勢データDbを更新する。
なお、左コントローラ3および右コントローラ4の姿勢については、重力加速度を基準としたxyz軸方向が算出された以降は、xyz各軸周りの角速度のみに応じて更新してもよい。しかしながら、左コントローラ3および右コントローラ4の姿勢と重力加速度の方向との関係が誤差の累積によってずれていくことを防止するために、所定周期毎に重力加速度の方向に対するxyz軸方向を算出して左コントローラ3および右コントローラ4の姿勢を補正してもよい。
次に、プロセッサ81は、左コントローラ3の姿勢と右コントローラ4の姿勢との差を示す差分値を算出し(ステップS165)、次のステップに処理を進める。例えば、プロセッサ81は、左コントローラ3および右コントローラ4の姿勢データDbを参照して、左コントローラ3の姿勢と右コントローラ4の姿勢とのロール方向における差を示す差分値を算出する。一例として、プロセッサ81は、左コントローラ3の実空間におけるx軸正方向(またはz軸正方向)と右コントローラ4の実空間におけるx軸正方向(またはz軸正方向)との角度の差を差分値として算出し、当該差分値を用いて差分値データDcを更新する。
次に、プロセッサ81は、上記ステップS165で算出した差分値に基づいて、移動速度を算出して(ステップS166)、次のステップに処理を進める。例えば、上記ステップS165において算出される差分値は、左コントローラ3の姿勢と右コントローラ4の姿勢とのロール方向における差を示すものであるため、右コントローラ固定部204を用いたアクセル操作が行われた場合に右コントローラ固定部204における図示A方向(図9、図12〜図15参照)への回動角度に応じて変化する。上記ステップS166では、このような差分値を用いてアクセル開度を算出し、走行勾配、走行抵抗、走行妨害有無、走行能力、ブレーキ操作の有無、および当該アクセル開度に応じて現時点の移動速度を変化させる。一例として、プロセッサ81は、移動速度/移動方向データDeを参照して現時点の移動速度を取得し、上記差分値が大きいほど移動速度が大きくなるように当該移動速度を加速させ、上記差分値が0の場合は所定の負の加速度で当該移動速度を減速させ、加減速後の移動速度を用いて移動速度/移動方向データDeを更新する。なお、アクセルを開く操作(すなわち、上記差分値が0より大きくなる操作)とブレーキ操作(すなわち、第1Rボタン60が押下される操作)とが重複している場合、何れか一方の操作のみが有効となるように移動速度を算出してもよいし、両方の操作による移動速度の変化を相殺して移動速度を算出してもよい。
また、上記ステップS166における移動速度の算出では、上記ステップS165で算出した差分値が所定の範囲内である場合にアクセル開度が0であると設定されてもよい。この場合、上記差分値が0より大きい場合であっても上記所定の範囲内である場合は所定の負の加速度で当該移動速度が減速することになる。このように上記差分値が0より大きい場合であってもアクセル開度が0となる範囲を設定することによって、右コントローラ4のロール方向の姿勢に対するキャリブレーションが容易になるとともに、付属装置200の経時変化による上記差分値の変化や左コントローラ3および右コントローラ4を付属装置200に装着する際の誤差を吸収することが可能となる。
次に、プロセッサ81は、左コントローラ3の姿勢に基づいて、プレイヤオブジェクトの姿勢または方向を設定し(ステップS167)、次のステップに処理を進める。例えば、プロセッサ81は、姿勢データDbが示す左コントローラ3の姿勢が、ピッチ方向への傾倒動作(アクセサリ200全体を左右に倒す操作)を示している場合、プレイヤオブジェクトの姿勢を左右に倒す動作を設定するとともに、当該左コントローラ3のピッチ方向への傾倒角度に応じて移動方向を当該傾倒方向へ変化させてオブジェクト動作データDd、および、移動速度および/または移動方向データDeを更新する。また、姿勢データDbが示す左コントローラ3の姿勢が、ヨー方向に回動する動作(アクセサリ200を用いたハンドル操作)を示している場合、ハンドルを切る動作にオブジェクト動作を設定するとともに、当該ヨー方向への回動角度に応じて移動方向を回動した方向へ変化させてオブジェクト動作データDd、および、移動速度および/または移動方向データDeを更新する。また、姿勢データDbが示す左コントローラ3の姿勢が、ロール方向に回動する動作(アクセサリ200全体を上下に向ける操作)である場合、当該ロール方向への回動角度に応じてプレイヤオブジェクトの姿勢を上下に倒す動作を設定するとともに、上方向への回動動作の場合にプレイヤオブジェクトの動作を当該回動角度に応じたウィリー動作に設定して、オブジェクト動作データDdを更新する。
なお、上記ステップS167の処理においては、左コントローラ3のピッチ方向への傾倒動作、ヨー方向の回動動作、およびロール方向の回動動作それぞれに基づいて、プレイヤオブジェクトの姿勢または方向を設定している。しかしながら、上記ステップS167の処理においては、ピッチ、ヨー、およびロール方向の少なくとも1つの動作に基づいて、プレイヤオブジェクトの姿勢または方向を設定する処理が実装されていればよい。
次に、プロセッサ81は、左コントローラ3および右コントローラ4をそれぞれ振動させるための振動データを生成して振動させる処理を行い(ステップS168)、次のステップに処理を進める。例えば、プロセッサ81は、プレイヤオブジェクトの種類、移動速度、移動方向、動作、仮想空間の状況等に応じた振動波形を生成し、振動波形に基づいて左コントローラ3を振動させるための振動データおよび右コントローラ4を振動させるための振動データを生成して、振動データDfを更新する。そして、プロセッサ81は、振動データを送信する周期毎に当該周期に対応する振動データを左コントローラ3および右コントローラ4へ送信する。例えば、プロセッサ81は、振動データDfを参照して、上記送信周期に対応する振動長さ分の振動データを左コントローラ3および右コントローラ4へ送信する。このように各コントローラ用の振動データが送信されることによって、当該振動データを受信した左コントローラ3および右コントローラ4は、それぞれの振動データに応じた振動波形で振動する。
次に、プロセッサ81は、ディスプレイ12にプレイヤオブジェクトが配置された仮想空間の画像を表示する処理を行い(ステップS169)、次のステップに処理を進める。例えば、プロセッサ81は、オブジェクト動作データDdおよび移動速度/移動方向データDeに基づいてプレイヤオブジェクトの姿勢、方向、動作、および位置等を変化させ、当該変化させた後の姿勢、方向、動作、および位置に基づいてプレイヤオブジェクトを仮想空間に配置する。そして、プロセッサ81は、所定の位置(例えば、プレイヤオブジェクトの背後の視点や第1人称視点)に配置された仮想カメラから、プレイヤオブジェクトが配置された仮想空間を見た仮想空間画像を生成し、当該仮想空間画像を本体装置11のディスプレイ12に表示する処理を行う。
次に、プロセッサ81は、ゲームを終了するか否かを判定する(ステップS170)。上記ステップS170においてゲームを終了する条件としては、例えば、上記ゲームを終了する条件が満たされたことや、ユーザがゲームを終了する操作を行ったこと等がある。プロセッサ81は、ゲームを終了しない場合に上記ステップS162に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。以降、ステップS162〜ステップS170の一連の処理は、ステップS170でゲームを終了すると判定されるまで繰り返し実行される。
このように、本実施例においては、拡張操作装置の一例であるアクセサリ200に対する操作内容は、付属装置200に装着された左コントローラ3および右コントローラ4の姿勢や操作ボタンへの押下操作に基づいて検出される。そのため、本実施例によれば、拡張操作装置の一例であるアクセサリ200の構成を簡易化することができる。また、本実施例においては、左コントローラ3の姿勢と右コントローラ4の姿勢との差分値や左コントローラ3の姿勢によって、アクセサリ200に対する様々な操作内容を検出することができるため、左コントローラ3および右コントローラ4の姿勢を用いた操作の多様性を向上させることができる。さらに、左コントローラ3および右コントローラ4がアクセサリ200に装着されることによって、左コントローラ3が本体部202に固定されるとともに右コントローラ4が本体部202に対してロール方向への回動のみ可能となる。したがって、左コントローラ3の姿勢と右コントローラ4の姿勢との差分値を算出するにあたっては、アクセサリ200に装着されることによって、本体部202に対する右コントローラ4のロール方向への回動動作のみを容易に抽出して当該動作の内容を推定することができる。
なお、左コントローラ3の姿勢と右コントローラ4の姿勢との差分値を0とする両者の姿勢の設定については、どのように設定してもよい。第1の例として、ゲーム処理が開始されて初期設定が行われる時点において、左コントローラ3の所定軸方向(例えば、x軸正方向およびz軸正方向の一方)と右コントローラ4の所定軸方向(例えば、左コントローラ3と同じx軸正方向およびz軸正方向の一方)との角度の差を0に初期化することによって、当該時点の左コントローラ3の姿勢と右コントローラ4の姿勢との関係が差分値0の状態に設定される。第2の例として、ユーザに所定の操作(例えば、右コントローラ固定部204を初期位置に戻す操作)を促している時点において、左コントローラ3の所定軸方向(例えば、x軸正方向およびz軸正方向の一方)と右コントローラ4の所定軸方向(例えば、左コントローラ3と同じx軸正方向およびz軸正方向の一方)との角度の差を0に初期化することによって、当該時点の左コントローラ3の姿勢と右コントローラ4の姿勢との関係が差分値0の状態に設定される。第3の例として、重力方向を基準として左コントローラ3の所定軸方向(例えば、x軸正方向およびz軸正方向の一方)と右コントローラ4の所定軸方向(例えば、左コントローラ3と同じx軸正方向およびz軸正方向の一方)とが同じ方向となる場合に、左コントローラ3の姿勢と右コントローラ4の姿勢との差分値が0に設定される。
また、上述した説明においては、右コントローラ4が図示+A方向(図9、図12〜図15参照)に回動する場合に、左コントローラ3の姿勢と右コントローラ4の姿勢との差分値が正の値となる例を用いたが、当該差分値が負の値となるものであってもよい。一例として、右コントローラ4が初期位置から図示+A方向だけでなく−A方向にも回動可能に構成されてもよく、この場合、左コントローラ3の姿勢と右コントローラ4の姿勢との差分値が負の値となる。他の例として、右コントローラ4だけでなく左コントローラ3も図示+A方向に回動可能であってもよく、この場合、左コントローラ3の姿勢と右コントローラ4の姿勢との差分値が負の値となることがあり得る。
また、上述した説明においては、左コントローラ3の姿勢と右コントローラ4の姿勢とのロール方向における差分値を用いる例を用いたが、他の方向における差分値を用いてもよい。例えば、左コントローラ3の姿勢と右コントローラ4の姿勢とのピッチ方向の差分値を用いてもよく、この場合、一方のコントローラのみが本体部202に対してピッチ方向へ回動可能に構成されてもよい。また、左コントローラ3の姿勢と右コントローラ4の姿勢とのヨー方向の差分値を用いてもよく、この場合、一方のコントローラのみが本体部202に対してヨー方向へ回動可能に構成されてもよい。さらに、左コントローラ3の姿勢と右コントローラ4の姿勢とのピッチ方向、ヨー方向、およびロール方向の少なくとも2つを組み合わせた方向の差分値を用いてもよく、一例として重力方向を基準としたピッチ方向、ヨー方向、およびロール方向それぞれの差分値を用いてもよい。
また、上述した説明では、左コントローラ支持部203の長手方向と右コントローラ支持部204の長手方向とが略同一直線上または略平行となる左右方向となるように、左コントローラ支持部203および右コントローラ支持部204が本体部202に設けられる例を用いたが、左コントローラ支持部203の長手方向と右コントローラ支持部204の長手方向とが異なる方向であってもよい。このように、左コントローラ支持部203の長手方向と右コントローラ支持部204の長手方向とが異なる方向である場合、実空間において左コントローラ3のy軸方向と右コントローラ4のy軸方向とが異なる方向に配置されることになるが、重力方向を基準とした両コントローラの姿勢を算出した後に両コントローラのx軸正方向やz軸正方向の角度の差を算出することによって、上述した処理と同様に差分値を算出することが可能となる。
また、上述した説明では、左コントローラ3の姿勢と右コントローラ4の姿勢との差分値を用いる例を用いたが、本体装置2の姿勢を基準とした差分値を用いてもよい。上述したように、本体装置2は、加速度センサ89および角速度センサ90を備えており、左コントローラ3および右コントローラ4と同様に付属装置200に取り付けられた状態で、重力方向を基準としたxyz軸方向を算出することが可能である。したがって、実空間における本体装置2のxyz軸方向の何れかを基準として、左コントローラ3および/または右コントローラ4のxyz軸方向の何れかとの差分値を用いることによって、上述した処理と同様に操作内容の検出が可能となる。
また、上述したように、左コントローラ支持部203に装着された左コントローラ3や右コントローラ支持部204に装着された右コントローラ4は、その一部が外部に露出してもよく、当該露出している操作部を用いたゲーム処理を加えてもよい。例えば、アナログスティック32やアナログスティック52が外部に露出している場合、アナログスティック32やアナログスティック52の傾倒操作に応じて、仮想オブジェクトや仮想カメラの仮想空間における位置や方向が変化してもよい。
また、上述した実施例において、左コントローラ3および右コントローラ4の動きや姿勢を検出する方法については、単なる一例であって、他の方法や他のデータを用いて左コントローラ3および右コントローラ4の動きや姿勢を検出してもよい。例えば、左コントローラ3および右コントローラ4の姿勢を、左コントローラ3および右コントローラ4にそれぞれ生じる角速度のみで算出、または左コントローラ3および右コントローラ4にそれぞれ生じる角速度と加速度とを組み合わせて算出しているが、左コントローラ3および右コントローラ4にそれぞれ生じる加速度のみで姿勢を算出してもかまわない。左コントローラ3および右コントローラ4にそれぞれ生じる加速度のみ検出する場合であっても、左コントローラ3および右コントローラ4にそれぞれ生じる重力加速度が生じている方向を算出可能であり、当該重力加速度を基準としたxyz軸方向を逐次算出すれば上述した実施例と同様の処理が可能であることは言うまでもない。また、上述した実施例では、左コントローラ3および右コントローラ4が装着されたアクセサリ200を用いた操作に応じたゲーム画像を本体装置2のディスプレイ12に表示しているが、クレードルを介して据置型モニタに表示してもよい。
また、本体装置2と左コントローラ3および右コントローラ4とは、どのような装置であってもよく、携帯型のゲーム装置、任意の携帯型電子機器(PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ、タブレット等)等であってもよい。
また、上述した説明では情報処理(ゲーム処理)を本体装置2でそれぞれ行う例を用いたが、上記処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、本体装置2がさらに他の装置(例えば、別のサーバ、他の画像表示装置、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した情報処理(ゲーム処理)は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、本体装置2のプロセッサ81が所定のプログラムを実行することによって情報処理を行うことが可能であるが、本体装置2が備える専用回路によって上記処理の一部または全部が行われてもよい。
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
また、上記プログラムは、外部メモリ等の外部記憶媒体を通じて本体装置2に供給されるだけでなく、有線または無線の通信回線を通じて当該装置に供給されてもよい。また、上記プログラムは、当該装置内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
以上のように、本発明は、姿勢を用いた操作の多様性を向上させることができるゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材等として利用することができる。
2…本体装置
3…左コントローラ
4…右コントローラ
11…ハウジング
12…ディスプレイ
38…第1Lボタン
39…ZLボタン
60…第1Rボタン
61…ZRボタン
81…プロセッサ
83…コントローラ通信部
85…DRAM
111…通信制御部
200…アクセサリ
201…支持部
202…本体部
203…左コントローラ固定部
204…右コントローラ固定部
205…ウィンカ操作部
206…ブレーキ操作部
207…セル操作部

Claims (30)

  1. 第1ジャイロセンサを備える第1ゲームコントローラと、第2ジャイロセンサを備える第2ゲームコントローラと、当該第1ゲームコントローラおよび当該第2ゲームコントローラを着脱可能なアクセサリと、所定のゲーム処理を実行するゲーム処理手段とを含むゲームシステムであって、
    前記アクセサリは、
    少なくとも所定の軸を中心に回動可能に前記第1ゲームコントローラを固定する第1固定部と、
    前記第2ゲームコントローラを固定する第2固定部とを含み、
    前記ゲームシステムは、
    前記第1固定部に固定された前記第1ゲームコントローラの前記第1ジャイロセンサからの出力に基づいて、当該第1ゲームコントローラの姿勢を示す第1の値を算出する第1算出手段と、
    前記第2固定部に固定された前記第2ゲームコントローラの前記第2ジャイロセンサからの出力に基づいて、当該第2ゲームコントローラの姿勢を示す第2の値を算出する第2算出手段と、
    前記第1の値と前記第2の値との差を示す差分値を算出する第3算出手段とを含み、
    前記ゲーム処理手段は、前記差分値に基づいて、所定の第1ゲーム処理を実行する第1ゲーム処理手段を含む、ゲームシステム。
  2. 前記ゲーム処理手段は、前記第1ゲームコントローラの姿勢または前記第2ゲームコントローラの姿勢に基づいて、前記第1ゲーム処理とは異なる第2ゲーム処理を実行する第2ゲーム処理手段を、さらに含む、請求項1に記載のゲームシステム。
  3. 前記第2ゲーム処理は、前記第1ゲームコントローラの姿勢および前記第2ゲームコントローラの姿勢の少なくとも一方に基づいて、所定のゲームオブジェクトの姿勢制御を行う処理である、請求項2に記載のゲームシステム。
  4. 前記第1ゲーム処理は、前記差分値に基づいて、前記姿勢制御とは異なる前記ゲームオブジェクトの動きの制御を行う処理である、請求項3に記載のゲームシステム。
  5. 前記第1ゲーム処理は、前記差分値に基づいて、前記ゲームオブジェクトの仮想空間における移動速度、加速度、および移動距離の少なくとも1つを制御する処理である、請求項4に記載のゲームシステム。
  6. 前記第2固定部は、前記第2ゲームコントローラが前記所定の軸と平行または略平行な方向の軸を中心に回動しないように当該第2ゲームコントローラを固定する、請求項1乃至5の何れか1つに記載のゲームシステム。
  7. 前記第1固定部は、前記第2固定部に固定された前記第2ゲームコントローラに対して、前記第1ゲームコントローラが前記所定の軸を中心に相対的に回動可能に当該第1ゲームコントローラを固定する、請求項1乃至5の何れか1つに記載のゲームシステム。
  8. 前記アクセサリは、前記第1固定部に固定された前記第1ゲームコントローラが前記所定の軸を中心とする第1方向へ回動した場合に、当該第1方向の逆方向へ回動するように付勢する付勢部を、さらに含む、請求項1乃至7の何れか1つに記載のゲームシステム。
  9. 前記アクセサリは、前記第1固定部に固定された前記第1ゲームコントローラが所定の第1角度を超えて前記第1方向の逆方向へ回動しないように回動を制限する第1回動制限部を、さらに含む、請求項8に記載のゲームシステム。
  10. 前記アクセサリは、前記第1固定部に固定された前記第1ゲームコントローラが所定の第2角度を超えて前記第1方向へ回動しないように回動を制限する第2回動制限部を、さらに含む、請求項9に記載のゲームシステム。
  11. 前記付勢部は、前記第1固定部に固定された前記第1ゲームコントローラが前記第1角度と前記第2角度との間の角度にある場合に、当該第1ゲームコントローラが前記第1角度に向かって回動するように付勢する、請求項10に記載のゲームシステム。
  12. 前記アクセサリは、表示画面を取り付け可能な本体部を、さらに含み、
    前記本体部は、前記表示画面取り付け位置の左右に第1側面および第2側面が形成され、
    前記第1固定部は、前記第1側面側に設けられ、
    前記第2固定部は、前記第2側面側に設けられる、請求項1乃至11の何れか1つに記載のゲームシステム。
  13. 前記アクセサリは、前記本体部を支持するための支持部を、さらに含み、
    前記本体部は、前記第1固定部および前記第2固定部とともに前記支持部を中心に回動可能である、請求項12に記載のゲームシステム。
  14. 前記アクセサリは、前記第1固定部および前記第2固定部をともに回動させる軸部を、さらに含む、請求項1乃至12の何れか1つに記載のゲームシステム。
  15. 前記第1固定部は、前記アクセサリの一方側に設けられ、
    前記第2固定部は、前記第1固定部の反対側となる前記アクセサリの他方側に設けられる、請求項1乃至14の何れか1つに記載のゲームシステム。
  16. 前記第1ゲームコントローラおよび前記第2ゲームコントローラは、それぞれ長手形状であって、
    前記第1固定部および前記第2固定部は、前記第1固定部に固定された前記第1ゲームコントローラの長手方向と前記第2固定部に固定された前記第2ゲームコントローラの長手方向とが平行または略平行となるように前記付属装置に設けられる、請求項1乃至15の何れか1つに記載のゲームシステム。
  17. 前記第1固定部および前記第2固定部は、それぞれの長手方向が前記付属装置において同一直線上または略同一直線上となるように設けられる、請求項1乃至16の何れか1つに記載のゲームシステム。
  18. 前記ゲーム処理手段と当該ゲーム処理手段による処理結果に基づいて生成されるゲーム画面を表示するための表示画面とを有するゲーム装置を、さらに含み、
    前記アクセサリは、前記ゲーム装置が着脱可能に固定されるゲーム装置固定部を、さらに含む、請求項1乃至17の何れか1つに記載のゲームシステム。
  19. 前記第1ゲームコントローラおよび前記第2ゲームコントローラの少なくとも一方は、第1ボタンを、さらに有し、
    前記アクセサリは、可動部を、さらに含み、
    前記可動部は、
    ユーザの手によって操作が可能な操作部と、
    前記操作部に対する操作に応じて前記第1ボタンに向かって動くことによって、前記第1固定部に固定された前記第1ゲームコントローラの前記第1ボタンまたは前記第2固定部に固定された前記第2ゲームコントローラの前記第1ボタンを押下可能な第1ボタン押下部とを含む、請求項1乃至18の何れか1つに記載のゲームシステム。
  20. 前記第1ゲームコントローラおよび前記第2ゲームコントローラの少なくとも一方は、第2ボタンを、さらに有し、
    前記可動部は、前記操作部に対する操作に応じて前記第2ボタンに向かって動くことによって、前記第1固定部に固定された前記第1ゲームコントローラの前記第2ボタンまたは前記第2固定部に固定された前記第2ゲームコントローラの前記第2ボタンを押下可能な第2ボタン押下部を含む、請求項19に記載のゲームシステム。
  21. 前記第1ボタン押下部は、前記操作部に対する操作に応じて当該操作部が所定の方向に動かされた場合に前記第1ボタンを押下し、
    前記第2ボタン押下部は、前記操作部に対する操作に応じて当該操作部が当該所定の方向とは異なる方向に動かされた場合に前記第2ボタンを押下する、請求項20に記載のゲームシステム。
  22. 第1ジャイロセンサを備える第1ゲームコントローラおよび第2ジャイロセンサを備える第2ゲームコントローラを着脱可能なアクセサリであって、
    少なくとも所定の軸を中心に回動可能に前記第1ゲームコントローラを固定する第1固定部と、
    前記第2ゲームコントローラを固定する第2固定部とを備える、アクセサリ。
  23. 前記第1固定部に固定された前記第1ゲームコントローラが前記所定の軸を中心とする第1方向へ回動した場合、当該第1方向の逆方向へ回動するように付勢する付勢部を、さらに備える、請求項22に記載のアクセサリ。
  24. 前記第1方向へ前記第1固定部に固定された前記第1ゲームコントローラが所定の第1角度を超えて前記第1方向の逆方向へ回動しないように回動を制限する第1回動制限部を、さらに備える、請求項23に記載のアクセサリ。
  25. 前記第1固定部および前記第2固定部は、少なくとも1枚の厚紙を折り曲げることによって形成可能に構成される、請求項22乃至24の何れか1つに記載のアクセサリ。
  26. 第1ジャイロセンサを備える第1ゲームコントローラと、第2ジャイロセンサを備える第2ゲームコントローラと、所定のゲーム処理を実行するゲーム処理手段とを含むゲームシステムであって、
    前記ゲームシステムは、
    前記第1ゲームコントローラの前記第1ジャイロセンサからの出力に基づいて、当該第1ゲームコントローラの姿勢を示す第1の値を算出する第1算出手段と、
    前記第2ゲームコントローラの前記第2ジャイロセンサからの出力に基づいて、当該第2ゲームコントローラの姿勢を示す第2の値を算出する第2算出手段と、
    前記第1の値と前記第2の値との差を示す差分値を算出する第3算出手段とを含み、
    前記ゲーム処理手段は、
    前記差分値に基づいて、所定の第1ゲーム処理を実行する第1ゲーム処理手段と、
    前記第1ゲームコントローラの姿勢または前記第2ゲームコントローラの姿勢に基づいて、前記第1ゲーム処理とは異なる第2ゲーム処理を実行する第2ゲーム処理手段とを含む、ゲームシステム。
  27. 第1ジャイロセンサを備える第1ゲームコントローラおよび第2ジャイロセンサを備える第2ゲームコントローラを用いてゲーム処理を行うゲーム装置に含まれるコンピュータで実行されるゲームプログラムであって、
    前記コンピュータを、
    前記第1ゲームコントローラの前記第1ジャイロセンサからの出力に基づいて、当該第1ゲームコントローラの姿勢を示す第1の値を算出する第1算出手段と、
    前記第2ゲームコントローラの前記第2ジャイロセンサからの出力に基づいて、当該第2ゲームコントローラの姿勢を示す第2の値を算出する第2算出手段と、
    前記第1の値と前記第2の値との差を示す差分値を算出する第3算出手段と、
    前記差分値に基づいて、所定の第1ゲーム処理を実行する第1ゲーム処理手段と、
    前記第1ゲームコントローラの姿勢または前記第2ゲームコントローラの姿勢に基づいて、前記第1ゲーム処理とは異なる第2ゲーム処理を実行する第2ゲーム処理手段として機能させる、ゲームプログラム。
  28. 第1ジャイロセンサを備える第1ゲームコントローラおよび第2ジャイロセンサを備える第2ゲームコントローラを用いてゲーム処理を行うゲーム装置であって、
    前記第1ゲームコントローラの前記第1ジャイロセンサからの出力に基づいて、当該第1ゲームコントローラの姿勢を示す第1の値を算出する第1算出手段と、
    前記第2ゲームコントローラの前記第2ジャイロセンサからの出力に基づいて、当該第2ゲームコントローラの姿勢を示す第2の値を算出する第2算出手段と、
    前記第1の値と前記第2の値との差を示す差分値を算出する第3算出手段と、
    前記差分値に基づいて、所定の第1ゲーム処理を実行する第1ゲーム処理手段と、
    前記第1ゲームコントローラの姿勢または前記第2ゲームコントローラの姿勢に基づいて、前記第1ゲーム処理とは異なる第2ゲーム処理を実行する第2ゲーム処理手段とを備える、ゲーム装置。
  29. 第1ジャイロセンサを備える第1ゲームコントローラおよび第2ジャイロセンサを備える第2ゲームコントローラを用いてゲーム処理を行うゲーム処理方法であって、
    前記第1ゲームコントローラの前記第1ジャイロセンサからの出力に基づいて、当該第1ゲームコントローラの姿勢を示す第1の値を算出する第1算出ステップと、
    前記第2ゲームコントローラの前記第2ジャイロセンサからの出力に基づいて、当該第2ゲームコントローラの姿勢を示す第2の値を算出する第2算出ステップと、
    前記第1の値と前記第2の値との差を示す差分値を算出する第3算出ステップと、
    前記差分値に基づいて、所定の第1ゲーム処理を実行する第1ゲーム処理ステップと、
    前記第1ゲームコントローラの姿勢または前記第2ゲームコントローラの姿勢に基づいて、前記第1ゲーム処理とは異なる第2ゲーム処理を実行する第2ゲーム処理ステップとを含む、ゲーム処理方法。
  30. 第1ジャイロセンサを備える第1ゲームコントローラおよび第2ジャイロセンサを備える第2ゲームコントローラを着脱可能なアクセサリを形成可能な厚紙部材であって、
    前記アクセサリは、
    少なくとも所定の軸を中心に回動可能に前記第1ゲームコントローラを固定する第1固定部と、
    前記第2ゲームコントローラを固定する第2固定部とを含み、
    前記第1固定部および前記第2固定部を有する前記アクセサリを、折り曲げることによって一体的に形成可能な、厚紙部材。
JP2019074847A 2019-04-10 2019-04-10 ゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材 Pending JP2019146975A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019074847A JP2019146975A (ja) 2019-04-10 2019-04-10 ゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019074847A JP2019146975A (ja) 2019-04-10 2019-04-10 ゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017145354A Division JP6544869B2 (ja) 2017-07-27 2017-07-27 ゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材

Publications (1)

Publication Number Publication Date
JP2019146975A true JP2019146975A (ja) 2019-09-05

Family

ID=67848959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019074847A Pending JP2019146975A (ja) 2019-04-10 2019-04-10 ゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材

Country Status (1)

Country Link
JP (1) JP2019146975A (ja)

Similar Documents

Publication Publication Date Title
JP6544869B2 (ja) ゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材
JP6843530B2 (ja) ゲームシステム、方法、およびゲームプログラム
US10350491B2 (en) Techniques for variable vibration waveform generation based on number of controllers
JP6877893B2 (ja) ゲーム装置、ゲームシステム、ゲームプログラム、および振り入力判定方法
JP6329210B2 (ja) 情報処理システム、ケース、および厚紙部材
JP6653293B2 (ja) 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法
EP3348313A1 (en) Vibration control system, vibration control apparatus, vibration control program and vibration control method
JP6650890B2 (ja) ゲームシステム、ゲームプログラム、情報処理装置およびゲーム制御方法
JP2018143261A (ja) ゲームシステム、ゲーム装置、ゲームプログラム、およびゲーム処理方法
US10118102B2 (en) Information processing system, information processing apparatus, storage medium having stored therein information processing program, and information processing method
US11045728B2 (en) Game system, non-transitory storage medium having stored therein game program, information processing apparatus, and game control method
JP6643191B2 (ja) ゲーム装置、ゲームプログラム、ゲームシステム、およびゲーム処理方法
JP6397543B1 (ja) 装置移動システム、装置、装置移動制御方法、装置移動制御プログラム、および厚紙部材
US10661163B2 (en) Video game with haptic signal that is disabled based on losing contact with a surface
JP2019146975A (ja) ゲームシステム、アクセサリ、ゲームプログラム、ゲーム装置、ゲーム処理方法、および厚紙部材
JP7248720B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
US10248209B2 (en) Storage medium having stored therein information processing program, information processing apparatus, information processing system, and information processing method
JP6829608B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP6693911B2 (ja) ゲーム装置、ゲームプログラム、ゲームシステム、およびゲーム処理方法
JP6973967B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP2018118129A (ja) 情報処理システム、ケース、および厚紙部材