JP5089147B2 - カメラ制御方法および該カメラ制御を取り入れたcgゲーム装置 - Google Patents

カメラ制御方法および該カメラ制御を取り入れたcgゲーム装置 Download PDF

Info

Publication number
JP5089147B2
JP5089147B2 JP2006318738A JP2006318738A JP5089147B2 JP 5089147 B2 JP5089147 B2 JP 5089147B2 JP 2006318738 A JP2006318738 A JP 2006318738A JP 2006318738 A JP2006318738 A JP 2006318738A JP 5089147 B2 JP5089147 B2 JP 5089147B2
Authority
JP
Japan
Prior art keywords
camera
character
screen
terrain
line segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006318738A
Other languages
English (en)
Other versions
JP2008132014A (ja
Inventor
康男 津森
誠也 山中
Original Assignee
株式会社タイトー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社タイトー filed Critical 株式会社タイトー
Priority to JP2006318738A priority Critical patent/JP5089147B2/ja
Publication of JP2008132014A publication Critical patent/JP2008132014A/ja
Application granted granted Critical
Publication of JP5089147B2 publication Critical patent/JP5089147B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、CG(コンピュータグラフィック)ゲームにおける3人称カメラの制御で、地形に合わせた視線を得るカメラ制御を行うことができるカメラ制御方法およびこのカメラ制御を取り入れたCGゲーム装置に関する。ここで「3人称カメラ」とは、画面上に現れる任意のキャラクタに対し、所定の位置関係で配置され、キャラクタを含む視界を撮影して画面として表示するカメラと定義する。
CGゲームなどにおいて3人称カメラ位置を主体キャラクタに対し変化させるカメラ位置を制御するゲーム装置が提案されている。
その1つとしてキャラクタの移動速度に合わせてカメラの軸を制御する3次元ゲーム装置が開示されている(特許文献1)。
これは、3次元ゲーム装置において移動体を操作情報に基づき移動させる場合、追従する位置に仮想カメラを設定し、この仮想カメラから見た視界画像を合成するものである。カメラの視点設定部は移動体を基準としたX,Y,Zの3軸方向の少なくとも一軸成分を視点移動制御方向として、視点移動制御方向への移動体の速度成分を制御関数として仮想カメラの視点位置を移動制御している。
一般のカメラ制御では、例えば、下りの坂道を下りる場合、カメラを通常より少し下に向けて先まで見通せるようにする必要があるが、この点については特許文献1におけるカメラ制御は、坂を下りている場合は下方向に移動するので、カメラの軸は下方向に向けることが可能である。しかしながら下り始めるまでは上下方向の移動がないので下方向にはカメラが向くことがない。下りの坂道にさしかかった所でカメラには下を向かせる必要があるがそのような制御はできない。
例えば、オートレースのバイクに追従してカメラ位置をZ軸方向に移動する場合、バイクが横方向(X軸方向)にΔXだけ速度を変化させたとき、カメラの視点位置をX軸方向に移動させ画面の中心より速度変化した方向にバイクを移動させて表示する。また、ジャンプなどで上方向(Y軸方向)にΔYだけ速度を変化させたとき、カメラの視点位置をY軸方向に移動させ画面の中心より上方向にバイクを移動させて表示し、臨場感を表現しているが、上述のように坂の上り下りなどに対してのカメラのピッチ軸の回転変化を行うものではない。
また、カメラを向ける目標との距離に応じてカメラ位置を変える方法が開示されている(特許文献2)。
これは、プレーヤキャラクタと他のキャラクタとの位置関係に係る視認性を高めることを目的とし、視線方向はプレーヤキャラクタPCと標的キャラクタTCとの中間位置を向くように制御し、プレーヤキャラクタPCと標的キャラクタTCとのライン差が大きくなるにつれて仮想カメラの俯角が大きくなるように制御するものである。
プレーヤキャラクタPCと標的キャラクタの距離に対応してカメラの俯角を制御するものであるが、プレーヤキャラクタPCと標的キャラクタが画面上に良好に入るように画面表示し、背景画との関係でキャラクタが進行すべき視界を適正にするものではない。
特開平11−146978号公報 特開2006−87600号公報
通常、プレイヤはゲームに登場する主人公キャラクタを操作して背景画面の中を移動制御するため、主人公キャラクタが進むべき遠方が明瞭に判別できる表示がなされることが要請される。
本発明は上記要請に応えるもので、その目的は、画面の地形に合わせたカメラの角度位置を得ることができ、上り坂の地形では遠くを見通す構図や下り坂,崖などでは足元を見やすくする構図にカメラの撮影画面を制御するカメラ制御方法および該カメラ制御を取り入れたCGゲーム装置を提供することにある。
前記目的を達成するために本発明の請求項1は、画面中を移動するキャラクタに対し、前記キャラクタを撮影した画像をモニタ画面に表示するCG画面の制御方法において、操作部からキャラクタの位置を移動させる操作がなされた場合、操作量に応じた位置にキャラクタを移動させ、前記キャラクタの移動位置に対応して追従設置されるようにカメラを設定し、前記カメラ設置位置とキャラクタを結ぶ延長上の線分であって、前記キャラクタから所定距離の線分先端が画面上に表示される地形面に対し交わるか否かを判断し、該判断で交わらない場合、前記線分先端が前記画面上に表示される地形面に対し略一致する位置になるように前記カメラの位置および光軸を前記キャラクタに対し移動・回転制御することを特徴とする。
本発明の請求項2は、請求項1記載の発明において前記交わるか否かの判断は所定の時間間隔で行い、交わらない場合には交わる方向に所定の角度だけカメラの光軸を回転させ、この動作を繰り返して前記地形面に対し略一致する位置になるまで制御することを特徴とする。
本発明の請求項3は、請求項2記載の発明において前記所定の角度ずつカメラの回転制御を繰り返し、前記線分先端が地形面に交わったとき、交わる前のカメラの回転位置に戻すことを特徴とする。
本発明の請求項4は、画面中を移動するキャラクタに対し、前記キャラクタを撮影した画像をモニタ画面に表示するCGゲーム装置において、操作部の操作にしたがってキャラクタを移動させるキャラクタ移動手段と、前記キャラクタの移動に従ってキャラクタを視界に捕らえるためのカメラ位置設定手段と、前記カメラ位置とキャラクタを結ぶ延長上の線分であって、前記キャラクタから所定距離の線分先端が画面上に表示される地形面に対し交わるか否かを判断し、該判断で交わらない場合、前記線分先端が前記画面上に表示される地形面に対し略一致する位置になるように前記カメラの位置および光軸を前記キャラクタに対し移動・回転制御する制御手段とを有し、前記キャラクタの移動と地形の変化に対応し、前記カメラからの視界が前記キャラクタを含めつつ空の部分と地形部分を所定の割合で画面に表示することを特徴とする。
本発明の請求項5は、請求項4記載の発明において前記制御手段は、交わるか否かの判断を所定の時間間隔で行い、交わらない場合には交わる方向に所定の角度だけカメラの光軸を回転させ、この動作を繰り返して前記地形面に対し略一致する位置になるまで制御することを特徴とする。
本発明の請求項6は、請求項5記載の発明において前記制御手段は、所定の角度ずつカメラの回転制御を繰り返し、前記線分先端が地形面に交わったとき、交わる前のカメラの回転位置に戻すことを特徴とする。
上記構成によれば、地形の面と視線の先端をヒットチェック(キャラクタから所定延長線上での所定距離先端が地形表面に交わっているか否かのチェック)してカメラの角度(ピッチ角)を制御するので、地形に合わせたカメラの角度を得ることができる。そのため、上り坂では空ではなく、地上を含めた視界位置で見ることができ、また、下り坂,崖などでは地形表示して足元の方を見やすくできる。
まず、本発明によるカメラ制御方法を適用するための手法について説明する。
本発明ではカメラ位置からプレイヤを通った延長線上にあるプレイヤからの距離Lの位置と地面などの面と交わっているかの判定を行い、交わっている場合はカメラの角度を上を見るように変更し、交わっていない場合は角度を下げるように変更するが、交わっているか否かのヒットチェックは以下の手法を用いている。
1)まず、入力データを以下の通り定義する。
直線の開始点と終了点の位置情報を(x,y,z) VECTOR start, endとする。
面(3頂点情報による3角形)情報の配列を(x,y,z) VECTOR vertex〔〕とする。
ここでいう VECTOR は(x,y,z)の要素を持つ変数の型を意味する。
以下で用いられる floatは一般的な浮動小数点型の変数の型を意味する。
vertex 〔〕は VECTOR 型の変数の配列を意味する。
上記定義で面を3角形にしたのは、一般的に3角形でヒットデータを持っていることが多いためである。4角形であると曲がった面ができる可能性があり不都合が生じる場合がある。
2)面の頂点情報より面の法線データを作成し面の方程式を得る。
面の方程式は ax + by + cz + d = 0・・・(1)である。
つぎに面の頂点データより面を構成する2つの直線のベクトルを求める。
VECTOR vec1 = vertex[1] - vertex[0] ・・・(2)
VECTOR vec2 = vertex[2] - vertex[0] ・・・(3)
さらに法線データ normal を外積を使って求める。
VECTOR normal = vec1X vec2 ・・・(4)
(4)式の normal の x,y,zが(1)式の a,b,cに相当する。なおXは外積計算を意味する。dは定数である。
ついで、面の方程式より dを求める。
(1)式よりd = -(ax + by + cz) であるから、
d = -(vertex[0].x * normal.x + vertex[0].y * normal.y + vertex[0].z * normal.z) ・・・(5)となる。
3)直線の方程式より2)で求めた面と直線の交点を求める。
直線は最初の位置と方向ベクトル(vec)、媒介変数(t)でもって表されるので、まず面と直線が交わる媒介変数(t)を求める。
そのために、入力データ startの各要素(x,y,z)を(1)式の面の方程式のx,y,zに代入して求めた値float q を、end - start のベクトルVECTOR aと(4)式の法線データ normal の内積の結果で割る。
(1)式に、start.x ,start.y,start.zおよびnormal.x, normal.y,normal.z を代入すると、
float q = (start.x * normal.x + start.y * normal.y + start.z * normal.z + d) ・・・(6)
VECTOR a = (end - start)・・・(7)であり、
end - start のベクトルと法線データ normal の内積float b は
float b = a ・(normal)・・・(8)となる。
したがって、媒介変数(t)は
float t = q/b ・・・(9)となる。
なお(end - start) はベクトルの引き算であり,・は内積計算を意味する。
上記計算において、b =0になった場合は、面と直線が平行になっていることを意味するので、交わることが無いことが確定する。
また、 tが 0 <= t <= 1以外のときは面が裏向きの場合か、交わっていない場合などで、これもヒットの対象から外す。
このようにして(9)式より媒介変数(t)を求めた後、直線の方程式より面と直線の交点を求めることになる。
交点pは、
VECTOR p = a * t + start・・・(10)
ここで a * tは VECTOR a の各要素に媒介変数 tを掛けることを意味する。
(10)式は無限の大きさを持つ場合の面と直線との交点pを求めるものである。
4)つぎに3)で求めた交点pは3角形の面の中を通っているのか、外を通っているかを調べる。
3)で求めた(10)式の交点pは直線が無限大の面と交わっている点であり、実際にチェックするべき3角形の面の中に存在しない可能性がある。そのため、3角形の中に存在するか否かを調べる。
そのためには、3)で求めた交点と3角形の各頂点を使って外積を求める。
・一つ目の頂点は
VECTOR vec1 = vertex[0] - p
VECTOR vec2 = vertex[1] - vertex[0]
VECTOR vec3 - 1 = vec1X vec2 である。

・二つ目の頂点は
VECTOR vec1 = vertex[1] - p
VECTOR vec2 = vertex[2] - vertex[1]
VECTOR vec3 - 2 = vec1X vec2 である。

・三つ目の頂点は
VECTOR vec1 = vertex[2] - p
VECTOR vec2 = vertex[0] - vertex[2]
VECTOR vec3 - 3 = vec1X vec2 である。
上記3頂点分すべて同じ向きであれば、3)で求めた交点は3角形の内部に存在する。
各頂点の向きを比べる方法は、2)で求めたベクトル normal との内積を計算する方法がある。今回、求めるベクトルは、2)で求めたベクトル normal と同じ向きか180°反対の向きのベクトルになるためである。
2)で求めたベクトル normal との内積の符号を比べて、すべて同じ符号であるならば3)で求めた交点は3角形の内部に存在することになる。
2)で求めたベクトル normal との内積は以下のようになる。
float nn1 = vec3-1 ・ normal ・・・(11)
float nn2 = vec3-2 ・ normal ・・・(12)
float nn3 = vec3-3 ・ normal ・・・(13)
したがって上記(11)(12)(13)式の符号を調べることによって交点pが3角形の内部に存在するか否かを判別できる。
つぎにプレイヤの位置とカメラ角度からカメラ位置を求めるための行列式を説明する。回転行列式は後述のカメラ位置を求める演算のときに用いられるものである。
ここでは3行3列の行列を説明する。CGの計算では4行4列の行列を使うことがあるが、回転の計算に影響を及ぼすのはこの部分であるので、3行3列とした。
X軸の回転角度をRx、Y軸の回転角度をRy、Z軸の回転角度をRzとした時の各軸の回転は以下のようになる。
・X軸の回転
Figure 0005089147
・・・(14)

