(57)【要約】【課題】オブジェクトに対してアクションをする際に自然なカメラ制御を実現する。【解決手段】複数のオブジェクトの中から遊戯者によって選択されたオブジェクトにカメラの注視点を設定し、カメラを客観視点から主観視点へと移動させるとともに、当該オブジェクトをズームする。これにより、カメラは遊戯者の選択したオブジェクトに対して確実に注視することができるとともに、オブジェクトをズームすることで当該オブジェクトに対するアクションが容易になる。【選択図】    図４
2008234681.tif 000002
【特許請求の範囲】
【請求項１】
複数の動作部位のそれぞれの動きによってオブジェクト全体の動きを表示する動画表示装置において、
前記複数の動作部位のモーションデータを予め記憶する記憶手段と、
前記動作部位のうち動作過程において予め接触が予想される箇所の接触を判定する判定手段と、
前記記憶手段から各動作部位毎にモーションデータを読み出して、これに基づいて当該動作部位のモーションを画面に表示するとともに前記判定手段によって衝突が検出された動作部位のモーションデータの読み取りを終了する表示手段と、
を備えた、動画表示装置。
【請求項２】
指を表すポリゴンの動きによって手全体の動きを表示する動画表示装置において、
ポリゴンのモーションデータを予め記憶する記憶手段と、
ポリゴンの動作過程において予め接触が予想される箇所の接触を判定する判定手段と、
前記記憶手段から各指毎にモーションデータを読み出して、これに基づいて当該指のモーションを画面に表示するとともに前記判定手段によって衝突が検出された指のモーションデータの読み取りを終了する表示手段と、
を備えた、動画表示装置。
【請求項３】
複数の動作部位のそれぞれの動きによってオブジェクト全体の動きを表示する動画表示方法において、
前記複数の動作部位のモーションデータを予め記憶しておき、各動作部位毎にモーションデータを読み出して、これに基づいて当該動作部位のモーションを画面に表示するとともに、動作部位のうち動作過程において予め接触が予想される箇所の接触を判定することで衝突が検出された動作部位のモーションデータの読み取りを終了する、動画表示方法。
【請求項４】
指を表すポリゴンの動きによって手全体の動きを表示する動画表示方法において、
ポリゴンのモーションデータを予め記憶しておき、各指毎にモーションデータを読み出
して、これに基づいて当該指のモーションを画面に表示するとともに、ポリゴンの動作過
程において予め接触が予想される箇所の接触を判定することで衝突が検出された指のモー
ションデータの読み取りを終了する、動画表示方法。
【請求項５】
請求項３又は請求項４に記載の方法をコンピュータに実行させるためのプログラムが記録された、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ・グラフィックスにおける画像処理技術に係わり、特に、仮想空間内におけるカメラワーク技術、動画表示技術、クリッピング処理技術、及び光源処理技術に関する。
【背景技術】
【０００２】
コンピュータ・グラフィックスを利用したビデオゲーム装置においては、複数のポリゴンから構成されるオブジェクト（仮想物体）を仮想３次元空間内に配置し、コントールパッドからの入力信号に対応してプレイヤキャラクタを操作することが可能である。画像処理技術の進歩により、このようなゲーム装置において、遊戯者はコントールパッドのキー入力を組み合わせることで、プレイヤキャラクタに、例えば、物（オブジェクト）を掴む、見る、押す、触る、引く等の具体的動作（アクション）をさせることが可能となった。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来のビデオゲーム装置においては、仮想３次元空間内に設定される仮想視点（カメラ）は、通常、プレイヤキャラクタを第三者の視点（客観視点）から見た映像を表示しており、プレイヤキャラクタがアクションを起こすときにカメラをプレイヤキャラクタ自身の視点（主観視点或いは一人称視点ともいう）に切り替え、注視点を当該オブジェクトに固定する配慮はなされていなかった。これを人間における動作に置き換えると、アクションの対象となる物に注視せずにアクションをするため、人間の動作に対応したアクション操作ができないという不都合が生じていた。
【０００４】
また、例えば、プレイヤキャラクタがオブジェクトを掴む等のアクションをする場合、従来のビデオゲーム装置においては、オブジェクトを掴む動作をモーションデータとして予め用意しておき、これに基づいて画像表示していたため、プレイヤキャラクタとオブジェクトの位置、角度、オブジェクトの形状等に適した掴み動作ができず、指がオブジェクトに食い込む等の不自然な事態が生じていた。
【０００５】
また、従来のビデオゲーム装置では、オブジェクトを画面に表示する際に、視点座標系に配置される当該オブジェクトの奥行き方向の座標値であるＺ値が予め定められた所定値（例えば、描画処理限界点）を超えたときに当該オブジェクトの描画処理を終了する（クリッピング処理）ように構成されているが、このような構成の場合、カメラとオブジェクトとの距離が一定の距離を超えると突然オブジェクトが消えるため、遊戯者に不快感を与えていた。
【０００６】
また、ポリゴンデータを用いたコンピュータ・グラフィックスを用いた光源処理（例えば、スポットライト処理）を行う場合、光源からの光線ベクトルとオブジェクトを構成する各ポリゴンの頂点の法線ベクトルとの角度から各頂点の輝度を計算し、これらの計算結果はレンダリング処理部へ供給され、さらに補完法を用いて各頂点を結ぶ稜線上の各ピクセルの輝度を求めることでポリゴン全体の輝度計算を行い、所望のテクスチャマッピング処理がなされて画像表示される。
【０００７】
しかし、このような構成では各フレーム毎（例えば１／６０秒毎）に光源処理をする必要があり、光源が複数ある場合には演算処理量が膨大になってしまうという問題があった。また、従来では上記の構成の他に、オブジェクトの表面にスポットライトが当たった状態のテクスチャを予め用意しておき、スポットライトが点灯したときに上記のテクスチャをオブジェクトに貼り付けることで光源処理を省略する手法もあるが、このような構成ではそれぞれのオブジェクトと光源の種類、位置、角度等が設定し直される毎に別途テクスチャを用意しなければならないため、テクスチャデータ量が膨大になるという問題がある。
【０００８】
そこで、本発明はオブジェクトに対してアクションをする際に自然なカメラ制御を可能とするビデオゲーム装置及び画像表示方法を提供することを第１の課題とする。
【０００９】
また、本発明はオブジェクトの動画表示を適切に行う動画表示装置及び動画表示方法を提供することを第２の課題とする。
【００１０】
また、本発明はスクリーン座標系におけるオブジェクトのＺ値に基づいてクリッピング処理をする際に、徐々にオブジェクトをフェードアウトする画像表示装置及び画像表示方法を提供することを第３の課題とする。
【００１１】
また、本発明はテクスチャデータのデータ量を増加することなく光源処理の演算量を低減することのできる画像表示装置及び画像表示方法を提供することを第４の課題とする。
【課題を解決するための手段】
【００１２】
上記第１の課題を解決するべく、本発明では複数のオブジェクトの中から遊戯者によって選択されたオブジェクトにカメラの注視点を設定し、当該オブジェクトをズームする。これにより、カメラは遊戯者の選択したオブジェクトに対して確実に注視することができるとともに、オブジェクトをズームすることで当該オブジェクトに対するアクションが容易になる。
【００１３】
好ましくは、オブジェクトに注視点を設定する際に、カメラを客観視点から主観視点へと移動させる。これにより、遊戯者はあたかも実際にオブジェクトに対して接しているかのような映像を見ることができる。
【００１４】
上記の構成において、カメラが注視しているオブジェクトがズームされるに従い、当該オブジェクトを画面から次第にフェードアウトするように当該オブジェクトを表示するとともに、他のオブジェクトが画面から次第にフェードインするように当該他のオブジェクトを当該オブジェクトに重ねて表示するように構成してもよい。このような構成により、例えば、粗い画像をズームすると、より精細な画像へと変化させることができる。
【００１５】
また、注視されたオブジェクトに対応して予め定められたアクションをプレイヤキャラクタが実行するように構成してもよい。
【００１６】
上記の第２の課題を解決するべく、本発明では複数の動作部位のそれぞれの動きによってオブジェクト全体の動きを表示する際に、複数の動作部位のモーションデータを予め記憶しておき、各動作部位毎にモーションデータを読み出して、これに基づいて各動作部位のモーションを画面に表示するとともに、動作部位のうち動作過程において予め接触が予想される箇所の接触を判定することで衝突が検出された動作部位のモーションデータの読み取りを終了する。これにより、各動作部位毎に衝突判定が行われ、モーションデータが終了するか或いは動作部位が衝突することで動作部位の動作が終了するため、上記の従来技術のように、動作部位が他のオブジェクトに食い込む等の不都合を解消することができる。
【００１７】
上記第３の課題を解決するべく、本発明ではスクリーン座標系におけるオブジェクトとカメラとの距離が描画限界点付近であるときに当該オブジェクトを半透明処理して画面に表示する。これにより、描画限界点付近でいきなりオブジェクトが消える不自然さを解消することができる。
【００１８】
上記第４の課題を解決するべく、本発明では光源に対して不動であるオブジェクトの輝度又は色を演算し、この演算結果をメモリに記憶しておき、当該オブジェクトを画面に表示する際に前記メモリに記憶された演算結果を参照してオブジェクトの画像表示を行う。これにより、画像表示装置のオブジェクトの光源処理における演算負荷を低減することができる。
【００１９】
また、本発明によれば、上記手順を実行させるプログラムが記録されたコンピュータ読み取り可能な記録媒体を提供することができる。ここで、記録媒体とは、何らかの物理的手段により画像処理プログラム等が記録されているものであって、コンピュータ、特に、専用プロセッサ（例えば、ジオメトリプロセッサ、レンダリングプロセッサ）等に所望の機能を実現させることができるものをいう。従がって、何らかの手段でコンピュータにダウンロードし、所望の機能を実現させるものであればよい。例えば、ＲＯＭ、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＰＤディスク、ＭＤディスク、ＭＯディスク等の情報記録媒体を含む。有線又は無線の通信回線（公衆回線、データ専用線、インターネット、衛星回線等）を介してホストコンピュータからデータの転送を受ける場合も含むものとする。
【発明の効果】
【００２０】
本発明によれば、カメラは遊戯者の選択したオブジェクトに対して確実に注視することができるとともに、オブジェクトをズームすることで当該オブジェクトに対するアクションが容易になる。また、オブジェクトを注視する際に、カメラは客観視点から主観視点へと切り替わるため、遊戯者はあたかも実際にオブジェクトに対して接しているかのような疑似体験をすることができる。
【００２１】
また、本発明によれば、各動作部位毎に衝突判定が行われ、モーションデータが終了するか或いは動作部位が衝突することで動作部位の動作が終了するため、上記の従来技術のように、動作部位が他のオブジェクトに食い込む等の不都合を解消することができる。
【００２２】
また、本発明によれば、描画限界点付近でいきなりオブジェクトが消える不自然さを解消することができる。
【００２３】
また、本発明によれば、光源処理における演算負荷を大幅に低減することができる。
【発明を実施するための最良の形態】
【００２４】
（ビデオゲーム装置の構成）
図１にビデオゲーム装置１０の回路構成図を示す。同図において、ゲームを開始すべく電源が投入されると、ブートプログラムローダは、ＲＯＭ１８に記憶されているブートプログラムをＣＰＵ１１にロードし、ＣＰＵ１１はブートプログラムを実行する。ＣＰＵ１１は、このブートプログラムに従って、ＣＤ−ＲＯＭ２７に記憶されているＯＳの全部または必要な部分をシステムメモリ１３にロードし、ＯＳを実行する。
【００２５】
ＣＰＵ１１はこのＯＳの制御の下、ＣＤ−ＲＯＭ２７等に記憶されているアプリケーションプログラムの全部または必要な部分をＣＤ−ＲＯＭドライブ１９を介してシステムメモリ１３にロードするとともに、必要に応じてＣＤ−ＲＯＭ２７等に記憶されている描画データや画像データをグラフィックメモリ１６にロードする。また同時に、サウンドデータをサウンドメモリ２１にロードする。
【００２６】
ＣＰＵ１１はＯＳの制御の下、コントールパッド２５からの入力信号に基づいてシステムメモリ１３に記憶されたアプリケーションプログラム（ゲームプログラム）を実行する。アプリケーションプログラムの実行に伴うデータは、システムメモリ１３やバックアップメモリ２６に必要の都度書き込まれ参照される。バックアップメモリ２６はゲームの中断等で電源が遮断されてもそれまでの状態を保持するためにデータを記憶する。
【００２７】
ジオメトリプロセッサ１２はＣＰＵ１１から供給されるオブジェクトの座標データを所望の変換マトリクスに基づいて、３次元の視点座標系を仮想視点から見た視点座標及びスクリーン座標系（２次元座標系）に座標変換する。また、オブジェクトの輝度又は色も光源とオブジェクト座標から計算する。
【００２８】
レンダリングプロセッサ１５にはグラフィックスメモリ１６が接続されている。グラフィックスメモリ１６はテクスチャバッファ、フレームバッファ、Ｚバッファから構成されている。テクスチャバッファには各オブジェクト毎のテクスチャデータが格納されている。レンダリングプロセッサ１５はオブジェクトの輝度又は色データ、テクスチャ座標データ、テクスチャ濃度データ、オブジェクトの座標データ等に基づいて、テクスチャバッファから適宜必要なデータを読み込み、テクスチャマッピング処理、表示優先処理、シェーディング処理等を行って、各画素毎のピクセルデータをフレームバッファに書き込む。そして、画像更新期間に同期してフレームバッファからピクセルデータを読み出し、ビデオエンコーダ１７へピクセルデータを転送することでビデオ信号生成処理等を行い、モニタ２５にて画像表示を行う。
【００２９】
サウンドプロセッサ２０はサウンドメモリ２１に記憶されるサウンドデータを読み出して、アプリケーションプログラムの実行によるＣＰＵ１１からの命令やデータに基づき各種音声処理を行う。音声処理として、例えば、エフェクト処理、ミキシング処理等がある。各種音声処理が施されたサウンドデータは、Ｄ／Ａコンバータ２２によってアナログデータに変換され、スピーカ２４に出力される。
【００３０】
バスアービタ（Ｂｕｓ Ａｒｂｉｔｅｒ）１４はデータ伝送路（バス等）を介して接続される各ユニット間同士の制御を行う。例えば、バスアービタ１４はバスを占有すユニットを決定するために、各ユニット間の優先順位を決定したり、占有するユニットのバス占有時間の割当てを行う。
【００３１】
バスアービタ１４には電話回線等を介して他のビデオゲーム装置やコンピュータと接続するための通信装置２３を備えている。
【００３２】
次に、図３のフローチャートを参照してビデオゲーム装置の全体的な動作について説明する。同図において、ビデオ信号の垂直同期信号に相当する周期で割り込み信号がＣＰＵ１１に供給されると、ＣＰＵ１１内のレジスタに割り込みフラグが設定される。割り込みが発生すると（ステップＳ１０１；ＹＥＳ）、ＣＰＵ１１はステップＳ１０２〜ステップＳ１０８の処理を実行する。
【００３３】
例えば、ＮＴＳＣ方式ではＣＰＵ１１は１／６０秒毎にゲーム処理を行う（ステップＳ１０２）。本ゲーム処理ではＣＰＵ１１はコントールパッド２５からの出力信号を監視し、遊戯者による操作入力をゲームプログラムに記述されたアルゴリズムに従って処理し、ゲームを展開する。このゲームにおいては、後述するように、画面内で特定のオブジェクトを選択する（ロックオン）と、自動的にカメラ移動が行われ、場合によっては当該オブジェクトに対応したアクションをするためのフラグがセットされる。
【００３４】
次いで、モニタ２２に表示するための画面を生成するため、ワールド座標系にオブジェクト、背景、キャラクタ等の画像を適宜配置する（ステップＳ１０３）。これらの画像をカメラから見た視点座標系へ座標変換し（ステップＳ１０４）、さらにカメラ位置を原点として、視線の方向をｚ軸の正方向にとった視点座標系にデータを変換し、投影面であるスクリーン座標系へ、それぞれの座標を透視変換する（ステップＳ１０５）。
【００３５】
その後、レンダリングプロセッサ１５は各ポリゴンについてＺソートアルゴリズム等を用いて陰面処理をするとともに（ステップＳ１０６）、各ポリゴンにテクスチャを貼り付ける等のレンダリング処理を行う（ステップＳ１０７）。レンダリング処理がなされた画像データはグラフィックメモリ１６内のフレームバッファに蓄えられた後、ビデオ信号に変換されてモニタ２５に表示される。この後、ステップＳ１０１に戻り、１／６０秒毎にステップＳ１０２〜ステップＳ１０８の処理を繰り返し実行してゲームが進行する。
【００３６】
（ロックオン処理）
次に、図４〜図２６を参照してロックオン処理について説明する。本明細書において、ロックオン処理とは"注目するオブジェクトに注視点を設定（固定）し、当該オブジェクトをズーム（拡大）するようにカメラを制御する処理"として定義する。ロックオン処理の対象となるオブジェクトはゲームプログラムにおいて予め定められているものとする。また、ロックオン処理がなされたオブジェクトには当該オブジェクトに対応したアクションがなされるようにモーションデータが関連付けられて記憶されている。このため、オブジェクトをロックオン処理することで当該オブジェクトに対応したアクションがなされるようにフラグがセットされる（詳細については後述する）。
【００３７】
図５はモニタ２５に映し出される画面２８を示しており、斜線で引いた箇所がロックオン可能エリア３０である。ロックオン可能エリア３０は、ロックオン処理可能なオブジェクトの存在範囲を示しており、スクリーン座標系（ＸＹ座標系）において定義されるオブジェクトのＸ座標及びＹ座標が上記ロックオン可能エリア３０内に位置し、且つ、当該オブジェクトのＺ値（カメラとの距離）が所定の距離（ロックオン可能距離）にあるときに当該オブジェクトに対してロックオン処理が可能である。ロックオン可能エリア３０として、例えば、同図に示すように、縦横方向にそれぞれ１：２：１の比に分割する中央のエリアが好適である。
【００３８】
例えば、図６に示すように、みかん３１〜３３、籠３４及び湯飲み３５が画面２８に表示されている。これらのみかん３１〜３３、籠３４及び湯飲み３５はロックオン処理可能なオブジェクトとする。同図において、みかん３１〜３３及び籠３４はロックオン可能エリア３０内に位置しているため、ロックオン処理が可能である。一方、湯飲み３５はロックオン可能エリア３０外に位置しているため、ロックオン処理は出来ない。
【００３９】
上記ロックオン処理をするために、システムメモリ１３には図２に示すように、ワークメモリデータテーブル及びプログラムデータテーブルがＣＤ−ＲＯＭ２１から読み出される。また、システムメモリ１３の一部はワークエリアとして使用されている。ワークメモリデータテーブルには画面に表示されるオブジェクトのオブジェクト名、オブジェクト座標、オブジェクト角度、ポリゴンデータが登録されている。オブジェクト名とはオブジェクトの名称をいう。オブジェクト座標とは当該オブジェクトのワールド座標系における座標をいい、（Ｘ，Ｙ，Ｚ）で定義される。オブジェクト角度とはワールド座標系に配置されるオブジェクトの向き（角度）をいい、Ｘ軸、Ｙ軸及びＺ軸とのなす角が登録されている。ポリゴンデータとは当該オブジェクトを構成するポリゴンのデータである。
【００４０】
プログラムデータテーブルにはロックオンオブジェクト名、ロックオン座標、ロックオン補正座標、ロックオン可能範囲情報、ロックオン角度及びモーションデータが登録されている。ロックオンオブジェクト名とは、ロックオン処理が可能なオブジェクトの名称をいい、例えば、上述したみかん、籠、湯飲み等が該当する。ロックオン座標とは、ロックオン処理可能なオブジェクトが例えば地図、掛け軸のような平面である場合に、これらはオブジェクトとしてではなくテクスチャとして扱うことができるため、テクスチャマッピングされるポリゴン上の座標を意味する。ロックオン補正座標とは、ロックオン処理可能なオブジェクトが例えば湯飲みである場合に、当該オブジェクトの基準となる面或いは座標からの相対的な座標をいい、当該オブジェクトにアクションをする（例えば掴む）際に参照される。
【００４１】
ロックオン可能範囲情報とはオブジェクトに対してロックオン処理が出来る範囲に関する情報をいい、ロックオン角度とはオブジェクトに対してロックオンしたときに当該オブジェクトに対して所定の角度範囲内にカメラ視線がくるようにカメラを強制的に移動させるための角度をいう。モーションデータとはオブジェクトをロックオンしたときに当該オブジェクトに対してアクションをするためのモーションデータである。ワークエリアではプレイヤキャラクタ位置、カメラ位置、注視点位置などが動的変数によって各フレーム毎に逐次更新される。
【００４２】
次に、図４を参照してロックオン処理の各処理ステップについて説明する。同図において、ビデオ信号の垂直同期信号に相当する周期で割り込み信号がＣＰＵ１１に供給されると、ＣＰＵ１１内のレジスタに割り込みフラグが設定される。割り込みが発生すると（ステップＳ２０１；ＹＥＳ）、ＣＰＵ１１はステップＳ２０２〜ステップＳ２０８の処理を実行する。ＣＰＵ１１はロックオンフラグがセットされているか否かを調べる（ステップＳ２０２）。ワークメモリデータテーブル及びプログラムデータテーブルを参照して、オブジェクトの座標値（Ｘ，Ｙ，Ｚ）がロックオン可能範囲に位置しているときにロックオンフラグがセットされる。
【００４３】
ロックオンフラグがセットされている場合には（ステップＳ２０２；ＹＥＳ）、ロックオン可能である旨を遊戯者に知らせるために画面２８にロックオン可能表示をする（ステップＳ２０３）。ロックオン可能表示は例えば図６に示すように、画面２８の右下に"Ａ"の文字を表示することで行う。このとき遊戯者はコントールパッド２５のＡボタンを押下することでロックオン可能エリア３０内に存在するロックオン可能オブジェクトをロックオンすることができる。
【００４４】
ＣＰＵ１１はコントールパッド２５からの出力信号を監視し、遊戯者がＡボタンを押下することでロックオン可能オブジェクトをロックオンしたか否かが判定される（ステップＳ２０４）。遊戯者の操作によってオブジェクトがロックオンされたときは（ステップＳ２０４；ＹＥＳ）、遊戯者はロックオン可能エリア３０に位置する複数のオブジェクトのうち任意のオブジェクトを選択することができる（ステップＳ２０５）。ロックオン可能エリア３０にロックオン可能オブジェクトが一つのみ存在する場合は当該オブジェクトが自動的に選択される。ロックオン可能オブジェクトの選択は十字キーを使用することで行うことができる。
【００４５】
ロックオン可能オブジェクトの選択が行われると、当該オブジェクトをズームするためにカメラ移動が行われる（ステップＳ２０６）。カメラ移動の詳細について、図７乃至図１２を参照して説明する。図７に示すように、ロックオン可能エリア３０にみかん３２が位置しているとき、遊戯者の操作によってみかん３２がロックオンされたとする。すると、カメラ５０は客観視点から主観視点へと切り替わり、図８に示すようにみかん３２がズームされる。これにより、遊戯者はアクションの対象となるみかん３２を確実に注視することができる。図９及び図１０は垂直方向のカメラ移動の説明図である。図９ではカメラ５０は客観視点として機能し、みかん３２を注視している。図１０ではカメラ５０は主観視点として機能し、みかん３２を注視している。主観視点とはプレイヤキャラクタ４０から見た視点である。同図において、客観視点としてのカメラ５０の視線方向とプレイヤキャラクタの視線方向は垂直方向にθ1の角度差があるが、カメラ移動の際に角度差θ1を０にし、且つ、カメラ５０がプレイヤキャラクタ４０の頭部に位置するようにカメラ移動が行われる。
【００４６】
図１１及び図１２は水平方向のカメラ移動の説明図である。図１１ではカメラ５０は客観視点として機能し、みかん３２を注視している。図１２ではカメラ５０は主観視点として機能し、みかん３２を注視している。同図において、客観視点としてのカメラ５０の視線方向とプレイヤキャラクタの視線方向は水平方向にθ2の角度差があるが、カメラ移動の際に角度差θ2を０にし、且つ、カメラ５０がプレイヤキャラクタ４０の頭部に位置するようにカメラ移動が行われる。
【００４７】
尚、掴みモーションにおいて、カメラ５０を客観視点から主観視点へ移動させるときに、プレイヤキャラクタ４０とカメラ５０との距離（Ｚ値）が所定値よりも小さくなった場合に、プレイヤキャラクタ４０を半透明処理するように構成することが好ましい。このように処理することでカメラ５０からの視界がプレイヤキャラクタ４０によって遮られる不都合を解消することができる。
【００４８】
カメラ移動後、ロックオン処理の対象となるオブジェクトに対応したアクションがなされる（ステップＳ２０７）。本例ではみかん３２に対してロックオン処理をするため、"みかん３２を掴む"というアクション、即ち、後述する"掴みモーション"が選択される。これはシステムメモリ１３内のプログラムデータテーブルを参照することで行われる。遊戯者の操作によってロックオン状態が解除されると（ステップＳ２０８；ＹＥＳ）、ＣＰＵ１１は再びステップＳ２０１に戻り、上述した処理ステップを繰り返し実行する。
【００４９】
（掴みモーション）
次に、図１３乃至図２０を参照してみかん３２を掴むための"掴みモーション"について説明する。ステップＳ２０７におけるアクションの一態様として、"掴みモーション"が選択されると、ＣＰＵ１１はシステムメモリ１３内のワークメモリデータテーブル、プログラムデータテーブル等を参照して、プレイヤキャラクタ４０とオブジェクト（みかん３２）との位置関係、オブジェクトの大きさ、形状等から最適なモーションデータを選択する。このモーションデータは手を模したポリゴン（以下、リアルハンドという）が何らかのオブジェクトを掴む動作を動作パターンとして記憶したデータであり、具体的には、肘から手首までの手を構成する各ポリゴンについての動作パターンがプログラムデータテーブルに記憶されている。
【００５０】
図１３を参照してリアルハンドを構成する各ポリゴンについて説明する。同図において、小指ＰはポリゴンＰ１〜Ｐ３で構成され、ポリゴンＰ１の先端Ｐ０にはオブジェクトとの衝突（コリジョン）を判定するためのコリジョンポイントＰ０が設定されている。くすり指Ｑ、なか指Ｒ、人指し指Ｓ及び親指ＴはそれぞれポリゴンＱ１〜Ｑ３、Ｒ１〜Ｒ３、Ｓ１〜Ｓ３及びＴ１、Ｔ２から構成され、それぞれのポリゴンＱ１、Ｒ１、Ｓ１及びＴ１の先端にはコリジョンポイントＱ０、Ｒ０、Ｓ０及びＴ０が設けられている。これらのコリジョンポイントはオブジェクトを掴んだときに予め接触が予想される点である。また、手のひらはポリゴンＵ、手の甲はポリゴンＶ、腕はポリゴンＷで構成されている。
【００５１】
それぞれの指はオブジェクトの掴み方のパターンに対応して動作パターンが予め定められており、１フレーム毎に各関節が所定角度動くようになっている。また、各指の動作パターンは互いに独立して記憶されており、コリジョン判定もそれぞれの指において独立に判定される。掴みモーションにおいては、それぞれの指についてモーションデータを読み出してこれを画像表示するとともに、画像更新期間毎に割り込みをかけて各指についてコリジョン判定を行っている。
【００５２】
従って、ある指がオブジェクトと接触した場合、当該指についてのモーションデータの読み出しは終了するが、他の指についてのモーションデータの読み出しは依然行われ、当該モーションデータに基づく画像表示が行われる。この結果、オブジェクトと指とのコリジョンコリジョン判定が正確に行われ、如何なる形状のオブジェクトであっても正確かつ確実にオブジェクトを掴むことができる。
【００５３】
掴みモーションにおけるリアルハンドがオブジェクトを掴む動作手順を図２０のフローチャートに従って説明する。ビデオ信号の垂直同期信号に相当する周期で割り込み信号がＣＰＵ１１に供給されると、ＣＰＵ１１内のレジスタに割り込みフラグが設定される。割り込みが発生すると（ステップＳ３０１；ＹＥＳ）、ＣＰＵ１１はステップＳ３０２〜ステップＳ３０７の処理を実行する。
【００５４】
ロックオン可能オブジェクトをロックオンすると、当該オブジェクトに対応したモーションフラグがセットされる。例えば、上述のみかん３２であれば、掴みモーションがセットされる。ＣＰＵ１１はモーションフラグがセットされたことを検知すると（ステップＳ３０２；ＹＥＳ）、モーションデータを読み込み（ステップＳ３０３）、画像表示を行う（ステップＳ３０４）。例えば、図１４に示すように、リアルハンドの各指がみかん３２を掴むように画像表示される。このとき、オブジェクトとしてのみかん３２は多角形平面Ｘ１，Ｘ２，Ｘ３，…，から成るポリゴンで構成される。各指についての画像表示はみかん３２と接触するか、或いはモーションデータが終了するまで行われる。図１５に示すように、親指Ｔ、人指し指Ｓ、なか指Ｒについてモーションデータが終了せずに（ステップＳ３０５；ＮＯ）、みかん３２と接触すると（ステップＳ３０６；ＹＥＳ）、モーションデータの読み取りを終了する（ステップＳ３０７）。一方、図１６に示すように、小指Ｐ、くすり指Ｑのように、みかん３２と接触せずにモーションが終了した場合には（ステップＳ３０５；ＹＥＳ）、モーションデータの読み取りを終了する（ステップＳ３０７）。図１４乃至図１６に図示したリアルハンド及びみかん３２を構成する各ポリゴンについて適当なテクスチャマッピングを施すと、これらの図は図１７乃至図１９に示すように画像表示される。
【００５５】
（フォーカスモーション）
上記の説明においては、みかん３２をロックオンし、掴みモーションによってみかん３２を掴んだが、今度は地図をロックオンし、フォーカスモーションによって地図を拡大する例を説明する。図２１に示すように、ロックオン可能エリア（図示せず）に地図６１があり、遊戯者の操作によって地図６１がロックオンされたとする。同図において、カメラはプレイヤキャラクタ４０の頭上にあり、客観視点の立場から図２１に示す画像を表示している。ロックオンオブジェクトとしての地図６１にはフォーカスモーションが予め関連付けられて記憶されている。従って、地図６１をロックオンすることで、ＣＰＵ１１内のレジスタに自動的にモーションフラグがセットされる。ＣＰＵ１１はフォーカスモーションのフラグがセットされたことを検知すると、カメラ５０を客観視点（図２３）から主観視点（図２４）へと移動させる。
【００５６】
このとき、地図６１はズームされるが、カメラ５０の移動に伴い、粗い画像である地図６１から精細な画像である地図６２に画面が徐々に切り替わる（図２２）。即ち、粗い画像である地図６１の画像データの上に精細な画像である地図６２の画像データを上書きし、両者の透明度を相補的に変化させることで、地図６１が徐々に透明になり、フェードアウトする（溶明）とともに、地図６２が徐々に画面上に浮かびあがってきてフェードインする（溶暗）。この結果、遊戯者が地図６１をロックオンすることで、プレイヤキャラクタが地図６１を覗き込む様子を画面上に表現することができる。
【００５７】
フォーカスモーションの手順について、図２５を参照して説明する。ビデオ信号の垂直同期信号に相当する周期で割り込み信号がＣＰＵ１１に供給されると、ＣＰＵ１１内のレジスタに割り込みフラグが設定される。割り込みが発生すると（ステップＳ４０１；ＹＥＳ）、ＣＰＵ１１はステップＳ４０２〜ステップＳ４１１の各処理を実行する。地図６１をロックオンすると、フォーカスモーションのフラグがセットされる。ＣＰＵ１１は当該フラグがセットされたことを検知すると（ステップＳ４０２；ＹＥＳ）、内蔵のレジスタｎの値をカウントアップする（ステップＳ４０３）。このレジスタｎはフォーカスモーション処理後のフレーム数を計数するものであり、当初ｎは'０'の値にある。
【００５８】
ここで、地図６１から地図６２に変化させるのに要するフレーム数をＦとする。また、地図６１のテクスチャデータをデータＭ１とし、地図６２のテクスチャデータをデータＭ２とする。さらに、地図６１を半透明処理するためにデータＭ１に乗じる透明度係数をａとし、地図６２を半透明処理するためにデータＭ２に乗じる透明度係数をｂとする。このとき、透明度係数は０のときに透明度０％であり、１のときに透明度１００％であるものとする。
【００５９】
ＣＰＵ１１はレジスタｎの値にＦを乗じて透明度係数ａを得る（ステップＳ４０４）。そして、データＭ１を透明度ａで半透明処理をする（ステップＳ４０５）。さらに、透明度係数ａと相補的に変化する透明度係数ｂを求め（ステップＳ４０６）、データＭ２を透明度ｂで半透明処理する（ステップＳ４０７）。そして、これら半透明処理されたデータＭ１及びデータＭ２を合成する（ステップＳ４０８）。図２６に示すように、データＭ１、データＭ２はテクスチャメモリに登録されており、合成データはフレームバッファに書き込まれる。
【００６０】
次いで、カメラ５０を１フレーム分移動させる。カメラ５０の移動方向は図２３、図２４に示すように、客観視点から主観視点へ移行する向きであり、Ｆフレーム分の移動によりカメラ移動が完了する。現在のカメラ位置から見た上記合成データによってレンダリング処理を実行し、画像表示を行う（ステップＳ４１０）。ステップＳ４０４〜ステップＳ４１０の処理をＦ回繰り返すことで、フォーカスモーションが終了する（ステップＳ４１１）。
【００６１】
尚、フォーカスモーションにおいて、カメラ５０を客観視点から主観視点へ移動させるときに、プレイヤキャラクタ４０とカメラ５０との距離（Ｚ値）が所定値よりも小さくなった場合に、プレイヤキャラクタ４０を半透明処理するように構成することが好ましい。このように処理することでカメラ５０からの視界がプレイヤキャラクタ４０によって遮られる不都合を解消することができる。
【００６２】
また、上記の説明では、ステップＳ２０７におけるアクションの例として、掴みモーション、フォーカスモーションについて説明したが、これに限らず、例えば、引き出しを開ける、扉を開ける、ドアをノックする、電話をかける、掛け軸を取る等の動作であってもよい。また、ロックオン処理の対象はオブジェクトに限らず、人物を模したキャラクタであってもよい。例えば、女の子のキャラクタにロックオンすると、その子に話し掛ける等の処理をするように構成してもよい。また、オブジェクト或いはキャラクタが移動している状態でもロックオンできるものとする。
【００６３】
（クリッピング処理）
次に、図２７乃至図２９を参照して本発明のクリッピング処理について説明する。図２７に示すように、ジオメトリプロセッサ１２によって、カメラ位置を原点として、視線の方向をｚ軸の正方向にとった視点座標系にデータを変換し、投影面であるスクリーン座標系へ、それぞれの座標を透視変換したときの描画限界点をＺmaxとし、半透明処理開始点をＺ0とする。
【００６４】
そして、図２８に示すように、オブジェクト乃至キャラクタのＺ値がＺ０以下の場合は透明度α＝０（透明度０％）とし、Ｚmax以上の場合は透明度α＝１（透明度１００％）とする。さらに、Ｚ値がＺ0以上Ｚmax以下の場合は透明度α＝（Ｚ−Ｚ0）／（Ｚmax−Ｚ0）とする。
【００６５】
上記のクリッピング処理について、図２９のフローチャートを参照して説明する。ビデオ信号の垂直同期信号に相当する周期で割り込み信号がＣＰＵ１１に供給されると、ＣＰＵ１１内のレジスタに割り込みフラグが設定される。割り込みが発生すると（ステップＳ５０１；ＹＥＳ）、ＣＰＵ１１はステップＳ５０２〜ステップＳ５０８の各処理を実行する。スクリーン座標系において、オブジェクトのＺ値がＺ０以上であって（ステップＳ５０２；ＹＥＳ）、Ｚmax以下である場合には（ステップＳ５０３；ＹＥＳ）、透明度α＝（Ｚ−Ｚ0）／（Ｚmax−Ｚ0）とし（ステップＳ５０４）、レンダリング処理をして（ステップＳ５０５）、画像表示を行う（ステップＳ５０６）。一方、オブジェクトのＺ値がＺ０未満である場合は（ステップＳ５０２；ＮＯ）、透明度α＝０とし（ステップＳ５０７）、Ｚ値がＺmax以上である場合は（ステップＳ５０３；ＮＯ）、透明度α＝１とする（ステップＳ５０８）。
【００６６】
上記のように処理することで、オブジェクト等が描画限界点付近にきたときでも、いきなりオブジェクト等が消えることはなく、描画限界点付近で徐々に透明処理がなされるため、遊戯者に不快感を与えることがない。
【００６７】
（光源処理）
次に、図１及び図３０を参照して本発明の光源処理について説明する。図１において、ＣＰＵ１１はポリゴンを使用した画像を処理するためのプログラムを実行し、ポリゴンの頂点データをジオメトリプロセッサ１２へ供給する。ジオメトリプロセッサ１２はポリゴンの頂点座標データに基づいて三次元空間へポリゴンを配置したり、三次元空間中のどの領域までを表示するかを決定するビューポートの設定を行う。ポリゴンの各頂点には頂点座標（Ｘ，Ｙ，Ｚ）、頂点カラー（赤、緑、青）、テクスチャ座標（Ｔｘ，Ｔｙ）、頂点透明度及び頂点の法線ベクトルなどの属性が付与されており、ジオメトリプロセッサ１２は頂点の法線ベクトルと光源ベクトルのなす角度に応じて各頂点の輝度（色）を計算し、ビューポートの外にある頂点を除去し（クリッピング処理）、３次元座標から２次元座標（スクリーン座標）への変換を行う。
【００６８】
上記の処理において、ジオメタライザ１２はポリゴンの頂点の輝度（色）を頂点カラーリストとしてシステムメモリ１３に保存する。このように頂点カラーリストを保存しておくことで、プリレンダが有効となる。頂点カラーリストはバスアービタ１４を介してレンダリングプロセッサ１５へ供給される。レンダリングプロセッサ１５はポリゴンの頂点を結ぶ稜線上の各点（ピクセル）についての輝度（色）を頂点の輝度（色）を補完処理することによって求める。また、各稜線上のピクセルの輝度（色）からポリゴンの平面を構成する全てのピクセルの輝度（色）を補完処理によって求める。そして、各ピクセルに対応したテクスチャデータをグラフィックメモリ１６から読み出し、各ピクセルのカラーを計算する。
【００６９】
レンダリングプロセッサ１５は必要に応じてグラフィックメモリ１６内のフレームバッファに既に書き込まれているピクセルカラーと新たに書き込むポリゴンの各ピクセルカラーとをブレンドし、そのブレンドした値をフレームバッファに書き込む。グラフィックメモリ１６内にはデプスバッファが割り当てられており、各ピクセルのＺ座標値が記憶されている。デプスバッファから読み込んだＺ座標値から判断して、最も手前に不透明なポリゴンがくる場合には上記のブレンドを行うことなく、直ちにそのポリゴンのカラーデータをフレームバッファに書き込む。また、最も手前に完全に透明なポリゴンが位置する場合には、手前のポリゴンのカラーデータを書き込むことなく、フレームバッファに既に書き込まれている背後のポリゴンのカラーデータをそのまま保持すればよい。フレームバッファに書き込まれたピクセルデータはビデオエンコーダ１７に供給され、モニタ２５で画像表示される。
【００７０】
図３０を参照して光源処理の各手順について説明する。まず、プリレンダが有効であるか否かが判断される（ステップＳ６０１）。頂点カラーリストは光源処理における最初の１フレームで作成され、システムメモリ１３に保存されるため、プリレンダが有効であれば（ステップＳ６０１；ＹＥＳ）、２フレーム目以降は当該頂点カラーリストを参照することでポリゴンのレンダリングが可能になる。そこで、頂点カラーリストを読み出し（ステップＳ６０２）、当該頂点カラーリストに基づいてレンダリングを行い（ステップＳ６０３）、画像表示を行う（ステップＳ６０４）。一方、光源処理が未処理である等、プリレンダが有効でない場合は（ステップＳ６０１；ＮＯ）、頂点カラーリストを作成し（ステップＳ６０２）、プリレンダを有効にした後（ステップＳ６０６）、頂点カラーリストに基づいてレンダリングを行い（ステップＳ６０３）、画像表示を行う（ステップＳ６０４）。
【００７１】
上記の手順によれば、背景画などのように、光源との位置関係が一定であるものは、視点座標の変化に関係なく光源処理を最初の１フレーム目で行っておくことで、２フレーム目も同様の結果を利用できるため、演算負荷が軽くなるとともに、記憶すべきテクスチャデータ量の増加を防ぐことができる。
【００７２】
尚、上記の説明においては、頂点カラーリストをシステムメモリ１３に保存しておく構成を採用したが、これに限らず、例えば、ポリゴンの頂点の輝度（色）を補完処理することで、ポリゴンの平面を構成する全てのピクセルの輝度（色）を補完処理によって予め求めておき、これをテクスチャバッファ内に登録しておいてもよい。さらには、テクスチャにポリゴンの色をブレンドした時点でこれをテクスチャバッファ内に登録しておいてもよい。これらのピクセルデータはレンダリングする際に必要に応じて読み出され、描画処理に用いられる。
【図面の簡単な説明】
【００７３】
【図１】ビデオゲーム装置の回路構成図である。
【図２】システムメモリ内にロードされる各テーブルのデータ構造の説明図である。
【図３】ビデオゲーム装置の全体的な動作フローチャートである。
【図４】ロックオン処理のフローチャートである。
【図５】ロックオン可能エリアの説明図である。
【図６】ロックオン処理の説明図である。
【図７】カメラ移動の説明図である。
【図８】カメラ移動の説明図である。
【図９】カメラ移動の説明図である。
【図１０】カメラ移動の説明図である。
【図１１】カメラ移動の説明図である。
【図１２】カメラ移動の説明図である。
【図１３】リアルハンドの説明図である。
【図１４】掴みモーションの説明図である。
【図１５】掴みモーションの説明図である。
【図１６】掴みモーションの説明図である。
【図１７】掴みモーションの説明図である。
【図１８】掴みモーションの説明図である。
【図１９】掴みモーションの説明図である。
【図２０】掴みモーションの説明図である。
【図２１】フォーカスモーションの説明図である。
【図２２】フォーカスモーションの説明図である。
【図２３】フォーカスモーションの説明図である。
【図２４】フォーカスモーションの説明図である。
【図２５】フォーカスモーションの説明図である。
【図２６】テクスチャデータの半透明処理の説明図である。
【図２７】クリッピング処理の説明図である。
【図２８】透明度対Ｚ値のグラフである。
【図２９】クリッピング処理の説明図である。
【図３０】光源処理の説明図である。
【符号の説明】
【００７４】
１０…ビデオゲーム装置、１１…ＣＰＵ、１２…ジオメトリプロセッサ、１３…システムメモリ、１４…バスアービタ、１５…レンダリングプロセッサ、１６…グラフィックメモリ、１７…ビデオエンコーダ、１８…ＲＯＭ、１９…ＣＤ−ＲＯＭドライブ、２０…サウンドプロセッサ、２１…サウンドメモリ、２２…Ｄ／Ａコンバータ、３０…ロックオン可能エリア、３２…みかん、４０…プレイヤキャラクタ、５０…カメラ
【図１】
2008234681.tif 000003
【図２】
2008234681.tif 000004
【図３】
2008234681.tif 000005
【図４】
2008234681.tif 000006
【図５】
2008234681.tif 000007
【図６】
2008234681.tif 000008
【図７】
2008234681.tif 000009
【図８】
2008234681.tif 000010
【図９】
2008234681.tif 000011
【図１０】
2008234681.tif 000012
【図１１】
2008234681.tif 000013
【図１２】
2008234681.tif 000014
【図１３】
2008234681.tif 000015
【図１４】
2008234681.tif 000016
【図１５】
2008234681.tif 000017
【図１６】
2008234681.tif 000018
【図１７】
2008234681.tif 000019
【図１８】
2008234681.tif 000020
【図１９】
2008234681.tif 000021
【図２０】
2008234681.tif 000022
【図２１】
2008234681.tif 000023
【図２２】
2008234681.tif 000024
【図２３】
2008234681.tif 000025
【図２４】
2008234681.tif 000026
【図２５】
2008234681.tif 000027
【図２６】
2008234681.tif 000028
【図２７】
2008234681.tif 000029
【図２８】
2008234681.tif 000030
【図２９】
2008234681.tif 000031
【図３０】
2008234681.tif 000032
【手続補正書】
【提出日】平成20年5月20日(2008.5.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の動作部位のそれぞれの動きによってオブジェクトの動きを表示する動画表示装置において、
前記複数の動作部位のモーションデータを予め記憶する記憶手段と、
前記動作部位のうち動作過程において他オブジェクトとの接触が予想される箇所の接触を判定する判定手段と、
前記記憶手段から各動作部位毎にモーションデータを読み出す制御手段と、
前記制御手段によって読み出された前記モーションデータに基づいて前記オブジェクトの動きを画像表示する表示手段と、
を備え、
前記制御手段は、各動作部位毎に、前記モーションデータが終了するか又は前記判定手段によって衝突が検出されるまで前記モーションデータの読み取りを継続する、
動画表示装置。
【請求項２】
前記オブジェクトは、複数のポリゴンを組み合わせて構成されており、
前記モーションデータは、各ポリゴンについての動作パターンを示すデータである、
請求項１に記載の動画表示装置。
【請求項３】
前記オブジェクトは手を模したものであり、前記複数の動作部位のそれぞれは指に対応する、
請求項１又は２に記載の動画表示装置。
【請求項４】
複数の動作部位のそれぞれの動きによってオブジェクトの動きを表示する動画表示方法において、
（ａ）記憶手段が、前記複数の動作部位のモーションデータを予め記憶すること、
（ｂ）制御手段が、各動作部位毎にモーションデータを読み出すこと、
（ｃ）表示手段が、前記制御手段によって読み出された前記モーションデータに基づいて前記オブジェクトの動きを画像表示すること、
（ｄ）判定手段が、前記動作部位のうち動作過程において他オブジェクトとの接触が予想される箇所の接触を判定すること、
を含み、
前記（ｃ）において、前記表示手段は、各動作部位毎に、前記モーションデータが終了するか又は前記判定手段によって衝突が検出されるまで前記モーションデータの読み取りを継続する、
動画表示方法。
【請求項５】
前記オブジェクトは、複数のポリゴンを組み合わせて構成されており、
前記モーションデータは、各ポリゴンについての動作パターンを示すデータである、
請求項４に記載の動画表示方法。
【請求項６】
前記オブジェクトは手を模したものであり、前記複数の動作部位のそれぞれは指に対応する、
請求項４又は５に記載の動画表示方法。
【請求項７】
請求項４乃至６の何れかに記載の方法をコンピュータに実行させるためのプログラムが記録された、コンピュータ読み取り可能な記録媒体。