(57)【特許請求の範囲】
【請求項１】
３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成するプログラムであって、コンピュータを、
仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段、
前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段、
として機能させ、前記全天周多数方向は、前記幅の変化量の大きい方向間が前記幅の変化量の小さい方向間に比べて細かく区分されていることを特徴とするプログラム。
【請求項２】
前記描画手段は、前記２つの２次元スプライトデータの一方を半透明にして合成することを特徴とする請求項１に記載のプログラム。
【請求項３】
前記全天周多数方向の各象限における方向間の角度が異なることを特徴とする請求項１又は請求項２に記載のプログラム。
【請求項４】
前記描画手段は、前記オブジェクトキャラクタの正面方向ベクトルを、該オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶベクトルを垂線とする仮想平面に投影したときの方向ベクトルと、前記仮想平面での水平方向とのなす角度の正接値を求め、該求めた正接値に基づいて前記合成された２次元スプライトデータを垂直方向にせん断変形することを特徴とする請求項１乃至請求項３のいずれか１項に記載のプログラム。
【請求項５】
前記予め用意された全天周多数方向の２次元スプライトデータは、前記３次元キャラクタがとり得る複数のモーションに対応するように複数のアニメーションデータとして準備されていることを特徴とする請求項１乃至請求項４のいずれか１項に記載のプログラム。
【請求項６】
前記アニメーションデータのうち動的変化の少ないフレームに対応する２次元スプライトデータが省かれたことを特徴とする請求項５に記載のプログラム。
【請求項７】
３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成するプログラムであって、コンピュータを、
仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段、
前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段、
として機能させ、前記予め用意された全天周多数方向の２次元スプライトデータは、手足又は足を有する前記３次元キャラクタがとり得る複数のモーションに対応するように複数のアニメーションデータとして準備されており、前記アニメーションデータのうち動的変化の少ないフレームに対応する２次元スプライトデータが省かれたことを特徴とするプログラム。
【請求項８】
３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成するプログラムであって、コンピュータを、
仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段、
前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段、
として機能させ、前記２次元スプライトデータは、前記３次元ポリゴンデータに対応するように頂点座標及びシェーディング用の疑似法線ベクトルを予め含むことを特徴とするプログラム。
【請求項９】
前記疑似法線ベクトルの方向は、前記３次元ポリゴンデータを構成する頂点の法線ベクトルの方向が維持されるか又は修正されたことを特徴とする請求項８に記載のプログラム。
【請求項１０】
請求項１乃至請求項９のいずれか１項に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項１１】
３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成装置において、
仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段と、
前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段と、
を備え、前記全天周多数方向は、前記幅の変化量の大きい方向間が前記幅の変化量の小さい方向間に比べて細かく区分されていることを特徴とする画像生成装置。
【請求項１２】
３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成装置において、
仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段と、
前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段と、
を備え、前記予め用意された全天周多数方向の２次元スプライトデータは、手足又は足を有する前記３次元キャラクタがとり得る複数のモーションに対応するように複数のアニメーションデータとして準備されており、前記アニメーションデータのうち動的変化の少ないフレームに対応する２次元スプライトデータが省かれたことを特徴とする画像生成装置。
【請求項１３】
３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成装置において、
仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段と、
前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段と、
を備え、前記２次元スプライトデータは、前記３次元ポリゴンデータに対応するように頂点座標及びシェーディング用の疑似法線ベクトルを予め含むことを特徴とする画像生成装置。
【請求項１４】
３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成方法であって、
仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定し、
前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する、
ステップを含み、前記全天周多数方向は、前記幅の変化量の大きい方向間が前記幅の変化量の小さい方向間に比べて細かく区分されていることを特徴とする画像生成方法。
【請求項１５】
３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成方法であって、
仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定し、
前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する、
ステップを含み、前記予め用意された全天周多数方向の２次元スプライトデータは、手足又は足を有する前記３次元キャラクタがとり得る複数のモーションに対応するように複数のアニメーションデータとして準備されており、前記アニメーションデータのうち動的変化の少ないフレームに対応する２次元スプライトデータが省かれたことを特徴とする画像生成方法。
【請求項１６】
３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成方法であって、
仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定し、
前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する、
ステップを含み、前記２次元スプライトデータは、前記３次元ポリゴンデータに対応するように頂点座標及びシェーディング用の疑似法線ベクトルを予め含むことを特徴とする画像生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラム、記録媒体、画像生成装置及び画像生成方法に係り、特に、３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成するプログラム、該プログラムを記録した記録媒体、該画像生成装置及び該画像生成方法に関する。
【０００２】
【従来の技術】
今日、各社から販売されているビデオゲームは、ゲーム装置本体（コンピュータ）の高速化等と相俟って、一般に表示装置のディスプレイ上にリアルな３次元（以下、３Ｄと略称する。）キャラクタを表示するものが多い。３Ｄポリゴンデータでキャラクタ（以下、３Ｄキャラクタという。）を表示するには、立体的な単一の３Ｄモデルをオブジェクト空間内に配置し、３Ｄ座標変換を行って仮想カメラ（視点）から見える画像を自動生成することにより行われる（３Ｄ画像処理）。３Ｄポリゴンデータは、頂点座標、頂点テクスチャ座標、法線ベクトル等のデータで構成されている。一度、１つの３Ｄモデルを用意してしまえば、仮想カメラで様々の方向からこの３Ｄモデルを見た場合にも矛盾のない画像を生成することができる。このような３Ｄ画像処理に関する技術は、例えば、昭和６１年５月２０日に株式会社昭晃堂から発行された、中前栄八郎、西田友是著「３次元コンピュータグラフィックス」（ＩＳＢＮ４−７８５６−３０６４−７）や平成４年７月１５日に株式会社昭晃堂から発行された、安居院猛、中嶋正之著「コンピュータグラフィクス」（ＩＳＢＮ４−７８５６−２０７５−７）等に詳しい。
【０００３】
一方、ビデオゲームに登場する全てのキャラクタを３Ｄで描画しようとすると、３Ｄキャラクタ描画のための演算量が膨大となりゲーム展開に必要な演算量が圧迫される。この問題を解決するために、例えば、特開平１１−２０３５０４号公報には、ゲーム場面に応じて、ディスプレイ上に表示されるキャラクタをゲーム構成上比較的重要度の高いゲームキャラクタと比較的重要度の低いサポーティングキャラクタとに分け、ゲームキャラクタについては３Ｄ画像処理を行い、サポーティングキャラクタについては主として２次元（以下、２Ｄと略称する。）画像処理を行う技術が開示されている。従って、３Ｄ画像処理によるキャラクタと２Ｄ画像処理によるキャラクタ（以下、２Ｄキャラクタという。）とを３Ｄ仮想空間上に混在・表示させる技術は既に存在している。
【０００４】
なお、本発明に関連する技術として、特開２００１−０８４４０２号公報には、１のキャラクタを表示するためにそのキャラクタに対応した画像データを複数持ち、その複数の画像データの中間画像を補完処理により求めて表示する技術が開示されている。また、特開２００１−７０６３４号公報には、３Ｄ仮想空間上に配した各３Ｄキャラクタに対して、輪郭線又は稜線を付加する強調処理と色づけ処理を施したデータを２Ｄ画像としてディスプレイに動画表示する技術が開示されている。更に、特開２００１−０５６８７０号公報には多数キャラクタについて集団で移動させる技術が、特開２００１−１４９６５５号公報には多数のキャラクタについて索敵、戦闘等を行わせる技術がそれぞれ開示されている。
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した特開平１１−２０３５０４号公報では、キャラクタの一部を２Ｄ画像処理を行うことで３Ｄ画像処理の演算量を大幅に軽減することができるものの、３Ｄキャラクタと２Ｄキャラクタとの混在による違和感を惹起する、という問題がある。この傾向はディスプレイ上に表示されるキャラクタ数、換言すれば、ゲームに登場するキャラクタ数が多くなるにつれて著しく強調される。すなわち、ゲームに登場する多数（例えば、１００以上）のキャラクタの動的変化に対応するには、３Ｄ画像処理の演算量を軽減する必要があるが、３Ｄキャラクタと２Ｄキャラクタとが混在する３Ｄ仮想空間において両者の整合性を図らなければ強い違和感のある画像となる。
【０００６】
この違和感を解消するには、以下の３点を解決する必要がある。（１）ゲーム中に視点となる仮想カメラは近傍から遠方まで自由に移動可能である。従って、２Ｄキャラクタと３Ｄキャラクタとが切り替わる境界があり、単純な切り替えではディスプレイ上での両者の表示が不連続性となり強い違和感を招く。なお、仮想カメラはキャラクタを全天周どの位置からも観察できるため、単純な（例えば、単に８方向程度の）２Ｄスプライトでは視点の変化に対応できない。（２）ゲーム中に３Ｄキャラクタはキャラクタ自体の向きも動的に変化するので、２Ｄキャラクタの動きも３Ｄキャラクタと同様に動的に表現しなければ均衡がとれず、特に両者の切り換え時に極端な違和感を生ずる。更に、（３）３Ｄキャラクタにはキャラクタ自身の陰影変化が発生するので、２Ｄキャラクタにも同等の処理を行わないと違和感を生ずる。
【０００７】
本発明は上記事案に鑑み、多数の３Ｄキャラクタ、２Ｄキャラクタが違和感なく混在可能なプログラム、該プログラムを記録した記録媒体、画像生成装置及び画像生成方法を提供することを課題とする。
【００１０】
【課題を解決するための手段】
上記課題を解決するために、本発明の第１の態様は、３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成するプログラムであって、コンピュータを、仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段、前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段、として機能させ、前記全天周多数方向は、前記幅の変化量の大きい方向間が前記幅の変化量の小さい方向間に比べて細かく区分されていることを特徴とする。
【００１１】
本態様では、決定手段が、仮想カメラの位置及び方向情報とオブジェクトキャラクタの位置情報とに基づいて、仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを３次元ポリゴンデータで描画される３次元キャラクタで、仮想カメラの視界内かつ所定距離の外に位置するか又は所定数を越えるオブジェクトキャラクタを２次元スプライトデータで描画される２次元キャラクタと決定する。そして、描画手段が、３次元仮想空間上のオブジェクトキャラクタの位置に、オブジェクトキャラクタの位置と仮想カメラの位置とを結ぶ方向と、オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、３次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元キャラクタを描画し、２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して仮想カメラから相対角度でオブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを相対角度の垂直成分方向がなす角度に応じてせん断変形して２次元キャラクタを描画し、３次元キャラクタと２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成するが、全天周多数方向は、幅の変化量の大きい方向間が幅の変化量の小さい方向間に比べて細かく区分されている。
【００１２】
第１の態様によれば、仮想カメラから所定距離内に位置するオブジェクトキャラクタ、すなわち、仮想カメラに近いオブジェクトキャラクタについて３次元キャラクタで描画し、仮想カメラから所定距離の外に位置するオブジェクトキャラクタ、すなわち、仮想カメラから遠方のオブジェクトキャラクタについて２次元キャラクタで描画するので、３次元キャラクタ及び２次元キャラクタが混在する画像の違和感を緩和することができると共に、所定距離内、所定数内のオブジェクトキャラクタについてのみ３次元キャラクタで描画するので、３次元画像処理の演算量を軽減することができ、また、２次元キャラクタについて、オブジェクトキャラクタの位置と仮想カメラの位置とを結ぶ方向と、オブジェクトキャラクタの正面方向とがなす相対角度の水平方向成分角度から予め用意された全天周多数方向のうち最も近い２つの２次元スプライトデータを選択して該相対角度でオブジェクトキャラクタをみたときの幅となるように合成し、該相対角度の垂直方向成分角度に応じて合成した２次元スプライトデータをせん断変形するようにしたので、仮想カメラから遠方の２次元キャラクタを見たときに水平及び垂直方向に適正な幅、高さが反映され、３次元キャラクタ及び２次元キャラクタが混在する画像の違和感を低減させることができ、更に、全天周多数方向について、幅の変化量の大きい方向間を幅の変化量の小さい方向間に比べて細かく区分したので、細長い（奥行きのある）２Ｄスプライトを合成しても適正な合成画像を得ることができる。
【００１３】
本態様において、描画手段が２つの２次元スプライトデータの一方を半透明にして合成すれば、仮想カメラから遠方の２次元キャラクタを見たときに水平方向に違和感のない適正な幅を反映することができる。また、全天周多数方向の各象限における方向間の角度が異なるようにすれば、細長い（奥行きのある）オブジェクトキャラクタについても適正な２次元キャラクタを描画することができる。描画手段は、オブジェクトキャラクタの正面方向ベクトルを、該オブジェクトキャラクタの位置と仮想カメラの位置とを結ぶベクトルを垂線とする仮想平面に投影したときの方向ベクトルと、仮想平面での水平方向とのなす角度の正接値を求め、該求めた正接値に基づいて合成された２次元スプライトデータを垂直方向にせん断変形して行うようにしてもよい。更に、予め用意された全天周多数方向の２次元スプライトデータを、３次元キャラクタがとり得る複数のモーションに対応するように複数のアニメーションデータとして準備してもよく、この場合に、準備されるべきアニメーションデータのうち動的変化の少ないフレームに対応する２次元スプライトデータを省くことが望ましい。
【００１４】
また、本発明の第２の態様は、３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成するプログラムであって、コンピュータを、仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段、前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段、として機能させ、前記予め用意された全天周多数方向の２次元スプライトデータは、手足又は足を有する前記３次元キャラクタがとり得る複数のモーションに対応するように複数のアニメーションデータとして準備されており、前記アニメーションデータのうち動的変化の少ないフレームに対応する２次元スプライトデータが省かれたことを特徴とする。第２の態様によれば、仮想カメラから所定距離内に位置するオブジェクトキャラクタについて３次元キャラクタで描画し、仮想カメラから所定距離の外に位置するオブジェクトキャラクタについて２次元キャラクタで描画するので、３次元キャラクタ及び２次元キャラクタが混在する画像の違和感を緩和することができると共に、所定距離内、所定数内のオブジェクトキャラクタについてのみ３次元キャラクタで描画するので、３次元画像処理の演算量を軽減することができ、また、予め用意された全天周多数方向の２次元スプライトデータを、手足又は足を有する３次元キャラクタがとり得る複数のモーションに対応するように複数のアニメーションデータとして準備されているため、オブジェクトキャラクタの描画が３次元キャラクタから２次元キャラクタに又はその逆に切り換えられても、切り換えの瞬間における両者間の姿勢、方向等の不一致・不連続性を解消することができ、３次元キャラクタ及び２次元キャラクタが混在する動的画像の違和感をなくすことができ、更に、準備されるべきアニメーションデータのうち動的変化の少ないフレームに対応する２次元スプライトデータを省くため、２次元スプライトデータのための記憶容量を軽減することができる。
更に、本発明の第３の態様は、３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成するプログラムであって、コンピュータを、仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段、前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段、として機能させ、前記２次元スプライトデータは、前記３次元ポリゴンデータに対応するように頂点座標及びシェーディング用の疑似法線ベクトルを予め含むことを特徴とする。第３の態様によれば、仮想カメラから所定距離内に位置するオブジェクトキャラクタについて３次元キャラクタで描画し、仮想カメラから所定距離の外に位置するオブジェクトキャラクタについて２次元キャラクタで描画するので、３次元キャラクタ及び２次元キャラクタが混在する画像の違和感を緩和することができると共に、所定距離内、所定数内のオブジェクトキャラクタについてのみ３次元キャラクタで描画するので、３次元画像処理の演算量を軽減することができ、また、２次元スプライトデータに、３次元ポリゴンデータに対応するように頂点座標及びシェーディング用の疑似法線ベクトルを予め含むようにしたので、２次元スプライトの頂点の疑似法線ベクトルによりシェーディング（陰影処理）を行うことが可能となり、２次元キャラクタを３次元キャラクタらしく見せることができる。このとき、疑似法線ベクトルの方向について、対応する３次元ポリゴンデータを構成する頂点の法線ベクトルの方向を維持するようにすれば、２次元キャラクタの頂点のシェーディングが３次元キャラクタと同様に処理され、２次元キャラクタに応じて法線ベクトルの方向を修正することで２次元キャラクタをより３次元キャラクタらしく見せることが可能となる。
本発明の第４の態様は、上述した第１〜第３の態様のプログラムを記録したコンピュータ読取可能な記録媒体である。また、本発明の第５の態様は、３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成装置であり、仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段と、前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段と、を備え、前記全天周多数方向は、前記幅の変化量の大きい方向間が前記幅の変化量の小さい方向間に比べて細かく区分されていることを特徴とし、本発明の第６の態様は、３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成装置において、仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段と、前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段と、を備え、前記予め用意された全天周多数方向の２次元スプライトデータは、手足又は足を有する前記３次元キャラクタがとり得る複数のモーションに対応するように複数のアニメーションデータとして準備されており、前記アニメーションデータのうち動的変化の少ないフレームに対応する２次元スプライトデータが省かれたことを特徴とし、本発明の第７の態様は、３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成装置において、仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定する決定手段と、前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する描画手段と、を備え、前記２次元スプライトデータは、前記３次元ポリゴンデータに対応するように頂点座標及びシェーディング用の疑似法線ベクトルを予め含むことを特徴とする。そして、本発明の第８の態様は、３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成方法であって、仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定し、前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する、ステップを含み、前記全天周多数方向は、前記幅の変化量の大きい方向間が前記幅の変化量の小さい方向間に比べて細かく区分されていることを特徴とし、本発明の第９の態様は、３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成方法であって、仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定し、前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する、ステップを含み、前記予め用意された全天周多数方向の２次元スプライトデータは、手足又は足を有する前記３次元キャラクタがとり得る複数のモーションに対応するように複数のアニメーションデータとして準備されており、前記アニメーションデータのうち動的変化の少ないフレームに対応する２次元スプライトデータが省かれたことを特徴とし、本発明の第１０の態様は、３次元仮想空間上に３次元ポリゴンデータで描画される３次元キャラクタと２次元スプライトデータで描画される２次元キャラクタとの多数のオブジェクトキャラクタを混在させた画像を生成する画像生成方法であって、仮想カメラの位置及び方向情報と前記オブジェクトキャラクタの位置情報とに基づいて、前記仮想カメラの視界内かつ所定距離内に位置する所定数内のオブジェクトキャラクタを前記３次元キャラクタで、前記仮想カメラの視界内かつ前記所定距離の外に位置するか又は前記所定数を越えるオブジェクトキャラクタを前記２次元キャラクタで描画すると決定し、前記３次元仮想空間上の前記オブジェクトキャラクタの位置に、前記オブジェクトキャラクタの位置と前記仮想カメラの位置とを結ぶ方向と、前記オブジェクトキャラクタの正面方向とがなす相対角度に基づいて、前記３次元キャラクタで描画すると決定したオブジェクトキャラクタについて前記３次元キャラクタを描画し、前記２次元キャラクタで描画すると決定したオブジェクトキャラクタについて３次元ポリゴンデータのレンダリング画像に基づいて予め用意された全天周多数方向の２次元スプライトデータの中から前記相対角度の水平方向成分がなす角度に最も近い２つの２次元スプライトデータを選択して前記仮想カメラから前記相対角度で前記オブジェクトキャラクタをみたときの幅となるように合成し、該合成された２次元スプライトデータを前記相対角度の垂直成分方向がなす角度に応じてせん断変形して前記２次元キャラクタを描画する、ステップを含み、前記２次元スプライトデータは、前記３次元ポリゴンデータに対応するように頂点座標及びシェーディング用の疑似法線ベクトルを予め含むことを特徴とする。
【００１５】
【発明の実施の形態】
以下、図面を参照して本発明を家庭用ビデオゲーム装置に適用した実施の形態について説明する。
【００１６】
（構成）
図１に示すように、本実施形態の家庭用ビデオゲーム装置１０は、ゲーム装置本体２に、スピーカ５を内蔵したテレビモニタ４及びコントローラパッド等の入力装置３が接続されている。ゲーム装置本体２は、ＣＤ−ＲＯＭ等の記録媒体１を装着可能な媒体読取部（図３参照）を有している。この媒体読取部に記録媒体を装着することにより記録媒体１に記録されたゲームプログラムやゲームデータが自動的にゲーム装置本体２内の記憶メモリにロードされる。
【００１７】
図２（Ａ）（Ｂ）に示すように、入力装置３には、集団戦闘ゲーム等のビデオゲームを開始するためのスタートボタン３０やゲームキャラクタを操作したり、ゲーム装置本体２からの選択問い合わせに応答するための□ボタン３１、△ボタン３２、○ボタン３３、×ボタン３４で構成されるボタンセット、及び、↑ボタン３５、→ボタン３６、←ボタン３７、↓ボタン３８で構成される十字方向ボタン等の種々のボタンが配置されている。また、ボタンセット及び十字方向ボタンの斜め下側（プレイヤの手前側）には、左アナログスティック３９、右アナログスティック４０が配置されている。
【００１８】
図３に示すように、ゲーム装置本体２は装置全体の制御を行う、決定手段及び描画手段の一部としてのＣＰＵブロック２０を備えている。ＣＰＵブロック２０は、ゲーム装置本体２内の各部とのデータ転送を主に制御するＳＣＵ（System Control Unit）、中央演算処理装置として高速クロックで作動するＣＰＵ、ゲーム装置本体２の基本制御動作が記憶されたＲＯＭ、ＣＰＵのワークエリアとして働くと共に記録媒体１に記録されたゲームプログラム及び種々のデータを一時的に記憶するＲＡＭ及びこれらを接続する内部バスで構成されている。
【００１９】
ＳＣＵには外部バス２５が接続されている。外部バス２５は、入力装置３からの入力を受信してＣＰＵブロック２０へ入力情報を転送する入力受信部２１、図示しないサブＣＰＵを備え記録媒体１に記録されたゲームプログラムを読み取りＣＰＵブロック２０へ転送するＣＤ−ＲＯＭドライブ等の媒体読取部２２、図示しないサブＣＰＵ及びＶＲＡＭを備えＣＰＵブロック２０から転送された情報に従って画像を描画する描画手段の一部としての画像処理部２３、及び、図示しないサブＣＰＵを備え、例えば、バックミュージックやキャラクタの戦闘音等の音響を処理する音響処理部２４、に接続されている。また、入力受信部２１は入力装置３に、画像処理部２３はテレビモニタ４に、音響処理部２４はテレビモニタ４に内蔵されたスピーカ５にそれぞれ接続されている。なお、画像処理部２３は、座標変換、透視変換、光源演算、曲面生成等のジオメトリ処理を行うジオメトリ処理部、座標変換等のマトリクス演算を高速並行処理する演算部、圧縮された画像データを伸張する伸張部、１フレーム分の画像表示のためのフレームバッファへのレンダリング（描画）処理を高速に実行するレンダリング部等を含んで構成されている。
【００２０】
（動作）
次に、フローチャートを参照して、本実施形態の家庭用ビデオゲーム装置１０の動作について、プレイヤ側に属する２５０体のキャラクタとコンピュータ（ＣＰＵブロック２０）側に属する２５０体のキャラクタとがそれぞれ敵味方に分かれて戦闘する戦闘ゲームを想定して説明する。なお、ゲーム装置本体２には既に電源が投入されており、記録媒体１が装着されると、記録媒体１からゲームプログラム、ゲームデータを読み取って、図４に示す戦闘処理ルーチンが実行される。
【００２１】
戦闘処理ルーチンでは、まず、ステップ１０２において、プレイヤにテレビモニタ４に表示された複数の武将のアイコンのいずれかにカーソル合わさせクリックさせることで、プレイヤが好みの武将を部隊長として選択し（コンピュータ側もランダムに部隊長を選択し）、他の敵味方のキャラクタ（騎馬兵士、兵士）をゲーム開始前の整列位置に配置してテレビモニタ４に表示する等の初期設定処理を行い、プレイヤからスタートボタン３０が押下されるまで待機する（図４では図示省略）。
【００２２】
スタートボタン３０が押下されると、次のステップ１０４において、テレビモニタ４の垂直帰線周期と一致した、１／６０秒（１６．６ミリ秒）に一度の周期で実行される垂直帰線割込（Vsync）がなされたか否かを判断する。否定判断のときは、次のステップ１０６において、入力受信部２１から転送された入力情報に対する処理やゲーム効果音を音響処理部２４に合成させるための音響処理等のメイン処理を実行して、ステップ１１０へ進む。
【００２３】
ここで、右アナログスティック４０の操作と仮想カメラ（視点）の位置との関係について説明する。プレイヤが右アナログスティック４０を傾けることにより、入力受信部２１からＣＰＵブロック２０に転送される右アナログスティック４０の入力情報（ｘ，ｙ）は０≦ｘ≦２５５、０≦ｙ≦２５５の値をとる。図７（Ａ）に示すように、ＣＰＵはステップ１０６でのメイン処理において、仮想カメラの位置を中心Ｏ（０，０）に変換するために（ｘ，ｙ）から共に１２７を引いて（ｘ’，ｙ’）＝（ｘ−１２７，ｙ−１２７）＝（ａ，ｂ）として、ｒ＝（ａ２＋ｂ２）１／２を演算し、ｒ＜４８か否かの判断を行う。肯定判断のときは右アナログスティック４０から入力がなかったものとして扱い（仮想カメラの位置を移動させず）、否定判断のときは、ａ、ｂ共に１．５倍してＲＡＭに格納する。
【００２４】
仮想カメラの位置は、実際にはワールド座標系の座標値で演算されるが、仮にスクリーン座標系で考えた場合には、図７（Ｂ）に示すように、１Vsync毎にｘ方向に１．５ａ、ｙ方向に１．５ｂだけ現在の仮想カメラの位置（中心Ｏ（０，０））からＯ’に移動し（ｋ＝１．５）、仮想カメラの向きもａ、ｂで定まる方向に傾けられることとなる（スクリーン座標系もその角度で傾く。）。従って、右アナログスティック４０の傾きの程度によりａ、ｂの大きさが変化し、移動速度及び仮想カメラの傾きが変化する。具体的には、右アナログスティック４０を上方向に倒すと仮想カメラ（視点）は前方に移動し、下方向に倒すと後方に、右方向に倒すと右回りに、左方向に倒すと左回りに移動し、更に、右上方向、右下方向、左上方向、左下方向に倒し続けると、右に大回り、右に小回り、左に大回り、左に小回りでそれぞれ仮想カメラ（視点）が移動する。なお、本実施形態では、ａ、ｂの単位はそれぞれ３Ｄ仮想空間上で１ｃｍに対応しており、仮想カメラの高さ方向（ｚ方向）の成分は一定（例えば、３Ｄ仮想空間上で３ｍ）とされている。
【００２５】
一方、ステップ１０４で肯定判断がなされると、ステップ１０８において、仮想カメラの視界内のキャラクタについて３Ｄキャラクタ、２Ｄキャラクタを混在させた画像を生成するための３Ｄ２Ｄ処理サブルーチンが実行される。
【００２６】
図５に示すように、この３Ｄ２Ｄ処理サブルーチンでは、まず、ステップ１２２において、ステップ１０６でＲＡＭに格納した（ｋａ，ｋｂ）を読み出して、ワールド座標系で仮想カメラ（視点）の位置、方向を算出し、仮想カメラのスクリーン座標系を算出する。次のステップ１２４では、３Ｄ処理対象のキャラクタ数を所定数内（後述するように、５０体内）とするために、カウンタＣｎを０とする。
【００２７】
次にステップ１２６において、全キャラクタが処理済みか否かを判断し、否定判断のときは、ステップ１２８で１Vsync前にＲＡＭに格納した対象キャラクタのワールド座標系での位置、方向を読み出して、次のステップ１３０において対象キャラクタの現在のワールド座標系での位置、方向を演算してＲＡＭに格納する。このような対象キャラクタの位置、方向の演算については公知の技術を用いることができるが、本例のように１００体以上の多数キャラクタを処理する場合には、例えば、上述した特開２００１−０５６８７０号公報や特開２００１−１４９６５５号公報の技術を用いることができる。次のステップ１３２では、スクリーン座標系で仮想カメラの方向と対象キャラクタの位置とから対象キャラクタが仮想カメラの視界内（例えば、３Ｄ仮想空間上で２００ｍ×２００ｍ内）に存在するか否かを判断し、否定判断のときはステップ１３４で対象キャラクタが仮想カメラの視界内に位置するか否かを表す視界フラグｓｆを０とし、肯定判断のときはステップ１３６で視界フラグｓｆを１としてステップ１２６へ戻る。従って、例えば、図８に示すように、複数のキャラクタで構成される部隊Ｆと部隊Ｅとが対峙し５００体のキャラクタを処理する場合に、視界フラグｓｆが１に設定されるのは、視界Ｓ内に位置するキャラクタのみとなる。
【００２８】
一方、ステップ１２６で肯定判断されたときは、ステップ１３８において、視界フラグｓｆが１のキャラクタについてのみ、仮想カメラの位置から各キャラクタまでの距離を演算し、仮想カメラから近い順に処理の順番を決定する。次にステップ１４０では、仮想カメラの視界内の（視界フラグｓｆ＝１の）全キャラクタについて処理が終了したか否かを判断し、否定判断のときは、次のステップ１４２において、対象キャラクタが仮想カメラの位置から５０ｍ以内に位置するか否かを判断し、肯定判断のときは次のステップ１４４でカウンタＣｎが５０以下か否かを判断する。ステップ１４４での判断が肯定のときには、続くステップ１４６においてカウンタＣｎを１インクリメントして、次のステップ１４８において当該対象キャラクタを３Ｄキャラクタとして表示するための３Ｄ処理を行ってステップ１４０へ戻る。
【００２９】
この３Ｄ処理では、キャラクタの位置と仮想カメラの位置とを結ぶ方向と、キャラクタの正面方向とがなす相対角度を演算して、モーションキャプチャー等を利用して得られたアニメーションのためのモーションデータを複数組予め用意しておき、キャラクタの状態（例えば、移動、戦闘等の状態）に応じてそれらのモーションデータの中から１組のモーションデータの中の何れか１つのフレームを選択する。すなわち、キャラクタは移動、戦闘等の種々の状態を採るので、ＣＰＵはキャラクタの現在の状態を表す状態フラグの値をＲＡＭから読み出し、そのフラグ値で特定される１組のモーションデータを選択する。１組のモーションデータは、時系列的には、図１０（Ａ）に示すように、複数のフレームで構成さるため、ＣＰＵは対象キャラクタが複数のフレームのうち１Vsync前にどのフレームまで描画されているかを把握しており、現時点で描画すべきフレームを特定することができる。このようなフレームの特定については、例えば、上述した特開２００１−１４９６５５の技術のようにカウンタを用いるようにしてもよい。
【００３０】
ここで、キャラクタのモーションとは、画素の変位をリアルタイムに直接演算して行うのではなく、キャラクタのリアルな動きを表現するために、予め騎馬兵士、兵士、騎馬等の動きをサンプリングしたデータ数列を使用する。一般的な３Ｄモーションデータのデータ構造は、キャラクタの各関節について、大きさを表すスケール値、ｘｙｚの各軸に対する回転角、原点からの移動距離を示すｘｙｚ毎の座標値を持ち、これらを１組の関節データとして、１又は複数の関節データにより構成されるキャラクタ全体の関節データ群を各モーション毎にそのモーションのフレームの数だけ持つことで、モーションデータが構成される（図１０（Ａ）も参照）。ここでいうフレームとは画像処理の時間的単位で、いわゆる「コマ」のことである。なお、３Ｄキャラクタを表示する場合に、ＣＰＵはＳＣＵを介してワールド座標系における対象キャラクタの位置、方向、対象キャラクタのモーション等の情報を画像処理部２３に転送し、画像処理部２３で対象キャラクタを３Ｄ表示するためにジオメトリ処理等の種々の処理が行われ仮想カメラから見える３Ｄキャラクタが生成される。
【００３１】
一方、ステップ１４２又はステップ１４４で否定判断されたときは、ステップ１５０において、後述するように、当該対象キャラクタを２Ｄキャラクタとして表示するための２Ｄ処理サブルーチンを実行する。従って、ステップ１２２〜１５０では、仮想カメラの視界内のキャラクタのうち、仮想カメラから５０ｍ以内でかつ仮想カメラから近い順に５０体のキャラクタについて３Ｄ処理を行い、それ以外は２Ｄ処理を行って、仮想カメラの視界外のキャラクタはこれらの処理を行わない。
【００３２】
２Ｄ処理サブルーチンについて説明する前に、予め準備された（ＣＰＵブロック２０を介して画像処理部２３のＶＲＡＭに格納された）２Ｄキャラクタの画像データ（以下、２Ｄスプライトという。）について詳述する。本実施形態では、戦闘ゲームに登場するキャラクタについて、上述したキャラクタの状態の数に対応して複数組、当該キャラクタの３Ｄモデルを多数方向から見たときの２Ｄスプライトが準備されている。図９（Ａ）に示すように、例えば、１組の２Ｄスプライトは、３Ｄモデルを全天周１６方向（０）〜（１５）（以下、これらの方向をレンダリング方向という。）から見たときの１６の画像データ（例えば、ビットマップ）で構成されている。従って、画像処理部２３のＶＲＡＭには、１キャラクタにつき（１６×当該キャラクタがとる状態の数）の画像データが格納されることとなるが、武将を除く兵士や騎馬については共通の２Ｄスプライトを使用することで、ＶＲＡＭに格納すべき画像データ数を少なくすることができる。
【００３３】
図９（Ｂ）に示すように、キャラクタをレンダリング方向（０）（正面から見たときの方向）の幅をＷ１、キャラクタをレンダリング方向（４）（真横から見たときの方向）の幅をＷ２とし、幅Ｗ１及び幅Ｗ２のうち大きい方をＷｍａｘ、小さい方をＷｍｉｎとすると、キャラクタの横幅増加率Ｅｘは下式（１）で求めることができ、図９（Ａ）の第４象限（０〜９０度）におけるレンダリング角度Ｒｋ（図９（Ａ）に示したレンダリング方向（ｋ）とレンダリング方向（０）とのなす角度）は下式（２）で求めることができる。なお、Ｒ０は０である。
【００３４】
【数１】
0003760341.tif 000002
【００３５】
【数２】
0003760341.tif 000003
【００３６】
また、式（２）で得られたレンダリング角度から、他の象限（９０〜３６０°）におけるレンダリング角度Ｒ５〜Ｒ１５は下式（３）で求めることができる。
【００３７】
【数３】
0003760341.tif 000004
【００３８】
図９（Ａ）（Ｂ）に示すように、各象限におけるレンダリング角度間は一定角度ではなく異なっており、例えば、レンダリング方向（０）（１）間、（１）（２）間のキャラクタの幅は異なっている。騎馬のように細長い（奥行きのある）キャラクタの幅は、レンダリング方向（０）（３）の間で３倍以上となり、レンダリング方向（３）（４）の間では２倍に満たないので、後述する２Ｄスプライトの合成上、画像変化量（幅の変化量）の大きい範囲は細かくレンダリング方向を設定し、画像変化量の小さい範囲は粗くレンダリング方向を設定することが好ましい。
【００３９】
また、戦闘ゲーム中に３Ｄキャラクタ自体の動作や向きが動的に変化するので、２Ｄキャラクタもこのような動的変化に対応して準備する必要がある。本実施形態では、図１０（Ｂ）に示すように、図１０（Ａ）に示した３Ｄキャラクタのモーションに対応するように、各モーションデータに基づいて２Ｄアニメーションデータが準備されている。なお、図１０（Ｂ）に示した２Ｄアニメーションデータはキャラクタ（騎馬）が移動状態の場合であり、他の状態についても同様の２Ｄアニメーションデータが準備されている（例えば、あるキャラクタが４種類の状態をとりうる場合には、３Ｄキャラクタの４種類のモーションに対応するように全天周１６方向の各方向毎に２Ｄスプライトが準備されている。）。また、３Ｄキャラクタで表示するとした場合に動的変化が少ない部分については、準備すべき２Ｄスプライトを省略することができる。例えば、図１０（Ｂ）に示すような場合には、本来第３Vsync、第４Vsyncのタイミングで表示する第３Vsync、第４Vsyncの２Ｄスプライトは第２Vsyncの２Ｄスプライトとの変化が大きくないので、これら第３Vsync、第４Vsyncの２Ｄスプライトを保持せず、第２Vsyncの２Ｄスプライトデータを続けて使用するようにしてもよい。
【００４０】
図６に示すように、２Ｄ処理サブルーチンでは、まず、ステップ１６２において、ステップ１２２でＲＡＭに格納した仮想カメラの位置及びステップ１３０でＲＡＭに格納した対象キャラクタの位置を読み出し、対象キャラクタの位置と仮想カメラの位置とを結ぶベクトルと、対象キャラクタの正面方向とがなす相対角度を演算する。
【００４１】
次のステップ１６４では、２つの２Ｄスプライトを合成する合成処理を行う。この合成処理では、まず、合成すべき２つの２Ｄスプライトを特定する。すなわち、３Ｄ描画の場合と同様に、キャラクタの状態フラグの値や１Vsync前にどこまでのモーションが描画されているかの情報を参照して、各モーション毎に準備されている全天周１６方向の２Ｄスプライトのうち、上述した相対角度の水平方向成分がなす角度を挟む（水平方向成分がなす角度に最も近い）２つの２Ｄスプライトを特定する。例えば、図９（Ａ）に示すように、仮想カメラが対象キャラクタを見る方向が矢印Ａ方向であるとすると、合成すべき２つの２Ｄスプライトとしてレンダリング方向（１）（２）の２Ｄスプライトが特定される（図９（Ｂ）も参照）。時系列的なモーションとの関係について付言すれば、図１０（Ｂ）に示すように、１Vsync前にどこまでのモーションが描画されているかの情報を参照して、２つの２Ｄスプライトが特定される。
【００４２】
次に、合成すべき２Ｄスプライトの幅Ｗｓｐｒｔを下式（４）により演算する。なお、式（４）において、角度ＲＲは、予め定められたキャラクタ（３Ｄモデル）の正面方向の方向ベクトルＶｆｒｏｎｔと、キャラクタの位置から仮想カメラの位置方向への方向ベクトルとがなす角度の水平方向成分（角度）を表している。ここに、方向ベクトルとは、大きさ（長さ）について意味を持たない単位ベクトルで、方向だけが意味を持つベクトルをいう。式（４）は、仮想カメラから楕円状のキャラクタ（３Ｄモデル）を見たときに、ステップ１６２で演算した相対角度でみるとどの程度の幅になるかを算出するものである。
【００４３】
【数４】
0003760341.tif 000005
【００４４】
次いで２つの２Ｄスプライトの透明度を演算する。この透明度演算では、合成すべき２つの２Ｄスプライトのうち、角度ＲＲに近い方の２Ｄスプライトの透明度Ａａを完全に不透明に設定する（Ａａ＝１．０）。このように角度ＲＲに近い方の２Ｄスプライトを完全に不透明とするのは、合成処理の都合上、半透明の２Ｄスプライト同士を合成すると、合成画像のぼやけが増大することを防止すると共に、背景が透けて見えてしまう不都合を回避するためである。角度ＲＲに近い方の２Ｄスプライトのレンダリング角度をＲａ（図９（Ａ）に示した例に則していえばＲ１）、他方の（角度ＲＲから遠い方の）２Ｄスプライトのレンダリング角度をＲｂ（図９（Ａ）に示した例に則していえばＲ２）とすると、他方の２Ｄスプライトの透明度Ａｂは下式（５）により得ることができる。式（５）は、２つの２Ｄスプライトのレンダリング角度の差と、角度ＲＲから片方のレンダリング角度を引いた差分との比を長さに換算して、その比を他方の２Ｄスプライトの透明度に直接反映させるものであり、２つの２Ｄスプライトの角度の比から透明度が演算されることとなる。式（５）で演算された透明度Ａｂを他方の２Ｄスプライトの透明度として設定する。なお、透明度Ａｂは０．０〜０．５の値をとる（透明度は最大値１．０で完全に不透明、最小値０．０で完全に透明）。
【００４５】
【数５】
0003760341.tif 000006
【００４６】
そして、透明度が１．０及び透明度Ａｂに設定された２つの２Ｄスプライトを合成した後（同じ場所に重ね合わせた後）、合成した２Ｄスプライトの水平方向の幅を上記式（４）で演算した幅Ｗｓｐｒｔとなるように左右に（水平方向に）伸縮して合成処理された２Ｄスプライトを得る。なお、ＣＰＵはＳＣＵを介して２つの２Ｄスプライトの特定、透明度Ａｂ及び幅Ｗｓｐｒｔの情報を画像処理部２３へ転送し、透明度変換、２Ｄスプライトの合成及び伸縮等の処理は画像処理部２３で行われる。
【００４７】
次にステップ１６６では、キャラクタに回転がかかっているか否かを判断するために角度φが０か否かを判断する。この角度φは、図１１（Ａ）（Ｂ）に示すように、予め定められた３ＤモデルＭの上方向ベクトルＶｕｐを、仮想カメラの視点と３Ｄモデルとを結んだ方向のベクトルを垂線とする仮想平面Ｃに投影し、図１１（Ｂ）に示すように、仮想平面Ｃに投影後の３ＤモデルＭ’の上方向ベクトルＣＶｕｐと垂直上方向Ｖｒとのなす角度である。
【００４８】
肯定判断のときは、次のステップ１６８において、ステップ１６４で合成された２Ｄスプライトを垂直方向にせん断変形するためのせん断変形処理を行う。図１２（Ａ）に示すように、このせん断変形処理では、予め定められた３ＤモデルＭの正面方向のベクトルＶｆｒｏｎｔを、仮想カメラの視点と３Ｄモデルとを結んだ方向のベクトルを垂線とする仮想平面Ｃに投影し、図１２（Ｂ）に示すように、仮想平面Ｃに投影後の３ＤモデルＭ’の正面方向の方向ベクトルＣＶｆｒｏｎｔと水平方向Ｈｒとのなす角度θの正接をせん断変形係数Ｓｈとして演算する（せん断変形係数Ｓｈ＝ｔａｎθ）。なお、せん断変形係数Ｓｈが大きすぎるとき（キャラクタによって異なり、例えば、騎馬の場合にはＳｈが０．４を超えるとき）は予め定められた最大値（例えば、騎馬の場合にはＳｈ＝０．４）に、せん断変形係数Ｓｈが不定値をとるとき（θ＝９０°）には、せん断変形係数Ｓｈ＝０とすることで、異常値の処理を行うことができる。また、キャラクタが騎馬に比べて奥行きのない（細長くない）兵士のときやキャラクタを正面から見たときは、２Ｄキャラクタは仮想カメラから遠方にあるので違和感が生じず、必ずしも本ステップでのせん断変形を行わなくてもよい。図１３（Ａ）（Ｂ）にせん断変形処理前後の騎馬の２Ｄスプライトを示す。
【００４９】
２Ｄスプライトには後述するように１０個の頂点Ｖ１〜Ｖ１０（図１４（Ｂ）参照）が定められている。２Ｄスプライトの各頂点を透視変換して得られるスクリーン座標値は、３Ｄモデルの（中心）位置を透視変換して得られたスクリーン座標値を（Ｘｘ，Ｙｘ）とすると、それぞれ、（Ｘｘ＋Ｘ１，Ｙｘ＋Ｙ１）、（Ｘｘ＋Ｘ２，Ｙｘ＋Ｙ２）、・・・（Ｘｘ＋Ｘ１０，Ｙｘ＋Ｙ１０）と表すことができ、Ｙ１〜Ｙ１０に対して下式（６）の演算を行って２Ｄスプライトの各頂点の最終的なスクリーン座標値（Ｘｘ＋Ｘ１，Ｙｘ＋Ｙ１ｘ）、（Ｘｘ＋Ｘ２，Ｙｘ＋Ｙ２ｘ）、・・・（Ｘｘ＋Ｘ１０，Ｙｘ＋Ｙ１０ｘ）を得ている。なお、ＣＰＵはＳＣＵを介してせん断変形係数の情報を画像処理部２３へ転送し、合成された２Ｄスプライトのせん断変形や透視変換は画像処理部２３で行われる。
【００５０】
【数６】
0003760341.tif 000007
【００５１】
一方、ステップ１６６で否定判断のときは、ステップ１７０において、ステップ１６４で合成処理された２Ｄスプライトを角度φだけ垂直方向Ｖｒから回転させるための回転処理が行われる。図１３（Ｃ）（Ｄ）に回転処理前後の兵士の２Ｄスプライトを示す。本戦闘ゲームでこのような回転処理が行われるのは、例えば、竜巻が発生しキャラクタが自己の脚力で地上に立脚できない宙に浮いた状態等を表現するときである。なお、ＣＰＵはＳＣＵを介して角度φの情報を画像処理部２３へ転送し、合成された２Ｄスプライトの回転は画像処理部２３でアフィン変換（affine-transformation）により行われる。
【００５２】
次にステップ１７２では、２Ｄキャラクタに陰影を施すための陰影処理を行う。この陰影処理は、いわゆるシェーディング処理のことで、２Ｄキャラクタに対して影を付けるものではなく、光源位置や周囲環境条件により定まる明るさを決定する処理である。
【００５３】
ここで、ステップ１７２での陰影処理に関連して、本実施形態の２Ｄスプライトの疑似法線ベクトルについて説明する。図１４（Ａ）に示すように、３Ｄモデルとして兵士の外形形状に近い円柱について考えると、円柱の輪郭に任意に頂点を定めることができる。例えば、頂点Ｖ１では、垂直方向ベクトルと水平方向ベクトルとを合成した法線ベクトルを得ることができる（Ｖ２〜Ｖ１０でも同じ。）。図１４（Ｂ）に示すように、上述した１６方向の２Ｄスプライトを作成する際に、３Ｄモデルの頂点に対応した２Ｄスプライトの頂点（本例では１０個）に３Ｄモデルの頂点に設定された法線ベクトルを疑似法線ベクトルとしてそのまま反映させる。このとき、２Ｄスプライトのシェーディングに違和感が生じないように若干の修正を加えるようにしてもよい。例えば、キャラクタとして高さ（背）の違う２頭の騎馬を想定する場合に、一方の疑似法線ベクトルを修正することで２頭の騎馬が並んだときに背の高い騎馬と背の低い騎馬とのシェーディングのコントラストを得ることができる。なお、図１４（Ｃ）は図１４（Ｂ）を上から見たことを想定した場合の疑似法線ベクトルの方向を示している。例えば、平行光源が上部に存在し、光が上部から下部に向かって一様にふりそそぐ場合、２Ｄスプライトの疑似法線ベクトルが上向きの場合には、３Ｄモデルの場合と同様に、シェーディングにおいてその頂点が明るくなり（Ｖ１〜Ｖ５）、下向きの場合（Ｖ６〜Ｖ１０）には暗くなる。光源の方向と疑似法線ベクトルの相対角度によって明るい部分が変わる。従って、ステップ１７２での陰影処理では、２Ｄスプライトの各頂点において、３Ｄモデルの法線ベクトルに基づいて予め疑似法線ベクトルを決定しておき、３Ｄモデルに施すシェーディングと同様の処理を行う。
【００５４】
図１４（Ｂ）を参照して、更に詳述すれば、２Ｄスプライトの頂点Ｖ１、Ｖ２・・・Ｖ１０での疑似法線ベクトルの値を下式（７）に示すようにＮ１、Ｎ２・・・Ｎ１０、２Ｄスプライトに影響を与える平行光源の方向ベクトルを下式（８）に示すようにＣｄｉｒ、平行光源のカラー（ＲＧＢ）値を下式（９）に示すようにＣｃｏｌ、アンビエント（環境光）カラー（ＲＧＢ）値を下式（１０）に示すようにＣａｍｂとし、疑似法線ベクトルＮに対して各頂点Ｖにおけるカラー値の演算を行う。
【００５５】
【数７】
0003760341.tif 000008
【００５６】
【数８】
0003760341.tif 000009
【００５７】
まず、疑似法線ベクトルＮ１に対して下式（１１）によりＮＮ１を演算し、下式（１２）により頂点Ｖ１のカラー（ＲＧＢ）値Ｖｃｏｌ１を得る。
【００５８】
【数９】
0003760341.tif 000010
【００５９】
【数１０】
0003760341.tif 000011
【００６０】
同様の処理を疑似法線ベクトルＮ２〜Ｎ１０に対しても行い、全ての頂点のカラー値を演算する。２Ｄキャラクタの頂点とそれらの付近のカラー値はリニアに変化するが、このような処理については画像処理部２３で行われる。
【００６１】
ステップ１７２で対象キャラクタについての陰影処理、２Ｄ処理サブルーチンを終了すると、図５に示すステップ１４０へ戻る。ステップ１４０で肯定判断がなされると、すなわち、視界内の全キャラクタの処理が終了すると、次のステップ１５２において、仮想カメラの視界内の全キャラクタを３Ｄ、２Ｄを混在させて描画させるために、上述した種々の情報を画像処理部２３に転送して３Ｄ２Ｄ処理サブルーチンを終了し図４のステップ１１０へ進む。画像処理部２３は、転送された情報に従って、次の１Vsyncの間に、上述したように３Ｄ処理対象のキャラクタについては３Ｄポリゴンデータにより描画処理を行い、２Ｄ処理対象のキャラクタについては２Ｄスプライトにより描画処理を行って、画像処理部２３のフレームバッファに３Ｄ２Ｄキャラクタ混在画像を描画して、描画した画像をテレビモニタ４へ送出する。これにより、テレビモニタ４には１／６０秒毎に３Ｄ２Ｄキャラクタが混在した戦闘ゲームの状態が表示される（図１５参照）。
【００６２】
ステップ１１０では、戦闘ゲームが終了したか（例えば、部隊Ｅ、Ｆのうち一方の部隊の部隊長が死亡した場合）、又は、プレイヤが入力装置３のゲーム終了用の所定ボタンを押下したかを判断し（このような入力の取り込みはステップ１０６のメイン処理で行われる。）、否定判断のときはステップ１０４へ戻り、肯定判断のときは次のステップ１１２において、例えば、プレイヤの部隊が勝利したときに勝ちどきをあげる等の戦闘ゲームのエンディング処理を行って戦闘処理ルーチンを終了する。
【００６３】
（作用等）
以上のように本実施形態では、仮想カメラから３Ｄ仮想空間上で５０ｍ内に位置するキャラクタについては３Ｄキャラクタで描画し、仮想カメラから３Ｄ仮想空間上で５０ｍより遠い位置のキャラクタについては２Ｄキャラクタで描画するようにしたので（ステップ１４２〜ステップ１５０）、３Ｄ、２Ｄキャラクタが混在する画像の違和感を緩和することができる。また、本実施形態では、２Ｄキャラクタについて、キャラクタの位置と仮想カメラの位置とを結ぶ方向と、キャラクタの正面方向とがなす相対角度の水平方向成分角度から予め用意された全天周１６方向のうち最も近い２つの２Ｄスプライトを選択して相対角度で当該キャラクタをみたときの幅Ｗｓｐｒｔとなるように合成し（ステップ１６２、１６４）、相対角度の垂直方向成分角度に応じて合成した２Ｄスプライトをせん断変形するようにしたので（ステップ１６８）、仮想カメラから遠方の２Ｄキャラクタを見たときに水平及び垂直方向に適正な幅、高さが反映され、３Ｄキャラクタ及び２Ｄキャラクタが混在する画像の違和感を低減させることができる。すなわち、仮想カメラから遠方の２Ｄキャラクタを見たときに水平及び垂直方向に適正な幅、高さが反映されるので、仮想カメラで全天周どの方向からキャラクタを観察する場合にも３Ｄ、２Ｄの視点の変化に対応することができると共に、仮想カメラから５０ｍの仮想の境界線を境とする強い違和感を低減させることができる。しかも、本実施形態では、単純な８方向程度ではなく１６方向の２Ｄスプライトを準備し、一方の２Ｄスプライトを半透明にしたので、キャラクタの幅方向（水平方向）の合成を適正に行うことができると共に、全天周１６方向の各象限のレンダリング方向について、幅の変化量の大きい方向間を幅の変化量の小さい方向間に比べて細かく区分したので、細長い（奥行きのある）２Ｄスプライトを合成しても適正な合成画像を得ることができる。更に、本実施形態では、仮想カメラから近い順に（ステップ１３８）５０体以内のキャラクタのみを３Ｄキャラクタで描画するので（ステップ１２４、１４４、１４６、１４８）、３Ｄ画像処理の演算量を軽減してゲーム展開に必要な演算量を相対的に増加させることができる。
【００６４】
また、本実施形態では、２Ｄスプライトを３Ｄポリゴンデータのレンダリング画像に基づいて作成・準備する際に、キャラクタの３Ｄ表示時のモーションに対応するように、各モーションデータに基づいて２Ｄスプライトのアニメーションデータを作成・準備したので（図１０参照）、キャラクタの描画が３Ｄから２Ｄへ又は２Ｄから３Ｄへ逐次切り換えられても、切り換えの瞬間における両者間の姿勢、方向等の不一致・不連続性を解消することができるので、３Ｄ、２Ｄキャラクタが混在する動的画像の違和感をなくすことができ、高い描画品質を確保することができる。この場合に、本実施形態では、準備された２Ｄスプライトのうち動的変化の少ないフレームに対応する２Ｄスプライトの準備を省略することも可能なため、画像処理部２３のＶＲＡＭの使用領域を小さくすることができる。
【００６５】
更に、本実施形態では、図１０（Ｂ）に示したように、２Ｄスプライトの頂点に３Ｄポリゴンデータに対応するように疑似法線ベクトルを予め形成しておいて、その陰影処理をリアルタイムに行って描画するようにしたので（ステップ１７２）、仮想カメラから遠方にあっても本来２Ｄ表示としか見えないキャラクタを３Ｄ表示らしく見せることができる。従って、本実施形態では、このような陰影処理により、３Ｄ、２Ｄキャラクタの混在画像の違和感を消極的に解消するばかりでなく、２Ｄキャラクタを積極的に３Ｄキャラクタに近づける処理がなされている。
【００６６】
なお、本実施形態では、相対角度をキャラクタの位置と仮想カメラの位置とを結ぶ方向と、キャラクタの正面方向とがなす角度とした例を示したが、簡易な方法として、仮想カメラの方向とキャラクタの正面方向とがなす角度（スクリーン座標系でのキャラクタの正面方向の角度）を相対角度としてもよい。
【００６７】
また、本実施形態では、１Vsync毎に３Ｄ、２Ｄによる画像を切換可能な例を示したが、３Ｄモデルのモーションのレンダリング画像を作成する際に、２Ｄスプライトデータとしてサンプリングする時間をそのまま利用するようにしてもよい。この場合に、サンプリングした時間（例えば、１、２、５フレーム）をデータとして控えておき、２Ｄスプライトの描画の際にそのサンプリング時間が経過した場合に描画を切り換えるようにしてもよい。このような態様では、３Ｄ、２Ｄキャラクタについていずれの描画を行うかの決定は、対象キャラクタの各モーションのサンプリング時間経過毎に行うようにすればよい。また、３Ｄキャラクタのモーションで動き（姿勢変化）の少ない時間帯は粗くサンプリングし、動きの多い時間帯は細かくサンプリングするようにしてもよい。
【００６８】
更に、本実施形態では、右アナログスティック４０から入力がある場合に仮想カメラの位置、方向を変更する例を示したが、例えば、３秒間プレイヤからの入力がなければ、仮想カメラの位置、方向を動かすようにしてもよく、特定のイベントが発生する場合に仮想カメラを当該イベントが発生する位置、方向に動かすようにしてもよい。また、仮想カメラを動かす場合にも、位置だけ移動させたり、方向だけ変化させるようにしてもよい。このような場合には、例えば、右アナログスティック４０の他に左アナログスティック３９も一方の入力を把握するために使用することができる。
【００６９】
そして、本実施形態では、図１４（Ａ）に示したように、キャラクタとしての兵士の外形形状を円柱に見立てる例を示したが、円柱に見立てる必要がある訳ではなく、キャラクタに近似する形状に見立てることにより、疑似法線ベクトルの方向を容易に設定することが可能となる。
【００７０】
【発明の効果】
以上説明したように、本発明の第１、第４、第５及び第８の態様によれば、仮想カメラから所定距離内に位置するオブジェクトキャラクタ、すなわち、仮想カメラに近いオブジェクトキャラクタについて３次元キャラクタで描画し、仮想カメラから所定距離の外に位置するオブジェクトキャラクタ、すなわち、仮想カメラから遠方のオブジェクトキャラクタについて２次元キャラクタで描画するので、３次元キャラクタ及び２次元キャラクタが混在する画像の違和感を緩和することができると共に、所定距離内、所定数内のオブジェクトキャラクタについてのみ３次元キャラクタで描画するので、３次元画像処理の演算量を軽減することができ、また、２次元キャラクタについて、オブジェクトキャラクタの位置と仮想カメラの位置とを結ぶ方向と、オブジェクトキャラクタの正面方向とがなす相対角度の水平方向成分角度から予め用意された全天周多数方向のうち最も近い２つの２次元スプライトデータを選択して該相対角度でオブジェクトキャラクタをみたときの幅となるように合成し、該相対角度の垂直方向成分角度に応じて合成した２次元スプライトデータをせん断変形するようにしたので、仮想カメラから遠方の２次元キャラクタを見たときに水平及び垂直方向に適正な幅、高さが反映され、３次元キャラクタ及び２次元キャラクタが混在する画像の違和感を低減させることができ、更に、全天周多数方向について、幅の変化量の大きい方向間を幅の変化量の小さい方向間に比べて細かく区分したので、細長い２Ｄスプライトを合成しても適正な合成画像を得ることができる、という効果を得ることができる。
また、本発明の第２、第４、第６及び第９の態様の態様によれば、仮想カメラから所定距離内に位置するオブジェクトキャラクタについて３次元キャラクタで描画し、仮想カメラから所定距離の外に位置するオブジェクトキャラクタについて２次元キャラクタで描画するので、３次元キャラクタ及び２次元キャラクタが混在する画像の違和感を緩和することができると共に、所定距離内、所定数内のオブジェクトキャラクタについてのみ３次元キャラクタで描画するので、３次元画像処理の演算量を軽減することができ、また、予め用意された全天周多数方向の２次元スプライトデータを、手足又は足を有する３次元キャラクタがとり得る複数のモーションに対応するように複数のアニメーションデータとして準備されているため、オブジェクトキャラクタの描画が３次元キャラクタから２次元キャラクタに又はその逆に切り換えられても、切り換えの瞬間における両者間の姿勢、方向等の不一致・不連続性を解消することができ、３次元キャラクタ及び２次元キャラクタが混在する動的画像の違和感をなくすことができ、更に、準備されるべきアニメーションデータのうち動的変化の少ないフレームに対応する２次元スプライトデータを省くため、２次元スプライトデータのための記憶容量を軽減することができる、という効果を得ることができる。
そして、本発明の第３、第４、第７及び第１０の態様によれば、仮想カメラから所定距離内に位置するオブジェクトキャラクタについて３次元キャラクタで描画し、仮想カメラから所定距離の外に位置するオブジェクトキャラクタについて２次元キャラクタで描画するので、３次元キャラクタ及び２次元キャラクタが混在する画像の違和感を緩和することができると共に、所定距離内、所定数内のオブジェクトキャラクタについてのみ３次元キャラクタで描画するので、３次元画像処理の演算量を軽減することができ、また、２次元スプライトデータに、３次元ポリゴンデータに対応するように頂点座標及びシェーディング用の疑似法線ベクトルを予め含むようにしたので、２次元スプライトの頂点の疑似法線ベクトルによりシェーディング（陰影処理）を行うことが可能となり、２次元キャラクタを３次元キャラクタらしく見せることができる、という効果を得ることができる。
【図面の簡単な説明】
【図１】家庭用ゲーム装置の接続態様を示す概略斜視図である。
【図２】家庭用ゲーム装置に使用される入力装置を示し、（Ａ）は平面図であり、（Ｂ）は（Ａ）の矢印Ｂ方向からみたときの正面図である。
【図３】実施形態のゲーム装置本体の概略構成を示すブロック図である。
【図４】ゲーム装置本体のＣＰＵにより実行される戦闘処理ルーチンの概略フローチャートである。
【図５】戦闘処理ルーチンのステップ１０８の詳細を示す３Ｄ２Ｄ処理サブルーチンのフローチャートである。
【図６】３Ｄ２Ｄ処理サブルーチンのステップ１５０の詳細を示す２Ｄ処理サブルーチンのフローチャートである。
【図７】右アナログスティックの傾斜位置と視点との関係を示す説明図であり、（Ａ）は右アナログスティックを傾斜させたときの入力可能範囲を示す平面図、（Ｂ）は視点の移動方向及び向きを説明する平面図である。
【図８】仮想カメラの視界を示す説明図である。
【図９】３Ｄモデルを２Ｄスプライトにレンダリングするときの説明図であり、（Ａ）は全天周に対するレンダリング角度を示し、（Ｂ）は（Ａ）のレンダリング方向（０）〜（４）において３Ｄモデルの馬をレンダリングしたときの２Ｄスプライトである。
【図１０】３Ｄ、２Ｄの画像データを示す説明図であり、（Ａ）は３Ｄモーションデータを示し、（Ｂ）は２Ｄアニメーションデータを示す。
【図１１】角度φを模式的に示す説明図であり、（Ａ）は仮想カメラから３Ｄモデルを見たときを示し、（Ｂ）は仮想カメラから平面Ｃに投影された３Ｄモデルを見たときを示す。
【図１２】角度θを模式的に示す説明図であり、（Ａ）は仮想カメラから３Ｄモデルを見たときを示し、（Ｂ）は仮想カメラから平面Ｃに投影された３Ｄモデルを見たときを示す。
【図１３】２Ｄスプライトのせん断変形及び回転変形を模式的に示す説明図であり、（Ａ）はせん断変形前の２Ｄスプライトを示し、（Ｂ）はせん断変形後の２Ｄスプライトを示し、（Ｃ）は回転変形前の２Ｄスプライトを示し、（Ｄ）は回転変形後の２Ｄスプライトを示す。
【図１４】２Ｄスプライトの頂点の疑似法線ベクトルを模式的に示す説明図であり、（Ａ）は円柱で法線ベクトルを想定したときの法線ベクトルを示し、（Ｂ）は２Ｄスプライトの頂点における疑似法線ベクトルを示し、（Ｃ）は２Ｄスプライトの頂点における疑似法線ベクトルを上側から見たと仮定したときの方向を示す。
【図１５】戦闘処理ルーチンの実行時にテレビモニタに表示される中間調画像の一例である。
【符号の説明】
１  記録媒体
２  ゲーム装置本体（画像生成装置）
２０  ＣＰＵブロック（決定手段、描画手段の一部）
２３  画像処理部（描画手段の一部）
【図１】
0003760341.tif 000012
【図２】
0003760341.tif 000013
【図３】
0003760341.tif 000014
【図４】
0003760341.tif 000015
【図５】
0003760341.tif 000016
【図６】
0003760341.tif 000017
【図７】
0003760341.tif 000018
【図８】
0003760341.tif 000019
【図９】
0003760341.tif 000020
【図１０】
0003760341.tif 000021
【図１１】
0003760341.tif 000022
【図１２】
0003760341.tif 000023
【図１３】
0003760341.tif 000024
【図１４】
0003760341.tif 000025
【図１５】
0003760341.tif 000026