・Y軸の回転
Figure 0005089147
・・・(15)
・Z軸の回転
Figure 0005089147
・・・(16)
これらを掛け合わせて回転行列を作成する。掛け合わせる順番により大きく結果が異なるが、掛け合わせる順番はシステム,ライブラリによって変わってくる。
今回はX,Y,Zの順番に掛けたものを説明する。
上の sin,cosを用いた式で説明すると見難くなるので、簡易版にて説明する。

行列の各要素に番号を与える。
Figure 0005089147
・・・(17)
? には各軸の記号を入れて表す。例えば、X軸の行列の要素は、Xm00,Xm01,Xm12,Xm10 ・・・
Y軸の行列の要素は、Ym00,Ym01,Ym12,Ym10 ・・・といった様にである。
まず、X軸の回転行列とY軸の回転行列を掛け合わせる。
掛け合わせた回転行列XYの各要素は、

XYm00 = Xm00 * Ym00 + Xm01 * Ym10 + Xm02 * Ym20
XYm01 = Xm00 * Ym01 + Xm01 * Ym11 + Xm02 * Ym21
XYm02 = Xm00 * Ym02 + Xm01 * Ym12 + Xm02 * Ym22
XYm10 = Xm10 * Ym00 + Xm11 * Ym10 + Xm12 * Ym20
XYm11 = Xm10 * Ym01 + Xm11 * Ym11 + Xm12 * Ym21
XYm12 = Xm10 * Ym02 + Xm11 * Ym12 + Xm12 * Ym22
XYm20 = Xm20 * Ym00 + Xm21 * Ym10 + Xm22 * Ym20
XYm21 = Xm20 * Ym01 + Xm21 * Ym11 + Xm22 * Ym21
XYm22 = Xm20 * Ym02 + Xm21 * Ym12 + Xm22 * Ym22

