(57)【特許請求の範囲】
【請求項１】
仮想空間において特定のキャラクタが他のキャラクタに接触するモーションを実行する場面を表示させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
前記他のキャラクタに対し、前記他のキャラクタの各部位と互いに対応関係にある部位で構成される標準形態モデルが対応付けられており、プレイヤによる操作入力に応答して、前記特定のキャラクタの所定の部位を、前記標準形態モデルの所定の部位に接触させるためのモーションを決定し、
前記決定されたモーションが接触の目標とする前記標準形態モデルの所定の部位と、当該部位に対応する前記他のキャラクタの部位との位置関係を取得し、
前記取得された位置関係を用いて前記決定されたモーションを補正し、当該補正されたモーションで動作する前記特定のキャラクタを画面表示させること、
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２】
前記決定されたモーションの補正では、前記特定のキャラクタの所定の部位の位置の補正量が前記取得された位置関係に応じた量となるまで、前記特定のキャラクタの所定の部位の位置を徐々に補正することを特徴とする請求項１記載の記録媒体。
【請求項３】
仮想空間において特定のキャラクタが他のキャラクタに接触するモーションを実行する場面を表示させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、プレイヤによる操作入力に応答して、前記特定のキャラクタに対応して定義され且つ同じ姿勢を示す第１の標準形態モデルの所定の部位を、他のキャラクタに対応して定義され且つ同じ姿勢を示す第２の標準形態モデルの所定の部位に接触させるための特定のモーションを決定し、
前記第２の標準形態モデルの所定の部位と前記他のキャラクタにおいて対応する所定の部位との相対的な位置関係を取得し、
取得された前記相対的な位置関係を用いて前記特定のモーションを補正し、当該補正された特定のモーションを前記特定のキャラクタに実行させることにより、前記第１の標準形態モデルの所定の部位に対応する前記特定のキャラクタの所定の部位を前記第２の標準形態モデルの所定の部位に対応する前記他のキャラクタの所定の部位に接触させるためのモーションを実行する場面を表示させること、
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項４】
前記第１及び第２の標準形態モデルは、それぞれ標準サイズの第１及び第２のスケルトン・モデルであり、
前記第２の標準形態モデルの所定の部位は、前記第２のスケルトン・モデルにおいて予め定められたボーンを所定の比率にて内分した位置であり、
前記第２の標準形態モデルの所定の部位に対応する前記他のキャラクタの所定の部位は、前記第２のスケルトン・モデルの前記予め定められたボーンと同じ前記他のキャラクタにおけるボーンを前記第２のスケルトン・モデルと同じ所定の比率にて内分した位置であることを特徴とする請求項３記載のコンピュータ読み取り可能な記録媒体。
【請求項５】
前記特定のモーションの補正は、取得された前記相対的な位置関係に基づき前記第１の標準形態モデルの位置を変更し、変更された前記第１の標準形態モデルの位置に配置されるようにインバース・キネマティクス処理を実施することにより行われることを特徴とする請求項３記載のコンピュータ読み取り可能な記録媒体。
【請求項６】
前記特定のモーションの補正は、補間フレーム毎に、
取得された前記相対的な位置関係に基づき前記第１の標準形態モデルの位置を変更し、変更された前記第１の標準形態モデルの位置を当該補間フレームの補間割合分修正し、当該修正された前記第１の標準形態モデルの位置に配置されるようにインバース・キネマティクス処理を実施することにより行われることを特徴とする請求項３記載のコンピュータ読み取り可能な記録媒体。
【請求項７】
各モーションに対応して、前記第１の標準形態モデルの所定の部位を前記第２の標準形態モデルの所定の部位に接触させるためのモーション・データが予め用意されており、
前記特定のモーションが決定されると対応するモーション・データが取得されることを特徴とする請求項３記載のコンピュータ読み取り可能な記録媒体。
【請求項８】
キャラクタのモーションを制御するゲームのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
一キャラクタが他のキャラクタの所定の部位をつかむ第１のモーションを表示させる場合に、前記一キャラクタに対応して定義され且つ同じ姿勢を示す第１の標準形態モデルが前記他のキャラクタに対応して定義され且つ同じ姿勢を示す第２の標準形態モデルにおける前記所定の部位に対応する部位をつかむ第２のモーションの手の位置の到達点と、前記他のキャラクタの前記所定の部位とのずれ量を判断し、
前記判断されたずれ量に応じて、前記第２のモーションの手の位置を補正し、
前記補正された第２のモーションの手の位置と、前記一キャラクタに前記第２のモーションを適用した場合における手の位置との差に応じて、前記第１のモーションのためのデータを生成し、
生成された前記第１のモーションのためのデータを用いて、前記一キャラクタが前記他のキャラクタの前記所定の部位をつかむ動作を表示させること、
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項９】
仮想空間において特定のキャラクタが他のキャラクタに接触するモーションを実行する場面を表示する方法であって、
前記他のキャラクタに対し、前記他のキャラクタの各部位と互いに対応関係にある部位で構成される標準形態モデルが対応付けられており、プレイヤによる操作入力に応答して、前記特定のキャラクタの所定の部位を、前記標準形態モデルの所定の部位に接触させるためのモーションを決定し、
前記決定されたモーションが接触の目標とする前記標準形態モデルの所定の部位と、当該部位に対応する前記他のキャラクタの部位との位置関係を取得し、
前記取得された位置関係を用いて前記決定されたモーションを補正し、当該補正されたモーションで動作する前記特定のキャラクタを画面表示する方法。
【請求項１０】
前記決定されたモーションの補正では、前記特定のキャラクタの所定の部位の位置の補正量が前記取得された位置関係に応じた量となるまで、前記特定のキャラクタの所定の部位の位置を徐々に補正することを特徴とする請求項９記載の方法。
【請求項１１】
仮想空間において特定のキャラクタが他のキャラクタに接触するモーションを実行する場面を表示する方法であって、
プレイヤによる操作入力に応答して、前記特定のキャラクタに対応して定義され且つ同じ姿勢を示す第１の標準形態モデルの所定の部位を、他のキャラクタに対応して定義され且つ同じ姿勢を示す第２の標準形態モデルの所定の部位に接触させるための特定のモーションを決定し、
前記第２の標準形態モデルの所定の部位と前記他のキャラクタにおいて対応する所定の部位との相対的な位置関係を取得し、
取得された前記相対的な位置関係を用いて前記特定のモーションを補正し、当該補正された特定のモーションを前記特定のキャラクタに実行させることにより、前記第１の標準形態モデルの所定の部位に対応する前記特定のキャラクタの所定の部位を前記第２の標準形態モデルの所定の部位に対応する前記他のキャラクタの所定の部位に接触させるためのモーションを実行する場面を表示する方法。
【請求項１２】
前記第１及び第２の標準形態モデルは、それぞれ標準サイズの第１及び第２のスケルトン・モデルであり、
前記第２の標準形態モデルの所定の部位は、前記第２のスケルトン・モデルにおいて予め定められたボーンを所定の比率にて内分した位置であり、
前記第２の標準形態モデルの所定の部位に対応する前記他のキャラクタの所定の部位は、前記第２のスケルトン・モデルの前記予め定められたボーンと同じ前記他のキャラクタにおけるボーンを前記第２のスケルトン・モデルと同じ所定の比率にて内分した位置であることを特徴とする請求項１１記載の方法。
【請求項１３】
前記特定のモーションの補正は、取得された前記相対的な位置関係に基づき前記第１の標準形態モデルの位置を変更し、変更された前記第１の標準形態モデルの位置に配置されるようにインバース・キネマティクス処理を実施することにより行われることを特徴とする請求項１１記載の方法。
【請求項１４】
前記特定のモーションの補正は、補間フレーム毎に、
取得された前記相対的な位置関係に基づき前記第１の標準形態モデルの位置を変更し、変更された前記第１の標準形態モデルの位置を当該補間フレームの補間割合分修正し、当該修正された前記第１の標準形態モデルの位置に配置されるようにインバース・キネマティクス処理を実施することにより行われる
ことを特徴とする請求項１１記載の方法。
【請求項１５】
各モーションに対応して、前記第１の標準形態モデルの所定の部位を前記第２の標準形態モデルの所定の部位に接触させるためのモーション・データが予め用意されており、
前記特定のモーションが決定されると対応するモーション・データが取得されることを特徴とする請求項１１記載の方法。
【請求項１６】
キャラクタのモーションを制御するゲームの処理方法であって、
一キャラクタが他のキャラクタの所定の部位をつかむ第１のモーションを表示させる場合に、前記一キャラクタに対応して定義され且つ同じ姿勢を示す第１の標準形態モデルが前記他のキャラクタに対応して定義され且つ同じ姿勢を示す第２の標準形態モデルにおける前記所定の部位に対応する部位をつかむ第２のモーションの手の位置の到達点と、前記他のキャラクタの前記所定の部位とのずれ量を判断し、
前記判断されたずれ量に応じて、前記第２のモーションの手の位置を補正し、
前記補正された第２のモーションの手の位置と、前記一キャラクタに前記第２のモーションを適用した場合における手の位置との差に応じて、前記第１のモーションのためのデータを生成し、
生成された前記第１のモーションのためのデータを用いて、前記一キャラクタが前記他のキャラクタの前記所定の部位をつかむ動作を表示する方法。
【請求項１７】
仮想空間において特定のキャラクタが他のキャラクタに接触するモーションを実行する場面を表示させるゲーム装置であって、
プログラムにしたがってゲームを実行するユニットと、
前記プログラムを全部もしくは一部を格納するメモリと、
前記ユニットで実行されるゲームを表示する表示画面と、
を備え、
前記ユニットは、
前記メモリに格納されたプログラムにしたがって、
前記他のキャラクタに対し、前記他のキャラクタの各部位と互いに対応関係にある部位で構成される標準形態モデルが対応付けられており、プレイヤによる操作入力に応答して、前記特定のキャラクタの所定の部位を、前記標準形態モデルの所定の部位に接触させるためのモーションを決定し、
前記決定されたモーションが接触の目標とする前記標準形態モデルの所定の部位と、当該部位に対応する前記他のキャラクタの部位との位置関係を取得し、
前記取得された位置関係を用いて前記決定されたモーションを補正し、当該補正されたモーションで動作する前記特定のキャラクタを画面表示させる、
ことを特徴とするゲーム装置。
【請求項１８】
前記決定されたモーションの補正では、前記特定のキャラクタの所定の部位の位置の補正量が前記取得された位置関係に応じた量となるまで、前記特定のキャラクタの所定の部位の位置を徐々に補正することを特徴とする請求項１７記載のゲーム装置。
【請求項１９】
仮想空間において特定のキャラクタが他のキャラクタに接触するモーションを実行する場面を表示させるゲーム装置であって、
プログラムにしたがってゲームを実行するユニットと、
前記プログラムを全部もしくは一部を格納するメモリと、
前記ユニットで実行されるゲームを表示する表示画面と、
を備え、
前記ユニットは、
前記メモリに格納されたプログラムにしたがって、
プレイヤによる操作入力に応答して、前記特定のキャラクタに対応して定義され且つ同じ姿勢を示す第１の標準形態モデルの所定の部位を、他のキャラクタに対応して定義され且つ同じ姿勢を示す第２の標準形態モデルの所定の部位に接触させるための特定のモーションを決定し、
前記第２の標準形態モデルの所定の部位と前記他のキャラクタにおいて対応する所定の部位との相対的な位置関係を取得し、
取得された前記相対的な位置関係を用いて前記特定のモーションを補正し、当該補正された特定のモーションを前記特定のキャラクタに実行させることにより、前記第１の標準形態モデルの所定の部位に対応する前記特定のキャラクタの所定の部位を前記第２の標準形態モデルの所定の部位に対応する前記他のキャラクタの所定の部位に接触させるためのモーションを実行する場面を表示させる、
ことを特徴とするゲーム装置。
【請求項２０】
キャラクタのモーションを制御するゲーム装置であって、
プログラムにしたがってゲームを実行するユニットと、
前記プログラムを全部もしくは一部を格納するメモリと、
前記ユニットで実行されるゲームを表示する表示画面と、
を備え、
前記ユニットは、
前記メモリに格納されたプログラムにしたがって、
一キャラクタが他のキャラクタの所定の部位をつかむ第１のモーションを表示させる場合に、前記一キャラクタに対応して定義され且つ同じ姿勢を示す第１の標準形態モデルが前記他のキャラクタに対応して定義され且つ同じ姿勢を示す第２の標準形態モデルにおける前記所定の部位に対応する部位をつかむ第２のモーションの手の位置の到達点と、前記他のキャラクタの前記所定の部位とのずれ量を判断し、
前記判断されたずれ量に応じて、前記第２のモーションの手の位置を補正し、
前記補正された第２のモーションの手の位置と、前記一キャラクタに前記第２のモーションを適用した場合における手の位置との差に応じて、前記第１のモーションのためのデータを生成し、
生成された前記第１のモーションのためのデータを用いて、前記一キャラクタが前記他のキャラクタの前記所定の部位をつかむ動作を表示させる、
ことを特徴とするゲーム装置。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、ビデオゲームにおいて、操作入力に応答してあるキャラクタが他のキャラクタに接触するモーションを実行する場面を表示するための技術に関する。
【０００２】
【従来の技術】
格闘ゲーム等では、プレイヤが操作する自キャラクタが敵キャラクタへ攻撃を加えるための複数の技が用意されている。例えば自キャラクタの手や足等を、敵キャラクタの特定の部位（攻撃目標位置）、例えば胸等に当てる技が用意されている。このような技がプレイヤの操作入力により指定されると、自キャラクタは敵キャラクタの攻撃目標位置に対して攻撃を加えるための所定のモーションにて動作する。敵キャラクタと自キャラクタの相対的な位置関係が常に変わらないならば、自キャラクタのモーションの変更は無い。しかし、敵キャラクタと自キャラクタの相対的な位置関係は一定でないことが多い。
【０００３】
そこで、敵キャラクタと自キャラクタの相対的な位置関係に応じて、自キャラクタのモーションを変更する技術が、例えば国際公開ＷＯ９７／４６２９５号公報に開示されている。この公報には、２つのキャラクタの間に高低差がある場合、この高低差を補正して低い位置にいるキャラクタからの殴打を高い方向に向けて繰り出させることが記載されている。
【０００４】
【発明が解決しようとする課題】
格闘ゲームの中でもレスリング・ゲームのように、実在のレスラーを模したキャラクタを表示させて格闘を行わせるゲームがある。このようなゲームでは、キャラクタ・モデルの大きさを実在のレスラーの体格に合わせることで、リアルな格闘シーンを表現できるようになる。但し、キャラクタ毎にその大きさが異なる場合、対戦相手によって、攻撃を加えるキャラクタと、攻撃を受けるキャラクタにおける攻撃目標との相対的な位置関係も異なる。上で述べたＷＯ９７／４６２９５号公報ではキャラクタの大きさは考慮されていない。そこで、各キャラクタの体型を考慮したモーションで各キャラクタを動作させるための技術が望まれている。
【０００５】
よって、本発明の目的は、各キャラクタの体型を考慮した自然なモーションで各キャラクタを動作させるための技術を提供することである。
【０００６】
【課題を解決するための手段】
本発明の第１の態様に係る、仮想空間において特定のキャラクタが他のキャラクタに接触するモーションを実行する場面を表示する方法においては、他のキャラクタに対し、他のキャラクタの各部位と互いに対応関係にある部位で構成される標準形態モデルが対応付けられており、プレイヤによる操作入力に応答して、特定のキャラクタの所定の部位を、標準形態モデルの所定の部位に接触させるためのモーションを決定し、決定されたモーションが接触の目標とする標準形態モデルの所定の部位と、当該部位に対応する他のキャラクタの部位との位置関係を取得し、取得された位置関係を用いて決定されたモーションを補正し、当該補正されたモーションで動作する特定のキャラクタを画面表示する。
【０００７】
なお、上で述べたモーションの補正では、特定のキャラクタの所定の部位の位置の補正量が上記取得された位置関係に応じた量となるまで、特定のキャラクタの所定の部位の位置を徐々に補正するような構成も可能である。
【０００８】
本発明の第２の態様に係る、仮想空間において特定のキャラクタが他のキャラクタに接触するモーションを実行する場面を表示する方法においては、プレイヤによる操作入力に応答して、特定のキャラクタに対応して定義され且つ同じ姿勢を示す第１の標準形態モデル（例えば実施の形態におけるベース・スケルトン・モデル）の所定の部位を、他のキャラクタに対応して定義され且つ同じ姿勢を示す第２の標準形態モデルの所定の部位に接触させるための特定のモーションを決定し、第２の標準形態モデルの所定の部位と他のキャラクタにおいて対応する所定の部位との相対的な位置関係を取得し、取得された相対的な位置関係を用いて特定のモーションを補正し、当該補正された特定のモーションを特定のキャラクタに実行させることにより、第１の標準形態モデルの所定の部位に対応する特定のキャラクタの所定の部位を第２の標準形態モデルの所定の部位に対応する他のキャラクタの所定の部位に接触させるためのモーションを実行する場面を表示する。
【０００９】
このように、自キャラクタである特定のキャラクタに対応して第１の標準形態モデルが、敵キャラクタである他のキャラクタに対応して第２の標準形態モデルが用意され、標準形態モデル間による特定のモーションが決定される。この標準形態モデル間による特定のモーションが、他のキャラクタと第２の標準形態モデルとの体格差を表す、第２の標準形態モデルの所定の部位と他のキャラクタにおいて対応する所定の部位との相対的な位置関係を用いて補正される。これにより、自キャラクタである特定のキャラクタは、敵キャラクタである他のキャラクタに対して例えば適切な攻撃を加えることができるようになる。すなわち、特定のキャラクタの所定の部位を他のキャラクタの所定の部位に接触させるためのモーションが実行される。
【００１０】
なお、上で述べた第１及び第２の標準形態モデルを、それぞれ標準サイズの第１及び第２のスケルトン・モデルとし、第２の標準形態モデルの所定の部位を、第２のスケルトン・モデルにおいて予め定められたボーンを所定の比率にて内分した位置とし、第２の標準形態モデルの所定の部位に対応する他のキャラクタの所定の部位を、第２のスケルトン・モデルの予め定められたボーンと同じ他のキャラクタにおけるボーンを第２のスケルトン・モデルと同じ所定の比率にて内分した位置とすることも可能である。これにて、例えば攻撃を受ける他のキャラクタの所定の部位は、第２の標準形態モデルにおける体の位置と同じになる。
【００１１】
上で述べた特定のモーションの補正を、取得された相対的な位置関係に基づき第１の標準形態モデルの位置を変更し、変更された第１の標準形態モデルの位置に配置されるようにインバース・キネマティクス処理を実施することにより行うような構成も可能である。インバース・キネマティクス処理によって、スケルトン・モデルにおけるボーンの角度等の情報が簡単に計算できるようになる。
【００１２】
また、上で述べた特定のモーションの補正を、補間フレーム毎に、取得された相対的な位置関係に基づき第１の標準形態モデルの位置を変更し、変更された第１の標準形態モデルの位置を当該補間フレームの補間割合分修正し、当該修正された第１の標準形態モデルの位置に配置されるようにインバース・キネマティクス処理を実施することにより行うような構成も可能である。複数フレームにて特定のモーションの補正を行う場合の処理を表すものである。
【００１３】
さらに、各モーションに対応して、第１の標準形態モデルの所定の部位を第２の標準形態モデルの所定の部位に接触させるためのモーション・データを予め用意しておき、特定のモーションが決定されると対応するモーション・データが取得されるようにする構成も可能である。標準形態モデルによるモーション・データを、様々なキャラクタに使用できるようになる。
【００１４】
本発明の第３の態様に係る、キャラクタのモーションを制御するゲームの処理方法においては、一キャラクタが他のキャラクタの所定の部位をつかむモーションを表示させる場合に、他のキャラクタに対応付けて予め定義された体格を表すデータに応じて、当該つかむモーションの手の位置の到達点と、他のキャラクタの所定の部位とのずれ量を判断し、当該判断されたずれ量に応じて、つかむモーションの手の位置を補正し、補正されたモーションにより、一キャラクタが他のキャラクタの所定の部位をつかむ動作を表示させる。
【００１５】
本発明の第１乃至第３の態様に係る方法をコンピュータに実行させるプログラムを作成することは可能である。その際、第２の態様に対する上記のような変形は、当該プログラムに対しても応用可能である。本発明に係るプログラムは、例えばＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  −  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、フロッピーディスク、メモリカートリッジ、メモリ、ハードディスクなどの記録媒体又は記憶装置に格納される。記録媒体又は記憶装置に格納されるプログラムをコンピュータに読み込ませることで以下で述べるゲーム装置を実現できる。また、記録媒体によって本発明に係るプログラムをソフトウエア製品として装置と独立して容易に配布、販売することができるようになる。さらに、コンピュータなどのハードウエアを用いて本発明に係るプログラムを実行することにより、コンピュータ等のハードウエアで本発明の技術が容易に実施できるようになる。
【００１６】
本発明の第４の態様に係る、仮想空間において特定のキャラクタが他のキャラクタに接触するモーションを実行する場面を表示させるゲーム装置は、プログラムにしたがってゲームを実行するユニットと、プログラムを全部もしくは一部を格納するメモリと、ユニットで実行されるゲームを表示する表示画面とを備える。そして、上で述べたユニットは、メモリに格納されたプログラムにしたがって、他のキャラクタに対し、他のキャラクタの各部位と互いに対応関係にある部位で構成される標準形態モデルが対応付けられており、プレイヤによる操作入力に応答して、特定のキャラクタの所定の部位を、標準形態モデルの所定の部位に接触させるためのモーションを決定し、決定されたモーションが接触の目標とする標準形態モデルの所定の部位と、当該部位に対応する他のキャラクタの部位との位置関係を取得し、取得された位置関係を用いて決定されたモーションを補正し、当該補正されたモーションで動作する前記特定のキャラクタを画面表示させる。
【００１７】
なお、上で述べた決定されたモーションの補正では、特定のキャラクタの所定の部位の位置の補正量が取得された位置関係に応じた量となるまで、特定のキャラクタの所定の部位の位置を徐々に補正するような構成とすることも可能である。
【００１８】
本発明の第５の態様に係るゲーム装置においては、プログラムしたがってゲームを実行するユニットが、メモリに格納されたプログラムにしたがって、プレイヤによる操作入力に応答して、プレイヤが操作している特定のキャラクタに対応して定義され且つ同じ姿勢を示す第１の標準形態モデルの所定の部位を、他のキャラクタに対応して定義され且つ同じ姿勢を示す第２の標準形態モデルの所定の部位に接触させるための特定のモーションを決定し、第２の標準形態モデルの所定の部位と前記他のキャラクタにおいて対応する所定の部位との相対的な位置関係を取得し、取得された相対的な位置関係を用いて特定のモーションを補正し、当該補正された特定のモーションを特定のキャラクタに実行させることにより、第１の標準形態モデルの所定の部位に対応する特定のキャラクタの所定の部位を第２の標準形態モデルの所定の部位に対応する他のキャラクタの所定の部位に接触させるためのモーションを実行する場面を表示させる。
【００１９】
本発明の第２の態様に係る変形を、本発明の第５の形態に係るゲーム装置に応用することができる。
【００２０】
また本発明の第６の形態に係る、キャラクタのモーションを制御するゲーム装置は、プログラムにしたがってゲームを実行するユニットと、プログラムを全部もしくは一部を格納するメモリと、ユニットで実行されるゲームを表示する表示画面とを備える。そして、上で述べたユニットは、メモリに格納されたプログラムにしたがって、一キャラクタが他のキャラクタの所定の部位をつかむモーションを表示させる場合に、他のキャラクタに対応付けて予め定義された体格を表すデータに応じて、つかむモーションの手の位置の到達点と、他のキャラクタの所定の部位とのずれ量を判断し、当該判断されたずれ量に応じて、つかむモーションの手の位置を補正し、補正されたモーションにより、一キャラクタが他のキャラクタの前記所定の部位をつかむ動作を表示させる。
【００２１】
【発明の実施の形態】
以下に、本発明の一実施の形態として、プロレスゲームに本発明を適用した場合の例について説明する。
【００２２】
本実施の形態をコンピュータ・プログラムにより実施する場合において当該コンピュータ・プログラムを実行する家庭用ゲーム機１０１の一例を図１に示す。家庭用ゲーム機１０１は、例えば内部バス１１９に接続されたＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０３、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０４、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０５、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０７、サウンド処理部１０９、グラフィックス処理部１１１、ＣＤ−ＲＯＭドライブ１１３、通信インターフェース１１５、及びインターフェース部１１７を備える。グラフィックス処理部１１１は、フレームバッファ１１２を備える。フレームバッファ１１２はＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）と示す場合もある。
【００２３】
家庭用ゲーム機１０１のサウンド処理部１０９及びグラフィックス処理部１１１は表示画面１２０及びスピーカ１２２を有するＴＶセット１２１に接続されている。また、ＣＤ−ＲＯＭドライブ１１３には着脱可能なＣＤ−ＲＯＭ１３１が装着される。ＣＤ−ＲＯＭ１３１には、本発明の一実施の形態にかかるゲームプログラム１３３及びデータ１３５が記録されている。通信インターフェース１１５はネットワーク１５１と通信媒体１４１を介して接続される。インターフェース部１１７には、操作ボタン及びジョイスティック１６１ａを備えたキーパッド１６１及びメモリカード１７１が接続される。
【００２４】
ＣＰＵ１０３は、ＲＯＭ１０４に格納されたプログラム、及びＣＤ−ＲＯＭ１３１上に記録されたゲームプログラム１３３を実行し、家庭用ゲーム機１０１の制御を行う。ＲＡＭ１０５は、ＣＰＵ１０３のワークエリアである。ＨＤＤ１０７は、例えばＣＤ−ＲＯＭ１３１上に記録されたゲームプログラム１３３及びデータ１３５を保管するための記憶領域である。メモリカード１７１は、ゲームプログラム１３３により参照されるデータを保存するための記憶領域である。サウンド処理部１０９は、ＣＰＵ１０３により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、ＴＶセット１２１にサウンド信号を出力する。そして、サウンド信号はＴＶセット１２１のスピーカ１２２からサウンドとして出力される。
【００２５】
グラフィックス処理部１１１は、ＣＰＵ１０３から出力される描画命令に従って、画像データを生成してフレームバッファ１１２に書き込む。そして、グラフィックス処理部１１１は、フレーム・バッファ１１２に書き込まれた画像データを表示画面１２０に表示するための信号をＴＶセット１２１に出力する。ＣＤ−ＲＯＭドライブ１１３は、ＣＤ−ＲＯＭ１３１上のゲームプログラム１３３及びデータ１３５を読み出す。通信インターフェース１１５は、通信媒体１４１を介してネットワーク１５１に接続され、他のコンピュータ等との間で行われるデータ通信の入出力制御を行う。インターフェース部１１７は、ジョイスティック１６１ａなどの操作入力に応答したキーパッド１６１からの入力信号をＲＡＭ１０５に出力する。ＲＡＭ１０５に出力されたキーパッド１６１からの入力信号に基づき、ＣＰＵ１０３により操作入力内容が解釈され、ＣＰＵ１０３により操作入力に応答した演算処理が実施される。
【００２６】
本実施の形態に係るゲームプログラム１３３及びデータ１３５は最初例えばＣＤ−ＲＯＭ１３１に記録されている。そして、ゲームプログラム１３３及びデータ１３５は実行時にＣＤ−ＲＯＭドライブ１１３により読み出されて、ＲＡＭ１０５にロードされる。なお、ＣＤ−ＲＯＭ１３１に記録されている本実施の形態に係るゲームプログラム１３３及びデータ１３５を、予めＣＤ−ＲＯＭドライブ１１３により読み出し、ＨＤＤ１０７に格納しておくようにしてもよい。ＨＤＤ１０７に本実施の形態に係るゲームプログラム及びデータ１０８が格納されている場合には、ＨＤＤ１０７からＲＡＭ１０５にゲームプログラム及びデータ１０８がロードされる。
【００２７】
ＣＰＵ１０３はＲＡＭ１０５にロードされた、本実施の形態に係るゲームプログラム１３３及びデータ１３５を処理し、描画命令をグラフィックス処理部１１１に出力する。なお、中間的なデータはＲＡＭ１０５に記憶される。グラフィックス処理部１１１はＣＰＵ１０３からの描画命令に従って処理を行い、画像データをフレームバッファ１１２に書き込み、画像を表示画面１２０に表示させるための信号をＴＶセット１２１に出力する。
【００２８】
以上のような家庭用ゲーム機１０１において実行される本実施の形態に係るプロレスゲームのゲームプログラムのアルゴリズム及び使用されるデータについて以下で詳しく述べる。
【００２９】
図２、図３、図４、図５、図６及び図７を用いて本実施の形態で使用されるデータについて説明する。
【００３０】
図２は本実施の形態に係るゲームプログラム１３３実行中におけるＲＡＭ１０５の状態を示す模式図である。ＲＡＭ１０５には、各キャラクタ（レスラー）のモデル・データ２００と、各キャラクタで共有されるモーション・データ２２０と、モーションの種類と例えばキーパッド１６１に設けられたジョイスティック１６１ａの操作との対応を規定したモーション操作対応テーブル２３０とが含まれる。モデル・データ２００には、レスラーの標準的な体格が表現されたベース・スケルトン・モデル２１０の情報と、各キャラクタの体格が表現されたスケルトン・モデル１，２，３，．．，Ｍ（２１２，２１４，２１６，．．，２１８）の情報とが含まれる。
【００３１】
なお、後に詳しく述べるが本実施の形態では、ＴＶセット１２１の表示画面１２０に表示されるキャラクタ毎に、ベース・スケルトン・モデルが用意される。よって、図２ではベース・スケルトン・モデル２１０の情報は１つしか示されていないが、表示されるキャラクタの数だけベース・スケルトン・モデル２１０の情報がＲＡＭ１０５上に設けられる。
【００３２】
図３に本実施の形態におけるスケルトン・モデルのデータ・フォーマットを示す。なお、図３ではベース・スケルトン・モデル２１０の場合を示すが、他のキャラクタのスケルトン・モデルであってもデータ・フォーマットは同じである。本実施の形態においてスケルトン・モデルには、例えば腰骨に対応するボーンを最上位のボーンとして、ボーン間に親子関係が規定されている。よって、各ボーンには、親ボーンの番号と、親ボーンに対する相対位置座標が規定される。
【００３３】
すなわち、ボーン番号１のボーンに対して、親ボーン番号の欄２１０１と、親ボーンに対する相対位置情報の欄２１０３とが設けられる。ボーン番号２のボーンに対して、親ボーン番号の欄２１１１と、親ボーンに対する相対位置情報の欄２１１３とが設けられる。以下、同じようにボーン番号Ｎのボーンに対して、親ボーン番号の欄２１２１と、親ボーンに対する相対位置情報の欄２１２３とが設けられる。
【００３４】
なお、最上位のボーンについては、親ボーンは無いので親ボーン番号には空のデータであることを示す情報Ｎｕｌｌが格納される。また、親ボーンに対する相対位置情報の欄には、仮想空間内での当該ボーンの絶対位置情報がそれぞれ格納される。
【００３５】
図４（ａ）、（ｂ）、（ｃ）及び（ｄ）にスケルトン・モデルの一例を示す模式図を示す。図４（ａ）、（ｂ）、（ｃ）及び（ｄ）では、矢印と当該矢印の根元に付いている丸との組がボーンを示している。また、矢印は、ボーンの親子関係も示しており、矢印の根元が子であり、矢印の先が親である。図４（ａ）は、人型の標準的なスケルトン・モデルであるベース・スケルトン・モデル１１を表している。一方図４（ｂ）は、人型の長身タイプのスケルトン・モデル１２を表している。長身タイプのスケルトン・モデル１２は、図４（ａ）のベース・スケルトン・モデル１１に比して、上下方向の矢印で示される各ボーンの長さが長くなっている。また図４（ｃ）は、人型の小柄タイプのスケルトン・モデル１３を示している。小柄タイプのスケルトン・モデル１３は、図４（ａ）のベース・スケルトン・モデル１１に比して、各ボーンの長さが上下左右均等に短くなっている。図４（ｄ）は、人型の大柄タイプのスケルトン・モデル１４を示している。大柄タイプのスケルトン・モデル１４は、図４（ａ）のベース・スケルトン・モデル１１に比して、各ボーンの長さが上下左右均等に長くなっている。
【００３６】
図４（ｂ）、（ｃ）及び（ｄ）のスケルトン・モデル１２，１３，１４は一例であって、例えば実際のレスラーの体格を表すようなスケルトン・モデルをレスラー毎に作成することができる。一方、ベース・スケルトン・モデルは、例えばレスラーの平均的な体格を表すように作成される。但し、特定のレスラーを標準的体型を有するものと判断して、当該レスラーの体型を表すようなスケルトン・モデルをベース・スケルトン・モデルに使用することも可能である。なお、本実施の形態では、ベース・スケルトン・モデルと、各キャラクタのスケルトン・モデルでは、ボーン数やボーン間の親子関係は同じになる。また、ボーンに付されるボーン番号も同じである。
【００３７】
図５に本実施の形態におけるモーション・データの一例を示す。モーション・データ２２０には、ヘッダ部２２００と、モーション１のデータ部２２１０と、モーション２のデータ部２２２０と、以下同じようにモーションＮのデータ部２２３０とが含まれる。ヘッダ部２２００には、モーション番号１のデータが保持されている記憶領域のアドレスが格納される欄２２０１と、モーション番号２のデータが保持されている記憶領域のアドレスが格納される欄２２０３と、以下同じように、モーション番号Ｎのデータが保持されている記憶領域のアドレスが格納される欄２２０５とが設けられている。
【００３８】
モーション１のデータ部２２２０には、相手側のキャラクタにおける目標となるボーンの番号の欄２２１１と、モーション番号１のボーン１の角度データ及び補間フレーム数の欄２２１３と、モーション番号１のボーン２の角度データ及び補間フレーム数の欄２２１５と、以下同じようにモーション番号１のボーンＮの角度データ及び補間フレーム数の欄２２１７とが含まれる。なお、モーション・データには、モーション再生時のキーとなるフレーム（キーフレーム）における角度データが記憶されている。よって、モーション開始から終了までの間のキーフレーム以外の各フレームにおける角度データは、そのフレームの前後のキーフレームにおける角度データを所定の補間割合で補間することにより計算される。
【００３９】
モーション２のデータ部２２２０には、相手側のキャラクタにおける目標となるボーンの番号の欄２２２１と、モーション番号２のボーン１の角度データ及び補間フレーム数の欄２２２３と、モーション番号２のボーン２の角度データ及び補間フレーム数の欄２２２５と、以下同じようにモーション番号２のボーンＮの角度データ及び補間フレーム数の欄２２２７とが含まれる。以下同様にモーションＮのデータ部２２３０には、相手側のキャラクタにおける目標となるボーンの番号の欄２２３１と、モーション番号Ｎのボーン１の角度データ及び補間フレーム数の欄２２３３と、モーション番号Ｎのボーン２の角度データ及び補間フレーム数の欄２２３５と、以下同じようにモーション番号ＮのボーンＮの角度データ及び補間フレーム数の欄２２３７とが含まれる。
【００４０】
なお、本実施の形態において角度データについては、各ボーンの端部に定義された点を原点とするローカルなＸ，Ｙ及びＺ軸からの曲げ角度により定義される。また、本実施の形態において、モーション・データはベース・スケルトン・モデルが動作を行った場合に最も適切な動作となるように作成されている。すなわち、リングのロープをつかむためのモーションでベース・スケルトン・モデルを動作させれば、ベース・スケルトン・モデルの手が丁度ロープに届くようなモーションが実施される。また、あるキャラクタが他のキャラクタの頭を手で叩くためのモーションを実施する場合を想定する。この場合、各キャラクタの体格がベース・スケルトン・モデルで表されていれば、あるキャラクタの手が、他のキャラクタの頭を正確に叩くようなモーションが実施される。
【００４１】
図５に示すようにモーション・データには各ボーンの角度データと補間フレーム数のみが格納されており、各スケルトン・モデルに共通のデータだけが格納されている。よって、例えば図６（ａ）に示すように、ベース・スケルトン・モデル１１に対し例えば戦いの前の構えの姿勢を表すモーション・データ（角度データのみ）を適用した場合と、図６（ｂ）、（ｃ）及び（ｄ）に示すように、長身タイプのスケルトン・モデル１２、小柄タイプのスケルトン・モデル１３び大柄タイプのスケルトン・モデル１４に対して同じモーション・データ（角度データのみ）を適用した場合とでは、姿勢が同じになる。
【００４２】
但し、体格は各キャラクタで異なるため、足の位置や、手の位置、頭の位置等は異なる。よって、２以上のキャラクタが組み合って戦う場合等において、図５に示された共通のモーション・データを適用したのでは、攻撃を行う手の位置や、足の位置が、相手の攻撃目標となる頭や胸等に当らなくなる。すなわち、足の位置や、手の位置等を補正する必要が生ずる。
【００４３】
図７に本実施の形態におけるモーション操作対応テーブル２３０を示す。モーション操作対応テーブル２３０は、図７に示すように、キャラクタ毎に設けられる。すなわち、図７では、キャラクタＡの対応テーブル２３１０と、キャラクタＢの対応テーブル２３２０と、以下同じようにキャラクタＣの対応テーブル２３３０とが設けられている。このように、キャラクタ毎に対応テーブルを設けたのは、格闘ゲーム等のキャラクタは各々得意技が異なり、得意技にはより簡単なジョイスティック１６１ａ等の操作を割り当てることが望ましいためである。本実施の形態では、ジョイスティック１６１ａのみによる操作でモーションを指定することができる。よってモーション操作対応テーブル２３０には、ジョイスティック操作の列２３０１と、モーション番号の列２３０２とが設けられている。
【００４４】
例えば、キャラクタＡの対応テーブル２３１０において、ジョイスティック１６１ａを反時計回りに回すという操作を実施すると、モーション番号１、例えば回し蹴りが指定されたことになる（行２３０３）。また、ジョイスティック１６１ａを上方向に２度動かすという操作を実施すると、モーション番号２、例えば浴びせ蹴りが指定されたことになる（行２３０５）。なお図７においては、理解を容易にするために、ジョイスティック１６１ａの操作方向をジョイスティック操作の列２３０１に示しているが、実際には、ジョイスティック１６１ａから出力される操作コード等がジョイスティック操作の列２３０１に格納されている。
【００４５】
なお、図２には図示しなかったが、本実施の形態に係るゲーム・プログラム１３３もＲＡＭ１０５に格納されている。
【００４６】
本実施の形態では、インバース・キネマティクス（ＩＫ：Ｉｎｖｅｒｓｅ  Ｋｉｎｅｍａｔｉｃｓ）を用いてモーションを補正する。図８に、ある長身のキャラクタのスケルトン・モデル１２に対しあるモーション・データを適用した場合のボーン１２ａ，１２ｂ，１２ｃの様子と、当該キャラクタに対応するベース・スケルトン・モデル１１に対して同じモーション・データを適用した場合のボーン１１ａ，１１ｂ，１１ｃの様子を示す。図８において、Ａ，Ｂ，Ｃはそれぞれスケルトン・モデル１２の肩、肘、手の位置を示している。また、Ｓ、Ｔ、Ｕはそれぞれベース・スケルトン・モデル１１の肩、肘、手の位置を示している。
【００４７】
図８では、例えばリングのロープをつかむというモーションを行うものとする。用いられるモーション・データは、ベース・スケルトン・モデルが動作を行うことを前提に作成されているため、ベース・スケルトン・モデルの手（ここでは丸Ｕの部分）の位置が丁度ロープの位置になっている。キャラクタのスケルトン・モデルの手（ここでは丸Ｃの部分）の位置はロープの位置ではないので、このままではキャラクタがロープをつかむ画像を作成できない。
【００４８】
なお図８、図９、図１０及び図１１では、例えば図４及び図６と同じように、矢印と当該矢印の根元の部分に付いている丸との組をボーンとする。また、丸の中心に基準となる点が存在するものとし、丸Ａについては点Ａ、丸Ｂについては点Ｂ、丸Ｃについては点Ｃ、丸Ｓについては点Ｓ、丸Ｔについては点Ｔ、丸Ｕについては点Ｕと呼ぶことにする。
【００４９】
そこでキャラクタの手の位置（丸Ｕ）を、ベース・スケルトン・モデルの手の位置（丸Ｃ）の位置に移動させる。最初に図９に示すように、ボーン１２ｂ、１２ｃを、点Ａを中心として回転させる。回転は、点Ａから点Ｃｂ（点Ｃの回転前の点。点Ｂｂは点Ｂの回転前の点。）へのベクトルＰを、点Ａから点ＵへのベクトルＱになるように点Ａを中心に行われる。より具体的には、ベクトルＰとベクトルＱの外積が計算され、その計算で得られたベクトルと平行で点Ａを通る軸が回転軸とされる。また、ベクトルＰとベクトルＱの内積が、各ベクトルの絶対値で除算され、ｃｏｓ（θ１）の値が計算される。そして、コサインの逆関数（アークコサイン）により角度θ１が計算される。
【００５０】
この図９の状態から、点Ｃを点Ｕに移動させる。移動させるときに注意しなければならないのは、ボーンの長さは変わらないということである。すなわち、ボーン１２ｃ（点Ｃから点Ｂ）の長さは変化しないし、ボーン１２ｂ（点Ｂから点Ａ）の長さも変化しない。但し、点Ａから点Ｃの距離は、図１０に示すように点Ａから点Ｃａ（＝点Ｕ）の距離に変化する。従って、三角形ＡＢＣにおける角ＡＢＣと角ＣＡＢは、三角形ＡＢａＣａ（点Ｂａは点Ｂが移動した後の点）における角ＡＢａＣａと角ＣａＡＢａにそれぞれ変化する。三角形の３つの辺の長さから３つの角の角度を計算することができる。ここで角ＡＢＣ−角ＡＢａＣａ＝θ２であり、角ＢａＣａＡ−角ＢＣＡ＝θ３である。角度が分かれば各点の位置は計算できる。
【００５１】
図９で計算されたθ１及び図１０において計算されたθ３をボーン１２ｂに適用し、図１０において計算されたθ２をボーン１２ｃについて適用すれば、図１１に示すようにようになる。すなわち、点線で表された点Ａと点Ｂｂの間のボーン１２ｂと、点線で表された点Ｂｂと点Ｃｂの間のボーン１２ｃとは、実線で表された点Ａと点Ｂａの間のボーン１２ｂと、実線で表された点Ｂａと点Ｃａ（＝点Ｕ）の間のボーン１２ｃとになる。
【００５２】
なお、図８、図９、図１０及び図１１は、１フレームにてモーションを完了させる場合について説明したものである。例えば、図１２に示すように、６フレームでモーションが終了する場合に行われる処理について説明しておく。
【００５３】
図１２では、ベース・スケルトン・モデルのある部位（例えば手）のモーション開始前の姿勢における位置Ｂ１（フレームＦ０）、所定のモーションを実行する際の各補間フレーム（フレームＦ１、Ｆ２、Ｆ３、Ｆ４及びＦ５）における位置Ｂ２、Ｂ３、Ｂ４、Ｂ５及びＢ６、最終的な位置Ｂ７（フレームＦ６）が示されている。各補間フレームにおける位置Ｂ２、Ｂ３、Ｂ４、Ｂ５及びＢ６は、最終的な位置Ｂ７を実現するために回転させなければならない角度を、補間フレーム数（本例では６）により求められる均等な割合で補間してゆくことにより求められる。
【００５４】
一方、キャラクタのスケルトン・モデルの手のモーション開始前の姿勢における位置はＭ１（フレームＦ０）である。ベース・スケルトン・モデルと同じモーション・データを適用した場合のキャラクタのスケルトン・モデルの手は、各補間フレーム（フレームＦ１、Ｆ２、Ｆ３、Ｆ４及びＦ５）及び最終フレーム（フレームＦ６）において点線で示されるＭ２、Ｍ３、Ｍ４、Ｍ５、Ｍ６及びＭ７の位置となる。位置Ｍ２、Ｍ３、Ｍ４、Ｍ５及びＭ６もベース・スケルトン・モデルの場合と同じように、最終的な位置Ｍ７を実現するために回転させなければならない角度を、補間フレーム数（本例では６）により求められる均等な割合で補間して行くことにより求められる。
【００５５】
図１２に示されているように、単純にモーション・データをキャラクタのスケルトン・モデルに適用しただけでは、最終的なキャラクタのスケルトン・モデルの手の位置は、ベース・スケルトン・モデルの手の位置と一致しない。このＢ７とＭ７の差を、各フレーム（フレームＦ１、Ｆ２、Ｆ３、Ｆ４、Ｆ５及びＦ６）において少しずつ修正する。本実施の形態では、補間フレーム数は６であるから、フレームＦ１からフレームＦ６まで均等な補間割合にて修正してゆくこととする。
【００５６】
すなわち、フレームＦ１では、ベース・スケルトン・モデルの手の位置Ｂ２からキャラクタのスケルトン・モデルの手の位置Ｍ２への線分を５：１に内分する点Ｍ２ａを求め、この点Ｍ２ａにキャラクタのスケルトン・モデルの手が移動するようにＩＫ処理を行う。次に、フレームＦ２では、ベース・スケルトン・モデルの手の位置Ｂ３からキャラクタのスケルトン・モデルの手の位置Ｍ３への線分を２：１に内分する点Ｍ３ａを求め、この点Ｍ３ａにキャラクタのスケルトン・モデルの手が移動するようにＩＫ処理を行う。フレームＦ３では、ベース・スケルトン・モデルの手の位置Ｂ４からキャラクタのスケルトン・モデルの手の位置Ｍ４への線分を１：１に内分する点Ｍ４ａを求め、この点Ｍ４ａにキャラクタのスケルトン・モデルの手が移動するようにＩＫ処理を行う。
【００５７】
フレームＦ４では、ベース・スケルトン・モデルの手の位置Ｂ５からキャラクタのスケルトン・モデルの手の位置Ｍ５への線分を１：２に内分する点Ｍ５ａを求め、この点Ｍ５ａにキャラクタのスケルトン・モデルの手が移動するようにＩＫ処理を行う。フレームＦ５では、ベース・スケルトン・モデルの手の位置Ｂ６からキャラクタのスケルトン・モデルの手の位置Ｍ６への線分を１：５に内分する点Ｍ６ａを求め、この点Ｍ６ａにキャラクタのスケルトン・モデルの手が移動するようにＩＫ処理を行う。フレームＦ６では、キャラクタのスケルトン・モデルの手の位置Ｍ７がベース・スケルトン・モデルの手の位置Ｂ７になるようにＩＫ処理を行う。
【００５８】
以上を前提として以下に本実施の形態にかかる処理フローを説明する。
【００５９】
ＣＰＵ１０３は、起動時に、ＲＯＭ１０４等に記憶されているオペレーティングシステムに基づき、ＣＤ−ＲＯＭドライブ１１３を介してＣＤ−ＲＯＭ１３１から画像処理やゲームの実行に必要なゲームプログラム１３３やデータ１３５を読み出し、ＲＡＭ１０５に転送させる。そして、ＣＰＵ１０３は、ＲＡＭ１０５に転送されたゲームプログラム１３３を実行することにより、以下に記載する処理を実現する。
【００６０】
なお、家庭用ゲーム装置１０１で行われる制御及び処理の中には、ＣＰＵ１０３以外の回路がＣＰＵ１０３と協働して実際の制御及び処理を行っている場合もある。
【００６１】
また、画像処理やゲームを実行するために必要なゲームプログラム１３３やデータ１３５は、実際にはＣＰＵ１０３からの命令に従って処理の進行状況に応じて順次ＣＤ−ＲＯＭ１３１から読み出されてＲＡＭ１０５に転送される。しかし、以下に示す説明では、発明の理解を容易にするため、ＣＤ−ＲＯＭ１３１からのデータの読み出しや、ＲＡＭ１０５への転送に関する記述は省略している。
【００６２】
もし画像処理やゲームを実行するために必要なゲームプログラム１３３やデータ１３５がＨＤＤ１０７に格納されている場合には、ＣＰＵ１０３からの命令に従って処理の進行状況に応じて順次ＨＤＤ１０７から読み出されてＲＡＭ１０５に転送される。しかし、以下に示す説明では、上で述べたのと同様の理由で、ＨＤＤ１０７からのデータの読み出しや、ＲＡＭ１０５への転送に関する記述は省略している。
【００６３】
図１３にキャラクタがプレイヤにより指示されたモーションを実行する場面の表示処理のメイン・フローを示す。最初に、操作入力を検出する処理が実施される（ステップＳ１）。本実施の形態では、プレイヤが操作するキーパッド１６１からの入力が常時検査され、特にジョイスティック１６１ａからの操作入力が抽出される。次に、本実施の形態においてはジョイスティック１６１ａによる操作入力に基づき、自キャラクタが実行するモーションの種類が決定される（ステップＳ３）。
【００６４】
決定されたモーションの種類に基づき、後に詳述するモーション表示処理が実行される（ステップＳ５）。モーション表示処理は、表示フレーム毎に実行される。そして、当該モーションが終了したか、すなわち当該モーションの最終表示フレームに達したか否かが判断される（ステップＳ７）。もし、当該モーションの最終表示フレームに達していない場合には、ステップＳ５に戻る（ステップＳ７：Ｎｏルート）。一方、最終表示フレームに達している場合（ステップ７：Ｙｅｓルート）には、ゲーム終了か否かが判断される（ステップＳ９）。ゲームを終了させるか否かは、例えばユーザがキーパッド１６１を操作してゲーム終了を命じたか又はゲームのストーリー上ゲーム終了の条件が満たされたかに基づき判断される。ゲームを終了させない場合には、ステップＳ１に戻る（ステップＳ９：Ｎｏルート）。ゲームを終了させる場合には処理を終了させる（ステップＳ９：Ｙｅｓルート）。
【００６５】
次に図１４を用いてモーション表示処理を説明する。最初に、モーションの種類に対応するモーション・データを元にキャラクタのスケルトン・モデルにおける各ボーンの角度と位置が計算される（ステップＳ１１）。本実施の形態におけるモーション表示処理は、表示フレーム毎に実施される。よって、ステップＳ１１で計算される各ボーンの角度及び位置は、ある表示フレームにおける各ボーンの角度及び位置である。例えば、あるボーンについて補間フレーム数が１０であり、モーション・データに角度が３０度であることが規定されていれば、補間フレーム毎に３度ずつ角度を変化させて行く。同じモーションにおける３番目の補間フレームならば最初のフレームの角度から９度回転させた時の位置が計算される。なお、位置については、親のボーンの位置が決定されなければ、子のボーンの位置は決定できない。よって、親のボーンの位置から順番に計算される。
【００６６】
次にＩＫ処理が必要であるか否かが判断される（ステップＳ１３）。この判断は、一般的にはモーションの種類で行われる。すなわち、物に触ったり、相手に攻撃を加えたりしないような、例えば攻撃前の構えのモーションであったり、単純に走ったりするモーションである場合には、ＩＫ処理は必要ではない。ＩＫ処理が必要ではないと判断された場合（ステップＳ１３：Ｎｏルート）には、ステップＳ２３に進む。一方、物に触ったり、相手に攻撃を加えたりするようなモーションである場合には、ＩＫ処理が必要となる。
【００６７】
ＩＫ処理が必要な場合（ステップＳ１３：Ｙｅｓルート）、次にモーション・データを元にベース・スケルトン・モデルにおける各ボーンの角度と位置が計算される（ステップＳ１５）。ステップＳ１１と同じように、本ステップで計算される各ボーンの角度及び位置は、ある表示フレームにおける各ボーンの角度及び位置である。よって、モーション・データに規定された角度を各補間フレームにおいて補間し、当該補間された角度だけ回転させる。ベース・スケルトン・モデルにおいても、親のボーンについて位置が決定されなければ、子のボーンの位置が決定できない。よって、親のボーンの位置から順番に計算される。
【００６８】
次にモーション・データに目標ボーン番号が規定されているかが判断される（ステップＳ１７）。目標ボーン番号が規定されていれば、プレイヤが操作している自キャラクタによる敵キャラクタへの攻撃などであり、自キャラクタと敵キャラクタとの接触が発生する。一方、目標ボーン番号がＮｕｌｌとなっており、規定されていない場合は、例えばプレイヤが操作する自プレイヤが静的なリングのロープに触ったり、置いてある道具をつかんだりする場合である。
【００６９】
もし、目標ボーン番号が規定されていない場合（ステップＳ１７：Ｎｏルート）には、図１２に説明したような処理を実施するため、ステップＳ２１に移行する。一方、目標ボーン番号が規定されている場合（ステップＳ１７：Ｙｅｓルート）には、ベース・スケルトン・モデルの位置が補正される（ステップＳ１９）。このベース・スケルトン・モデルの位置の補正は、攻撃対象のキャラクタのスケルトン・モデルの目標ボーンと当該攻撃対象のキャラクタに対応するベース・スケルトン・モデルの目標ボーンの相対的な位置関係により行われる。この補正については後に詳しく述べる。
【００７０】
そして、ベース・スケルトン・モデルの位置と補間割合を元にＩＫ処理が実施される（ステップＳ２１）。もし、ステップＳ１７で目標ボーン番号が規定されていないと判断された場合には、図１２で説明したような処理が実施される。一方、ステップＳ１７で目標ボーン番号が規定されていると判断された場合には、ベース・スケルトン・モデルの位置の補正と共に後に詳しく述べる。
【００７１】
ステップＳ１３又はステップＳ２１の処理の後に表示処理が実施されて、ＴＶセット１２１の表示画面１２０に自キャラクタがプレイヤが指定したモーションを実行した場面が表示される（ステップＳ２３）。ステップＳ２３を終了すれば、図１３のステップＳ７に戻る。
【００７２】
ではステップＳ１９及びステップＳ２１について説明する。上でも説明したが、本実施の形態においては、モーション・データは、ベース・スケルトン・モデルに適用した場合に適切なモーションを実施するように規定されている。従って、図１５に示すように、自キャラクタに対応するベース・スケルトン・モデル５００の手５０２が、敵キャラクタに対応するベース・スケルトン・モデルの腕５１２をつかむというモーションは、ベース・スケルトン・モデル同士であれば、問題無く実行される。
【００７３】
しかし、図１６に示すように敵キャラクタに対応するベース・スケルトン・モデル５１０（図１５参照）が敵キャラクタのスケルトン・モデル６００に置き換わると、ベース・スケルトン・モデル５１０とスケルトン・モデル６００の体格差から、自キャラクタに対応するベース・スケルトン・モデル５００の手５０２は、目標ボーン番号と同じボーン番号を有する腕６０３ではなく腕６０２をつかむことになってしまう。図１６の例では、敵キャラクタのスケルトン・モデル６００がベース・スケルトン・モデル５１０より長身であったために目標ボーンより下のほうの腕６０２をつかむことになったが、より小柄なスケルトン・モデルであれば、目標ボーンより上の腕をつかむことになるか、全くつかめないことになる。ベース・スケルトン・モデル５００に対応する自キャラクタのスケルトン・モデルの場合も同じように、目標ボーンをつかむことは通常はできない。
【００７４】
本実施の形態では、敵キャラクタに対応するベース・スケルトン・モデル５１０と敵キャラクタのスケルトン・モデル６００の体格差を、自キャラクタに対応するベース・スケルトン・モデル５００の位置に反映させる。この処理を図１７を用いて説明する。図１７では、敵キャラクタに対応するベース・スケルトン・モデル５１０の一部（ボーン５１１、５１２、５１３及び５１４）と、敵キャラクタのスケルトン・モデル６００の一部（ボーン６０２、６０３、６０４及び６０５）とが描かれている。補正前における自キャラクタに対応するベース・スケルトン・モデル５００の手５０２の、表示フレーム毎の位置をＢ１、Ｂ２、Ｂ３、Ｂ４、Ｂ５、Ｂ６及びＢ７に示す。この例では図１２と同じように、補間フレーム数は６となっている。よって、モーション・データにおいて規定された角度を１／６にして、各補間フレームにおいて１／６ずつ角度を加えてゆくことによりＢ２、Ｂ３、Ｂ４、Ｂ５、Ｂ６及びＢ７の位置が決定される。
【００７５】
ベース・スケルトン・モデル５００の手５０２の最終的な位置Ｂ７は、ベース・スケルトン・モデル５１０のボーン５１２の途中に存在する。本実施の形態では、ボーン５１２を線分とした場合の位置Ｂ７による内分比を計算する。ボーン５１２の長さは決まっており、また位置Ｂ７もベース・スケルトン・モデル５００にモーション・データを適用することにより求められる。よって、ボーン５１２を線分とした場合の位置Ｂ７の内分比も計算することができる。この内分比を、敵キャラクタのスケルトン・モデル６００に適用する。すなわち、同じボーン番号を有するボーン６０３を線分とした場合に上で求めた内分比で、位置Ｂ７に対応するボーン６０３上の点を決定する。図１７では、位置Ｂ７ａ（Ｍ７ｂも同じ点である）が計算される。この位置Ｂ７とＢ７ａとの相対的な位置関係（ずれ量）が、ステップＳ１９で用いられるベース・スケルトン・モデル５００の位置の補正の元となるデータである。
【００７６】
より具体的には、ベース・スケルトン・モデル５００の位置を、位置Ｂ７と位置Ｂ７ａを結ぶベクトル分だけ移動させる。すなわち、ベース・スケルトン・モデル５００の手５０２の位置を図１７では、Ｂ１からＢ１ａへ、Ｂ２からＢ２ａへ、Ｂ３かＢ３ａへ、Ｂ４からＢ４ａへ、Ｂ５からＢ５ａへ、Ｂ６からＢ６ａへ、Ｂ７からＢ７ａへ移動させる。このようにすれば、ベース・スケルトン・モデル５００の手５０２は、最終的に敵キャラクタのスケルトン・モデル６００のボーン６０３をつかむことができるようになる。
【００７７】
ところで、本実施の形態の最終目的はベース・スケルトン・モデル５００の手５０２が敵キャラクタのスケルトン・モデル６００のボーン６０３をつかむことではない。自キャラクタのスケルトン・モデル７００の手７０２が敵キャラクタのスケルトン・モデル６００のボーン６０３をつかむことである。すなわち、図１８に示すような状態を得ることである。図１７においては、自キャラクタのスケルトン・モデル７００に単純にモーション・データを適用した場合の手７０２の位置は、Ｍ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５、Ｍ６及びＭ７に示されている。この例では図１２と同じように、補間フレーム数は６となっている。よって、モーション・データにおいて規定された角度を１／６にして、各補間フレームにおいて１／６ずつ角度を加えてゆくことによりＭ２、Ｍ３、Ｍ４、Ｍ５、Ｍ６及びＭ７の位置が決定される。
【００７８】
図１７に示されているように、単純にモーション・データを自キャラクタのスケルトン・モデル７００に適用しただけでは、最終的なキャラクタのスケルトン・モデル７００の手７０２の位置Ｍ７は、ベース・スケルトン・モデル５００の手５０２の補正された位置Ｂ７ａと一致しない。このＢ７ａとＭ７の差に応じて、各フレーム（フレームＦ１、Ｆ２、Ｆ３、Ｆ４、Ｆ５及びＦ６）において自キャラクタの姿勢が少しずつ修正される。これが図１４のステップＳ２１における処理である。本実施の形態では、例えば補間フレーム数は６であるから、フレームＦ１からフレームＦ６まで均等な補間割合にて自キャラクタの姿勢が修正される。
【００７９】
すなわち、フレームＦ１では、ベース・スケルトン・モデル５００の手５０２の位置Ｂ２ａから自キャラクタのスケルトン・モデル７００の手７０２の位置Ｍ２への線分を５：１に内分する点Ｍ２ｂを求め、この点Ｍ２ｂに自キャラクタのスケルトン・モデル７００の手７０２が移動するようにＩＫ処理を行う。次に、フレームＦ２では、ベース・スケルトン・モデル５００の手５０２の補正された位置Ｂ３ａから自キャラクタのスケルトン・モデル７００の手７０２の位置Ｍ３への線分を２：１に内分する点Ｍ３ｂを求め、この点Ｍ３ｂに自キャラクタのスケルトン・モデル７００の手７０２が移動するようにＩＫ処理を行う。フレームＦ３では、ベース・スケルトン・モデル５００の手５０２の補正された位置Ｂ４ａから自キャラクタのスケルトン・モデル７００の手７０２の位置Ｍ４への線分を１：１に内分する点Ｍ４ｂを求め、この点Ｍ４ｂに自キャラクタのスケルトン・モデル７００の手７０２が移動するようにＩＫ処理を行う。
【００８０】
フレームＦ４では、ベース・スケルトン・モデル５００の手５０２の補正された位置Ｂ５ａから自キャラクタのスケルトン・モデル７００の手７０２の位置Ｍ５への線分を１：２に内分する点Ｍ５ｂを求め、この点Ｍ５ｂに自キャラクタのスケルトン・モデル７００の手７０２が移動するようにＩＫ処理を行う。フレームＦ５では、ベース・スケルトン・モデル５００の手５０２の補正された位置Ｂ６ａから自キャラクタのスケルトン・モデル７００の手７０２の位置Ｍ６への線分を１：５に内分する点Ｍ６ｂを求め、この点Ｍ６ｂに自キャラクタのスケルトン・モデル７００の手７０２が移動するようにＩＫ処理を行う。フレームＦ６では、自キャラクタのスケルトン・モデル７００の手７０２の位置Ｍ７がベース・スケルトン・モデル５００の手５０２の補正された位置Ｂ７ａになるようにＩＫ処理を行う。
【００８１】
以上説明したように本実施の形態では、プレイヤによる操作入力（図１３：ステップＳ１）に応答して、プレイヤが操作している自キャラクタに対応して定義され且つ同じ姿勢を示す第１のベース・スケルトン・モデルの所定の部位を、敵キャラクタに対応して定義され且つ同じ姿勢を示す第２のベース・スケルトン・モデルの所定の部位に接触させるための特定のモーションを決定する（ステップＳ２）。
【００８２】
そして、第２のベース・スケルトン・モデルの所定の部位と敵キャラクタにおいて対応する所定の部位との相対的な位置関係を取得し、取得された相対的な位置関係を用いて自キャラクタに対応するベース・スケルトン・モデルの位置を変更し（図１４：ステップＳ１９）、且つＩＫ処理を実施する（ステップＳ２１）。これは実質的に特定のモーションを補正するものである。当該補正された特定のモーションを自キャラクタに実行させることにより、第１のベース・スケルトン・モデルの所定の部位に対応する自キャラクタの所定の部位を第２のベース・スケルトン・モデルの所定の部位に対応する敵キャラクタの所定の部位に接触させるためのモーションを実行する場面を表示する（ステップＳ２３）。
【００８３】
このように、ベース・スケルトン・モデルに対して規定された特定のモーションが、敵キャラクタと敵キャラクタに対応するベース・スケルトン・モデルとの体格差を表す相対的な位置関係を用いて補正される。これにより、自キャラクタは、敵キャラクタに対して適切な攻撃を加えることができるようになる。すなわち、自キャラクタの所定の部位を敵キャラクタの所定の部位に接触させるためのモーションが実行される。
【００８４】
なお、第２のベース・スケルトン・モデルの所定の部位は、予め定められた目標ボーンを所定の比率にて内分した位置であり、第２のベース・スケルトン・モデルの所定の部位に対応する敵キャラクタの所定の部位は、敵キャラクタのスケルトン・モデルにおいて同じ目標ボーンを同じ所定の比率にて内分した位置である。これにて、攻撃を受ける敵キャラクタの所定の部位は、モーションにおいて予定された第２のベース・スケルトン・モデルにおける体の位置と同じになる。
【００８５】
また、特定のモーションの補正は、補間フレーム毎に、取得された相対的な位置関係に基づき第１の標準形態モデルの位置を変更し、変更された第１の標準形態モデルの位置を当該補間フレームの補間割合分修正し、当該修正された第１の標準形態モデルの位置に配置されるようにインバース・キネマティクス処理を実施することにより行う。
【００８６】
さらに、各モーションに対応して、第１のベース・スケルトン・モデルの所定の部位を第２のベース・スケルトン・モデルの所定の部位に接触させるためのモーション・データを予め用意しておき、特定のモーションが決定されると対応するモーション・データが取得される。ベース・スケルトン・モデルによるモーション・データを、様々なキャラクタに使用できるようになる。
【００８７】
上で述べた本発明の実施の形態は様々な変更が可能である。例えば、人型のキャラクタに対応して人型のスケルトン・モデルを用いた例を示したが、例えば動物型のキャラクタに対応して動物型のスケルトン・モデルを用いてもよい。また、ジョイスティック１６１ａによりモーションの種類を指定する例を示したが、キーパッド１６１に設けられたボタンでモーションの種類を指定してもよいし、ボタンとジョイスティック１６１ａの組合せにて指定するようにすることも可能である。
【００８８】
さらに、図５では同じモーション番号のモーションであっても、ボーンによっては補間フレーム数を変えることができるようになっていた。これにより、多彩なモーションを定義できるようにしているが、ステップＳ２１における補間割合をボーンのグループ毎に変化させたり、目的のボーン番号を途中で切り換えたりすることにより、より自然で多彩なモーションを表現できるようになる。
【００８９】
また図１は一例であって、様々な変更が可能である。通信インターフェース１１５を備えるか否かは任意である。本発明は直接サウンド処理には関係しないので、サウンド処理部１０９を備えている必要は無い。
【００９０】
また、ＣＤ−ＲＯＭは記録媒体の一例であって、ＲＯＭのような内部メモリ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカートリッジ、フロッピーディスク、磁気ディスク、ＤＶＤ−ＲＡＭ等の他の記録媒体であってもよい。その場合にはＣＤ−ＲＯＭドライブ１１３を、対応する媒体で読み出し可能なドライブにする必要がある。
【００９１】
さらに、以上は本発明をコンピュータ・プログラムにより実装した場合であるが、コンピュータ・プログラムと電子回路などの専用の装置の組み合せ、又は電子回路などの専用の装置のみによっても実装することは可能である。
【００９２】
以上、本発明を実施の形態に基づいて具体的に説明したが、本発明は上記実施の形態に限定されるものではない。要旨を逸脱しない範囲で適宜変更可能である。例えば、上記実施の形態では、家庭用ゲーム機をプラットフォームとして本発明を実現した場合について述べたが、本発明は通常のコンピュータ、アーケードゲーム機などをプラットフォームとして実現しても良い。また、携帯情報端末、カーナビゲーション・システム等をプラットフォームにして実現することも考えられる。
【００９３】
また、本発明を実現するためのプログラムやデータは、コンピュータやゲーム機に対して着脱可能なＣＤ−ＲＯＭ等の記録媒体により提供される形態に限定されない。すなわち、本発明を実現するためのプログラムやデータを、図１に示す通信インターフェース１１５、通信媒体１４１を介して接続されたネットワーク１５１上の他の機器側のメモリに記録し、プログラムやデータを通信回線１４１を介して必要に応じて順次ＲＡＭ１０５に格納して使用する形態であってもよい。
【００９４】
（表示例）
図１９、図２０、図２１及び図２２は、格闘ゲームにおいて本実施の形態を適用した場合の例を示している。本例では、小柄なレスラー９００が大柄なレスラー８００の頭を両手でつかむモーションが実行される表示場面１２０が表されている。なお、地面は平面であって、レスラー９００の立っている位置とレスラー８００の立っている位置には高低差はない。
【００９５】
図１９では、レスラー９００がモーションの最初の動作として、両腕を上に上げ始めている。レスラー９００とレスラー８００の間は多少空いている。図２０では、レスラー９００は胴体の姿勢をほとんど変えずにレスラー８００に近付き、両腕を図１９よりも上に上げている。本例のように、レスラー９００とレスラー８００のように極端に大きさが異なる場合には、レスラー８００がそのまま立っていると、レスラー９００の背の高さ及び腕の長さではレスラー８００の頭に手が届かない。よって、ここではレスラー８００は少し膝を曲げて頭の高さを下げている。
【００９６】
図２１を見ると、レスラー９００の両手はさらに上に上げられて、レスラー８００の肩から顔の辺りまできている。レスラー９００の胴体の姿勢はやや前かがみになっている。逆にレスラー８００の姿勢は前かがみから少々起きた状態になっている。図２２になると、レスラー９００の両手はレスラー８００の頭に届いている。レスラー９００も前かがみの姿勢から手を高いところに届かせるために立った姿勢に変わっている。レスラー８００の姿勢は膝を曲げて直立するような体勢になっている。
【００９７】
このように、本実施の形態を適用すれば、レスラー同士に体格差が生じていても、より自然なモーションを表示させることができるようになる。
【００９８】
【発明の効果】
以上述べたように本発明によれば、キャラクタ間の体格差を考慮して、プレイヤの操作入力により命じられたモーションを補正するための技術を提供することができる。
【図面の簡単な説明】
【図１】家庭用ゲーム機のブロック構成図である。
【図２】本発明に係るゲームプログラム実行時におけるＲＡＭの状態を示す模式図である。
【図３】スケルトン・モデルのデータ・フォーマットの一例を示す模式図である
【図４】スケルトン・モデルの模式図であって、（ａ）はベース・スケルトン・モデルを、（ｂ）は長身タイプのスケルトン・モデルを、（ｃ）は小柄タイプのスケルトン・モデルを、（ｄ）大柄タイプのスケルトン・モデルをそれぞれ示す。
【図５】モーション・データのデータ・フォーマットの一例を示す模式図である。
【図６】スケルトン・モデルにモーション・データを適用した場面を示す模式図であって、（ａ）はベース・スケルトン・モデルの例を、（ｂ）は長身タイプのスケルトン・モデルの例を、（ｃ）は小柄タイプのスケルトン・モデルの例を、（ｄ）大柄タイプのスケルトン・モデルの例をそれぞれ示す。
【図７】モーション操作対応テーブルの一例を示す模式図である。
【図８】インバース・キネマティクス処理を説明するための模式図（その１）である。
【図９】インバース・キネマティクス処理を説明するための模式図（その２）である。
【図１０】インバース・キネマティクス処理を説明するための模式図（その３）である。
【図１１】インバース・キネマティクス処理を説明するための模式図（その４）である。
【図１２】インバース・キネマティクス処理を説明するための模式図（その５）である。
【図１３】本実施の形態の処理のメインフローを示すフローチャートである。
【図１４】モーション表示処理を示すフローチャートである。
【図１５】モーション表示処理を説明するための模式図（その１）である。
【図１６】モーション表示処理を説明するための模式図（その２）である。
【図１７】モーション表示処理を説明するための模式図（その３）である。
【図１８】モーション表示処理を説明するための模式図（その４）である。
【図１９】本実施の形態を使用した場合における表示画面例（その１）である。
【図２０】本実施の形態を使用した場合における表示画面例（その２）である。
【図２１】本実施の形態を使用した場合における表示画面例（その３）である。
【図２２】本実施の形態を使用した場合における表示画面例（その４）である。
【符号の説明】
１０１  家庭用ゲーム機    １０３  ＣＰＵ  １０４  ＲＯＭ
１０５  ＲＡＭ    １０７  ＨＤＤ    １０９  サウンド処理部
１１２  フレームバッファ    １１１  グラフィックス処理部
１１３  ＣＤ−ＲＯＭドライブ    １１５  通信インターフェース
１１７  インターフェース部    １１９  内部バス    １２１  ＴＶセット
１２０  表示画面    １３１  ＣＤ−ＲＯＭ    １４１  通信媒体
１５１  ネットワーク    １６１  キーパッド    １６１ａ  ジョイスティック
１７１  メモリカード
２００  スケルトン・モデル    ２２０  モーション・データ
２３０  モーション操作対応テーブル
【図１】
0003569201.tif 000002
【図２】
0003569201.tif 000003
【図３】
0003569201.tif 000004
【図４】
0003569201.tif 000005
【図５】
0003569201.tif 000006
【図６】
0003569201.tif 000007
【図７】
0003569201.tif 000008
【図８】
0003569201.tif 000009
【図９】
0003569201.tif 000010
【図１０】
0003569201.tif 000011
【図１１】
0003569201.tif 000012
【図１２】
0003569201.tif 000013
【図１３】
0003569201.tif 000014
【図１４】
0003569201.tif 000015
【図１５】
0003569201.tif 000016
【図１６】
0003569201.tif 000017
【図１７】
0003569201.tif 000018
【図１８】
0003569201.tif 000019
【図１９】
0003569201.tif 000020
【図２０】
0003569201.tif 000021
【図２１】
0003569201.tif 000022
【図２２】
0003569201.tif 000023