(57)【要約】【課題】ユーザーが作成した表示を、複雑な操作をせずに、キャラクタが複雑な形でも自由にそのキャラクタに貼り付けることのできるプログラムを提供する。【解決手段】画面内で所定の操作を行うための操作手段と、所定の演算を行う演算処理手段と、前記操作手段と前記演算処理手段とに接続され前記演算処理手段を制御する制御手段とを有するゲーム機において、ゲームのキャラクタに所定の画像を投影するプログラムであって、前記操作手段の操作により２次元座標からなる画像を前記制御手段により生成する画像作成ステップと、前記操作手段からの入力信号に基づいて、前記画像作成ステップで作成した画像をキャラクタに投影するための仮想光源と、前記画像とを、三次元仮想空間内において前記キャラクタ周囲の任意の位置に配置し、前記投影光源から前記キャラクタに前記画像を投影した投影像を前記キャラクタに貼付するステップと、を実現させるためのプログラム。【選択図】図４
2004246877.tif 000002
【特許請求の範囲】
【請求項１】
画面内で所定の操作を行うための操作手段と、所定の演算を行う演算処理手段と、前記操作手段と前記演算処理手段とに接続され前記演算処理手段を制御する制御手段とを有するゲーム機において、ゲームのキャラクタに所定の画像を投影するプログラムであって、
前記操作手段の操作により２次元座標からなる画像を前記制御手段により生成する画像作成ステップと、
前記操作手段からの入力信号に基づいて、前記画像作成ステップで作成した画像をキャラクタに投影するための仮想光源と、前記画像とを、三次元仮想空間内において前記キャラクタ周囲の任意の位置に配置し、前記投影光源から前記キャラクタに前記画像を投影した投影像を前記キャラクタに貼付するステップと、
を実現させるためのプログラム。
【請求項２】
前記キャラクタは、複数のパーツの組み合わせによって構成されており、前記制御手段に、前記操作手段の操作に応じて前記パーツのうち少なくとも一つが前記画像の投影対象として指定させ、前記指定されたパーツに対して前記投影画像を貼り付けさせる、
ことを実現させるための請求項１記載のプログラム。
【請求項３】
画面内で所定の操作を行うための操作手段と、所定の演算を行う演算処理手段と、前記操作手段と前記演算処理手段とに接続され前記演算処理手段を制御する制御手段とを有し、ゲームのキャラクタに所定の画像を投影するプログラムが組み込まれたゲーム機であって、
前記操作手段の操作により２次元座標からなる画像を前記制御手段により生成する画像作成ステップと、
前記操作手段からの入力信号に基づいて、前記画像作成ステップで作成した画像をキャラクタに投影するための仮想光源と、前記画像とを、三次元仮想空間内において前記キャラクタ周囲の任意の位置に配置し、前記投影光源から前記キャラクタに前記画像を投影した投影像を前記キャラクタに貼付するステップと、
を実現させるためのプログラムが組み込まれたゲーム機。
【請求項４】
前記キャラクタは、複数のパーツの組み合わせによって構成されており、前記制御手段に、前記操作手段の操作に応じて前記パーツのうち少なくとも一つが前記画像の投影対象として指定させ、前記指定されたパーツに対して前記投影画像を貼り付けさせる、
ことを実現させるための請求項３記載のプログラムが組み込まれたゲーム機。
【請求項５】
画面内で所定の操作を行うための操作手段と、所定の演算を行う演算処理手段と、前記操作手段と前記演算処理手段とに接続され前記演算処理手段を制御する制御手段とを有するゲーム機に対してゲームのキャラクタに所定の画像を投影するプログラムが格納された記録媒体であって、
前記操作手段の操作により２次元座標からなる画像を前記制御手段により生成する画像作成ステップと、
前記操作手段からの入力信号に基づいて、前記画像作成ステップで作成した画像をキャラクタに投影するための仮想光源と、前記画像とを、三次元仮想空間内において前記キャラクタ周囲の任意の位置に配置し、前記投影光源から前記キャラクタに前記画像を投影した投影像を前記キャラクタに貼付するステップと、
を実現させるためのプログラムが格納された記録媒体。
【請求項６】
前記キャラクタは、複数のパーツの組み合わせによって構成されており、前記制御手段に、前記操作手段の操作に応じて前記パーツのうち少なくとも一つが前記画像の投影対象として指定させ、前記指定されたパーツに対して前記投影画像を貼り付けさせる、
ことを実現させるための請求項５記載のプログラムが格納された記録媒体。
【請求項７】
三次元仮想空間内において、三次元座標からなるオブジェクトに所定の投影画像を投影したオブジェクト画像をディスプレイ装置に表示するための画像データを生成する画像データ生成手段としてコンピュータを動作させる画像表示制御プログラムであって、
前記画像表示制御プログラムは、制御手段に、
前記オブジェクトに投影される所定の投影画像データを生成させ、
前記仮想空間内に前記オブジェクトおよび前記投影画像を配置させ、
操作者の操作に基づいて前記オブジェクトに対する前記投影画像の相対位置と、前記投影画像を前記オブジェクトに投影する仮想光源の位置を決定させ、
前記仮想光源と前記オブジェクト上の投影位置を含む投影面の距離を演算し、前記仮想光源から所定距離以上はなれた投影面を投影対象から除いて、前記オブジェクトにおいて前記投影画像を投影すべき投影面を演算させ、
前記仮想光源を視点として前記投影画像を前記投影面に投影して、前記投影画像を前記オブジェクトの前記投影面に貼り付けさせ、
前記投影画像が貼り付けられた前記オブジェクトについてのオブジェクト画像データを生成させる機能を実現させることを特徴とする画像表示制御プログラム。
【請求項８】
前記制御手段に、さらに前記投影画像の画像データをユーザーが操作手段から入力する操作信号に基づいて生成させる機能を実現させることを特徴とする請求項７記載の画像表示制御プログラム。
【請求項９】
前記制御手段に、前記投影画像を前記オブジェクトと同一ないし近似する形状を備える透明オブジェクトに対して投影して、前記投影画像を前記透明オブジェクトに貼り付けさせ、
前記表示装置に前記投影画像を貼り付けた透明オブジェクトを前記オブジェクトに重ねて表示させる機能を実現させることを特徴とする請求項７又は８記載の画像表示制御プログラム。
【請求項１０】
前記仮想光源と前記投影オブジェクトと前記オブジェクトの位置関係によって、前記オブジェクトに貼り付けられた投影画像の変形が著しいと判断される場合、前記投影オブジェクトの透明度を変化させる機能を実現させることを特徴とする請求項７乃至９の画像表示制御プログラム。
【請求項１１】
前記オブジェクトが複数のパーツの組み合わせによって構成されており、
前記制御部に、操作者の操作に応じて前記パーツのうち少なくとも一つが前記投影画像の投影対象として指定させ、前記指定されたパーツに対して前記投影画像を貼り付けさせる機能を実現させることを特徴とする請求項７乃至１０記載の画像表示制御プログラム。
【請求項１２】
三次元仮想空間内において、三次元座標からなるオブジェクトに所定の投影画像を投影したオブジェクト画像をディスプレイ装置に表示するための画像データを生成する画像データ生成手段としてコンピュータを動作させる画像表示制御プログラムであって、
前記画像表示制御プログラムは、制御手段に、
前記オブジェクトに投影される所定の投影画像データを生成させ、
前記仮想空間内に前記オブジェクトおよび前記投影画像を配置させ、
操作者の操作に基づいて前記オブジェクトに対する前記投影画像の相対位置と、前記投影画像を前記オブジェクトに投影する仮想光源の位置を決定させ、
前記仮想光源と前記オブジェクト上の投影位置を含む投影面の距離を画素単位で演算し、前記仮想光源を視点として前記投影画像の画素を前記視点から最も近い前記投影面上の画素に投影して、前記投影画像を前記オブジェクトの前記投影面に貼り付けさせ、
前記投影画像が貼り付けられた前記オブジェクトについてのオブジェクト画像データを生成させる機能を実現させることを特徴とする画像表示制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームのキャラクタに所望の画面を自由に貼り付ける投影のプログラム、ゲームのキャラクタに画像を投影するプログラムが組み込まれたゲーム機、及びゲームのキャラクタに画像を投影するプログラムが格納された記録媒体に関する。
【背景技術】
【０００２】
従来から、ゲームのキャラクタに対してユーザーが所望の画面を貼り付けたり、キャラクタ自身の色や表示などを変えたりすることが行われている。
【０００３】
例えば、ゲーム内でユーザーが使用するロボットなどのキャラクタにエンブレムと呼ばれる表示（例えば旗や動物などのイメージ）を所定の位置に貼り付けたりする技術がある。さらに、ユーザーがゲーム内で使用する車のキャラクタに色や模様を付したりする技術もある。ユーザー自身の使用するキャラクタに愛着を持たせるためである。
【０００４】
これらは、例えばゲームの開始前に、メインメニューでの所定の選択によりエンブレムの選択画面やエンブレム作成画面、あるいは、色や模様を付したりするための作成画面が選択され、その画面内で作成、選択が行われる。そして、作成後のキャラクタをゲーム機内のメモリなどで保持しておき、ゲーム開始とともに呼び出すことで、ユーザー自身で作成或いは選択したエンブレム等付きのキャラクタが表示され、実際にゲームが開始されることになる。
【０００５】
一方で、いわゆる３次元コンピュータグラフィックスで３次元モデルをレンダリングして２次元画像データを映り込ませることも行われている（例えば特許文献１）。
【特許文献１】特許公開公報  特開２００１−３５１１２１号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、従来では、エンブレムのキャラクタに対する貼り付け位置が固定されており、自身の作成等したエンブレムをキャラクタの様々な場所に自由に貼り付けることができなかった。
【０００７】
キャラクタが固定された位置ではなく様々な位置にエンブレムを自由に貼り付けを行えるようにするために、例えば、固定された位置をそのまま移動させることも考えられる。しかし、移動した位置で、キャラクタの形状が異なりそのエンブレムがキャラクタに貼り付けられたように見せるために、さらに計算を行わなければならず計算量が多くなるという問題があった。キャラクタに対する固定位置と移動した位置とでポリゴン面が異なる場合があるからである。
【０００８】
また、車のキャラクタに対して色や模様を付するような場合、その作成画面は車のキャラクタが平面に展開された画面において行われるため、その画面内で作成して実際に車のキャラクタに貼り付けると、ユーザーの希望する表示とは若干異なる場合がある。実際に車のキャラクタに貼り付けられた表示を予想して作成画面で模様等を作成する必要があるため、何度もやり直したりするなど複雑な操作が必要でかつ熟練した技能を要するという問題があった。
【０００９】
そこで、本発明は上記問題点に鑑みてなされたもので、その目的は、ユーザーが作成した表示を、複雑な操作をせずに、キャラクタが複雑な形でも自由にそのキャラクタに貼り付けることのできるプログラム、当該プログラムが格納されたゲーム機、及び当該プログラムが格納された記録媒体を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明のプログラムは、画面内で所定の操作を行うための操作手段と、所定の演算を行う演算処理手段と、操作手段と演算処理手段とに接続され演算処理手段を制御する制御手段とを有するゲーム機において、ゲームのキャラクタに所定の画像を投影するプログラムであって、操作手段の操作により２次元座標からなる画像を制御手段により生成する画像作成ステップと、操作手段からの入力信号に基づいて、画像作成ステップで作成した画像をキャラクタに投影するための仮想光源と、画像とを、三次元仮想空間内においてキャラクタ周囲の任意の位置に配置し、投影光源からキャラクタに画像を投影した投影像をキャラクタに貼付するステップとを実現させている。
【００１１】
さらに、本発明のかかるキャラクタは、複数のパーツの組み合わせによって構成されており、制御手段に、操作手段の操作に応じてパーツのうち少なくとも一つが画像の投影対象として指定させ、指定されたパーツに対して投影画像を貼り付けさせる、ことを実現させる。
【００１２】
また、上記目的を達成するために、本発明は、画面内で所定の操作を行うための操作手段と、所定の演算を行う演算処理手段と、操作手段と演算処理手段とに接続され演算処理手段を制御する制御手段とを有し、ゲームのキャラクタに所定の画像を投影するプログラムが組み込まれたゲーム機であって、操作手段の操作により２次元座標からなる画像を前記制御手段により生成する画像作成ステップと、操作手段からの入力信号に基づいて、画像作成ステップで作成した画像をキャラクタに投影するための仮想光源と、画像とを、三次元仮想空間内においてキャラクタ周囲の任意の位置に配置し、投影光源からキャラクタに画像を投影した投影像を前記キャラクタに貼付するステップと、を実現させるためのプログラムが組み込まれたゲーム機にある。
【００１３】
さらに、本発明におけるキャラクタは、複数のパーツの組み合わせによって構成されており、制御手段に、操作手段の操作に応じてパーツのうち少なくとも一つが前記画像の投影対象として指定させ、指定されたパーツに対して投影画像を貼り付けさせる、ことを実現させるプログラムがゲーム機に組み込まれている。
【００１４】
また、上記目的を達成するために、本発明は、画面内で所定の操作を行うための操作手段と、所定の演算を行う演算処理手段と、操作手段と演算処理手段とに接続され演算処理手段を制御する制御手段とを有するゲーム機に対してゲームのキャラクタに所定の画像を投影するプログラムが格納された記録媒体であって、操作手段の操作により２次元座標からなる画像を制御手段により生成する画像作成ステップと、操作手段からの入力信号に基づいて、画像作成ステップで作成した画像をキャラクタに投影するための仮想光源と、画像とを、三次元仮想空間内においてキャラクタ周囲の任意の位置に配置し、投影光源からキャラクタに画像を投影した投影像をキャラクタに貼付するステップと、を実現させるためのプログラムが格納された記録媒体にある。
【００１５】
さらに、本発明は、かかる投影像をキャラクタに貼付するステップは、キャラクタを構成する各ポリゴンのα値を所定の値として演算処理手段で演算されるよう制御手段を制御する、ことを実現させるためのプログラムが格納された記録媒体としている。
【００１６】
さらに、本発明は、かかるキャラクタは、複数のパーツの組み合わせによって構成されており、前記制御手段に、前記操作手段の操作に応じて前記パーツのうち少なくとも一つが前記画像の投影対象として指定させ、前記指定されたパーツに対して前記投影画像を貼り付けさせることを実現させるためプログラムが格納された記録媒体にある。
【００１７】
上記目的を達成するために、本発明は、三次元仮想空間内において、三次元座標からなるオブジェクトに所定の投影画像を投影したオブジェクト画像をディスプレイ装置に表示するための画像データを生成する画像データ生成手段としてコンピュータを動作させる画像表示制御プログラムであって、画像表示制御プログラムは、制御手段に、オブジェクトに投影される所定の投影画像データを生成させ、仮想空間内にオブジェクトおよび投影画像を配置させ、操作者の操作に基づいてオブジェクトに対する投影画像の相対位置と、投影画像をオブジェクトに投影する仮想光源の位置を決定させ、仮想光源とオブジェクト上の投影位置を含む投影面の距離を演算し、仮想光源から所定距離以上はなれた投影面を投影対象から除いて、オブジェクトにおいて前記投影画像を投影すべき投影面を演算させ、仮想光源を視点として投影画像を投影面に投影して、投影画像をオブジェクトの前記投影面に貼り付けさせ、投影画像が貼り付けられたオブジェクトについてのオブジェクト画像データを生成させる機能を実現させることを特徴とする画像表示制御プログラムにある。
【００１８】
さらに、本発明は、かかる制御手段に、さらに投影画像の画像データをユーザーが操作手段から入力する操作信号に基づいて生成させる機能を実現させることを特徴とする画像表示制御プログラムにある。
【００１９】
さらに、本発明は、かかる制御手段に、投影画像をオブジェクトと同一ないし近似する形状を備える透明オブジェクトに対して投影して、投影画像を透明オブジェクトに貼り付けさせ、表示装置に投影画像を貼り付けた透明オブジェクトをオブジェクトに重ねて表示させる機能を実現させることを特徴とする画像表示制御プログラムにある。
【００２０】
さらに、本発明は、前記仮想光源と前記投影オブジェクトと前記オブジェクトの位置関係によって、オブジェクトに貼り付けられた投影画像の変形が著しいと判断される場合、投影オブジェクトの透明度を変化させる機能を実現させることを特徴とする画像表示制御プログラムにある。
【００２１】
さらに、本発明は、かかるオブジェクトが複数のパーツの組み合わせによって構成されており、制御部に、操作者の操作に応じてパーツのうち少なくとも一つが投影画像の投影対象として指定させ、指定されたパーツに対して投影画像を貼り付けさせる機能を実現させることを特徴とする画像表示制御プログラムにある。
【００２２】
さらに上記目的を達成するために本発明は、三次元仮想空間内において、三次元座標からなるオブジェクトに所定の投影画像を投影したオブジェクト画像をディスプレイ装置に表示するための画像データを生成する画像データ生成手段としてコンピュータを動作させる画像表示制御プログラムであって、上記画像表示制御プログラムは、制御手段に、オブジェクトに投影される所定の投影画像データを生成させ、仮想空間内にオブジェクトおよび投影画像を配置させ、操作者の操作に基づいてオブジェクトに対する投影画像の相対位置と、投影画像をオブジェクトに投影する仮想光源の位置を決定させ、仮想光源とオブジェクト上の投影位置を含む投影面の距離を画素単位で演算し、仮想光源を視点として投影画像の画素を視点から最も近い投影面上の画素に投影して、投影画像をオブジェクトの投影面に貼り付けさせ、前記投影画像が貼り付けられた前記オブジェクトについてのオブジェクト画像データを生成させる機能を実現させることを特徴としている。これにより、例えば、作成したエンブレム画像がオブジェクトを構成する各表面、裏面に貼り付けられたときに、視点から最も近い投影面にのみエンブレム画像が貼り付けられる。
【発明の効果】
【００２３】
本発明によれば、ユーザーが作成した表示を、複雑な操作をせずに、キャラクタが複雑な形でも自由にそのキャラクタに貼り付けることのできるプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２４】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００２５】
図１は、本発明が適用されるゲーム機５０の内部構成を示す図である。
【００２６】
ゲーム機５０は、ＣＰＵ１と、操作部２と、主記憶装置３と、記録媒体４と、ジオメトリックプロセッサ５と、ローカルバッファ６と、ディスプレイプロセッサ７と、テクスチャバッファ８と、ディスプレイ９とから構成される。
【００２７】
ＣＰＵ１は、操作部２と主記憶装置３と記録媒体４、およびテクスチャバッファ８に接続される。操作部２によるユーザーの各種操作に関する制御信号が入力されるとともに、主記憶装置３や記録媒体４に記憶された各種プログラムを実行するためのものである。その詳細は後述する。
【００２８】
操作部２は、ＣＰＵ１に接続され、ゲーム機５０とユーザーとのインターフェースとしての役割を有し、ユーザーが種々の操作を行うことで、後述するエンブレムの作成や、キャラクタの貼り付け、さらにゲーム実行中におけるキャラクタの操作などを行うことができる、そして操作部２は、ユーザーの所定の操作に対応した制御信号をＣＰＵ１に出力する。
【００２９】
主記憶装置３は、ＣＰＵ１に接続されるとともにテクスチャバッファ８に接続されている。主記憶装置３には、エンブレム表示のためのプログラムなど各種プログラムが格納されている。また、ＣＰＵ１で実行されたプログラムに対する各種データも記憶されることになる。
【００３０】
記録媒体４には、ゲームの種類ごとに異なるプログラムが記録されており、例えばＣＤ−ＲＯＭなどの媒体から構成されている。記録媒体４は、ゲーム機５０と着脱可能になっており、記録媒体４をゲーム機５０に装着させると、記録媒体４に格納されたプログラムがＣＰＵ１の制御により、ＣＰＵ１を経由して主記憶装置３に出力させるようになっている。
【００３１】
ジオメトリックプロセッサ５は、ＣＰＵ１、ローカルバッファ６、及びディスプレイプロセッサ７に接続されている。ジオメトリックプロセッサ５は、ＣＰＵ１から出力される各種データが入力され、このデータをもとに画面表示等を行うための演算を行う。演算した結果、演算データは、ディスプレイプロセッサ７に出力される。
【００３２】
ローカルバッファ６は、ジオメトリックプロセッサ５と接続され、ジオメトリックプロセッサ５から出力される演算データを必要に応じて記憶する。
【００３３】
ディスプレイプロセッサ７は、テクスチャバッファ８と接続されとともに、ディスプレイ９に接続されている。ジオメトリックプロセッサ５で演算した演算データをもとに実際にディスプレイ９に表示させるために演算を行い、画面データとしてディプレイ９に出力する。また、ディスプレイプロセッサ７は、ジオメトリックプロセッサ５からの演算データをもとに適宜、テクスチャバッファ８に出力する。
【００３４】
テクスチャバッファ８は、ディスプレイプロセッサ７から出力されるテクスチャを一時記憶するとともに、ディスプレイ９にも接続され、表示画面（フレーム画面）に対する奥行きを示すＺ値も一時記憶する。このＺ値の記憶については後述する。また、テクスチャバッファ８は、ＣＰＵ１及び主記憶装置３にも接続され、ＣＰＵ１からの制御信号が入力されて主記憶装置３から転送されるデータを一時記憶する。
【００３５】
ディプレイ９は、ディスプレイプロセッサ７から出力される画面データをもとに、実際にゲーム画像を表示するためのものである。また、上述のＺ値をテクスチャバッファ８に出力する。
【００３６】
次に図２を用いてエンブレムを貼り付ける対象となるキャラクタ（オブジェクト）を表示させる描画の処理について説明する。この描画の処理のためのプログラムは記録媒体４に記録され、記録媒体４がゲーム機５０に装着された場合にＣＰＵ１の制御により読み出され、主記憶装置３に転送されて、主記憶装置３に記憶されていることが前提となる。もちろん、当該プログラムが予めゲーム機５０に組み込まれて主記憶装置３に予め記憶されている場合でも適用できる。
【００３７】
まず、オブジェクトの描画についての処理が開始される（ステップＳ１０）と、ＣＰＵ１は、カメラの行列を生成する（ステップＳ１１）。ここでは、グローバル座標系（ｘ、ｙ、ｚ）の所定の位置にオブジェクト（キャラクタ）が存在している場合に、その座標系の任意の位置に実際にディスプレイ９の画面に表示される視点の位置が存在する。この視点の位置に“カメラ”が位置するものとして、そのカメラの位置等を行列式で表す。そして、この行列式がカメラの行列なのである。カメラの行列式に含まれるものは、カメラのグローバル座標系の位置座標の他、グローバル座標系の原点からの角度の値も含まれる。カメラの行列は、例えば４行３列の行列式や、４行４列の行列式で表されるが、もちろんその他ｎ行ｍ列の行列式で表すことも可能である。生成した行列式は、主記憶装置３に出力して主記憶装置３で記憶される。
【００３８】
次いで、ＣＰＵ１は、描画開始のリクエストをジオメトリックプロセッサ５に出力する（ステップＳ１２）。これによりジオメトリックプロセッサ５は、オブジェクト描画のための処理を開始することになる。本実施例では、ディスプレイ９に表示されるゲーム画像の１フレーム単位の時間（１／６０秒：１秒で６０フレーム表示される場合）ごとにこのリクエストを出力する。オブジェクトを含む画像の描画は１フレーム単位で行われるからである。
【００３９】
次いで、ＣＰＵ１は、ステップＳ１１で生成したカメラの行例式を主記憶装置３から読み出す（ステップＳ１３）。
【００４０】
次いで、ＣＰＵ１は、モデルの位置の移動のための処理を行う（ステップＳ１４）。すなわち、ステップＳ１３で読み出したカメラの行列式と、オブジェクト（モデル）の位置とから、カメラの位置からの相対的なオブジェクトの位置を演算する処理を行う。具体的には、ともにグローバル座標系で表されたオブジェクトの位置とカメラの位置とから、カメラの位置を原点とした場合のオブジェクトの位置を演算する処理を行う。これにより、カメラの視点からのオブジェクトの相対位置、すなわち、実際にディスプレイ９の画面上に表示されるオブジェクトの位置を求めることができる。
【００４１】
次いで、ＣＰＵ１は、モデルデータの転送を行う（ステップＳ１５）。具体的には、ＣＰＵ１は、ステップＳ１４で演算したオブジェクトの相対位置を示すモデルデータを主記憶装置３に出力する。主記憶装置３は、このモデルデータを一時記憶する。
【００４２】
次いで、ＣＰＵ１は、１フレームに含まれるすべてのオブジェクトに対してオブジェクトの相対位置を演算したか否か判断する（ステップＳ１６）。まだ、フレーム内に演算していないオブジェクトがあるなら（ステップＳ１６で“Ｎｏ”のとき）、処理は再びステップＳ１３に戻り主記憶装置３からカメラの行列式を呼び出して上述したカメラからの相対位置を各オブジェクトに対して演算処理を行う。
【００４３】
１フレームに含まれるすべてのオブジェクトに対する演算が行われた場合（ステップＳ１６で“Ｙｅｓ”の場合）、ＣＰＵ１は、描画終了のリクエストをジオメトリックプロセッサ５に出力する（ステップＳ１７）。そして、ＣＰＵ１は、このリクエストの出力をトリガとして主記憶装置３に記憶した各オブジェクトのモデルデータを読み出して、ジオメトリックプロセッサ５に出力する。これにより、ジオメトリックプロセッサ５は、モデルデータをもとに実際にディスプレイ画面９上にオブジェクトを表示するための演算処理が行われる。
【００４４】
すなわち、ジオメトリックプロセッサ５から出力される演算データをもとに、ディスプレイプロセッサ７は、画面表示のための処理を行い、その出力がディスプレイ９に出力される。そして、ディスプレイ９では画面上でエンブレムを貼り付ける対象のオブジェクトが表示されることになる（ステップＳ１８）。そして、オブジェクト描画のための処理が終了する（ステップＳ１９）。
【００４５】
なお、オブジェクトの描画処理（ステップＳ１８）では、ジオメトリックプロセッサ５において各オブジェクトを表現するポリゴンのα値をすべて“０”（または“１”）にして色表現のない透明なポリゴン面から構成されるオブジェクトを表現している。計算量を減らすためである。
【００４６】
この描画の処理により、実際にディスプレイ９に表示されるオブジェクトの例を図３に示す。ディスプレイ画面１５のほぼ中央には、ユーザーがゲーム内に使用するキャラクタ１６が表示される。このキャラクタ１６がエンブレムを貼付するキャラクタである。図面ではわかりにくいが、実際には透明のキャラクタが表現されている。
【００４７】
画面１５の下部には、操作方法１７が表示される。操作方法１７は、ディスプレイ９の画面上における操作と操作部２との対応関係を示すもので、操作部２の操作によりキャラクタ１６の位置を変えたりすることができるようになっている。ちなみに、この画面を表示させるには、例えばメインメニューで個人データ等の選択画面を選択することで表示されるようになっている。
【００４８】
次に、図３のように表示されたキャラクタに対して所望のエンブレムを投影して貼付する処理について図４を参照して説明するが、この処理が開始される前の段階でエンブレムの作成を行うことが前提となっている。
【００４９】
エンブレムの作成画面の例を図５に示す。ここでエンブレムとは、図３に表示されたキャラクタの所望の位置に貼付するイメージである。ユーザーはこの作成画面で、エンブレムを好みの画像にしたり、編集したりすることができる。この作成画面も、ゲームのメインメニューで個人データ等の所定の選択を行うことで表示されるようになっている。
【００５０】
この作成画面（ＥＭＢＬＥＭ  ＥＤＩＴ）は、エンブレム作成ボタン群２１と、エンブレム拡大画面２３と、表示画面２４と、色選択ボタン群２５とから主に構成される。
【００５１】
エンブレム作成ボタン群２１は、エンブレム２８を画面内で作成するための複数のボタン２１０〜２２１から構成され、アイコン２７を所定の操作部２の操作により画面２０上で選択できるようになっている。
【００５２】
ボタン２１０は、自由に線を拡大画面２３上で描くためのボタンである。アイコン２７の画面内の操作でボタン２１をクリックすると拡大画面２３内で自由に線を描くことができるようになっている。
【００５３】
ボタン２１１は、いわゆる“消しゴム”のためのボタンで、アイコン２７の操作により拡大画面２３で描いた線を消すことができる。
【００５４】
ボタン２１２は、ペイントのためのボタンで、このボタンをクリックして拡大画面２３内でアイコン２７を所定の位置に移動させ、所定の操作を行うことでアイコン２７が位置する所定範囲内で色が付されるようになされている。
【００５５】
ボタン２１３は、四角形を描くためのボタンであり、画面内での操作により拡大画面２３内で四角形を描くことができる。
【００５６】
ボタン２１４は、描いたエンブレム２８をプレビューするためのボタンであり、ボタン２１５は、作成画面を終了させるためのボタンである。
【００５７】
ボタン２１６は、ペンの太さを設定するためのボタンで、拡大画面２３で描くエンブレムの線の太さを設定することができる。
【００５８】
ボタン２１７は、拡大画面２３内で描いたエンブレム２８をクリアするためのボタンで、ボタン２１８は直線を描くためのボタンである。
【００５９】
ボタン２１９は、円を描くためのボタンであり、ボタン２２０は、エンブレム２８をさらに拡大させるためのボタンである。そして、ボタン２２１は、いわゆる“Ｕｎｄｏ”機能のボタンであり、直前の操作を取り消して元に戻すためのボタンである。
【００６０】
拡大画面２３には、エンブレム２８を拡大表示させ、細かな調整を行うことができるようになっている。
【００６１】
表示画面２４は、後述する図１０に示す投影を行う画面で表示されるエンブレムの大きさとほぼ等しい大きさでエンブレム２８が表示される画面である。ユーザーはこの画面を確認しながら拡大画面２３においてエンブレム２８を作成することができる。
【００６２】
色選択ボタン群２５は、複数の色がボタンとして表示されており、アイコン２７を画面２０で移動させ所望の色を示すボタンを選択することで、拡大画面２３に表示されたエンブレム２８に色を付すことができる。
【００６３】
このエンブレム作成画面２０は、以下のようにして表示されることになる。すなわち、記録媒体４に記録されたエンブレム作成画面を表示するためのプログラムが格納され、これをＣＰＵ１が読み出し、表示のための所定のデータをジオメトリックプロセッサ５に出力する。ジオメトリックプロセッサ５は、表示のための処理を行い、演算データをディスプレイプロセッサ７に出力する。ディスプレイプロセッサ７は演算データをもとに表示のためのデータを生成し、ディスプレイ９に出力され、実際のエンブレム作成画面がディスプレイ９に表示されることになる。
【００６４】
そして、操作部２の所定の操作により、その制御信号がＣＰＵ１に出力されその制御データをもとにＣＰＵ１は、再びその操作に対応した表示を上述の動作により行う。終了ボタン２１５の操作によりそれまで作成画面２０で作成したエンブレム２８、すなわち、ジオメトリックプロセッサ５でエンブレム２８の表示の演算を行うためのデータは、主記憶装置３に記憶されることになる。以上がエンブレム作成のための処理である。
【００６５】
再び図４に戻って、上述により作成したエンブレム２８をキャラクタ１６に貼付する投影の処理について説明する。かかる投影処理のためのプログラムは記録媒体４に記録され、記録媒体４をゲーム機５０に装着させた場合にＣＰＵ１の制御により読み出され、主記憶装置３に転送され、この主記憶装置３で記憶される。もちろん、当該プログラムが記録媒体４ではなく、主記憶装置３に予め記憶されており、当該プログラムが組み込まれた組み込み型のゲーム機５０でも適用される。
【００６６】
投影の処理が開始される（ステップＳ３０）と、ＣＰＵ１はライト行例の生成を行う。ライト行列の生成とは、グローバル座標系で表示されたキャラクタ１６に対して、任意の位置（ライト位置）を示す行列式を生成することである。このライト位置からの視点がエンブレム２８をキャラクタ１６に貼り付けを行うための画面の視点となる。ちなみに、ここではライトの位置と上述したカメラの位置とは同じである。位置が異なる場合とは、例えば実際にゲームを実行している最中にキャラクタ１６自身はカメラからの視点、エンブレム２８はライトからの視点とする場合が考えられる。このようにすることで、エンブレム２８のみが例えばキャラクタ１６の側面に実際の画面からの視点とは異なる視点のエンブレム２８を表示することができるようになる。
【００６７】
図６には、グローバル座標系で所定の位置にキャラクタ１６とライトの位置３０とが存在する図を示す。この場合ライトの位置３０は、キャラクタ１６に対して右側後方に位置している。このライトの位置３０とカメラの位置とが同じ場合には、ライトの位置３０からの視点が実際の画面上に表示されることになる。
【００６８】
さらに、図６に示すようにライトの位置３０から所定の距離離れた位置にエンブレムテクスチャ面３１が存在する。これは上述したエンブレム作成画面２０（図５参照）で作成したエンブレム２８が表示されるテクスチャ面である。
【００６９】
ライトの位置とカメラの位置とはこの場合同じであるので、ライト行列は上述したカメラの行列と同様の行列式で表現される。作成したライト行列は主記憶装置３に出力し、一時記憶される。
【００７０】
再び図４に戻って、ライト行列を生成したＣＰＵ１は、次いで、投影行列を生成する（ステップＳ３２）。この投影行列は、図６に示すエンブレムテクスチャ面３１が表示される位置や、テクスチャ面３１の大きさを示す行列式である。ここでエンブレムテクスチャ面３１の位置は、グローバル座標系ではライトの位置３０から一定の距離に位置しているため、この距離やテクスチャ面３１の大きさからこの投影行列を作成することができる。エンブレムテクスチャ面３１は、初期設定で例えば０．５×０．５で表される。０．５はディスプレイ９に表示される画面の半分であり、０．５×０．５は画面の縦、横それぞれ半分の大きさを示す。生成した投影行列は、主記憶装置３に出力し、一時記憶される。
【００７１】
次いで、ＣＰＵ１は、ビュー行列の生成を行う（ステップＳ３３）。このビュー行列の生成は、ステップＳ３１で生成したライト行列とステップＳ３２で生成した投影行列とを乗算することで生成できる。すなわち、各ステップで主記憶装置３に記憶されたライト行列と投影行列とをＣＰＵ１が読み出し、乗算することで生成される。
【００７２】
次いで、ＣＰＵ１は、カメラの行列を生成する（ステップＳ３４）。上述したようにカメラの行列は、ディスプレイ９の画面上の視点を示す行列式で、ここではライトの位置３０とカメラの位置とは一致しているので、ライト行列と同内容の行列式を生成することになる。生成の具体的処理は、上述した図２のオブジェクトの描画処理におけるカメラの行列の生成（ステップＳ１１）と同様である。
【００７３】
次いで、ＣＰＵ１は、ジオメトリックプロセッサ５に描画開始のリクエストを出力する（ステップＳ３５）。このリクエストを出力するタイミングも上述したオブジェクトの描画処理（図２）と同様に、１秒で６０フレーム表示できる本実施例のゲーム機５０では１／６０秒ごと（１フレーム表示される時間ごと）に出力する。
【００７４】
次いで、ＣＰＵ１は、エンブレムテクスチャをテクスチャバッファ８に出力する（ステップＳ３６）。図５で示すエンブレム２８は、主記憶装置３に記憶されているので、ＣＰＵ１は、主記憶装置３からエンブレム２８の表示を行うためのデータを読出し、テクスチャバッファ８に出力し、テクスチャバッファ８に記憶される。
【００７５】
次いで、ＣＰＵ１は、テクスチャ座標の生成を行う（ステップＳ３７）。すなわち、作成したエンブレム２８がキャラクタ１６の各ポリゴン面に貼付されるように、テクスチャ面３１に位置するエンブレムの座標をキャラクタ１６の損算する位置に変換する。このテクスチャ座標の生成は、ステップＳ３３で生成したビュー行列とキャラクタ１６の３次元座標とを用いて生成する。エンブレム２８はテクスチャ面では、２次元座標（いわゆるｕ―ｖ座標系）であるが、キャラクタ１６のポリゴンを形成する各頂点座標は３次元座標であるため、生成するテクスチャ座標は３次元座標として表現される。かかる、テクスチャ座標は、キャラクタ１６上の座標に変換された座標であるので、ユーザーの作成したエンブレムがキャラクタ１６上に貼付された画像が表示できるようになる。
【００７６】
次いで、ＣＰＵ１は、カメラの行列をロードする（ステップＳ３８）。すなわち、ＣＰＵ１は、ステップＳ３４で生成したカメラの行列を主記憶装置３から読み出す処理を行う。
【００７７】
次いで、ＣＰＵ１は、モデルの位置の移動処理、すなわち、カメラの視点からの相対的なオブジェクト（ここではエンブレム２８が貼付されたキャラクタ１６）の位置の変換処理を行う（ステップＳ３９）。オブジェクトの描画の処理と同様に、カメラの視点がディスプレイ９の実際の画面からの視点になり、グローバル座標系では任意の位置にあるカメラの位置に対して、このカメラ位置を例えば原点としてオブジェクトの位置の座標を演算する。
【００７８】
次いで、ＣＰＵ１は、ステップＳ３９で演算した各データを主記憶装置３に出力し（ステップＳ４０）、主記憶装置３はこれらのデータ（モデルデータ）を記憶する。
【００７９】
次いで、１フレーム内のすべてのオブジェクトに対する相対位置の演算を行うと、描画終了のリクエストをジオメトリックプロセッサ５に出力する（ステップＳ４１で“Ｙｅｓ”のとき）。描画終了のリクエストをＣＰＵ１がジオメトリックプロセッサ５に出力しないとき（ステップＳ４１で“Ｎｏ”のとき）、すなわち、１フレームに含まれるすべてのオブジェクトに対する演算を終了していないとき、処理は再びステップＳ３５に移行し、上述の処理を繰り返すことになる。
【００８０】
そして、ＣＰＵ１は、このリクエストの出力をもとにステップＳ４０で主記憶装置３に記憶したモデルデータを読み出して、ジオメトリックプロセッサ５に出力する。これにより、ジオメトリックプロセッサ５は、実際にディスプレイ画面９上にエンブレムが貼付されたオブジェクトを表示するための処理が行われる。さらに、ジオメトリックプロセッサ５から出力される演算データからディスプレイプロセッサ７は、画面表示のための処理を行い、その出力がディスプレイ９に出力される。そして、ディスプレイ９では画面上でエンブレムが貼付されたオブジェクトが表示されることになる（ステップＳ４２）。そして、オブジェクト描画のための処理が終了する（ステップＳ４３）。
【００８１】
この投影の処理により実際にディスプレイ９上に表示される、オブジェクトの例を図７、図８に示す。図７は、キャラクタ１６にエンブレムを貼り付ける直前の画面であり、処理としてはテクスチャ座標の生成を行っていない（ステップＳ３７の処理が行なわれていない場合）もので、図８はエンブレムをキャラクタ１６に貼り付けた場合（ステップＳ３７でテクスチャ座標の生成が行われた場合）の画面を示す。
【００８２】
図７は、エンブレム２８がまだキャラクタ１６に貼り付いていないので、エンブレム２８は、図５に示すエンブレム作成画面２０の実際の表示画面２４に表示されたエンブレム２８がそのまま画面１５に表示されている。画面１５の下部には操作方法１７が表示され、この記述に基づいてユーザーは操作部２を操作することで、エンブレム２８の位置を移動させたり、その大きさを変化させたりすることができる。
【００８３】
操作部２によってエンブレムの大きさを変化させたとき、その変化に対応する制御信号が操作部２からＣＰＵ１に出力され、この制御信号に基づいてＣＰＵ１は、上述の投影の処理（図４）のステップＳ３２の投影行列の生成で、その大きさに対応した投影行列を生成する。すなわち、大きさが変化すると初期設定の０．５の値が変化してその大きさの値に対応する値を用いて投影行列を生成して上述の投影の処理を行うことになる。
【００８４】
また、エンブレムの位置を変化させたいときは、操作部２によって所定の操作により行われる。すなわち、その変化させた位置に対応する制御信号が操作部２からＣＰＵ１に出力される。そしてＣＰＵ１は、この制御信号に基づいて画面の視点位置、すなわちグローバル座標系のライトの位置や原点からの角度が変化し、その移動した位置に対応するライト行列をステップＳ３１生成して以後上述の処理（図４参照）を行って、エンブレム２８の移動を行うことができる。
【００８５】
また、キャラクタ１６の表示位置を変えたい場合は、上述したオブジェクトの描画処理（図２）で表示された画面に対して、操作部２での所望の操作により行われる。すなわち、その操作に対応する制御信号が操作部２からＣＰＵ１に出力され、この制御信号に基づいてＣＰＵ１は、変化させた表示位置に対応するカメラの行列をステップＳ１１で生成することで、以後の処理を行うことで実現できる。
【００８６】
そして、図７に表示されたエンブレム２８のキャラクタ１６に対する位置や大きさをユーザーが画面１５内で確認して、これでよければ操作部２に所定の操作を行うことで、上述の投影の処理（図４）がすべて行われて図８に示す実際のキャラクタ１６にエンブレム２８が貼り付いた状態で画面表示される。
【００８７】
このキャラクタ１６の視点位置の移動も同様にカメラ行列又はライト行列を移動した位置に対応した行列式を生成する（ステップＳ３０、ステップＳ３４）ことで実現できる。
【００８８】
ここで、エンブレムの貼り付けについて、１つあるいは複数のポリゴンから構成されるキャラクタ１６の各パーツごとに行うことも可能である。
【００８９】
また、表示されるキャラクタ１６は、透明に表示されるが、キャラクタ１６上の貼り付け位置は、最も手前、すなわちカメラからもっとも近いポリゴン面に行うようにしている。
【００９０】
以上のようにして、エンブレム２８のキャラクタ１６への投影を行うことができる。したがって、画面を見ながら貼り付けたい位置に自由にエンブレム２９をキャラクタ１６貼り付けることができる。また、エンブレム２８が貼付されたキャラクタ１６を貼付直後に確認できるので、熟練した技能を必要とせず、だれでも所望のエンブレムを貼付することができる。さらに、操作部２の所定の操作により投影が行われるため、複雑な操作を必要としない。
【００９１】
次に、実際にゲームを行う場合に、エンブレム２８が貼付されたキャラクタ１６を含むゲームの表示の処理について図９から図１１を用いて説明する。かかる表示処理のためのプログラムは記録媒体４に記録され、この記録媒体４をゲーム機５０に装着されるとＣＰＵ１の制御により主記憶装置３に転送され、主記憶装置３にて記憶され、以後の処理が行われる。もちろん、予めこの処理のためのプログラムが主記憶装置３に記憶されている、プログラム組み込み型のゲーム機でも適用される。
【００９２】
まず、ゲーム表示の処理が開始される（ステップＳ５０）と、ＣＰＵ１は、ライト行列を生成する（ステップＳ５１）。上述した投影処理（図４）のライト行列の生成（ステップＳ３１）と同様である。すなわち、グローバル座標系での所定の位置（ライトの位置）を行列式で表現したものを生成する。同様にｍ行ｎ列で表現できる。生成したライト行列は主記憶装置３に出力され、一時記憶される。
【００９３】
次いで、ＣＰＵ１は、投影行列を生成する処理を行う（ステップＳ５２）。上述の投影処理（図４）の投影行列の生成（ステップＳ３２）と同様である。すなわち、図６で参照したようにライトの視点位置３０からエンブレムテクスチャ面３１までの距離が一定であるため、エンブレムテクスチャ面３１のグローバル座標系の位置、テクスチャ面３１の大きさなどを行列式で表現したものを生成する。生成した投影行列は主記憶装置３に出力され、一時記憶される。
【００９４】
次いで、ＣＰＵ１は、ビュー行列を生成する処理を行う（ステップＳ５３）。すなわち、上述のステップＳ５１及びＳ５２で生成したライト行列と投影行列とを主記憶装置３から読み出してこれらを乗算してビュー行列を生成する。生成したビュー行列は主記憶装置２に出力され、一時記憶される。
【００９５】
次いで、ＣＰＵ１は、デプス行列を生成する（ステップＳ５４）。これは、予め主記憶装置３に記憶されたデプス用の行列とステップＳ５１で生成したライト行列とを乗算して生成する。生成したデプス行列は、主記憶装置３に出力され一時記憶される。
【００９６】
次いで、ＣＰＵ１は、現在のカメラの位置から投影行列を生成する（ステップＳ５５）。生成した投影行列は、主記憶装置３に出力され一時記憶される。また、ＣＰＵ１は、現在のカメラ位置からカメラ行列を生成する。生成したカメラ行列は主記憶装置３に出力され一時記憶される。
【００９７】
次いで、ＣＰＵ１は、描画開始のリクエストをジオメトリックプロセッサ５に出力する（ステップＳ５６）。これにより、ジオメトリックプロセッサ５は、描画のための処理の準備に移行する。ここでは、いわゆるプリレンダリングの処理のための描画開始のリクエストである。
【００９８】
次いで、ＣＰＵ１は、ステップＳ５５で生成したカメラ行列を主記憶装置３から読み出す（ステップＳ５７）。
【００９９】
次いで、ＣＰＵ１は、オブジェクト（モデル）を表示したい位置に移動させる（ステップＳ５８）。具体的には、オブジェクトの描画の処理（図２参照）のステップＳ１４と同様に、ともにグローバル座標系で表されたオブジェクトの位置とカメラの位置とから、カメラの位置を原点とした場合のオブジェクトの位置を演算する処理を行う。これにより、カメラの視点からのオブジェクトの相対位置、すなわち、実際にディスプレイ９の画面上に表示されるオブジェクトの位置を求めることができる。
【０１００】
次いで、ＣＰＵ１は、モデルデータの転送を行う（ステップＳ５９）。具体的には、ＣＰＵ１は、ステップＳ５８で演算したオブジェクトの相対位置を示すモデルデータを主記憶装置３に出力され、一時記憶される。
【０１０１】
次いで、ＣＰＵ１は、描画終了のリクエストをジオメトリックプロセッサ５に出力する（ステップＳ６０）。そして、ＣＰＵ１は、主記憶装置３に記憶されたモデルデータを読み出してジオメトリックプロセッサ５に出力してオブジェクトの描画のための処理が行われる（ステップＳ６０）。
【０１０２】
次いで、ＣＰＵ１は、図１０のステップＳ６２に移行して、描画結果のＺ値をテクスチャバッファ８に出力させるようジオメトリックプロセッサ５に指示データを出力する。ここでディスプレイ９の画面上にオブジェクトが表示されている場合に、画面上の任意の点（カメラの位置からの相対的なオブジェクトの位置）は２次元座標で表されているものの、グローバル座標系では３次元座標として表されている。そこで、画面上の任意の画素ごとにグローバル座標系でオブジェクトが表された場合のＺ値、すなわち奥行きを表す値をテクスチャバッファ８に記憶されるよう、ＣＰＵ１は指示データを出力する。この指示データを受けたジオメトリックプロセッサ５は、オブジェクトの描画のための演算処理を行っているときに、各Ｚ値を演算してディスプレイプロセッサ７にそのＺ値を出力する。Ｚ値はディスプレイプロセッサ７からディスプレイ９を経由してテクスチャバッファ８に出力される。そして、テクスチャバッファ８においてＺ値が保存されることになる。
【０１０３】
次いで、ＣＰＵ１は、レンダリングのため描画開始のリクエストをジオメトリックプロセッサ５に出力する（ステップＳ６３）。
【０１０４】
次いで、ＣＰＵ１は、主記憶装置３に記憶したカメラ行列を読み出し（ステップＳ６４）、カメラの位置からの相対的なオブジェクトの位置を演算する（ステップＳ６５）。具体的には、ステップＳ５８と同様にともにグローバル座標系で表されたオブジェクトの位置とカメラの位置とから、カメラの位置を原点とした場合のオブジェクトの位置を演算する処理を行う。そして、ＣＰＵ１は、演算したモデルデータを主記憶装置３に出力し（ステップＳ６６）、モデルデータは主記憶装置３に記憶される。
【０１０５】
次いで、ＣＰＵ１は、ステップＳ５４で生成したデプス行列を主記憶装置３から読み出す（ステップＳ６７）。
【０１０６】
次いで、ＣＰＵ１は、主記憶装置３に予め記憶された勾配テクスチャとステップＳ５４で生成したデプス行列とを主記憶装置３から読み出して、デプス値を生成する。ここでデプス値とは、投影の処理（図４参照）のステップＳ３９で生成したα値が所定の値（たとえば“０”）である透明なモデルに対する奥行きを示す値である。生成したデプス値は主記憶装置３に出力され一時記憶される。
【０１０７】
次いで、ＣＰＵ１は、ステップＳ５３で生成したビュー行列とステップＳ６２で生成したＺ値とをそれぞれ主記憶装置３とテクスチャバッファ８から読み出す（ステップＳ６９）。
【０１０８】
次いで、ＣＰＵ１は、ステップＳ６８で生成したデプス値とステップＳ６９で読み出したＺ値とを比較する（ステップＳ７０）。デプス値は、演算により生成したモデルの奥行きを示す値で、Ｚ値は実際にディスプレイ表示されたモデルの奥行きを示す値である。これらを比較することで、画面から見てどちらが手前に位置しているかを判断する。例えば、Ｚ値の方が大きければ白、そうでなければ黒を透明なモデルに描画する。
【０１０９】
次いで、ＣＰＵ１は、主記憶装置３に記憶されたエンブレムのデータがテクスチャバッファ８にコピーされるよう主記憶装置３とテクスチャバッファ８を制御する（ステップＳ７１）。したがって、ユーザーが作成したエンブレムの表示のためのモデルデータは主記憶装置３とテクスチャバッファ８に記憶されることになる。
【０１１０】
次いで、ＣＰＵ１は、エンブレムテクスチャ座標の生成を行う（ステップＳ７２）。この生成も投影の処理（図４参照）と同様に、作成したエンブレムがオブジェクトの各ポリゴン面に貼付されるように、エンブレムの座標を変換する。このテクスチャ座標の生成は、ステップＳ５３で生成したビュー行列とオブジェクトの３次元座標とを用いて生成する。エンブレムはテクスチャ面３１では、２次元座標（いわゆるｕ―ｖ座標系）であるが、オブジェクトのポリゴンを形成する各頂点座標は３次元座標であるため、生成するテクスチャ座標は３次元座標として表現される。かかる、テクスチャ座標は、オブジェクトの座標に変換された座標であるので、ユーザーの作成したエンブレムがキャラクタ上に貼付された画像が表示できるようになる。
【０１１１】
次いで、ＣＰＵ１は、フェードアウト用行列の生成を行う（ステップＳ７３）。フェードアウト用の行列とは、エンブレムがキャラクタ上に貼付された場合に、例えばライトの位置によってはエンブレムが一定の直線や曲線をならずに、のこぎりの刃のように鋭角的な形状が繰り返される場合がある。そこで、かかる形状をオブジェクト上で目立たなくする処理をおこなうためにこの行列を生成する。このフェードアウト用の行列生成のためのデータは予め主記憶装置３に記憶されており、これをＣＰＵ１が読み出すことでこの行列を生成する。
【０１１２】
次いで、ＣＰＵ１は、図１１にステップＳ７４に移行して、フェードアウト用行列からテクスチャ座標を生成する。具体的には、上述のステップＳ７３で生成したフェードアウト用行列と各オブジェクトのポリゴン面の法線ベクトルとからフェードアウト用の座標を生成する。
【０１１３】
次いで、ＣＰＵ１は、バックフェースのテクスチャを主記憶装置３から読み出す（ステップＳ７５）。バックフェースとは、オブジェクトのうちディスプレイ９の画面上からは見えない部分のオブジェクトである。かかるバックフェースのテクスチャは、予め主記憶装置３に記憶されている。
【０１１４】
次いで、ＣＰＵ１は、色消しの処理を行う（ステップＳ７６）。上述のステップＳ７５で読み出したバックフェーステクスチャに対してα値を所定値にしたり、黒にしたりすることで色消しを行う。
【０１１５】
次いで、ＣＰＵ１は、透明モデルに対するカメラ位置を演算するため、主記憶装置３に記憶されたカメラの行列を読み出す（ステップＳ７７）。そして、ＣＰＵ１は、読み出したカメラの行列をもとにカメラ位置からの相対的なオブジェクトの位置を演算する（ステップＳ７８）。演算したオブジェクトの位置は一旦主記憶装置３に出力して一時記憶させる（ステップＳ７９）。
【０１１６】
次いで、ＣＰＵ１は、１フレーム分の処理が終了すると描画終了のリクエストをジオメトリックプロセッサ５に出力する（ステップＳ８０で“Ｙｅｓ”のとき）。まだ１フレーム分の処理が終了していないとき（ステップＳ８０で“Ｎｏ”のとき）は、処理は再びステップＳ６３に移行して上述の処理を繰り返す。
【０１１７】
描画終了のリクエストを出力した場合には、ＣＰＵ１は、ステップＳ８１に処理が移行し、オブジェクトの描画の処理を行う（ステップＳ８１）。具体的には、ＣＰＵ１は、ステップＳ５９、ステップＳ６６、及びステップＳ７９で主記憶装置３に記憶されたモデルデータを読出しジオメトリックプロセッサ５に出力し、実際にエンブレムが貼付されたオブジェクトを含む画面全体の描画をするための演算を行う。
【０１１８】
演算したデータは、ディスプレイプロセッサ７からディスプレイ９に出力され、実際にディスプレイ９に表示されることになる。これにより、実際にゲーム実行中、エンブレム２８が貼付されたキャラクタ１６を含む、１フレームの画像を表示することができる。そして、上述した処理を繰り返すことで連続した画面表示を行うことができる。
【０１１９】
ディスプレイに表示された例を図１２に示す。画面１５内にはユーザーが操作を行うキャラクタ（オブジェクト）１６が位置し、上述したエンブレム２８が、キャラクタ１６の背面に実際に貼り付けられたように位置している。
【０１２０】
次に、ユーザーによって作成したエンブレム画像がオブジェクト１６の各面の表面、裏面にすべて貼り付けられ、これを視点から最も近い投影面にのみエンブレムを貼り付けることに関して、図１３乃至図１９を参照して説明する。
【０１２１】
この処理は上述したゲーム実行中の表示処理（図９乃至図１１参照）でステップＳ７２、Ｓ７３の段階で、ＣＰＵ１の制御信号を受けたジオメトリックプロセッサ５によって実行される（図１０参照）。
【０１２２】
まず、図１３（Ａ）に示すようにエンブレム“Ａ”という文字が例えば図５のエンブレム作成画面で作成した場合で説明する。
【０１２３】
ここで、３次元空間座標系（グローバル座標系）の任意の位置座標を（ｘ、ｙ、ｚ、１）、エンブレムが存在するテクスチャ空間上の座標を（ｓ、ｔ、１）としたときに、この３次元座標系の位置（ｘ、ｙ、ｚ、１）をテクスチャ空間上の座標（ｓ、ｔ、１）へマッピング（テクスチャマッピング）するための行列式は以下のように表される。
【０１２４】
【数１】
2004246877.tif 000003
ここで、行列式中の“t”、“b”、“l”、“r”は、テクスチャ面３１の大きさを表すためのパラメータで、それぞれテクスチャ空間における原点からの上方向の長さ（ｔｏｐ）、下方向の長さ（ｂｏｔｔｏｍ）、右方向の長さ（ｌｅｆｔ）、左方向の長さ（ｒｉｇｈｔ）を示す。この関係を図１４に示す。ここで、図１５（Ａ）は、エンブレムとオブジェクト１６との関係を表した図面である。オブジェクト１６に対してテクスチャ面３１が図のように存在し、その面には予め作成したエンブレム“Ａ”が位置する。ここでテクスチャ面３１の大きさを表す４つのパラメータは、テクスチャ空間上における面３１の大きさを表すものである。
【０１２５】
また、“scaleS”、“scaleT”は、テクスチャ面３１で作成したエンブレムをオブジェクト１６の位置する３次元空間座標系に位置させたときのエンブレムの大きさを調整するためのパラメータである。それぞれ横方向、縦方向の大きさを調整するものである。これにより、テクスチャ面３１で作成したエンブレムの大きさを３次元空間座標系内で調整することができる。図１５（Ａ）で説明すると、このエンブレム“Ａ”をオブジェクト１６に貼り付けたときの３次元座標空間上のエンブレムの大きさを調整することができる。
【０１２６】
さらに、“transS”、“transT”は、テクスチャ面３１の原点と３次元空間座標系の原点との位置ずれを補正するためのパラメータである。それぞれ、横方向と縦方向を表す。テクスチャ面３１の原点は例えば図１４の（０、０）の位置であって、３次元空間座標系の原点位置とは必ずしも一致しない。図１５（Ｂ）は、図１５（Ａ）に対してオブジェクト１６の先端を正面としたときの断面図を示す。図１５（Ａ）においてテクスチャ面３１の中心位置をテクスチャ空間上の原点にとったとき、３次元空間座標系の原点がこの位置にないと、３次元空間座標系にこのエンブレムを貼り付けたときに、図１５（Ｂ）の面Ａ（オブジェクト１６の羽の部分）にエンブレムが位置することができなくなってしまう。この２つのパラメータを調整することで、両座標系の原点位置のずれを補正することができる。
【０１２７】
この行列式（１）において、例えば、t＝−１．０、b＝１．０、l＝−１．０、r＝１．０（テクスチャ空間上のテクスチャ面の大きさが原点から“１”の大きさ）、scaleS＝０.５、scaleT＝０．５（３次元空間座標系でのテクスチャ面の大きさはテクスチャ空間座標系の半分）、transS＝０.５、transT＝０．５（テクスチャ面の原点位置を縦、横０.５づつ、ずらした位置が３次元空間座標系での原点）としたとき、行例式（１）は、
【数２】
2004246877.tif 000004
と表される。この行列式（２）から３次元空間座標系の任意の位置（ｘ、ｙ、ｚ、１）に対するテクスチャ空間座標系の任意の位置（ｓ、ｔ、１、１）は、
【数３】
2004246877.tif 000005
となる。この２つの式（３）は、ｘ、ｙが等しい３次元空間座標系の点には同一のテクスチャ座標がマッピングされることを示す。すなわち、３次元空間座標系でｘ、ｙの値が等しい点において、この３次元空間座標系で奥行きを示すｚの値がどのような値をとっても、テクスチャ座標の同一の点が３次元座標系に位置することになる。このことを、図面を用いて説明すると、図１５（Ｂ）に示すようにオブジェクト１６は、各パーツに対して面Ａから面Ｈが存在する。オブジェクト１６の翼の部分には２つの面Ａ、面Ｂから構成される。このとき、奥行きのｚの値をどのようにとってもｘ、ｙの位置が等しいと同一のテクスチャ面がマッピングされることになるから、図１６（Ａ）に示すようにテクスチャ面３１に作成したエンブレム“Ａ”は、オブジェクト１６の面Ａのみならず、その奥行き（ｚ方向）に向けて、面Ｂ、面Ｃ、面Ｄ、面Ｅ、面Ｆ、面Ｇ、面Ｈすべての面に貼り付けられることになる（図１６（Ｂ）も参照）。
【０１２８】
本発明では、このようにすべての面に貼り付けられたエンブレムを、視点から最も近い面にのみ貼り付けるようにジオメトリックプロセッサ５（図１参照）において処理を行う。まず、３次元空間上の法線（ｘ、ｙ、ｚ、１）をテクスチャ空間（ｓ、ｔ、１、１）にマッピングするための以下のような行列式を考える。
【０１２９】
【数４】
2004246877.tif 000006
このとき、ｓ、ｔは、
【数５】
2004246877.tif 000007
を得る。すなわち、テクスチャ空間上の横方向の任意の点ｓは、どのようなｔの値をとってもｔには依存せず、また、３次元空間座標系でｚ成分が“１”（奥行き）のとき、s＝1.0、ｚ成分が“−１”のときs＝0.0となる。つまり、法線が視点方向のときｓの値は、“１．０”、視点と反対方向のときｓの値は“０．０”となる値をテクスチャブレンディングのα値（透明度）とすることで、視点と反対方向の面（図１６（Ｂ）において、面Ｂ、面Ｄ、面Ｆ、面Ｈ）に貼り付けられたエンブレムの透明度を“０”にするのである。
【０１３０】
図１７を用いて説明すると、この図１７はテクスチャ空間上の任意の点を示し、式（５）に示すようにｓの値はｔの値に依存せず、各テクスチャ空間上の任意の点がα値を取るようなエンブレムを作成したテクスチャ面とは異なるテクスチャを用意する。例えば、図１の主記憶装置２に予め格納されていてもよいし、記録媒体４に格納されていてもよい。このテクスチャは、ｓの値が小さければ小さいほどα値が０に近づくよう、つまり、ｓの値が小さいほど除々に透明になるように構成している。よって、ｓの値が“０”のとき透明度を“０”（見えなくする）にすることで、オブジェクト１６の背面(面Ｂ、面Ｄ、面Ｆ、面Ｈ)に貼り付けられたエンブレムを透明にするのである。
【０１３１】
次に、ジオメトリックプロセッサ５は、オブジェクト１６の面Ａ、面Ｃ、面Ｅ、面Ｇに貼り付けられたエンブレムのうち、視点から最も近い面Ａについてのみエンブレムを残すようにする。そのために、ジオメトリックプロセッサ５は各面に対するα値を比較することで、最も視点から近い面を判断する。従って、図１９（Ａ）、（Ｂ）に示すようにエンブレム“Ａ”がオブジェクト１６の視点から最も近い羽の部分に貼り付けられることになる。
【０１３２】
なお、このα値の比較であるが、オブジェクト１６を構成する画素ごとに比較することで最も近い面を判断している。すなわち、図１９（Ａ）に示すようにテクスチャ面３１に作成したエンブレム“Ｂ”がオブジェクト１６の羽の部分からはみ出して位置している場合で考える。この場合も、図２０（Ａ）、（Ｂ）に示すように各面（面Ａから面Ｈ）にエンブレム“Ｂ”が張り付いて、これを背面（面Ｂ、面Ｄ、面Ｆ、面Ｈ）に位置するエンブレムに透明度“０”のテクスチャをマッピングさせて見えないようにし、α値によって最も近い面にエンブレム“Ｂ”が貼り付いている。しかし、図２１（Ａ）、（Ｂ）に示すようにこのα値を各画素で比較すると、エンブレム“Ｂ”がはみ出して貼り付いているオブジェクト１６の胴体部分は、テクスチャ面３１の上部の部分から画素単位にα値を比較すると最も近い位置に位置することになる。よって、はみ出したエンブレムは、視点から最も近いオブジェクト１６の位置に貼り付けられることになる。
【図面の簡単な説明】
【０１３３】
【図１】図１は、本発明が適用されるゲーム機の内部構成を示す図である。
【図２】図２は、オブジェクトを描画するための処理を示すフローチャートである。
【図３】図３は、エンブレムを貼り付ける対象のオブジェクトを画面表示した場合の一例を示す。
【図４】図４は、投影の処理を示すフローチャートである。
【図５】図５は、エンブレム作成画面の一例を示す図である。
【図６】図６は、投影の概念を説明するための図である。
【図７】図７は、実際に投影を行う直前の画面の一例を示す図である。
【図８】図８は、実際に投影を行った後の画面の一例を示す図である
【図９】図９は、ゲーム内での表示全体の処理を示すフローチャートである。
【図１０】図１０は、ゲーム内での表示全体の処理を示すフローチャートである。
【図１１】図１１は、ゲーム内での表示全体の処理を示すフローチャートである。
【図１２】図１２は、ゲームが実行されている場合の画面表示の一例を示す図である。
【図１３】図１３（Ａ）、（Ｂ）ともに、オブジェクト１６に貼り付けるエンブレムの例を示す。
【図１４】図１４は、テクスチャ面３１の例を示す図である。
【図１５】図１５（Ａ）は、テクスチャ面３１とエンブレムとの関係を示す斜視図であり、図１５（Ｂ）は側面図である。
【図１６】図１６（Ａ）は、テクスチャ面３１とエンブレムとの関係を示す斜視図であり、図１６（Ｂ）は側面図である。
【図１７】図１７は、α値を有するテクスチャの例を示す図である。
【図１８】図１８（Ａ）は、テクスチャ面３１とエンブレムとの関係を示す斜視図であり、図１８（Ｂ）は側面図である。
【図１９】図１９（Ａ）は、テクスチャ面３１とエンブレムとの関係を示す斜視図であり、図１９（Ｂ）は側面図である。
【図２０】図２０（Ａ）は、テクスチャ面３１とエンブレムとの関係を示す斜視図であり、図２０（Ｂ）は側面図である。
【図２１】図２１（Ａ）は、テクスチャ面３１とエンブレムとの関係を示す斜視図であり、図２１（Ｂ）は側面図である。
【符号の説明】
【０１３４】
１    ＣＰＵ
２    操作部
３    主記憶装置
４    記録媒体
５    ジオメトリックプロセッサ
７    ディスプレイプロセッサ
８    テクスチャバッファ
９    ディスプレイ
１５  画面
１６  キャラクタ（オブジェクト）
２０  エンブレム作成画面
２１  エンブレム作成ボタン群
２３  拡大画面
２４  実際の画面
２５  色選択ボタン群
３０  ライトの位置
３１  エンブレムテクスチャ面
【図１】
2004246877.tif 000008
【図２】
2004246877.tif 000009
【図３】
2004246877.tif 000010
【図４】
2004246877.tif 000011
【図５】
2004246877.tif 000012
【図６】
2004246877.tif 000013
【図７】
2004246877.tif 000014
【図８】
2004246877.tif 000015
【図９】
2004246877.tif 000016
【図１０】
2004246877.tif 000017
【図１１】
2004246877.tif 000018
【図１２】
2004246877.tif 000019
【図１３】
2004246877.tif 000020
【図１４】
2004246877.tif 000021
【図１５】
2004246877.tif 000022
【図１６】
2004246877.tif 000023
【図１７】
2004246877.tif 000024
【図１８】
2004246877.tif 000025
【図１９】
2004246877.tif 000026
【図２０】
2004246877.tif 000027
【図２１】
2004246877.tif 000028