Figure 0005089147
・・・(18)
となる。この結果とZ軸の回転行列を同様に掛け合わせることにより最終的な回転行列を得ることが出来る。
つぎに図1Aを用いてカメラ位置,カメラ角度,プレイヤ位置および注視(注目)点チェック位置に対し上記手法の取り入れ方法を説明する。
図1Aに示すようにカメラの位置を(camera pos(x,y,z)),カメラ角度を(camera angle(x,y,z)),画面の中心に持っていきたい点、すなわち3人称の場合、プレイヤキャラクタの頭部または頭部より少し上になる位置を(player pos(x,y,z)),camera posから player pos を通過しcamera angle方向に伸びる直線の、player posから距離Lの長さにある点すなわち注視点チェック位置を(check pos(x,y,z)) とする。
カメラは通常プレイヤキャラクタを画面内に収めるように位置と角度が決定される。
カメラはこの固定された位置からプレイヤキャラクタを見るように角度を変更しても良いし、プレイヤキャラクタの移動に合わせて位置を移動しても良い。本発明によるCGゲーム機ではプレイヤが操作部によって固定された位置からカメラ角度を変えることができる。また、カメラとプレイヤキャラクタとは常に所定の位置関係になるようにCGゲーム機で設定されていれば、プレイヤの移動に従ってカメラ位置も移動する。
(i) まず、決定すべき点は、プレイヤキャラクタの位置player posである。これはプレイヤの操作部による入力などで操作され、操作情報の演算の結果、プレイヤキャラクタの位置が決定される。
(ii)次にカメラの角度camera angleを決定する。プレイヤの操作等からカメラの角度を変更する場合と、前回の演算結果を利用する場合がある。
(iii) 次にカメラの位置を決定する。カメラの位置はプレイヤキャラクタの位置とカメラの角度から求められる。プレイヤキャラクタから距離Lp離した位置をカメラの位置camera posとする。
カメラの位置camera posは、カメラのX軸,Y軸およびZ軸の角度(式(14)(15))を掛け合わせて回転行列XYを作り、これにZ軸の回転行列(式(16))を掛け合わせてX軸,Y軸およびZ軸の回転行列を作り、これにLpをベクトル成分として掛け合わせることにより求めることができる。
(iv) 次に地形と視線のヒットチェックを行う点check pos を求める。プレイヤキャラクタの位置からカメラの位置への逆ベクトルになるので、これも容易に求めることができる。
(v) 次に地形の面と視線のヒットチェックを行う点check pos とのヒットチェックを行う。
これは、上記1)2)3)4)の手法を用いてチェックすることができる。このときplayer pos(x,y,z)は VECTOR start に,check pos (x,y,z)は VECTOR endにそれぞれ対応して演算されることとなる。3)4)の交点を求めて、交点が3角形の中か外かの判定で、check pos とplayer posを結ぶ線分と地形の面が交わっていれば、check pos が地形に入り込んでいるので、カメラの角度が上を見るように変更される。
もし、交わっていなければ、地形より浮いているので、カメラの角度が下を見るように変更される。
この処理をそのまま繰り返すと、地形と境界線上で毎回上下に変更するようになるので、地形に入り込んでいる時、または、地形から浮いている時どちらか片方で、変更後のカメラの角度でもう一度ヒットチェックを行い、ヒットチェックの結果が変わった場合は変更したカメラの角度を使わないで、変更前のカメラの角度に戻すように処理を行う。
つぎに、本発明の実施の形態を詳しく説明する。
図1Bは、本発明によるカメラ制御方法を用いたCGゲーム装置の外観を示す斜視図である。このCGゲーム装置1は家庭用ゲーム機であり、プレイヤはパッド2の各ボタン,方向選択ボタンなどを操作することによりモニタ3に表示されている画面上のキャラクタを移動させたり、種々の動作を行わせたりしてゲームを進行させることができる。
このゲームは主人公キャラクタ4が斜面5を登っている状態が示されており、斜面5と空6の部分が画面の略中央になるようにカメラ位置制御されており、プレイヤは背景画の前方を良く見通すことができる視界を得ている。
図2は本発明によるカメラ制御方法を用いたCGゲーム装置の回路の実施の形態を示す回路ブロック図である。
家庭用ゲーム機1は、CPU10,画像処理回路11,メインバス13,メモリ回路14,外部記憶装置16,サウンド処理回路17およびスピーカ18より構成されている。
外部記憶装置16はCD−ROM,カード,DVDなどのメディアを装着してなる記憶部で、メディアにはゲームプログラムおよびそのデータを格納している。
ゲームプログラムはゲームを開始するための画面を表示させるゲーム開始起動ステップ,プレイヤからの移動操作などを受けてキャラクタ位置を移動させるゲーム操作ステップ,キャラクタ位置に対応しキャラクタ位置から所定の位置にカメラを設置するカメラ位置設定ステップ,プレイヤの操作に応じてゲーム処理を行うゲーム進行処理ステップ,カメラとキャラクタを結ぶ延長線であってキャラクタから所定距離の線分が地形の表面と交わっているか否かをチェックする衝突チェックステップ,衝突チェックで、所定距離の線分と地形の表面が一致(接触)しない場合、一致する方向にカメラのピッチを回転制御するカメラ角度調整ステップを含んでいる。
メモリ回路14はCPU10が処理を行う作業領域として用いられる他、演算結果などのデータを一時的に格納するRAMと、装置全体の制御を司る制御プログラムおよびそれに関連するデータを格納するROMを備えたものである。
画像処理回路11は、CPU10で演算処理された画像データを受信し、CRT3で表示するイメージデータに変換するものである。
サウンド処理回路17は、CPU10で演算処理されたサウンドデータを受信し、アナログ音声に変換しスピーカ18より背景音や音声などのサウンドを出力する。
CPU10は、ROMより制御プログラムを読み出し、装置全体の制御を行う機能を有する。外部記憶装置16に例えばCD−ROMが装着された場合、CPU10はCD−ROMのゲームプログラムを読み込み最初にゲーム開始の画面をCRTに表示させる。
CPU10では制御プログラムにより読み込まれたゲームプログラムにより、上記ステップの各機能を実現する。すなわち、ゲーム開始・進行部10a,ゲーム操作処理部10b,カメラ位置設定部10c,衝突チェック部10dおよびカメラ角度調整部10eの各機能を実現する。
図3は、キャラクタを含む画面をカメラ視点から撮影表示する際のカメラの制御方法を説明するための図である。
プレイヤは入力装置(パッド)を操作してキャラクタCを画面上で移動させることができる。(a)は水平の地面GOにキャラクタCが存在し、キャラクタCに対し、所定のカメラ角度で後方の所定距離にカメラVを設定し、カメラからキャラクタの頭部分を通って延長した長さLの点が地面に略一致するようにカメラの位置とピッチ角を調整した状態を示すものである。
カメラは、(b)に示すように画面の高さhに対し略1/2位置に地面と空の境界が配置されるように位置とピッチ角が調整される。
キャラクタCが移動して二点鎖線G1に示すような下り坂に差しかかった場合、当初のカメラのピッチ角の状態であると、(c)に示すようにキャラクタCの先の背景は空のみとなる。このような画面を回避するために、キャラクタCの移動により地形の傾きが変化した場合、(b)の図面になるようにカメラVの位置とピッチ角を僅かづつ移動・回転制御する。制御方法は僅かずつ修正するのではなく、地形の傾きが非常に大きくなったときにカメラの移動・回転を行うことも可能である。
また、二点鎖線G2に示すような上り坂に差しかかった場合、当初のカメラの位置とピッチ角の状態であると、()に示すようにキャラクタCの先の背景は地形のみとなる。このような画面を回避するために、キャラクタCの移動により地形の傾きが変化した場合、(b)の図面になるようにカメラVの位置とピッチ角を僅かづつ移動・回転制御する。制御方法は僅かずつ修正するのではなく、地形の傾きが相当傾いたときにカメラの移動・回転を行うことも可能である。
図4は、図1BのCGゲーム装置におけるゲームにおけるカメラ制御の流れを説明するためのフローチャートである。
ゲーム内ではプレイヤが入出力装置(パッド)2のボタン操作することにより操作情報がCPU10に送られる。ゲーム操作処理部10bは入力した操作情報に基づき例えばキャラクタの移動であれば、キャラクタを操作情報に対応した分移動させ、その画像がCRT3に表示される。カメラ位置設定部10cはキャラクタ(頭位置または頭の僅かに上位置)から距離Lp離れた位置であって、水平面に対しピッチ角θhになるようにカメラを設定する。水平の地表をキャラクタが移動している限りは、このカメラの位置とキャラクタの位置の相対的関係は保持するようにカメラの位置を移動させる(ステップ(以下「S」という)001)。
衝突チェック部10dは、キャラクタから延長される線分のLの長さの先端(チェック位置)のヒットチェックを行う。すなわち地面に対しチェック位置が交わっているか、または全く交わっていないかをチェックする(S002)。これは例えば1/60秒の間隔で行われ、上述したような演算式を使用して行われる。チェックの結果、図5(a)に示すように線分Lの先端部が交わって地面に入り込んでいる場合、カメラ角度調整部10eは2°上向きの角度修正する(S003)。そしてカメラの角度を調整する(S004)。これに伴い、カメラ位置もカメラ角度に沿った位置となる。
一方、チェックの結果、図6(a)に示すように線分Lの先端部が交わらず地面から離れている場合、カメラ角度調整部10eは1回のチェックで2°下向きの角度修正する(S004)。そして注視点が地面に交わったか否かをチェックする(S005)。注視点が地面に交わる位置に達ていると、1つ手前のチェック位置に戻り(S006)、カメラをその角度位置に調整する(S007)。それに伴いカメラ位置もカメラ角度に沿った位置となる。
このような動作の後、ゲームオーバーでなければ、再度S001からS002に戻り、同様な動作を繰り返し行う。この結果、注視点が地面から交わらない位置になった場合、1/60秒間隔で2°づつカメラのピッチ角が地面に交わる方向に制御され、図6(b)のように適正な視界を得られる位置にもたらされる。また、注視点が地面に交わる位置になった場合、1/60秒間隔で2°づつカメラのピッチ角が地面に交わらない方向に制御され、図5(b)のような適正な視界を得られる位置にもたらされる。
図7は、図4のフローチャートとは異なるカメラ制御方法を説明するためのフローチャートである。図4のフローチャートではカメラの角度2°づつ変更する場合について説明したが、この例はカメラの角度を1回の処理で確定させるものである。
S101はS001と同じ処理であり、カメラの位置とキャラクタの位置の相対的関係は保持するようにカメラの位置を移動させる
衝突チェック部10dは、キャラクタから延長される線分のLの長さの先端(チェック位置)のヒットチェックを行う。すなわち地面に対しチェック位置が交わっているか、または全く交わっていないかをチェックする(S102)。
チェックの結果、図5(a)に示すように線分Lの先端部が交わって地面に入り込んでいる場合、カメラ角度調整部10eはカメラ角度を上を見るように修正する(S103)。そして再度、S102でヒットチェックを行い、交わっているならば、連続してカメラの角度を上を見るように変更する。チェックの結果、図6(a)に示すように線分Lの先端部が交わらず地面から離れている位置になった場合は、カメラ角度調整部10eは下向きの角度修正する(S104)。そして注視点が地面に交わったか否かをチェックし(S105)、交わっていない場合はカメラの角度位置を下に見るように変更する(S105)。このようにして、注視点が地面に交わる位置に達すると、1つ手前のチェック位置に戻り(S106)、カメラをその角度位置に調整する(S107)。それに伴いカメラ位置もカメラ角度に沿った位置となる。
以上の実施の形態は家庭用ゲーム機について適用した例を説明したが、業務用ゲーム機,携帯ゲーム機,オンラインゲーム機などにも同様に適用できるものである。
また、注視点チェック動作を1/60秒間隔で行う例について説明したが、他の時間の間隔、例えば1/30秒,1/20秒などでチェックすることも可能である。1回のチェックでピッチ角を2°づつ修正しているが、この角度も他の角度、例えば1°,3°づつ修正しても良い。修正方法として注視点が地面に略一致する位置までの角度単位で修正することも可能である。例えば、水平面から崖の縁の部分に移動した場合、小さい角度単位で修正するのでは、崖に立ったときの適正な画面を表示する時間がかかるため、このような場合には大きな角度でカメラ位置を修正することが必要である。
家庭用ゲーム機,業務用ゲーム機,携帯ゲーム機,オンラインゲーム機などに適用でき、地形に合わせた視線を得て画面表示するカメラ制御を取り入れたGCゲーム装置である。
カメラ位置,カメラ角度,プレイヤ位置および注視点チェック位置に対し上記手法の取り入れ方法を説明するための図である。 本発明によるカメラ制御方法を用いたCGゲーム装置の外観を示す斜視図である。 本発明によるカメラ制御方法を用いたCGゲーム装置の回路の実施の形態を示す回路ブロック図である。 キャラクタを含む画面をカメラ視点から撮影表示する際のカメラの制御方法を説明するための図である。 図1のカメラ制御方法の流れを説明するためのフローチャートである。 画面を覆って視界が不良の場合のカメラの視界位置を良好にする例を説明するための図である。 足元が見えず視界が不良の場合のカメラの視界位置を良好にする例を説明するための図である。 図4のフローチャートとは異なるカメラ制御方法を説明するためのフローチャートである。
符号の説明
1 CGゲーム装置
2 入力装置(パッド)
3 モニタ(CRT)
10 CPU
11 画像処理回路
13 メインバス
14 メモリ回路
16 外部記憶装置
17 サウンド処理回路
18 スピーカ

