説明

画像処理装置、処理方法、ならびに、プログラム

【課題】移動体の動きに応じた視覚効果を付与するのに好適な画像処理装置等を提供する。
【解決手段】画像処理装置200は設定部201、移動部202、予測部203、生成部204を備え、以下のように構成する。設定部201は、仮想空間内に配置される視点位置及び視線方向を設定する。移動部202は、仮想空間内で第1のオブジェクトを移動させる。予測部203は、第1のオブジェクトが仮想空間内に配置される第2のオブジェクトと接触する接触位置を予測する。生成部204は、視点位置から視線方向へ仮想空間を見た様子を表わす画像を生成する。また、設定部201は、生成された画像に第1のオブジェクトが描画されるように視点位置及び視線方向を設定し、設定部201は、第1のオブジェクトと接触位置との距離が第1の閾距離より大きい間、視線方向を第1のオブジェクトが移動する方向に設定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動体の動きに応じた視覚効果を付与するのに好適な画像処理装置、処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、対戦型ゲーム等において、ゲーム展開により、画面に表示される仮想空間の様子が異なるゲームが提供されている。例えば、特許文献1では、野球ゲームにおいて、試合展開が終盤か否か及び投手キャラクタの動作の所要時間に応じて、仮想カメラの視点を変更する手法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−237654号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方、上記のようなゲーム展開に応じた視覚効果だけでなく、オブジェクト(移動体)の動きに応じて視覚効果を付与し、興趣性のある技術が求められている。
【0005】
本発明は、上記のような課題を解決するもので、移動体の動きに応じた視覚効果を付与するのに好適な画像処理装置、処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の観点に係る画像処理装置は、設定部と、移動部と、予測部と、生成部を備え、以下のように構成する。
【0007】
設定部は、仮想空間内に配置される視点位置及び視線方向を設定する。
【0008】
ここで、視点位置及び視線方向は、例えば、仮想空間内に配置される仮想カメラの位置及び撮影方向であり、視点位置から視線方向への様子が、モニタ画面に表示される。設定部は、RAM等の記憶媒体に記憶される視点位置及び視線方向の情報を設定する。
【0009】
移動部は、仮想空間内で第1のオブジェクトを移動させる。
【0010】
例えば、サッカーゲームにおいて、プレイヤがコントローラを用いてサッカーボールを蹴る指示を与えたとすると、移動部はサッカーボールをプレイヤの指示に基づいて移動させる。
【0011】
予測部は、第1のオブジェクトが仮想空間内に配置される第2のオブジェクトと接触する接触位置を予測する。
【0012】
例えば、予測部は、移動部によって移動されたボールが、地面、キャラクタ、ゴールポスト等と接触する位置を予測する。
【0013】
生成部は、視点位置から視線方向へ仮想空間を見た様子を表わす画像を生成する。
【0014】
例えば、生成部は、上記の仮想カメラから撮影した仮想空間の画像を生成する。
【0015】
また、設定部は、生成された画像に第1のオブジェクトが描画されるように視点位置及び視線方向を設定する。
【0016】
すなわち、設定部は、モニタ画面内にボールが映るように、視点位置及び視線方向を設定する。
【0017】
さらに、設定部は、第1のオブジェクトと接触位置との距離が第1の閾距離より大きい間、視線方向を第1のオブジェクトが移動する方向に設定する。
【0018】
ここで距離とは、例えば、移動部により移動されるボール(第1のオブジェクト)の現在位置と、当該ボールが地面に接触する位置(接触位置)とのユークリッド距離をいう。ボールは移動して徐々に接触位置に近づくので、時間経過と共にボールと接触位置との距離は縮まる。設定部は、ボールと接触位置との距離が所定距離(例えば、10m)と等しくなるまでの間は、仮想カメラの撮影方向をボールが移動する方向に設定する。これにより、ボールがキャラクタにより蹴られる瞬間から所定距離と等しくなるまでは、ボールが移動する方向と同じ方向を向いた仮想カメラが映す画像がモニタ画面に表示される。
【0019】
本発明によれば、移動体(オブジェクト)の動きに応じた興趣性の高い視覚効果を付与することができる。
【0020】
また、設定部は、第1のオブジェクトと接触位置との距離が第2の閾距離より大きい間、第1のオブジェクトを追跡するように視点位置を設定するようにしてもよい。
【0021】
例えば、設定部は、ボールと接触位置との距離が、第1の閾距離と異なる所定距離(例えば5m)と等しくなるまでの間は、仮想カメラがボールの動きに追従して移動するように、視点位置を設定する。これにより、ボールがキャラクタにより蹴られる瞬間から第1の閾距離と異なる所定距離と等しくなるまでは、ボールが画面に表示されるように撮影しながら、ボールと相似形の移動軌跡を描く仮想カメラが映す画像がモニタ画面に表示される。
【0022】
上記発明は、視線方向を第1のオブジェクトの動きに応じて設定するものであるが、本発明は、視線方向だけでなく視点位置もオブジェクトの動きに応じて設定することができ、仮想カメラがオブジェクトを追跡しているような視覚効果を得ることができる。
【0023】
また、設定部は、第1のオブジェクトと接触位置との距離が第2の閾距離より大きい間、接触位置から第1のオブジェクトへ向かう半直線上に、視点位置と第1のオブジェクトとの距離を、第1のオブジェクトと接触位置との距離に基づいて定めて、視点位置を設定するようにしてもよい。
【0024】
例えば、設定部は、ボールと接触位置との距離が視点位置を設定するために指定した所定距離(例えば5m)と等しくなるまでの間は、ボールと接触位置とを結ぶ半直線上で、ボールから所定の距離だけ離れた位置に仮想カメラの位置を設定する。所定の距離は、ボールと接触位置との距離に基づいて決められる。例えば、接触位置からボールまでの距離が大きいほど、仮想カメラはボールに近い位置に設定される。このように設定すると、ボールが蹴られて移動し始める時は迫力のある画像が表示され、徐々に仮想カメラがボールから離れてゆき、次第にボールと接触位置との関係を全体的に見渡すことができる画像が表示される。
【0025】
本発明によれば、所望の視覚効果を与える視点位置を具体的に求めることができる。
【0026】
また、第1のオブジェクトと接触位置との距離に基づいて定められる距離は一定であるようにしてもよい。
【0027】
例えば、設定部は、ボールと接触位置との距離が視点位置を設定するために指定した所定距離(例えば5m)と等しくなるまでの間は、接触位置からボールまでの距離に関係なく、仮想カメラはボールから常に一定距離(例えば30cm)だけ離れた位置に配置される。これにより、仮想カメラをボールに追従させて移動させることができる。
【0028】
本発明によれば、オブジェクトを追跡するような視覚効果を与える視点位置を具体的に求めることができる。
【0029】
また、設定部は、第1のオブジェクトと接触位置との距離が第2の閾距離より大きい間、生成された画像において第1のオブジェクトが描画される位置及び大きさが一定となるように、視点位置を設定するようにしてもよい。
【0030】
例えば、設定部は、ボールと接触位置との距離が、視点位置を設定するために指定した所定距離(第2の閾距離、例えば5m)と等しくなるまでの間は、ボールがモニタ画面内の同じ位置に、同じ大きさで表示されるように、視点位置を設定する。すなわち、ボールが移動して周囲の景色が変化しても、ボールは移動中も同じように(ボールの回転による変化は除く)表示される。
【0031】
本発明によれば、オブジェクトに仮想カメラが固定されて撮影しているような視覚効果を付与することができる。
【0032】
また、設定部は、第1のオブジェクトと接触位置との距離が第2の閾距離より大きい間、第1のオブジェクトが描く軌跡を遅れて辿るように、視点位置を設定し、第1のオブジェクトから遅れる量は、第1のオブジェクトと接触位置との距離に基づいて定めるようにしてもよい。
【0033】
例えば、設定部は、ボールと接触位置との距離が、視点位置を設定するために指定した所定距離(第2の閾距離、例えば5m)と等しくなるまでの間は、ボールが描く軌跡を、仮想カメラがボールから遅れて辿るように、視点位置を設定する。そして、設定部は、ボールが接触位置に近づくほど、仮想カメラがボールから遅れるように、視点位置を設定する。これにより、ボールに遅れて追従する仮想カメラが映す画像が、モニタに表示される。
【0034】
本発明によれば、オブジェクトを追跡しているような視覚効果を得ることができ、また、所定の条件によりオブジェクトからの遅れ具合を調節して視点位置を設定することができる。
【0035】
また、設定部は、第1のオブジェクトと接触位置との距離が第2の閾距離以下になると、生成された画像において第1のオブジェクトが描画される位置と接触位置が描画される位置とが重ならないように視点位置を設定するようにしてもよい。
【0036】
すなわち、ボールが接触位置に近づき、ボールで接触位置が隠れてしまう場合に、視点位置をずらして、ボールと接触位置が両方見えるようにする。
【0037】
本発明によれば、オブジェクトを追跡中に、オブジェクトと接触位置が重なることがあっても、両者を視認することができる。
【0038】
また、設定部は、第1のオブジェクトと接触位置との距離が第2の閾距離以下になると、視点位置を固定するように視点位置を設定するようにしてもよい。
【0039】
すなわち、設定部は、ボールと接触位置との距離が近くなると、ボールを追跡するように視点位置を設定するのを止め、所定の位置に視点位置を設定する。これにより、ボールが地面に到達する際に、画面が地面とボールだけで占められるのを防ぐことができる。
【0040】
本発明によれば、仮想カメラがボールから遠ざかるような視覚効果が得られ、オブジェクト同士が接触する状況を離れて確認することができる。
【0041】
また、設定部は、第1のオブジェクトと接触位置との距離が第1の閾距離以下になると、視線方向を、視点位置から接触位置へ向かう方向に設定するようにしてもよい。
【0042】
一般にボールの移動速度は、重力などの影響を受けて変化するが、本発明では接触位置に近づくと、ボールの移動速度の方向ではなく、視点位置から接触位置へ向かう方向に、視線方向を設定する。視点位置は、接触位置の近くで固定されるので、接触位置の近くでは、ボールが画面内を移動するように描画されることになる。
【0043】
したがって、本発明によれば、接触位置の近くで視点位置及び視線方向を固定することで第1のオブジェクトの移動の様子をわかりやすく提示することができる。
【0044】
本発明のその他の観点に係る処理方法は、設定工程と、移動工程と、予測工程と、生成工程と、を備え、以下のように構成する。
【0045】
設定工程において、設定部が、仮想空間内に配置される視点位置及び視線方向を設定する。
【0046】
移動工程において、移動部が、仮想空間内で第1のオブジェクトを移動させる。
【0047】
予測工程において、予測部が、第1のオブジェクトが仮想空間内に配置される第2のオブジェクトと接触する接触位置を予測する。
【0048】
生成工程において、生成部が、視点位置から視線方向へ仮想空間を見た様子を表わす画像を生成する。
【0049】
ここで、設定工程において、設定部は、生成された画像に第1のオブジェクトが描画されるように視点位置及び視線方向を設定し、さらに、設定部は、第1のオブジェクトと接触位置との距離が第1の閾距離より大きい間、視線方向を第1のオブジェクトが移動する方向に設定する。
【0050】
本発明のその他の観点に係るプログラムは、コンピュータを上記画像処理装置として機能させ、コンピュータに上記処理方法を実行させるように構成する。
【0051】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【発明の効果】
【0052】
本発明によれば、移動体の動きに応じた視覚効果を付与するのに好適な画像処理装置、処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0053】
【図1】本発明の実施の形態に係る画像処理装置が実現される典型的な情報処理装置の概要構成を示す模式図である。
【図2】ゲーム装置の機能構成を示す説明図である。
【図3】第1のオブジェクトと視点位置及び視線方向との関係を示す図である。
【図4】画像の一例を示す図である。
【図5】図3を真上から見た場合の第1のオブジェクトと視点位置との関係を示す図である。
【図6A】視線方向と第1及び第2の閾距離との関係を示す図である。
【図6B】視点位置と第1及び第2の閾距離との関係を示す図である。
【図6C】視点位置と第1及び第2の閾距離との関係を示す図である。
【図7】視点位置及び視線方向と第1及び第2の閾距離との関係を示す図である。
【図8】視点位置及び視線方向と第1及び第2の閾距離との関係を示す図である。
【図9】視点位置及び視線方向と第1及び第2の閾距離との関係を示す図である。
【図10】視点位置及び視線方向と第1及び第2の閾距離との関係を示す図である。
【図11】本発明のゲーム装置の各部が行う処理を説明するためのフローチャートである。
【図12】本発明のゲーム装置の設定部が行う視点位置・視線方向の設定処理を説明するためのフローチャートである。
【図13】固定された視点位置から見た仮想空間の画像を示す図である。
【図14】視点位置及び視線方向と第1及び第2の閾距離との関係を示す図である。
【図15】視点位置及び視線方向と第1及び第2の閾距離との関係を示す図である。
【図16】第1のオブジェクトが同じ位置及び同じ大きさで描画された画像を示す図である。
【図17】第1のオブジェクトと接触位置が重ならないように視点位置を設定する手法について説明するための図である。
【図18】第1のオブジェクトと接触位置が重ならないように視点位置を設定した場合の画像を示す図である。
【図19】第1のオブジェクトを透明にした場合の画像を示す図である。
【図20】第1のオブジェクトと視点位置との関係を示す図である。
【発明を実施するための形態】
【0054】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0055】
(実施形態)
図1はプログラムを実行することにより、本発明の実施形態に係る画像処理装置の機能を果たす典型的な情報処理装置100の概要構成を示す模式図である。以下、本図を参照して説明する。
【0056】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラユニット105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、を備える。
【0057】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0058】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0059】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0060】
インターフェース104を介して接続されたコントローラユニット105は、プレイヤがゲーム実行の際に行う操作入力を受け付ける。例えば、コントローラ105aを振る操作(手を振る動作)を行うと、その操作情報等を無線通信により受け付ける。
【0061】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。プレイヤは、コントローラユニット105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0062】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され、画像処理部107に接続されるモニタへ出力される。これにより、各種の画像表示が可能となる。
【0063】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0064】
また、画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0065】
また、仮想空間が3次元にて構成される場合には、当該3次元空間内に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0066】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画したりすることが可能である。
【0067】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0068】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0069】
DVD−ROMに記録された音声データがMIDIデータである場合には、音声処理部110は、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0070】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0071】
以上で説明した情報処理装置100は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【0072】
例えば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、及び、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラユニット105ではなく、キーボードやマウスなどを入力装置として利用する。
【0073】
上記情報処理装置100において実現される本実施形態に係る画像処理装置の機能構成について、図2を参照して説明する。 ゲーム用のプログラム及びデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態に係る画像処理装置が実現される。
【0074】
本実施形態に係る画像処理装置200は、設定部201と、移動部202と、予測部203と、生成部204と、から構成される。以下、各部の機能を、サッカーゲームを例にとり説明する。
【0075】
本実施形態のサッカーゲームでは、プレイヤによって操作される複数のサッカー選手のキャラクタから構成される自チームと、コンピュータ又は他のユーザによって操作される複数のサッカー選手のキャラクタから構成される敵チームとがサッカーの試合を行う。例えば、プレイヤは、コントローラ105aを用いて、モニタ画面に表示された図3に示すようなキャラクタ91を、移動させたり、ボール12を蹴らせたりして、敵チームのゴールポストにゴールを決めることにより、点を得る。
【0076】
設定部201は、モニタに表示される画像に、仮想空間内に配置される移動可能なオブジェクト(第1のオブジェクト)が描画されるように、視点位置及び視線方向を設定する。例えば、視点位置及び視線方向は、仮想空間内に配置される仮想カメラの位置及び撮影方向である。
設定部201は、第1のオブジェクトと、第1のオブジェクトが仮想空間内の他のオブジェクト(第2のオブジェクト)と接触する位置(接触位置)との距離が、所定の距離(第1の閾距離)より大きい場合、視線方向を、第1のオブジェクトが移動する方向に設定する。一方、第1のオブジェクトと接触位置との距離が第1の閾距離以下になると、視線方向を、視点位置から接触位置へ向かう方向に設定する。
また、第1のオブジェクトと接触位置との距離が、他の所定の距離(第2の閾距離)より大きい場合、設定部201は、視点位置を、移動する第1のオブジェクトを追跡するように設定する。例えば、接触位置と第1のオブジェクトを結ぶ半直線上に、視点位置と第1のオブジェクトとの距離を、第1のオブジェクトと接触位置との距離に基づいて定めて、視点位置を設定する。あるいは、接触位置と第1のオブジェクトを結ぶ半直線上に、視点位置と移動する第1のオブジェクトとの距離が常に一定となるように視点位置を設定する。以下、本実施形態の設定部201は、視点位置と移動する第1のオブジェクトとの距離が常に一定となるように視点位置を設定するものとする。一方、第1のオブジェクトと接触位置との距離が第2の閾距離以下になると、視点位置を固定するように視点位置を設定する。
従って、CPU 101は設定部201として機能する。
【0077】
ここで、本実施形態では、第1のオブジェクトをサッカーボール、第2のオブジェクトを地面とする。
モニタに表示される画像には、図4の画像11に示すように、本実施形態の第1のオブジェクトであるボール13が表示される。このように、設定部201は、画像内にボールが描画されるように、視点位置及び視線方向を設定する。
【0078】
図3は、プレイヤ等により移動させるように指示が与えられたボール12が、放物線を描いて接触位置26に向かって移動し、視点位置19、21、23がボール12、15、17から一定距離離れた位置に配置されている様子を示している。また、図5に、図3を真上から見た場合のボールと視点位置との関係を示す。視線方向及び視点位置は、ボールから、ボールが地面25に接触する接触位置26までの距離により決まる。すなわち、距離27、28、29が第1の閾距離よりも大きい場合、設定部201は、視線方向を、ボール12、15、17の移動方向14、16、18と同じ方向の視線方向20、22、24に設定する。
また、距離27、28、29が第2の閾距離より大きい場合、設定部201は、接触位置26からボール12、15、17へ向かう半直線88、89、90上に視点位置19、21、23を設定する。そして、例えば距離29が第2の閾距離と等しいとすると、ボール96のようにボールの位置が第2の閾距離を超えた場合、視点位置23は固定される。
【0079】
図6A及び図6Bに、図5に示す視線方向及び視点位置と第1のオブジェクトの移動距離との関係を表わすグラフの一例を示す。なお、第1の閾距離と第2の閾距離が等しく、図5の距離29が第1及び第2の閾距離とする。また、視線方向は地面25となす角度(θ)で表わされるとする。
まず、ボールの移動距離が0mの場合は視線方向は75度(視線方向20)であり、その後、ボールが放物線の最も高い位置(頂点)に達すると、視線方向は0度となる。そして、頂点を通過すると視線方向は徐々に下方に傾く。一方、ボールの移動距離が0mから第2の閾距離(距離29)に達するまでの間、視点位置はボールから30cmの位置(視点位置19、21、23)に設置される。そして、ボールが第1及び第2の閾距離(距離29、ボール17の位置)に達すると、視点位置は第2の閾距離に達する直前に配置された視点位置23に固定され、ボールから視点位置までの距離は増加する。視線方向は、視点位置23から接触位置26への方向(−65度、視線方向24)に固定される。
上記例では、ボールから視点位置までの距離は、ボールが第2の閾距離に達するまでの間は一定としたが、図6Cに示すように、ボールの移動距離(接触位置までの距離)に基づいて変化させても良い。図6Cでは、ボールが第2の閾距離に達するまでは、視点位置はボールが接触位置に近づくにつれて徐々に離れていく。
【0080】
次に、設定部201が、視線方向及び視点位置を設定する手法について、第1と第2の閾距離が異なる場合を例にとり、具体的に説明する。
例えば、図7に示すような場合では、ボール30と接触位置32との距離が、第1の閾距離34よりも大きいので、設定部201は、視線方向を、第1のオブジェクトの移動方向31と同じ方向に設定する(視線方向36)。また、ボール30と接触位置32との距離が、第2の閾距離33よりも大きいので、設定部201は、視点位置を、接触位置32とボール30を結ぶ半直線37上に、ボール30と一定距離を保った位置(視点位置35)に設定する。
図8に示すようにボールが移動して、ボール94と接触位置32との距離が、第2の閾距離33に達すると、設定部201は視点位置を現在の位置(視点位置40)に固定する。その後ボールが移動して図9のボール38の位置に達しても、視点位置は変更されない。
さらに、図10に示すようにボールが移動して、ボール50と接触位置32との距離が第1の閾距離34以下になると、視線方向を、視点位置40から接触位置32への方向(視線方向52)に設定する。
以上のように、第1のオブジェクト(ボール)と接触位置との距離に基づいて、視線方向及び視点位置を設定する。
【0081】
移動部202は、仮想空間内の第1オブジェクトを移動させる指示(移動指示)を受け付けると、第1のオブジェクトの移動先の位置や移動速度を算出し、算出した位置に算出した移動速度で第1のオブジェクトを移動させる。例えば、プレイヤが、図3のボール12を移動させる指示(キャラクタ91にボール12を蹴らせる指示)を与えたとすると、移動部202は、ボール12を、ボール15の位置に算出した移動速度で移動させる。
従って、CPU 101は移動部202として機能する。
【0082】
予測部203は、移動部202が算出した結果に基づいて第1のオブジェクトを移動させた場合に、第1のオブジェクトが第2のオブジェクトと接触する接触位置を予測する。例えば、予測部203は、移動部202が算出した結果に基づいて図3のボール12(第1のオブジェクト)を移動させた場合に、地面25(第2のオブジェクト)と接触する位置(接触位置26)を予測する。
従って、CPU 101は予測部203として機能する。
【0083】
生成部204は、設定部201で設定された視点位置及び視線方向に基づいて、視点位置から視線方向へ仮想空間を見た様子を表わす画像を生成する。例えば、図4の画像11を生成する。
従って、CPU 101は、画像処理部107と協働して、生成部204として機能する。
【0084】
以下、画像処理装置200の各部が行う動作について、説明する。画像処理装置200に電源が投入され、プレイヤによってゲームが開始されると、CPU 101は、図11及び図12のフローチャートに示す処理を開始する。
【0085】
CPU 101は、第1のオブジェクトに対する入力指示の状態を調べる(ステップS1101)。例えば、プレイヤが、モニタ画面に表示された図3のボール12を、コントローラ105a等を用いてキャラクタ91に蹴らせる指示をしたとする。CPU 101はボールを移動させる指示が与えられたと判断し、移動部202に当該指示の情報、例えば、指示された方向や加えられた力の大きさの情報を送る。
【0086】
移動部202は、受け付けた指示の情報を基に、第1のオブジェクト(ボール12)の移動先の位置や移動速度を算出する(ステップS1102)。
【0087】
次に、予測部203は、移動部202が算出した位置及び移動速度から、第1のオブジェクト(ボール12)が第2のオブジェクト(地面25)と接触する接触位置(接触位置26)を予測する(ステップS1103)。また、移動部202は算出した位置及び速度の情報を、予測部203は接触位置の情報を、設定部201に送る。
【0088】
移動部202は、算出した位置に、算出した移動速度で第1のオブジェクト(ボール12)を移動させる(ステップS1104)。
【0089】
設定部201は、移動部202及び予測部203から受け付けた情報に基づいて、視点位置及び視線方向を設定する(ステップS1105、図12)。
【0090】
図12に設定部201が実行する視点位置・視線方向の設定の処理のフローチャートを示す。
【0091】
まず、設定部201は、第1のオブジェクトの現在位置から接触位置までの距離を求め、求めた距離が第2の閾距離よりも大きいか否かの判断をする(ステップS1201)。求めた距離が第2の閾距離よりも大きい場合(ステップS1201;Yes)、設定部201は、視点位置を、接触位置から第1のオブジェクトへの半直線上に、所定の距離だけ離れた位置に設定する(ステップS1202)。
【0092】
例えば、設定部201は、まず、図7のボール30と接触位置32との距離を求める。ボール30と接触位置32との距離は第2の閾距離33よりも大きいので(ステップS1201;Yes)、設定部201は、視点位置を接触位置32からボール30へ向かう半直線37上に、視点位置35のように設定する(ステップS1202)。
【0093】
一方、求めた距離が第2の閾距離以下の場合(ステップS1201;No)、設定部201は、視点位置を現在設定されている位置のまま維持する(ステップS1203)。
【0094】
例えば、現在設定されている視点位置は、図9の半直線42上に、視点位置40の位置に設定されているとする。ボール38から接触位置32への距離は第2の閾距離33以下なので(ステップS1201;No)、視点位置は変更されず視点位置40のまま維持される(ステップS1203)。
【0095】
第1のオブジェクトから接触位置までの距離が第2の閾距離以下になり、視点位置が維持されるようになると、画像に表示される第1のオブジェクトは徐々に小さくなる。例えば、図13に示すように、時間tの経過に応じて生成される画像43、44、45内のボール47、48、49は接触位置46に向かって移動しながら、徐々に小さく表示される。
【0096】
次に、設定部201は、第1のオブジェクトから接触位置までの距離が、第1の閾距離よりも大きいか否かを判断する(ステップS1204)。第1のオブジェクトから接触位置までの距離が第1の閾距離よりも大きい場合(ステップS1204;Yes)、設定部201は視線方向を第1のオブジェクトの移動方向に設定する(ステップS1205)。
【0097】
例えば、図7のボール30から接触位置32までの距離、及び図9のボール38から接触位置32までの距離は第1の閾距離34よりも大きいので(ステップS1204;Yes)、設定部201は、視線方向をボール30の移動方向31と同じ方向(視線方向36)、及び、ボール38の移動方向39と同じ方向(視線方向41)に設定する(ステップS1205)。
【0098】
一方、第1のオブジェクトから接触位置までの距離が第1の閾距離以下の場合(ステップS1204;No)、設定部201は、視点位置の方向を接触位置の方向に設定する(ステップS1206)。
【0099】
例えば、図10のボール50は、ボール50から接触位置32までの距離が第1の閾距離34以下なので(ステップS1204;No)、設定部201は視線方向をボール50の移動方向51ではなく、視点位置40から接触位置32への方向(視線方向52)に設定する(ステップS1206)。
【0100】
上記の例では、第1の閾距離が第2の閾距離よりも小さい例を示したが、第1の閾距離は第2の閾距離と等しい、又は、第1の閾距離が第2の閾距離よりも大きくてもよい。以下に、第1の閾距離が第2の閾距離よりも大きい場合の例を図14、図15に示す。
【0101】
図14のボール53は、ボール53から接触位置55までの距離が第2の閾距離57よりも大きいので(ステップS1201;Yes)、設定部201は、視点位置を接触位置55からボール53への半直線60上の視点位置58に設定する(ステップS1202)。また、ボール53から接触位置55までの距離が第1の閾距離56よりも小さいので(ステップS1204;No)、設定部201は視線方向をボール53の移動方向54ではなく、視点位置58から接触位置55への視線方向59のように設定する(ステップS1206)。
【0102】
一方、図15のボール61は、ボール61から接触位置55までの距離が第2の閾距離57よりも小さいので(ステップS1201;No)、設定部201は、視点位置を、現在設定されているとする視点位置63のまま維持する(ステップS1203)。また、ボール61から接触位置55までの距離が第1の閾距離56よりも小さいので(ステップS1204;No)、設定部201は、視線方向を、ボール61の移動方向62ではなく、視点位置63から接触位置55への方向(視線方向64)に設定する(ステップS1206)。
【0103】
設定部201は、視点位置及び視線方向を設定すると、それらの情報を生成部204に送る。生成部204は、受け付けた視点位置から視線方向へ仮想空間を見た様子を表わす画像を生成する(ステップS1106)。例えば、図13の画像43、44、45に示すように、ボール47、48、49を含む画像を生成する。
【0104】
ステップS1106で生成された画像は、画像処理部107が備えるフレームメモリ等に記憶される。画像処理装置200は、垂直同期割り込みが生じるまでキューのクリアや、別のプロセスの処理などを行って待機する(ステップS1107)。そして、垂直同期割り込みが生じると、画像処理部107は、フレームメモリに記憶された画像情報を表示信号に変換し、画像処理部107に接続されるモニタに表示する(ステップS1108)。 画像が表示されると、入力状態を調べるステップに戻る(ステップS1101)。
【0105】
本実施形態によれば、オブジェクトを追跡するような視覚効果を得ることができる。また、オブジェクト同士が所定距離まで近づくと、オブジェクトの追跡を停止して、所定距離から両オブジェクトを視認することができる。
【0106】
また、本実施形態の視点位置を、第1のオブジェクトと接触位置との距離が第2の閾距離より大きい間、生成される画像において第1のオブジェクトが描画される位置及び大きさが一定となるように、設定することも可能である。このように視点位置が設定されると、図16の画像65、66、67のように、画像内に見えるボール69、70、71の位置及び大きさは一定のままで、接触位置68へと徐々に近づいていく画像が生成される。すなわち、ボールが移動して周囲の景色が変化しても、ボールは同じ位置及び大きさで表示される。これにより、オブジェクトに仮想カメラが固定され、共に移動している状態で撮影しているような視覚効果を付与することができる。
【0107】
また、本実施形態の視点位置を、第1のオブジェクトと接触位置との距離が第2の閾距離以下の間、生成された画像において第1のオブジェクトが描画される位置と接触位置が描画される位置とが重ならないように設定することも可能である。以下、重ならないように視点位置を設定した例を図17及び図18に示す。図17のボール72は第1及び第2の閾距離78に達する直前の第1オブジェクト、視点位置79はボール72から一定距離離れた視点位置、及び、視線方向80はボール72の移動方向73と同じ方向、を表わす。また、視点位置79から視線方向80を見た仮想空間の画像を図18の画像83とする。以下、この例では第1の閾距離と第2の閾距離を等しいとする。
【0108】
設定部201は、ボールが第1及び第2の閾距離78に達すると、接触位置76を通る鉛直線を中心に、視点位置79を、ボール72と接触位置76が画像上で重ならなくなるように、所定の方向(視点位置81の方向)に所定の角度(角度θ77、例えば60度〜90度)だけ回転させた位置に設定する。また、設定部201は、視線方向80を、視点位置81から接触位置76への方向(視線方向82)に設定する。このようにして視点位置を設定すると、例えば、視点位置79から視線方向80へ見た画像83のように、ボール72と接触位置76が重なっていても、視点位置をずらすことによって画像84、85のボール74、75と接触位置76のように両者を視認することができる。
【0109】
また、例えば、設定部201は、ボール72が接触位置76に到達する時間をTとすると、視点位置79から視点位置81までθ/Tの早さで移動させるように視点位置を設定する。これにより、簡単な計算で、視点位置を滑らかに動かすことができる。
【0110】
また、視点位置をずらす方向は、キャラクタとボールとの位置により設定するようにしてもよい。例えば、パスを受けるキャラクタ92の右前面にボールが接触する場合は、キャラクタ92から見て左側に視点位置が配置されるように、ずらす方向を設定する。これにより、ボールとキャラクタの接触を見えやすくすることができる。
【0111】
また、オブジェクト同士が画面上で重ならなくなるまで視点位置を回転させるようにしてもよい。例えば、視点位置を小刻みに(例えば5度)回転させる度に、オブジェクト同士の重なりを確認し、重ならなくなるまで、回転と重なりの確認を繰り返す。これにより、オブジェクト同士の重なり具合により、その都度適当な回転角度で設定することができる。
【0112】
また、本実施形態の視点位置を、生成された画像において第1のオブジェクトが描画される位置と接触位置が描画される位置とが重なる場合や、第1のオブジェクトが画面を占める割合に応じて、第1のオブジェクトを透明にすることも可能である。例えば、画面の面積の5割の値を閾値とすると、図19のボール99の面積は画像100の面積の半分に達しているので、ボール99は透明に描画される。これにより、第1のオブジェクトを画像内に描画していても、到達地点や他のオブジェクトを視認することができる。
【0113】
また、第1のオブジェクトと接触位置との距離が第2の閾距離より大きい間、設定部201は、本実施形態の視点位置を、第1のオブジェクトが描く軌跡を遅れて辿るように設定し、第1のオブジェクトから遅れる量を、第1のオブジェクトと接触位置との距離に基づいて定めるようにしてもよい。例えば、第1のオブジェクトと接触位置との距離が近づくほど、第1のオブジェクトからの遅れが大きくなるように視点位置を設定するようにしてもよい。
図20に、第1のオブジェクトであるボールと接触位置26との距離が近づくほど、ボールからの遅れが大きくなるように、視点位置を設定した例を示す。ボールを移動する指示が与えられた瞬間を時刻t=0、時刻tにおけるボールの位置をP(t)で表わすとすると、視点位置はP(t−a)と表わすことができる。すなわち、視点位置は、ボールが描いた軌跡をa秒だけ遅れて辿るように移動する。また、時刻t=0におけるボールの位置はP(0)=0、接触位置26の位置はP(tn)=d(tn(>t4):ボールが接触位置26に到達する時刻)とし、変数aは、ボールと接触位置26との距離(|d−P(t)|)が小さくなるほど増大する関数(例えば、a=b/|d−P(t)|、b:任意の数)から求められるとする。
図20のボール101、102、103、104の位置を時刻t1、t2、t3、t4(t1<t2<t3<t4)におけるボールの位置とすると、ボール101、102、103、104の位置は、P(t1)、P(t2)、P(t3)、P(t4)と表わされる。また、変数aは、時刻t1、t2、t3、t4において、a1、a2、a3、a4(a1<a2<a3<a4)の値をとるとすると、時刻t1、t2、t3、t4における視点位置105、106、107、108の位置は、P(t1−a1)、P(t2−a2)、P(t3−a3)、P(t4−a4)と表わされる。上記のような関数により変数aを設定すると、時刻t1→t4におけるボールと接触位置26との距離(|d−P(t)|)が、距離109、111、113、115のように、近づくにつれて、視点位置のボールからの遅れ(|P(t)−P(t−a)|)が、距離110、112、114、116のように、徐々に大きくなるように、視点位置を設定することができる。
なお、変数aは定数でもよい。変数aが定数の場合、例えば、時刻t1→t4においてa=1秒の場合、視点位置は常にボールから1秒間分だけ遅れて移動する。この場合、図20の距離110、112、114、116は等しくなる。
【0114】
また、第2のオブジェクトは、地面に限らず、ゲーム画面に表示されるキャラクタ、ゴールポスト等の他のオブジェクトでもよい。従って、例えば、視点位置を図6Cに示すように第2の閾距離に達するまでの間、第1のオブジェクトと接触位置との距離によって、視点位置と第1のオブジェクトとの距離を設定する場合、視点位置をボールとターゲットとなるキャラクタとの距離に応じて変化させることも可能である。
【産業上の利用可能性】
【0115】
本発明によれば、移動体の動きに応じた視覚効果を付与するのに好適な画像処理装置、処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【0116】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラユニット
105a コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
200 画像処理装置
201 設定部
202 移動部
203 予測部
204 生成部
11、43、44、45、65、66、67、83、84、85、100 画像
12、13、15、17、30、38、47,48、49、50、53、61、69、70、71、72、74、75、94、96、97、99、101、102、103、104 ボール
14、16、17、31、39、51、54、62、73、95 移動方向
19、21、23、35、40、58、63、79、81、105、106、107、108 視点位置
20、22、24、36、41、52、59、64、80、82、93 視線方向
25 地面
26、32、46、55、68、76 接触位置
27、28、29、109、110、111、112、113、114、115、116 距離
37、42、60、88、89、90 半直線
34、56 第1の閾距離
33、57 第2の閾距離
77 角度
78 第1及び第2の閾距離
91、92 キャラクタ

【特許請求の範囲】
【請求項1】
仮想空間内に配置される視点位置及び視線方向を設定する設定部と、
前記仮想空間内で第1のオブジェクトを移動させる移動部と、
前記第1のオブジェクトが前記仮想空間内に配置される第2のオブジェクトと接触する接触位置を予測する予測部と、
前記視点位置から前記視線方向へ前記仮想空間を見た様子を表わす画像を生成する生成部と、
を備え、
前記設定部は、前記生成された画像に前記第1のオブジェクトが描画されるように前記視点位置及び視線方向を設定し、
前記設定部は、前記第1のオブジェクトと前記接触位置との距離が第1の閾距離より大きい間、前記視線方向を前記第1のオブジェクトが移動する方向に設定する
ことを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置であって、
前記設定部は、前記第1のオブジェクトと前記接触位置との距離が第2の閾距離より大きい間、前記第1のオブジェクトを追跡するように前記視点位置を設定する
ことを特徴とする画像処理装置。
【請求項3】
請求項2に記載の画像処理装置であって、
前記設定部は、前記第1のオブジェクトと前記接触位置との距離が前記第2の閾距離より大きい間、前記接触位置から前記第1のオブジェクトへ向かう半直線上に、前記視点位置と前記第1のオブジェクトとの距離を、前記第1のオブジェクトと前記接触位置との距離に基づいて定めて、前記視点位置を設定する
ことを特徴とする画像処理装置。
【請求項4】
請求項3に記載の画像処理装置であって、
前記第1のオブジェクトと前記接触位置との距離に基づいて定められる距離は一定である
ことを特徴とする画像処理装置。
【請求項5】
請求項3に記載の画像処理装置であって、
前記設定部は、前記第1のオブジェクトと前記接触位置との距離が前記第2の閾距離より大きい間、前記生成された画像において前記第1のオブジェクトが描画される位置及び大きさが一定となるように、前記視点位置を設定する
ことを特徴とする画像処理装置。
【請求項6】
請求項2に記載の画像処理装置であって、
前記設定部は、前記第1のオブジェクトと前記接触位置との距離が前記第2の閾距離より大きい間、前記第1のオブジェクトが描く軌跡を遅れて辿るように、前記視点位置を設定し、
前記第1のオブジェクトから遅れる量は、前記第1のオブジェクトと前記接触位置との距離に基づいて定める
ことを特徴とする画像処理装置。
【請求項7】
請求項2ないし6のいずれか1項に記載の画像処理装置であって、
前記設定部は、前記第1のオブジェクトと前記接触位置との距離が前記第2の閾距離以下になると、前記生成された画像において前記第1のオブジェクトが描画される位置と前記接触位置が描画される位置とが重ならないように前記視点位置を設定する
ことを特徴とする画像処理装置。
【請求項8】
請求項2ないし6のいずれか1項に記載の画像処理装置であって、
前記設定部は、前記第1のオブジェクトと前記接触位置との距離が前記第2の閾距離以下になると、前記視点位置を固定するように前記視点位置を設定する
ことを特徴とする画像処理装置。
【請求項9】
請求項8に記載の画像処理装置であって、
前記設定部は、前記第1のオブジェクトと前記接触位置との距離が前記第1の閾距離以下になると、前記視線方向を、前記視点位置から前記接触位置へ向かう方向に設定する
ことを特徴とする画像処理装置。
【請求項10】
設定部と、移動部と、予測部と、生成部と、を備える画像処理装置が実行する処理方法であって、
前記設定部が、仮想空間内に配置される視点位置及び視線方向を設定する設定工程と、
前記移動部が、前記仮想空間内で第1のオブジェクトを移動させる移動工程と、
前記予測部が、前記第1のオブジェクトが前記仮想空間内に配置される第2のオブジェクトと接触する接触位置を予測する予測工程と、
前記生成部が、前記視点位置から前記視線方向へ前記仮想空間を見た様子を表わす画像を生成する生成工程と、
を備え、
前記設定工程において、前記設定部は、前記生成された画像に前記第1のオブジェクトが描画されるように前記視点位置及び視線方向を設定し、
前記設定工程において、前記設定部は、前記第1のオブジェクトと前記接触位置との距離が第1の閾距離より大きい間、前記視線方向を前記第1のオブジェクトが移動する方向に設定する
ことを特徴とする処理方法。
【請求項11】
コンピュータを、
仮想空間内に配置される視点位置及び視線方向を設定する設定部、
前記仮想空間内で第1のオブジェクトを移動させる移動部、
前記第1のオブジェクトが前記仮想空間内に配置される第2のオブジェクトと接触する接触位置を予測する予測部、
前記視点位置から前記視線方向へ前記仮想空間を見た様子を表わす画像を生成する生成部、
として機能させ、
前記設定部は、前記生成された画像に前記第1のオブジェクトが描画されるように前記視点位置及び視線方向を設定し、
前記設定部は、前記第1のオブジェクトと前記接触位置との距離が第1の閾距離より大きい間、前記視線方向を前記第1のオブジェクトが移動する方向に設定する
ように機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図6C】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2011−59738(P2011−59738A)
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願番号】特願2009−205322(P2009−205322)
【出願日】平成21年9月4日(2009.9.4)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】