図面 (/)

技術 入力システム、情報処理装置、情報処理プログラム、および指示位置算出方法

出願人 任天堂株式会社
発明者 西田憲一山下善一嶋村隆行
出願日 2010年11月17日 (11年3ヶ月経過) 出願番号 2010-256909
公開日 2012年6月7日 (9年8ヶ月経過) 公開番号 2012-108722
状態 特許登録済
技術分野 電子ゲーム機 イメージ生成 イメージ処理・作成 表示による位置入力
主要キーワード 基準設定処理 マーカ装置 組込み式 指示位置データ ボタン面 振動対 内蔵プログラム プラスチック成型
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2012年6月7日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

表示装置画面上の位置を指定するための操作装置をより広範囲の方向に向けて使用することを可能とする。

解決手段

入力システムでは、表示装置の画面上において操作装置によって指示される指示位置が算出される。入力システムは、姿勢算出部と、特定部と、指示位置算出部とを備える。姿勢算出部は、操作装置の姿勢を算出する。特定部は、複数の表示装置のうちで操作装置が向いている表示装置を操作装置の姿勢に基づいて特定する。指示位置算出部は、特定部によって特定された表示装置の画面上の位置として、操作装置の姿勢に応じた指示位置を算出する。

概要

背景

従来、ユーザが操作装置表示装置画面の方に向けることによって画面上の位置を指示することが可能な入力システムがある。例えば、特許文献1には、ジャイロセンサ等の検知結果から操作装置の姿勢を算出し、算出された姿勢に基づいて画面上の位置を算出する技術が記載されている。これによれば、ユーザは、操作装置の姿勢を変化させることによって画面上の任意の位置を指示することができる。

概要

表示装置の画面上の位置を指定するための操作装置をより広範囲の方向に向けて使用することを可能とする。入力システムでは、表示装置の画面上において操作装置によって指示される指示位置が算出される。入力システムは、姿勢算出部と、特定部と、指示位置算出部とを備える。姿勢算出部は、操作装置の姿勢を算出する。特定部は、複数の表示装置のうちで操作装置が向いている表示装置を操作装置の姿勢に基づいて特定する。指示位置算出部は、特定部によって特定された表示装置の画面上の位置として、操作装置の姿勢に応じた指示位置を算出する。

目的

本発明の目的は、画面上の位置を指定するための操作装置をより広範囲の方向に向けて使用することができる入力システム、情報処理装置情報処理プログラム、および、指示位置算出方法を提供する

効果

実績

技術文献被引用数
2件
牽制数
5件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

表示装置画面上において操作装置によって指示される指示位置を算出する入力システムであって、前記操作装置の姿勢を算出する姿勢算出部と、複数の表示装置のうちで前記操作装置が向いている表示装置を前記操作装置の姿勢に基づいて特定する特定部と、前記特定部によって特定された表示装置の画面上の位置として、前記操作装置の姿勢に応じた指示位置を算出する第1指示位置算出部とを備える、入力システム。

請求項2

前記操作装置は慣性センサを備えており、前記姿勢算出部は、前記慣性センサの出力に基づいて前記操作装置の姿勢を算出する、請求項1に記載の入力システム。

請求項3

前記操作装置が表示装置の方を向いている場合の姿勢を表す基準姿勢表示装置毎に記憶する基準姿勢記憶部をさらに備え、前記特定部は、前記姿勢算出部が算出した姿勢と各前記基準姿勢とに基づいて、前記操作装置が向いている表示装置を特定する、請求項1または請求項2に記載の入力システム。

請求項4

前記操作装置が所定の状態となった場合における前記操作装置の姿勢を前記基準姿勢として前記基準姿勢記憶部に設定する基準設定部をさらに備える、請求項3に記載の入力システム。

請求項5

前記操作装置は、撮像部をさらに有しており、前記複数の表示装置にそれぞれ対応して設置されるマーカ部をさらに備え、前記基準設定部は、前記撮像部が前記マーカ部を撮像している場合における前記操作装置の姿勢を、当該マーカ部に対応する表示装置に対応する基準姿勢として設定する、請求項4に記載の入力システム。

請求項6

前記撮像部による撮像画像内における前記マーカ部の位置に基づいて前記指示位置を算出する第2指示位置算出部と、前記第2指示位置算出部によって算出された指示位置に所定の画像を表示する所定画像表示制御部とをさらに備え、前記基準設定部は、前記所定の画像が表示される場合に前記姿勢算出部によって算出される前記操作装置の姿勢を前記基準姿勢として設定する、請求項5に記載の入力システム。

請求項7

前記操作装置はユーザによって操作可能な操作部を有しており、前記基準設定部は、前記操作部に対する所定の操作が行われた場合における前記操作装置の姿勢を前記基準姿勢として設定する、請求項4から請求項6のいずれか1項に記載の入力システム。

請求項8

前記基準設定部は、前記第2指示位置算出部によって算出された指示位置が表示装置の画面の所定領域内となった場合における前記操作装置の姿勢を、当該表示装置に対応する基準姿勢として設定する、請求項6に記載の入力システム。

請求項9

前記マーカ部は発光部材を有しており、前記基準設定部が前記複数の表示装置のうちの第1の表示装置の基準姿勢を設定する場合、当該第1の表示装置に対応するマーカ部のみを点灯し、前記基準設定部が前記複数の表示装置のうちの第2の表示装置の基準姿勢を設定する場合、当該第2の表示装置に対応するマーカ部のみを点灯する点灯制御部をさらに備える、請求項5から請求項8のいずれか1項に記載の入力システム。

請求項10

前記姿勢算出部は、前記撮像部による撮像画像内における前記マーカ部の位置に基づいて前記操作装置の姿勢を算出する、請求項5から請求項9のいずれか1項に記載の入力システム。

請求項11

記入力システムは、情報処理装置と、前記複数の表示装置の1つとして可搬型の表示装置と、前記可搬型の表示装置とは別体の所定の表示装置に対応するマーカ部として赤外線発光可能なマーカ装置とを含み、前記情報処理装置は、所定の情報処理に基づいて第1の画像を逐次生成する第1画像生成部と、所定の情報処理に基づいて第2の画像を逐次生成する第2画像生成部と、前記第2の画像を逐次圧縮して圧縮画像データを生成する画像圧縮部と、前記圧縮画像データを前記可搬型の表示装置へ無線で逐次送信するデータ送信部と、前記所定の表示装置へ前記第1の画像を逐次出力する画像出力部とを備え、前記可搬型の表示装置は、当該可搬型の表示装置に対応するマーカ部として、赤外線を発光可能な赤外発光部と、前記情報処理装置から前記圧縮画像データを逐次受信する画像受信部と、前記圧縮画像データを逐次伸張して前記第2の画像を得る画像伸張部と、伸張によって得られた前記第2の画像を逐次表示する表示部とを備える、請求項5から請求項10のいずれか1項に記載の入力システム。

請求項12

前記第1指示位置算出部は、前記操作装置が向いている表示装置に対応する基準姿勢に対する現在の姿勢の変化量および変化方向に応じて指示位置を算出する、請求項3から請求項11のいずれか1項に記載の入力システム。

請求項13

前記特定部によって特定されていない表示装置には少なくとも、前記操作装置が向いている方向を表す方向画像を表示する方向画像表示制御部をさらに備える、請求項1から請求項12のいずれか1項に記載の入力システム。

請求項14

請求項1から請求項13のいずれか1項に記載の入力システムと、前記第1指示位置算出部が算出した指示位置を入力としてゲーム処理を実行するゲーム処理部とを備える、ゲームシステム

請求項15

前記操作装置が表示装置の方を向いている場合の姿勢を表す基準姿勢を表示装置毎に記憶する基準姿勢記憶部と、前記操作装置が所定の状態となった場合における前記操作装置の姿勢を前記基準姿勢として前記基準姿勢記憶部に設定する基準設定部とをさらに備え、前記特定部は、前記姿勢算出部が算出した姿勢と各前記基準姿勢とに基づいて、前記操作装置が向いている表示装置を特定し、前記ゲーム処理部は、前記各基準姿勢の差に応じて異なるゲーム処理を実行する、請求項14に記載のゲームシステム。

請求項16

前記ゲーム処理部は、ゲーム空間を表す画像を前記複数の表示装置のうちの所定の表示装置に表示させる第1ゲーム画像表示制御部と、ユーザによる所定の指示があった場合、前記第1指示位置算出部が算出した指示位置に表示されるゲームオブジェクトを選択する選択部と、選択されたゲームオブジェクトを指示位置の移動と共に移動させるオブジェクト移動部と、ゲームオブジェクトが選択された状態で、前記特定部によって特定される表示装置が変化した場合、変化後の表示装置の画面上における指示位置に当該ゲームオブジェクトを表示する第2ゲーム画像表示制御部とを有する、請求項14または請求項15に記載のゲームシステム。

請求項17

表示装置の画面上において操作装置によって指示される指示位置を算出するための入力システムに含まれる1以上の情報処理装置によって実行される指示位置算出方法であって、前記操作装置の姿勢を算出する姿勢算出ステップと、複数の表示装置のうちで前記操作装置が向いている表示装置を前記操作装置の姿勢に基づいて特定する特定ステップと、前記特定ステップにおいて特定された表示装置の画面上の位置として、前記操作装置の姿勢に応じた指示位置を算出する第1指示位置算出ステップとを含む、指示位置算出方法。

請求項18

前記操作装置は慣性センサを備えており、前記姿勢算出ステップにおいて前記情報処理装置は、前記慣性センサの出力に基づいて前記操作装置の姿勢を算出する、請求項17に記載の指示位置算出方法。

請求項19

前記情報処理装置がアクセス可能な記憶手段には、前記操作装置が表示装置の方を向いている場合の姿勢を表す基準姿勢が記憶されており、前記特定ステップにおいて前記情報処理装置は、前記姿勢算出ステップにおいて算出された姿勢と各前記基準姿勢とに基づいて、前記操作装置が向いている表示装置を特定する、請求項17または請求項18に記載の指示位置算出方法。

請求項20

前記操作装置が所定の状態となった場合における前記操作装置の姿勢を前記基準姿勢として前記記憶手段に設定する基準設定ステップをさらに含む、請求項19に記載の指示位置算出方法。

請求項21

前記操作装置は、撮像部をさらに有しており、前記入力システムは、前記複数の表示装置にそれぞれ対応して設置されるマーカ部をさらに含み、前記基準設定ステップにおいて前記情報処理装置は、前記撮像部が前記マーカ部を撮像している場合における前記操作装置の姿勢を、当該マーカ部に対応する表示装置に対応する基準姿勢として設定する、請求項20に記載の指示位置算出方法。

請求項22

前記撮像部による撮像画像内における前記マーカ部の位置に基づいて前記指示位置を算出する第2指示位置算出ステップと、前記第2指示位置算出ステップにおいて算出された指示位置に所定の画像を表示する所定画像表示制御ステップとをさらに備え、前記基準設定ステップにおいて前記情報処理装置は、前記所定の画像が表示される場合に前記姿勢算出ステップにおいて算出される前記操作装置の姿勢を前記基準姿勢として設定する、請求項21に記載の指示位置算出方法。

請求項23

前記操作装置はユーザによって操作可能な操作部を有しており、前記基準設定ステップにおいて前記情報処理装置は、前記操作部に対する所定の操作が行われた場合における前記操作装置の姿勢を前記基準姿勢として設定する、請求項20から請求項22のいずれか1項に記載の指示位置算出方法。

請求項24

前記基準設定ステップにおいて前記情報処理装置は、前記第2指示位置算出ステップにおいて算出された指示位置が表示装置の画面の所定領域内となった場合における前記操作装置の姿勢を、当該表示装置に対応する基準姿勢として設定する、請求項22に記載の指示位置算出方法。

請求項25

前記マーカ部は発光部材を有しており、前記基準設定ステップにおいて前記複数の表示装置のうちの第1の表示装置の基準姿勢が設定される場合、当該第1の表示装置に対応するマーカ部のみを点灯し、前記基準設定ステップにおいて前記複数の表示装置のうちの第2の表示装置の基準姿勢が設定される場合、当該第2の表示装置に対応するマーカ部のみを点灯する点灯制御ステップをさらに含む、請求項21から請求項24のいずれか1項に記載の指示位置算出方法。

請求項26

前記姿勢算出ステップにおいて前記情報処理装置は、前記基準姿勢として設定するための前記操作装置の姿勢を算出する場合、前記操作装置が備える慣性センサの出力に基づいて姿勢を算出し、前記第1指示位置算出ステップにおいて指示位置を算出するための姿勢を算出する場合、前記慣性センサの出力に加えてさらに、前記撮像部による撮像画像内における前記マーカ部の位置に基づいて姿勢を算出する、請求項21から請求項25のいずれか1項に記載の指示位置算出方法。

請求項27

前記第1指示位置算出ステップにおいて前記情報処理装置は、前記操作装置が向いている表示装置に対応する基準姿勢に対する現在の姿勢の変化量および変化方向に応じて指示位置を算出する、請求項19から請求項26のいずれか1項に記載の指示位置算出方法。

請求項28

前記特定ステップにおいて特定された表示装置以外の表示装置に、前記操作装置が向いている方向を表す方向画像を表示する方向画像表示制御ステップをさらに含む、請求項17から請求項27のいずれか1項に記載の指示位置算出方法。

請求項29

1以上のゲーム装置によって実行されるゲーム処理方法であって、請求項17から請求項28のいずれか1項に記載の指示位置算出方法によって指示位置を算出するステップと、算出された指示位置を入力としてゲーム処理を実行するゲーム処理ステップとを含む、ゲーム処理方法。

請求項30

前記操作装置が表示装置の方を向いている場合の姿勢を表す基準姿勢として、前記操作装置が所定の状態となった場合における前記操作装置の姿勢を設定する基準設定ステップをさらに含み、前記特定ステップにおいて前記情報処理装置は、前記姿勢算出ステップにおいて算出された姿勢と各前記基準姿勢とを比較することによって、前記操作装置が向いている表示装置を特定し、前記ゲーム処理ステップにおいて前記情報処理装置は、前記各基準姿勢の差に応じて異なるゲーム処理を実行する、請求項29に記載のゲーム処理方法。

請求項31

前記ゲーム処理ステップは、ゲーム空間を表す画像を前記複数の表示装置のうちの所定の表示装置に表示させる第1表示制御ステップと、ユーザによる所定の指示があった場合、前記第1指示位置算出ステップにおいて算出された指示位置に表示されるゲームオブジェクトを選択する選択ステップと、選択されたゲームオブジェクトを指示位置の移動と共に移動させるオブジェクト移動ステップと、ゲームオブジェクトが選択された状態で、前記特定ステップにおいて特定される表示装置が変化した場合、変化後の表示装置の画面上における指示位置に当該ゲームオブジェクトを表示する第2表示制御ステップとを有する、請求項29または請求項30に記載のゲーム処理方法。

請求項32