Claims (6)

  1. 画面中を移動するキャラクタに対し、前記キャラクタを撮影した画像をモニタ画面に表示するCG画面の制御方法において、
    操作部からキャラクタの位置を移動させる操作がなされた場合、操作量に応じた位置にキャラクタを移動させ、
    前記キャラクタの移動位置に対応して追従設置されるようにカメラを設定し、
    前記カメラ設置位置とキャラクタを結ぶ延長上の線分であって、前記キャラクタから所定距離の線分先端が画面上に表示される地形面に対し交わるか否かを判断し、該判断で交わらない場合、前記線分先端が前記画面上に表示される地形面に対し略一致する位置になるように前記カメラの位置および光軸を前記キャラクタに対し移動・回転制御することを特徴とするカメラ制御方法。
  2. 前記交わるか否かの判断は所定の時間間隔で行い、交わらない場合には交わる方向に所定の角度だけカメラの光軸を回転させ、この動作を繰り返して前記地形面に対し略一致する位置になるまで制御することを特徴とする請求項1記載のカメラ制御方法。
  3. 前記所定の角度ずつカメラの回転制御を繰り返し、前記線分先端が地形面に交わったとき、交わる前のカメラの回転位置に戻すことを特徴とする請求項2記載のカメラ制御方法。
  4. 画面中を移動するキャラクタに対し、前記キャラクタを撮影した画像をモニタ画面に表示するCGゲーム装置において、
    操作部の操作にしたがってキャラクタを移動させるキャラクタ移動手段と、
    前記キャラクタの移動に従ってキャラクタを視界に捕らえるためのカメラ位置設定手段と、
    前記カメラ位置とキャラクタを結ぶ延長上の線分であって、前記キャラクタから所定距離の線分先端が画面上に表示される地形面に対し交わるか否かを判断し、該判断で交わらない場合、前記線分先端が前記画面上に表示される地形面に対し略一致する位置になるように前記カメラの位置および光軸を前記キャラクタに対し移動・回転制御する制御手段とを有し、
    前記キャラクタの移動と地形の変化に対応し、前記カメラからの視界が前記キャラクタを含めつつ空の部分と地形部分を所定の割合で画面に表示することを特徴とするCGゲーム装置。
  5. 前記制御手段は、交わるか否かの判断を所定の時間間隔で行い、交わらない場合には交わる方向に所定の角度だけカメラの光軸を回転させ、この動作を繰り返して前記地形面に対し略一致する位置になるまで制御することを特徴とする請求項4記載のCGゲーム装置。
  6. 前記制御手段は、所定の角度ずつカメラの回転制御を繰り返し、前記線分先端が地形面に交わったとき、交わる前のカメラの回転位置に戻すことを特徴とする請求項5記載のCGゲーム装置。
