(57)【要約】【課題】カメラが障害物に衝突した瞬間であってもゲームキャラクタが衝撃の無い滑らかな動きで表現されることを主要な目的とする。【解決手段】本発明によるビデオゲーム機におけるカメラ位置決定方法は、ゲームキャラクタに注視点を置くカメラが物体に衝突しているか否かを判断するステップ（Ｓ１）と、ステップ（Ｓ１）で衝突していると判断したときに、カメラの移動円と物体の衝突面との交点を求めるステップ（Ｓ２）と、交点が求まったか否かを判断するステップ（Ｓ３）と、ステップ（Ｓ３）で交点が求まったと判断したときに、カメラを交点に移動するステップ（Ｓ４）とを有する。【選択図】図１
2006122328.tif 000002
【特許請求の範囲】
【請求項１】
ゲームキャラクタに注視点を置くカメラが物体に衝突しているか否かを判断するステップ（Ｓ１）と、
該ステップ（Ｓ１）で衝突していると判断したときに、カメラの移動円と物体の衝突面との交点を求めるステップ（Ｓ２）と、
前記交点が求まったか否かを判断するステップ（Ｓ３）と、
該ステップ（Ｓ３）で交点が求まったと判断したときに、カメラを交点に移動するステップ（Ｓ４）とを有するビデオゲーム機におけるカメラ位置決定方法。
【請求項２】
前記ステップ（Ｓ３）で交点が求まらなかったと判断したときに、注視点とカメラを結んだ線と物体の衝突面との交点を求めるステップ（Ｓ５）と、
カメラを交点に移動するステップ（Ｓ６）と、
を更に有する請求項１に記載のビデオゲーム機におけるカメラ位置決定方法。
【請求項３】
注視点とカメラの距離が設定値以下になったか否かを判断するステップ（Ｓ７）と、
該ステップ（Ｓ７）で注視点とカメラの距離が設定値以下になっていると判断したときは、注視点を移動するステップ（Ｓ８）と、
を更に有する請求項２に記載のビデオゲーム機におけるカメラ位置決定方法。
【請求項４】
ゲームキャラクタに注視点を置くカメラと注視点との距離を、
ｄｓｔ１ ＝ ｓｒｃ１ ＋ ｆ１（ｘ）
（ただし、ｍｉｎ１ ≦ ｄｓｔ１ ≦ ｍａｘ１）
現在の注視点とカメラの間の距離 : ｓｒｃ１
新しい注視点とカメラの間の距離 : ｄｓｔ１
注視点とカメラの間の距離の上限 : ｍａｘ１
注視点とカメラの間の距離の下限 : ｍｉｎ１
ｆ１（ｘ） : ｘの任意関数
入力された値 : ｘ
で計算し、
ゲームキャラクタに注視点を置くカメラの、注視点とカメラを結ぶ線が水平線と成す角度を、
ｄｓｔ２＝ｓｒｃ２＋ｆ２（ｘ）
（ただし、ｍｉｎ２≦ｄｓｔ２≦ｍａｘ２）
現在のカメラの角度 : ｓｒｃ２
新しいカメラの角度 : ｄｓｔ２
カメラの角度の上限 : ｍａｘ２
カメラの角度の下限 : ｍａｘ２
ｆ２（ｘ） : ｘの任意関数
入力された値 : ｘ
で計算することを特徴とするビデオゲーム機におけるカメラ位置決定方法。
【請求項５】
ゲームキャラクタに注視点を置くカメラと注視点との距離を、
ｄｓｔ１ ＝ ｓｒｃ１ ＋ （ｒａｔｅ１×ｘ）
（ただし、ｍｉｎ１ ≦ ｄｓｔ１ ≦ ｍａｘ１）
現在の注視点とカメラの間の距離 : ｓｒｃ１
新しい注視点とカメラの間の距離 : ｄｓｔ１
注視点とカメラの間の距離の上限 : ｍａｘ１
注視点とカメラの間の距離の下限 : ｍｉｎ１
係数 : ｒａｔｅ１
入力された値 : ｘ
で計算し、
ゲームキャラクタに注視点を置くカメラの、注視点とカメラを結ぶ線が水平線と成す角度を、
ｄｓｔ２＝ｓｒｃ２＋（ｒａｔｅ２×ｘ）
（ただし、ｍｉｎ２≦ｄｓｔ２≦ｍａｘ２）
現在のカメラの角度 : ｓｒｃ２
新しいカメラの角度 : ｄｓｔ２
カメラの角度の上限 : ｍａｘ２
カメラの角度の下限 : ｍａｘ２
係数 : ｒａｔｅ２
入力された値 : ｘ
で計算することを特徴とするビデオゲーム機におけるカメラ位置決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオゲーム機におけるカメラ位置決定方法に関するものである。
【背景技術】
【０００２】
従来より、ビデオゲーム機器において、ゲームキャラクタ（ゲームの主人公）にとって障害物（壁、床、柱など）となる物は、ゲームキャラクタを撮影するカメラ（ビューポイント）にとっても障害物となるようにデータ処理されている。これは、ゲームキャラクタにとって障害物となるがカメラにとって障害物とならないように処理すると、表示されないはずの画像、例えば床の更に下面に別の画像が表示されたり、画像処理が遅くなったりすることを避けるためである。
【０００３】
【特許文献１】特開２００３−１３５８４４号公報
【特許文献２】特開２０００−２８８２４８号公報
【特許文献３】特開２００１−２７６４２０号公報
【特許文献４】特開平１１−４２３７０号公報
【特許文献５】特開２００１−２０４９５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、カメラが障害物に衝突した瞬間には、見辛い画像が表示されたり、撮影すべきゲームキャラクタが撮影されなかったりすることから、対策を講ずる必要がある。
【０００５】
本発明は、上記の問題点に鑑みてなされたもので、カメラが障害物に衝突した瞬間であってもゲームキャラクタが衝撃の無い滑らかな動きで表現されることを主要な目的とする。
【課題を解決するための手段】
【０００６】
この目的を達成するために、請求項１の発明によるビデオゲーム機におけるカメラ位置決定方法は、ゲームキャラクタに注視点を置くカメラが物体に衝突しているか否かを判断するステップ（Ｓ１）と、ステップ（Ｓ１）で衝突していると判断したときに、カメラの移動円と物体の衝突面との交点を求めるステップ（Ｓ２）と、交点が求まったか否かを判断するステップ（Ｓ３）と、ステップ（Ｓ３）で交点が求まったと判断したときに、カメラを交点に移動するステップ（Ｓ４）とを有する。
請求項２の発明によるビデオゲーム機におけるカメラ位置決定方法は、請求項１において、ステップ（Ｓ３）で交点が求まらなかったと判断したときに、注視点とカメラを結んだ線と物体の衝突面との交点を求めるステップ（Ｓ５）と、カメラを交点に移動するステップ（Ｓ６）と、を更に有する。
請求項３の発明によるビデオゲーム機におけるカメラ位置決定方法は、請求項２において、注視点とカメラの距離が設定値以下になったか否かを判断するステップ（Ｓ７）と、ステップ（Ｓ７）で注視点とカメラの距離が設定値以下になっていると判断したときは、注視点を移動するステップ（Ｓ８）と、を更に有する。
請求項４の発明によるビデオゲーム機におけるカメラ位置決定方法は、ゲームキャラクタに注視点を置くカメラと注視点との距離を、
ｄｓｔ１ ＝ ｓｒｃ１ ＋ ｆ１（ｘ）
（ただし、ｍｉｎ１ ≦ ｄｓｔ１ ≦ ｍａｘ１）
現在の注視点とカメラの間の距離 : ｓｒｃ１
新しい注視点とカメラの間の距離 : ｄｓｔ１
注視点とカメラの間の距離の上限 : ｍａｘ１
注視点とカメラの間の距離の下限 : ｍｉｎ１
ｆ１（ｘ） : ｘの任意関数
入力された値 : ｘ
で計算し、
ゲームキャラクタに注視点を置くカメラの、注視点とカメラを結ぶ線が水平線と成す角度を、
ｄｓｔ２＝ｓｒｃ２＋ｆ２（ｘ）
（ただし、ｍｉｎ２≦ｄｓｔ２≦ｍａｘ２）
現在のカメラの角度 : ｓｒｃ２
新しいカメラの角度 : ｄｓｔ２
カメラの角度の上限 : ｍａｘ２
カメラの角度の下限 : ｍａｘ２
ｆ２（ｘ） : ｘの任意関数
入力された値 : ｘ
で計算することを特徴とするビデオゲーム機におけるカメラ位置決定方法。
請求項５の発明によるビデオゲーム機におけるカメラ位置決定方法は、ゲームキャラクタに注視点を置くカメラと注視点との距離を、
ｄｓｔ１ ＝ ｓｒｃ１ ＋ （ｒａｔｅ１×ｘ）
（ただし、ｍｉｎ１ ≦ ｄｓｔ１ ≦ ｍａｘ１）
現在の注視点とカメラの間の距離 : ｓｒｃ１
新しい注視点とカメラの間の距離 : ｄｓｔ１
注視点とカメラの間の距離の上限 : ｍａｘ１
注視点とカメラの間の距離の下限 : ｍｉｎ１
係数 : ｒａｔｅ１
入力された値 : ｘ
で計算し、
ゲームキャラクタに注視点を置くカメラの、注視点とカメラを結ぶ線が水平線と成す角度を、
ｄｓｔ２＝ｓｒｃ２＋（ｒａｔｅ２×ｘ）
（ただし、ｍｉｎ２≦ｄｓｔ２≦ｍａｘ２）
現在のカメラの角度 : ｓｒｃ２
新しいカメラの角度 : ｄｓｔ２
カメラの角度の上限 : ｍａｘ２
カメラの角度の下限 : ｍａｘ２
係数 : ｒａｔｅ２
入力された値 : ｘ
で計算することを特徴とする。
【発明の効果】
【０００７】
以上のように、本発明のビデオゲーム機におけるカメラ位置決定方法によれば、カメラが障害物に衝突した瞬間であってもゲームキャラクタが衝撃の無い滑らかな動きで表現することが可能となる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施の形態を図面に基づいて説明する。
【実施例１】
【０００９】
図１〜図５は、本発明によるビデオゲーム機におけるカメラ位置決定方法の一実施形態を示すフローチャートおよび概念図である。
図１において処理１が始まると、ステップＳ１ではカメラＡ（位置）が物体（図２の障害物）に衝突しているか否かを判断する（図２参照）。衝突していないと判断したときは、処理１を直ちに終了する。衝突していると判断したときは、ステップＳ２に移行する。
【００１０】
ステップＳ２では、カメラの移動円と物体の衝突面との交点Ｂを求める。カメラの移動円は、円の中心（注視点）、円の半径は注視点とカメラＡの距離、注視点から見たカメラＡの方向の３要素が常に分かっている（変数として持っている）ことから特定される。ステップＳ３では、交点Ｂが求まったか否かを判断する。交点が求まったと判断したときは、ステップＳ４でカメラを交点に移動して処理１を終了する。求まらなかったと判断したときは、処理２へ移行する。
【００１１】
処理２は、カメラの移動円上に移動する座標が取得できなかった場合にカメラを移動円上ではなく、衝突した交点にカメラの座標を移動するための処理である。移動円上に移動できない場合とは、例えば１回目の衝突で移動した先で、再度衝突が起きるような場合、移動円上にカメラを移動し続けるのではなく、処理を変更して、衝突した交点にカメラを移動させる。このような処理をしないと移動円よりも狭い空間に入った場合、カメラは待避場所を探して移動円上を回り続けることになる。
【００１２】
図３において処理２が始まると、ステップＳ５では注視点とカメラを結んだ線と物体の衝突面との交点を求める。ステップＳ６では、カメラを交点に移動して処理２を終了し、処理３に移行する。
【００１３】
処理３は、処理２の結果、カメラが注視点に近づき過ぎた場合に実行します。これの処理自体は衝突の判定ではなく、処理２の結果をゲーム的に見栄えが良いようにするための補正の処理である。
【００１４】
図４において処理３が始まると、ステップＳ７では注視点とカメラＢ（位置）の距離が設定値以下になったか否かを判断する。なっていないと判断したときは、処理３を終了する。なっていると判断したときは、ステップＳ８で注視点を位置Ｃから位置Ｄに移動して処理３を終了する。なお、位置Ｃから位置Ｄへの移動方向は垂直上方向である。位置Ｃから位置Ｄへの移動量は、例えばゲームキャラクタの身長の２０％に定める。
【００１５】
図６は、図１〜図５で説明した処理と併用することのできるビデオゲーム機におけるカメラ位置決定方法を説明している。例えば、図１で説明した処理１の前で実施することができる。
【００１６】
カメラの位置は、注視点からの距離と角度、方向の３つの要素で決定される。この３つの要素を変化させることによりカメラの位置を変化させることができる。要素を変化させるコントローラが、例えば上下左右といった２つの要素しか増減できない場合、上記の３つの要素を同時に変化させることは不可能である。そこでこの３つの要素のうち距離と角度を合わせて１つの要素とみなし、これと方向の２つの要素とする。距離と角度を調整する場合、距離を近づけると同時に角度を下げる。逆に距離を遠ざける場合は同時に角度を上げる。このような方法をとれば前述ような２つの要素しか増減できないコントローラでもカメラの位置を設定することが可能である。
【００１７】
注視点とカメラの間の距離の計算式は、各変数を以下のようにすると、
現在の注視点とカメラの間の距離 : ｓｒｃ１
新しい注視点とカメラの間の距離 : ｄｓｔ１
注視点とカメラの間の距離の変化量 : ｄｅｌｔａ１
注視点とカメラの間の距離の上限 : ｍａｘ１
注視点とカメラの間の距離の下限 : ｍｉｎ１
ｄｓｔ１ ＝ ｓｒｃ１ ＋ ｄｅｌｔａ１
（ただし、ｍｉｎ１ ≦ ｄｓｔ１ ≦ ｍａｘ１）
である。
なお、上記のｄｅｌｔａ１についてはｄｅｌｔａ１＝ｆ１（ｘ）で、ｘは入力装置（図示せず）から入力される値である。また、ｆ１（ｘ）は、
係数 : ｒａｔｅ１
入力された値 : ｘ
とすると、
ｆ１（ｘ）＝ｒａｔｅ１×ｘ
である。
【００１８】
注視点とカメラを結ぶ線が水平線と成す角度の計算式は、各変数を以下のようにすると、
現在のカメラの角度 : ｓｒｃ２
新しいカメラの角度 : ｄｓｔ２
カメラの角度の変化量 : ｄｅｌｔａ２
カメラの角度の上限 : ｍａｘ２
カメラの角度の下限 : ｍａｘ２
ｄｓｔ２＝ｓｒｃ２＋ｄｅｌｔａ２
（ただし、ｍｉｎ２≦ｄｓｔ２≦ｍａｘ２）
である。
なお、上記のｄｅｌｔａ２についてはｄｅｌｔａ２＝ｆ２（ｘ）で、ｘは入力装置（図示せず）から入力される値である。また、ｆ２（ｘ）は、
係数 : ｒａｔｅ２
入力された値 : ｘ
とすると、
ｆ２（ｘ）＝ｒａｔｅ２×ｘ
である。
【００１９】
以下に具体的な計算例で説明する。
ｓｒｃ１＝５００
ｒａｔｅ１＝５０
ｍａｘ１＝１０００
ｍｉｎ１＝２００
ｓｒｃ２＝０．７
ｒａｔｅ２＝０．０２
ｍａｘ２＝０．９
ｍｉｎ２＝０．１
であった場合、入力値ｘ＝１．０とすると（注視点とカメラの距離を大きくし、かつ、角度を上げる）、
ｄｓｔ１  ＝  ｓｒｃ１  ＋  ｄｅｌｔａ１
＝  ｓｒｃ１  ＋  （ｒａｔｅ１  ×  ｘ）
＝  ５００  ＋  （５０  ×  １．０）
＝  ５５０
ｄｓｔ２  ＝  ｓｒｃ２  ＋  ｄｅｌｔａ２
＝  ｓｒｃ２  ＋  （ｒａｔｅ２  ×  ｘ）
＝  ０．７  ＋  （０．０２  ×  １．０）
＝  ０．７２
となる。
また、入力値ｘ＝−１．０とすると（注視点とカメラの距離を小さくし、かつ、角度を下げる）、
ｄｓｔ１  ＝  ｓｒｃ１  ＋  ｄｅｌｔａ１
＝  ｓｒｃ１  ＋  （ｒａｔｅ１  ×  ｘ）
＝  ５００  ＋  （５０  ×  −１．０）
＝  ４５０
ｄｓｔ２  ＝  ｓｒｃ２  ＋  ｄｅｌｔａ２
＝  ｓｒｃ２  ＋  （ｒａｔｅ２  ×  ｘ）
＝  ０．７  ＋  （０．０２  ×  −１．０）
＝  ０．６８
となる。
なお、上述した数式を１つにまとめると以下のようになる。
ゲームキャラクタに注視点を置くカメラと注視点との距離を、
ｄｓｔ１ ＝ ｓｒｃ１ ＋ （ｒａｔｅ１×ｘ）
（ただし、ｍｉｎ１ ≦ ｄｓｔ１ ≦ ｍａｘ１）
現在の注視点とカメラの間の距離 : ｓｒｃ１
新しい注視点とカメラの間の距離 : ｄｓｔ１
注視点とカメラの間の距離の上限 : ｍａｘ１
注視点とカメラの間の距離の下限 : ｍｉｎ１
係数 : ｒａｔｅ１
入力された値 : ｘ
で計算し、
ゲームキャラクタに注視点を置くカメラの、注視点とカメラを結ぶ線が水平線と成す角度を、
ｄｓｔ２＝ｓｒｃ２＋（ｒａｔｅ２×ｘ）
（ただし、ｍｉｎ２≦ｄｓｔ２≦ｍａｘ２）
現在のカメラの角度 : ｓｒｃ２
新しいカメラの角度 : ｄｓｔ２
カメラの角度の上限 : ｍａｘ２
カメラの角度の下限 : ｍａｘ２
係数 : ｒａｔｅ２
入力された値 : ｘ
【産業上の利用可能性】
【００２０】
本発明は、アーケードゲーム機や家庭用ゲーム機で利用可能な技術を提示している。
【図面の簡単な説明】
【００２１】
【図１】ビデオゲーム機におけるカメラ位置決定方法を示すフローチャートである。（実施例１）
【図２】ビデオゲーム機におけるカメラ位置決定方法の実施方法を示す概念図である。（実施例１）
【図３】ビデオゲーム機におけるカメラ位置決定方法を示すフローチャートである。（実施例１）
【図４】ビデオゲーム機におけるカメラ位置決定方法を示すフローチャートである。（実施例１）
【図５】ビデオゲーム機におけるカメラ位置決定方法を示す概念図である。（実施例１）
【図６】ビデオゲーム機におけるカメラ位置決定方法を示す概念図である。
【符号の説明】
【００２２】
Ａ    カメラ
Ｂ    カメラ
Ｃ    注視点
Ｄ    注視点
【図１】
2006122328.tif 000003
【図２】
2006122328.tif 000004
【図３】
2006122328.tif 000005
【図４】
2006122328.tif 000006
【図５】
2006122328.tif 000007
【図６】
2006122328.tif 000008