表示装置の画面上において操作装置によって指示される指示位置を算出する情報処理装置であって、前記操作装置の姿勢を算出する姿勢算出部と、複数の表示装置のうちで前記操作装置が向いている表示装置を前記操作装置の姿勢に基づいて特定する特定部と、前記特定部によって特定された表示装置の画面上の位置として、前記操作装置の姿勢に応じた指示位置を算出する第1指示位置算出部とを備える、情報処理装置。

請求項33

前記操作装置は慣性センサを備えており、前記姿勢算出部は、前記慣性センサの出力に基づいて前記操作装置の姿勢を算出する、請求項32に記載の情報処理装置。

請求項34

前記操作装置が表示装置の方を向いている場合の姿勢を表す基準姿勢を表示装置毎に記憶する基準姿勢記憶部と、前記操作装置が所定の状態となった場合における前記操作装置の姿勢を前記基準姿勢として前記基準姿勢記憶部に設定する基準設定部とをさらに備え、前記特定部は、前記姿勢算出部が算出した姿勢と各前記基準姿勢とに基づいて、前記操作装置が向いている表示装置を特定する、請求項32または請求項33に記載の情報処理装置。

請求項35

前記操作装置は、撮像部をさらに有しており、前記基準設定部は、前記複数の表示装置にそれぞれ対応して設置されるマーカ部を前記撮像部が撮像している場合における前記操作装置の姿勢を、当該マーカ部に対応する表示装置に対応する基準姿勢として設定する、請求項34に記載の情報処理装置。

請求項36

前記撮像部による撮像画像内における前記マーカ部の位置に基づいて前記指示位置を算出する第2指示位置算出部と、前記第2指示位置算出部によって算出された指示位置に所定の画像を表示する所定画像表示制御部とをさらに備え、前記基準設定部は、前記所定の画像が表示される場合に前記姿勢算出部によって算出される前記操作装置の姿勢を前記基準姿勢として設定する、請求項35に記載の情報処理装置。

請求項37

表示装置の画面上において操作装置によって指示される指示位置を算出する情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、前記操作装置の姿勢を算出する姿勢算出手段と、複数の表示装置のうちで前記操作装置が向いている表示装置を前記操作装置の姿勢に基づいて特定する特定手段と、前記特定手段によって特定された表示装置の画面上の位置として、前記操作装置の姿勢に応じた指示位置を算出する第1指示位置算出手段として前記コンピュータを機能させる、情報処理プログラム。

請求項38

前記操作装置は慣性センサを備えており、前記姿勢算出手段は、前記慣性センサの出力に基づいて前記操作装置の姿勢を算出する、請求項37に記載の情報処理プログラム。

請求項39

前記操作装置が表示装置の方を向いている場合の姿勢を表す基準姿勢として、前記操作装置が所定の状態となった場合における前記操作装置の姿勢を、前記情報処理装置がアクセス可能な記憶手段に記憶する基準設定手段として前記コンピュータをさらに機能させ、前記特定手段は、前記姿勢算出手段が算出した姿勢と各前記基準姿勢とに基づいて、前記操作装置が向いている表示装置を特定する、請求項37または請求項38に記載の情報処理プログラム。

請求項40

前記操作装置は、撮像部をさらに有しており、前記基準設定手段は、前記複数の表示装置にそれぞれ対応して設置されるマーカ部を前記撮像部が撮像している場合における前記操作装置の姿勢を、当該マーカ部に対応する表示装置に対応する基準姿勢として設定する、請求項39に記載の情報処理プログラム。

請求項41

前記撮像部による撮像画像内における前記マーカ部の位置に基づいて前記指示位置を算出する第2指示位置算出手段と、前記第2指示位置算出手段によって算出された指示位置に所定の画像を表示する所定画像表示制御手段として前記コンピュータをさらに機能させ、前記基準設定手段は、前記所定の画像が表示される場合に前記姿勢算出手段によって算出される前記操作装置の姿勢を前記基準姿勢として設定する、請求項40に記載の情報処理プログラム。

技術分野

0001

本発明は、操作装置によって表示装置画面上の位置を指示することが可能な入力システム、ならびに、当該入力システムにおいて用いられる情報処理装置情報処理プログラム、および指示位置算出方法に関する。

背景技術

0002

従来、ユーザが操作装置を表示装置の画面の方に向けることによって画面上の位置を指示することが可能な入力システムがある。例えば、特許文献1には、ジャイロセンサ等の検知結果から操作装置の姿勢を算出し、算出された姿勢に基づいて画面上の位置を算出する技術が記載されている。これによれば、ユーザは、操作装置の姿勢を変化させることによって画面上の任意の位置を指示することができる。

先行技術

0003

特開2010−207329号公報

発明が解決しようとする課題

0004

操作装置を用いて画面上の位置を指定する従来の入力システムでは表示装置は1つであったので、ユーザは、表示装置の方を向く所定範囲の方向にのみ操作装置を向けて操作を行っていた。つまり、従来の入力システムでは、操作装置自体は自由な方向に向けて使用できるものの、画面上の位置を指定する操作においては、操作装置は限られた範囲の方向のみを向くように使用されていた。

0005

それ故、本発明の目的は、画面上の位置を指定するための操作装置をより広範囲の方向に向けて使用することができる入力システム、情報処理装置、情報処理プログラム、および、指示位置算出方法を提供することである。

課題を解決するための手段

0006

本発明は、上記の課題を解決するために、以下の(1)〜(16)の構成を採用した。

0007

(1)
本発明の一例は、表示装置の画面上において操作装置によって指示される指示位置を算出する入力システムである。入力システムは、姿勢算出部と、特定部と、第1指示位置算出部とを備える。姿勢算出部は、操作装置の姿勢を算出する。特定部は、複数の表示装置のうちで操作装置が向いている表示装置を操作装置の姿勢に基づいて特定する。第1指示位置算出部は、特定部によって特定された表示装置の画面上の位置として、操作装置の姿勢に応じた指示位置を算出する。

0008

上記「表示装置」は、後述する実施形態における端末装置テレビの他、画像を表示可能な任意の表示装置を含む概念である。
上記「操作装置」は、ユーザによってその姿勢が操作可能なものであればどのような物であってもよい。操作装置は、後述するコントローラ5のように姿勢を算出するためのセンサを含んでいてもよいし、含んでいなくてもよい。なお、操作装置がセンサを含んでいない場合には、入力システムは、例えば操作装置を撮像し、撮像結果から操作装置の姿勢を算出するようにしてもよい。
上記「指示位置」は、表示装置の画面上の位置であって、操作装置の所定軸指し示す位置である。ただし、指示位置は、操作装置の姿勢に応じて変化するように算出されればよく、上記所定軸と画面との交点の位置を厳密に表すものである必要はない。
上記「入力システム」は、後述する実施形態のようなゲームシステムの他、指示位置を入力として用いる任意の情報処理システムを含む概念である。
上記「姿勢算出部」は、操作装置の姿勢を算出すればよく、その算出方法はどのような方法であってもよい。
上記「特定部」は、操作装置の所定軸が表示装置の位置あるいはその周囲の所定範囲の位置を向いている場合に当該表示装置を「操作装置が向いている表示装置」として特定する。なお「特定部」は、複数の表示装置のうちから、操作装置が向いている表示装置を特定するが、操作装置の姿勢によっては表示装置を特定しない場合があってもよい。
上記「第1指示位置算出部」は、操作装置の姿勢に応じた指示位置を算出すればよく、その算出方法はどのような方法であってもよい。

0009

上記(1)の構成によれば、複数の表示装置のうちで操作装置が向いている表示装置を、操作装置の姿勢に基づいて特定することができる。そして、特定された表示装置の画面上の位置として、操作装置の姿勢に応じた指示位置が算出される。これによれば、操作装置がどちらの表示装置を向いているかを判断することができ、操作装置が向いている方の表示装置の画面上の位置として指示位置を算出することができる。したがって、本実施形態によれば、操作装置を用いて複数の表示装置に対してポインティング操作を行うことができ、より広範囲の方向に向けて操作装置を使用することができる。

0010

(2)
操作装置は慣性センサを備えていてもよい。このとき、姿勢算出部は、慣性センサの出力に基づいて操作装置の姿勢を算出する。

0011

上記「慣性センサ」は、センサの出力に基づいて姿勢を算出可能なセンサであればどのようなものであってよく、例えばジャイロセンサや加速度センサである。

0012

上記(2)の構成によれば、慣性センサの出力を用いることによって、操作装置の姿勢を精度良く算出することができる。また、慣性センサの出力を用いることによって、(例えば操作装置がマーカ部を撮像することができる範囲等に限らず)広い範囲で操作装置の姿勢を算出することができる。

0013

(3)
入力システムは、操作装置が表示装置の方を向いている場合の姿勢を表す基準姿勢表示装置毎に記憶する基準姿勢記憶部をさらに備えていてもよい。このとき、特定部は、姿勢算出部が算出した姿勢と各基準姿勢とに基づいて、操作装置が向いている表示装置を特定する。

0014

上記「基準姿勢記憶部」は、入力システムがアクセス可能な記憶手段(メモリ等)であればどのような記憶手段であってもよい。
上記「姿勢算出部が算出した姿勢と各基準姿勢とに基づいて表示装置を特定する」とは、例えば、各基準姿勢のうちで、姿勢算出部が算出した姿勢に最も近い基準姿勢に対応する表示装置を特定したり、姿勢算出部が算出した姿勢との差が所定範囲内となる基準姿勢に対応する表示装置を特定したりすることを含む。

0015

上記(3)の構成によれば、姿勢算出部が算出する現在の姿勢と、基準姿勢とを用いることによって、操作装置がいずれの表示装置の方を向いているかを容易かつ正確に判定することができる。

0016

(4)
入力システムは、操作装置が所定の状態となった場合における操作装置の姿勢を基準姿勢として基準姿勢記憶部に設定する基準設定部をさらに備えていてもよい。

0017

上記「所定の状態」とは、例えば、ユーザが所定の操作を行った状態(下記(5))、操作装置の撮像部が表示装置に対応するマーカ部を撮像している状態(下記(7))、または、指示位置が表示装置の画面の所定領域内に位置した状態(下記(8))である。

0018

上記(4)の構成によれば、ユーザは、操作装置を所定の状態とすることによって、その状態における操作装置の姿勢を基準姿勢として設定することができる。これによれば、各表示装置位置関係が変化する場合であっても適切に基準姿勢を設定することができ、その結果、操作装置がいずれの表示装置の方を向いているかを正確に判定することができる。

0019

(5)
操作装置は、撮像部をさらに有していてもよい。このとき、入力システムは、複数の表示装置にそれぞれ対応して設置されるマーカ部をさらに備える。基準設定部は、撮像部がマーカ部を撮像している場合における操作装置の姿勢を、当該マーカ部に対応する表示装置に対応する基準姿勢として設定する。

0020

上記(5)の構成によれば、操作装置の撮像部がマーカ部を撮像していることを条件として、この条件を満たす場合における操作装置の姿勢が基準姿勢として設定される。これによれば、マーカ部を適切な位置に配置する(例えば、マーカ部を表示装置の周囲に配置する)ことによって、操作装置が表示装置(マーカ部)を向くかどうかを正確に判定することができ、基準姿勢を正確に設定することができる。

0021

(6)
入力システムは、第2指示位置算出部と、所定画像表示制御部とをさらに備えていてもよい。第2指示位置算出部は、撮像部による撮像画像内におけるマーカ部の位置に基づいて指示位置を算出する。所定画像表示制御部は、第2指示位置算出部によって算出された指示位置に所定の画像を表示する。基準設定部は、所定の画像が表示される場合に姿勢算出部によって算出される操作装置の姿勢を基準姿勢として設定する。

0022

上記(6)の構成によれば、第2指示位置算出部によって算出される指示位置に所定の画像が表示される場合に、基準姿勢の設定が可能となる。これによれば、ユーザは、基準姿勢の設定が行われる際に、所定の画像を見ることで操作装置の姿勢を確認することができ、操作装置が表示装置を向いているかどうかを確認することができる。これによって基準姿勢の設定操作がユーザにとって行いやすくなる。

0023

(7)
操作装置はユーザによって操作可能な操作部を有していてもよい。このとき、基準設定部は、操作部に対する所定の操作が行われた場合における操作装置の姿勢を基準姿勢として設定する。

0024

上記「操作部」は、ボタンまたはスティックであってもよいし、タッチパネルタッチパッド等であってもよい。

0025

上記(7)の構成によれば、ユーザが所定の操作を行った場合における操作装置の姿勢が基準姿勢として設定される。これによれば、操作装置が表示装置の方を向いているとユーザが実際に感じる姿勢が基準姿勢として設定されるので、プレイヤは自分が操作しやすい姿勢を基準姿勢として設定することができるので、ポインティング操作がより行いやすくなる。

0026

(8)
基準設定部は、第2指示位置算出部によって算出された指示位置が表示装置の画面の所定領域内となった場合における操作装置の姿勢を、当該表示装置に対応する基準姿勢として設定してもよい。

0027

上記「所定領域」とは、後述する実施形態においては、画面の中央位置を含む領域であるが、表示装置の画面内の領域であればどのようなものであってもよい。

0028

上記(8)の構成によれば、指示位置が所定領域内となるように操作装置が表示装置の方へ向けられた場合に基準姿勢が設定される。これによれば、プレイヤは操作装置を表示装置の方へ向けるだけで基準姿勢を設定することができるので、設定操作を容易に行うことができる。また、実際に指示位置が表示装置の画面の方を向いた姿勢が基準姿勢となるので、基準姿勢を正確に設定することができる。

0029

(9)
マーカ部は発光部材を有していてもよい。このとき、入力システムは、点灯制御部をさらに備える。点灯制御部は、基準設定部が複数の表示装置のうちの第1の表示装置の基準姿勢を設定する場合、当該第1の表示装置に対応するマーカ部のみを点灯し、基準設定部が複数の表示装置のうちの第2の表示装置の基準姿勢を設定する場合、当該第2の表示装置に対応するマーカ部のみを点灯する。

0030

上記(9)の構成によれば、基準姿勢が設定される表示装置に対応するマーカ部が点灯され、他のマーカ部が消灯されるので、撮像部が他の表示装置に対応するマーカ部を誤って検知することを防止することができる。これによって、基準姿勢をより正確に設定することができる。

0031

(10)
姿勢算出部は、撮像部による撮像画像内におけるマーカ部の位置に基づいて操作装置の姿勢を算出してもよい。

0032

上記(10)の構成によれば、撮像画像内におけるマーカ部の位置を用いることによって、操作装置の姿勢を正確に算出することができる。

0033

