(57)【特許請求の範囲】
【請求項１】
コンピュータを、
ユーザが操作するコントローラから、筐体の第１の特定方向への角速度を受信するコントローラ制御手段、
三次元のゲーム空間内で所定の視点から所定の視線方向を撮影したゲーム画像を生成し、前記受信した角速度が所定のしきい値を超えたとき、前記視線の目標点である注視点を中心にした前記視点の前記第１の特定方向への回転移動を開始させる画像生成手段、
として機能させるプログラムであって、
前記画像生成手段は、
前記視点が静止しているときに、前記コントローラ制御手段が受信した前記第１の特性方向への角速度が所定の第１しきい値を超えたとき、前記視点を所定の角速度で前記注視点を中心に前記第１の特定方向回りへの回転を開始させ、
前記視点が前記第１の特定方向回りへ回転しているときに、前記コントローラ制御手段が前記第１の特定方向と逆方向への角速度が所定の第２しきい値を超えたとき、前記視点の回転を停止させ、さらに、
前記角速度が前記第２しきい値を超えたことに応じて前記視点の回転を停止させたとき、その後一定時間、第１の特定方向への角速度が前記第１しきい値を超えたか否かの判定を行わない
プログラム。
【請求項２】
前記第１の特定方向は、右回転方向または左回転方向である請求項１に記載のプログラム。
【請求項３】
前記コントローラ制御手段は、前記筺体の上下方向前記第１の特定方向と交差する方向である第２の特定方向への移動の加速度をさらに受信し、
前記画像生成手段は、前記コントローラ制御手段が受信した前記第２の特定方向への加速度が所定の第３しきい値を超えたとき、前記視点をイニシャル位置に復帰させる
請求項１または請求項２に記載のプログラム。
【請求項４】
前記第２の特定方向は、上方向、下方向の一方または両方である請求項３に記載のプログラム。
【請求項５】
請求項１乃至請求項４のいずれかに記載のプログラムを記憶したプログラム記憶部と、前記プログラム記憶部に記憶されたプログラムを実行する制御部と、を備えたゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、仮想的な三次元空間を生成し、この三次元空間内でゲームを展開させるプログラムおよびゲームシステムに関する。
【背景技術】
【０００２】
３Ｄゲームでは、仮想のゲーム空間に視点（カメラ位置）を設定し、このカメラ位置から見たゲーム空間の画像をゲーム画像としてモニタに表示する。一般的にゲーム画像は、ユーザが操作する主キャラクタの背面から主キャラクタの向いている方向を見た画像である（たとえば図５参照）。【０００３】
しかし、ユーザがゲーム空間全体を見渡せるように、カメラ位置をユーザの操作によって移動させることができるものも提案されている。カメラ位置を移動させることにより、主キャラクタの背後の状況を見たりすることができるようになる（たとえば図６参照）。【０００４】
また、特許文献１のように、コントローラの筐体（ハウジング）を傾けることによって、ゲーム空間を傾けられるような感覚をユーザに与える機能を備えたゲームシステムも提案されている。
【特許文献１】特許第３９０２５０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
カメラ位置の移動は、一般的にアナログスティック等の操作子の操作によって行われる。しかし、ユーザは、カメラ位置の移動のために操作子を操作していると主キャラクタの操作が疎かになり、敵キャラクタからの攻撃を受けてしまうという問題点がある。【０００６】
また、特許文献１のゲームシステムのように、操作子の操作によらず、コントローラの筐体（ハウジング）の傾きによってゲーム空間を傾ける機能を備えたものも提案されているが、コントローラの傾きの絶対値に対応してゲーム空間が傾いて表示されるため、コントローラの角度が少し変化してもゲーム空間の傾きが変化してしまい、操作が微妙であり、また、ユーザが正立していない姿勢たとえば寝た姿勢でコントローラを操作する場合に操作が非常に困難になるという問題点があった。【０００７】
この発明は、コントローラの筐体に対する簡略な操作でゲーム空間を撮影するカメラ位置（視点）を制御することができるプログラムおよびゲームシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
ユーザが操作する操作子は、主キャラクタの操作などゲームの重要な制御を行うための操作子である。この発明では、この操作子の操作ではなく、コントローラの筐体の回転や上下動等の動きに基づいてゲーム画像の視点（いわゆるカメラ位置）の制御を行う。また、この発明では、筐体の動きを検出するセンサ、すなわち加速度を検出する加速度センサや角速度を検出する角速度センサは、一般的に連続量（アナログ量）を出力するセンサであるが、このセンサの出力値をしきい値で２値化してオン／オフ制御することにより、ユーザの操作を容易にしている。【００１６】
この発明では、コントローラを、所定の角速度で、右回転させたとき視点（カメラ位置）を右方向に回転させ、左回転させたとき視点を左方向に回転させる。また、視点の回転方向と逆方向にコントローラを回転させることにより、視点の回転を停止させる。このように、コントローラに対する操作態様とカメラ位置の移動態様とを一致させたことにより、ユーザの直感的な操作を可能にしている。【００１７】
また、この発明では、視点の回転方向と逆方向にコントローラを回転させて視点の回転を停止させたとき、一定時間はコントローラの回転の角速度が第１しきい値を超えたか否かの判定、すなわち視点の回転移動を開始させるか否かの判定を行わないようにしている。これにより、視点の回転移動を停止させる操作によって、視点の逆方向への回転移動がスタートしてしまうことを防止することができる。【００１９】
本願発明の第１の側面によって提供されるプログラムは、コンピュータを、ユーザが操作するコントローラから、筐体の第１の特定方向への角速度を受信するコントローラ制御手段、三次元のゲーム空間内で所定の視点から所定の視線方向を撮影したゲーム画像を生成し、前記受信した角速度が所定のしきい値を超えたとき、前記視線の目標点である注視点を中心にした前記視点の前記第１の特定方向への回転移動を開始させる画像生成手段、として機能させるプログラムであって、
前記画像生成手段は、前記視点が静止しているときに、前記コントローラ制御手段が受信した前記第１の特性方向への角速度が所定の第１しきい値を超えたとき、前記視点を所定の角速度で前記注視点を中心に前記第１の特定方向回りへの回転を開始させ、前記視点が前記第１の特定方向回りへ回転しているときに、前記コントローラ制御手段が前記第１の特定方向と逆方向への角速度が所定の第２しきい値を超えたとき、前記視点の回転を停止させ、さらに、前記角速度が前記第２しきい値を超えたことに応じて前記視点の回転を停止させたとき、その後一定時間、第１の特定方向への角速度が前記第１しきい値を超えたか否かの判定を行わないことを特徴とする。
【００２０】
本願の好ましい実施の形態においては、前記第１の特定方向は、右回転方向または左回転方向である。
【００２１】
本願の好ましい実施の形態においては、前記コントローラ制御手段は、前記筺体の上下方向前記第１の特定方向と交差する方向である第２の特定方向への移動の加速度をさらに受信し、前記画像生成手段は、前記コントローラ制御手段が受信した前記第２の特定方向への加速度が所定の第３しきい値を超えたとき、前記視点をイニシャル位置に復帰させる。
【００２２】
本願の好ましい実施の形態においては、前記第２の特定方向は、上方向、下方向の一方または両方である。
【００２５】
本願発明の第２の側面によって提供されるゲームシステムは、上記プログラムを記憶したプログラム記憶部と、前記プログラム記憶部に記憶されたプログラムを実行する制御部と、を備えたことを特徴とする。
【発明の効果】
【００２７】
この発明によれば、コントローラの筐体、すなわちコントローラそのものの回転や移動等の操作によってゲーム画面の視点すなわちカメラ位置を移動させることができるため、主キャラクタ等を操作するための操作子の操作を妨げることがない。また、アナログ値（連続値）を出力する角速度センサや加速度センサの値をそのまま用いるのではなく、しきい値と対比して２値化してオン／オフ制御することにより、ユーザの操作を容易化することができる。
【図面の簡単な説明】
【００２８】
【図１】図１は、この発明が適用されるゲーム装置の外観図である。
【図２】図２は、ゲーム装置のコントローラの構造を示す平面図である。
【図３】図３は、ゲーム装置本体の内部構成を示すブロック図である。
【図４】図４は、この発明の実施形態である３Ｄゲームプログラムにおけるカメラ位置制御を説明する図である。
【図５】図５は、カメラ位置がイニシャル位置にあるときのゲーム画像の例を示す図である。
【図６】図６は、カメラ位置が回転制御されて移動したときのゲーム画像の例を示す図である。
【図７】図７は、コントローラの筐体を揺動操作してカメラ位置の制御を行う場合の態様を説明する図である。
【図８】図８は、ゲームプログラムにおける揺動操作検出動作を示すフローチャートである。
【符号の説明】
【００２９】
１０…ゲーム装置本体
２０…コントローラ
２３…３軸加速度センサ
２４…ジャイロセンサ
２１２…右アナログスティック
１００…主キャラクタ
１０１…注視点
１１０…カメラ（イニシャル位置）
【発明を実施するための最良の形態】
【００３０】
図面を参照してこの発明のプログラムが実施されるゲームシステムおよび３Ｄゲームにおけるゲーム画像の投影位置であるカメラ位置（本発明の「視点」）の制御について説明する。【００３１】
ここで、この発明のプログラムが実施されるゲームシステムは、図１〜図３で説明するコントローラ２０等の周辺機器を含むゲーム装置本体（コンピュータ）１０、および、記憶媒体１５によって供給されるゲームプログラムによって実現される複数の機能部の組み合わせである。機能部は、カメラ位置制御部を含むゲーム画像生成部、後述の角速度検出部および加速度検出部を含むコントローラ２０の操作を検出する操作検出部等が含まれる。これら複数の機能部によりゲーム機能が実現される。ゲーム画像生成部は、主にゲームプログラムを実行するＣＰＵ３１の機能によって実現される。操作検出部は、ＣＰＵ３１およびコントローラ２０の操作子群２２、３軸加速度センサ２３、ジャイロセンサ２４等によって実現される。【００３２】
以下、ゲーム装置の構成について説明する。
図１は、この発明が適用されるゲーム装置の外観を示す図である。
このゲーム装置は、ゲーム装置本体１０にコントローラ２０が接続されて構成されている。コントローラ２０は、ユーザによって操作される。ユーザは、このコントローラ２０を用いて、ゲーム中に登場する主キャラクタ等を操作するとともに、モニタ３８であるテレビジョン装置（図３参照）に表示されるゲーム空間の視点（以下カメラ位置と呼ぶ）を制御することができる。なお、テレビジョン装置は、ゲーム装置本体１０に接続され、モニタ（表示装置）３８及びスピーカ（オーディオ装置）４４として機能する。【００３３】
ゲーム装置本体１０は、ゲームプログラムが記録された記録媒体１５がセットされるトレイ１１を有している。記録媒体１５は、たとえばＤＶＤ（digital versatile disc）である。ゲーム装置本体１０は、この記録媒体１５からゲームプログラムを読み取って、このプログラムを実行する。なお、記録媒体１５は、ＤＶＤ以外であってもよく、例えばＣＤ、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標）、または、内蔵のハードディスクなどを用いることができる。【００３４】
また、装置前面には、メモリスロット１３が、それぞれ２つずつ設けられている。メモリスロット１３には、コントローラ２０が接続されるコネクタ１２、フラッシュメモリからなるカード型の外部メモリ４５（図３参照）がセットされる。【００３５】
図２は、コントローラ２０の外観を示す平面図である。  
コントローラ２０は、略Ｕ字形をしており、ユーザが両翼部のハンドル２０１Ｌ，２０１Ｒを左右両手で把持して操作する。コントローラ２０の左右上面には操作ボタン群２１０、２２０、アナログスティック２１２、２２２の操作子が設けられており、コントローラ２０の右前面にはＲ１ボタン２１１、左前面にはＬ１ボタン２２１の操作子がそれぞれ設けられている。操作ボタン群２１０およびアナログスティック２１２はユーザの右手親指で操作され、操作ボタン群２２０およびアナログスティック２２２はユーザの左手親指で操作される。また、Ｒ１ボタン２１１、Ｌ１ボタン２２１は、それぞれユーザの右手人指し指、左手人指し指で操作される。【００３６】
右側の操作ボタン群２１０は、４個の操作ボタン２１０Ａ〜２１０Ｄを備えている。操作ボタン２１０Ａ〜２１０Ｄには、識別を容易にするために頭部に各々「△」「○」「×」「□」の識別マークが付されている。この操作ボタン群２１０は、主としてゲーム中に登場する主キャラクタに特定の動作をさせるためのボタンとして設定される。特定の動作とは、たとえば、技をくり出す、ジャンプする等である。【００３７】
また、左側の操作ボタン群２２０は、前後左右に十字型に組み合わされた４個の操作ボタンを備えている。アナログスティック２１２、２２２は、前後左右を含む３６０度の方向に傾倒可能なスティックを有する操作子である。【００３８】
一般的に、アナログスティック２２２は、主キャラクタの移動方向や移動速度を操作するための操作子として機能し、アナログスティック２１２は、カメラ位置を制御するための操作子として機能する。【００３９】
また、このコントローラ２０には、３軸加速度センサ２３（図３参照）およびジャイロセンサ２４（図３参照）が内蔵されている。３軸加速度センサ２３は、このコントローラ２０の筐体に加えられた前後左右上下の加速度を検出する。ここで、図２に示す±Ｚ方向を前後方向、±Ｘ方向を左右方向、±Ｙ方向を上下方向と呼ぶ。また、ジャイロセンサ２４は、このコントローラの筐体に加えられた水平面（ＸＺ平面）内の角速度を検出する。すなわち、ジャイロセンサ２４は、ユーザによるコントローラ２０の２３０Ｒ、２３０Ｌの回転操作を検出する。【００４０】
このように、このコントローラ２０は、ユーザによる各種操作子の操作以外の操作、すなわち、コントローラ２０そのものを動かす操作を検出することができる。なお、この実施形態のコントローラ２０は操作ボタン及びアナログスティックを備えているが、操作ボタン及びアナログスティックのうちいずれか一方を備えたコントローラであってもよい。【００４１】
図３は、ゲーム装置本体１０およびコントローラ２０の内部構成を示すブロック図である。  
ゲーム装置本体１０は、装置全体の動作を制御するＣＰＵ３１を有している。このＣＰＵ３１に対してＲＡＭ３２およびバス３３が接続される。ＲＡＭ３２には、ゲームの進行に応じて各種のデータが記憶される。【００４２】
バス３３には、グラフィック・プロセッサ・ユニット（ＧＰＵ）３４、インプット・アウトプット (Ｉ／Ｏ)ポート３９が接続される。ＧＰＵ３４には、デジタル映像信号をＮＴＳＣテレビジョン方式やＰＡＬテレビジョン方式に変換するためのデコーダ３７を介して、外部機器であるモニタ（テレビジョン装置：ＴＶ）３８が接続される。【００４３】
Ｉ／Ｏポート３９には、光ディスク等の記録媒体１５に記録されているデータを再生し、デコードするためのドライバ（ＤＲＶ）４０，サウンド・プロセッサ（Ｓ．Ｐ）４２、外部メモリ４５、コントローラ２０およびＲＯＭ４６が接続される。【００４４】
コントローラ２０は、各種操作子群２２、３軸加速度センサ２３およびジャイロセンサ２４を備えている。これら各種操作子群２２、３軸加速度センサ２３およびジャイロセンサ２４は、Ｉ／Ｏポート２１に接続されている。さらに、このコントローラ２０のＩ／Ｏポート２１は、ゲーム装置本体１０のＩ／Ｏポート３９に接続されている。【００４５】
ＲＯＭ４６には、このゲーム装置本体１０を起動するとともに基本的な機能を実現するためのシステムプログラムが記憶されている。外部メモリ４５には、ユーザの情報や実行しているゲームの途中経過等が記憶される。ユーザは、ゲームプログラムを記憶した記憶媒体１５と自己の外部メモリ４５をセットすることにより、途中で中断したゲームを、その中断したタイミングから再開することができる。【００４６】
サウンド・プロセッサ４２は、増幅器４３を介して、外部機器であるスピーカ４４に接続される。このスピーカ４４は、一般的には、テレビジョン装置に内蔵されている上記モニタ３８と一体のスピーカである。【００４７】
以下、３Ｄゲームにおけるカメラ位置制御について説明する。
図４を参照してこの発明のプログラムが実施されるゲームシステムのカメラ位置制御部によって実行されるカメラ位置制御について説明する。【００４８】
３Ｄゲームを実行するゲームシステムは、仮想の三次元空間であるゲーム空間内に仮想のカメラを設け、このカメラがゲーム空間を撮影した画像をゲーム画像としてモニタ３８に出力する。このゲーム画像の生成は、ゲーム空間の風景及びキャラクタの姿等をレンダリングする描画処理部とカメラ位置を制御するカメラ位置制御部とを含むゲーム画像生成部によって実行される。【００４９】
カメラ位置制御部は、ゲーム空間内にカメラ１１０の向き先である注視点１０１を設定する。注視点１０１とは、ゲーム空間内のそのとき主キャラクタの活動が展開されているエリアの中心点であり、一般的には、主キャラクタ１００の若干前方に設定される。また、注視点１０１には、その位置を示す三次元座標のみならず、その注視点１０１に向けて設置されるカメラ１１０のイニシャル位置を指示する情報が付属している。すなわち、注視点１０１は、ベクトルの始点のような性質を持っている。この注視点１０１の情報に基づき、カメラ１１０は、注視点１０１から所定の方向、所定の距離、所定の仰角または俯角の位置であるイニシャル位置に、注視点１０１向きに設置される。【００５０】
カメラ１１０のイニシャル位置は、一般的に、主キャラクタ１００の背後から、主キャラクタ１００の全身像を写しながら、主キャラクタ１００が活動する方向が画面に入るカメラ位置、すなわち、図４に実線で示すカメラ１１０の位置に設定される。【００５１】
このイニシャル位置にあるカメラ１１０からのゲーム画像の表示例を図５に示す。このゲーム画像は、キャラクタ１００の背後からの全身像を含み、主キャラクタ１００が活動する前方のゲーム空間の風景が撮影された画像である。【００５２】
また、この実施形態のゲームでは、ユーザは、コントローラ２０を操作して、ゲーム中の主キャラクタ１００の活動を制御するとともに、カメラ１１０の位置（カメラ位置）を制御することができる。このユーザの操作により、カメラ位置は、注視点１０１を中心に水平に（ゲーム空間内のＸＺ平面内で）一定の角速度で回転する。すなわち、注視点１０１からの距離、仰角／俯角を維持しつつ、方向のみが定速で変化する。【００５３】
ゲームシステムのカメラ位置制御部は、アナログスティック２１２やコントローラ２０の筐体そのものに対する操作をカメラ位置の制御操作として処理する。【００５４】
ユーザがアナログスティック２１２を右に倒すと、または、コントローラ２０の筐体を右回り２３０Ｒ（図２参照）に回転させると、カメラ位置は右回りに回転する。すなわち１１１Ｒの軌道でカメラ位置が変化する。また、ユーザがアナログスティック２１２を左に倒すと、または、コントローラ２０の筐体を左回り２３０Ｌ（図２参照）に回転させると、カメラ位置は左回りに回転する。すなわち１１１Ｌの軌道でカメラ位置が変化する。【００５５】
図６は、カメラ位置が図４の１１０Ａの位置へ回転したときのゲーム画像の例を示す図である。このゲーム画像には、カメラ位置がイニシャル位置１１０からほぼ反対側に回転しているため、主キャラクタ１００がほぼ正面から表示されるとともに、主キャラクタ１００の背後の風景が表示されている。【００５６】
このように、同じゲーム空間であっても、カメラ位置を変化させることにより、ユーザは種々の角度からそのゲーム空間を観察することができる。【００５７】
ここで、アナログスティック２１２は、倒す角度に応じた値（アナログ値）を出力する操作子であるが、この発明のプログラムが実施されるゲームシステムでは、操作を容易化するため、アナログスティック２１２から出力された値が一定値を超えたとき、操作をオンとし、一定速度（角速度）でカメラ位置を回転させるようにしている。すなわち、アナログスティック２１２の右傾きの出力値が一定値を超えたとき一定速度でカメラ位置を右回転させ、アナログスティック２１２の左傾きの出力値が一定値を超えたとき一定速度でカメラ位置を左回転させる。【００５８】
またアナログスティック２１２は、上から押し込むことによりボタンスイッチとしても機能する。ゲームシステムにおいて、アナログスティック２１２の上からの押し込みオン操作は、カメラ位置のリセット操作として設定されている。アナログスティック２１２がオンされると、そのときカメラ位置がどの位置にあっても、カメラ位置がイニシャル位置１１０へ戻される（リセットされる）。【００５９】
なお、カメラ位置制御部は、そのときのゲームの場面に応じてカメラ位置１０１を刻々更新する。また、実際のゲームにおいて、カメラ位置制御部は、注視点１０１の情報によって指示されるイニシャル位置、ユーザの操作によって指示される回転位置のみならず、注視点１０１の移動経路等をさらに考慮してカメラ位置を決定する。【００６０】
上に述べたように、アナログスティック２１２は右手親指で操作される操作子であるが、ユーザは、主キャラクタ１００の種々の活動を制御するための操作ボタン群２１０を右手親指で操作しなければならない。主キャラクタ１００の活動に直接関わらないカメラ位置の制御に右手親指が占有されると、主キャラクタ１００の活動に支障を来す場合がある。たとえば、敵キャラクタの攻撃を受けてしまう場合がある。そこで、このゲームシステムでは、コントローラ２０そのものを回転させる等の動かす操作により、右手親指を占有することなくカメラ位置を制御できるようにしている。【００６１】
図７は、コントローラ２０の筐体を動かす操作によるカメラ位置制御の態様を説明する図である。図７Ａに示すように、ユーザがコントローラ２０を右回り２３０Ｒに一定（ＴＨＡ）以上の角速度で回転させると（後述する角速度検出部から右回りの回転制御のスタートの要求を受け取ると）、カメラ位置制御部はカメラ位置を右回り１１１Ｒ（図４参照）に一定の速度で回転させる。こののち、ユーザがコントローラ２０を左回り２３０Ｌに一定（ＴＨＢ）以上の角速度で回転させると（後述する角速度検出部からカメラの停止要求を受け取ると）、カメラ位置制御部はカメラ位置の右回り１１１Ｒ（図４参照）の回転を停止させる。なお、この実施形態では、ＴＨＡ＞ＴＨＢに設定されている。【００６２】
また、逆に、ユーザがコントローラ２０を左回り２３０Ｌに一定（ＴＨＡ）以上の角速度で回転させると（角速度検出部から左回りの回転制御のスタートの要求を受け取ると）、カメラ位置制御部はカメラ位置を左回り１１１Ｌ（図４参照）に一定の速度で回転させる。こののち、ユーザがコントローラ２０を右回り２３０Ｒに一定（ＴＨＢ）以上の角速度で回転させると（角速度検出部からカメラの停止要求を受け取ると）、カメラ位置制御部はカメラ位置の左回り１１１Ｌ（図４参照）の回転を停止させる。【００６３】
コントローラ２０の上記２３０Ｌ，Ｒの回転操作を検出するジャイロセンサ２４は、筐体に水平に内蔵されているため、上記回転操作は、重力方向に対する水平ではなく、コントローラ２０の筐体に対する水平、すなわち図２に示したＸＺ平面を基準として行われる。このため、ユーザが横になった（寝た）状態で、図７Ｂに示すように、コントローラ２０を傾けて保持している場合でも、コントローラ２０の筐体に対して水平に回転させることで、上記カメラ位置の制御をすることができる。【００６４】
またさらに、カメラ位置制御部は、図７Ｃに示すようにコントローラ２０に加えられた上下方向の加速度に応じてカメラ位置をリセットする。ユーザがコントローラ２０を上方向または下方向に一定（ＴＨＶ）以上の加速度で動かすと（加速度検出部からカメラ停止要求を受け取ると）、カメラ位置制御部は、カメラ位置をイニシャル位置１１０（図４参照）にリセットする。動かす方向は、上方向（＋Ｙ方向）、下方向（−Ｙ方向）のいずれでもよい。【００６５】
上述のカメラ位置のリセット制御において、ユーザが操作ボタン２１０、２２０等を押したときの一瞬の手ブレによる誤検出を防止するため、この実施形態では、数サンプルタイミング（フレーム）の加速度値を積算した値を判定対象の加速度値として用いる。【００６６】
コントローラ２０の上記上下方向の加速度を検出する３軸加速度センサ２３は、筐体のＸＹＺ軸に沿って内蔵されているため、上記上下方向への移動操作は、重力方向に対する上下ではなく、コントローラ２０の筐体に対する上下、すなわち図２に示したＹ軸を基準として行われる。このため、ユーザが横になった（寝た）状態で、図７Ｂに示すように、コントローラ２０を傾けて保持している場合でも、コントローラ２０の筐体に対して上下に移動させることで、上記カメラ位置をリセットすることができる。【００６７】
図８は、前記ゲームシステムの操作検出部によるコントローラ２０の筐体操作検出処理の動作を説明するフローチャートである。
図８Ａはコントローラ２０の回転操作を検出して、カメラ位置の回転移動を制御する角速度検出処理を示すフローチャートである。この角速度検出処理は、角速度検出部によって実行される。角速度検出部は、コントローラ２０からジャイロセンサ２４の出力値（角速度）を定期的（たとえば１／６０秒ごと）に受け取る。図８Ａの処理は、ジャイロセンサの出力値を受け取るごとに実行される。【００６８】
まず、角速度検出部は、現在のカメラ位置の制御状態を示すフラグＦの内容を判定する（Ｓ１１）。ここで、Ｆ＝１であれば、現在カメラ位置は右回りに回転制御中であることを示しており、Ｆ＝−１であれば、現在カメラ位置は左回りに回転制御中であることを示している。また、Ｆ＝０であれば、現在カメラ位置は回転制御されておらず静止状態であることを示している。【００６９】
Ｓ１１で、Ｆ＝０すなわちカメラ位置が静止状態であれば、角速度検出部は、マスクタイマＴｍの値が０であるかを判定する（Ｓ１２）。このマスクタイマＴｍの機能については後述する。マスクタイマＴｍが０であれば（Ｓ１２でＹＥＳ）、角速度検出部は、コントローラ２０から受け取った角速度ωの絶対値が所定のしきい値ＴＨＡを超えているかを判定する（Ｓ１３、Ｓ１４）。すなわち、ジャイロセンサ２４は、コントローラ２０が右回りに回転されたとき正の値を出力し、左回りに回転させたとき負の値を出力するため、角速度検出部は、角速度ωがしきい値ＴＨＡを超えているか（Ｓ１３）または角速度ωがしきい値−ＴＨＡ未満であるか（Ｓ１４）を判定する。【００７０】
角速度ωがしきい値ＴＨＡを超えている場合（Ｓ１３でＹＥＳ）、すなわちコントローラ２０が右回りに回転された場合には、角速度検出部は、今回のコントローラ２０の右回りの回転操作に対応してカメラ位置の右回りの回転制御をスタートさせるようカメラ位置制御部に対して要求を出力する（Ｓ１５）。そして、角速度検出部は、フラグＦにカメラ位置を右回り制御中である旨を示す１をセットして（Ｓ１６）、今回の動作を終了する。【００７１】
角速度ωがしきい値−ＴＨＡ未満であった場合（Ｓ１４でＹＥＳ）、すなわちコントローラ２０が左回りに回転された場合には、角速度検出部は、今回のコントローラ２０の左回りの回転操作に対応してカメラ位置の左回りの回転制御をスタートさせるようカメラ位置制御部に対して要求を出力する（Ｓ１７）。そして、角速度検出部は、フラグＦにカメラ位置を左回り制御中である旨を示す−１をセットして（Ｓ１８）、今回の動作を終了する。【００７２】
マスクタイマＴｍの値が０でない（１以上）の場合には（Ｓ１２でＮＯ）、角速度検出部は、マスクタイマＴｍの値を１減算して（Ｓ１９）、今回の動作を終了する。また、Ｔｍ＝０（Ｓ１２でＹＥＳ）であるが、角速度ωの絶対値がしきい値ＴＨＡを超えていなかった場合（Ｓ１３，１４でＮＯ）には、角速度検出部は、何もしないで今回の動作を終了する。【００７３】
また、Ｓ１１の判定で、フラグＦが現在カメラ位置を右回り制御中である旨を示す１であった場合には、角速度検出部は、角速度ωがしきい値−ＴＨＢ未満であるかを判定する（Ｓ２１）。角速度ωがしきい値−ＴＨＢ未満であれば（Ｓ２１でＹＥＳ）、角速度検出部は、今回の反対回りの操作に対応してカメラ位置の右回り制御を停止するべく、カメラ停止要求をカメラ位置制御部に対して出力する（Ｓ２３）。そして、角速度検出部は、フラグＦに０をセットし（Ｓ２４）、角速度判定処理をマスクするマスクタイマＴｍに６０をセットして（Ｓ２５）、今回の動作を終了する。
一方、角速度ωがしきい値−ＴＨＢ以上の場合には（Ｓ２１でＮＯ）、角速度検出部は、カメラの右回り回転制御を停止するための操作がなされていないとしてそのまま今回の動作を終了する。【００７４】
ここでマスクタイマＴｍの機能について説明する。カメラ位置が右／左方向に回転制御されているとき、この回転制御を停止させたい場合、ユーザはコントローラ２０を左／右方向に回転操作するが、この左／右方向の回転操作が、この角速度検出処理によりカメラ位置の停止操作として処理されるのみならず、その次の角速度検出処理により逆方向へのカメラ位置の回転指示操作として処理されてしまう可能性がある。そこで、カメラ位置の回転制御をコントローラ２０の反対方向への回転操作に応じて停止した場合には、一定時間、角速度ωがしきい値ＴＨＡを超えているかの判定をマスクし、カメラ位置を停止させる操作により、カメラ位置が逆回転してしまうことを防止している。このマスク時間は任意であるが、１秒程度が適当であり、１／６０秒間隔で実行される角速度検出処理では、マスクタイマＴｍに６０がセットされる。【００７５】
また、Ｓ１１の判定で、フラグＦが現在カメラ位置を左回り制御中である旨を示す−１であった場合には、角速度検出部は、角速度ωがしきい値ＴＨＢを超えているかを判定する（Ｓ２２）。角速度ωがしきい値ＴＨＢを超えていれば（Ｓ２２でＹＥＳ）、角速度検出部は、今回の反対回りの操作に対応してカメラ位置の左回り制御を停止するべく、カメラ停止要求をカメラ位置制御部に対して出力する（Ｓ２３）。そして、角速度検出部は、フラグＦに０をセットし（Ｓ２４）、角速度判定処理をマスクするマスクタイマＴｍに６０をセットして（Ｓ２５）、今回の動作を終了する。
一方、角速度ωがしきい値ＴＨＢ以下の場合には（Ｓ２２でＮＯ）、角速度検出部は、カメラの左回り回転制御を停止するための操作がなされていないとしてそのまま今回の動作を終了する。【００７６】
図８Ｂは、コントローラ２０の上下動の操作を検出して、カメラ位置のリセットを指示する上下方向の加速度検出処理を示すフローチャートである。加速度検出部は、コントローラ２０から３軸加速度センサ２３の出力値（加速度）を定期的（たとえばフレームタイミング１／６０秒ごと）に受け取る。この処理は、３軸加速度センサ２３の出力値を受け取るごとに実行される。【００７７】
今回加速度値が入力されると、加速度検出部は、過去９フレームのデータと今回のデータを合計して１０フレームの合計加速度値αを算出する（Ｓ３１）。そして、加速度検出部は、この合計加速度値αの絶対値がしきい値ＴＨＶを超えているか否かを判定する（Ｓ３２）。すなわち、ユーザがコントローラ２０を下向きに動かしても上向きに動かしてもカメラ位置をリセットするため、加速度値αの符号を問わず絶対値で判断する。加速度値αの絶対値がしきい値ＴＨＶを超えている場合には、加速度検出部は、カメラ位置をイニシャル位置１１０（図４参照）にリセットするとともに、もし現在カメラ位置が回転移動制御中であった場合には回転移動を停止させる（Ｓ３３）。そして、加速度検出部は、フラグＦに０をセットして（Ｓ３４）、動作を終了する。【００７８】
もし、加速度値αがしきい値ＴＨＶを超えていなかった場合には、加速度検出部は、そのまま動作を終了する。【００７９】
図８Ａのフローチャートでは、カメラ位置の回転制御を開始する操作のしきい値ＴＨＡと回転制御を停止させる操作のしきい値ＴＨＢとを異なる値（ＴＨＡ＞ＴＨＢ）にしているが、ＴＨＡとＴＨＢを同じ値にしてもよく、また、ＴＨＡ＜ＴＨＢの大小関係になるように設定してもよい。【００８０】
また、図８Ｂのフローチャートでは、上向き操作のしきい値と下向き操作のしきい値とを共通にしているが、上向き操作のしきい値と下向き操作のしきい値とを異なる値に設定してもよい。【００８１】
また、この実施形態では、コントローラ２０の水平面の角速度に基づいてカメラ位置の回転制御をオン／オフし、上下方向の加速度に基づいてカメラ位置のリセットを行っているが、コントローラ２０に加えられる他の運動操作に基づいて、カメラ位置の回転制御のオン／オフ、カメラ位置のリセットを行ってもよい。【００８２】
たとえば、コントローラ２０に対して右方向に一定以上の加速度が加えられたときカメラ位置を右回りに回転制御し、コントローラ２０に対して左方向に一定以上の加速度が加えられたときカメラ位置を左回りに回転制御する等である。また、他の方向の加速度を用いて制御を行ってもよく、三次元方向の速度を用いて制御を行ってもよい。またさらに、回転操作の角加速度を用いて制御を行ってもよい。【００８３】
上記実施形態は、ゲーム画像中に主キャラクタを表示する３Ｄアクションゲームについて説明したが、主キャラクタ（プレイヤ）の視点でゲーム画像を表示する一人称視点のゲームにも本発明を適用することが可能である。この場合、コントローラ２０の各ボタンで主キャラクタの移動等の主要な動作が制御され、コントローラ２０本体の移動操作及び回転操作の一方または両方の操作で主キャラクタの視線（顔を向ける動作）が制御されるようにすればよい。また、同様に、本発明をレース系、フライト系のゲームに適用してユーザの視線が制御されるようにしてもよい。
【産業上の利用可能性】
【００８４】
本発明は、アーケードゲームやコンシューマーゲームを製造、販売する産業分野で利用することができる。
【図１】
0005485702.tif 000002
【図２】
0005485702.tif 000003
【図３】
0005485702.tif 000004
【図４】
0005485702.tif 000005
【図７】
0005485702.tif 000006
【図８】
0005485702.tif 000007
【図５】
0005485702.tif 000008
【図６】
0005485702.tif 000009