(57)【要約】【課題】キャラクタの特定部位をプレイヤに視認しやすい角度に向けつつ不自然な状態で表示されない画像を表示装置に表示する。【解決手段】仮想カメラ３０１の視点３０３は、キャラクタ２００の中心点２０１を参照点として周回移動する。キャラクタ２００の顔以外の部位が向いている体方向と、キャラクタ２００の中心点２０１の位置から視点直下点３０３ｄに向かう方向とがなす視点左右角θが７６度以下であり、キャラクタ２００がフィールド４００上を移動していなければ、キャラクタ２００の顔の顔上下角αは変位される。顔上下角αは、視点左右角θに応じて決定される顔方向係数（最大値０．７５）と、キャラクタ２００の中心点２０１の位置から仮想カメラ３０１の視点３０３の位置に向かう方向の仰角を示す視点上下角βとを乗算した値によって決定される。キャラクタ２００の顔の顔上下角αは、最大であっても視点上下角βの７５％分しか変位しない。【選択図】図５
2007282861.tif 000002
【特許請求の範囲】
【請求項１】
他の部位の方向に対して方向を変位させることが可能な特定部位を含むキャラクタが存在する仮想３次元空間を仮想カメラから仮想スクリーン上に透視変換することにより得られたゲーム画面を表示装置に表示させるゲーム装置であって、
前記キャラクタの位置が前記仮想カメラの視界の範囲内とすることを維持しつつ、前記仮想３次元空間における前記特定部位の位置とは異なる高さにおいて該仮想カメラの視点の位置を移動させる視点移動手段と、
前記仮想３次元空間において前記キャラクタが向いている方向と、前記キャラクタの位置から前記仮想カメラの視点の位置に向かう方向とがなす特定角を算出する特定角算出手段と、
前記特定角算出手段が算出した特定角が、９０度より小さい所定の角度範囲で定められた臨界角より小さいかどうかを判定する特定角判定手段と、
前記特定角判定手段により前記特定角が前記臨界角よりも小さいと判定されたときに、前記キャラクタの特定部位以外の部位の方向に対する前記特定部位の方向を変位させる特定部位変位手段と、
前記視点移動手段により移動させられた視点の位置で前記仮想３次元空間を前記仮想カメラから前記仮想スクリーン上に透視変換し、前記表示装置に表示させるための２次元画像を生成する透視変換手段と、
前記透視変換手段により生成された２次元画像を前記表示装置に画面表示させる表示制御手段とを備え、
前記特定部位変位手段は、前記仮想カメラの視点の位置と前記特定部位の位置との高低差に応じて前記特定部位の上下角を変位させる上下角変位手段を含む
ことを特徴とするゲーム装置。
【請求項２】
プレイヤの操作により、前記視点移動手段に前記仮想カメラの視点の位置を移動させる旨を指示する視点移動操作手段をさらに備える
ことを特徴とする請求項１に記載のゲーム装置。
【請求項３】
前記視点移動手段は、前記キャラクタとの間の距離と前記仮想３次元空間における高さを一定に維持しつつ、前記キャラクタの位置を参照点として、前記仮想カメラの視点の位置を周回移動させる
ことを特徴とする請求項１または２に記載のゲーム装置。
【請求項４】
前記上下角変位手段は、前記特定角の大きさに応じた角度だけ前記特定部位の上下角を変位させる
ことを特徴とする請求項１乃至３のいずれか１項に記載のゲーム装置。
【請求項５】
前記上下角変位手段は、前記キャラクタの位置または前記特定部位の位置から前記視点の位置に向かう方向の仰角よりも小さい角度だけ、前記特定部位の上下角を変位させる
ことを特徴とする請求項４に記載のゲーム装置。
【請求項６】
前記上下角変位手段は、前記特定角が０度であるときに変位される角度が最大角となるように、該特定角の大きさに応じて前記特定部位の上下角を変位させる
ことを特徴とする請求項４または５に記載のゲーム装置。
【請求項７】
前記最大角は、前記特定部位に含まれる特定シンボルが前記キャラクタの該特定部位以外の部位によって隠れない範囲で定められた角度である
ことを特徴とする請求項６に記載のゲーム装置。
【請求項８】
前記特定部位変位手段は、前記特定角判定手段により前記特定角が前記臨界角よりも小さいと判定されたときに、前記特定角の大きさに応じた角度だけ前記特定部位の左右角を変位させる左右角変位手段をさらに含む
ことを特徴とする請求項１乃至７のいずれか１項に記載のゲーム装置。
【請求項９】
前記左右角変位手段は、前記特定角よりも小さい角度だけ、前記特定部位の左右角を変位させる
ことを特徴とする請求項８記載のゲーム装置。
【請求項１０】
前記左右角変位手段は、前記臨界角より小さい角度範囲で定められた所定角よりも前記特定角が小さいときには、前記特定部位の左右角を変位させない
ことを特徴とする請求項８または９に記載のゲーム装置。
【請求項１１】
前記仮想３次元空間において前記キャラクタの位置を移動させるキャラクタ移動手段をさらに備える
ことを特徴とする請求項１乃至１０のいずれか１項に記載のゲーム装置。
【請求項１２】
前記特定部位変位手段は、前記キャラクタ移動手段により前記キャラクタが前記仮想３次元空間において移動される速度が所定速度よりも小さいことを条件として、前記特定部位の方向を変位させる
ことを特徴とする請求項１１に記載のゲーム装置。
【請求項１３】
前記特定部位変位手段は、前記キャラクタ移動手段により前記キャラクタが前記仮想３次元空間において移動される速度に応じて、該速度が小さいほど変位される角度が大きくなるように前記特定部位の方向を変化させる
ことを特徴とする請求項１１に記載のゲーム装置。
【請求項１４】
前記特定部位変位手段は、前記キャラクタの位置が前記キャラクタ移動手段により位置が移動されずに前記仮想３次元空間において静止していることを条件として、前記特定部位の方向を変位させる
ことを特徴とする請求項１１に記載のゲーム装置。
【請求項１５】
前記キャラクタは、顔を構成部位として含む生物型キャラクタであり、
前記特定部位は、前記生物型キャラクタの顔である
ことを特徴とする請求項１乃至１４のいずれか１項に記載のゲーム装置。
【請求項１６】
前記キャラクタは、それぞれが特定部位を含む複数のキャラクタによって構成され、
前記特定部位変位手段は、前記仮想カメラの視点の位置から各キャラクタの位置との間の距離に応じて、各キャラクタの特定部位の方向を変位させる
ことを特徴とする請求項１乃至１５のいずれか１項に記載のゲーム装置。
【請求項１７】
他の部位の方向に対して方向を変位させることが可能な特定部位を含むキャラクタが存在する仮想３次元空間を仮想カメラから仮想スクリーン上に透視変換することにより得られたゲーム画面を表示装置に表示させるコンピュータ装置において実行されるキャラクタの表示方法であって、
前記キャラクタの前記仮想３次元空間における位置と方向とを前記コンピュータ装置が備える記憶手段に記憶し、
前記記憶手段に記憶されたキャラクタの位置が前記仮想カメラの視界の範囲内とすることを維持しつつ、前記仮想３次元空間における前記特定部位の位置とは異なる高さにおいて該仮想カメラの視点の位置を移動させて、該視点の位置を前記記憶手段に記憶し、
前記記憶手段に記憶されたキャラクタの方向と、前記記憶手段に記憶されたキャラクタの位置から視点の位置に向かう方向とがなす特定角を算出して、該算出した特定角を前記記憶手段に記憶し、
前記記憶手段に記憶された特定角が、９０度より小さい所定の角度範囲で定められた臨界角より小さいかどうかを判定し、
前記特定角が前記臨界角よりも小さいと判定されたときに、前記記憶手段に記憶されたキャラクタの位置に応じて定められる特定部位の位置と前記記憶手段に記憶された視点の位置との高低差に応じて前記特定部位の上下角を変位させ、該上下角の変位された特定部位の方向を前記記憶手段に記憶し、
前記記憶手段に記憶された視点の位置で前記仮想３次元空間のうちの少なくとも前記特定部位の上下角が変位されたキャラクタを含む範囲を前記仮想スクリーン上に透視変換して前記表示装置に表示させるための２次元画像を生成し、該生成した２次元画像をフレームメモリに展開し、
前記フレームメモリに展開された２次元画像を前記表示装置に画面表示する
ことを特徴とするキャラクタの表示方法。
【請求項１８】
他の部位の方向に対して方向を変位させることが可能な特定部位を含むキャラクタが存在する仮想３次元空間を仮想カメラから仮想スクリーン上に透視変換することにより得られたゲーム画面を表示装置に表示させるコンピュータ装置において実行されるプログラムであって、前記プログラムは、
前記キャラクタの位置が前記仮想カメラの視界の範囲内とすることを維持しつつ、前記仮想３次元空間における前記特定部位の位置とは異なる高さにおいて該仮想カメラの視点の位置を移動させる視点移動手段、
前記仮想３次元空間において前記キャラクタが向いている方向と、前記キャラクタの位置から前記仮想カメラの視点の位置に向かう方向とがなす特定角を算出する特定角算出手段、
前記特定角算出手段が算出した特定角が、９０度より小さい所定の角度範囲で定められた臨界角より小さいかどうかを判定する特定角判定手段、
前記特定角判定手段により前記特定角が前記臨界角よりも小さいと判定されたときに、少なくとも前記仮想カメラの視点の位置と前記特定部位の位置との高低差に応じて前記特定部位の上下角を変位させる特定部位変位手段、
前記視点移動手段により移動させられた視点の位置で前記仮想３次元空間を前記仮想カメラから前記仮想スクリーン上に透視変換し、前記表示装置に表示させるための２次元画像を生成する透視変換手段、及び、
前記透視変換手段により生成された２次元画像を前記表示装置に画面表示させる表示制御手段
として前記コンピュータ装置を機能させることを特徴とするプログラム。
【請求項１９】
他の部位の方向に対して方向を変位させることが可能な特定部位を含むキャラクタが存在する仮想３次元空間を仮想カメラから仮想スクリーン上に透視変換することにより得られたゲーム画面を表示装置に表示させるコンピュータ装置において実行されるプログラムを記録した記録媒体であって、前記プログラムは、
前記キャラクタの位置が前記仮想カメラの視界の範囲内とすることを維持しつつ、前記仮想３次元空間における前記特定部位の位置とは異なる高さにおいて該仮想カメラの視点の位置を移動させる視点移動手段、
前記仮想３次元空間において前記キャラクタが向いている方向と、前記キャラクタの位置から前記仮想カメラの視点の位置に向かう方向とがなす特定角を算出する特定角算出手段、
前記特定角算出手段が算出した特定角が、９０度より小さい所定の角度範囲で定められた臨界角より小さいかどうかを判定する特定角判定手段、
前記特定角判定手段により前記特定角が前記臨界角よりも小さいと判定されたときに、少なくとも前記仮想カメラの視点の位置と前記特定部位の位置との高低差に応じて前記特定部位の上下角を変位させる特定部位変位手段、
前記視点移動手段により移動させられた視点の位置で前記仮想３次元空間を前記仮想カメラから前記仮想スクリーン上に透視変換し、前記表示装置に表示させるための２次元画像を生成する透視変換手段、及び、
前記透視変換手段により生成された２次元画像を前記表示装置に画面表示させる表示制御手段
として前記コンピュータ装置を機能させることを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他の部位の方向に対して方向を変位させることが可能な特定部位を含むキャラクタが存在するゲームにおいて、仮想３次元空間を透視変換することにより得た２次元画像を表示するための技術に関する。
【背景技術】
【０００２】
２次元ビデオゲームの画面表示には、当初、視点がキャラクタの真上にあるオーバービューや、視点が水平面上にあるサイドビューが用いられていた。その後、よりリアルな画像を作成するためにクォータービューが用いられるようになった。クォータービューでは、水平面より上に設定された視点から、見下ろした画像が表示画面に表示されることとなる（例えば、特許文献１参照）。
【０００３】
一方、最近のポリゴンを用いた３次元ビデオゲームの画面表示では、よりリアルな画像を表示させるため、キャラクタの目線に視点があるキャラクタビューが多用されている。３次元ビデオゲームにおけるキャラクタビューでは、キャラクタの進行方向を見ることができるが、キャラクタの周囲を３６０度均等に見渡すことができないという問題が生じてしまう。このため、特にロールプレイングゲームなどのキャラクタの周囲の状況を見渡す必要があるゲームでは、クォータビューが用いられることも多い。
【０００４】
しかしながら、３次元ビデオゲームにおけるクォータビューでは、キャラクタの正面側に視点が位置したときに、キャラクタの顔がはっきりと表示されないという問題が生じてしまう。ゲームをプレイしているときにおいて常にキャラクタを見ているプレイヤにとって、緻密にデザインされたキャラクタの顔がはっきりと表示されないのであれば、ゲームの興趣は減少するものであった。
【０００５】
これに対して、ゲーム上の必要性に応じてキャラクタの顔が注目対象に向くようなゲームがあった（例えば、特許文献２参照）。キャラクタの顔がはっきりと表示されないという問題を解決するために、特許文献２の注目対象を仮想カメラの視点とすることで、キャラクタの顔を仮想カメラの視点を向く方向（視点方向）に向け、真正面から見たキャラクタの顔を画面表示させることが考えられる。
【０００６】
【特許文献１】特開平７−１８２５３２号公報（段落０００２）
【特許文献２】特開２００２−２００３４０号公報（段落００９８）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、キャラクタ自体の向きが視点方向とは異なる方向にあるときもあり、キャラクタの顔を視点方向に向けることが不都合なこともある。また、キャラクタ自体の向きが視点方向となっていても、キャラクタの顔を視点方向にそのまま向けたのでは、キャラクタの目線が完全にカメラ目線になってしまう。ゲームにおけるキャラクタの状態によってはカメラ目線の画像が表示される場合には、キャラクタの顔の動きが非常に不自然なものとなり、却ってリアルさが失われてしまうこととなる。
【０００８】
本発明は、キャラクタの特定部位をプレイヤに視認しやすい角度を向け表示することに留意しつつ、キャラクタの特定部位が不自然な状態で表示されない画像を表示装置に表示することのできるゲーム装置等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の第１の観点にかかるゲーム装置は、他の部位の方向に対して方向を変位させることが可能な特定部位を含むキャラクタが存在する仮想３次元空間を仮想カメラから仮想スクリーン上に透視変換することにより得られたゲーム画面を表示装置に表示させるゲーム装置であって、前記キャラクタの位置が前記仮想カメラの視界の範囲内とすることを維持しつつ、前記仮想３次元空間における前記特定部位の位置とは異なる高さにおいて該仮想カメラの視点の位置を移動させる視点移動手段と、前記仮想３次元空間において前記キャラクタが向いている方向と、前記キャラクタの位置から前記仮想カメラの視点の位置に向かう方向とがなす特定角を算出する特定角算出手段と、前記特定角算出手段が算出した特定角が、９０度より小さい所定の角度範囲で定められた臨界角より小さいかどうかを判定する特定角判定手段と、前記特定角判定手段により前記特定角が前記臨界角よりも小さいと判定されたときに、前記キャラクタの特定部位以外の部位の方向に対する前記特定部位の方向を変位させる特定部位変位手段と、前記視点移動手段により移動させられた視点の位置で前記仮想３次元空間を前記仮想カメラから前記仮想スクリーン上に透視変換し、前記表示装置に表示させるための２次元画像を生成する透視変換手段と、前記透視変換手段により生成された２次元画像を前記表示装置に画面表示させる表示制御手段とを備え、前記特定部位変位手段は、前記仮想カメラの視点の位置と前記特定部位の位置との高低差に応じて前記特定部位の上下角を変位させる上下角変位手段を含むことを特徴とする。
【００１０】
上記第１の観点にかかるゲーム装置では、キャラクタが向いている方向と該キャラクタの位置から仮想カメラの視点の位置に向かう方向とがなす特定角が、臨界角より小さいと判定された場合には、該キャラクタの特定部位以外の部位の方向に対して該特定部位の上下角を変位することで、プレイヤが該特定部位を視認しやすい状態の画像を表示装置に表示することができる。また、キャラクタが向いている方向が仮想カメラの視点の方向に対して臨界角の範囲内であるときに限って特定部位の上下角を変位させることにより、特定部位が仮想カメラを向いていないときにまで不必要に変位させないで済む。
【００１１】
上記第１の観点にかかるゲーム装置では、プレイヤの操作により、前記視点移動手段に前記仮想カメラの視点の位置を移動させる旨を指示する視点移動操作手段をさらに備えるものとすることができる。
【００１２】
ここでは、プレイヤの操作に基づく仮想カメラの視点の移動でも、キャラクタが向いている方向と該キャラクタの位置から仮想カメラの視点の位置に向かう方向とがなす特定角が臨界角より小さくなると、特定部位の上下角が変化し、キャラクタの特定部位を視認しやすく表示装置に表示させることができる。
【００１３】
上記第１の観点にかかるゲーム装置において、前記視点移動手段は、前記キャラクタとの間の距離と前記仮想３次元空間における高さを一定に維持しつつ、前記キャラクタの位置を参照点として、前記仮想カメラの視点の位置を周回移動させるものとすることができる。
【００１４】
ここでは、仮想カメラの視点がキャラクタの参照点と一定の距離を保ちつつ移動されることにより、視界の広さが一定に維持されている場合にはキャラクタが表示装置に表示される大きさを変化させずに、様々な角度から表示装置に表示させることができる。
【００１５】
上記第１の観点にかかるゲーム装置において、前記上下角変位手段は、前記特定角の大きさに応じた角度だけ前記特定部位の上下角を変位させるものとすることができる。
【００１６】
なお、前記上下角変位手段は、前記キャラクタの位置または前記特定部位の位置から前記視点の位置に向かう方向の仰角よりも小さい角度だけ、前記特定部位の上下角を変位させるものとすることができる。なお、特定部位の上下角は、上向きだけ、下向きだけ、或いは両方に、変位されるものとすることができる。
【００１７】
この場合には、キャラクタが向いている方向と、該キャラクタの位置から仮想カメラの視点の位置とがなす特定角の大きさに応じた角度だけ特定部位の上下角が変位することにより、該仮想カメラの視点の位置が高いか低いかで該特定部位の上下角の変位する角度が変わるので、該特定部位の方向を自然に変位させることができる。さらに、キャラクタの特定部位の上下角を、該特定部位の位置から仮想カメラの視点の方向に向かう仰角より小さい角度だけ変位させるものとすると、キャラクタの向いている方向が仮想カメラの視点に向かう方向から臨界角の範囲内にあっても、特定部位の上下角の変位が大きくなりすぎず、特定部位の方向の変位が不自然に大きくなりすぎてしまうことがない。
【００１８】
また、前記上下角変位手段は、前記特定角が０度であるときに変位される角度が最大角となるように、該特定角の大きさに応じて前記特定部位の上下角を変位させるものとすることができる。
【００１９】
この場合には、仮想カメラの視点の位置が移動し続けるような場合でも、特定部位の上下角の変位を自然な流れで行うことができる。
【００２０】
ここで、前記最大角は、前記特定部位に含まれる特定シンボルが前記キャラクタの該特定部位以外の部位によって隠れない範囲で定められた角度であってもよい。
【００２１】
この場合には、キャラクタの向いている方向が仮想カメラの視点に向かう方向から臨界角の範囲内にある場合に、特定部位に含まれる特定シンボルを必ず表示装置に表示させて遊技者に認識させるようにすることができる。例えば、キャラクタの顔が特定部位である場合には目を特定シンボルとし、キャラクタの目が髪の毛などで隠れないようにキャラクタの顔の動きを制御することができる。
【００２２】
上記第１の観点にかかるゲーム装置において、前記特定部位変位手段は、前記特定角判定手段により前記特定角が前記臨界角よりも小さいと判定されたときに、前記特定角の大きさに応じた角度だけ前記特定部位の左右角を変位させる左右角変位手段をさらに含むものとすることができる。
【００２３】
なお、前記左右角変位手段は、前記特定角よりも小さい角度だけ、前記特定部位の左右角を変位させるものとすることができる。
【００２４】
また、前記左右角変位手段は、前記臨界角より小さい角度範囲で定められた所定角よりも前記特定角が小さいときには、前記特定部位の左右角を変位させないものとすることができる。
【００２５】
この場合には、特定部位を左右にも変位させることで、該特定部位がさらに視認しやすくなる。さらに、キャラクタの特定部位の左右角を特定角より小さい角度だけ変位することができるものとしたり、特定角が臨界角よりも小さい所定角の範囲にあるときに特定部位の左右角を変位することができるものとすることで、該特定角が臨界角の範囲内にあっても、該特定部位の左右角の変位が大きくなりすぎず、当該キャラクタの向きによって特定部位の変位の方向が大きくなりすぎてしまうことがない。
【００２６】
上記第１の観点にかかるゲーム装置において、前記仮想３次元空間において前記キャラクタの位置を移動させるキャラクタ移動手段をさらに備えるものとすることができる。
【００２７】
ここで、前記特定部位変位手段は、前記キャラクタ移動手段により前記キャラクタが前記仮想３次元空間において移動される速度が所定速度よりも小さいことを条件として、前記特定部位の方向を変位させるものとすることができる。例えば、キャラクタが歩行時は特定部位の方向を変位させるが、走行時は変位させないものとすることができる。
【００２８】
この場合には、前記特定部位変位手段は、前記キャラクタ移動手段により前記キャラクタが前記仮想３次元空間において移動される速度に応じて、該速度が小さいほど変位される角度が大きくなるように前記特定部位の方向を変化させるものとすることができる。
【００２９】
この場合には、キャラクタが所定速度以上で移動している場合には特定部位の変位が行われないので、キャラクタの特定部位の変位が特定部位以外の部位の動きに比べて不自然となることがない。さらに、キャラクタの移動速度に応じて、特定部位の方向が変位されることによって、プレイヤが特定部位を視認しやすい状態の画像を表示装置に表示することに留意されつつ、キャラクタの特定部位が特定部位以外の部位の動きに比べて不自然に変位することがない。
【００３０】
また、前記特定部位変位手段は、前記キャラクタの位置が前記キャラクタ移動手段により位置が移動されずに前記仮想３次元空間において静止していることを条件として、前記特定部位の方向を変位させるものとすることができる。
【００３１】
この場合には、キャラクタが静止しているときにだけ、特定部位の変位が行われるのであれば、キャラクタの特定部位が特定部位以外の部位の動きに比べて不自然に変位することがない。
【００３２】
上記第１の観点にかかるゲーム装置において、前記キャラクタは、顔を構成部位として含む生物型キャラクタであり、前記特定部位は、前記生物型キャラクタの顔であるものとすることができる。プレイヤにとって、キャラクタの顔は注目する箇所であるので、顔の方向が変位されることによって、プレイヤが顔を視認しやすい状態の画像を表示装置に表示することで、ゲームの興趣は減少することがない。
【００３３】
上記第１の観点にかかるゲーム装置において、前記キャラクタは、それぞれが特定部位を含む複数のキャラクタによって構成され、前記特定部位変位手段は、前記仮想カメラの視点の位置から各キャラクタの位置との間の距離に応じて、各キャラクタの特定部位の方向を変位させるものとすることができる。
【００３４】
この場合には、表示装置に表示されている複数のキャラクタにおいて、仮想カメラの視点の位置から各キャラクタの位置との距離に応じて特定部位を変位することで、プレイヤが複数のキャラクタの特定部位を視認しやすい状態の画像を表示装置に表示することができる。なお、仮想カメラの視点の位置から遠く離れた位置のキャラクタにおいては、特定部位の変位を行わないものとすることができる。
【００３５】
上記目的を達成するため、本発明の第２の観点にかかるキャラクタの表示方法は、他の部位の方向に対して方向を変位させることが可能な特定部位を含むキャラクタが存在する仮想３次元空間を仮想カメラから仮想スクリーン上に透視変換することにより得られたゲーム画面を表示装置に表示させるコンピュータ装置において実行されるキャラクタの表示方法であって、前記キャラクタの前記仮想３次元空間における位置と方向とを前記コンピュータ装置が備える記憶手段に記憶し、前記記憶手段に記憶されたキャラクタの位置が前記仮想カメラの視界の範囲内とすることを維持しつつ、前記仮想３次元空間における前記特定部位の位置とは異なる高さにおいて該仮想カメラの視点の位置を移動させて、該視点の位置を前記記憶手段に記憶し、前記記憶手段に記憶されたキャラクタの方向と、前記記憶手段に記憶されたキャラクタの位置から視点の位置に向かう方向とがなす特定角を算出して、該算出した特定角を前記記憶手段に記憶し、前記記憶手段に記憶された特定角が、９０度より小さい所定の角度範囲で定められた臨界角より小さいかどうかを判定し、前記特定角が前記臨界角よりも小さいと判定されたときに、前記記憶手段に記憶されたキャラクタの位置に応じて定められる特定部位の位置と前記記憶手段に記憶された視点の位置との高低差に応じて前記特定部位の上下角を変位させ、該上下角の変位された特定部位の方向を前記記憶手段に記憶し、前記記憶手段に記憶された視点の位置で前記仮想３次元空間のうちの少なくとも前記特定部位の上下角が変位されたキャラクタを含む範囲を前記仮想スクリーン上に透視変換して前記表示装置に表示させるための２次元画像を生成し、該生成した２次元画像をフレームメモリに展開し、前記フレームメモリに展開された２次元画像を前記表示装置に画面表示することを特徴とする。
【００３６】
上記目的を達成するため、本発明の第３の観点にかかるプログラムは、他の部位の方向に対して方向を変位させることが可能な特定部位を含むキャラクタが存在する仮想３次元空間を仮想カメラから仮想スクリーン上に透視変換することにより得られたゲーム画面を表示装置に表示させるコンピュータ装置において実行されるプログラムであって、前記プログラムは、前記キャラクタの位置が前記仮想カメラの視界の範囲内とすることを維持しつつ、前記仮想３次元空間における前記特定部位の位置とは異なる高さにおいて該仮想カメラの視点の位置を移動させる視点移動手段、前記仮想３次元空間において前記キャラクタが向いている方向と、前記キャラクタの位置から前記仮想カメラの視点の位置に向かう方向とがなす特定角を算出する特定角算出手段、前記特定角算出手段が算出した特定角が、９０度より小さい所定の角度範囲で定められた臨界角より小さいかどうかを判定する特定角判定手段、前記特定角判定手段により前記特定角が前記臨界角よりも小さいと判定されたときに、少なくとも前記仮想カメラの視点の位置と前記特定部位の位置との高低差に応じて前記特定部位の上下角を変位させる特定部位変位手段、前記視点移動手段により移動させられた視点の位置で前記仮想３次元空間を前記仮想カメラから前記仮想スクリーン上に透視変換し、前記表示装置に表示させるための２次元画像を生成する透視変換手段、及び、前記透視変換手段により生成された２次元画像を前記表示装置に画面表示させる表示制御手段として前記コンピュータ装置を機能させることを特徴とする。
【００３７】
上記目的を達成するため、本発明の第４の観点にかかるコンピュータ読み取り可能な記録媒体は、他の部位の方向に対して方向を変位させることが可能な特定部位を含むキャラクタが存在する仮想３次元空間を仮想カメラから仮想スクリーン上に透視変換することにより得られたゲーム画面を表示装置に表示させるコンピュータ装置において実行されるプログラムを記録した記録媒体であって、前記プログラムは、前記キャラクタの位置が前記仮想カメラの視界の範囲内とすることを維持しつつ、前記仮想３次元空間における前記特定部位の位置とは異なる高さにおいて該仮想カメラの視点の位置を移動させる視点移動手段、前記仮想３次元空間において前記キャラクタが向いている方向と、前記キャラクタの位置から前記仮想カメラの視点の位置に向かう方向とがなす特定角を算出する特定角算出手段、前記特定角算出手段が算出した特定角が、９０度より小さい所定の角度範囲で定められた臨界角より小さいかどうかを判定する特定角判定手段、前記特定角判定手段により前記特定角が前記臨界角よりも小さいと判定されたときに、少なくとも前記仮想カメラの視点の位置と前記特定部位の位置との高低差に応じて前記特定部位の上下角を変位させる特定部位変位手段、前記視点移動手段により移動させられた視点の位置で前記仮想３次元空間を前記仮想カメラから前記仮想スクリーン上に透視変換し、前記表示装置に表示させるための２次元画像を生成する透視変換手段、及び、前記透視変換手段により生成された２次元画像を前記表示装置に画面表示させる表示制御手段として前記コンピュータ装置を機能させることを特徴とする。
【発明を実施するための最良の形態】
【００３８】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【００３９】
図１は、この実施の形態に適用されるゲーム装置１の構成を示す外観図である。ここでは、ゲーム装置１の一例として、携帯ゲーム装置を示す。図１において、ゲーム装置１は、２つの液晶表示器（ＬＣＤ）１１及び１２を所定の配置位置となるように、ハウジング１８に収納して構成される。
【００４０】
第１液晶表示器（以下、「ＬＣＤ」という）１１及び第２ＬＣＤ１２を互いに上下に配置して収納する場合は、ハウジング１８が下部ハウジング１８ａ及び上部ハウジング１８ｂから構成され、上部ハウジング１８ｂが下部ハウジング１８ａの上辺の一部で回動自在に支持される。上部ハウジング１８ｂは、第１ＬＣＤ１１の平面形状よりも少し大きな平面形状を有し、一方主面から第１ＬＣＤ１１の表示画面を露出するように開口部が形成される。下部ハウジング１８ａは、その平面形状が上部ハウジング１８ｂよりも横長に選ばれ、横方向の略中央部に第２ＬＣＤ１２の表示画面を露出する開口部が形成され、第２ＬＣＤ１２を挟む何れか一方にスピーカ１５の音抜き孔が形成されるとともに、第２ＬＣＤ１２を挟む左右に操作スイッチ部１４が装着される。
【００４１】
操作スイッチ部１４は、第２ＬＣＤ１２の右横における下部ハウジング１８ａの一方主面に装着される動作スイッチ（以下、Ａボタンという）１４ａ及び動作スイッチ（以下、Ｂボタンという）１４ｂと、第２ＬＣＤ１２の左横における下部ハウジング１８ａの一方主面に装着される方向指示スイッチ（十字キー）１４ｃと、スタートスイッチ１４ｄと、セレクトスイッチ１４ｅと、側面スイッチ１４ｆ及び１４ｇとを含む。
【００４２】
Ａボタン１４ａ及びＢボタン１４ｂは、所定の指示を入力するために用いられる。方向指示スイッチ１４ｃは、プレイヤによって操作スイッチ部１４を用いて操作可能なプレイヤオブジェクト（この実施の形態では、キャラクタ）やカーソルなどの移動方向を入力するために用いられる。方向指示スイッチ１４ｃは、十字キーにより構成され、上下左右の合計４方向の入力を行うことができる。側面スイッチ（以下、Ｌボタンという）１４ｆ及び側面スイッチ（以下、Ｒボタンという）１４ｇは、下部ハウジング１８ａにおける上部面（上部側面）の左右に設けられる。
【００４３】
この実施の形態で適用される３次元ビデオゲームでは、Ｌボタン１４ｆ及びＲボタン１４ｇは、Ｂボタン１４ｂとともに後述する仮想カメラの視点を移動させる指示を入力するために用いられる。プレイヤがＬボタン１４ｆのみを操作することによって後述する仮想カメラの視点はキャラクタを中心として左周りで周回移動し、Ｒボタン１４ｇのみを操作することによって後述する仮想カメラの視点は右周りで周回移動する。また、プレイヤがＬボタン１４ｆと同時にＢボタン１４ｂを操作することによって後述する仮想カメラの視点は上方向（極座標方向）に移動する。プレイヤがＲボタン１４ｇと同時にＢボタン１４ｂを操作することによって後述する仮想カメラの視点は下方向に移動する。
【００４４】
第２ＬＣＤ１２の上面には、タッチパネル１３（図１における破線領域）が装着される。タッチパネル１３は、例えば、抵抗膜方式、光学式（赤外線方式）、静電容量結合式の何れの種類でもよく、その上面をスティック１６（または指でも可）で押圧操作、移動操作、または撫でる操作をしたとき、スティック１６の座標位置を検出して出力するものである。タッチパネル１３は、所定の指示を入力するために用いられる。
【００４５】
上部ハウジング１８ｂの側面近傍には、必要に応じてタッチパネル１３を操作するスティック１６を収納するための収納孔（図１における二点破線領域）が形成される。この収納孔には、スティック１６が収納される。下部ハウジング１８ａの側面の一部には、ゲームプログラムを記憶したメモリ（例えば、ＲＯＭ）を内蔵したゲームカートリッジ１７（以下、単にカートリッジ１７と記載する）を着脱自在に装着するためのカートリッジ挿入部（図１における一点破線領域）が形成される。カートリッジ１７は、ゲームプログラムを記憶する情報記憶媒体であり、例えば、ＲＯＭまたはフラッシュメモリのような不揮発性半導体メモリが用いられる。カートリッジ挿入部の内部には、カートリッジ１７と電気的に接続するためのコネクタ（図２参照）が内蔵される。さらに、下部ハウジング１８ａ（または上部ハウジング１８ｂでも可）には、ＣＰＵ等の各種電子部品を実装した電子回路基板が収納される。
【００４６】
次に、ゲーム装置１の回路構成について説明する。図２は、ゲーム装置１の回路構成を示すブロック図である。図２において、ハウジング１８に収納される電子回路基板には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、所定のバスを介して、カートリッジ１７と接続するためのコネクタ２８が接続されるとともに、入出力インターフェース（Ｉ／Ｆ）回路２７、第１のグラフィック処理ユニット（第１ＧＰＵ）２４、第２のグラフィック処理ユニット（第２ＧＰＵ）２６、ワーキングＲＡＭ（ＷＲＡＭ）２２、及び通信ポート２９が接続される。
【００４７】
コネクタ２８には、カートリッジ１７が着脱自在に接続される。カートリッジ１７は、上述したようにゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するＲＯＭ１７１とバックアップデータを書き換え可能に記憶するＲＡＭ１７２とを搭載する。カートリッジ１７のＲＯＭ１７１に記憶されたゲームプログラムは、ＷＲＡＭ２２にロードされ、当該ＷＲＡＭ２２にロードされたゲームプログラムがＣＰＵコア２１によって実行される。ＣＰＵコア２１がゲームプログラムを実行して得られる一時的なデータや画像を生成するためのデータがＷＲＡＭ２２に記憶される。ＲＯＭ１７１には、ゲーム装置１のコンピュータ、特にＣＰＵコア２１によって実行可能な形式の命令群及びデータ群であるゲームプログラムが記録される。そして、このゲームプログラムは、ＷＲＡＭ２２に適宜読み込まれ実行される。
【００４８】
第１ＧＰＵ２４には、第１ビデオＲＡＭ（以下「ＶＲＡＭ」）２３が接続され、第２ＧＰＵ２６には、第２のビデオＲＡＭ（以下「ＶＲＡＭ」）２５が接続される。第１ＧＰＵ２４は、ＣＰＵコア２１からの指示に応じて、ＷＲＡＭ２２に記憶される画像を生成するためのデータに基づいて第１ゲーム画像を生成し、第１ＶＲＡＭ２３に描画する。第２ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＷＲＡＭ２２に記憶される画像を生成するためのデータに基づいて第２ゲーム画像を生成し、第２ＶＲＡＭ２５に描画する。第１ＶＲＡＭ２３、第２ＶＲＡＭ２５は、それぞれ２フレーム分用意され、画データの展開用と画像データの読み出し用が１フレーム期間毎に交互に切り替えられる。
【００４９】
第１ＧＰＵ２４が第１ＬＣＤ１１に接続され、第２ＧＰＵ２６が第２ＬＣＤ１２に接続される。第１ＧＰＵ２４は、ＣＰＵコア２１からの指示に応じて第１ＶＲＡＭ２３に描画された第１ゲーム画像を第１ＬＣＤ１１に出力する。そして、第１ＬＣＤ１１は、第１ＧＰＵ２４から出力された第１ゲーム画像を表示する。第２ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて第２ＶＲＡＭ２５に描画された第２ゲーム画像を第２ＬＣＤ１２に出力する。そして、第２ＬＣＤ１２は、第２ＧＰＵ２６から出力された第２ゲーム画像を表示する。
【００５０】
Ｉ／Ｆ回路２７には、タッチパネル１３、操作スイッチ部１４、及びスピーカ１５が接続される。Ｉ／Ｆ回路２７は、タッチパネル１３、操作スイッチ部１４、及びスピーカ１５等の外部入出力装置とＣＰＵコア２１との間のデータの受け渡しを行う回路である。スピーカ１５は、上述した音抜き孔の内側位置に配置され、実行中のゲームに応じて生成される音声を出力する。
【００５１】
タッチパネル１３（タッチパネル用のデバイスドライバを含む）は、第２ＶＲＡＭ２５の座標系に対応する座標系を有し、スティック１６等によって入力（指示）された位置に対応する座標データをＷＲＡＭ２２に設けられる所定のレジスタに出力するものである。例えば、第２ＬＣＤ１２の表示画面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル１３の検出精度も表示画面に対応した２５６ｄｏｔ×１９２ｄｏｔである。なお、タッチパネル１３の検出精度は、第２ＬＣＤ１２の表示画面の解像度よりも低いものであってもよいし、高いものであってもよい。
【００５２】
通信ポート２９は、他のゲーム装置、据え置き型ゲーム機、或いはサーバ装置などの外部装置と情報を送受信する。なお、ゲーム装置１は、通信ポート２９から所定エリア内にある他のゲーム装置とピアツーピア（Peer-to-Peer）で接続し、情報を送受信することができる。つまり、所定エリア内にある複数のゲーム装置間では、サーバーを介さずに通信を行うことができる。
【００５３】
以下、この実施の形態において、図１に示したゲーム装置１で実行される３次元ビデオゲームについて説明する。この実施の形態にかかる３次元ビデオゲームは、仮想３次元空間に設けられたフィールド上を、プレイヤが操作スイッチ部１４を操作して動作させるキャラクタ（プレイヤキャラクタ）が移動していくことによりゲームが進行していく。
【００５４】
図３は、この３次元ビデオゲームにおいて用いられるキャラクタの例を示す図である。このキャラクタ２００が存在することとなる仮想３次元空間は、ワールド座標系（Ｘ，Ｙ，Ｚ）によって示される。図３に示するように、キャラクタ２００は、各頂点の座標をローカル座標系（ｘ，ｙ，ｚ）の座標で示す複数のポリゴンによって構成されている。キャラクタ２００のほぼ中心位置には、中心点２０１が設けられており、仮想３次元空間におけるキャラクタ２００の位置は、中心点２０１のワールド座標系における座標で示される。      
【００５５】
キャラクタ２００の内部には、仮想的な骨格２０２ａ、２０２ｂ…２０２ｎが設定されている。キャラクタ２００の内部に設定された骨格２０２ａ〜２０２ｎは、関節２０３ａ〜２０３ｍを介して順に結合されており、キャラクタ２００が走る、歩く、方向を変えるなどの能動的な動作によって位置が決められる。なお、後述する仮想カメラの視点移動の場合において、キャラクタ２００の頭部に設定された骨格２０２ａは、後述する仮想カメラの視点の位置の移動によっても変位する。
【００５６】
キャラクタ２００がフィールド上において停止している場合には、ワールド座標系のＹ座標と、ローカル座標系のｙ座標とが必ず一致し、また、頭部に設定された骨格２０２ａは、顔方向が変位されないものとなっているため、ローカル座標系のｙ座標と平行となる。
【００５７】
キャラクタ２００の体を構成する各部位は、内部に設定された骨格２０２が、該骨格２０２と接続する関節２０３を支点として前後左右に傾くこと、或いは回転することで動かされる。例えば、キャラクタ２００の顔は、頭部に設定された骨格２０２ａが関節２０３ａを支点として、後ろに４５度傾くことによって４５度だけ上方向を向き、前に４５度傾くことによって４５度だけ下方向を向く。また、キャラクタ２００の顔は、頭部に設定された骨格２０２ａが、右に４５度回転することによって４５度だけ右方向を向き、左に４５度回転することによって４５度だけ左方向を向く。なお、キャラクタ２００の体の内部に設定された各骨格２０２には、動かすことのできる動作可能角範囲が設定されている。この実施の形態で適用される３次元ビデオゲームでは、キャラクタ２００の顔は、顔以外の部位の方向に対して方向を変位させることができる。
【００５８】
ローカル座標系における骨格２０２の位置が決定まると、キャラクタ２００を構成する各ポリゴンの位置のローカル座標系の位置は、一意に定まるものとなる。仮想３次元空間における骨格２０３及びポリゴンの位置は、キャラクタ２００の向いている方向に応じてローカル座標系の座標をワールド座標系の座標に変換することで決定されるものとなる。
【００５９】
キャラクタ２００の向いている方向は、ローカル座標系の各座標軸がワールド座標系の各座標軸に対してなす角で表される。そして、表示処理を行う際においては、両者の座標軸同士がなす角に従って、キャラクタ２００を構成するポリゴンの頂点のローカル座標系の座標がワールド座標系の座標に変換される。キャラクタ２００の進行方向は、現在のフレーム期間におけるキャラクタ２００の位置と前のフレーム期間におけるキャラクタ２００の位置関係に基づいて決められる。
【００６０】
キャラクタ２００が仮想３次元空間内のフィールドを移動していく様子は、仮想カメラにより仮想３次元空間を透視変換することで第１ＬＣＤ１１の表示画面上に映し出され、プレイヤに認識されるものとなる。第２ＬＣＤ１２の表示画面には、フィールド上におけるキャラクタ２００の位置を示す２次元マップが表示されるが、本発明とは直接的に関わりがないので説明を省略する。
【００６１】
図４は、この透視変換の様子を模式的に示す。仮想３次元空間内に仮想カメラ３０１が置かれ、仮想スクリーン３０２上に投影された画像が第１ＬＣＤ１１の表示画面上に表示される画像となる。
【００６２】
この仮想カメラ３０１の位置が視点３０３、仮想カメラ３０１の向きが視軸３０４、視点３０３と仮想スクリーン３０２の頂点の四隅を結んだ４本の直線が作る領域が視界３０５となる。仮想スクリーン３０２の大きさは固定であり、視界３０５の広さを決めれば仮想スクリーン３０２の位置が決まり、仮想スクリーン３０２の位置を決めれば視界３０５の広さが決まるという関係がある。ここでは、視界３０５の広さは、一定に保たれるものとする。なお、視点３０３から一定距離のところに後部クリップ面を設けてもよい。
【００６３】
このように、仮想スクリーン３０２上に画像を投影するために用いられる座標系が視点座標系（Ｘ’，Ｙ’，Ｚ’）であり、視軸３０４の方向が視点座標系のＺ’軸となる。ワールド座標系の座標（ローカル座標家の座標から変換された座標を含む）は、視点座標系の座標に変換されて、次に示す隠面消去の処理を含む透視変換の処理が行われる。
【００６４】
透視変換により仮想スクリーン３０２上に投影した画像を生成する場合には、前面に他の物体があって隠されてしまう面を消去する隠面消去を行う必要がある。隠面消去の方法としては、ここでは、Ｚバッファ法を用いるものとしている。ＣＰＵコア２１は、ワールド座標系の座標を視点座標系の座標へ変換すると、各特徴点の座標を第１ＧＰＵ２４に送るとともに、描画命令を出力する。この描画命令に基づいて、第１ＧＰＵ２４は、各特徴点について前面にある点（Ｚ’座標の小さな点）のデータ（Ｚ’の値）が残るようにＺバッファの値を更新し、更新の都度、当該点について画像データをそれぞれ第１ＶＲＡＭ２３に展開していく。
【００６５】
透視変換を行う前提として、仮想カメラ３０１の視点３０３の位置、視軸３０４の方向、視角３０５の大きさ（仮想カメラの視点３０３の位置から仮想スクリーン３０２までの距離）が決まっている必要がある（仮想スクリーン３０２の位置は、これらが決まると必然的に決まる）。仮想カメラ３０１の視点３０３の位置は、キャラクタ２００と一定距離の位置に保たれ、プレイヤからのＬボタン１４ｆ及びＲボタン１４ｇ、ならびにＢボタン１４ｂの操作によって指示方向に移動する。視軸３０４の方向は、必ずキャラクタ２００の中心点２０１の位置を参照点として向くように設定されている。
【００６６】
図５は、この３次元ビデオゲームにおいて用いられる仮想カメラ３０１の視点３０３の移動を模式的に示す図である。図５に示するように、キャラクタ２００は、フィールド４００上に配置される。仮想カメラ３０１の視点３０３は、キャラクタ２００の中心点２０１の位置を参照点とした仮想的な半球３０３Ｓ上にある。図５において仮想カメラ３０１の視点３０３は、プレイヤからのＬボタン１４ｆ及びＲボタン１４ｇ、ならびにＢボタン１４ｂの操作によって、半球３０３Ｓ上を指示方向に移動することができる。
【００６７】
仮想カメラ３０１の視点３０３の位置からキャラクタ２００の中心点２０１の位置の間の距離に比べ、キャラクタ２００の中心点２０１の位置からキャラクタ２００の顔の位置の間の距離は、無視できる程度に短い。ここで、キャラクタ２００の中心点２０１の位置から仮想カメラ３０１の視点３０３の位置に向かう方向は、キャラクタ２００の顔の位置から仮想カメラ３０１の視点の位置に向かう方向と同視することができる。ワールド座標系において、キャラクタ２００の中心点２０１の位置を（Ｘｃ，Ｙｃ，Ｚｃ）とし、仮想カメラ３０１の視点３０３の位置を（Ｘｖ，Ｙｖ，Ｚｖ）とすると、仮想カメラ３０１の視点３０３のＹ座標をキャラクタ２００の中心点２０１のＹ座標まで下ろした視点直下点３０３ｄの位置は（Ｘｖ，Ｙｃ，Ｚｖ）となる。
【００６８】
図５において、キャラクタ２００の顔以外の部位が向いている体方向は、体方向ベクトル４０１で示される。キャラクタ２００の体方向は、ローカル座標系のｘ軸方向である。仮想３次元空間におけるキャラクタ２００の顔以外の部位が向いている体方向を示す体方向ベクトル４０１は、ワールド座標系のＹ軸方向とローカル座標系のｙ軸方向が一致するものと仮定し、ワールド座標系のＸ軸方向とローカル座標系のｘ軸方向とのなす角度をγとすると、（cosγ，０，sinγ）と表すことができる。ここで、ワールド座標系のＸ軸とローカル座標系のｘ軸が一致するときには、体方向ベクトル４０１は（１，０，０）と表すことができる。
【００６９】
キャラクタ２００の中心点２０１の位置から視点直下点３０３ｄの位置に向かう方向は、視点直下方向ベクトル４０２で示される。視点直下方向ベクトル４０２は、（Ｘｖ−Ｘｃ，０，Ｚｖ−Ｚｃ）と表すことができる。キャラクタ２００の中心点２０１の位置から視点３０３の位置に向かう方向は、視点方向ベクトル４０３で示される。視点方向ベクトル４０３は、（Ｘｖ−Ｘｃ，Ｙｖ−Ｙｃ，Ｚｖ−Ｚｃ）と表すことができる。
【００７０】
キャラクタ２００の体方向と、キャラクタ２００の中心点２０１の位置から視点直下点３０３ｄに向かう方向とがなす視点左右角θは、体方向ベクトル４０１と視点直下方向ベクトル４０２とを用いた演算によって求めることができる。キャラクタ２００の中心点２０１の位置から視点直下点３０３ｄに向かう方向と、キャラクタ２００の中心点２０１の位置から仮想カメラ３０１の視点３０３の位置に向かう方向とがなす視点上下角βは、視点直下方向ベクトル４０２と視点方向ベクトル４０３とを用いた演算によってを求めることができる。視点上下角βは、キャラクタ２００の中心点２０１の位置から仮想カメラ３０１の視点３０３の位置に向かう方向の仰角である。
【００７１】
ローカル座標系のｘ−ｙ座標平面において、キャラクタ２００の体方向と、キャラクタ２００の顔が向いている顔方向とがなす角度を顔上下角αとする。ここで、顔上下角αは、キャラクタ２００の顔以外の部位に対して顔が向いている角度と言うことができる。キャラクタ２００の顔方向は、頭部に設定された骨格２０２ａがローカル座標系のｘ−ｙ座標平面において関節２０３ａを支点として、体方向に対して顔上下角αだけ傾けられることで、変位される。キャラクタ２００の顔は、頭部に設定された骨格２０２ａがローカル座標系のｙ軸に平行で回転していない通常時においては、キャラクタ２００の体方向と同じ方向を向くように設定されているため、顔方向は体方向ベクトル４０１の方向と一致するものとなる。
【００７２】
次に、プレイヤ２００の顔の上下方向の動きについて、仮想カメラ３０１の視点３０１が左右に動く場合を例にして説明する。図５に示すように、フィールド４００上にキャラクタ２００が存在する場合に、プレイヤからのＬボタン１４ｆ或いはＲボタン１４ｇ、ならびにＢボタン１４ｂの操作によって、仮想カメラ３０１の視点３０３の位置を仮想３次元空間において半球３０３Ｓ上で移動させる。この場合において、視点左右角θが所定角度（例えば、７６度）より小さくなったとき、キャラクタ２００の顔方向は、ＲＯＭ１７１に記憶されている顔方向調整テーブル５００に従って変位する。
【００７３】
図６は、ＲＯＭ１７１に記憶されている顔方向調整テーブルの例を示す図である。顔方向調整テーブル５００は、視点左右角θ（度）と、顔方向係数（％）とを対応付けて記憶している。
【００７４】
顔方向係数は、視点左右角θが小さくなるほど大きな値となるように設定されており、視点左右角θが０度となった場合には、顔方向係数は最大値７５％となる。顔方向調整テーブル５００には、視点左右角θが７６度以内の範囲のみ対応する顔方向係数が登録されており、視点左右角θが７７度以上となる場合には、キャラクタ２００の顔方向は変位されない。顔上下角αは、視点上下角βと、顔方向係数（％）との乗算によって算出される。
【００７５】
例えば、視点左右角θが０度になった場合（キャラクタ２００の体方向の真っ正面に仮想カメラ３０１の視点３０３が位置した場合）には、キャラクタ２００の体方向と顔方向とがなす顔上下角αは、キャラクタ２００の中心点２０１の位置から仮想カメラ３０１の視点３０３の位置に向かう方向の仰角を示す視点上下角βの７５％分の角度となる。ここで、キャラクタ２００の顔方向は、体方向の真っ正面から０．７５βだけ仮想カメラ３０１の視点３０３の位置する方向を向くものとなる。
【００７６】
また、視点左右角θが大きくなるに従って顔方向係数が小さくなるように定められているので、視点３０３の位置が同じ高さで周回移動しているときには、視点左右角θが７６度になると顔方向の変位が開始され、視点左右角θが小さくなるのにつれて顔方向の変位量角が大きくなり、視点左右角が０度になると顔方向の変位量が最大となり、反対側で視点左右角θが大きくなるのにつれて顔方向の変位量が小さくなり、視点左右角θが７６度を越えると顔方向が変位されなくなる。
【００７７】
なお、仮想カメラ３０１の視点３０３が動く場合と同様に、キャラクタ２００がフィールド４００上を移動した場合にも、仮想カメラ３０１の視点３０３の位置と、キャラクタ２００の中心点２０１の位置との関係によって、キャラクタ２００の顔方向は変位する。但し、キャラクタ２００がフィールド４００上を移動中はキャラクタ２００の顔方向は変位しない。
【００７８】
以下、この実施の形態にかかる３次元ビデオゲームにおける処理について説明する。ここでは、説明を簡単にするため、仮想３次元空間において動作するオブジェクトとしては、キャラクタ２００しか存在しないものとし、仮想カメラ３００の視界３０５の広さは一定であるものとする。また、本発明に特に関わる処理以外は、説明を省略している場合があるものとする。また、実際には、骨格２０２の位置決め等には、ベクトル演算を用い、角度の判定には正弦、余弦、正接などを用いるが、説明の簡単化のため、角度そのものを用いた説明を行うものとする。
【００７９】
キャラクタ２００のフィールド４００上における位置や向き、仮想カメラ３０１の視点３０３の位置は、少なくとも最新のデータがＷＲＡＭ２２の所定の領域に記憶されるものとなっている。少なくともキャラクタ２００の位置は、最新のデータの一つ前のデータもＷＲＡＭ２２に記憶されている。また、これらに基づいて算出された角度（顔上下角α、視点上下角β、視点左右角θ）も、ＷＲＡＭ２２に一時記憶されるものとなっている。
【００８０】
図７は、この実施の形態にかかる３次元ビデオゲームにおけるメイン処理を示すフローチャートである。このメイン処理は、１フレーム分の画像を生成する処理であり、３０分の１秒ごとのタイマ割り込みによって行われる。メイン処理においては、ＣＰＵコア２１は、プレイヤにより方向指示スイッチ１４ｃからキャラクタ２００をフィールド４００上で移動させるための指示が入力されているかどうかを判定する（ステップＳ１０１）。
【００８１】
キャラクタ２００をフィールド４００上で動作させるための指示が入力されている場合には、ＣＰＵコア２１は、該入力された指示の移動方向に従ってキャラクタ２００の位置（ワールド座標系）を移動させる。ここで、方向指示スイッチ１４ｃから入力された指示の移動方向と、キャラクタ２００の体方向とが違う場合には、ＣＰＵコア２１は、まずキャラクタ２００の体方向を変位し、キャラクタ２００の体方向と、入力された指示の移動方向とを一致させる。そして、キャラクタ２００の体が入力された指示の移動方向を向いてから、ＣＰＵコア２１は、該方向にキャラクタ２００の位置（ワールド座標系）を移動させる。ここで、ＣＰＵコア２１は、キャラクタ２００の動作に応じてキャラクタ２００の内部に設定された各骨格２０２ａ〜２０２ｎのローカル座標系における位置を決定する（ステップＳ１０２）。そして、ステップＳ１０５の処理に進む。
【００８２】
ステップＳ１０１においてキャラクタ２００をフィールド４００上で動作させるための指示が入力されていない場合には、ＣＰＵコア２１は、プレイヤによりＬボタン１４ｆ及びＲボタン１４ｇ、ならびにＢボタン１４ｂから仮想カメラ３０１の視点３０３を移動させるための指示が入力されているかどうかを判定する（ステップＳ１０３）。仮想カメラ３０１の視点３０３を移動させるための指示が入力されていない場合には、そのままステップＳ１０８の処理に進む。
【００８３】
仮想カメラ３０１の視点３０３を移動させるための指示が入力されている場合には、ＣＰＵコア２１は、該入力された指示の移動方向に従って仮想カメラ３０１の視点３０３の位置を半球３０３Ｓ上で移動させる（ステップＳ１０４）。そして、ステップＳ１０５の処理に進む。ステップＳ１０５では、ＣＰＵコア２１は、仮想カメラ３０１の視点３０３の位置からキャラクタ２００の中心点２０１の位置を向くように、視軸３０４の方向を移動する。
【００８４】
次に、ＣＰＵコア２１は、前回のフレームと、今回のフレームとにおいてキャラクタ２００の中心点２０１の位置（ワールド座標系）を比較し、キャラクタ２００がフィールド４００上で停止しているかどうかを判定する（ステップＳ１０６）。キャラクタ２００が停止していれば、ＣＰＵコア２１は、キャラクタ２００の体方向に対して、顔方向を調整する顔方向調整処理を行う（ステップＳ１０７）。そして、顔方向調整処理を行った後に、ステップＳ１０８の処理に進む。なお、顔方向調整処理の詳細については、後述する。キャラクタ２００がフィールド４００上で停止していなければ、そのままステップＳ１０８の処理に進む。
【００８５】
ステップＳ１０８では、ＣＰＵコア２１は、視界３０５によって決められる仮想スクリーン３０２に仮想カメラ３０１の視点３０３の位置からキャラクタ２００を含む仮想３次元空間を透視変換して、第１ＬＣＤ１１の表示画面上に表示する２次元画像の生成を第１ＧＰＵ２４に依頼する表示処理を行う。表示処理を終了すると、このメイン処理を終了し、次のフレーム期間の開始のタイミングにおいて、再びメイン処理が実行されることとなる。
【００８６】
この表示処理においては、ＣＰＵコア２１は、仮想３次元空間に存在するオブジェクトを構成するポリゴンのうちで透視変換される範囲（すなわち、視界３０５の広さの範囲内で仮想スクリーン３０２よりも遠い位置（及び後部クリップ面よりも近い位置）に含まれるポリゴンを特定する。ＣＰＵコア２１は、特定されたポリゴンの各頂点のワールド座標系の座標（ローカル座標系の座標から変換されたものを含む）を視点座標系の座標に変換する。ＣＰＵコア２１は、これら視点座標系の各座標を第１ＣＰＵ２４に送るとともに、描画命令を出力する。
【００８７】
描画命令を受け取った第１ＧＰＵ２４は、視点座標系の座標に基づいて、各面の構成する各点について、前面にある点（Ｚ’座標の小さな点）のデータ（Ｚ’の値）が残るようにＺバッファの内容を更新する。Ｚバッファの値を更新した場合には、第１ＧＰＵ２４は、当該点について画像データをそれぞれ第１ＶＲＡＭ２３（画像データの展開用）に展開していく。第１ＧＰＵ２４は、展開される画像データに対してシェーディングやテクスチャマッピングなどの処理も行っている。
【００８８】
第１ＧＰＵ２４は、また、前のフレーム期間で第１ＶＲＡＭ２３（今回のフレーム期間では、画像データの読み出し用とされる）に展開された画像データを順次読み出し、同期信号を付加してビデオ信号を生成し、第１ＬＣＤ１１に出力する。第１ＬＣＤ１１は、第１ＶＲＡＭ２３から出力されたビデオ信号に対応した画像を表示画面に表示する。１フレーム期間毎に表示画面が切り替えられていくことで、プレイヤは、キャラクタ２００が仮想３次元空間で動作する画像を見ることができるようになる。
【００８９】
図８は、ステップＳ１０７の顔方向調整処理を詳細に示すフローチャートである。顔方向調整処理では、ＣＰＵコア２１は、ワールド座標系においてキャラクタ２００の体方向と、キャラクタ２００の中心点２０１の位置から視点直下点３０３ｄに向かう方向とがなす視点左右角θを算出する（ステップＳ２０１）。そして、ＣＰＵコア２１は、視点左右角θが７６度以下であるかどうかを判定する（ステップＳ２０２）。視点左右角θが７６度以下でなければ、そのまま顔方向調整処理を終了して、図７のフローチャートに復帰する。
【００９０】
一方、視点左右角θが７６度以下であれば、ＣＰＵコア２１は、ＲＯＭ１７１に記憶されている顔方向調整テーブル５００を参照し、視点左右角θに対応する顔方向係数を特定する。そして、ＣＰＵコア２１は、特定した顔方向係数と、キャラクタ２００の中心点２０１の位置から仮想カメラ３０１の視点３０３の位置に向かう方向の仰角を示す視点上下角βと、を乗算し、キャラクタ２００の体方向と顔方向とがなす顔上下角αを算出する（ステップＳ２０３）。
【００９１】
次に、ＣＰＵコア２１は、頭部に設定された骨格２０２ａをローカル座標系のｘ−ｙ座標平面において関節２０３ａを支点として、顔以外の部位の向いている方向（体方向）に対して算出した顔上下角αだけ傾けることで、キャラクタ２００の顔方向を変位する（ステップＳ２０４）。その後、顔方向調整処理を終了して、図７のフローチャートに復帰する。
【００９２】
以上説明したように、この実施の形態にかかる３次元ビデオゲームでは、キャラクタ２００の体方向と、キャラクタ２００の中心点２０１の位置から視点直下点３０３ｄに向かう方向とがなす視点左右角θが７６度以下であれば、ローカル座標系のｘ−ｙ座標平面においてキャラクタ２００の顔以外の部位の向いている方向（体方向）に対して顔方向がなす顔上下角αが変位されるものとなる。この場合には、キャラクタ２００の顔が第１ＬＣＤ１１の表示画面上に写る角度にあるとき、プレイヤにとってキャラクタ２００の顔を視認しやすい状態での第１ＬＣＤ１１の表示画面上に表示することができる。プレイヤは、ゲームをプレイしているときにおいて常にキャラクタ２００を見ており、一般的に緻密にデザインされているキャラクタ２００の顔がはっきりと表示されるので、ゲームの興趣は向上するものとなる。
【００９３】
また、視点左右角θが７６度以下であるときに限って、顔上下角αを変位させることにより、キャラクタ２００の顔が第１ＬＣＤ１１の表示画面上に写らない状態にあるときまでまで、不必要にキャラクタ２００の顔方向を変位させることがない。
【００９４】
また、視点左右角θが７６度以下であっても、キャラクタ２００が静止しているときにだけ、顔上下角αが変位され、キャラクタ２００がフィールド４００上を移動しているときには、顔上下角αは変位されない。このため、キャラクタ２００が動作しているときに動作の態様にそぐわない方向に顔が向いてしまうことがなく、キャラクタ２００の顔方向が顔以外の部位の動きに比べて不自然に変位されることがない。
【００９５】
ここで、顔上下角αは、顔方向係数と視点上下角βとを乗算した値によって決定される。顔方向係数は、視点左右角θに応じて顔方向調整テーブル５００に登録されているため、キャラクタ２００の顔方向は、視点左右角θに応じて変位するものとなる。なお、顔方向調整テーブル５００に登録されている顔方向係数の最大値は７５％である。ここで、キャラクタ２００の顔方向は、最大であってもキャラクタ２００の中心点２０１の位置から仮想カメラ３０１の視点３０３の位置に向かう方向の仰角を示す視点上下角βの７５％分しか変位しない。
【００９６】
このように、キャラクタ２００の顔方向は、キャラクタ２００の中心点２０１の位置から仮想カメラ３０１の視点３０３の位置に向かう方向の仰角を示す視点上下角βより小さい角度までしか変化しないので、キャラクタ２００の顔方向において顔上下角αの変位が大きくなりすぎず、キャラクタ２００の体方向に比べて顔方向が異様に不自然な方向に変位してしまうということがない。また、キャラクタ２００の顔方向は最大であっても０．７５βしか変位されないため仮想カメラ３０１の方向を完全に向くわけではなく、キャラクタ２００の顔方向が変位することによってキャラクタ２００が不自然なカメラ目線となってしまうことがない。
【００９７】
なお、顔方向係数が最大値となるのは、視点左右角θが０度になった場合（キャラクタ２００の体方向の真っ正面に仮想カメラ３０１の視点３０３が位置した場合）である。仮想カメラ３０１の視点３０３の位置が正面からずれるほど、顔方向係数は小さくなり、キャラクタ２００の顔方向において顔上下角αの変位が小さくなる。この場合には、仮想カメラ３０１の視点３０３が移動し続けているときでもキャラクタ２００の顔方向が自然な流れで変位される。
【００９８】
プレイヤは、Ｌボタン１４ｆ及びＲボタン１４ｇ、ならびにＢボタン１４ｂの操作によって、仮想カメラ３０１の視点３０３の位置をキャラクタ２００の中心点２０１と一定の距離を保ちつつ、視界３０５を一定の広さとしたまま、該入力された指示の移動方向に移動させることができる。この場合には、キャラクタ２００の第１ＬＣＤ１１の表示画面上に表示される大きさを変化させずに、キャラクタ２００を様々な角度から表示画面に表示させることができる。
【００９９】
なお、仮想カメラ３０１の視点３０３が動く場合と同様に、キャラクタ２００がフィールド４００上を移動した場合にも、仮想カメラ３０１の視点３０３の位置と、キャラクタ２００の中心点２０１の位置との関係によって、プレイヤ２００の顔方向は変位する。但し、キャラクタ２００がフィールド４００上を移動中はキャラクタ２００の顔方向は変位しない。ここで、仮想カメラ３０１の視点３０３がキャラクタ２００の中心点２０１と一定の距離を保ちつつ移動され、視界３０５の広さも一定に保たれることにより、第１ＬＣＤ１１の表示画面上で表示されるキャラクタの大きさを変化させずに、様々な角度からカメラ目線とはならないキャラクタ２００の顔を第１ＬＣＤ１１の表示画面上に表示させることができる。
【０１００】
仮想カメラ３０１の視点３０３は、Ｌボタン１４ｆ或いはＲボタン１４ｇとＢボタン１４ｂとが同時に操作されたときには、それぞれ半球３０３Ｓ上を上下方向に移動するものとしており、視点左右角θだけではなく視点上下角βも、視点３０３の位置の移動で変化するものとしていた。視点Ｘ−Ｚキャラクタの顔上下角αは、視点左右角θに応じて定められる顔方向係数の違いだけではなく、視点上下角βの違いによっても変化するので、視点３０３の位置を上下方向に移動させた場合にも、キャラクタ２００の顔方向をプレイヤが視認しやすいように変位させることができる。
【０１０１】
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【０１０２】
上記実施の形態では、視点左右角θに応じてキャラクタ２００の顔方向を変位する顔上下角αが決定されるものとしていたが、顔上下角αを決定する条件はこれに限るものではない。
【０１０３】
例えば、変位対象となる顔の構成要素の一部が表示されるように顔上下角αが決定されるのであれば、キャラクタ２００の外貌的特徴でプレイヤに最も強い印象を与えることとなる目が、髪の毛や、鎧や帽子など装備したアイテムなどで隠れないように顔上下角αを決定することができる。ここでは、キャラクタ２００の顔方向が変位されることによって髪の毛、鎧や帽子など装備したアイテムなどによってキャラクタ２００の目が隠れてしまうことがなくなるので、プレイヤは、キャラクタ２００の目を確実に視認でき、キャラクタ２００の外貌的特徴を把握しやすくなる。
【０１０４】
また、キャラクタ２００の性格などによって顔上下角αが決定されるのであれば、好奇心旺盛なのキャラクタ２００は、クールなキャラクタ２００に比べて顔上下角αを大きくすることができる。ここでは、キャラクタ２００の特性に応じて、キャラクタ２００の顔の変位を変えることによって、よりリアルな画像を表示することができる。
【０１０５】
上記実施の形態では、キャラクタ２００がフィールド４００上で停止していることを条件に、キャラクタ２００の顔方向が変位されるものとしていたが、変位を行うかどうかを決定するキャラクタ２００の動作条件はこれに限るものではない。例えば、キャラクタ２００が所定速度以下で移動している場合には、キャラクタ２００の顔方向を変位可能なものとしてもよい。ここで、キャラクタ２００の移動速度に応じて、移動速度が小さいほど顔上下角αが大きくなるようにキャラクタ２００の顔方向を変位させるものとすることができる。
【０１０６】
この場合には、キャラクタ２００がフィールド４００上を所定速度以上で移動している場合には顔方向が変位されないので、キャラクタ２００の顔方向が体の動きに比べて不自然に変位されることがない。さらに、キャラクタ２００の移動速度に応じて顔上下角αが決定されることによって、プレイヤにとってのキャラクタ２００の顔の視認しやすさを実現しつつ、且つキャラクタ２００の顔方向が体の動きに比べて不自然に変位されるのを防ぐことができる。
【０１０７】
上記実施の形態では、顔上下角αは、ＲＯＭ１７１に記憶されておいる顔方向調整テーブル５００を参照することで決定されるものとしていたが、これに限るものではなく、他の方法によって決定されるものであってもよい。例えば、ゲームプログラム中に顔上下角αを算出するためのいくつかの係数を記憶しておき、それらの演算結果によって顔上下角αが決定されるものであってもよい。この場合には、演算結果がキャラクタ２００の中心点２０１の位置から視点直下点３０３ｄに向かう方向と、キャラクタ２００の中心点２０１の位置から仮想カメラ３０１の視点３０３の位置に向かう方向とがなす視点上下角βより大きくならないように係数及び演算式を設定する必要がある。
【０１０８】
上記実施の形態では、顔上下角αは、視点上下角βと、顔方向係数（％）との乗算によって算出されるものとしていたが、これに限るこのではなく、その他の演算によって決定されるものであってもよい。
【０１０９】
上記実施の形態では、キャラクタ２００の顔方向は、視点左右角θが７６度以内の範囲にあるときには、頭部に設定された骨格２０２ａをローカル座標系のｘ−ｙ座標平面において関節２０３ａを支点として、顔以外の部位の向いている方向（体方向）に対して算出された顔上下角αだけ傾けることで変位されるものとしていた。さらに視点左右角θが７６度以内の範囲にあるときには、骨格２０２ａを視点３０３の方向に応じて左右いずれかの方向に所定の角だけ回転されるものとしてもよい。ここで、左右方向の回転角は、ワールド座標系において、キャラクタ２００の体方向と、キャラクタ２００の中心点２０１の位置から視点直下点３０３ｄに向かう方向とがなす視点左右角θに応じて該視点左右角θより小さい角度に決定されるものとすることができる。
【０１１０】
この場合には、キャラクタ２００の顔方向を、左右にも変位させることで、キャラクタ２００の顔がさらに視認しやすくなる。さらに、キャラクタ２００の顔の左右角を、キャラクタ２００の体方向とキャラクタ２００の中心点２０１の位置から視点直下点３０３ｄに向かう方向とがなす視点左右角θより小さい角度だけ変位することができるものとすると、視点左右角θが７６度の範囲内であっても、キャラクタ２００の体方向の向きに対して顔方向の変位が大きくなりすぎてしまうことがない。
【０１１１】
さらに、設定された骨格２０２ａの回転によりキャラクタ２００の顔方向を左右方向に回転させるのは、視点左右角θが上下方向を変化させる場合の７６度よりも小さい所定角度（例えば、６０度）にあるときに限るものとしてもよい。この場合にも、キャラクタ２００の体方向の向きに対して顔方向の変位が大きくなりすぎてしまうことがない。
【０１１２】
上記実施の形態では、キャラクタ２００の顔方向において顔上下角αが変位されるものとしていたが、変位される部分はこれに限るものではなく、キャラクタ２００を構成する他の部分であってもよい。例えば、キャラクタ２００が持っている盾の方向が変位されれば、プレイヤは、緻密にデザインされた盾をはっきりと視認することができ、ゲームの興趣は向上するものとなる。
【０１１３】
上記実施の形態では、視点左右角θが７６度以下である場合に、顔上下角αが変位されるものとしていたが、変位が行われる角度範囲はこれに限るものではなく、９０度より小さい所定の角度であればよい。顔方向係数の最大値も７５％に限らず、０％よりも大きく１００％よりも小さい所望の範囲内で定めることができる。さらに、顔方向係数は、視点左右角θの大きさによってのみ定めるのではなく、視点上下各βの大きさによっても定めるものとすることもできる。
【０１１４】
上記実施の形態では、フィールド４００上に１のキャラクタ２００が存在するものとしていたが、これに限るものではなく、複数のキャラクタ２００が第１ＬＣＤ１１の表示画面上に表示されるゲームに本発明を適用するものとしてもよい。この場合には、第１ＬＣＤ１１の表示画面上に表示される複数のキャラクタ２００のほぼ中心位置を参照点とした仮想的な半球上に仮想カメラ３０１の視点３０３が設定されるものとなる。この場合には、ワールド座標系において、各キャラクタ２００の中心点２０１の位置と、仮想カメラ３０１の視点３０３の位置との間の距離に応じて顔上下角αを決定することができる。
【０１１５】
例えば、第１ＬＣＤ１１の表示画面上に表示される複数のキャラクタ２００において、仮想カメラ３０１の視点３０３の位置から各キャラクタ２００の中心点２０１の位置との距離に応じて顔上下角αが変位されるものとしてもよい。例えば、近くに配置されているキャラクタ２００ほど顔方向が大きく変位されるものとすると、プレイヤが複数のキャラクタ２００の顔を視認しやすくなる。なお、仮想カメラ３０１の視点３０３の位置から遠く離れた位置（ワールド座標系）に配置されたキャラクタ２００においては、顔方向の変位を行わないものとすることもできる。
【０１１６】
上記実施の形態では、顔方向調節処理において、キャラクタ２００を構成する１の（頭部に設定された）骨格２０２ａを関節２０３ａを支点として、顔以外の部位の向いている方向（体方向）に対して算出した顔上下角αだけ傾けることで、キャラクタ２００の顔方向を変位するものとしていたが、傾ける骨格２０２は複数であってもよい。例えば、頭部に設定された骨格２０２ａと、首に設定された骨格２０２とを傾けることによって、顔方向を顔上下角αだけ変位するものとしてもよい。
【０１１７】
上記実施の形態では、仮想カメラ３０１の視点３０３の位置は、キャラクタ２００と一定距離の位置に保たれ、プレイヤからのＬボタン１４ｆ及びＲボタン１４ｇ、ならびにＢボタン１４ｂの操作によって指示方向に移動されるものとしていた。また、視界３０５の広さも一定に保たれるものとしていた。しかしながら、本発明で適用可能な仮想カメラ３０１の制御態様は、これに限るものではない。
【０１１８】
仮想カメラ３０１の視点３０３の位置は、必ずしもキャラクタ２００の移動に追随して移動させる必要はない。プレイヤの操作によらなくても、ゲームの進行状況に応じて仮想カメラ３０１の視点３０３の位置が移動することがあってもよい。さらに、キャラクタ２００と視点３０３の間の距離も、視界３０５の広さも、必ずしも一定に保つ必要はなく、状況に応じて変化させるものとしてもよい。
【０１１９】
上記の実施の形態では、キャラクタ２００は、プレイヤからの移動の指示によってのみ仮想３次元空間で移動することを前提としており、視点３０３よりも高い位置に移動いできることはほとんどなかった。これに対して、例えば、エレベーターの昇降によりキャラクタ２００が上方向に移動させることで、第１ＬＣＤ１１の表示画面上には仮想カメラ３０１の視点３０３からキャラクタ２００を見上げる画像を表示させることができるようになる。この場合には、視点上下角βに従ってキャラクタ２００の顔方向を下向きに変位させるものとすることができる。
【０１２０】
上記の実施の形態では、第１ＬＣＤ１１と第２ＬＣＤ１２という２つの表示装置、及びタッチパネル１３というポインティングデバイスを備えるゲーム装置１において、本発明を適用したゲームを実行するものとした場合を例として説明した。しかしながら、少なくともゲームの画像を表示する表示装置と、プレイヤが指示を入力することのできる入力装置とを備えるものであれば、ゲーム装置１以外のコンピュータ装置において、本発明を適用したゲームを実行するものとしてもよい。本発明を適用したゲームを実行するコンピュータ装置は、ゲーム専用機でもパーソナルコンピュータのような汎用機であってもよく、携帯型であるか据え置き型であるかを問わない。また、発明を適用したゲームを実行するコンピュータ装置として、携帯電話機を適用することもできる。
【０１２１】
上記の実施の形態では、ゲーム装置１のプログラム及びデータは、ゲームカートリッジ１７のＲＯＭ１７１に格納されて配布されるものとしていた。もっとも、これらのプログラム及びデータを格納する記録媒体は、このようなものに限るものではなく、プラットフォームとなるコンピュータ装置の形態に応じて、光and/or磁気ディスク装置（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなど）を適用することもできる。固定ディスク装置を備えるコンピュータ装置をプラットフォームとする場合には、これらのプログラム及びデータは、固定ディスク装置に予め格納して配布してもよい。
【図面の簡単な説明】
【０１２２】
【図１】本発明の実施の形態に適用されるゲーム装置の構成を示す外観図である。
【図２】ゲーム装置の回路構成を示すブロック図である。
【図３】本発明の実施の形態に適用される３次元ビデオゲームにおいて用いられるキャラクタの例を示す図である。
【図４】透視変換の様子を模式的に示す図である。
【図５】本発明の実施の形態に適用される３次元ビデオゲームにおいて用いられる仮想カメラの視点の移動を模式的に示す図である。
【図６】ＲＯＭに記憶されている顔方向調整テーブルの例を示す図である。
【図７】本発明の実施の形態に適用される３次元ビデオゲームにおけるメイン処理を示すフローチャートである。
【図８】図７の顔方向調整処理を詳細に示すフローチャートである。
【符号の説明】
【０１２３】
１  ゲーム装置
１１  第１ＬＣＤ
１２  第２ＬＣＤ
１３  タッチパネル
１４  操作スイッチ部
１４ｂ  Ｂボタン
１４ｃ  方向指示スイッチ
１４ｆ  Ｌボタン
１４ｇ  Ｒボタン
２１  ＣＰＵコア
２２  ＷＲＡＭ
１７１  ＲＯＭ
２００  キャラクタ
２０１  中心点
２０２  骨格
２０３  関節
３０１  仮想カメラ
３０３  視点
３０４  視軸
４０１  体方向ベクトル４０１
４０２  視点直下方向ベクトル
４０３  視点方向ベクトル
５００  顔方向調整テーブル
【図１】
2007282861.tif 000003
【図２】
2007282861.tif 000004
【図３】
2007282861.tif 000005
【図４】
2007282861.tif 000006
【図５】
2007282861.tif 000007
【図６】
2007282861.tif 000008
【図７】
2007282861.tif 000009
【図８】
2007282861.tif 000010