(11)
入力システムは、情報処理装置と、複数の表示装置の1つとして可搬型の表示装置と、当該可搬型の表示装置とは別体の所定の表示装置に対応するマーカ部として赤外線発光可能なマーカ装置とを含んでいてもよい。
情報処理装置は、第1画像生成部と、第2画像生成部と、画像圧縮部と、データ送信部と、画像出力部とを備える。第1画像生成部は、所定の情報処理に基づいて第1の画像を逐次生成する。第2画像生成部は、所定の情報処理に基づいて第2の画像を逐次生成する。画像圧縮部は、第2の画像を逐次圧縮して圧縮画像データを生成する。データ送信部は、圧縮画像データを可搬型の表示装置へ無線で逐次送信する。画像出力部は、所定の表示装置へ第1の画像を逐次出力する。
可搬型表示装置は、赤外発光部と、画像受信部と、画像伸張部と、表示部とを備える。赤外発光部は、当該可搬型表示装置に対応するマーカ部であり、赤外線を発光可能である。画像受信部は、情報処理装置から圧縮画像データを逐次受信する。画像伸張部は、圧縮画像データを逐次伸張して第2の画像を得る。表示部は、伸張によって得られた第2の画像を逐次表示する。

0034

上記「情報処理装置」は、後述する実施形態におけるゲーム装置のようなゲーム用の情報処理装置であってもよいし、一般的なパーソナルコンピュータのような多用途の情報処理装置であってもよい。
上記「可搬型」とは、ユーザが手に持って動かしたり、任意の位置に配置を変更したりすることができる程度の大きさである意味である。
上記「所定の表示装置」とは、可搬型の表示装置と別体であればよく、後述する実施形態におけるテレビ2の他、情報処理装置によって生成された第1の画像を表示することが可能なものであればどのようなものであってもよい。例えば、外部表示装置は、情報処理装置と一体として(1つの筐体内に)形成されるものであってもよい。

0035

上記(11)の構成によれば、入力システムは可搬型の表示装置を含むので、ユーザは、可搬型の表示装置の位置を変更することによって複数の表示装置の位置関係を自由に変更することができる。また、上記(11)の構成によれば、据置型の表示装置(例えばテレビ)が1つしかない環境であっても、もう1つの表示装置として可搬型の表示装置を用いることによって、複数の表示装置に対するポインティング操作が可能な入力システムを実現することができる。さらに、上記(11)の構成によれば、第2の画像は、圧縮されて情報処理装置から可搬型の表示装置へ送信されるので、第2の画像を高速無線送信することができる。

0036

(12)
第1指示位置算出部は、操作装置が向いている表示装置に対応する基準姿勢に対する現在の姿勢の変化量および変化方向に応じて指示位置を算出してもよい。

0037

上記「現在の姿勢」とは、姿勢算出部が算出する現在の操作装置の姿勢という意味である。

0038

上記(12)の構成によれば、ユーザは操作装置の姿勢を変化させる方向で指示位置の変化方向を調整することができ、操作装置の姿勢を変化させる量で指示位置の変化量を調整することができるので、指示位置を容易かつ直感的に操作することができる。

0039

(13)
入力システムは、特定部によって特定されていない表示装置には少なくとも、操作装置が向いている方向を表す方向画像を表示する方向画像表示制御部をさらに備えていてもよい。

0040

上記「方向画像表示制御部」は、特定部によって特定された表示装置以外の表示装置に方向画像を表示すればよく、所定の場合(操作装置がどの表示装置の方も向いていないと判断される場合、あるいは、表示装置の画面外の位置を表す指示位置が算出された場合等)には、特定部によって特定された表示装置にも方向画像を表示するようにしてもよい。

0041

上記(13)の構成によれば、特定部によって特定されていない表示装置、すなわち、操作装置が向いていない表示装置には方向画像が表示される。これによれば、例えば操作装置が向いていない表示装置の方をユーザが間違って見た場合には、間違った表示装置を見ていることを方向画像によって把握することができる。これによって、ユーザは、操作装置が指し示している位置(方向)を見失うことなくポインティング操作を行うことができる。

0042

(14)
本発明の他の一例は、ゲームシステムであってもよい。ゲームシステムは、上記(1)〜(13)に記載の入力システムと、第1指示位置算出部が算出した指示位置を入力としてゲーム処理を実行するゲーム処理部とを備える。

0043

上記(14)の構成によれば、複数の表示装置に対するポインティング操作によってプレイすることができるゲームを提供することができる。

0044

(15)
ゲームシステムは、基準姿勢記憶部と、基準設定部とをさらに備えていてもよい。基準姿勢記憶部は、操作装置が表示装置の方を向いている場合の姿勢を表す基準姿勢を表示装置毎に記憶する。基準設定部は、操作装置が所定の状態となった場合における操作装置の姿勢を基準姿勢として基準姿勢記憶部に設定する。このとき、特定部は、姿勢算出部が算出した姿勢と各基準姿勢とに基づいて、操作装置が向いている表示装置を特定する。ゲーム処理部は、各基準姿勢の差に応じて異なるゲーム処理を実行する。

0045

上記「各基準姿勢の差に応じて異なるゲーム処理」とは、ゲームの表示やゲーム内容難易度等が当該差に応じて異なるようなゲーム処理であればよく、例えば、当該差に応じて得点加算量を変化させる処理や、各基準姿勢に応じて各仮想カメラを設定する(各仮想カメラの位置関係を当該差に応じて変化させる)処理等であってもよい。

0046

上記(15)の構成によれば、各基準姿勢の差、すなわち、各表示装置の位置関係がゲーム処理に反映される。これによって、各表示装置の位置関係によってゲーム内容が変化するという、新規で興趣性の高いゲームを提供することができる。

0047

(16)
ゲーム処理部は、第1ゲーム画像表示制御部と、選択部と、オブジェクト移動部と、第2ゲーム画像表示制御部とを有していてもよい。第1ゲーム画像表示制御部は、ゲーム空間を表す画像を複数の表示装置のうちの所定の表示装置に表示させる。選択部は、ユーザによる所定の指示があった場合、第1指示位置算出部が算出した指示位置に表示されるゲームオブジェクトを選択する。オブジェクト移動部は、選択されたゲームオブジェクトを指示位置の移動と共に移動させる。第2ゲーム画像表示制御部は、ゲームオブジェクトが選択された状態で、特定部によって特定される表示装置が変化した場合、変化後の表示装置の画面上における指示位置に当該ゲームオブジェクトを表示する。

0048

上記(16)の構成によれば、上記所定の指示があった場合に所定の表示装置に表示されるゲームオブジェクトが選択され、その後、操作装置が他の表示装置の方へ向けられた場合には、ゲームオブジェクトは当該他の表示装置に表示される。これによれば、ユーザ(プレイヤ)は、ある表示装置の方へ操作装置を向けて所定の指示を行った後、操作装置を他の表示装置の方へ向けるだけで、ゲームオブジェクトをある表示装置から他の表示装置へと移動させることができる。すなわち、ユーザは、ある表示装置に表示されるゲームオブジェクトを他の表示装置へ移動させる操作を直感的な操作で容易に行うことができる。

0049

本発明の別の一例は、上記(1)〜(16)の入力システムまたはゲームシステムの各部(マーカ部、撮像部、および操作部を除く)を備える情報処理装置であってもよい。また、本発明の別の一例は、情報処理装置のコンピュータを上記各部と同等の手段として機能させるゲームプログラムの形態であってもよい。さらに、本発明の別の一例は、上記(1)〜(16)の入力システムまたはゲームシステムにおいて行われる指示位置算出方法の形態であってもよい。

発明の効果

0050

本発明によれば、複数の表示装置のうちで操作装置が向いている表示装置を、操作装置の姿勢に基づいて特定し、特定された表示装置の画面上の位置として指示位置が算出される。これによって、操作装置が向いている方の表示装置の画面上の位置として指示位置を算出することができるので、より広範囲の方向に向けてポインティング操作を行うことができる。

図面の簡単な説明

0051

ゲームシステム1の外観図
ゲーム装置3の内部構成を示すブロック図
コントローラ5の外観構成を示す斜視図
コントローラ5の外観構成を示す斜視図
コントローラ5の内部構造を示す図
コントローラ5の内部構造を示す図
コントローラ5の構成を示すブロック図
端末装置7の外観構成を示す図
ユーザが端末装置7を把持した様子を示す図
端末装置7の内部構成を示すブロック図
本実施形態におけるポインティング操作を示す図
第1基準姿勢の設定用の画像の一例を示す図
本実施形態におけるゲーム画像の一例を示す図
ゲーム処理において用いられる各種データを示す図
ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャート
図15に示すゲーム制御処理(ステップS3)の詳細な流れを示すフローチャート
図16に示す第1基準設定処理(ステップS12)の詳細な流れを示すフローチャート
図17に示す姿勢算出処理(ステップS22)の詳細な流れを示すフローチャート
図16に示す第2基準設定処理(ステップS14)の詳細な流れを示すフローチャート
図16に示す位置算出処理(ステップS15)の詳細な流れを示すフローチャート
現在の姿勢および各基準姿勢のZ軸ベクトルを示す図
投影位置の算出方法を示す図
指示位置を算出する方法を示す図
図16に示すオブジェクト制御処理(ステップS16)の詳細な流れを示すフローチャート
図15に示すテレビ用ゲーム画像の生成処理(ステップS4)の詳細な流れを示すフローチャート
図15に示す端末用ゲーム画像の生成処理(ステップS5)の詳細な流れを示すフローチャート
本実施形態の変形例における第1基準設定処理の詳細な流れを示すフローチャート

実施例

0052

[1.ゲームシステムの全体構成]
以下、図面を参照して、本発明の一実施形態に係るゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。図1において、ゲームシステム1は、テレビジョン受像器等に代表される据置型のディスプレイ装置(以下、「テレビ」と記載する)2、据置型のゲーム装置3、光ディスク4、コントローラ5、マーカ装置6、および、端末装置7を含む。ゲームシステム1は、コントローラ5を用いたゲーム操作に基づいてゲーム装置3においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ2および/または端末装置7に表示するものである。

0053

ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるための情報処理プログラム(典型的にはゲームプログラム)が記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。

0054

ゲーム装置3には、テレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ2はスピーカ2a(図2)を有しており、スピーカ2aは、上記ゲーム処理の結果得られるゲーム音声を出力する。なお、他の実施形態においては、ゲーム装置3と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置3とテレビ2との通信無線通信であってもよい。

0055

テレビ2の画面の周辺図1では画面の上側)には、マーカ装置6が設置される。詳細は後述するが、ユーザ(プレイヤ)はコントローラ5を動かすゲーム操作を行うことができ、マーカ装置6は、コントローラ5の動きや位置や姿勢等をゲーム装置3が算出するために用いられる。マーカ装置6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LED(Light Emitting Diode)であり、テレビ2の前方に向かって赤外光を出力する。マーカ装置6はゲーム装置3に接続されており、ゲーム装置3はマーカ装置6が備える各赤外LEDの点灯を制御することが可能である。なお、マーカ装置6は可搬型であり、ユーザはマーカ装置6を自由な位置に設置することができる。図1ではマーカ装置6がテレビ2の上に設置された態様を表しているが、マーカ装置6を設置する位置および向きは任意である。

0056

コントローラ5は、自機に対して行われた操作の内容を表す操作データをゲーム装置3に与えるものである。コントローラ5とゲーム装置3とは無線通信によって通信可能である。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。また、本実施形態では、ゲームシステム1に含まれるコントローラ5は1つとするが、ゲーム装置3は複数のコントローラと通信可能であり、所定台数のコントローラを同時に使用することによって複数人でゲームをプレイすることが可能である。コントローラ5の詳細な構成については後述する。

0057

端末装置7は、ユーザが把持可能な程度の大きさであり、ユーザは端末装置7を手に持って動かしたり、あるいは、端末装置7を自由な位置に配置したりして使用することが可能である。詳細な構成は後述するが、端末装置7は、表示手段であるLCD(Liquid Crystal Display:液晶表示装置)51、および、入力手段(後述するタッチパネル52やジャイロセンサ64等)を備える。端末装置7とゲーム装置3とは無線(有線であってもよい)によって通信可能である。端末装置7は、ゲーム装置3で生成された画像(例えばゲーム画像)のデータをゲーム装置3から受信し、画像をLCD51に表示する。なお、本実施形態では表示装置としてLCDを用いているが、端末装置7は、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を有していてもよい。また、端末装置7は、自機に対して行われた操作の内容を表す操作データをゲーム装置3に送信する。

0058

[2.ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の内部構成を示すブロック図である。ゲーム装置3は、CPU(Central Processing Unit)10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。

0059

CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。

0060

システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM(Video RAM)11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。

0061

GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。なお、本実施形態においては、ゲーム装置3は、テレビ2に表示するゲーム画像と、端末装置7に表示するゲーム画像との両方を生成する。以下では、テレビ2に表示されるゲーム画像を「テレビ用ゲーム画像」と呼び、端末装置7に表示されるゲーム画像を「端末用ゲーム画像」と呼ぶことがある。

0062

DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータ音波形(音色)データを用いて、音声データを生成する。なお、本実施形態においては、ゲーム音声についてもゲーム画像と同様、テレビ2のスピーカから出力するゲーム音声と、端末装置7のスピーカから出力するゲーム音声との両方が生成される。以下では、テレビ2から出力されるゲーム音声を「テレビ用ゲーム音声」と呼び、端末装置7から出力されるゲーム音声を「端末用ゲーム音声」と呼ぶことがある。

0063

上記のようにゲーム装置3において生成される画像および音声のうちで、テレビ2において出力される画像および音声のデータは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、テレビ2に画像が表示されるとともにスピーカ2aから音が出力される。

0064

また、ゲーム装置3において生成される画像および音声のうちで、端末装置7において出力される画像および音声のデータは、入出力プロセッサ11a等によって端末装置7へ送信される。入出力プロセッサ11a等による端末装置7へのデータの送信については後述する。

0065

入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、ネットワーク通信モジュール18、コントローラ通信モジュール19、拡張コネクタ20、メモリカード用コネクタ21、コーデックLSI27に接続される。また、ネットワーク通信モジュール18にはアンテナ22が接続される。コントローラ通信モジュール19にはアンテナ23が接続される。コーデックLSI27は端末通信モジュール28に接続され、端末通信モジュール28にはアンテナ29が接続される。

0066

ゲーム装置3は、インターネット等のネットワークに接続して外部情報処理装置(例えば他のゲーム装置や、各種サーバ等)と通信を行うことが可能である。すなわち、入出力プロセッサ11aは、ネットワーク通信モジュール18およびアンテナ22を介してインターネット等のネットワークに接続し、ネットワークに接続される外部情報処理装置と通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、ネットワーク通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、外部情報処理装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22およびネットワーク通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と外部情報処理装置との間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。また、フラッシュメモリ17にはゲームプログラムが記憶されてもよい。

0067

また、ゲーム装置3は、コントローラ5からの操作データを受信することが可能である。すなわち、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23およびコントローラ通信モジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。

0068

また、ゲーム装置3は、端末装置7との間で画像や音声等のデータを送受信することが可能である。入出力プロセッサ11aは、端末装置7へゲーム画像(端末用ゲーム画像)を送信する場合、GPU11bが生成したゲーム画像のデータをコーデックLSI27へ出力する。コーデックLSI27は、入出力プロセッサ11aからの画像データに対して所定の圧縮処理を行う。端末通信モジュール28は、端末装置7との間で無線通信を行う。したがって、コーデックLSI27によって圧縮された画像データは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。なお、本実施形態では、ゲーム装置3から端末装置7へ送信される画像データはゲームに用いるものであり、ゲームにおいては表示される画像に遅延が生じるとゲームの操作性に悪影響が出る。そのため、ゲーム装置3から端末装置7への画像データの送信に関しては、できるだけ遅延が生じないようにすることが好ましい。したがって、本実施形態では、コーデックLSI27は、例えばH.264規格といった高効率の圧縮技術を用いて画像データを圧縮する。なお、それ以外の圧縮技術を用いてもよいし、通信速度が十分である場合には無圧縮で画像データを送信する構成であってもよい。また、端末通信モジュール28は、例えばWi−Fiの認証を受けた通信モジュールであり、例えばIEEE802.11n規格で採用されるMIMO(Multiple Input Multiple Output)の技術を用いて端末装置7との間の無線通信を高速に行うようにしてもよいし、他の通信方式を用いてもよい。

0069

また、ゲーム装置3は、画像データの他、音声データを端末装置7へ送信する。すなわち、入出力プロセッサ11aは、DSP11cが生成した音声データを、コーデックLSI27を介して端末通信モジュール28へ出力する。コーデックLSI27は、音声データに対しても画像データと同様に圧縮処理を行う。音声データに対する圧縮の方式は、どのような方式であってもよいが、圧縮率が高く、音声の劣化が少ない方式が好ましい。また、他の実施形態においては、音声データは圧縮されずに送信されてもよい。端末通信モジュール28は、圧縮された画像データおよび音声データを、アンテナ29を介して端末装置7へ送信する。

0070

さらに、ゲーム装置3は、上記画像データおよび音声データの他に、必要に応じて各種の制御データを端末装置7へ送信する。制御データは、端末装置7が備える構成要素に対する制御指示を表すデータであり、例えばマーカ部(図10に示すマーカ部55)の点灯を制御する指示や、カメラ図10に示すカメラ56)の撮像を制御する指示等を表す。入出力プロセッサ11aは、CPU10の指示に応じて制御データを端末装置7へ送信する。なお、この制御データに関して、本実施形態ではコーデックLSI27はデータの圧縮処理を行わないが、他の実施形態においては圧縮処理を行うようにしてもよい。なお、ゲーム装置3から端末装置7へ送信される上述のデータは、必要に応じて暗号化がされていてもよいし、されていなくともよい。

0071

また、ゲーム装置3は、端末装置7から各種データを受信可能である。詳細は後述するが、本実施形態では、端末装置7は、操作データ、画像データ、および音声データを送信する。端末装置7から送信される各データはアンテナ29を介して端末通信モジュール28によって受信される。ここで、端末装置7からの画像データおよび音声データは、ゲーム装置3から端末装置7への画像データおよび音声データと同様の圧縮処理が施されている。したがって、これら画像データおよび音声データについては、端末通信モジュール28からコーデックLSI27に送られ、コーデックLSI27によって伸張処理が施されて入出力プロセッサ11aに出力される。一方、端末装置7からの操作データに関しては、画像や音声に比べてデータ量が少ないので、圧縮処理が施されていなくともよい。また、必要に応じて暗号化がされていてもよいし、されていなくともよい。したがって、操作データは、端末通信モジュール28で受信された後、コーデックLSI27を介して入出力プロセッサ11aに出力される。入出力プロセッサ11aは、端末装置7から受信したデータを、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。

0072

また、ゲーム装置3は、他の機器外部記憶媒体に接続することが可能である。すなわち、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタである。拡張コネクタ20に対しては、外部記憶媒体のようなメディアを接続したり、他のコントローラ等の周辺機器を接続したり、有線の通信用コネクタを接続することによってネットワーク通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。

0073

ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、図示しないACアダプタによって外部の電源からゲーム装置3の各構成要素に対して電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラム再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。

0074

なお、他の実施形態においては、ゲーム装置3が備える各構成要素のうちでいくつかの構成要素は、ゲーム装置3とは別体の拡張機器として構成されてもよい。このとき、拡張機器は、例えば上記拡張コネクタ20を介してゲーム装置3と接続されるようにしてもよい。具体的には、拡張機器は、例えば上記コーデックLSI27、端末通信モジュール28およびアンテナ29の各構成要素を備えており、拡張コネクタ20に対して着脱可能であってもよい。これによれば、上記各構成要素を備えていないゲーム装置に対して上記拡張機器を接続することによって、当該ゲーム装置を端末装置7と通信可能な構成とすることができる。

0075

[3.コントローラ5の構成]
次に、図3図7を参照して、コントローラ5について説明する。図3は、コントローラ5の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。

0076

図3および図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ユーザは、コントローラ5に設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢(傾き)を変えることによってゲーム操作を行うことができる。

0077

ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。本明細書では、これらのボタン32a〜32hが設けられるハウジング31の上面を「ボタン面」と呼ぶことがある。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行する情報処理プログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、ユーザがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。

0078

ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、他のセンサユニットやコントローラ)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。

0079

ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をユーザに通知したり、コントローラ5の電池残量をユーザに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。

0080

また、コントローラ5は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。

0081

ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ47(図5)からの音を外部に放出するための音抜き孔31aが形成されている。

0082

次に、図5および図6を参照して、コントローラ5の内部構造について説明する。図5および図6は、コントローラ5の内部構造を示す図である。なお、図5は、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。

0083

図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ47等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。

0084

一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。

0085

さらに、基板30の下主面上には、上記マイコン42およびバイブレータ46が設けられている。バイブレータ46は、例えば振動モータソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ46が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているユーザの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ46は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ46がコントローラ5の中心よりも端側に配置することによって、バイブレータ46の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ47に音声信号を出力するアンプ等を備えている。

0086

なお、図3図6に示したコントローラ5の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。

0087

図7は、コントローラ5の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、撮像情報演算部35、通信部36、加速度センサ37、およびジャイロセンサ48を備えている。コントローラ5は、自機に対して行われた操作内容を表すデータを操作データとしてゲーム装置3へ送信するものである。なお、以下では、コントローラ5が送信する操作データを「コントローラ操作データ」と呼び、端末装置7が送信する操作データを「端末操作データ」と呼ぶことがある。

0088

操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を表す操作ボタンデータを通信部36のマイコン42へ出力する。

0089

撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。

0090

撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、撮像対象となる端末装置7のマーカ部55およびマーカ装置6は、赤外光を出力するマーカで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、撮像対象(マーカ部55および/またはマーカ装置6)の画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。

0091

なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。

0092

加速度センサ37は、コントローラ5の加速度重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。なお、加速度センサ37は、例えば静電容量式MEMS(Micro Electro Mechanical System)型加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。

0093

本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ5を基準に設定されるXYZ座標系(コントローラ座標系)における3次元ベクトルとして表される。

0094

加速度センサ37が検出した加速度を表すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や動きに対応して変化するので、ゲーム装置3は取得された加速度データを用いてコントローラ5の向きや動きを算出することができる。本実施形態では、ゲーム装置3は、取得された加速度データに基づいてコントローラ5の姿勢や傾斜角度等を算出する。

0095

なお、加速度センサ37(後述する加速度センサ63についても同様)から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ(例えばCPU10)またはコントローラ5のプロセッサ(例えばマイコン42)等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合)、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。

0096

一方、コントローラ5が動的な状態(コントローラ5が動かされている状態)であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の動き方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。

0097

ジャイロセンサ48は、3軸(本実施形態では、XYZ軸)回りの角速度を検出する。本明細書では、コントローラ5の撮像方向(Z軸正方向)を基準として、X軸回りの回転方向ピッチ方向、Y軸回りの回転方向をヨー方向、Z軸回りの回転方向をロール方向と呼ぶ。ジャイロセンサ48は、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。例えば、ジャイロセンサ48は、3軸ジャイロセンサであってもよいし、2軸ジャイロセンサと1軸ジャイロセンサとを組み合わせて3軸周りの角速度を検出するものであってもよい。ジャイロセンサ48で検出された角速度を表すデータは、通信部36へ出力される。また、ジャイロセンサ48は1軸または2軸回りの角速度を検出するものであってもよい。

0098

通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。

0099

操作部32、撮像情報演算部35、加速度センサ37、およびジャイロセンサ48からマイコン42へ出力されたデータは、一時的にメモリ43に格納される。これらのデータは、操作データ(コントローラ操作データ)としてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3のコントローラ通信モジュール19への送信タイミング到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側のコントローラ通信モジュール19で受信される。受信された微弱電波信号について復調復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、コントローラ5から取得した操作データを用いてゲーム処理を行う。なお、通信部36からコントローラ通信モジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で操作データをゲーム装置3のコントローラ通信モジュール19へ出力する。

0100

以上のように、コントローラ5は、自機に対する操作を表す操作データとして、マーカ座標データ、加速度データ、角速度データ、および操作ボタンデータを送信可能である。また、ゲーム装置3は、上記操作データをゲーム入力として用いてゲーム処理を実行する。したがって、上記コントローラ5を用いることによって、ユーザは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ5自体を動かすゲーム操作を行うことができる。例えば、コントローラ5を任意の姿勢に傾ける操作、コントローラ5によって画面上の任意の位置を指示する操作、および、コントローラ5自体を動かす操作等を行うことが可能となる。

0101

また、本実施形態において、コントローラ5は、ゲーム画像を表示する表示手段を有しないが、例えば電池残量を表す画像等を表示するための表示手段を有していてもよい。

0102

[4.端末装置7の構成]
次に、図8図10を参照して、端末装置7の構成について説明する。図8は、端末装置7の外観構成を示す図である。図8における(a)図は端末装置7の正面図であり、(b)図は上面図であり、(c)図は右側面図であり、(d)図は下面図である。また、図9は、ユーザが端末装置7を把持した様子を示す図である。

0103

図8に示されるように、端末装置7は、大略的には横長の長方形板状形状であるハウジング50を備える。ハウジング50は、ユーザが把持することができる程度の大きさである。したがって、ユーザは、端末装置7を持って動かしたり、端末装置7の配置位置を変更したりすることができる。

0104

端末装置7は、ハウジング50の表面にLCD51を有する。LCD51は、ハウジング50の表面の中央付近に設けられる。したがって、ユーザは、図9に示すようにLCD51の両側部分のハウジング50を持つことによって、LCD51の画面を見ながら端末装置を持って動かすことができる。なお、図9ではユーザがLCD51の左右両側の部分のハウジング50を持つことで端末装置7を横持ちで(横に長い向きにして)持つ例を示しているが、端末装置7を縦持ちで(縦に長い向きにして)持つことも可能である。

0105

図8の(a)図に示すように、端末装置7は、操作手段として、LCD51の画面上にタッチパネル52を有する。本実施形態では、タッチパネル52は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。また、タッチパネル52はシングルタッチ方式でもよいし、マルチタッチ方式であってもよい。本実施形態では、タッチパネル52として、LCD51の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル52の解像度とLCD51の解像度が一致している必要はない。タッチパネル52に対する入力は通常タッチペンを用いて行われるが、タッチペンに限らずユーザの指でタッチパネル52に対する入力をすることも可能である。なお、ハウジング50には、タッチパネル52に対する操作を行うために用いられるタッチペンを収納するための収納穴が設けられていてもよい。このように、端末装置7はタッチパネル52を備えるので、ユーザは、端末装置7を動かしながらタッチパネル52を操作することができる。つまりユーザは、LCD51の画面を動かしつつ、その画面に対して直接(タッチパネル52によって)入力を行うことができる。

0106

図8に示すように、端末装置7は、操作手段として、2つのアナログスティック53Aおよび53Bと、複数のボタン54A〜54Lとを備えている。各アナログスティック53Aおよび53Bは、方向を指示するデバイスである。各アナログスティック53Aおよび53Bは、ユーザの指で操作されるスティック部がハウジング50の表面に対して任意の方向(上下左右および斜め方向の任意の角度)にスライドまたは傾倒することができるように構成されている。また、左アナログスティック53AはLCD51の画面の左側に、右アナログスティック53BはLCD51の画面の右側にそれぞれ設けられる。したがって、ユーザは、左右いずれの手でもアナログスティックを用いて方向を指示する入力を行うことができる。また、図9に示すように、各アナログスティック53Aおよび53Bは、ユーザが端末装置7の左右部分を把持した状態で操作可能な位置に設けられるので、ユーザは、端末装置7を持って動かす場合においても各アナログスティック53Aおよび53Bを容易に操作することができる。

0107

各ボタン54A〜54Lは、所定の入力を行うための操作手段である。以下に示すように、各ボタン54A〜54Lは、ユーザが端末装置7の左右部分を把持した状態で操作可能な位置に設けられる(図9参照)。したがって、ユーザは、端末装置7を持って動かす場合においてもこれらの操作手段を容易に操作することができる。

0108

図8の(a)図に示すように、ハウジング50の表面には、各操作ボタン54A〜54Lのうち、十字ボタン(方向入力ボタン)54Aと、ボタン54B〜54Hとが設けられる。つまり、これらのボタン54A〜54Gは、ユーザの親指で操作可能な位置に配置されている(図9参照)。

0109

十字ボタン54Aは、LCD51の左側であって、左アナログスティック53Aの下側に設けられる。つまり、十字ボタン54Aはユーザの左手で操作可能な位置に配置されている。十字ボタン54Aは、十字の形状を有しており、上下左右の方向を指示することが可能なボタンである。また、ボタン54B〜54Dは、LCD51の下側に設けられる。これら3つのボタン54B〜54Dは、左右両方の手で操作可能な位置に配置されている。また、4つのボタン54E〜54Hは、LCD51の右側であって、右アナログスティック53Bの下側に設けられる。つまり、4つのボタン54E〜54Hはユーザの右手で操作可能な位置に配置されている。さらに、4つのボタン54E〜54Hは、(4つのボタン54E〜54Hの中心位置に対して)上下左右の位置関係となるように配置されている。したがって、端末装置7は、ユーザに上下左右の方向を指示させるためのボタンとして4つのボタン54E〜54Hを機能させることも可能である。

0110

また、図8の(a)図、(b)図、および(c)図に示すように、第1Lボタン54Iおよび第1Rボタン54Jは、ハウジング50の斜め上部分(左上部分および右上部分)に設けられる。具体的には、第1Lボタン54Iは、板状のハウジング50における上側の側面の左端に設けられ、上側および左側の側面から露出している。また、第1Rボタン54Jは、ハウジング50における上側の側面の右端に設けられ、上側および右側の側面から露出している。このように、第1Lボタン54Iは、ユーザの左手人差し指で操作可能な位置に配置され、第1Rボタン54Jは、ユーザの右手人差し指で操作可能な位置に配置される(図9参照)。

0111

