プログラム、記憶媒体およびコンピュータ
【課題】ゲームの観戦者が2台目以後のコントローラを用いて、プレイヤーに的確且つインパクトのあるアドバイスを送ることができるゲームプログラムを提供する。
【解決手段】プレイヤーが操作するメインコントローラとは別のサブコントローラの操作に応じてフリーハンド線を描画可能にする。このフリーハンド線はゲーム空間内部またはゲーム空間近傍に描画され、描画から一定時間が経過すると消去される。これにより、ゲーム進行の邪魔になることなく、カメラ位置が移動した場合でも常に所望の位置を指し示すフリーハンド線を描画することが可能になる。
【解決手段】プレイヤーが操作するメインコントローラとは別のサブコントローラの操作に応じてフリーハンド線を描画可能にする。このフリーハンド線はゲーム空間内部またはゲーム空間近傍に描画され、描画から一定時間が経過すると消去される。これにより、ゲーム進行の邪魔になることなく、カメラ位置が移動した場合でも常に所望の位置を指し示すフリーハンド線を描画することが可能になる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、プレイヤーが操作するコントローラに加えて、観戦者が操作するコントローラによって表示を制御するためのプログラム等に関する。
【背景技術】
【0002】
一般的に、ビデオゲーム装置は、複数のプレイヤーで競い合ってゲームをすることができるように複数のコントローラが接続可能になっている。しかし、複数のプレイヤーでプレイできないゲームもあり、また、複数のプレイヤーでプレイできるゲームであっても1人でプレイされる場合もある。このような場合、2人目以後の者はプレイヤーとしてゲームに参加することができず、2台目以後のコントローラは機能しない。
【0003】
そこで、ゲームに参加しない観戦者が2台目のコントローラを操作して画面のカーソルを動かすことができるようにし、プレイヤーに対してアドバイスを与えることができるようにしたものが提案されている。
【0004】
また、従来、複数のユーザのそれぞれの端末装置の表示画面に表示された同一の文書について、端末装置の電話機能で対話を行いつつユーザ間で効率的に情報交換等を行うべく、表示画面に画像表示されている各ユーザに割り当てられたポインタ(カーソル)を利用することができるシステムがある(例えば、特許文献1参照)。具体的には、電話回線で接続されて対話中の各端末装置の表示画面に、同一の文書と、自己のカーソル及び相手ユーザのカーソルとを表示させる。ユーザは、自己の端末装置のトラックボールを用いて自己のカーソルを移動させて、表示画面に表示された内容の一部を指し示しつつ、指し示した内容について相手ユーザと対話(情報交換等)する。表示されているカーソルの画像は、表示すべき文書の画像に合成することで表示される。また、各カーソルは、どのユーザのものか識別できるように形状や色を変えて表示されている。
【0005】
【特許文献1】特開平07−36809号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし,上記従来のゲームでは、観戦者はカーソルを表示できるのみであるため、そのアドバイスがプレイヤーに与えるインパクトが少なく、プレイヤーによって無視される確率が高いうえ、観戦者がゲームに関与している感覚が少なくつまらないという問題点があった。
【0007】
また上記課題を解決するために、2台目以後のコントローラに、カーソル以外の図形を描画する機能を付与すると、その図形が画面に表示されたままになり、画面の表示が煩雑になるという問題点があった。また、上記従来のゲームでは、三次元空間を所定のカメラ位置から透視投影して得られる画像に対してカーソル画像を合成することによって、カーソルを画面上に表示していたことから、これと同様の方法によって、カーソル以外の図形(カーソルの移動軌跡等)を画面上に表示する方法が考えられる。しかしながら、この方法によると、カメラ位置の変化に伴って画面に表示される三次元空間のゲーム画像は変化するが、上記カーソルの移動軌跡等の画像自体は合成されるだけなので、画面上の同じ位置に同じサイズで描画され続けてしまい、観客ユーザがカーソルの移動軌跡等を用いて指し示したかった領域とは異なる領域を指し示してしまうという問題点があった。例えば、三次元空間における所定のカメラ位置での家屋が含まれるゲーム画像が表示されている状態において、カーソルで家屋の周辺を囲んで軌跡の表示を行った後、カメラをズームアウトさせると家屋はカメラとの距離が遠くなるからゲーム画面に対して小さく表示されることになるが、軌跡はゲーム画面に対して同じ位置で同じ大きさのまま表示されてしまう。
【0008】
そこで、この発明は、観戦者が2台目以後のコントローラを用いて、プレイヤーに的確且つインパクトのあるアドバイスを送ることができるプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
請求項1の発明は、コンピュータを、オブジェクトおよびキャラクタが存在する三次元の仮想空間を形成し、メインコントローラの操作に応じて前記オブジェクトまたはキャラクタの状態を制御する仮想空間形成手段、前記メインコントローラとは別の操作者によって操作されるサブコントローラの操作に応じて、前記仮想空間の内部に所定の付加図形を描画する付加図形描画手段、前記メインコントローラの操作に応じて、前記仮想空間および前記付加図形を投影した二次元画像を描画する位置であるカメラ位置を決定するカメラ位置制御手段、前記カメラ位置に投影された前記仮想空間および前記付加図形の二次元画像である投影画像を描画してビデオ出力する投影画像描画手段、として機能させるプログラムである。
【0010】
請求項2の発明は、請求項1の発明において、前記付加図形描画手段は、描画した付加図形を描画されたのち所定時間が経過したときに消去することを特徴とする。
【0011】
請求項3の発明は、請求項1,2の発明において、前記カメラ位置制御手段は、前記カメラ位置に加えて、前記仮想空間内の1点を前記投影画像描画手段が描画する投影画像の中心に表示する位置である注視点として設定する手段であり、前記付加図形描画手段は、前記カメラ位置と前記注視点との間に仮想の描画面を設定し、この描画面上に前記付加図形を描画する手段であることを特徴とする。
【0012】
請求項4の発明は、請求項3の発明において、前記付加図形描画手段は、前記カメラ位置と前記注視点とを結ぶ線分の内分点に前記描画面を設定する手段であることを特徴とする。
【0013】
請求項5の発明は、請求項3,4の発明において、前記付加図形描画手段は、前記ビデオ出力された投影画像を表示する画面の方向に対して前記サブコントローラが指し示す位置である指示位置を検出する手段を含み、前記付加図形描画手段は、前記サブコントローラの指示位置に対応する前記描画面の位置に図形を表示する手段であることを特徴とする。
【0014】
請求項6の発明は、請求項5の発明において、前記付加図形描画手段は、前記描画面の範囲を、前記投影画像描画手段が描画する投影画像の範囲を越える範囲に設定し、前記サブコントローラの指示位置が前記画面に表示されている投影画像の範囲を外れた場合でも、その指示位置に対応する前記描画面上の位置に前記付加図形を描画する手段であることを特徴とする。
【0015】
請求項7の発明は、請求項1〜6の発明において、前記付加図形描画手段は、複数のサブコントローラの操作に基づき、各々独立した前記付加図形を描画することを特徴とする。
【0016】
請求項8の発明は、請求項1乃至請求項7のいずれかに記載のプログラムを記憶した記憶媒体である。
【0017】
請求項9の発明は、請求項1乃至請求項7のいずれかに記載のプログラムを実行するコンピュータである。
【発明の効果】
【0018】
この発明によれば、サブコントローラを用いて三次元の仮想空間内に付加図形を配置(生成)することができ、この付加図形が三次元の仮想空間における他のオブジェクトとともにゲーム画像として表示されるため、ゲームを進行させるためのメインコントローラ以外のコントローラを用いてプレイヤーに的確且つインパクトのあるアドバイスを送ることができる図形表示が可能になる。
【0019】
また、この発明によれば、付加図形は、所定時間が経過すると消去されるため、画面上にゴミとして残ることがなく、画面表示が煩雑にならない。
【発明を実施するための最良の形態】
【0020】
≪ゲームシステムの説明≫
図面を参照して、本発明が適用されるゲームシステム1について説明する。
図1は、当該ゲームシステム1を説明するための外観図である。以下、据置型ゲーム装置を一例にして、本発明のゲームシステム1について説明する。
【0021】
図1において、当該ゲームシステム1は、スピーカ2aおよびディスプレイ2bを備えた家庭用テレビジョン受像機等のモニタ装置2に、接続コードを介して接続される据置型ゲーム装置(以下、単にゲーム装置と記載する)3および当該ゲーム装置3に操作情報を与えるコントローラ7によって構成される。ゲーム装置3には、交換可能な記憶媒体の一例である光ディスク4がセットされるとともに、ゲームのセーブデータ等を不揮発的に記憶する着脱自在のメモリカード5が必要に応じて装着される。ゲーム装置3には、ゲームの主電源である電源ON/OFFスイッチ、光ディスク4の着脱を行うイジェクトスイッチが設けられている。
【0022】
コントローラ7は、遊技者によって操作され、その装置内容を示す操作信号をゲーム装置3に対して送信する装置である。ゲーム装置3は、コントローラ7から送信されてくる操作信号に応じてゲームを開始・終了させ、ゲームを進行させる等の制御を行う。コントローラ7とゲーム装置3との通信は、無線で行われる。通信方式としては、たとえばBluetooth(ブルートゥース)(登録商標)の方式が用いられる。この通信のための通信ユニットとしては、コントローラ7は通信部75(図4参照)を備え、ゲーム装置3は受信ユニット36a(図2参照)を備えている。なお、1台のゲーム装置3に対して1台〜4台のコントローラ7を無線接続することが可能である。すなわち、ゲーム装置3は、4台までの異なるコントローラ7から送られてくる操作信号をそれぞれ識別して受信する機能を備えている。
【0023】
なお、モニタ装置2の左右上面には、コントローラ7に対してモニタ装置2の位置を知らせるための発光部8L,Rが取り付けられている。発光部8L,Rは、それぞれ赤外線LEDを内蔵しており、ゲーム装置3の動作中は赤外線で発光する。
【0024】
次に、図2のブロック図を参照して、ゲーム装置3の機能的構成について説明する。
図2において、ゲーム装置3は、各種プログラムを実行する例えばリスク (RISC)CPU(セントラルプロセッシングユニット)30を備える。CPU30は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ33等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU30には、メモリコントローラ31を介して、GPU(Graphics Processing Unit)32、メインメモリ33、DSP(Digital Signal Processor)34、およびARAM(Audio RAM)35が接続される。また、メモリコン トローラ31には、所定のバスを介して、コントローラI/F(インターフェース)36、ビデオI/F37、外部メモリI/F38、オーディオI/F39、およびディスクI/F41が接続され、それぞれ受信ユニット36a、モニタ装置2、外部メモリカード5、スピーカ2a、およびディスクドライブ40が接続されている。
【0025】
GPU32は、CPU30の命令に基づいて画像処理を行うものであり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU32は、図示しない画像処理専用のメモリやメインメモリ33の一部の記憶領域を用いて三次元の仮想空間(ゲーム空間)の各コマの画像 (公知の透視投影法による二次元画像)を生成し、この画像にカーソル等の画像を合成する等して生成したゲーム画像をメモリコントローラ31およびビデオI/F37を介してモニタ装置2(ディスプレイ2b)に出力する。
【0026】
メインメモリ33は、CPU30で使用される記憶領域であって、光ディスク4から読み出されたゲームプログラムや各種データ等を適宜記憶する。
【0027】
DSP34は、ゲームプログラム実行時にCPU30において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM35が接続される。ARAM35は、DSP34が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP34は、ARAM35に記憶されたサウンドデータを読み出し、メモリコントローラ31およびオーディオI/F39を介してモニタ装置2に備えるスピーカ2aに出力させる。
【0028】
メモリコントローラ31は、データ転送を統括的に制御するものであり、上述した各種I/Fが接続される。受信ユニット36aは、コントローラI/F36を介してメモリコントローラ31に接続される。上述したように受信ユニット36aは、コントローラ7からの送信データを受信し、コントローラI/F36およびメモリコントローラ31を介して当該送信データをCPU30へ出力する。ビデオI/F37には、モニタ装置2が接続される。外部メモリI/F38には、外部メモリカード5が接続され、その外部メモリカード5に設けられたバックアップメモリ等とアクセス可能となる。
【0029】
オーディオI/F39にはモニタ装置2に内蔵されるスピーカ2aが接続され、DSP34がARAM35から読み出したサウンドデータやディスクドライブ40から直接出力されるサウンドデータをスピーカ2aから出力可能に接続される。ディスクI/F41には、ディスクドライブ40が接続される。ディスクドライブ40は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置3のバスやオーディオI/F39に出力する。
【0030】
次に、図3を参照して、コントローラ7について説明する。
コントローラ7は、例えばプラスチック成型によって形成されたハウジング71を有している。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【0031】
ハウジング71上面の中央前面側に、十字キー72cが設けられる。この十字キー72cは、十字型の4方向プッシュスイッチであり、矢印で示す4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。遊技者によって十字キー72cのいずれかの方向の操作部が押下されると、その方向を示す操作信号が、コントローラ7からゲーム装置3に送信される。遊技者が十字キー72cを操作することにより、例えば、ゲーム空間に登場するキャラクタの移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【0032】
ハウジング71上面の十字キー72cより後側には、多数のボタンスイッチが設けられており、各ボタンがオンされると、対応する操作信号がコントローラ7からゲーム装置3へ送信される。これらのボタンスイッチのうち、最も前方(十字キー72c寄り)に設けられているものが、Aボタン72aである。
【0033】
一方、ハウジング71下面には、凹部が形成されている。ハウジング71下面の凹部は、遊技者がハウジング71を把持したとき、この遊技者の人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、ボタンスイッチ72bが設けられる。このボタンスイッチ72bは、Bボタンとして機能する操作部である。
【0034】
これらAボタン72a、Bボタン72bは、ゲームプログラムにおいて、遊技者がゲームに対する主要な操作を行うボタンスイッチとして設定される。
【0035】
なお、ハウジング71上面の十字キー72aより前面側に設けられているボタンスイッチ72hは、遠隔からゲーム装置3本体の電源をオン/オフする電源スイッチである。
【0036】
また、ハウジング71前面には、コントローラ7前方の画像を撮影するための撮像素子743(図4参照)が設けられている。撮像素子743は、撮像情報演算部74(図4参照)の一部を構成している。撮像素子743は、コントローラ7がモニタ装置2に向けて支持されているとき、モニタ装置2の上面に設けられた発光部8L,Rを撮影する。撮像情報演算部74は、撮像素子743における発光部8L,Rの撮影位置によってコントローラ7の向きを検出する。
【0037】
次に、図4のブロック図を参照して、コントローラ7の内部構成について説明する。
【0038】
図4において、コントローラ7は、上述した操作部72および撮像情報演算部74の他に、その内部に通信部75、加速度センサ701およびバイブレータ704を備えている。
【0039】
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コアユニット70の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分、すなわち発光部8L,Rからの光を検出し、それらの位置座標を示す座標データを通信部75へ出力する。
【0040】
加速度センサ701は、コントローラ7の上下方向、左右方向および前後方向の3軸でそれぞれ加速度を検知する加速度センサである。なお、加速度センサ701は、必要な操作信号の種類によっては、上下方向、左右方向の2軸でそれぞれ加速度を検出する加速度センサが用いられてもかまわない。加速度センサ701が検知した加速度を示すデータは、通信部75へ出力される。なお、加速度センサ701は、典型的には静電容量式の加速度センサが用いられるが、他の方式の加速度センサやジャイロセンサを用いてもかまわない。
【0041】
通信部75は、マイクロコンピュータ(Micro Computer:マ イコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。
【0042】
操作部72からの操作信号(キーデータ)、加速度センサ701からの加速度信号(加速度データ)、および撮像情報演算部74からの座標データは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、加速度データ、座標データ)を受信ユニット36aへ送信する送信データとして一時的にメモリ752に格納する。
【0043】
ここで、通信部75から受信ユニット36aへの無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥースで構成される通信部75の送信間隔は5msである。マイコン751は、受信ユニット36aへの送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ754から放射する。
【0044】
バイブレータ704は、例えば振動モータ又はソレノイド等が考えられる。バイブレータ704が作動することによってコアユニット70に振動が発生するので、それを把持している遊技者の手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。
【0045】
≪ゲームプログラムの説明≫
上記のような構成のゲーム装置3にセットされる光ディスク4には、以下に説明するような宝探し系のアクションアドベンチャーゲームのプログラムが記憶されている。宝探し系のアクションアドベンチャーゲームは、主人公であるメインキャラクタがゲーム空間(三次元の仮想空間)内に配置されたアイテムを上手く活用して謎を解き、宝や物語の進行に必要なアイテムを入手することによって場面が進行してゆくゲームである。メインキャラクタは、プレイヤーの第1のコントローラ7の操作により、ゲーム空間内で活動する。
【0046】
上述したように、上記ゲームシステム1には、コントローラ7を4台まで無線接続することができる。そのうちの第1のコントローラ7が、上記プレイヤーによって操作されるコントローラ(メインコントローラ)であり、この第1のコントローラの操作内容に応じてゲームの進行が制御される。一方、第2〜第4のコントローラ7(以下、第2のコントローラ7と総称する)は、プレイヤー以外の観戦者または応援者(以下、観戦者と呼ぶ)によって操作されるコントローラ(サブコントローラ)である。このゲームにおいて、サブコントローラにはゲーム空間内のキャラクタ等を制御する機能が割り当てられていないが、ゲーム画像が表示されているディスプレイ2b(ゲーム画面)上に指形のカーソル(図8参照)やフリーハンド線(図8参照)を表示させる機能が割り当てられている。したがって、観戦者は、ゲームの進行に直接関与することはできないが、第2のコントローラ7を用いてディスプレイ2b(ゲーム画面)上にカーソル121やフリーハンド線122を表示させてプレイヤーにアイテムの隠し場所を教える等のサポートをすることができる。
なお、このフリーハンド線が本発明の付加図形に対応する。
【0047】
ゲームプログラムは、仮想的な三次元のゲーム空間を形成し、このゲーム空間を所定の視点から透視投影した二次元画像から生成したゲーム画像を外部に(ディスプレイ2bに)出力する処理をゲーム装置3に実行させる。具体的には、視点(カメラ位置)と注視点との間にディスプレイ2bと同じサイズの仮想的なスクリーンを配置し、キャラクタやオブジェクトが配置されているゲーム空間を視点から見た映像をこのスクリーン上に透視投影して描画した二次元映像にカーソル等の画像(図8参照)を合成した画像をゲーム画像とする。
【0048】
図5は、上に述べたスクリーン116への透視投影の例を示す図である。この図では、ゲーム空間に配置された仮想カメラのカメラ位置V(110)を焦点としてスクリーンS(116)へオブジェクト(キャラクタ)Oを透視投影している。これにより、オブジェクトOは、スクリーンSにオブジェクトO′として透視投影される。
【0049】
ゲーム空間のカメラ位置は、メインキャラクタとゲーム空間の主要な部分がゲーム画像に収まるように、ゲームの進行に応じて自動的に決定される。すなわち、プレイヤーによる第1のコントローラの操作に基づくメインキャラクタの活動に応じてカメラ位置が制御される。
【0050】
なお、カメラ位置の制御は、カメラの左右・上下への移動、カメラの向きの変化(パン)、カメラの前後への移動(ズームイン/ズームアウト)を含む。また、カメラの(レンズ)の向きを決定する注視点は、ゲームの各場面におけるゲーム画像が最適のアングルとなるように、場面ごとに予めゲームプログラム中に設定・記憶されている。
【0051】
上記のように、プレイヤーが第1のコントローラ7を用いてメインキャラクタを活動させることにより、この活動に応じてカメラ位置が変更されるが、プレイヤーが第1のコントローラ7を用いたより直接的な操作でカメラ位置を変更することもできる。たとえば、図16〜図17に示すゲーム画面の右上に表示されているカメラボタンを第1のコントローラ7でクリックすることにより、カメラ位置をズームイン/ズームアウトすることができる。この操作は第1のコントローラ7のみで可能である。
【0052】
図8、図9は、ディスプレイ2b上の第1、第2のコントローラによって指示される位置(指示位置)に表示されるカーソル、および、第2のコントローラの操作によって描画されるフリーハンド線を説明する図である。
【0053】
図8(A)は、ディスプレイ2bの第1のコントローラ7の指示位置に表示されるカーソル120と第2のコントローラ7の指示位置に表示されるカーソル121を示す図である。第1のコントローラ7の指示位置には、同図に示すように星形のカーソル120が表示され、第2のコントローラ7の指示位置には、同図に示すように手指形のカーソル121が表示される。カーソル120は第1のコントローラ7の向きに応じて移動し、カーソル121は第2のコントローラ7の向きに応じて移動する。これにより、プレイヤーも観戦者も自分が操作しているコントローラの向きを、混同することなく画面上で知ることができる。
【0054】
CPU31は、星形のカーソル120が位置している方向に正面を向くようにゲーム空間内のメインキャラクタ200(図16,17参照)の動作を制御し、また第1のコントローラ7の所定のボタンをオンすることでカーソル120が位置している方向にメインキャラクタを移動させる制御を行う。
【0055】
観戦者が、第2のコントローラ7のBボタン72bを押しながら、指示位置を移動させると(コントローラの向きを変えると)、その指示位置が移動した軌跡をトレースするフリーハンド線122がディスプレイ2bに表示される。この機能により、プレイヤーに対して特定の場所や方向を指示することができる。
【0056】
また、第2のコントローラ7の指示位置に表示されるカーソル(第2のカーソル)は、同図(A),(C)に示すように指を1本伸ばした状態の図形であるが、第2のコントローラ7のAボタン72aがオンされると、カーソル121は、同図(Cの右図)に示すように、伸ばした指を途中まで曲げた形状のカーソル121′に変化し、その指の先端を中心とした複数の同心円からなる水紋状のマーク123が表示される。また、このとき同時に所定のサウンドエフェクトも音声出力される。これにより、観戦者は第2のコントローラを用いて「ここ」という場所の指示を端的に行うことができる。
マーク123は、第2のコントローラのAボタンがオンされたときワンショットで表示される。
【0057】
なお、上述したようにゲーム装置3には4台のコントローラ7を接続することができるため、観戦者は第2〜第4のコントローラ7を使用することができる。第2〜第4のコントローラ7が同時に使用されてフリーハンド線122が表示されると、たとえば、図9(B)に示すようになる。観戦者のカーソル (第2〜第4のカーソル)には、対応するコントローラ7を識別する番号(2P,3P,4P)が表示され、各コントローラ7で描画されるフリーハンド線122はそれぞれ別の色で描画され(同図では線種で区別している)、どのコントローラ7で描画されたものかが識別可能にされている。
【0058】
上記表示物のうち、星形のカーソル120、手指形のカーソル121およびマーク123は、オンスクリーンに表示される。すなわち、図8に示すように、カーソル120,121およびマーク123の画像を、透視投影された二次元画像に合成することでディスプレイ2bに表示される。一方、フリーハンド線122は、図6に示すように、ゲーム空間内に仮想的に設定された仮想描画面112上に配置される。例えば、図6に示すスクリーンSに投影された二次元画像とカーソル121を合成すると図7のようなゲーム画像が生成される。
【0059】
フリーハンド線122は、配置(生成)されたのち、一定時間が経過したものから順次消去されていく。つまり、フリーハンド線122は軌跡の点の集合であるので、図9(A)示すようにゲーム空間に配置された後から一定時間経過した点から順次(線分の末尾から順に)消去されていく。
【0060】
図10は、ディスプレイ2bの画面を含む仮想的な平面Nを示す図である。CPU31は、コントローラ7から受信した、発光部8L,Rが発する光の位置の情報(座標データ)から、コントローラ7の撮像素子743の中心点から法線方向に向かう光軸が、ディスプレイ2bの画面等を含む仮想的な平面Nと交差する交点の位置(以下、「交点位置」という。)を算出する。この交点位置が指示位置となる。なお、算出される交点位置は、若干の誤差を含んでおり、撮像素子743の光軸と平面Nとの正確な交点とは異なるが問題はなく、厳密な正確性は必要とされない。この算出された交点位置がディスプレイ2bの画面内となるときは、ディスプレイ2bの画面上の当該位置にカーソル120、121およびマーク123を表示し、この算出された交点位置がディスプレイ2bの画面外となる場合は表示しない。
【0061】
図10は、ディスプレイ2bの画面の中心を(0,0)とし、ディスプレイ2bの右方向をX軸の正方向、下方向をY軸の正方向として定義している。また、ディスプレイ2bの画面の右端をX=Xa、左端をX=−Xa、下端をY=Ya、上端をY=−Yaと定義している。図10においては、−Xa≦X≦Xa、−Ya≦Y≦Yaの範囲である太線の内側がディスプレイ2bの画面内に該当する。交点位置はこの座標系における座標(以下、「交点座標」という。)として算出される。
【0062】
上のようにして求められた平面N上の交点座標に基づき、カーソル120,121およびマーク123について、スクリーンS(116)に投影されて生成された二次元画像に合成すべき位置を決定する。具体的には、算出された交点座標(X,Y)が−Xa≦X≦Xa、−Ya≦Y≦Yaの範囲に位置するとき、すなわち、交点座標がディスプレイ2bの画面内に位置するときは、カーソル120,121およびマーク123を表示する(二次元画像に合成する)。つまり、スクリーンSに透視投影されて生成された二次元画像は、ディスプレイ2bの画面のサイズと同等であるので、画面内であれば交点座標に対応する位置の二次元画像の領域にカーソル120,121およびマーク123の画像を合成できる。
【0063】
また、平面N上の交点座標に基づき、仮想描画面112(図6参照)上に配置すべきフリーハンド線122の位置を決定する。すなわち、交点座標が検出されたとき、それに対応する仮想描画面112の位置にフリーハンド線122を配置する。交点座標が検出されないとき(平面Nの領域外が指示されている)は、フリーハンド線122の配置は行わない。これにより、平面N上の交点座標として検出された第2のコントローラ7の軌跡と同じ形状のフリーハンド線122が仮想描画面112上に描画される。
【0064】
また、平面Nの領域で検出された第2のコントローラの交点座標に基づいて仮想描画面112にフリーハンド線122が配置されるため、カーソル121がディスプレイ2bの画面に表示されない場合であっても、指示位置を検出できる範囲(平面Nの領域)であればゲーム空間上にフリーハンド線122を配置することができる。このように、カーソル121をスクリーンS(116)に透視投影された二次元画像に合成する処理とフリーハンド線122をゲーム空間内の仮想描画面112に配置する処理は別々の処理であるが、共通の指示位置を用いているので図7に示すようにディスプレイ2bでの表示がずれることがない。
【0065】
なお、手指形カーソル121およびマーク123を、フリーハンド線122と同様にオブジェクトとしてゲーム空間内の仮想描画面112上に配置する構成にしてもよい。
また、上述のようにカーソル120,121およびマーク123は、指示位置に応じたディスプレイ2bの画面に表示されるように合成されるので、カメラ位置が変わった場合でも、指示位置が同じであればディスプレイ2bの画面の同じ位置に表示される。
【0066】
以下、図6、図11〜図18を参照してフリーハンド線122が描画される仮想描画面について説明する。
図6,11は、カメラ位置とスクリーンと仮想描画面との関係を示す図である。これらの図に示すように、この実施形態では、カメラ位置110と注視点103とを結ぶ直線(線分)である視線115の中点に視線115に直交する面112を仮想描画面としている。上記フリーハンド線122は、そのとき設定されているこの仮想描画面上における第2のコントローラ7の指示位置に対応する位置に配置(生成)される。すなわち、図11に示すように、カメラ位置が110Aの位置にあり注視点が103のとき、カメラの視野は111Aに示す範囲であり、仮想描画面は112Aに設定される。仮想描画面112Aはカメラの視野の範囲で区切られることなく、カメラの視野を越えて設定される。この実施形態の仮想描画面112は上述したように第2のコントローラ7の指示位置の検出範囲(平面N)に対応するように設定されている。なお、仮想描画面112の範囲は、視野を越える範囲に設定することに限定されず、第2のコントローラ7の指示位置を検出できる範囲内で任意に設定可能である。また、カメラ位置が110Bの位置にあり注視点が103のとき、カメラの視野は111Bに示す範囲であり、仮想描画面は112Bに設定される。さらに、カメラ位置が110Cの位置にあり注視点が103のとき、カメラの視野は111Cに示す範囲であり、仮想描画面は112Cに設定される。なお、仮想描画面112を設定する位置は、視線115の中点に限定されない。たとえば、視線115のm:nの内分点等であってもよい。また、カメラ位置110と注視点103とを結ぶ線分に直交していなくてもよい。
【0067】
また、フリーハンド線122は、断面形状が十字のポリゴンで形成されるオブジェクトであり、カーソル121(第2のコントローラ7の指示位置)の移動の軌跡の各点で断面形状が十字のオブジェクトが配置された集合が線分となる。断面形状を十字とすることによって、平面形状に比べて、どのカメラ位置からフリーハンド線122を見ても視認しやすくすることができる。また、断面形状を円等にするよりも処理負荷を軽減することができる。
【0068】
なお、上述のようにフリーハンド線122は、ゲーム空間上に配置されるオブジェクトであるので、ゲーム空間内に存在するメインキャラクタ200等の移動するオブジェクトと重なる(接触する)場合が考えられるが、衝突するような当たり判定等の制御はせず、メインキャラクタ200等のオブジェクトはフリーハンド線122に影響を受けずに通過するように制御する。
【0069】
このように、仮想描画面112は、カメラ位置110が変更されたとき(注視点103が変更されたとき(パン)を含む)、この変更に同期して新たに設定され、設定された位置で第2のコントローラ7の操作に応じてフリーハンド線122が配置される。また、フリーハンド線122は、カメラ位置110が移動しても所定時間が経過するまでゲーム空間のその位置に存在し続けるので、図16,図17に例示するように、カメラ位置が移動した場合には、他のオブジェクトと同様、移動先のカメラ位置に応じたサイズ及び形状で表示される。
【0070】
図16,図17は、ゲーム画像の例を示す図である。図16は、図11の カメラ位置110Aに示すような、ゲーム進行時の通常のゲーム画像である。図17は、図11のカメラ位置110Bに示すような、ズームアウトした状態のゲーム画像である。図16では、通常のゲーム画像が表示された状態で、第2のコントローラ7(カーソル121)により、フリーハンド線122が描かれている。画面(ディスプレイ2b)の右上にはカメラの絵が付されたボタンアイコンが表示されている。プレイヤー(第1のコントローラ7)によって、このボタンアイコンがオンされると、画面の表示が図17に示すようなズームアウトしたゲーム画像になる。このとき、描画されているフリーハンド線122もゲーム空間とともにズームアウトし、小さく表示される。なお、図17のズームアウトした状態の画面では、右上のボタンアイコンは「もどる」ボタンに変更されており、プレイヤーによってこのボタンアイコンがオンされると、画面の表示は再び図16に示すような通常のゲーム画像にもどる。
【0071】
なお、上記「カメラ」、「もどる」のボタンアイコンは、第1のコントローラでのみ操作することができ、第2〜第4のコントローラ7では操作することができない。
【0072】
また、フリーハンド線122は、カメラの視野111に含まれていてディスプレイ2bに表示されていた状態からカメラ位置110が移動してカメラの視野111から外れた場合にはスクリーンSに投影されず、ゲーム画像の範囲から外れてディスプレイ2bに表示されなくなる。
【0073】
図12、図13は、フリーハンド線122の配置可能範囲について説明する図である。図12の点線領域で示すように、仮想描画面112Aはそのときのカメラ位置の視野111A(スクリーンS(ディスプレイ2bの画面)に投影される領域)を越えて形成される。また、上述したように仮想描画面112と第2のコントローラ7の指示位置の検出範囲(平面N)とが対応している。そのため、第2のコントローラ7の指示位置がそのカメラ位置110Aからの視野111A、すなわち、モニタ装置2のディスプレイ2bの画面外(ゲーム画像の範囲外)の場合であっても、指示位置に対応する位置の仮想描画面112Aの領域にフリーハンド線122を配置できる。そのときその越えた範囲のフリーハンド線122hは、図13(A)に示すようにディスプレイ2bに表示されないが、カメラ位置がたとえばズームアウトしてカメラ位置が110Bの位置に移動し、フリーハンド線122hの範囲が、カメラ位置110Bでの視野111Bに入った場合には図13(B)に示すようにフリーハンド線122全体がディスプレイ2b上に表示される。
【0074】
本実施形態では、第2のコントローラ7の指示位置の検出範囲(平面Nの領域)に仮想描画平面112の領域が対応していて、指示位置が検出範囲外(指示位置が検出されない状態)となったときは、配置箇所が不明となるのでフリーハンド線122の配置を行わない。そのため、本実施形態では、ボタン72bをオン状態にしてフリーハンド線122を引いている途中で指示位置が検出されなくなって、その後に再び指示位置が検出された場合、フリーハンド線122は図14(A)に示すような途切れた形状となるが、図14(B)に示すような補間処理を行ってもよい。
【0075】
例えば、第2のコントローラ7のBボタン72bがオンされ、指示位置に対応する仮想描画平面112上にフリーハンド線122を配置している状態のときに判定フラグをオンにする。この状態で指示位置の検出がされなくなって再び指示位置の検出がされたときに、Bボタン72bがオンされていて且つフラグがオンであった場合には、最後に配置されたフリーハンド線122の位置とこれから配置するフリーハンド線122の位置とを、補間線250で結ぶ。この直線は、フリーハンド線122と同じオブジェクトである。なお、判定フラグは、オン状態からBボタン72bがオフされたときにオフされる。
【0076】
これにより、フリーハンド線122を引いているときに指示位置が検出されなくなってしまった場合でも、観戦者が意図する形状にできるだけ似せた形状を形成することができる。
【0077】
図15は観戦者が第2のコントローラのBボタンをオンしているときにカメラ位置が移動したときの状態を説明する図である。すなわちカメラ位置が移動して、カメラ位置と注視点とを結ぶ直線である視線が151〜156へ順次移動した場合の仮想描画面の移動とそれによって描画されるフリーハンド線を示す図である。この実施形態では、仮想描画面は視線に対して中点で直交する平面として設定されるため、視線が151〜156へ移動した場合、仮想描画面は161〜166へ移動する。このとき、第2のコントローラが、Bボタン72bがオンされた状態でディスプレイ2bの1点に向けられていた(指示位置が変化しない)場合、順次新たに設定される仮想描画面161〜166上の第2のコントローラの指示位置に対応する位置に、フリーハンド線(各仮想描画面上では点)171〜176が描画される。ゲーム画像においては、各仮想描画面に描画された点が連結して表示されるため、線状のフリーハンド線170として表示される。このように、フリーハンド線は、第2のコントローラが実際に動かされていなくても、第2のコントローラの指示位置とカメラの視線との相対的な移動によって描画される。
【0078】
図18は、図15に示したように、第2のコントローラのBボタン72bがオンされた状態で且つ第2のコントローラ7の指示位置が一定の状態でカメラ位置(視線)を移動させた場合に描画されるフリーハンド線の例を示す図である。メインキャラクタ200が移動すると、それに追従してカメラ位置も移動する。第2のコントローラ7の指示位置は一定のまま、このカメラ位置の移動中に描画操作(Bボタンのオン)がなされると、その刻々形成される仮想描画面に連続的に線(点)が描かれる。この図では、メインキャラクタ200が右手前方向に走ってくることにより、カメラ位置が右手前方向に移動しており、第2のカーソル2Pが、画面の同じ位置に止まっていても、このカメラ位置の移動により左奥から右手前にフリーハンド線122が描画されている。
【0079】
≪動作の説明≫
図19は、ゲーム装置3(CPU30)の動作を示すフローチャートである。このフローチャートは、サブコントローラ(第2のコントローラ)の動作検出処理を示している。この処理は所定時間ごとに繰り返し実行される。
まず、コントローラから送信されてきた座標データに基づき第2のコントローラ7の指示方向(指示位置)を検出する(S11)、S12では、この指示方向がディスプレイ2bの画面内であるか否かを判定する。第2のコントローラ7の指示方向がディスプレイ2bの画面内であれば、S13以下の処理を実行し、指示方向がディスプレイ2bの画面から外れていた場合にはS16に進む。S13では、コントローラによって指し示されているディスプレイ2b上の位置に手指形のアイコン121を表示する(透視投影された二次元画像に合成する)。そして、S14では、受信したキーデータに基づき、Aボタン72aがオンされたか否かを判定する。Aボタン72aがオンされた場合には(S14でYES)、アイコンを指が曲がった形状のもの121'に変更し、同心円状の マーク123を表示(透視投影された二次元画像に合成)する(S15)。Aボタン72aがオンされていない場合には(S14でNO)、そのままS16に進む。
【0080】
S16では、コントローラから送信されてきたキーデータに基づき、Bボタン72bがオンされているかを判定する。Bボタン72bがオンされている場合には(S16でYES)、そのとき設定されている仮想描画面にフリーハンド線を描画する処理を実行する(S17)。Bボタン72bがオンされていない場合には(S16でNO)、そのまま動作を終了する。
【0081】
なお、この実施形態では単一のゲーム装置3に接続可能な第2のコントローラ7を用いてフリーハンド線122をゲーム空間上に配置させているが、特にこれに限定されるものではなく、複数のゲーム装置で構成されるゲームシステムに本発明を適用してもよい。例えば、図20に示すように、ネットワーク310にサーバ301、複数のゲーム装置350が接続されたゲームシステム300がある。ゲーム装置350は、上述のゲーム装置3と同様にコントローラが無線接続され、ゲーム画面を表示するディスプレイを備えている。このゲームシステムでは、ゲーム装置350で上述の宝探し系のアクションアドベンチャゲームを行うことができる。また、ゲームをプレイしていないゲーム装置350のディスイプレイに、ゲームをプレイしているゲーム装置350のゲーム画像を表示させて他のプレイヤーのゲーム状況を観戦することができる。観戦者のゲーム装置350は、サーバ301を経由してゲームをプレイしているゲーム装置350からゲーム情報を受信することで、自己のディスプレイにゲーム画像を表示する。また、観戦者のゲーム装置350では、上述のようにコントローラを操作してプレイヤー側のゲーム空間内にフリーハンド線を配置することができる。このフリーハンド線のデータをサーバ301を経由してゲームをプレイしているゲーム装置350に送信する。ゲームをプレイしているゲーム装置350では、フリーハンド線のデータを受信してゲーム空間内にフリーハンド線を配置する。これによって、観戦者がゲームをしているプレイヤーにアドバイスやヒント等を行うことができる。
【0082】
また、サーバを介さずに通信ケーブルや無線通信によって接続されたゲーム装置にも本発明を適用可能である。
【図面の簡単な説明】
【0083】
【図1】この発明が適用されるゲームシステムを説明するための外観図
【図2】図1に示したゲーム装置の機能ブロック図
【図3】図1に示したコントローラの外観構成を示す斜視図
【図4】前記コントローラの構成を示すブロック図
【図5】ゲーム空間のオブジェクトがスクリーンに透視投影される態様を説明する図
【図6】ゲーム空間のオブジェクトおよび仮想描画面のフリーハンド線がスクリーンに透視投影される態様を説明する図
【図7】オブジェクトおよびフリーハンド線のディスプレイへの表示例を示す図
【図8】第1、第2のコントローラのカーソルおよびフリーハンド線を説明する図
【図9】第1、第2のコントローラのカーソルおよびフリーハンド線を説明する図
【図10】ディスプレイの表示範囲とコントローラの指示位置の検出範囲との関係を示す図
【図11】各カメラ位置のときのゲーム画像の視野と仮想描画面を示す図
【図12】フリーハンド線の描画範囲(仮想描画面)の範囲を示す図
【図13】描画されたフリーハンド線の表示範囲を示す図
【図14】コントローラの指示位置(交点位置)が検出範囲を外れた場合に描画されるフリーハンド線について説明する図
【図15】カメラ位置(視線)が移動することによって描画されるフリーハンド線について説明する図
【図16】ゲーム画面の一例を示す図
【図17】ゲーム画面の一例を示す図
【図18】ゲーム画面の一例を示す図
【図19】ゲーム装置3のサブコントローラの操作検出動作を示すフローチャート
【図20】複数のゲーム装置をネットワーク接続したゲームシステムの例を示す図
【技術分野】
【0001】
この発明は、プレイヤーが操作するコントローラに加えて、観戦者が操作するコントローラによって表示を制御するためのプログラム等に関する。
【背景技術】
【0002】
一般的に、ビデオゲーム装置は、複数のプレイヤーで競い合ってゲームをすることができるように複数のコントローラが接続可能になっている。しかし、複数のプレイヤーでプレイできないゲームもあり、また、複数のプレイヤーでプレイできるゲームであっても1人でプレイされる場合もある。このような場合、2人目以後の者はプレイヤーとしてゲームに参加することができず、2台目以後のコントローラは機能しない。
【0003】
そこで、ゲームに参加しない観戦者が2台目のコントローラを操作して画面のカーソルを動かすことができるようにし、プレイヤーに対してアドバイスを与えることができるようにしたものが提案されている。
【0004】
また、従来、複数のユーザのそれぞれの端末装置の表示画面に表示された同一の文書について、端末装置の電話機能で対話を行いつつユーザ間で効率的に情報交換等を行うべく、表示画面に画像表示されている各ユーザに割り当てられたポインタ(カーソル)を利用することができるシステムがある(例えば、特許文献1参照)。具体的には、電話回線で接続されて対話中の各端末装置の表示画面に、同一の文書と、自己のカーソル及び相手ユーザのカーソルとを表示させる。ユーザは、自己の端末装置のトラックボールを用いて自己のカーソルを移動させて、表示画面に表示された内容の一部を指し示しつつ、指し示した内容について相手ユーザと対話(情報交換等)する。表示されているカーソルの画像は、表示すべき文書の画像に合成することで表示される。また、各カーソルは、どのユーザのものか識別できるように形状や色を変えて表示されている。
【0005】
【特許文献1】特開平07−36809号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし,上記従来のゲームでは、観戦者はカーソルを表示できるのみであるため、そのアドバイスがプレイヤーに与えるインパクトが少なく、プレイヤーによって無視される確率が高いうえ、観戦者がゲームに関与している感覚が少なくつまらないという問題点があった。
【0007】
また上記課題を解決するために、2台目以後のコントローラに、カーソル以外の図形を描画する機能を付与すると、その図形が画面に表示されたままになり、画面の表示が煩雑になるという問題点があった。また、上記従来のゲームでは、三次元空間を所定のカメラ位置から透視投影して得られる画像に対してカーソル画像を合成することによって、カーソルを画面上に表示していたことから、これと同様の方法によって、カーソル以外の図形(カーソルの移動軌跡等)を画面上に表示する方法が考えられる。しかしながら、この方法によると、カメラ位置の変化に伴って画面に表示される三次元空間のゲーム画像は変化するが、上記カーソルの移動軌跡等の画像自体は合成されるだけなので、画面上の同じ位置に同じサイズで描画され続けてしまい、観客ユーザがカーソルの移動軌跡等を用いて指し示したかった領域とは異なる領域を指し示してしまうという問題点があった。例えば、三次元空間における所定のカメラ位置での家屋が含まれるゲーム画像が表示されている状態において、カーソルで家屋の周辺を囲んで軌跡の表示を行った後、カメラをズームアウトさせると家屋はカメラとの距離が遠くなるからゲーム画面に対して小さく表示されることになるが、軌跡はゲーム画面に対して同じ位置で同じ大きさのまま表示されてしまう。
【0008】
そこで、この発明は、観戦者が2台目以後のコントローラを用いて、プレイヤーに的確且つインパクトのあるアドバイスを送ることができるプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
請求項1の発明は、コンピュータを、オブジェクトおよびキャラクタが存在する三次元の仮想空間を形成し、メインコントローラの操作に応じて前記オブジェクトまたはキャラクタの状態を制御する仮想空間形成手段、前記メインコントローラとは別の操作者によって操作されるサブコントローラの操作に応じて、前記仮想空間の内部に所定の付加図形を描画する付加図形描画手段、前記メインコントローラの操作に応じて、前記仮想空間および前記付加図形を投影した二次元画像を描画する位置であるカメラ位置を決定するカメラ位置制御手段、前記カメラ位置に投影された前記仮想空間および前記付加図形の二次元画像である投影画像を描画してビデオ出力する投影画像描画手段、として機能させるプログラムである。
【0010】
請求項2の発明は、請求項1の発明において、前記付加図形描画手段は、描画した付加図形を描画されたのち所定時間が経過したときに消去することを特徴とする。
【0011】
請求項3の発明は、請求項1,2の発明において、前記カメラ位置制御手段は、前記カメラ位置に加えて、前記仮想空間内の1点を前記投影画像描画手段が描画する投影画像の中心に表示する位置である注視点として設定する手段であり、前記付加図形描画手段は、前記カメラ位置と前記注視点との間に仮想の描画面を設定し、この描画面上に前記付加図形を描画する手段であることを特徴とする。
【0012】
請求項4の発明は、請求項3の発明において、前記付加図形描画手段は、前記カメラ位置と前記注視点とを結ぶ線分の内分点に前記描画面を設定する手段であることを特徴とする。
【0013】
請求項5の発明は、請求項3,4の発明において、前記付加図形描画手段は、前記ビデオ出力された投影画像を表示する画面の方向に対して前記サブコントローラが指し示す位置である指示位置を検出する手段を含み、前記付加図形描画手段は、前記サブコントローラの指示位置に対応する前記描画面の位置に図形を表示する手段であることを特徴とする。
【0014】
請求項6の発明は、請求項5の発明において、前記付加図形描画手段は、前記描画面の範囲を、前記投影画像描画手段が描画する投影画像の範囲を越える範囲に設定し、前記サブコントローラの指示位置が前記画面に表示されている投影画像の範囲を外れた場合でも、その指示位置に対応する前記描画面上の位置に前記付加図形を描画する手段であることを特徴とする。
【0015】
請求項7の発明は、請求項1〜6の発明において、前記付加図形描画手段は、複数のサブコントローラの操作に基づき、各々独立した前記付加図形を描画することを特徴とする。
【0016】
請求項8の発明は、請求項1乃至請求項7のいずれかに記載のプログラムを記憶した記憶媒体である。
【0017】
請求項9の発明は、請求項1乃至請求項7のいずれかに記載のプログラムを実行するコンピュータである。
【発明の効果】
【0018】
この発明によれば、サブコントローラを用いて三次元の仮想空間内に付加図形を配置(生成)することができ、この付加図形が三次元の仮想空間における他のオブジェクトとともにゲーム画像として表示されるため、ゲームを進行させるためのメインコントローラ以外のコントローラを用いてプレイヤーに的確且つインパクトのあるアドバイスを送ることができる図形表示が可能になる。
【0019】
また、この発明によれば、付加図形は、所定時間が経過すると消去されるため、画面上にゴミとして残ることがなく、画面表示が煩雑にならない。
【発明を実施するための最良の形態】
【0020】
≪ゲームシステムの説明≫
図面を参照して、本発明が適用されるゲームシステム1について説明する。
図1は、当該ゲームシステム1を説明するための外観図である。以下、据置型ゲーム装置を一例にして、本発明のゲームシステム1について説明する。
【0021】
図1において、当該ゲームシステム1は、スピーカ2aおよびディスプレイ2bを備えた家庭用テレビジョン受像機等のモニタ装置2に、接続コードを介して接続される据置型ゲーム装置(以下、単にゲーム装置と記載する)3および当該ゲーム装置3に操作情報を与えるコントローラ7によって構成される。ゲーム装置3には、交換可能な記憶媒体の一例である光ディスク4がセットされるとともに、ゲームのセーブデータ等を不揮発的に記憶する着脱自在のメモリカード5が必要に応じて装着される。ゲーム装置3には、ゲームの主電源である電源ON/OFFスイッチ、光ディスク4の着脱を行うイジェクトスイッチが設けられている。
【0022】
コントローラ7は、遊技者によって操作され、その装置内容を示す操作信号をゲーム装置3に対して送信する装置である。ゲーム装置3は、コントローラ7から送信されてくる操作信号に応じてゲームを開始・終了させ、ゲームを進行させる等の制御を行う。コントローラ7とゲーム装置3との通信は、無線で行われる。通信方式としては、たとえばBluetooth(ブルートゥース)(登録商標)の方式が用いられる。この通信のための通信ユニットとしては、コントローラ7は通信部75(図4参照)を備え、ゲーム装置3は受信ユニット36a(図2参照)を備えている。なお、1台のゲーム装置3に対して1台〜4台のコントローラ7を無線接続することが可能である。すなわち、ゲーム装置3は、4台までの異なるコントローラ7から送られてくる操作信号をそれぞれ識別して受信する機能を備えている。
【0023】
なお、モニタ装置2の左右上面には、コントローラ7に対してモニタ装置2の位置を知らせるための発光部8L,Rが取り付けられている。発光部8L,Rは、それぞれ赤外線LEDを内蔵しており、ゲーム装置3の動作中は赤外線で発光する。
【0024】
次に、図2のブロック図を参照して、ゲーム装置3の機能的構成について説明する。
図2において、ゲーム装置3は、各種プログラムを実行する例えばリスク (RISC)CPU(セントラルプロセッシングユニット)30を備える。CPU30は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ33等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU30には、メモリコントローラ31を介して、GPU(Graphics Processing Unit)32、メインメモリ33、DSP(Digital Signal Processor)34、およびARAM(Audio RAM)35が接続される。また、メモリコン トローラ31には、所定のバスを介して、コントローラI/F(インターフェース)36、ビデオI/F37、外部メモリI/F38、オーディオI/F39、およびディスクI/F41が接続され、それぞれ受信ユニット36a、モニタ装置2、外部メモリカード5、スピーカ2a、およびディスクドライブ40が接続されている。
【0025】
GPU32は、CPU30の命令に基づいて画像処理を行うものであり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU32は、図示しない画像処理専用のメモリやメインメモリ33の一部の記憶領域を用いて三次元の仮想空間(ゲーム空間)の各コマの画像 (公知の透視投影法による二次元画像)を生成し、この画像にカーソル等の画像を合成する等して生成したゲーム画像をメモリコントローラ31およびビデオI/F37を介してモニタ装置2(ディスプレイ2b)に出力する。
【0026】
メインメモリ33は、CPU30で使用される記憶領域であって、光ディスク4から読み出されたゲームプログラムや各種データ等を適宜記憶する。
【0027】
DSP34は、ゲームプログラム実行時にCPU30において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM35が接続される。ARAM35は、DSP34が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP34は、ARAM35に記憶されたサウンドデータを読み出し、メモリコントローラ31およびオーディオI/F39を介してモニタ装置2に備えるスピーカ2aに出力させる。
【0028】
メモリコントローラ31は、データ転送を統括的に制御するものであり、上述した各種I/Fが接続される。受信ユニット36aは、コントローラI/F36を介してメモリコントローラ31に接続される。上述したように受信ユニット36aは、コントローラ7からの送信データを受信し、コントローラI/F36およびメモリコントローラ31を介して当該送信データをCPU30へ出力する。ビデオI/F37には、モニタ装置2が接続される。外部メモリI/F38には、外部メモリカード5が接続され、その外部メモリカード5に設けられたバックアップメモリ等とアクセス可能となる。
【0029】
オーディオI/F39にはモニタ装置2に内蔵されるスピーカ2aが接続され、DSP34がARAM35から読み出したサウンドデータやディスクドライブ40から直接出力されるサウンドデータをスピーカ2aから出力可能に接続される。ディスクI/F41には、ディスクドライブ40が接続される。ディスクドライブ40は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置3のバスやオーディオI/F39に出力する。
【0030】
次に、図3を参照して、コントローラ7について説明する。
コントローラ7は、例えばプラスチック成型によって形成されたハウジング71を有している。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【0031】
ハウジング71上面の中央前面側に、十字キー72cが設けられる。この十字キー72cは、十字型の4方向プッシュスイッチであり、矢印で示す4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。遊技者によって十字キー72cのいずれかの方向の操作部が押下されると、その方向を示す操作信号が、コントローラ7からゲーム装置3に送信される。遊技者が十字キー72cを操作することにより、例えば、ゲーム空間に登場するキャラクタの移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【0032】
ハウジング71上面の十字キー72cより後側には、多数のボタンスイッチが設けられており、各ボタンがオンされると、対応する操作信号がコントローラ7からゲーム装置3へ送信される。これらのボタンスイッチのうち、最も前方(十字キー72c寄り)に設けられているものが、Aボタン72aである。
【0033】
一方、ハウジング71下面には、凹部が形成されている。ハウジング71下面の凹部は、遊技者がハウジング71を把持したとき、この遊技者の人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、ボタンスイッチ72bが設けられる。このボタンスイッチ72bは、Bボタンとして機能する操作部である。
【0034】
これらAボタン72a、Bボタン72bは、ゲームプログラムにおいて、遊技者がゲームに対する主要な操作を行うボタンスイッチとして設定される。
【0035】
なお、ハウジング71上面の十字キー72aより前面側に設けられているボタンスイッチ72hは、遠隔からゲーム装置3本体の電源をオン/オフする電源スイッチである。
【0036】
また、ハウジング71前面には、コントローラ7前方の画像を撮影するための撮像素子743(図4参照)が設けられている。撮像素子743は、撮像情報演算部74(図4参照)の一部を構成している。撮像素子743は、コントローラ7がモニタ装置2に向けて支持されているとき、モニタ装置2の上面に設けられた発光部8L,Rを撮影する。撮像情報演算部74は、撮像素子743における発光部8L,Rの撮影位置によってコントローラ7の向きを検出する。
【0037】
次に、図4のブロック図を参照して、コントローラ7の内部構成について説明する。
【0038】
図4において、コントローラ7は、上述した操作部72および撮像情報演算部74の他に、その内部に通信部75、加速度センサ701およびバイブレータ704を備えている。
【0039】
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コアユニット70の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分、すなわち発光部8L,Rからの光を検出し、それらの位置座標を示す座標データを通信部75へ出力する。
【0040】
加速度センサ701は、コントローラ7の上下方向、左右方向および前後方向の3軸でそれぞれ加速度を検知する加速度センサである。なお、加速度センサ701は、必要な操作信号の種類によっては、上下方向、左右方向の2軸でそれぞれ加速度を検出する加速度センサが用いられてもかまわない。加速度センサ701が検知した加速度を示すデータは、通信部75へ出力される。なお、加速度センサ701は、典型的には静電容量式の加速度センサが用いられるが、他の方式の加速度センサやジャイロセンサを用いてもかまわない。
【0041】
通信部75は、マイクロコンピュータ(Micro Computer:マ イコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。
【0042】
操作部72からの操作信号(キーデータ)、加速度センサ701からの加速度信号(加速度データ)、および撮像情報演算部74からの座標データは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、加速度データ、座標データ)を受信ユニット36aへ送信する送信データとして一時的にメモリ752に格納する。
【0043】
ここで、通信部75から受信ユニット36aへの無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥースで構成される通信部75の送信間隔は5msである。マイコン751は、受信ユニット36aへの送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ754から放射する。
【0044】
バイブレータ704は、例えば振動モータ又はソレノイド等が考えられる。バイブレータ704が作動することによってコアユニット70に振動が発生するので、それを把持している遊技者の手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。
【0045】
≪ゲームプログラムの説明≫
上記のような構成のゲーム装置3にセットされる光ディスク4には、以下に説明するような宝探し系のアクションアドベンチャーゲームのプログラムが記憶されている。宝探し系のアクションアドベンチャーゲームは、主人公であるメインキャラクタがゲーム空間(三次元の仮想空間)内に配置されたアイテムを上手く活用して謎を解き、宝や物語の進行に必要なアイテムを入手することによって場面が進行してゆくゲームである。メインキャラクタは、プレイヤーの第1のコントローラ7の操作により、ゲーム空間内で活動する。
【0046】
上述したように、上記ゲームシステム1には、コントローラ7を4台まで無線接続することができる。そのうちの第1のコントローラ7が、上記プレイヤーによって操作されるコントローラ(メインコントローラ)であり、この第1のコントローラの操作内容に応じてゲームの進行が制御される。一方、第2〜第4のコントローラ7(以下、第2のコントローラ7と総称する)は、プレイヤー以外の観戦者または応援者(以下、観戦者と呼ぶ)によって操作されるコントローラ(サブコントローラ)である。このゲームにおいて、サブコントローラにはゲーム空間内のキャラクタ等を制御する機能が割り当てられていないが、ゲーム画像が表示されているディスプレイ2b(ゲーム画面)上に指形のカーソル(図8参照)やフリーハンド線(図8参照)を表示させる機能が割り当てられている。したがって、観戦者は、ゲームの進行に直接関与することはできないが、第2のコントローラ7を用いてディスプレイ2b(ゲーム画面)上にカーソル121やフリーハンド線122を表示させてプレイヤーにアイテムの隠し場所を教える等のサポートをすることができる。
なお、このフリーハンド線が本発明の付加図形に対応する。
【0047】
ゲームプログラムは、仮想的な三次元のゲーム空間を形成し、このゲーム空間を所定の視点から透視投影した二次元画像から生成したゲーム画像を外部に(ディスプレイ2bに)出力する処理をゲーム装置3に実行させる。具体的には、視点(カメラ位置)と注視点との間にディスプレイ2bと同じサイズの仮想的なスクリーンを配置し、キャラクタやオブジェクトが配置されているゲーム空間を視点から見た映像をこのスクリーン上に透視投影して描画した二次元映像にカーソル等の画像(図8参照)を合成した画像をゲーム画像とする。
【0048】
図5は、上に述べたスクリーン116への透視投影の例を示す図である。この図では、ゲーム空間に配置された仮想カメラのカメラ位置V(110)を焦点としてスクリーンS(116)へオブジェクト(キャラクタ)Oを透視投影している。これにより、オブジェクトOは、スクリーンSにオブジェクトO′として透視投影される。
【0049】
ゲーム空間のカメラ位置は、メインキャラクタとゲーム空間の主要な部分がゲーム画像に収まるように、ゲームの進行に応じて自動的に決定される。すなわち、プレイヤーによる第1のコントローラの操作に基づくメインキャラクタの活動に応じてカメラ位置が制御される。
【0050】
なお、カメラ位置の制御は、カメラの左右・上下への移動、カメラの向きの変化(パン)、カメラの前後への移動(ズームイン/ズームアウト)を含む。また、カメラの(レンズ)の向きを決定する注視点は、ゲームの各場面におけるゲーム画像が最適のアングルとなるように、場面ごとに予めゲームプログラム中に設定・記憶されている。
【0051】
上記のように、プレイヤーが第1のコントローラ7を用いてメインキャラクタを活動させることにより、この活動に応じてカメラ位置が変更されるが、プレイヤーが第1のコントローラ7を用いたより直接的な操作でカメラ位置を変更することもできる。たとえば、図16〜図17に示すゲーム画面の右上に表示されているカメラボタンを第1のコントローラ7でクリックすることにより、カメラ位置をズームイン/ズームアウトすることができる。この操作は第1のコントローラ7のみで可能である。
【0052】
図8、図9は、ディスプレイ2b上の第1、第2のコントローラによって指示される位置(指示位置)に表示されるカーソル、および、第2のコントローラの操作によって描画されるフリーハンド線を説明する図である。
【0053】
図8(A)は、ディスプレイ2bの第1のコントローラ7の指示位置に表示されるカーソル120と第2のコントローラ7の指示位置に表示されるカーソル121を示す図である。第1のコントローラ7の指示位置には、同図に示すように星形のカーソル120が表示され、第2のコントローラ7の指示位置には、同図に示すように手指形のカーソル121が表示される。カーソル120は第1のコントローラ7の向きに応じて移動し、カーソル121は第2のコントローラ7の向きに応じて移動する。これにより、プレイヤーも観戦者も自分が操作しているコントローラの向きを、混同することなく画面上で知ることができる。
【0054】
CPU31は、星形のカーソル120が位置している方向に正面を向くようにゲーム空間内のメインキャラクタ200(図16,17参照)の動作を制御し、また第1のコントローラ7の所定のボタンをオンすることでカーソル120が位置している方向にメインキャラクタを移動させる制御を行う。
【0055】
観戦者が、第2のコントローラ7のBボタン72bを押しながら、指示位置を移動させると(コントローラの向きを変えると)、その指示位置が移動した軌跡をトレースするフリーハンド線122がディスプレイ2bに表示される。この機能により、プレイヤーに対して特定の場所や方向を指示することができる。
【0056】
また、第2のコントローラ7の指示位置に表示されるカーソル(第2のカーソル)は、同図(A),(C)に示すように指を1本伸ばした状態の図形であるが、第2のコントローラ7のAボタン72aがオンされると、カーソル121は、同図(Cの右図)に示すように、伸ばした指を途中まで曲げた形状のカーソル121′に変化し、その指の先端を中心とした複数の同心円からなる水紋状のマーク123が表示される。また、このとき同時に所定のサウンドエフェクトも音声出力される。これにより、観戦者は第2のコントローラを用いて「ここ」という場所の指示を端的に行うことができる。
マーク123は、第2のコントローラのAボタンがオンされたときワンショットで表示される。
【0057】
なお、上述したようにゲーム装置3には4台のコントローラ7を接続することができるため、観戦者は第2〜第4のコントローラ7を使用することができる。第2〜第4のコントローラ7が同時に使用されてフリーハンド線122が表示されると、たとえば、図9(B)に示すようになる。観戦者のカーソル (第2〜第4のカーソル)には、対応するコントローラ7を識別する番号(2P,3P,4P)が表示され、各コントローラ7で描画されるフリーハンド線122はそれぞれ別の色で描画され(同図では線種で区別している)、どのコントローラ7で描画されたものかが識別可能にされている。
【0058】
上記表示物のうち、星形のカーソル120、手指形のカーソル121およびマーク123は、オンスクリーンに表示される。すなわち、図8に示すように、カーソル120,121およびマーク123の画像を、透視投影された二次元画像に合成することでディスプレイ2bに表示される。一方、フリーハンド線122は、図6に示すように、ゲーム空間内に仮想的に設定された仮想描画面112上に配置される。例えば、図6に示すスクリーンSに投影された二次元画像とカーソル121を合成すると図7のようなゲーム画像が生成される。
【0059】
フリーハンド線122は、配置(生成)されたのち、一定時間が経過したものから順次消去されていく。つまり、フリーハンド線122は軌跡の点の集合であるので、図9(A)示すようにゲーム空間に配置された後から一定時間経過した点から順次(線分の末尾から順に)消去されていく。
【0060】
図10は、ディスプレイ2bの画面を含む仮想的な平面Nを示す図である。CPU31は、コントローラ7から受信した、発光部8L,Rが発する光の位置の情報(座標データ)から、コントローラ7の撮像素子743の中心点から法線方向に向かう光軸が、ディスプレイ2bの画面等を含む仮想的な平面Nと交差する交点の位置(以下、「交点位置」という。)を算出する。この交点位置が指示位置となる。なお、算出される交点位置は、若干の誤差を含んでおり、撮像素子743の光軸と平面Nとの正確な交点とは異なるが問題はなく、厳密な正確性は必要とされない。この算出された交点位置がディスプレイ2bの画面内となるときは、ディスプレイ2bの画面上の当該位置にカーソル120、121およびマーク123を表示し、この算出された交点位置がディスプレイ2bの画面外となる場合は表示しない。
【0061】
図10は、ディスプレイ2bの画面の中心を(0,0)とし、ディスプレイ2bの右方向をX軸の正方向、下方向をY軸の正方向として定義している。また、ディスプレイ2bの画面の右端をX=Xa、左端をX=−Xa、下端をY=Ya、上端をY=−Yaと定義している。図10においては、−Xa≦X≦Xa、−Ya≦Y≦Yaの範囲である太線の内側がディスプレイ2bの画面内に該当する。交点位置はこの座標系における座標(以下、「交点座標」という。)として算出される。
【0062】
上のようにして求められた平面N上の交点座標に基づき、カーソル120,121およびマーク123について、スクリーンS(116)に投影されて生成された二次元画像に合成すべき位置を決定する。具体的には、算出された交点座標(X,Y)が−Xa≦X≦Xa、−Ya≦Y≦Yaの範囲に位置するとき、すなわち、交点座標がディスプレイ2bの画面内に位置するときは、カーソル120,121およびマーク123を表示する(二次元画像に合成する)。つまり、スクリーンSに透視投影されて生成された二次元画像は、ディスプレイ2bの画面のサイズと同等であるので、画面内であれば交点座標に対応する位置の二次元画像の領域にカーソル120,121およびマーク123の画像を合成できる。
【0063】
また、平面N上の交点座標に基づき、仮想描画面112(図6参照)上に配置すべきフリーハンド線122の位置を決定する。すなわち、交点座標が検出されたとき、それに対応する仮想描画面112の位置にフリーハンド線122を配置する。交点座標が検出されないとき(平面Nの領域外が指示されている)は、フリーハンド線122の配置は行わない。これにより、平面N上の交点座標として検出された第2のコントローラ7の軌跡と同じ形状のフリーハンド線122が仮想描画面112上に描画される。
【0064】
また、平面Nの領域で検出された第2のコントローラの交点座標に基づいて仮想描画面112にフリーハンド線122が配置されるため、カーソル121がディスプレイ2bの画面に表示されない場合であっても、指示位置を検出できる範囲(平面Nの領域)であればゲーム空間上にフリーハンド線122を配置することができる。このように、カーソル121をスクリーンS(116)に透視投影された二次元画像に合成する処理とフリーハンド線122をゲーム空間内の仮想描画面112に配置する処理は別々の処理であるが、共通の指示位置を用いているので図7に示すようにディスプレイ2bでの表示がずれることがない。
【0065】
なお、手指形カーソル121およびマーク123を、フリーハンド線122と同様にオブジェクトとしてゲーム空間内の仮想描画面112上に配置する構成にしてもよい。
また、上述のようにカーソル120,121およびマーク123は、指示位置に応じたディスプレイ2bの画面に表示されるように合成されるので、カメラ位置が変わった場合でも、指示位置が同じであればディスプレイ2bの画面の同じ位置に表示される。
【0066】
以下、図6、図11〜図18を参照してフリーハンド線122が描画される仮想描画面について説明する。
図6,11は、カメラ位置とスクリーンと仮想描画面との関係を示す図である。これらの図に示すように、この実施形態では、カメラ位置110と注視点103とを結ぶ直線(線分)である視線115の中点に視線115に直交する面112を仮想描画面としている。上記フリーハンド線122は、そのとき設定されているこの仮想描画面上における第2のコントローラ7の指示位置に対応する位置に配置(生成)される。すなわち、図11に示すように、カメラ位置が110Aの位置にあり注視点が103のとき、カメラの視野は111Aに示す範囲であり、仮想描画面は112Aに設定される。仮想描画面112Aはカメラの視野の範囲で区切られることなく、カメラの視野を越えて設定される。この実施形態の仮想描画面112は上述したように第2のコントローラ7の指示位置の検出範囲(平面N)に対応するように設定されている。なお、仮想描画面112の範囲は、視野を越える範囲に設定することに限定されず、第2のコントローラ7の指示位置を検出できる範囲内で任意に設定可能である。また、カメラ位置が110Bの位置にあり注視点が103のとき、カメラの視野は111Bに示す範囲であり、仮想描画面は112Bに設定される。さらに、カメラ位置が110Cの位置にあり注視点が103のとき、カメラの視野は111Cに示す範囲であり、仮想描画面は112Cに設定される。なお、仮想描画面112を設定する位置は、視線115の中点に限定されない。たとえば、視線115のm:nの内分点等であってもよい。また、カメラ位置110と注視点103とを結ぶ線分に直交していなくてもよい。
【0067】
また、フリーハンド線122は、断面形状が十字のポリゴンで形成されるオブジェクトであり、カーソル121(第2のコントローラ7の指示位置)の移動の軌跡の各点で断面形状が十字のオブジェクトが配置された集合が線分となる。断面形状を十字とすることによって、平面形状に比べて、どのカメラ位置からフリーハンド線122を見ても視認しやすくすることができる。また、断面形状を円等にするよりも処理負荷を軽減することができる。
【0068】
なお、上述のようにフリーハンド線122は、ゲーム空間上に配置されるオブジェクトであるので、ゲーム空間内に存在するメインキャラクタ200等の移動するオブジェクトと重なる(接触する)場合が考えられるが、衝突するような当たり判定等の制御はせず、メインキャラクタ200等のオブジェクトはフリーハンド線122に影響を受けずに通過するように制御する。
【0069】
このように、仮想描画面112は、カメラ位置110が変更されたとき(注視点103が変更されたとき(パン)を含む)、この変更に同期して新たに設定され、設定された位置で第2のコントローラ7の操作に応じてフリーハンド線122が配置される。また、フリーハンド線122は、カメラ位置110が移動しても所定時間が経過するまでゲーム空間のその位置に存在し続けるので、図16,図17に例示するように、カメラ位置が移動した場合には、他のオブジェクトと同様、移動先のカメラ位置に応じたサイズ及び形状で表示される。
【0070】
図16,図17は、ゲーム画像の例を示す図である。図16は、図11の カメラ位置110Aに示すような、ゲーム進行時の通常のゲーム画像である。図17は、図11のカメラ位置110Bに示すような、ズームアウトした状態のゲーム画像である。図16では、通常のゲーム画像が表示された状態で、第2のコントローラ7(カーソル121)により、フリーハンド線122が描かれている。画面(ディスプレイ2b)の右上にはカメラの絵が付されたボタンアイコンが表示されている。プレイヤー(第1のコントローラ7)によって、このボタンアイコンがオンされると、画面の表示が図17に示すようなズームアウトしたゲーム画像になる。このとき、描画されているフリーハンド線122もゲーム空間とともにズームアウトし、小さく表示される。なお、図17のズームアウトした状態の画面では、右上のボタンアイコンは「もどる」ボタンに変更されており、プレイヤーによってこのボタンアイコンがオンされると、画面の表示は再び図16に示すような通常のゲーム画像にもどる。
【0071】
なお、上記「カメラ」、「もどる」のボタンアイコンは、第1のコントローラでのみ操作することができ、第2〜第4のコントローラ7では操作することができない。
【0072】
また、フリーハンド線122は、カメラの視野111に含まれていてディスプレイ2bに表示されていた状態からカメラ位置110が移動してカメラの視野111から外れた場合にはスクリーンSに投影されず、ゲーム画像の範囲から外れてディスプレイ2bに表示されなくなる。
【0073】
図12、図13は、フリーハンド線122の配置可能範囲について説明する図である。図12の点線領域で示すように、仮想描画面112Aはそのときのカメラ位置の視野111A(スクリーンS(ディスプレイ2bの画面)に投影される領域)を越えて形成される。また、上述したように仮想描画面112と第2のコントローラ7の指示位置の検出範囲(平面N)とが対応している。そのため、第2のコントローラ7の指示位置がそのカメラ位置110Aからの視野111A、すなわち、モニタ装置2のディスプレイ2bの画面外(ゲーム画像の範囲外)の場合であっても、指示位置に対応する位置の仮想描画面112Aの領域にフリーハンド線122を配置できる。そのときその越えた範囲のフリーハンド線122hは、図13(A)に示すようにディスプレイ2bに表示されないが、カメラ位置がたとえばズームアウトしてカメラ位置が110Bの位置に移動し、フリーハンド線122hの範囲が、カメラ位置110Bでの視野111Bに入った場合には図13(B)に示すようにフリーハンド線122全体がディスプレイ2b上に表示される。
【0074】
本実施形態では、第2のコントローラ7の指示位置の検出範囲(平面Nの領域)に仮想描画平面112の領域が対応していて、指示位置が検出範囲外(指示位置が検出されない状態)となったときは、配置箇所が不明となるのでフリーハンド線122の配置を行わない。そのため、本実施形態では、ボタン72bをオン状態にしてフリーハンド線122を引いている途中で指示位置が検出されなくなって、その後に再び指示位置が検出された場合、フリーハンド線122は図14(A)に示すような途切れた形状となるが、図14(B)に示すような補間処理を行ってもよい。
【0075】
例えば、第2のコントローラ7のBボタン72bがオンされ、指示位置に対応する仮想描画平面112上にフリーハンド線122を配置している状態のときに判定フラグをオンにする。この状態で指示位置の検出がされなくなって再び指示位置の検出がされたときに、Bボタン72bがオンされていて且つフラグがオンであった場合には、最後に配置されたフリーハンド線122の位置とこれから配置するフリーハンド線122の位置とを、補間線250で結ぶ。この直線は、フリーハンド線122と同じオブジェクトである。なお、判定フラグは、オン状態からBボタン72bがオフされたときにオフされる。
【0076】
これにより、フリーハンド線122を引いているときに指示位置が検出されなくなってしまった場合でも、観戦者が意図する形状にできるだけ似せた形状を形成することができる。
【0077】
図15は観戦者が第2のコントローラのBボタンをオンしているときにカメラ位置が移動したときの状態を説明する図である。すなわちカメラ位置が移動して、カメラ位置と注視点とを結ぶ直線である視線が151〜156へ順次移動した場合の仮想描画面の移動とそれによって描画されるフリーハンド線を示す図である。この実施形態では、仮想描画面は視線に対して中点で直交する平面として設定されるため、視線が151〜156へ移動した場合、仮想描画面は161〜166へ移動する。このとき、第2のコントローラが、Bボタン72bがオンされた状態でディスプレイ2bの1点に向けられていた(指示位置が変化しない)場合、順次新たに設定される仮想描画面161〜166上の第2のコントローラの指示位置に対応する位置に、フリーハンド線(各仮想描画面上では点)171〜176が描画される。ゲーム画像においては、各仮想描画面に描画された点が連結して表示されるため、線状のフリーハンド線170として表示される。このように、フリーハンド線は、第2のコントローラが実際に動かされていなくても、第2のコントローラの指示位置とカメラの視線との相対的な移動によって描画される。
【0078】
図18は、図15に示したように、第2のコントローラのBボタン72bがオンされた状態で且つ第2のコントローラ7の指示位置が一定の状態でカメラ位置(視線)を移動させた場合に描画されるフリーハンド線の例を示す図である。メインキャラクタ200が移動すると、それに追従してカメラ位置も移動する。第2のコントローラ7の指示位置は一定のまま、このカメラ位置の移動中に描画操作(Bボタンのオン)がなされると、その刻々形成される仮想描画面に連続的に線(点)が描かれる。この図では、メインキャラクタ200が右手前方向に走ってくることにより、カメラ位置が右手前方向に移動しており、第2のカーソル2Pが、画面の同じ位置に止まっていても、このカメラ位置の移動により左奥から右手前にフリーハンド線122が描画されている。
【0079】
≪動作の説明≫
図19は、ゲーム装置3(CPU30)の動作を示すフローチャートである。このフローチャートは、サブコントローラ(第2のコントローラ)の動作検出処理を示している。この処理は所定時間ごとに繰り返し実行される。
まず、コントローラから送信されてきた座標データに基づき第2のコントローラ7の指示方向(指示位置)を検出する(S11)、S12では、この指示方向がディスプレイ2bの画面内であるか否かを判定する。第2のコントローラ7の指示方向がディスプレイ2bの画面内であれば、S13以下の処理を実行し、指示方向がディスプレイ2bの画面から外れていた場合にはS16に進む。S13では、コントローラによって指し示されているディスプレイ2b上の位置に手指形のアイコン121を表示する(透視投影された二次元画像に合成する)。そして、S14では、受信したキーデータに基づき、Aボタン72aがオンされたか否かを判定する。Aボタン72aがオンされた場合には(S14でYES)、アイコンを指が曲がった形状のもの121'に変更し、同心円状の マーク123を表示(透視投影された二次元画像に合成)する(S15)。Aボタン72aがオンされていない場合には(S14でNO)、そのままS16に進む。
【0080】
S16では、コントローラから送信されてきたキーデータに基づき、Bボタン72bがオンされているかを判定する。Bボタン72bがオンされている場合には(S16でYES)、そのとき設定されている仮想描画面にフリーハンド線を描画する処理を実行する(S17)。Bボタン72bがオンされていない場合には(S16でNO)、そのまま動作を終了する。
【0081】
なお、この実施形態では単一のゲーム装置3に接続可能な第2のコントローラ7を用いてフリーハンド線122をゲーム空間上に配置させているが、特にこれに限定されるものではなく、複数のゲーム装置で構成されるゲームシステムに本発明を適用してもよい。例えば、図20に示すように、ネットワーク310にサーバ301、複数のゲーム装置350が接続されたゲームシステム300がある。ゲーム装置350は、上述のゲーム装置3と同様にコントローラが無線接続され、ゲーム画面を表示するディスプレイを備えている。このゲームシステムでは、ゲーム装置350で上述の宝探し系のアクションアドベンチャゲームを行うことができる。また、ゲームをプレイしていないゲーム装置350のディスイプレイに、ゲームをプレイしているゲーム装置350のゲーム画像を表示させて他のプレイヤーのゲーム状況を観戦することができる。観戦者のゲーム装置350は、サーバ301を経由してゲームをプレイしているゲーム装置350からゲーム情報を受信することで、自己のディスプレイにゲーム画像を表示する。また、観戦者のゲーム装置350では、上述のようにコントローラを操作してプレイヤー側のゲーム空間内にフリーハンド線を配置することができる。このフリーハンド線のデータをサーバ301を経由してゲームをプレイしているゲーム装置350に送信する。ゲームをプレイしているゲーム装置350では、フリーハンド線のデータを受信してゲーム空間内にフリーハンド線を配置する。これによって、観戦者がゲームをしているプレイヤーにアドバイスやヒント等を行うことができる。
【0082】
また、サーバを介さずに通信ケーブルや無線通信によって接続されたゲーム装置にも本発明を適用可能である。
【図面の簡単な説明】
【0083】
【図1】この発明が適用されるゲームシステムを説明するための外観図
【図2】図1に示したゲーム装置の機能ブロック図
【図3】図1に示したコントローラの外観構成を示す斜視図
【図4】前記コントローラの構成を示すブロック図
【図5】ゲーム空間のオブジェクトがスクリーンに透視投影される態様を説明する図
【図6】ゲーム空間のオブジェクトおよび仮想描画面のフリーハンド線がスクリーンに透視投影される態様を説明する図
【図7】オブジェクトおよびフリーハンド線のディスプレイへの表示例を示す図
【図8】第1、第2のコントローラのカーソルおよびフリーハンド線を説明する図
【図9】第1、第2のコントローラのカーソルおよびフリーハンド線を説明する図
【図10】ディスプレイの表示範囲とコントローラの指示位置の検出範囲との関係を示す図
【図11】各カメラ位置のときのゲーム画像の視野と仮想描画面を示す図
【図12】フリーハンド線の描画範囲(仮想描画面)の範囲を示す図
【図13】描画されたフリーハンド線の表示範囲を示す図
【図14】コントローラの指示位置(交点位置)が検出範囲を外れた場合に描画されるフリーハンド線について説明する図
【図15】カメラ位置(視線)が移動することによって描画されるフリーハンド線について説明する図
【図16】ゲーム画面の一例を示す図
【図17】ゲーム画面の一例を示す図
【図18】ゲーム画面の一例を示す図
【図19】ゲーム装置3のサブコントローラの操作検出動作を示すフローチャート
【図20】複数のゲーム装置をネットワーク接続したゲームシステムの例を示す図
【特許請求の範囲】
【請求項1】
コンピュータを、
オブジェクトおよびキャラクタが存在する三次元の仮想空間を形成し、メインコントローラの操作に応じて前記オブジェクトまたはキャラクタの状態を制御する仮想空間形成手段、
前記メインコントローラとは別の操作者によって操作されるサブコントローラの操作に応じて、前記仮想空間の内部に所定の付加図形を描画する付加図形描画手段、
前記メインコントローラの操作に応じて、前記仮想空間および前記付加図形を投影した二次元画像を描画する位置であるカメラ位置を決定するカメラ位置制御手段、
前記カメラ位置に投影された前記仮想空間および前記付加図形の二次元画像である投影画像を描画してビデオ出力する投影画像描画手段、
として機能させるプログラム。
【請求項2】
前記付加図形描画手段は、描画した付加図形を描画されたのち所定時間が経過したときに消去する請求項1に記載のプログラム。
【請求項3】
前記カメラ位置制御手段は、前記カメラ位置に加えて、前記仮想空間内の1点を前記投影画像描画手段が描画する投影画像の中心に表示する位置である注視点として設定する手段であり、
前記付加図形描画手段は、前記カメラ位置と前記注視点との間に仮想の描画面を設定し、この描画面上に前記付加図形を描画する手段である
請求項1または請求項2に記載のプログラム。
【請求項4】
前記付加図形描画手段は、前記カメラ位置と前記注視点とを結ぶ線分の内分点に前記描画面を設定する手段である請求項3に記載のプログラム。
【請求項5】
前記付加図形描画手段は、前記ビデオ出力された投影画像を表示する画面の方向に対して前記サブコントローラが指し示す位置である指示位置を検出する手段を含み、
前記付加図形描画手段は、前記サブコントローラの指示位置に対応する前記描画面の位置に図形を表示する手段である請求項3または請求項4に記載のプログラム。
【請求項6】
前記付加図形描画手段は、前記描画面の範囲を、前記投影画像描画手段が描画する投影画像の範囲を越える範囲に設定し、前記サブコントローラの指示位置が前記画面に表示されている投影画像の範囲を外れた場合でも、その指示位置に対応する前記描画面上の位置に前記付加図形を描画する手段である請求項5に記載のプログラム。
【請求項7】
前記付加図形描画手段は、複数のサブコントローラの操作に基づき、各々独立した前記付加図形を描画する請求項1乃至請求項6のいずれかに記載のプログラム。
【請求項8】
請求項1乃至請求項7のいずれかに記載のプログラムを記憶した記憶媒体。
【請求項9】
請求項1乃至請求項7のいずれかに記載のプログラムを実行するコンピュータ。
【請求項1】
コンピュータを、
オブジェクトおよびキャラクタが存在する三次元の仮想空間を形成し、メインコントローラの操作に応じて前記オブジェクトまたはキャラクタの状態を制御する仮想空間形成手段、
前記メインコントローラとは別の操作者によって操作されるサブコントローラの操作に応じて、前記仮想空間の内部に所定の付加図形を描画する付加図形描画手段、
前記メインコントローラの操作に応じて、前記仮想空間および前記付加図形を投影した二次元画像を描画する位置であるカメラ位置を決定するカメラ位置制御手段、
前記カメラ位置に投影された前記仮想空間および前記付加図形の二次元画像である投影画像を描画してビデオ出力する投影画像描画手段、
として機能させるプログラム。
【請求項2】
前記付加図形描画手段は、描画した付加図形を描画されたのち所定時間が経過したときに消去する請求項1に記載のプログラム。
【請求項3】
前記カメラ位置制御手段は、前記カメラ位置に加えて、前記仮想空間内の1点を前記投影画像描画手段が描画する投影画像の中心に表示する位置である注視点として設定する手段であり、
前記付加図形描画手段は、前記カメラ位置と前記注視点との間に仮想の描画面を設定し、この描画面上に前記付加図形を描画する手段である
請求項1または請求項2に記載のプログラム。
【請求項4】
前記付加図形描画手段は、前記カメラ位置と前記注視点とを結ぶ線分の内分点に前記描画面を設定する手段である請求項3に記載のプログラム。
【請求項5】
前記付加図形描画手段は、前記ビデオ出力された投影画像を表示する画面の方向に対して前記サブコントローラが指し示す位置である指示位置を検出する手段を含み、
前記付加図形描画手段は、前記サブコントローラの指示位置に対応する前記描画面の位置に図形を表示する手段である請求項3または請求項4に記載のプログラム。
【請求項6】
前記付加図形描画手段は、前記描画面の範囲を、前記投影画像描画手段が描画する投影画像の範囲を越える範囲に設定し、前記サブコントローラの指示位置が前記画面に表示されている投影画像の範囲を外れた場合でも、その指示位置に対応する前記描画面上の位置に前記付加図形を描画する手段である請求項5に記載のプログラム。
【請求項7】
前記付加図形描画手段は、複数のサブコントローラの操作に基づき、各々独立した前記付加図形を描画する請求項1乃至請求項6のいずれかに記載のプログラム。
【請求項8】
請求項1乃至請求項7のいずれかに記載のプログラムを記憶した記憶媒体。
【請求項9】
請求項1乃至請求項7のいずれかに記載のプログラムを実行するコンピュータ。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2009−64364(P2009−64364A)
【公開日】平成21年3月26日(2009.3.26)
【国際特許分類】
【出願番号】特願2007−233444(P2007−233444)
【出願日】平成19年9月7日(2007.9.7)
【出願人】(000129149)株式会社カプコン (192)
【Fターム(参考)】
【公開日】平成21年3月26日(2009.3.26)
【国際特許分類】
【出願日】平成19年9月7日(2007.9.7)
【出願人】(000129149)株式会社カプコン (192)
【Fターム(参考)】
[ Back to top ]