(57)【特許請求の範囲】
【請求項１】
所定の動作を行っているキャラクタの画像を表示装置に表示する画像処理装置のコンピュータで実行されるプログラムであって、
前記コンピュータを、
複数の関節による連結構造を有する第１キャラクタである基準キャラクタに関し、前記複数の関節間の距離を特定するための基準キャラクタデータと、前記所定の動作を行わせるための前記複数の関節間の相対的な位置関係を特定する基準モーションデータと、前記所定の動作を行わせているときの前記基準キャラクタに関する部位以外の所定の位置を特定する所定位置データとを、記憶手段から読み出す基準キャラクタ情報読出手段と、
少なくとも一部の関節による連結構造が前記基準キャラクタと等しい第２キャラクタに関し、前記複数の関節間の距離を特定するための第２キャラクタデータを、前記記憶手段から読み出す第２キャラクタ情報読出手段と、
前記第２キャラクタ情報読出手段によって読み出された前記第２キャラクタデータに加え、前記基準キャラクタ情報読出手段によって読み出された前記基準キャラクタデータ、前記基準モーションデータ、および所定位置データに基づいて、前記第２キャラクタに前記所定の動作を行わせるキャラクタ制御手段と、
して機能させ、
前記キャラクタ制御手段は、
前記基準キャラクタデータおよび前記第２キャラクタデータに基づいて、前記基準キャラクタの所定の２つの部位間の距離の長さと前記第２キャラクタの前記所定の２つの部位間の距離の長さとの比率を算出し、
前記第２キャラクタに関する部位以外の所定の位置を、前記所定位置データと前記比率とに基づいて算出する、
ことを特徴とするプログラム。
【請求項２】
前記キャラクタ制御手段は、前記第２キャラクタの前記連結構造の基準となる部位から前記所定の位置までの距離を、前記基準キャラクタの前記連結構造の基準となる部位から前記所定位置データにおける前記基準となるキャラクタに関する部位以外の所定の位置までの距離に前記比率を乗算したものとする、
請求項１に記載のプログラム。
【請求項３】
前記所定位置データにおける所定の位置の座標が前記基準となる部位からの相対位置座標として表されており、
前記キャラクタ制御手段は、前記第２キャラクタに関する部位以外の所定の位置の座標を、前記所定位置データにおける前記所定の位置の座標の各要素にそれぞれ前記比率を乗算したものを各要素とする、
請求項２に記載のプログラム。
【請求項４】
前記基準となる部位は体幹部のいずれかの部位である、請求項２または３に記載のプログラム。
【請求項５】
前記基準となる部位は腰関節である、請求項２ないし４のいずれかに記載のプログラム。
【請求項６】
前記所定の位置は、所定の部位を位置させるための目標点の位置である、
請求項１ないし５のいずれかに記載のプログラム。
【請求項７】
前記目標点の位置は前記第２キャラクタが使用しているアイテムの位置である、
請求項６に記載のプログラム。
【請求項８】
前記アイテムは前記連結構造の基準となる部位に連結されている、請求項７に記載のプログラム。
【請求項９】
前記キャラクタ制御手段は、前記第２キャラクタの少なくとも一方の手の位置を、前記所定の位置に応じた位置に変化させる、
請求項１ないし８のいずれかに記載のプログラム。
【請求項１０】
前記所定の２つの部位のうちの一方は、前記連結構造の基準となる部位である、請求項１ないし９のいずれかに記載のプログラム。
【請求項１１】
前記所定の２つの部位のうち少なくとも一方は、いずれか一方の手である、請求項１ないし１０のいずれかに記載のプログラム。
【請求項１２】
前記所定の２つの部位間の距離の長さは、第１キャラクタ及び第２キャラクタが所定の姿勢をとったときのものである、請求項１ないし１１のいずれかに記載のプログラム。
【請求項１３】
請求項１ないし１２のいずれかに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１４】
請求項１ないし１２のいずれかに記載のプログラムを実行する画像処理装置のコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、当該プログラムを記録した記録媒体、および、当該プログラムを実行するコンピュータに関し、特に、キャラクタの表示方法に関する。
【背景技術】
【０００２】
従来、プレイヤが所定のキャラクタを操作し、三次元仮想ゲーム空間上で敵であるキャラクタと戦うアクションゲームが開発されている。以下では、プレイヤが操作するキャラクタを「プレイヤキャラクタ」とし、敵であるキャラクタを「敵キャラクタ」とする。
【０００３】
このようなアクションゲームでは、プレイヤキャラクタが敵キャラクタを攻撃し、敵キャラクタがプレイヤキャラクタを攻撃する。また、プレイヤキャラクタや敵キャラクタは、走ったりジャンプするなどの動作を行う。キャラクタ毎に各動作のためのデータ（以下では、「モーションデータ」とする。詳細は後述する。）をあらかじめ用意しておくと膨大なデータ量となるため、各キャラクタに共通するモーションデータと、各キャラクタ固有の画像データやモデルデータなど（以下では、「キャラクタデータ」とする。詳細は後述する。）とを用意しておき、これらを組み合わせてキャラクタの動作を映像化している。
【０００４】
モーションデータは、各動作（モーション）のフレーム毎（例えば１／６０秒毎）のデータを記録したものである（図１１参照）。一般に、コンピュータグラフィックスを用いたアニメーションでは、人や動物などの多関節物体は身体の各パーツを関節で連結した階層構造のスケルトンモデル（図４および図５参照）で表現される。モーションデータはこのスケルトンモデルの各関節の位置データまたは各関節の回転角度のデータをフレーム毎に記録している。各関節の位置に応じてキャラクタの各パーツを配置することで当該キャラクタを三次元仮想ゲーム空間上に配置し、これをフレーム毎に行うことで当該キャラクタに所定の動作を行わせる。
【０００５】
例えば、プレイヤがプレイヤキャラクタに剣を振り下ろさせる操作を行った場合、剣を振り下ろす動作のモーションデータとプレイヤキャラクタのキャラクタデータとを用いてプレイヤキャラクタが剣を振り下ろす動作の映像が生成され、ゲーム画面に表示される。このとき、剣の動きのモーションデータとプレイヤキャラクタが使用している剣の画像データとを用いた剣の動きの映像も生成され、プレイヤキャラクタが剣を振り下ろす動作の映像に合成される。これにより、プレイヤキャラクタが剣を振り下ろす映像が、ゲーム画面に表示される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４０８１７５４号公報
【特許文献２】特開２００９−２８１８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、体格の異なるキャラクタに対して、例えば両手で剣を振り下ろす共通のモーションデータを用いる場合、以下のような不都合が生じる。すなわち、通常の体格のキャラクタの動作に合わせて用意されたモーションデータを、手の長いキャラクタに用いた場合や、手の短いキャラクタに用いた場合に、剣の持ち手部分とキャラクタの両手の位置が合わない場合がある。
【０００８】
図１４は、体格の異なるキャラクタがそれぞれ両手で剣を振り下ろしている動作の１コマの画像を示している。キャラクタＳは通常の体格のキャラクタであって、当該キャラクタＳに合わせてモーションデータが用意されている。キャラクタＳの両手は、剣Ｋの持ち手部分を適切に握っている。
【０００９】
キャラクタＰ１は、キャラクタＳと比べて腕（上腕および前腕）が長いキャラクタである。キャラクタＰ１にもキャラクタＳと同じモーションデータを用いているので、キャラクタＰ１はキャラクタＳと同じ動作を行う。しかし、キャラクタＰ１はキャラクタＳより腕が長いにもかかわらず、剣ＫはキャラクタＳの場合と同じ位置にあるので、キャラクタＰ１の両手は、剣Ｋの持ち手部分より遠い位置を握った状態となっている。
【００１０】
キャラクタＰ２は、キャラクタＳと比べて腕（上腕および前腕）が短いキャラクタである。キャラクタＰ２にもキャラクタＳと同じモーションデータを用いているので、キャラクタＰ２はキャラクタＳと同じ動作を行う。しかし、キャラクタＰ２はキャラクタＳより腕が短いにもかかわらず、剣ＫはキャラクタＳの場合と同じ位置にあるので、キャラクタＰ２の両手は、剣Ｋの持ち手部分より手前の位置を握った状態となっている。したがって、キャラクタＰ１およびＰ２が両手で剣Ｋを振り下ろす映像は、剣Ｋの持ち手部分から手が離れた状態で剣Ｋが振り下ろされる不自然な映像となる。
【００１１】
剣Ｋの持ち手部分から手が離れることを防ぐために、剣Ｋをキャラクタのスケルトンモデルの一部とする方法がある。すなわち、剣Ｋをキャラクタの一部（例えば、剣Ｋの持ち手部分が右手に付いている）としてスケルトンモデルで表現し、剣Ｋの動きもキャラクタのモーションデータに含めておく。このモーションデータを用いた場合、剣Ｋがキャラクタの右手から離れることはない。しかし、図１５に示すように、両手で剣を振り下ろす場合、キャラクタＰ１およびＰ２の左手が剣Ｋの持ち手部分から離れる場合があり、やはり不自然な映像となる。
【００１２】
また、両手の位置を剣Ｋの持ち手部分の所定の位置に合わせる方法もある。この場合、両手で剣Ｋの持ち手部分を握った状態となるが、図１６に示すように、腕を窮屈に曲げた体勢となったり（キャラクタＰ１）、腕を無理に伸ばした体勢となり（キャラクタＰ２）、やはり不自然な映像となる。
【００１３】
また、剣などのアイテムを両手で持つ場合だけでなく、キャラクタが合掌したり拍手したりするなどの両手を所定の場所に位置させる場合や、キャラクタが両足でアイテムを使用したり、両足を所定の場所に位置させる場合などでも、共通のモーションデータを体格の異なるキャラクタに用いると、生成される映像が不自然なものとなる場合がある。
【００１４】
なお、上記課題は、アクションゲームに限られるものではなく、他の種類のゲームにおいても生じる。また、ゲーム以外においても、共通のモーションデータに基づいてキャラクタなどの動作を表示する場合に、上記課題が生じる。
【００１５】
本発明は上記した事情のもとで考え出されたものであって、体格の異なるキャラクタに共通のモーションデータを用いた場合に不自然な映像となることを抑制することができるプログラムを提供することをその目的としている。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、本発明では、次の技術的手段を講じている。
【００１７】
本発明の第１の側面によって提供されるプログラムは、所定の動作を行っているキャラクタの画像を表示装置に表示する画像処理装置のコンピュータで実行されるプログラムであって、前記コンピュータを、複数の関節による連結構造を有する第１キャラクタである基準キャラクタに関し、前記複数の関節間の距離を特定するための基準キャラクタデータと、前記所定の動作を行わせるための前記複数の関節間の相対的な位置関係を特定する基準モーションデータと、前記所定の動作を行わせているときの前記基準キャラクタに関する部位以外の所定の位置を特定する所定位置データとを、記憶手段から読み出す基準キャラクタ情報読出手段と、少なくとも一部の関節による連結構造が前記基準キャラクタと等しい第２キャラクタに関し、前記複数の関節間の距離を特定するための第２キャラクタデータを、前記記憶手段から読み出す第２キャラクタ情報読出手段と、前記第２キャラクタ情報読出手段によって読み出された前記第２キャラクタデータに加え、前記基準キャラクタ情報読出手段によって読み出された前記基準キャラクタデータ、前記基準モーションデータ、および所定位置データに基づいて、前記第２キャラクタに前記所定の動作を行わせるキャラクタ制御手段として機能させ、前記キャラクタ制御手段は、前記基準キャラクタデータおよび前記第２キャラクタデータに基づいて、前記基準キャラクタの所定の２つの部位間の距離の長さと前記第２キャラクタの前記所定の２つの部位間の距離の長さとの比率を算出し、前記第２キャラクタに関する部位以外の所定の位置を、前記所定位置データと前記比率とに基づいて算出することを特徴とする。
【００１８】
なお、本発明におけるキャラクタの「部位」とは、キャラクタの体の各部分のことであり、頭、胴、上腕、前腕、手、大腿、下腿、足などの各パーツ、および、首、胴関節、腰関節、鎖骨、肩、肘、手首、股関節、膝、足首などの関節のことである。なお、各部位はさらに細かな部位に分ける場合もある。例えば、手は、指ごとの部位に分けられるし、各指は指関節ごとに分けることができる。
【００１９】
本発明の好ましい実施の形態においては、前記キャラクタ制御手段は、前記第２キャラクタの前記連結構造の基準となる部位から前記所定の位置までの距離を、前記基準キャラクタの前記連結構造の基準となる部位から前記所定位置データにおける前記基準となるキャラクタに関する部位以外の所定の位置までの距離に前記比率を乗算したものとする。
【００２０】
本発明の好ましい実施の形態においては、前記所定位置データにおける所定の位置の座標が前記基準となる部位からの相対位置座標として表されており、前記キャラクタ制御手段は、前記第２キャラクタに関する部位以外の所定の位置の座標を、前記所定位置データにおける前記所定の位置の座標の各要素にそれぞれ前記比率を乗算したものを各要素とする。
【００２１】
本発明の好ましい実施の形態においては、前記基準となる部位は体幹部のいずれかの部位である。
【００２２】
なお、本発明における「体幹部」とは、頭、首、四肢を除く部分であり、いわゆる胴体部分である。つまり、「体幹部のいずれかの部位」には、例えば、腰関節、胴関節、胸、腹などが含まれる。
【００２３】
本発明の好ましい実施の形態においては、前記基準となる部位は腰関節である。
【００２４】
本発明の好ましい実施の形態においては、前記所定の位置は、所定の部位を位置させるための目標点の位置である。
【００２５】
本発明の好ましい実施の形態においては、前記目標点の位置は前記第２キャラクタが使用しているアイテムの位置である。
【００２６】
本発明の好ましい実施の形態においては、前記アイテムは前記連結構造の基準となる部位に連結されている。
【００２７】
本発明の好ましい実施の形態においては、前記キャラクタ制御手段は、前記第２キャラクタの少なくとも一方の手の位置を、前記所定の位置に応じた位置に変化させる。
【００２８】
本発明の好ましい実施の形態においては、前記所定の２つの部位のうちの一方は、前記連結構造の基準となる部位である。
【００２９】
本発明の好ましい実施の形態においては、前記所定の２つの部位のうち少なくとも一方は、いずれか一方の手である。
【００３０】
本発明の好ましい実施の形態においては、前記所定の２つの部位間の距離の長さは、第１キャラクタ及び第２キャラクタが所定の姿勢をとったときのものである。
【００３１】
本発明の第２の側面によって提供される記録媒体は、本発明の第１の側面によって提供されるプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００３２】
本発明の第３の側面によって提供されるコンピュータは、本発明の第１の側面によって提供されるプログラムを実行する画像処理装置のコンピュータである。
【発明の効果】
【００３３】
本発明によれば、基準キャラクタの所定の２つの部位間の距離の長さと第２キャラクタの所定の２つの部位間の距離の長さとの比率に応じて、第２キャラクタに関する部位以外の所定の位置が変化する。したがって、第２キャラクタの体格に応じた自然な位置に、第２キャラクタに関する部位以外の所定の位置を配置することができる。これにより、体格が基準キャラクタとは異なる第２キャラクタに、基準キャラクタのモーションデータ（基準モーションデータと所定位置データ）を用いた場合でも、第２キャラクタの動作が不自然な映像となることを抑制することができる。
【００３４】
例えば、基準キャラクタが剣を両手で振り下ろすモーションデータを第２キャラクタに用いる場合、所定の姿勢を取ったときの腰関節から手首までの距離の長さの比率に応じて剣の位置および剣を持つ両手の位置を変化させるようにすれば、第２キャラクタが剣を両手で振り下ろす動作が自然な映像となる。
【００３５】
本発明のその他の特徴および利点は、添付図面を参照して以下に行う詳細な説明によって、より明らかとなろう。
【図面の簡単な説明】
【００３６】
【図１】編集機能を用いて腕または胴体の長さを変更されたプレイヤキャラクタを説明するための図である。
【図２】体格の異なるキャラクタがそれぞれ両手で剣を振り下ろしている動作の１コマの画像を示す図である。
【図３】本実施形態に係るゲーム装置を示す構成図である。
【図４】キャラクタが標準姿勢を取っているときの各関節のリンク構造を示す図である。
【図５】各関節の親子関係の階層構造を示す図である。
【図６】基準キャラクタデータの一例を説明するための図である。
【図７】ポジションデータを説明するための図である。
【図８】武器データの一例を説明するための図である。
【図９】プレイヤキャラクタデータの一例を説明するための図である。
【図１０】プレイヤキャラクタ武器データの一例を説明するための図である。
【図１１】基準キャラクタモーションデータの一例を説明するための図である。
【図１２】プレイヤキャラクタのモーション再生のためのスケルトンデータを生成するための処理を説明するためのフローチャートである。
【図１３】補正前スケルトンデータの一例を説明するための図である。
【図１４】体格の異なるキャラクタがそれぞれ両手で剣を振り下ろしている動作の１コマの画像を示す図であり、両手の位置が剣の持ち手部分にあってないものである。
【図１５】体格の異なるキャラクタがそれぞれ両手で剣を振り下ろしている動作の１コマの画像を示す図であり、右手の位置に剣の持ち手部分をあわせたものである。
【図１６】体格の異なるキャラクタがそれぞれ両手で剣を振り下ろしている動作の１コマの画像を示す図であり、両手の位置を剣の持ち手部分にあわせたものである。
【発明を実施するための形態】
【００３７】
以下、本発明の好ましい実施の形態として、本発明に係るプログラムをゲームソフトに適用した場合について、添付図面を参照して具体的に説明する。以下の説明では、家庭用ゲーム装置（以下、「ゲーム装置」とする。）において、アクションゲームを進行している場合を例として説明する。
【００３８】
本実施形態に係るアクションゲームは、三次元仮想ゲーム空間上でプレイヤキャラクタを敵キャラクタと戦わせ、プレイヤキャラクタが敵キャラクタを倒すことにより進行する。また、このアクションゲームには、プレイヤキャラクタを編集する機能が設けられている。プレイヤは、編集機能を用いてプレイヤキャラクタを好みの形状に変更することができる。
【００３９】
編集機能では、プレイヤキャラクタの基準となるキャラクタ（以下では、「基準キャラクタ」とする。）の腕や脚、胴体などの各パーツの形状（長さ、太さなど）を変更したり、基準キャラクタの顔を構成する目や鼻などの各パーツの形状および配置位置を変更したりすることができ、編集後の基準キャラクタを自分のプレイヤキャラクタとしてゲームで使用することができる。例えば、腕のパーツでは、肩から肘までの上腕部分と肘から手首までの前腕部分とを、それぞれ個別に長くしたり短くしたり、太くしたり細くしたりすることができる。本実施形態においては、左右の上腕部分で同じ変更がなされ、左右の前腕部分で同じ変更がなされるようにしている。なお、左右それぞれ個別に形状を変更できるようにしても構わない。なお、編集機能の詳細については後述する。
【００４０】
図１は、編集機能を用いて腕または胴体の長さを変更されたプレイヤキャラクタを説明するための図である。
【００４１】
中央に示されているのが、編集前の基準となる基準キャラクタＳである。プレイヤキャラクタＰ１は基準キャラクタＳの腕（上腕および前腕とも）の長さを長くしたものであり、プレイヤキャラクタＰ２は基準キャラクタＳの腕（上腕および前腕とも）の長さを短くしたものである。また、プレイヤキャラクタＰ３は基準キャラクタＳの胴体の長さを長くしたものであり、プレイヤキャラクタＰ４は基準キャラクタＳの胴体の長さを短くしたものである。
【００４２】
プレイヤは、編集後のプレイヤキャラクタを自分のプレイヤキャラクタとしてゲームを行う。プレイヤキャラクタの動作には、予め設定されている基準キャラクタＳの動作のためのモーションデータが用いられる。ただし、体格が基準キャラクタＳとは異なるプレイヤキャラクタに対して、例えば両手で剣を振り下ろすモーションデータをそのまま用いると不自然な映像となるので、プレイヤキャラクタの体格に応じた所定の処理を行っている。
【００４３】
具体的には、まず、基準キャラクタＳが両手を広げて直立した姿勢（以下では、「標準姿勢」とする。図１参照）をとったときの腰関節から左手首までの距離（以下では、「関節間距離」とする。）に対するプレイヤキャラクタの関節間距離の比率（以下では、「体格比率」とする。）を算出しておく。例えば両手で剣を振り下ろす動作を行う場合、プレイヤキャラクタの腰関節と剣の位置との距離が基準キャラクタＳの腰関節と剣の位置との距離に体格比率を乗算した距離となるように、剣の位置を設定する。すなわち、プレイヤキャラクタが使用している剣の位置を、体格比率に応じて、プレイヤキャラクタに近づけたり離したりする。当該「剣の位置」が本発明の「第２キャラクタに関する部位以外の所定の位置」および「目標点の位置」に対応するものであり、当該「腰関節」が本発明の「第２キャラクタの連結構造の基準となる部位」に対応するものである。そして、剣の位置に合わせて、プレイヤキャラクタの両手の位置を調整する。これにより、プレイヤキャラクタの体格に合わせた自然な動作となる。なお、モーションデータを用いた具体的な動作の再生方法については後述する。
【００４４】
例えば、図１に示す基準キャラクタＳの関節間距離（同図では実線矢印の長さで示している。）は１．０であり、プレイヤキャラクタＰ１の関節間距離は１．３なので、プレイヤキャラクタＰ１の体格比率は１．３である。したがって、プレイヤキャラクタＰ１の腰関節と剣の位置との距離は、基準キャラクタＳの腰関節と剣の位置との距離の１．３倍となる。また、プレイヤキャラクタＰ２の関節間距離は０．７なので、プレイヤキャラクタＰ２の体格比率は０．７である。したがって、プレイヤキャラクタＰ２の腰関節と剣の位置との距離は、基準キャラクタＳの腰関節と剣の位置との距離の０．７倍となる。同様に、関節間距離が１．６であるプレイヤキャラクタＰ３の腰関節と剣の位置との距離は、基準キャラクタＳの腰関節と剣の位置との距離の１．６倍となり、関節間距離が０．８であるプレイヤキャラクタＰ４の腰関節と剣の位置との距離は、基準キャラクタＳの腰関節と剣の位置との距離の０．８倍となる。
【００４５】
図２は、基準キャラクタＳおよびプレイヤキャラクタＰ１、Ｐ２がそれぞれ両手で剣を振り下ろしている動作の１コマの画像を示している。
【００４６】
プレイヤキャラクタＰ１の腰関節と剣の位置との距離（同図では実線矢印の長さで示している。）が基準キャラクタＳの腰関節と剣の位置との距離の１．３倍となり、プレイヤキャラクタＰ１は基準キャラクタＳの場合より腰関節から離れた位置で剣を構えている。また、プレイヤキャラクタＰ２の腰関節と剣の位置との距離が基準キャラクタＳの腰関節と剣の位置との距離の０．７倍となり、プレイヤキャラクタＰ２は基準キャラクタＳの場合より腰関節に近い位置で剣を構えている。同図に示すように、プレイヤキャラクタＰ１およびＰ２も、それぞれの体格に合った自然な画像となっている。
【００４７】
以下に、本実施形態のハード構成について説明する。
【００４８】
図３は、本実施形態に係るゲーム装置を示す構成図である。ゲーム装置１は、本体１１および操作コントローラ１２を備えている。操作コントローラ１２は短距離無線通信によって本体１１に接続されている。本体１１には、モニタ１３が専用のケーブルによって接続される。また、本体１１には、ゲームプログラムやゲームデータが記録されているディスク１４が装着され、また、必要に応じてゲームデータを保存するためのメモリカード１５も装着される。
【００４９】
本体１１は、制御部１１１、描画処理部１１２、音声処理部１１３、ディスクドライブユニット１１４、メモリカード接続ユニット１１５、Ｉ／Ｏインターフェース部１１６、通信処理部１１７、および信号送受信部１１８を備えている。制御部１１１には、描画処理部１１２、音声処理部１１３、Ｉ／Ｏインターフェース部１１６、および通信処理部１１７が接続されている。また、Ｉ／Ｏインターフェース部１１６には、ディスクドライブユニット１１４、メモリカード接続ユニット１１５、信号送受信部１１８、およびモニタ１３が接続されている。
【００５０】
ゲーム装置１では、上記アクションゲームのソフトウェアが記録されたディスク１４がディスクドライブユニット１１４に装着され、このディスクドライブユニット１１４からディスク１４内のゲームプログラムおよびゲームデータが制御部１１１内のＲＡＭ１１１ｃ（後述）に読み込まれる。読み込まれたゲームプログラムがＣＰＵ１１１ａ（後述）によって実行されることにより、プレイヤはゲーム内容を楽しむことができる。プレイヤは、操作コントローラ１２（後述）を操作することによりプレイヤキャラクタを操作し、ゲームを進行させることができる。また、プレイヤは、編集画面で、操作コントローラ１２を操作することにより、プレイヤキャラクタの編集を行うことができる。なお、プレイヤキャラクタの編集機能の詳細については後述する。
【００５１】
ディスク１４内のゲームデータには、基準キャラクタＳや敵キャラクタなどのキャラクタデータ（画像データ含む）、武器などのアイテムデータ（画像データ含む）、モーションデータ、背景などの画像データ、効果音などの音声データ、および、ゲーム進行や描画の際に参照される各種テーブルなどが含まれる。
【００５２】
制御部１１１は、本体１１の全体動作を制御するマイクロコンピュータを有している。マイクロコンピュータは、ＣＰＵ１１１ａ、ＲＯＭ１１１ｂ、およびＲＡＭ１１１ｃなどからなり、各部は、それぞれバスラインで接続されている。
【００５３】
ＣＰＵ１１１ａは、ディスクドライブユニット１１４によってディスク１４からＲＡＭ１１１ｃに読み込まれるゲームプログラムを実行することより、ゲーム進行を統括的に制御する。より具体的には、操作コントローラ１２からプレイヤが操作することによる操作信号が信号送受信部１１８を介して入力されると、ＣＰＵ１１１ａは、ゲームプログラムにしたがってその操作信号に対する所定のゲーム進行処理を行う。ＣＰＵ１１１ａは、その処理結果をモニタ１３に例えば三次元空間を表現する二次元画像（以下、「ゲーム画像」という）によって表示するとともに、モニタ１３のスピーカ１３ａ（後述）から効果音などを出力する。
【００５４】
ＲＯＭ１１１ｂには、ディスクローディング機能などのゲーム装置１の基本的な機能やディスク１４に記録されたゲームプログラムおよびゲームデータを読み出す手順などを示す基本プログラムが記憶されている。ＣＰＵ１１１ａは、ディスクドライブユニット１１４にディスク１４が装着されると、ＲＯＭ１１１ｂの基本プログラムにしたがってディスクドライブユニット１１４を動作させ、ディスク１４からゲームプログラムおよびゲームデータをＲＡＭ１１１ｃに読み込み、ゲーム開始状態に設定する。
【００５５】
ＲＡＭ１１１ｃは、ディスクドライブユニット１１４によってディスク１４から読み込まれたゲームプログラムやゲームデータが格納されるエリアと、ＣＰＵ１１１ａがゲームプログラムを実行するためのワークエリアとを提供するものである。
【００５６】
上記ゲームプログラムは、複数のプログラムが組み合わされて構成されており、例えばモニタ１３に表示されているプレイヤキャラクタの動作を操作コントローラ１２からのプレイヤの操作信号に基づいて制御するゲーム進行プログラムやモニタ１３に表示すべきゲーム画像を制御するグラフィック制御プログラムなどによって構成されている。また、本実施形態において、ＲＡＭ１１１ｃは、ディスク１４から読み込んだ基準キャラクタデータ、武器データ、基準キャラクタモーションデータ（図６、図８、図１１参照）などを記憶し、これらのデータから作成されたプレイヤキャラクタデータ、プレイヤキャラクタ武器データ、およびスケルトンデータ（図９、図１０、および図１３参照）などを記憶する。
【００５７】
ＣＰＵ１１１ａは、操作コントローラ１２からのプレイヤの操作信号に基づき、必要に応じてディスク１４からゲームプログラムや画像データなどをＲＡＭ１１１ｃに読み込み、これらのデータを処理したりゲームプログラムを実行したりすることにより、モニタ１３に表示すべきゲーム画像の内容を決定する。
【００５８】
描画処理部１１２は、描画処理に必要な各種の演算処理を行うものである。ＣＰＵ１１１ａは、例えば、１／６０秒毎に、描画処理部１１２に描画指令を出力する。このとき、ＣＰＵ１１１ａは、モニタ１３に表示すべき画像を決定し、その画像の描画に必要なキャラクタデータ、アイテムデータ、背景などの画像データ、モーションデータおよび光源データなどをＲＡＭ１１１ｃから読み出して描画処理部１１２に供給する。また、ＣＰＵ１１１ａは、各キャラクタの位置データや、操作コントローラ１２から入力される操作信号を描画処理部１１２に供給する。
【００５９】
描画処理部１１２は、ＣＰＵ１１１ａからの描画命令に基づいて画像データなどを用いて、描画に必要なデータ（各オブジェクトおよび背景の位置関係、モニタ１３の画面上における各オブジェクトを構成するポリゴンの座標、各ポリゴンに対応するテクスチャ、並びに各ポリゴンの反射特性などのデータ）の演算などを行い、その演算結果に基づいて描画処理部１１２内のＶＲＡＭ（図示せず）に１コマ（１フレーム）のゲーム画像のデータを作成する。作成されたゲーム画像のデータは、例えば１／６０秒毎に映像信号としてモニタ１３に出力され、モニタ１３に映像として表示される。
【００６０】
音声処理部１１３は、効果音などの音声を発生させる処理に必要な各種の演算処理を行うものである。ＣＰＵ１１１ａは、モニタ１３のスピーカ１３ａから出力すべき効果音若しくはＢＧＭの音響内容を決定すると、音声処理部１１３に音声指令を出力する。音声処理部１１３は、ＣＰＵ１１１ａからの音声指令に基づき、ＲＡＭ１１１ｃから効果音もしくはＢＧＭの音声データを読み出し、所定の加工処理とＤ／Ａ変換処理とを施した後、スピーカ１３ａに出力する。
【００６１】
ディスクドライブユニット１１４は、ＣＰＵ１１１ａからのローディング指令（ローディングすべきゲームプログラムとゲームデータを指定した読出指令）に基づき、ディスク１４に記録されたゲームプログラムやゲームデータを読み出すものである。
【００６２】
メモリカード接続ユニット１１５は、ゲーム進行に関する情報をメモリカード１５に書き込んだり、読み出したりするためのユニットである。ＣＰＵ１１１ａは、ゲーム進行中やゲーム終了時にプレイヤから「データのセーブ」が指令されると、メモリカード接続ユニット１１５を介してメモリカード１５に、ゲーム進行に関する情報（この情報には、例えば、編集機能で作成されたプレイヤキャラクタデータ（図９参照）や、獲得したポイントやアイテムなどの各種の特典などの情報が含まれる。）を記憶する。また、メモリカード１５に記憶されたゲーム進行に関する情報は、ゲーム開始前にＲＡＭ１１１ｃに読み出される。
【００６３】
Ｉ／Ｏインターフェース部１１６は、ディスクドライブユニット１１４やメモリカード接続ユニット１１５によって読み出されたゲームプログラムやゲームデータ、および信号送受信部１１８が受信した操作コントローラ１２からの操作信号を制御部１１１に伝送したり、制御部１１１、描画処理部１１２や音声処理部１１３からの映像信号や音声信号などをモニタ１３やスピーカ１３ａに伝送したりするものである。
【００６４】
通信処理部１１７は、ネットワーク回線２を介して他のゲーム装置１と通信を行う場合に、データの送信および受信を行うための制御を行うものである。通信処理部１１７は、操作コントローラ１２から入力される操作信号やＣＰＵ１１１ａから出力される信号をネットワーク回線２を介して他のゲーム装置１に送信し、ネットワーク回線２を介して他のゲーム装置１から送信される信号を受信してＣＰＵ１１１ａに入力する。
【００６５】
信号送受信部１１８は、操作コントローラ１２から短距離無線通信により送信される信号を受信する。操作コントローラ１２からの信号には、操作コントローラ１２に設けられた操作ボタンの操作情報の他に、操作コントローラ１２に設けられた各種センサ（図示しない）による検出データが含まれる。ＣＰＵ１１１ａはこの操作コントローラ１２から送信される信号によりゲームを進行させることができる。また、信号送受信部１１８は、操作コントローラ１２に各種信号（例えば、操作コントローラ１２の振動部（図示しない）を振動させたり、発光部（図示しない）を発光させたり、音声出力部から音声を出力させたりするための信号など）を送信する。
【００６６】
操作コントローラ１２は、プレイヤキャラクタを動作させたり、ゲームに関する各種の設定を行ったりするために、プレイヤによって操作されるものである。プレイヤによって操作コントローラ１２が操作されると、その操作信号が制御部１１１に伝送され、モニタ１３に表示されたプレイヤキャラクタが所定の動作を行う。所定の動作としては、例えば、走る、しゃがむ、ジャンプするなどの移動動作や武器を使用して相手を攻撃する攻撃動作がある。操作コントローラ１２は、自身の電源のオン状態とオフ状態とを切り替えるための電源ボタン、ゲームを開始させたりポーズメニューを開いたりするためのスタートボタン、デモをスキップしたりメニューを選択するためのセレクトボタン、および、プレイヤキャラクタの各動作やカメラ視点の移動操作のための操作ボタンなど（押圧して操作される操作ボタンと傾けることで操作される操作スティックとが含まれる。）を備えている。
【００６７】
モニタ１３は、本体１１から送られてきた映像信号に応じてゲーム進行状態を示す表示画面を映し出したり、本体１１から送られてきた音声信号に応じてスピーカ１３ａから効果音などの音声を出力させたりするための装置である。モニタ１３は、映像信号や音声信号を入力するための外部入力端子を備えた、例えばテレビジョン受像機によって構成されている。
【００６８】
ディスク１４は、例えばＤＶＤ−ＲＯＭまたはＣＤ−ＲＯＭなどの光ディスクである。ディスク１４には、ゲームプログラムやそのゲームプログラムの実行に必要な種々のデータや画像データが記録されている。メモリカード１５は、例えばフラッシュメモリなどのデータの書き換えが可能な不揮発性の記録媒体である。ＲＡＭ１１１ｃのワークエリアの記録は、ゲーム装置本体１１の電源を切ると消滅してしまうことから、メモリカード１５は、ＲＡＭ１１１ｃのワークエリアの記録のうち消滅させずに残しておくべきゲーム進行に関する情報（例えば、プレイヤキャラクタデータなど）を記録する。
【００６９】
ゲーム装置１は、ネットワークアダプタ１６を介して、インターネット回線などのネットワーク回線２に接続することができる。この場合、ネットワーク回線２を介して、複数のゲーム装置１間でゲームを行うこともできる（いわゆる「オンラインゲーム」）。本実施形態では、ゲーム装置１単独で行うゲームについて説明しているが、このようなオンラインゲームでも本発明を適用することができる。
【００７０】
次に、キャラクタの編集処理について、図４〜図１０を参照して説明する。
【００７１】
上述したように、本実施形態に係るアクションゲームには、プレイヤキャラクタを編集する機能が設けられている。編集機能には、プレイヤキャラクタの体のパーツ（腕や脚、胴体など）の形状を変更する機能や、プレイヤキャラクタの顔のパーツ（目や鼻など）の形状や配置を変更する機能などがある。以下では、プレイヤキャラクタの体のパーツの編集処理について説明する。なお、顔のパーツの編集処理については、説明を省略する。
【００７２】
図４および図５は、キャラクタのスケルトンモデルを説明するための図である。図４は、キャラクタが標準姿勢を取っているときの各関節のリンク構造を示す図である。図５は、各関節の親子関係の階層構造を示す図である。本実施形態ではプレイヤキャラクタが人のキャラクタなのでスケルトンモデルは人のスケルトンモデルであり、図４および図５はそれぞれ一般的な人のスケルトンモデルのリンク構造および階層構造を示している。
【００７３】
図４において、ａ〜ｑが記載されている丸は各関節を示し、ｗが記載されている丸は武器を示している。なお、各関節ａ〜ｑの名称は図５と共通しており、図４においては各名称の記載を省略している。なお、以下の記載でも、各関節ａ〜ｑの名称を省略して、例えば、「関節ａ」とのみ記載する場合がある。各関節間の接続は実線で示されており、例えば、右肩ｅと右肘ｆとが接続されていることを示している。腰関節ａはスケルトンモデルの基点（連結構造の基準となる部位）となるものであり、本実施形態においては、武器ｗが腰関節ａに接続されている。本実施形態では、この基点（腰関節ａ）に接続された武器ｗの位置を変化させる手法について説明する。また、腰関節ａと左手首ｋとの距離（同図に示す実線矢印の長さ）Ｌが「関節間距離」を示している。なお、各関節とリンク構造はこれに限定されるものではない。関節を省略してより単純な構造としてもよいし、関節を増やしてより複雑な構造としてもよい。また、基点は腰関節ａに限定されるわけではなく、胴関節ｂ、首ｃや左肩ｉとしてもよいし、各関節とは別の点を設定してもよい。ただし、基点は、体幹などのキャラクタの左右に偏らない点、例えば、中心軸（首ｃ、胴関節ｂ、腰関節ａを結ぶ直線）に位置する点が望ましい。
【００７４】
図５において、上位にある関節が下位にある関節の親であり、下位にある関節は上位にある関節の子である。例えば、右鎖骨ｄは、右肩ｅの親であり、胴関節ｂの子である。各関節の位置は、親である関節の位置を基準に設定される。腰関節ａ（基点）は１番上位の関節であり、腰関節ａの位置はローカル座標系の原点を基準に設定される。なお、ローカル座標系は、キャラクタ（例えば、プレイヤキャラクタや敵キャラクタなどの、ＣＰＵ１１１ａによって動きが制御されているキャラクタ）毎に設定されている座標系であって、キャラクタの動きや姿勢を管理するために設けられている。また、本実施形態では、武器ｗは腰関節ａ（基点）の子とされており、武器ｗの位置は腰関節ａの位置を基準に設定される。
【００７５】
プレイヤキャラクタの体のパーツの編集処理は、基準キャラクタのキャラクタデータからプレイヤが使用するプレイヤキャラクタのキャラクタデータを新たに生成したり、生成されたプレイヤキャラクタのキャラクタデータを変更したりすることで行われる。なお、以下では、新たにプレイヤキャラクタのキャラクタデータを生成する場合について説明する。
【００７６】
図６は基準キャラクタデータの一例を説明するための図である。
【００７７】
基準キャラクタデータは基準キャラクタのキャラクタデータであり、プレイヤが編集機能を用いてプレイヤキャラクタを編集するための元のキャラクタデータである。基準キャラクタデータは、ディスク１４にゲームデータとして記録されており、ディスクドライブユニット１１４によって読み出されて、ＲＡＭ１１１ｃに格納される。
【００７８】
図６に示すように、基準キャラクタデータはモデルデータと画像データなどを含んでいる。モデルデータは関節データと関節間距離を含んでいる。関節データは関節ａ〜ｑ毎のポジションデータとリンクデータとを含んでいる。ポジションデータはキャラクタが標準姿勢を取っているときの各関節の位置データであり、リンクデータは親である関節を特定するためのデータである。例えば、同図においては、関節ｂのポジションデータは（Ｘｂ，Ｙｂ，Ｚｂ）となっており、リンクデータは親関節である関節ａを示す「ａ」となっている。
【００７９】
関節ａは基点であって親である関節がないので、リンクデータを有しない。関節ａのポジションデータは、ローカル座標系における位置座標で示されている。本実施形態では、標準姿勢における関節ａがローカル座標系の原点の真上（Ｙ軸上）に設定されているので、Ｘａ＝Ｚａ＝０である（図７参照）。関節ｂ〜ｑのポジションデータは、ローカル座標系における、親である関節の位置を基準とした相対位置を示すデータである。
【００８０】
図７は、ポジションデータを説明するための図であり、ローカル座標系上の関節ａ、関節ｂ、および関節ｈの位置座標を示すものである。
【００８１】
関節ｈのポジションデータ（Ｘｈ，Ｙｈ，Ｚｈ）は、親の関節である関節ｂ（図５参照）の位置座標Ｂ（ＸＢ，ＹＢ，ＺＢ）を基準とした相対位置を示している。したがって、関節ｈの位置座標Ｈは、Ｈ（ＸＢ＋Ｘｈ，ＹＢ＋Ｙｈ，ＺＢ＋Ｚｈ）となる。なお、関節ｂの親の関節である関節ａ（基点）の位置座標Ａは関節ａのポジションデータなのでＡ（Ｘａ，Ｙａ，Ｚａ）であり、関節ｂのポジションデータが（Ｘｂ，Ｙｂ，Ｚｂ）なので、位置座標Ｂ（ＸＢ，ＹＢ，ＺＢ）は（Ｘａ＋Ｘｂ，Ｙａ＋Ｙｂ，Ｚａ＋Ｚｂ）となる。したがって、位置座標Ｈは、Ｈ（Ｘａ＋Ｘｂ＋Ｘｈ，Ｙａ＋Ｙｂ＋Ｙｈ，Ｚａ＋Ｚｂ＋Ｚｈ）となる。
【００８２】
なお、各関節のポジションデータは、親である関節の位置を基準とした相対位置で表す場合に限られない。例えば、ローカル座標系の位置座標としてもよいし、親関節との距離情報であってもよい。
【００８３】
関節間距離は、関節ａ（基点）から関節ｋまでの距離を示している。関節間距離は、関節ｂ，ｈ，ｉ，ｊ、ｋの各ポジションデータから算出されて、予め設定されている。関節ｂ，ｈ，ｉ，ｊ、ｋの各ポジションデータをそれぞれ（Ｘｂ，Ｙｂ，Ｚｂ），（Ｘｈ，Ｙｈ，Ｚｈ），（Ｘｉ，Ｙｉ，Ｚｉ），（Ｘｊ，Ｙｊ，Ｚｊ），（Ｘｋ，Ｙｋ，Ｚｋ）とすると、関節間距離は下記（１）式で算出することができる。なお、関節間距離は、関節のポジションデータと下記（１）式とから算出できるので、基準キャラクタデータに含めていなくてもよく、必要の都度算出するようにしてもよい。
Ｌ＝√｛（Ｘｂ＋Ｘｈ＋Ｘｉ＋Ｘｊ＋Ｘｋ）2＋（Ｙｂ＋Ｙｈ＋Ｙｉ＋Ｙｊ＋Ｙｋ）2
＋（Ｚｂ＋Ｚｈ＋Ｚｉ＋Ｚｊ＋Ｚｋ）2｝
・・・・・  （１）
【００８４】
画像データは、キャラクタを構成する各パーツのポリゴンデータおよびテクスチャデータなどを含んでいる。
【００８５】
図８は武器データの一例を説明するための図である。
【００８６】
武器データは、プレイヤキャラクタや敵キャラクタなどが使用する武器のデータである。武器データは、ディスク１４にゲームデータとして記録されており、ディスクドライブユニット１１４によって読み出されて、ＲＡＭ１１１ｃに格納される。
【００８７】
図８に示すように、武器データはキャラクタが使用可能な武器毎に設定されており、モデルデータと画像データなどとを含んでいる。モデルデータは、ポジションデータ、リンクデータ、および基準添え位置などを含んでいる。ポジションデータはキャラクタが標準姿勢を取っているときの武器の所定の部分（例えば、剣の持ち手部分の中心位置など）の位置データであり、基準キャラクタデータの関節ｂ〜ｑのポジションデータと同様に、ローカル座標系における、親である関節の位置を基準とした相対位置を示すデータである。リンクデータは、親である関節を特定するためのデータである。
【００８８】
例えば、同図において、武器１はプレイヤキャラクタが両手で扱う大型の剣であって、基点からの距離をプレイヤキャラクタの体格比率に応じた距離とするように配置される武器であり、リンクデータが親関節である関節ａ（基点）を示す「ａ」になっている。また、プレイヤキャラクタが両手で扱うので、プレイヤキャラクタの右手が添えられる位置を示す基準右手添え位置と、左手が添えられる位置を示す基準左手添え位置とが設定されている。これらの位置は、ローカル座標系における、武器の位置を基準とした相対位置を示すデータである。また、同図において、武器２はプレイヤキャラクタが右手に持って扱う小型の剣であって、リンクデータが関節ａ（基点）を示す「ａ」になっている。武器２も、基点からの距離をプレイヤキャラクタの体格比率に応じた距離とするように配置される。武器２は右手に持って扱う武器なので、基準右手添え位置のみが設定されており、基準左手添え位置は設定されていない。なお、本実施形態ではプレイヤキャラクタが左右対称としているので左手首に基づく体格比率をそのまま用いることができるが、プレイヤキャラクタが左右対称でない場合は、右手首に基づく体格比率を別途算出する必要がある。
【００８９】
画像データは、各武器を構成するポリゴンデータおよびテクスチャデータなどを含んでいる。
【００９０】
図９は、プレイヤキャラクタデータの一例を説明するための図である。
【００９１】
プレイヤキャラクタデータは、プレイヤキャラクタのキャラクタデータであり、プレイヤが編集機能を用いて基準キャラクタデータを編集することで作成される。作成されたプレイヤキャラクタデータは、例えばメモリカード１５などに記録される。プレイヤが同じプレイヤキャラクタを使用してゲームを行う場合（新たに編集機能を用いてプレイヤキャラクタを作成しない場合）は、メモリカード１５に記録されているプレイヤキャラクタデータをＲＡＭ１１１ｃに読み込んで使用する。
【００９２】
プレイヤキャラクタデータは、モデルデータおよび画像データなどを含んでいる。プレイヤキャラクタデータのモデルデータは、基準キャラクタデータのモデルデータをコピーしたものが最初に記録され、プレイヤによるプレイヤキャラクタの編集に応じて変更される。
【００９３】
モデルデータの各関節のポジションデータはプレイヤによる編集作業によって変更される。例えば、同図においては、関節ａのポジションデータは編集によって（Ｘａ’，Ｙａ’，Ｚａ’）に変更されている。また、関節間距離は、編集後の関節ｂ，ｈ，ｉ，ｊ、ｋの各ポジションデータから算出されて設定される。編集後の関節ｂ，ｈ，ｉ，ｊ、ｋの各ポジションデータをそれぞれ（Ｘｂ’，Ｙｂ’，Ｚｂ’），（Ｘｈ’，Ｙｈ’，Ｚｈ’），（Ｘｉ’，Ｙｉ’，Ｚｉ’），（Ｘｊ’，Ｙｊ’，Ｚｊ’），（Ｘｋ’，Ｙｋ’，Ｚｋ’）とすると、関節間距離は下記（２）式で算出することができる。なお、基準キャラクタの関節間距離と区別するために、プレイヤキャラクタの関節間距離はＬ’で表している。なお、関節間距離は、関節のポジションデータと下記（２）式とから算出できるので、プレイヤキャラクタデータに含めていなくてもよく、必要の都度算出するようにしてもよい。
Ｌ’＝√｛（Ｘｂ’＋Ｘｈ’＋Ｘｉ’＋Ｘｊ’＋Ｘｋ’）2
＋（Ｙｂ’＋Ｙｈ’＋Ｙｉ’＋Ｙｊ’＋Ｙｋ’）2
＋（Ｚｂ’＋Ｚｈ’＋Ｚｉ’＋Ｚｊ’＋Ｚｋ’）2｝
・・・・・  （２）
【００９４】
プレイヤは、初めてゲームを行うときなどに自分のプレイヤキャラクタを作成するために、編集画面でプレイヤキャラクタの編集を行う。編集画面は、メインメニューで「プレイヤキャラクタの編集」を選択することで開始される。編集画面において、プレイヤは編集するパーツを選択する。選択できるパーツは、例えば、左上腕、左前腕、右上腕、右前腕、左大腿、左下腿、右大腿、右下腿、腹、胸などがある。なお、選択できるパーツはこれらに限られない。本実施形態では、編集画面上に表示されている基準キャラクタの各パーツにカーソルを合わせて所定のボタンを押圧することで、プレイヤはパーツを選択することができる。選択されたパーツは、選択されたことが判るように点滅表示され、編集のためのマーカが表示される。なお、パーツの選択方法はこれに限られず、番号や文字列でパーツを指定して選択するようにしてもよい。
【００９５】
次に、プレイヤは、選択したパーツの長さ（長くするか短くするか）およびその太さ（太くするか細くするか）などを調整する。本実施形態では、選択したパーツに表示されているマーカを移動させることで、当該パーツの長さおよび太さを調整する。なお、選択したパーツの調整方法はこれに限られず、直接数字を入力することで調整するようにしてもよい。また、本実施形態では、プレイヤキャラクタが左右対称となるように、編集したパーツに対応するパーツ（例えば、右上腕を編集した場合は左上腕）にも同じ編集が自動的に行われる。なお、これに限られず、左右別々に編集できるようにしてもよい。
【００９６】
プレイヤによってプレイヤキャラクタのパーツの長さの編集が行われた場合、プレイヤキャラクタデータの所定の関節のポジションデータが変更される。例えば、右上腕の長さを変更した場合、プレイヤキャラクタの右肘の位置が変化するので、関節ｆ（右肘）のポジションデータが変更される。なお、右肘に対する右手首の相対位置は変化しないので、関節ｇ（右手首）のポジションデータは変更されない。また、プレイヤキャラクタを左右対称とするために、左上腕の長さも自動的に変更されて左肘の位置も変化するので、関節ｊ（左肘）のポジションデータも変更される。関節ｊのポジションデータが変化するので、関節間距離Ｌ’も変更される。なお、プレイヤキャラクタのパーツの太さの編集が行われた場合、プレイヤキャラクタデータの各関節のポジションデータおよび関節間距離は変更されない。
【００９７】
画像データは、基準キャラクタの画像データをコピーしたものが最初に記録され、プレイヤによるプレイヤキャラクタの編集に応じて変更される。例えば、編集されたパーツを構成するポリゴンの各頂点の座標は、当該パーツの編集内容に応じて変更される。なお、編集時には画像データを変更せず、編集内容の情報をプレイヤキャラクタデータとして記録しておき、画像生成時に当該編集内容の情報に基づいて画像データを変更して用いるようにしてもよい。
【００９８】
図１０はプレイヤキャラクタ武器データの一例を説明するための図である。
【００９９】
プレイヤキャラクタ武器データは、プレイヤキャラクタが使用している武器のデータであり、武器データ（図８参照）のうちプレイヤキャラクタが使用する武器（例えば武器１）のデータをコピーして設定される。プレイヤキャラクタ武器データのポジションデータは、プレイヤが編集機能を用いてプレイヤキャラクタデータを編集することで変更される。例えば、同図において、武器ｗのポジションデータ（Ｘｗ，Ｙｗ，Ｚｗ）はキャラクタの腕部や胴体部に関係する部位の編集に応じて（Ｘｗ’，Ｙｗ’，Ｚｗ’）に変更されている。本実施形態では、リンクデータが「ａ」である（腰関節ａ（基点）の子とされている）武器ｗは、基点からの距離が基準キャラクタの基点と武器の位置との距離に体格比率を乗算した距離となるように配置される。基準キャラクタの関節間距離（図６参照）がＬで、プレイヤキャラクタの関節間距離（図９参照）がＬ’の場合、プレイヤキャラクタの体格比率はＬ’／Ｌとなる。したがって、武器１のポジションデータが（Ｘｗ１，Ｙｗ１，Ｚｗ１）なので（図８参照）、Ｘｗ’＝Ｘｗ１・Ｌ’／Ｌ、Ｙｗ’＝Ｙｗ１・Ｌ’／Ｌ、Ｚｗ’＝Ｚｗ１・Ｌ’／Ｌとなっている。
【０１００】
作成されたプレイヤキャラクタ武器データは、プレイヤキャラクタデータと共に、例えばメモリカード１５などに記録される。プレイヤが同じプレイヤキャラクタを使用してゲームを行う場合（新たに編集機能を用いてプレイヤキャラクタを作成しない場合）は、メモリカード１５に記録されているプレイヤキャラクタ武器データをＲＡＭ１１１ｃに読み込んで使用する。なお、プレイヤキャラクタ武器データを記録することなく、プレイヤキャラクタデータ（図９参照）と武器データ（図８参照）とから演算によりその都度プレイヤキャラクタ武器データを生成するようにしてもよい。
【０１０１】
なお、本実施形態では武器もキャラクタのリンク構造の一部である例を説明しているが、武器の大きさや位置をプレイヤが直接編集することができないようにしている。武器の編集機能では、武器の色の変更や装飾品の追加および削除のみの編集を可能としている。
【０１０２】
次に、モーションデータを用いたプレイヤキャラクタの動作の再生方法について、図１１〜図１３を参照して説明する。
【０１０３】
プレイヤキャラクタの動作の再生は、プレイヤキャラクタデータ（図９参照）と基準キャラクタのモーションデータ（図１１参照）とを用いて行われる。すなわち、プレイヤキャラクタデータと基準キャラクタのモーションデータに基づいて、プレイヤキャラクタの各関節の位置データを算出したスケルトンデータをフレーム毎に生成する。スケルトンデータに応じてプレイヤキャラクタデータの各パーツを三次元仮想ゲーム空間上に配置する。これをフレーム毎に行うことでプレイヤキャラクタに所定の動作を行わせる。このとき、本実施形態では、動作が不自然な映像とならないように、スケルトンデータに補正を行っている（後述）。
【０１０４】
図１１は、基準キャラクタモーションデータの一例を説明するための図である。
【０１０５】
基準キャラクタモーションデータは、基準キャラクタのモーションデータであり、基準キャラクタの各動作を再生するためのデータである。基準キャラクタモーションデータは、プレイヤキャラクタのモーションデータとしても用いられる。基準キャラクタモーションデータは、動作（モーション）毎に設定されており、フレーム毎の各関節の位置データまたは各関節の回転角度を示すデータを含んでいる。関節ａ（基点）のデータには、ローカル座標系における位置座標であるポジションデータと、ローカル座標系における関節ａの回転角度を示すローテーションデータとが含まれている。また、関節ｂ〜ｑのデータには、ローカル座標系における各関節の回転角度を示すローテーションデータが含まれている。基準キャラクタモーションデータの各関節のローテーションデータと、プレイヤキャラクタデータ（図９参照）の各関節のポジションデータとから、各関節のローカル座標系における位置を算出することができる。このようにして関節の位置と回転角度から順に子の関節の位置を算出していく方法は、フォワードキネマティクス技術として周知なので、詳細な説明を省略する。
【０１０６】
同図に示すモーション１は両手で剣を振り下ろすモーションなので、モーションデータに武器ｗのモーションデータも含まれている。武器ｗのモーションデータには、ポジションデータとローテーションデータとが含まれている。武器ｗのポジションデータは、武器ｗの所定の部分（例えば、剣の持ち手部分の中心位置など）の位置を特定するためのデータであり、ローカル座標系における、親である関節ａの位置を基準とした相対位置を示すデータである。武器ｗのローテーションデータは、武器ｗの姿勢を特定するためのデータであり、例えば、ローカル座標系における剣の刀身の回転角度を示すデータである。本実施形態では、武器ｗのポジションデータに体格比率を乗算することで、武器ｗの位置の変更（調整）を行っている。
【０１０７】
なお、基準キャラクタモーションデータがすべてのフレームのデータを備えていなくてもよく、キーフレームのデータのみを備えておいて、線形補間やスプライン補間などで間のフレームのデータを補間するようにしてもよい。
【０１０８】
図１２は、ゲーム装置１の例えば制御部１１１で行われる、プレイヤキャラクタのモーション再生のためのスケルトンデータを生成するための処理（以下では、「スケルトンデータ生成処理」とする。）を説明するためのフローチャートである。
【０１０９】
スケルトンデータ生成処理は、フレーム毎に実施される。まず、実行される動作に対応するモーションデータの該当するフレームのデータ（例えば、図１１に示すモーション１のフレーム１の処理の場合、ポジションデータα１、ローテーションデータａ１、ローテーションデータｂ１〜ｑ１、ポジションデータβ１、およびローテーションデータｗ１）と、プレイヤキャラクタデータ（図９参照）およびプレイヤ武器データ（図１０参照）とが、ＣＰＵ１１１ａによってＲＡＭ１１１ｃから読み出されて、描画処理部１１２に入力される（Ｓ１）。
【０１１０】
次に、入力されたデータから補正前スケルトンデータが生成される（Ｓ２）。本実施形態では、スケルトンデータの補正を行うので、ステップＳ２で生成される補正前のスケルトンデータを「補正前スケルトンデータ」としている。
【０１１１】
図１３は、補正前スケルトンデータの一例を説明するための図である。
【０１１２】
補正前スケルトンデータは、各関節および武器の位置データおよび回転角度を示すデータを含んでいる。関節ａ（基点）のデータには、ポジションデータとローテーションデータとが含まれている。関節ａのポジションデータは、ローカル座標系における関節ａの位置座標であり、基準キャラクタモーションデータの関節ａのポジションデータと、基準キャラクタの脚の長さ（大腿と下腿を合わせた長さ）に対するプレイヤキャラクタの脚の長さの比率Ｔとから算出される。具体的には、基準キャラクタモーションデータの関節ａのポジションデータの各座標成分に比率Ｔを乗算したものが、補正前スケルトンデータの関節ａのポジションデータの各座標成分となる。なお、比率Ｔは、体格比率と同様に、標準姿勢をとった基準キャラクタおよびプレイヤキャラクタの脚の長さから算出されるが、詳細は省略する。補正前スケルトンデータの関節ａのローテーションデータは、基準キャラクタモーションデータの関節ａのローテーションデータを用いる。
【０１１３】
例えば、図１１に示すモーション１のフレーム１の処理の場合、補正前スケルトンデータの関節ａのポジションデータは、ポジションデータα１が（Ｘα1，Ｙα1，Ｚα1）の場合、（Ｘα1・Ｔ，Ｙα1・Ｔ，Ｚα1・Ｔ）となる。また、補正前スケルトンデータの関節ａのローテーションデータは、ローテーションデータａ１となる。
【０１１４】
関節ｂ〜ｑのデータには、ポジションデータ、ローテーションデータ、およびリンクデータが含まれている。関節ｂ〜ｑのポジションデータは、ローカル座標系における、親である関節の位置を基準とした相対位置を示すデータであり、プレイヤキャラクタデータの関節ｂ〜ｑのポジションデータと基準キャラクタモーションデータの関節ａ〜ｑのローテーションデータとからフォワードキネマティクス技術を用いて算出される。補正前スケルトンデータの関節ｂ〜ｑのローテーションデータおよびリンクデータは、それぞれ、基準キャラクタモーションデータの関節ｂ〜ｑのローテーションデータおよびプレイヤキャラクタデータの関節ｂ〜ｑのリンクデータを用いる。
【０１１５】
武器ｗのデータには、ポジションデータ、ローテーションデータ、およびリンクデータが含まれている。武器ｗのポジションデータは、ローカル座標系における、親である関節の位置を基準とした相対位置を示すデータであり、基準キャラクタモーションデータの武器ｗのポジションデータとプレイヤキャラクタの体格比率とから算出される。例えば、プレイヤキャラクタの腕が長くなるように編集されている場合、武器ｗの位置が基準キャラクタの場合と同じであると、プレイヤキャラクタが両手で武器を持ったときの動作が窮屈で不自然なものとなる（図１６のプレイヤキャラクタＰ１参照）。したがって、武器ｗの位置がプレイヤキャラクタの体格に応じた自然な位置となるように、プレイヤキャラクタの体格比率を基準キャラクタモーションデータの武器ｗのポジションデータに乗算して、補正前スケルトンデータの武器ｗのポジションデータを算出する。補正前スケルトンデータの武器ｗのローテーションデータおよびリンクデータは、それぞれ、基準キャラクタモーションデータの武器ｗのローテーションデータおよびプレイヤキャラクタ武器データのリンクデータを用いる。
【０１１６】
例えば、図１１に示すモーション１のフレーム１の処理の場合、補正前スケルトンデータの武器ｗのポジションデータは、ポジションデータβ１が（Ｘβ1，Ｙβ1，Ｚβ1）であり、プレイヤキャラクタの体格比率がＬ’／Ｌの場合、（Ｘβ1・Ｌ’／Ｌ，Ｙβ1・Ｌ’／Ｌ，Ｚβ1・Ｌ’／Ｌ）となる。また、補正前スケルトンデータの武器ｗのローテーションデータはローテーションデータｗ１となり、リンクデータは「ａ」となる。なお、この時点では、武器ｗの位置が体格比率に応じて変更されているが、プレイヤキャラクタの手が武器ｗの所定の位置に添えられていない。ステップＳ２に続くステップＳ３で、プレイヤキャラクタの手が武器ｗの所定の位置に添えられるように、スケルトンデータの補正が行われる。
【０１１７】
図１２に戻って、ステップＳ２で生成された補正前スケルトンデータに補正処理が行われる（Ｓ３）。当該補正処理は、プレイヤキャラクタの両手の位置を予め定められた添え位置に位置させるための処理であり、いわゆるインバースキネマティクスと呼ばれる方法を用いている。インバースキネマティクスは、ある関節（先端部分）の位置（例えば、手の位置）を定め、その位置を実現するために各関節の回転角度を自動的に計算して決定するものである。本実施形態では、プレイヤキャラクタ武器データ（図１０参照）の基準右手添え位置および基準左手添え位置を、それぞれプレイヤキャラクタの右手および左手の位置とし、インバースキネマティクスによって、関節ｄおよび関節ｈ（鎖骨）、関節ｅおよび関節ｉ（肩）、関節ｆおよび関節ｊ（肘）、関節ｇおよび関節ｋ（手首）の回転角度を計算し、これらの関節のローテーションデータを補正する。また、これらの関節のポジションデータも、補正後のローテーションデータに応じて補正される。以下では、補正後のスケルトンデータを「補正後スケルトンデータ」とする。
【０１１８】
なお、プレイヤキャラクタ武器データの基準右手添え位置および基準左手添え位置とは異なる位置にプレイヤキャラクタの手を添えた動作を行わせる場合には、モーションデータに右手添え位置および左手添え位置を設定しておき、基準添え位置ではない添え位置に手を添えるようにすればよい。なお、武器データ（図８参照）やプレイヤキャラクタ武器データ（図１０参照）に基準右手添え位置および基準左手添え位置を設定せず、基準キャラクタモーションデータのモーション毎に右手添え位置および左手添え位置を設定するようにしてもよい。
【０１１９】
次に、補正後スケルトンデータの座標変換が行われ（Ｓ４）、スケルトンデータ生成処理は終了される。当該座標変換は、ローカル座標系の位置データおよび回転角度データをワールド座標系の位置データおよび回転角度データに変換するものである。これにより、ローカル座標系におけるデータである補正後スケルトンデータが、ワールド座標系のデータに変換される。なお、ワールド座標系は、三次元仮想ゲーム空間上に設定された固定の座標系であり、三次元仮想ゲーム空間上での位置や向きを表すために用いられる。ステップＳ４の座標変換では、プレイヤキャラクタの「現在位置データ」および「現在向きデータ」が用いられる。
【０１２０】
「現在位置データ」および「現在向きデータ」は、それぞれ、ワールド座標系におけるプレイヤキャラクタの位置および向き（正確には、プレイヤキャラクタに設定されているローカル座標系の原点の位置およびローカル座標系の向き）を示すデータであり、ＲＡＭ１１１ｃに記録されている。「現在位置データ」および「現在向きデータ」は、プレイヤキャラクタが三次元仮想ゲーム空間上を移動することで更新される。例えば、プレイヤキャラクタが走って移動する場合、「現在位置データ」および「現在向きデータ」に基づくローカル座標系を基準として走るモーションが実行される。当該走るモーションが終了したとき（最後のフレームが処理されたとき）のプレイヤキャラクタのワールド座標系における位置および向きに基づいて、「現在位置データ」および「現在向きデータ」が更新される。プレイヤキャラクタが走って移動している間、走るモーションの実行と「現在位置データ」および「現在向きデータ」の更新とが繰り返される。
【０１２１】
描画処理部１１２は、最終的に、ワールド座標系のデータに変換された補正後スケルトンデータと、ワールド座標系のデータに変換された画像データなどを用いて、ゲーム画像のデータを作成する。フレーム毎に作成されたゲーム画像のデータが、映像信号としてモニタ１３に出力されて、プレイヤキャラクタの動作の映像がモニタ１３に表示される。
【０１２２】
本実施形態によると、基準キャラクタモーションデータの武器ｗのポジションデータをプレイヤキャラクタの体格比率に応じて変化させたものが、スケルトンデータに用いられる。したがって、プレイヤキャラクタの体格に応じた自然な位置に武器を配置することができる。さらに、本実施形態によると、プレイヤキャラクタの両手が武器の所定の位置に配置されるように、スケルトンデータが補正される。したがって、プレイヤキャラクタの両手を武器の所定の位置に配置することができる。これにより、基準キャラクタとは体格の異なるプレイヤキャラクタに、共通の基準キャラクタモーションデータを用いた場合でも、プレイヤキャラクタの動作が不自然な映像となることを抑制することができる。
【０１２３】
なお、上記実施形態では、標準姿勢における腰関節ａ（基点）と左手首ｋとの距離を関節間距離とする場合について説明したが、これに限られない。例えば、関節間距離を、基点と左肘や左肩との距離としてもよいし、基点と右手首や右肘、右肩との距離としてもよい。また、基点からの距離に限定されず、基点とは異なる関節（例えば胴関節ｂや首ｃなど）からの距離としてもよい。また、右手首から左手首までの距離などとしてもよい。また、関節間の距離に限定されず、例えば、胸部の中心から上腕の中心までの距離や右手先から左手先までの距離としてもよい。また、標準姿勢はキャラクタが両手を広げて直立した姿勢に限定されない。例えば、両手を下に伸ばした直立姿勢や両手を上に伸ばした直立姿勢などであってもよい。なお、関節間距離を例えば左肩から左肘までの距離などにした場合は、姿勢に関係なく一定の距離になるので、標準姿勢をとるまでもない。
【０１２４】
上記実施形態では、基準キャラクタモーションデータの武器のポジションデータに体格比率を乗算することでプレイヤキャラクタの武器のポジションデータを算出し、これによりプレイヤキャラクタの腰関節と武器の位置との距離を基準キャラクタの腰関節と武器の位置との距離に体格比率を乗算したものとしているが、これに限られない。他の方法でプレイヤキャラクタの腰関節と武器の位置との距離を体格比率に応じたものとしてもよい。また、体格比率を乗算することに限られず、他の計算方法としてもよい。例えば、体格比率に所定の調整値を乗算した値を乗算するようにしてもよいし、所定の演算式に基づいて腰関節と武器の位置との距離を算出するようにしてもよい。
【０１２５】
上記実施形態では、編集機能によって編集されたプレイヤキャラクタに基準キャラクタのモーションデータを用いる場合について説明したが、これに限られない。例えば、予め用意された体格の異なるキャラクタ（プレイヤキャラクタ、敵キャラクタ、その他のキャラクタを含む。）に共通のモーションデータを用いる場合にも、本発明を適用することができる。なお、完全にリンク構造が一致するキャラクタ同士であることに限定されず、基準キャラクタのリンク構造の一部と同一のリンク構造を有するキャラクタに基準キャラクタのモーションデータを用いる場合でも、本発明を適用することができる場合がある。例えば、両手のリンク構造が同一であれば、片足のキャラクタや頭のないキャラクタ、羽根や尻尾があるキャラクタであっても、剣を両手で振り下ろす基準キャラクタのモーションデータを用いることができ、この場合にも本発明を適用することができる。つまり、共通のモーションデータを用いることができる場合に、本発明を適用することができる。
【０１２６】
上記実施形態では、基準キャラクタおよびプレイヤキャラクタが人のキャラクタである場合について説明したが、これに限られない。基準キャラクタおよび基準キャラクタのモーションデータを用いるキャラクタが人以外のキャラクタ（例えば、ロボットやモンスター、動物、その他の生物など）であっても、本発明を適用することができる。また、二足歩行のキャラクタに限定されず、四足歩行のキャラクタや、空を飛ぶキャラクタなどであっても、本発明を適用することができる。つまり、リンク構造が人のキャラクタのリンク構造とは異なるキャラクタであっても、少なくとも一部のリンク構造が同一であり共通のモーションデータを用いることができる場合に、本発明を適用することができる。
【０１２７】
上記実施形態では、プレイヤキャラクタが両手で剣を振り下ろす場合について説明したが、これに限られず、片手で剣を扱う場合にも本発明を適用することができる。また、剣以外の武器（例えば、槍やハンマーなど）をキャラクタが扱う場合や、武器以外のアイテム（例えば、傘、杖、バット、ゴルフクラブ、ボールなど）をキャラクタが扱う場合などにも、本発明を適用することができる。また、キャラクタが他のキャラクタを扱う場合（例えば、投げ飛ばしたり、首を絞めたり、握手をしたりする場合）などにも、本発明を適用することができる。
【０１２８】
また、アイテムやキャラクタなどのオブジェクトを扱う場合に限られず、キャラクタが両手を合わせる場合（例えば、合掌したり、拍手をする場合）などにも、本発明を適用することができる。この場合は、基準キャラクタモーションデータ（図１１参照）に武器ｗのポジションデータを設定する代わりに、基準キャラクタの両手を合わせるための目標点のポジションデータを設定する。すなわち、当該目標点のローカル座標系における、親である関節ａの位置を基準とした相対位置を示すデータをポジションデータとして設定しておき、当該目標点の位置をプレイヤキャラクタの体格比率に応じて変化させ、プレイヤキャラクタの両手を当該目標点に応じた位置に合わせる補正を行う。これにより、プレイヤキャラクタの体格に応じた自然な位置で、プレイヤキャラクタの両手を合わせることができる。この場合、「目標点の位置」が本発明の「表示キャラクタに関する部位以外の所定の位置」に対応するものである。
【０１２９】
また、キャラクタが手で扱う場合に限られず、キャラクタが足でオブジェクトを扱う場合（例えば、サッカーのドリブルや敵を蹴り飛ばす場合）などにも、本発明を適用することができる。この場合は、関節間距離を基点と足首との距離などとして体格比率を算出して用い、補正処理（図１２ステップＳ３参照）においては、関節ｌおよび関節ｏ（股関節）、関節ｍおよび関節ｐ（膝）、関節ｎおよび関節ｑ（足首）のローテーションデータをインバースキネマティクスによって補正すればよい。
【０１３０】
上記実施形態では、プレイヤキャラクタが左右対称の場合について説明したが、これに限られず、プレイヤキャラクタが左右非対称の場合にも本発明を適用することができる。ただし、プレイヤキャラクタが左右非対称の場合に両手で剣を振り下ろす動作などを行った場合、不自然な映像となる場合がある。したがって、プレイヤキャラクタが片手で剣を振り下ろす動作などに限定して、本発明を適用すべきである。例えば、剣を振り下ろす方の手首と基点との距離から算出された体格比率を用いて本発明を適用すれば、プレイヤキャラクタが片手で剣を振り下ろす動作を自然な映像とすることができる。
【０１３１】
上記実施形態では、アクションゲームを例に説明したが、これに限られない。例えば、スポーツゲーム、ＲＰＧ（ロールプレイングゲーム）、シューティングゲーム、格闘ゲーム、アドベンチャーゲームなどの様々なジャンルのゲームにおいても、本発明を適用することができる。また、本発明は、複数のプレイヤの操作するキャラクタ若しくはＣＰＵの制御するキャラクタがチームを組んで協同して敵キャラクタと対戦するようなゲームや、敵キャラクタとしての他のプレイヤの操作するキャラクタと対戦するようなゲームにも適用することができる。
【０１３２】
上記実施形態では、家庭用ゲーム装置でゲームを実施する場合について説明したが、これに限られない。本発明は、例えば、アーケードゲーム装置、携帯型ゲーム装置、および、ゲームソフトが搭載されているパーソナルコンピュータなどでゲームを実施する場合にも適用することができる。
【０１３３】
上記実施形態では、本発明をゲームプログラムに適用した場合について説明したが、ゲーム以外のプログラムに適用してもよい。本発明は、モーションデータに基づいてキャラクタなどの動作を表示するあらゆるプログラムに適用することができる。
【０１３４】
本発明に係るプログラム、当該プログラムを記録した記録媒体、および、当該プログラムを実行するコンピュータは、上述した実施形態に限定されるものではない。本発明に係るプログラム、当該プログラムを記録した記録媒体、および、当該プログラムを実行するコンピュータの具体的な構成は、種々に設計変更自在である。
【符号の説明】
【０１３５】
１  ゲーム装置
１１  本体
１１１  制御部
１１１ａ  ＣＰＵ（基準キャラクタ情報読出手段、第２キャラクタ情報読出手段、キャラクタ制御手段）
１１１ｂ  ＲＯＭ
１１１ｃ  ＲＡＭ（記憶手段）
１１２  描画処理部
１１３  音声処理部
１１４  ディスクドライブユニット
１１５  メモリカード接続ユニット
１１６  Ｉ／Ｏインターフェース部
１１７  通信処理部
１１８  信号送受信部
１２  操作コントローラ
１３  モニタ
１４  ディスク
１５  メモリカード
１６  ネットワークアダプタ
２  ネットワーク回線
【図３】
0005491971.tif 000002
【図６】
0005491971.tif 000003
【図７】
0005491971.tif 000004
【図８】
0005491971.tif 000005
【図９】
0005491971.tif 000006
【図１０】
0005491971.tif 000007
【図１１】
0005491971.tif 000008
【図１２】
0005491971.tif 000009
【図１３】
0005491971.tif 000010
【図１４】
0005491971.tif 000011
【図１５】
0005491971.tif 000012
【図１６】
0005491971.tif 000013
【図１】
0005491971.tif 000014
【図２】
0005491971.tif 000015
【図４】
0005491971.tif 000016
【図５】
0005491971.tif 000017