特許第6363350号(P6363350)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 任天堂株式会社の特許一覧

特許6363350情報処理プログラム、情報処理装置、情報処理システム、情報処理方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6363350
(24)【登録日】2018年7月6日
(45)【発行日】2018年7月25日
(54)【発明の名称】情報処理プログラム、情報処理装置、情報処理システム、情報処理方法
(51)【国際特許分類】
   A63F 13/428 20140101AFI20180712BHJP
   A63F 13/211 20140101ALI20180712BHJP
   G06F 3/01 20060101ALI20180712BHJP
【FI】
   A63F13/428
   A63F13/211
   G06F3/01
【請求項の数】12
【全頁数】17
(21)【出願番号】特願2014-14593(P2014-14593)
(22)【出願日】2014年1月29日
(65)【公開番号】特開2015-139586(P2015-139586A)
(43)【公開日】2015年8月3日
【審査請求日】2016年12月28日
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】特許業務法人 小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】太田 敬三
【審査官】 目黒 大地
(56)【参考文献】
【文献】 特開2011−255121(JP,A)
【文献】 特開2010−259612(JP,A)
【文献】 特開2007−094700(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F9/24
13/00−13/98
G06F3/01、3/048−3/0489
(57)【特許請求の範囲】
【請求項1】
角速度センサを有する操作装置からの出力に基づいて所定の処理を実行する情報処理装置のコンピュータに実行させる情報処理プログラムであって、
前記コンピュータを、
前記操作装置、または仮想空間内に配置された当該操作装置に対応する仮想操作装置の姿勢を前記角速度センサからの出力に基づいて算出する姿勢算出手段と、
前記姿勢に基づいて算出される前記操作装置または前記仮想操作装置が存在する空間の座標系における第1軸方向に直交する第2軸周りの回転量を、当該第1軸および第2軸に直交する軸である第軸周りの回転量に基づいて変化させる回転量変化手段と、
前記回転量変化手段によって変化された前記第周りの回転量に基づいて前記所定の処理を実行する処理実行手段、として機能させる、情報処理プログラム。
【請求項2】
前記処理実行手段は、前記回転量変化手段によって変化された前記第周りの回転量、および、前記第1軸周りの回転量に基づいて前記所定の処理を実行する、請求項1に記載の情報処理プログラム。
【請求項3】
前記回転量変化手段は、前記第軸周りの回転量が大きいほど、第周りの回転量を大きく変化させる、請求項1または2に記載の情報処理プログラム。
【請求項4】
前記回転量変化手段は、前記第軸周りの回転方向に応じて、前記第周りの回転方向のうち、回転量を大きくする方向への変化か、回転量を小さくする方向への変化かを決定する変化内容決定手段を含む、請求項1乃至3の何れか一つに記載の情報処理プログラム。
【請求項5】
前記操作装置は、ユーザの左右の手でそれぞれ把持されて操作が行われるようなハウジングを有する、請求項1乃至4の何れか1つに記載の情報処理プログラム。
【請求項6】
前記第軸は、前記ユーザの左右の手で把持されている前記ハウジングの右手側がユーザから見て前方に移動すると、左手側がユーザから見て手前方向に移動し、当該ハウジングの右手側がユーザから見て手前側に移動すると、左手側が前方に移動するように回転をさせたときの操作装置の姿勢の回転中心となる軸であり、
前記第軸は、前記ユーザの左右の手で把持されている前記ハウジングの右手側がユーザから見て上方に上がると左手側が下方に下がり、当該ハウジングの右手側が下方に下がると左手側が上方に上がるように操作装置の姿勢を回転させたときの回転中心となる軸である、請求項5に記載の情報処理プログラム。
【請求項7】
前記第1軸は、重力方向に直交する軸であって、ユーザから見て左右方向に伸びる軸であり、
前記第2軸は、前記重力方向と水平な軸であり、
前記第軸は、前記第1軸および重力方向の双方に直交する軸である、請求項1乃至6の何れか1つに記載の情報処理プログラム。
【請求項8】
前記所定の処理は、所定の画面上の位置を指示するポインティング処理である、請求項1乃至7の何れか1つに記載の情報処理プログラム。
【請求項9】
前記回転量変化手段が前記仮想操作装置を用いて前記回転量を変化させる場合において、前記所定の処理は、当該仮想操作装置と同じ仮想空間に配置された仮想スクリーンに対するポインティング処理である、請求項8に記載の情報処理プログラム。
【請求項10】
角速度センサを有する操作装置からの出力に基づいて所定の処理を実行する情報処理装置であって、
前記操作装置、または仮想空間内に配置された当該操作装置に対応する仮想操作装置の姿勢を前記角速度センサからの出力に基づいて算出する姿勢算出手段と、
前記姿勢に基づいて算出される前記操作装置または前記仮想操作装置が存在する空間の座標系における第1軸方向に直交する第2軸周りの回転量を、当該第1軸および第2軸に直交する軸である第軸周りの回転量に基づいて変化する回転量変化手段と、
前記回転量変化手段によって変化された前記第周りの回転量に基づいて前記所定の処理を実行する処理実行手段と、を備える情報処理装置。
【請求項11】
角速度センサを有する操作装置からの出力に基づいて所定の処理を実行する情報処理システムであって、
前記操作装置、または仮想空間内に配置された当該操作装置に対応する仮想操作装置の姿勢を前記角速度センサからの出力に基づいて算出する姿勢算出手段と、
前記姿勢に基づいて算出される前記操作装置または前記仮想操作装置が存在する空間の座標系における第1軸方向に直交する第2軸周りの回転量を、当該第1軸および第2軸に直交する軸である第軸周りの回転量に基づいて変化する回転量変化手段と、
前記回転量変化手段によって変化された前記第周りの回転量に基づいて前記所定の処理を実行する処理実行手段と、を備える情報処理システム。
【請求項12】
角速度センサを有する操作装置からの出力に基づいて所定の処理を実行する情報処理装置またはシステムを制御するための情報処理方法であって、
前記操作装置、または仮想空間内に配置された当該操作装置に対応する仮想操作装置の姿勢を前記角速度センサからの出力に基づいて算出する姿勢算出ステップと、
前記姿勢に基づいて算出される前記操作装置または前記仮想操作装置が存在する空間の座標系における第1軸方向に直交する第2軸周りの回転量を、当該第1軸および第2軸に直交する軸である第軸周りの回転量に基づいて変化する回転量変化ステップと、
前記回転量変化ステップで変化された前記第周りの回転量に基づいて前記所定の処理を実行する処理実行ステップとを備える、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、角速度センサを有する操作装置からの出力に基づいて所定の処理を実行する情報処理に関し、より特定的には、操作装置の姿勢に基づいて所定の処理を行う情報処理に関する。
【背景技術】
【0002】
従来から、ジャイロセンサを備えた入力装置が知られている。このような入力装置の中には、その前後方向を長手方向とした略直方体形状を有し、片手で把持可能な大きさの入力装置がある。そして、このような入力装置をポインティングデバイスとして用いる技術も知られている(例えば特許文献1)。このような技術では、入力装置の先端部を画面に向けてポインティング操作を行っている。そして、重力方向に沿った軸を中心として入力装置自体を回転させることで、ポインティング位置を左右方向に変化可能であった。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−207329号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のような技術は、入力装置として略直方体形状で片手持ちが可能なものを想定していた。ここで、上記のように入力装置自身を動かしてポインティングする操作において、この入力装置を、そのハウジングの左右端を把持して操作するような場合(両手持ちの場合)を想定する。一例として、横長の略長方形の板状のハウジングである入力装置を想定する。そして、これを両手で把持してポインティング操作する場合を考える。このポインティング操作として、入力装置の上辺側(先端側)を画面に向けてポインティング操作するような場合を想定する。このような両手持ちの場合、例えば、左右方向にポインティング位置を変化させようとすると、図16に示すように、入力装置の先端側を左右に向けるように操作するユーザがいる一方で、図17に示すように、先端側の向きは変えずに、入力装置をひねるようにして操作するユーザも存在する。つまり、両手持ちであるが故に、ポインティング位置を左右方向に移動させたい場合に行い得る操作が2通り考えられる。上記の技術では、前者の操作の場合であれば指示位置の左右の変化は可能ではあるが、後者の操作が行われた場合に、そのユーザに対して、十分な操作性の良さが提供できなかった。
【0005】
それ故に、本発明の目的は、両手持ちで操作するポインティングデバイスでポインティング操作等を行う場合の操作性を高めることが可能な情報処理プログラム、情報処理装置、情報処理システム、情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【0007】
構成例の一例は、角速度センサを有する操作装置からの出力に基づいて所定の処理を実行する情報処理装置のコンピュータに実行させる情報処理プログラムであり、コンピュータを、姿勢算出手段と、回転量変化手段と、処理実行手段として機能させる。姿勢算出手段は、操作装置、または仮想空間内に配置された当該操作装置に対応する仮想操作装置の姿勢を角速度センサからの出力に基づいて算出する。回転量変化手段は、姿勢に基づいて算出される操作装置または仮想操作装置が存在する空間の座標系における第1軸方向への回転量を、当該第1軸に直交する軸である第2軸周りの回転量に基づいて変化させる。処理実行手段は、回転量変化手段によって変化された第1軸方向への回転量に基づいて所定の処理を実行する。
【0008】
上記構成例によれば、例えば入力装置自体を動かしてポインティングを行うようなポインティングデバイスにおける左右方向へのポインティング操作やカーソル移動操作等の操作性を高めることができる。
【0009】
他の構成例として、処理実行手段は、回転量変化手段によって変化された第1軸方向への回転量、および、第1軸周りの回転量に基づいて所定の処理を実行するようにしてもよい。
【0010】
上記構成例によれば、例えば左右方向に加えて上下方向への入力も可能となり、より操作性を高めることができる。
【0011】
他の構成例として、回転量変化手段は、第2軸周りの回転量が大きいほど、第1軸方向への回転量を大きく変化させるようにしてもよい。更には、回転量変化手段は、第2軸周りの回転方向に応じて、第1軸方向のうち、回転量を大きくする方向への変化か、回転量を小さくする方向への変化かを決定する変化内容決定手段を含むように構成してもよい。
【0012】
上記構成例によれば、より直感的な操作感覚を提供できる。また、第2軸周りの回転方向に応じて、回転量を大きくする方向への変化か、小さくする方向への変化かを決めることができ、より細やかな操作が可能となる。
【0013】
他の構成例として、操作装置は、ユーザの左右の手でそれぞれ把持されて操作が行われるようなハウジングを有するものであってもよい。また、第1軸は、ユーザの左右の手で把持されているハウジングの右手側がユーザから見て前方に移動すると、左手側がユーザから見て手前方向に移動し、当該ハウジングの右手側がユーザから見て手前側に移動すると、左手側が前方に移動するように回転をさせたときの操作装置の回転方向に沿った軸であり、第2軸は、ユーザの左右の手で把持されているハウジングの右手側がユーザから見て上方に上がると左手側が下方に下がり、当該ハウジングの右手側が下方に下がると左手側が上方に上がるように操作装置の姿勢を回転させたときの回転中心となる軸であってもよい。更には、第1軸は、重力方向に直交する軸であって、ユーザから見て左右方向に沿った軸であり、第2軸は、第1軸および重力方向の双方に直交する軸であってもよい。
【0014】
上記構成例によれば、両手持ちで、かつ、入力装置自体を動かすことで、画面上の指示位置を変化させることが可能な入力装置における操作性をより高めることができる。
【0015】
他の構成例として、所定の処理は、所定の画面上の位置を指示するポインティング処理であってもよい。更に、回転量変化手段が仮想操作装置を用いて回転量を変化させる場合において、所定の処理は、仮想操作装置と同じ仮想空間に配置された仮想スクリーンに対するポインティング処理であってもよい。
【0016】
上記構成例によれば、ポインティング操作における操作性をより高めることが可能となる。
【発明の効果】
【0017】
本実施形態によれば、両手持ちのポインティングデバイスによるポインティング等の操作性をより高めることができる。
【図面の簡単な説明】
【0018】
図1】本実施形態の一例である情報処理システムの全体像を示す模式図
図2】ゲーム装置3の構成の一例を示すブロック図
図3】端末装置7の外観構成を示す図
図4】端末装置7の構成を示すブロック図
図5A】本実施形態において実行される処理の概要を説明するための図
図5B】本実施形態において実行される処理の概要を説明するための図
図5C】本実施形態において実行される処理の概要を説明するための図
図6】本実施形態において実行される処理の概要を説明するための図
図7A】本実施形態において実行される処理の概要を説明するための図
図7B】本実施形態において実行される処理の概要を説明するための図
図7C】本実施形態において実行される処理の概要を説明するための図
図8A】本実施形態において実行される処理の概要を説明するための図
図8B】本実施形態において実行される処理の概要を説明するための図
図9】本実施形態において実行される処理の概要を説明するための図
図10】本実施形態において実行される処理の概要を説明するための図
図11】本実施形態において実行される処理の概要を説明するための図
図12】本実施形態の処理において用いられる各種データを示す図
図13】アシスト処理の詳細を示すフローチャート
図14】ひねり方向の算出手法を説明するための図
図15】ひねり方向の算出手法を説明するための図
図16】入力装置の操作の一例を示す図
図17】入力装置の操作の一例を示す図
【発明を実施するための形態】
【0019】
以下、本発明の一実施形態について説明する。
【0020】
以下、図面を参照して、本発明の一実施形態に係るゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。図1において、ゲームシステム1は、テレビジョン受像器等に代表される据置型のディスプレイ装置(以下、「テレビ」と記載する)2、据置型のゲーム装置3、端末装置7を含む。ゲームシステム1は、入力装置(コントローラ)としても機能する端末装置7を用いた操作に基づいてゲーム装置3においてゲーム処理等の情報処理を実行し、当該処理によって得られる画像をテレビ2および/または端末装置7に表示するものである。
【0021】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク(図示せず)が脱着可能に挿入される。
【0022】
ゲーム装置3には、テレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理によって得られるゲーム画像を表示する。なお、他の実施形態においては、ゲーム装置3と据置型のディスプレイ装置とは一体となっていてもよい。また、ゲーム装置3とテレビ2との通信は無線通信であってもよい。
【0023】
端末装置7は、ユーザが両手で把持可能な程度の大きさであり、ユーザは端末装置7を持って動かしたりして使用することが可能である。詳細な構成は後述するが、端末装置7は、表示手段であるLCD(Liquid Crystal Display:液晶表示装置)71、および、入力手段(各種ボタンや後述するモーションセンサ82等)を備える。端末装置7とゲーム装置3とは無線(有線であってもよい)によって通信可能である。端末装置7は、自機に対して行われた操作の内容を表す操作データをゲーム装置3に送信する。また、端末装置7は、ゲーム装置3で生成された画像(例えばゲーム画像)のデータをゲーム装置3から受信し、画像をLCD71に表示することが可能である。
【0024】
図2は、情報処理装置の一例であるゲーム装置3のブロック図である。図2において、ゲーム装置3は、CPU(制御部)11およびメモリ12、システムLSI13、コーデックLSI15,端末装置通信部16、およびAV−IC(Audio Video−Integrated Circuit)20等を有する。
【0025】
CPU11は、メモリ12やシステムLSI13等を用いて所定の情報処理プログラム(本実施形態ではゲームプログラム)を実行する。これにより、ゲーム装置3における各種機能(例えば、ゲーム処理)が実現される。CPU11は、システムLSI13に接続されている。なお、単一のCPU11を有する構成に限らず、他の実施形態では、例えば複数のプロセッサを有する構成とし、当該複数のプロセッサで後述するような処理を分散処理するようにしてもよい。
【0026】
システムLSI13には、GPU(Graphics Processor Unit)17、DSP(Digital Signal Processor)18、入出力プロセッサ19、等が含まれる。GPU17は、CPU11からのグラフィクスコマンド(作画命令)に従って画像を生成する。ゲーム装置3は、テレビ2に表示するゲーム画像と、端末装置7に表示するゲーム画像との両方を生成可能である。なお、本実施形態では、ゲーム画像は、テレビ2にのみ表示される場合を例として説明する
【0027】
DSP18は、オーディオプロセッサとして機能し、メモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0028】
入出力プロセッサ19は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ19は、コーデックLSI15、AV−IC20に接続される。コーデックLSI15は端末装置通信部16に接続され、端末装置通信部16には図示しないアンテナが接続される。コーデックLSI15は、端末装置7との間で画像や音声データ等を送受信する際の圧縮・伸長処理のために用いられる。入出力プロセッサ19は、端末装置通信部16を介して、端末装置7との間でデータの送受信を実行したりする。例えば、入出力プロセッサ19は、端末装置7から送信される操作データを受信し、メモリ12のバッファ領域に記憶(一時記憶)する。
【0029】
また、ゲーム装置3において生成される画像および音声のうちで、テレビ2において出力される画像および音声のデータは、AV−IC20によって読み出される。AV−IC20は、図示しないAVコネクタを介して、読み出した画像データをテレビ2に出力するとともに、読み出した音声データをテレビ2に内蔵されるスピーカ2Lおよび2Rに出力する。これによって、テレビ2に画像が表示されるとともにスピーカ2Lおよび2Rから音声が出力される。
【0030】
また、ゲーム装置3は、端末装置7から各種データを受信可能である。例えば、端末装置7は、操作データを送信する。入出力プロセッサ19は、端末装置7から受信したデータを、メモリ12のバッファ領域に記憶(一時記憶)する。
【0031】
次に、図3を参照して、端末装置7の構成について説明する。図3は、端末装置7の外観構成を示す図である。図3における(a)図は端末装置7の正面図であり、(b)図は上面図であり、(c)図は右側面図であり、(d)図は下面図である。
【0032】
図3に示されるように、端末装置7は、大略的には横長の長方形の板状形状であるハウジング70を備える。ハウジング70は、ユーザが左右の手で把持することができる程度の大きさである。したがって、ユーザは、端末装置7を持って、端末装置自体を動かすことができる。
【0033】
端末装置7は、ハウジング70の表面にLCD71を有する。LCD71は、ハウジング70の表面の中央付近に設けられる。また、端末装置7は、操作手段の一つとして、LCD71の画面上にタッチパネル72を有する。更に、端末装置7は、操作手段の一つとして、2つのアナログスティック75Lおよび75Rと、十字ボタン76や複数のボタン77(図6に示す操作部81に相当)を備えている。各アナログスティック75Lおよび75Rは、方向を指示するデバイスである。
【0034】
また、端末装置7は、音声出力手段であるスピーカを備えている。図5(d)図に示すように、ハウジング70の下側側面にはスピーカ孔79が設けられる。スピーカの出力音はこのスピーカ孔79から出力される。本実施形態では、端末装置7は2つのスピーカを備えており、左スピーカおよび右スピーカのそれぞれの位置にスピーカ孔79が設けられる。
【0035】
次に、図4を参照して、端末装置7の内部構成について説明する。図4は、端末装置7の内部構成を示すブロック図である。図4に示すように、端末装置7は、図3に示した構成の他、制御部83、無線通信部84、モーションセンサ82等を備える。これらの電子部品は、電子回路基板上に実装されてハウジング70内に収納される。
【0036】
モーションセンサ82は、端末装置7の姿勢を検出するためのセンサである。本実施形態では、当該モーションセンサ82として、加速度センサ、角速度センサ、磁気センサが備えられている。なお、本実施形態では、主に角速度センサから出力される角速度データを用いて、端末装置7の姿勢を検出する処理を行う。
【0037】
制御部83は、UIコントローラ85やコーデック部86等を含む。UIコントローラ85は、各種の入出力部に対するデータの入出力を制御する。コーデック部86は、ゲーム装置3へ送信するデータに対する圧縮処理、および、ゲーム装置3から送信されたデータに対する伸張処理を行う。制御部83は、タッチパネル72、操作部81(アナログスティック75Lおよび75R、十字ボタン76、複数のボタン77)、モーションセンサ82から得られた操作データを、端末操作データとして無線通信部84を介してゲーム装置3へ送信する。また、ゲーム装置3から端末装置7へは、圧縮された画像データおよび音声データが送信可能である。このようなデータが送信された場合、これらのデータは無線通信部84を介して制御部83に送られる。制御部83(のコーデック部86)は、受信した画像データおよび音声データを伸張する。伸張された画像データはLCD71へ出力され、画像がLCD71に表示される。また、伸張された音声データは図示しないサウンドICへ出力され、サウンドICは図示しないスピーカから音を出力させる。
【0038】
次に、本実施形態にかかる情報処理システムで実行される情報処理の動作概要を説明する。本実施形態にかかる処理は、画面上の位置を指示すること(ポインティング)に関する処理である。より具体的には、上記端末装置7をポインティングデバイス(以下、PDと略す)として用いる場合の処理に関する。
【0039】
まず、以下の説明の前提として、本実施形態における端末装置7の基本的な持ち方や画面に対する端末装置7の初期姿勢について簡単に説明する。端末装置の持ち方として、本実施形態では、端末装置7を両手持ちする場合を想定する。すなわち、十字ボタン76の有る側を左手で把持し、複数のボタン77が有る側を右手で把持して操作する場合を想定する。また、以下の説明で出てくる実空間や仮想空間の空間座標系として、重力方向に沿った軸をy軸とし、横方向をx軸、奥行き方向をz軸として説明する。
【0040】
また、本実施形態では、端末装置7の上面側(図3(a)のz軸正方向)を画面に向けることで(つまり、端末装置7の姿勢を変化させることで)、ポインティング操作を行うものとする。そして、以下に説明する処理に際しての端末装置7の初期姿勢として、端末装置7の正面側(LCD71のある面、図3(a)のy軸正方向)を真上に向け、端末装置7の上面側(図3(a)のz軸正方向)を画面に向けた姿勢を初期姿勢として説明する。また、テレビ2の画面と端末装置7との位置関係に関しては、当該初期姿勢における上面側の略中央が画面の中心と対面しているような場合を想定する。図5A〜Cは、当該初期姿勢を示すための図である。図5Aは、実空間の座標系の上面から見た様子を示す。図5Bは、画面の正面側、端末装置の下面側から見た図を示す。図5Cは、テレビ2、および端末装置7の右側面側から見た図を示す。そして、このような姿勢の場合、ポインティング位置は、図6に示すように、画面の中央であるものとする。
【0041】
なお、この初期姿勢は、以下の説明の便宜上用いている姿勢であり、他の実施形態では、必ずしもこのような姿勢に限るものではない。例えば、端末装置7の背面側を画面に向けてポインティング操作を行うような場合でも、後述する処理の適用は可能である(この場合、例えば、z軸正方向をy軸負方向に置き換える等の軸方向の対応付けの調整を行えばよい)。
【0042】
次に、上記のような持ち方や姿勢を前提として、端末装置7のz軸正方向(以下、先端方向と呼ぶ)を画面に向けることで、ポインティング操作を行う場合を考える。特に、本実施形態では、画面の左右方向(水平方向)への変化を伴うポインティング操作を行う場合を考える。この場合、例えば初期のポインティング位置が画面の中央であるとして、端末装置7の位置は変化させずに、右方向にポインティング位置を移動したい場合、その操作として、次のような操作が考えられる。まず、端末装置7を、そのy軸周りに右に回転させるような操作が考えられる。図7A〜Cは、このような操作を示すための模式図である。図7Aは、実空間の上面からみた図を示す。この図で示されるように、端末装置7の先端方向が初期位置よりも少し右を向くように、端末装置7の姿勢が変化している。図7Bは、端末装置7の下面側から見た図を示す。この図では、端末装置の姿勢は、y軸を中心とした回転が行われたのみで、その他の軸周りの回転は行われていないことを示す。そして、図7Cは、この場合のポインティング位置を示す。画面中央から少し右の位置がポインティング位置となっている。つまり、端末装置7の先端方向を右方向に向けるという操作である。
【0043】
ここで、本実施形態では、上記のように、端末装置7を両手持ちしている。このような持ち方であるが故に、人によっては、ポインティング位置を左右方向に移動させたい場合、次のような操作を行うことも考えられる。すなわち、端末装置7を、そのz軸を中心に回転させる(端末装置7をひねる)ことで、ポインティング位置の左右方向への変化を行おうとする操作である。図8A〜Bは、このような操作の例を示す模式図である。図8Aは、実空間の上面から見た様子を示し、図8Bは、端末装置7の下面側からみた様子を示す。このような操作の場合、端末装置7のz軸周りの回転(ひねり)のみ行われ、端末装置7の先端方向の向きは変わっていないことになる。そのため、端末装置7自体の先端方向の向きに基づいて考えると、ポインティング位置は変化していないことになる。
【0044】
そこで、本実施形態では、次のような制御を行うことで、図8A、Bで示したような操作(以下、ひねり操作と呼ぶ)が行われた場合もポインティング位置を左右方向に変化させ、操作性の向上を図っている。換言すれば、ひねり操作の場合、ポインティング操作のアシストを行っている。
【0045】
以下、本実施形態における制御の原理・概要を説明する。本実施形態では、上記のようなひねり操作でもポインティング位置を変化させるために、仮想ポインティングデバイス(以下、仮想PD)、および仮想スクリーンという概念を利用する。すなわち、仮想空間内に、実空間における端末装置7に対応する仮想PDを配置する、また、実空間のテレビ2の画面に対応する仮想スクリーンも配置する。これらの位置関係は、実空間における端末装置7とテレビ2の位置関係と同じものとする。また、仮想スクリーンのサイズ(解像度)はテレビ2の画面のサイズ(解像度)と同じであるものとする。また、仮想PDの初期姿勢は、上述した初期姿勢と同じ姿勢であるとする。また、仮想スクリーンの姿勢に関して、そのスクリーン平面が仮想空間における重力方向に平行になるような姿勢で配置されるとする。また、仮想スクリーンの座標系は仮想空間の空間座標系と一致するものとする。
【0046】
まず、端末装置7に上記のひねり操作が行われると、モーションセンサ82からの出力に基づき、そのひねり方向(傾きの度合い)が算出される。次に、このひねり方向に基づいて、仮想PDの先端方向(z軸方向)を仮想スクリーンの座標系(仮想空間の空間座標系)を基準として、その左右方向(x軸方向)に沿って適宜変化させる。換言すれば、仮想PDの姿勢をxyzの3軸ベクトルで示した場合のz軸成分を変化させる。図9および図10は、このような場合の実空間における端末装置7と仮想空間の仮想PDの様子を示した図である。図9は、実空間および仮想空間の上方からみた様子を示す。図10は、テレビ2および仮想スクリーンそれぞれの正面側から見た様子を示す。これらの図で示されるように、実空間では、端末装置7のz軸を中心とした(時計回りの)回転のみが加えられた姿勢であるのに対し、仮想PDは、ひねり方向(この場合、右側)に基づいた、仮想PDのy軸中心の回転が更に加えられた姿勢となる。その後、仮想PDのx軸方向、y軸方向の姿勢を当該変化後のz軸成分に合わせるように調整する。そして、この仮想PDの姿勢(主に先端方向の向き)に基づいて仮想スクリーン上のポインティング位置を算出し(図11参照)、これをテレビ2の画面上のポインティング位置として反映させるという制御を行う。
【0047】
このような処理を行うことで、上記図7A〜Bで示したような操作の場合でも、図8A〜Bで示したようなひねり操作の場合でも、いずれの場合でもポインティング位置を左右方向に変化させることができ、操作性を向上させることが可能となる。
【0048】
次に、図12図15を参照して、本実施形態におけるゲーム装置3で実行される処理をより詳細に説明する。
【0049】
図12は、ゲーム装置3のメモリ12に格納されるプログラムおよび情報の一例を示している。メモリ12には、ゲーム処理プログラム201、操作データ202、処理用データ204等が格納される。
【0050】
ゲーム処理プログラム201は、上記ポインティング処理等を含むゲーム処理を実行するためのプログラムである。具体的には、後述する図13のフローチャート処理を実行するためのプログラムである。
【0051】
操作データ202は、端末装置7を用いてゲーム装置3に対して行われた各種操作を示すデータである。操作データ202には、モーションセンサデータ203等が含まれる。モーションセンサデータ203は、上記モーションセンサ82から出力される加速度データや角速度データを含む。
【0052】
処理用データ204には、仮想PD姿勢データ205、仮想スクリーン姿勢データ206、ひねり方向データ207等が含まれる。
【0053】
仮想PD姿勢データ205は、仮想PDの姿勢を示すためのデータである。本実施形態では、xyzの3軸成分から構成される3軸のベクトル(以下、姿勢ベクトルと呼ぶこともある)で示されるデータであるとする。具体的には、仮想PDの姿勢に関しては、図3のz軸方向(先端方向)については、(Zx,Zy,Zz)で示され、上記図3のx軸方向(右方向)については、(Xx,Xy,Xz)で示され、y軸方向(上方向)については、(Yx,Yy,Yz)で示される。
【0054】
仮想スクリーン姿勢データ206は、仮想スクリーンの姿勢を示すためのデータである。このデータも、xyzの3軸成分から構成される3軸のベクトルで示されるデータであるとする。具体的には、奥行き方向については(Vx、Vy,Vz)で示され、横軸方向(右方向)は(Wx,Wy,Wz)と示され、縦軸方向(上方向)は(Ux,Uy,Uz)と示される。本実施形態では、上記のようにスクリーン平面が仮想空間における重力方向に平行になるような姿勢が仮想スクリーン姿勢データ026として予め設定されているものとする。
【0055】
ひねり方向データ207は、端末装置7を、自身のz軸周りに回転させる操作、すなわちひねり操作が行われたときの、そのひねり方向を示すためのデータである。詳細は後述するが、本実施例では、仮想スクリーンに対して仮想PDの上方向がどの方向を向いているかを(Nx、Ny)という変数で捉える。ひねっていない状態であれば、(Nx、Ny)は(0,1)であるとする。
【0056】
その他、仮想スクリーンのサイズ(解像度等)を示すデータや、仮想空間内における仮想PDと仮想スクリーンの配置座標を示すデータ等、ゲーム処理に必要な各種データも処理用データ204の一部として適宜作成され、メモリ12に記憶される。
【0057】
次に、図13のフローチャートを参照して、ゲーム装置3のCPU11によって実行される処理の流れを説明する。なお、ここでは、上述したポインティング制御に関する処理についてのみ説明し、その他のゲーム処理の説明は省略する。また、本実施形態では、この処理は、1フレーム毎に繰り返し実行される処理である。
【0058】
まず、ステップS1で、モーションセンサ82からの出力に基づいて、仮想PDの姿勢が算出される。より具体的には、操作データ202に含まれる角速度データに基づいて、仮想PDの姿勢が3軸ベクトルの姿勢ベクトルとして算出される。また、この姿勢算出に際しては、角速度データだけでなく、加速度データを併用して姿勢を算出してもよい。そして、当該姿勢を示す3軸ベクトルのデータが上記仮想PD姿勢データ205として記憶される。なお、この時点では、仮想PDの姿勢は、端末装置7の姿勢と一致することになる。
【0059】
次に、ステップS2で、仮想スクリーンに対しての仮想PDのひねり方向が算出される。本実施形態では、次のような手法でこの算出が行われる。まず、図14に示すように、仮想PDの上方向(姿勢のy軸成分)を示す矢印を仮想スクリーンに投影する。そして、図15で示すように、この投影された矢印の傾き具合を、(Nx、Ny)として算出し、ひねり方向データ207としてメモリ12に格納する。なお、この矢印の傾き具合(ひねり方向)は、仮想PDのz軸周りの回転量を示すものともいえる。具体的には、次のような式によって算出する。
Nx=Yx×Wx+Yy×Wy+Yz×Wz ・・・式1
Ny=Yx×Ux+Yy×Uy+Yz×Uz ・・・式2
上記の式は、Nx、Nyの内積を求める式といえる。更に、内積を求めただけでは長さが不定であるため、これを正規化して長さを1とする。
【0060】
図13に戻り、次に、ステップS3で、仮想PDの先端方向(仮想PDの姿勢ベクトルのz軸成分)を、上記Nxに基づいて仮想スクリーンの左右方向(仮想スクリーン座標系のx軸方向)に変化させる処理が実行される。つまり、仮想PDのローカル座標系ではなく、仮想スクリーンの座標系を基準として、仮想PDの先端方向の向きを変化させることになる。具体的には、次の式によって、仮想PDの姿勢ベクトルのz軸成分が更新される。
(Zx,Zy,Zz)=(Zx,Zy,Zz)+Nx×M×(Wx,Wy,Wz)・・・式3
ここで、定数Mは変化させるときの強度を示す定数であり、予め設定されている。この値が0であれば変化無しの状態(つまり、z軸成分は変化しない)となり、この値が高いほど、より多くの変化がz軸成分に与えられることになる。また、当該z軸成分の長さについても1に正規化される。
【0061】
次に、ステップS4で、上記変化後のz軸成分に合わせるように、仮想PDのx軸成分を調整するための処理が実行される。具体的には、仮想PDの姿勢のz軸成分(Zx,Zy,Zz)と、y軸成分(Yx,Yy,Yz)との外積が算出され、その結果が新たなx軸成分(Xx,Xy,Xz)とされる。更に、当該x軸成分の長さが1に正規化される。
【0062】
次に、ステップS5で、上記変化後のz軸成分に合わせるように、仮想PDのy軸成分を調整するための処理が実行される。具体的には、仮想PDの姿勢のx軸成分(Xx,Xy,Xz)と、z軸成分(Zx,Zy,Zz)との外積が算出され、その結果が新たなy軸成分(Yx,Yy,Yz)とされる。なお、上記ステップS3,S4においてz軸成分とx軸成分の長さが1に正規化されているため、ここでのy軸成分の正規化は不要である。
【0063】
次に、ステップS6で、上記のような調整が行われた仮想PDの姿勢、特に先端方向の向きに基づいて、仮想スクリーン上の指示位置が算出される。そして、この指示位置を、テレビ2の画面上の指示位置として反映する処理が実行される。以上で、本実施形態にかかる処理は終了する。
【0064】
このように、本実施形態では、端末装置7のひねり方向に基づき、仮想PDの先端方向を仮想スクリーン座標系の左右方向に変化させている。そして、この変化後の仮想PDの先端方向に基づいて指示位置を算出するようにしている。これにより、端末装置7をy軸周りに回転させる操作(先端方向を傾ける場合)でも、z軸周りに回転させる操作(ひねり操作)の場合でも、いずれの場合でも画面上の指示位置の左右方向の変化を行うことができる。
【0065】
なお、双方の操作が一緒に行われた場合は、それぞれの左右方向の変化が加算される結果となる。例えば、端末装置7を、自身のy軸周りに右に回転させる操作が行われ、この操作では指示位置が、仮に“1”の距離だけ右方向に移動できるとする。また、この操作と同時に、あるいはこの操作の後で、自身のz軸周りに回転させる操作を行い、この操作では“2”の距離だけ右方向に移動できるとする。このような場合、結果としては、右方向に“3”の距離の移動という結果となる。
【0066】
また、例えば、一旦端末装置7をy軸周りに右に回転させる操作が行われ、“1”の距離だけ右に指示位置が移動した状態で、その後、端末装置7をz軸周りに左方向に回転させたとする。そして、この左方向のひねり操作では指示位置が左に“1”の距離だけ移動できるとする。このような場合は、指示位置の変化としては、y軸周りに右に回転させる操作によって一旦右に移動した後、ひねり操作によって元の指示位置に戻るような動きとなる。このように、端末装置のy軸周りの回転による操作とz軸周りの回転による操作とを組み合わせることで、より細やかな指示位置の変化を行うことも可能となる。
【0067】
なお、上記実施形態では、仮想PDの姿勢をひねり方向(変数Nx)に基づいて変更し、その後、指示位置を算出していた。他の実施形態では、先に仮想スクリーン上での指示位置を算出し、この座標を上記変数Nxに基づいて変化させ、テレビ2の指示位置として反映させるようにしてもよい。
【0068】
また、上記実施形態では、モーションセンサ82からの出力に基づいて仮想空間に配置された仮想PDの姿勢ベクトルを算出していた。そして、仮想スクリーンの座標系を基準として、仮想PDの先端方向を変化させていた。これに限らず、他の実施形態では、ポインティングする横方向をx軸とし、ポインティングする縦方向をy軸となるように実空間の座標系を定義することを前提として、実空間における端末装置7の姿勢ベクトルを算出し、これに基づいて変数Nxを算出してもよい。そして、実空間の座標系を基準として、端末装置7の姿勢ベクトルのz軸成分を変更するようにしてもよい。
【0069】
なお、上記図13のフローチャートの処理の、特にステップS3〜5は、ひねり操作の有無にかかわらず毎フレーム実行される。つまり、ひねり方向(変数Nx)が0の場合でも、上記ステップS3〜S5の処理は実行される。この点に関し、他の実施形態では、例えば上記ステップS2の処理の結果、Nxが0であるか否かの判定を行い、0であれば、ステップS3〜S5の処理を行わないようにしてもよい。但し、例えばゲーム処理のように、1フレーム単位で同じ処理が繰り返されるような情報処理においては、上記図13のフローのようにあえて同じ処理を繰り返させることが好ましい。変数Nxが0か否かでその後の処理の実行有無が変化すると、処理負荷に変動が生じてしまうが、上記ゲーム処理のような場合は、このような処理負荷が発生するよりは、処理負荷が一定で均一的であるほうが好ましい場合が多いためである。従って、ゲーム処理以外の情報処理におけるポインティング操作であれば、上記のようなステップS3〜S5の処理をスキップするような処理方法を用いてもよい。
【0070】
また、上記の例では、ポインティング操作の場合に適用する例を挙げた。他の実施形態では、ポインティング操作だけに限らず、例えば車のハンドル操作や、飛行機の操縦桿操作のような操作について上記の処理を適用することも可能である。つまり、両手持ちの入力装置自体を動かして左右方向についての入力を変化させる操作について、上記のような処理を適用することで、操作性をより高めることが可能である。また、その他、例えば、ゲーム画面に戦闘機が後方視点で表示されるようなドッグファイトゲームを想定する。更に、そのコントローラとして、入力装置自体が戦闘機の形状を有しているものを想定する。そして、この戦闘機型の入力装置自体の姿勢を変化させることで、画面内の戦闘機の姿勢を変化できるようなゲームにおいて、上述したような処理を適用することで、戦闘機の操作性をより高めることが可能となる。
【0071】
また、上記実施形態においては、端末装置7にひねり操作が行われたときのポインティング位置を変化させるための処理が単一の装置において実行される場合を説明したが、他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。
【符号の説明】
【0072】
1 ゲームシステム
2 テレビ
3 ゲーム装置
7 端末装置
11 CPU
12 メモリ
82 モーションセンサ
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7A
図7B
図7C
図8A
図8B
図9
図10
図11
図12
図13
図14
図15
図16
図17