(57)【要約】【課題】  仮想空間内で動作するオブジェクトを、鮮明かつ自然に表現する。【課題を解決するための手段】  キャラクタＣＨは、Ｘ軸回りにα＝３６０［ｄｅｇ］、Ｙ軸回りにβ＝９０［ｄｅｇ］回転し、かつ姿勢パラメータＰａ、Ｐｂを２５［％］対７５[％]の割合で合成した姿勢Ｐをとっている。姿勢パラメータの合成は、姿勢パラメータＰａ、Ｐｂに含まれる各対応パラメータを、２５［％］対７５[％]の比率で加算することによって演算する。【選択図】  図２１
2009093437.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間内に存在するオブジェクトの画像を表示する画像表示プログラムであって、
前記オブジェクトの動きに関するパラメータを設定するパラメータ設定ステップと、
前記パラメータの段階的変化の単位時間（基本単位時間という。）を設定する基本単位時間設定ステップと、
前記基本単位時間を等分割した最小単位時間を設定する最小単位時間設定ステップと、
前記基本単位時間ごとに、前記パラメータの値を設定し、さらに、前記最小単位時間ごとにパラメータ値を割り振るパラメータ値基本設定ステップと、
前記最小単位時間ごとに割り振られた前記パラメータ値を、連続する複数の最小単位時間について平滑化した値を各最小単位時間の値とする平滑化ステップと、
前記移動平均ステップによって割り振られた各最小単位時間ごとの値に基づいて前記オブジェクトを表示する表示ステップと、
をコンピュータに実行させる画像表示プログラム。
【請求項２】
平滑化ステップは、連続する複数の最小単位時間における、複数の前記パラメータ値を重み付加算する請求項１記載の画像表示プログラム。
【請求項３】
平滑化ステップの重み付加算は、均等な重みによって重み付加算数する請求項２記載の画像表示プログラム。
【請求項４】
前記パラメータは、前記仮想空間内の３次元座標軸（Ｘ、Ｙ、Ｚ軸とする。）まわりの回転角速度（Ｘ軸まわりで＋方向に向かって右まわりの回転角速度ωx、Ｙ軸まわりで＋方向に向かって右まわりの回転角速度ωy、Ｚ軸まわりで＋方向に向かって右まわりの回転角速度ωz）を含む請求項１乃至３のいずれか１項に記載の画像表示プログラム。
【請求項５】
前記パラメータは、前記オブジェクトの姿勢を示す姿勢パラメータを含む請求項１乃至４のいずれか１項に記載の画像表示プログラム。
【請求項６】
前記基本単位時間は、略０．５秒である請求項１乃至５のいずれか１項に記載の画像表示プログラム。
【請求項７】
前記移動平均ステップは、各最小単位時間のパラメータ値とその前後の最小単位時間との平均値を、該最小単位時間のパラメータ値とする請求項１乃至６のいずれか１項にに記載の画像表示プログラム。
【請求項８】
前記最小単位時間は、基本単位時間を４等分した時間である請求項１乃至７のいずれか１項にに記載の画像表示プログラム。
【請求項９】
仮想空間内に存在するオブジェクトの画像を表示する画像表示装置であって、
前記オブジェクトの動きに関するパラメータを設定するパラメータ設定手段と、
前記パラメータの段階的変化の単位時間（基本単位時間という。）を設定する基本単位時間設定手段と、
前記基本単位時間を等分割した最小単位時間を設定する最小単位時間設定手段と、
前記基本単位時間ごとに、前記パラメータの値を設定し、さらに、前記最小単位時間ごとにパラメータ値を割り振るパラメータ値基本設定手段と、
前記最小単位時間ごとに割り振られた前記パラメータ値を、連続する複数の最小単位時間について平滑化した値を各最小単位時間の値とする平滑化手段と、
前記移動平均手段によって割り振られた各最小単位時間ごとの値に基づいて前記オブジェクトを表示する表示手段と、
を備えた画像表示装置。
【請求項１０】
平滑化ステップは、連続する複数の最小単位時間における、複数の前記パラメータ値を重み付加算する請求項９記載の画像表示装置。
【請求項１１】
平滑化ステップの重み付加算は、均等な重みによって重み付加算数する請求項１０記載の画像表示装置。
【請求項１２】
前記パラメータは、前記仮想空間内の３次元座標軸（Ｘ、Ｙ、Ｚ軸とする。）まわりの回転角速度（Ｘ軸まわりで＋方向に向かって右まわりの回転角速度ωx、Ｙ軸まわりで＋方向に向かって右まわりの回転角速度ωy、Ｚ軸まわりで＋方向に向かって右まわりの回転角速度ωz）を含む請求項９乃至１１のいずれか１項に記載の画像表示装置。
【請求項１３】
前記パラメータは、前記オブジェクトの姿勢を示す姿勢パラメータを含む請求項９乃至１２のいずれか１項に記載の画像表示装置。
【請求項１４】
前記基本単位時間は、略０．５秒である請求項９乃至１３のいずれか１項に記載の画像表示装置。
【請求項１５】
前記移動平均手段は、各最小単位時間のパラメータ値とその前後の最小単位時間との平均値を、該最小単位時間のパラメータ値とする請求項９乃至１４のいずれか１項に記載の画像表示プログラム。
【請求項１６】
前記最小単位時間は、基本単位時間を４等分した時間である請求項９乃至１５のいずれか１項に記載の画像表示装置。
【請求項１７】
請求項１記載の画像表示プログラムの各ステップをコンピュータに実行させるプログラムコードが記憶された、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間内に存在するオブジェクトの画像を表示するための画像表示プログラムおよび画像表示装置に関する。
【背景技術】
【０００２】
ゲーム装置等において、キャラクタ等オブジェクトの動作を表現する際に、オブジェクト各部の微細な動きを演算することは処理データ量、演算負荷が膨大なものとなり、現実的でない。
【０００３】
そこで、特許文献１記載の「ゲームキャラクタのモーション表示方法」では、一連のモーションＡから、基本姿勢の異なる一連のモーションＢへ移行する際に、あらかじめ、モーションＡ、Ｂ間を補間するフレームを、各ポリゴンをアフィン変換して生成し、用意しておく。そして、モーションＡ、Ｂの相関に基づいて補間フレーム数ｎを設定し、モーションＢの最初のｎフレームを補間フレームに置き換える。
【０００４】
一方、特許文献２の「モーション表示方法」では、モーションＡからモーションＢへ移行する際に、モーションＡ、Ｂのフレームを、合成割合が当初Ａが高く、徐々にＢが高くなるように合成した合成モーションを生成し、スムーズな移行を実現する。
【特許文献１】特開２００１−１６０１５０号公報
【特許文献２】特許第３６１８２９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１のモーション移行処理は、移行の過程におけるフレーム数、補間フレームにつき、多様な設定が必要であり、データ量が大きく、表示処理の計算負荷も大である。鮮明かつ自然な動作を実現するには多くの試行錯誤を要する。
【０００６】
特許文献２のモーション移行処理は、Ａ、Ｂ合成処理における合成割合を多様に調整する必要があり、演算処理は複雑である。そして、特許文献１と同様、鮮明かつ自然な動作を実現するには多くの試行錯誤を要する。
【０００７】
本発明は、このような従来の問題点を解消すべく創案されたもので、鮮明かつ自然な動作を容易に実現することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、仮想空間内に存在するオブジェクトの画像を表示する画像表示プログラムであって、前記オブジェクトの動きに関するパラメータを設定するパラメータ設定ステップと、前記パラメータの段階的変化の単位時間（基本単位時間という。）を設定する基本単位時間設定ステップと、前記基本単位時間を等分割した最小単位時間を設定する最小単位時間設定ステップと、前記基本単位時間ごとに、前記パラメータの値を設定し、さらに、前記最小単位時間ごとにパラメータ値を割り振るパラメータ値基本設定ステップと、前記最小単位時間ごとに割り振られた前記パラメータ値を、連続する複数の最小単位時間について平滑化した値を各最小単位時間の値とする平滑化ステップと、前記平滑化ステップによって割り振られた各最小単位時間ごとの値に基づいて前記オブジェクトを表示する表示ステップとをコンピュータに実行させる。
【０００９】
これによって、鮮明かつ自然な動作を容易に実現でき、比較的小規模のハードウエアにおいても、例えば、鮮明かつ自然な回転運動を表示し得る。
【００１０】
本発明は、仮想空間内に存在するオブジェクトの画像を表示する画像表示装置であって、前記オブジェクトの動きに関するパラメータを設定するパラメータ設定手段と、前記パラメータの段階的変化の単位時間（基本単位時間という。）を設定する基本単位時間設定手段と、前記基本単位時間を等分割した最小単位時間を設定する最小単位時間設定手段と、前記基本単位時間ごとに、前記パラメータの値を設定し、さらに、前記最小単位時間ごとにパラメータ値を割り振るパラメータ値基本設定手段と、前記最小単位時間ごとに割り振られた前記パラメータ値を、連続する複数の最小単位時間について平滑化した値を各最小単位時間の値とする平滑化手段と、前記平滑化手段によって割り振られた各最小単位時間ごとの値に基づいて前記オブジェクトを表示する表示手段とを備える。
【００１１】
これによって、鮮明かつ自然な動作を容易に実現でき、比較的小規模のハードウエアにおいても、例えば、鮮明かつ自然な回転運動を表示し得る。
【００１２】
本発明に係る画像表示プログラムおよび画像表示装置において、前記パラメータは、例えば、前記仮想空間内の３次元座標軸（Ｘ、Ｙ、Ｚ軸とする。）まわりの回転角速度（Ｘ軸まわりで＋方向に向かって右まわりの回転角速度ωx、Ｙ軸まわりで＋方向に向かって右まわりの回転角速度ωy、Ｚ軸まわりで＋方向に向かって右まわりの回転角速度ωz）を含む。
【００１３】
これによって、３次元の任意の回転運動を、鮮明かつ自然に表示し得る。
【００１４】
本発明に係る画像表示プログラムおよび画像表示装置において、前記パラメータは、例えば、前記オブジェクトの姿勢を示す姿勢パラメータを含む。
【００１５】
これによって、３次元の任意の姿勢の変化を、鮮明かつ自然に表示し得る。
【００１６】
本発明に係る画像表示プログラムおよび画像表示装置において、前記基本単位時間は、例えば、略０．５秒であり、前記平滑化ステップおよび平滑化手段は、連続する複数の最小単位時間について平滑化した値を各最小単位時間の値とし、平滑化は、例えば連続する複数のパラメータ値の重み付加算によって実行される。重み付加算の重みは均等であってもよく、前記最小単位時間は、例えば、基本単位時間を４等分した時間である。
【００１７】
これによって、経験則上、動作の鮮明度、自然さを最大限に高め得る。
【発明の効果】
【００１８】
本発明によれば、鮮明かつ自然な動作を容易に表示でき、比較的小規模のハードウエアにおいても、例えば、鮮明かつ自然な回転運動を表示し得る。
【００１９】
【発明を実施するための最良の形態】
【００２０】
次に、本発明に係る画像表示プログラムおよび画像表示装置の好適な実施例を図面に基づいて説明する。
【実施例１】
【００２１】
［画像表示装置］
図１は、本発明に係る画像表示装置をゲーム装置に適用した実施例を示す正面図、図２は、図１のゲーム装置を示すブロック図である。
【００２２】
図１において、ゲーム装置（画像表示装置）２０００には、コントロ−ラ２１００、ＴＶモニタ２２００等の表示装置２２００およびキーボード２３００が接続されている。
【００２３】
表示装置２２００には、仮想空間内で動作するキャラクタのオブジェクトＣＨの画像（ＣＨ１〜ＣＨ３で示す。）が表示され、該キャラクタＣＨ１〜ＣＨ３は、飛び込み台のオブジェクトＯＢから高飛び込みを行っている。
【００２４】
キャラクタＣＨは、例えば、左手を上げた姿勢で、左回転（矢印Ｒ１で示す。）しつつ、飛び込み台ＯＢから後ろ向きにジャンプし、放物線Ｇに沿って下方に落下する（画像ＣＨ２で示す。）。その後、膝をかかえ込んだ姿勢（画像ＣＨ３で示す。）に変化し、さらに落下する。本実施例によれば、これらの動作は、比較的小規模のハードウエアにおいても、鮮明かつ自然に表示し得る。
【００２５】
キャラクタＣＨのこのような動作の表示は、コントローラ２１００からの入力信号に基づいて、あるいは、所定のプログラムに基づいて、図２に関連して後述する、ＣＰＵ１０００、システムメモリ１０２０、ビデオディスプレイプロセッサ１０３０、グラフィックメモリ１０４０の協働によって実現される。
【００２６】
なお、仮想空間内にはその他の種々のオブジェクトが存在し得るが、ここではオブジェクトＣＨについてのみ説明を行う。
【００２７】
図２において、ゲーム装置（画像表示装置）２０００は、全体を制御するＣＰＵ１０００と、ゲーム装置２０００を起動させるためのプログラムを格納するブートロム１０１０と、ＣＰＵ１０００によって実行されるプログラムやデータを格納するシステムメモリ１０２０とを有する。
【００２８】
ゲーム装置２０００には、表示すべき画像を生成、制御するビデオプロセッサ１０３０と、生成される画像の元となる画像や生成された画像を記憶するグラフィックメモリ１０４０が設けられ、ビデオプロセッサ１０３０は、生成した画像を表示装置２２００に表示する。
【００２９】
ゲーム装置２０００には、音声を生成するオーディオプロセッサ１０７０と、生成される音声のデータを記憶するオーディオメモリ１０８０が設けられ、オーディオプロセッサ１０７０はオーディオメモリ１０８０に記憶されたデータに基づいて音声のデジタル信号を生成し、スピーカやヘッドフォン（図示省略）によって音声を出力する。
【００３０】
ゲーム装置２０００には、プログラムデータ等の記憶装置としてＣＤ−ＲＯＭドライブ１０９０等が設けられ、記憶装置において記憶媒体に格納されたゲームプログラムやデータがシステムメモリ１０２０、グラフィックメモリ１０４０、オーディオメモリ１０８０に読み込まれる。
【００３１】
ゲーム装置２０００にはメモリインターフェース１１３０が設けられ、遊戯者が保有するメモリカードＡ、Ｂに対する読み書きが可能である。これによって、各ユーザのゲーム成績、中途で終了したゲームの状態等を登録し得る。
【００３２】
ゲーム装置２０００には、通信インターフェース１１６０を介してモデム１１５０が設けられ、ネットワークを介して複数のゲーム装置２０００によるネットワークゲームを実行でき、また、サーバ（図示省略）から、ゲーム成績の統計、各遊戯者順位、種々のイベント等、ゲームに関する種々の情報を取得し得る。
【００３３】
ゲーム装置２０００には、コントローラインターフェース１１４０が設けられ、コントローラ２１００はコントローラインターフェース１１４０の端子１〜４に接続される。
【００３４】
[画像表示アルゴリズム]
次に、ゲーム装置２０００によって実行される画像表示アルゴリズムを説明する。
【００３５】
図３は、図１のゲーム装置で表示される仮想空間の例を示す図、図４は、図３の仮想空間内で動作するキャラクタのオブジェクトの正立した姿勢を示す正面図、図５は、図４の右側面図、図６は、図４のオブジェクトの片手を上げた姿勢を示す正面図、図７は、図６の右側面図、図８は、図６の左側面図、図９は、図４のオブジェクトの膝を抱えた姿勢を示す正面図、図１０は、図９の右側面図である。
【００３６】
図３において、仮想空間ＶＳ内には、Ｘ、Ｙ、Ｚの３次元座標が定義され、例えば、Ｘ軸の正の方向について右回りの回転角度α、Ｙ軸の正の方向について右回りの回転角度β、Ｚ軸の正の方向について右回りの回転角度γが定義され、さらに、回転角度α、β、γの角速度ωx、ωy、ωzが定義されている。
【００３７】
キャラクタＣＨその他のオブジェクトは、これらパラメータ、すなわち座標（Ｘ，Ｙ，Ｚ）、回転角度（α、β、γ）、回転角速度（ωx、ωy、ωz）の設定によって、仮想空間ＶＳ内で、任意の位置、任意の回転角度で配置でき、かつその回転角速度を設定し得る。
【００３８】
図４〜図１０に示すように、キャラクタＣＨは、複数の姿勢、例えば、正立した姿勢（図４、図５）、片手を上げた姿勢（図６〜図８）、膝を抱えた姿勢（図９、図１０）が定義され、これらの姿勢を任意に選択しつつ、連続的な姿勢変化が可能である。
【００３９】
キャラクタＣＨの姿勢を変化しつつ、回転させる際には、例えば、図１１に示すよう、基本単位時間（例えば０．５秒）ごとの姿勢、回転角速度が設定される。
【００４０】
［パラメータ、基本単位時間、最小単位時間］
図１１において、回転角速度（ωx、ωy、ωz）は、基本単位時間ごとに（０，０，０）、（７２０，０，０）、（０，７２０，０）、（７２０，７２０，０）、（７２０，０，７２０）、（０，０，０）（単位［ｄｅｇ］）と変化する。図１１では、姿勢は６種設定され、各姿勢を姿勢パラメータ（後述する。）Ｐａ、Ｐｂ、Ｐｃ、Ｐｄ、Ｐｅ、Ｐｆで表示するとき、姿勢はＰａ−＞Ｐｂ−＞Ｐｃ−＞Ｐｄ−＞Ｐｅ−＞Ｐｆと変化する。
【００４１】
設定された回転、姿勢の動的変化を、鮮明かつ自然なものとするため、本実施例では、基本単位時間（Ｔとする。）を所定数（Ｄとする。）の最小単位時間（ｔとする。）に分割し、各基本単位時間Ｔの回転角速度（ωx、ωy、ωz）、姿勢パラメータ（Ｐａ，Ｐｂ，Ｐｃ，Ｐｄ，Ｐｅ，Ｐｆ）を最小単位時間に割り振る。その結果を図１２に示す。
【００４２】
図１２において、基本単位時間Ｔ＝１を最小単位時間の範囲０＝＜ｔ＜０．１２５［ｓｅｃ］、０．１２５＝＜ｔ＜０．２５０［ｓｅｃ］、０．２５０＝＜ｔ＜０．３７５［ｓｅｃ］、０．３７５＝＜ｔ＜０．５００［ｓｅｃ］に分割する。
【００４３】
基本単位時間Ｔ＝２については、最小単位時間の範囲０．５００＝＜ｔ＜０．６２５［ｓｅｃ］、０．６２５＝＜ｔ＜０．７５０［ｓｅｃ］、０．７５０＝＜ｔ＜０．８７５［ｓｅｃ］、０．８７５＝＜ｔ＜１．０００［ｓｅｃ］に分割する。
【００４４】
基本単位時間Ｔ＝３については、最小単位時間の範囲１．０００＝＜ｔ＜１．１２５［ｓｅｃ］、１．１２５＝＜ｔ＜１．２５０［ｓｅｃ］、１．２５０＝＜ｔ＜１．３７５［ｓｅｃ］、１．３７５＝＜ｔ＜１．５００［ｓｅｃ］に分割する。
【００４５】
基本単位時間Ｔ＝４については、最小単位時間の範囲１．５００＝＜ｔ＜１．６２５［ｓｅｃ］、１．６２５＝＜ｔ＜１．７５０［ｓｅｃ］、１．７５０＝＜ｔ＜１．８７５［ｓｅｃ］、１．８７５＝＜ｔ＜２．０００［ｓｅｃ］に分割する。
【００４６】
基本単位時間Ｔ＝５については、最小単位時間の範囲２．０００＝＜ｔ＜２．１２５［ｓｅｃ］、２．１２５＝＜ｔ＜２．２５０［ｓｅｃ］、２．２５０＝＜ｔ＜２．３７５［ｓｅｃ］、２．３７５＝＜ｔ＜２．５００［ｓｅｃ］に分割する。
【００４７】
基本単位時間Ｔ＝６については、最小単位時間の範囲２．５００＝＜ｔ＜２．６２５［ｓｅｃ］、２．６２５＝＜ｔ＜２．７５０［ｓｅｃ］、２．７５０＝＜ｔ＜２．８７５［ｓｅｃ］、２．８７５＝＜ｔ＜３．０００［ｓｅｃ］に分割する。
【００４８】
［姿勢パラメータ］
図４〜図１０に示したキャラクタＣＨについて、姿勢パラメータを説明する。
【００４９】
キャラクタＣＨは、可動要素をリンク（アークと呼ぶ。）によってモデル化（スケルトンと呼ぶ。）し、アークの接合点（ノードと呼ぶ。）における相対角度によってその姿勢を定義し得る。図４に対応した図２２に示すように、キャラクタＣＨは、例えば、複数のアークＥ１〜Ｅ２０を回転可能に連結したスケルトンに、頭部、胴体、腕、足等を被覆して構成され、上端のアークＥ１の一端Ｎ０（頭頂の位置）が基準点とされている。
図２２は、姿勢合成演算のための、図４のキャラクタのスケルトンを示す図、図２３は、姿勢合成演算のための、図５のキャラクタのスケルトンを示す図、図２４は、姿勢合成演算のための、図６のキャラクタのスケルトンを示す図、図２５は、姿勢合成演算のための、図７のキャラクタのスケルトンを示す図、図２６は、姿勢合成演算のための、図８のキャラクタのスケルトンを示す図、図２７は、姿勢合成演算のための、図９のキャラクタのスケルトンを示す図である。なお、表示を明瞭化するため、図２４、図２５では、図２２、図２３との相違部分のみに符号を付し、図２６、図２７では、アークの符号を省略している。
【００５０】
アークＥ１はノードＮ１によってアークＥ２（首の位置）に回転可能に連結されている。アークＥ２はノードＮ３によってアークＥ３、Ｅ４（肩の位置）およびアークＥ６（胸の位置）に回転可能に連結されている。
【００５１】
アークＥ３はノードＮ２によってアークＥ５（右上腕の位置）に回転可能に連結され、アークＥ５はノードＮ５によってアークＥ８（右前腕の位置）に回転可能に連結されている。アークＥ８はノードＮ８によってアークＥ１１（右手の位置）に回転可能に連結されている。
【００５２】
アークＥ４はノードＮ４によってアークＥ７（左上腕の位置）に回転可能に連結され、アークＥ７はノードＮ７によってアークＥ１０（左前腕の位置）に回転可能に連結されている。アークＥ１０はノードＮ１０によってアークＥ１４（左手の位置）に回転可能に連結されている。
【００５３】
アークＥ６はノードＮ６によってアークＥ９（腹の位置）に回転可能に連結され、アークＥ９はノードＮ９によってアークＥ１２、Ｅ１３（骨盤の位置）に回転可能に連結されている。
【００５４】
アークＥ１２はノードＮ１１によってアークＥ１５（右大腿の位置）に回転可能に連結され、アークＥ１５はノードＮ１５によってアークＥ１７（右下腿の位置）に回転可能に連結されている。アークＥ１７はノードＮ１７によってアークＥ１９（右足の位置）に回転可能に連結されている。
【００５５】
アークＥ１３はノードＮ１３によってアークＥ１６（左大腿の位置）に回転可能に連結され、アークＥ１６はノードＮ１８によってアークＥ１８（左下腿の位置）に回転可能に連結されている。アークＥ１８はノードＮ１６によってアークＥ２０（左足の位置）に回転可能に連結されている。
【００５６】
スケルトンは、ノードＮ０の（Ｘ，Ｙ，Ｚ）座標、アークＥ１の回転角度（α、β、γ）を決定すれば仮想空間内の位置、角度が決定し、他のアークＥ２〜Ｅ２０は各ノードＮ１〜Ｎ１８における相対角度によって角度設定される。これらの、ノード、アークを設定するパラメータの集合を姿勢パラメータという。
【００５７】
［回転および姿勢の合成］
次に、キャラクタＣＨの回転、姿勢変化がどのように実行されるかを説明する。ここでは説明を簡略化するため、キャラクタをより単純にモデル化して示す。
【００５８】
図１７は、キャラクタの姿勢合成、回転を説明するための、図４のキャラクタを簡略化して示す斜視図、図１８は、キャラクタの姿勢合成、回転を説明するための、図９のキャラクタを簡略化して示す斜視図、図１９は、図１７、図１８のキャラクタの姿勢を合成し、かつ回転した状態を示す斜視図、図２０は、図１７、図１８のキャラクタの姿勢を合成し、かつ回転した他の状態を示す斜視図、図２１は、図１７、図１８のキャラクタの姿勢を合成し、かつ回転した、さらに他の状態を示す斜視図である。
【００５９】
図１７の非回転、正立の姿勢（姿勢パラメータＰａ）、図１８の非回転、膝を抱えた姿勢（姿勢パラメータＰｂ）に対して、図１９では、キャラクタＣＨは、Ｘ軸回りにα＝２７０［ｄｅｇ］回転し、かつ姿勢パラメータＰａ、Ｐｂを７５［％］対２５[％]の割合で合成した姿勢Ｐをとっている。姿勢パラメータの合成は、姿勢パラメータＰａ、Ｐｂに含まれる各対応パラメータを、７５［％］対２５[％]の比率で加算することによって演算する。
【００６０】
図２０では、キャラクタＣＨは、Ｘ軸回りにα＝３３０［ｄｅｇ］回転し、かつ姿勢パラメータＰａ、Ｐｂを５０［％］対５０[％]の割合で合成した姿勢Ｐをとっている。姿勢パラメータの合成は、姿勢パラメータＰａ、Ｐｂに含まれる各対応パラメータを、５０［％］対５０[％]の比率で加算することによって演算する。
【００６１】
図２１では、キャラクタＣＨは、Ｘ軸回りにα＝３６０［ｄｅｇ］、Ｙ軸回りにβ＝９０［ｄｅｇ］回転し、かつ姿勢パラメータＰａ、Ｐｂを２５［％］対７５[％]の割合で合成した姿勢Ｐをとっている。姿勢パラメータの合成は、姿勢パラメータＰａ、Ｐｂに含まれる各対応パラメータを、２５［％］対７５[％]の比率で加算することによって演算する。
【００６２】
［回転］
図１２において、最小単位時間に割り振られた回転角速度（ωx、ωy、ωz）は、そのままキャラクタの回転に適用すると、急激かつ不自然な回転開始、終了と、角速度変化時点での不自然な回転変化が生じる。
【００６３】
そこで、本実施例では、回転角速度（ωx、ωy、ωz）を、例えば、３最小単位時間の期間について、式（１）〜（３）によって平滑化する。
【００６４】
ωx（ｔi）＝｛ωx（ｔi-1）＋ωx（ｔi）＋ωx（ｔi+1）｝／３          式（１）
ωy（ｔi）＝｛ωy（ｔi-1）＋ωy（ｔi）＋ωy（ｔi+1）｝／３          式（２）
ωz（ｔi）＝｛ωz（ｔi-1）＋ωz（ｔi）＋ωz（ｔi+1）｝／３          式（３）
ｔi-1：（ｉ−１）番目の最小単位時間
ｔi：ｉ番目の最小単位時間
ｔi+1：（ｉ＋１）番目の最小単位時間
ωx（ｔi）：ｉ番目の最小単位時間におけるωx
ωy（ｔi）：ｉ番目の最小単位時間におけるωy
ωz（ｔi）：ｉ番目の最小単位時間におけるωz
但し、式（１）〜（３）において、図１２のｔi＝０のように、ｔi-1が存在しないときはωx（ｔi-1）、ωy（ｔi-1）、ωz（ｔi-1）は省略し、ｔi＝３．０００のようにｔi+1が存在しないときはωx（ｔi+1）、ωy（ｔi+1）、ωz（ｔi+1）は省略する。
【００６５】
なお、より短い期間、あるいは長期間に渡って平滑化してもよい。また、式（４）は均等な重みによる重み付加算であるが、連続するパラメータのそれぞれに異なる重みを与えた重み付加算によって平滑化を実行してもよい。
【００６６】
平滑化を実行した結果を図１３に示し、図１３における、最小単位時間ごとの、回転角度（α、β、γ）を図１４の表に示す。また、図１４の回転角度を積算した、キャラクタの合計回転角度量を図１５の表に示し、図１３の姿勢パラメータおよび図１５の合計回転角度量を図１６のグラフに示す。
【００６７】
図１６から明らかなように、回転角度(α、β、γ)の変化は、マクロには明瞭な変化が生じているが、ミクロには微細な角度変化が平滑化されており、全体として、極めて鮮明かつ自然なものになる。
【００６８】
なお、経験則上、基本単位時間Ｔ＝０．５秒、Ｄ＝４として、極めて良好な結果を得ているが、その近似値においても同様であり、また、種々の基本単位時間、分割数の組み合わせにおいて、良好な条件を選択し得ることはいうまでもない。
【００６９】
［姿勢の動的変化］
姿勢パラメータに関して、図１２に示した姿勢パラメータＰａ−＞Ｐｂ−＞Ｐｃ−＞Ｐｄ−＞Ｐｅ−＞Ｐｆの変化は、各姿勢パラメータを順次１００％とし、他の姿勢パラメータを０％とすることによって実現されるが、これをキャラクタの動的姿勢変化に適用すると、急激かつ不自然な姿勢変化が生じる。
【００７０】
そこで、本実施例では、特許文献２における姿勢パラメータ合成と同様、ある姿勢から次の姿勢に移り変わる過渡期において、式（４）によって、両姿勢を合成し、変化を穏やかなものとする。例えば、姿勢パラメータがＰａからＰｂに移行する場合には、例えば、式（４）によって過渡期の合成姿勢パラメータＰを算出する。過渡期の期間を最小単位時間の２×Ｔｒ倍、Ｐａ終了時の最小単位時間をｉ番目とすると、式（４）演算により姿勢パラメータ合成が実行される。
【００７１】
Ｐ（ｔi-Tr＋１）＝｛Ｐａ×（１−Ｒ）＋Ｐｂ×Ｒ｝
Ｐ（ｔi-Tr＋２）＝｛Ｐａ×（１−Ｒ×２）＋Ｐｂ×（Ｒ×２）｝
．．．．．．
Ｐ（ｔi）＝｛Ｐａ×０．５＋Ｐｂ×０．５｝
Ｐ（ｔi＋１）＝｛Ｐａ×０．５＋Ｐｂ×０．５｝
．．．．．．
Ｐ（ｔi+Tr−１）＝｛Ｐａ×Ｒ＋Ｐｂ×（１−Ｒ）｝                    式（４）
Ｒ＝１／（２×Ｔｒ）
Ｐ（ｔi）：ｉ番目の最小単位時間における合成姿勢パラメータ
【００７２】
図１３は、Ｄ＝４、Ｔｒ＝２として、図１２の姿勢パラメータの過渡期の合成姿勢パラメータＰを算出した結果であり、図１６はそのグラフを示す。図１６において、Ｐａ、Ｐｂ、Ｐｃ、Ｐｄ、Ｐｅ、Ｐｆの符号を付した曲線が、合成姿勢パラメータＰであり、Ｐａ、Ｐｂ、Ｐｃ、Ｐｄ、Ｐｅ、Ｐｆを付した位置で、これらＰａ、Ｐｂ、Ｐｃ、Ｐｄ、Ｐｅ、Ｐｆが１００％に達している。その過渡期において、Ｐａ−＞Ｐｂ−＞Ｐｃ−＞Ｐｄ−＞Ｐｅ−＞Ｐｆの変化は、穏やかである。
【００７３】
図１、図２のゲーム装置において、ＣＰＵ１０００、システムメモリ１０２０は協働して、オブジェクトＣＨの動きに関するパラメータ、すなわち、座標（Ｘ，Ｙ，Ｚ）、回転角度（α、β、γ）、回転角速度（ωx、ωy、ωz）、姿勢パラメータＰａ〜Ｐｆ等を設定するパラメータ設定手段として機能し、基本単位時間Ｔを設定する基本単位時間設定手段として機能し、最小単位時間ｔを設定する最小単位時間設定手段として機能し、パラメータの値を最小単位時間に割り振るパラメータ値基本設定手段として機能する。
【００７４】
さらに、ＣＰＵ１０００、システムメモリ１０２０は協働して、パラメータ値基本設定手段によって、前記最小単位時間ごとに割り振られた回転角速度（ωx、ωy、ωz）を、連続する複数の最小単位時間について平滑化した値を各最小単位時間の値とする平滑化手段として機能する。
【００７５】
ＣＰＵ１０００、システムメモリ１０２０、ビデオディスプレイプロセッサ１０３０、グラフィックメモリ１０４０は、協働して、平滑化手段によって割り振られた各最小単位時間ごとの回転角速度に基づいてオブジェクトＣＨを表示する表示手段として機能する。
【００７６】
［画像表示プログラム］
以上の画像表示アルゴリズムを図１の画像表示装置で実行するための画像表示プログラムを図２８に示す。画像表示プログラムの処理は以下の各ステップを含む。
【００７７】
ステップＳ２７０１：まず表示すべきオブジェクトＣＨを変化させるために必要なパラメータを設定する。本実施例では、座標（Ｘ，Ｙ，Ｚ）、回転角度（α、β、γ）、回転角速度（ωx、ωy、ωz）、姿勢パラメータＰａ〜Ｐｆ等である。
【００７８】
ステップＳ２７０２：ステップＳ２７０１に続いて、基本単位時間Ｔを設定する。
【００７９】
ステップＳ２７０３：ステップＳ２７０２に続いて、基本単位時間ごとに、座標（Ｘ，Ｙ，Ｚ）、回転角度（α、β、γ）、回転角速度（ωx、ωy、ωz）、姿勢パラメータＰａ〜Ｐｆ等を設定する。
【００８０】
ステップＳ２７０４：ステップＳ２７０３に続いて、分割数Ｄ、最小単位時間ｔを設定する。
【００８１】
ステップＳ２７０５：ステップＳ２７０３に続いて、ステップＳ２７０３で設定されたパラメータを最小単位時間に、割り振る。
【００８２】
ステップＳ２７０６：前記式（１）〜（３）を用いて、回転角速度（ωx、ωy、ωz）の平滑化する。
【００８３】
ステップＳ２７０７：前記式（４）を用いて、過渡期の姿勢パラメータを合成する。
【００８４】
ステップＳ２７０８：各最小単位時間ごとにオブジェクトの画像を表示する。その後、処理を終了する。
【００８５】
以上の画像表示プログラムによれば、回転角度(α、β、γ)の変化は、マクロには明瞭な変化が生じているが、ミクロには微細な角度変化が平滑化されており、全体として、極めて鮮明かつ自然なものになる。また、姿勢の動的変化は自然である。
【００８６】
ステップＳ２７０６の演算、すなわち式（１）〜（３）の演算は、極めて単純であり、その計算負荷はわずかであり、低パフォーマンスのハードウエアにおいても高速処理が可能である。
【００８７】
さらに、ステップＳ２７０４〜Ｓ２７０６の演算は再帰的に実行することが可能であり、１回目の処理で設定した分割数Ｄのべき状の分割によって、微少な最小単位時間ｔを容易に生成し得る。
【００８８】
さらに、ステップＳ２７０４〜Ｓ２７０６の演算は、パラメータが変化しない状況においては、一定のパラメータ値を出力する特性を有するので、適用条件を判断することなく、常に、パラメータ出力ルーチンとして適用でき、ソフトウエア構成を単純化し得る。
【実施例２】
【００８９】
次に、本発明に係る画像表示装置および画像表示プログラムの実施例２を説明する。
【００９０】
実施例２は、実施例１の構成において、姿勢パラメータを個々に平滑化するものである。
【００９１】
［画像表示アルゴリズム］
図１２に示したように、一般に姿勢パラメータの設定はある姿勢から次の姿勢へと順次変位するように設定され、各姿勢パラメータは、０％から１００％になり、その後０％に戻る。従って、各姿勢パラメータを独立に平滑化すると、０％と１００％との移行期間の変化が平滑化され、急峻な変化が緩和される。
【００９２】
例えば、３最小単位時間についての姿勢パラメータＰａの平滑化では、式（５）が適用される。
【００９３】
Ｐa（ｔi）＝｛Ｐａ（ｔi-1）＋Ｐａ（ｔi）＋Ｐａ（ｔi+1）｝／３          式（５）
Ｐａ（ｔi）：ｉ番目の最小単位時間におけるＰａ
【００９４】
但し、式（１）〜（３）において、図１２のｔi＝０のように、ｔi-1が存在しないときはＰａ（ｔi-1）は省略し、ｔi＝３．０００のようにｔi+1が存在しないときはＰａ（ｔi+1）は省略する。
【００９５】
なお、より短い期間、あるいは長期間に渡って平滑化を実行してもよい。
【００９６】
図２９は、以上のアルゴリズムにより図１２の姿勢パラメータＰａ〜Ｐｆを独立に平滑化したものであり、図３０はそのグラフである。
【００９７】
図３０から明らかなように、姿勢パラメータは順次穏やかに遷移する。
【００９８】
実施例２は回転角速度と姿勢パラメータの処理を共通化し得るので、処理ルーチンは単純化され、ハードウエアの小規模化に貢献する。
【００９９】
［画像表示プログラム］
以上の画像表示アルゴリズムを図１の画像表示装置で実行するための画像表示プログラムを図３１に示す。
【０１００】
実施例２の画像表示プログラムは、実施例１のステップＳ２７０１〜Ｓ２７０６、Ｓ２７０８と共通のステップＳ３００１〜Ｓ３００６、Ｓ３００８を有し、ステップＳ３００７のみがステップＳ２７０７と相違する。ステップＳ３００７は以下の処理を実行する。すなわち、
【０１０１】
ステップＳ３００７：各姿勢パラメータについて、独立に平滑化する。
【０１０２】
これによって、各姿勢パラメータの０％、１００％間の変化が穏やかになり、自然な動的変化を実現し得る。
【産業上の利用可能性】
【０１０３】
以上の実施例はキャラクタの高飛び込みを表示するための画像表示処理について説明したが、仮想空間内で回転、姿勢変化する任意のオブジェクト、スノーボード、フリースキー、モーグルスキー、水上スキー、トランポリン、スケートボード、スリースカイダイビング、体操のキャラクタ、その他に、本発明を適用し得ることはいうまでもない。
【図面の簡単な説明】
【０１０４】
【図１】本発明に係るゲーム装置（画像処理装置）の実施例を示す正面図である。（実施例１）
【図２】図１のゲーム装置を示すブロック図である。（実施例１）
【図３】図１のゲーム装置で表示される仮想空間の例を示す図である。（実施例１）
【図４】図３の仮想空間内で動作するキャラクタのオブジェクトの正立した姿勢を示す正面図である。（実施例１）
【図５】図４の右側面図である。（実施例１）
【図６】図４のオブジェクトの片手を上げた姿勢を示す正面図である。（実施例１）
【図７】図６の右側面図である。（実施例１）
【図８】図６の左側面図である。（実施例１）
【図９】図４のオブジェクトの膝を抱えた姿勢を示す正面図である。（実施例１）
【図１０】図９の右側面図である。（実施例１）
【図１１】キャラクタの基本単位時間ごとの姿勢パラメータ、回転角速度の変化を示す表である。（実施例１）
【図１２】キャラクタの最小単位時間ごとの姿勢パラメータ、回転角速度の変化を示す表である。（実施例１）
【図１３】図１２の姿勢パラメータ、回転角速度を平滑化した結果を示す表である。（実施例１）
【図１４】図１３における、最小単位時間ごとの、回転角度を示す表である。（実施例１）
【図１５】図１４の回転角度を積算した、キャラクタの合計回転角度量を示す表である。（実施例１）
【図１６】図１３の姿勢パラメータおよび図１５の合計回転角度量を示すグラフである。（実施例１）
【図１７】キャラクタの姿勢合成、回転を説明するための、図４のキャラクタを簡略化して示す斜視図である。（実施例１）
【図１８】キャラクタの姿勢合成、回転を説明するための、図９のキャラクタを簡略化して示す斜視図である。（実施例１）
【図１９】図１７、図１８のキャラクタの姿勢を合成し、かつ回転した状態を示す斜視図である。（実施例１）
【図２０】図１７、図１８のキャラクタの姿勢を合成し、かつ回転した他の状態を示す斜視図である。（実施例１）
【図２１】図１７、図１８のキャラクタの姿勢を合成し、かつ回転した、さらに他の状態を示す斜視図である。（実施例１）
【図２２】姿勢合成演算のための、図４のキャラクタのスケルトンを示す図。（実施例１）
【図２３】姿勢合成演算のための、図５のキャラクタのスケルトンを示す図。（実施例１）
【図２４】姿勢合成演算のための、図６のキャラクタのスケルトンを示す図。（実施例１）
【図２５】姿勢合成演算のための、図７のキャラクタのスケルトンを示す図。（実施例１）
【図２６】姿勢合成演算のための、図８のキャラクタのスケルトンを示す図。（実施例１）
【図２７】姿勢合成演算のための、図９のキャラクタのスケルトンを示す図。（実施例１）
【図２８】本発明にかかる画像表示プログラムの実施例１の処理を示すフローチャートである。（実施例１）
【図２９】平滑化によって合成した姿勢パラメータを示す表である。（実施例２）
【図３０】平滑化によって合成した姿勢パラメータを示すグラフである。（実施例２）
【図３１】本発明にかかる画像表示プログラムの実施例２の処理を示すフローチャートである。（実施例２）
【符号の説明】
【０１０５】
１０００  ＣＰＵ
１０２０  システムメモリ
１０３０  ビデオディスプレイプロセッサ
１０４０  グラフィックメモリ
２０００  ゲーム装置
２１００  コントローラ
２２００  表示装置
２３００  キーボード
【図１】
2009093437.tif 000003
【図２】
2009093437.tif 000004
【図３】
2009093437.tif 000005
【図４】
2009093437.tif 000006
【図５】
2009093437.tif 000007
【図６】
2009093437.tif 000008
【図７】
2009093437.tif 000009
【図８】
2009093437.tif 000010
【図９】
2009093437.tif 000011
【図１０】
2009093437.tif 000012
【図１１】
2009093437.tif 000013
【図１２】
2009093437.tif 000014
【図１３】
2009093437.tif 000015
【図１４】
2009093437.tif 000016
【図１５】
2009093437.tif 000017
【図１６】
2009093437.tif 000018
【図１７】
2009093437.tif 000019
【図１８】
2009093437.tif 000020
【図１９】
2009093437.tif 000021
【図２０】
2009093437.tif 000022
【図２１】
2009093437.tif 000023
【図２２】
2009093437.tif 000024
【図２３】
2009093437.tif 000025
【図２４】
2009093437.tif 000026
【図２５】
2009093437.tif 000027
【図２６】
2009093437.tif 000028
【図２７】
2009093437.tif 000029
【図２８】
2009093437.tif 000030
【図２９】
2009093437.tif 000031
【図３０】
2009093437.tif 000032
【図３１】
2009093437.tif 000033