画像処理プログラムおよびコンピュータ読み取り可能な記録媒体
【課題】自然な形で効果的に広告を表示させる。
【解決手段】画像処理装置1を、仮想空間内のオブジェクトとして、第一のオブジェクト、第二のオブジェクトおよび注視オブジェクトを仮想空間内に配置する配置手段、視点および注視点に基づいて、前記オブジェクトを座標変換して画面表示する手段、プレイヤからの操作に基づいて前記第一のオブジェクトを移動させる手段、プレイヤからの操作に基づいて前記視点および注視点を移動制御する手段、仮想空間内を移動する前記第二のオブジェクトと、前記第一のオブジェクトとの関係に基づくイベントを発生させる手段、前記第一のオブジェクトおよび/または前記第二のオブジェクトの座標位置に応じて前記イベントの中心点を決定する手段、前記注視オブジェクトに定められた対象点を注視点に設定し、当該注視点を始点として、前記イベントの中心点を通過する半直線上に、前記視点を設定する設定手段として機能させる。
【解決手段】画像処理装置1を、仮想空間内のオブジェクトとして、第一のオブジェクト、第二のオブジェクトおよび注視オブジェクトを仮想空間内に配置する配置手段、視点および注視点に基づいて、前記オブジェクトを座標変換して画面表示する手段、プレイヤからの操作に基づいて前記第一のオブジェクトを移動させる手段、プレイヤからの操作に基づいて前記視点および注視点を移動制御する手段、仮想空間内を移動する前記第二のオブジェクトと、前記第一のオブジェクトとの関係に基づくイベントを発生させる手段、前記第一のオブジェクトおよび/または前記第二のオブジェクトの座標位置に応じて前記イベントの中心点を決定する手段、前記注視オブジェクトに定められた対象点を注視点に設定し、当該注視点を始点として、前記イベントの中心点を通過する半直線上に、前記視点を設定する設定手段として機能させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオゲームやCG(Computer Graphics)ビデオ等における表示画像の生成技術に関する。
【背景技術】
【0002】
広告ビジネスの発展により、ビデオゲームやCGビデオ等の表示画像の中に広告を挿入するケースが増えてきている(例えば、特許文献1参照。)。例えば、町並みの風景画像の中に所定の広告看板の画像を表示する等により、不自然さのない形で広告の挿入が行われている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−58912号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ビデオゲームやCGビデオ等の表示画像の中に広告を挿入する場合、広告料は、視聴者に広告が提示される回数や提示される広告の態様に応じたものとなる。
【0005】
昨今では、ビデオゲーム等の中にブラックボックス化された広告管理プログラムモジュールを埋め込み、広告画像の割り当てと広告提供状態の測定とを自動に行うシステムも導入されつつある。この場合、広告管理プログラムモジュールは、予めゲーム内に設けられたブランクの広告看板等に所定の広告画像を自動に割り当てるとともに、広告看板等の表示画面上の面積割合や表示継続時間等に応じて有効な広告表示であるか否かを判断して課金ポイントを発生させ、ネットワーク経由でセンタ側に課金ポイント情報を送信する。また、広告管理プログラムモジュールは、ネットワーク経由で最新の広告画像もセンタ側から取得する。
【0006】
ネットワーク利用によるセンタ管理であるか否かにかかわらず、広告料収入を増やすためには、効果的な広告を行うことが不可欠である。しかし、単に大きな面積割合で長時間にわたって広告画像を表示すればよいというものではなく、自然な広告提示となることが肝要である。あまりに強引な広告提示は視聴者の反感を招き、広告効果を却って低下させてしまい、ひいてはビデオゲームやCGビデオ等の主たるコンテンツ自体の価値を低下させてしまいかねない。
【0007】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、自然な形で効果的に広告を表示させることのできる画像処理プログラムおよびコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、コンピュータを、仮想空間内のオブジェクトとして、少なくとも第一のオブジェクト、第二のオブジェクトおよび注視オブジェクトを仮想空間内に配置する配置手段、仮想空間内に設定される視点および注視点に基づいて、前記オブジェクトを座標変換して画面に表示する手段、プレイヤからの操作に基づいて仮想空間内で前記第一のオブジェクトを移動させる手段、プレイヤからの操作に基づいて仮想空間内で前記視点および注視点を移動制御する手段、仮想空間内を移動する前記第二のオブジェクトと、前記第一のオブジェクトとの関係に基づくイベントを発生させる手段、前記イベントが発生した場合に、前記第一のオブジェクトおよび/または前記第二のオブジェクトの座標位置に応じて前記イベントの中心点を決定する手段、前記イベントが発生した場合に、前記注視オブジェクトに定められた対象点を注視点に設定し、当該注視点を始点として、前記イベントの中心点を通過する半直線上に、前記視点を設定する設定手段として機能させる画像処理プログラムを要旨としている。
【0009】
また、請求項2に記載されるように、請求項1に記載の画像処理プログラムにおいて、前記設定手段により前記視点および注視点を設定した後、当該視点および注視点の前記移動制御を一時停止するようにすることができる。
【0010】
また、請求項3に記載されるように、請求項1または2のいずれか一項に記載の画像処理プログラムにおいて、前記配置手段は、前記仮想空間内に複数の注視オブジェクトを配置し、前記設定手段は、前記イベントの中心点から前記注視オブジェクトへのベクトル、および前記注視オブジェクトの法線ベクトルに基づいて算出される傾きが、所定角度以上の前記注視オブジェクトと、前記仮視点と前記注視オブジェクトの間に他のオブジェクトが存在する前記注視オブジェクトとを除外し、前記画面に最も大きく表示される注視オブジェクトを選択し、当該選択した注視オブジェクトの前記対象点を注視点に設定するようにすることができる。
【0011】
また、請求項4に記載されるように、請求項1乃至3のいずれか一項に記載の画像処理プログラムにおいて、前記視点から注視点までの上下角度を算出し、当該上下角度が所定角度以上である場合に、前記注視オブジェクトの対象点を前記注視オブジェクトの下部に定めるようにすることができる。
【0012】
また、請求項5に記載されるように、請求項1乃至4のいずれか一項に記載の画像処理プログラムにおいて、前記半直線上に設定される視点の位置は、前記第一のオブジェクトと前記第二のオブジェクトとの距離に基づいて設定されるようにすることができる。
【0013】
また、請求項6に記載されるように、請求項1乃至5のいずれか一項に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体として構成することができる。
【発明の効果】
【0014】
本発明の画像処理プログラムおよびコンピュータ読み取り可能な記録媒体にあっては、自然な形で効果的に広告を表示させることができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図2】画像処理装置内で処理に用いられるデータ例を示す図である。
【図3】実施形態の処理例を示すフローチャートである。
【図4】ビュー空間および射影空間の例を示す図である。
【図5】画面例を示す図(その1)である。
【図6】画面例を示す図(その2)である。
【図7】カメラ設定処理の例を示すフローチャート(その1)である。
【図8】カメラ設定処理の例を示すフローチャート(その2)である。
【図9】カメラ設定処理の例を示すフローチャート(その3)である。
【図10】カメラ設定処理における各種計算対象の説明図(その1)である。
【図11】カメラ設定処理における各種計算対象の説明図(その2)である。
【図12】画面例を示す図(その3)である。
【図13】画面例を示す図(その4)である。
【発明を実施するための形態】
【0016】
以下、本発明の好適な実施形態につき説明する。なお、以下では画像処理装置としてビデオゲーム装置に適用した場合について説明する。
【0017】
<構成>
図1は本発明の一実施形態にかかる画像処理装置1の構成例を示す図である。
【0018】
図1において、ビデオゲーム装置等の画像処理装置1は、主たる制御動作を行うCPU(Central Processing Unit)101と、実行中のプログラムおよびデータを保持するRAM(Random Access Memory)等のシステムメモリ102と、制御プログラムおよび各種データを保持するROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ、CD(Compact Disk)ドライブ、DVD(Digital Versatile Disk)ドライブ等の記憶装置103と、起動プログラムを保持するブートROM104と、ボタン、ハンドル、アクセルペダル、ブレーキペダル等のペリフェラルデバイスとのインタフェースを行うペリフェラルI/F(Interface)105とを備え、これらはシステムバスの調停を行うバスアービタ106に接続されている。
【0019】
また、バスアービタ106には、グラフィックメモリ108を用いてポリゴンを使用した3次元グラフィックスの描画処理を行うGPU(Graphics Processing Unit)107が接続され、このGPU107には表示用のモニタ109が接続されている。また、バスアービタ106には、オーディオメモリ111を用いて音声出力を行うオーディオプロセッサ110が接続され、このオーディオプロセッサ110には音声出力用のスピーカ112が接続されている。更に、バスアービタ106には通信I/F113が接続され、通信I/F113の他端はネットワークに接続され、他のビデオゲーム装置や管理用サーバに接続される。
【0020】
図2は画像処理装置1内で処理に用いられるデータ例を示す図である。データには、ステージ毎ゲーム内広告データとモデル関連データと一時的データとが含まれる。
【0021】
ステージ毎ゲーム内広告データには、ゲームの進行により遷移する各ステージに対応したステージ#1ゲーム内広告データ、ステージ#2ゲーム内広告データ、・・が含まれる。ステージ#1ゲーム内広告データ、ステージ#2ゲーム内広告データ、・・のそれぞれには、ゲーム内広告個数と、ゲーム内広告毎のゲーム内広告番号、4隅の頂点座標、法線ベクトル、内容確認可能最大距離、広告画像等が含まれる。4隅の頂点座標とは、矩形状の広告の輪郭を特定する3次元座標である。法線ベクトルとは、矩形状の広告面の向きを表す3次元ベクトルである。内容確認可能最大距離とは、広告の表示内容に応じ、内容が判別可能な最大の距離(視点となる仮想カメラと広告面との距離)である。
【0022】
モデル関連データには、プレイヤキャラクタデータと敵キャラクタデータと視線透過判定用ステージモデルとが含まれている。
【0023】
プレイヤキャラクタデータは、主としてプレイヤの操作によって制御されるキャラクタのデータであり、一般的な3Dデータ等の他に顔基準座標を含んでいる。顔基準座標は、例えば、首のやや上の3次元座標である。
【0024】
敵キャラクタデータは、プレイヤキャラクタと敵対するキャラクタのデータであり、一般的な3Dデータ等の他に行動スクリプトと顔基準座標を含んでいる。行動スクリプトは、敵キャラクタの行動開始条件と行動内容とを記述したものである。例えば、その敵キャラクタから追尾開始距離以内にプレイヤキャラクタが入ったことを検知すると、その敵キャラクタはプレイヤキャラクタの追尾を開始する。また、その敵キャラクタから接触距離以内にプレイヤキャラクタが入ったことを検知すると、その敵キャラクタはプレイヤキャラクタとの会話を開始する。
【0025】
視線透過判定用ステージモデルは、構造物等の輪郭を簡略化し、視線が透過するか否かを判定するためのモデルデータである。
【0026】
一時的データには、会話中点座標talk_center、現時点最大画面上広告面積near_size、現時点カメラ設定near_camera、ゲーム内広告番号a、広告中点座標disp_center、会話中点→広告中点ベクトルtalk_to_disp、広告傾きdisp_rot、カメラ視線傾きup_rot、広告下端中点座標disp_low、広告対象点座標disp_target、キャラクタ間距離charactor_distance、広告→会話中点ベクトルdisp_to_talk、仮カメラ座標camera_pos、仮カメラcamera、画面上広告面積sizeが含まれる。それぞれの意味については後述する。
【0027】
<動作>
図3は上記の実施形態の処理例を示すフローチャートである。
【0028】
なお、図3ではゲームの流れを主に示してあるため、表示画像の生成については特に示していない。表示画像の生成に関しては、CPU101(図1)の制御のもと、ゲームロジックに従って表示すべきオブジェクトのモデルデータが仮想3次元空間内に配置され、GPU107内のバーテックスシェーダおよびピクセルシェーダの処理により、視点(仮想カメラ)から見た2次元画像に変換されて生成される。視点と注視点は、プレイヤの操作により移動するオブジェクトの移動に伴って、そのオブジェクトを画面に含むように移動制御されてもよいし、プレイヤの操作(十字キーやLRボタン等)に応じて移動してもよい。
【0029】
バーテックスシェーダによる処理として、ポリゴンの頂点のビュー空間および射影空間への変換、ラスタライズ等が行われる。ピクセルシェーダによる処理として、ポリゴンの面へのテクスチャリング等が行われる。
【0030】
図4(a)はビュー空間の例を示している。ビュー空間は視点VPを基準とした座標空間であり、視点VPから視方向に対して横軸がx軸、縦軸がy軸、奥行きがz軸となる。視点VPの視方向に対してx軸方向およびy軸方向にそれぞれ画角だけ振った範囲の、視点VPに近い側には近クリップ平面CP1が設定され、遠い側には遠クリップ平面CP2が設定される。近クリップ平面CP1と遠クリップ平面CP2と画角を示す面で囲われる6面体は視錐台と呼ばれ、その内部に配置されるモデル(オブジェクト)が描画対象となる。視錐台の位置は、ビデオゲームの場合、プレイヤ(遊戯者)が操作手段により操作するプレイヤキャラクタを含むように決定される。図4(b)は射影空間の例を示しており、図4(a)に示したビュー空間を、−1≦x≦1、−1≦y≦1、0≦z≦1の範囲に変換したものである。
【0031】
図3に戻り、処理を開始すると(ステップS101)、プレイヤの操作に応じて3次元仮想空間内をプレイヤキャラクタが移動するアドベンチャーモードの処理(ステップS102)を行う。
【0032】
アドベンチャーモードの処理(ステップS102)においては、いずれかの敵キャラクタが追尾開始距離に入ったプレイヤキャラクタを検知すると(ステップS103のYes)、プレイヤキャラクタの追尾を開始する(ステップS104)。図5は、アドベンチャーモードにおいて、プレイヤキャラクタC1が敵キャラクタC2の追尾開始距離内に入ったことにより追尾が開始される時点の画面例を示している。なお、A1、A2は広告(広告看板)である。
【0033】
図3に戻り、更に、その敵キャラクタが接触距離に入ったプレイヤキャラクタを検知すると(ステップS105のYes)、会話モードの処理(ステップS106)に移行する。図6は、アドベンチャーモードにおいて、プレイヤキャラクタC1が敵キャラクタC2に追いつかれて敵キャラクタC2の接触距離内に入ったことにより会話が開始される時点の画面例を示している。
【0034】
図3に戻り、会話モードの処理(ステップS106)に入ると、初めにカメラ設定処理(ステップS107)を行い、その後は通常の会話モードの処理を行う。カメラ設定処理の詳細は後述するが、そのシーンで表示可能な複数の広告の中から配置的に最も効果的な広告を選択し、最も効果的なカメラ設定(視点および注視点)を決定する。なお、カメラ設定処理により設定された視点および注視点は、一定時間またはプレイヤからの操作があるまで等の所定の間、移動制御が停止され、広告を注視させることを促す。
【0035】
そして、会話モードの後にゲーム終了であるか否か判断し(ステップS108)、ゲーム終了でない場合(ステップS108のNo)はアドベンチャーモードの処理(ステップS102)に戻り、ゲーム終了である場合(ステップS108のYes)は処理を終了する(ステップS109)。
【0036】
図7〜図9はカメラ設定処理(図3のステップS107)の例を示すフローチャートである。なお、カメラ設定処理は図1のCPU101による処理を想定しているが、GPU107による処理としてもよい。
【0037】
図7において、カメラ設定処理を開始すると(ステップS201)、プレイヤキャラクタの顔と敵キャラクタの顔との中点座標を算出し、会話中点座標talk_centerに設定する(ステップS202)。図10はプレイヤキャラクタC1と敵キャラクタC2の配置を概略的に示しており、プレイヤキャラクタC1の顔基準座標P1と敵キャラクタC2の顔基準座標P2を結んだ線分の中点座標が会話中点座標talk_centerとなる。
【0038】
図7に戻り、現時点最大画面上広告面積near_sizeに「0」を設定し、現時点カメラ設定near_cameraに通常の会話カメラを設定し、ゲーム内広告番号aに「0」を設定する(ステップS203)。
【0039】
次いで、ゲーム内広告番号aが当該ステージ内のゲーム内広告個数以上であるか否か判断し(ステップS204)、ゲーム内広告番号aが当該ステージ内のゲーム内広告個数以上である場合(ステップS204のYes)、現時点カメラ設定near_cameraをゲームのカメラに設定し(図9のステップS224)、処理を終了する(図9のステップS225)。
【0040】
ゲーム内広告番号aが当該ステージ内のゲーム内広告個数以上でない場合(ステップS204のNo)、当該ステージ内のa番目の広告画面の4隅の頂点の中点座標を算出し、広告中点座標disp_centerに設定する(ステップS205)。図10の上方に頂点V1〜V4で囲まれる広告A1の中点座標が広告中点座標disp_centerとなる。
【0041】
図7に戻り、会話中点座標talk_centerから広告中点座標disp_centerへ向くベクトルを算出し、会話中点→広告中点ベクトルtalk_to_dispに設定する(ステップS206)。図10に、会話中点座標talk_centerから広告中点座標disp_centerへ向く会話中点→広告中点ベクトルtalk_to_dispを示す。
【0042】
図7に戻り、会話中点→広告中点ベクトルtalk_to_dispに対するa番目の広告の傾きを法線から算出し、広告傾きdisp_rotに設定する(ステップS207)。図10に、会話中点→広告中点ベクトルtalk_to_dispと広告A1の法線Nのなす角としての広告傾きdisp_rotを示す。
【0043】
図7に戻り、会話中点→広告中点ベクトルtalk_to_dispが所定値(例えば67.5°)より小さいか否か判断する(ステップS208)。会話中点→広告中点ベクトルtalk_to_dispが所定値より小さくない場合(大きい場合)(ステップS208のNo)、その広告の視認は角度的に困難であると判断し、ゲーム内広告番号aのインクリメント(図9のステップS223)を経てゲーム内広告個数との比較(ステップS204)に戻る。
【0044】
会話中点→広告中点ベクトルtalk_to_dispが所定値より小さい場合(ステップS208のYes)、会話中点→広告中点ベクトルtalk_to_dispのxz平面に対する傾きを算出し、カメラ視線傾きup_rotに設定する(ステップS209)。図10に、xz平面に対する会話中点→広告中点ベクトルtalk_to_dispの傾きであるカメラ視線傾きup_rotを示す。
【0045】
次に、図8において、カメラ視線傾きup_rotが所定値より小さいか否か判断する(ステップS210)。カメラ視線傾きup_rotが所定値より小さくない場合(大きい場合)(ステップS210のNo)、その広告を視認するには上を向きすぎることとなって不自然になると判断し、ゲーム内広告番号aのインクリメント(図9のステップS223)を経てゲーム内広告個数との比較(ステップS204)に戻る。
【0046】
カメラ視線傾きup_rotが所定値より小さい場合(ステップS210のYes)、当該ステージ内のa番目の広告画面の下2隅の頂点の中点座標を算出し、広告下端中点座標disp_lowに設定する(ステップS211)。図10に、広告A1の頂点V3、V4の中点座標としての広告下端中点座標disp_lowを示す。
【0047】
図8に戻り、カメラ視線傾きup_rotに応じて、傾きが少なければ広告中点座標disp_center、傾きが大きければ広告下端中点座標disp_lowに近づく点を算出し、広告対象点座標disp_targetに設定する(ステップS212)。すなわち、カメラの視線が上方を向くと不自然さが強くなるため、カメラの視線の傾きを下げる補正を行う。図10に、広告中点座標disp_centerと広告下端中点座標disp_lowの間に設定された広告対象点座標disp_targetを示す。なお、広告が目線よりも下に掲示される環境にあっては、上記とは逆方向に、広告中点座標と広告上端中点座標の間で補正を行う。
【0048】
図8に戻り、会話中点座標talk_centerから広告対象点座標disp_targetへのベクトルを算出し、会話中点→広告中点ベクトルtalk_to_dispを更新する(ステップS213)。図11に、従前の会話中点→広告中点ベクトルtalk_to_dispに代えて、会話中点座標talk_centerから広告対象点座標disp_targetへのベクトルである新たな会話中点→広告中点ベクトルtalk_to_dispを示す。
【0049】
図8に戻り、会話中点→広告中点ベクトルtalk_to_dispと視線透過判定用ステージモデルとが交差していないか否か判断する(ステップS214)。すなわち、会話中点座標talk_centerと広告対象点座標disp_targetの間に遮る物体が存在しないかどうか判断する。
【0050】
会話中点→広告中点ベクトルtalk_to_dispと視線透過判定用ステージモデルとが交差している場合(ステップS214のNo)、プレイヤにとって、その広告の視認は困難であるため、ゲーム内広告番号aのインクリメント(図9のステップS223)を経てゲーム内広告個数との比較(ステップS204)に戻る。
【0051】
会話中点→広告中点ベクトルtalk_to_dispと視線透過判定用ステージモデルとが交差していない場合(ステップS214のYes)、プレイヤキャラクタの顔と敵キャラクタの顔との距離を算出し、キャラクタ間距離charactor_distanceに設定する(ステップS215)。図11に、プレイヤキャラクタC1の顔基準座標P1と敵キャラクタC2の顔基準座標P2の距離であるキャラクタ間距離charactor_distanceを示す。
【0052】
図8に戻り、広告対象点座標disp_targetから会話中点座標talk_centerへのベクトルを算出し、広告→会話中点ベクトルdisp_to_talkに設定する(ステップS216)。広告→会話中点ベクトルdisp_to_talkは会話中点→広告中点ベクトルtalk_to_dispの方向を反転させたものである。
【0053】
次いで、広告→会話中点ベクトルdisp_to_talkの方向は維持しつつ、長さをキャラクタ間距離charactor_distanceの2倍に調整したベクトルを会話中点座標talk_centerに足した座標を算出し、仮カメラ座標camera_posに設定する(ステップS217)。なお、2倍という長さは経験上決定された一例であり、適宜変更することができる。図11に、会話中点座標talk_centerから、広告→会話中点ベクトルdisp_to_talk(会話中点→広告中点ベクトルtalk_to_dispの逆方向)に沿って、広告A1とは反対側にキャラクタ間距離charactor_distanceの2倍の距離だけ離れた場所に設定した仮カメラ座標camera_posを示す。
【0054】
次に、図9において、仮カメラ座標camera_posをカメラ位置、広告対象点座標disp_targetをカメラが見る点(視方向に存在する点)として、カメラを作成し、仮カメラcameraに設定する(ステップS218)。
【0055】
次いで、a番目の広告の4隅の点に対して、仮カメラcameraを使って視野変換および透視変換を行い、2D画面上に変換された4点から画面上での面積を求め、画面上広告面積sizeに設定する(ステップS219)。
【0056】
次いで、画面上広告面積sizeが所定の基準値(例えば、画面の面積の2%)以上であるか否か判断する(ステップS220)。
【0057】
画面上広告面積sizeが所定の基準値以上でない場合(ステップS220のNo)、プレイヤにとって、その広告の視認は面積的に困難であるため、ゲーム内広告番号aのインクリメント(ステップS223)を経てゲーム内広告個数との比較(図7のステップS204)に戻る。
【0058】
画面上広告面積sizeが所定の基準値以上である場合(ステップS220のYes)、画面上広告面積sizeが現時点最大画面上広告面積near_sizeより大きいか否か判断する(ステップS221)。
【0059】
画面上広告面積sizeが現時点最大画面上広告面積near_sizeより大きくない場合(ステップS221のNo)、その広告よりも面積的に有利な広告が既に存在すると判断し、ゲーム内広告番号aのインクリメント(ステップS223)を経てゲーム内広告個数との比較(図7のステップS204)に戻る。
【0060】
画面上広告面積sizeが現時点最大画面上広告面積near_sizeより大きい場合(ステップS221のYes)、画面上広告面積sizeを現時点最大画面上広告面積near_sizeに設定し、仮カメラcameraを現時点カメラ設定near_cameraに設定する(ステップS222)。
【0061】
次いで、ゲーム内広告番号aをインクリメントし(ステップS223)、ゲーム内広告個数との比較(図7のステップS204)に戻る。
【0062】
図12は上記の処理により設定されたカメラによる表示画面の例を示しており、プレイヤキャラクタC1と敵キャラクタC2の会話のシーンの背後に広告A1が大きな面積かつ見やすい角度で自然に表示されている。また、上記の処理によりカメラを設定した後、視点および注視点の移動を一時中止させることにより、プレイヤに広告A1を視認させやすくする。なお、プレイヤから操作入力が所定回数されるまで、視点および注視点の移動を中止することもできる。
【0063】
また、図13は比較のために上記のようなカメラ設定処理を行わなかった場合の表示画面の例を示しており、通常の会話カメラの視点に基づき、プレイヤキャラクタC1と敵キャラクタC2の目線の高さからの表示画面となり、背後の広告(A1)が表示されていない。ここで、通常の会話カメラの注視点位置は、会話中点座標talk_centerに設定されている。また、通常の会話カメラの視点位置は、プレイヤキャラクタが敵キャラクタと接触距離以内になる直前の視点に基づいて設定されている。
【0064】
<他のゲーム等への適用例>
上述した例では、アドベンチャーモードにおいてプレイヤキャラクタ(第一のオブジェクト)が仮想空間内を移動し、敵キャラクタ(第二のオブジェクト)の接触距離以内に入ったというイベントを契機に開始される会話モード(進行が主にシステム側に依存)のカメラ設定として、効果的な広告の視聴を促す視点および注視点を自然に与えている。従って、何らかのイベントの発生によりカメラ制御の主導権がシステム側に移行するタイプのゲーム等であれば、同様に適用することが可能である。
【0065】
<野球ゲームへの適用例>
野手のプレイヤキャラクタ(第一のオブジェクト)がボール(第二のオブジェクト)に飛びついてキャッチをし、制御プログラムによってファインプレーであると判断された場合、このキャッチ場面のリプレイ再生(イベント)を行う。なお、リプレイ中はプレイヤの操作による視点および注視点の移動制御が不可になる。
【0066】
この際、上述の会話中点座標talk_centerは、例えばボール軌道上の任意点(例えば最高到達点と落下点の中間点)とする。そして、広告対象点座標disp_targetから会話中点座標talk_centerを通る半直線上に設定する仮カメラ座標camera_posは、例えば広告対象点座標disp_targetから会話中点座標talk_centerの距離に、プレイヤキャラクタの顔基準座標P1とボール軌道上の基準座標P2との距離の2倍を足した位置座標とする。これにより、広告、プレイヤキャラクタ、およびボールの弾道が表示画面に含まれるようになる。
【0067】
<サッカーゲームへの適用例>
プレイヤキャラクタ(第一のオブジェクト)によって悪質なファウルがされると、審判キャラクタ(第二のオブジェクト)によってイエローカード等が出されるイベント(プレイヤによる視点および注視点の移動制御が不可になる)が発生する。
【0068】
この際、上述の会話中点座標talk_centerは、例えばプレイヤキャラクタと審判キャラクタとの顔の辺りの中心点またはファウル位置の所定高さの点とする。この後は、上述のアドベンチャーモードの処理と同様である。
【0069】
また、プレイヤキャラクタがシュート等をしてゴールを決めた場合に、リプレイ再生(イベント)を行う。なお、上述の野球ゲームと同様、リプレイ中はプレイヤの操作による視点及び注視点の移動制御が不可になる。
【0070】
この際、上述の会話中点座標talk_centerは、例えばゴールを決めたプレイヤキャラクタ(第一のオブジェクト)の顔基準座標P1とゴール(第二のオブジェクト)の基準座標P2との中心点とする。そして、広告対象点座標disp_targetから会話中点座標talk_centerを通る半直線上に設定する仮カメラ座標camera_posは、例えば広告対象点座標disp_targetから会話中点座標talk_centerの距離に、プレイヤキャラクタの顔基準座標P1とゴールの基準座標P2の距離の2倍を足した位置座標とする。これにより、広告、プレイヤキャラクタ、およびゴールが表示画面に含まれるようになる。
【0071】
<レースゲームへの適用例>
レース中に自車(第一のオブジェクト)が1位走行中等の敵車(第二のオブジェクト)を抜いた場合、レース終了後にリプレイ再生(イベント)を行う。
【0072】
この際、上述の会話中点座標talk_centerは、抜いた時の自車の基準座標P1と敵車の基準座標P2の中心点または道路に設定されたパスの中心点とする。そして、広告対象点座標disp_targetから会話中点座標talk_centerを通る半直線上に設定する仮カメラ座標camera_posは、例えば広告対象点座標disp_targetから会話中点座標talk_centerの距離に、自車の基準座標P1と敵車の基準座標P2の距離の2倍を足した位置座標とする。これにより、広告、自車、および敵車が表示画面に含まれるようになる。
【0073】
<総括>
以上説明したように、本実施形態によれば、自然な形で効果的に広告を表示させることができ、広告料収入の増大に寄与することができる。
【0074】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【0075】
1 画像処理装置
101 CPU
102 システムメモリ
103 記憶装置
104 ブートROM
105 ペリフェラルI/F
106 バスアービタ
107 GPU
108 グラフィックメモリ
109 モニタ
110 オーディオプロセッサ
111 オーディオメモリ
112 スピーカ
113 通信I/F
【技術分野】
【0001】
本発明は、ビデオゲームやCG(Computer Graphics)ビデオ等における表示画像の生成技術に関する。
【背景技術】
【0002】
広告ビジネスの発展により、ビデオゲームやCGビデオ等の表示画像の中に広告を挿入するケースが増えてきている(例えば、特許文献1参照。)。例えば、町並みの風景画像の中に所定の広告看板の画像を表示する等により、不自然さのない形で広告の挿入が行われている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−58912号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ビデオゲームやCGビデオ等の表示画像の中に広告を挿入する場合、広告料は、視聴者に広告が提示される回数や提示される広告の態様に応じたものとなる。
【0005】
昨今では、ビデオゲーム等の中にブラックボックス化された広告管理プログラムモジュールを埋め込み、広告画像の割り当てと広告提供状態の測定とを自動に行うシステムも導入されつつある。この場合、広告管理プログラムモジュールは、予めゲーム内に設けられたブランクの広告看板等に所定の広告画像を自動に割り当てるとともに、広告看板等の表示画面上の面積割合や表示継続時間等に応じて有効な広告表示であるか否かを判断して課金ポイントを発生させ、ネットワーク経由でセンタ側に課金ポイント情報を送信する。また、広告管理プログラムモジュールは、ネットワーク経由で最新の広告画像もセンタ側から取得する。
【0006】
ネットワーク利用によるセンタ管理であるか否かにかかわらず、広告料収入を増やすためには、効果的な広告を行うことが不可欠である。しかし、単に大きな面積割合で長時間にわたって広告画像を表示すればよいというものではなく、自然な広告提示となることが肝要である。あまりに強引な広告提示は視聴者の反感を招き、広告効果を却って低下させてしまい、ひいてはビデオゲームやCGビデオ等の主たるコンテンツ自体の価値を低下させてしまいかねない。
【0007】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、自然な形で効果的に広告を表示させることのできる画像処理プログラムおよびコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、コンピュータを、仮想空間内のオブジェクトとして、少なくとも第一のオブジェクト、第二のオブジェクトおよび注視オブジェクトを仮想空間内に配置する配置手段、仮想空間内に設定される視点および注視点に基づいて、前記オブジェクトを座標変換して画面に表示する手段、プレイヤからの操作に基づいて仮想空間内で前記第一のオブジェクトを移動させる手段、プレイヤからの操作に基づいて仮想空間内で前記視点および注視点を移動制御する手段、仮想空間内を移動する前記第二のオブジェクトと、前記第一のオブジェクトとの関係に基づくイベントを発生させる手段、前記イベントが発生した場合に、前記第一のオブジェクトおよび/または前記第二のオブジェクトの座標位置に応じて前記イベントの中心点を決定する手段、前記イベントが発生した場合に、前記注視オブジェクトに定められた対象点を注視点に設定し、当該注視点を始点として、前記イベントの中心点を通過する半直線上に、前記視点を設定する設定手段として機能させる画像処理プログラムを要旨としている。
【0009】
また、請求項2に記載されるように、請求項1に記載の画像処理プログラムにおいて、前記設定手段により前記視点および注視点を設定した後、当該視点および注視点の前記移動制御を一時停止するようにすることができる。
【0010】
また、請求項3に記載されるように、請求項1または2のいずれか一項に記載の画像処理プログラムにおいて、前記配置手段は、前記仮想空間内に複数の注視オブジェクトを配置し、前記設定手段は、前記イベントの中心点から前記注視オブジェクトへのベクトル、および前記注視オブジェクトの法線ベクトルに基づいて算出される傾きが、所定角度以上の前記注視オブジェクトと、前記仮視点と前記注視オブジェクトの間に他のオブジェクトが存在する前記注視オブジェクトとを除外し、前記画面に最も大きく表示される注視オブジェクトを選択し、当該選択した注視オブジェクトの前記対象点を注視点に設定するようにすることができる。
【0011】
また、請求項4に記載されるように、請求項1乃至3のいずれか一項に記載の画像処理プログラムにおいて、前記視点から注視点までの上下角度を算出し、当該上下角度が所定角度以上である場合に、前記注視オブジェクトの対象点を前記注視オブジェクトの下部に定めるようにすることができる。
【0012】
また、請求項5に記載されるように、請求項1乃至4のいずれか一項に記載の画像処理プログラムにおいて、前記半直線上に設定される視点の位置は、前記第一のオブジェクトと前記第二のオブジェクトとの距離に基づいて設定されるようにすることができる。
【0013】
また、請求項6に記載されるように、請求項1乃至5のいずれか一項に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体として構成することができる。
【発明の効果】
【0014】
本発明の画像処理プログラムおよびコンピュータ読み取り可能な記録媒体にあっては、自然な形で効果的に広告を表示させることができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図2】画像処理装置内で処理に用いられるデータ例を示す図である。
【図3】実施形態の処理例を示すフローチャートである。
【図4】ビュー空間および射影空間の例を示す図である。
【図5】画面例を示す図(その1)である。
【図6】画面例を示す図(その2)である。
【図7】カメラ設定処理の例を示すフローチャート(その1)である。
【図8】カメラ設定処理の例を示すフローチャート(その2)である。
【図9】カメラ設定処理の例を示すフローチャート(その3)である。
【図10】カメラ設定処理における各種計算対象の説明図(その1)である。
【図11】カメラ設定処理における各種計算対象の説明図(その2)である。
【図12】画面例を示す図(その3)である。
【図13】画面例を示す図(その4)である。
【発明を実施するための形態】
【0016】
以下、本発明の好適な実施形態につき説明する。なお、以下では画像処理装置としてビデオゲーム装置に適用した場合について説明する。
【0017】
<構成>
図1は本発明の一実施形態にかかる画像処理装置1の構成例を示す図である。
【0018】
図1において、ビデオゲーム装置等の画像処理装置1は、主たる制御動作を行うCPU(Central Processing Unit)101と、実行中のプログラムおよびデータを保持するRAM(Random Access Memory)等のシステムメモリ102と、制御プログラムおよび各種データを保持するROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ、CD(Compact Disk)ドライブ、DVD(Digital Versatile Disk)ドライブ等の記憶装置103と、起動プログラムを保持するブートROM104と、ボタン、ハンドル、アクセルペダル、ブレーキペダル等のペリフェラルデバイスとのインタフェースを行うペリフェラルI/F(Interface)105とを備え、これらはシステムバスの調停を行うバスアービタ106に接続されている。
【0019】
また、バスアービタ106には、グラフィックメモリ108を用いてポリゴンを使用した3次元グラフィックスの描画処理を行うGPU(Graphics Processing Unit)107が接続され、このGPU107には表示用のモニタ109が接続されている。また、バスアービタ106には、オーディオメモリ111を用いて音声出力を行うオーディオプロセッサ110が接続され、このオーディオプロセッサ110には音声出力用のスピーカ112が接続されている。更に、バスアービタ106には通信I/F113が接続され、通信I/F113の他端はネットワークに接続され、他のビデオゲーム装置や管理用サーバに接続される。
【0020】
図2は画像処理装置1内で処理に用いられるデータ例を示す図である。データには、ステージ毎ゲーム内広告データとモデル関連データと一時的データとが含まれる。
【0021】
ステージ毎ゲーム内広告データには、ゲームの進行により遷移する各ステージに対応したステージ#1ゲーム内広告データ、ステージ#2ゲーム内広告データ、・・が含まれる。ステージ#1ゲーム内広告データ、ステージ#2ゲーム内広告データ、・・のそれぞれには、ゲーム内広告個数と、ゲーム内広告毎のゲーム内広告番号、4隅の頂点座標、法線ベクトル、内容確認可能最大距離、広告画像等が含まれる。4隅の頂点座標とは、矩形状の広告の輪郭を特定する3次元座標である。法線ベクトルとは、矩形状の広告面の向きを表す3次元ベクトルである。内容確認可能最大距離とは、広告の表示内容に応じ、内容が判別可能な最大の距離(視点となる仮想カメラと広告面との距離)である。
【0022】
モデル関連データには、プレイヤキャラクタデータと敵キャラクタデータと視線透過判定用ステージモデルとが含まれている。
【0023】
プレイヤキャラクタデータは、主としてプレイヤの操作によって制御されるキャラクタのデータであり、一般的な3Dデータ等の他に顔基準座標を含んでいる。顔基準座標は、例えば、首のやや上の3次元座標である。
【0024】
敵キャラクタデータは、プレイヤキャラクタと敵対するキャラクタのデータであり、一般的な3Dデータ等の他に行動スクリプトと顔基準座標を含んでいる。行動スクリプトは、敵キャラクタの行動開始条件と行動内容とを記述したものである。例えば、その敵キャラクタから追尾開始距離以内にプレイヤキャラクタが入ったことを検知すると、その敵キャラクタはプレイヤキャラクタの追尾を開始する。また、その敵キャラクタから接触距離以内にプレイヤキャラクタが入ったことを検知すると、その敵キャラクタはプレイヤキャラクタとの会話を開始する。
【0025】
視線透過判定用ステージモデルは、構造物等の輪郭を簡略化し、視線が透過するか否かを判定するためのモデルデータである。
【0026】
一時的データには、会話中点座標talk_center、現時点最大画面上広告面積near_size、現時点カメラ設定near_camera、ゲーム内広告番号a、広告中点座標disp_center、会話中点→広告中点ベクトルtalk_to_disp、広告傾きdisp_rot、カメラ視線傾きup_rot、広告下端中点座標disp_low、広告対象点座標disp_target、キャラクタ間距離charactor_distance、広告→会話中点ベクトルdisp_to_talk、仮カメラ座標camera_pos、仮カメラcamera、画面上広告面積sizeが含まれる。それぞれの意味については後述する。
【0027】
<動作>
図3は上記の実施形態の処理例を示すフローチャートである。
【0028】
なお、図3ではゲームの流れを主に示してあるため、表示画像の生成については特に示していない。表示画像の生成に関しては、CPU101(図1)の制御のもと、ゲームロジックに従って表示すべきオブジェクトのモデルデータが仮想3次元空間内に配置され、GPU107内のバーテックスシェーダおよびピクセルシェーダの処理により、視点(仮想カメラ)から見た2次元画像に変換されて生成される。視点と注視点は、プレイヤの操作により移動するオブジェクトの移動に伴って、そのオブジェクトを画面に含むように移動制御されてもよいし、プレイヤの操作(十字キーやLRボタン等)に応じて移動してもよい。
【0029】
バーテックスシェーダによる処理として、ポリゴンの頂点のビュー空間および射影空間への変換、ラスタライズ等が行われる。ピクセルシェーダによる処理として、ポリゴンの面へのテクスチャリング等が行われる。
【0030】
図4(a)はビュー空間の例を示している。ビュー空間は視点VPを基準とした座標空間であり、視点VPから視方向に対して横軸がx軸、縦軸がy軸、奥行きがz軸となる。視点VPの視方向に対してx軸方向およびy軸方向にそれぞれ画角だけ振った範囲の、視点VPに近い側には近クリップ平面CP1が設定され、遠い側には遠クリップ平面CP2が設定される。近クリップ平面CP1と遠クリップ平面CP2と画角を示す面で囲われる6面体は視錐台と呼ばれ、その内部に配置されるモデル(オブジェクト)が描画対象となる。視錐台の位置は、ビデオゲームの場合、プレイヤ(遊戯者)が操作手段により操作するプレイヤキャラクタを含むように決定される。図4(b)は射影空間の例を示しており、図4(a)に示したビュー空間を、−1≦x≦1、−1≦y≦1、0≦z≦1の範囲に変換したものである。
【0031】
図3に戻り、処理を開始すると(ステップS101)、プレイヤの操作に応じて3次元仮想空間内をプレイヤキャラクタが移動するアドベンチャーモードの処理(ステップS102)を行う。
【0032】
アドベンチャーモードの処理(ステップS102)においては、いずれかの敵キャラクタが追尾開始距離に入ったプレイヤキャラクタを検知すると(ステップS103のYes)、プレイヤキャラクタの追尾を開始する(ステップS104)。図5は、アドベンチャーモードにおいて、プレイヤキャラクタC1が敵キャラクタC2の追尾開始距離内に入ったことにより追尾が開始される時点の画面例を示している。なお、A1、A2は広告(広告看板)である。
【0033】
図3に戻り、更に、その敵キャラクタが接触距離に入ったプレイヤキャラクタを検知すると(ステップS105のYes)、会話モードの処理(ステップS106)に移行する。図6は、アドベンチャーモードにおいて、プレイヤキャラクタC1が敵キャラクタC2に追いつかれて敵キャラクタC2の接触距離内に入ったことにより会話が開始される時点の画面例を示している。
【0034】
図3に戻り、会話モードの処理(ステップS106)に入ると、初めにカメラ設定処理(ステップS107)を行い、その後は通常の会話モードの処理を行う。カメラ設定処理の詳細は後述するが、そのシーンで表示可能な複数の広告の中から配置的に最も効果的な広告を選択し、最も効果的なカメラ設定(視点および注視点)を決定する。なお、カメラ設定処理により設定された視点および注視点は、一定時間またはプレイヤからの操作があるまで等の所定の間、移動制御が停止され、広告を注視させることを促す。
【0035】
そして、会話モードの後にゲーム終了であるか否か判断し(ステップS108)、ゲーム終了でない場合(ステップS108のNo)はアドベンチャーモードの処理(ステップS102)に戻り、ゲーム終了である場合(ステップS108のYes)は処理を終了する(ステップS109)。
【0036】
図7〜図9はカメラ設定処理(図3のステップS107)の例を示すフローチャートである。なお、カメラ設定処理は図1のCPU101による処理を想定しているが、GPU107による処理としてもよい。
【0037】
図7において、カメラ設定処理を開始すると(ステップS201)、プレイヤキャラクタの顔と敵キャラクタの顔との中点座標を算出し、会話中点座標talk_centerに設定する(ステップS202)。図10はプレイヤキャラクタC1と敵キャラクタC2の配置を概略的に示しており、プレイヤキャラクタC1の顔基準座標P1と敵キャラクタC2の顔基準座標P2を結んだ線分の中点座標が会話中点座標talk_centerとなる。
【0038】
図7に戻り、現時点最大画面上広告面積near_sizeに「0」を設定し、現時点カメラ設定near_cameraに通常の会話カメラを設定し、ゲーム内広告番号aに「0」を設定する(ステップS203)。
【0039】
次いで、ゲーム内広告番号aが当該ステージ内のゲーム内広告個数以上であるか否か判断し(ステップS204)、ゲーム内広告番号aが当該ステージ内のゲーム内広告個数以上である場合(ステップS204のYes)、現時点カメラ設定near_cameraをゲームのカメラに設定し(図9のステップS224)、処理を終了する(図9のステップS225)。
【0040】
ゲーム内広告番号aが当該ステージ内のゲーム内広告個数以上でない場合(ステップS204のNo)、当該ステージ内のa番目の広告画面の4隅の頂点の中点座標を算出し、広告中点座標disp_centerに設定する(ステップS205)。図10の上方に頂点V1〜V4で囲まれる広告A1の中点座標が広告中点座標disp_centerとなる。
【0041】
図7に戻り、会話中点座標talk_centerから広告中点座標disp_centerへ向くベクトルを算出し、会話中点→広告中点ベクトルtalk_to_dispに設定する(ステップS206)。図10に、会話中点座標talk_centerから広告中点座標disp_centerへ向く会話中点→広告中点ベクトルtalk_to_dispを示す。
【0042】
図7に戻り、会話中点→広告中点ベクトルtalk_to_dispに対するa番目の広告の傾きを法線から算出し、広告傾きdisp_rotに設定する(ステップS207)。図10に、会話中点→広告中点ベクトルtalk_to_dispと広告A1の法線Nのなす角としての広告傾きdisp_rotを示す。
【0043】
図7に戻り、会話中点→広告中点ベクトルtalk_to_dispが所定値(例えば67.5°)より小さいか否か判断する(ステップS208)。会話中点→広告中点ベクトルtalk_to_dispが所定値より小さくない場合(大きい場合)(ステップS208のNo)、その広告の視認は角度的に困難であると判断し、ゲーム内広告番号aのインクリメント(図9のステップS223)を経てゲーム内広告個数との比較(ステップS204)に戻る。
【0044】
会話中点→広告中点ベクトルtalk_to_dispが所定値より小さい場合(ステップS208のYes)、会話中点→広告中点ベクトルtalk_to_dispのxz平面に対する傾きを算出し、カメラ視線傾きup_rotに設定する(ステップS209)。図10に、xz平面に対する会話中点→広告中点ベクトルtalk_to_dispの傾きであるカメラ視線傾きup_rotを示す。
【0045】
次に、図8において、カメラ視線傾きup_rotが所定値より小さいか否か判断する(ステップS210)。カメラ視線傾きup_rotが所定値より小さくない場合(大きい場合)(ステップS210のNo)、その広告を視認するには上を向きすぎることとなって不自然になると判断し、ゲーム内広告番号aのインクリメント(図9のステップS223)を経てゲーム内広告個数との比較(ステップS204)に戻る。
【0046】
カメラ視線傾きup_rotが所定値より小さい場合(ステップS210のYes)、当該ステージ内のa番目の広告画面の下2隅の頂点の中点座標を算出し、広告下端中点座標disp_lowに設定する(ステップS211)。図10に、広告A1の頂点V3、V4の中点座標としての広告下端中点座標disp_lowを示す。
【0047】
図8に戻り、カメラ視線傾きup_rotに応じて、傾きが少なければ広告中点座標disp_center、傾きが大きければ広告下端中点座標disp_lowに近づく点を算出し、広告対象点座標disp_targetに設定する(ステップS212)。すなわち、カメラの視線が上方を向くと不自然さが強くなるため、カメラの視線の傾きを下げる補正を行う。図10に、広告中点座標disp_centerと広告下端中点座標disp_lowの間に設定された広告対象点座標disp_targetを示す。なお、広告が目線よりも下に掲示される環境にあっては、上記とは逆方向に、広告中点座標と広告上端中点座標の間で補正を行う。
【0048】
図8に戻り、会話中点座標talk_centerから広告対象点座標disp_targetへのベクトルを算出し、会話中点→広告中点ベクトルtalk_to_dispを更新する(ステップS213)。図11に、従前の会話中点→広告中点ベクトルtalk_to_dispに代えて、会話中点座標talk_centerから広告対象点座標disp_targetへのベクトルである新たな会話中点→広告中点ベクトルtalk_to_dispを示す。
【0049】
図8に戻り、会話中点→広告中点ベクトルtalk_to_dispと視線透過判定用ステージモデルとが交差していないか否か判断する(ステップS214)。すなわち、会話中点座標talk_centerと広告対象点座標disp_targetの間に遮る物体が存在しないかどうか判断する。
【0050】
会話中点→広告中点ベクトルtalk_to_dispと視線透過判定用ステージモデルとが交差している場合(ステップS214のNo)、プレイヤにとって、その広告の視認は困難であるため、ゲーム内広告番号aのインクリメント(図9のステップS223)を経てゲーム内広告個数との比較(ステップS204)に戻る。
【0051】
会話中点→広告中点ベクトルtalk_to_dispと視線透過判定用ステージモデルとが交差していない場合(ステップS214のYes)、プレイヤキャラクタの顔と敵キャラクタの顔との距離を算出し、キャラクタ間距離charactor_distanceに設定する(ステップS215)。図11に、プレイヤキャラクタC1の顔基準座標P1と敵キャラクタC2の顔基準座標P2の距離であるキャラクタ間距離charactor_distanceを示す。
【0052】
図8に戻り、広告対象点座標disp_targetから会話中点座標talk_centerへのベクトルを算出し、広告→会話中点ベクトルdisp_to_talkに設定する(ステップS216)。広告→会話中点ベクトルdisp_to_talkは会話中点→広告中点ベクトルtalk_to_dispの方向を反転させたものである。
【0053】
次いで、広告→会話中点ベクトルdisp_to_talkの方向は維持しつつ、長さをキャラクタ間距離charactor_distanceの2倍に調整したベクトルを会話中点座標talk_centerに足した座標を算出し、仮カメラ座標camera_posに設定する(ステップS217)。なお、2倍という長さは経験上決定された一例であり、適宜変更することができる。図11に、会話中点座標talk_centerから、広告→会話中点ベクトルdisp_to_talk(会話中点→広告中点ベクトルtalk_to_dispの逆方向)に沿って、広告A1とは反対側にキャラクタ間距離charactor_distanceの2倍の距離だけ離れた場所に設定した仮カメラ座標camera_posを示す。
【0054】
次に、図9において、仮カメラ座標camera_posをカメラ位置、広告対象点座標disp_targetをカメラが見る点(視方向に存在する点)として、カメラを作成し、仮カメラcameraに設定する(ステップS218)。
【0055】
次いで、a番目の広告の4隅の点に対して、仮カメラcameraを使って視野変換および透視変換を行い、2D画面上に変換された4点から画面上での面積を求め、画面上広告面積sizeに設定する(ステップS219)。
【0056】
次いで、画面上広告面積sizeが所定の基準値(例えば、画面の面積の2%)以上であるか否か判断する(ステップS220)。
【0057】
画面上広告面積sizeが所定の基準値以上でない場合(ステップS220のNo)、プレイヤにとって、その広告の視認は面積的に困難であるため、ゲーム内広告番号aのインクリメント(ステップS223)を経てゲーム内広告個数との比較(図7のステップS204)に戻る。
【0058】
画面上広告面積sizeが所定の基準値以上である場合(ステップS220のYes)、画面上広告面積sizeが現時点最大画面上広告面積near_sizeより大きいか否か判断する(ステップS221)。
【0059】
画面上広告面積sizeが現時点最大画面上広告面積near_sizeより大きくない場合(ステップS221のNo)、その広告よりも面積的に有利な広告が既に存在すると判断し、ゲーム内広告番号aのインクリメント(ステップS223)を経てゲーム内広告個数との比較(図7のステップS204)に戻る。
【0060】
画面上広告面積sizeが現時点最大画面上広告面積near_sizeより大きい場合(ステップS221のYes)、画面上広告面積sizeを現時点最大画面上広告面積near_sizeに設定し、仮カメラcameraを現時点カメラ設定near_cameraに設定する(ステップS222)。
【0061】
次いで、ゲーム内広告番号aをインクリメントし(ステップS223)、ゲーム内広告個数との比較(図7のステップS204)に戻る。
【0062】
図12は上記の処理により設定されたカメラによる表示画面の例を示しており、プレイヤキャラクタC1と敵キャラクタC2の会話のシーンの背後に広告A1が大きな面積かつ見やすい角度で自然に表示されている。また、上記の処理によりカメラを設定した後、視点および注視点の移動を一時中止させることにより、プレイヤに広告A1を視認させやすくする。なお、プレイヤから操作入力が所定回数されるまで、視点および注視点の移動を中止することもできる。
【0063】
また、図13は比較のために上記のようなカメラ設定処理を行わなかった場合の表示画面の例を示しており、通常の会話カメラの視点に基づき、プレイヤキャラクタC1と敵キャラクタC2の目線の高さからの表示画面となり、背後の広告(A1)が表示されていない。ここで、通常の会話カメラの注視点位置は、会話中点座標talk_centerに設定されている。また、通常の会話カメラの視点位置は、プレイヤキャラクタが敵キャラクタと接触距離以内になる直前の視点に基づいて設定されている。
【0064】
<他のゲーム等への適用例>
上述した例では、アドベンチャーモードにおいてプレイヤキャラクタ(第一のオブジェクト)が仮想空間内を移動し、敵キャラクタ(第二のオブジェクト)の接触距離以内に入ったというイベントを契機に開始される会話モード(進行が主にシステム側に依存)のカメラ設定として、効果的な広告の視聴を促す視点および注視点を自然に与えている。従って、何らかのイベントの発生によりカメラ制御の主導権がシステム側に移行するタイプのゲーム等であれば、同様に適用することが可能である。
【0065】
<野球ゲームへの適用例>
野手のプレイヤキャラクタ(第一のオブジェクト)がボール(第二のオブジェクト)に飛びついてキャッチをし、制御プログラムによってファインプレーであると判断された場合、このキャッチ場面のリプレイ再生(イベント)を行う。なお、リプレイ中はプレイヤの操作による視点および注視点の移動制御が不可になる。
【0066】
この際、上述の会話中点座標talk_centerは、例えばボール軌道上の任意点(例えば最高到達点と落下点の中間点)とする。そして、広告対象点座標disp_targetから会話中点座標talk_centerを通る半直線上に設定する仮カメラ座標camera_posは、例えば広告対象点座標disp_targetから会話中点座標talk_centerの距離に、プレイヤキャラクタの顔基準座標P1とボール軌道上の基準座標P2との距離の2倍を足した位置座標とする。これにより、広告、プレイヤキャラクタ、およびボールの弾道が表示画面に含まれるようになる。
【0067】
<サッカーゲームへの適用例>
プレイヤキャラクタ(第一のオブジェクト)によって悪質なファウルがされると、審判キャラクタ(第二のオブジェクト)によってイエローカード等が出されるイベント(プレイヤによる視点および注視点の移動制御が不可になる)が発生する。
【0068】
この際、上述の会話中点座標talk_centerは、例えばプレイヤキャラクタと審判キャラクタとの顔の辺りの中心点またはファウル位置の所定高さの点とする。この後は、上述のアドベンチャーモードの処理と同様である。
【0069】
また、プレイヤキャラクタがシュート等をしてゴールを決めた場合に、リプレイ再生(イベント)を行う。なお、上述の野球ゲームと同様、リプレイ中はプレイヤの操作による視点及び注視点の移動制御が不可になる。
【0070】
この際、上述の会話中点座標talk_centerは、例えばゴールを決めたプレイヤキャラクタ(第一のオブジェクト)の顔基準座標P1とゴール(第二のオブジェクト)の基準座標P2との中心点とする。そして、広告対象点座標disp_targetから会話中点座標talk_centerを通る半直線上に設定する仮カメラ座標camera_posは、例えば広告対象点座標disp_targetから会話中点座標talk_centerの距離に、プレイヤキャラクタの顔基準座標P1とゴールの基準座標P2の距離の2倍を足した位置座標とする。これにより、広告、プレイヤキャラクタ、およびゴールが表示画面に含まれるようになる。
【0071】
<レースゲームへの適用例>
レース中に自車(第一のオブジェクト)が1位走行中等の敵車(第二のオブジェクト)を抜いた場合、レース終了後にリプレイ再生(イベント)を行う。
【0072】
この際、上述の会話中点座標talk_centerは、抜いた時の自車の基準座標P1と敵車の基準座標P2の中心点または道路に設定されたパスの中心点とする。そして、広告対象点座標disp_targetから会話中点座標talk_centerを通る半直線上に設定する仮カメラ座標camera_posは、例えば広告対象点座標disp_targetから会話中点座標talk_centerの距離に、自車の基準座標P1と敵車の基準座標P2の距離の2倍を足した位置座標とする。これにより、広告、自車、および敵車が表示画面に含まれるようになる。
【0073】
<総括>
以上説明したように、本実施形態によれば、自然な形で効果的に広告を表示させることができ、広告料収入の増大に寄与することができる。
【0074】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【0075】
1 画像処理装置
101 CPU
102 システムメモリ
103 記憶装置
104 ブートROM
105 ペリフェラルI/F
106 バスアービタ
107 GPU
108 グラフィックメモリ
109 モニタ
110 オーディオプロセッサ
111 オーディオメモリ
112 スピーカ
113 通信I/F
【特許請求の範囲】
【請求項1】
コンピュータを、
仮想空間内のオブジェクトとして、少なくとも第一のオブジェクト、第二のオブジェクトおよび注視オブジェクトを仮想空間内に配置する配置手段、
仮想空間内に設定される視点および注視点に基づいて、前記オブジェクトを座標変換して画面に表示する手段、
プレイヤからの操作に基づいて仮想空間内で前記第一のオブジェクトを移動させる手段、
プレイヤからの操作に基づいて仮想空間内で前記視点および注視点を移動制御する手段、
仮想空間内を移動する前記第二のオブジェクトと、前記第一のオブジェクトとの関係に基づくイベントを発生させる手段、
前記イベントが発生した場合に、前記第一のオブジェクトおよび/または前記第二のオブジェクトの座標位置に応じて前記イベントの中心点を決定する手段、
前記イベントが発生した場合に、前記注視オブジェクトに定められた対象点を注視点に設定し、当該注視点を始点として、前記イベントの中心点を通過する半直線上に、前記視点を設定する設定手段
として機能させる画像処理プログラム。
【請求項2】
請求項1に記載の画像処理プログラムにおいて、
前記設定手段により前記視点および注視点を設定した後、当該視点および注視点の前記移動制御を一時停止する
画像処理プログラム。
【請求項3】
請求項1または2のいずれか一項に記載の画像処理プログラムにおいて、
前記配置手段は、前記仮想空間内に複数の注視オブジェクトを配置し、
前記設定手段は、前記イベントの中心点から前記注視オブジェクトへのベクトル、および前記注視オブジェクトの法線ベクトルに基づいて算出される傾きが、所定角度以上の前記注視オブジェクトと、前記仮視点と前記注視オブジェクトの間に他のオブジェクトが存在する前記注視オブジェクトとを除外し、前記画面に最も大きく表示される注視オブジェクトを選択し、当該選択した注視オブジェクトの前記対象点を注視点に設定する
画像処理プログラム。
【請求項4】
請求項1乃至3のいずれか一項に記載の画像処理プログラムにおいて、
前記視点から注視点までの上下角度を算出し、当該上下角度が所定角度以上である場合に、前記注視オブジェクトの対象点を前記注視オブジェクトの下部に定める
画像処理プログラム。
【請求項5】
請求項1乃至4のいずれか一項に記載の画像処理プログラムにおいて、
前記半直線上に設定される視点の位置は、前記第一のオブジェクトと前記第二のオブジェクトとの距離に基づいて設定される
画像処理プログラム。
【請求項6】
請求項1乃至5のいずれか一項に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項1】
コンピュータを、
仮想空間内のオブジェクトとして、少なくとも第一のオブジェクト、第二のオブジェクトおよび注視オブジェクトを仮想空間内に配置する配置手段、
仮想空間内に設定される視点および注視点に基づいて、前記オブジェクトを座標変換して画面に表示する手段、
プレイヤからの操作に基づいて仮想空間内で前記第一のオブジェクトを移動させる手段、
プレイヤからの操作に基づいて仮想空間内で前記視点および注視点を移動制御する手段、
仮想空間内を移動する前記第二のオブジェクトと、前記第一のオブジェクトとの関係に基づくイベントを発生させる手段、
前記イベントが発生した場合に、前記第一のオブジェクトおよび/または前記第二のオブジェクトの座標位置に応じて前記イベントの中心点を決定する手段、
前記イベントが発生した場合に、前記注視オブジェクトに定められた対象点を注視点に設定し、当該注視点を始点として、前記イベントの中心点を通過する半直線上に、前記視点を設定する設定手段
として機能させる画像処理プログラム。
【請求項2】
請求項1に記載の画像処理プログラムにおいて、
前記設定手段により前記視点および注視点を設定した後、当該視点および注視点の前記移動制御を一時停止する
画像処理プログラム。
【請求項3】
請求項1または2のいずれか一項に記載の画像処理プログラムにおいて、
前記配置手段は、前記仮想空間内に複数の注視オブジェクトを配置し、
前記設定手段は、前記イベントの中心点から前記注視オブジェクトへのベクトル、および前記注視オブジェクトの法線ベクトルに基づいて算出される傾きが、所定角度以上の前記注視オブジェクトと、前記仮視点と前記注視オブジェクトの間に他のオブジェクトが存在する前記注視オブジェクトとを除外し、前記画面に最も大きく表示される注視オブジェクトを選択し、当該選択した注視オブジェクトの前記対象点を注視点に設定する
画像処理プログラム。
【請求項4】
請求項1乃至3のいずれか一項に記載の画像処理プログラムにおいて、
前記視点から注視点までの上下角度を算出し、当該上下角度が所定角度以上である場合に、前記注視オブジェクトの対象点を前記注視オブジェクトの下部に定める
画像処理プログラム。
【請求項5】
請求項1乃至4のいずれか一項に記載の画像処理プログラムにおいて、
前記半直線上に設定される視点の位置は、前記第一のオブジェクトと前記第二のオブジェクトとの距離に基づいて設定される
画像処理プログラム。
【請求項6】
請求項1乃至5のいずれか一項に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図7】
【図8】
【図9】
【図10】
【図11】
【図5】
【図6】
【図12】
【図13】
【図2】
【図3】
【図4】
【図7】
【図8】
【図9】
【図10】
【図11】
【図5】
【図6】
【図12】
【図13】
【公開番号】特開2011−123673(P2011−123673A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2009−280915(P2009−280915)
【出願日】平成21年12月10日(2009.12.10)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願日】平成21年12月10日(2009.12.10)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
[ Back to top ]