JP2006318738A 2006-11-27 2006-11-27 カメラ制御方法および該カメラ制御を取り入れたcgゲーム装置 Active JP5089147B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006318738A JP5089147B2 (ja) 2006-11-27 2006-11-27 カメラ制御方法および該カメラ制御を取り入れたcgゲーム装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006318738A JP5089147B2 (ja) 2006-11-27 2006-11-27 カメラ制御方法および該カメラ制御を取り入れたcgゲーム装置

Publications (2)

Publication Number Publication Date
JP2008132014A JP2008132014A (ja) 2008-06-12
JP5089147B2 true JP5089147B2 (ja) 2012-12-05

Family

ID=39557289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006318738A Active JP5089147B2 (ja) 2006-11-27 2006-11-27 カメラ制御方法および該カメラ制御を取り入れたcgゲーム装置

Country Status (1)

Country Link
JP (1) JP5089147B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8784202B2 (en) * 2011-06-03 2014-07-22 Nintendo Co., Ltd. Apparatus and method for repositioning a virtual camera based on a changed game state
KR102003776B1 (ko) 2013-08-13 2019-07-26 한화테크윈 주식회사 감시용 카메라의 자세 검출 방법 및 장치
JP5969531B2 (ja) * 2014-04-03 2016-08-17 株式会社スクウェア・エニックス 画像処理プログラム、画像処理装置及び画像処理方法。

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW346611B (en) * 1996-03-28 1998-12-01 Sega Enterprises Kk An image processor, a game machine using the image processor, a method of image processing and a medium
JP2004341572A (ja) * 2003-05-12 2004-12-02 Namco Ltd 画像生成システム、プログラム及び情報記憶媒体

Also Published As

Publication number Publication date
JP2008132014A (ja) 2008-06-12

Similar Documents

Publication Publication Date Title
US7819748B2 (en) Game apparatus and storage medium storing game program
US8917240B2 (en) Virtual desktop coordinate transformation
JP4973658B2 (ja) 画像処理装置および画像処理プログラム
US7495665B2 (en) Storage medium having game program stored thereon and game apparatus
US7868889B2 (en) Method of causing object to take motion using motion data
EP1808210B1 (en) Storage medium having game program stored thereon and game apparatus
US7804502B2 (en) Method of causing first object to take motion according to positional relationship with second object
US7695367B2 (en) Storage medium having game program stored thereon and game apparatus
JP2009237680A (ja) プログラム、情報記憶媒体および画像生成システム
US6762746B2 (en) Entertainment apparatus, storage medium and operation method of manipulating object
JP5089147B2 (ja) カメラ制御方法および該カメラ制御を取り入れたcgゲーム装置
US8708818B2 (en) Display control system, display control method, computer-readable storage medium having stored thereon display control program, and display control apparatus
JP5367954B2 (ja) ゲームプログラム、ゲーム装置及び記憶媒体
JP2007282861A (ja) ゲーム装置、キャラクタの表示方法、並びにプログラム及び記録媒体
WO2019168061A1 (ja) 情報処理装置、記録媒体、ヘッドマウントディスプレイ、及び、情報処理システム
EP1854520B1 (en) Game program and game apparatus
JPWO2008132851A1 (ja) エンターテインメント装置、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体
JP4143590B2 (ja) 3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラム
JP4695919B2 (ja) ゲームプログラムおよびゲーム装置
JP7506102B2 (ja) プログラム、情報処理装置および情報処理方法
WO2005038723A1 (ja) 画像表示装置、画像表示方法、画像表示プログラム及び画像表示プログラムを記録したコンピュータ読み取り可能な記録媒体
CN118045340A (zh) 游戏中虚拟对象控制方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090630

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100408

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120417

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120911

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120911

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5089147

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350