また、図8の(b)図および(c)図に示すように、第2Lボタン54Kおよび第2Rボタン54Lは、板状のハウジング50の裏面(すなわちLCD51が設けられる表面の反対側の面)に突起して設けられる足部59Aおよび59Bに配置される。具体的には、第2Lボタン54Kは、ハウジング50の裏面の左側(表面側から見たときの左側)のやや上方に設けられ、第2Rボタン54Lは、ハウジング50の裏面の右側(表面側から見たときの右側)のやや上方に設けられる。換言すれば、第2Lボタン54Kは、表面に設けられる左アナログスティック53Aの概ね反対側の位置に設けられ、第2Rボタン54Lは、表面に設けられる右アナログスティック53Bの概ね反対側の位置に設けられる。このように、第2Lボタン54Kは、ユーザの左手中指で操作可能な位置に配置され、第2Rボタン54Lは、ユーザの右手中指で操作可能な位置に配置される(図9参照)。また、第2Lボタン54Kおよび第2Rボタン54Lは、図8の(c)図に示すように、上記足部59Aおよび59Bの斜め上方を向く面に設けられ、斜め上方を向くボタン面を有する。ユーザが端末装置7を把持した場合には中指は上下方向に動くと考えられるので、ボタン面を上方に向けることで、ユーザは第2Lボタン54Kおよび第2Rボタン54Lを押下しやすくなる。また、ハウジング50の裏面に足部が設けられることにより、ユーザはハウジング50を把持しやすくなり、かつ、足部にボタンが設けられることで、ハウジング50を把持したまま操作しやすくなる。

0112

なお、図8に示す端末装置7に関しては、第2Lボタン54Kおよび第2Rボタン54Lが裏面に設けられるので、LCD51の画面(ハウジング50の表面)が上を向いた状態で端末装置7を載置させる場合、画面が完全に水平にはならない場合がある。そのため、他の実施形態においては、ハウジング50の裏面に3つ以上の足部が形成されてもよい。これによれば、LCD51の画面が上を向いた状態では足部が床面に接することで床面に載置できるので、画面が水平になるように端末装置7を載置することができる。また、着脱可能な足部を追加することで端末装置7を水平に載置するようにしてもよい。

0113

各ボタン54A〜54Lには、ゲームプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン54Aおよびボタン54E〜54Hは方向指示操作選択操作等に用いられてもよいし、各ボタン54B〜54Eは決定操作キャンセル操作等に用いられてもよい。

0114

なお、図示しないが、端末装置7は、端末装置7の電源をオン/オフするための電源ボタンを有している。また、端末装置7は、LCD51の画面表示をオン/オフするためのボタンや、ゲーム装置3との接続設定ペアリング)を行うためのボタンや、スピーカ(図10に示すスピーカ67)の音量を調節するためのボタンを有していてもよい。

0115

図8の(a)図に示すように、端末装置7は、マーカ55Aおよびマーカ55Bからなるマーカ部(図10に示すマーカ部55)をハウジング50の表面に備えている。マーカ部55は、LCD51の上側に設けられる。各マーカ55Aおよびマーカ55Bは、マーカ装置6の各マーカ6Rおよび6Lと同様、1以上の赤外LEDで構成される。マーカ部55は、上述のマーカ装置6と同様、コントローラ5の動き等をゲーム装置3が算出するために用いられる。また、ゲーム装置3はマーカ部55が備える各赤外LEDの点灯を制御することが可能である。

0116

端末装置7は、撮像手段であるカメラ56を備えている。カメラ56は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサCMOSイメージセンサ等)と、レンズとを含む。図8に示すように、本実施形態では、カメラ56はハウジング50の表面に設けられる。したがって、カメラ56は、端末装置7を持っているユーザの顔を撮像することができ、例えばLCD51を見ながらゲームを行っている時のユーザを撮像することができる。

0117

なお、端末装置7は、音声入力手段であるマイク(図10に示すマイク69)を備えている。ハウジング50の表面には、マイクロフォン用孔60が設けられる。マイク69はこのマイクロフォン用孔60の奥のハウジング50内部に設けられる。マイクは、ユーザの音声等、端末装置7の周囲の音を検出する。

0118

端末装置7は、音声出力手段であるスピーカ(図10に示すスピーカ67)を備えている。図8の(d)図に示すように、ハウジング50の下側側面にはスピーカ孔57が設けられる。スピーカ67の出力音はこのスピーカ孔57から出力される。本実施形態では、端末装置7は2つのスピーカを備えており、左スピーカおよび右スピーカのそれぞれの位置にスピーカ孔57が設けられる。

0119

また、端末装置7は、他の装置を端末装置7に接続するための拡張コネクタ58を備えている。本実施形態においては、図8の(d)図に示すように、拡張コネクタ58は、ハウジング50の下側側面に設けられる。なお、拡張コネクタ58に接続される他の装置はどのようなものであってもよく、例えば、特定のゲームに用いるコントローラ(型のコントローラ等)やキーボード等の入力装置であってもよい。他の装置を接続する必要がなければ、拡張コネクタ58は設けられていなくともよい。

0120

なお、図8に示した端末装置7に関して、各操作ボタンやハウジング50の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。

0121

次に、図10を参照して、端末装置7の内部構成について説明する。図10は、端末装置7の内部構成を示すブロック図である。図10に示すように、端末装置7は、図8に示した構成の他、タッチパネルコントローラ61、磁気センサ62、加速度センサ63、ジャイロセンサ64、ユーザインタフェースコントローラ(UIコントローラ)65、コーデックLSI66、スピーカ67、サウンドIC68、マイク69、無線モジュール70、アンテナ71、赤外線通信モジュール72、フラッシュメモリ73、電源IC74、および電池75を備える。これらの電子部品は、電子回路基板上に実装されてハウジング50内に収納される。

0122

UIコントローラ65は、各種の入出力部に対するデータの入出力を制御するための回路である。UIコントローラ65は、タッチパネルコントローラ61、アナログスティック53(アナログスティック53Aおよび53B)、操作ボタン54(各操作ボタン54A〜54L)、マーカ部55、磁気センサ62、加速度センサ63、およびジャイロセンサ64に接続される。また、UIコントローラ65は、コーデックLSI66と拡張コネクタ58に接続される。また、UIコントローラ65には電源IC74が接続され、UIコントローラ65を介して各部に電力が供給される。電源IC74には内蔵の電池75が接続され、電力が供給される。また、電源IC74には、コネクタ等を介して外部電源から電力を取得可能な充電器76またはケーブルを接続することが可能であり、端末装置7は、当該充電器76またはケーブルを用いて外部電源からの電力供給充電を行うことができる。なお、端末装置7は、図示しない充電機能を有するクレイドルに端末装置7を装着することで充電を行うようにしてもよい。

0123

タッチパネルコントローラ61は、タッチパネル52に接続され、タッチパネル52の制御を行う回路である。タッチパネルコントローラ61は、タッチパネル52からの信号に基づいて所定の形式タッチ位置データを生成してUIコントローラ65へ出力する。タッチ位置データは、タッチパネル52の入力面において入力が行われた位置の座標を表す。なお、タッチパネルコントローラ61は、タッチパネル52からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。また、UIコントローラ65からタッチパネルコントローラ61へは、タッチパネル52に対する各種の制御指示が出力される。

0124

アナログスティック53は、ユーザの指で操作されるスティック部がスライドした(または傾倒した)方向および量を表すスティックデータをUIコントローラ65へ出力する。また、操作ボタン54は、各操作ボタン54A〜54Lに対する入力状況(押下されたか否か)を表す操作ボタンデータをUIコントローラ65へ出力する。

0125

磁気センサ62は、磁界の大きさおよび方向を検知することで方位を検出する。検出された方位を示す方位データは、UIコントローラ65へ出力される。また、UIコントローラ65から磁気センサ62へは、磁気センサ62に対する制御指示が出力される。磁気センサ62に関しては、MI(磁気インピーダンス素子フラックスゲートセンサホール素子GMR(巨大磁気抵抗)素子、TMRトンネル磁気抵抗)素子、あるいはAMR(異方性磁気抵抗)素子等を用いたセンサがあるが、方位を検出することができればどのようなものが用いられてもよい。なお、厳密には、地磁気以外に磁界が発生している場所においては、得られた方位データは方位を示さないことになるが、そのような場合であっても、端末装置7が動いた場合には方位データが変化するため、端末装置7の姿勢の変化を算出することができる。

0126

加速度センサ63は、ハウジング50の内部に設けられ、3軸(図8の(a)図に示すxyz軸)方向に沿った直線加速度の大きさを検出する。具体的には、加速度センサ63は、ハウジング50の長辺方向をx軸、ハウジング50の短辺方向をy軸、ハウジング50の表面に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。検出された加速度を表す加速度データはUIコントローラ65へ出力される。また、UIコントローラ65から加速度センサ63へは、加速度センサ63に対する制御指示が出力される。加速度センサ63は、本実施形態では例えば静電容量式のMEMS型加速度センサであるとするが、他の実施形態においては他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ63は1軸または2軸方向を検出する加速度センサであってもよい。

0127

ジャイロセンサ64は、ハウジング50の内部に設けられ、上記x軸、y軸およびz軸の3軸周りの角速度を検出する。検出された角速度を表す角速度データは、UIコントローラ65へ出力される。また、UIコントローラ65からジャイロセンサ64へは、ジャイロセンサ64に対する制御指示が出力される。なお、3軸の角速度を検出するために用いられるジャイロセンサの数および組み合わせはどのようなものであってもよく、ジャイロセンサ64はジャイロセンサ48と同様、2軸ジャイロセンサと1軸ジャイロセンサとで構成されてもよい。また、ジャイロセンサ64は1軸または2軸方向を検出するジャイロセンサであってもよい。

0128

UIコントローラ65は、上記の各構成要素から受け取ったタッチ位置データ、スティックデータ、操作ボタンデータ、方位データ、加速度データ、および角速度データを含む操作データをコーデックLSI66に出力する。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置に対する操作を表すデータが上記操作データにさらに含まれていてもよい。

0129

コーデックLSI66は、ゲーム装置3へ送信するデータに対する圧縮処理、および、ゲーム装置3から送信されたデータに対する伸張処理を行う回路である。コーデックLSI66には、LCD51、カメラ56、サウンドIC68、無線モジュール70、フラッシュメモリ73、および赤外線通信モジュール72が接続される。また、コーデックLSI66はCPU77と内部メモリ78を含む。端末装置7はゲーム処理自体を行なわない構成であるが、端末装置7の管理や通信のための最小限のプログラムを実行する必要がある。電源投入時にフラッシュメモリ73に格納されたプログラムを内部メモリ78に読み出してCPU77が実行することで、端末装置7が起動する。また、内部メモリ78の一部の領域はLCD51のためのVRAMとして使用される。

0130

カメラ56は、ゲーム装置3からの指示に従って画像を撮像し、撮像した画像データをコーデックLSI66へ出力する。また、コーデックLSI66からカメラ56へは、画像の撮像指示等、カメラ56に対する制御指示が出力される。なお、カメラ56は動画撮影も可能である。すなわち、カメラ56は、繰り返し撮像を行って画像データをコーデックLSI66へ繰り返し出力することも可能である。

0131

サウンドIC68は、スピーカ67およびマイク69に接続され、スピーカ67およびマイク69への音声データの入出力を制御する回路である。すなわち、コーデックLSI66から音声データを受け取った場合、サウンドIC68は当該音声データに対してD/A変換を行って得られる音声信号をスピーカ67へ出力し、スピーカ67から音を出力させる。また、マイク69は、端末装置7に伝わる音(ユーザの音声等)を検知して、当該音を示す音声信号をサウンドIC68へ出力する。サウンドIC68は、マイク69からの音声信号に対してA/D変換を行い、所定の形式の音声データをコーデックLSI66へ出力する。

0132

コーデックLSI66は、カメラ56からの画像データ、マイク69からの音声データ、および、UIコントローラ65からの操作データを、端末操作データとして無線モジュール70を介してゲーム装置3へ送信する。本実施形態では、コーデックLSI66は、画像データおよび音声データに対して、コーデックLSI27と同様の圧縮処理を行う。上記端末操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール70に出力される。無線モジュール70にはアンテナ71が接続されており、無線モジュール70はアンテナ71を介してゲーム装置3へ上記送信データを送信する。無線モジュール70は、ゲーム装置3の端末通信モジュール28と同様の機能を有している。すなわち、無線モジュール70は、例えばIEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。

0133

以上のように、端末装置7からゲーム装置3へ送信される送信データには、操作データ(端末操作データ)、画像データ、および音声データが含まれる。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置から受け取ったデータが上記送信データにさらに含まれていてもよい。また、赤外線通信モジュール72は、他の装置との間で例えばIRDAの規格に従った赤外線通信を行う。コーデックLSI66は、赤外線通信によって受信したデータを、必要に応じて上記送信データに含めてゲーム装置3へ送信してもよい。

0134

また、上述のように、ゲーム装置3から端末装置7へは、圧縮された画像データおよび音声データが送信される。これらのデータはアンテナ71および無線モジュール70を介してコーデックLSI66に受信される。コーデックLSI66は、受信した画像データおよび音声データを伸張する。伸張された画像データはLCD51へ出力され、画像がLCD51に表示される。また、伸張された音声データはサウンドIC68へ出力され、サウンドIC68はスピーカ67から音を出力させる。

0135

また、ゲーム装置3から受信されるデータに制御データが含まれる場合、コーデックLSI66およびUIコントローラ65は、制御データに従った制御指示を各部に行う。上述のように、制御データは、端末装置7が備える各構成要素(本実施形態では、カメラ56、タッチパネルコントローラ61、マーカ部55、各センサ62〜64、および赤外線通信モジュール72)に対する制御指示を表すデータである。本実施形態では、制御データが表す制御指示としては、上記各構成要素を動作させたり、動作を休止(停止)させたりする指示が考えられる。すなわち、ゲームで使用しない構成要素については電力消費を抑えるために休止させてもよく、その場合、端末装置7からゲーム装置3へ送信される送信データには、休止した構成要素からのデータが含まれないようにする。なお、マーカ部55は赤外LEDであるので、制御は単に電力の供給のON/OFFでよい。

0136

以上のように、端末装置7は、タッチパネル52、アナログスティック53、および操作ボタン54といった操作手段を備えるが、他の実施形態においては、これらの操作手段に代えて、または、これらの操作手段とともに、他の操作手段を備える構成であってもよい。

0137

また、端末装置7は、端末装置7の動き(位置や姿勢、あるいは、位置や姿勢の変化を含む)を算出するためのセンサとして、磁気センサ62、加速度センサ63、およびジャイロセンサ64を備えるが、他の実施形態においては、これらのセンサのうち1つまたは2つのみを備える構成であってもよい。また、他の実施形態においては、これらのセンサに代えて、または、これらのセンサとともに、他のセンサを備える構成であってもよい。

0138

また、端末装置7は、カメラ56およびマイク69を備える構成であるが、他の実施形態においては、カメラ56およびマイク69を備えていなくてもよく、また、いずれか一方のみを備えていてもよい。

0139

また、端末装置7は、端末装置7とコントローラ5との位置関係(コントローラ5から見た端末装置7の位置および/または姿勢等)を算出するための構成としてマーカ部55を備える構成であるが、他の実施形態ではマーカ部55を備えていない構成としてもよい。また、他の実施形態では、端末装置7は、上記位置関係を算出するための構成として他の手段を備えていてもよい。例えば、他の実施形態においては、コントローラ5がマーカ部を備え、端末装置7が撮像素子を備える構成としてもよい。さらにこの場合、マーカ装置6は赤外LEDに代えて、撮像素子を備える構成としてもよい。

