(57)【要約】【課題】  キャラクタが様々な斜面を移動する際の動作をデータ量の増大を抑制しつつ容易に実現することができるゲームプログラムおよびゲームシステムを提供する。【解決手段】  コンピュータを、仮想空間生成手段、およびキャラクタ動作制御手段、として機能させ、キャラクタ動作制御手段は、キャラクタが基準平面上を移動する基本移動動作を表す基本移動動作データを取得し、キャラクタが移動する移動平面の基準平面に対する傾斜角を取得し、キャラクタに対応して配置され、キャラクタの移動方向を定める基準位置を、基準平面における位置から傾斜角分回転させることにより、キャラクタ全体を傾斜角分回転させたときのキャラクタの足部の位置を取得し、取得した足部の位置に基本移動動作における足部を配置し、当該足部の位置を起点にして関節モデルの各関節の位置および姿勢を決定することにより、基本移動動作を修正する。【選択図】図４
2018028812.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
３次元のキャラクタが動作する３次元の仮想空間を生成する仮想空間生成手段、および
前記キャラクタに対応して設定される複数の関節を有する関節モデルの各関節の位置および姿勢を決定することにより、前記キャラクタの動作を制御するキャラクタ動作制御手段、として機能させ、
前記キャラクタ動作制御手段は、
前記キャラクタが基準平面上を移動する基本移動動作を表す基本移動動作データを取得する基本移動動作データ取得手段と、
前記キャラクタが移動する移動平面の前記基準平面に対する傾斜角を取得する傾斜角取得手段と、
前記キャラクタに対応して配置され、前記キャラクタの移動方向を定める基準位置を、前記基準平面における位置から前記傾斜角分回転させることにより、前記キャラクタ全体を前記傾斜角分回転させたときの前記キャラクタの足部の位置を取得する足位置取得手段と、
前記取得した前記足部の位置に前記基本移動動作における前記足部を配置し、当該足部の位置を起点にして前記関節モデルの各関節の位置および姿勢を決定することにより、前記基本移動動作を修正する動作修正手段と、を含む、ゲームプログラム。
【請求項２】
前記動作修正手段は、前記キャラクタの腰部の位置が前記基準位置の鉛直上方に位置するように前記関節モデルの腰関節の位置および姿勢を決定する、請求項１に記載のゲームプログラム。
【請求項３】
請求項１または２に記載のゲームプログラムを記憶したプログラム記憶部と、
前記プログラム記憶部に記憶されたプログラムを実行するコンピュータとを備えた、ゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラムおよびゲームシステムに関する。
【背景技術】
【０００２】
従来、アクションゲームまたはロールプレイングゲーム等、ユーザの操作に応じてプレイヤキャラクタを３次元の仮想空間内で動作させるゲームがある。このようなゲームにおいては、敵キャラクタ等の様々なノンプレイヤキャラクタが登場し、プレイヤキャラクタが敵キャラクタを討伐することにより進行するものがある。プレイヤキャラクタおよびノンプレイヤキャラクタの動作は、複数の関節を有する関節モデルの各関節の位置および姿勢（角度）を定めることにより、実現される（例えば特許文献１等参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−６１４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような従来のゲームにおいて、キャラクタが斜面を移動する場合、平面を移動する場合とは別に斜面を移動するモーションデータが必要となっていた。このように、斜面移動の際に別のモーションデータを用いる場合、斜面の角度やキャラクタが移動する方向に応じて異なるモーションデータが必要となりデータ量が増大してしまう。一方、一のモーションデータを用いようとしても、単に斜面の角度に合わせてキャラクタを回転させるだけでは斜面から足が浮いたり、足が滑ったりしているような動作となり、自然な移動モーションを実現することはできない。
【０００５】
そこで本発明は、キャラクタが様々な斜面を移動する際の動作をデータ量の増大を抑制しつつ容易に実現することができるゲームプログラムおよびゲームシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係るゲームプログラムは、コンピュータを、３次元のキャラクタが動作する３次元の仮想空間を生成する仮想空間生成手段、および前記キャラクタに対応して設定される複数の関節を有する関節モデルの各関節の位置および姿勢を決定することにより、前記キャラクタの動作を制御するキャラクタ動作制御手段、として機能させ、前記キャラクタ動作制御手段は、前記キャラクタが基準平面上を移動する基本移動動作を表す基本移動動作データを取得する基本移動動作データ取得手段と、前記キャラクタが移動する移動平面の前記基準平面に対する傾斜角を取得する傾斜角取得手段と、前記キャラクタに対応して前記移動平面上に配置され、前記キャラクタの移動方向を定める基準位置を、前記基準平面における位置から前記傾斜角分回転させることにより、前記キャラクタ全体を前記傾斜角分回転させたときの前記キャラクタの足部の位置を取得する足位置取得手段と、前記取得した前記足部の位置に前記基本移動動作における前記足部を配置し、当該足部の位置を起点にして前記関節モデルの各関節の位置および姿勢を決定することにより、前記基本移動動作を修正する動作修正手段と、を含む。
【０００７】
前記動作修正手段は、前記キャラクタの腰部の位置が前記基準位置の鉛直上方に位置するように前記関節モデルの腰関節の位置および姿勢を決定してもよい。
【０００８】
本発明の他の態様に係るゲームシステムは、上記ゲームプログラムを記憶したプログラム記憶部と、前記プログラム記憶部に記憶されたプログラムを実行するコンピュータとを備えている。
【発明の効果】
【０００９】
本発明によれば、キャラクタが様々な斜面を移動する際の動作をデータ量の増大を抑制しつつ容易に実現することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態におけるゲーム装置のハードウェア構成を示すブロック図である。
【図２】図１に示すゲーム装置の機能的な構成を示すブロック図である。
【図３】本実施の形態における関節モデルを例示するための図である。
【図４】本実施の形態におけるプレイヤキャラクタの斜面における移動動作の生成例を示す図である。
【図５】本実施の形態におけるプレイヤキャラクタの他の斜面における移動動作の生成例を示す図である。
【図６】図４および図５で生成されたプレイヤキャラクタを仮想空間内に配置した例を示す図である。
【図７】本実施の形態におけるプレイヤキャラクタの斜面における移動動作の生成例を示す図である。
【図８】本実施の形態における電灯オブジェクトの一例を示す図である。
【図９】本実施の形態における電灯オブジェクトの他の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態に係るゲームプログラムおよびゲームシステムについて、図面を参照しつつ説明する。
【００１２】
［ゲーム概要］
以下の説明では、家庭用ゲーム装置において実行されるアクションゲームを例として説明する。本実施の形態に係るアクションゲームは、３次元の仮想空間が生成され、ユーザが当該仮想空間内で行動するプレイヤキャラクタを操作して、敵キャラクタを全滅させる、またはゲーム空間内の所定の位置に到達する等といった所定の目標を達成するために、敵キャラクタと戦うことにより進行する。
【００１３】
［ハードウェア構成］
上述したゲームを実現するゲーム装置の構成について説明する。本実施の形態におけるゲームシステムは、下記ゲーム装置２と、当該ゲーム装置２に接続されるモニタ（表示部）１９、スピーカ２２およびコントローラ（操作部）２４などの外部装置とで構成され、下記ディスク型記憶媒体３０から読み込んだゲームプログラム３０ａおよびゲームデータ３０ｂに基づいてゲームを行い得るものである。ただし、以下では、説明を簡単にするため、単にゲーム装置２と称する場合がある。
【００１４】
図１は、本実施の形態におけるゲーム装置２のハードウェア構成を示すブロック図である。図１に示すように、ゲーム装置２は、他のゲーム装置２およびサーバ装置３との間で、インターネットまたはＬＡＮなどの通信ネットワークＮＷを介して互いに通信可能である。このゲーム装置２は、その動作を制御するコンピュータであるＣＰＵ１０を備え、このＣＰＵ１０にはバス１１を介してディスクドライブ１２、メモリカードスロット１３、プログラム記憶部を成すＨＤＤ１４、ＲＯＭ１５およびＲＡＭ１６が接続されている。
【００１５】
また、ＣＰＵ１０には、バス１１を介してグラフィック処理部１７、オーディオ合成部２０、無線通信制御部２３およびネットワークインタフェース２５が接続されている。
【００１６】
このうちグラフィック処理部１７は、ＣＰＵ１０の指示にしたがってゲーム空間および各キャラクタなどを含むゲーム画像を描画する。また、グラフィック処理部１７にはビデオ変換部１８を介して外部のモニタ１９が接続されており、グラフィック処理部１７にて描画されたゲーム画像はビデオ変換部１８において動画形式に変換され、モニタ１９にて表示されるようになっている。
【００１７】
オーディオ合成部２０は、ＣＰＵ１０の指示に従ってデジタルのゲーム音声を再生および合成する。また、オーディオ合成部２０にはオーディオ変換部２１を介して外部のスピーカ２２が接続されている。したがって、オーディオ合成部２０にて再生および合成されたゲーム音声は、オーディオ変換部２１にてアナログ形式にデコードされ、さらにスピーカ２２から外部へ出力されるようになっている。
【００１８】
さらに、オーディオ合成部２０は、ゲーム装置２に接続されるヘッドセットやコントローラ２４等に設けられたマイク２６から入力されるユーザの音声等がオーディオ変換部２１にてデジタル形式にコードされたデータを取得可能である。オーディオ合成部２０は、取得したデータをＣＰＵ１０に入力情報として伝えることができる。
【００１９】
無線通信制御部２３は、２．４ＧＨｚ帯の無線通信モジュールを有し、ゲーム装置２に付属するコントローラ２４との間で無線により接続され、データの送受信が可能となっている。ユーザは、このコントローラ２４に設けられたボタン等の操作子（後述）を操作することにより、ゲーム装置２へ信号を入力することができ、モニタ１９に表示されるプレイヤキャラクタの動作を制御可能になっている。また、ネットワークインタフェース２５は、インターネットまたはＬＡＮなどの通信ネットワークＮＷに対してゲーム装置２を接続するものであり、他のゲーム装置２またはサーバ装置３との間で通信可能である。そして、ゲーム装置２を、通信ネットワークＮＷを介して他のゲーム装置２と接続し、互いにデータを送受信することにより、同一のゲーム空間内で同期して複数のプレイヤキャラクタを表示させることができる。これにより、本ゲームにおいては、複数のユーザに対応する複数のプレイヤキャラクタが協同して敵キャラクタと戦う、または複数のユーザ同士が敵対して対戦する、マルチプレイが可能である。
【００２０】
［ゲーム装置の機能的構成］
図２は、図１に示すゲーム装置２の機能的な構成を示すブロック図である。図１に示すようにゲーム装置２は、ＣＰＵ１０、ＨＤＤ１４、ＲＯＭ１５、ＲＡＭ１６、グラフィック処理部１７、ビデオ変換部１８、オーディオ合成部２０、オーディオ変換部２１、ネットワークインタフェース２５などを含む制御部４を備えたコンピュータとして動作する。そして、図２に示すように、ゲーム装置２の制御部４は、本発明のゲームプログラム３０ａを実行することで、仮想空間生成手段４１、オブジェクト配置手段４２、および、キャラクタ動作制御手段４３等の機能を発揮する。キャラクタ動作制御手段４３は、基本移動動作データ取得手段４４と、傾斜角取得手段４５と、足位置取得手段４６と、動作修正手段４７と、を含む。
【００２１】
このうち、仮想空間生成手段４１は、３次元の仮想空間を生成する。当該仮想空間が、ユーザが操作するプレイヤキャラクタが行動するゲーム空間となる。また、オブジェクト配置手段４２は、仮想空間に種々のオブジェクトを配置する。例えば、オブジェクト配置手段４２は、プレイヤキャラクタの移動に伴って、ゲームデータ３０ｂに含まれるオブジェクト等のデータを読み出し、仮想空間に配置する。オブジェクト配置手段４２は、プレイヤキャラクタおよび敵キャラクタ等のノンプレイヤキャラクタも仮想空間に配置する。
【００２２】
キャラクタ動作制御手段４３は、キャラクタに対応して設定される複数の関節を有する関節モデルの各関節の位置および姿勢を決定することにより、キャラクタの動作を制御する。キャラクタ動作制御手段４３は、例えば、ユーザによるコントローラ２４の操作に応じて、プレイヤキャラクタの各種動作を制御する。さらに、キャラクタ動作制御手段４３は、例えば、敵キャラクタおよび敵キャラクタでないノンプレイヤキャラクタ（味方となって一緒に敵キャラクタを攻撃するキャラクタや味方でも敵でもない村人などのキャラクタ等）の動作も制御する。
【００２３】
図３は、本実施の形態における関節モデルを例示するための図である。図３には、プレイヤキャラクタＰが例示されている。図３に示されるプレイヤキャラクタＰは人間を模したキャラクタとして構成されている。すなわち、プレイヤキャラクタＰは、頭部１００、首部１０１、胸部１０２、腰部１０３、腕部１０４、脚部１０５等を有する複数の部位で構成される。関節モデルＭは、これらの部位のそれぞれに対応付けられた複数の関節Ｊ（Ｊ０，Ｊ１〜Ｊ３を含む）と、所定の２つの関節Ｊ−Ｊ間を接続する骨Ｂとを有している。プレイヤキャラクタＰの各部位の体表面は多数のポリゴンの組み合わせで構成されており、各ポリゴンの頂点は１または複数の関節Ｊに関連付けられている。プレイヤキャラクタＰの動作は、関節Ｊを移動させる（位置を変える）および／または所定角度回転させる（姿勢を変える）ことで行われる。関節Ｊの位置または姿勢の変化に応じて、その関節Ｊに関連付けられているポリゴンが連動して変形し、プレイヤキャラクタＰの様々な動作が実現される。
【００２４】
通常、キャラクタ動作制御手段４３は、所定のモーションデータに基づいて身体の中心部に位置する関節（図３の例では腰関節Ｊ０）を起点にして動作を生成する。後述する第１動作は、腰関節Ｊ０を起点にして生成される。具体的には、キャラクタ動作制御手段４３は、所定の部位を移動させる動作（例えば所定の移動平面上を移動する動作）を行う際、まず、腰関節Ｊ０の位置および姿勢を決定し、次に当該関節Ｊ０に骨Ｂを介して接続されている関節、すなわち、胸部１０２の関節および脚部１０５の関節Ｊ３，Ｊ２，Ｊ１の位置および姿勢を決定する。その後、胸部１０２の関節Ｊに骨Ｂを介して接続されている腕部１０４の関節の位置および姿勢を決定する。
【００２５】
すなわち、キャラクタ動作制御手段４３は、プレイヤキャラクタＰの中央部の部位（基端側部位）の関節（親関節）から順に先端側部位の関節（子関節）の位置および姿勢を決定することによって、プレイヤキャラクタＰの全身の動きを決定する。例えば、キャラクタ動作制御手段４３は、フォワードキネマティクス（ＦＫ）に基づいて各関節Ｊの位置および姿勢を決定する。
【００２６】
なお、本実施の形態および特許請求の範囲において、「関節の位置および姿勢を決定する」とは、関節の座標と関節の所定位置からの角度とを変更可能なパラメータとして有するという意味であり、動作の前後において、関節の位置および姿勢のうちの何れかが変化しない状態も含まれ得る。
【００２７】
さらに、キャラクタ動作制御手段４３は、プレイヤキャラクタＰの先端側部位（例えば手、足等）の関節から順に中央部の部位の関節の位置および姿勢を決定することによって、プレイヤキャラクタＰの全身の動きを決定することもできる。例えば、キャラクタ動作制御手段４３は、インバースキネマティクス（ＩＫ）に基づいて各関節Ｊの位置および姿勢が決定され得る。すなわち、ＩＫの場合、親関節と子関節との関係がＦＫと逆になる。
【００２８】
さらに、関節モデルＭは、プレイヤキャラクタＰを移動制御するための基準位置ＪＮを含んでいる。基準位置ＪＮは、プレイヤキャラクタＰの移動方向を定めるように構成されている。例えば、基準位置ＪＮにおいて、移動平面の法線に垂直な方向（移動平面に沿った方向）にプレイヤキャラクタＰの移動方向が設定されている。基準位置ＪＮは、その位置が関節モデルＭの各関節Ｊと対応付けられている。一般的に、基準位置ＪＮは、ＮＵＬＬパーツ等と呼称される。本実施の形態において、基準位置ＪＮは、プレイヤキャラクタＰが水平面上において立ち姿勢または移動姿勢にあるときに腰関節Ｊ０の直下かつ移動平面に接する位置に設定されている。基準位置ＪＮは、プレイヤキャラクタＰの位置座標の基準となる。例えば、プレイヤキャラクタＰの位置座標は、基準位置ＪＮに一致する。なお、基準位置ＪＮは、ゲーム画面上には表示されない。
【００２９】
［キャラクタ動作制御の具体例］
図４は、本実施の形態におけるプレイヤキャラクタの斜面における移動動作の生成例を示す図である。図４においては、プレイヤキャラクタが水平面Ｑ１を歩行する移動動作（このときのプレイヤキャラクタをＰａで示す）からプレイヤキャラクタが傾斜角θ２の斜面Ｑ２を歩行により下りて行く移動動作（このときのプレイヤキャラクタをＰｂで示す）を生成する態様が例示されている。
【００３０】
本実施の形態において、ゲームデータ３０ｂには、基準平面として水平面Ｑ１上を移動するプレイヤキャラクタＰａのモーションデータ（基本移動動作データ）が記憶されている。当該平面移動のモーションデータは、関節モデルＭを構成する複数の関節Ｊのうちの中央部に位置する所定の関節（本例においては腰関節Ｊ０）を起点にして生成される。例えば、水平面Ｑ１上の移動動作のためのモーションデータは、ＦＫに基づいて動作するデータとして構成される。すなわち、キャラクタ動作制御手段４３は、プレイヤキャラクタＰａに水平面Ｑ１上を移動させる場合、腰関節Ｊ０を起点にして、前側の脚部１０５Ｆの股関節Ｊ３Ｆ、膝関節Ｊ２Ｆおよび足首関節Ｊ１Ｆの位置および姿勢を順次決定するとともに、腰関節Ｊ０を起点にして、後側の脚部１０５Ｂの股関節Ｊ３Ｂ、膝関節Ｊ２Ｂおよび足首関節Ｊ１Ｂの位置および姿勢を順次決定する。なお、歩行時のモーションデータは、プレイヤキャラクタＰａの両足（足部ＦＦ，ＦＢ）が両方とも水平面Ｑ１から浮いた状態とならないように作成されている。図４の水平面Ｑ１上のプレイヤキャラクタＰａにおいては、足部ＦＦ，ＦＢが接地した状態を表している。
【００３１】
平面移動時において、キャラクタ動作制御手段４３は、ユーザのコントローラ２４への操作に応じた方向へ基準位置ＪＮを水平面Ｑ１上で移動させながら、上記モーションデータを再生する。本実施の形態において、移動修正手段４７は、このような水平面Ｑ１上を移動する際のモーションデータを加工することにより、基準平面である水平面Ｑ１に対して所定の傾斜角を有する斜面Ｑ２上の移動に適用する。
【００３２】
このために、傾斜角取得手段４５は、プレイヤキャラクタＰが移動する移動平面である斜面Ｑ２の基準平面（水平面Ｑ１）に対する傾斜角θ２を取得する。斜面Ｑ２の傾斜角θ２は、ゲームデータ３０ｂから取得される。そして、足位置取得手段４６は、斜面Ｑ２上に配置されるプレイヤキャラクタＰの基準位置ＪＮを水平面Ｑ１における位置から傾斜角θ２分回転させることにより、プレイヤキャラクタＰ全体を傾斜角θ２分回転させたときのプレイヤキャラクタＰの足部ＦＦ，ＦＢの位置（後述する起点位置となる）を取得する。
【００３３】
本例において、足位置取得手段４６は、加工後のモーションデータにおけるプレイヤキャラクタＰｂにおいて、より高い位置に位置する足部（本例では後側の足部ＦＢ）の斜面Ｑ２との接地点ＨＢを基準として基準位置ＪＮを水平面Ｑ１上を移動するプレイヤキャラクタＰａにおける基準位置ＪＮの位置から下方に傾斜角θ２分回転させる。これにより、回転後の基準位置ＪＮ’は、斜面Ｑ２上に位置することになる。足位置取得手段４６は、このような回転に伴ってプレイヤキャラクタＰａ全体を回転させたときの両足の位置を取得する。図４の中段の図においては、プレイヤキャラクタＰａ全体を回転させた場合の下半身（腰関節Ｊ０以下の部位）がＰａ’として破線で示されている。足位置取得手段４６は、この破線で示されるプレイヤキャラクタＰａの足部ＦＦ’，ＦＢ’の位置ＨＦ，ＨＢを取得する。
【００３４】
動作修正手段４７は、取得した足部ＦＦ，ＦＢの起点位置ＨＦ，ＨＢに基本移動動作における足部ＦＦ，ＦＢを配置し、当該起点位置ＨＦ，ＨＢを起点にして関節モデルＭの各関節Ｊの位置および姿勢を決定することにより、基本移動動作を修正する。より具体的には、動作修正手段４７は、ゲームデータ３０ｂとして記憶されている基本移動動作のモーションデータ（ＦＫに基づくモーションデータ）を、プレイヤキャラクタＰの足部ＦＦ，ＦＢの起点位置ＨＦ，ＨＢを制約条件（当該位置を固定）として、各関節Ｊの動きを補間する。例えば、動作修正手段４７は、前側の足部ＦＦの起点位置ＨＦを起点にして、前側の脚部１０５Ｆの足首関節Ｊ１Ｆ、膝関節Ｊ２Ｆおよび股関節Ｊ３Ｆの位置および姿勢を順次決定するとともに、後側の足部ＦＢの起点位置ＨＢを起点にして、後側の脚部１０５Ｂの足首関節Ｊ１Ｂ、膝関節Ｊ２Ｂおよび股関節Ｊ３Ｂの位置および姿勢を順次決定する。
【００３５】
この際、水平面Ｑ１上を移動する（動作修正前の）プレイヤキャラクタＰａの前側の足部ＦＦが対応する起点位置ＨＦから離れているため、前側の足部ＦＦを起点位置ＨＦに配置することにより、前側の脚部１０５Ｆは、下方に引っ張られる。このため、腰部１０３は、前側の脚部１０５Ｆの移動に伴って腰部１０３の前側が下がるように腰関節Ｊ０回りに回転する。このとき、動作修正手段４７は、プレイヤキャラクタＰｂの腰部１０３の位置が基準位置ＪＮの鉛直上方に位置するように関節モデルＭの腰関節Ｊ０の位置および姿勢を決定する。これにより、重心位置がプレイヤキャラクタＰａをそのまま傾斜角θ２分回転させた場合（Ｐａ’）に比べてプレイヤキャラクタＰｂの後方に位置するため、プレイヤキャラクタＰｂが斜面Ｑ２を下りて行く移動動作に、より現実感を与えることができる。
【００３６】
このように生成される移動動作は、傾斜角θ２が変化しても当該傾斜角θ２に応じて同様に生成される。すなわち、上記態様によれば、プレイヤキャラクタＰが斜面Ｑ２を下りて行く移動動作を、水平面Ｑ１の移動動作として記憶されている１つのモーションデータから様々な傾斜角θ２に応じて複数生成することができる。
【００３７】
図５は、本実施の形態におけるプレイヤキャラクタの他の斜面における移動動作の生成例を示す図である。図５においては、プレイヤキャラクタが水平面Ｑ１を歩行する移動動作（このときのプレイヤキャラクタをＰａで示す）からプレイヤキャラクタが傾斜角θ３の斜面Ｑ３を歩行により上って行く移動動作（このときのプレイヤキャラクタをＰｂで示す）を生成する態様が例示されている。
【００３８】
本例においても、図４の例と同じ水平面Ｑ１上を移動するプレイヤキャラクタＰａのモーションデータに基づいてプレイヤキャラクタが傾斜角θ３の斜面Ｑ３上を歩行により上って行く移動動作が生成される。本例においても、図４の例と同じ態様で斜面Ｑ３上を歩行により上って行く移動動作が生成される。言い換えると、本例においても、キャラクタ動作制御手段４３は、図４の例において実行する基本移動動作データ取得手段４４、傾斜角取得手段４５、足位置取得手段４６および動作修正手段４７と同様の機能を実行するに過ぎず、これらと異なる機能は実行しない。
【００３９】
本例における加工後のプレイヤキャラクタＰｂが図４の例と異なる点は、斜面Ｑ３の傾斜角θ３、および、プレイヤキャラクタＰｂの斜面Ｑ３に対する向きのみである。プレイヤキャラクタＰｂの斜面Ｑ３に対する向きが異なることにより、加工後のモーションデータにおけるプレイヤキャラクタＰｂにおいて、より高い位置に位置する足部が前側の足部ＦＦになる。すなわち、足位置取得手段４６がプレイヤキャラクタＰの足部ＦＦ，ＦＢの位置を取得する際の傾斜角θ３分の回転の中心位置が前側の足部ＦＦとなる。
【００４０】
この結果、水平面Ｑ１上を移動する（動作修正前の）プレイヤキャラクタＰａの後側の足部ＦＢが対応する起点位置ＨＢから離れているため、後側の足部ＦＢを起点位置ＨＢに配置することにより、後側の脚部１０５Ｂは、下方に引っ張られる。このため、腰部１０３は、後側の脚部１０５Ｂの移動に伴って腰部１０３の後側が下がるように腰関節Ｊ０回りに回転する。このときも、動作修正手段４７は、プレイヤキャラクタＰｂの腰部１０３の位置が基準位置ＪＮの上方（鉛直方向）に位置するように関節モデルＭの腰関節Ｊ０の位置および姿勢を決定する。これにより、重心位置がプレイヤキャラクタＰａをそのまま傾斜角θ３分回転させた場合（Ｐａ’）に比べてプレイヤキャラクタＰｂの前方に位置するため、プレイヤキャラクタＰｂが斜面Ｑ３を上って行く移動動作に、より現実感を与えることができる。
【００４１】
このように生成される移動動作は、傾斜角θ３が変化しても当該傾斜角θ３に応じて同様に生成される。すなわち、上記態様によれば、プレイヤキャラクタＰが斜面Ｑ３を上って行く移動動作を、水平面Ｑ１の移動動作として記憶されている１つのモーションデータから様々な傾斜角θ３に応じて複数生成することができる。
【００４２】
以上のような態様によれば、プレイヤキャラクタＰが所定の傾斜角（θ＝０°）を有する移動平面上を移動する移動動作について予めＦＫに基づいて定められた１つのモーションデータを用い、当該モーションデータを傾斜角の変化に応じて加工することにより、変化後の傾斜角を有する斜面上の移動動作が生成される。この際、移動平面の角度（傾斜角θ２，θ３）に応じて基準位置ＪＮを回転させたときの元のモーションデータにおける足部ＨＦ，ＨＢの位置（起点位置ＨＦ，ＨＢ）を起点にして脚部１０５等の各関節Ｊの位置および姿勢が決定される。これにより、傾斜角が異なる複数の移動平面に対する移動動作を１つのモーションデータから生成することができる。したがって、キャラクタが様々な斜面を移動する際の動作をデータ量の増大を抑制しつつ容易に実現することができる。
【００４３】
図６は、図４および図５で生成されたプレイヤキャラクタを仮想空間内に配置した例を示す図である。図６において、プレイヤキャラクタＰａは、図４および図５における水平面Ｑ１上を移動するプレイヤキャラクタ（加工前のモーションデータをそのまま再生した場合のプレイヤキャラクタ）の移動動作を示し、プレイヤキャラクタＰＩＶは、図４における斜面Ｑ２上を歩行により下りて行くプレイヤキャラクタの移動動作を示し、プレイヤキャラクタＰＶは、図５における斜面Ｑ３上を歩行により上って行くプレイヤキャラクタの移動動作を示している。本実施の形態によれば、これら３種のプレイヤキャラクタの移動動作を傾斜角によらず１つのモーションデータから実現することができる。
【００４４】
また、移動動作を生成する際、様々な傾斜角における移動動作において、元のモーションデータを、ＩＫに基づいて補間することにより、様々な傾斜角を有する移動平面上の移動動作においてもキャラクタの動きが不自然になるのを防止することができる。
【００４５】
ここで、上記図４および図５の例においては、プレイヤキャラクタＰａを傾斜角θ２回転させた足部ＦＦ’，ＦＢ’の位置を起点位置ＨＦ，ＨＢとして設定している。すなわち、モーションデータの加工の前後で基準位置ＪＮと前側の足部ＨＦとの間の距離および基準位置ＪＮと後側の足部ＨＢとの間の距離は、それぞれ等しい。しかし、これに代えて、動作修正手段４７は、斜面Ｑ２，Ｑ３の傾斜角または移動方向（上りまたは下り）に応じてこれらの距離、すなわち、プレイヤキャラクタＰの歩幅を変更してもよい。例えば、水平面Ｑ１におけるプレイヤキャラクタＰの歩幅を基準として、斜面Ｑ２を下りて行く移動動作においては歩幅が小さくなるようにし、斜面Ｑ３を上って行く移動動作においては歩幅が大きくなるようにしてもよい。また、例えば、傾斜角が大きくなるほど下りの移動動作においては歩幅が小さくなり、上りの移動動作においては歩幅が大きくなるようにしてもよい。
【００４６】
また、上記に加えてまたはこれに代えて、動作修正手段４７は、斜面Ｑ２，Ｑ３の傾斜角および／または移動方向に応じて元のモーションデータに対して所定の加工を加えてもよい。例えば、動作修正手段４７は、図４および図５に示すように、斜面Ｑ２，Ｑ３上の移動方向に応じて首関節Ｊ４の姿勢（顔の向き）を変化してもよい。例えば、斜面Ｑ２を下りて行く移動動作においてはプレイヤキャラクタＰｂの顔が下方を向くようにし、斜面Ｑ３を上って行く移動動作においてはプレイヤキャラクタＰｂの顔が上方を向くようにする。また、動作修正手段４７は、斜面Ｑ３の傾斜角θ３に応じて足部ＦＦ，ＦＢの向きを変更してもよい。傾斜角θ３が大きい場合、足部ＦＦ，ＦＢを斜面Ｑ３に沿わせるようにすると、足の甲部が脛部に近付きすぎてしまい、不自然に見える場合がある。このような場合には、足部ＦＦ，ＦＢの踵を斜面Ｑ３から浮かせるようにすることにより、より自然な表現とすることができる。
【００４７】
図７は、本実施の形態におけるプレイヤキャラクタの斜面における移動動作の生成例を示す図である。上記図４から図６の例では、プレイヤキャラクタＰが歩行により移動する動作について説明した。この場合、プレイヤキャラクタＰの両方の足部ＦＦ，ＦＢが斜面Ｑ２，Ｑ３に同時に接している状態が存在する。これに対して、図７の例では、プレイヤキャラクタＰが走っている場合の表現において、両方の足部ＦＦ，ＦＢの何れもが斜面Ｑ２，Ｑ３から離れている状態が存在する。このような移動動作においても本実施の形態は適用可能である。
【００４８】
図７には、プレイヤキャラクタが水平面Ｑ１を走る移動動作（このときのプレイヤキャラクタをＰａで示す）からプレイヤキャラクタが傾斜角θ２の斜面Ｑ２を駆け下りる移動動作（このときのプレイヤキャラクタをＰｂで示す）を生成する態様が例示されている。
【００４９】
図７の例において、ゲームデータ３０ｂとして記憶されている基本移動動作のモーションデータは、基準平面である水平面Ｑ１上を移動する基準位置ＪＮより高い位置に足部ＦＦ，ＦＢが同時に位置する（両方の足部が水平面Ｑ１から離れている）瞬間が存在する。動作修正手段４７がこのようなモーションデータを斜面Ｑ２に適用するために加工する際、加工の前後で、基準位置ＪＮと前側の足部ＦＦとの間の距離ＲＦおよび基準位置ＪＮと前側の足部ＦＦとを結ぶ線分の水平面Ｑ１に対する角度αＦと、基準位置ＪＮと後側の足部ＦＢとの間の距離ＲＢおよび基準位置ＪＮと後側の足部ＦＦとを結ぶ線分の水平面Ｑ１に対する角度αＢとが維持される。
【００５０】
このため、本例における起点位置ＨＦ，ＨＢは、斜面Ｑ２に対して距離ＲＦｓｉｎαＦ，ＲＢｓｉｎαＢだけ離れた位置に設定される。これ以外は、図４の例と同様の処理が行われることにより、プレイヤキャラクタＰｂが斜面Ｑ２を駆け下りる移動動作が水平面Ｑ１を走るモーションデータから生成される。図示は省略するが、プレイヤキャラクタＰｂが斜面Ｑ３を駆け上る移動動作も同様に水平面Ｑ１を走るモーションデータから生成され得る。
【００５１】
このように、本実施の形態におけるモーションデータの加工態様は、移動平面に足部ＦＦ，ＦＢが接地している場合だけでなく、移動平面から離れた状態においても適用可能である。また、本実施の形態におけるモーションデータの加工態様を、階段移動に適用することも可能である。
【００５２】
［背景オブジェクトの簡易表現］
ここで、図６において背景として用いられている電灯オブジェクトの表現について説明する。図８は、本実施の形態における電灯オブジェクトの一例を示す図である。図８（ａ）は側面図を示し、図８（ｂ）は上面図（図８（ａ）におけるＶＩＩＩＢから見た図）を示している。図８には、電灯オブジェクトとして天井Ｕから１本の紐部５２で吊り下げられた裸電球５０Ａが示されている。なお、図８においては、裸電球５０Ａの揺れ幅βを実際より誇張して表示している。
【００５３】
この裸電球５０Ａは、本体部５１と、本体部５１を吊り下げるための所定の長さＬを有する紐部５２と、を備えている。紐部５２は、一端部が本体部５１に取り付けられ、他端部が所定の基準点５３に取り付けられる。
【００５４】
オブジェクト配置手段４２は、このような裸電球５０Ａの本体部５１を所定の揺れ方向Ａに周期２π（Ｌ／ｇ）１／２の単振り子運動を行うように制御する。ここで、ｇは重力加速度である。裸電球５０Ａの単振り子運動に用いられるパラメータは、揺れ方向Ａを定める回動軸５４の座標、揺れ幅（回動角）β、および紐部５２の長さＬである。
【００５５】
従来は、裸電球５０Ａ等を揺らす表現を行う場合には、紐部５２の長さＬや揺れ幅βが異なるごとにモーションデータを作成しており、データ量が増大する問題があった。また、これら複数のモーションデータを同時に再生すると処理負荷が大きく、表示速度が遅くなったり、ちらつきが発生したりする場合があった。
【００５６】
これに対して、本実施の形態においては、微小振動の単振り子運動を模して裸電球を動作させることにより、１つのモーションデータで複数の紐部５２の長さＬを有する裸電球５０Ａ等の表現を実現することができる。したがって、より自然な揺れ表現を行うためのデータ量を抑制し、処理負荷を小さくすることができる。
【００５７】
さらに、オブジェクト配置手段４２は、回転軸５４の位置（基準点５３の位置）または姿勢（水平面に対する角度γ）を時間経過に従って変化させてもよい。特に、回動軸５４の水平面に対する角度γを変化させることにより、揺れ方向ＡがＡ’に変化し、３次元的な揺れを表現することができる。このように、回転軸５４の位置または姿勢を変化させることにより、不規則な揺れを表現することができ、より自然な表現を実現することができる。
【００５８】
図９は、本実施の形態における電灯オブジェクトの他の例を示す図である。図９の例において、図８と同様の構成については同じ符号を付し、説明を省略する。図９には、電灯オブジェクトとして天井から２本の紐部５２ａ，５２ｂにより本体部５１が吊り下げられた蛍光灯５０Ｂが示されている。図９（ａ）は側面図を示し、図９（ｂ）は正面図（図９（ａ）におけるＩＸＢから見た図）を示し、図９（ｃ）は上面図（図９（ａ）におけるＩＸＣから見た図）を示し、図９（ｄ）は図９（ｃ）にねじり方向の揺動を加えた場合を示している。なお、図９においては、蛍光灯５０Ｂの揺れ幅βを実際より誇張して表示している。この蛍光灯５０Ｂは、本体部５１と、本体部５１を吊り下げるための所定の長さＬを有する２本の紐部５２ａ，５２ｂと、を備えている。
【００５９】
オブジェクト配置手段４２は、このような蛍光灯５０Ｂの本体部５１についても所定の揺れ方向Ａに周期２π（Ｌ／ｇ）１／２の単振り子運動を行うように制御する。より具体的には、オブジェクト波位置手段４２は、２本の紐部５２ａ，５２ｂの中間に位置する仮想紐部５２ｃの上端部５３ｃを回動軸５４とする単振り子運動として制御する。これにより、２つの紐部５２ａ，５２ｂにより吊り下げられた電灯オブジェクトに対しても単振り子運動として処理することにより、データ量を抑制し、処理負荷を小さくしつつ自然な表現とすることができる。
【００６０】
さらに、オブジェクト配置手段４２は、図５（ｄ）に示すように、仮想紐部５２ｃをねじり方向（長手方向に沿った軸回り）Ｚに揺動させてもよい。蛍光灯５０Ｂの揺れ表現として単振り子運動に加えてねじり動作を行うことにより、１本の仮想紐部５２ｃに基づく揺れ表現であっても、あたかも２本の紐部５２ａ，５２ｂに基づいて本体部５１が揺れているように見せることができる。
【００６１】
以上で説明したような揺れ表現は、上記裸電球５０Ａおよび蛍光灯５０Ｂのような電灯オブジェクトだけでなく、振り子運動が適用可能な種々のオブジェクト（例えば、振り子時計の振り子、ブランコ、風に揺れる暖簾等）に適用可能である。ただし、これらのオブジェクトのうち、天井に設置されている等、プレイヤキャラクタＰが接触不可能なオブジェクトに上記表現態様を適用することが好ましい。上記表現態様では、プレイヤキャラクタＰが当該オブジェクトに接触した場合のオブジェクトの揺れの変化に対応した表現を行うことが難しいためである。
【００６２】
次に、図６において背景として用いられている換気扇オブジェクトの表現について説明する。オブジェクト配置手段４２は、図６に示すような換気扇６０の回転軸６１の位置と、回転軸６１回りの換気扇６０の回転速度とをパラメータとして当該換気扇６０を等速回転させる制御を行う。
【００６３】
これによれば、回転速度のパラメータの値を変更することにより、様々な回転速度の換気扇６０を表現することができる。このような表現は、換気扇６０に限られず、扇風機、観覧車、時計の秒針等、等速で回転するオブジェクトに適用可能である。
【００６４】
［変形例］
以上、本発明の実施形態について説明したが、本発明は上記実施の形態に限定されるものではなく、その趣旨を逸脱しない範囲内で種々の改良、変更、修正が可能である。
【００６５】
例えば、上記実施の形態においては、プレイヤキャラクタＰにおける移動動作について説明したが、敵キャラクタ等のノンプレイヤキャラクタにおける移動動作に適用することも可能である。
【００６６】
また、上記実施の形態においては、水平面Ｑ１上を移動するプレイヤキャラクタＰのモーションデータを加工する例について説明したが、元のモーションデータは所定の傾斜角θ（０°ではない）を有する斜面上のキャラクタの移動動作のためのデータであってもよい。
【００６７】
また、キャラクタの足がキャラクタの装備品（例えば竹馬、歩行ロボット）等を介して間接的に移動平面上を移動する場合にも適用可能である。
【００６８】
また、上記実施の形態においては、斜面Ｑ２，Ｑ３の方向に移動する（上るまたは下る）移動動作について説明したが、斜面Ｑ２，Ｑ３に直交する方向に移動する（斜面を横切る）移動動作についても、上記モーションデータの加工態様を適用可能である。
【００６９】
上記実施の形態において、関節モデルＭに含まれる複数の関節Ｊは人間の関節を模したものでもよいし、モンスター等、より多い関節またはより少ない関節を有していてもよい。すなわち、上記動作が適用できるキャラクタは、人間のキャラクタだけでなく、様々なモンスター等も含まれる。
【００７０】
また、キャラクタ動作制御手段４３は、移動平面の傾斜角が所定の角度未満であれば上記実施の形態のような動作修正処理を行うが、所定の傾斜角以上になった場合（急斜面の場合）、キャラクタの移動動作について基準平面上を移動するモーションデータとは別のモーションデータを用いて（急斜面移動専用のモーションデータに変更して）キャラクタの移動動作を制御してもよい。
【００７１】
また、上記実施の形態においては、アクションゲームを例示したが、３次元のキャラクタについての上記動作態様は、ロールプレイングゲーム、シミュレーションゲームまたはシューティングゲーム等、３次元の仮想空間を用いる種々のゲームに適用可能である。
【００７２】
また、上記実施の形態では据え置き型のゲーム装置について説明したが、携帯型のゲーム装置、携帯電話機、およびパーソナルコンピュータなどのコンピュータについても、本発明を好適に適用することができる。
【産業上の利用可能性】
【００７３】
本発明は、キャラクタが様々な斜面を移動する際の動作をデータ量の増大を抑制しつつ容易に実現するために有用である。
【符号の説明】
【００７４】
２  ゲーム装置
３０ａ  ゲームプログラム
３０ｂ  ゲームデータ
４１  仮想空間生成手段
４３  キャラクタ動作制御手段
４４  基本移動動作データ取得手段
４５  傾斜角取得手段
４６  足位置取得手段
４７  動作修正手段
ＦＦ，ＦＢ  足部
Ｊ  関節
Ｊ０  腰関節
Ｊ１，Ｊ１Ｆ，Ｊ１Ｒ  足首関節
Ｊ２，Ｊ２Ｆ，Ｊ２Ｒ  膝関節
Ｊ３，Ｊ３Ｆ，Ｊ３Ｒ  股関節
ＪＮ  基準位置
Ｍ  関節モデル
Ｐ，Ｐａ，Ｐｂ  プレイヤキャラクタ
Ｑ１  水平面（移動平面）
Ｑ２，Ｑ３  斜面（移動平面）
【図１】
2018028812.tif 000003
【図２】
2018028812.tif 000004
【図３】
2018028812.tif 000005
【図４】
2018028812.tif 000006
【図５】
2018028812.tif 000007
【図６】
2018028812.tif 000008
【図７】
2018028812.tif 000009
【図８】
2018028812.tif 000010
【図９】
2018028812.tif 000011