(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6385725
(24)【登録日】2018年8月17日
(45)【発行日】2018年9月5日
(54)【発明の名称】情報処理システム及び情報処理プログラム
(51)【国際特許分類】
G06T 19/00 20110101AFI20180827BHJP
A63F 13/211 20140101ALI20180827BHJP
A63F 13/5255 20140101ALI20180827BHJP
【FI】
G06T19/00 A
A63F13/211
A63F13/5255
【請求項の数】29
【全頁数】22
(21)【出願番号】特願2014-117951(P2014-117951)
(22)【出願日】2014年6月6日
(65)【公開番号】特開2015-230699(P2015-230699A)
(43)【公開日】2015年12月21日
【審査請求日】2017年4月27日
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100115808
【弁理士】
【氏名又は名称】加藤 真司
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】鈴木 一郎
(72)【発明者】
【氏名】阪口 翼
【審査官】
真木 健彦
(56)【参考文献】
【文献】
特開2012−239778(JP,A)
【文献】
特開2009−172010(JP,A)
【文献】
特開2011−191515(JP,A)
【文献】
米国特許出願公開第2010/0279770(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/048 − 3/0489
A63F 13/00 − 13/98
(57)【特許請求の範囲】
【請求項1】
コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かす情報処理部を含む情報処理システムであって、
前記情報処理部は、前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更するものであって、
前記情報処理部は、前記コントローラが第1の閾値を超えて動かされたときに、前記可動範囲内の所定の固定箇所において、前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外において、前記対応関係を変更するとともに、前記コントローラがさらに第2の閾値を超えて動かされたときに、前記可動範囲全体について、前記対応関係を変更する、情報処理システム。
【請求項2】
前記情報処理部は、前記仮想カメラの撮影画像を生成して表示装置に出力する、請求項1に記載の情報処理システム。
【請求項3】
前記表示装置をさらに含む、請求項2に記載の情報処理システム。
【請求項4】
前記情報処理部は、前記コントローラの所定のコントローラ軸周りの回転に応じて、前記仮想カメラを動かす、請求項1ないし3のいずれか一項に記載の情報処理システム。
【請求項5】
前記コントローラの回転は、ピッチ方向の回転である、請求項4に記載の情報処理システム。
【請求項6】
前記情報処理部は、前記コントローラの移動に応じて、前記仮想カメラを動かす、請求項1ないし5のいずれか一項に記載の情報処理システム。
【請求項7】
前記情報処理部は、前記仮想カメラを所定のカメラ軸周りに回転させる、請求項1ないし6のいずれか一項に記載の情報処理システム。
【請求項8】
前記仮想カメラの回転は、ピッチ方向の回転である、請求項7に記載の情報処理システム。
【請求項9】
前記情報処理部は、前記仮想カメラを移動させる、請求項1ないし6のいずれか一項に記載の情報処理システム。
【請求項10】
前記情報処理部は、前記仮想カメラの位置及び/又は姿勢が前記可動範囲の限界に達し、かつ前記コントローラの位置又は姿勢が前記第1の閾値を超えて動かされたとき、又は前記仮想カメラの位置及び/又は姿勢が前記可動範囲の限界に達し、かつ前記コントローラの姿勢が前記第1の閾値を超えた姿勢とされたときに、前記可動範囲内の所定の固定箇所において、前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外において、前記対応関係を変更する、請求項1ないし9のいずれか一項に記載の情報処理システム。
【請求項11】
前記情報処理部は、前記第1の閾値を超えて動かされ、又は前記第1の閾値を超えた姿勢とされた前記コントローラの位置又は姿勢と前記可動範囲の限界と対応付ける、請求項10に記載の情報処理システム。
【請求項12】
前記情報処理部は、前記仮想カメラが前記可動範囲の限界に達した後に前記コントローラがさらに動かされた度合に応じて前記対応関係を変更する、請求項1ないし11のいずれか一項に記載の情報処理システム。
【請求項13】
前記情報処理部は、前記コントローラが前記第2の閾値を超えて動かされたときに、前記対応関係を前記コントローラが動かされた方向にシフトさせる、請求項1に記載の情報処理システム。
【請求項14】
前記情報処理部は、前記仮想カメラの位置及び/又は姿勢が前記可動範囲の限界に達し、かつ前記コントローラの位置又は姿勢が前記第1の閾値を超えて動かされたとき、又は前記仮想カメラの位置及び/又は姿勢が前記可動範囲の限界に達し、かつ前記コントローラの姿勢が前記第1の閾値を超えた姿勢とされたときに、前記対応関係を前記コントローラが動かされた方向に引き伸ばす、請求項10に記載の情報処理システム。
【請求項15】
前記固定箇所は、前記仮想カメラの方向が前記仮想空間内において水平になる点を含む、請求項14に記載の情報処理システム。
【請求項16】
前記情報処理部は、前記可動範囲内の前記固定箇所以外において、前記コントローラが前記可動範囲の限界を超えて動かされた度合に応じて、前記対応関係を変更するとともに、前記コントローラが前記第2の閾値を超えて動かされたときに、前記可動範囲全体について、前記コントローラが前記第2の閾値を超えて動かされた度合に応じて、前記対応関係を変更する、請求項1に記載の情報処理システム。
【請求項17】
コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かす情報処理部を含む情報処理システムであって、
前記情報処理部は、前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更するものであって、
前記情報処理部は、前記コントローラが第1の閾値を超えて動かされたときに、前記可動範囲の全体について、前記対応関係を変更するとともに、前記コントローラがさらに第2の閾値を超えて動かされたときに、前記可動範囲内の所定の固定箇所において、前記第
2の閾値における前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外において、前記対応関係を変更する、情報処理システム。
【請求項18】
前記情報処理部は、前記可動範囲の全体について、前記コントローラが前記可動範囲の限界を超えて動かされた度合に応じて、前記対応関係を変更するとともに、前記コントローラが前記第2の閾値を超えて動かされたときに、前記可動範囲内の前記固定箇所以外において、前記コントローラが前記第2の閾値を超えて動かされた度合に応じて、前記対応関係を変更する、請求項17に記載の情報処理システム。
【請求項19】
前記情報処理部は、前記対応関係が変更された後に、前記所定の方向とは逆の方向に動かされたときに、変更された前記対応関係に従って、前記コントローラの動き又は姿勢に応じて前記仮想カメラを動かす、請求項1ないし18のいずれか一項に記載の情報処理システム。
【請求項20】
前記情報処理部は、前記コントローラが前記所定の方向とは逆の方向に、所定の変更限界まで動かされたときに、前記コントローラの前記所定の方向とは逆の方向の動き又は姿勢に応じて、変更前の前記対応関係との差が徐々に小さくなるように、前記対応関係を変更する、請求項1ないし19のいずれか一項に記載の情報処理システム。
【請求項21】
前記コントローラが前記所定の方向とは逆の方向に、前記所定の変更限界を超えて、前記仮想カメラが基準の撮影方向及び/又は基準の視点位置となるまで動かされたときに、前記対応関係を変更前の前記対応関係に戻す、請求項20に記載の情報処理システム。
【請求項22】
前記コントローラに所定の操作が行われたことに応じて、そのときの前記コントローラに前記仮想カメラの所定の撮影方向及び/又は視点位置を対応付ける、請求項1ないし21のいずれか一項に記載の情報処理システム。
【請求項23】
前記情報処理システムは、前記コントローラに備えられる、請求項1ないし22のいずれか一項に記載の情報処理システム。
【請求項24】
コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かすために、コンピュータに、前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更させる情報処理プログラムであって、
前記コントローラが第1の閾値を超えて動かされたときに、前記可動範囲内の所定の固定箇所において、前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外において、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更させるとともに、前記コントローラがさらに第2の閾値を超えて動かされたときに、前記可動範囲全体について、前記対応関係を変更させる、情報処理プログラム。
【請求項25】
コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かす情報処理装置であって、
前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更する情報処理装置であって、
前記コントローラが第1の閾値を超えて動かされたときに、前記可動範囲内の所定の固定箇所において、前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外におい
て、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更するとともに、前記コントローラがさらに第2の閾値を超えて動かされたときに、前記可動範囲全体について、前記対応関係を変更する、情報処理装置。
【請求項26】
コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かす情報処理方法であって、
前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更する情報処理方法であって、
前記コントローラが第1の閾値を超えて動かされたときに、前記可動範囲内の所定の固定箇所において、前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外において、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更するとともに、前記コントローラがさらに第2の閾値を超えて動かされたときに、前記可動範囲全体について、前記対応関係を変更する、情報処理方法。
【請求項27】
コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かすために、コンピュータに、前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更させる情報処理プログラムであって、
前記コントローラが第1の閾値を超えて動かされたときに、前記可動範囲の全体について、前記対応関係を変更させるとともに、前記コントローラがさらに第2の閾値を超えて動かされたときに、前記可動範囲内の所定の固定箇所において、前記第2の閾値における前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外において、前記対応関係を変更させる情報処理プログラム。
【請求項28】
コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かす情報処理装置であって、
前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更する情報処理装置であって、
前記コントローラが第1の閾値を超えて動かされたときに、前記可動範囲の全体について、前記対応関係を変更するとともに、前記コントローラがさらに第2の閾値を超えて動かされたときに、前記可動範囲内の所定の固定箇所において、前記第2の閾値における前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外において、前記対応関係を変更する、情報処理装置。
【請求項29】
コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かす情報処理方法であって、
前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更する前記コントローラが第1の閾値を超えて動かされたときに、前記可動範囲の全体について、前記対応関係を変更するとともに、前記コントローラがさらに第2の閾値を超えて動かされたときに、前記可動範囲内の所定の固定箇所において、前記第2の閾値における前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外において、前記対応関係を変更する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コントローラの動きに応じて仮想空間内の仮想カメラを動かすための情報処理システム及び情報処理プログラムに関するものである。
【背景技術】
【0002】
従来より、コントローラ自体の実空間での動きや姿勢を、仮想カメラの撮影方向や視点位置を変更するためのコントローラに対する入力とする情報処理システムが知られている。このような情報処理システムでは、ユーザが実空間でコントローラ自体を動かしてその姿勢や位置を変更する操作が、仮想空間内で仮想カメラの撮影方向や視点位置を変更する操作に対応しており、ユーザは、仮想カメラを直接操作しているような臨場感が得られる。
【0003】
本発明に関連する技術として、以下の先行技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2012−252468号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、コントローラの動きに応じて仮想空間内の仮想カメラを所定の可動範囲内で動かす情報処理システムにおいて、仮想カメラの操作性を向上することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一実施の形態の情報処理システムは、コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かす情報処理部を含む情報処理システムであって、前記情報処理部は、前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更する構成を有している。この構成により、コントローラの動き又は姿勢と仮想カメラの撮影方向及び/又は視点位置との対応関係が固定されないので、仮想カメラの撮影方向及び/又は視点位置が可動範囲の限界に達した後にさらにコントローラが動かされたときにも仮想カメラの操作性を向上させることができる。ここで、コントローラの動きには、コントローラの位置の変化及び姿勢の変化が含まれ、これらは例えば加速度センサによって検知できる。
【0007】
前記情報処理部は、前記仮想カメラの撮影画像を生成して表示装置に出力してよい。この構成により、ユーザは、コントローラの動きによって動かされる仮想カメラの撮影画像を見ることができる。
【0008】
上記の情報処理システムは、前記表示装置をさらに含んでいてよい。この構成により、ユーザは、コントローラの動きによって動かされる仮想カメラの撮影画像を見ることができる。
【0009】
前記情報処理部は、前記コントローラの所定のコントローラ軸周りの回転に応じて、前記仮想カメラを動かしてよい。この構成により、ユーザは、コントローラの実空間での姿勢を変更することで仮想カメラを動かすことができる。
【0010】
前記コントローラの回転は、ピッチ方向の回転であってよい。この構成により、ユーザは、コントローラの姿勢をピッチ方向に変更することで仮想カメラを動かすことができる。
【0011】
前記情報処理部は、前記コントローラの移動に応じて、前記仮想カメラを動かしてよい。この構成により、ユーザは、コントローラを実空間で移動させることで仮想カメラを動かすことができる。
【0012】
前記情報処理部は、前記仮想カメラを所定のカメラ軸周りに回転させてよい。この構成により、ユーザは、コントローラを動かすことで仮想カメラの撮影方向を変更することができる。
【0013】
前記仮想カメラの回転は、ピッチ方向の回転であってよい。この構成により、ユーザは、コントローラを動かすことで仮想カメラの撮影方向をピッチ方向に変更することができる。
【0014】
前記情報処理部は、前記仮想カメラを移動させてよい。この構成により、ユーザは、コントローラを動かすことで仮想カメラの視点位置を変更することができる。
【0015】
前記情報処理部は、前記仮想カメラの位置及び/又は姿勢が前記可動範囲の限界に達し、かつ前記コントローラの位置又は姿勢が所定の閾値を超えて動かされたとき、又は前記仮想カメラが前記可動範囲の限界に達し、かつ前記コントローラの姿勢が所定の閾値を超えた姿勢とされたときに、前記対応関係を変更してよい。この構成により、仮想カメラが動かなくなったら直ちに対応関係を変更するのではなく、仮想カメラの撮影方向及び/又は視点位置が可動範囲の限界を超えてコントローラがなお動かされた後に可動範囲が変更されるので、頻繁に対応関係が変更されることを回避できる。
【0016】
前記情報処理部は、前記閾値を超えて動かされ、又は前記閾値を超えた姿勢とされた前記コントローラの位置又は姿勢と前記可動範囲の限界と対応付けてよい。この構成により、コントローラが閾値を超えて動かされた後に反対方向に動かされたときに、仮想カメラをすぐに反対方向に動かすことができる。
【0017】
前記情報処理部は、前記仮想カメラが前記可動範囲の限界に達した後に前記コントローラがさらに動かされた度合に応じて前記対応関係を変更してよい。この構成により、コントローラの動き又は姿勢と仮想カメラの撮影方向及び/又は視点位置との対応関係を連続的に変化させることができる。
【0018】
前記情報処理部は、前記可動範囲の全体において、前記対応関係を変更してよい。この構成により、可動範囲の全体において対応関係が変更される。
【0019】
前記情報処理部は、前記対応関係を前記コントローラが動かされた方向にシフトさせてよい。この構成により、対応関係の形状を維持したまま対応関係が変更される。
【0020】
前記情報処理部は、前記可動範囲内の所定の固定箇所において、前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外において、前記対応関係を変更してよい。この構成により、固定箇所を固定としたまま、固定箇所以外で対応関係が変更される。
【0021】
前記情報処理部は、前記対応関係を前記コントローラが動かされた方向に引き伸ばしてよい。この構成により、変形することにより対応関係が変更される。
【0022】
前記固定箇所は、前記仮想カメラの方向が前記仮想空間内において水平になる点を含んでいてよい。この構成により、仮想カメラを水平にするコントローラの姿勢や位置における対応関係が固定される。
【0023】
前記情報処理部は、前記可動範囲内の所定の固定箇所において、前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外において、前記対応関係を変更するとともに、前記コントローラがさらに第2の閾値を超えて動かされたときに、前記可動範囲全体について、前記対応関係を変更してよい。この構成により、コントローラが閾値を超えて動かされたときに、まず対応関係を引き伸ばして、さらに第2の閾値(ストレッチ限界)を超えると、そこからは対応関係をシフトさせることができる。
【0024】
前記情報処理部は、前記可動範囲内の前記固定箇所以外において、前記コントローラが前記可動範囲の限界を超えて動かされた度合に応じて、前記対応関係を変更するとともに、前記コントローラが前記第2の閾値を超えて動かされたときに、前記可動範囲全体について、前記コントローラが前記第2の閾値を超えて動かされた度合に応じて、前記対応関係を変更してよい。この構成により、コントローラの動き又は姿勢に応じた量だけ対応関係が変更される。
【0025】
前記情報処理部は、前記可動範囲の全体について、前記対応関係を変更するとともに、前記コントローラがさらに第2の閾値を超えて動かされたときに、前記可動範囲内の所定の固定箇所において、前記第2の閾値における前記対応関係を維持しつつ、前記可動範囲内の前記固定箇所以外において、前記対応関係を変更してよい。この構成により、コントローラが閾値を超えて動かされたときに、まず対応関係をシフトさせて、さらに第2の閾値(シフト限界)を超えると、そこからは対応関係を引き伸ばすことができる。
【0026】
前記情報処理部は、前記可動範囲の全体について、前記コントローラが前記可動範囲の限界を超えて動かされた度合に応じて、前記対応関係を変更するとともに、前記コントローラが前記第2の閾値を超えて動かされたときに、前記可動範囲内の前記固定箇所以外において、前記コントローラが前記第2の閾値を超えて動かされた度合に応じて、前記対応関係を変更してよい。この構成により、コントローラの動き又は姿勢に応じた量だけ対応関係が変更される。
【0027】
前記情報処理部は、前記対応関係が変更された後に、前記所定の方向とは逆の方向に動かされたときに、変更された前記対応関係に従って、前記コントローラの動き又は姿勢に応じて前記仮想カメラを動かしてよい。この構成により、対応関係が変更された後にコントローラが元に戻る方向に動かされたときに、新たな対応関係で仮想カメラを動かすことができる。
【0028】
前記情報処理部は、前記コントローラが前記所定の方向とは逆の方向に、所定の変更限界まで動かされたときに、前記コントローラの前記所定の方向とは逆の方向の動き又は姿勢に応じて、変更前の前記対応関係との差が徐々に小さくなるように、前記対応関係を変更してよい。この構成により、変更限界を超えてコントローラが動かされたときに、対応関係を徐々にもとに戻すことができる。
【0029】
前記コントローラが前記所定の方向とは逆の方向に、前記所定の変更限界を超えて、前記仮想カメラが基準の撮影方向及び/又は基準の視点位置となるまで動かされたときに、前記対応関係を変更前の前記対応関係に戻してよい。この構成により、変更限界を超えてコントローラが動かされたときに、コントローラの動き又は姿勢と仮想カメラの動きとの対応関係を、変更前の対応関係に徐々に戻すことができる。
【0030】
前記コントローラに所定の操作が行われたことに応じて、そのときの前記コントローラに前記仮想カメラの所定の撮影方向及び/又は視点位置を対応付けてよい。この構成により、任意のコントローラの姿勢や位置において、仮想カメラの所定の撮影方向及び/又は視点位置を対応付けることができるので、コントローラを動かすことによって仮想カメラを動かす際のユーザにとってのコントローラの基準姿勢や基準位置を指定することができる。
【0031】
前記情報処理システムは、前記コントローラに備えられてよい。この構成により、コントローラにおいて、仮想カメラの動きとの対応関係を変更する処理を行うことができる。
【0032】
本発明の一実施の形態の情報処理プログラムは、コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かすための情報処理プログラムであって、この情報処理プログラムは、コンピュータに、前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更させる構成を有している。この構成によっても、コントローラの動き又は姿勢と仮想カメラの撮影方向及び/又は視点位置との対応関係が固定されないので、仮想カメラの撮影方向及び/又は視点位置が可動範囲の限界に達した後にさらにコントローラが動かされたときにも仮想カメラの操作性を向上させることができる。
【0033】
本発明の一実施の形態の情報処理装置は、コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かす情報処理装置であって、前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更する構成を有している。この構成によっても、コントローラの動き又は姿勢と仮想カメラの撮影方向及び/又は視点位置との対応関係が固定されないので、仮想カメラの撮影方向及び/又は視点位置が可動範囲の限界に達した後にさらにコントローラが動かされたときにも仮想カメラの操作性を向上させることができる。
【0034】
本発明の一実施の形態の情報処理方法は、コントローラの動き又は姿勢に応じて仮想空間内の仮想カメラを所定の可動範囲内で動かす情報処理方法であって、前記コントローラの所定の方向の動き又は姿勢に応じて前記仮想カメラの撮影方向及び/又は視点位置が前記可動範囲の限界に達した後に、前記コントローラの動き又は姿勢と前記仮想カメラの撮影方向及び/又は視点位置との対応関係を変更する構成を有している。この構成によっても、コントローラの動き又は姿勢と仮想カメラの撮影方向及び/又は視点位置との対応関係が固定されないので、仮想カメラの撮影方向及び/又は視点位置が可動範囲の限界に達した後にさらにコントローラが動かされたときにも仮想カメラの操作性を向上させることができる。
【発明の効果】
【0035】
本発明によれば、コントローラの動き又は姿勢と仮想カメラの撮影方向及び/又は視点位置との対応関係が固定されないので、仮想カメラが可動範囲の限界に達した後にさらにコントローラが動かされたときにも仮想カメラの操作性を向上させることができる。
【図面の簡単な説明】
【0036】
【
図1】本発明の実施の形態における据置型のゲーム装置を含むゲームシステムの一例を示す外観図
【
図2】本発明の実施の形態におけるユーザがコントローラを把持した様子の一例を示す図
【
図3】本発明の実施の形態における情報処理システムの構成を示すブロック図
【
図4】本発明の実施の形態におけるユーザがコントローラを把持してゲームをプレイする様子の一例を示す図
【
図5】本発明の実施の形態におけるユーザがコントローラを把持した様子の一例を示す図
【
図6】本発明の実施の形態におけるコントローラのピッチ角度と仮想カメラのピッチ率との対応関係の一例を示すグラフ
【
図7】本発明の実施の形態における対応関係の変更方法の一例(シフト)を示す対応関係のグラフ
【
図8】本発明の実施の形態における対応関係の変更方法の一例(ストレッチ)を示す対応関係のグラフ
【
図9】本発明の実施の形態における対応関係を徐々に戻す場合の対応関係を示すグラフ
【
図10】本発明の実施の形態における対応関係の変更方法の一例(ストレッチ後にシフト)を示す対応関係のグラフ
【
図11】本発明の実施の形態における対応関係の変更方法の一例(シフト後にストレッチ)を示す対応関係のグラフ
【発明を実施するための形態】
【0037】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
【0038】
以下、本発明の一実施の形態として、本発明の実施の形態の情報処理システム10が据置型のゲーム装置2を含むゲームシステム1に適用される場合を説明する。
図1は、据置型のゲーム装置を含むゲームシステム1の一例を示す外観図である。
【0039】
図1において、ゲームシステム1は、表示手段の一例である家庭用テレビジョン受像機(以下、モニタと記載する)3と、モニタ3に接続コードを介して接続する据置型のゲーム装置2とから構成される。モニタ3は、ゲーム装置2から出力された音声信号を音声出力するためのスピーカ3aを備える。また、ゲーム装置2は、情報処理プログラム(典型的にはゲームプログラム)を記録した光ディスク4と、光ディスク4のプログラムを実行してゲーム画面をモニタ3及び/又はコントローラ5に表示出力させるためのコンピュータを搭載したゲーム装置2と、表示画面に表示されたオブジェクト等を操作するために必要な操作情報をゲーム装置2に与えるためのコントローラ5とを含む。
【0040】
ゲームシステム1は、コントローラ5を用いたゲーム操作に基づいて、ゲーム装置2においてゲーム処理を実行し、ゲーム処理によって得られる撮影画像(ゲーム画像)をモニタ3及び/又はコントローラ5に表示するものである。なお、ゲーム装置2とコントローラ5とは、無線によって無線通信可能に接続される。例えば、上記無線通信は、Bluetooth(登録商標)規格やIEEE802.11n規格に従って実行されるが、赤外線など他の規格に従って実行されてもよい。
【0041】
ゲーム装置2には、当該ゲーム装置2に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置2において実行されるための情報処理プログラムが記憶されている。ゲーム装置2の前面には、光ディスク4の挿入口が設けられている。ゲーム装置2は、挿入口に挿入された光ディスク4に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。ゲーム装置2は、ゲーム装置2に内蔵されるフラッシュメモリに予め情報処理プログラムを記録しておき、その情報処理プログラムを実行してもよい。
【0042】
ゲーム装置2には、モニタ3が接続コードを介して接続される。モニタ3は、ゲーム装置2において実行されるゲーム処理によって得られるゲーム画像を表示する。モニタ3はスピーカ3aを有しており、スピーカ3aは、上記ゲーム処理の結果得られるゲーム音声を出力する。なお、他の実施形態においては、ゲーム装置2と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置2とモニタ3との通信は無線通信であってもよい。
【0043】
図2は、ユーザがコントローラ5を把持した様子の一例を示す図である。コントローラ5は、大略的には横長の長方形の板状形状であるハウジング50を備える。ハウジング50は、ユーザが把持することができる程度の大きさである。したがって、ユーザは、コントローラ5を持ってその姿勢や位置が変更されるように自由に(回転の3自由度及び移動の3自由度の計6自由度で)動かすことができる。
【0044】
コントローラ5は、ハウジング50の表面に、表示装置の一例であるタッチパネル51を有する。タッチパネル51は、LCD(Liquid Crystal Display)パネルと抵抗膜方式のタッチセンサとからなる。タッチパネル51は、ハウジング50の表面の中央付近に設けられる。したがって、ユーザは、
図2に示すようにタッチパネル51の両側部分のハウジング50を持つことによって、タッチパネル51の画面を見ながらコントローラ5を持って動かすことができる。コントローラ5は、ハウジング50の表面に露出して設けられた複数個の操作ボタン(十字キー等を含む)が設けられている。
【0045】
コントローラ5は、コントローラ通信モジュールを内蔵するゲーム装置2に操作情報を無線送信する。また、コントローラ5は、ゲーム装置2で生成された画像(例えばゲーム画像)のデータをゲーム装置2から受信し、当該データが示す画像をタッチパネル51に表示する。なお、本実施形態ではタッチパネル51にLCDを用いているが、タッチパネル51は、例えばEL(Electro Luminescence)を利用した表示装置等、他の任意の表示装置を有していてもよい。また、タッチセンサは、静電容量式等の他の方式のものであってもよい。
【0046】
本実施の形態では、ゲーム装置2がゲーム処理を実行することで提供される三次元の仮想空間内でのゲームが展開される。ユーザがコントローラ5を動かしてその位置や姿勢を変更することによって、仮想空間内の仮想カメラの撮影方向(仮想カメラの姿勢)、及び視点位置(仮想カメラの仮想空間内における位置)が変更される。ここで仮想カメラとは、仮想空間内に仮想的に設定されるカメラであり、モニタ3やタッチパネル51には、この仮想カメラで仮想空間を撮影したときに得られる画像が表示される。
【0047】
図3は、本発明の実施の形態の情報処理システムの構成を示すブロック図である。本実施の形態の情報処理システム10は、コントローラ5とゲーム装置2とからなる。コントローラ5は、ボタン11と、加速度センサ12と、ジャイロセンサ13と、情報処理部14と、通信部15と、表示部16とを備えている。ゲーム装置2は、通信部21と、情報処理部22と、対応関係記憶部23とを備えている。
図3に示す本実施の形態の情報処理システム10は、コントローラ5とゲーム装置2とからなるが、
図3に示す情報処理システム10のすべての構成がコントローラ5に備えられていており、コントローラ5のみによって情報処理システム10が構成されていてもよい。なお、情報処理システム10が表示部16を備えていなくてもよい。また、コントローラ5とゲーム装置2とが有線で接続される場合には通信部15の代わりに、有線接続のためのインターフェースを備えていればよい。
【0048】
ボタン11は、コントローラ5の操作ボタンに相当する。このボタン11が操作されると、ボタン11は操作情報を情報処理部14に出力する。なお、
図3には、ボタン11が1つのみ図示されているが、ボタン11は複数であってもよい。
【0049】
加速度センサ12は、コントローラ5に生じる加速度(重力加速度を含む)を検出し、検出した加速度を示す加速度データを情報処理部14に出力する。加速度センサ12が検出した加速度は、コントローラ5自体の姿勢(傾斜角度)や移動に対応して変化するので、ゲーム装置2の情報処理部22は、この加速度データを用いてコントローラ5の姿勢や移動を算出することができる。
【0050】
ジャイロセンサ13は、コントローラ5に設定された3軸回りの角速度をそれぞれ検出し、検出した角速度を示す角速度データを情報処理部14に出力する。ジャイロセンサ13が検出した角速度は、コントローラ5自体の姿勢(傾斜角度)や移動に対応して変化するので、ゲーム装置2の情報処理部22は、この角速度データを用いてコントローラ5の姿勢や移動を算出することができる。このように、ユーザは、コントローラ5に設けられた操作ボタンを押下すること、及びコントローラ5自体を動かしてその姿勢(傾斜角度)を変え、かつ/又は移動させることによってゲーム操作を行うことができる。
【0051】
情報処理部14は、CPU(Central Processing Unit)が情報処理プログラムを実行することで実現される。情報処理部14は、加速度センサ12で検出したコントローラ5に生じる加速度及びジャイロセンサ13で検出したコントローラ5の角速度の情報を通信部15に出力して、通信部15にそれらの情報を送信させる。
【0052】
通信部15は、ゲーム装置2とBluetooth(登録商標)規格やIEEE802.11n規格に従ってコントローラ5の加速度や角速度の情報を含む各種のデータを送信する。また、通信部15は、ゲーム装置2から、ゲームが行われている仮想空間の画像(ゲーム画像)を受信する。このゲーム画像は、ゲーム装置2が、コントローラ5から受信したコントローラ5の加速度や角速度の情報に基づいて、仮想カメラを動かして、その仮想カメラによって撮影された仮想空間の画像である。表示部16は、上記で説明したタッチパネル51に相当し、ゲーム装置2から受信したゲーム画像を表示する。
【0053】
ゲーム装置2の通信部21は、コントローラ5の通信部15から送信されてきた情報を受信して情報処理部22に出力する。情報処理部22は、CPU(Central Processing Unit)が本実施の形態の情報処理プログラムを実行することで実現される。情報処理部22は、コントローラ5から送信された加速度や角速度の情報に基づいて、コントローラ5の動き(姿勢及び/又は移動)を算出する。情報処理部22は、算出したコントローラ5の動きに応じて仮想空間内の仮想カメラを動かすための演算を行う。具体的には、情報処理部22は、コントローラ5の動きに応じて仮想空間内の仮想カメラの撮影方向及び/又は視点位置を算出する。対応関係記憶部23には、コントローラ5の動き又は姿勢と仮想カメラの撮影方向及び/又は視点位置との対応関係が記憶されている。情報処理部22は、コントローラ5の動き又は姿勢を算出すると、対応関係記憶部23を参照して、算出されたコントローラ5の動き又は姿勢に対応する仮想カメラの撮影方向及び/又は視点位置を求める。以下では、対応関係記憶部23に、コントローラ5の姿勢と仮想カメラの撮影方向との対応関係が記憶されており、情報処理部22がコントローラの姿勢に基づいて仮想カメラの撮影方向を求める場合を例に説明する。
【0054】
本実施の形態では、ユーザは、コントローラ5の姿勢を変更することで、仮想カメラの撮影方向を変更できる。以下では、コントローラ5のピッチ方向の回転(コントローラ5をユーザが把持したときの横方向の軸(コントローラ軸)周りの回転)によって、仮想カメラをピッチ方向に回転(カメラの撮像面に平行な水平軸(カメラ軸)周りの回転)させる例を説明する。この例では、対応関係記憶部23には、コントローラ5のピッチ角度と仮想カメラのピッチ率との対応関係が記憶される。
【0055】
ここで、仮想カメラのピッチ率とは、本実施の形態では、仮想カメラの見上げ具合及び見下げ具合をいい、カメラの視点位置及び撮影方向に応じて、−1〜+1の範囲で変化する値である。なお、本実施の形態では、仮想カメラはその撮影方向に応じて視点位置が変化する。本実施の形態では、ピッチ率1付近では仮想カメラの位置を比較的低いところに設定し、かつ、ピッチ率−1付近では仮想カメラの位置を比較的高いところに設定する。従って、仮想カメラについては撮影方向のピッチ角度ではなく、ピッチ率でコントローラ5のピッチ角度との対応関係を表現している。なお、仮想カメラの視点位置はピッチ率の変化に応じて変化せず、固定としてもよい。この場合には、ピッチ率は即ち仮想カメラの撮影方向の変化具合となる。また、仮想カメラの撮影方向はピッチ率の変化に応じて変化せず、固定としてもよい。この場合には、ピッチ率は即ち視点位置の変化具合となる。
【0056】
図4は、ユーザがコントローラ5を把持してゲームをプレイする様子の一例を示す図であり、
図5は、ユーザがコントローラ5を把持した様子の一例を示す図である。以下の説明では、
図4及び
図5に示すように、コントローラ5の表(おもて)面(タッチパネル51を有する面)に垂直な方向aが鉛直上向き方向bとなす角度αをコントローラ5のピッチ角度と定義する。即ち、コントローラ5の表面が真上を向くときのピッチ角度は0度であり、コントローラ5の表面がユーザに向くときのピッチ角度を90度とする。
【0057】
図4では、ユーザは、起立してゲームをプレイしているが、着座してゲームをプレイすることもある。いずれにしても、ユーザがコントローラ5を把持して自然な姿勢をとると、コントローラ5の表面は、真上を向くのではなく、ユーザに向くように垂直に起立することもなく、例えば、
図5に示すように、表面が真上に向く姿勢からユーザ側に向くように若干傾けられた姿勢となる。即ち、ユーザがコントローラ5を把持して自然な姿勢をとると、ユーザによって個人差はあるものの、ピッチ角度は20度〜30度程度となる。
【0058】
図6は、対応関係記憶部23に記憶されたコントローラ5のピッチ角度と仮想カメラのピッチ率との対応関係の一例を示すグラフである。この例の対応関係CR1では、コントローラのピッチ角度が30度であるときに、仮想カメラのピッチ率が0になる。ここで、仮想カメラのピッチ率は、本実施の形態では仮想カメラの撮影方向に対応し、例えば、ピッチ率1は仮想カメラの撮影方向が鉛直上向きに向いていることに対応し、ピッチ率−1は仮想カメラの撮影方向が鉛直下向きに向いていることに対応しており、ピッチ率0は仮想カメラの撮影方向が水平方向に向いていることに対応している。
【0059】
図6に示すように、コントローラ5のピッチ角度の変化に応じて仮想カメラのピッチ率は変化するが、仮想カメラはピッチ率1〜−1の可動範囲内でのみ動くことができる。コントローラ5のピッチ角度と仮想カメラのピッチ率との対応関係CR1は、仮想カメラのピッチ率が可動範囲の上限に達する点P1(60度,1)、ピッチ率0の点P2(30度,0)、仮想カメラのピッチ率が可動範囲の下限に達する点P3(0度,−1)を通る滑らかな近似曲線であってよく、例えばこの3点を通るベジェ曲線、2次関数、高次関数、正弦関数、対数関数等の非線形関数であってよい。また、対応関係は直線等の線形関数であってもよい。なお、P1とP2の間、及び/又はP2とP3の間は、直線であってもよい。
【0060】
仮想カメラのピッチ率が可動範囲の限界に達した後にさらにコントローラ5のピッチ角度が変化しても、仮想カメラはそれ以上撮影方向及び視点位置を変更できない。
図6の例では、コントローラ5のピッチ角度が60度になると仮想カメラのピッチ率は可動範囲の限界である1となり、コントローラ5のピッチ角度がさらに大きくなっても、仮想カメラのピッチ率は大きくならない。同様に、コントローラのピッチ角度が0度になると仮想カメラのピッチ率は可動範囲の限界である−1となり、コントローラ5のピッチ角度がさらに小さくなっても、仮想カメラのピッチ率は小さくならない。
【0061】
コントローラ5のピッチ角度と仮想カメラのピッチ率との対応関係CR1を変更しないとすると、例えばピッチ角度が80度になるまでコントローラ5が傾けられ、ユーザが、そこからピッチ角度が小さくなるようにコントローラ5を戻した場合にも、コントローラ5のピッチ角度が60度になるまでは、仮想カメラのピッチ率は変化しないことになる。
図6の例のように、仮想カメラの撮影方向が水平になるときの対応するコントローラ5のピッチ角度が30度である場合に、例えばユーザが10度程度〜80度程度のピッチ角度でコントローラ5を傾けて仮想カメラのピッチ率を変化させようとする場合には、ピッチ角度60度〜80度の範囲では、仮想カメラを動かすことができないことになる。
【0062】
そこで、本実施の形態では、コントローラ5を傾けることによって仮想カメラのピッチ率が可動範囲の限界に達し、かつコントローラ5がピッチ角度についての所定の閾値(コントローラ限界)を超えて傾けられたときに、コントローラ5のピッチ角度と仮想カメラのピッチ率との対応関係(以下単に「対応関係」ともいう。)を変更する。ここで、仮想カメラのピッチ率が可動範囲の上限となるときのピッチ角度より大きいピッチ角度が上側の閾値として設定され、仮想カメラのピッチ率が可動範囲の下限となるときのピッチ角度より小さいピッチ角度が、下側の閾値として設定される。コントローラ5のピッチ角度が上側の閾値より大きくなると対応関係が変更され、また、コントローラ5のピッチ角度が下側の閾値より小さくなると対応関係が変更される。本実施の形態では、コントローラ5のピッチ角度(姿勢)についてのこれらの閾値は、仮想カメラのピッチ率が可動範囲の限界に達したときのコントローラ5のピッチ角度と一致している。すなわち、仮想カメラのピッチ率が可動範囲の限界に達してさらにコントローラ5が傾けられると、直ちに対応関係が変更される。対応関係の変更の方法としては、種々の方法がある。以下、各種の対応関係の変更の例を説明する。
【0063】
(シフト)
図7は、対応関係の変更方法の一例(シフト)を示す対応関係のグラフである。この例では、情報処理部22は、コントローラ限界を超えて傾けられたコントローラ5のピッチ角度と可動範囲の限界と対応付けるように、可動範囲の全体について、もとの対応関係CR1を変更する。具体的には、情報処理部22は、コントローラ5が閾値を超えて傾けられると(コントローラ5の姿勢が所定の閾値を超えた姿勢とされると)、コントローラ5がピッチ率の可動範囲の限界である点P1を超えて傾けられた度合に応じて対応関係をシフトする。
図7に示すように、コントローラ5のピッチ角度が点P1の60度を超えてさらに大きくなると、コントローラ5のピッチ角度に応じて対応関係のグラフが右方向に移動していく。
【0064】
図7に示すように、コントローラ5のピッチ角度が75度になるまで傾けられると、可動範囲の限界を超えてさらに15度傾けられたことになるので、対応関係CR1は、可動範囲の全体について+15度分横方向にシフトして、対応関係CR2とされる。対応関係CR1と対応関係CR2のグラフの形状は同じである。このシフトによって、コントローラ5のピッチ角度75度が仮想カメラのピッチ率の可動範囲の上限(ピッチ率1)と対応付けられる。よって、ピッチ角度75度の点P4からピッチ角度が小さくなるようにコントローラ5の傾きが戻されると、仮想カメラのピッチ率は、変更された対応関係CR2に従って、コントローラ5のピッチ角度の変化に応じて変化する。そして、コントローラ5のピッチ角度が45度になったところで、仮想カメラのピッチ率が0となり、仮想カメラの撮影方向は水平方向となる。
【0065】
このように、変更後の対応関係CR2では、可動範囲の限界がコントローラ限界を超えて傾けられたコントローラ5のピッチ角度に対応しているので、コントローラ5がコントローラ限界を超えて傾けられた後にコントローラ5のピッチ角度が戻されると、直ちに仮想カメラのピッチ率がコントローラ5のピッチ角度の減少に伴って減少する。
【0066】
情報処理部22は、コントローラ5がピッチ角度の閾値を超えてなお傾けられると、対応関係記憶部23に記憶されている対応関係CR1を読み出して、コントローラ5が仮想カメラの可動範囲の限界P1を超えて傾けられた度合に応じて対応関係CR1をシフトすることで、対応関係CR2を求める。なお、対応関係記憶部23に、コントローラ5が仮想カメラの可動範囲の限界P1を超えて傾けられた度合に応じて対応関係CR1をシフトさせた対応関係が、コントローラ5が仮想カメラの可動範囲の限界P1を超えて傾けられた度合と対応付けられて記憶されていてもよい。この場合には、情報処理部22は、コントローラ5が仮想カメラの可動範囲の限界P1を超えて傾けられた度合に応じて、その度合いに対応付けられた対応関係を読み出すことで、対応関係を変更する。
【0067】
以上のように、この対応関係の変更方法によれば、対応関係が仮想カメラの全可動範囲についてシフトするので、仮想カメラの撮影方向を水平にするときのコントローラ5の姿勢を自動で調整することができる。
【0068】
(ストレッチ)
図8は、対応関係の変更方法の一例(ストレッチ)を示す対応関係のグラフである。この例でも、情報処理部22は、ピッチ角度の閾値を超えて傾けられたコントローラ5のピッチ角度と仮想カメラの可動範囲の限界と対応付けるように対応関係を変更するが、本例では、ピッチ率が0(仮想カメラの撮影方向が水平)となる固定点P2(20度,0)の対応関係を維持しつつ、仮想カメラの可動範囲の限界が閾値を超えて傾けられたコントローラ5のピッチ角度に対応するように、対応関係のグラフを引き伸ばして対応関係CR3とする。
【0069】
この例においても、コントローラ5がピッチ角度の閾値を超えて傾けられた後にコントローラ5のピッチ角度が戻されると、変更後の対応関係CR3に従って、コントローラ5のピッチ角度に応じて仮想カメラのピッチ率が変化する。変更後の対応関係CR3では、仮想カメラの可動範囲の限界が閾値を超えて傾けられたコントローラ5のピッチ角度に対応しているので、コントローラ5が閾値を超えて傾けられた後にコントローラ5のピッチ角度が戻されると、直ちに仮想カメラのピッチ率がコントローラ5のピッチ角度の減少に伴って減少する。
【0070】
対応関係記憶部23には、コントローラ5が仮想カメラの可動範囲の限界P1を超えて傾けられた度合に応じた対応関係(対応関係CR1を引き伸ばした対応関係)が、コントローラ5が仮想カメラの可動範囲の限界P1を超えて傾けられた度合と対応付けられて記憶されている。情報処理部22は、コントローラ5が仮想カメラの可動範囲の限界P1を超えて傾けられた度合に応じて、その度合いに対応付けられた対応関係を読み出すことで、対応関係を変更する。対応関係記憶部23に記憶された各対応関係も、対応関係CR1と同様に、仮想カメラの可動範囲の限界(上限及び下限)とピッチ率が0となる点の3点を通るベジェ曲線等として求められて、対応関係記憶部23に記憶されている。なお、情報処理部22は、コントローラ5が仮想カメラの可動範囲の限界P1を超えて傾けられたときに、その都度その度合いに応じて対応関係を算出してもよい。
【0071】
以上のように、この対応関係の変更方法によれば、ピッチ率0即ち仮想カメラの撮影方向が水平になるときのコントローラ5の姿勢(基準姿勢)が変化しないので、基準姿勢が頻繁に変更されることによるユーザの違和感を回避できる。
【0072】
上記のように、コントローラ5が仮想カメラの可動範囲の限界P1を超えて傾けられた後に、コントローラ5のピッチ角度が戻されるときに、仮想カメラのピッチ率が0になるまでこの変更後の対応関係CR3に従ってコントローラ5のピッチ角度に応じてピッチ率を変化させてもよいが、対応関係を徐々にもとの対応関係CR1に戻すようにしてもよい。
【0073】
図9は、対応関係を徐々に戻す場合の対応関係を示すグラフである。
図9の例では、コントローラ5のピッチ角度が40度となる変更限界P5を下回ると、仮想カメラのピッチ率は、対応関係CR3ではなく、コントローラ5が仮想カメラの可動範囲の限界P1を超えて傾けられた度合がより小さい場合の変更後の対応関係に従って変化する。そして、仮想カメラのピッチ率は、変更限界P5を下回ってピッチ率0に対応するピッチ角度30度に近づくほど、コントローラ5が仮想カメラの可動範囲の限界P1を超えて傾けられた度合がより小さい場合の変更後の対応関係に従って変化し、ピッチ角度が30度になるときの対応関係は、もとの対応関係CR1とされる。すなわち、コントローラ5のピッチ角度が変更限界P5を超えてピッチ率が0になる点に向けて小さくなると、対応関係の変化が徐々に小さくなるように対応関係を変更する。なお、もとの対応関係CR1に戻る点は、仮想カメラのピッチ率が0になる点(コントローラ5のピッチ角度が30度になる点でなくてもよく、例えば、コントローラのピッチ角度が15度となる点で、もとの対応関係CR1に戻るようにしてもよい。
【0074】
このような対応関係の変更によって、
図9に示すように、コントローラ5のピッチ角度を小さくすることで仮想カメラのピッチ率を0に近づけるときに、仮想カメラのピッチ率は、変更限界P5に達した後は、曲線CR3´に従って、コントローラ5のピッチ角度に応じて減少する。コントローラ5のピッチ角度が小さくなるときに、曲線CR3´に従って仮想カメラのピッチ率が減少しているときに、再びコントローラ5のピッチ率が大きくなるようにコントローラ5が傾けられると、仮想カメラのピッチ率はそのときの対応関係に従って上昇する。なお、
図9では、対応関係CR1と対応関係CR3との間に代表して3本の対応関係を図示しているが、実際にはより多くの対応関係があり、コントローラ5のピッチ角度の減少に伴って、対応関係CR1により近い対応関係が採用される。
【0075】
なお、上記の例では、もとの対応関係CR1を引き伸ばして変更する際に、固定される箇所が、仮想カメラのピッチ率が0となる点であったが、この固定される点は仮想カメラのピッチ率が可動範囲内の任意の値に対応していてよい。また、固定される箇所は点に限らず、所定の幅を持つ範囲であってよい。例えば、仮想カメラのピッチ率が−0.3〜0.3となる範囲について、もとの対応関係CR1を維持し、その外側において対応関係を変更してもよい。
【0076】
また、上記の例では、コントローラ5のピッチ角度が変更限界P5を下回って小さくなるのに従って、対応関係が徐々にもとの対応関係CR1に近づくように変化したが、これに代えて、コントローラ5のピッチ角度の減少速度に応じて、もとの対応関係CR1に近づくように徐々に対応関係を変更してもよい。さらに、コントローラ5のピッチ角度が閾値を超えた後にピッチ角度が戻されるときに、ピッチ角度の減少速度に応じて変更限界P5を可変に設定してもよい。例えば、ピッチ角度の減少速度が大きい場合(即ち、急激にもとの姿勢に戻される場合)には、ピッチ角度がより高いところに変更限界を設定してよい。また、変更限界P5は設けずに、コントローラ5のピッチ角度が戻され始めたら直ちに徐々に対応関係CR1により近い対応関係に従うように対応関係を変更し始めてもよい。換言すれば、コントローラ5のピッチ角度が戻され始める点を変更限界P5としてもよい。
【0077】
(ストレッチ後にシフト)
図10は、対応関係の変更方法の一例(ストレッチ後にシフト)を示す対応関係のグラフである。この例でも、情報処理部22は、コントローラ限界P1を超えて傾けられたコントローラ5のピッチ角度を仮想カメラの可動範囲の限界と対応付けるように対応関係を変更する。本例では、情報処理部22は、まずは、ピッチ率が0(仮想カメラの撮影方向が水平)となる固定点P2(20度,0)の対応関係を維持しつつ、仮想カメラの可動範囲の限界が閾値を超えて傾けられたコントローラ5のピッチ角度に対応するように、対応関係のグラフを引き伸ばす。コントローラ5がコントローラ限界P1より大きい第2の閾値(ストレッチ限界)P6に達して対応関係CR3まで引き伸ばされ、コントローラ5がストレッチ限界P6を超えてさらに傾けられると、コントローラ5のピッチ角度と仮想カメラの可動範囲の限界と対応付けるように、可動範囲の全体について対応関係CR3をシフトさせる。
【0078】
図10では、コントローラ5がストレッチ限界である75度の点P6を超えて90度の点P7まで傾けられて対応関係CR4とされる例を示している。対応関係CR4は、対応関係CR3をコントローラ5のピッチ角度の方向に+15度シフトしたものであり、これに従うと、コントローラ5のピッチ角度が45度となったときに仮想カメラのピッチ率は0になる。
【0079】
(シフト後にストレッチ)
図11は、対応関係の変更方法の一例(シフト後にストレッチ)を示す対応関係のグラフである。この例でも、情報処理部22は、仮想カメラの可動範囲の限界P1を超えて傾けられたコントローラ5のピッチ角度を仮想カメラの可動範囲の限界と対応付けるように対応関係を変更する。本例では、情報処理部22は、まずは、コントローラ5のピッチ角度と仮想カメラの可動範囲の限界と対応付けるように、可動範囲の全体について、もとの対応関係CR1をシフトさせる。コントローラ5が仮想カメラの可動範囲の限界P1に対応する閾値より大きい第2の閾値(シフト限界)P8に達して対応関係CR5までシフトされ、コントローラ5がシフト限界P8を超えてさらに傾けられると、ピッチ率が0(仮想カメラの撮影方向が水平)となる固定点P10(45度,0)の対応関係を維持しつつ、可動範囲の限界がシフト限界P8を超えて傾けられたコントローラ5のピッチ角度に対応するように、対応関係CR5のグラフを引き伸ばす。
【0080】
図11では、コントローラ5がシフト限界である75度の点P8を超えて90度の点P9まで傾けられて対応関係CR6とされる例を示している。対応関係CR6は、対応関係CR5をコントローラ5のピッチ角度の方向に引き伸ばしたものであり、これに従うと、コントローラ5のピッチ角度が45度となったときに仮想カメラのピッチ率は0になる。
【0081】
以上の4種類の対応関係の変更方法の例の説明では、コントローラ5のピッチ角度が大きくなって仮想カメラの可動範囲の上限に達した場合の対応関係の変更について説明したが、コントローラ5のピッチ角度が小さくなって仮想カメラの可動範囲の下限に達した場合にも上記と同様にして対応関係を変更できる。
【0082】
(リセット)
ユーザは、リセットボタンを操作することで対応関係をリセットすることができる。情報処理部22は、ボタン11における所定のボタン操作(リセットボタンの押下)の検出に応じて、そのときのコントローラ5のピッチ角度にて仮想カメラのピッチ率を0にする。よって、ユーザがコントローラ5のリセットボタンを押すと、そのときのコントローラ5の姿勢(ピッチ角度)が、基準姿勢として、仮想カメラの撮影方向が水平方向となる状態に対応付けられる。なお、このときの対応関係のグラフは対応関係CR1と同じ形状とされる。
【0083】
情報処理部22は、上記のようにして変更される対応関係に従って、コントローラ5のピッチ角度に応じて仮想カメラのピッチ率を求める。情報処理部22は、三次元仮想空間内でゲームを進行させるとともに、算出した仮想カメラのピッチ率に従って仮想カメラの撮影画像(即ち、仮想空間のゲーム画像)を生成し、モニタ3及びコントローラ5に送信する。モニタ3及びコントローラ5のタッチパネル51は、ゲーム装置2より受信した撮影画像を表示する。
【0084】
以上のように、本実施の形態の情報処理システム10によれば、コントローラ5の動きと仮想カメラの動きとの対応関係が固定されないので、仮想カメラが可動範囲の限界を超え、かつコントローラ5の姿勢が閾値を超えた姿勢とされたときにも仮想カメラの操作性を向上させることができる。
【0085】
なお、上記の実施の形態では、コントローラ5のピッチ方向の回転に応じて仮想カメラのピッチ率が変化する例を示したが、コントローラ5の動き(位置の変化(移動)又は姿勢の変化)に応じて仮想カメラのピッチ率を変化させるようにしてもよい。上述のように、コントローラ5の実空間における移動や姿勢の変化は、加速度センサ12やジャイロセンサ13を用いることで情報処理部22によって算出できる。この場合には、対応関係記憶部23は、コントローラ5の動きと仮想カメラの撮影方向及び/又は視点位置との対応関係を記憶し、情報処理部22は、仮想カメラが可動範囲の限界を超え、かつコントローラ5の位置又は姿勢が閾値を超えた動かされたときに、対応関係を変更する。また、コントローラ5の動きや姿勢に応じて仮想空間内における仮想カメラの視点位置を移動させてもよく、コントローラ5の動きや姿勢に応じて、仮想カメラの撮影方向を変更してもよい。
【0086】
また、上記の実施の形態では、ゲーム装置2とタッチパネル51を有するコントローラ5とが別体として構成されていたが、これらが一体的となり、携帯型のゲーム装置が構成されてもよい。また、コントローラ5がタッチパネル51を備えていなくてもよい。
【0087】
また、上記の実施の形態では、加速度センサ12やジャイロセンサ13を用いてコントローラ5の姿勢や移動を算出したが、他の方法によってコントローラ5の姿勢や移動を算出してもよい。例えば、コントローラ5にカメラを設けるとともに、モニタ3にマーカとして2つのLEDモジュールを設置し、コントローラ5のカメラでこの2つのマーカを撮影して、この撮影画像を解析することでコントローラ5の姿勢や移動を算出してもよい。
【0088】
また、上記の実施の形態では、対応関係を変更し始めるコントローラ限界が、仮想カメラの可動範囲の限界と一致していたが、コントローラ限界は、仮想カメラの可動範囲の上限に対応するピッチ角度よりも大きい角度に設定され、仮想カメラの可動範囲の下限に対応するピッチ角度よりも小さい角度に設定されてもよい。即ち、コントローラ5が仮想カメラの可動範囲の限界に対応するピッチ角度を超えて、さらに所定の角度だけ傾けられたときに、対応関係を変更するようにしてもよい。こうすることで、仮想カメラの可動範囲の限界に対応するピッチ角をわずかに超えてコントローラ5が傾けられた後に直ちにコントローラ5の姿勢が戻された場合には、対応関係が変更されることがない。ユーザは、仮想カメラの可動範囲の限界に達したことをモニタ3やタッチパネル51の画面で確認できるので、そのような状態になったときに直ちにコントローラ5の姿勢を元に戻すことがあるが、このような場合には対応関係が変更されないことになる。よって、対応関係の頻繁な変更による操作性の劣化や処理負荷を抑えることができる。
【0089】
また、上記の実施の形態では、コントローラ5のピッチ角度が仮想カメラの可動範囲の限界に対応するピッチ角度を超えたときに、可動範囲の限界がコントローラ5のピッチ角度に一致するように、対応関係を変更したが、対応関係の変更の方法はこれに限られない。例えば、仮想カメラの可動範囲の限界に対応するピッチ角度と、その角度を超えて傾けられたコントローラ5のピッチ角度との間のピッチ角度(例えば両ピッチ角度の中間)と可動範囲の限界とが一致するように対応関係を変更してもよい。こうすることで、仮想カメラの可動範囲の限界を超えてコントローラ5を傾けた後にコントローラ5の姿勢を基に戻す方向に傾けていったときに、仮想カメラのピッチ率は直ちには変化しないが、対応関係をまったく変更しない場合と比較して早く仮想カメラのピッチ率がコントローラ5の姿勢の変更に対応して変化することになる。
【0090】
また、上記の実施の形態では、仮想カメラの可動範囲の限界を超えて傾けられたコントローラ5のピッチ角度に応じて対応関係が複数とおりに変更されたが、変更後の対応関係は一通りであってもよい。
【0091】
また、上記の実施の形態では、仮想カメラのピッチ率が0(撮影方向が水平)となるコントローラ5のピッチ角度と仮想カメラの可動範囲の上限に対応するコントローラ5のピッチ角度との角度差(|60度−30度|=30度)が、仮想カメラのピッチ率が0となるコントローラ5のピッチ角度と仮想カメラの可動範囲の下限に対応するコントローラ5のピッチ角度との角度差(|0度−30度|=30度)と同じであったが、本発明はこれに限られず、仮想カメラのピッチ率が0となるコントローラ5のピッチ角度と仮想カメラの可動範囲の上限に対応するコントローラ5のピッチ角度との角度差が、仮想カメラのピッチ率が0となるコントローラ5のピッチ角度と仮想カメラの可動範囲の下限に対応するコントローラ5のピッチ角度との角度差より大きくても小さくてもよい。
【0092】
さらに、上記の実施の形態では、仮想カメラの撮影方向が水平となる状態がピッチ率0と対応付けられたが、仮想カメラの撮影方向が水平から所定のピッチ角度を有する状態をピッチ率0としてもよい。
【0093】
また、上述のように情報処理システム10の情報処理部22と対応関係記憶部23は、コントローラ5に備えられていてもよく、この場合には、コントローラ5のみによって情報処理システム10が構成される。
【符号の説明】
【0094】
1 情報処理システム
2 ゲーム装置
3 家庭用テレビジョン受像機(モニタ)
4 光ディスク
5 コントローラ
50 ハウジング
51 タッチパネル
11 ボタン
12 加速度センサ
13 ジャイロセンサ
14 情報処理部
15 通信部
16 表示部
21 通信部
22 情報処理部
23 対応関係記憶部