(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-07
(45)【発行日】2022-09-15
(54)【発明の名称】コンピュータゲームにおける伸縮可能なキャラクタのギャップシミュレーション
(51)【国際特許分類】
A63F 13/573 20140101AFI20220908BHJP
A63F 13/52 20140101ALI20220908BHJP
G06T 13/40 20110101ALI20220908BHJP
【FI】
A63F13/573
A63F13/52
G06T13/40
(21)【出願番号】P 2021012578
(22)【出願日】2021-01-29
【審査請求日】2021-01-29
(32)【優先日】2020-12-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-29
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】P 2020013747
(32)【優先日】2020-01-30
(33)【優先権主張国・地域又は機関】JP
【新規性喪失の例外の表示】特許法第30条第2項適用 令和2年8月24日 ウェブサイト(https://avengers.square-enix-games.com/ja-jp/news)にて公開
【新規性喪失の例外の表示】特許法第30条第2項適用 令和2年8月7日 ウェブサイト(https://avengers.square-enix-games.com/ja-jp/news/marvels-avengers-beta-dates/)にて公開
【新規性喪失の例外の表示】特許法第30条第2項適用 令和2年6月23日 ウェブサイト(https://avengers.square-enix-games.com/ja-jp/media)にて公開
(73)【特許権者】
【識別番号】592044813
【氏名又は名称】株式会社スクウェア・エニックス・ホールディングス
(74)【代理人】
【識別番号】100083138
【氏名又は名称】相田 伸二
(74)【代理人】
【識別番号】100189625
【氏名又は名称】鄭 元基
(74)【代理人】
【識別番号】100196139
【氏名又は名称】相田 京子
(72)【発明者】
【氏名】ステファン ペレズ
(72)【発明者】
【氏名】ノリユキ イマムラ
(72)【発明者】
【氏名】ゲーリー スニーセン
【審査官】西村 民男
(56)【参考文献】
【文献】特開2010-088641(JP,A)
【文献】特開2000-153062(JP,A)
【文献】『Marvel’s Avengers(アベンジャーズ)』主人公のひとりとしてMs. Marvel参戦発表。手足が伸びるムスリムの少女が、アベンジャーズ再結成のカギとなる,AUTOMATON [online],2019年10月07日,https://automaton-media.com/articles/newsjp/20191007-103368/,[2022年02月14日検索]
【文献】大乱闘スマッシュブラザーズ SPECIAL,電撃Nintendo,株式会社KADOKAWA,2019年02月21日,第19巻 第2号 ,p.19
【文献】TEAM SMAB,大乱闘スマッシュブラザーズDX,週刊ファミ通 ,株式会社エンターブレイン,2001年12月21日,第16巻 第51号,pp. 132,133
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24,13/00-13/98
G06T 1/00-1/00,11/60-13/80,
17/05,19/00-19/20
(57)【特許請求の範囲】
【請求項1】
コンピュータゲームにおいてキャラクタのジャンプ動作をシミュレートするための、コンピュータで実行される方法であって、該方法は、
ギャップ上のキャラクタのジャンプに関連する所定の条件が満たされているか否かを決定すること、
前記所定の条件が満たされたことに反応して、キャラクタの手足の少なくとも一つの骨を伸張させるシミュレートを行う逆運動学処理を行うこと無く、該キャラクタのあらかじめ格納されたアニメーションデータに基づいて、前記ギャップ上のキャラクタの第1のジャンプ動作を含む、第1の一連の画像フレームを生成すること、
前記所定の条件が満たされていないことに反応して、キャラクタの手足の少なくとも一つの骨を伸張させるシミュレートを行う逆運動学処理を少なくとも行って、前記ギャップ上のキャラクタの第2のジャンプ動作を含む、第2の一連の画像フレームを生成すること、から
構成され、
前記逆運動学処理を実行することは、前記キャラクタの手足の一つ以上の骨の長さを変えることで、該キャラクタのポーズを決定すること含む、ことを特徴とする方法。
【請求項2】
請求項1記載の方法において、
前記所定の条件が満たされる場合とは、以下の(1)~(3)の
一つ以上を満たす場合であり、
(1)ジャンプ開始点から、ギャップの反対側までの距離
が閾値以下、
(2)前記ギャップの両側の高低差
が別の閾値以下、
(3)前記キャラクタがジャンプを行う際の、該キャラクタの速度
が前記ギャップを飛び越えるに十分な速さ、
そして、前記所定の条件が満たされると、前記キャラクタは、該キャラクタの一つ以上の手足が伸張されること無く、前記ギャップの反対側に到達することが示される、ことを特徴とする方法。
【請求項3】
請求項
1の方法において、該方法は更に、
ジャンプ動作中の前記キャラクタのポーズ及び軌跡を、該キャラクタの位置、線形速度、角速度、体積、慣性テンソル及び方向の内、少なくとも一つを含むキャラクタの物理特性に基づいて該キャラクタの動きをシミュレーションすることで、決定することを含む、ことを特徴とする方法。
【請求項4】
請求項
3記載の方法において、前記ギャップの他の側に着地する前に、前記キャラクタの手が、ジャンプ中に
掴むことの出来るオブジェクトに取り付くと、そこで、前記キャラクタの動きのシミュレーションは、更に該取り付いたオブジェクトから前記キャラクタに作用する力及び逆運動学に基づいて行われる、ことを特徴とする方法。
【請求項5】
請求項
4記載の方法において、該方法は、更に、掴む動作又はジャンプ動作を示すユーザコマンドを受け取ると、シミュレートされた環境内で、一つ以上のマーカーに基づいた位置を決定することを含む、ことを特徴とする方法。
【請求項6】
請求項1記載の方法において、前記第1の一連の画像フレームは、キャラクタの予め格納されたアニメーションクリップのサブセットをブレンドすることで生成される、ことを特徴とする方法。
【請求項7】
請求項6記載の方法において、前記予め格納されたアニメーションクリップのサブセットは、前記キャラクタがジャンプを行った際の、該キャラクタのスピードに基づいて選択される、ことを特徴とする方法。
【請求項8】
請求項1記載の方法において、該方法は、更に、前記第1の一連の画像フレーム又は第2の一連の画像フレームを生成する前に、ジャンプを開始するためのユーザからのコマンドを受け取る、ことを特徴とする方法。
【請求項9】
請求項1記載の方法において、前記第1の一連の画像フレームは、前記キャラクタが該キャラクタの
両手でギャップの反対側の壁又は岩棚を掴んでいるものを含み、前記第2の一連の画像フレームは、前記キャラクタが、ギャップの一方の側とギャップの他方の側の間に配置されたオブジェクトを
片手で掴むか、又は片手でギャップの反対側の壁又は岩棚を掴んでいるものを含んでいる、ことを特徴とする方法。
【請求項10】
指示を格納するコンピュータ可読記録媒体であって、前記指示は、一つ以上の処理装置によって実行されると、該一つ以上の処理装置に、以下の処理を行わせる、
ギャップ上のキャラクタのジャンプに関連する所定の条件が満たされているか否かを決定すること、
前記所定の条件が満たされたことに反応して、キャラクタの手足の少なくとも一つの骨を伸張させるシミュレートを行う逆運動学処理を行うこと無く、該キャラクタのあらかじめ格納されたアニメーションデータに基づいて、前記ギャップ上のキャラクタの第1のジャンプ動作を含む、第1の一連の画像フレームを生成すること、
前記所定の条件が満たされていないことに反応して、キャラクタの手足の少なくとも一つの骨を伸張させるシミュレートを行う逆運動学処理を少なくとも行って、
前記キャラクタの手足の一つ以上の骨の長さを変えることで、該キャラクタのポーズを決定して、前記ギャップ上のキャラクタの第2のジャンプ動作を含む、第2の一連の画像フレームを生成すること、
を特徴とするコンピュータ可読記録媒体。
【請求項11】
請求項
10記載のコンピュータ可読記録媒体であって、
前記所定の条件が満たされる場合とは、以下の(1)~(3)の
一つ以上を満たす場合であり、
(1)ジャンプ開始点から、ギャップの反対側までの距離
が閾値以下、
(2)前記ギャップの両側の高低差
が別の閾値以下、
(3)前記キャラクタがジャンプを行う際の、該キャラクタの速度
が前記ギャップを飛び越えるに十分な速さ、
そして、前記所定の条件が満たされると、前記キャラクタは、該キャラクタの一つ以上の手足が伸張されること無く、前記ギャップの反対側に到達することが示される、ことを特徴とするコンピュータ可読記録媒体。
【請求項12】
請求項
10記載のコンピュータ可読記録媒体であって、前記指示は、更に、一つ以上の処理装置に、ジャンプ動作中の前記キャラクタのポーズ及び軌跡を、該キャラクタの位置、線形速度、角速度、体積、慣性テンソル及び方向の内、少なくとも一つを含むキャラクタの物理特性に基づいて該キャラクタの動きをシミュレーションすることで決定する、指示を含む、ことを特徴とするコンピュータ可読記録媒体。
【請求項13】
請求項
12記載のコンピュータ可読記録媒体であって、前記ギャップの他の側に着地する前に、前記キャラクタの手が、ジャンプ中に
掴むことの出来るオブジェクトに取り付くと、そこで、前記キャラクタの動きのシミュレーションは、更に該取り付いたオブジェクトから前記キャラクタに作用する力及び逆運動学に基づいて行われる、ことを特徴とするコンピュータ可読記録媒体。
【請求項14】
請求項
13記載のコンピュータ可読記録媒体であって、前記指示は、更に、一つ以上の処理装置に、掴む動作又はジャンプ動作を示すユーザコマンドを受け取ると、シミュレートされた環境内で、一つ以上のマーカーに基づいた位置を決定する、指示を含むことを特徴とするコンピュータ可読記録媒体。
【請求項15】
請求項
10記載のコンピュータ可読記録媒体であって、前記第1の一連の画像フレームは、キャラクタの予め格納されたアニメーションクリップのサブセットをブレンドすることで生成され、前記予め格納されたアニメーションクリップのサブセットは、前記キャラクタがジャンプ動作を行った際の、該キャラクタのスピードに基づいて選択される、ことを特徴とするコンピュータ可読記録媒体。
【請求項16】
請求項
10記載のコンピュータ可読記録媒体であって、前記指示は、更に、一つ以上の処理装置に、前記第1の一連の画像フレーム又は第2の一連の画像フレームを生成する前に、ジャンプを開始するためのユーザからのコマンドを受け取る、指示を含むことを特徴とするコンピュータ可読記録媒体。
【請求項17】
請求項
10記載のコンピュータ可読記録媒体であって、前記第1の一連の画像フレームは、前記キャラクタが該キャラクタの
両手でギャップの反対側の壁又は岩棚を掴んでいるものを含み、前記第2の一連の画像フレームは、前記キャラクタが、ギャップの一方の側とギャップの他方の側の間に配置されたオブジェクトを
片手で掴むか、又は片手でギャップの反対側の壁又は岩棚を掴んでいるものを含んでいる、ことを特徴とするコンピュータ可読
記録媒体。
【請求項18】
指示を格納するコンピュータ可読記録媒体であって、
前記指示は、一つ以上の処理装置によって実行されると、該一つ以上の処理装置に、以下の処理を行わせる、
ギャップ上のキャラクタのジャンプに関連する所定の条件が満たされているか否かを決定すること、
前記所定の条件が満たされたことに反応して、キャラクタの手足の少なくとも一つの骨を伸張させるシミュレートを行う逆運動学処理を行うこと無く、該キャラクタのあらかじめ格納されたアニメーションデータに基づいて、前記ギャップ上のキャラクタの第1のジャンプ動作を含む、第1の一連の画像フレームを生成すること、
前記所定の条件が満たされていないことに反応して、キャラクタの手足の少なくとも一つの骨を伸張させるシミュレートを行う逆運動学処理を少なくとも行って、
前記キャラクタの手足の一つ以上の骨の長さを変えることで、該キャラクタのポーズを決定して、前記ギャップ上のキャラクタの第2のジャンプ動作を含む、第2の一連の画像フレームを生成すること、
また、前記コンピュータ可読記録媒体は、前記生成された一連の画像フレームを格納していることを特徴とするコンピュータ可読
記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2020年6月29日に提出した米国特許出願16/915732の一部継続出願であり、2020年1月30日に提出した日本国特許出願2020-13747の優先権を主張するものである。これらはここで参照することで完全に導入される。
【0002】
本開示は、コンピュータゲームにおいて伸縮可能な身体パーツを持ったキャラクタのジャンプ動作をシミュレートすることに関する。
【背景技術】
【0003】
コンピュータゲームにおいては、シミュレートされた環境で多様なキャラクタが行動し、動作を行う。多くのビデオゲームは、該ビデオゲームが実行される環境と相互的に作用するキャラクタを有する。多くの構想が、ビデオゲーム内のキャラクタをよりリアルにまたリアルタイムに行動させるために用いられている。キャラクタは、一般的にはツリーデータ構造で構成されたピン関節で接続された骨を持ったスケルトンにより定義される。こうしたスケルトンを使用して逆運動学が、キャラクタの一連のポーズを生成し、キャラクタの手足をビデオゲームのバーチャル環境に整合させる。ポーズのそれぞれは、例えば、関節の並進運動や回転運動を含んだ関節特性の観点から定義される。各キャラクタによって取られるべき動作によるが、逆運動学は関節の方向を決定し、一連のポーズは円滑にかつリアルに行われる。次いで、キャラクタのポーズは、処理されて、キャラクタ表面を形成する頂点を持ったワンセットのポリゴンとなる。
【0004】
ビデオゲームでキャラクタの動きを生成する別の方法は、アニメーションクリップをブレンドさせることによる。アニメーションクリップは、あらかじめ生成して、ゲームシステムに格納されている。クリップの経時的な順番が選択されると、該選択されたアニメーションクリップは、時間的に変化する重みに基づいてブレンドされ、新しい動作を生成する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
逆運動学を用いて関節の動きをシミュレートすることは、よりリアルな動きとポーズを提供するが、予め格納されているアニメーションクリップを読み出す代わりに、リアルタイムでキャラクタの動きを決定することから、アニメーションクリップのブレンドに比して、キャラクタをレンダリングするために使用する演算リソースは大きい。
【課題を解決するための手段】
【0006】
実施例は、コンピュータゲームにおいて、キャラクタのジャンプ動作をシミュレートすることに関する。所定の条件が満たされた場合、キャラクタの手足の少なくとも一つの骨を伸張させるシミュレートを行う逆運動学処理を行うこと無く、キャラクタのあらかじめ格納されたアニメーションデータに基づいて、ギャップ上のキャラクタの第1のジャンプ動作を含む、第1の一連の画像フレームを生成する。所定の条件が満たされていない場合、キャラクタの手足の少なくとも一つの骨を伸張させるシミュレートを行う逆運動学処理を少なくとも行って、ギャップ上のキャラクタの第2のジャンプ動作を含む、第2の一連の画像フレームを生成する。
【0007】
一つ以上の実施例において、前記所定の条件は、以下の(1)~(3)の一つ以上のものと関連している。
(1) ジャンプ開始点から、ギャップの反対側までの距離、
(2) 前記ギャップの両側の高低差、
(3) 前記キャラクタがジャンプを行う際の、該キャラクタの速度。
【0008】
一つ以上の実施例において、前記所定の条件が満たされると、キャラクタの一つ以上の手足が伸張されること無く、キャラクタが、前記ギャップの反対側に到達することを示す。
【0009】
一つ以上の実施例において、逆運動学を実行することは、キャラクタの手足の一つ以上の骨の長さを変えることで、該キャラクタのポーズを決定すること含む。
【0010】
一つ以上の実施例において、ジャンプ動作中の前記キャラクタのポーズ及び軌跡を、該キャラクタの位置、線形速度、角速度、体積、慣性テンソル及び方向の内、少なくとも一つを含むキャラクタの物理特性に基づいて該キャラクタの動きをシミュレーションすることで、決定する。
【0011】
一つ以上の実施例において、ギャップの他の側に着地する前に、キャラクタの手が、ジャンプ中に或る場所に取り付くと、そこで、キャラクタの動きのシミュレーションは、更に該取り付けられたオブジェクトからキャラクタに作用する力及び逆運動学に基づいて行われる。
【0012】
一つ以上の実施例において、掴む動作又はジャンプ動作を示すユーザコマンドを受け取ると、シミュレートされた環境内で、一つ以上のマーカーに基づいて位置を決定する。
【0013】
一つ以上の実施例において、第1の一連の画像フレームは、キャラクタの予め格納されたアニメーションクリップのサブセットをブレンドすることで生成される。
【0014】
一つ以上の実施例において、予め格納されたアニメーションクリップのサブセットは、前記キャラクタがジャンプ動作を行った際の、該キャラクタのスピードに基づいて選択される。
【0015】
一つ以上の実施例において、第1の一連の画像フレーム又は第2の一連の画像フレームを生成する前に、ジャンプを開始するためのユーザからのコマンドを受け取る。
【0016】
一つ以上の実施例において、第1の一連の画像フレームは、キャラクタが該キャラクタの両腕でギャップの反対側の壁又は岩棚を掴んでいるものを含み、第2の一連の画像フレームは、キャラクタが、ギャップの一方の側とギャップの他方の側の間に配置されたオブジェクトを片腕で掴むか、又は片手でギャップの反対側の壁又は岩棚を掴んでいるものを含んでいる。
【図面の簡単な説明】
【0017】
【
図1】
図1は、実施例による、コンピュータゲームシステムのブロック図の例である。
【0018】
【
図2】
図2は、実施例による、
図1のクライアント装置のブロック図の例である。
【0019】
【
図3】
図3は、実施例による、
図1のクライアント装置のメモリ内の、ソフトウェアモジュールのブロック図の例である。
【0020】
【
図4】
図4は、実施例による、
図3のメモリ内の、ジャンプ動作モジュールのブロック図の例である。
【0021】
【
図5】
図5は、実施例による、
図3のメモリ内の、アニメーションモジュールのブロック図の例である。
【0022】
【
図6A】
図6Aは、実施例による、キャラクタの多様なジャンプ動作の一例を示す概念図である。
【
図6B】
図6Bは、実施例による、キャラクタの多様なジャンプ動作の一例を示す概念図である。
【
図6C】
図6Cは、実施例による、キャラクタの多様なジャンプ動作の一例を示す概念図である。
【
図6D】
図6Dは、実施例による、キャラクタの多様なジャンプ動作の一例を示す概念図である。
【
図6E】
図6Eは、実施例による、キャラクタの多様なジャンプ動作の一例を示す概念図である。
【0023】
【
図7A】
図7Aは、実施例による、ジャンプ動作に関連したキャラクタの一連の動きの例を示す図である。
【
図7B】
図7Bは、実施例による、ジャンプ動作に関連したキャラクタの一連の動きの例を示す図である。
【
図7C】
図7Cは、実施例による、ジャンプ動作に関連したキャラクタの一連の動きの例を示す図である。
【0024】
【
図8】
図8は、実施例による、キャラクタのジャンプ動作をシミュレートする過程を示すフローチャートである。
【
図9】
図9は、本発明の別の実施例が適用されるビデオゲーム装置の一例を示す制御ブロック図。
【
図10】
図10は、ディスプレィに表示されるギャップジャンプの一例を示す図で、ジャンプ前の助走状態の一例を示す図。
【
図11】
図11は、ディスプレィに表示されるギャップジャンプの一例を示す図で、ギャップを飛び越えている状態の一例を示す図。
【
図12】
図12は、ディスプレィに表示されるギャップジャンプの一例を示す図で、ギャップを飛び越えている状態で、
図11の後の状態の一例を示す図。
【
図13】
図13は、ディスプレィに表示されるギャップジャンプの一例を示す図で、反対側の着地点に着地した状態の一例を示す図。
【
図14】
図14は、ジャンプシーン-アニメーションマップの一例を示す模式図。
【
図15】
図15は、ギャップジャンプでの制御状態を示す模式図。
【
図16】
図16は、ジャンプ表示制御プログラムの一例を示すフローチャート。
【0025】
図は、図示を目的として本開示の実施例を示す。当業者であれば、以下の記述から、ここに示した構造及び方法の別の実施例を、ここに開示された原則又は利益から離れることなく用いることが出来る点は、容易に認識することが出来る。
【発明を実施するための形態】
【0026】
実施例の以下の記述では、多くの特定の記述が、より完全な理解を提供するために、なされている。しかし、実施例は、これらの特別な詳細さがなくとも実施することが出来る。他の点では、よく知られた特徴は、記述を複雑にすることを避けるために、詳細には述べられていない。
【0027】
実施例は図面を参照して説明するが、類似の参照番号は、機能的に同一又は類似した素子を示す。図面(
図1~
図8)において、各参照番号の最も左の桁又は左の複数の桁は、該参照番号が最初に使用された図に対応している。
【0028】
実施例は、一つ以上の伸縮可能な身体部分を持ったキャラクタのジャンプ動作を含んだ画像フレームを、予め格納されているアニメーションクリップのブレンドだけでなく、それに加えて、身体パーツの一つ以上の骨が伸縮される逆運動学処理と、あらかじめ格納されたアニメーションクリップのブレンドを行うことで、生成することに関する。ブレンドのみか、追加的な逆運動学を行うかは、所定の条件が満たされるか否かにによる。ブレンドすべきあらかじめ格納されたアニメーションクリップは、ジャンプ動作を行う際のキャラクタのスピードに基づいて決定される。逆運動学を実行する場合、キャラクタの物理特性をシミュレートして、ジャンプ中のキャラクタの軌道を決定する。
【0029】
他の利点の中では、実施例は、1つ以上の伸縮可能な身体パーツを持つキャラクタの、ギャップ上のジャンプを含む画像フレームの効率的な生成を可能とするものであり、それはリアルな画像フレームを提供する際には、両方共に効果的である。アニメーションクリップのブレンドのみで、キャラクタのジャンプ動作は、演算リソース(例えば、処理サイクル及びメモリ空間)を効率的に使用して生成することが出来る。しかしながら、アニメーションクリップそれ自身によるブレンドが、リアルな動きやゲーム開発者の希望する動きと合わないような場合には、画像のキャラクタポーズは、アニメーションクリップの混合に比してより演算リソースを消費する逆運動学によって更に決定されることとなる。
【0030】
図1は、実施例により、本明細書に記載された技術が実施され得るシステム100のブロック図である。システム100は、他の部品の中でも、コンテンツクリエータ110、サーバー120、クライアント装置140及びネットワーク144を含む。他の実施例では、システム100は、追加的なコンテンツクリエータ110やサーバー120を含むことが出来、又単一のクライアント装置140となる場合もある。
コンテンツクリエータ110、サーバー120及びクライアント装置140は、ネットワーク144を介して通信するように構成されている。ネットワーク144は、有線及び/又は無線通信システムを用いた、ローカルエリア及び/又は広域ネットワークのあらゆる組み合わせを含むことが出来る。一つの実施例では、ネットワーク144は通常の通信技術及び/又はプロトコルを使用する。例えば、ネットワーク144は、イーサネット、802.11、ワイマックス(worldwide interoperability for microwave access (WiMAX)、3G、4G、符号分割多元接続(CDMA)、デジタル加入者線(DSL)などの技術を用いた通信リンクを含むものである。ネットワーク144を介した通信に使用されるネットワークプロトコルの例には、マルチプロトコル ラベル スイッチング(MPLS)、トランスミッション コントロール プロトコル/インターネットプロトコル(TCP/IP)、ハイパーテキスト・トランスファー・プロトコル(HTTP)、シンプル メール トランスファー プロトコル(SMTP)及びファイル・トランスファー・プロトコル(FTP)を含む。ネットワーク114上で交換されるデータは、ハイパーテキスト マークアップ ランゲージ(HTML)又はエクステンシブル マークアップ ランゲージ(XML)のような適切なフォーマットを使用して表示することが出来る。ある実施例では、ネットワーク144のいくつか又は全ての通信リンクは、何らかの適切な技術又はそれらの組み合わせた技術を用いて暗号化することが出来る。
【0031】
コンテンツクリエータ110は、パーソナルコンピュータ、モバイルフォン、タブレットなどのコンピュータ装置であり、ゲーム開発者に、コンピュータゲームのためのコンテンツアイテム(例えば、キャラクタ及び環境情報)の生成を可能とする。このために、コンテンツクリエータ110は、プロセッサ及びコンテンツアイテムを生成するための多様なソフトウェアモジュールを格納したメモリ(図示せず)を含む。生成されたコンテンツアイテムは、サーバー120に送られ、そのメモリ130に格納される。
【0032】
サーバー120は、バス127によって接続されたプロセッサ128とメモリ130とを含む演算装置である。メモリ130は、さまざまな実行可能コードモジュールまたは実行不可能なコンテンツアイテム122を含む。サーバー120は、コンテンツクリエータ110とクライアント装置140との間でメッセージを受信およびルーティングすることができる。実行不可能なコンテンツアイテム122は、伸縮可能な身体パーツを持ったキャラクタについての情報を含むことが出来る。こうしたコンテンツアイテムは、ネットワーク144を介してクライアント装置140に送ることができる。
【0033】
プロセッサ128は、ここで述べるいくつか又は全ての技術の実行などの、取るべき処理を特定する指示を、順番に、又は他の方法で実行することが出来る。バス127は、プロセッサ128とメモリ130を接続し、互いの間のデータ転送を可能とする。実施例によるが、サーバー120は、従来の演算装置に追加的な素子を含むことができる。
【0034】
各クライアント装置140は、ゲーム又は他のソフトウェアを含んだ演算装置である。クライアント装置140は、サーバー120からデータオブジェクトを受け取り、該データオブジェクトを使用して、キャラクタ及びキャラクタがゲーム内で動作する環境の画像表現をレンダリングする。異なるクライアント装置140は、サーバー120から異なるデータオブジェクトを要求することができる。
【0035】
図1に示す実施例では、ネットワーク環境での処理を述べるが、他の実施例では、クライアント装置140はネットワークを介して接続されることは無く、コンピュータゲームは、ネットワーク上でのメッセージ又はコンテンツアイテムの交換をすることなく実行される。こうした場合には、コンピュータゲームに関連するコンテンツアイテムは、DVD ROM、CD ROM又はフラッシュドライブなどの一時的ではないコンピュータ可読媒体を使用してクライアント装置140に受け取られ、インストールされる。
【0036】
図2は、実施例による
図1のクライアント装置140のブロック図である。実施例によるが、コンテンツクリエータ110及び/又はサーバー120は、ここで記述するクライアント装置140のハードウェア及び/又はソフトウェア素子の一部又は全てを含んだ演算装置として実現することが出来る。クライアント装置140は、コンテンツクリエータ110及び/又はサーバー120は、指示を実行することの出来るどのような装置でもよく、又それぞれはスタンドアロン装置又は接続された(例えば、ネットワーク化された)装置のセットでもよい。
【0037】
クライアント装置140は、他の構成要素の中で、バス216によって接続された、中央演算ユニット(“CPU”)202、グラフィック処理ユニット(“GPU”)204、主メモリ206、副メモリ214、ディスプレィ制御装置208、ユーザーインターフェース210、およびサウンドコントローラ212を含んでいてもよい。単一のクライアント装置140のみを示したが、他の実施例では、個別的にまたは協働して指令を実行してここで述べた方法論の一つ以上を実行するクライアント装置140の何らかの集合体を含むようにしてもよい。
【0038】
主メモリ206は、ここで述べる一つ以上の方法論又は機能を具現化する機能(例えば、ソフトウェア)を格納する機械可読媒体である。例えば、主メモリ206は、CPU202により実行されることで、CPU202が、
図7を参照して詳細が以下に述べられるプロセス700を実行するように構成される指令を格納するようにしてもよい。指令は、また、CPU202及び/又はGPU204内に、例えばキャッシュメモリ内に、該指令の実行中は部分的又は全部が駐留するようにしてもよい。
【0039】
「機械可読媒体」とは、指令を格納することの出来る、単一の媒体又は複数の媒体を含んでいるものと取るべきである(例えば、集中又は分散データベース、又は関連したキャッシュ及びサーバー)。「機械可読媒体」は、また、装置により実行されるための指令を格納することの出来る何らかの媒体であり、ここで開示した一つ以上の方法論の何らかを装置に実行させるようにする何らかの媒体を含むものと捉えるべきである。「機械可読媒体」は、半導体メモリ、光学媒体、磁気媒体の形でのデータ貯蔵庫を含むものであるが、それに限定されるものではない。
【0040】
副メモリ214は主メモリ206とは離れたメモリある。主メモリ206と同様に、副メモリ214は、ここで開示した一つ以上の方法論又は機能を具現化する指令(例えば、ソフトウェア)を格納する機械可読媒体である。例えば、主メモリ206は、クライアント装置140のハード装置であってもよく、副メモリ214はゲームディスクであってもよい。
【0041】
CPU202は、主メモリ206及び/又は副メモリ214に格納された指令を実行するように構成されている処理回路である。CPU202は、汎用プロセッサ又は多様な命令セットアーキテクチャ(ISAs)の何らかを用いている埋め込みプロセッサとしてもよい。
図2には、単一のCPUを示すが、クライアント装置140は、マルチCPU202であってもよい。マルチプロセッサシステムでは、各CPUは、通常同じISAを実行するが、これに限るものではない。
【0042】
GPU204は、画像イメージを効率的に処理するために特別に設計された処理回路である。GPU204は、CPU202からの指令に基づき、表示すべきオブジェクトをレンダリングし、フレームバッファ(例えば、フレーム全体のピクセルデータを含んだもの)に書き込む。GPU204は、グラフィックソフトウェアを実行して、グラフィック処理の一部又は全てを行う一つ以上のグラフィック処理装置を含むようにしてもよい。
【0043】
ディスプレィ制御装置208は、GPU204からの映像データを用いてビデオ信号を生成する回路である。例えば、ディスプレィ制御装置208は、ディスプレィ装置(例えば、液晶ディスプレィ(LCD)及びプロジェクター)を駆動する。伸縮可能な身体パーツを持った一つ以上のキャラクタを含むゲームなどは、ディスプレィ制御装置208を介して画像又は画像フレームのシーケンスとして表示することが出来る。
【0044】
サウンドコントローラ212は、クライアント装置140からの、及びクライアント装置140へのオーディオ信号の入出力を提供する回路である。キャラクタの目的として、サウンドコントローラ212は、コンピュータゲームのオブジェクトやアクションと協調してオーディオ信号を提供することができる。
【0045】
ユーザーインターフェース210は、ユーザがクライアント装置140と関わることを可能とする、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせである。ユーザーインターフェース210は、英数字入力装置(例えば、キーボード)及びカーソル制御装置(例えば、マウス、トラックボール、ジョイスティック、モーションセンサー又は他の指示装置)を含むことができる。例えば、ユーザは、キーボード及びマウスを使用して、クライアント装置140によりレンダリングされた電子マップを含むゲーム環境内でキャラクタの動作を制御する。
【0046】
クライアント装置140は、ここで述べた機能性を提供するためのコンピュータプロラムモジュールを実行する。ここで使用したように、「モジュール」という言葉は、特定の機能性を提供するために使用されるコンピュータプログラム指令及び/又は他のロジックに関するものである。そして、モジュールはハードウェア、ファームウェア及び/又はソフトウェア内で実行され得る。ある実施例では、実行可能なコンピュータプログラム指令からなるプログラムモジュールは、主メモリ206にロードされ、CPU202又はGPU204により実行される。例えば、ここで述べる処理700のプログラム指令は、主メモリ206及び/又は副メモリ214にロードされ、CPU202及びGPU204により実行することができる。ある実施例では、ここで述べたモジュールの一つ以上の機能は、専用の回路で実行されるようにしてもよい。
【0047】
図3は、実施例に基づいた、
図1のクライアント装置140の主メモリ内の、ソフトウェアモジュールのブロック図である。特に
図3は、クライアント装置140の主メモリ206内のソフトウェアモジュールを示している。主メモリ206は、モジュールの中でも、ゲームシステム300とオペレーティングシステム(「OS」)380を格納してもよい。主メモリ206は、
図3で示した以外の他のモジュールを含んでいてもよい。更に、他の実施例では、
図3のモジュールの少なくとも一部は、副メモリ214に格納されている。
【0048】
ゲームシステム300は、レベルマネージャー320、物理システム330,サウンドモジュール340,地面ジェネレータ350、アニメーションモジュール360及びグラフィックレンダリングモジュール370を含んでいる。これらのモジュールは集合的にゲームシステム300の「ゲームエンジン」を形成する。
【0049】
ゲームシステム300は、ゲーム環境内でのキャラクタの動作を生成するための処理モジュール312Aから312N(集合的に「処理モジュール312」と称する)を含んでいる。処理モジュール312の少なくともいくつかは、キャラクタポーズに変化を引き越して、動作を実現する。処理モジュール312は、あるイベント(例えば、ゲーム内で生じるユーザとの相互作用、時間切れ及びトリガー)が生じたことにより、多様なパラメータ(例えば、キャラクタのポーズ又は位置)を変化させる処理を行う。
【0050】
いくつかの処理モジュール312は、伸縮可能な身体パーツを持ったキャラクタが行う動作と関連している。そうしたキャラクタは、伸延又は縮小可能な(例えば、弾性的な)一つ以上の身体パーツを持っていても良い。キャラクタは、該キャラクタが動作する際に(例えば、相手をパンチするために、腕の伸ばす)、又は、該キャラクタが、他の相手からの動作の対象となる際に(例えば、相手からパンチを受ける)、伸延又は縮小する柔軟な骨を持つようにしても良い。そうした処理モジュール312の一つが処理モジュール312Jであり、該処理モジュール312Jは、
図4を参照して以下に詳細を述べるように、キャラクタがギャップ上を飛び越えるジャンプ動作をシミュレートする。
【0051】
レベルマネージャー320は、サーバー120からデータオブジェクトを受け取り、レベルデータを主メモリ206に格納する。ゲームシステム300の他のモジュールは、レベルマネージャー320から一つ以上のレベルを要求することができ、レベルマネージャー320は、要求されたレベルに対応するレベルデータを、要求を出したゲームシステム300のモジュールに送ることで該要求に答える。
【0052】
地面ジェネレータ350は、電子マップデータ及びゲームデータに基づいて完全な電子マップを生成する。地面ジェネレータ350は、レベルマネージャー320から電子マップデータを、ゲーム及びオブジェクトデータを、例えば副メモリ214に格納されたコンテンツソースから受け取る。
【0053】
物理システム330は、ゲーム世界のオブジェクトの力学をモデル化し、シミュレートする。ある実施例では、処理の後、モジュール312がゲームシステム300で起動され、物理システム330は、処理モジュール312と関連した動作又はイベントが、該処理モジュール312に関連したオブジェクト又はキャラクタにどのように影響するかをモデル化する。例えば、物理システムは、ギャップを飛び越える際にキャラクタはどう動くかをモデル化する。動作及びオブジェクトによるが、他のオブジェクトや動作が、該動作又はオブジェクトと関連するようにしてもよい。
【0054】
アニメーションモジュール360は、ゲームシステム300からの処理に基づいたオブジェクトの運動学的アニメーションを実行する。例えば、処理モジュール312Jが、キャラクタがギャップを飛び越えることを規定すると、アニメーションモジュール360は、ジャンプに対応するキャラクタの動きを集合的に形成する、一連のキャラクタポーズを生成する。このために、アニメーションモジュール360はアニメーションクリップのブレンド及び逆運動学処理を行うことが出来る。これらのキャラクタのいくつかは、こうした動きの間に伸びたり又は縮んだりすることの出来る一つ以上の骨を持った伸縮可能な身体パーツを持っていてもよい。アニメーションモジュール360の詳細は、
図5を参照して以下に述べる。
【0055】
サウンドモジュール340は、ゲーム環境内で生じるイベント及び/又は動作に対応するサウンドを生成する。例えば、対応するサウンドは、キャラクタが相手をパンチした際に生成されてもよい。アニメーションモジュール360からのアニメーションデータ又は地面ジェネレータ350からの地面情報は、サウンドモジュール340に出力され、該サウンドモジュール340は、適切なサウンドデータを生成してサウンドコントローラ212に出力する。
【0056】
グラフィックレンダリングモジュール370は、アニメーションモジュール360からの情報を使用して図形をレンダリングし、画像フレームを生成する。この目的のために、グラフィックレンダリングモジュール370は、キャラクタの表面を集合的に形成するポリゴンの頂点の変化を示す変形マトリックス(transformation matrices)及び地面ジェネレータ350からの地面情報を受け取る。グラフィックレンダリングモジュール370は、混合されたアニメーションクリップ、変形マトリックス及び地面情報を処理して、画像データを生成し、ディスプレィスクリーンに表示する画像をレンダリングするためにGPU204に出力する(例えば、クライアント装置140のディスプレィスクリーン又はクライアント装置140に接続されたディスプレィであって、ディスプレィ制御装置208を介して)。
【0057】
OS380は、コンピュータハードウェア及びソフトウェアリソースを管理する。特に、OS380は、プログラムとコンピュータハードウェア間の仲介者として動作する。例えば、OS380は、ユーザーインターフェース210からの入力を認識したり、ディスプレィ制御装置208への出力を送ったりするような、基本的なタスクを行うことが出来る。
【0058】
アニメーションクリップストレージ364は、一つ以上のキャラクタのアニメーションクリップを格納する。対応する指標SN1からSNZを持ったアニメーションクリップSD1からSDZは、読み出されてアニメーションモジュール360で処理され、とりわけ、伸縮可能な身体パーツを持ったキャラクタのジャンプ動作を含んだ、キャラクタの動きを生成する。
【0059】
図4は、伸縮可能な身体パーツを持ったキャラクタのジャンプ動作を処理するための処理モジュール312Jの、ブロック図である。処理モジュール312Jは、とりわけジャンプ入力検知モジュール412,マークアップ検知モジュール416及びアニメーション選択モジュール424を含んでいてもよい。これらのモジュールは、
図4では、別々の記号が付されたモジュールとして示されているが、これらのモジュールの一つ以上は、単一のモジュールに結合されてもよく、またより多くのサブモジュールに分割されてもよい。
【0060】
ジャンプ入力検知モジュール412は、ユーザによって制御されるキャラクタがジャンプ処理を行うべきか否かを検知する。このために、ジャンプ入力検知モジュール412は、ジャンプ動作を示す、ユーザーインターフェース210を介して受け取るユーザ入力を検知する(例えば、ゲームコンソールコントローラ上のボタンを押下)。ゲームのステージ、フェーズ、又は前の/後のユーザ入力によるが、同じユーザ入力がキャラクタの異なる動作を示してもよい。
【0061】
ジャンプ動作を示すユーザ入力が検出されると、マークアップ検知モジュール416は、キャラクタの仮想環境内の多様な関心点を検出する。仮想環境は、多様なオブジェクト及び関心点(例えば、岩棚、端部、障害物など)でマークアップされている。とりわけ、マークアップ検知モジュール416は、ギャップがキャラクタの経路上に有るかどうかを決定し、もし有る場合には、その形態(例えば、幅及び高低差)を決定する。一つ以上の実施例では、ギャップは、シミュレートされた環境内の多様なオブジェクトを示すマーカーによって示されていてもよい。マークアップ検知モジュール416は、また、アニメーション選択モジュール424に、ジャンプ入力検知モジュール412で検知された、キャラクタがジャンプを開始する位置に対する、ギャップの反対側の点(例えば、岩棚)までの距離又は高さに関する情報を出力する。
【0062】
マークアップ検知モジュール416は、また、キャラクタの一つ以上の手が掴むことの出来る位置を検出して、ジャンプの間又は後のキャラクタによるオブジェクトの掴み具合をシミュレートする。掴むことの出来るオブジェクトは、例えば、ギャップ上に突き出たポール、ギャップの反対側の岩棚又は端部とすることができる。マークアップ検知モジュール416は、仮想掴み点を生成し、シミュレート環境内でマークを連結するスプラインに沿ってその位置を決定する。ジャンプを示すユーザ入力がジャンプ検知モジュール412で検知されると、キャラクタの軌跡内の掴み点は、マーカーに基づいて識別される。掴み処理の許容範囲は、もしキャラクタの軌跡が、掴むことの出来るオブジェクトを示すマーカーから、ある閾値距離以上の場合、掴み点は生成されない形で、設定される。一つ以上の実施例では、異なる掴み方(例えば、片手又は両手で掴む)が、掴むことの出来るオブジェクトのマーカーによって許容されてもよい。
【0063】
アニメーション選択モジュール424は、逆運動学を用いずにアニメーションクリップのブレンドのみを使用するための所定の条件が満たされているか否かを決定する。所定の条件とは、キャラクタがギャップの反対側に、該キャラクタの一つ以上の手足を伸ばすことなく到達することが出来るかを示すものでよい。アニメーション選択モジュール424は、例えば、ジャンプの開始点からギャップの反対側までの距離が閾値以下であり、ギャップの両側の高低差が別の閾値以下であり、またキャラクタの速度が該ギャップを飛び越えるに十分な速さである時、所定の条件が満たされたものと決定してよい。他の例では、所定の条件は、ギャップの反対側までの距離、ギャップ両側の高低差及びキャラクタの速度を含んだ関係の観点から表現されてもよい。もしこれらの条件が満たされると、キャラクタは、手足を伸張させることなくギャップを飛び越えることが出来る。こうした場合、十分にリアルな画像フレームが、何らの逆運動学処理を行うこと無く、アニメーションクリップストレージ364に予め格納されたアニメーションクリップをブレンドさせるだけで生成することができる。従って、アニメーション選択モジュール424は、ブレンドされたアニメーションクリップを使用することを示すジャンプ選択信号510を出力するようにしてもよい。こうして、ジャンプ動作をシミュレートすることに関する演算リソースの使用は低減される。
【0064】
逆に、アニメーション選択モジュール424が、キャラクタの手足(例えば、腕)を、ギャップの反対側に届かせるために、伸ばすべきであると決定した場合、アニメーションモジュール424はジャンプ選択信号510を生成して運動学エンジン522の使用を指示し、一つ以上の伸延した手足を持ったキャラクタの動きを、伸縮性逆運動学が伴ったアニメーションクリップのブレンドを用いて生成することができる。
【0065】
他の実施例では、所定の条件は、キャラクタの一つ以上の手が捕まえることの出来るオブジェクトを示すマーカーの存在により定義することができる。キャラクタの軌跡の近傍に沿ってこうしたオブジェクトが存在するか否かは、キャラクタのジャンプ動作を生成するためのブレンド又は逆運動学の使用を強制するかもしれない。多様な所定の条件が、少ない演算リソースの使用とリアルなジャンプ動作のバランスのために用いられてもよい。
【0066】
アニメーションモジュール360は、ジャンプ選択信号510に示されたジャンプのタイプによって、アニメーションデータを変換マトリックス542又はブレンドされたアニメーションクリップ548の形で生成する。ブレンドされたアニメーションクリップ548は、キャラクタの一連のポーズを表す。この目的のために、アニメーションモジュール360は、他の構成要素のなかでも、セレクターモジュール518,運動学エンジン522及びアニメーションブレンドモジュール530を含んでよい。
【0067】
セレクターモジュール518は処理モジュール312Jからの選択信号510を受け、運動学エンジン522(アニメーションブレンドモジュール530に引き続き)を有効化又は無効化して、キャラクタのアニメーションデータを生成する。もし運動学エンジン522が無効化されると、セレクターモジュール518はアニメーションモジュール360の出力としてアニメーションブレンドモジュール530で生成されたブレンドされたアニメーションクリップ548を出力する。もし運動学エンジン522が有効化されると、セレクターモジュール518はブレンドされたアニメーションクリップ548を運動学エンジン522に送り、ブレンドされたアニメーションクリップ548で示されるキャラクタのポーズを、アップデートされたキャラクタのポーズを表す変形マトリックス542に変更する。
【0068】
運動学エンジン522は、少なくとも一つの伸縮可能な身体パーツを持つキャラクタの変形マトリックス542を生成する、ストレッチ逆運動学エンジン526を有する。この目的のために、運動学エンジン522は、ストレッチ逆運動学(IK)エンジン526を含むことが出来るが、これは、例えば、2020年6月29日に出願された米国特許第16/915732の、「コンピュータゲームにおける伸縮可能なキャラクタのシミュレーション処理」で述べられたものであり、ここで引用することで、その全体がここに導入されるものである。運動学エンジン522は、物理システム330から物理特性512(例えば、キャラクタの位置、線形速度、角速度、体積、慣性テンソル及び方向)及びキャラクタのポーズ及び動作の制約又は特徴を示すキャラクタ動作情報514を受け取り、セレクターモジュール518を介してアニメーションブレンドモジュール530から、ブレンドされたアニメーションクリップ548を受け取ってもよい。運動学エンジン522で処理された結果として生成された変形マトリックス542は、後処理のためにグラフィックレンダリングモジュール370へ送られる。
【0069】
アニメーションブレンドモジュール530は、処理モジュール312Jからジャンプパラメータ532を受け取り、アニメーションクリップストレージ364からアニメーションクリップデータのサブセットを検索し、該検索されたアニメーションクリップデータをブレンドしてブレンドされたアニメーションクリップ548を生成する。アニメーションブレンドモジュール530は、処理モジュール312Jからジャンプパラメータ532(例えば、ジャンプ時のキャラクタの速度)を受け取り、適切なアニメーションクリップのインデックスを確認して、該確認されたインデックスに基づいてアニメーションクリップストレージ364からキャラクタのアニメーションクリップのサブセットを読み出してもよい。アニメーションブレンドモジュール530は、そしてアニメーションクリップのサブセットを、ジャンプパラメータ532から決定される時間変化重みを適用してブレンドする。アニメーションブレンドモジュール530は、よく知られた方法で処理するようにしてもよい。結果として生成された、ブレンドされたアニメーションクリップ548は、後の処理のためにグラフィックレンダリングモジュール370へ出力される。いくつかの実施例では、アニメーションブレンドモジュール530は、順運動学モジュールの一部である。
【0070】
図6Aから6Eは、実施例によるキャラクタの多様なジャンプ動作を図示した概念図である。
図6Aは、プラットフォームL1A上での時間(t-1)での、時間(t)でのキャップGA上でのジャンプ中の及び、時間(t+1)での、他のプラットフォームL2A上に着地したキャラクタを示す。ギャップGAの幅DAは、キャラクタの伸延能力を用いなくてもキャラクタが十分ジャンプ出来る程に小さい。従って、アニメーションセレクションモジュール424は、キャラクタのジャンプ動作を生成するために、運動学エンジン522無しで、アニメーションブレンドモジュール530だけを使用するように指示するジャンプ選択信号510を生成する。
【0071】
図6Bは、キャラクタCBが時間(t-1)でプラットフォームL1B上を走り、時間(t)で、幅DBのギャップGB上をジャンプするシナリオを示す。しかし、ギャップGBのより広い幅DBにより、キャラクタCBは時間(t+1)で、両手でプラットフォームL2Bの端部(又は、岩棚)を掴み、彼女自身を引き上げ、そして時間(t+2)でプラットフォームL2B上を歩き始める。プラットフォームL2Bの端部又は岩棚は、キャラクタの手が取り付けることが出来る位置としてマーク(Xで示す)されている。従って、マークアップ検知モジュール416は、キャラクタの手がジャンプ中に取り付けることの出来る端部又は岩棚を示すマーカーを識別する。幅又は距離DBは、マークアップ検知モジュール416により検出される。プラットフォームL1B上のキャラクタのジャンプ点からプラットフォームL2Bの端部又は岩棚までの距離及びキャラクタの速度及び軌跡に基づいて、アニメーション選択モジュール424は、キャラクタCBが、該キャラクタの腕を伸延させることなく端部又は岩棚上を掴むことが出来るものと決定する。従って、アニメーションセレクションモジュール424は、キャラクタのジャンプ動作を生成するために、運動学エンジン522無しで、アニメーションブレンドモジュール530だけを使用するように指示するジャンプ選択信号510を生成する。
【0072】
図6Cは、キャラクタが時間(t-1)でプラットフォームL1Cからジャンプしたが、幅DC及び/又は高低差HCが大きいか又はキャラクタCBの速度が不十分で、時間(t)で幅DCのギャップGCに落下し始めるシナリオを示す。マークアップ検知モジュール416は、高低差HCばかりかギャップGDの幅DCも検出し、該情報をアニメーション選択モジュール424に送る。アニメーション選択モジュール424は、距離DC、高低差HC、プラットフォームL1C上のジャンプ及び/又はキャラクタCCの速度の組み合わせが、時間(t+1)でキャラクタの腕を伸張させた時、「X」がマークされた位置にキャラクタの一つ以上の手を取り付けて、プラットフォームL2Cの端部又は岩棚を掴むシミュレートが許容されることを決定する。こうして、アニメーション選択モジュール424は、ストレッチ逆運動学を使用した変形マトリックスを生成するように運動学エンジン522に指示するジャンプ選択信号510を生成する。端部又は岩棚を掴んでギャップGCの外に彼女自身を引き上げた後は、キャラクタCCは時間(t+2)でプラットフォームL2C上を歩くか走る。
【0073】
図6Dは、時間(t-1)でプラットフォームL1DからキャラクタCDがジャンプし、時間(t)で、幅DDで高低差HDのギャップGD上をオブジェクトGO(例えば、ポール)掴むシナリオを示す。この例の場合、キャラクタCDがプラットフォームL1Dからジャンプした後で、オブジェクトGOを掴むように、ユーザ入力を受け取るかもしれないが、アニメーション選択モジュール424は、オブジェクトGOはキャラクタCDが彼女の腕を伸延させない限り、キャラクタCDには届かないものと決定する。そこで、アニメーション選択モジュール424は、アニメーションブレンドモジュール530に加えて運動学エンジン522を使用すべきとのジャンプ選択信号510を生成する。運動学エンジン522は、キャラクタCDが彼女の腕を伸延させて、オブジェクトGOを掴むことでキャラクタの身体に作用する力を考慮する形で、時間(t+1)でストレッチ逆運動学を使用してオブジェクトGOの下を他の方向にスイングする、キャラクタCDのポーズを生成する。同時に、物理システム330は、キャラクタの物理パラメータ(例えば、速度、体積、回転)に基づいて、キャラクタの重心の軌跡を決定する。こうして、運動学エンジン522は、ジャンプ、掴み及び開放動作中のキャラクタの一連のポーズを示すよりリアルな画像フレームを生成する。オブジェクトGOの下でのスイングの後、キャラクタは時間(t+2)でプラットフォームL2Dに着地する。
【0074】
図6Eは、キャラクタDEが時間(t-1)で、プラットフォームL1Eからジャンプし、時間(t)で幅DEのギャップGE上を、足を伸延させてジャンプし、時間(t+1)でプラットフォームL2E上に着地するシナリオを示す。
図6Aから6Dのシナリオとは異なり、距離DEはキャラクタCEが到達するには遠すぎるが、キャラクタの手が取り付ける場所を示すマーカーを持った場所を着地プラットフォームL2Eは持っていない。こうした場合、
図6Eで示すように、うまくいったジャンプに伴ってキャラクタCEの足が伸延してもよい。こうしたジャンプ動作は、アニメーションクリップストレージ364に格納されたアニメーションクリップをブレンドさせるか、足の骨を伸張させるストレッチ逆運動学を実行することで生成してもよい。足を伸延させることは、多様な他の状況においても使用することが出来る。
【0075】
図6Aから6Eで述べたシナリオにもかかわらず、仮に処理モジュール312J(特に、アニメーション選択モジュール424)が、キャラクタがジャンプに失敗したと決定した場合には、アニメーション選択モジュール424は、アニメーションモジュール360に、キャラクタがギャップに落下するシーンをリプレイするように指示してもよい。
【0076】
図6Aから6Eで示した実施例は、単なる例示である。一つ以上の実施例では、キャラクタは、更なるユーザからの入力を受け取った時にのみ、掴むことの出来るオブジェクトを掴む際に、
図6Bから6Eのシナリオで、ジャンプ中の足の伸延を行うようにしてもよい。更に、ギャップが閾値より狭い時には、足だけを伸延させる一方で、ギャップが閾値より広い場合には、ジャンプの際にキャラクタの足と手を伸延させるようにしてもよい。ブレンドされたアニメーションクリップを使用することと逆運動学を使用することの選択は、必要に応じてリアルな動きを生成する基準に基づいて決定して、ジャンプ動作をシミュレートするために使用される演算リソースを低減するようにしてもよい。
【0077】
図7Aから7Cは、実施例に基づいた、ジャンプ動作に関連するキャラクタの一連の動作を含む画像フレームを示す図である。
図7Aは、ギャップ710で隔たれたプラットフォーム704に向けて、プラットフォーム702上を走るキャラクタ708を示す。
図7Bは、同じキャラクタ708がギャップ710に落ちる時に、プラットフォーム704上の岩棚を掴んでいる状態を示している。
図7Bに示すように、キャラクタの腕は、アニメーションクリップのブレンドとストレッチ逆運動学を用いて伸張され、アームの骨の長さが増加している。
【0078】
図7Cは、ギャップ710が十分に狭く、キャラクタはアームを伸ばさなくてもプラットフォーム704の岩棚を掴むことが出来ている図である。一連の画像フレームは、あらかじめ格納されたアニメーションクリップをブレンドすることで生成され、ストレッチ逆運動学は使用されない。
【0079】
図8は、一つ以上の実施例による、キャラクタのジャンプ動作をシミュレートする工程を示すフローチャートである。キャラクタにギャップのジャンプを指示する、ユーザからのジャンプコマンドが受け取られる810。そうしたコマンドは、
図4で詳細を述べた、ジャンプ入力検知モジュール412で検知される。
【0080】
マークアップ検知モジュール416は、キャラクタの経路上にギャップがあるか否かを決定する814が、もし有ったならば、ギャップのコンフィグレーション(例えば、幅及び高さ)を検知する。マークアップ検知モジュール416の決定に基づいて、アニメーション選択モジュール424は、所定の条件が満たされているか否かを決定する818。所定の条件とは、例えば、ジャンプを開始する点からギャップの反対側までの距離、ギャップの両側の高低差及びキャラクタ速度等の関数として記述されてもよい。
【0081】
もし所定の条件が満たされると、ジャンプ動作は予め格納されたアニメーションクリップをブレンドすることで生成することができる。こうして、ブレンドのためのアニメーションクリップが、例えば、キャラクタがジャンプを開始する際のキャラクタの速度に基づいて決定される822。そして、アニメーションブレンドモジュール530は、選択されたアニメーションクリップを読み出してブレンドさせ、ブレンドされたアニメーションクリップを生成する826。
【0082】
逆に、所定の条件が満たされない場合には、キャラクタの一つ以上の手が取り付くことの出来る場所(例えば、ポール、岩棚又は端部)の存在を、マークアップ検知モジュール416で検知する830。こうした検知は、例えば、キャラクタの手が、ジャンプ動作中にキャラクタの軌跡の近傍で取り付くことの出来るオブジェクト又は位置を示すマーカーを検知することでなされてもよい。
【0083】
キャラクタのブレンドされたポーズは、格納されたアニメーションクリップをブレンドすることで生成される832。そして、ブレンドされたポーズは、ストレッチ逆運動学を用いてアップデートされ834、ジャンプ中のキャラクタのポーズを生成する。キャラクタのポーズは、キャラクタの少なくとも一つの腕が、ジャンプ中に掴むことの出来るオブジェクトに伸ばされることを示している。更に、キャラクタの動作が、物理学を使用して決定される838。
【0084】
図8に示した工程、ステップ及びそれらの順序は、単に例示的なものであり、工程に対する多様な変形が可能である。例えば、ポーズの生成834は、キャラクタの動作の決定838と平行して行うことも出来、または順序を逆にしてもよい。
【0085】
上記した実施例は、伸縮可能なキャラクタがジャンプでギャップの反対側に届くかどうかの決定に関連する所定の条件を主に述べたが、キャラクタを含んだ画像フレームが、画像のブレンド又は逆運動学処理のどちらによって生成されるかを決定するために、他の条件も使用することができる。例えば、場面でのキャラクタの大きさを、画像フレームをブレンドか又は逆運動学で生成するかを決定するための択一的な又は追加的な要素として使用してもよい。
【0086】
また、クライアント装置140の処理容量も、また、どのように画像フレームを生成するかを決定するのに、考慮してもよい。例えば、クライアント装置が低い処理能力の場合、ブレンドをより多く使用し、逆運動学の使用は限られた状況で控えめにしてもよい。
【0087】
更に、上記した実施例は、ギャップ上のジャンプに関連した動きを参照して述べたが、同じ原則を、壁上をジャンプするような他の動きにも適用してもよい。
【0088】
以下に、本発明の基礎となる技術について、上述した開示を捕捉すべく、記述する。
【0089】
即ち、本発明は、キャラクタがギャップ(ビルの谷間など)を飛び越える際に、例えば両脚を伸ばすなどの特殊能力を発揮してこれを飛び越えるという画像表現を、少ない演算負荷で行うことが可能なビデオゲーム装置及びゲームプログラムに関する。
【0090】
キャラクタがギャップ(ビルの谷間など)を飛び越える際に、例えば両脚を伸ばすなどの特殊能力を発揮してこれを飛び越えるという画像表現がコミックやアニメーションなどで知られている。また、ビデオゲームなどにおいて、このような表現をリアルタイム処理で実現したいという要望がある。
【0091】
一般的にゲーム内での表現は、現実世界の物理現象を模した仮想環境で実現している。例えば、キャラクタが水平方向に移動する場合は、そのキャラクタと足元(地面や床面)とのコリジョン判定がなされており、ギャップ上を通過するとコリジョン判定「無」により、キャラクタは作用する重力に対する反作用を失うことでギャップ内に落下するという制御がなされる。
【0092】
また、このような従来技術を適用して先述した「特殊能力を発揮してギャップを飛び越える」表現をするには次のような処理が想到される。即ち、キャラクタを水平方向に移動させてギャップ上を通過する場合、キャラクタが空中に居る場合、キャラクタとキャラクタの下方に存在するフィールド、即ち、地面や床との間に接触が一定時間以上無くなるので、コリジョン判定がコリジョン「無」となり、キャラクタを落下させないためにキャラクタの両脚を伸ばす特殊能力を発揮させる処理に進む。つまり、キャラクタのモデル(ポリゴンモデル)を、両足を伸ばしたモデルに差し替える処理を行う。その後、キャラクタが着地して、再度コリジョン判定が行われると、コリジョン判定がコリジョン「有」と変わるので、無事、落下せずに通過できるという処理となる。
【0093】
以上のように、従来技術を適用した場合も「特殊能力を発揮してギャップを飛び越える」表現は可能ではある。しかし、ビデオゲームなどにおいてリアルタイム処理で実現しようとした場合、データサイズの大きなキャラクタモデル(ポリゴンモデル)の差替えや、それに係るコリジョン判定の演算をやり直す必要が生じ、即応性が求められるアクション表現としては演算負荷が大きすぎるという問題がある。
【0094】
本発明は、上記した事情に鑑み、キャラクタモデルの差し替えや、それに伴うコリジョン判定の演算のやり直しを不要として、演算負荷の少ない、キャラクタのギャップの飛び越え表現が可能なビデオゲーム装置及びゲームプログラムを提供することを目的とするものである。
【0095】
第1の観点は、三次元仮想空間内に設定されたフィールド(FLD)上を、入力部(16)からの指示に従って、プレイヤキャラクタ(PC)を移動させ、該プレイヤキャラクタ(PC)を仮想カメラでレンダリングしたレンダリング映像をディスプレィ(12)に表示して、シナリオを進行させてゆくゲーム装置(1)であって、該ゲーム装置(1)は、
前記プレイヤキャラクタ(PC)が前記フィールド(FLD)上に形成されたギャップ(GP)を飛び越えるジャンプ表示地点に到達したか否かを検出する地点検出手段(6)、
前記地点検出手段(6)が、前記プレイヤキャラクタ(PC)が前記ジャンプ表示地点に到達したことを検出した状態で、前記入力部(16)からのジャンプ指令に基づいて、前記プレイヤキャラクタ(PC)に前記ギャップ(GP)を飛び越えるジャンプ動作を行わせるジャンプ実行手段(9)
前記プレイヤキャラクタ(PC)のジャンプ動作の開始時点(T2)を検出するジャンプ動作開始検出手段(10)、
プレイヤキャラクタ(PC)の前記ギャップ(GP)を飛び越えるアニメーションの画像データを格納するジャンプ映像メモリ(15)、
前記ジャンプ動作開始検出手段(10)による前記プレイヤキャラクタ(PC)のジャンプ動作の開始が検出された場合に、前記ディスプレィ(12)に表示されるプレイヤキャラクタ(PC)の映像を、前記フィールド(FLD)上でのレンダリング映像から、前記ジャンプ映像メモリ(15)に格納されたアニメーションの画像データに差し替えてディスプレィ(12)上に表示する映像差し替え制御手段(13)、及び
前記ジャンプ動作が開始されて所定時間(MS)経過後に、前記ディスプレィ(12)でのプレイヤキャラクタ(PC)のアニメーション表示を終了し、前記フィールド(FLD)上でのレンダリング映像に切り替え表示する画像切り替え手段(7)を有することを特徴とする。
【0096】
第2の観点は、前記ジャンプ動作開始検出手段(10)は、前記プレイヤキャラクタ(PC)と該プレイヤキャラクタ(PC)の支持オブジェクト(BJ1)間の接触状態の有無を検出する接触状態検出手段(10)を有し、該接触状態検出手段(10)は前記プレイヤキャラクタ(PC)と該プレイヤキャラクタの支持オブジェクト(BJ1)間の接触状態が所定時間以上無くなった時点をジャンプ動作開始時点として検出することを特徴とする。
【0097】
第3の観点は、前記接触状態検出手段(10)によるプレイヤキャラクタ(PC)と該プレイヤキャラクタの支持オブジェクト(BJ1)間の接触状態の有無を検出は、プレイヤキャラクタと前記支持オブジェクト間のコリジョンの有無を判定することで行うことを特徴とする。
【0098】
上記した観点によれは、プレイヤキャラクタ(PC)が仮想空間内でギャップ(GP)を飛び越える有様を表現する際に、ジャンプ動作の開始時点(時間T2)から所定時間MSの間、ディスプレィ12への表示画像を、予めジャンプ映像メモリ(15)に格納されたアニメーションの画像とすることで、プレイヤキャラクタ(PC)がジャンプする様を、アニメーションで自由に表現することが可能となる。また、ゲームの表現態様を多彩なものとすることが出来るばかりか、仮想空間内のプレイヤキャラクタ(PC)のポリゴンモデルをジャンプ動作用に別に準備して差し替え、当該ポリゴンモデルをレンダリングするよりも演算処理の負荷が軽くすることができる。
【0099】
以下、図面に基づき、実施例を説明する。
【0100】
本発明が適用されるコンピュータとしてのビデオゲーム装置1は、
図9に示すように、主制御部2を有しており、主制御部2には、バス線3を介してプログラムメモリ5、シナリオ進行制御部6、アニメーション制御部7、キャラクタ移動制御部9、ギャップジャンプ判定部10、ディスプレィ12に接続された表示制御部11、映像差し替え制御部13、ジャンプ映像メモリ15、及びコントローラ、ジョイスティック、キーボードなどから構成される入力部16などが接続している。
【0101】
なお、
図9に示すビデオゲー装置1を構成する主制御部2、プログラムメモリ5、シナリオ進行制御部6、アニメーション制御部7、キャラクタ移動制御部9、ギャップジャンプ判定部10、表示制御部11、映像差し替え制御部13、ジャンプ制御部15等の各機能ブロックは、本発明の理解を容易にするために模式化したものであり、実際はCPU、メモリ、各種制御プログラム等からなるコンピュータとして機能しているものである。また、ビデオゲーム装置1は、後述するゲームプログラムPROの一部を実行することで、ビデオゲーム装置1のCPUを時分割的に、
図9の各機能ブロックとして機能させているが、
図9に示す各機能ブロックの一部又は全部を専用のハードウェア及び/又はソフトウェアで構成することも当然可能である。
【0102】
また、入力部16としてスタンドアロン型のビデオゲーム装置を使用し、それ以外のビデオゲーム装置1部分をサーバーなどで構成して、該スタンドアロン側のビデオゲーム装置(入力部16)とサーバーを、インターネットなどの通信回線で接続して接続して、サーバー側で後述する制御を行うように構成することも当然可能である。
【0103】
ビデオゲーム装置1は以上の様な構成を有するので、ビデオゲーム装置1を用いて、プレイヤがゲームをプレイする場合には、公知の手法により無線、有線などの通信回線や、CD、DVDその他のメモリ媒体等を介してプログラムメモリ5に格納されたゲームプログラムPROに基づいて、主制御部2がシナリオ進行制御部6、アニメーション制御部7等を介して所定のゲーム画像IMをディスプレィ12上に表示させることでゲームのプレイ環境を実現する。
【0104】
それには、シナリオ進行制御部6内のメモリ空間内に生成された3次元仮想空間にゲームプログラムPROに基づいてプレイヤキャラクタが移動することの出来るフィールドFLDを生成し、当該フィールドFLD上にゲームプログラムPROに基づいてオブジェクト例えば、
図10に示すように、建物BJ1,BJ2、プレイヤキャラクタPC等を配置する。その状態で、当該3次元仮想空間中の適宜な位置からの仮想カメラによりレンダリングすることで、2次元画像を生成し、ディスプレィ12上にゲーム画像IMとして表示する。こうしたCGによる画像生成技術は公知の事項なので、ここではその詳細を説明することは省略する。
【0105】
フィールドFLD上には、ゲームプログラムPROに基づいて、
図10に示すように、建物BJ1,BJ2、当建物BJ1,BJ2の間に存在する空間としてのギャップGPなどが形成され、キャラクタPCは、入力部16を介したプレイヤからの操作指示で、キャラクタ移動制御部9を介してフィールドFLD上を移動することができる。このプレイヤキャラクタPCのフィールドFLD上で移動する様は、三次元仮想空間内に設定された仮想カメラにより公知の手法でレンダリングされ、表示制御11を介してディスプレィ12に表示される。
【0106】
こうしたゲームプログラムでは、時としてプレイヤキャラクタPCが、
図10に示すように、プレイヤキャラクタPCの前方に存在する建物BJ1,BJ2の間に形成されたギャップGP、例えばビルの谷間などを飛び越えるような演出が準備されている場合がある。即ち、フィールドFLD上に適宜設定されたジャンプ表示地点(例えば、ビルの屋上の端部)にプレイヤキャラクタPCが到達した際に、プレイヤからの入力部16を介した指示に基づいてジャンプさせ、フィールドFLD上に設定されたギャップGP(例えば、ビルとビルの谷間)を飛び越えて次のシナリオに進むような場合である。こうした場合、主制御部2は、プレイヤキャラクタPCのジャンプ表現を、
図16に示すジャンプ表示制御プログラムJPRに基づいて制御する。
【0107】
本発明の場合、主制御部2は、シナリオ進行制御部6を介してゲームプログラムPRO内に格納されたジャンプ表示制御プログラムJPRのステップS1で、現在のプレイヤキャラクタPCがゲームシナリオ中に設定されたジャンプ表示地点に到達しているか否かを、プレイヤキャラクタPCの仮想空間内での位置座標及びシナリオ進行制御部6によるシナリオ進行を参照して検出判断する。
【0108】
ステップS1で、プレイヤキャラクタPCがゲームシナリオ中に設定されたジャンプ表示地点に到達しているものと判定された場合には、例えばプレイヤキャラクタPCが、
図10に示すゲーム画像IMの手前側の建物BJ1から、向こう側の建物BJ2へ向けて、ビルの谷間であるギャップGPを飛び越えるように、移動することがゲームシナリオ上、設定されている。プレイヤキャラクタPCがジャンプ表示地点に到達している、従ってギャップGP付近にいるものとステップS1で判定された場合には、ステップS2に入り、主制御部2はキャラクタ移動制御部9を介して、入力部16からのジャンプ指令の入力を待つ。一方、プレイヤは、シナリオ進行制御部6のゲームシナリオ進行に従って、入力部16を介してプレイヤキャラクタPCを操作して、プレイヤキャラクタPCを、例えば
図10の手前側の建物BJ1上を、画面の奥側に向けて移動させる(通常、プレイヤキャラクタPCを走らせる)と共に、建物BJ1の適宜な地点でプレイヤキャラクタPCを向こう側の建物BJ2にジャンプさせる操作を、入力部16を介してジャンプ指令を入力することで行う。
【0109】
この操作により、プレイヤキャラクタPCは、ギャップGP上を飛び越えて、反対側の建物BJ2上に飛び移ることが可能となる。即ち、既に説明したように、プレイヤは、入力部16を操作して、
図10のプレイヤキャラクタPCを、建物BJ1上を画面の奥方向に向けて移動させ、ある時点で、入力部16を介してプレイヤキャラクタPCに対してジャンプ指令を与える。すると、ジャンプ表示制御プログラムJPRのステップS2で、ジャンプ指令が受け付けられ、キャラクタ移動制御部9は、ステップS3に入り、アニメーション制御部7に対して、プレイヤキャラクタPCを向こう側の建物BJ2向けてギャップGPを飛び越える、ジャンプ動作を開始するように指令する。
【0110】
これを受けて、アニメーション制御部7は、プレイヤキャラクタPCを建物BJ1の上方に向けてジャンプさせるジャンプ動作を行わせるが、ジャンプ表示制御プログラムJPRのステップS4で、ギャップジャンプ判定部10に対してプレイヤキャラクタPCのジャンプ開始時点を検出するように指令する。
【0111】
ギャップジャンプ判定部10は、プレイヤキャラクタPCの両足f1,f2と建物BJ1等のプレイヤキャラクタPCの支持オブジェクトとの間の接触状態をコリジョン(衝突)の有無を検出する形で、リアルタイムで常に判定している。例えば、
図15に示すように、ギャップジャンプ判定部10は、プレイヤキャラクタPCの両足f1、f2と建物BJ1の表面fc1との間のコリジョンの有無をリアルタイムで検出しており、両足f1,f2と建物BJ1の表面fc1との間の接触が所定時間以上無くなると、プレイヤキャラクタPCがジャンプ動作を開始したものとして、その時点T2をジャンプジャンプ動作開時点として、アニメーション制御部7に通知する。
【0112】
これを受けてアニメーション制御部7は、ジャンプ表示制御プログラムJPRのステップS5に入り、主制御部2は、映像差し替え制御部13に対して、プレイヤキャラクタPCのジャンプ映像を、それまでのフィールドFLD上でのプレイヤキャラクタPCのレンダリング画像から、予め準備されたジャンプ映像に切り替え表示するように指令する。即ち、通常のフィールドFLD上でのプレイヤキャラクタPCの映像は、プレイヤの入力部16を介した移動指令に応じてフィールドFLD上で移動するプレイヤキャラクタPCを仮想カメラでレンダリングすることで、表示制御11がディスプレィ12に表示しているが、プレイヤキャラクタPCが、ゲームシナリオで設定されたフィールドFLD上の所定のジャンプシーンに達し、当該ジャンプシーンでプレイヤキャラクタPCのジャンプ動作が入力部16を介して指令された場合には、当該ジャンプシーンにおけるプレイヤキャラクタPCのジャンプ動作のディスプレィ上での表示は、プレイヤキャラクタPCのフィールドFLD上でのレンダリングによるものから、予め準備されたアニメーションによる表示に切り替えられる形で表示される。
【0113】
即ち、映像差し替え制御部13は、アニメーション制御部7から映像の差し替えを指令されると、現在、プレイヤキャラクタPCがジャンプしようとしているジャンプシーンがゲームシナリオ上のどのジャンプシーンであるかを、プログラムメモリ5に格納された、
図14に示すジャンプシーン-アニメーションマップMAPを参照することで、決定し、当該ジャンプシーンで使用するアニメーションを決定する。ジャンプシーン-アニメーションマップMAPには、
図14に示すように、ゲームシナリオで設定された特定のジャンプシーンSNで使用するアニメーションANが、ジャンプシーンSN毎に指定されており、プレイヤキャラクタPCがフィールドFLD上のどの場所にいるかでジャンプシーンは一義的に決定され、当該ジャンプシーンで使用されるアニメーションANも当該ジャンプシーン-アニメーションマップMAPにより決定される。なお、ジャンプシーンで使用される各アニメーションANの画像データは、ジャンプ映像メモリ15に格納されている。
【0114】
プレイヤキャラクタPCがジャンプする場面で使用されるアニメーションANが決定されると、映像差し替え制御部13は、表示制御11に対して、当該使用が決定されたアニメーションANを用いて、プレイヤキャラクタPCのジャンプシーンをディスプレィ12に表示するように指令し、表示制御11は、当該アニメーションANをジャンプ映像メモリ15から読み出して、ディスプレィ12上に表示する。
【0115】
このアニメーションANの内容は、基本的に自由であるが、フィールドFLD上でプレイヤキャラクタPCがジャンプする状態をレンダリングしたのでは、ポリゴンモデルの差し替えなど、演算負荷が大きくなってしまうような場面を、従ってプレイヤキャラクタPCが超能力を発揮してプレイヤキャラクタPCの手足が長くなってギャップGPを易々と飛び越えるアニメーション画像などから構成すると、演出効果が向上する。
【0116】
即ち、アニメーションANでは、
図15に示すように、プレイヤキャラクタPCのアニメーション画像PC’’は、プレイヤキャラクタの両足f1,f2が、仮想空間内のフィールドFLD上を移動するプレイヤキャラクタPCとは相違して、長大化した形で誇張表現されており、プレイヤキャラクタPCが身体を伸縮させることが可能な特殊能力を持っているかのように表現されている。なお、このアニメーションANがディスプレィ12に表示されている間は、ジャンプ表示制御プログラムJPRのステップS6で、ギャップジャンプ判定部10でのプレイヤキャラクタPCのフィールドFLD上での両足f1、f2と建物BJ1(又は建物BJ2)の表面fc1、fc2との間のコリジョン判定は中断されることとなり、行われない。従って、当該判定に伴う演算負荷が無くなるので、ジャンプシーンのアニメーションAN表示は、コンピュータの演算負荷が増大すること無く円滑に行われることとなる。
【0117】
アニメーションANは、プレイヤが入力部16を介してプレイヤキャラクタPCのジャンプを指令した時点T2(ジャンプ動作の開始)から、ディスプレィ12での表示が開始され、アニメーション画像PC’が向こう側の建物BJ2の表面fc2に着地するまで(ジャンプ動作の終了)の時点T4までの所定時間MSだけ表示される。この所定表示時間MSは、仮想空間内のそれぞれのジャンプシーンで、プレイヤキャラクタPCが実際に建物BJ1から建物BJ2へギャップGP上をジャンプした際に要する時間と対応した長さに設定されている。
【0118】
従って、アニメーションANがディスプレィ12に表示されている間、仮想空間内のフィールドFLD上のプレイヤキャラクタPCも、建物BJ1から建物BJ2へ向けてジャンプしているが、プレイヤキャラクタPCが仮想空間内でジャンプを開始してから、ディスプレィ12で差し替えられたアニメーションANが表示されている所定時間MS後の時間T4には、プレイヤキャラクタPCは反対側の建物BJ2に到達し、ジャンプ動作は終了していることとなる。
【0119】
ジャンプ表示制御プログラムJPRのステップS7で、所定時間MSが経過すると、主制御部2は、ステップS8で、ギャップジャンプ判定部10に、再度プレイヤキャラクタPCの両足f1、f2と建物BJ2の表面fc2との間のコリジョンの有無の判定を開始させ、ステップS9で、仮想空間内のプレイヤキャラクタPCのどちらかの足f1又はf2と建物BJ2の表面fc2との間の接触が検出されると、プレイヤキャラクタPCがギャップGPを飛び越えて反対側の建物BJ2に到達したもの(ジャンプ終了)と判定して、プレイヤキャラクタPCのジャンプ動作終了をアニメーション制御部7に通知する。
【0120】
これを受けて、ジャンプ表示制御プログラムJPRのステップS10に入り、主制御部2はアニメーション制御部7を介して、表示制御部11を介したアニメーションANのディスプレィ12での表示を終了し、フィールドFLD上でのプレイヤキャラクタPCのレンダリング画像に切り替えるように制御する。すると、時間T4以降、ディスプレィ12で表示される画像は、仮想空間でのプレイヤキャラクタPCをリアルタイムでレンダリングした画像(例えば、時間T4~T5)となり、アニメーションANの表示は停止される。なお、プレイヤキャラクタPCの両足f1、f2と建物BJ2の表面fc2との間のコリジョンの有無は、時間T4以降、リアルタイムで常に検出されているので、プレイヤキャラクタPCのレンダリングは適正に行われる。
【0121】
以上のようにプレイヤキャラクタPCのギャップGPのジャンプ表現を制御することで、ディスプレィ12には、
図10から
図13に示すように、プレイヤキャラクタPCの建物BJ1から建物BJ2へジャンプする様子が表示される。ここで、
図10は、
図15における時点T1で、プレイヤキャラクタPCが仮想空間でレンダリングされた画像であり、
図11及び
図12は、
図15の時点T2及びT3と対応している。ここで、プレイヤキャラクタPCの画像は、既に説明したように、アニメーションANの画像PC’に差し替えられており、プレイヤキャラクタの両足f1,f2が、仮想空間内のフィールドFLD上を移動するプレイヤキャラクタPCとは相違して、長大化した形で誇張表現されており、プレイヤキャラクタPCが身体を伸縮させることが可能な特殊能力を持っているかのように表現されている。また、
図13では、時点T4で、プレイヤキャラクタPCの画像が仮想空間でレンダリングされた画像に戻っている。
【0122】
このように、プレイヤキャラクタPCが仮想空間内でギャップGPを飛び越える有様を表現する際に、ジャンプ動作の開始時点(時間T2)からジャンプ動作の終了時点(時間T4)までの所定時間MSの間、ディスプレィ12への表示画像を、予めジャンプ映像メモリ15に格納されたアニメーションANの画像とすることで、プレイヤキャラクタPCがジャンプする様を、アニメーションで自由に表現することが可能となり、ゲームの表現態様を多彩のものとすることが出来る。また、仮想空間内のプレイヤキャラクタPCのポリゴンモデルをジャンプ動作用に別に準備して差し替え、当該ポリゴンモデルをレンダリングするよりも演算処理の負荷が軽くすることができる。
【0123】
また、アニメーションによるジャンプ動作の表示中は、プレイヤキャラクタPCとフィールドFLDの建物BJ1、BJ2などのキャラクタ支持部(fc1、fc2)との間の接触(コリジョン)判定の演算を行う必要が無くなるので、それだけ演算リソースの消費を押さえることが出来る。
【0124】
以下に、上記した技術の要点を示す。
1)三次元仮想空間内に設定されたフィールド上を、入力部からの指示に従って、プレイヤキャラクタを移動させ、該プレイヤキャラクタを仮想カメラでレンダリングしたレンダリング映像をディスプレィに表示して、シナリオを進行させてゆくゲーム装置あって、該ゲーム装置は、
前記プレイヤキャラクタが前記フィールド上に形成されたギャップを飛び越えるジャンプ表示地点に到達したか否かを検出する地点検出手段、
前記地点検出手段が、前記プレイヤキャラクタが前記ジャンプ表示地点に到達したことを検出した場合に、前記入力部からのジャンプ指令に基づいて、前記プレイヤキャラクタに前記ギャップを飛び越えるジャンプ動作を行わせるジャンプ実行手段
前記プレイヤキャラクタのジャンプ動作の開始時点を検出するジャンプ動作開始検出手段、
プレイヤキャラクタの前記ギャップを飛び越えるアニメーションの画像データを格納するジャンプ映像メモリ、
前記ジャンプ動作開始検知手段による前記プレイヤキャラクタのジャンプ動作の開始が検出された場合に、前記ディスプレィに表示されるプレイヤキャラクタの映像を、前記フィールド上でのレンダリング映像から、前記ジャンプ映像メモリに格納されたアニメーションの画像データに差し替えてディスプレィ上に表示する映像差し替え制御手段、及び
前記ジャンプ動作が開始されて所定時間経過後に、前記ディスプレィでのプレイヤキャラクタのアニメーション表示を終了し、前記フィールド上でのレンダリング映像に切り替え表示する画像切り替え手段を有する、ことを特徴とするゲーム装置。
【0125】
2)前記ジャンプ動作開始検出手段は、前記プレイヤキャラクタと該プレイヤキャラクタの支持オブジェクト間の接触状態の有無を検出する接触状態検出手段を有し、該接触状態検出手段は前記プレイヤキャラクタと該プレイヤキャラクタの支持オブジェクト間の接触状態が所定時間以上無くなった時点をジャンプ動作開始時点として検出することを特徴とする、1)記載のゲーム装置。
【0126】
3)前記接触状態検出手段によるプレイヤキャラクタと該プレイヤキャラクタの支持オブジェクト間の接触状態の有無を検出は、プレイヤキャラクタと前記支持オブジェクト間のコリジョンの有無を判定することで行うことを特徴とする、2)記載のゲーム装置。
【0127】
4)三次元仮想空間内に設定されたフィールド上を、入力部からの指示に従って、プレイヤキャラクタを移動させ、該プレイヤキャラクタを仮想カメラでレンダリングしたレンダリング映像をディスプレィに表示して、シナリオを進行させてゆくコンピュータであって、該コンピュータを、
前記プレイヤキャラクタが前記フィールド上に形成されたギャップを飛び越えるジャンプ表示地点に到達したか否かを検出する地点検出手段、
前記地点検出手段が、前記プレイヤキャラクタが前記ジャンプ表示地点に到達したことを検出した場合に、前記入力部からのジャンプ指令に基づいて、前記プレイヤキャラクタに前記ギャップを飛び越えるジャンプ動作を行わせるジャンプ実行手段
前記プレイヤキャラクタのジャンプ動作の開始時点を検出するジャンプ動作開始検出手段、
プレイヤキャラクタの前記ギャップを飛び越えるアニメーションの画像データを格納するジャンプ映像メモリ、
前記ジャンプ動作開始検知手段による前記プレイヤキャラクタのジャンプ動作の開始が検出された場合に、前記ディスプレィに表示されるプレイヤキャラクタの映像を、前記フィールド上でのレンダリング映像から、前記ジャンプ映像メモリに格納されたアニメーションの画像データに差し替えてディスプレィ上に表示する映像差し替え制御手段、及び
前記ジャンプ動作が開始されて所定時間経過後に、前記ディスプレィでのプレイヤキャラクタのアニメーション表示を終了し、前記フィールド上でのレンダリング映像に切り替え表示する画像切り替え手段として機能させるためのゲームプログラム。
【0128】
以上、特定の実施例及び適用例が示され、述べられたが、発明はここで述べられた正確な構造及び構成に限られるものでは無く、当業者にとって自明な多様な変形、変更、変化が、ここでの開示の範囲及び精神から離れない限り、ここで述べられた方法及び装置の配置、運転及び詳細について可能であることを理解すべきである。