説明

ビデオゲーム機におけるカメラ位置決定方法

【課題】カメラが障害物に衝突した瞬間であってもゲームキャラクタが衝撃の無い滑らかな動きで表現されることを主要な目的とする。
【解決手段】本発明によるビデオゲーム機におけるカメラ位置決定方法は、ゲームキャラクタに注視点を置くカメラが物体に衝突しているか否かを判断するステップ(S1)と、ステップ(S1)で衝突していると判断したときに、カメラの移動円と物体の衝突面との交点を求めるステップ(S2)と、交点が求まったか否かを判断するステップ(S3)と、ステップ(S3)で交点が求まったと判断したときに、カメラを交点に移動するステップ(S4)とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオゲーム機におけるカメラ位置決定方法に関するものである。
【背景技術】
【0002】
従来より、ビデオゲーム機器において、ゲームキャラクタ(ゲームの主人公)にとって障害物(壁、床、柱など)となる物は、ゲームキャラクタを撮影するカメラ(ビューポイント)にとっても障害物となるようにデータ処理されている。これは、ゲームキャラクタにとって障害物となるがカメラにとって障害物とならないように処理すると、表示されないはずの画像、例えば床の更に下面に別の画像が表示されたり、画像処理が遅くなったりすることを避けるためである。
【0003】
【特許文献1】特開2003−135844号公報
【特許文献2】特開2000−288248号公報
【特許文献3】特開2001−276420号公報
【特許文献4】特開平11−42370号公報
【特許文献5】特開2001−204959号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、カメラが障害物に衝突した瞬間には、見辛い画像が表示されたり、撮影すべきゲームキャラクタが撮影されなかったりすることから、対策を講ずる必要がある。
【0005】
本発明は、上記の問題点に鑑みてなされたもので、カメラが障害物に衝突した瞬間であってもゲームキャラクタが衝撃の無い滑らかな動きで表現されることを主要な目的とする。
【課題を解決するための手段】
【0006】
この目的を達成するために、請求項1の発明によるビデオゲーム機におけるカメラ位置決定方法は、ゲームキャラクタに注視点を置くカメラが物体に衝突しているか否かを判断するステップ(S1)と、ステップ(S1)で衝突していると判断したときに、カメラの移動円と物体の衝突面との交点を求めるステップ(S2)と、交点が求まったか否かを判断するステップ(S3)と、ステップ(S3)で交点が求まったと判断したときに、カメラを交点に移動するステップ(S4)とを有する。
請求項2の発明によるビデオゲーム機におけるカメラ位置決定方法は、請求項1において、ステップ(S3)で交点が求まらなかったと判断したときに、注視点とカメラを結んだ線と物体の衝突面との交点を求めるステップ(S5)と、カメラを交点に移動するステップ(S6)と、を更に有する。
請求項3の発明によるビデオゲーム機におけるカメラ位置決定方法は、請求項2において、注視点とカメラの距離が設定値以下になったか否かを判断するステップ(S7)と、ステップ(S7)で注視点とカメラの距離が設定値以下になっていると判断したときは、注視点を移動するステップ(S8)と、を更に有する。
請求項4の発明によるビデオゲーム機におけるカメラ位置決定方法は、ゲームキャラクタに注視点を置くカメラと注視点との距離を、
dst1 = src1 + f1(x)
(ただし、min1 ≦ dst1 ≦ max1)
現在の注視点とカメラの間の距離 : src1
新しい注視点とカメラの間の距離 : dst1
注視点とカメラの間の距離の上限 : max1
注視点とカメラの間の距離の下限 : min1
f1(x) : xの任意関数
入力された値 : x
で計算し、
ゲームキャラクタに注視点を置くカメラの、注視点とカメラを結ぶ線が水平線と成す角度を、
dst2=src2+f2(x)
(ただし、min2≦dst2≦max2)
現在のカメラの角度 : src2
新しいカメラの角度 : dst2
カメラの角度の上限 : max2
カメラの角度の下限 : max2
f2(x) : xの任意関数
入力された値 : x
で計算することを特徴とするビデオゲーム機におけるカメラ位置決定方法。
請求項5の発明によるビデオゲーム機におけるカメラ位置決定方法は、ゲームキャラクタに注視点を置くカメラと注視点との距離を、
dst1 = src1 + (rate1×x)
(ただし、min1 ≦ dst1 ≦ max1)
現在の注視点とカメラの間の距離 : src1
新しい注視点とカメラの間の距離 : dst1
注視点とカメラの間の距離の上限 : max1
注視点とカメラの間の距離の下限 : min1
係数 : rate1
入力された値 : x
で計算し、
ゲームキャラクタに注視点を置くカメラの、注視点とカメラを結ぶ線が水平線と成す角度を、
dst2=src2+(rate2×x)
(ただし、min2≦dst2≦max2)
現在のカメラの角度 : src2
新しいカメラの角度 : dst2
カメラの角度の上限 : max2
カメラの角度の下限 : max2
係数 : rate2
入力された値 : x
で計算することを特徴とする。
【発明の効果】
【0007】
以上のように、本発明のビデオゲーム機におけるカメラ位置決定方法によれば、カメラが障害物に衝突した瞬間であってもゲームキャラクタが衝撃の無い滑らかな動きで表現することが可能となる。
【発明を実施するための最良の形態】
【0008】
以下、本発明の実施の形態を図面に基づいて説明する。
【実施例1】
【0009】
図1〜図5は、本発明によるビデオゲーム機におけるカメラ位置決定方法の一実施形態を示すフローチャートおよび概念図である。
図1において処理1が始まると、ステップS1ではカメラA(位置)が物体(図2の障害物)に衝突しているか否かを判断する(図2参照)。衝突していないと判断したときは、処理1を直ちに終了する。衝突していると判断したときは、ステップS2に移行する。
【0010】
ステップS2では、カメラの移動円と物体の衝突面との交点Bを求める。カメラの移動円は、円の中心(注視点)、円の半径は注視点とカメラAの距離、注視点から見たカメラAの方向の3要素が常に分かっている(変数として持っている)ことから特定される。ステップS3では、交点Bが求まったか否かを判断する。交点が求まったと判断したときは、ステップS4でカメラを交点に移動して処理1を終了する。求まらなかったと判断したときは、処理2へ移行する。
【0011】
処理2は、カメラの移動円上に移動する座標が取得できなかった場合にカメラを移動円上ではなく、衝突した交点にカメラの座標を移動するための処理である。移動円上に移動できない場合とは、例えば1回目の衝突で移動した先で、再度衝突が起きるような場合、移動円上にカメラを移動し続けるのではなく、処理を変更して、衝突した交点にカメラを移動させる。このような処理をしないと移動円よりも狭い空間に入った場合、カメラは待避場所を探して移動円上を回り続けることになる。
【0012】
図3において処理2が始まると、ステップS5では注視点とカメラを結んだ線と物体の衝突面との交点を求める。ステップS6では、カメラを交点に移動して処理2を終了し、処理3に移行する。
【0013】
処理3は、処理2の結果、カメラが注視点に近づき過ぎた場合に実行します。これの処理自体は衝突の判定ではなく、処理2の結果をゲーム的に見栄えが良いようにするための補正の処理である。
【0014】
図4において処理3が始まると、ステップS7では注視点とカメラB(位置)の距離が設定値以下になったか否かを判断する。なっていないと判断したときは、処理3を終了する。なっていると判断したときは、ステップS8で注視点を位置Cから位置Dに移動して処理3を終了する。なお、位置Cから位置Dへの移動方向は垂直上方向である。位置Cから位置Dへの移動量は、例えばゲームキャラクタの身長の20%に定める。
【0015】
図6は、図1〜図5で説明した処理と併用することのできるビデオゲーム機におけるカメラ位置決定方法を説明している。例えば、図1で説明した処理1の前で実施することができる。
【0016】
カメラの位置は、注視点からの距離と角度、方向の3つの要素で決定される。この3つの要素を変化させることによりカメラの位置を変化させることができる。要素を変化させるコントローラが、例えば上下左右といった2つの要素しか増減できない場合、上記の3つの要素を同時に変化させることは不可能である。そこでこの3つの要素のうち距離と角度を合わせて1つの要素とみなし、これと方向の2つの要素とする。距離と角度を調整する場合、距離を近づけると同時に角度を下げる。逆に距離を遠ざける場合は同時に角度を上げる。このような方法をとれば前述ような2つの要素しか増減できないコントローラでもカメラの位置を設定することが可能である。
【0017】
注視点とカメラの間の距離の計算式は、各変数を以下のようにすると、
現在の注視点とカメラの間の距離 : src1
新しい注視点とカメラの間の距離 : dst1
注視点とカメラの間の距離の変化量 : delta1
注視点とカメラの間の距離の上限 : max1
注視点とカメラの間の距離の下限 : min1
dst1 = src1 + delta1
(ただし、min1 ≦ dst1 ≦ max1)
である。
なお、上記のdelta1についてはdelta1=f1(x)で、xは入力装置(図示せず)から入力される値である。また、f1(x)は、
係数 : rate1
入力された値 : x
とすると、
f1(x)=rate1×x
である。
【0018】
注視点とカメラを結ぶ線が水平線と成す角度の計算式は、各変数を以下のようにすると、
現在のカメラの角度 : src2
新しいカメラの角度 : dst2
カメラの角度の変化量 : delta2
カメラの角度の上限 : max2
カメラの角度の下限 : max2
dst2=src2+delta2
(ただし、min2≦dst2≦max2)
である。
なお、上記のdelta2についてはdelta2=f2(x)で、xは入力装置(図示せず)から入力される値である。また、f2(x)は、
係数 : rate2
入力された値 : x
とすると、
f2(x)=rate2×x
である。
【0019】
以下に具体的な計算例で説明する。
src1=500
rate1=50
max1=1000
min1=200
src2=0.7
rate2=0.02
max2=0.9
min2=0.1
であった場合、入力値x=1.0とすると(注視点とカメラの距離を大きくし、かつ、角度を上げる)、
dst1 = src1 + delta1
= src1 + (rate1 × x)
= 500 + (50 × 1.0)
= 550
dst2 = src2 + delta2
= src2 + (rate2 × x)
= 0.7 + (0.02 × 1.0)
= 0.72
となる。
また、入力値x=−1.0とすると(注視点とカメラの距離を小さくし、かつ、角度を下げる)、
dst1 = src1 + delta1
= src1 + (rate1 × x)
= 500 + (50 × −1.0)
= 450
dst2 = src2 + delta2
= src2 + (rate2 × x)
= 0.7 + (0.02 × −1.0)
= 0.68
となる。
なお、上述した数式を1つにまとめると以下のようになる。
ゲームキャラクタに注視点を置くカメラと注視点との距離を、
dst1 = src1 + (rate1×x)
(ただし、min1 ≦ dst1 ≦ max1)
現在の注視点とカメラの間の距離 : src1
新しい注視点とカメラの間の距離 : dst1
注視点とカメラの間の距離の上限 : max1
注視点とカメラの間の距離の下限 : min1
係数 : rate1
入力された値 : x
で計算し、
ゲームキャラクタに注視点を置くカメラの、注視点とカメラを結ぶ線が水平線と成す角度を、
dst2=src2+(rate2×x)
(ただし、min2≦dst2≦max2)
現在のカメラの角度 : src2
新しいカメラの角度 : dst2
カメラの角度の上限 : max2
カメラの角度の下限 : max2
係数 : rate2
入力された値 : x
【産業上の利用可能性】
【0020】
本発明は、アーケードゲーム機や家庭用ゲーム機で利用可能な技術を提示している。
【図面の簡単な説明】
【0021】
【図1】ビデオゲーム機におけるカメラ位置決定方法を示すフローチャートである。(実施例1)
【図2】ビデオゲーム機におけるカメラ位置決定方法の実施方法を示す概念図である。(実施例1)
【図3】ビデオゲーム機におけるカメラ位置決定方法を示すフローチャートである。(実施例1)
【図4】ビデオゲーム機におけるカメラ位置決定方法を示すフローチャートである。(実施例1)
【図5】ビデオゲーム機におけるカメラ位置決定方法を示す概念図である。(実施例1)
【図6】ビデオゲーム機におけるカメラ位置決定方法を示す概念図である。
【符号の説明】
【0022】
A カメラ
B カメラ
C 注視点
D 注視点