0140

[5.ゲームシステム1における処理の概要
次に、本実施形態のゲームシステム1において実行される処理の概要について説明する。ここで、ゲームシステム1は、コントローラ5を用いてテレビ2と端末装置7という2つの表示装置に対して画面上の位置を指定する操作(ポインティング操作)を行うことを可能とするものである。

0141

図11は、本実施形態におけるポインティング操作を示す図である。図11においては、テレビ2および端末装置7は、プレイヤ(コントローラ5)から見て異なる方向に配置される。ここで、コントローラ5をテレビ2の方へ向けた場合、テレビ2の画面上において指示位置P1が算出され、プレイヤはテレビ2の画面上の位置を指定することができる。一方、コントローラ5を端末装置7の方へ向けた場合、端末装置7の画面上において指示位置P2が算出され、プレイヤは端末装置7の画面上の位置を指定することができる。なお、ここでは、「コントローラ5をテレビ2(端末装置7)の方へ向ける」とは、コントローラ5の前方向(Z軸正方向)をテレビ2(端末装置7)の方へ向けることを意味する。このように、ゲームシステム1では、プレイヤは、テレビ2および端末装置7という2つの表示装置に対してポインティング操作を行うことができる。本実施形態によれば、ポインティング操作を行うためのコントローラ5を(1つの表示装置に対してポインティング操作を行う場合に比べて)より広範囲の方向に向けて使用することができる。

0142

上記のような、2つの表示装置に対するポインティング操作を可能とするべく、ゲームシステム1は、コントローラ5がいずれの表示装置の方を向いているかを判定し、さらに、コントローラ5が向いている表示装置の画面上において指示位置を算出する処理を行う。ここで、「指示位置」とは、表示装置(テレビ2または端末装置7)の画面上の位置であり、コントローラ5によって指し示される位置である。指示位置は、理想的には、コントローラ5の所定方向(ここでは、Z軸正方向)と画面との交点の位置である。ただし実際には、ゲーム装置3は上記交点の位置を厳密に算出する必要はなく、コントローラ5の姿勢(向き)の変化に応じて指示位置が変化すればよい。したがって、上記交点の位置付近の位置が指示位置として算出されてもよい。

0143

以下、指示位置の算出方法の概要を説明する。本実施形態では、指示位置を算出するために基準姿勢が用いられる。そのため、ゲーム装置3は、まず基準姿勢を設定する処理を実行する。基準姿勢とは、コントローラ5が表示装置の方を向いている場合の姿勢であり、コントローラ5がテレビ2と端末装置7のいずれの方を向いているかを判断するために用いられる。本実施形態では、テレビ2に対応する基準姿勢、すなわち、コントローラ5がテレビ2の方を向いている場合の基準姿勢を、「第1基準姿勢」と呼び、端末装置7に対応する基準姿勢、すなわち、コントローラ5が端末装置7の方を向いている場合の基準姿勢を、「第2基準姿勢」と呼ぶ。

0144

(基準姿勢設定処理
ゲーム装置3は、まず第1基準姿勢を設定する。第1基準姿勢の設定は、プレイヤに実際にコントローラ5をテレビ2の方へ向けさせ、コントローラ5がテレビ2の方を向いた時のコントローラ5の姿勢を記憶することで行われる。図12は、第1基準姿勢の設定用の画像の一例を示す図である。図12に示すように、第1基準姿勢を設定する際、テレビ2には、第1基準姿勢の設定用の画像としてカーソル81、説明画像82、および案内画像83が表示される。

0145

カーソル81は、コントローラ5による操作対象であり、指示位置に表示される。詳細は後述するが、基準姿勢を算出する際の指示位置は、上述のマーカ座標データから算出される。したがって、第1基準姿勢を設定する際にはマーカ装置6が点灯し、ゲーム装置3は、コントローラ5の撮像部(撮像素子40)によるマーカ装置6の撮像結果を用いて指示位置を算出する。これによって、コントローラ5のZ軸が指し示す位置が指示位置として算出される。

0146

説明画像82は、コントローラ5をテレビ2の方へ向けるようにプレイヤに促すための画像であり、例えば「中央にカーソルを合わせてボタンを押してください」といったメッセージを表す。案内画像83は、プレイヤがカーソル81を移動すべき領域を表す画像であり、典型的には画面の中央を含む領域を表す。

0147

第1基準姿勢を算出する際、上記説明画像82および案内画像83を見たプレイヤは、コントローラ5を案内画像83の方へ向けることによってカーソル81を案内画像83の位置に合わせ、所定のボタン(例えばAボタン32d)を押下する基準設定操作を行う。ここで、ゲーム装置3は、コントローラ5の姿勢を逐次算出しており、上記基準設定操作が行われた時点の姿勢を第1基準姿勢として記憶する。なお、詳細は後述するが、基準姿勢を設定する際におけるコントローラ5の姿勢の算出は、上述の角速度データおよび加速度データを用いて行われる。

0148

ゲーム装置3は、第1基準姿勢を設定すると次に、第2基準姿勢を設定する。第2基準姿勢の設定方法も第1基準姿勢の設定方法と同様であり、プレイヤに実際にコントローラ5を端末装置7の方へ向けさせ、コントローラ5が端末装置7の方を向いた時のコントローラ5の姿勢を記憶することで行われる。すなわち、ゲーム装置3は、上記説明画像82および案内画像83を端末装置7のLCD51に表示させる。また、マーカ部55を点灯させ、コントローラ5の撮像部(撮像素子40)によるマーカ部55の撮像結果を用いて(LCD51の画面上における)指示位置を算出してカーソル81を指示位置に表示させる。さらに、コントローラ5の姿勢を逐次算出しておき、上記基準設定操作が行われた時点の姿勢を第2基準姿勢として記憶する。

0149

本実施形態においては、上記の基準姿勢設定処理がゲームの開始前に(すなわち、指示位置をゲーム入力として用いるゲーム処理の実行前に)実行される。指示位置の算出処理、および、指示位置を用いたゲーム制御処理は、各基準姿勢(第1および第2基準姿勢)が設定された後で実行される。

0150

(指示位置算出処理)
指示位置を算出する際、ゲーム装置3はまず、コントローラ5がテレビ2と端末装置7とのいずれの方を向いているかを判定する。この判定は、コントローラ5の現在の姿勢と、各基準姿勢とを比較することで行われる。具体的には、ゲーム装置3は、各基準姿勢のうちで、現在の姿勢に近い方の基準姿勢に対応する表示装置の方をコントローラ5が向いていると判定する。このように、ゲーム装置3は、コントローラ5の姿勢と各基準姿勢とに基づいて、コントローラ5が向いている表示装置を特定する。以下では、コントローラ5が向いている表示装置を「対象表示装置」と呼ぶ。なお、詳細は後述するが、指示位置を算出する際に算出されるコントローラ5の姿勢は、上述の角速度データおよび加速度データに基づいて算出される。そのため、コントローラ5がどのような状態であっても(マーカユニットを撮像できない状態であっても)姿勢を算出することが可能である。

0151

対象表示装置が特定されると、ゲーム装置3は、対象表示装置に対応する基準姿勢と、現在の姿勢とに基づいて指示位置を算出する。詳細は後述するが、指示位置は、上記基準姿勢に対する現在の姿勢の変化量および変化方向に応じた位置となるように算出される。したがって、プレイヤは、コントローラ5の姿勢を変化させた方向に応じた方向へ、変化させた量に応じた量だけ指示位置を移動させることができる。

0152

以上のように、本実施形態によれば、コントローラ5を向けた方の表示装置の画面上において指示位置が算出される。ここで、2つのマーカユニット(マーカ装置6およびマーカ部55)を区別して認識することができない場合、マーカ座標の情報からのみでは、コントローラ5がどちらの表示装置を向いているかを判定する(対象表示装置を特定する)ことができない。また、コントローラ5がマーカユニットを撮像していなければ、コントローラ5の姿勢を算出することもできない。これに対して、本実施形態では、マーカ座標以外の情報(角速度等の情報)を用いてコントローラ5の姿勢を算出し、当該姿勢から対象表示装置を特定する。これによれば、コントローラ5がどのような状態であっても姿勢を算出することができ、対象表示装置を特定することができる。したがって、本実施形態によれば、コントローラ5がどちらの表示装置を向いているかを適切に判断することができ、適切な表示装置の画面上で指示位置を算出することができる。

0153

また、2つのマーカユニットを区別して認識することができる場合には、コントローラ5が撮像したマーカユニットがマーカ装置6およびマーカ部55のいずれであるかを識別することによって、対象表示装置を特定することができる。しかし、撮像されたマーカユニットの画像に対して認識・識別処理を精度良く行うことは一般的には難しい。これに対して、本実施形態によれば、上記のような認識・識別処理は不要であり、コントローラ5の姿勢に基づいて対象表示装置を高精度で特定することができる。

0154

(指示位置を用いたゲーム処理)
次に、本実施形態におけるゲーム処理の概要を説明する。本実施形態では、上記指示位置を入力とするゲーム処理が実行される。ここで、本実施形態においては2つの表示装置の画面上の位置をコントローラ5を用いて指定することができるので、以下に示すような新規なゲーム操作も可能となる。

0155

図13は、本実施形態におけるゲーム画像の一例を示す図である。図13に示すように、テレビ2には、プレイヤの操作対象となるプレイヤオブジェクト85と、UFOを模した敵オブジェクト86とが表示される。また、コントローラ5がテレビ2の方を向く場合には、図13に示す(A)および(B)のように、テレビ2の画面上の指示位置にカーソル81が表示される。また、端末装置7には、家のオブジェクト(家オブジェクト)87が表示される。プレイヤオブジェクト85は、適宜のタイミングでテレビ2の画面に出現する。なお、プレイヤは、コントローラ5による操作によってプレイヤオブジェクト85を移動することができる。一方、敵オブジェクト86は、ゲーム装置3によって動作が制御され、プレイヤオブジェクト85を連れ去る。本実施形態におけるゲームは、プレイヤオブジェクト85が敵オブジェクト86に連れ去られる前にプレイヤオブジェクト85を家オブジェクト87へ移動させて救出するゲームである。

0156

本ゲームでは、プレイヤは、カーソル81によってプレイヤオブジェクト85を移動させることができる。具体的には、カーソル81がプレイヤオブジェクト85の位置にある状態でプレイヤが所定の選択操作を行うと、カーソル81でプレイヤオブジェクト85を掴むことができる。つまり、上記の状態で選択操作が行われると、プレイヤオブジェクト85が選択され、選択されたプレイヤオブジェクト(選択オブジェクトと呼ぶ)89はカーソル81と共に移動する(図13の(B)参照)。また、プレイヤは、所定の解除操作によって選択オブジェクト89を放すことができる。つまり、解除操作が行われると、プレイヤオブジェクト85はカーソル81と共に移動しなくなる。また、本ゲームでは、プレイヤは、指示位置を敵オブジェクト86に合わせて所定の射撃操作を行うことで、敵オブジェクト86を撃退消滅)させることができる。

0157

また、選択オブジェクト89を移動可能な状態(図13の(B))で、プレイヤがコントローラ5を端末装置7の方へ向けた場合、選択オブジェクト89は端末装置7の方に表示される(図13の(C)参照)。プレイヤがコントローラ5を端末装置7の方へ向けた場合、指示位置が端末装置7の画面上で算出される結果、カーソル81は端末装置7に表示され、カーソル81と共に移動する選択オブジェクト89も端末装置7の方に表示されるのである。さらに、カーソル81および選択オブジェクト89が端末装置7に表示されている状態で解除操作を行うと、選択オブジェクト89は家オブジェクト87の中に入り、選択オブジェクト89を救出することができる。以上のように、プレイヤは、テレビ2の画面上において敵オブジェクト86を撃退しつつ、プレイヤオブジェクト85を家オブジェクト87へ移動させることでゲームを行う。

0158

以上のように、本実施形態においては、プレイヤは、テレビ2側に表示されるオブジェクトの方へコントローラ5を向けて選択し、その後コントローラ5の向きを端末装置7の方へ変化させることで、選択したオブジェクトを端末装置7側へ移動させることができる。つまり、本実施形態によれば、プレイヤは、表示装置に表示されるオブジェクトを他の表示装置へ移動させる操作を直感的な操作で容易に行うことができる。

0159

また、本実施形態においては、カーソル81が表示されない表示装置には、コントローラ5が向いている方向を示すための方向画像88が表示される。すなわち、コントローラ5がテレビ2の方を向いている場合(図13の(A)および(B))には、端末装置7には、右方向を示す方向画像88が表示される。また、コントローラ5が端末装置7の方を向いている場合(図13の(C))には、テレビ2には、左方向を示す方向画像88が表示される。なお、図示しないが、カーソル81がテレビ2および端末装置7のいずれにも表示されない場合には、両方の画面に方向画像88が表示される。例えば、コントローラ5が上を向いている場合、テレビ2および端末装置7の画面には上方向を示す方向画像88が表示される。方向画像88が表示されることによって、プレイヤは、コントローラ5が現在指し示している位置(方向)を見失うことなくポインティング操作を行うことができる。

0160

[6.ゲーム処理の詳細]
次に、本ゲームシステムにおいて実行されるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる各種データについて説明する。図14は、ゲーム処理において用いられる各種データを示す図である。図14においては、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す。図14に示すように、ゲーム装置3のメインメモリには、ゲームプログラム90、操作データ91、および処理用データ96が記憶される。なお、メインメモリには、図14に示すデータの他、ゲームに登場する各種オブジェクトの画像データやゲームに使用される音声データ等、ゲームに必要なデータが記憶される。

0161

ゲームプログラム90は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム90は、光ディスク4に代えて、フラッシュメモリ17やゲーム装置3の外部装置から(例えばインターネットを介して)取得されてもよい。また、ゲームプログラム90に含まれる一部(例えば、コントローラ5および/または端末装置7の姿勢を算出するためのプログラム)については、ゲーム装置3内に予め記憶されていてもよい。

0162

操作データ91は、コントローラ5に対するユーザの操作を表すデータ(上述したコントローラ操作データ)である。操作データ91は、コントローラ5から送信されてゲーム装置3において取得される。操作データ91は、加速度データ92、角速度データ93、マーカ座標データ94、および操作ボタンデータ95を含む。なお、メインメモリには、最新の(最後に取得された)ものから順に所定個数の操作データが記憶されてもよい。

0163

加速度データ92は、加速度センサ37によって検出された加速度(加速度ベクトル)を表すデータである。ここでは、加速度データ92は、図3に示すXYZの3軸の方向に関する加速度を各成分とする3次元の加速度を表すものであるが、他の実施形態においては、任意の1以上の方向に関する加速度を表すものであればよい。

0164

角速度データ93は、ジャイロセンサ48によって検出された角速度を表すデータである。ここでは、角速度データ93は、図3に示すXYZの3軸回りのそれぞれの角速度を表すものであるが、他の実施形態においては、任意の1軸以上の軸回り角速度を表すものであればよい。

0165

マーカ座標データ94は、撮像情報演算部35の画像処理回路41によって算出される座標、すなわち上記マーカ座標を表すデータである。マーカ座標は、撮像画像に対応する平面上の位置を表すための2次元座標系で表現され、マーカ座標データ94は、当該2次元座標系における座標値を表す。なお、撮像素子40によってマーカ部55の2つのマーカ55Aおよび55Bが撮像される場合には、2つのマーカ座標が算出され、マーカ座標データ94は2つのマーカ座標を表す。一方、撮像素子40の撮像可能な範囲内にマーカ55Aおよび55Bのいずれか一方が位置しない場合には、撮像素子40によって1つのマーカのみが撮像され、1つのマーカ座標のみが算出される。その結果、マーカ座標データ94は1つのマーカ座標を表す。また、撮像素子40の撮像可能な範囲内にマーカ55Aおよび55Bの両方が位置しない場合には、撮像素子40によってマーカが撮像されず、マーカ座標は算出されない。したがって、マーカ座標データ94は、2つのマーカ座標を表す場合もあるし、1つのマーカ座標を表す場合もあるし、マーカ座標がないことを表す場合もある。

0166

なお、コントローラ5からゲーム装置3へは、上記マーカ座標データに代えて、撮像画像の画像データ自体が送信されてもよい。つまり、コントローラ5は、撮像装置(撮像素子40)による撮像画像に関する撮像データとして、マーカ座標データを送信してもよいし、画像データ自体を送信してもよい。撮像画像の画像データをコントローラ5から受信する場合、ゲーム装置3は、撮像画像の画像データから上記マーカ座標を算出し、マーカ座標データとしてメインメモリに記憶するようにしてもよい。

0167

上記加速度データ92、角速度データ93、およびマーカ座標データ94は、コントローラ5の姿勢に応じたデータ(姿勢に応じて値が変化するデータ)である。詳細は後述するが、これらのデータ92〜94に基づいてコントローラ5の姿勢を算出することができる。なお、他の実施形態においては、コントローラ5の姿勢を算出するために、これらのデータ92〜94とともに(またはこれらのデータ92〜94に代えて)、例えば磁気センサが検出する方位を表す方位データ等、コントローラ5の姿勢に応じた他の種類のデータが用いられてもよい。

0168

操作ボタンデータ95は、コントローラ5に設けられる各操作ボタン32a〜32iに対する入力状態を表すデータである。

0169

なお、操作データ91は、コントローラ5を操作するプレイヤの操作を表すものであればよく、上記各データ92〜95の一部のみを含むものであってもよい。また、コントローラ5が他の入力手段(例えば、タッチパネルやアナログスティック等)を有する場合には、操作データ91は、当該他の入力手段に対する操作を表すデータを含んでいてもよい。

0170

処理用データ96は、後述するゲーム処理(図15)において用いられるデータである。処理用データ96は、第1姿勢データ97、第2姿勢データ98、第3姿勢データ99、第1基準姿勢データ100、第2基準姿勢データ101、対象基準データ102、投影位置データ103、指示位置データ104、差分データ105、制御データ106、処理フラグデータ107、および選択オブジェクトデータ108を含む。なお、図14に示すデータの他、処理用データ96は、各種オブジェクトに設定される各種パラメータ(例えばプレイヤオブジェクトおよび敵オブジェクトに関するパラメータ等)を表すデータ等、ゲーム処理において用いられる各種データを含む。

0171

第1姿勢データ97は、角速度データ93に基づいて算出されるコントローラ5の姿勢(以下、「第1姿勢」と呼ぶ。)を表すデータである。第2姿勢データ98は、加速度データ92に基づいて算出されるコントローラ5の姿勢(以下、「第2姿勢」と呼ぶ。)を表すデータである。第3姿勢データ99は、マーカ座標データ94に基づいて算出されるコントローラ5の姿勢(以下、「第3姿勢」と呼ぶ。)を表すデータである。詳細は後述するが、本実施形態では、算出方法が異なる上記3種類の姿勢に基づいて、最終的なコントローラ5の姿勢が算出される。最終的なコントローラ5の姿勢は、第1姿勢を第2姿勢および第3姿勢によって補正することによって得られる補正後の第1姿勢によって表される。

0172

ここで、本実施形態では、コントローラ5の第1姿勢は、以下の式(1)に示す3×3の行列M1で表現される。



上記行列M1は、所定の姿勢から現在のコントローラ5の姿勢への回転を表す回転行列である。なお、行列M1により表される第1姿勢は、コントローラ5が存在する空間に設定される空間座標系で表され、当該空間における上記所定の姿勢を基準とした姿勢である。なお、本実施形態においては、計算を簡単にする目的で、後述する第1基準姿勢処理(ステップS12)において、空間座標系は第1基準姿勢が単位行列となるように設定される。つまり、上記所定の姿勢は第1基準姿勢である。なお、本実施形態では、行列を用いてコントローラ5の姿勢を表現することとしたが、他の実施形態においては、コントローラ5の姿勢は、3次のベクトルまたは3つの角度によって表現されてもよい。

0173

第1基準姿勢データ100は、上述の第1基準姿勢を表すデータである。また、第2基準姿勢データ101は、上述の第2基準姿勢を表すデータである。このように、表示装置毎の基準姿勢がそれぞれメインメモリに記憶される。なお、本実施形態では、各基準姿勢も上記第1姿勢と同様、3×3の行列によって表される。また、上記のように、第1基準姿勢は単位行列となる。

0174

対象基準データ102は、各基準姿勢のうち、上述の対象表示装置、すなわち、コントローラ5が向いている表示装置に対応する基準姿勢(対象基準姿勢)を表す。対象基準データ102は、コントローラ5がいずれの表示装置の方を向いているかを表すデータである。

0175

投影位置データ103は、後述する投影位置を表すデータである。詳細は後述するが、投影位置は、コントローラ5の姿勢および基準姿勢に基づいて算出され、指示位置を算出するために用いられる。また、投影位置は、表示装置の画面に対応する平面上の位置であり、基準姿勢に対する現在の姿勢の変化量および変化方向を表す情報である。

0176

指示位置データ104は、上述の指示位置を表すデータである。具体的には、指示位置データ104は、テレビ2または端末装置7の画面に対応する平面上の位置を示す2次元座標を表す。

0177

差分データ105は、第1基準姿勢と第2基準姿勢との差を表すデータである。本実施形態では、差分データ105が表す差に応じて異なるゲーム処理が実行される。つまり、本実施形態では、第1基準姿勢と第2基準姿勢との差がゲーム内容(具体的にはゲームの難易度)に反映される。

0178

制御データ106は、端末装置7が備える構成要素に対する制御指示を表すデータである。本実施形態では、制御データ106は、マーカ部55の点灯を制御する指示を含む。制御データ106は、適宜のタイミングでゲーム装置3から端末装置7へ送信される。

0179

処理フラグデータ107は、ゲーム処理の進捗を判断するための処理フラグの値を表す。具体的には、各基準姿勢が設定されていない場合、処理フラグの値は“0”となり、第1基準姿勢が設定済みで、かつ、第2基準姿勢が設定されていない場合、処理フラグの値は“1”となり、各基準姿勢が設定済みである場合、処理フラグの値は“2”となる。

0180

選択オブジェクトデータ108は、選択オブジェクトおよびその位置を表す。また、選択オブジェクトが存在しない場合、選択オブジェクトデータ108は、選択オブジェクトが存在しない旨を表す。

0181

次に、ゲーム装置3において行われるゲーム処理の詳細を、図15図26を用いて説明する。図15は、ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニット初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。なお、ゲーム装置3においては、電源投入後にゲームプログラムがすぐに実行される構成であってもよいし、電源投入後にまず所定のメニュー画面を表示する内蔵プログラムが実行され、その後ユーザによってゲームの開始が指示されたことに応じてゲームプログラムが実行される構成であってもよい。図15に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。

0182

なお、図15図20図24図26に示すフローチャートの各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU10が実行するものとして説明するが、上記フローチャートの一部のステップの処理を、CPU10以外のプロセッサや専用回路が実行するようにしてもよい。

0183

まずステップS1において、CPU10は初期処理を実行する。初期処理は、仮想のゲーム空間を構築し、ゲーム空間に登場する各オブジェクトを初期位置に配置したり、ゲーム処理で用いる各種パラメータの初期値を設定したりする処理である。なお、本実施形態においては、初期処理において、各基準姿勢の所定の初期値(例えば単位行列)を表すデータが各基準姿勢データ100および101としてメインメモリに記憶される。また、“0”を表すデータが処理フラグデータ107としてメインメモリに記憶される。ステップS1の次にステップS2の処理が実行される。以降、ステップS2〜S8の一連の処理からなる処理ループが所定時間(1フレーム時間)に1回の割合で繰り返し実行される。

0184

ステップS2において、CPU10は、コントローラ5から操作データを取得する。ここで、コントローラ5は、加速度センサ37、ジャイロセンサ48、撮像情報演算部35および操作部32から出力される各データを操作データとしてゲーム装置3へ繰り返し送信する。ゲーム装置3は、コントローラ5からのデータを逐次受信して操作データ91としてメインメモリに逐次記憶する。ステップS2において、CPU10は、最新の操作データ91をメインメモリから読み出す。ステップS2の次にステップS3の処理が実行される。

0185

なお、本実施形態では端末装置7は操作装置としては用いられないので、CPU10は端末装置7から上述の端末操作データを取得しないものとして説明を行う。ただし、他の実施形態においては、上記ステップS2においてCPU10は端末操作データを取得してメインメモリに記憶し、端末操作データを後述するゲーム制御処理に用いてもよい。

0186

ステップS3において、CPU10はゲーム制御処理を実行する。ゲーム制御処理は、プレイヤによるゲーム操作に従ってゲーム空間内のオブジェクトを動作させる処理等を実行し、ゲームを進行させる処理である。具体的には、本実施形態におけるゲーム制御処理においては、各基準姿勢を設定する処理、操作データ91に基づいて指示位置を算出する処理、および、指示位置に基づいてオブジェクトを動作させる処理等が実行される。以下、図16を参照して、ゲーム制御処理の詳細について説明する。

0187

図16は、図15に示すゲーム制御処理(ステップS3)の詳細な流れを示すフローチャートである。ゲーム制御処理においてはまずステップS11において、CPU10は、第1基準姿勢を設定済みであるか否かを判定する。具体的には、処理フラグデータ107をメインメモリから読み出し、処理フラグの値が“0”以外(“1”または“2”)であるか否かを判定する。ステップS11の判定結果が肯定である場合、ステップS13の処理が実行される。一方、ステップS11の判定結果が否定である場合、ステップS12の処理が実行される。

0188

ステップS12において、CPU10は、第1基準姿勢を設定するための第1基準設定処理を実行する。本実施形態においては、図15に示すゲーム処理が開始されるとまず第1基準設定処理が実行され、第1基準姿勢が設定される。以下、図17を参照して、第1基準設定処理の詳細について説明する。

0189

図17は、図16に示す第1基準設定処理(ステップS12)の詳細な流れを示すフローチャートである。第1基準設定処理においてはまずステップS21において、CPU10は、テレビ2に対応するマーカユニットであるマーカ装置6を点灯させる。すなわち、CPU10は、マーカ装置6が備える各赤外LEDを点灯させる旨の制御信号をマーカ装置6へ送信する。この制御信号の送信は単に電力を供給するというだけのことであってもよい。これに応じてマーカ装置6の各赤外LEDが点灯される。なお、第1基準設定処理においては、端末装置7のマーカ部55は点灯されないことが好ましい。マーカ部55が点灯していると、マーカ部55をマーカ装置6と誤検出してしまうおそれがあるからである。ステップS21の次にステップS22の処理が実行される。

0190

ステップS22において、CPU10は、コントローラ5の姿勢を算出するための姿勢算出処理を実行する。コントローラ5の姿勢は、操作データ91に基づいて算出されればどのような方法で算出されてもよいが、本実施形態においては、角速度に基づく第1姿勢に対して、加速度に基づく第2姿勢とマーカ座標に基づく第3姿勢とを用いて補正を行うことによってコントローラ5の姿勢を算出する。なお、姿勢算出処理を実行するためのプログラムは、ライブラリとしてゲームプログラム90とは別にゲーム装置3に予め記憶されていてもよい。以下、図18を参照して、姿勢算出処理の詳細について説明する。

0191

図18は、図17に示す姿勢算出処理(ステップS22)の詳細な流れを示すフローチャートである。姿勢算出処理においてはまずステップS31において、CPU10は、コントローラ5の角速度に基づいてコントローラ5の第1姿勢を算出する。コントローラ5の第1姿勢を算出する方法はどのような方法であってもよいが、本実施形態においては、当該第1姿勢は、前回の第1姿勢(前回に算出された第1姿勢)と、今回の角速度(今回の処理ループにおけるステップS2で取得された角速度)とに基づいて算出される。具体的には、CPU10は、前回の第1姿勢を今回の角速度で単位時間分だけ回転させることによって新たな第1姿勢を算出する。なお、前回の第1姿勢は、メインメモリに記憶されている第1姿勢データ97により表され、今回の角速度は、メインメモリに記憶されている角速度データ93により表される。したがって、CPU10は、メインメモリから第1姿勢データ97および角速度データ93を読み出して、コントローラ5の第1姿勢を算出する。ステップS31で算出された第1姿勢を示すデータは、第1姿勢データ97としてメインメモリに新たに記憶される。以上のステップS31の次にステップS32の処理が実行される。

0192

なお、角速度から姿勢を算出する場合、初期姿勢を定めておいてもよい。つまり、コントローラ5の姿勢を角速度から算出する場合には、CPU10は、最初にコントローラ5の初期姿勢を算出しておく。コントローラ5の初期姿勢は、加速度データに基づいて算出されてもよいし、コントローラ5を特定の姿勢にした状態でプレイヤに所定の操作を行わせることで、所定の操作が行われた時点における特定の姿勢を初期姿勢として用いるようにしてもよい。なお、空間における所定の姿勢を基準とした絶対的な姿勢としてコントローラ5の姿勢を算出する場合には上記初期姿勢を算出することが好ましい。ただし、例えばゲーム開始時点等、所定の時点におけるコントローラ5の姿勢を基準とした相対的な姿勢としてコントローラ5の姿勢を算出する場合には、上記初期姿勢は算出されなくてもよい。本実施形態においては、第1基準姿勢が設定されることによって初期姿勢が再設定されることになるので、第1基準姿勢が設定される前においては任意の姿勢を初期姿勢として設定しておいてもよい。

0193

ステップS32において、CPU10は、コントローラ5の加速度に基づいてコントローラ5の第2姿勢を算出する。具体的には、CPU10は、メインメモリから加速度データ92を読み出して、加速度データ92に基づいてコントローラ5の姿勢を算出する。ここで、コントローラ5がほぼ静止している状態では、コントローラ5に対して加えられる加速度は重力加速度に相当する。したがって、この状態では、検出された重力加速度の方向(重力方向)に対するコントローラ5の向き(姿勢)を当該加速度データ92に基づいて算出することができる。このように、加速度センサ37が重力加速度を検出する状況では、重力方向を基準としたコントローラ5の姿勢を加速度データ92に基づいて算出することができる。以上のようにして算出された姿勢を表すデータは、第2姿勢データ98としてメインメモリに記憶される。ステップS32の次にステップS33の処理が実行される。

0194

ステップS33において、CPU10は、加速度に基づく第2姿勢を用いて、角速度に基づく第1姿勢を補正する。具体的には、CPU10は、第1姿勢データ97および第2姿勢データ98をメインメモリから読み出し、第1姿勢を第2姿勢へ所定の割合で近づける補正を行う。この所定の割合は、予め定められた固定値であってもよいし、検出される加速度等に応じて設定されてもよい。なお、第2姿勢は、重力方向を基準として表される姿勢であるので、第1姿勢が他の方向を基準として表される姿勢である場合には、補正を行う前に一方の姿勢を他方の姿勢の基準として表される姿勢に変換する必要がある。ここでは、第1姿勢を基準として表される姿勢へと第2姿勢を変換するべく、第2姿勢を表すベクトルを、前回のフレーム処理(ステップS2〜S8の処理)において得られた第1姿勢を表す回転行列を用いて回転させる。また、第2姿勢に関しては、重力方向を軸とする回転方向については姿勢を算出することができないので、当該回転方向に関しては補正が行われなくてもよい。

0195

なお、ステップS33における補正処理においては、加速度センサ37によって検出される加速度が重力方向を表すものとして信頼できる度合に応じて、補正の割合を変化させるようにしてもよい。ここで、検出される加速度が信頼できるか否か、すなわち、コントローラ5が静止しているか否かは、当該加速度の大きさが重力加速度の大きさに近いか否かによって推測することができる。したがって、例えば、CPU10は、検出される加速度の大きさが重力加速度の大きさに近い場合には、第1姿勢を第2姿勢へ近づける割合を大きくし、検出される加速度の大きさが重力加速度の大きさから離れている場合には、第1姿勢を第2姿勢へ近づける割合を小さくするようにしてもよい。以上のようにして得られた補正後の姿勢を表すデータが、新たな第1姿勢データ97としてメインメモリに記憶される。ステップS33の次にステップS34の処理が実行される。

0196

ステップS34において、CPU10は、各基準姿勢が設定済みであるか否かを判定する。具体的には、CPU10は、処理フラグデータ107をメインメモリから読み出し、処理フラグの値が“2”であるか否かを判定する。ステップS34の判定結果が肯定である場合、ステップS35の処理が実行される。一方、ステップS34の判定結果が否定である場合、ステップS35〜S37の処理がスキップされて、CPU10は姿勢算出処理を終了する。

0197

上記のように、本実施形態においては、基準設定処理(上記ステップS12または後述するステップS14)においてはマーカ座標に基づく第3姿勢を用いた補正処理(ステップS35〜S37)が実行されない。つまり、基準設定処理においては、角速度データ93および加速度データ92に基づいてコントローラ5の姿勢が算出される。なお、第1基準設定処理においては、第1基準姿勢を設定する際に姿勢の初期化処理(後述するステップS24)が行われ、初期化処理後においては第1基準姿勢を基準とした姿勢が算出される。そのため、第1基準姿勢とは異なる姿勢を基準として算出される第3姿勢を用いて補正を行う必要がないので、第1基準設定処理においてステップS35〜S37の処理を実行しない。なお、他の実施形態において、CPU10は、上記初期化処理を実行しない場合には、第3姿勢を用いた補正処理を第1基準設定処理においても実行するようにしてもよい。

0198

ステップS35において、CPU10は、コントローラ5の撮像手段(撮像素子40)によってマーカユニットが撮像されているか否かを判定する。ステップS35の判定は、メインメモリに記憶されているマーカ座標データ94を参照することによって行うことができる。ここでは、マーカ座標データ94が2つのマーカ座標を表す場合、マーカユニットが撮像されていると判定し、マーカ座標データ94が1つのマーカ座標のみを表す場合、または、マーカ座標がないことを表す場合、マーカユニットが撮像されていないと判定する。ステップS35の判定結果が肯定である場合、以降のステップS36およびS37の処理が実行される。一方、ステップS35の判定結果が否定である場合、ステップS36およびS37の処理がスキップされ、CPU10は姿勢算出処理を終了する。このように、撮像素子40によってマーカユニットが撮像されていない場合には、撮像素子40から得られるデータを用いてコントローラ5の姿勢(第3姿勢)を算出することができないので、この場合には第3姿勢を用いた補正は行われない。

0199

なお、他の実施形態において、プレイヤの下(床面)や上(天井)に配置されることがないと想定される場合には、上記ステップS35において、CPU10は、コントローラ5の先端方向(Z軸正方向)が鉛直方向を向いているか否かをさらに判定してもよい。そして、鉛直方向を向いていると判定される場合には、CPU10は、コントローラ5の撮像手段によってマーカユニットが撮像されていないと判断する。なお、コントローラ5の先端方向が鉛直方向を向いているか否かの判定は、ステップS31で算出された第1姿勢、ステップS32で算出された第2姿勢、または、ステップS33で補正された第1姿勢を用いて行われる。これによれば、撮像情報演算部35がマーカユニットでない物をマーカユニットであると誤認識してマーカ座標を算出した場合であっても、誤ったマーカ座標に基づいて第3姿勢が算出されることがないので、コントローラ5の姿勢をより精度良く算出することができる。

0200

ステップS36において、CPU10は、マーカ座標に基づいてコントローラ5の第3姿勢を算出する。マーカ座標は、撮像画像内における2つのマーカ(マーカ6Lおよび6R、または、マーカ55Aおよび55B)の位置を示すので、これらの位置からコントローラ5の姿勢を算出することができる。以下、マーカ座標に基づくコントローラ5の姿勢の算出方法について説明する。なお、以下におけるロール方向、ヨー方向、およびピッチ方向とは、コントローラ5の撮像方向(Z軸正方向)がマーカユニットを指し示す状態(基準状態)にあるコントローラ5のZ軸回りの回転方向、Y軸回りの回転方向、およびX軸回りの回転方向を指す。

0201

まず、ロール方向(Z軸回りの回転方向)に関する姿勢は、撮像画像内において2つのマーカ座標を結ぶ直線の傾きから算出することができる。すなわち、ロール方向に関する姿勢を算出する際、CPU10はまず、2つのマーカ座標を結ぶベクトルを算出する。このベクトルは、コントローラ5のロール方向の回転に応じて向きが変化するので、CPU10は、ロール方向に関する姿勢をこのベクトルに基づいて算出することができる。例えば、ロール方向に関する姿勢は、所定の姿勢の時のベクトルを現在のベクトルへと回転させる回転行列として算出されてもよいし、所定の姿勢の時のベクトルと現在のベクトルとのなす角度として計算されてもよい。

0202

また、コントローラ5の位置が概ね一定であると想定できる場合には、撮像画像内におけるマーカ座標の位置から、ピッチ方向(X軸回りの回転方向)およびヨー方向(Y軸回りの回転方向)に関するコントローラ5の姿勢を算出することができる。具体的には、CPU10はまず、2つのマーカ座標の中点の位置を算出する。つまり、本実施形態では撮像画像内におけるマーカユニットの位置として当該中点の位置が用いられる。次に、CPU10は、撮像画像の中央の位置を中心として、コントローラ5のロール方向に関する回転角度だけ(コントローラ5の回転方向とは逆方向に)上記中点を回転させる補正を行う。換言すれば、中点は、撮像画像の中央の位置を中心として、上記ベクトルが水平方向を向くように回転される。

0203

上記のようにして得られた補正後の中点位置から、コントローラ5のヨー方向およびピッチ方向に関する姿勢を算出することができる。すなわち、上記基準状態において、補正後の中点位置は撮像画像の中央の位置となる。また、補正後の中点位置は、基準状態からコントローラ5の姿勢が変化した方向とは逆方向に、変化した量に応じた量だけ、撮像画像の中央の位置から移動する。したがって、基準状態におけるコントローラ5の姿勢から当該姿勢が変化した方向および量(角度)は、撮像画像の中央の位置を基準とした補正後の中点位置の変化方向および変化量に基づいて算出される。また、コントローラ5のヨー方向は撮像画像の横方向に対応し、コントローラ5のピッチ方向は撮像画像の縦方向に対応するので、ヨー方向およびピッチ方向の姿勢を個別に算出することも可能である。

0204

なお、ゲームシステム1においては、プレイヤがゲームを行う態勢(立っているか座っているか等)や、マーカユニットの位置(テレビ2の上に配置されるか下に配置されるか等)は様々であることから、鉛直方向に関しては、コントローラ5の位置が概ね一定であるとの上記想定が成り立たないおそれがある。つまり、本実施形態においては、ピッチ方向については第3姿勢を正確に算出することができないおそれがあるので、CPU10は、ピッチ方向については第3姿勢を算出しないものとする。

0205

上より、上記ステップS36においては、CPU10は、マーカ座標データ94をメインメモリから読み出し、ロール方向に関する姿勢とヨー方向に関する姿勢とを2つのマーカ座標に基づいて算出する。なお、各方向に関する姿勢を例えば回転行列として算出する場合、第3姿勢は、各方向に対応する回転行列を積算することで得ることができる。算出された第3姿勢を表すデータは、第3姿勢データ99としてメインメモリに記憶される。上記ステップS36の次にステップS37の処理が実行される。

0206

なお、本実施形態においては、CPU10は、ロール方向およびヨー方向に関する姿勢をマーカ座標に基づいて算出し、ピッチ方向については第1姿勢と同じ姿勢を用いることとした。つまり、ピッチ方向についてはマーカ座標を用いた姿勢の補正処理を行わないこととした。ただし、他の実施形態においては、CPU10は、ピッチ方向についてもヨー方向と同様の方法でマーカ座標に基づいてピッチ方向に関する姿勢を算出するようにし、ピッチ方向についてもマーカ座標を用いた姿勢の補正処理を行うようにしてもよい。

0207

ステップS37において、CPU10は、マーカ座標に基づく第3姿勢を用いて、角速度に基づく第1姿勢を補正する。具体的には、CPU10は、第1姿勢データ97および第3姿勢データ99をメインメモリから読み出し、第1姿勢を第3姿勢へ所定の割合で近づける補正を行う。この所定の割合は、例えば予め定められた固定値である。また、補正の対象となる第1姿勢は、上記ステップS33の処理によって第2姿勢を用いて補正が行われた後の第1姿勢である。以上のようにして得られた補正後の姿勢を表すデータが、新たな第1姿勢データ97としてメインメモリに記憶される。ステップS37の補正処理後における第1姿勢データ97が、最終的なコントローラ5の姿勢として後の処理に用いられる。上記ステップS37の終了後、CPU10は姿勢算出処理を終了する。

0208

上記姿勢算出処理によれば、CPU10は、角速度データ93に基づいて算出されたコントローラ5の第1姿勢を、加速度データ92(およびマーカ座標データ94)を用いて補正した。ここで、コントローラ5の姿勢を算出する方法のうち、角速度を用いる方法では、コントローラ5がどのように動いているときであっても姿勢を算出することができる。一方、角速度を用いる方法では、逐次検出される角速度を累積加算していくことによって姿勢を算出するので、誤差が累積すること等によって精度が悪くなったり、いわゆる温度ドリフトの問題でジャイロセンサ48の精度が悪くなったりするおそれがある。また、加速度を用いる方法は、誤差が蓄積しない一方、コントローラ5が激しく動かされている状態では、(重力方向を正確に検出することができないので)姿勢を精度良く算出することができない。また、マーカ座標を用いる方法は、(特にロール方向に関して)姿勢を精度良く算出することができる一方、マーカユニットを撮像できない状態では姿勢を算出することができない。これに対して、本実施形態によれば、上記のように特長の異なる3種類の方法を用いるので、コントローラ5の姿勢をより正確に算出することができる。なお、他の実施形態においては、上記3つの方法のうちいずれか1つまたは2つを用いて姿勢を算出するようにしてもよい。

0209

図17の説明に戻り、上記姿勢算出処理の後、ステップS23の処理が実行される。すなわち、ステップS23において、CPU10は、基準設定操作が行われたか否かを判定する。基準設定操作は、操作時点におけるコントローラ5の姿勢を基準姿勢として設定する指示を行うための操作であり、例えばAボタン32dを押下する操作である。具体的には、CPU10は、メインメモリから読み出した操作ボタンデータ95を参照することによって、上記所定のボタンが押下されたか否かを判定する。ステップS23の判定結果が肯定である場合、ステップS24の処理が実行される。一方、ステップS23の判定結果が否定である場合、ステップS24〜S26の処理がスキップされてステップS27の処理が実行される。

0210

ステップS24において、CPU10は、コントローラ5の姿勢を初期化する。すなわち、コントローラ5の姿勢を表すための空間座標系が、現在のコントローラ5の姿勢が単位行列として表されるように変更される。具体的には、CPU10は、姿勢算出処理(ステップS22,S42,およびS52)を実行するプログラム(ライブラリ)の設定を上記のように変更する。したがって、第1基準姿勢が設定される以降においては、第1基準姿勢を基準として表される値で(第1基準姿勢が単位行列として表されるような座標系によって)コントローラ5の姿勢が算出される。ステップS24の次にステップS25の処理が実行される。

0211

ステップS25において、CPU10は、コントローラ5の現在の姿勢を第1基準姿勢として設定する。すなわち、CPU10は、コントローラ5の現在の姿勢を表すデータを第1基準姿勢データ100としてメインメモリに記憶する。本実施形態においては、上記ステップS24の処理によってコントローラ5の姿勢が初期化されるので、第1基準姿勢データ100は単位行列を表すデータとなる。ステップS25の次にステップS26の処理が実行される。

0212

上記ステップS24およびS25のように、本実施形態においては、コントローラ5の姿勢を表すための座標系を変更することで、第1基準姿勢が常に単位行列として表されるようにしている。ここで、他の実施形態においては、上記ステップS24の処理は実行されなくてもよい。すなわち、第1基準姿勢以外の姿勢が単位行列となるような座標系でコントローラ5の姿勢が算出されてもよい。このとき、上記ステップS25においては、上記ステップS22で算出された姿勢(第1姿勢データ97)が第1基準姿勢データ100としてメインメモリに記憶される。

0213

ステップS26において、CPU10は、処理フラグの値を“1”に設定する。すなわち、“1”を表すように処理フラグデータ107を更新する。これによって、次に実行されるステップS2〜S8の処理ループでは、第2基準設定処理が実行されることになる。ステップS26の次にステップS27の処理が実行される。

0214

ステップS27において、CPU10は、コントローラ5の撮像手段(撮像素子40)によってマーカ装置6が撮像されているか否かを判定する。ステップS27の処理は、上述のステップS35の処理と同じである。ステップS27の判定結果が肯定である場合、ステップS28の処理が実行される。一方、ステップS27の判定結果が否定である場合、ステップS28の処理がスキップされてCPU10は第1基準設定処理を終了する。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