(57)【特許請求の範囲】
【請求項１】
第１のキャラクタのスケルトンモデルに含まれる体型変形用の操作点の変位に連動して前記第１のキャラクタのポリゴンモデルのポリゴン頂点を変位させることによって作成された前記第１のキャラクタとは異なる体型を有する第２のキャラクタのアニメーションをゲーム画面に表示する画像再生プログラムであって、
前記第１のキャラクタには、前記スケルトンモデルに含まれる姿勢変形用の関節と前記体型変形用の操作点の変位に連動して前記ポリゴン頂点が変位する位置を演算するための前記関節及び前記操作点を前記ポリゴン頂点に関連付けた関節情報を含む第１のキャラクタデータと、前記第１のキャラクタが所定の動作をするアニメーションを作成するためのモーションデータとが設定されており、
前記第２のキャラクタには前記体型変形用の操作点の変位内容を示す体型変形データが設定されており、
コンピュータを、
ゲーム開始後の所定のタイミングで、前記関節情報に含まれる前記操作点に関する情報と当該操作点の変位内容を示す前記体型変形データとを用いて前記操作点の変位に基づく前記ポリゴン頂点の変位位置を演算し、その演算結果を前記第１のキャラクタデータに含まれる当該ポリゴン頂点の前記関節情報内に設定された前記操作点に関する情報に置き換えることによって、前記第２のキャラクタに対する第２のキャラクタデータを設定するキャラクタデータ設定手段と、
前記第２のキャラクタデータが設定された後、ゲーム進行に応じた動作をする前記第１のキャラクタに設定された前記モーションデータと前記第２のキャラクタデータとを用いて各フレームの画像を再生することにより、前記第２のキャラクタが所定の動作をするアニメーションを前記ゲーム画面に表示する画像再生手段と、
して機能させることを特徴とする、画像再生プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム空間に登場するオブジェクト（物体）やキャラクタ（人や生物）が三次元コンピュータグラフィックス（Three-Dimensional Computer Graphics。以下、「３ＤＣＧ」という。）で表現されるゲームのプログラムであって、標準体型の基本モデルを変形して作成された非標準体型のオブジェクトやキャラクタをゲーム画面にアニメーション表示するための画像再生プログラム及びその画像再生プログラムを用いたゲームシステムに関する。
【背景技術】
【０００２】
ゲーム装置で人型のキャラクタを３ＤＣＧアニメーションによって表現する場合、そのキャラクタを描画するためのデータとして、例えば、特開２０１２−８６９３号公報に示されるように、キャラクタデータとモーションデータ（アニメーション表示用のデータ）とが作成される。
【０００３】
キャラクタデータは、基本姿勢（例えば、両足を垂直に降ろし、両手を水平に広げたＴ字の形をした姿勢）のキャラクタの表面形状をポリゴンモデル等で表現するモデルデータと、ポリゴンモデルの骨格の構造を表現するスケルトンモデルのモデルデータと、素体のポリゴンモデルに色を貼付するためのテクスチャ等の画像データとを含むデータである。スケルトンモデルは、ジョイント（関節）を支点とした骨の動きに当該骨を覆うポリゴンメッシュ（多数のポリゴン（多角形）の頂点を網目状に接続したもの）を構成する複数のポリゴン頂点を連動させることによってポリゴンモデルの姿勢を変化させるためにポリゴンモデル内に設けられるモデルである。
【０００４】
ポリゴンモデルのモデルデータは、ポリゴンモデルを構成する多数のポリゴン頂点に関するデータである。各ポリゴン頂点にはローカル座標系における位置（座標）のデータと、スケルトンモデルのジョイントの回転（骨の動き）で影響を受けるジョイントに関するデータとが含まれる。ローカル座標系は、ポリゴンモデルを定義するためにキャラクタ毎に設定される座標系である。ゲーム空間にはワールド座標系が設けられており、そのワールド座標系の任意の位置にキャラクタのローカル座標系を配置することにより、ローカル座標系で動作するキャラクタのアニメーションをゲーム空間の任意の位置に表示させることができる。
【０００５】
ジョイントに関するデータ（以下、「ジョイント情報」という。）は、スケルトンモデルのジョイントを変位させたときにその変位に連動させるジョイントを特定するデータ（例えば、ジョイントの番号）とそのジョイントの変位の影響の度合いを示すデータである。ポリゴン頂点によっては複数のジョイントの変位の影響を受けることがあり、それらのジョイントの変位に連動させたポリゴン頂点の変位位置は各ジョイントの変位に基づく変位位置を用いて決定される。変位の影響の度合いを示すデータは、各ジョイントの変位に基づく変位位置を加算してポリゴン頂点の変位位置を算出する場合の各変位位置の加算割合（％）を示し、ポリゴン頂点の各ジョイントの変位に基づく変位位置に乗算される重み付けの値（ウェイト値）である。
【０００６】
スケルトンモデルのモデルデータは、スケルトンモデルを構成する複数のジョイント（関節）に関するデータである。各ジョイントにはローカル座標系における位置を特定するデータと、連結されている上位のジョイント（親のジョイント）を特定するデータが含まれる。スケルトンモデルを構成する複数のジョイントは任意のジョイントを基点として階層構造で連結されている。この連結構造は、あるジョイントが回転すると、そのジョイントより下位の複数のジョイントは連結されている姿勢を保持してローカル座標系で変位する関係にある構造である。
【０００７】
従って、各ジョイントのローカル座標系における位置は、親のジョイントの位置に対して相対的に決定されるように定義されている。すなわち、各ジョイントの位置は、親のジョイントの位置を幾何学的変換（三次元アフィン変換）した位置として定義されている。親のジョイントを特定するデータは、親のジョイントの位置を参照するためのデータであり、ローカル座標系における位置を特定するデータは、幾何学的変換の内容を示すデータ（行列式のデータ）である。
【０００８】
ジョイント情報は、例えば、ポリゴンモデルの作成（ローカル座標系のポリゴン頂点の位置の設定）とスケルトンモデルの作成（ローカル座標系のジョイントの位置を設定）をした後のエンベロープ設定工程で設定される。
【０００９】
モーションデータは、ポリゴンモデルに所定の動きをさせるために、その動きに関係するスケルトンモデルのジョイントをフレーム単位で変化させたデータである。ジョイントを変化させる処理は、そのジョイントに接続されているボーンを回転させる処理に相当するので、モーションデータは、フレーム単位でスケルトンモデルの骨格構造を微小変化させるデータである。従って、ゲーム装置で、モーションデータに基づいてスケルトンモデルの骨格構造をフレーム毎に変化させ、その変化に連動してポリゴンモデルの各ポリゴン頂点を変位させてキャラクタを描画することにより、コマ送りで姿勢が変化するキャラクタの画像が生成される。そして、各コマのローカル座標系における画像をローカル座標系からワールド座標系に座標変換することによってゲーム画面にゲーム空間で所定の動作をするキャラクタのアニメーションが表示される。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１２−８６９３号公報
【非特許文献】
【００１１】
【非特許文献１】３ＤＣＧアニメーション（平成１５年３月２５日初版第１刷発行、発行所：株式会社技術評論社、「Ｐａｒｔ２」の章参照）
【非特許文献２】コンピュータグラフィックス（２００６年３月１日第２版第１刷発行  発行所：財団法人  画像情報教育振興協会（ＣＧ−ＡＲＴＳ協会）  「５．アニメーション」の章参照）
【発明の概要】
【発明が解決しようとする課題】
【００１２】
例えば、ロールプレイングゲーム（プレイヤがプレイヤキャラクタを操作してゲーム空間上を探索したり敵キャラクタとの対戦をしたりして所与の目的達成を目指すゲーム）では、大量のキャラクタ（プレイヤキャラクタや敵キャラクタやモブキャラクタ（群衆や生息する生物等を表現するための人や動物等のキャラクタ）など）やオブジェクト等を登場させるものがある。
【００１３】
このような大量のキャラクタやオブジェクトのキャラクタデータは、例えば、シェイプターゲット方式により基本モデルの姿勢や体型を変形して作成される。シェイプターゲット方式は、基本モデルに対して変形したい形状をシェイプターゲットとして登録しておき、シェイプターゲットに対する基本モデルの変形度合いを設定し、その変形度合いに基づいて基本モデルの各ポリゴン頂点の変位位置を演算し、その変位位置に各ポリゴン頂点を移動させて変形モデルを作成する方式である。
【００１４】
シェイプターゲット方式は、キャラクタやオブジェクトを変形する作業の容易性より、ゲームソフトに組み込まれている画像編集モード（プレイヤがプレイヤキャラクタとして選択したキャラクタの体型を所望の体型（肥満型や痩せ型などの体型)に変形することができるモード）の画像編集処理に採用されている場合もある。
【００１５】
また、人型のキャラクタでは、スケルトンモデルに骨格構造を表現するジョイント（ポリゴンモデルの姿勢を変形するためのジョイント。以下、「姿勢変形用ジョイント」という。）とは別にポリゴンモデルの体型を変形するためのジョイント（以下、「体型変形用ジョイント」という。）を設け、その体型変形用ジョイントを変位させて基本モデルの体型を変形させる技術も知られている。この技術は、例えば、右肩のジョイントを親のジョイントとして複数の体型変形用ジョイントを連結し、このジョイントを右上腕のボーン（右肩のジョイントと右肘のジョイントを連結するボーン）に対して外側や内側に移動させることにより右上腕部分を構成する複数のポリゴン頂点を変位させて右上腕部分を太くしたり、細くしたりする技術である。
【００１６】
体型変形用ジョイントは、姿勢変形用ジョイントと同様にポリゴン頂点のジョイント情報に影響を受けるジョイントとして記述され、体型変形用ジョイントが変位すると、その変位情報に基づいてポリゴン頂点を変位させる点では姿勢変形用ジョイントと同様の機能を果たす。従って、体型変形用ジョイントにより基本モデルの体型を変形させる技術では、スケルトンモデルに姿勢変形用ジョイントとは別に体型変形用ジョイントが設けられるので、体型変形用ジョイントを含まないスケルトンモデルよりもジョイント数が増加する。
【００１７】
基本モデルの体型を変形したキャラクタやオブジェクト（以下、これらを「非標準体型キャラクタ」という。）のアニメーションをゲーム装置で表示する場合、フレーム毎にローカル座標系における基本モデル（標準体型のポリゴンモデル）のポリゴン頂点の変位位置をモーションデータに基づいて演算する処理が行われる。この処理では各ポリゴン頂点に設定されるジョイント情報に姿勢変形用ジョイントと体型変形用ジョイントの情報が含まれるので、その演算の処理負担が体型変形用ジョイントを含まないスケルトンモデルよりも増大する。
【００１８】
例えば、あるポリゴン頂点Ｐに３個の姿勢変形用ジョイントＪa，Ｊb，Ｊcと１個の体型変形用ジョイントＱdのジョイント情報が設定されている場合、ポリゴン頂点Ｐの変位前のローカル座標系における位置を［Ｐ］（同次座標の列ベクトル）、姿勢変形用ジョイントＪa，Ｊb，Ｊc及び体型変形用ジョイントＱdの各変位に基づくポリゴン頂点Ｐの変位位置［Ｐa］，［Ｐb］，［Ｐc］，［Ｐd］を演算するためのマトリクスデータ（座標［Ｐ］と変位位置［Ｐa］，［Ｐb］，［Ｐc］，［Ｐd］の幾何学的変換の内容を示す行列式）をそれぞれ［ＭJa］，［ＭJb］，［ＭJc］，［ＭQd］、姿勢変形用ジョイントＪa，Ｊb，Ｊc及び体型変形用ジョイントＱdの変位の影響度を示すウェイト値（％）をそれぞれＷJa，ＷJb，ＷJc，ＷQdとすると、ポリゴン頂点Ｐの変位位置［Ｐ'］（同次座標の列ベクトル）は、
［Ｐ’］＝（ＷJa×［ＭJa］［Ｐ］＋ＷJb×［ＭJb］［Ｐ］
＋ＷJc×［ＭJc］［Ｐ］＋ＷQd×［ＭQd］［Ｐ］）／１００
＝［Ｐa］＋［Ｐb］＋［Ｐc］＋［Ｐd］  …（１）
但し、［Ｐa］＝ＷJa×［ＭJa］［Ｐ］／１００
［Ｐb］＝ＷJb×［ＭJb］［Ｐ］／１００
［Ｐc］＝ＷJc×［ＭJc］［Ｐ］／１００
［Ｐd］＝ＷQd×［ＭQd］［Ｐ］／１００
の演算を行うことによって算出される。
【００１９】
（１）式によれば、姿勢変形用ジョイントＪJa，ＪJb，ＪJcの変位に基づくポリゴン頂点Ｐの変位成分（［Ｐa］＋［Ｐb］＋［Ｐc］）に加えて体型変形用のジョイントＱdの変位に基づくポリゴン頂点Ｐの変位成分［Ｐd］の演算処理をしなければならないので、フレーム毎の各ポリゴン頂点Ｐの変位位置の演算処理の負担が通常のポリゴンモデルよりも増大する。
【００２０】
従って、従来の体型変形用ジョイントにより基準モデルの体型を変形させる方法では、大量のキャラクタやオブジェクトをゲーム画面にアニメーション表示する場合、ゲーム装置におけるそのアニメーション表示の処理負担が増大するので、大量のキャラクタやオブジェクトをゲーム画面に表示することが困難となる。この問題は、シェイプターゲット方式により基準モデルの体型を変形させる方法でも同様である。
【００２１】
本発明は、上記の事情のもとで考え出されたものであって、基本モデルの体型を変形して作成した非標準体型キャラクタのゲーム装置におけるアニメーション表示の処理負担を抑制し、基本モデルから作成した体型の異なる多数の非標準体型キャラクタをゲーム画面に表示させることのできる画像再生プログラム及びその画像再生プログラムを用いたゲームシステムを提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明の第１の側面で提供される係る画像再生プログラムは、第１のキャラクタのスケルトンモデルに含まれる体型変形用の操作点の変位に連動して前記第１のキャラクタのポリゴンモデルのポリゴン頂点を変位させることによって作成された前記第１のキャラクタとは異なる体型を有する第２のキャラクタのアニメーションをゲーム画面に表示する画像再生プログラムであって、前記第１のキャラクタには、前記スケルトンモデルに含まれる姿勢変形用の関節と前記体型変形用の操作点の変位に連動して前記ポリゴン頂点が変位する位置を演算するための前記関節及び前記操作点を前記ポリゴン頂点に関連付けた関節情報を含む第１のキャラクタデータと、前記第１のキャラクタが所定の動作をするアニメーションを作成するためのモーションデータとが設定されており、前記第２のキャラクタには前記体型変形用の操作点の変位内容を示す体型変形データが設定されており、コンピュータを、ゲーム開始後の所定のタイミングで、前記関節情報に含まれる前記操作点に関する情報と当該操作点の変位内容を示す前記体型変形データとを用いて前記操作点の変位に基づく前記ポリゴン頂点の変位位置を演算し、その演算結果を前記第１のキャラクタデータに含まれる当該ポリゴン頂点の前記関節情報内に設定された前記操作点に関する情報に置き換えることによって、前記第２のキャラクタに対する第２のキャラクタデータを設定するキャラクタデータ設定手段と、前記第２のキャラクタデータが設定された後、ゲーム進行に応じた動作をする前記第１のキャラクタに設定された前記モーションデータと前記第２のキャラクタデータとを用いて各フレームの画像を再生することにより、前記第２のキャラクタが所定の動作をするアニメーションを前記ゲーム画面に表示する画像再生手段と、して機能させることを特徴とする(請求項１)。
【００２３】
また、好ましい実施形態によれば、前記関節情報には、前記ポリゴン頂点が連動する前記関節又は前記操作点を特定する情報と当該関節又は操作点の変位の影響度を示すウェイト情報が含まれ、前記体型変位データは、前記操作点の変位前の位置を変位後の位置に幾何学的に変換する幾何学変換データであり、前記キャラクタデータ設定手段は、前記ポリゴン頂点の変位前の位置データに前記操作点の前記幾何学変換データと前記ウェイト情報とを乗じて変位後の位置データを演算し、その演算結果を前記関節情報内の前記操作点を特定する情報及び当該操作点の変位の影響度を示すウェイト情報と置き換える。
【００２４】
本発明の第２の側面で提供される係るゲームシステムは、本発明の第１の側面で提供される画像再生プログラムを記憶したプログラム記憶部と、前記プログラム記憶部に記憶されたが画像再生集プログラムを実行するコンピュータと、を備えたことを特徴とする。
【発明の効果】
【００２５】
本発明によれば、ゲーム開始後の所定のタイミングで、関節情報に含まれる操作点に関する情報と当該操作点の変位内容を示す体型変形データとを用いて操作点の変位に基づくポリゴン頂点の変位位置が演算される。そして、その演算結果を第１のキャラクタデータに含まれる当該ポリゴン頂点の関節情報内に設定された操作点に関する情報に置き換えることによって、第２のキャラクタに対する第２のキャラクタデータが設定される。
【００２６】
そして、第２のキャラクタデータが設定された後に、ゲーム進行に応じた動作をする第１のキャラクタに設定されたモーションデータと第２のキャラクタデータとを用いて各フレームの画像を再生することにより、ゲーム画面に第２のキャラクタが所定の動作をするアニメーションが表示される。
【００２７】
このアニメーション表示処理では、各フレームにおけるスケルトンモデルの姿勢の変化に基づくプレイヤキャラクタのポリゴン頂点の変位位置を演算する際、体型変形用の操作点の変位に基づくポリゴン頂点の変位位置の演算は行われないので、その分演算処理の負担を抑制することができる。
【００２８】
これにより、第１のキャラクタの体型を変形して第２のキャラクタを多数作成し、大量の第２のキャラクタをゲーム空間に登場させるゲーム場面を含むゲームであってもゲーム装置に過大な処理負担を掛けることなくそのゲーム場面をゲーム中に表示させることができる。
【００２９】
また、第２のキャラクタのキャラクタデータをゲーム開始時に設定するので、ゲームソフトにおける第２のキャラクタのデータとしては第１のキャラクタに対する体型変形データを設定しておけば良いので、ゲーム制作時における作業者の第２のキャラクタの作成作業の負担を軽減できる。また、ゲームソフトのデータ量の増大も抑制することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明に係る画像編集プログラムを組み込まれたゲームソフトが適用されるゲーム装置の構成図である。
【図２】標準キャラクタのキャラクタデータの構成を示す図である。
【図３】ポリゴンモデルとスケルトンモデルの一例を示す図である。
【図４】ワールド座標系とローカル座標系の関係を説明するための図である。
【図５】図３に示すスケルトンモデルのジョイントの階層構造を示す図である。
【図６】スケルトンモデルの右腕部分に設けられた体型変形用ジョイントの一例を示す図である。
【図７】図６に示すスケルトンモデルの右腕部分の姿勢変形用ジョイントと体型変形用ジョイントの階層構造を示す図である。
【図８】図６の例でスケルトンモデルの姿勢変形用ジョイントを変位させてポリゴンモデルの右腕部分の格好を変化させる方法を説明するための図である。
【図９】図６の例でスケルトンモデルの体型変形用ジョイントを変位させてポリゴンモデルの右腕部分の体型を変化させる方法を説明するための図である。
【図１０】標準キャラクタのモーションデータの構成例を示す図である。
【図１１】画像編集モードでモニタに表示される操作画面の一例を示す図である。
【図１２】画像編集モードの処理手順を示すフローチャートである。
【図１３】画像編集モードで体型を変形したプレイヤキャラクタをゲーム中にアニメーション表示する際の処理手順を示すフローチャートである。
【図１４】プレイヤキャラクタのキャラクタデータの構成を示す図である。
【図１５】ノンプレイヤキャラクタのキャラクタデータの構成を示す図である。
【発明を実施するための形態】
【００３１】
本発明に係る画像再生プログラムについて、ゲームに登場する人型のキャラクタを例に説明する。本発明に係る画像再生プログラムは、ゲームソフトの制作段階で標準体型のキャラクタ（以下、「標準キャラクタ」という。）の体型を変形して作成された標準体型とは異なる体型のキャラクタ（非標準体型キャラクタ）をゲーム装置でアニメーション表示する場合だけでなく、プレイヤがゲームのプレイ開始前に画像編集モードで予め用意された標準キャラクタを所望の体型に変形して作成したプレイヤキャラクタをゲーム装置でアニメーション表示する場合にも適用される。以下の説明では、後者の場合を例に説明する。
【００３２】
図１は、ゲーム装置の構成図である。
【００３３】
本体１１は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の光ディスクからなるゲームメディア１４に記録されたゲームデータを内部のメモリ（ＲＡＭ（Random Access Memory）１１１ｃ）に読み込み、ＣＰＵ１１１ａがゲームデータに含まれるゲームプログラムを実行してプレイヤがゲームを楽しむことができるようにする部材である。操作コントローラ１２は、プレイヤが操作コントローラ１２に設けられた操作ボタン等の操作部材を操作して本体１１に各種の操作指令を入力する部材である。モニタ１３は、ＣＰＵ１１１ａがゲームプログラムを実行することによって生成されるゲーム画像と効果音を出力する部材である。
【００３４】
本体１１には、制御部１１１、描画処理部１１２、音声処理部１１３、ディスクドライブユニット１１４、メモリカード接続ユニット１１５、Ｉ／Ｏインターフェース部１１６及び信号送受信部１１７が含まれる。制御部１１１は、ＣＰＵ（Central Processing Unit）１１１ａ、ＲＯＭ（Read Only Memory）１１１ｂ及びＲＡＭ１１１ｃを含むマイクロコンクピュータで構成され、ゲーム装置１によりプレイヤにゲームを提供するための動作を統括的に制御する機能を果たす。描画処理部１１２は制御部１１からの指令に基づきモニタ１３に表示させるゲーム画像を生成する専用のデバイスであり、音声処理部１１３は制御部１１からの指令に基づきモニタ１３のスピーカ１３ａ，１３ｂから出力させる効果音を生成する専用のデバイスである。
【００３５】
ディスクドライブユニット１１４はゲームメディア１４からゲームデータを読み込む機能を果たし、メモリカード接続ユニット１１５はゲーム中に生成される各種のデータのメモリカード１５への読み書きを行う機能を果たす。ゲームメディア１４に記録されているゲームデータは、本編のゲームの進行を制御するためのゲームプログラム、モニタ１３の表示画面に表示させるゲーム画像生成用のデータ、モニタ１３のスピーカ１３ａ，１３ｂから出力させる効果音生成用のデータ、ゲーム中に発生する各種の事象を制御するためのデータ等を含むデータである。
【００３６】
メモリカード１５に記憶されるデータは、前回のゲーム終了時の状態からゲームを再開できるようにするために必要なセーブデータ（例えば、プレイヤキャラクタのステータスデータやステージの進行状況を示すデータ等）である。後述するように、本実施形態に係るゲームには画像編集モードが設けられており、プレイヤが画像編集モードでプレイヤキャラクタとして選択した標準キャラクタの体型（肥満型、痩せ型、筋肉型などの体格の型）や部位の寸法（足、腕、胴等の長さ、肩幅など）を所望の体型や寸法にカスタマイズすることができる。
【００３７】
標準キャラクタの体型のカスタマイズは、標準体型の基本モデルのポリゴン頂点をプレイヤがスケルトンモデルに設けられている体型変形用ジョイントを操作して当該体型変形用ジョイントが関連付けられた複数のポリゴン頂点を一括して変位させることにより行われる。また、標準キャラクタの部位のカスタマイズは、標準体型の基本モデルのポリゴン頂点をプレイヤがスケルトンモデルに設けられている姿勢変形用ジョイントを操作して当該姿勢変形用ジョイントが関連付けられた複数のポリゴン頂点を一括して変位させることにより行われる。プレイヤが標準キャラクタの体型や部位のサイズをカスタマイズしてプレイヤキャラクタを新たに作成した場合は、画像編集モードの終了時にその編集内容のデータがメモリカード１５にセーブされる。
【００３８】
信号送受信部１１７は操作コントローラ１２との間で操作信号の送受を行う機能を果たす。Ｉ／Ｏインターフェース部１１６はモニタ１３、ディスクドライブユニット１１４、メモリカード接続ユニット１１５及び信号送受信部１１７と制御部１１との間のデータの送受のインターフェース機能を果たす。
【００３９】
ゲーム装置１では、本体１１にゲームメディア１４が装着されると、ディスクドライブユニット１１４によってゲームメディア１４に記録されたゲームデータが読み出され、制御部１１１内のＲＡＭ１１１ｃに格納される。そして、ＣＰＵ１１１ａがＲＡＭ１１１ｃに格納されたゲームプログラムを実行することによってプレイヤはゲーム内容を楽しむことができる。
【００４０】
ＣＰＵ１１１ａは、プレイヤによる操作コントローラ１２の操作信号が信号送受信部１１７を介して入力されると、ゲームプログラムに従ってその操作信号に対するゲーム進行処理を行う。ゲーム進行処理には、プレイヤキャラクタが所定の動作をするアニメーション表示の処理やその動作に基づくゲーム空間上での事象（オブジェクトの破壊、敵キャラクタの討伐、アイテムの発見等の各種の事象）の発生処理、プレイヤキャラクタのステータス情報の表示処理、他のモードへの移行処理等の種々の処理が含まれる。ゲーム進行処理の結果はモニタ１３に画像によって表示されるとともに、モニタ１３のスピーカ１３ａ，１３ｂから効果音によって出力される。従って、プレイヤはモニタ１３に表示されるゲーム画像と効果音でゲームの進行状況を確認しながら操作コントローラ１２を操作してゲームを楽しむことができる。
【００４１】
本実施形態に係るゲームプログラムにはプレイヤが予め用意されている複数の標準キャラクタの中から所望の標準キャラクタをプレイヤキャラクタとして選択し、その標準キャラクタの体型や部位のサイズを所望の体型や部位の大きさに変形させることができる画像編集プログラムが含まれている。
【００４２】
プレイヤが本編のゲームをプレイするときのゲーム制御は、プレイヤが画像編集モードで標準キャラクタの体型や部位のサイズを変形する画像編集処理の制御や、標準キャラクタの体型や部位のサイズを変形したプレイヤキャラクタ（非標準体型キャラクタ）を本編のゲーム実行中にゲーム画面にアニメーション表示する制御には直接関係しないので、以下では、画像編集処理と非標準体型キャラクタをゲーム中にアニメーション表示する制御について説明する。
【００４３】
まず、プレイヤが画像編集モードでプレイヤキャラクタの体型を変形する画像編集処理について説明する。
【００４４】
制御部１１内のＲＡＭ１１１ｃには画像編集プログラムとプレイヤがプレイヤキャラクタとして選択可能な全てのキャラクタのキャラクタデータがゲームメディア１４から読み込まれている。キャラクタデータは、キャラクタ毎に予めゲームソフトの制作段階で作成されたデータである。
【００４５】
図２は、標準キャラクタのキャラクタデータの構成例であり、特に本発明に関係する内容を例示したものである。
【００４６】
キャラクタデータ内のモデルデータは、基本姿勢のポリゴンモデル（キャラクタの表面形状をポリゴンメッシュで表現した三次元形状モデル）のモデルデータとそのポリゴンモデル内に設定されるスケルトンモデルのデータである。また、キャラクタデータ内の画像データは、素体のポリゴンモデルの各ポリゴンに色を貼付するためのテクスチャ等の画像データである。
【００４７】
基本姿勢は、例えば、図３に示すように、両足を垂直に降ろし、両手を水平に広げたＴ字の形をした姿勢である。基本姿勢を基準にスケルトンモデルの姿勢変形用ジョイントを変位させることによって手、足、胴、頭等の各部位を変位させれば、ゲーム画面に表示されるキャラクタの姿勢を基本姿勢から所望の姿勢に変化させることができる。フレーム単位で動きに関係のある姿勢変形用ジョイントの変位量のデータを予め設定しておき、そのデータに基づいて基本姿勢から変化させた姿勢のキャラクタの画像をフレーム単位で描画することにより、キャラクタが任意の動きをするアニメーション表示を行うことができる。従って、図２に示すキャラクタデータは、アニメーション表示の基本となるデータである。
【００４８】
図３に示すように、スケルトンモデルＳは、複数の姿勢変形用ジョイント（関節）Ｊj（添え字のｊは姿勢変形用ジョイントの番号。ｊ＝１，２，…ｑ）をジョイントチェーンＪＣによって連結した多関節の骨格モデルである。互いに連結された２つの姿勢変形用ジョイントＪh，Ｊk（ｈ≠ｋ）のうち、上位のジョイントＪhを「親のジョイント」、下位のジョイントＪkを「子のジョイント」とすると、親のジョイントＪhとジョイントチェーンＪＣの部分がボーンＢh（添え字のｈは親のジョイントの番号）に相当する。スケルトンモデルＳの姿勢は、姿勢変形用ジョイントＪhを支点としてボーンＢhを回転させることにより変化させることができる。スケルトンモデルＳは、ボーンＢhの回転に連動してポリゴンメッシュを構成する複数のポリゴン頂点Ｐi（ｉはポリゴン頂点の番号。ｉ＝１，２，…ｎ）を一括して変位させることによりポリゴンモデルＡの姿勢を変化させる機能を果たす。
【００４９】
以下の説明では、個々の姿勢変形用ジョイントを示す場合は添え字を付した符号「Ｊj」を用い、そうでない場合は添え字を付さない符号「Ｊ」を用いることとする。ポリゴン頂点、体型変形用ジョイント、ボーン等についても同様である。
【００５０】
スケルトンモデルＳには、姿勢変形用ジョイントＪとは別に上腕、前腕、胸、腹、腰、大腿、下腿の各部位にポリゴンモデルＡの体型を変形するための複数の体型変形用ジョイントＱr（ｒは体型変形用のジョイントの番号。ｒ＝１，２，…ｍ）が設けられている。ポリゴンモデルＡの体型を変えるとは、各部位の形を変形して肥満型、痩せ型、筋肉型等の体型に変えることである。なお、図３では、作図の便宜上、体型変形用ジョイントＱは２個しか記載していない。
【００５１】
スケルトンモデルＳのデータには、スケルトンモデルＳを構成する複数の姿勢変形用ジョイントＪjと複数の体型変形用ジョイントＱrについてローカル座標系ＬＣにおける位置を定義するデータ（マトリクスデータ）と連結関係を示すデータ（リンクデータ）が含まれる。ローカル座標系ＬＣは、キャラクタ毎に設定される三次元の直交座標系である。キャラクタを登場させるゲーム空間には、図４に示すように、ワールド座標系ＷＣが設けられている。ローカル座標系ＬＣを幾何学的変換によりワールド座標系ＷＣ上に定義することによって当該ローカル座標系ＬＣで定義されたキャラクタＣをワールド座標系ＷＣ上に定義することができる。すなわち、ローカル座標系ＬＣで動作するキャラクタＣをワールド座標系ＷＣで動作させることができる。
【００５２】
各ジョイントＪj，Ｑrのリンクデータ（Ｊh）（ｈはジョイントの番号。ｈ≠ｊ，ｈ≠ｒ）は、親のジョイントＪhを示すデータである。全てのリンクデータは、図５に示すように、複数のジョイントＪjがジョイントＪ1を基点とした階層構造で連結されていることを表している。リンクの基点となるジョイントＪ1には親のジョイントは存在しないが、ジョイントＪ1のローカル座標系ＬＣにおける位置は、ローカル座標系ＬＣの原点によって定義されるので、原点がジョイントＪ1の親のジョイントに相当する。
【００５３】
なお、図５では、姿勢変形用ジョイントＪ1，Ｊ2，…Ｊ17がそれぞれ人体の腰関節，胴関節，…左足首の部位に対応するので、姿勢変形用ジョイントＪ1，Ｊ2，…Ｊ17を部位の名称に符号を付した形で表示している。また、作図の便宜上、図５では体型変形用ジョイントＱを省略して姿勢変形用ジョイントＪのみを例示し、図７に右腕の部分に設定された体型変形用ジョイントＱの階層構造を例示している。
【００５４】
複数の姿勢変形用ジョイントＪjは階層構造で連結され、各姿勢変形用ジョイントＪkはボーンＢhの回転に伴って変位するから、各姿勢変形用ジョイントＪkの位置は親のジョイントＪhに対する相対的な位置として定義されている。すなわち、親のジョイントＪhを原点とし、ボーンＢhの方向をＺ軸とする座標系（以下、「個別座標系」という。）を考えると、子のジョイントＪkの位置は、その個別座標系におけるＺ軸上の位置として定義されている。同様にしてジョイントＪkを親のジョイントとする子のジョイントＪs（ジョイントＪhに対して孫のジョイントＪs）の位置は、ジョイントＪkの個別座標系におけるＺ軸上の位置として定義されている。
【００５５】
子のジョイントＪkに想定した個別座標系は、親のジョイントＪhに想定した個別座標系を平行移動や回転等を含む幾何学的変換によって決定されるから、その幾何学的変換（３次元アフィン変換）の演算式を［ＭJh］（４行×４列の行列ベクトル）、ジョイントＪhのローカル座標系ＬＣにおける位置を［ＰJh］（同次座標の列ベクトル）とすると、ジョイントＪkのローカル座標系ＬＣにおける位置［ＰJk］は［ＭJh］［ＰJh］の行列積によって決定される。同様にして、孫のジョイントＪsのローカル座標系ＬＣにおける位置［ＰJs］は［ＭJk］［ＰJk］＝［ＭJk］［ＭJh］［ＰJh］の行列積によって決定される。
【００５６】
従って、図２の姿勢変形用ジョイントＪ1〜Ｊqに設定されている位置を定義するマトリクスデータ［ＭJ1］〜［ＭJq］は、上述した幾何学的変換の演算式であり、各姿勢変形用ジョイントＪjのローカル座標系ＬＣにおける位置［ＰJj］は、リンクデータを（Ｊh）とすると、［ＭJj］［ＰJh］の行列積で決定される。なお、基点となるジョイントＪ1の位置は、ローカル座標系ＬＣの原点の列ベクトルを［Ｐ0］とすると、［ＭJ1］［Ｐ0］の行列積で決定される。
【００５７】
体型変形用ジョイントＱrも姿勢変形用ジョイントＪjと同様にいずれかの姿勢変形用ジョイントＪjを親のジョイントとしているから、体型変形用ジョイントＱrにも姿勢変形用ジョイントＪjと同様にローカル座標系ＬＣにおける位置を特定するためのマトリクスデータ［ＭQr］と親のジョイントを示すリンクデータが設定されている。
【００５８】
ポリゴンモデルのデータには、ポリゴンメッシュを構成する多数のポリゴン頂点Ｐi（ｉはポリゴン頂点の番号。ｉ＝１，２，…ｎ）のローカル座標系ＬＣにおける位置（座標）のデータ（ポジションデータ［ＰPi］）と、法線及び接線のデータと、ジョイント情報ＴPi（添え字のＰｉはポリゴン頂点の符号。以下、同じ。）が含まれる。法線と接線のデータは、各ポリゴン頂点Ｐiの法線方向と接線方向を示すデータである。法線データと接線データは、ポリゴン頂点Ｐi毎にライティング処理（色の変化や反射の具合を表現する処理）をするために用いられるデータである。法線データと接線データは、ポリゴン頂点Ｐの変位に伴って変化するので、ポリゴン頂点Ｐが姿勢変形用ジョイントＪ又は体型変形用ジョイントＱの変位に伴って変位する場合は、法線データと接線データも再計算される。
【００５９】
ジョイント情報ＴPiは、スケルトンモデルＳの姿勢や体型を変化した場合に影響を受ける姿勢変形用ジョイントＪj及び体型変形用ジョイントＱrの番号とそれらのジョイントＪj，Ｑrの影響度を示すウェイト値ＷJj，ＷQrである。
【００６０】
図６は、スケルトンモデルＳの右腕部分に設けられた体型変形用ジョイントＱの一例である。右上腕のほぼ中央の周りの上下方向と前後方向にそれぞれ体型変形用ジョイントＱ1，Ｑ2，Ｑ3，Ｑ4が設けられ、右前腕のほぼ中央の周りの上下方向と前後方向にそれぞれ体型変形用ジョイントＱ5，Ｑ6，Ｑ7，Ｑ8が設けられている。なお、図６は、説明の便宜上、右上腕と右前腕にそれぞれ体型変形用ジョイントＱを４個ずつ設けた例であるが、各部位に体型変形用ジョイントＱを５個以上設けてもよい。
【００６１】
体型変形用ジョイントＱrは、姿勢変形用ジョイントＪjと同様に階層構造でスケルトンモデルＳに設けられている。図６の例では、右上腕に設けられた体型変形用ジョイントＱ1〜Ｑ4は姿勢変形用ジョイントＪ5（右肩の関節）にリンクし（姿勢変形用ジョイントＪ5を親のジョイントとし）、右前腕に設けられた体型変形用ジョイントＱ5〜Ｑ8は姿勢変形用ジョイントＪ6（右肘の関節）にリンクした（姿勢変形用ジョイントＪ6を親のジョイントとした）構造になっている。従って、図６に示すスケルトンモデルＳの右腕の多関節部分のリンク構造は、図７のようになり、体型変形用ジョイントＱ1〜Ｑ4のリンクデータには姿勢変形用ジョイントＪ5が設定され、体型変形用ジョイントＱ5〜Ｑ8のリンクデータには姿勢変形用ジョイントＪ6が設定される。
【００６２】
姿勢変形用ジョイントＪと体型変形用ジョイントＱは、階層構造で親のジョイントに連結されている点では共通している。姿勢変形用ジョイントＪは多関節動作によってスケルトンモデルＳの姿勢を変化させるものであるから、その動きは基本的に親のジョイントＪを支点とした回転移動に制限されるが、体型変形用ジョイントＱは、ポリゴンモデルＡの表面形状を変形させるものであるから、その動きは親のジョイントＪを支点とした回転移動に制限されず、自由に動かすことができる。すなわち、図６の例では、体型変形用ジョイントＱ1〜Ｑ4をボーンＢ5に対して垂直方向に移動させることができ、この動きによって右上腕の部分を構成するポリゴン頂点Ｐを全体的に外側若しくは内側に移動させる（右上腕の部分のポリゴンメッシュを太くしたり、細くしたりする）ことができる。体型変形用ジョイントＱ5〜Ｑ8も同様で、ボーンＢ6に対して垂直方向に移動させることができ、この動きによって右前腕の部分のポリゴンメッシュを太くしたり、細くしたりすることができる。
【００６３】
本実施形態では、画像編集処理において、姿勢変形用ジョイントＪを、連結されているボーンＢの長さ方向に移動可能にし、姿勢変形用ジョイントＪをボーンＢの長さ方向に移動させてキャラクタの腕や足等の部位のサイズを長くしたり、短くしたりする操作点として機能するようにしている。例えば、図６の例では、姿勢変形用ジョイントＪ6をボーンＢ6に沿う方向に移動させることでボーンＢ5の長さを長くしたり、短くしたりすることができる。
【００６４】
上記のように、体型変形用ジョイントＱは、姿勢変形用ジョイントＪと同様に複数のポリゴン頂点Ｐを一括して移動させる制御点として機能するから、ポリゴン頂点Ｐiのジョイント情報Ｔpiには、ゲームソフトの制作時のエンベロープ設定工程で姿勢変形用ジョイントＪと体型変形用ジョイントＱの変位の影響を受けるジョイントＪ，Ｑの番号とその影響度を示すウェイト値Ｗ（％）を含む情報が設定されている。
【００６５】
ウェイト値Ｗは、上述したように、姿勢変形用ジョイントＪ及び体型変形用ジョイントＱの各変位に基づく変位位置を加算してポリゴン頂点Ｐの変位位置を算出する場合の各変位位置の加算割合（％）を示す値である。ポリゴン頂点Ｐに複数のジョイントＪ，Ｑが関連付けられると、各ジョイントＪ，Ｑのウェイト値ＷJ，ＷQは、合計値が１００％になるように設定されている。従って、関連付けられるジョイントが１個の姿勢変形用ジョイントＪaの場合は、その姿勢変形用ジョイントＪaのウェイト値ＷJaは１００％となるから、ジョイント情報ＴPは、（Ｊa：ＷJa＝１００）となる。
【００６６】
また、例えば、３個の姿勢変形用ジョイントＪa〜Ｊcが関連付けられ、「姿勢変形用ジョイントＪaのウェイト値Ｗa：５０％、姿勢変形用ジョイントＪbのウェイト値Ｗb：３０％、姿勢変形用ジョイントＪcのウェイト値Ｗc：２０％」に設定された場合、ジョイント情報ＴPは、（Ｊa：ＷJa＝５０、Ｊb：ＷJb＝３０、Ｊc：ＷJc＝２０）となる。また、３個の姿勢変形用ジョイントＪa〜Ｊcと１個の体型変形用ジョイントＱdが関連付けられ、「姿勢変形用ジョイントＪaのウェイト値Ｗa：５０％、姿勢変形用ジョイントＪbのウェイト値Ｗb：３０％、姿勢変形用ジョイントＪcのウェイト値Ｗc：１０％、体型変形用ジョイントＱdのウェイト値ＷQd：１０％」のように設定された場合、ジョイント情報ＴPは、（Ｊa：ＷJa＝５０、Ｊb：ＷJb＝３０、Ｊc：ＷJc＝１０、Ｑd：ＷQd＝１０）となる。
【００６７】
姿勢変形用ジョイントＪを変位させると、図８に示すように、ジョイント情報Ｔにより当該姿勢変形用ジョイントＪが関連付けられたポリゴン頂点Ｐが連動して変位することにより基本モデルの姿勢（体の格好）が変化する。
【００６８】
図８は、図６の例で、姿勢変形用ジョイントＪ6を支点として姿勢変形用ジョイントＪ7（ボーンＢ6）を反時計回りに回転させたときの右腕の形を示したものである。ボーンＢ6だけを反時計回りに回転させ、ボーンＢ7はボーンＢ6に対して回転させていないので、右前腕及び右手のボーンＢ6，Ｂ7が全体的に姿勢変形用ジョイントＪ6を支点として反時計回りに回転している。右前腕と右手の部分のポリゴンメッシュを構成する複数のポリゴン頂点Ｐiにはそれぞれジョイント情報ＴPiが設定されている。そのジョイント情報ＴPiには、ジョイント番号として姿勢変形用ジョイントＪ7の番号とウェイト値ＷJ7（添え字の「Ｊ７」は姿勢変形用ジョイントの符号を示す。以下、同じ。）が含まれている。
【００６９】
例えば、右前腕部分のポリゴン頂点Ｐaにローカル座標系ＬＣにおけるポジションデータ［ＰPa］が設定され、ポリゴン頂点Ｐaのジョイント情報ＴPaにジョイントＪ6がウェイト値ＷPaで設定されているとすると、ポリゴン頂点Ｐaの変位位置［ＰPa’］は、以下の演算により算出される。すなわち、ポリゴン頂点ＰaのジョイントＪ6に対する相対位置はボーンＢ6が回転しても変化しないから、図６の姿勢でローカル座標系ＬＣにおけるポリゴン頂点Ｐaのポジションデータ［ＰPa］を、ジョイントＪ6の個別座標系のポジションデータ［ＰPaJ6］に変換し、その後、その個別座標系を回転させてボーンＢ6を回転する。ポジションデータ［ＰPaJ6］はジョイントＪ6の個別座標系に固定されているから、その個別座標系をウェイト値ＷPaの割合で回転させることによって［ＰPa’］の位置に変位することになる。ジョイントＪ6の個別座標系を回転させるためのマトリクスデータを［ＭJ6］とすると、ポリゴン頂点Ｐaの変位位置［ＰPa’］は、ＷPa×［ＭJ6］［ＰPaJ6］の行列積で算出される。
【００７０】
従って、右前腕と右手の部分のポリゴンメッシュを構成する複数のポリゴン頂点Ｐiについて、上記の演算処理をすることにより各ポリゴン頂点ＰiはボーンＢ6と共に移動し、基本モデルの右腕は、図８に示すように、右前腕から先が右上腕に対して所定の角度だけ上方に屈曲した格好に変化する。なお、体型変形用ジョイントＱ5〜Ｑ8に設定されるマトリクスデータ［ＭQ5］〜［ＭQ8］は、ジョイントＪ6の個別座標系における位置を決定する演算式であるから、ジョイントＪ6の個別座標系の回転によって体型変形用ジョイントＱ5〜Ｑ8も回転し、ジョイントＪ6に対する体型変形用ジョイントＱ5〜Ｑ8の相対的な位置関係は変化しない。
【００７１】
一方、体型変形用ジョイントＱを変位させると、図９に示すように、ジョイント情報Ｔにより当該体型変形ジョイントＱを関連付けられたポリゴン頂点Ｐが連動して変位することにより基本モデルの体型が変化する。この場合のポリゴン頂点Ｐの変位位置も姿勢変形用ジョイントＪに連動させてポリゴン頂点Ｐを変位させる場合と同様の演算によって決定される。
【００７２】
図９は、体型変形用ジョイントＱ1〜Ｑ4と体型変形用ジョイントＱ5〜Ｑ8をそれぞれボーンＢ5，Ｂ6に対して外側（図９の矢印で示す方向）に変位させた場合の例で、この変位操作により右上腕と右前腕の部分のスキンメッシュがそれぞれ標準体型よりも太くなる。
【００７３】
モーションデータは、キャラクタに所定の動きをさせるために、その動きに関係するスケルトンモデルＳの姿勢変形用ジョイントＪkを、例えば、フレーム単位で変化させたデータである。
【００７４】
図１０は、標準キャラクタが所定の動きをするアニメーションをモニタ１３に表示させるためのモーションデータの構成例である。図１０は、図３に示したスケルトンモデルＳのモーションデータの構造を示す図である。
【００７５】
標準キャラクタに所定の動きをさせるためのモーションデータは、例えば、標準キャラクタのスケルトンモデルＳの全ての姿勢変形用ジョイントＪj（ｊ：ジョイント番号。ｊ＝１，２，…１７）について、スケルトンモデルＳの姿勢をフレーム単位で微小変化させたときの基準姿勢からの変位情報（親のジョイントＪhを支点とした回転内容を示す情報）をフレーム毎に設定したデータである。姿勢変形用ジョイントＪkを変位させる処理は、姿勢変形用ジョイントＪkが連結されているボーンＢhを回転させる処理に相当し、その処理は親のジョイントＪhに想定した個別座標系を回転させることに相当する。従って、姿勢変形用ジョイントＪh毎に設定されているローテーションデータＬh,f（ｈは姿勢変形用ジョイントＪの番号、ｆはフレームの番号）は、当該姿勢変形用ジョイントＪhに設定されている個別座標系を所定の角度で回転させる幾何学的変換を演算するための行列式で表わされる。
【００７６】
本実施形態では、画像編集モードでプレイヤが体型変形用ジョイントＱを操作して基本モデルの体型を変形し、所望の体型の体型変形モデルを作成した場合は、ゲーム開始後の所定のタイミングで体型変形用ジョイントＱの操作内容と基本モデルのキャラクタデータを用いて体型変形モデルのキャラクタデータを生成する処理（基本モデルのキャラクタデータを用いた再エンベロープ処理）を行い、そのキャラクタデータを基本モデルのモーションデータに適用することで、体型変形モデルに基本モデルの動作と同様の動作をさせるようにしている。
【００７７】
そして、再エンベロープ処理で体型変形用ジョイントＱの変位に基づくポリゴン頂点Ｐの変位位置を算出しておき、モーションデータで体型変形モデルのアニメーション表示の処理をするときにはその変位位置の算出値を用いるようにしている。
【００７８】
次に、基本モデルの体型を変形して非標準キャラクタの体型変形モデルを生成する画像編集処理について説明する。
【００７９】
図９の基本モデルの右腕部分の例で説明したように、体型変形用ジョイントＱ1〜Ｑ4，Ｑ5〜Ｑ8をそれぞれボーンＢ5，Ｂ6に対して外側又は内側に変位させると、体型変形用ジョイントＱ1〜Ｑ4，Ｑ5〜Ｑ8の変位の影響を受けて右上腕部分と右前腕部分のポリゴンメッシュの形状を変形させることができる。例えば、プレイヤが画像編集モードを選択すると、モニタ１３にスケルトンモデルが埋め込まれた基本モデルの画像が表示され、プレイヤが、モニタ１３に表示された体型変形用ジョイントＱ1〜Ｑ4，Ｑ5〜Ｑ8を外側に変位させる操作をすると、図９に示したように、右腕部分を太くすることができ、体型変形用ジョイントＱ1〜Ｑ4，Ｑ5〜Ｑ8を内側に変位させる操作をすると、右腕部分を細くすることができる。
【００８０】
なお、プレイヤに対する体型変形用ジョイントＱの操作インターフェースとしては、上記のように体型変形用ジョイントＱをモニタ１３に表示してプレイヤが所望の体型変形用ジョイントＱを直接操作するようにしてもよいが、モニタ１３に図１１に示す画像編集画面を表示し、プレイヤが画像編集画面内の操作ボタンＢ１〜Ｂ４を操作してポリゴンモデルＡの体型を変形させるようにするとよい。
【００８１】
図１１に示す画像編集画面は、画面左側に編集対象のキャラクタのモデルを表示するモデル表示領域ＡＲ１が設けられ、画面右側にプレイヤが画像編集をするためのＧＵＩ（グラフィカル・ユーザ・インターフェース）が表示される操作領域ＡＲ２が設けられている。モデル表示領域ＡＲ１にはポリゴンモデルＡだけが表示され、スケルトンモデルＳは非表示（従って、体型変形用ジョイントＱも非表示）となっている。一方、操作領域ＡＲ２には変形したい部位を選択する部位選択画面Ｇｓと、変形したい内容（例えば、「太くする」、「細くする」、「大きくする」、「小さくする」など）を入力する操作ボタンＢ１，Ｂ２，Ｂ３及び編集作業を終了する操作ボタンＢ４とが表示されている。
【００８２】
図１１に示す操作インターフェースでは、プレイヤが操作ボタンＢ１，Ｂ２をクリックする毎に予め設定された単位の大きさでモニタ１３に表示された基本モデルの部位を太くしたり、細くしたりすることができ、操作ボタンＢ３をクリックすることでその操作内容を確定させる構成であるので、体型変形用ジョイントＱを直接操作するよりもプレイヤの操作が容易になる利点がある。また、モデル表示領域ＡＲ１にはポリゴンモデルＡだけが表示され、スケルトンモデルＳは表示されないので、部位の体型変形操作に応じてポリゴンモデルＡの体型が変化する様子を見易くするという利点もある。
【００８３】
本実施形態に係る画像編集処理では、図１２に示す処理手順で体型変形モデルが作成される。なお、以下の説明では、プレイヤが図１１に示した画像編集画面で操作をする場合を例に説明する。
【００８４】
プレイヤがゲーム装置１でプレイヤキャラクタを選択した後、画像編集モードに移行すると、図１２に示すフローチャートが起動する。ＣＰＵ１１１ａは、ＲＡＭ１１１ｃからプレイヤが選択したプレイヤキャラクタのポリゴンモデルＡのデータを読み出し、モデル表示領域ＡＲ１にそのポリゴンモデルＡを貼り付けた画像編集画面（図１１参照）をモニタ１３に表示させる（Ｓ１）。
【００８５】
続いて、ＣＰＵ１１１ａは、モニタ１３から体型を変形するポリゴンモデルＡの部位を選択する選択信号と、操作ボタンＢ１（太くする）又は操作ボタンＢ２（細くする）の操作信号が入力されたか否かを判別し（Ｓ２）、入力されなければ（Ｓ２：ＮＯ）、ステップＳ５に移行する。プレイヤが操作コントローラ１２によって体型を変形するポリゴンモデルＡの部位を選択する選択信号を入力するとともに、操作ボタンＢ１又は操作ボタンＢ２の操作信号を入力すると（Ｓ２：ＹＥＳ）、ＣＰＵ１１１ａはその選択信号に基づいて操作すべき体型変形用ジョイントＱを決定し、操作信号に対応する方向に所定量だけ体型変形用ジョイントＱを移動させる（Ｓ３）。
【００８６】
例えば、選択信号の内容が右上腕を選択した内容で、操作信号が操作ボタンＢ１をクリックした操作である場合、ＣＰＵ１１１ａは、図９に示したように、右上腕部分に設けられた体型変形用ジョイントＱ1〜Ｑ4をボーンＢ5に対して外側に予め設定された所定量だけ変位した位置に移動させる。また、操作信号が操作ボタンＢ２をクリックした操作である場合、ＣＰＵ１１１ａは、体型変形用ジョイントＱ1〜Ｑ4をボーンＢ5に対して内側に所定量だけ変位した位置に移動させる。
【００８７】
そして、ＣＰＵ１１１ａは、体型変形用ジョイントＱ1〜Ｑ4について、ボーンＢ5に対して外側若しくは内側に所定量だけ変位させる場合のマトリクスデータ（幾何学的変換のデータ）［ＭQ1］〜［ＭQ4］を生成し、ポリゴンモデルＡの全てのポリゴン頂点データの中から体型変形用ジョイントＱ1〜Ｑ4の関連付けられたポリゴン頂点Ｐiを抽出し、そのポリゴン頂点Ｐiの座標［ＰPi］とマトリクスデータ［ＭQ1］〜［ＭQ4］の行列積を演算して当該ポリゴン頂点Ｐiの変位先の座標［ＰPi’］を算出する（Ｓ４）。
【００８８】
例えば、ポリゴン頂点Ｐiのジョイント情報ＴPiに体型変形用ジョイントＱ1だけが設定されている場合、ポリゴン頂点Ｐiの変位先の座標［ＰPi’］は［ＰPi’］＝［ＭQ1］［ＰPi］の演算により算出される。また、ポリゴン頂点Ｐiのジョイント情報ＴPiに複数の体型変形用ジョイントＱ1，Ｑ2，…が設定されている場合、例えば、２つの体型変形用ジョイントＱ1，Ｑ2がウェイト値ＷQ1，ＷQ2で設定されている場合、ポリゴン頂点Ｐiの変位先の座標［ＰPi’］は［ＰPi’］＝（ＷQ1／１００）×［ＭQ1］［ＰPi］＋（ＷQ2／１００）×［ＭQ2］［ＰPi］の演算により算出される。
【００８９】
そして、ポリゴン頂点Ｐiが変位先の座標に移動され、これにより画像編集画面のモデル表示領域ＡＲ１に表示されたポリゴンモデルＡの右上腕が標準の大きさよりも太くなったり、細くなったりする。
【００９０】
上記の例は、右上腕全体を太くしたり、細くしたりする例であるが、部位選択画面Ｇｓに右上腕の一部の筋肉（外側若しくは内側の筋肉等）を選択できるようにすれば、例えば、右上腕の内側の筋肉を盛り上げたり、外側の筋肉を太くしたりすることも可能である。
【００９１】
図９は、腕の部位に関する例であるが、足の太腿や胴回りや胸回りなどの部位についても同様の操作により体型変形用ジョイントＱをボーンＢに対して内側や外側に所定量ずつ移動させることによって、太くしたり、細くしたりすることができる。
【００９２】
プレイヤがモデル表示領域ＡＲ１に表示されたポリゴンモデルＡの右上腕の形の変形具合を見ながら操作ボタンＢ１又は操作ボタンＢ２を操作し（Ｓ２〜Ｓ５のループ）、所望の形に変形した時点で操作ボタンＢ３（決定ボタン）を操作すると（Ｓ５：ＹＥＳ）、ＣＰＵ１１１ａは、ポリゴンモデルＡの右上腕部分の体型変形を確定し、その時の体型変形用ジョイントＱrの変位内容のデータ（幾何学的変換［ＭQ1］のデータ）をＲＡＭ１１１ｃに保存する（Ｓ６）。
【００９３】
続いて、ＣＰＵ１１１ａは、操作コントローラ１２から操作ボタンＢ４（編集終了）の操作信号が入力されたか否かを判別し（Ｓ７）、入力されていなければ（Ｓ７：ＮＯ）、ステップＳ２に戻り、上記のステップＳ２〜Ｓ６の処理を繰り返す。そして、モニタ１３から操作ボタンＢ４の操作信号が入力されると（Ｓ７：ＹＥＳ）、ＣＰＵ１１１ａは、ＲＡＭ１１１ｃに保存した体型変形用ジョイントＱrの変位内容のデータ（以下、このデータを「体型変形データ」という。）をメモリカード１５にセーブし（Ｓ８）、画像編集処理を終了する。
【００９４】
上記の画像編集処理の説明では、ポリゴンモデルＡの体型を変形する場合について説明したが、同様の操作によってポリゴンモデルＡの部位のサイズを変更することができる。この場合は、操作領域ＡＲ２の下部に部位の長さを長くする操作ボタンや短くする操作ボタンが表示され、プレイヤがそれらの操作ボタンを操作すると、操作領域ＡＲ２の部位選択画面で選択された部位の所定の姿勢変形用ジョイントＪを当該操作ボタンの操作量に応じて所定の変位量単位でボーンＢに沿う方向に延ばす変位若しくは縮める変位をさせる。
【００９５】
例えば、図６の例で、姿勢変形用ジョイントＪ6をボーンＢ5に沿って所定量だけ延ばす変位をさせる場合、ＣＰＵ１１１ａは、当該姿勢変形用ジョイントＪ6について、マトリクスデータ（幾何学的変換のデータ）［ＭJ6］を生成し、ポリゴンモデルＡの全てのポリゴン頂点データの中から当該姿勢変形用ジョイントＪJ6が関連付けられたポリゴン頂点Ｐjを抽出し、そのポリゴン頂点Ｐiの座標［ＰPj］とマトリクスデータ［ＭJ6］の行列積を演算して当該ポリゴン頂点Ｐjの変位先の座標［ＰPj’］を算出する。そして、ポリゴン頂点Ｐjが変位先の座標［ＰPj’］に移動され、これにより像編集画面のモデル表示領域ＡＲ１にはポリゴンモデルＡの右上腕が標準の長さよりも長くなった画像が表示される。
【００９６】
そして、プレイヤが操作コントローラ１２によって操作ボタンＢ４の操作を行うと、ＣＰＵ１１１ａは、ＲＡＭ１１１ｃに保存した姿勢変形用ジョイントＪの変位内容のデータ（姿勢変形データ）をメモリカード１５にセーブして画像編集処理を終了する。
【００９７】
次に、画像編集モードで体型を変形したプレイヤキャラクタ（非標準体型キャラクタ）をゲーム中にアニメーション表示する制御について説明する。
【００９８】
図１３は、ゲームが開始されたときにゲーム画面にプレイヤキャラクタをアニメーション表示するための処理手順を示すフローチャートである。
【００９９】
プレイヤによる所定のゲーム開始の操作によってゲームが開始されると（Ｓ１０）、ＣＰＵ１１１ａは、ＲＡＭ１１１ｃ若しくはメモリカード１５に保存しているプレイヤキャラクタの体型変形データを読み出し、その体型変形データと標準キャラクタのキャラクタに含まれるポリゴン頂点Ｐi（ｉ＝１，２，…ｎ）のデータを用いて、体型変形用ジョイントＱ1〜ＱMの変位に基づくポリゴン頂点Ｐiの変位位置［ＰPi’］を算出する（Ｓ１１）。所定のゲーム開始の操作とは、プレイヤが操作コントローラ１２のスタートボタンを操作して新規にゲームをスタートさせる操作、ゲームオーバーでゲーム終了後にプレイヤがコンテニューモードのボタンを操作してゲームを再スタートさせる操作、一旦ゲームデータをゲームメモリ１５に保存して電源をオフにした後、再度電源をオンにし、ゲームメモリ１５に保存したゲームデータを読み出してゲームを再スタートさせる操作等である。
【０１００】
例えば、標準キャラクタのポリゴン頂点Ｐiのジョイント情報ＴPiに体型変形用ジョイントＱの情報として１個の体型変形用ジョイントＱrがウェイト値ＷQr（％）で設定されている場合、ポリゴン頂点Ｐiのローカル座標系ＬＣにおけるポジションデータ［ＰPi］を体型変形用ジョイントＱrの個別座標系に変換したポジションデータを［ＰPiQr］とすると、ＣＰＵ１１１ａは、
［ＰPi’］＝（ＷQr／１００）×［ＭQr］［ＰPiQr］…（２）
但し、［ＭQr］：体型変形データ
の演算を行うことによって変位位置［ＰPi’］を算出する。
【０１０１】
ポリゴン頂点Ｐiに複数の体型変形用ジョイントＱ、例えば、３個の体型変形用ジョイントＱr，Ｑs，Ｑtがウェイト値ＷQr，ＷQs，ＷQt（％）で設定されている場合は、ローカル座標系ＬＣにおけるポリゴン頂点Ｐiのポジションデータ［ＰPi］を体型変形用ジョイントＱr，Ｑs，Ｑtの各個別座標系に変換したポジションデータをそれぞれ［ＰPiQr］、［ＰPiQs］、［ＰPiQt］とすると、
［ＰPi’］＝（ＷQr／１００）×［ＭQr］［ＰPiQr］
＋（ＷQs／１００）×［ＭQs］［ＰPiQs］
＋（ＷQt／１００）×［ＭQt］［ＰPiQt］…（３）
但し、［ＭQr］，［ＭQs］，［ＭQt］：体型変形データ
の演算によって変位位置［ＰPi’］が算出される。
【０１０２】
なお、ポリゴン頂点Ｐiのジョイント情報ＴPiには、姿勢変形用ジョイントＪjの情報も含まれているので、体型変形用ジョイントＱr，Ｑs，Ｑtのウェイト値ＷQr，ＷQs，ＷQtは姿勢変形用ジョイントＪjのウェイト値ＷJjとの合計値１００％となるように設定されている。
【０１０３】
続いて、ＣＰＵ１１１ａは、算出したポリゴン頂点Ｐiの変位位置［ＰPi’］と標準キャラクタのキャラクタデータ（図２参照）を用いてプレイヤキャラクタ（非標準体型キャラクタ）のキャラクタデータを作成する（Ｓ１２）。ステップＳ１２は、標準キャラクタの体型を変形したプレイヤキャラクタについてはキャラクタデータがないので、標準キャラクタのキャラクタデータ内のジョイント情報ＴPiをステップＳ１１で算出したポリゴン頂点Ｐiの変位位置［ＰPi’］で修正することによってプレイヤキャラクタのキャラクタデータを作成している。
【０１０４】
なお、画像編集モードで基本モデルの部位の長さを変更してキャラクタの骨格が標準の骨格とは異なるサイズにされている場合（すなわち、姿勢変形データが作成されている場合）があるが、この場合は、姿勢変形データについてステップＳ１１，Ｓ１２の処理は行われない。標準の骨格とは異なるキャラクタをアニメーション表示する場合、動きの内容に応じてフレーム毎の当該動きに関係のある姿勢変形用ジョイントＪの変位位置が異なるので、その都度、姿勢変形用ジョイントＪの変位位置を計算する必要があるからである。
【０１０５】
ＣＰＵ１１１ａは、ＲＡＭ１１１ｃに標準キャラクタのキャラクタデータをコピーし、そのキャラクタデータ内の体型変形用ジョイントＱのデータを削除し、各ポリゴン頂点Ｐiに設定されているジョイント情報のうち、体型変形用ジョイントＱのデータ（体型変形用ジョイントの番号とウェイト値）を除去し、算出した変位位置［ＰPi’］に置き換えることによってプレイヤキャラクタのキャラクタデータを作成する。
【０１０６】
図１４は、プレイヤキャラクタのキャラクタデータの構成例である。同図に示すキャラクタデータは、図２に示す標準キャラクタのキャラクタデータに対してジョイント（関節）データに体型変形用ジョイントＱ1〜Ｑmが含まれていない点と、ポリゴン頂点Ｐ1，Ｐ2，…Ｐnのジョイント情報ＴP1’，ＴP2’，…ＴPn’内の体型変形用ジョイントＱに関する情報が体型変形データを用いて算出された変位位置に置換されている点が異なっている。
【０１０７】
なお、姿勢変形データが作成されている場合は、図１４に示すキャラクタデータの姿勢変形用ジョイントＪjのうち、当該姿勢変形データに含まれている姿勢変形ジョイントＪkのマトリクスデータ［ＭJk］は、姿勢変形用ジョイントＪkの変位内容のデータ（編集されたマトリクスデータ［ＭJK’］）で置き換えられる。これにより、図１４に示すキャラクタデータに基づいてキャラクタモデルを描画すると、モニタ１３には、図２に示すポリゴンモデルＡに対して、例えば、足や手を長くしたポリゴンモデルや肩幅を広くしたポリゴンモデルが表示されることになる。
【０１０８】
体型変形用ジョイントＱ1〜Ｑmを除去しているのは、プレイヤキャラクタを標準キャラクタのモーションデータを用いてアニメーション表示する場合、そのモーションデータに体型変形用ジョイントＱ1〜Ｑmのモーションデータが含まれておらず、アニメーション表示の処理に必要としないからである。標準キャラクタのキャラクタデータをコピーし、ポリゴン頂点Ｐiのジョイント情報ＴP1だけを変更してプレイヤキャラクタのキャラクタデータを作成するようにしてもよい。
【０１０９】
ポリゴン頂点Ｐiのジョイント情報ＴPi’内の体型変形用ジョイントＱに関する情報を体型変形データを用いて算出された変位位置に置換しているのは、フレーム毎に姿勢変形用ジョイントＪと体型変形用ジョイントＱの変位位置が演算されることになるが、本実施形態ではステップＳ１１で体型変形データを用いて算出された変位位置を利用することで各フレームの体型変形用ジョイントＱの変位位置の演算をしないようにするためである。
【０１１０】
プレイヤキャラクタのキャラクタデータは、ポリゴン頂点Ｐiに設定されているジョイント情報ＴPiの体型変形用ジョイントＱに関するデータが演算値（変位位置）［ＰPi’］に置き換えられているので、このキャラクタデータと標準キャラクタに設定されているモーションデータを用いてアニメーション表示の描画処理をした場合には、（２）式又は（３）式の演算処理に代えて演算値［ＰPi’］が用いられることになる。
【０１１１】
続いて、ＣＰＵ１１１ａは、描画処理部１１２にゲームプログラムの進行に応じたプレイヤキャラクタのアニメーション表示の処理を行わせる（Ｓ１３）。描画処理部１１２は、モニタ１３の表示画面にプレイヤキャラクタに所定の動作を行わせるアニメーションを表示させる場合、標準キャラクタに設定されたモーションデータ中のその動作に対応するモーションＮｏ．のモーションデータ（姿勢変形用ジョイントＪjのローテーションデータＬj,k）（ｋはフレーム番号。ｋ＝１，２，…Ｍ）をフレーム周期（１／３０秒）でフレーム番号順に読み出し、スケルトンモデルＳの姿勢変形用ジョイントＪj（ｊ＝１，２，…ｑ）のローカル座標系ＬＣにおける位置［Ｐj,k］を算出する。
【０１１２】
また、描画処理部１１２は、各姿勢変形用ジョイントＪjのローテンションデータＬj,kを用いて各フレームｋの各ジョイントＪのマトリクスデータ［Ｍj,k］を算出する。そして、そのマトリクスデータ［Ｍj,k］とプレイヤキャラクタのポリゴン頂点［Ｐi］とを用いて、全てのポリゴン頂点ＰPiに対して、各フレームｋにおけるポリゴン頂点の変位位置［Ｐi,k’］を算出する。例えば、プレイヤキャラクタのポリゴン頂点Ｐiのジョイント情報に、体型変形用ジョイントＱrの変位に基づくポリゴン頂点Ｐiの変位値の演算値［ＰPi’］と３個の姿勢変形用ジョイントＪa，Ｊb,Ｊc及びウェイト値Ｗa，Ｗb，Ｗc（％）とが設定されている場合、描画処理部１１２は、ポリゴン頂点Ｐiの姿勢変形用ジョイントＪa，Ｊb,Ｊcの各個別座標系におけるポジションデータをそれぞれ［ＰPiJa］、［ＰPiJb］、［ＰPiJc］とすると、
［ＰPi,k’］＝［ＰPi’］＋（Ｗa／１００）×［Ｍa,k］［ＰPiJa］
＋（Ｗb／１００）×［Ｍb,k］［ＰPiJb］
＋（Ｗc／１００）×［Ｍc,k］［ＰPiJc］…（４）
但し、［ＰPi’］＝（ＷQr／１００）×［ＭQr］［ＰPiQr］
の演算を行うことによってプレイヤキャラクタのポリゴン頂点Ｐiの位置［ＰPi,k’］を算出する。
【０１１３】
そして、描画処理部１１２は、算出した座標［ＰPi,k’］に全てのポリゴン頂点Ｐiを変位させ、各ポリゴンに所定のテクスチャを貼り付ける処理を行う。プレイヤキャラクタの全てのポリゴン頂点Ｐiを座標［ＰPi,k’］に変位させたポリゴンモデルは、スケルトンモデルの骨格構造の変化に応じてポリゴンメッシュを変化させたものであるから、フレーム毎に生成されるプレイヤキャラクタの画像がモニタ１３に順次表示されることによりモニタ１３には標準キャラクタの体型を変形したプレイヤキャラクタが所定の動きをするアニメーションが表示される。なお、所定の動きのアニメーション表示には歩くなどの動作のアニメーション表示だけでなく、静止している状態のアニメーション表示も含まれる。
【０１１４】
ステップＳ１３では、プレイヤによる操作コントローラ１２からの操作信号やゲーム空間で生じた事象結果（例えば、敵キャラクタの攻撃を受けたり、建物等のオブジェクトに衝突したりする等）に基づいて、フレーム毎にその動作に対応するモーション番号のモーションデータの再生処理（アニメーション表示の処理）が行われるが、各再生処理ではステップＳ１２でプレイヤキャラクタに対して作成されたキャラクタデータが用いられ、ステップＳ１１，Ｓ１２の処理が繰り返されることはない。
【０１１５】
上記のように、本実施形態に係るゲーム装置１によれば、画像編集モードで標準キャラクタの体型を変形してプレイヤキャラクタを作成した場合、そのプレイヤキャラクタの体型変形データをメモリカード１５に保存し、その後にゲームが開始されると、最初にプレイヤキャラクタのアニメーション表示を行う前の所定のタイミングで体型変形データと標準キャラクタのキャラクタデータを用いてプレイヤキャラクタのキャラクタデータを作成する。すなわち、体型変形データを用いて標準キャラクタのキャラクタデータの再エンベロープ処理をすることによりプレイヤキャラクタのキャラクタデータを作成する。
【０１１６】
そして、その後はそのプレイヤキャラクタのキャラクタデータと標準キャラクタに設定されたモーションデータとを用いてプレイヤキャラクタが所定の動作をするアニメーションを表示するので、ゲーム装置１でのプレイヤキャラクタのアニメーション表示の処理負担を抑制することができる。
【０１１７】
すなわち、上述した（４）式の例の場合、従来は、プレイヤキャラクタの動作が変化する毎にその動作に対するアニメーション表示で、描画処理部１１２は、
［ＰPi,k’］＝（ＷQr／１００）×［ＭQr］［ＰPiQr］
＋（Ｗa／１００）×［Ｍa,k］［ＰJiJa］
＋（Ｗb／１００）×［Ｍb,k］［ＰPiJb］
＋（Ｗc／１００）×［Ｍc,k］［ＰPiJc］…（５）
の演算を行って各コマのプレイヤキャラクタのポリゴン頂点Ｐiの座標[ＰPi,k’]を算出しなければならない。
【０１１８】
（５）式は、フレーム毎にキャラクタの姿勢の変化に影響しない部分のポリゴン頂点Ｐiの変位位置［ＰPi’］＝（ＷQr／１００）×［ＭQr］［ＰPiQr］を演算しているので、姿勢の変化に影響しない部分のポリゴン頂点Ｐiの変位位置［ＰPi’］をフレーム毎に演算しない本実施形態に比べて演算項目が多くなる。本実施形態では、キャラクタの姿勢の変化に影響しない部分のポリゴン頂点Ｐiの変位位置［ＰPi’］の演算を１回だけ行い、アニメーションの表示処理ではその演算結果を利用するので、アニメーションの表示処理におけるポリゴン頂点Ｐiの座標［ＰPi’］の計算の回数が減少し、ポリゴンモデル全体の描画処理の処理負担を抑制することができる。
【０１１９】
本実施形態では、非標準体型キャラクタの制作例としてプレイヤが画像編集モードで標準キャラクタの体型を所望の体型に変形してプレイヤキャラクタを作成する場合について説明したが、ゲームソフトの制作段階で標準体型のモデルの体型を変形して多数の体型の異なる敵キャラクタやモブキャラクタが制作されている場合でも同様のアニメーション表示の処理をすることにより、ゲーム装置１での処理負担を大幅に抑制することができる。
【０１２０】
プレイヤキャラクタの場合は、プレイヤが画像編集モードで標準キャラクタの体型を変形してプレイヤキャラクタを作成するので、プレイヤキャラクタの体型変形データや姿勢変形データはゲーム装置１で作成されるが、標準キャラクタの体型や姿勢を変形した敵キャラクタやモブキャラクタ等のキャラクタ（ゲーム装置１でコンピュータによって制御されるキャラクタ。以下、「ノンプレイヤキャラクタ」という。）の体型変形データや姿勢変形データ等のデータは、ゲームソフトの制作時に作成される。従って、非標準体型のノンプレイヤキャラクタについては、図１５に示すキャラクタデータがゲームメディア１４に記録されている。
【０１２１】
ノンプレイヤキャラクタＮＰＣx（ｘはノンプレイヤキャラクタの番号）のキャラクタデータには標準キャラクタのモデルデータに相当するデータは記述されておらず、それに代えて体型変形データと姿勢変形データが記述されている点が異なる。なお、図１５のＵＶ座標データは、ポリゴンモデルの各ポリゴンに定型のテクスチャの一部分を貼り付けるために用いられるデータである。
【０１２２】
ゲームメディア１４からゲーム装置１のＲＡＭ１１１ｃに読み込まれたゲームデータには、ノンプレイヤキャラクタＮＰＣxのキャラクタデータが含まれている。ノンプレイヤキャラクタＮＰＣxをゲーム中にアニメーション表示する場合も、プレイヤキャラクタの場合と同様にゲーム開始後から最初にノンプレイヤキャラクタＮＰＣxのアニメーション表示を行う前の所定のタイミングで当該ノンプレイヤキャラクタＮＰＣxの体型変形データ及び姿勢変形データと標準キャラクタのキャラクタデータを用いてノンプレイヤキャラクタＮＰＣxのキャラクタデータが作成される。そして、その後はノンプレイヤキャラクタＮＰＣxをゲーム画面に登場させる場面になると、そのノンプレイヤキャラクタＮＰＣxのキャラクタデータと標準キャラクタに設定されたモーションデータとを用いてノンプレイヤキャラクタＮＰＣxに所定の動作をさせるアニメーション表示の処理が行われる。
【０１２３】
非標準体型のノンプレイヤキャラクタＮＰＣxは、プレイヤがカスタマイズしたプレイヤキャラクタに対して体型変形データが作成される時期が異なるだけで、ゲーム装置１でゲーム中にアニメーション表示が行われる場合の処理は基本的に同一である。従って、ノンプレイヤキャラクタＮＰＣxについてもゲーム装置１での処理負担を大幅に抑制することができ、大量のノンプレイヤキャラクタＮＰＣxを同時にアニメーション表示するゲーム場面であってもゲーム装置１に過度な処理負担を掛けることなくモニタ１３に大量のノンプレイヤキャラクタＮＰＣxを表示させることができる。
【０１２４】
また、非標準体型のノンプレイヤキャラクタＮＰＣxについては、図１５に示すキャラクタデータを用意するだけであるので、上記実施形態によれば、標準キャラクタのキャラクタデータよりもデータ量が少なくなり、ゲームソフト全体のデータ量を抑制することができる。この結果、ゲームメディア１４からゲーム装置１のＲＡＭ１１１ｃにゲームデータをロードするときのロード時間を短縮することができる。
【０１２５】
また、ゲーム装置１側で非標準体型のノンプレイヤキャラクタＮＰＣxの姿勢変形データを変更してキャラクタデータを作成させるようにすれば、そのノンプレイヤキャラクタＮＰＣxの姿勢やサイズをランダムに変更した大量のノンプレイヤキャラクタＮＰＣxをゲーム画面に登場させる場合であっても、処理負担の増大を大幅に抑制することができる。これにより、体型等が種々異なる大量のモブキャラクタが登場するゲーム画像を、変化に富んだ趣向性の高いゲーム画像にすることができる。また、このような処理負担の増大を抑制しつつも、ゲーム制作時における作業者のキャラクタ作成の作業負担を軽減することができる。
【０１２６】
上記実施形態では、体型変形用の操作点としてジョイント構造の操作点について説明したが、体型変形用の操作点はジョイント構造でなくてもよい。例えば、図６の例の場合、ボーンＢ5やボーンＢ6の中央に拡大／縮小の操作点を設け、その操作点に設定する拡大率や縮小率を変化させることによってボーンＢ5やボーンＢ6の回りのスキンメッシュの形状を太くしたり、細くしたりするような画像編集ツールを用いてもよい。部位のサイズを変形する操作方法も同様で、ボーンＢの中央に伸長／短縮の操作点を設け、その操作点に設定する伸長率や短縮率を変化させることによってボーンＢの回りのスキンメッシュの形状を当該ボーンＢの長さに応じて長くしたり、短くしたりするような画像編集ツールを用いてもよい。
【０１２７】
上記実施形態では、体型変形データを用いて非標準体型のプレイヤキャラクタやノンプレイヤキャラクタのキャラクタデータを作成するタイミングをゲームの開始時としていたが、そのキャラクタデータは、プレイヤキャラクタやノンプレイヤキャラクタが最初にアニメーション表示される前に用意されていればよいので、ゲームを開始してから最初にアニメーション表示をするまでの間の任意のタイミングでキャラクタデータを作成すればよい。例えば、ゲームを開始してから所定の時間が経過した時や特定の画面の表示処理が行われた時などをキャラクタデータの作成タイミングとすることができる。
【０１２８】
また、上記実施形態では、人型キャラクタの体型を変形する場合について説明したが、本発明は、多関節構造で形を変形させる任意の形状のキャラクタ（動物や創作したモンスターなどのキャラクタ）やオブジェクト（ロボットや構造物等のオブジェクト）にも適用することができる。
【符号の説明】
【０１２９】
１  ゲーム装置
１１  本体
１１１  制御部
１１１ａ  ＣＰＵ
１１１ｂ  ＲＯＭ
１１１ｃ  ＲＡＭ
１１２  描画処理部
１１３  音声処理部
１１４  ディスクドライブユニット
１１５  メモリカード接続ユニット
１１６  Ｉ／Ｏインターフェース部
１１７  信号送受部
１２  操作コントローラ
１３  モニタ
１３ａ，１３ｂ  スピーカ
１４  ゲームメディア
１５  メモリカード
Ａ  ポリゴンモデル
Ｓ  スケルトンモデル
Ｐ  ポリゴン頂点
Ｂ  ボーン
Ｊ  姿勢変形用ジョイント
Ｑ  体型変形用ジョイント
ＮＰＣ  ノンプレイヤキャラクタ
【図１】
0005843679.tif 000002
【図２】
0005843679.tif 000003
【図３】
0005843679.tif 000004
【図４】
0005843679.tif 000005
【図５】
0005843679.tif 000006
【図６】
0005843679.tif 000007
【図７】
0005843679.tif 000008
【図８】
0005843679.tif 000009
【図９】
0005843679.tif 000010
【図１０】
0005843679.tif 000011
【図１１】
0005843679.tif 000012
【図１２】
0005843679.tif 000013
【図１３】
0005843679.tif 000014
【図１４】
0005843679.tif 000015
【図１５】
0005843679.tif 000016