【特許請求の範囲】
【請求項1】
ゲームキャラクタに注視点を置くカメラが物体に衝突しているか否かを判断するステップ(S1)と、
該ステップ(S1)で衝突していると判断したときに、カメラの移動円と物体の衝突面との交点を求めるステップ(S2)と、
前記交点が求まったか否かを判断するステップ(S3)と、
該ステップ(S3)で交点が求まったと判断したときに、カメラを交点に移動するステップ(S4)とを有するビデオゲーム機におけるカメラ位置決定方法。
【請求項2】
前記ステップ(S3)で交点が求まらなかったと判断したときに、注視点とカメラを結んだ線と物体の衝突面との交点を求めるステップ(S5)と、
カメラを交点に移動するステップ(S6)と、
を更に有する請求項1に記載のビデオゲーム機におけるカメラ位置決定方法。
【請求項3】
注視点とカメラの距離が設定値以下になったか否かを判断するステップ(S7)と、
該ステップ(S7)で注視点とカメラの距離が設定値以下になっていると判断したときは、注視点を移動するステップ(S8)と、
を更に有する請求項2に記載のビデオゲーム機におけるカメラ位置決定方法。
【請求項4】
ゲームキャラクタに注視点を置くカメラと注視点との距離を、
dst1 = src1 + f1(x)
(ただし、min1 ≦ dst1 ≦ max1)
現在の注視点とカメラの間の距離 : src1
新しい注視点とカメラの間の距離 : dst1
注視点とカメラの間の距離の上限 : max1
注視点とカメラの間の距離の下限 : min1
f1(x) : xの任意関数
入力された値 : x
で計算し、
ゲームキャラクタに注視点を置くカメラの、注視点とカメラを結ぶ線が水平線と成す角度を、
dst2=src2+f2(x)
(ただし、min2≦dst2≦max2)
現在のカメラの角度 : src2
新しいカメラの角度 : dst2
カメラの角度の上限 : max2
カメラの角度の下限 : max2
f2(x) : xの任意関数
入力された値 : x
で計算することを特徴とするビデオゲーム機におけるカメラ位置決定方法。
【請求項5】
ゲームキャラクタに注視点を置くカメラと注視点との距離を、
dst1 = src1 + (rate1×x)
(ただし、min1 ≦ dst1 ≦ max1)
現在の注視点とカメラの間の距離 : src1
新しい注視点とカメラの間の距離 : dst1
注視点とカメラの間の距離の上限 : max1
注視点とカメラの間の距離の下限 : min1
係数 : rate1
入力された値 : x
で計算し、
ゲームキャラクタに注視点を置くカメラの、注視点とカメラを結ぶ線が水平線と成す角度を、
dst2=src2+(rate2×x)
(ただし、min2≦dst2≦max2)
現在のカメラの角度 : src2
新しいカメラの角度 : dst2
カメラの角度の上限 : max2
カメラの角度の下限 : max2
係数 : rate2
入力された値 : x
で計算することを特徴とするビデオゲーム機におけるカメラ位置決定方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate