コントローラ、画像処理システム、情報処理装置、情報処理プログラム、及び記憶媒体
【課題】現実世界に近い感覚で仮想空間内のオブジェクトを動かすことが可能なコントローラの提供。
【解決手段】コントローラ20は、右把持部21と左把持部22と連結部23とリニアセンサとCPUとを備える。右把持部21はプレイヤの右手で把持され、左把持部22はプレイヤの左手で把持される。連結部23は、右把持部21と左把持部22とを、両者の相対位置を変更可能に連結する。リニアセンサは、右把持部21と左把持部22との相対位置の変更量を検出する。CPUは、装置本体が形成する仮想空間の操作対象オブジェクトの動きをリニアセンサが検出する変更量に応じて指示する操作信号を生成して、装置本体へ送信させる。
【解決手段】コントローラ20は、右把持部21と左把持部22と連結部23とリニアセンサとCPUとを備える。右把持部21はプレイヤの右手で把持され、左把持部22はプレイヤの左手で把持される。連結部23は、右把持部21と左把持部22とを、両者の相対位置を変更可能に連結する。リニアセンサは、右把持部21と左把持部22との相対位置の変更量を検出する。CPUは、装置本体が形成する仮想空間の操作対象オブジェクトの動きをリニアセンサが検出する変更量に応じて指示する操作信号を生成して、装置本体へ送信させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えばビデオゲーム機などの情報処理装置、この情報処理装置との間で通信を行うコントローラ、画像処理システム、情報処理プログラム、及び記憶媒体に関する。
【背景技術】
【0002】
ビデオゲーム機との間で通信を行うコントローラとして、複数の操作ボタンを備えたコントローラが知られている。このコントローラを使用するプレイヤは、操作ボタンを押下することにより、ビデオゲーム機が表示画面に映し出す画像内のオブジェクトを操作することができる。
【0003】
また、特開平8−179884号公報には、左右の手中にそれぞれ把持可能な2つの把持部が屈曲可能に接続され、両把持部の屈曲の量及び方向を検出し、検出した屈曲の量及び方向によって、操作量及び操作方向が決定されるリモートコントローラが開示されている。このコントローラを使用するプレイヤは、2つの把持部を屈曲させることにより、画像内のオブジェクトを、上記操作ボタンを使用する場合とは異なる感覚で操作することができる。
【0004】
【特許文献1】特開平8−179884号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ここで、画像として表示される仮想空間内において、例えば手を表すオブジェクトを動かす場合、プレイヤが自分の手を動かすような感覚でコントローラを操作してオブジェクトを動かすことができれば、現実世界に近い感覚でコントローラを操作することが可能となる。
【0006】
しかし、上記従来のコントローラでは、操作ボタンの押下や2つの把持部の屈曲によってオブジェクトの移動を操作するため、現実世界に近い感覚でコントローラを操作することが難しかった。
【0007】
本発明は上述の課題に鑑みてなされたものであり、現実世界に近い感覚で仮想空間内のオブジェクトを動かすことが可能なコントローラの提供を目的とする。
【課題を解決するための手段】
【0008】
本発明は、情報処理装置との間で通信を行うコントローラであって、第1の把持部と第2の把持部と連結手段と検出手段と信号生成手段と送信手段とを備える。
【0009】
本発明の一態様において、情報処理装置は、所定のオブジェクトを含む仮想空間を形成する。第1の把持部は、ユーザの一方の手で把持される。第2の把持部は、ユーザの他方の手で把持される。連結手段は、第1の把持部と第2の把持部とを、両者の相対位置を変更可能に連結する。検出手段は、第1の把持部と第2の把持部との相対位置の変更量を検出する。信号生成手段は、検出手段が検出する変更量に基づく信号を生成する。送信手段は、信号生成手段が生成した信号を情報処理装置へ送信する。
【0010】
連結手段は、第1の把持部と第2の把持部とを主軸に沿って移動可能に連結する。検出手段は、第1の把持部と第2の把持部との間の主軸に沿った距離の変更量を検出する。信号生成手段は、検出手段が距離の変更量を検出したとき、第1の操作信号を生成する。第1の操作信号は、所定のオブジェクトの動きを、検出された距離の変更量に応じて指示する。
【発明の効果】
【0011】
本発明によれば、仮想空間のオブジェクトを動かす際に、現実世界の物を動かす手の動きに近い感覚でコントローラを操作することができる。
【発明を実施するための最良の形態】
【0012】
〔本実施形態のエンタテインメントシステムの概略構成〕
本発明の一実施形態としてのエンタテインメントシステムを図1に模式的に示す。
【0013】
このエンタテインメントシステムは、情報処理装置(ビデオゲーム機)の一例であるエンタテインメント装置(以下、装置本体と称する)10と、プレイヤ(ユーザ)によって操作される操作端末であるコントローラ20と、装置本体10から映像及び音声信号が供給されるモニタ装置(例えばテレビジョン受像機など)100とを備える。モニタ装置100は、装置本体10から供給された映像信号に基づいて画像を表示する画像表示部(表示画面)101を有する。
【0014】
装置本体10とコントローラ20との間では、通信により情報が送受信される。両者間の通信方法は、ケーブル13を介した有線接続による通信と無線による通信の何れでもよい。本実施形態のコントローラ20では、有線と無線の双方による通信が可能であり、装置本体10にコントローラ20が有線接続された状態では有線による通信が行われ、有線接続が解除された状態では、無線よる通信が行われる。
【0015】
図1の例において、装置本体10は、複数のコントローラポート11(本実施形態では、11A,11B,11C,11Dの4箇所)を有する。コントローラ20と装置本体10とをケーブル13によって有線接続する場合、ケーブル13の一端部に設けられた差込コネクタ12が装置本体10のコントローラポート11のうち任意の一つ(この例では11A)に差し込まれて電気的に接続され、他端部に設けられた差込コネクタ14がコントローラ20の接続ポート15に差し込まれて電気的に接続される。なお、他のコントローラポート11(この例では11B,11C,11D)を使用することにより、装置本体10は複数のコントローラ20との間で有線による同時接続が可能となる。装置本体10とコントローラ20との有線接続方式は、双方向にて通信可能であればよく、本実施形態では、USB(Universal Serial Bus)形式による接続(以下、USB接続と称する)を採用している。
【0016】
また、コントローラ20には、装置本体10の無線通信部(アンテナ)16との間で無線による情報の送受信を行う無線通信部(アンテナ)17がそれぞれ設けられている。両無線通信部16,17同士の通信方式としては、双方向にて無線通信可能であれば、ブルーツゥース(Bluetooth(登録商標))通信のような汎用の近距離高速無線通信方式や専用の近距離無線通信方式などのあらゆる通信方式の適用が可能である。本実施形態では、ブルーツゥース無線通信方式(以下、BT通信と称する)を採用している。
【0017】
装置本体10からの映像信号に基づいて3次元の仮想空間とその仮想空間内の所定のオブジェクトとを含む画像が画像表示部101に表示された状態で、ゲームのプレイヤが画像表示部101の画像を視ながらオブジェクトを動かすためにコントローラ20に対して所定の操作を行うと、コントローラ20から装置本体10に信号が送信される。装置本体10がコントローラ20から所定の信号を受信すると、装置本体10はコントローラ20からの信号に応じた映像信号を生成してモニタ装置100へ出力し、画像表示部101にはプレイヤの操作に応じて仮想空間内を動く所定のオブジェクト(以下、操作対象オブジェクト120と称する)が表示される。
【0018】
本実施形態において装置本体10が形成する仮想空間は、互いに直交するX軸(水平方向)とY軸(鉛直方向)とZ軸(奥行き方向)とによって規定される3次元空間である。また、仮想空間内の操作対象オブジェクト120は、コントローラ20からの信号に応じて、X軸方向、Y軸方向及びZ軸方向のそれぞれに沿った移動(以下の説明では、それぞれ並進X、並進Y及び並進Zと称する)と、X軸、Y軸及びZ軸にそれぞれ平行な軸を中心とした回転(以下の説明では、それぞれ回転X、回転Y及び回転Zと称する)とを行う。
【0019】
一つのコントローラ20から装置本体10に送信される信号は、上記並進X、並進Y、並進Z、回転X、回転Y及び回転Zという少なくとも6種類の異なる情報(操作信号)を含み、装置本体10側には、一つのコントローラ20に対して少なくとも6つの受信ポート(ポート番号1〜6)が設定されている。本実施形態では、図11に示すように、ポート番号1に並進Zの情報が、ポート番号2に並進Yの情報が、ポート番号3に回転Yの情報が、ポート番号4に回転Zの情報が、ポート番号5に並進Xの情報が、ポート番号6に回転Xの情報がそれぞれ割り当てられている。
【0020】
〔装置本体の外観〕
上記装置本体10には、上記コントローラポート11(11A〜11D)及び無線通信部16の他、図示は省略するが、半導体記憶素子などを内蔵するメモリカードが着脱自在とされるメモリカードスロット、ディスクトレイ、ディスクトレイをオープン又はクローズさせるオープン/クローズボタン、電源のオンやスタンバイ,リセットを行うためのオン/スタンバイ/リセットボタン、音声映像出力端子(AVマルチ出力端子)、PCカードスロット、光ディジタル出力端子、IEEE(Institute of Electrical and Electronics Engineers)1394接続端子、電源スイッチ、AC電源入力端子などが設けられている。
【0021】
また、装置本体10は、例えばいわゆるDVD−ROMやCD−ROM等のディスク媒体に記録されているビデオゲーム用のアプリケーションプログラムに基づいてビデオゲームを実行したり、例えばDVDビデオやCDに記録されたビデオデータ、オーディオデータを再生(デコード)可能なものである。
【0022】
なお、上記アプリケーションプログラムやビデオ、オーディオデータは、ディスク媒体に限らず、半導体メモリやテープ媒体から読み取られたもの、有線若しくは無線の広域或いは域内通信回線等により供給されたものであってもよい。
【0023】
〔装置本体の内部回路構成〕
図2には、上記装置本体10の主要な内部構成を示す。
【0024】
図2に示すように、装置本体10は、メインバス61とサブバス62とを有し、これらのバス61,62は、バスインターフェース63を介して互いに接続され又は切り離される。
【0025】
メインバス61には、メインCPU64と、RAMで構成されるメインメモリ65と、メインDMAC(Direct Memory Access Controller)66と、フレームメモリ67を内蔵する画像処理デバイス(GPU(Graphic Processing Unit))68が接続される。GPU68には、ビデオ出力信号を生成するための制御手段であるCRTC(CRT controller)69が接続される。ビデオ出力信号により、ケーブル等によって装置本体10と接続されている所定の表示装置(本実施形態では、モニタ装置100の画像表示部101)に画像が表示される。
【0026】
メインCPU64は、装置本体10の起動時にサブバス62上のROM70から、バスインターフェース63を介して起動プログラムを読み込み、その起動プログラムを実行してオペレーティングシステムを動作させる。また、メディアドライブ71を制御するとともに、このメディアドライブ71に装着されたメディア72からアプリケーションプログラムやデータを読み出し、これをメインメモリ65に記憶させる。さらに、メディア72から読み出した各種データ、例えば複数の基本図形(ポリゴン)で構成された3次元オブジェクトデータ(ポリゴンの頂点(代表点)の座標値など)に対して、ジオメトリ処理を行う。ジオメトリ処理によりポリゴン定義情報をその内容とするディスプレイリストを生成する。また、MPEG(Moving Picture Experts Group)方式あるいはJPEG(Joint Photographic Experts Group)方式等で圧縮されたデータを伸張する。つまりメインCPU64は、ソフトウェアにより情報を解読する情報解読機能を持つ。
【0027】
ポリゴン定義情報は、描画領域設定情報とポリゴン情報とからなる。描画領域設定情報は、描画領域のフレームバッファアドレスにおけるオフセット座標と、描画領域の外部にポリゴンの座標があった場合に、描画をキャンセルするための描画クリッピング領域の座標からなる。ポリゴン情報は、ポリゴン属性情報と頂点情報とからなり、ポリゴン属性情報は、シェーディングモード、αブレンディングモード、及びテクスチャマッピングモード等を指定する情報であり、頂点情報は、頂点描画領域内座標、頂点テクスチャ領域内座標、及び頂点色等の情報である。
【0028】
GPU68は、描画コンテクストを保持しており、メインCPU64から通知されるディスプレイリストに含まれる画像コンテクストの識別情報に基づいて該当する描画コンテクストを読み出し、これを用いてレンダリング処理を行い、フレームメモリ67にポリゴンを描画する。フレームメモリ67は、テクスチャメモリとしても使用できるため、フレームメモリ67上のピクセルイメージをテクスチャとして描画するポリゴンに貼り付けることができる。
【0029】
また、USB通信モジュール78又はBT通信モジュール79がコントローラ20から信号を受信すると、メインCPU64は、その受信信号に基づいてディスプレイリストを生成してGPU68へ出力する。
【0030】
メインDMAC66は、メインバス61に接続されている各回路を対象としてDMA転送制御を行うとともに、バスインターフェース63の状態に応じて、サブバス62に接続されている各回路を対象としてDMA転送制御を行う。
【0031】
サブバス62には、マイクロプロセッサなどで構成されるサブCPU73、RAMで構成されるサブメモリ74、サブDMAC75、オペレーティングシステムなどのプログラムが記憶されているROM70、サウンドメモリ76に蓄積された音データを読み出してオーディオ出力として出力する音声処理装置(SPU(Sound Processing Unit))77、USB接続ケーブルを介してコントローラ20との間で有線による情報の送受信を行うUSB通信モジュール78、BT通信を介してコントローラ20との間で無線による情報の送受信を行うBT通信モジュール79、所定のメディア72を装着するためのメディアドライブ71、及びキーボード80が接続されている。メディア72は、画像処理用のプログラムが記録されたCD−ROMやDVD−ROM等の記録媒体である。装置本体10は、この画像処理用のプログラムを読み取って実行することにより、所要のエンタテインメント処理を実行する。USB通信モジュール78は、コントローラポート11(図1に示す)を含み、BT通信モジュール79は、無線通信部16(図1に示す)を含む。
【0032】
サブCPU73は、ROM70に記憶されているプログラムに従って各種動作を行う。サブDMAC75は、バスインターフェース63がメインバス61とサブバス62を切り離している状態においてのみ、サブバス62に接続されている各回路を対象としてDMA転送などの制御を行う。
【0033】
〔コントローラの構造〕
図3〜図8を用いて、コントローラ20の構造を説明する。図3はコントローラ20の外観斜視図、図4はコントローラ20を図3の矢印IV方向から視た正面図、図5はコントローラ20を図3の矢印V方向から視た平面図、図6はコントローラ20の右把持部21を図3の矢印VI方向から視た背面図、図7はコントローラ20の内部構造を模式的に示す斜視図、図8はコントローラ20内のコイルバネ52〜55の配置を示す模式図である。
【0034】
図3〜図6に示すように、コントローラ20は、プレイヤの右手によって把持される右把持部21と、プレイヤの左手によって把持される左把持部22と、右把持部21と左把持部22とを連結する連結部23と、中央ケース体24とを備える。なお、装置本体10との間でUSB接続するための上記接続ポート15と、装置本体10との間でBT通信するための上記無線通信部17とは、中央ケース体24に設けられているが、図3〜図6ではその図示を省略している。
【0035】
右把持部21は、右手によって把持し易い長筒形状を有する中空の右ケース体25と、右ケース体25の内部に設けられ右ケース体25に対して固定されるベース体27(図7に示す)とを備える。同様に、左把持部22も、左手によって把持し易い長筒形状を有する中空の左ケース体26と、左ケース体26の内部に設けられ左ケース体26に対して固定されるベース体28(図7に示す)とを備える。
【0036】
なお、以下の説明において、左右方向、上下方向及び前後方向は、右把持部21(右ケース体25)と左把持部22(左ケース体26)とをほぼ鉛直方向に起立させた状態でコントローラ20を両手で把持したプレイヤにとっての左右方向(図中x軸と平行な方向)、上下方向(図中y1軸及びy2軸と平行な方向)及び前後方向(図中z1軸及びz2軸と平行な方向)をそれぞれ意味する。また、本実施形態では、x軸が主軸に、y1軸が第1の回転軸に、z1軸が第2の回転軸に、y2軸が第3の回転軸に、z2軸が第4の回転軸にそれぞれ相当する。
【0037】
右把持部21には、プレイヤの右手の親指により押下される第1の操作ボタン31と、右手の人差し指によって押下される第2の操作ボタン32と、右手の中指、薬指又は小指によって押指される第3の操作ボタン33とが設けられている。第1の操作ボタン31は、右ケース体25をプレイヤが把持した状態で右手の親指によって操作し易い位置である右ケース体25の一面側の表面上部に配置されている。第1の操作ボタン31は、右ケース体25の一面側の表面上部に配置され、第2及び第3の操作ボタン32,33は、右ケース体25の他面側の表面上部と表面中央部とにそれぞれ配置されている。すなわち、第1の操作ボタン31は、右ケース体25を把持する右手の親指によって操作し易い場所に位置し、第2の操作ボタン32は、右ケース体25を把持する右手の人差し指によって操作し易い場所に位置し、第3の操作ボタン33は、右ケース体25を把持する右手の中指、薬指又は小指の何れかによって操作し易い場所に位置する。これら第1〜第3の操作ボタン31,32,33には、例えばゲームキャラクタの機能の設定や実行など、ゲームアプリケーションによりそれぞれ異なる機能が割り付けられる。なお、第3の操作ボタン33に代えて、中指用の操作ボタンと薬指及び小指用の操作ボタンとを設けてもよい。また、右把持部21に代えて又は加えて、左把持部22にも左手の各指によって操作される操作ボタンを右把持部21と同様に設けてもよい。
【0038】
図7に示すように、連結部23は、右ケース体25(図3に示す)の内部でベース体27に支持される右連結機構(第1の連結機構)34と、左ケース体26(図3に示す)の内部でベース体28に支持される左連結機構(第2の連結機構)35と、右連結機構34と左連結機構35とを連結する中央連結機構(主連結機構)36とを備える。
【0039】
右連結機構34は、上回転軸37と下回転軸38と中央回転軸39と前回転軸40と後回転軸41と上下連結体42と前後連結体43とを備える。
【0040】
上回転軸37と下回転軸38と中央回転軸39とは、右ケース体25(図3に示す)の長手方向に延びて右ケース体25のほぼ中央を通るy1軸と同軸上に、上下に並んで配置されている。上回転軸37の上端部と下回転軸38の下端部とは、ベース体27に回転自在に支持されている。上回転軸37の下端部は上下連結体42の上部に固定され、下回転軸38の上端部は上下連結体42の下部に固定されている。中央回転軸39の上端と下端とは、前後連結体43の上部と下部とにそれぞれ回転自在に支持されている。前回転軸40と後回転軸41とは、右ケース体25(図3に示す)の前後方向に延びて右ケース体25のほぼ中央を通り且つy1軸と直交するz1軸と同軸上に、前後に並んで配置されている。前回転軸40の前端部と後回転軸41の後端部とは、ベース体27に回転自在に支持されている。前回転軸40の後端部は前後連結体43の前部に固定され、後回転軸41の前端部は前後連結体43の後部に固定されている。中央回転軸39の上下方向のほぼ中央には、y1軸及びz1軸と交叉する左方向へ延びる第1連結軸44の右端が固定され、第1連結軸44の左端部は、右ケース体25から突出している。上下連結体42には、第1連結軸44が挿通され、z1軸(前回転軸40及び後回転軸41)を中心とした第1連結軸44の回転を許容する上下方向に長穴状の軸挿通部45が設けられている。前後連結体43には、第1連結軸44が挿通され、y1軸(上回転軸37及び下回転軸38)を中心とした第1連結軸44の回転を許容する前後方向に長穴状の軸挿通部46が設けられている。
【0041】
右連結機構34が上記構造を有するため、第1連結軸44を固定した状態でy1軸を中心としてベース体27(右把持部21)を回転させると、ベース体27は上回転軸37及び下回転軸38に対して回転する。前後連結体43の軸挿通部46は、この回転に伴う前後連結体43(前回転軸40及び後回転軸41)のy1軸周りの回転を許容する。同様に、第1連結軸44を固定した状態でz1軸を中心としてベース体27(右把持部21)を回転させると、ベース体27は前回転軸40及び後回転軸41に対して回転する。上下連結体42の軸挿通部45は、この回転に伴う上下連結体42(上回転軸37及び下回転軸38)のz1軸周りの回転を許容する。
【0042】
また、右連結機構34が上記構造を有するため、y1軸とz1軸とは常に直交した状態に維持される。これに対し、第1連結軸44とy1軸との状態は、ベース体27を第1連結軸44に対してz1軸を中心として回転させることによって変わる。同様に、第1連結軸44とz1軸との状態は、ベース体27を第1連結軸44に対してy1軸を中心として回転させることによって変わる。後述するように、右ケース体25の内部には、第1連結軸44がy1軸及びz1軸の双方と直交するx軸と同軸上に位置するようにベース体27を付勢するコイルバネ54(図8に示す)が設けられている。
【0043】
左連結機構35は、対応する各構成が上記右連結機構34と左右対称に配置されている点を除き、右連結機構34とほぼ同一の構成を有するため、同一の符号を付して詳しい説明を省略する。なお、第1連結軸44、y1軸及びz1軸に対応する構成については、第2連結軸47、y2軸及びz2軸とそれぞれ称して右連結機構34と区別する。
【0044】
中央連結機構36は、上記第1連結軸44と上記第2連結軸47と中央ベース体48とを備える。
【0045】
中央ベース体48は、中央ケース体24(図3に示す)の内部に配置され、中央ケース体24を支持する。中央ベース体48は、左右方向に延びるベース部49と、ベース部49の右端部から延びる右支持部50と、ベース部49の左端部から延びる左支持部51とを有する。本実施形態では、左支持部51は、対向する2枚の板体によって構成されている。右支持部50は、第1連結軸44の左端部を回転自在に支持する。左支持部51は、第2連結軸47の右端側を左右方向にスライド移動自在に支持する。右支持部50と左支持部51とに支持された状態で、第1連結軸44と第2連結軸47とは同軸(x軸)上に位置する。
【0046】
図8に示すように、中央ケース体24の内部には、右支持部50に対する第1連結軸44の回転位置を予め定められた初期位置に付勢する複数の第1のコイルバネ52(付勢手段)と、左支持部51に対する第2連結軸47のスライド位置を予め定められた所定位置に付勢する複数の第2のコイルバネ53(付勢手段)とが設けられている。第1のコイルバネ52の一端は中央ベース体48に対して固定され、その他端は第1連結軸44に対して固定されている。また、第2のコイルバネ53の一端は中央ベース体48に対して固定され、その他端は第2連結軸47に対して固定されている。第1のコイルバネ52からの付勢力により、第1連結軸44に外部からの回転力が加えられていない初期状態では、第1連結軸44は右支持部50に対して予め定められた初期位置に設定される。また、第2のコイルバネ53からの付勢力により、第2連結軸47に外部からのスライド力が加えられていない初期状態では、第2連結軸47は右支持部50に対して予め定められた初期位置に設定される。
【0047】
右ケース体25及び左ケース体26の内部には、ベース体27,28に対する上回転軸37及び下回転軸38の回転位置と、ベース体27,28に対する前回転軸40及び後回転軸41の回転位置とを、予め定められた初期位置に付勢する第3及び第4のコイルバネ54,55(付勢手段)がそれぞれ複数設けられている。第3のコイルバネ54の一端はベース体27に対して固定され、その他端は第1連結軸44に対して固定されている。第4のコイルバネ55の一端はベース体28に対して固定され、その他端は第2連結軸47に対して固定されている。
【0048】
これらのコイルバネ52,53,54,55からの付勢力により、右把持部21及び左把持部22に外力が加えられていない初期状態では、右把持部21及び左把持部22が初期位置に設定される。かかる初期位置では、x軸とy1軸とz1軸とは互いに直交し、x軸とy2軸とz2軸とは互いに直交し、y1軸とy2軸とが平行となり、且つz1軸とz2軸とが平行となる。
【0049】
なお、中央連結機構36には、図4に示すように、第2連結軸47と平行に配置されて第2連結軸47のスライド移動を案内する2本のガイド軸56が設けられている。
【0050】
図7に示すように、中央ケース体24(図3に示す)の内部には、中央ベース体48に固定されて第2連結軸47の位置を検出するリニアセンサ91(距離変更量検出手段)と、第1連結軸44の回転角度を検出する第1の回転角センサ92(第5の角度変更量検出手段)とが設けられている。また、右ケース体25の内部には、下回転軸38(上回転軸37)の回転角度を検出する第2の回転角センサ93(第1の角度変更量検出手段)と、前回転軸40(後回転軸41)の回転角度を検出する第3の回転角センサ94(第2の角度変更量検出手段)とが設けられている。同様に、左ケース体26の内部には、下回転軸38(上回転軸37)の回転角度を検出する第4の回転角センサ95(第3の角度変更量検出手段)と、前回転軸40(後回転軸41)の回転角度を検出する第5の回転角センサ96(第4の角度変更量検出手段)とが設けられている。リニアセンサ91は、リニアポテンショエンコーダなどによって構成され、各回転角センサ92〜96は、ポテンショメータやエンコーダなどによって構成されている。
【0051】
リニアセンサ91からの検出値の変動量は、右把持部21と左把持部22との間のx軸に沿った距離の変更量に相当する。第1の回転角センサ92からの検出値の変動量は、右把持部21と左把持部22との間のx軸を中心とした角度の変更量に相当する。第2の回転角センサ93からの検出値の変動量は、右把持部21と中央連結機構36との間のy1軸を中心とした角度の変更量に相当する。第3の回転角センサ94からの検出値の変動量は、右把持部21と中央連結機構36との間のz1軸を中心とした角度の変更量に相当する。第4の回転角センサ95からの検出値の変動量は、左把持部22と中央連結機構36との間のy2軸を中心とした角度の変更量に相当する。第5の回転角センサ96からの検出値の変動量は、左把持部22と中央連結機構36との間のz2軸を中心とした角度の変更量に相当する。なお、本実施形態では、コントローラ20が初期位置に設定された状態での各センサ91〜96からの検出値がゼロに設定されているため、各センサ91〜96からの正負の符号を含む検出値がそのまま初期位置からの各変動量となる。
【0052】
また、中央連結機構36には、第2連結軸47に摺動抵抗(負荷)を付与して、第2連結軸47のスライド移動に要する外力を可変する負荷付与器97が設けられている。なお、このような負荷付与器97を、第1連結軸44、上回転軸37、下回転軸38、前回転軸40又は後回転軸41に対して適宜設けてもよい。
【0053】
さらに、図3に示すように、中央ケース体24には、電源ボタン57と、HOMEボタン58と、LED(表示部)59と、モード切替スイッチ60とが設けられている。電源ボタン57が押下される度に、コントローラ20の電源のON/OFF状態が切り替わる。HOMEボタン58は、装置本体10との間で通信を開始させる際の入力用及び画像表示部101へのメニュー画面の表示処理を装置本体10に開始させるための入力用として割り当てられている。また、モード切替スイッチ60は、コントローラ20を、右利き用として機能させるモード(以下、右モードと称する)と左利き用として機能させるモード(以下、左モードと称する)との切替用として割り当てられている。モード切替スイッチ60の摘み部60aを右側に設定することにより、コントローラ20が右モードに設定され、摘み部60aを左側に設定することにより、コントローラ20が左モードに設定される。なお、このような電源ボタン57、HOMEボタン58及びモード切替スイッチ60を別途設けず、第1〜第3の操作ボタン31〜33に上記機能を割り当ててもよい。
【0054】
〔コントローラの電気的構成〕
次に、図9に、コントローラ20の主要な電気的構成を示す。
【0055】
図9に示すように、コントローラ20は、CPU81と、ROM82と、RAM84と、バッテリ83と、操作入力部85と、LED59と、操作センサ86と、加速度センサ87と、負荷付与器97と、USB通信モジュール88と、BT通信モジュール89とを有し、これらはバス90を介して接続されている。操作入力部85とは、上記第1〜第3の操作ボタン31〜33、電源ボタン57、HOMEボタン58及びモード切替スイッチ60の総称である。また、操作センサ86とは、上記リニアセンサ91及び第1〜第5の回転角センサ92〜96の総称である。
【0056】
CPU81は、起動処理、操作信号生成処理、指示信号生成処理、信号出力処理、負荷制御処理及び表示制御処理などの所定の処理を実行する。
【0057】
起動処理では、コントローラ20の起動時にROM82から起動プログラムを読み込み、その起動プログラムを実行する。操作信号生成処理では、操作センサ86からの検出値に応じた操作信号を生成する。指示信号生成処理では、操作入力部85に対するプレイヤからの操作入力に応じて予め設定された指示信号を生成する。信号出力処理では、操作信号生成処理や指示信号生成処理で生成した信号をUSB通信モジュール88又はBT通信モジュール89から装置本体10へ送信させる。負荷制御処理では、USB通信モジュール88又はBT通信モジュール89が装置本体10から受信した負荷情報に応じて、負荷付与器97が第2連結軸47に対して付与する負荷を制御する。なお、操作信号生成処理及び負荷制御処理の詳細については、後述する。
【0058】
表示制御処理では、LED59を所定の発光状態に制御する。この表示制御処理には、モード表示制御処理が含まれる。モード表示制御処理では、コントローラ20が右モードと左モードとの何れに設定されているかによって、LED59の発光状態(例えば発光色)を変更させる。プレイヤは、LED59の発光状態を視ることによりコントローラ20が設定されているモードを認識し、必要に応じてモード切替スイッチ60を操作して、モードを切り替えることができる。
【0059】
USB通信モジュール88は、USB接続ケーブルを介して装置本体10との間で有線による情報の送受信を行い、BT通信モジュール89は、BT通信を介して装置本体10との間で無線による情報の送受信を行う。USB通信モジュール88は、接続ポート15(図1に示す)を含み、BT通信モジュール89は、無線通信部17(図1に示す)を含む。
【0060】
なお、コントローラ20と装置本体10との間を接続するUSBケーブル13(図1に示す)は電源供給線を含み、USB接続状態において、装置本体10は、電源供給線を介してコントローラ20の電源を供給すると共に、バッテリ83の充電を行う。
【0061】
加速度センサ87は、コントローラ20のx軸上に配置されて重力加速度を検出する。CPU81は、加速度センサ87の検出値を用いて、x軸を中心とした鉛直方向に対するy軸の傾き角(コントローラ20のx軸周りの傾斜角)を算出する。
【0062】
〔操作信号生成処理の説明〕
図10は、右把持部21と左把持部22と操作センサ86(各センサ91,92,93,94,95,96)との関係を示す模式図、図11は、右モード時と左モード時の各センサ91,92,93,94,95,96の役割(機能)を示す図である。
【0063】
この操作信号生成処理は、プレイヤからの入力に応じてコントローラ20を右モードと左モードとに選択的に切り替えて設定する処理(モード設定処理)を含む。以下の説明では、右モード時の信号生成処理について最初に説明し、左モード時については後述する。なお、コントローラ20に右モード及び左モード以外の他のモードを設けてもよい。この場合のモード設定処理では、右モード及び左モードを含む複数のモードのうち一つのモードが、プレイヤからの入力に応じて択一的に設定される。
【0064】
(右モード時の信号生成処理の基本的な説明)
図10に示すように、リニアセンサ91は、右把持部21と左把持部22との間のx軸に沿った相対的な位置を検出する。第1の回転角センサ92は、右把持部21と左把持部22との間のx軸を中心とした角度を検出する。第2の回転角センサ93は、右把持部21と中央連結機構36との間のy1軸を中心とした角度を検出する。第3の回転角センサ94は、右把持部21と中央連結機構36との間のz1軸を中心とした角度を検出する。第4の回転角センサ95は、左把持部22と中央連結機構36との間のy2軸を中心とした角度を検出する。第5の回転角センサ96は、左把持部22と中央連結機構36との間のz2軸を中心とした角度を検出する。なお、本実施形態では、コントローラ20が初期位置に設定された状態での各センサ91〜96からの検出値がゼロに設定されているため、各センサ91〜96からの検出値がそのまま初期位置からの各変動量となる。
【0065】
図10及び図11の上欄に示すように、右モード時には、y2軸周りの回転量を検出する第4の回転角センサ95は、並進Zに割り当てられ、CPU81は、第4の回転角センサ95の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10(図1に示す)のポート番号1へ出力させる。第4の回転角センサ95からの検出値が正方向への変動すると、装置本体10は、モニタ装置100(図1に示す)の画像表示部101(図1に示す)に表示された操作対象オブジェクト120(図1に示す)を、Z軸に沿って正方向へ移動表示させ、反対に負方向へ変動すると、Z軸に沿って負方向へ移動表示させる。
【0066】
z2軸周りの回転量を検出する第5の回転角センサ96は、並進Yに割り当てられ、CPU81は、第5の回転角センサ96の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号2へ出力させる。第5の回転角センサ96からの検出値が正方向への変動すると、装置本体10は、モニタ装置100の画像表示部101に表示された操作対象オブジェクト120を、Y軸に沿って正方向へ移動表示させ、反対に負方向へ変動すると、Y軸に沿って負方向へ移動表示させる。
【0067】
y1軸周りの回転量を検出する第2の回転角センサ93は、回転Yに割り当てられ、CPU81は、第2の回転角センサ93の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号3へ出力させる。第2の回転角センサ93からの検出値が正方向への変動すると、装置本体10は、モニタ装置100の画像表示部101に表示された操作対象オブジェクト120を、Y軸周り正方向へ回転表示させ、反対に負方向へ変動すると、Y軸周り負方向へ回転表示させる。
【0068】
z1軸周りの回転量を検出する第3の回転角センサ94は、回転Zに割り当てられ、CPU81は、第3の回転角センサ94の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号4へ出力させる。第3の回転角センサ94からの検出値が正方向への変動すると、装置本体10は、モニタ装置100の画像表示部101に表示された操作対象オブジェクト120を、Z軸周り正方向へ回転表示させ、反対に負方向へ変動すると、Z軸周り負方向へ回転表示させる。
【0069】
x軸に沿った移動量を検出するリニアセンサ91は、並進Xに割り当てられ、CPU81は、リニアセンサ91の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号5へ出力させる。リニアセンサ91からの検出値が正方向への変動すると、装置本体10は、モニタ装置100の画像表示部101に表示された操作対象オブジェクト120を、X軸に沿って正方向へ移動表示させ、反対に負方向へ変動すると、X軸に沿って負方向へ移動表示させる。
【0070】
x軸周りの回転量を検出する第1の回転角センサ92は、回転Xに割り当てられ、CPU81は、第1の回転角センサ91の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号6へ出力させる。第1の回転角センサ92からの検出値が正方向への変動すると、装置本体10は、モニタ装置100の画像表示部101に表示された操作対象オブジェクト120を、X軸周り正方向へ回転表示させ、反対に負方向へ変動すると、X軸周り負方向へ回転表示させる。
【0071】
また、リニアセンサ91及び各回転センサ92〜96の検出値の正方向は、右モード時にプレイヤの右手の動く方向に合わせて操作対象オブジェクト120が移動又は回転するように、予め設定されている。
【0072】
(右モード時のコントローラの操作と操作対象オブジェクトの動きとの関係)
次に、プレイヤによるコントローラ20の操作と操作対象オブジェクト120の動きとの関係について、図12〜図24に基づき説明する。なお、図13〜図24では、右把持部21及び操作対象オブジェクト120の後にそれぞれA,B,Cの符号を付すことにより、右把持部21の位置と操作対象オブジェクト120の表示位置との対応関係を表現している。また、本実施形態では、各センサ91〜96の検出値と仮想空間内の各軸(X軸、Y軸、Z軸)の座標位置や回転角度とが対応付けられたゲームプログラムを装置本体10が実行する場合の操作対象オブジェクト120の動きを例示している。なお、操作対象オブジェクト120の動きは、装置本体10が実行するプログラムによって様々である。例えば、各センサ91〜96の検出値のうち正負の符号が仮想空間内の各軸に沿った移動方向や各軸周りの回転方向に対応付けられ、検出値の絶対値が移動速度や回転速度に対応付けられているプログラムを装置本体10が実行する場合、操作対象オブジェクト120は本実施形態とは異なる動きを示す。
【0073】
図12に示すように、コントローラ20を操作するプレイヤは、右手130Rによって右把持部21を把持し、左手130Lによって左把持部22を把持する。また、操作開始時には、x軸、z1軸及びz2軸が略水平に、y1軸及びy2軸が略鉛直にそれぞれ設定されるように、右把持部21及び左把持部22を起立させた状態で、プレイヤはコントローラ20を把持する。このようにプレイヤによって把持されることにより、コントローラ20は基本操作状態となる。
【0074】
右利きのプレイヤは、操作対象オブジェクト120を動かす場合、コントローラ20を右モードに設定し、左把持部22が動かないように左手130Lを固定した状態で、右手130Rを動かして右把持部21を移動又は回転させる。
【0075】
操作対象オブジェクト120を仮想空間内でX方向に平行移動させる場合、図13及び図14に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右腕を全体的に左右方向に水平移動させ、右把持部21を左把持部22に対してx軸に沿って移動させる。この移動量は、リニアセンサ91(図10に示す)によって検出され、移動量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号5へ出力され、画像表示部101に表示された操作対象オブジェクト120が、Z軸に沿って平行移動する。
【0076】
例えば、図13に示すように、左把持部22に近接した右把持部21Aが、x軸に沿って右側(図13中矢印方向)へ移動し、中間位置(図13中符号21Bで示す)を経て右側位置(図13中符号21Cで示す)まで移動した場合、仮想空間の左側に位置する操作対象オブジェクト120Aは、図14に示すように、仮想空間で中央位置(図14中符号120Bで示す)を経て右側位置(図14中符号120Cで示す)までX軸に沿って平行移動する。すなわち、操作対象オブジェクト120は、プレイヤの右手130Rの左右方向への移動に伴って右手130Rと同方向に移動表示される。
【0077】
操作対象オブジェクト120を仮想空間内でY方向に平行移動させる場合、図15及び図16に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右腕を全体的に上下方向に移動させ、右把持部21及び中央連結機構36をz2軸を中心として回転移動させる。この回転量は、第5の回転センサ96(図10に示す)によって検出され、回転量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号2へ出力され、画像表示部101に表示された操作対象オブジェクト120が、Y軸に沿って平行移動する。
【0078】
例えば、図15に示すように、左把持部22に対して下方に位置した右把持部21Aが、z2軸を中心として上方(図15中矢印方向)へ回転移動し、中間位置(図15中符号21Bで示す)を経て上方位置(図15中符号21Cで示す)まで移動した場合、仮想空間の下方に位置する操作対象オブジェクト120Aは、仮想空間で中央位置(図16中符号120Bで示す)を経て上方位置(図16中符号120Cで示す)までY軸に沿って平行移動する。従って、操作対象オブジェクト120は、プレイヤの右手130Rの上下方向への移動に伴って右手130Rと同方向に移動表示される。
【0079】
操作対象オブジェクト120を仮想空間内でZ方向に平行移動させる場合、図17及び図18に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右腕を全体的に前後方向に移動させ、右把持部21及び中央連結機構36をy2軸を中心として回転移動させる。この回転量は、第4の回転センサ95(図10に示す)によって検出され、回転量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号1へ出力され、画像表示部101に表示された操作対象オブジェクト120が、Z軸に沿って平行移動する。
【0080】
例えば、図17に示すように、左把持部22に対して後方(プレイヤにとって手前側)に位置した右把持部21Aが、y2軸を中心として前方(図17中矢印方向)へ回転移動し、中間位置(図17中符号21Bで示す)を経てプレイヤから離れた奥側の前方位置(図17中符号21Cで示す)まで移動した場合、仮想空間の手前側に位置する操作対象オブジェクト120Aは、仮想空間で中央位置(図18中符号120Bで示す)を経て奥側の位置(図18中符号120Cで示す)までZ軸に沿って平行移動する。従って、操作対象オブジェクト120は、プレイヤの右手130Rの前後方向への移動に伴って右手130Rと同方向に移動表示される。
【0081】
操作対象オブジェクト120を仮想空間内でX軸周りに回転させる場合、図19及び図20に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右手首を回転させ、右把持部21をx軸を中心として回転させる。この回転量は、第1の回転センサ92(図10に示す)によって検出され、回転量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号6へ出力され、画像表示部101に表示された操作対象オブジェクト120が、X軸周りに回転する。
【0082】
例えば、図19に示すように、その上端が後方(プレイヤにとって手前側)に傾いて位置した右把持部21Aが、x軸を中心として正方向(図19中矢印方向)へ回転移動し、中間位置(図19中符号21Bで示す)を経てその上端が前方(プレイヤから離れた奥側)に傾く位置(図19中符号21Cで示す)まで移動した場合、仮想空間の操作対象オブジェクト120Aは、図20中符号120Bで示す位置を経て符号120Cで示す位置まで、右把持部21のx軸周りの回転と同方向にX軸周りに回転する。従って、操作対象オブジェクト120は、プレイヤの右手130Rの回転(右把持部21のx軸周りの回転)に伴って右手130Rの動きと同方向に回転表示される。
【0083】
操作対象オブジェクト120を仮想空間内でY軸周りに回転させる場合、図21及び図22に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右手首を回転させ、右把持部21をy1軸を中心として回転させる。この回転量は、第2の回転センサ93(図10に示す)によって検出され、回転量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号3へ出力され、画像表示部101に表示された操作対象オブジェクト120が、Y軸周りに回転する。
【0084】
例えば、図21に示すように、その左端が後方(プレイヤにとって手前側)に傾いて位置した右把持部21Aが、y1軸を中心として正方向(図21中矢印方向)へ回転移動し、中間位置(図21中符号21Bで示す)を経てその左端が前方(プレイヤから離れた奥側)に傾く位置(図21中符号21Cで示す)まで移動した場合、仮想空間の操作対象オブジェクト120Aは、図22中符号120Bで示す位置を経て符号120Cで示す位置まで、右把持部21のy1軸周りの回転と同方向にY軸周りに回転する。従って、操作対象オブジェクト120は、プレイヤの右手130Rの回転(右把持部21のy1軸周りの回転)に伴って右手130Rの動きと同方向に回転表示される。
【0085】
操作対象オブジェクト120を仮想空間内でZ軸周りに回転させる場合、図23及び図24に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右手首を回転させ、右把持部21をz1軸を中心として回転させる。この回転量は、第3の回転センサ94(図10に示す)によって検出され、回転量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号4へ出力され、画像表示部101に表示された操作対象オブジェクト120が、Z軸周りに回転する。
【0086】
例えば、図23に示すように、その上端がプレイヤにとって右側に傾いて位置した右把持部21Aが、z1軸を中心として正方向(図23中矢印方向)へ回転移動し、中間位置(図23中符号21Bで示す)を経てその上端がプレイヤにとって左側に傾く位置(図23中符号21Cで示す)まで移動した場合、仮想空間の操作対象オブジェクト120Aは、図24中符号120Bで示す位置を経て符号120Cで示す位置まで、右把持部21のz1軸周りの回転と同方向にZ軸周りに回転する。従って、操作対象オブジェクト120は、プレイヤの右手130Rの回転(右把持部21のz1軸周りの回転)に伴って右手130Rの動きと同方向に回転表示される。
【0087】
(左モード時の信号生成処理の基本的な説明)
次に、左モード時にCPU81が実行する操作信号生成処理について説明する。
【0088】
左利きのプレイヤは、操作対象オブジェクト120を移動表示させる場合、コントローラ20を左モードに設定し、右把持部21が動かないように右手130Rを固定した状態で、左手130Lを動かして左把持部22を移動又は回転させる。ここで、CPU81は、右モード時の左右の手の役割を入れ替え、右モード時の右手130Rと同様に左手130Lを動かすことによって操作対象オブジェクト120が移動するように、左モード時の操作信号を生成する。
【0089】
具体的には、図11の下欄に示すように、y1軸周りの回転量を検出する第2の回転角センサ93は、並進Zに割り当てられ、CPU81は、第2の回転角センサ93の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号1へ出力させる。
【0090】
z1軸周りの回転量を検出する第3の回転角センサ94は、並進Yに割り当てられ、CPU81は、第3の回転角センサ94の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号2へ出力させる。
【0091】
y2軸周りの回転量を検出する第4の回転角センサ95は、回転Yに割り当てられ、CPU81は、第4の回転角センサ95の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10(図1に示す)のポート番号3へ出力させる。
【0092】
z2軸周りの回転量を検出する第5の回転角センサ96は、回転Zに割り当てられ、CPU81は、第5の回転角センサ96の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号4へ出力させる。
【0093】
なお、x軸に沿った移動量を検出するリニアセンサ91とx軸周りの回転量を検出する第1の回転角センサ92とは、右モード時と同様に、並進Xと回転Xとにそれぞれ割り当てられる。
【0094】
また、リニアセンサ91及び各回転センサ92〜96の検出値の正方向は、右モード時にプレイヤの右手の動く方向に合わせて操作対象オブジェクト120が移動又は回転するように予め設定されている。このため、左モードと右モードとの間で各機能を割り当てる各センサ91〜96を上述のように変更しただけでは、左モード時においてプレイヤの左手の動く方向と逆方向に操作対象オブジェクト120が移動又は回転してしまう場合がある。
【0095】
例えば、左モード時の回転Yに第4の回転角センサ95を単に割り当てただけでは、プレイヤが左手130Lを回転させて左把持部22をy2軸周りに回転させた際に、操作対象オブジェクト120のY軸周りの回転方向がプレイヤの左手130Lの回転方向とは逆方向となり、プレイヤに違和感を与える。このような違和感を解消するため、本実施形態のCPU81は、左モード時には、第4の回転角センサ95からの検出値の正負を逆転させて(検出値+θを−θ、検出値−θを+θとして)処理し、操作信号を生成する。
【0096】
同様の理由から、CPU81は、左モード時には、第5の回転角センサ96と第1の回転センサ92とリニアセンサ91からの検出値についても、その正負を逆転させて処理し、操作信号を生成する。
【0097】
このように、本実施形態のコントローラ20では、プレイヤの利き手の動く方向に合わせて操作対象オブジェクト120が移動又は回転するので、仮想空間の操作対象オブジェクト120を動かす際に、現実世界の物を動かす際の手の動きに近い感覚でコントローラ20を操作することができる。
【0098】
また、右利きのプレイヤのための右モードと左利きのプレイヤのための左モードとを選択して設定可能であり、右モード時には右手130Rの動く方向に合わせて操作対象オブジェクト120が移動又は回転し、左モード時には左手130Lの動く方向に合わせて操作対象オブジェクト120が移動又は回転するので、右利きのプレイヤと左利きのプレイヤとが同じ感覚でコントローラ20を操作することができる。
【0099】
さらに、コントローラ20から出力される操作信号が右モード及び左モードに応じて生成されるので、装置本体10は、右モードと左モードとに関係なく共通した処理を実行すればよい。
【0100】
(コントローラの傾き補正の説明)
プレイヤは、コントローラ20の姿勢を任意に設定可能であり、図25(a)に示す起立状態のほか、例えば図25(b)に示すように、x軸周りに傾かせた傾斜状態でコントローラ20を操作する場合がある。なお、起立状態では、x軸とz1軸とz2軸が略水平に、y1軸及びy2軸が略鉛直にそれぞれ設定される。また上記傾斜状態では、x軸は略水平に設定されるが、z1軸とz2軸とは水平方向から傾き、且つy1軸及びy2軸は鉛直方向から傾く。このような起立状態と傾斜状態とでは、プレイヤにとってのコントローラ20の操作感が相違する。例えば、右モード時において、右把持部21をz2軸周りに回転させた場合の右把持部21の鉛直方向への移動量は、起立状態の方が傾斜状態よりも大きくなる。
【0101】
本実施形態のコントローラ20には、x軸周りのコントローラ20の傾き(傾斜角θ)を検出するための加速度センサ(重力センサ)87が設けられ、プレイヤがコントローラ20を起立状態からx軸周りに傾けて操作した場合、CPU81は、加速度センサ87からの検出値を用いて傾斜角θを算出し、算出した傾斜角θに基づく傾斜補正処理を実行し、起立状態での操作感との差を小さくしている。
【0102】
ここで、図26及び図27に示す移動量検出センサをモデルとして、傾斜補正の基本的な概念を説明する。
【0103】
このモデルでは、コントローラ20に上記加速度センサ87(図26(a)に示す)と移動量検出センサ102(図27(a)に示す)とが設けられている。コントローラ20のx軸周りの傾斜角θ(図26(b)に示す)は、加速度センサ86からの検出値を用いて算出される。移動量検出センサ102は、右把持部21に配置され、コントローラ20がx軸周りに傾斜していない状態(図26(a)に示すように、右把持部21及び左把持部(図示省略)が起立した状態)において、左把持部に対する右把持部21の前後方向zの移動量を検出する前後方向検出部M(図27(a)に示す)と鉛直方向yの移動量を検出する上下方向検出部N(図27(a)に示す)とを有する。
【0104】
コントローラ20がx軸周りに傾斜角θで傾いている状態で左把持部に対して右把持部21を移動させた場合、図27(b)に示すように前後方向検出部Mの検出値mと上下方向検出部Nの検出値nとは、それぞれ水平方向及び鉛直方向から傾斜角θ分傾くため、これらの検出値m,nは右把持部21の水平方向及び鉛直方向の移動量とは一致しない。
【0105】
そこで、前後方向検出部M及び上下方向検出部Nからの各検出値を、次式(1)(2)に従って補正する。
【0106】
補正後の前後方向検出部Mの検出値= mcosθ+nsinθ ・・・(1)
補正後の上下方向検出部Nの検出値=−msinθ+ncosθ ・・・(2)
なお、上式(1)(2)において、mは前後方向検出部Mの検出値、nは上下方向検出部Nの検出値、θはコントローラ20のx軸周りの傾斜角θである。また、上式(1)(2)は、図26及び図27の矢印方向を正とした場合の式である。
【0107】
本実施形態のCPU81は、上記傾斜補正の基本的な概念に基づき、傾斜補正処理を実行する。具体的には、第2の回転センサ93の実際の検出値φ2と第3の回転センサ94の実際の検出値φ3と傾斜角θとによって、第2の回転センサ93の検出値と第3の回転センサ94の検出値とを補正する。第2の回転センサ93の補正後の検出値は、上記(1)式のmにφ2をnにφ3をそれぞれ代入することにより算出され、第3の回転センサ94の補正後の検出値は、上記(2)式のmにφ2をnにφ3をそれぞれ代入することにより算出される。同様に、第4の回転センサ95の実際の検出値φ4と第5の回転センサ96の実際の検出値φ5と傾斜角θとによって、第4の回転センサ95の検出値と第5の回転センサ96の検出値とを補正する。第4の回転センサ95の補正後の検出値は、上記(1)式のmにφ4をnにφ5をそれぞれ代入することにより算出され、第5の回転センサ96の補正後の検出値は、上記(2)式のmにφ4をnにφ5をそれぞれ代入することにより算出される。CPU81は、補正後の検出値に基づいて操作信号を生成する。また、本実施形態では、右モード時と左モード時とでは、同じ傾斜補正処理が実行される。
【0108】
なお、本実施形態では、コントローラ20のx軸周りの傾きを検出するための加速度センサ86を設けたが、これに代えて又は加えて、コントローラ20のz1軸及びz2軸周りの傾きを検出するための加速度センサを設け、この加速度センサが検出する傾斜角に基づく傾斜補正処理をCPU81が実行してもよい。また、コントローラ20の傾斜角を、加速度センサ以外の手段によって検出してもよい。
【0109】
また、本実施形態では、上記傾斜補正処理をコントローラ20側で行っているが、これを装置本体10側で行ってもよい。この場合、コントローラ20は、各回転センサの実際の検出値を補正せずに装置本体10へ送信すると共に、加速度センサ87の検出値を装置本体10へ送信する。装置本体10では、コントローラ20から受信したこれらの検出値を用いて、装置本体10のメインCPU64やサブCPU73が上記傾斜補正処理を実行する。
【0110】
(操作センサの検出値の組み合わせ補正の説明)
右モード時において、操作対象オブジェクト120(図1に示す)を仮想空間内でZ方向に平行移動させる場合、プレイヤは、図28(a)に示す初期状態から、左把持部22(左手130L)を固定したまま、図28(b)に示すように、右把持部21をy2軸を中心として回転移動させる。このような操作により、操作対象オブジェクト120は、第4の回転角センサ95の検出値に応じて仮想空間内でZ方向に平行移動する。
【0111】
しかし、右把持部21はy1軸周りにも回転自在であるため、左把持部21をy1軸周りに回転させずにy2軸周りに回転させることはプレイヤにとって困難であり、無理のない自然な操作を行うと、図28(c)に示すように、右把持部21が前方(図中上方)に直線的に移動する。この場合、右把持部22がy1軸周りに回転するため、操作対象オブジェクト120は、プレイヤの意図に反して、第2の回転角センサ93の検出値に応じて仮想空間内でY軸周りに回転してしまう。
【0112】
本実施形態では、上記不都合を解消するため、CPU81は、第4の回転角センサ95の検出値θ1(図29に示す)の絶対値が予め定められた所定値以上となったとき、第2の回転角センサ93の実際の検出値から第4の回転角センサ95の検出値θ1を除算した値を第2の回転角センサ93の検出値として算出し、算出した補正後の検出値に基づいて操作信号を生成する。これにより、操作対象オブジェクト120がプレイヤの意図に反して動いてしまうことが抑制される。
【0113】
また、第4の回転角センサ95の検出値θ1の絶対値が予め定められた所定値以上となることを条件としているので、プレイヤが右把持部21をy2軸周りに積極的に回転させたい場合にのみ上記補正処理が実行される。すなわち、プレイヤが右把持部21をy1軸周りに積極的に回転させたい場合において、右把持部21がプレイヤの意図に反してy2軸周りに回転しても、第4の回転角センサ95の検出値θ1の絶対値が所定値未満であれば上記補正処理が実行されず、操作対象オブジェクト120はプレイヤの意図した分だけ仮想空間内でY軸周りに回転する。
【0114】
同様に、CPU81は、第3の回転角センサ94の検出値についても、第5の回転角センサ96の検出値を用いて、上記補正処理を行う。
【0115】
また、本実施形態では、上記補正処理をコントローラ20側で行っているが、これを装置本体10側で行ってもよい。この場合、コントローラ20は、各回転センサの実際の検出値を補正せずに装置本体10へ送信する。装置本体10では、コントローラ20から受信したこれらの検出値を用いて、装置本体10のメインCPU64やサブCPU73が上記傾斜補正処理を実行する。
【0116】
[負荷制御処理の説明]
CPU81は、USB通信モジュール88又はBT通信モジュール89が装置本体10から受信した負荷情報に応じて、負荷付与器97が第2連結軸47に対して付与する負荷を制御する。例えば、仮想空間が操作対象オブジェクト120(図1に示す)と柔らかな表面を有する接触対象オブジェクト(図示省略)とを含む場合、装置本体10は接触対象オブジェクトの表面の柔らかさに応じた負荷情報をコントローラ20に送信する。プレイヤからの操作によって操作対象オブジェクト120がX軸方向に沿って移動して接触対象オブジェクトに接触すると、CPU18は、受信した負荷情報に応じて、負荷付与器97が第2連結軸47に対して付与する負荷を制御する。これにより、プレイヤは、接触対象オブジェクトの表面の柔らかさを体感することができる。
【0117】
なお、上述の各実施の形態の説明は本発明の一例である。このため、本発明は上述の各実施の形態に限定されることはなく、本発明に係る技術的思想を逸脱しない範囲であれば、上述の実施の形態以外であっても種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【0118】
【図1】本発明の一実施形態としてのエンタテインメントシステムの概要を示す模式図である。
【図2】装置本体の主要な内部構成を示すブロック図である。
【図3】コントローラの外観斜視図である。
【図4】コントローラを図3の矢印IV方向から視た正面図である。
【図5】コントローラを図3の矢印V方向から視た平面図である。
【図6】コントローラの右把持部を図3の矢印VI方向から視た背面図である。
【図7】コントローラの内部構造を模式的に示す斜視図である。
【図8】コントローラ内のコイルバネの配置を示す模式図である。
【図9】コントローラの主要な電気的構成を示すブロック図である。
【図10】右把持部と左把持部と操作センサとの関係を示す模式図である。
【図11】右モード時と左モード時の各操作センサの機能を示す図である。
【図12】コントローラの操作開始時の状態を示す模式図である。
【図13】右把持部をx軸方向に移動させた状態を示す模式図である。
【図14】右把持部のx軸方向への移動に対応した操作対象オブジェクトの動きを示す模式図である。
【図15】右把持部をz2軸周りに回転させた状態を示す模式図である。
【図16】右把持部のz2軸周りの回転に対応した操作対象オブジェクトの動きを示す模式図である。
【図17】右把持部をy2軸周りに回転させた状態を示す模式図である。
【図18】右把持部のy2軸周りの回転に対応した操作対象オブジェクトの動きを示す模式図である。
【図19】右把持部をx軸周りに回転させた状態を示す模式図である。
【図20】右把持部のx軸周りの回転に対応した操作対象オブジェクトの動きを示す模式図である。
【図21】右把持部をy1軸周りに回転させた状態を示す模式図である。
【図22】右把持部のy1軸周りの回転に対応した操作対象オブジェクトの動きを示す模式図である。
【図23】右把持部をz1軸周りに回転させた状態を示す模式図である。
【図24】右把持部のz1軸周りの回転に対応した操作対象オブジェクトの動きを示す模式図である。
【図25】プレイヤがコントローラを把持した状態を模式的に示す斜視図であり、(a)はコントローラを起立させた状態を示し、(b)はコントローラを傾斜させた状態を示す。
【図26】傾斜補正を説明するためのモデルのコントローラを示す模式図であり、(a)はコントローラを起立させた状態を示し、(b)はコントローラを傾斜させた状態を示す。
【図27】傾斜補正を説明するためのモデルの移動量検出センサを示す模式図であり、(a)はコントローラを起立させた状態を示し、(b)はコントローラを傾斜させた状態を示す。
【図28】コントローラの操作状態を示す模式図であり、(a)は初期状態を示し、(b)は右把持部をy1軸周りの回転を生じさせずy2軸周りに回転させた状態を示し、(c)は右把持部をy1軸周りの回転を伴ってy2軸周りに回転させた状態を示す。
【図29】図28(c)の回転角センサを示す模式図である。
【符号の説明】
【0119】
10:装置本体、15:接続ポート、17:無線通信部、20:コントローラ、21:右把持部、22:左把持部、23:連結部、24:中央ケース体、25:右ケース体、26:左ケース体、27:ベース体、34:右連結機構、35:左連結機構、36:中央連結機構、48:中央ベース体、52:第1のコイルバネ、53:第2のコイルバネ、54:第3のコイルバネ、55:第4のコイルバネ、81:CPU、86:操作センサ、87:加速度センサ、91:リニアセンサ、92:第1の回転角センサ、93:第2の回転角センサ、94:第3の回転角センサ、95:第4の回転角センサ、96:第5の回転角センサ、97:負荷付与器、100:モニタ装置、101画像表示部、120:操作対象オブジェクト、130R:プレイヤの左手、130L:プレイヤの右手
【技術分野】
【0001】
本発明は、例えばビデオゲーム機などの情報処理装置、この情報処理装置との間で通信を行うコントローラ、画像処理システム、情報処理プログラム、及び記憶媒体に関する。
【背景技術】
【0002】
ビデオゲーム機との間で通信を行うコントローラとして、複数の操作ボタンを備えたコントローラが知られている。このコントローラを使用するプレイヤは、操作ボタンを押下することにより、ビデオゲーム機が表示画面に映し出す画像内のオブジェクトを操作することができる。
【0003】
また、特開平8−179884号公報には、左右の手中にそれぞれ把持可能な2つの把持部が屈曲可能に接続され、両把持部の屈曲の量及び方向を検出し、検出した屈曲の量及び方向によって、操作量及び操作方向が決定されるリモートコントローラが開示されている。このコントローラを使用するプレイヤは、2つの把持部を屈曲させることにより、画像内のオブジェクトを、上記操作ボタンを使用する場合とは異なる感覚で操作することができる。
【0004】
【特許文献1】特開平8−179884号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ここで、画像として表示される仮想空間内において、例えば手を表すオブジェクトを動かす場合、プレイヤが自分の手を動かすような感覚でコントローラを操作してオブジェクトを動かすことができれば、現実世界に近い感覚でコントローラを操作することが可能となる。
【0006】
しかし、上記従来のコントローラでは、操作ボタンの押下や2つの把持部の屈曲によってオブジェクトの移動を操作するため、現実世界に近い感覚でコントローラを操作することが難しかった。
【0007】
本発明は上述の課題に鑑みてなされたものであり、現実世界に近い感覚で仮想空間内のオブジェクトを動かすことが可能なコントローラの提供を目的とする。
【課題を解決するための手段】
【0008】
本発明は、情報処理装置との間で通信を行うコントローラであって、第1の把持部と第2の把持部と連結手段と検出手段と信号生成手段と送信手段とを備える。
【0009】
本発明の一態様において、情報処理装置は、所定のオブジェクトを含む仮想空間を形成する。第1の把持部は、ユーザの一方の手で把持される。第2の把持部は、ユーザの他方の手で把持される。連結手段は、第1の把持部と第2の把持部とを、両者の相対位置を変更可能に連結する。検出手段は、第1の把持部と第2の把持部との相対位置の変更量を検出する。信号生成手段は、検出手段が検出する変更量に基づく信号を生成する。送信手段は、信号生成手段が生成した信号を情報処理装置へ送信する。
【0010】
連結手段は、第1の把持部と第2の把持部とを主軸に沿って移動可能に連結する。検出手段は、第1の把持部と第2の把持部との間の主軸に沿った距離の変更量を検出する。信号生成手段は、検出手段が距離の変更量を検出したとき、第1の操作信号を生成する。第1の操作信号は、所定のオブジェクトの動きを、検出された距離の変更量に応じて指示する。
【発明の効果】
【0011】
本発明によれば、仮想空間のオブジェクトを動かす際に、現実世界の物を動かす手の動きに近い感覚でコントローラを操作することができる。
【発明を実施するための最良の形態】
【0012】
〔本実施形態のエンタテインメントシステムの概略構成〕
本発明の一実施形態としてのエンタテインメントシステムを図1に模式的に示す。
【0013】
このエンタテインメントシステムは、情報処理装置(ビデオゲーム機)の一例であるエンタテインメント装置(以下、装置本体と称する)10と、プレイヤ(ユーザ)によって操作される操作端末であるコントローラ20と、装置本体10から映像及び音声信号が供給されるモニタ装置(例えばテレビジョン受像機など)100とを備える。モニタ装置100は、装置本体10から供給された映像信号に基づいて画像を表示する画像表示部(表示画面)101を有する。
【0014】
装置本体10とコントローラ20との間では、通信により情報が送受信される。両者間の通信方法は、ケーブル13を介した有線接続による通信と無線による通信の何れでもよい。本実施形態のコントローラ20では、有線と無線の双方による通信が可能であり、装置本体10にコントローラ20が有線接続された状態では有線による通信が行われ、有線接続が解除された状態では、無線よる通信が行われる。
【0015】
図1の例において、装置本体10は、複数のコントローラポート11(本実施形態では、11A,11B,11C,11Dの4箇所)を有する。コントローラ20と装置本体10とをケーブル13によって有線接続する場合、ケーブル13の一端部に設けられた差込コネクタ12が装置本体10のコントローラポート11のうち任意の一つ(この例では11A)に差し込まれて電気的に接続され、他端部に設けられた差込コネクタ14がコントローラ20の接続ポート15に差し込まれて電気的に接続される。なお、他のコントローラポート11(この例では11B,11C,11D)を使用することにより、装置本体10は複数のコントローラ20との間で有線による同時接続が可能となる。装置本体10とコントローラ20との有線接続方式は、双方向にて通信可能であればよく、本実施形態では、USB(Universal Serial Bus)形式による接続(以下、USB接続と称する)を採用している。
【0016】
また、コントローラ20には、装置本体10の無線通信部(アンテナ)16との間で無線による情報の送受信を行う無線通信部(アンテナ)17がそれぞれ設けられている。両無線通信部16,17同士の通信方式としては、双方向にて無線通信可能であれば、ブルーツゥース(Bluetooth(登録商標))通信のような汎用の近距離高速無線通信方式や専用の近距離無線通信方式などのあらゆる通信方式の適用が可能である。本実施形態では、ブルーツゥース無線通信方式(以下、BT通信と称する)を採用している。
【0017】
装置本体10からの映像信号に基づいて3次元の仮想空間とその仮想空間内の所定のオブジェクトとを含む画像が画像表示部101に表示された状態で、ゲームのプレイヤが画像表示部101の画像を視ながらオブジェクトを動かすためにコントローラ20に対して所定の操作を行うと、コントローラ20から装置本体10に信号が送信される。装置本体10がコントローラ20から所定の信号を受信すると、装置本体10はコントローラ20からの信号に応じた映像信号を生成してモニタ装置100へ出力し、画像表示部101にはプレイヤの操作に応じて仮想空間内を動く所定のオブジェクト(以下、操作対象オブジェクト120と称する)が表示される。
【0018】
本実施形態において装置本体10が形成する仮想空間は、互いに直交するX軸(水平方向)とY軸(鉛直方向)とZ軸(奥行き方向)とによって規定される3次元空間である。また、仮想空間内の操作対象オブジェクト120は、コントローラ20からの信号に応じて、X軸方向、Y軸方向及びZ軸方向のそれぞれに沿った移動(以下の説明では、それぞれ並進X、並進Y及び並進Zと称する)と、X軸、Y軸及びZ軸にそれぞれ平行な軸を中心とした回転(以下の説明では、それぞれ回転X、回転Y及び回転Zと称する)とを行う。
【0019】
一つのコントローラ20から装置本体10に送信される信号は、上記並進X、並進Y、並進Z、回転X、回転Y及び回転Zという少なくとも6種類の異なる情報(操作信号)を含み、装置本体10側には、一つのコントローラ20に対して少なくとも6つの受信ポート(ポート番号1〜6)が設定されている。本実施形態では、図11に示すように、ポート番号1に並進Zの情報が、ポート番号2に並進Yの情報が、ポート番号3に回転Yの情報が、ポート番号4に回転Zの情報が、ポート番号5に並進Xの情報が、ポート番号6に回転Xの情報がそれぞれ割り当てられている。
【0020】
〔装置本体の外観〕
上記装置本体10には、上記コントローラポート11(11A〜11D)及び無線通信部16の他、図示は省略するが、半導体記憶素子などを内蔵するメモリカードが着脱自在とされるメモリカードスロット、ディスクトレイ、ディスクトレイをオープン又はクローズさせるオープン/クローズボタン、電源のオンやスタンバイ,リセットを行うためのオン/スタンバイ/リセットボタン、音声映像出力端子(AVマルチ出力端子)、PCカードスロット、光ディジタル出力端子、IEEE(Institute of Electrical and Electronics Engineers)1394接続端子、電源スイッチ、AC電源入力端子などが設けられている。
【0021】
また、装置本体10は、例えばいわゆるDVD−ROMやCD−ROM等のディスク媒体に記録されているビデオゲーム用のアプリケーションプログラムに基づいてビデオゲームを実行したり、例えばDVDビデオやCDに記録されたビデオデータ、オーディオデータを再生(デコード)可能なものである。
【0022】
なお、上記アプリケーションプログラムやビデオ、オーディオデータは、ディスク媒体に限らず、半導体メモリやテープ媒体から読み取られたもの、有線若しくは無線の広域或いは域内通信回線等により供給されたものであってもよい。
【0023】
〔装置本体の内部回路構成〕
図2には、上記装置本体10の主要な内部構成を示す。
【0024】
図2に示すように、装置本体10は、メインバス61とサブバス62とを有し、これらのバス61,62は、バスインターフェース63を介して互いに接続され又は切り離される。
【0025】
メインバス61には、メインCPU64と、RAMで構成されるメインメモリ65と、メインDMAC(Direct Memory Access Controller)66と、フレームメモリ67を内蔵する画像処理デバイス(GPU(Graphic Processing Unit))68が接続される。GPU68には、ビデオ出力信号を生成するための制御手段であるCRTC(CRT controller)69が接続される。ビデオ出力信号により、ケーブル等によって装置本体10と接続されている所定の表示装置(本実施形態では、モニタ装置100の画像表示部101)に画像が表示される。
【0026】
メインCPU64は、装置本体10の起動時にサブバス62上のROM70から、バスインターフェース63を介して起動プログラムを読み込み、その起動プログラムを実行してオペレーティングシステムを動作させる。また、メディアドライブ71を制御するとともに、このメディアドライブ71に装着されたメディア72からアプリケーションプログラムやデータを読み出し、これをメインメモリ65に記憶させる。さらに、メディア72から読み出した各種データ、例えば複数の基本図形(ポリゴン)で構成された3次元オブジェクトデータ(ポリゴンの頂点(代表点)の座標値など)に対して、ジオメトリ処理を行う。ジオメトリ処理によりポリゴン定義情報をその内容とするディスプレイリストを生成する。また、MPEG(Moving Picture Experts Group)方式あるいはJPEG(Joint Photographic Experts Group)方式等で圧縮されたデータを伸張する。つまりメインCPU64は、ソフトウェアにより情報を解読する情報解読機能を持つ。
【0027】
ポリゴン定義情報は、描画領域設定情報とポリゴン情報とからなる。描画領域設定情報は、描画領域のフレームバッファアドレスにおけるオフセット座標と、描画領域の外部にポリゴンの座標があった場合に、描画をキャンセルするための描画クリッピング領域の座標からなる。ポリゴン情報は、ポリゴン属性情報と頂点情報とからなり、ポリゴン属性情報は、シェーディングモード、αブレンディングモード、及びテクスチャマッピングモード等を指定する情報であり、頂点情報は、頂点描画領域内座標、頂点テクスチャ領域内座標、及び頂点色等の情報である。
【0028】
GPU68は、描画コンテクストを保持しており、メインCPU64から通知されるディスプレイリストに含まれる画像コンテクストの識別情報に基づいて該当する描画コンテクストを読み出し、これを用いてレンダリング処理を行い、フレームメモリ67にポリゴンを描画する。フレームメモリ67は、テクスチャメモリとしても使用できるため、フレームメモリ67上のピクセルイメージをテクスチャとして描画するポリゴンに貼り付けることができる。
【0029】
また、USB通信モジュール78又はBT通信モジュール79がコントローラ20から信号を受信すると、メインCPU64は、その受信信号に基づいてディスプレイリストを生成してGPU68へ出力する。
【0030】
メインDMAC66は、メインバス61に接続されている各回路を対象としてDMA転送制御を行うとともに、バスインターフェース63の状態に応じて、サブバス62に接続されている各回路を対象としてDMA転送制御を行う。
【0031】
サブバス62には、マイクロプロセッサなどで構成されるサブCPU73、RAMで構成されるサブメモリ74、サブDMAC75、オペレーティングシステムなどのプログラムが記憶されているROM70、サウンドメモリ76に蓄積された音データを読み出してオーディオ出力として出力する音声処理装置(SPU(Sound Processing Unit))77、USB接続ケーブルを介してコントローラ20との間で有線による情報の送受信を行うUSB通信モジュール78、BT通信を介してコントローラ20との間で無線による情報の送受信を行うBT通信モジュール79、所定のメディア72を装着するためのメディアドライブ71、及びキーボード80が接続されている。メディア72は、画像処理用のプログラムが記録されたCD−ROMやDVD−ROM等の記録媒体である。装置本体10は、この画像処理用のプログラムを読み取って実行することにより、所要のエンタテインメント処理を実行する。USB通信モジュール78は、コントローラポート11(図1に示す)を含み、BT通信モジュール79は、無線通信部16(図1に示す)を含む。
【0032】
サブCPU73は、ROM70に記憶されているプログラムに従って各種動作を行う。サブDMAC75は、バスインターフェース63がメインバス61とサブバス62を切り離している状態においてのみ、サブバス62に接続されている各回路を対象としてDMA転送などの制御を行う。
【0033】
〔コントローラの構造〕
図3〜図8を用いて、コントローラ20の構造を説明する。図3はコントローラ20の外観斜視図、図4はコントローラ20を図3の矢印IV方向から視た正面図、図5はコントローラ20を図3の矢印V方向から視た平面図、図6はコントローラ20の右把持部21を図3の矢印VI方向から視た背面図、図7はコントローラ20の内部構造を模式的に示す斜視図、図8はコントローラ20内のコイルバネ52〜55の配置を示す模式図である。
【0034】
図3〜図6に示すように、コントローラ20は、プレイヤの右手によって把持される右把持部21と、プレイヤの左手によって把持される左把持部22と、右把持部21と左把持部22とを連結する連結部23と、中央ケース体24とを備える。なお、装置本体10との間でUSB接続するための上記接続ポート15と、装置本体10との間でBT通信するための上記無線通信部17とは、中央ケース体24に設けられているが、図3〜図6ではその図示を省略している。
【0035】
右把持部21は、右手によって把持し易い長筒形状を有する中空の右ケース体25と、右ケース体25の内部に設けられ右ケース体25に対して固定されるベース体27(図7に示す)とを備える。同様に、左把持部22も、左手によって把持し易い長筒形状を有する中空の左ケース体26と、左ケース体26の内部に設けられ左ケース体26に対して固定されるベース体28(図7に示す)とを備える。
【0036】
なお、以下の説明において、左右方向、上下方向及び前後方向は、右把持部21(右ケース体25)と左把持部22(左ケース体26)とをほぼ鉛直方向に起立させた状態でコントローラ20を両手で把持したプレイヤにとっての左右方向(図中x軸と平行な方向)、上下方向(図中y1軸及びy2軸と平行な方向)及び前後方向(図中z1軸及びz2軸と平行な方向)をそれぞれ意味する。また、本実施形態では、x軸が主軸に、y1軸が第1の回転軸に、z1軸が第2の回転軸に、y2軸が第3の回転軸に、z2軸が第4の回転軸にそれぞれ相当する。
【0037】
右把持部21には、プレイヤの右手の親指により押下される第1の操作ボタン31と、右手の人差し指によって押下される第2の操作ボタン32と、右手の中指、薬指又は小指によって押指される第3の操作ボタン33とが設けられている。第1の操作ボタン31は、右ケース体25をプレイヤが把持した状態で右手の親指によって操作し易い位置である右ケース体25の一面側の表面上部に配置されている。第1の操作ボタン31は、右ケース体25の一面側の表面上部に配置され、第2及び第3の操作ボタン32,33は、右ケース体25の他面側の表面上部と表面中央部とにそれぞれ配置されている。すなわち、第1の操作ボタン31は、右ケース体25を把持する右手の親指によって操作し易い場所に位置し、第2の操作ボタン32は、右ケース体25を把持する右手の人差し指によって操作し易い場所に位置し、第3の操作ボタン33は、右ケース体25を把持する右手の中指、薬指又は小指の何れかによって操作し易い場所に位置する。これら第1〜第3の操作ボタン31,32,33には、例えばゲームキャラクタの機能の設定や実行など、ゲームアプリケーションによりそれぞれ異なる機能が割り付けられる。なお、第3の操作ボタン33に代えて、中指用の操作ボタンと薬指及び小指用の操作ボタンとを設けてもよい。また、右把持部21に代えて又は加えて、左把持部22にも左手の各指によって操作される操作ボタンを右把持部21と同様に設けてもよい。
【0038】
図7に示すように、連結部23は、右ケース体25(図3に示す)の内部でベース体27に支持される右連結機構(第1の連結機構)34と、左ケース体26(図3に示す)の内部でベース体28に支持される左連結機構(第2の連結機構)35と、右連結機構34と左連結機構35とを連結する中央連結機構(主連結機構)36とを備える。
【0039】
右連結機構34は、上回転軸37と下回転軸38と中央回転軸39と前回転軸40と後回転軸41と上下連結体42と前後連結体43とを備える。
【0040】
上回転軸37と下回転軸38と中央回転軸39とは、右ケース体25(図3に示す)の長手方向に延びて右ケース体25のほぼ中央を通るy1軸と同軸上に、上下に並んで配置されている。上回転軸37の上端部と下回転軸38の下端部とは、ベース体27に回転自在に支持されている。上回転軸37の下端部は上下連結体42の上部に固定され、下回転軸38の上端部は上下連結体42の下部に固定されている。中央回転軸39の上端と下端とは、前後連結体43の上部と下部とにそれぞれ回転自在に支持されている。前回転軸40と後回転軸41とは、右ケース体25(図3に示す)の前後方向に延びて右ケース体25のほぼ中央を通り且つy1軸と直交するz1軸と同軸上に、前後に並んで配置されている。前回転軸40の前端部と後回転軸41の後端部とは、ベース体27に回転自在に支持されている。前回転軸40の後端部は前後連結体43の前部に固定され、後回転軸41の前端部は前後連結体43の後部に固定されている。中央回転軸39の上下方向のほぼ中央には、y1軸及びz1軸と交叉する左方向へ延びる第1連結軸44の右端が固定され、第1連結軸44の左端部は、右ケース体25から突出している。上下連結体42には、第1連結軸44が挿通され、z1軸(前回転軸40及び後回転軸41)を中心とした第1連結軸44の回転を許容する上下方向に長穴状の軸挿通部45が設けられている。前後連結体43には、第1連結軸44が挿通され、y1軸(上回転軸37及び下回転軸38)を中心とした第1連結軸44の回転を許容する前後方向に長穴状の軸挿通部46が設けられている。
【0041】
右連結機構34が上記構造を有するため、第1連結軸44を固定した状態でy1軸を中心としてベース体27(右把持部21)を回転させると、ベース体27は上回転軸37及び下回転軸38に対して回転する。前後連結体43の軸挿通部46は、この回転に伴う前後連結体43(前回転軸40及び後回転軸41)のy1軸周りの回転を許容する。同様に、第1連結軸44を固定した状態でz1軸を中心としてベース体27(右把持部21)を回転させると、ベース体27は前回転軸40及び後回転軸41に対して回転する。上下連結体42の軸挿通部45は、この回転に伴う上下連結体42(上回転軸37及び下回転軸38)のz1軸周りの回転を許容する。
【0042】
また、右連結機構34が上記構造を有するため、y1軸とz1軸とは常に直交した状態に維持される。これに対し、第1連結軸44とy1軸との状態は、ベース体27を第1連結軸44に対してz1軸を中心として回転させることによって変わる。同様に、第1連結軸44とz1軸との状態は、ベース体27を第1連結軸44に対してy1軸を中心として回転させることによって変わる。後述するように、右ケース体25の内部には、第1連結軸44がy1軸及びz1軸の双方と直交するx軸と同軸上に位置するようにベース体27を付勢するコイルバネ54(図8に示す)が設けられている。
【0043】
左連結機構35は、対応する各構成が上記右連結機構34と左右対称に配置されている点を除き、右連結機構34とほぼ同一の構成を有するため、同一の符号を付して詳しい説明を省略する。なお、第1連結軸44、y1軸及びz1軸に対応する構成については、第2連結軸47、y2軸及びz2軸とそれぞれ称して右連結機構34と区別する。
【0044】
中央連結機構36は、上記第1連結軸44と上記第2連結軸47と中央ベース体48とを備える。
【0045】
中央ベース体48は、中央ケース体24(図3に示す)の内部に配置され、中央ケース体24を支持する。中央ベース体48は、左右方向に延びるベース部49と、ベース部49の右端部から延びる右支持部50と、ベース部49の左端部から延びる左支持部51とを有する。本実施形態では、左支持部51は、対向する2枚の板体によって構成されている。右支持部50は、第1連結軸44の左端部を回転自在に支持する。左支持部51は、第2連結軸47の右端側を左右方向にスライド移動自在に支持する。右支持部50と左支持部51とに支持された状態で、第1連結軸44と第2連結軸47とは同軸(x軸)上に位置する。
【0046】
図8に示すように、中央ケース体24の内部には、右支持部50に対する第1連結軸44の回転位置を予め定められた初期位置に付勢する複数の第1のコイルバネ52(付勢手段)と、左支持部51に対する第2連結軸47のスライド位置を予め定められた所定位置に付勢する複数の第2のコイルバネ53(付勢手段)とが設けられている。第1のコイルバネ52の一端は中央ベース体48に対して固定され、その他端は第1連結軸44に対して固定されている。また、第2のコイルバネ53の一端は中央ベース体48に対して固定され、その他端は第2連結軸47に対して固定されている。第1のコイルバネ52からの付勢力により、第1連結軸44に外部からの回転力が加えられていない初期状態では、第1連結軸44は右支持部50に対して予め定められた初期位置に設定される。また、第2のコイルバネ53からの付勢力により、第2連結軸47に外部からのスライド力が加えられていない初期状態では、第2連結軸47は右支持部50に対して予め定められた初期位置に設定される。
【0047】
右ケース体25及び左ケース体26の内部には、ベース体27,28に対する上回転軸37及び下回転軸38の回転位置と、ベース体27,28に対する前回転軸40及び後回転軸41の回転位置とを、予め定められた初期位置に付勢する第3及び第4のコイルバネ54,55(付勢手段)がそれぞれ複数設けられている。第3のコイルバネ54の一端はベース体27に対して固定され、その他端は第1連結軸44に対して固定されている。第4のコイルバネ55の一端はベース体28に対して固定され、その他端は第2連結軸47に対して固定されている。
【0048】
これらのコイルバネ52,53,54,55からの付勢力により、右把持部21及び左把持部22に外力が加えられていない初期状態では、右把持部21及び左把持部22が初期位置に設定される。かかる初期位置では、x軸とy1軸とz1軸とは互いに直交し、x軸とy2軸とz2軸とは互いに直交し、y1軸とy2軸とが平行となり、且つz1軸とz2軸とが平行となる。
【0049】
なお、中央連結機構36には、図4に示すように、第2連結軸47と平行に配置されて第2連結軸47のスライド移動を案内する2本のガイド軸56が設けられている。
【0050】
図7に示すように、中央ケース体24(図3に示す)の内部には、中央ベース体48に固定されて第2連結軸47の位置を検出するリニアセンサ91(距離変更量検出手段)と、第1連結軸44の回転角度を検出する第1の回転角センサ92(第5の角度変更量検出手段)とが設けられている。また、右ケース体25の内部には、下回転軸38(上回転軸37)の回転角度を検出する第2の回転角センサ93(第1の角度変更量検出手段)と、前回転軸40(後回転軸41)の回転角度を検出する第3の回転角センサ94(第2の角度変更量検出手段)とが設けられている。同様に、左ケース体26の内部には、下回転軸38(上回転軸37)の回転角度を検出する第4の回転角センサ95(第3の角度変更量検出手段)と、前回転軸40(後回転軸41)の回転角度を検出する第5の回転角センサ96(第4の角度変更量検出手段)とが設けられている。リニアセンサ91は、リニアポテンショエンコーダなどによって構成され、各回転角センサ92〜96は、ポテンショメータやエンコーダなどによって構成されている。
【0051】
リニアセンサ91からの検出値の変動量は、右把持部21と左把持部22との間のx軸に沿った距離の変更量に相当する。第1の回転角センサ92からの検出値の変動量は、右把持部21と左把持部22との間のx軸を中心とした角度の変更量に相当する。第2の回転角センサ93からの検出値の変動量は、右把持部21と中央連結機構36との間のy1軸を中心とした角度の変更量に相当する。第3の回転角センサ94からの検出値の変動量は、右把持部21と中央連結機構36との間のz1軸を中心とした角度の変更量に相当する。第4の回転角センサ95からの検出値の変動量は、左把持部22と中央連結機構36との間のy2軸を中心とした角度の変更量に相当する。第5の回転角センサ96からの検出値の変動量は、左把持部22と中央連結機構36との間のz2軸を中心とした角度の変更量に相当する。なお、本実施形態では、コントローラ20が初期位置に設定された状態での各センサ91〜96からの検出値がゼロに設定されているため、各センサ91〜96からの正負の符号を含む検出値がそのまま初期位置からの各変動量となる。
【0052】
また、中央連結機構36には、第2連結軸47に摺動抵抗(負荷)を付与して、第2連結軸47のスライド移動に要する外力を可変する負荷付与器97が設けられている。なお、このような負荷付与器97を、第1連結軸44、上回転軸37、下回転軸38、前回転軸40又は後回転軸41に対して適宜設けてもよい。
【0053】
さらに、図3に示すように、中央ケース体24には、電源ボタン57と、HOMEボタン58と、LED(表示部)59と、モード切替スイッチ60とが設けられている。電源ボタン57が押下される度に、コントローラ20の電源のON/OFF状態が切り替わる。HOMEボタン58は、装置本体10との間で通信を開始させる際の入力用及び画像表示部101へのメニュー画面の表示処理を装置本体10に開始させるための入力用として割り当てられている。また、モード切替スイッチ60は、コントローラ20を、右利き用として機能させるモード(以下、右モードと称する)と左利き用として機能させるモード(以下、左モードと称する)との切替用として割り当てられている。モード切替スイッチ60の摘み部60aを右側に設定することにより、コントローラ20が右モードに設定され、摘み部60aを左側に設定することにより、コントローラ20が左モードに設定される。なお、このような電源ボタン57、HOMEボタン58及びモード切替スイッチ60を別途設けず、第1〜第3の操作ボタン31〜33に上記機能を割り当ててもよい。
【0054】
〔コントローラの電気的構成〕
次に、図9に、コントローラ20の主要な電気的構成を示す。
【0055】
図9に示すように、コントローラ20は、CPU81と、ROM82と、RAM84と、バッテリ83と、操作入力部85と、LED59と、操作センサ86と、加速度センサ87と、負荷付与器97と、USB通信モジュール88と、BT通信モジュール89とを有し、これらはバス90を介して接続されている。操作入力部85とは、上記第1〜第3の操作ボタン31〜33、電源ボタン57、HOMEボタン58及びモード切替スイッチ60の総称である。また、操作センサ86とは、上記リニアセンサ91及び第1〜第5の回転角センサ92〜96の総称である。
【0056】
CPU81は、起動処理、操作信号生成処理、指示信号生成処理、信号出力処理、負荷制御処理及び表示制御処理などの所定の処理を実行する。
【0057】
起動処理では、コントローラ20の起動時にROM82から起動プログラムを読み込み、その起動プログラムを実行する。操作信号生成処理では、操作センサ86からの検出値に応じた操作信号を生成する。指示信号生成処理では、操作入力部85に対するプレイヤからの操作入力に応じて予め設定された指示信号を生成する。信号出力処理では、操作信号生成処理や指示信号生成処理で生成した信号をUSB通信モジュール88又はBT通信モジュール89から装置本体10へ送信させる。負荷制御処理では、USB通信モジュール88又はBT通信モジュール89が装置本体10から受信した負荷情報に応じて、負荷付与器97が第2連結軸47に対して付与する負荷を制御する。なお、操作信号生成処理及び負荷制御処理の詳細については、後述する。
【0058】
表示制御処理では、LED59を所定の発光状態に制御する。この表示制御処理には、モード表示制御処理が含まれる。モード表示制御処理では、コントローラ20が右モードと左モードとの何れに設定されているかによって、LED59の発光状態(例えば発光色)を変更させる。プレイヤは、LED59の発光状態を視ることによりコントローラ20が設定されているモードを認識し、必要に応じてモード切替スイッチ60を操作して、モードを切り替えることができる。
【0059】
USB通信モジュール88は、USB接続ケーブルを介して装置本体10との間で有線による情報の送受信を行い、BT通信モジュール89は、BT通信を介して装置本体10との間で無線による情報の送受信を行う。USB通信モジュール88は、接続ポート15(図1に示す)を含み、BT通信モジュール89は、無線通信部17(図1に示す)を含む。
【0060】
なお、コントローラ20と装置本体10との間を接続するUSBケーブル13(図1に示す)は電源供給線を含み、USB接続状態において、装置本体10は、電源供給線を介してコントローラ20の電源を供給すると共に、バッテリ83の充電を行う。
【0061】
加速度センサ87は、コントローラ20のx軸上に配置されて重力加速度を検出する。CPU81は、加速度センサ87の検出値を用いて、x軸を中心とした鉛直方向に対するy軸の傾き角(コントローラ20のx軸周りの傾斜角)を算出する。
【0062】
〔操作信号生成処理の説明〕
図10は、右把持部21と左把持部22と操作センサ86(各センサ91,92,93,94,95,96)との関係を示す模式図、図11は、右モード時と左モード時の各センサ91,92,93,94,95,96の役割(機能)を示す図である。
【0063】
この操作信号生成処理は、プレイヤからの入力に応じてコントローラ20を右モードと左モードとに選択的に切り替えて設定する処理(モード設定処理)を含む。以下の説明では、右モード時の信号生成処理について最初に説明し、左モード時については後述する。なお、コントローラ20に右モード及び左モード以外の他のモードを設けてもよい。この場合のモード設定処理では、右モード及び左モードを含む複数のモードのうち一つのモードが、プレイヤからの入力に応じて択一的に設定される。
【0064】
(右モード時の信号生成処理の基本的な説明)
図10に示すように、リニアセンサ91は、右把持部21と左把持部22との間のx軸に沿った相対的な位置を検出する。第1の回転角センサ92は、右把持部21と左把持部22との間のx軸を中心とした角度を検出する。第2の回転角センサ93は、右把持部21と中央連結機構36との間のy1軸を中心とした角度を検出する。第3の回転角センサ94は、右把持部21と中央連結機構36との間のz1軸を中心とした角度を検出する。第4の回転角センサ95は、左把持部22と中央連結機構36との間のy2軸を中心とした角度を検出する。第5の回転角センサ96は、左把持部22と中央連結機構36との間のz2軸を中心とした角度を検出する。なお、本実施形態では、コントローラ20が初期位置に設定された状態での各センサ91〜96からの検出値がゼロに設定されているため、各センサ91〜96からの検出値がそのまま初期位置からの各変動量となる。
【0065】
図10及び図11の上欄に示すように、右モード時には、y2軸周りの回転量を検出する第4の回転角センサ95は、並進Zに割り当てられ、CPU81は、第4の回転角センサ95の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10(図1に示す)のポート番号1へ出力させる。第4の回転角センサ95からの検出値が正方向への変動すると、装置本体10は、モニタ装置100(図1に示す)の画像表示部101(図1に示す)に表示された操作対象オブジェクト120(図1に示す)を、Z軸に沿って正方向へ移動表示させ、反対に負方向へ変動すると、Z軸に沿って負方向へ移動表示させる。
【0066】
z2軸周りの回転量を検出する第5の回転角センサ96は、並進Yに割り当てられ、CPU81は、第5の回転角センサ96の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号2へ出力させる。第5の回転角センサ96からの検出値が正方向への変動すると、装置本体10は、モニタ装置100の画像表示部101に表示された操作対象オブジェクト120を、Y軸に沿って正方向へ移動表示させ、反対に負方向へ変動すると、Y軸に沿って負方向へ移動表示させる。
【0067】
y1軸周りの回転量を検出する第2の回転角センサ93は、回転Yに割り当てられ、CPU81は、第2の回転角センサ93の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号3へ出力させる。第2の回転角センサ93からの検出値が正方向への変動すると、装置本体10は、モニタ装置100の画像表示部101に表示された操作対象オブジェクト120を、Y軸周り正方向へ回転表示させ、反対に負方向へ変動すると、Y軸周り負方向へ回転表示させる。
【0068】
z1軸周りの回転量を検出する第3の回転角センサ94は、回転Zに割り当てられ、CPU81は、第3の回転角センサ94の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号4へ出力させる。第3の回転角センサ94からの検出値が正方向への変動すると、装置本体10は、モニタ装置100の画像表示部101に表示された操作対象オブジェクト120を、Z軸周り正方向へ回転表示させ、反対に負方向へ変動すると、Z軸周り負方向へ回転表示させる。
【0069】
x軸に沿った移動量を検出するリニアセンサ91は、並進Xに割り当てられ、CPU81は、リニアセンサ91の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号5へ出力させる。リニアセンサ91からの検出値が正方向への変動すると、装置本体10は、モニタ装置100の画像表示部101に表示された操作対象オブジェクト120を、X軸に沿って正方向へ移動表示させ、反対に負方向へ変動すると、X軸に沿って負方向へ移動表示させる。
【0070】
x軸周りの回転量を検出する第1の回転角センサ92は、回転Xに割り当てられ、CPU81は、第1の回転角センサ91の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号6へ出力させる。第1の回転角センサ92からの検出値が正方向への変動すると、装置本体10は、モニタ装置100の画像表示部101に表示された操作対象オブジェクト120を、X軸周り正方向へ回転表示させ、反対に負方向へ変動すると、X軸周り負方向へ回転表示させる。
【0071】
また、リニアセンサ91及び各回転センサ92〜96の検出値の正方向は、右モード時にプレイヤの右手の動く方向に合わせて操作対象オブジェクト120が移動又は回転するように、予め設定されている。
【0072】
(右モード時のコントローラの操作と操作対象オブジェクトの動きとの関係)
次に、プレイヤによるコントローラ20の操作と操作対象オブジェクト120の動きとの関係について、図12〜図24に基づき説明する。なお、図13〜図24では、右把持部21及び操作対象オブジェクト120の後にそれぞれA,B,Cの符号を付すことにより、右把持部21の位置と操作対象オブジェクト120の表示位置との対応関係を表現している。また、本実施形態では、各センサ91〜96の検出値と仮想空間内の各軸(X軸、Y軸、Z軸)の座標位置や回転角度とが対応付けられたゲームプログラムを装置本体10が実行する場合の操作対象オブジェクト120の動きを例示している。なお、操作対象オブジェクト120の動きは、装置本体10が実行するプログラムによって様々である。例えば、各センサ91〜96の検出値のうち正負の符号が仮想空間内の各軸に沿った移動方向や各軸周りの回転方向に対応付けられ、検出値の絶対値が移動速度や回転速度に対応付けられているプログラムを装置本体10が実行する場合、操作対象オブジェクト120は本実施形態とは異なる動きを示す。
【0073】
図12に示すように、コントローラ20を操作するプレイヤは、右手130Rによって右把持部21を把持し、左手130Lによって左把持部22を把持する。また、操作開始時には、x軸、z1軸及びz2軸が略水平に、y1軸及びy2軸が略鉛直にそれぞれ設定されるように、右把持部21及び左把持部22を起立させた状態で、プレイヤはコントローラ20を把持する。このようにプレイヤによって把持されることにより、コントローラ20は基本操作状態となる。
【0074】
右利きのプレイヤは、操作対象オブジェクト120を動かす場合、コントローラ20を右モードに設定し、左把持部22が動かないように左手130Lを固定した状態で、右手130Rを動かして右把持部21を移動又は回転させる。
【0075】
操作対象オブジェクト120を仮想空間内でX方向に平行移動させる場合、図13及び図14に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右腕を全体的に左右方向に水平移動させ、右把持部21を左把持部22に対してx軸に沿って移動させる。この移動量は、リニアセンサ91(図10に示す)によって検出され、移動量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号5へ出力され、画像表示部101に表示された操作対象オブジェクト120が、Z軸に沿って平行移動する。
【0076】
例えば、図13に示すように、左把持部22に近接した右把持部21Aが、x軸に沿って右側(図13中矢印方向)へ移動し、中間位置(図13中符号21Bで示す)を経て右側位置(図13中符号21Cで示す)まで移動した場合、仮想空間の左側に位置する操作対象オブジェクト120Aは、図14に示すように、仮想空間で中央位置(図14中符号120Bで示す)を経て右側位置(図14中符号120Cで示す)までX軸に沿って平行移動する。すなわち、操作対象オブジェクト120は、プレイヤの右手130Rの左右方向への移動に伴って右手130Rと同方向に移動表示される。
【0077】
操作対象オブジェクト120を仮想空間内でY方向に平行移動させる場合、図15及び図16に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右腕を全体的に上下方向に移動させ、右把持部21及び中央連結機構36をz2軸を中心として回転移動させる。この回転量は、第5の回転センサ96(図10に示す)によって検出され、回転量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号2へ出力され、画像表示部101に表示された操作対象オブジェクト120が、Y軸に沿って平行移動する。
【0078】
例えば、図15に示すように、左把持部22に対して下方に位置した右把持部21Aが、z2軸を中心として上方(図15中矢印方向)へ回転移動し、中間位置(図15中符号21Bで示す)を経て上方位置(図15中符号21Cで示す)まで移動した場合、仮想空間の下方に位置する操作対象オブジェクト120Aは、仮想空間で中央位置(図16中符号120Bで示す)を経て上方位置(図16中符号120Cで示す)までY軸に沿って平行移動する。従って、操作対象オブジェクト120は、プレイヤの右手130Rの上下方向への移動に伴って右手130Rと同方向に移動表示される。
【0079】
操作対象オブジェクト120を仮想空間内でZ方向に平行移動させる場合、図17及び図18に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右腕を全体的に前後方向に移動させ、右把持部21及び中央連結機構36をy2軸を中心として回転移動させる。この回転量は、第4の回転センサ95(図10に示す)によって検出され、回転量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号1へ出力され、画像表示部101に表示された操作対象オブジェクト120が、Z軸に沿って平行移動する。
【0080】
例えば、図17に示すように、左把持部22に対して後方(プレイヤにとって手前側)に位置した右把持部21Aが、y2軸を中心として前方(図17中矢印方向)へ回転移動し、中間位置(図17中符号21Bで示す)を経てプレイヤから離れた奥側の前方位置(図17中符号21Cで示す)まで移動した場合、仮想空間の手前側に位置する操作対象オブジェクト120Aは、仮想空間で中央位置(図18中符号120Bで示す)を経て奥側の位置(図18中符号120Cで示す)までZ軸に沿って平行移動する。従って、操作対象オブジェクト120は、プレイヤの右手130Rの前後方向への移動に伴って右手130Rと同方向に移動表示される。
【0081】
操作対象オブジェクト120を仮想空間内でX軸周りに回転させる場合、図19及び図20に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右手首を回転させ、右把持部21をx軸を中心として回転させる。この回転量は、第1の回転センサ92(図10に示す)によって検出され、回転量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号6へ出力され、画像表示部101に表示された操作対象オブジェクト120が、X軸周りに回転する。
【0082】
例えば、図19に示すように、その上端が後方(プレイヤにとって手前側)に傾いて位置した右把持部21Aが、x軸を中心として正方向(図19中矢印方向)へ回転移動し、中間位置(図19中符号21Bで示す)を経てその上端が前方(プレイヤから離れた奥側)に傾く位置(図19中符号21Cで示す)まで移動した場合、仮想空間の操作対象オブジェクト120Aは、図20中符号120Bで示す位置を経て符号120Cで示す位置まで、右把持部21のx軸周りの回転と同方向にX軸周りに回転する。従って、操作対象オブジェクト120は、プレイヤの右手130Rの回転(右把持部21のx軸周りの回転)に伴って右手130Rの動きと同方向に回転表示される。
【0083】
操作対象オブジェクト120を仮想空間内でY軸周りに回転させる場合、図21及び図22に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右手首を回転させ、右把持部21をy1軸を中心として回転させる。この回転量は、第2の回転センサ93(図10に示す)によって検出され、回転量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号3へ出力され、画像表示部101に表示された操作対象オブジェクト120が、Y軸周りに回転する。
【0084】
例えば、図21に示すように、その左端が後方(プレイヤにとって手前側)に傾いて位置した右把持部21Aが、y1軸を中心として正方向(図21中矢印方向)へ回転移動し、中間位置(図21中符号21Bで示す)を経てその左端が前方(プレイヤから離れた奥側)に傾く位置(図21中符号21Cで示す)まで移動した場合、仮想空間の操作対象オブジェクト120Aは、図22中符号120Bで示す位置を経て符号120Cで示す位置まで、右把持部21のy1軸周りの回転と同方向にY軸周りに回転する。従って、操作対象オブジェクト120は、プレイヤの右手130Rの回転(右把持部21のy1軸周りの回転)に伴って右手130Rの動きと同方向に回転表示される。
【0085】
操作対象オブジェクト120を仮想空間内でZ軸周りに回転させる場合、図23及び図24に示すように、プレイヤは、左把持部22(左手130L)を固定したまま、右手首を回転させ、右把持部21をz1軸を中心として回転させる。この回転量は、第3の回転センサ94(図10に示す)によって検出され、回転量(検出値)に応じた操作信号が装置本体10(図1に示す)のポート番号4へ出力され、画像表示部101に表示された操作対象オブジェクト120が、Z軸周りに回転する。
【0086】
例えば、図23に示すように、その上端がプレイヤにとって右側に傾いて位置した右把持部21Aが、z1軸を中心として正方向(図23中矢印方向)へ回転移動し、中間位置(図23中符号21Bで示す)を経てその上端がプレイヤにとって左側に傾く位置(図23中符号21Cで示す)まで移動した場合、仮想空間の操作対象オブジェクト120Aは、図24中符号120Bで示す位置を経て符号120Cで示す位置まで、右把持部21のz1軸周りの回転と同方向にZ軸周りに回転する。従って、操作対象オブジェクト120は、プレイヤの右手130Rの回転(右把持部21のz1軸周りの回転)に伴って右手130Rの動きと同方向に回転表示される。
【0087】
(左モード時の信号生成処理の基本的な説明)
次に、左モード時にCPU81が実行する操作信号生成処理について説明する。
【0088】
左利きのプレイヤは、操作対象オブジェクト120を移動表示させる場合、コントローラ20を左モードに設定し、右把持部21が動かないように右手130Rを固定した状態で、左手130Lを動かして左把持部22を移動又は回転させる。ここで、CPU81は、右モード時の左右の手の役割を入れ替え、右モード時の右手130Rと同様に左手130Lを動かすことによって操作対象オブジェクト120が移動するように、左モード時の操作信号を生成する。
【0089】
具体的には、図11の下欄に示すように、y1軸周りの回転量を検出する第2の回転角センサ93は、並進Zに割り当てられ、CPU81は、第2の回転角センサ93の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号1へ出力させる。
【0090】
z1軸周りの回転量を検出する第3の回転角センサ94は、並進Yに割り当てられ、CPU81は、第3の回転角センサ94の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号2へ出力させる。
【0091】
y2軸周りの回転量を検出する第4の回転角センサ95は、回転Yに割り当てられ、CPU81は、第4の回転角センサ95の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10(図1に示す)のポート番号3へ出力させる。
【0092】
z2軸周りの回転量を検出する第5の回転角センサ96は、回転Zに割り当てられ、CPU81は、第5の回転角センサ96の検出値に応じた操作信号を生成し、生成した操作信号を装置本体10のポート番号4へ出力させる。
【0093】
なお、x軸に沿った移動量を検出するリニアセンサ91とx軸周りの回転量を検出する第1の回転角センサ92とは、右モード時と同様に、並進Xと回転Xとにそれぞれ割り当てられる。
【0094】
また、リニアセンサ91及び各回転センサ92〜96の検出値の正方向は、右モード時にプレイヤの右手の動く方向に合わせて操作対象オブジェクト120が移動又は回転するように予め設定されている。このため、左モードと右モードとの間で各機能を割り当てる各センサ91〜96を上述のように変更しただけでは、左モード時においてプレイヤの左手の動く方向と逆方向に操作対象オブジェクト120が移動又は回転してしまう場合がある。
【0095】
例えば、左モード時の回転Yに第4の回転角センサ95を単に割り当てただけでは、プレイヤが左手130Lを回転させて左把持部22をy2軸周りに回転させた際に、操作対象オブジェクト120のY軸周りの回転方向がプレイヤの左手130Lの回転方向とは逆方向となり、プレイヤに違和感を与える。このような違和感を解消するため、本実施形態のCPU81は、左モード時には、第4の回転角センサ95からの検出値の正負を逆転させて(検出値+θを−θ、検出値−θを+θとして)処理し、操作信号を生成する。
【0096】
同様の理由から、CPU81は、左モード時には、第5の回転角センサ96と第1の回転センサ92とリニアセンサ91からの検出値についても、その正負を逆転させて処理し、操作信号を生成する。
【0097】
このように、本実施形態のコントローラ20では、プレイヤの利き手の動く方向に合わせて操作対象オブジェクト120が移動又は回転するので、仮想空間の操作対象オブジェクト120を動かす際に、現実世界の物を動かす際の手の動きに近い感覚でコントローラ20を操作することができる。
【0098】
また、右利きのプレイヤのための右モードと左利きのプレイヤのための左モードとを選択して設定可能であり、右モード時には右手130Rの動く方向に合わせて操作対象オブジェクト120が移動又は回転し、左モード時には左手130Lの動く方向に合わせて操作対象オブジェクト120が移動又は回転するので、右利きのプレイヤと左利きのプレイヤとが同じ感覚でコントローラ20を操作することができる。
【0099】
さらに、コントローラ20から出力される操作信号が右モード及び左モードに応じて生成されるので、装置本体10は、右モードと左モードとに関係なく共通した処理を実行すればよい。
【0100】
(コントローラの傾き補正の説明)
プレイヤは、コントローラ20の姿勢を任意に設定可能であり、図25(a)に示す起立状態のほか、例えば図25(b)に示すように、x軸周りに傾かせた傾斜状態でコントローラ20を操作する場合がある。なお、起立状態では、x軸とz1軸とz2軸が略水平に、y1軸及びy2軸が略鉛直にそれぞれ設定される。また上記傾斜状態では、x軸は略水平に設定されるが、z1軸とz2軸とは水平方向から傾き、且つy1軸及びy2軸は鉛直方向から傾く。このような起立状態と傾斜状態とでは、プレイヤにとってのコントローラ20の操作感が相違する。例えば、右モード時において、右把持部21をz2軸周りに回転させた場合の右把持部21の鉛直方向への移動量は、起立状態の方が傾斜状態よりも大きくなる。
【0101】
本実施形態のコントローラ20には、x軸周りのコントローラ20の傾き(傾斜角θ)を検出するための加速度センサ(重力センサ)87が設けられ、プレイヤがコントローラ20を起立状態からx軸周りに傾けて操作した場合、CPU81は、加速度センサ87からの検出値を用いて傾斜角θを算出し、算出した傾斜角θに基づく傾斜補正処理を実行し、起立状態での操作感との差を小さくしている。
【0102】
ここで、図26及び図27に示す移動量検出センサをモデルとして、傾斜補正の基本的な概念を説明する。
【0103】
このモデルでは、コントローラ20に上記加速度センサ87(図26(a)に示す)と移動量検出センサ102(図27(a)に示す)とが設けられている。コントローラ20のx軸周りの傾斜角θ(図26(b)に示す)は、加速度センサ86からの検出値を用いて算出される。移動量検出センサ102は、右把持部21に配置され、コントローラ20がx軸周りに傾斜していない状態(図26(a)に示すように、右把持部21及び左把持部(図示省略)が起立した状態)において、左把持部に対する右把持部21の前後方向zの移動量を検出する前後方向検出部M(図27(a)に示す)と鉛直方向yの移動量を検出する上下方向検出部N(図27(a)に示す)とを有する。
【0104】
コントローラ20がx軸周りに傾斜角θで傾いている状態で左把持部に対して右把持部21を移動させた場合、図27(b)に示すように前後方向検出部Mの検出値mと上下方向検出部Nの検出値nとは、それぞれ水平方向及び鉛直方向から傾斜角θ分傾くため、これらの検出値m,nは右把持部21の水平方向及び鉛直方向の移動量とは一致しない。
【0105】
そこで、前後方向検出部M及び上下方向検出部Nからの各検出値を、次式(1)(2)に従って補正する。
【0106】
補正後の前後方向検出部Mの検出値= mcosθ+nsinθ ・・・(1)
補正後の上下方向検出部Nの検出値=−msinθ+ncosθ ・・・(2)
なお、上式(1)(2)において、mは前後方向検出部Mの検出値、nは上下方向検出部Nの検出値、θはコントローラ20のx軸周りの傾斜角θである。また、上式(1)(2)は、図26及び図27の矢印方向を正とした場合の式である。
【0107】
本実施形態のCPU81は、上記傾斜補正の基本的な概念に基づき、傾斜補正処理を実行する。具体的には、第2の回転センサ93の実際の検出値φ2と第3の回転センサ94の実際の検出値φ3と傾斜角θとによって、第2の回転センサ93の検出値と第3の回転センサ94の検出値とを補正する。第2の回転センサ93の補正後の検出値は、上記(1)式のmにφ2をnにφ3をそれぞれ代入することにより算出され、第3の回転センサ94の補正後の検出値は、上記(2)式のmにφ2をnにφ3をそれぞれ代入することにより算出される。同様に、第4の回転センサ95の実際の検出値φ4と第5の回転センサ96の実際の検出値φ5と傾斜角θとによって、第4の回転センサ95の検出値と第5の回転センサ96の検出値とを補正する。第4の回転センサ95の補正後の検出値は、上記(1)式のmにφ4をnにφ5をそれぞれ代入することにより算出され、第5の回転センサ96の補正後の検出値は、上記(2)式のmにφ4をnにφ5をそれぞれ代入することにより算出される。CPU81は、補正後の検出値に基づいて操作信号を生成する。また、本実施形態では、右モード時と左モード時とでは、同じ傾斜補正処理が実行される。
【0108】
なお、本実施形態では、コントローラ20のx軸周りの傾きを検出するための加速度センサ86を設けたが、これに代えて又は加えて、コントローラ20のz1軸及びz2軸周りの傾きを検出するための加速度センサを設け、この加速度センサが検出する傾斜角に基づく傾斜補正処理をCPU81が実行してもよい。また、コントローラ20の傾斜角を、加速度センサ以外の手段によって検出してもよい。
【0109】
また、本実施形態では、上記傾斜補正処理をコントローラ20側で行っているが、これを装置本体10側で行ってもよい。この場合、コントローラ20は、各回転センサの実際の検出値を補正せずに装置本体10へ送信すると共に、加速度センサ87の検出値を装置本体10へ送信する。装置本体10では、コントローラ20から受信したこれらの検出値を用いて、装置本体10のメインCPU64やサブCPU73が上記傾斜補正処理を実行する。
【0110】
(操作センサの検出値の組み合わせ補正の説明)
右モード時において、操作対象オブジェクト120(図1に示す)を仮想空間内でZ方向に平行移動させる場合、プレイヤは、図28(a)に示す初期状態から、左把持部22(左手130L)を固定したまま、図28(b)に示すように、右把持部21をy2軸を中心として回転移動させる。このような操作により、操作対象オブジェクト120は、第4の回転角センサ95の検出値に応じて仮想空間内でZ方向に平行移動する。
【0111】
しかし、右把持部21はy1軸周りにも回転自在であるため、左把持部21をy1軸周りに回転させずにy2軸周りに回転させることはプレイヤにとって困難であり、無理のない自然な操作を行うと、図28(c)に示すように、右把持部21が前方(図中上方)に直線的に移動する。この場合、右把持部22がy1軸周りに回転するため、操作対象オブジェクト120は、プレイヤの意図に反して、第2の回転角センサ93の検出値に応じて仮想空間内でY軸周りに回転してしまう。
【0112】
本実施形態では、上記不都合を解消するため、CPU81は、第4の回転角センサ95の検出値θ1(図29に示す)の絶対値が予め定められた所定値以上となったとき、第2の回転角センサ93の実際の検出値から第4の回転角センサ95の検出値θ1を除算した値を第2の回転角センサ93の検出値として算出し、算出した補正後の検出値に基づいて操作信号を生成する。これにより、操作対象オブジェクト120がプレイヤの意図に反して動いてしまうことが抑制される。
【0113】
また、第4の回転角センサ95の検出値θ1の絶対値が予め定められた所定値以上となることを条件としているので、プレイヤが右把持部21をy2軸周りに積極的に回転させたい場合にのみ上記補正処理が実行される。すなわち、プレイヤが右把持部21をy1軸周りに積極的に回転させたい場合において、右把持部21がプレイヤの意図に反してy2軸周りに回転しても、第4の回転角センサ95の検出値θ1の絶対値が所定値未満であれば上記補正処理が実行されず、操作対象オブジェクト120はプレイヤの意図した分だけ仮想空間内でY軸周りに回転する。
【0114】
同様に、CPU81は、第3の回転角センサ94の検出値についても、第5の回転角センサ96の検出値を用いて、上記補正処理を行う。
【0115】
また、本実施形態では、上記補正処理をコントローラ20側で行っているが、これを装置本体10側で行ってもよい。この場合、コントローラ20は、各回転センサの実際の検出値を補正せずに装置本体10へ送信する。装置本体10では、コントローラ20から受信したこれらの検出値を用いて、装置本体10のメインCPU64やサブCPU73が上記傾斜補正処理を実行する。
【0116】
[負荷制御処理の説明]
CPU81は、USB通信モジュール88又はBT通信モジュール89が装置本体10から受信した負荷情報に応じて、負荷付与器97が第2連結軸47に対して付与する負荷を制御する。例えば、仮想空間が操作対象オブジェクト120(図1に示す)と柔らかな表面を有する接触対象オブジェクト(図示省略)とを含む場合、装置本体10は接触対象オブジェクトの表面の柔らかさに応じた負荷情報をコントローラ20に送信する。プレイヤからの操作によって操作対象オブジェクト120がX軸方向に沿って移動して接触対象オブジェクトに接触すると、CPU18は、受信した負荷情報に応じて、負荷付与器97が第2連結軸47に対して付与する負荷を制御する。これにより、プレイヤは、接触対象オブジェクトの表面の柔らかさを体感することができる。
【0117】
なお、上述の各実施の形態の説明は本発明の一例である。このため、本発明は上述の各実施の形態に限定されることはなく、本発明に係る技術的思想を逸脱しない範囲であれば、上述の実施の形態以外であっても種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【0118】
【図1】本発明の一実施形態としてのエンタテインメントシステムの概要を示す模式図である。
【図2】装置本体の主要な内部構成を示すブロック図である。
【図3】コントローラの外観斜視図である。
【図4】コントローラを図3の矢印IV方向から視た正面図である。
【図5】コントローラを図3の矢印V方向から視た平面図である。
【図6】コントローラの右把持部を図3の矢印VI方向から視た背面図である。
【図7】コントローラの内部構造を模式的に示す斜視図である。
【図8】コントローラ内のコイルバネの配置を示す模式図である。
【図9】コントローラの主要な電気的構成を示すブロック図である。
【図10】右把持部と左把持部と操作センサとの関係を示す模式図である。
【図11】右モード時と左モード時の各操作センサの機能を示す図である。
【図12】コントローラの操作開始時の状態を示す模式図である。
【図13】右把持部をx軸方向に移動させた状態を示す模式図である。
【図14】右把持部のx軸方向への移動に対応した操作対象オブジェクトの動きを示す模式図である。
【図15】右把持部をz2軸周りに回転させた状態を示す模式図である。
【図16】右把持部のz2軸周りの回転に対応した操作対象オブジェクトの動きを示す模式図である。
【図17】右把持部をy2軸周りに回転させた状態を示す模式図である。
【図18】右把持部のy2軸周りの回転に対応した操作対象オブジェクトの動きを示す模式図である。
【図19】右把持部をx軸周りに回転させた状態を示す模式図である。
【図20】右把持部のx軸周りの回転に対応した操作対象オブジェクトの動きを示す模式図である。
【図21】右把持部をy1軸周りに回転させた状態を示す模式図である。
【図22】右把持部のy1軸周りの回転に対応した操作対象オブジェクトの動きを示す模式図である。
【図23】右把持部をz1軸周りに回転させた状態を示す模式図である。
【図24】右把持部のz1軸周りの回転に対応した操作対象オブジェクトの動きを示す模式図である。
【図25】プレイヤがコントローラを把持した状態を模式的に示す斜視図であり、(a)はコントローラを起立させた状態を示し、(b)はコントローラを傾斜させた状態を示す。
【図26】傾斜補正を説明するためのモデルのコントローラを示す模式図であり、(a)はコントローラを起立させた状態を示し、(b)はコントローラを傾斜させた状態を示す。
【図27】傾斜補正を説明するためのモデルの移動量検出センサを示す模式図であり、(a)はコントローラを起立させた状態を示し、(b)はコントローラを傾斜させた状態を示す。
【図28】コントローラの操作状態を示す模式図であり、(a)は初期状態を示し、(b)は右把持部をy1軸周りの回転を生じさせずy2軸周りに回転させた状態を示し、(c)は右把持部をy1軸周りの回転を伴ってy2軸周りに回転させた状態を示す。
【図29】図28(c)の回転角センサを示す模式図である。
【符号の説明】
【0119】
10:装置本体、15:接続ポート、17:無線通信部、20:コントローラ、21:右把持部、22:左把持部、23:連結部、24:中央ケース体、25:右ケース体、26:左ケース体、27:ベース体、34:右連結機構、35:左連結機構、36:中央連結機構、48:中央ベース体、52:第1のコイルバネ、53:第2のコイルバネ、54:第3のコイルバネ、55:第4のコイルバネ、81:CPU、86:操作センサ、87:加速度センサ、91:リニアセンサ、92:第1の回転角センサ、93:第2の回転角センサ、94:第3の回転角センサ、95:第4の回転角センサ、96:第5の回転角センサ、97:負荷付与器、100:モニタ装置、101画像表示部、120:操作対象オブジェクト、130R:プレイヤの左手、130L:プレイヤの右手
【特許請求の範囲】
【請求項1】
所定のオブジェクトを含む仮想空間を形成する情報処理装置との間で通信を行うコントローラであって、
ユーザの一方の手で把持される第1の把持部と、
前記ユーザの他方の手で把持される第2の把持部と、
前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、
前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、
前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、
前記信号生成手段が生成した信号を前記情報処理装置へ送信する送信手段と、を備え、
前記連結手段は、前記第1の把持部と前記第2の把持部とを主軸に沿って移動可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量を検出し、
前記信号生成手段は、前記検出手段が前記距離の変更量を検出したとき、前記所定のオブジェクトの動きを前記検出された距離の変更量に応じて指示する第1の操作信号を生成する
ことを特徴とするコントローラ。
【請求項2】
請求項1に記載のコントローラであって、
前記第1の操作信号が指示する前記所定のオブジェクトの動きは、前記仮想空間における水平方向の移動である
ことを特徴とするコントローラ。
【請求項3】
請求項1又は請求項2に記載のコントローラであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記回転軸を中心とした角度の変更量を検出し、
前記信号生成手段は、前記検出手段が前記回転軸を中心とした角度の変更量を検出したとき、前記所定のオブジェクトの動きを前記検出された角度の変更量に応じて指示する第2の操作信号を生成する
ことを特徴とするコントローラ。
【請求項4】
請求項3に記載のコントローラであって、
前記第2の操作信号が指示する前記所定のオブジェクトの動きは、前記仮想空間における鉛直方向の移動、奥行き方向の移動、鉛直方向の軸を中心とした回転、及び奥行き方向の軸を中心とした回転のうち何れか一つである
ことを特徴とするコントローラ。
【請求項5】
請求項1〜請求項4の何れかに記載のコントローラであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを前記主軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸を中心とした角度の変更量を検出し、
前記信号生成手段は、前記検出手段が前記主軸を中心とした角度の変更量を検出したとき、前記所定のオブジェクトの動きを前記検出された角度の変更量に応じて指示する第3の操作信号を生成する
ことを特徴とするコントローラ。
【請求項6】
請求項5に記載のコントローラであって、
前記第3の操作信号が指示する前記所定のオブジェクトの動きは、前記仮想空間における水平方向の軸を中心とした回転である
ことを特徴とするコントローラ。
【請求項7】
情報処理装置との間で通信を行うコントローラであって、
ユーザの一方の手で把持される第1の把持部と、
前記ユーザの他方の手で把持される第2の把持部と、
前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、
前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、
前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、
前記信号生成手段が生成した信号を前記情報処理装置へ送信する送信手段と、
傾斜角検出手段と、を備え、
前記連結手段は、前記第1の把持部と前記第2の把持部とを、主軸に沿って移動可能に連結するとともに、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量及び前記回転軸を中心とした角度の変更量を検出し、
前記回転軸は、前記第1の把持部と前記第2の把持部とが前記ユーザに把持された基本操作状態で上下方向に延び、
前記傾斜角度検知手段は、鉛直方向に対する前記回転軸の傾き角度を検知し、
前記信号生成手段は、前記検出手段が検出する前記回転軸を中心とした角度の変更量を前記傾斜角度検知手段が検知する前記傾き角度を用いて補正し、この補正された変更量に対応した信号を生成する
ことを特徴とするコントローラ。
【請求項8】
請求項7に記載のコントローラであって、
前記傾斜角度検知手段は、前記主軸を中心とした前記回転軸の傾き角度を検知する
ことを特徴とするコントローラ。
【請求項9】
請求項7又は請求項8に記載のコントローラであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを、前記主軸及び前記回転軸とは異なる方向に設定された他の回転軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記他の回転軸を中心とした角度の変更量を検出し、
前記信号生成手段は、前記検出手段が検出する前記他の回転軸の角度の変更量を前記傾斜角度検知手段が検知する前記傾き角度を用いて補正し、この補正された変更量に対応した信号を生成する
ことを特徴とするコントローラ。
【請求項10】
情報処理装置との間で通信を行うコントローラであって、
ユーザの一方の手で把持される第1の把持部と、
前記ユーザの他方の手で把持される第2の把持部と、
前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、
前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、
前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、
前記信号生成手段が生成した信号を前記情報処理装置へ送信する送信手段と、を備え、
前記連結手段は、主連結機構と、前記第1の把持部と前記主連結機構とを連結する第1の連結機構と、前記第2の把持部と前記主連結機構とを連結する第2の連結機構と、を有し、
前記主連結機構は、前記第1の連結機構と前記第2の連結機構とを、主軸に沿って移動可能に連結し、
前記第1の連結機構は、前記第1の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、
前記第2の連結機構は、前記第2の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された他の回転軸を中心として回転可能に連結し、
前記回転軸と前記他の回転軸とは略平行に設定され、
前記検出手段は、前記第1の把持部と前記主連結機構との間の前記回転軸を中心とした角度の変更量と、前記第2の把持部と前記主連結機構との間の前記他の回転軸を中心とした角度の変更量とを検出し、
前記信号生成手段は、前記検出手段が検出する前記回転軸を中心とした角度の変更量を前記他の回転軸を中心とした角度の変更量を用いて補正し、この補正された変更量に対応した信号を生成する
ことを特徴とするコントローラ。
【請求項11】
請求項10に記載のコントローラであって、
前記信号生成手段は、前記検出手段が検出する前記回転軸を中心とした角度の変更量が所定値以上のときに前記補正を行う
ことを特徴とするコントローラ。
【請求項12】
所定のオブジェクトを含む仮想空間を形成する情報処理装置との間で通信を行うコントローラであって、
ユーザの一方の手で把持される第1の把持部と、
前記ユーザの他方の手で把持される第2の把持部と、
前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、
前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、
前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、
前記信号生成手段が生成した信号を前記情報処理装置へ送信する送信手段と、を備え、
前記連結手段は、主連結機構と、前記第1の把持部と前記主連結機構とを連結する第1の連結機構と、前記第2の把持部と前記主連結機構とを連結する第2の連結機構と、を有し、
前記主連結機構は、前記第1の連結機構と前記第2の連結機構とを、主軸に沿って移動可能に連結するとともに、前記主軸を中心として回転可能に連結し、
前記主軸は、前記第1の把持部と第2の把持部とが前記ユーザに把持された基本操作状態で前記ユーザに対して左右方向に延び、
前記第1の連結機構は、前記第1の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された第1の回転軸を中心として回転可能に連結するとともに、前記主軸及び前記第1の回転軸とは異なる方向に設定された第2の回転軸を中心として回転可能に連結し、
前記第2の連結機構は、前記第2の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された第3の回転軸を中心として回転可能に連結するとともに、前記主軸及び前記第3の回転軸とは異なる方向に設定された第4の回転軸を中心として回転可能に連結し、
前記第1の回転軸と前記第3の回転軸とは、前記基本操作状態で上下方向に延び、
前記第2の回転軸と前記第4の回転軸とは、前記基本操作状態で前記ユーザに対して前後方向に延び、
前記検出手段は、
前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量を検出する距離変更量検出手段と、
前記第1の把持部と前記主連結機構との間の前記第1の回転軸を中心とした角度の変更量を検出する第1の角度変更量検出手段と、
前記第1の把持部と前記主連結機構との間の前記第2の回転軸を中心とした角度の変更量を検出する第2の角度変更量検出手段と、
前記第2の把持部と前記主連結機構との間の前記第3の回転軸を中心とした角度の変更量を検出する第3の角度変更量検出手段と、
前記第2の把持部と前記主連結機構との間の前記第4の回転軸を中心とした角度の変更量を検出する第4の角度変更量検出手段と、
前記第1の把持部と前記第2の把持部との間の前記主軸を中心とした角度の変更量を検出する第5の角度変更量検出手段と、を有し、
前記信号生成手段は、
前記距離変更量検出手段が前記距離の変更量を検出したとき、前記仮想空間における前記所定のオブジェクトの水平方向の移動を前記検出された距離の変更量に応じて指示する操作信号を生成し、
前記第1の角度変更量検出手段が前記角度の変更量を検出したとき、前記仮想空間における鉛直方向の軸を中心とした前記所定のオブジェクトの回転を前記検出された角度の変更量に応じて指示する操作信号を生成し、
前記第2の角度変更量検出手段が前記角度の変更量を検出したとき、前記仮想空間における奥行き方向の軸を中心とした前記所定のオブジェクトの回転を前記検出された角度の変更量に応じて指示する操作信号を生成し、
前記第3の角度変更量検出手段が角度の変更量を検出したとき、前記仮想空間における前記所定のオブジェクトの奥行き方向の移動を前記検出された角度の変更量に応じて指示する操作信号を生成し、
前記第4の角度変更量検出手段が角度の変更量を検出したとき、前記仮想空間における前記所定のオブジェクトの鉛直方向の移動を前記検出された角度の変更量に応じて指示する操作信号を生成し、
前記第5の角度変更量検出手段が前記角度の変更量を検出したとき、前記仮想空間における水平方向の軸を中心とした前記所定のオブジェクトの回転を前記検出された角度の変更量に応じて指示する操作信号を生成する
ことを特徴とするコントローラ。
【請求項13】
請求項1〜請求項12の何れかに記載のコントローラであって、
前記第2の把持部の位置を保持して前記第1の把持部を動かす操作態様に適した第1のモードと、前記第1の把持部の位置を保持して前記第2の把持部を動かす操作態様に適した第2のモードとを含む複数のモードの中から、ユーザからの入力に応じた一つのモードを選択して設定するモード設定手段を備え、
前記信号生成手段は、前記複数のモードのそれぞれに対応して予め設定された複数の処理のうち前記モード設定手段が設定したモードに対応する処理に従って前記信号を生成する
ことを特徴とするコントローラ。
【請求項14】
ユーザの一方の手で把持される第1の把持部と、
前記ユーザの他方の手で把持される第2の把持部と、
前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、
前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、
前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、
前記信号生成手段が生成した信号を送信する送信手段と、を有するコントローラと、
前記送信手段から信号を受信する受信手段と、
所定のオブジェクトを含む仮想空間を形成する画像処理手段と、を有する情報処理装置と、
を備えた画像処理システムであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを主軸に沿って移動可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量を検出し、
前記信号生成手段は、前記検出手段が検出した前記距離の変更量に応じて第1の操作信号を生成し、
前記画像処理手段は、前記受信手段が前記送信手段から前記第1の操作信号を受信したとき、この受信した第1の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で水平方向へ移動させる画像を生成する
ことを特徴とする画像処理システム。
【請求項15】
請求項14に記載の画像処理システムであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記回転軸を中心とした角度の変更量を検出し、
前記信号生成手段は、前記検出手段が検出した前記回転軸を中心とした角度の変更量に応じて第2の操作信号を生成し、
前記画像処理手段は、前記受信手段が前記送信手段から前記第2の操作信号を受信したとき、この受信した第2の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で鉛直方向への移動させる画像、奥行き方向へ移動させる画像、鉛直方向の軸を中心として回転させる画像、及び奥行き方向の軸を中心として回転させる画像のうち何れか一つの画像を生成する
ことを特徴とする画像処理システム。
【請求項16】
請求項14又は請求項15に記載の画像処理システムであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを前記主軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸を中心とした角度の変更量を検出し、
前記信号生成手段は、前記検出手段が検出した前記主軸を中心とした角度の変更量に応じて第3の操作信号を生成し、
前記画像処理手段は、前記受信手段が前記送信手段から前記第3の操作信号を受信したとき、この受信した第3の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で水平方向の軸を中心として回転させる画像を生成する
ことを特徴とする画像処理システム。
【請求項17】
ユーザの一方の手で把持される第1の把持部と、前記ユーザの他方の手で把持される第2の把持部と、前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、前記信号生成手段が生成した信号を送信する送信手段と、を有し、前記連結手段は、前記第1の把持部と前記第2の把持部とを主軸に沿って移動可能に連結し、前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量を検出し、前記信号生成手段は、前記検出手段が検出した前記距離の変更量に応じて第1の操作信号を生成するコントローラとの間で通信可能な情報処理装置であって、
前記送信手段から信号を受信する受信手段と、
所定のオブジェクトを含む仮想空間を形成する画像処理手段と、を備え、
前記画像処理手段は、前記受信手段が前記送信手段から前記第1の操作信号を受信したとき、この受信した第1の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で水平方向へ移動させる画像を生成する
ことを特徴とする情報処理装置。
【請求項18】
ユーザの一方の手で把持される第1の把持部と、前記ユーザの他方の手で把持される第2の把持部と、前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、前記信号生成手段が生成した信号を送信する送信手段と、を有し、前記連結手段は、前記第1の把持部と前記第2の把持部とを主軸に沿って移動可能に連結し、前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量を検出し、前記信号生成手段は、前記検出手段が検出した前記距離の変更量に応じて第1の操作信号を生成するコントローラとの間で通信可能な情報処理装置のコンピュータに実行させる情報処理プログラムであって、
画像処理手段が所定のオブジェクトを含む仮想空間を形成するステップと、
受信手段が前記送信手段から信号を受信するステップと、
前記受信手段が前記第1の操作信号を受信したとき、この受信した第1の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で水平方向へ移動させる画像を前記画像処理手段が生成するステップと、
を含む複数のステップを前記コンピュータに実行させる情報処理プログラム。
【請求項19】
前記コントローラの前記連結手段は、前記第1の把持部と前記第2の把持部とを、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記回転軸を中心とした角度の変更量を検出し、前記信号生成手段は、前記検出手段が検出した前記回転軸を中心とした角度の変更量に応じて第2の操作信号を生成する請求項18に記載の情報処理プログラムであって、
前記複数のステップは、
前記受信手段が前記第2の操作信号を受信したとき、この受信した第2の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で鉛直方向への移動させる画像、奥行き方向へ移動させる画像、鉛直方向の軸を中心として回転させる画像、及び奥行き方向の軸を中心として回転させる画像のうち何れか一つの画像を前記画像処理手段が生成するステップを含む
ことを特徴とする情報処理プログラム。
【請求項20】
前記コントローラの前記連結手段は、前記第1の把持部と前記第2の把持部とを前記主軸を中心として回転可能に連結し、前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸を中心とした角度の変更量を検出し、前記信号生成手段は、前記検出手段が検出した前記主軸を中心とした角度の変更量に応じて第3の操作信号を生成する請求項18又は請求項19に記載の情報処理プログラムであって、
前記複数のステップは、
前記受信手段が前記第3の操作信号を受信したとき、この受信した第3の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で水平方向の軸を中心として回転させる画像を前記画像処理手段が生成するステップを含む
ことを特徴とする情報処理プログラム。
【請求項21】
ユーザの一方の手で把持される第1の把持部と、前記ユーザの他方の手で把持される第2の把持部と、前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、前記信号生成手段が生成した信号を送信する送信手段と、傾斜角検出手段と、を有し、前記連結手段は、前記第1の把持部と前記第2の把持部とを、主軸に沿って移動可能に連結するとともに、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量及び前記回転軸を中心とした角度の変更量を検出し、前記回転軸は、前記第1の把持部と第2の把持部とが前記ユーザに把持された基本操作状態で上下方向に延び、前記傾斜角度検知手段は、鉛直方向に対する前記回転軸の傾き角度を検知し、前記送信手段は、前記傾斜角度検出手段が検知した前記傾き角度に基づく信号を送信するコントローラとの間で通信可能な情報処理装置のコンピュータに実行させる情報処理プログラムであって、
受信手段が前記送信手段から信号を受信するステップと、
前記受信手段が前記角度の変更量に基づく信号と前記傾き角度に基づく信号とを受信したとき、情報処理手段が前記傾き角度を用いて前記角度の変更量を補正するステップと、
前記補正した変更量を用いて、前記情報処理手段が所定の処理を実行するステップと、
を含む複数のステップを前記コンピュータに実行させる情報処理プログラム。
【請求項22】
ユーザの一方の手で把持される第1の把持部と、前記ユーザの他方の手で把持される第2の把持部と、前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、前記信号生成手段が生成した信号を送信する送信手段と、を有し、前記連結手段は、主連結機構と、前記第1の把持部と前記主連結機構とを連結する第1の連結機構と、前記第2の把持部と前記主連結機構とを連結する第2の連結機構と、を有し、前記主連結機構は、前記第1の連結機構と前記第2の連結機構とを、主軸に沿って移動可能に連結し、前記第1の連結機構は、前記第1の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、前記第2の連結機構は、前記第2の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された他の回転軸を中心として回転可能に連結し、前記回転軸と前記他の回転軸とは略平行に設定され、前記検出手段は、前記第1の把持部と前記主連結機構との間の前記回転軸を中心とした第1の角度変更量と、前記第2の把持部と前記主連結機構との間の前記他の回転軸を中心とした第2の角度変更量とを検出するコントローラとの間で通信可能な情報処理装置のコンピュータに実行させる情報処理プログラムであって、
受信手段が前記送信手段から信号を受信するステップと、
前記受信手段が前記第1の角度変更量に基づく信号と前記第2の角度変更量に基づく信号とを受信したとき、情報処理手段が前記第2の角度変更量を用いて前記第1の角度変更量を補正するステップと、
前記補正した変更量を用いて、前記情報処理手段が所定の処理を実行するステップと、
を含む複数のステップを前記コンピュータに実行させる情報処理プログラム。
【請求項23】
請求項18〜請求項22の何れかに記載の情報処理プログラムが記憶されたコンピュータ読み取り可能な記憶媒体。
【請求項1】
所定のオブジェクトを含む仮想空間を形成する情報処理装置との間で通信を行うコントローラであって、
ユーザの一方の手で把持される第1の把持部と、
前記ユーザの他方の手で把持される第2の把持部と、
前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、
前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、
前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、
前記信号生成手段が生成した信号を前記情報処理装置へ送信する送信手段と、を備え、
前記連結手段は、前記第1の把持部と前記第2の把持部とを主軸に沿って移動可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量を検出し、
前記信号生成手段は、前記検出手段が前記距離の変更量を検出したとき、前記所定のオブジェクトの動きを前記検出された距離の変更量に応じて指示する第1の操作信号を生成する
ことを特徴とするコントローラ。
【請求項2】
請求項1に記載のコントローラであって、
前記第1の操作信号が指示する前記所定のオブジェクトの動きは、前記仮想空間における水平方向の移動である
ことを特徴とするコントローラ。
【請求項3】
請求項1又は請求項2に記載のコントローラであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記回転軸を中心とした角度の変更量を検出し、
前記信号生成手段は、前記検出手段が前記回転軸を中心とした角度の変更量を検出したとき、前記所定のオブジェクトの動きを前記検出された角度の変更量に応じて指示する第2の操作信号を生成する
ことを特徴とするコントローラ。
【請求項4】
請求項3に記載のコントローラであって、
前記第2の操作信号が指示する前記所定のオブジェクトの動きは、前記仮想空間における鉛直方向の移動、奥行き方向の移動、鉛直方向の軸を中心とした回転、及び奥行き方向の軸を中心とした回転のうち何れか一つである
ことを特徴とするコントローラ。
【請求項5】
請求項1〜請求項4の何れかに記載のコントローラであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを前記主軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸を中心とした角度の変更量を検出し、
前記信号生成手段は、前記検出手段が前記主軸を中心とした角度の変更量を検出したとき、前記所定のオブジェクトの動きを前記検出された角度の変更量に応じて指示する第3の操作信号を生成する
ことを特徴とするコントローラ。
【請求項6】
請求項5に記載のコントローラであって、
前記第3の操作信号が指示する前記所定のオブジェクトの動きは、前記仮想空間における水平方向の軸を中心とした回転である
ことを特徴とするコントローラ。
【請求項7】
情報処理装置との間で通信を行うコントローラであって、
ユーザの一方の手で把持される第1の把持部と、
前記ユーザの他方の手で把持される第2の把持部と、
前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、
前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、
前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、
前記信号生成手段が生成した信号を前記情報処理装置へ送信する送信手段と、
傾斜角検出手段と、を備え、
前記連結手段は、前記第1の把持部と前記第2の把持部とを、主軸に沿って移動可能に連結するとともに、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量及び前記回転軸を中心とした角度の変更量を検出し、
前記回転軸は、前記第1の把持部と前記第2の把持部とが前記ユーザに把持された基本操作状態で上下方向に延び、
前記傾斜角度検知手段は、鉛直方向に対する前記回転軸の傾き角度を検知し、
前記信号生成手段は、前記検出手段が検出する前記回転軸を中心とした角度の変更量を前記傾斜角度検知手段が検知する前記傾き角度を用いて補正し、この補正された変更量に対応した信号を生成する
ことを特徴とするコントローラ。
【請求項8】
請求項7に記載のコントローラであって、
前記傾斜角度検知手段は、前記主軸を中心とした前記回転軸の傾き角度を検知する
ことを特徴とするコントローラ。
【請求項9】
請求項7又は請求項8に記載のコントローラであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを、前記主軸及び前記回転軸とは異なる方向に設定された他の回転軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記他の回転軸を中心とした角度の変更量を検出し、
前記信号生成手段は、前記検出手段が検出する前記他の回転軸の角度の変更量を前記傾斜角度検知手段が検知する前記傾き角度を用いて補正し、この補正された変更量に対応した信号を生成する
ことを特徴とするコントローラ。
【請求項10】
情報処理装置との間で通信を行うコントローラであって、
ユーザの一方の手で把持される第1の把持部と、
前記ユーザの他方の手で把持される第2の把持部と、
前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、
前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、
前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、
前記信号生成手段が生成した信号を前記情報処理装置へ送信する送信手段と、を備え、
前記連結手段は、主連結機構と、前記第1の把持部と前記主連結機構とを連結する第1の連結機構と、前記第2の把持部と前記主連結機構とを連結する第2の連結機構と、を有し、
前記主連結機構は、前記第1の連結機構と前記第2の連結機構とを、主軸に沿って移動可能に連結し、
前記第1の連結機構は、前記第1の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、
前記第2の連結機構は、前記第2の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された他の回転軸を中心として回転可能に連結し、
前記回転軸と前記他の回転軸とは略平行に設定され、
前記検出手段は、前記第1の把持部と前記主連結機構との間の前記回転軸を中心とした角度の変更量と、前記第2の把持部と前記主連結機構との間の前記他の回転軸を中心とした角度の変更量とを検出し、
前記信号生成手段は、前記検出手段が検出する前記回転軸を中心とした角度の変更量を前記他の回転軸を中心とした角度の変更量を用いて補正し、この補正された変更量に対応した信号を生成する
ことを特徴とするコントローラ。
【請求項11】
請求項10に記載のコントローラであって、
前記信号生成手段は、前記検出手段が検出する前記回転軸を中心とした角度の変更量が所定値以上のときに前記補正を行う
ことを特徴とするコントローラ。
【請求項12】
所定のオブジェクトを含む仮想空間を形成する情報処理装置との間で通信を行うコントローラであって、
ユーザの一方の手で把持される第1の把持部と、
前記ユーザの他方の手で把持される第2の把持部と、
前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、
前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、
前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、
前記信号生成手段が生成した信号を前記情報処理装置へ送信する送信手段と、を備え、
前記連結手段は、主連結機構と、前記第1の把持部と前記主連結機構とを連結する第1の連結機構と、前記第2の把持部と前記主連結機構とを連結する第2の連結機構と、を有し、
前記主連結機構は、前記第1の連結機構と前記第2の連結機構とを、主軸に沿って移動可能に連結するとともに、前記主軸を中心として回転可能に連結し、
前記主軸は、前記第1の把持部と第2の把持部とが前記ユーザに把持された基本操作状態で前記ユーザに対して左右方向に延び、
前記第1の連結機構は、前記第1の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された第1の回転軸を中心として回転可能に連結するとともに、前記主軸及び前記第1の回転軸とは異なる方向に設定された第2の回転軸を中心として回転可能に連結し、
前記第2の連結機構は、前記第2の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された第3の回転軸を中心として回転可能に連結するとともに、前記主軸及び前記第3の回転軸とは異なる方向に設定された第4の回転軸を中心として回転可能に連結し、
前記第1の回転軸と前記第3の回転軸とは、前記基本操作状態で上下方向に延び、
前記第2の回転軸と前記第4の回転軸とは、前記基本操作状態で前記ユーザに対して前後方向に延び、
前記検出手段は、
前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量を検出する距離変更量検出手段と、
前記第1の把持部と前記主連結機構との間の前記第1の回転軸を中心とした角度の変更量を検出する第1の角度変更量検出手段と、
前記第1の把持部と前記主連結機構との間の前記第2の回転軸を中心とした角度の変更量を検出する第2の角度変更量検出手段と、
前記第2の把持部と前記主連結機構との間の前記第3の回転軸を中心とした角度の変更量を検出する第3の角度変更量検出手段と、
前記第2の把持部と前記主連結機構との間の前記第4の回転軸を中心とした角度の変更量を検出する第4の角度変更量検出手段と、
前記第1の把持部と前記第2の把持部との間の前記主軸を中心とした角度の変更量を検出する第5の角度変更量検出手段と、を有し、
前記信号生成手段は、
前記距離変更量検出手段が前記距離の変更量を検出したとき、前記仮想空間における前記所定のオブジェクトの水平方向の移動を前記検出された距離の変更量に応じて指示する操作信号を生成し、
前記第1の角度変更量検出手段が前記角度の変更量を検出したとき、前記仮想空間における鉛直方向の軸を中心とした前記所定のオブジェクトの回転を前記検出された角度の変更量に応じて指示する操作信号を生成し、
前記第2の角度変更量検出手段が前記角度の変更量を検出したとき、前記仮想空間における奥行き方向の軸を中心とした前記所定のオブジェクトの回転を前記検出された角度の変更量に応じて指示する操作信号を生成し、
前記第3の角度変更量検出手段が角度の変更量を検出したとき、前記仮想空間における前記所定のオブジェクトの奥行き方向の移動を前記検出された角度の変更量に応じて指示する操作信号を生成し、
前記第4の角度変更量検出手段が角度の変更量を検出したとき、前記仮想空間における前記所定のオブジェクトの鉛直方向の移動を前記検出された角度の変更量に応じて指示する操作信号を生成し、
前記第5の角度変更量検出手段が前記角度の変更量を検出したとき、前記仮想空間における水平方向の軸を中心とした前記所定のオブジェクトの回転を前記検出された角度の変更量に応じて指示する操作信号を生成する
ことを特徴とするコントローラ。
【請求項13】
請求項1〜請求項12の何れかに記載のコントローラであって、
前記第2の把持部の位置を保持して前記第1の把持部を動かす操作態様に適した第1のモードと、前記第1の把持部の位置を保持して前記第2の把持部を動かす操作態様に適した第2のモードとを含む複数のモードの中から、ユーザからの入力に応じた一つのモードを選択して設定するモード設定手段を備え、
前記信号生成手段は、前記複数のモードのそれぞれに対応して予め設定された複数の処理のうち前記モード設定手段が設定したモードに対応する処理に従って前記信号を生成する
ことを特徴とするコントローラ。
【請求項14】
ユーザの一方の手で把持される第1の把持部と、
前記ユーザの他方の手で把持される第2の把持部と、
前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、
前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、
前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、
前記信号生成手段が生成した信号を送信する送信手段と、を有するコントローラと、
前記送信手段から信号を受信する受信手段と、
所定のオブジェクトを含む仮想空間を形成する画像処理手段と、を有する情報処理装置と、
を備えた画像処理システムであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを主軸に沿って移動可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量を検出し、
前記信号生成手段は、前記検出手段が検出した前記距離の変更量に応じて第1の操作信号を生成し、
前記画像処理手段は、前記受信手段が前記送信手段から前記第1の操作信号を受信したとき、この受信した第1の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で水平方向へ移動させる画像を生成する
ことを特徴とする画像処理システム。
【請求項15】
請求項14に記載の画像処理システムであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記回転軸を中心とした角度の変更量を検出し、
前記信号生成手段は、前記検出手段が検出した前記回転軸を中心とした角度の変更量に応じて第2の操作信号を生成し、
前記画像処理手段は、前記受信手段が前記送信手段から前記第2の操作信号を受信したとき、この受信した第2の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で鉛直方向への移動させる画像、奥行き方向へ移動させる画像、鉛直方向の軸を中心として回転させる画像、及び奥行き方向の軸を中心として回転させる画像のうち何れか一つの画像を生成する
ことを特徴とする画像処理システム。
【請求項16】
請求項14又は請求項15に記載の画像処理システムであって、
前記連結手段は、前記第1の把持部と前記第2の把持部とを前記主軸を中心として回転可能に連結し、
前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸を中心とした角度の変更量を検出し、
前記信号生成手段は、前記検出手段が検出した前記主軸を中心とした角度の変更量に応じて第3の操作信号を生成し、
前記画像処理手段は、前記受信手段が前記送信手段から前記第3の操作信号を受信したとき、この受信した第3の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で水平方向の軸を中心として回転させる画像を生成する
ことを特徴とする画像処理システム。
【請求項17】
ユーザの一方の手で把持される第1の把持部と、前記ユーザの他方の手で把持される第2の把持部と、前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、前記信号生成手段が生成した信号を送信する送信手段と、を有し、前記連結手段は、前記第1の把持部と前記第2の把持部とを主軸に沿って移動可能に連結し、前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量を検出し、前記信号生成手段は、前記検出手段が検出した前記距離の変更量に応じて第1の操作信号を生成するコントローラとの間で通信可能な情報処理装置であって、
前記送信手段から信号を受信する受信手段と、
所定のオブジェクトを含む仮想空間を形成する画像処理手段と、を備え、
前記画像処理手段は、前記受信手段が前記送信手段から前記第1の操作信号を受信したとき、この受信した第1の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で水平方向へ移動させる画像を生成する
ことを特徴とする情報処理装置。
【請求項18】
ユーザの一方の手で把持される第1の把持部と、前記ユーザの他方の手で把持される第2の把持部と、前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、前記信号生成手段が生成した信号を送信する送信手段と、を有し、前記連結手段は、前記第1の把持部と前記第2の把持部とを主軸に沿って移動可能に連結し、前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量を検出し、前記信号生成手段は、前記検出手段が検出した前記距離の変更量に応じて第1の操作信号を生成するコントローラとの間で通信可能な情報処理装置のコンピュータに実行させる情報処理プログラムであって、
画像処理手段が所定のオブジェクトを含む仮想空間を形成するステップと、
受信手段が前記送信手段から信号を受信するステップと、
前記受信手段が前記第1の操作信号を受信したとき、この受信した第1の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で水平方向へ移動させる画像を前記画像処理手段が生成するステップと、
を含む複数のステップを前記コンピュータに実行させる情報処理プログラム。
【請求項19】
前記コントローラの前記連結手段は、前記第1の把持部と前記第2の把持部とを、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記回転軸を中心とした角度の変更量を検出し、前記信号生成手段は、前記検出手段が検出した前記回転軸を中心とした角度の変更量に応じて第2の操作信号を生成する請求項18に記載の情報処理プログラムであって、
前記複数のステップは、
前記受信手段が前記第2の操作信号を受信したとき、この受信した第2の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で鉛直方向への移動させる画像、奥行き方向へ移動させる画像、鉛直方向の軸を中心として回転させる画像、及び奥行き方向の軸を中心として回転させる画像のうち何れか一つの画像を前記画像処理手段が生成するステップを含む
ことを特徴とする情報処理プログラム。
【請求項20】
前記コントローラの前記連結手段は、前記第1の把持部と前記第2の把持部とを前記主軸を中心として回転可能に連結し、前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸を中心とした角度の変更量を検出し、前記信号生成手段は、前記検出手段が検出した前記主軸を中心とした角度の変更量に応じて第3の操作信号を生成する請求項18又は請求項19に記載の情報処理プログラムであって、
前記複数のステップは、
前記受信手段が前記第3の操作信号を受信したとき、この受信した第3の操作信号に基づいて前記所定のオブジェクトを前記仮想空間で水平方向の軸を中心として回転させる画像を前記画像処理手段が生成するステップを含む
ことを特徴とする情報処理プログラム。
【請求項21】
ユーザの一方の手で把持される第1の把持部と、前記ユーザの他方の手で把持される第2の把持部と、前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、前記信号生成手段が生成した信号を送信する送信手段と、傾斜角検出手段と、を有し、前記連結手段は、前記第1の把持部と前記第2の把持部とを、主軸に沿って移動可能に連結するとともに、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、前記検出手段は、前記第1の把持部と前記第2の把持部との間の前記主軸に沿った距離の変更量及び前記回転軸を中心とした角度の変更量を検出し、前記回転軸は、前記第1の把持部と第2の把持部とが前記ユーザに把持された基本操作状態で上下方向に延び、前記傾斜角度検知手段は、鉛直方向に対する前記回転軸の傾き角度を検知し、前記送信手段は、前記傾斜角度検出手段が検知した前記傾き角度に基づく信号を送信するコントローラとの間で通信可能な情報処理装置のコンピュータに実行させる情報処理プログラムであって、
受信手段が前記送信手段から信号を受信するステップと、
前記受信手段が前記角度の変更量に基づく信号と前記傾き角度に基づく信号とを受信したとき、情報処理手段が前記傾き角度を用いて前記角度の変更量を補正するステップと、
前記補正した変更量を用いて、前記情報処理手段が所定の処理を実行するステップと、
を含む複数のステップを前記コンピュータに実行させる情報処理プログラム。
【請求項22】
ユーザの一方の手で把持される第1の把持部と、前記ユーザの他方の手で把持される第2の把持部と、前記第1の把持部と前記第2の把持部とを、両者の相対位置を変更可能に連結する連結手段と、前記第1の把持部と前記第2の把持部との相対位置の変更量を検出する検出手段と、前記検出手段が検出する変更量に基づく信号を生成する信号生成手段と、前記信号生成手段が生成した信号を送信する送信手段と、を有し、前記連結手段は、主連結機構と、前記第1の把持部と前記主連結機構とを連結する第1の連結機構と、前記第2の把持部と前記主連結機構とを連結する第2の連結機構と、を有し、前記主連結機構は、前記第1の連結機構と前記第2の連結機構とを、主軸に沿って移動可能に連結し、前記第1の連結機構は、前記第1の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された回転軸を中心として回転可能に連結し、前記第2の連結機構は、前記第2の把持部と前記主連結機構とを、前記主軸とは異なる方向に設定された他の回転軸を中心として回転可能に連結し、前記回転軸と前記他の回転軸とは略平行に設定され、前記検出手段は、前記第1の把持部と前記主連結機構との間の前記回転軸を中心とした第1の角度変更量と、前記第2の把持部と前記主連結機構との間の前記他の回転軸を中心とした第2の角度変更量とを検出するコントローラとの間で通信可能な情報処理装置のコンピュータに実行させる情報処理プログラムであって、
受信手段が前記送信手段から信号を受信するステップと、
前記受信手段が前記第1の角度変更量に基づく信号と前記第2の角度変更量に基づく信号とを受信したとき、情報処理手段が前記第2の角度変更量を用いて前記第1の角度変更量を補正するステップと、
前記補正した変更量を用いて、前記情報処理手段が所定の処理を実行するステップと、
を含む複数のステップを前記コンピュータに実行させる情報処理プログラム。
【請求項23】
請求項18〜請求項22の何れかに記載の情報処理プログラムが記憶されたコンピュータ読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【公開番号】特開2008−102789(P2008−102789A)
【公開日】平成20年5月1日(2008.5.1)
【国際特許分類】
【出願番号】特願2006−285474(P2006−285474)
【出願日】平成18年10月19日(2006.10.19)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
【公開日】平成20年5月1日(2008.5.1)
【国際特許分類】
【出願日】平成18年10月19日(2006.10.19)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
[ Back to top ]