説明

プログラム、情報記憶媒体、情報処理システム及び情報処理方法

【課題】仮想空間内に配置されているオブジェクトが動く様子の表現のバリエーションの幅を広げる。
【解決手段】オブジェクト配置管理部44は、仮想オブジェクトの属性である物理量に対応付けられるパラメータの値に基づいて仮想オブジェクトの位置又は向きを変化させる。オブジェクト配置管理部44は、ユーザから受け付ける操作に応じた、仮想オブジェクトの第1の物理量の変化を決定する。オブジェクト配置管理部44は、決定される第1の物理量の変化に応じた、当該変化とは異なる第2の物理量の変化を決定する。オブジェクト配置管理部44は、第1の物理量の変化及び第2の物理量の変化に基づいてパラメータの値を変更する。オブジェクト配置管理部44は、パラメータの値が変化した後は、変化後のパラメータの値に基づいて、仮想オブジェクトの位置又は向きを変化させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、情報処理システム及び情報処理方法に関する。
【背景技術】
【0002】
仮想空間内に配置されたオブジェクトを、仮想空間内に配置された視点位置及び視線方向から見た様子を表すフレーム画像を順次生成し、表示装置に表示させる情報処理システムがある。また、古典力学の法則等の物理法則をシミュレートするソフトウェアである物理エンジンを活用することで、仮想空間内に配置されたオブジェクトの動きのリアリティを高めた情報処理システムもある。
【0003】
物理エンジンは、一般的に、ある時点における各オブジェクトに設定された物理量(例えば、位置、向き、質量、慣性モーメント、速度、角速度、など)を表すパラメータの値、仮想空間全体に関わる物理量(例えば、風速)を表すパラメータの値、などに基づいて、所定時間が経過した後における各オブジェクトの位置や向きを決定している。
【0004】
また、仮想空間内に配置されたオブジェクトを、ユーザによるコントローラ等の操作入力の入力量に応じて移動させることができる情報処理システムも知られている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
物理エンジンによる物理シミュレーション処理では、仮想空間内に配置されているオブジェクトは基本的に古典力学の法則に従った動きをする。しかし、例えば、コンピュータゲームなどにおいて、キャラクタオブジェクトがロープや鎖などの線状のオブジェクトにつかまって移動するような場面では、キャラクタオブジェクトがつかまる部分の質量を他の部分の質量より重くしたり、キャラクタオブジェクトを移動させたい方向とは異なる方向については線状のオブジェクトの揺れが早くおさまるようにしたりするなどのように、オブジェクトが物理法則に反する動きをした方が、キャラクタオブジェクトが動く様子の表現としてはむしろ望ましい場合がある。
【0006】
このように、オブジェクトの属性である物理量に対応付けられるパラメータの値に基づいてオブジェクトの位置や向きを変化させる処理(例えば、物理エンジンを用いた物理シミュレーション)を実行する場面では、物理法則の忠実な再現に拘ることなくパラメータの値を柔軟に設定することによって、オブジェクトが動く様子の表現のバリエーションを広げることができるものと期待される。
【0007】
本発明は上記課題に鑑みてなされたものであって、その目的の1つは、仮想空間内に配置されているオブジェクトが動く様子の表現のバリエーションを広げることにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明に係るプログラムは、仮想空間内に配置されているオブジェクトの移動を制御する情報処理システムとしてコンピュータを機能させるプログラムであって、仮想空間内に配置されている移動対象のオブジェクトの属性である物理量に対応付けられるパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させるオブジェクト変化手段、ユーザから受け付ける操作に応じた、前記移動対象のオブジェクトの物理量の変化を決定する第1の変化決定手段、前記第1の変化決定手段により決定される変化に応じた、当該変化とは異なる物理量の変化を決定する第2の変化決定手段、前記第1の変化決定手段により特定される物理量の変化、及び、前記第2の変化決定手段により特定される物理量の変化、に基づいて、前記パラメータの値を変更する値変更手段、として前記コンピュータを機能させ、前記オブジェクト変化手段は、前記値変更手段によりパラメータの値が変化した後は、変化後のパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させることを特徴とする。
【0009】
また、本発明に係る情報記憶媒体は、仮想空間内に配置されているオブジェクトの移動を制御する情報処理システムとしてコンピュータを機能させるプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体であって、仮想空間内に配置されている移動対象のオブジェクトの属性である物理量に対応付けられるパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させるオブジェクト変化手段、ユーザから受け付ける操作に応じた、前記移動対象のオブジェクトの物理量の変化を決定する第1の変化決定手段、前記第1の変化決定手段により決定される変化に応じた、当該変化とは異なる物理量の変化を決定する第2の変化決定手段、前記第1の変化決定手段により決定される物理量の変化、及び、前記第2の変化決定手段により決定される物理量の変化、に基づいて、前記パラメータの値を変更する値変更手段、として前記コンピュータを機能させ、前記オブジェクト変化手段は、前記値変更手段によりパラメータの値が変化した後は、変化後のパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させることを特徴とするプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
【0010】
また、本発明に係る情報処理システムは、仮想空間内に配置されているオブジェクトの移動を制御する情報処理システムであって、仮想空間内に配置されている移動対象のオブジェクトの属性である物理量に対応付けられるパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させるオブジェクト変化手段と、ユーザから受け付ける操作に応じた、前記移動対象のオブジェクトの物理量の変化を決定する第1の変化決定手段と、前記第1の変化決定手段により決定される変化に応じた、当該変化とは異なる物理量の変化を決定する第2の変化決定手段と、前記第1の変化決定手段により決定される物理量の変化、及び、前記第2の変化決定手段により決定される物理量の変化、に基づいて、前記パラメータの値を変更する値変更手段、を含み、前記オブジェクト変化手段は、前記値変更手段によりパラメータの値が変化した後は、変化後のパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させることを特徴とする。
【0011】
また、本発明に係る情報処理方法は、仮想空間内に配置されているオブジェクトの移動を制御する情報処理方法であって、仮想空間内に配置されている移動対象のオブジェクトの属性である物理量に対応付けられるパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させる第1のオブジェクト変化ステップと、ユーザから受け付ける操作に応じた、前記移動対象のオブジェクトの物理量の変化を決定する第1の変化決定ステップと、前記第1の変化決定ステップにより決定される変化に応じた、当該変化とは異なる物理量の変化を決定する第2の変化決定ステップと、前記第1の変化決定ステップにより決定される物理量の変化、及び、前記第2の変化決定ステップにより決定される物理量の変化、に基づいて、前記パラメータの値を変更する値変更ステップと、前記値変更ステップによりパラメータの値が変化した後に、変化後のパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させる第2のオブジェクト変化ステップと、を含むことを特徴とする。
【0012】
本発明によれば、ユーザから受け付ける操作に応じた、移動対象のオブジェクトの物理量の変化だけではなく、予め定められた対応規則において、その物理量の変化に対応付けられる物理量の変化も、移動対象のオブジェクトの位置又は向きの変化に反映されることとなるため、仮想空間内に配置されているオブジェクトが動く様子の表現のバリエーションを広げることができる。
【0013】
本発明の一態様では、前記第1の変化決定手段は、特定方向についての前記移動対象のオブジェクトの速度又は角速度の変化を決定し、前記第2の変化決定手段は、前記特定方向とは異なる方向の速度又は角速度の変化を決定することを特徴とする。
【0014】
また、本発明の一態様では、前記第1の変化決定手段が、特定方向についての前記移動対象のオブジェクトの速度又は角速度の増加を決定する場合は、前記第2の変化決定手段は、前記特定方向とは異なる方向の速度又は角速度の減少を決定することを特徴とする。
【0015】
また、本発明の一態様では、前記第1の変化決定手段は、複数の要素から構成される前記移動対象のオブジェクトのうちの少なくとも1つに対して与えられる力の変化を決定し、前記第2の変化決定手段は、少なくとも1つの前記要素の質量又は慣性モーメントの変化を決定することを特徴とする。
【0016】
また、本発明の一態様では、前記第2の変化決定手段は、力の変化が決定される少なくとも1つの要素については、質量又は慣性モーメントの増加を決定し、残りの要素の少なくとも1つについては、質量又は慣性モーメントの減少を決定することを特徴とする。
【0017】
また、本発明の一態様では、前記第2の変化決定手段は、前記第1の変化決定手段により力の変化が決定される少なくとも1つの要素については、質量又は慣性モーメントの増加を決定し、残りの要素すべてについては、質量又は慣性モーメントの減少を決定することを特徴とする。
【0018】
また、本発明の一態様では、前記オブジェクト変化手段は、それぞれが各要素の質量又は慣性モーメントに対応付けられる複数のパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させ、前記値変更手段は、前記第2の変化決定手段により質量又は慣性モーメントの増加又は減少が決定される要素の質量又は慣性モーメントに対応付けられるパラメータの値を変更することを特徴とする。
【0019】
また、本発明の一態様では、前記オブジェクトが配置されている仮想空間を、前記仮想空間内に設定された視点から見た様子を表す画像を生成する画像生成手段、をさらに含むことを特徴とする。
【図面の簡単な説明】
【0020】
【図1】本発明の一実施形態に係るゲーム装置の構成図である。
【図2】本発明の一実施形態に係るゲーム装置により構築される仮想空間の一例を示す図である。
【図3】本発明の一実施形態に係るゲーム装置で実現される機能の一例を示す機能ブロック図である。
【図4】本発明の一実施形態に係るゲーム装置で毎フレーム行われる処理の流れの一例を示すフロー図である。
【図5】プレイヤオブジェクトが剛体オブジェクトにつかまった様子の一例を示す図である。
【図6】横になった鎖オブジェクトが床オブジェクトの上で跳ねる様子の一例を示す図である。
【発明を実施するための形態】
【0021】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【0022】
図1は、本発明の一実施形態に係る情報処理システムとして機能するゲーム装置10の構成図である。本実施形態に係るゲーム装置10は、例えば、ゲームコンソール、携帯型ゲーム端末、パーソナルコンピュータ等である。図1に示すように、本実施形態に係るゲーム装置10は、制御部12、記憶部14、操作部16、表示部18、を含んでいる。
【0023】
制御部12は、ゲーム装置10にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。記憶部14は、ROMやRAM等の記憶素子やハードディスクドライブなどである。操作部16は、キーボードやマウス、あるいは家庭用ゲーム機のコントローラ等であって、ユーザの操作入力を受け付けて、その内容を示す信号を制御部12に出力する。表示部18は、液晶ディスプレイ等の表示デバイスであって、制御部12の指示に従って各種の画像を表示する。
【0024】
なお、ゲーム装置10は、ネットワークボードなどの通信インタフェース、DVD−ROMやBlu−ray(登録商標)ディスクなどの光ディスクを読み取る光ディスクドライブ、USB(Universal Serial Bus)ポートなどを含んでいてもよい。
【0025】
本実施形態に係るゲーム装置10は、本発明を適用したプログラムを実行することにより、メモリ上に、図2に例示する仮想空間20を構築するようになっている。同図に示すように、本実施形態に係る仮想空間20は、仮想3次元空間であり、プレイヤオブジェクト22、鎖オブジェクト24、天井オブジェクト26、床オブジェクト28、などの仮想オブジェクトが視点30とともに配置されている。
【0026】
本実施形態では、仮想オブジェクトは複数のポリゴンにより構成されている。各ポリゴンにはテクスチャがマッピングされている。本実施形態では、ゲーム装置10のユーザは、操作部16を操作することによって、仮想空間20内においてプレイヤオブジェクト22を移動させることができるようになっている。
【0027】
また、本実施形態に係るゲーム装置10で実行されるプログラムでは、古典力学の法則等の物理法則をシミュレートする物理エンジンの機能が実現されている。
【0028】
本実施形態では、例えば、ユーザが操作部16を操作して、プレイヤオブジェクト22が鎖オブジェクト24につかまる、プレイヤオブジェクト22が鎖オブジェクト24から離れる、プレイヤオブジェクト22が鎖オブジェクト24を揺らす、プレイヤオブジェクト22が鎖オブジェクト24を回転させる、などといったアクションを実現させることができるようになっている。
【0029】
図3は、本実施形態に係るゲーム装置10の機能ブロック図である。図3に示すように、ゲーム装置10は、機能的に、データ記憶部40、操作状態取得部42、オブジェクト配置管理部44、空間画像生成出力部46を含んでいる。データ記憶部40は、記憶部14を主として実現され、その他の要素は制御部12を主として実現される。
【0030】
これらの機能は、情報処理システムであるゲーム装置10で、本実施形態に係るプログラムが実行されることにより実現される。このプログラムは、コンピュータ通信ネットワーク経由で通信インタフェースを介して他のコンピュータからダウンロードされてもよいし、光ディスク(例えば、CD−ROMやDVD−ROMなど)、USBメモリ等のコンピュータ読み取り可能な情報記憶媒体に格納され、そこから光ディスクドライブやUSB(Universal Serial Bus)ポートなどを介してゲーム装置10にインストールされてもよい。
【0031】
本実施形態では、予め、データ記憶部40に、仮想空間20の構築に必要な各種データが記憶されている。データ記憶部40には、例えば、仮想空間20に配置されている仮想オブジェクトに関するポリゴンデータやテクスチャデータなどが記憶されている。例えば、鎖オブジェクト24は、図2に示すように、複数の剛体オブジェクト24a、及び、剛体オブジェクト24a同士や剛体オブジェクト24aと天井オブジェクト26とを連結するジョイント24bを含んで構成されている。なお、本実施形態では、剛体オブジェクト24aは、円柱形状であることとする。また、本実施形態では、鎖オブジェクト24の一端は、天井オブジェクト26とつながれた固定端となっており、他端は自由端となっている。
【0032】
また、本実施形態では、データ記憶部40に、各剛体オブジェクト24aについての物理量(例えば、大きさ、質量、慣性モーメント(本実施形態では、慣性テンソル)、速度、角速度、最大速度、最大角速度、インパルス値(力積を表す値)など)を表すパラメータの値が記憶されている。また、本実施形態では、予め、各剛体オブジェクト24aの質量パラメータには同じ値が設定されている。また、各剛体オブジェクト24aの慣性モーメントパラメータには同じ値が設定されている。そして、これらの値はゲームの進行状況に応じて変更することが可能になっている。
【0033】
また、本実施形態では、データ記憶部40に、各ジョイント24bについて、そのジョイント24bに接続されている剛体オブジェクト24a同士の位置関係や、そのジョイント24bに接続されている剛体オブジェクト24aと天井オブジェクト26との位置関係が物理シミュレーション処理において満足すべき拘束条件(例えば、軸を中心とした回転の最大角、剛体オブジェクト24aの軸同士がなす最大角、など)も記憶されている。本実施形態では、この拘束条件が満足されるよう物理シミュレーション処理が実行されるようになっている。
【0034】
また、本実施形態では、データ記憶部40に、各剛体オブジェクト24aについての物理シミュレーション処理の対象であるか否かを示すフラグである制御要否情報も記憶されている。また、本実施形態では、データ記憶部40に、仮想オブジェクトについての第1の物理量と、第1の物理量が変化した際にその変化に応じて変化させる第2の物理量と、の対応規則を示す対応規則データも記憶されている。また、本実施形態では、対応規則データに、後述する前処理において第2の物理量を変化させるのか、後述する後処理において第2の物理量を変化させるのかを示すデータも含まれている。制御要否情報や対応規則データが処理においてどのように用いられるのかについては後述する。
【0035】
そして、本実施形態では、空間画像生成出力部46が、仮想空間20内に配置された視点30から視線方向を見た様子を表す画像(以下、空間フレーム画像と呼ぶ。)を所定時間(例えば、1/60秒)間隔で生成し、表示部18に表示出力する。
【0036】
ここで、本実施形態に係るゲーム装置10で毎フレーム行われる(例えば、1/60秒間隔で行われる)処理の流れの一例を、図4に例示するフロー図を参照しながら説明する。
【0037】
本処理例では、第1の物理量として、剛体オブジェクト24aに対する力の増加が設定されており、第2の物理量として、その剛体オブジェクト24aについての質量の増加、並びに、鎖オブジェクト24に含まれるその他の剛体オブジェクト24aすべてについての質量の減少が設定されている対応規則データがデータ記憶部40に記憶されていることとする。また、この対応規則データには、力の単位増加量に対する質量の変化量も設定されている。また、この対応規則データには、剛体オブジェクト24aの質量の変化を前処理において行うことも示されている。
【0038】
また、本処理例では、例えば、第1の物理量として、鎖オブジェクト24の特定方向についての速度の増加が設定されており、第2の物理量として、鎖オブジェクト24の上述の特定方向以外の方向についての速度の減少が設定されている対応規則データもデータ記憶部40に記憶されていることとする。この対応規則データには、上述の速度の減少の際のダンピング係数(0以上1未満の低減率)も設定されている。また、この対応規則データには、速度の減少を後処理において行うことも示されている。
【0039】
まず、操作状態取得部42が、操作部16の操作状態(具体的には、例えば、押下されているボタンの種類、及び、ボタンの押下量)を取得する(S101)。そして、オブジェクト配置管理部44が、取得した操作状態に基づいて、プレイヤオブジェクト22の動作、及び、その動作に関するパラメータの値を決定する(S102)。ここでは、例えば、プレイヤオブジェクト22がいずれかの剛体オブジェクト24aにつかまるという動作が決定されることとする。また、つかまる動作によって剛体オブジェクト24aに加えられる力を表す力パラメータの値も決定されることとする。
【0040】
そして、オブジェクト配置管理部44は、すべての剛体オブジェクト24aが物理シミュレーション処理の対象となっていない際に、所定の条件を満足する場合は、すべての剛体オブジェクト24aが物理シミュレーション処理の対象となるよう制御要否情報の値を更新する(S103)。オブジェクト配置管理部44は、例えば、いずれかの剛体オブジェクト24aについてプレイヤオブジェクト22からの距離が所定距離以下になった場合や、いずれかの剛体オブジェクト24aにプレイヤオブジェクト22がつかまった場合は、すべての剛体オブジェクト24aが物理シミュレーション処理の対象となるよう制御要否情報の値を更新する。
【0041】
そして、オブジェクト配置管理部44が、データ記憶部40に記憶されている制御要否情報を取得して、物理シミュレーション処理の対象となる剛体オブジェクト24aを特定し、物理シミュレーション処理の対象となる剛体オブジェクト24aに設定されている物理量を表すパラメータの値を取得する(S104)。ここでは、例えば、各剛体オブジェクト24aに設定されている速度パラメータの値(本実施形態では、速度パラメータの値は3次元ベクトルで表されている。)、角速度パラメータの値、並びに、各剛体オブジェクト24aの位置及び向きを示す値を取得する。そして、オブジェクト配置管理部44が、S102に示す処理で決定された動作、動作に関するパラメータの値、及び、前処理において第2の物理量を変化させることが示されている対応規則データ、に基づいて、物理シミュレーション処理を行うにあたっての前処理を実行する(S105)。プレイヤオブジェクト22がいずれかの剛体オブジェクト24aにつかまったという動作が発生したフレームでの処理では、オブジェクト配置管理部44は、例えば、プレイヤオブジェクト22がつかまった剛体オブジェクト24aに設定されている質量パラメータの値を増加させるとともに、鎖オブジェクト24に含まれるその他の剛体オブジェクト24aすべてについて、設定されている質量パラメータの値を減少させる。ここで、質量パラメータの値の増加量や減少量は、対応規則データに基づいて、プレイヤオブジェクト22がつかまった際に剛体オブジェクト24aに加えられた力を表す力パラメータの値に応じた値が決定される。
【0042】
そして、オブジェクト配置管理部44が、各剛体オブジェクト24aに設定されているパラメータの値、及び、上述のS102に示す処理で決定された力パラメータの値に基づいて、物理シミュレーション処理を実行して、各剛体オブジェクト24aの位置や向きの変更、及び、各剛体オブジェクト24aに設定されているパラメータの値の変更を行う(S106)。
【0043】
本実施形態では、公知の物理エンジンの機能を用いて、S106に示す物理シミュレーション処理を実行する。公知の物理エンジンでは、例えば、各剛体オブジェクト24aに設定された質量パラメータの値、慣性モーメントパラメータの値、速度パラメータの値、角速度パラメータの値、各剛体オブジェクト24aの位置及び向き、上述のS102に示す処理で決定された力パラメータの値、ジョイント24bによる拘束条件を入力することで、物理シミュレーション結果である、各剛体オブジェクト24aについての速度パラメータの値、角速度パラメータの値、並びに、各剛体オブジェクト24aの位置及び向きが出力されることとなる。
【0044】
ここで、本実施形態に係る鎖オブジェクト24のように、拘束条件が設定されたジョイント24bによって剛体オブジェクト24aが連結されているような場合は、例えば、仮の位置、仮の向き、仮の速度パラメータの値、及び、仮の角速度パラメータの値を決定する処理をすべての剛体オブジェクト24aについて順次実行するという処理を繰り返すことによって、物理シミュレーションの精度を高めている。しかし、1フレームに相当する時間内に行える処理にも限界があるので、本実施形態では、上述のすべての剛体オブジェクト24aについての順次実行処理を所定回繰り返したら、そこで処理を打ち切り、その時点における仮の速度パラメータの値、仮の角速度パラメータ及び仮の向きを最終的な速度パラメータの値、角速度パラメータの値、及び向きとして決定するとともに、固定端にある剛体オブジェクト24aから順に、剛体オブジェクト24a間の長さが所定の長さになるよう、各剛体オブジェクト24aの位置調整を行うようになっている。
【0045】
そして、オブジェクト配置管理部44が、S106に示す物理シミュレーション処理の結果に応じて、各剛体オブジェクト24aに設定されているパラメータの値の追加変更を行う後処理を実行する(S107)。具体的には、例えば、図5に示すように、プレイヤオブジェクト22がX軸正方向に力を加え(すなわち、プレイヤオブジェクト22がX軸正方向に進もうとして)、鎖オブジェクト24のX軸方向の速度Vxが増加した場合は、オブジェクト配置管理部44が、X軸方向とは垂直であるY軸方向についての速度パラメータの値Vy、及び、同じくX軸方向とは垂直であるZ軸方向についての速度パラメータの値Vzに対応規則データに設定されているダンピング係数を乗じる。
【0046】
そして、オブジェクト配置管理部44は、設定された速度パラメータの値の絶対値が所定の閾値(除外閾値速度)以下であり、設定された角速度パラメータの値の絶対値が所定の閾値(除外閾値角速度)以下である剛体オブジェクト24aの数を特定する(S108)。以下、このようにして特定される剛体オブジェクト24aの数を特定オブジェクト数と呼ぶこととする。
【0047】
そして、オブジェクト配置管理部44は、所定のフレーム数(例えば、3フレーム)以上継続して、特定オブジェクト数が所定数(例えば、3つ)以上であるか否かを確認する(S109)。そうである場合は(S109:Y)、鎖オブジェクト24に含まれるすべての剛体オブジェクト24aについて物理シミュレーション処理の対象から外すよう制御要否情報の値を更新する(S110)。
【0048】
そうでない場合(S109:N)、又は、S110に示す処理の終了後に、空間画像生成出力部46は、視点30から視線方向を見た様子を表す空間フレーム画像を生成し、表示部18に表示出力して(S111)、本処理例に示す処理を終了する。
【0049】
本実施形態では、プレイヤオブジェクト22が鎖オブジェクト24につかまって、鎖オブジェクト24を揺らしている間、つかまっている剛体オブジェクト24aの質量パラメータの値が他の剛体オブジェクト24aの質量パラメータの値よりも大きい状態が継続する。そして、例えば、ユーザによりプレイヤオブジェクト22が鎖オブジェクト24を離す操作が実行された場合には、プレイヤオブジェクト22が鎖オブジェクト24から離れて、放り出されることとなる。このとき、オブジェクト配置管理部44は、各剛体オブジェクト24aの質量パラメータの値を予め設定されていた初期値に戻す。すなわち、各剛体オブジェクト24aの質量パラメータには同じ値が設定されることとなる。
【0050】
さらに、オブジェクト配置管理部44は、プレイヤオブジェクト22が鎖オブジェクト24を離す操作が実行されてから、鎖オブジェクト24全体が物理シミュレーション処理の対象から外れるまでの間、鎖オブジェクト24に含まれるすべての剛体オブジェクト24aについて、プレイヤオブジェクト22が鎖オブジェクト24から離れた場面についてのダンピング係数(0以上1未満)を乗じる。本実施形態では、このダンピング係数の値は、予め設定されており、データ記憶部40に記憶されている。なお、このダンピング係数は、プレイヤオブジェクト22が進もうとしていた方向(例えば、X軸方向)と、それ以外の方向(例えば、Y軸方向及びZ軸方向)と、で異なる値が設定されていてもよい。例えば、X軸方向のダンピング係数の値が、Y軸方向のダンピング係数の値よりも小さく設定されており、Z軸方向のダンピング係数の値よりも小さく設定されていてもよい。このようにして、本実施形態では、プレイヤオブジェクト22が鎖オブジェクト24から離れてからの鎖オブジェクト24の揺れの収束を早めることができる。
【0051】
本実施形態では、例えば、S105に示す処理で、プレイヤオブジェクト22がつかまった剛体オブジェクト24aに設定されている質量パラメータの値を増加させ、それ以外の剛体オブジェクト24aに設定されている質量パラメータの値を減少させることによって、各剛体オブジェクト24aの質量パラメータの値が同じである場合と比較して、鎖オブジェクト24が揺れやすい状況となる。このように、S105に示す処理による、質量パラメータの値の変化によって、物理エンジンにより物理法則を忠実に再現する場合よりも、ゲームでは適した画像表現を実現することが可能となる。
【0052】
また、本実施形態では、S107に示す処理で、例えば、オブジェクト配置管理部44が、Y軸方向及びZ軸方向についての、速度パラメータの値に、対応規則データに設定されているダンピング係数を乗じることで、このようにしない場合よりも、プレイヤオブジェクト22が進もうとしているX軸方向以外の方向については鎖オブジェクト24の揺れが早く収束することとなる。また、プレイヤオブジェクト22が鎖オブジェクト24につかまっている途中で進行方向を変えた場合でも、鎖オブジェクト24が円運動をしてしまうことを防ぐことができ、プレイヤオブジェクト22が進行しようとする方向に沿った鎖オブジェクト24の揺れの画像表現を実現することができる。
【0053】
このように、本実施形態では、ユーザから受け付ける操作に応じた剛体オブジェクト24aの物理量の変化だけではなく、対応規則データにおいてその物理量の変化に対応付けられる剛体オブジェクト24aの物理量の変化も、剛体オブジェクト24aの位置や向きの変化に反映されることとなるため、単に、物理エンジンの機能を活かしつつ、物理エンジンにより物理法則を忠実に再現する場合と比較して、剛体オブジェクト24aが動く様子の表現のバリエーションの幅が広がることとなる。
【0054】
また、本実施形態では、あるフレームにおいて、設定された速度パラメータの値の絶対値が所定の閾値(除外閾値速度)以下であり、設定された角速度パラメータの値の絶対値が所定の閾値(除外閾値角速度)以下である剛体オブジェクト24aを特定オブジェクト数として特定する。また、特定オブジェクト数が所定のフレーム数継続して所定数以上であると(本実施形態では、例えば特定オブジェクト数が所定数以上であると3回以上連続して判定されると)、鎖オブジェクト24全体が物理シミュレーション処理の対象から外れることとなる。このことにより、本実施形態では、一部の剛体オブジェクト24aが物理シミュレーション処理の対象から外れているにも関わらず、残りの剛体オブジェクト24aが物理シミュレーション処理の対象となっている、などという状況を防ぐことができる。その結果、本実施形態では、鎖オブジェクト24の動きの表現が不自然なものとなる(例えば、鎖オブジェクト24が不自然に振動する)おそれを低減することができる。また、上述のようにしない場合よりも早く、物理シミュレーション処理の対象となる仮想オブジェクトの数を減らすことができるので、物理シミュレーション処理の負荷を低減することができる。その結果、ゲーム装置10の情報処理の負荷が高くなってしまうことを防げることとなる。
【0055】
なお、本発明は上述の実施形態に限定されるものではない。
【0056】
例えば、上述の処理例と同様の処理により、図6に示すような、横になった鎖オブジェクト24が床オブジェクト28の上で跳ねる様子が表現されるようにしてもよい。なお、ここでは、床オブジェクト28は静止しており、鎖オブジェクト24が衝突しても、その位置及び向きが変化しないように設定されていることとする。また、剛体オブジェクト24aには、床オブジェクト28との関係における反発係数を表す反発係数パラメータの値が設定されており、反発係数パラメータの値が物理シミュレーション処理において物理エンジンに入力されることとする。
【0057】
ここで、例えば、図6における左から2番目の剛体オブジェクト24aが床オブジェクト28と衝突した際の、床オブジェクト28に対する剛体オブジェクト24aの相対速度Vr(本実施形態では、床オブジェクト28が静止しているため剛体オブジェクト24aの速度パラメータの値と一致する。)の絶対値が所定の第2閾値(この閾値は、上述のS108に示す処理における閾値(以下、第1閾値と呼ぶ。)より大きい。)以下である場合には、オブジェクト配置管理部44は、反発係数パラメータの値に、反発係数に関して予め設定された、データ記憶部40に記憶されているダンピング係数(0以上1未満)を乗じるようにしてもよい。こうすれば、この剛体オブジェクト24aについては、反発係数パラメータの値を更新しない場合よりも、剛体オブジェクト24aが床オブジェクト28から離れる際の速度パラメータの絶対値や、単位時間あたりの位置や向きの変化量が小さくなる。こうすれば、丸め誤差の影響により、いつまでたっても、剛体オブジェクト24aが床オブジェクト28の上に停止しないという事態が発生することを防ぐことができる。また、反発係数パラメータの値を更新しない場合よりも早く、床オブジェクト28に対する相対速度の絶対値が第1閾値以下になり、物理シミュレーション処理の対象から外れることとなる。こうすれば、反発係数パラメータの値を更新しない場合よりも早く、物理シミュレーション処理の対象となる仮想オブジェクトの数を減らすことができ、その結果、物理シミュレーション処理の負荷を低減することができる。
【0058】
また、この場合においても、オブジェクト配置管理部44は、所定のフレーム数(例えば、3フレーム)以上にわたって連続して特定オブジェクト数が所定数(例えば、3つ)以上である場合に、鎖オブジェクト24に含まれるすべての剛体オブジェクト24aについて物理シミュレーション処理の対象から外すようにしてもよい。
【0059】
なお、本発明は上述の実施形態にも限定されるものではない。
【0060】
例えば、S107に示す処理において、オブジェクト配置管理部44は、S107に示す処理において、S106に示す処理で値が変更されたパラメータ(例えば、X軸方向の速度Vx)についてさらに値を変更するようにしてもよい。
【0061】
また、例えば、S108に示す処理において、オブジェクト配置管理部44は、所定のフレーム数(例えば、2フレーム)以上継続して設定された速度パラメータの値の絶対値が除外閾値速度以下であり、設定された角速度パラメータの値の絶対値が除外閾値角速度以下である剛体オブジェクト24aの数を特定オブジェクト数として特定するようにしてもよい。
【0062】
また、例えば、S108に示す処理において、オブジェクト配置管理部44は、設定された速度パラメータの値の絶対値が除外閾値速度以下であり、設定された角速度パラメータの値の絶対値が除外閾値角速度以下である剛体オブジェクト24aの数を特定オブジェクト数として特定するのではなく、例えば、設定された速度パラメータの値の絶対値が除外閾値速度以下である剛体オブジェクト24aの数を特定オブジェクト数として特定するようにしたり、設定された角速度パラメータの値の絶対値が除外閾値角速度以下である剛体オブジェクト24aの数を特定オブジェクト数として特定するようにしても構わない。また、ゲーム装置10が、特定オブジェクト数と所定値との比較結果に応じて、すべての剛体オブジェクト24aを物理シミュレーションの対象から外すか否かを制御する必要はない。例えば、ゲーム装置10が、各剛体オブジェクト24aについて設定されているパラメータの値の最大値と最小値の差が所定値以下であるか否かに応じて、すべての剛体オブジェクト24aを物理シミュレーションの対象から外すか否かを制御するようにしてもよい。
【0063】
また、例えば、S109及びS110に示す処理において、鎖オブジェクト24に含まれるすべての剛体オブジェクト24aについて物理シミュレーション処理の対象から外すよう制御要否情報の値を更新するか否かの制御に、所定のフレーム数以上連続して上述のようにして特定される剛体オブジェクト24aの数の代わりに、鎖オブジェクト24に含まれる剛体オブジェクト24aの数に対する、所定のフレーム数以上連続して上述のようにして特定される剛体オブジェクト24aの数の割合(例えば、50%)を用いるようにしてもよい。
【0064】
また、例えば、第1の物理量として、鎖オブジェクト24の特定の回転方向についての角速度の増加が設定されており、第2の物理量として、鎖オブジェクト24のその他の回転方向についての角速度の減少が設定されている対応規則データがデータ記憶部40に記憶されていてもよい。この対応規則データには、例えば、上述の角速度の減少の際のダンピング係数(0以上1未満)も設定されており、また、剛体オブジェクト24aの角速度の減少を後処理において行うことも示されている。そして、例えば、S107に示す処理で、オブジェクト配置管理部44が、プレイヤオブジェクト22の進行方向、あるいは、プレイヤオブジェクト22が鎖オブジェクト24を回転させている回転方向とは異なる回転方向についての、角速度パラメータの値に対応規則データに設定されているダンピング係数を乗じるようにしてもよい。こうすれば、プレイヤオブジェクト22が回転させようとしている回転方向とは異なる回転方向については、鎖オブジェクト24の回転が早く収束するようになる。
【0065】
また、例えば、対応規則データには、第1の物理量として、速度の増加又は減少と、角速度の増加又は減少の両方が示されていてもよい。また、例えば、第2の物理量として、速度の増加又は減少と、角速度の増加又は減少の両方が示されていてもよい。そして、S107に示す処理で、速度の変更と角速度の変更の両方を実行するようにしてもよい。
【0066】
また、例えば、対応規則データが、その剛体オブジェクト24aについての質量の増加、並びに、鎖オブジェクト24に含まれるその剛体オブジェクト24aとは異なる一部(例えば、前後2つ)の剛体オブジェクト24aについての質量の減少が設定されていてもよい。そして、オブジェクト配置管理部44が、S105に示す処理でプレイヤオブジェクト22がつかまった剛体オブジェクト24aの前後2つの剛体オブジェクト24aの質量パラメータの値を減少させるようにしてもよい。
【0067】
また、例えば、第1の物理量として、剛体オブジェクト24aに対するトルクの増加が設定されており、第2の物理量として、その剛体オブジェクト24aについての慣性モーメントの増加、並びに、それ以外の剛体オブジェクト24aについての慣性モーメントの減少が設定されている対応規則データがデータ記憶部40に記憶されていてもよい。そして、オブジェクト配置管理部44が、各剛体オブジェクト24aに設定されている慣性モーメントパラメータを、決定されたトルクパラメータの値と、トルクの増加量と慣性モーメントの変化量の関係が示されている対応規則データと、に基づいて変更するようにしてもよい。そして、オブジェクト配置管理部44が、トルクパラメータの値を物理エンジンに入力することにより、各剛体オブジェクト24aの位置や向きの変更、及び、各剛体オブジェクト24aに設定されている各種パラメータの値の変更を行うようにしてもよい。
【0068】
また、例えば、上述の実施形態において前処理で実行された処理が後処理で実行されるようにしても、後処理で実行された処理が前処理で実行されても構わない。具体的には、例えば、プレイヤオブジェクト22がいずれかの剛体オブジェクト24aにつかまったという動作が発生したフレームでの後処理において、質量パラメータの増減が行われ、次フレーム以降における物理シミュレーション処理において、質量パラメータの増減が反映されるようにしてもよい。
【0069】
また、例えば、剛体オブジェクト24aの速度変化に応じて、質量パラメータの値を変更するようにしてもよい。また、例えば、対応規則データが示す第2の物理量として、例えば、仮想空間20全体に関わる物理量(例えば、風速)の変化が設定されていてもよい。
【0070】
また、本実施形態をゲーム装置10以外の情報処理システム(例えば、シミュレーションシステムや画像処理システムなど)に応用してもよい。また、上記の具体的な数値や文字列や図面中の具体的な数値や文字列は例示であり、これらの数値や文字列には限定されない。
【符号の説明】
【0071】
10 ゲーム装置、12 制御部、14 記憶部、16 操作部、18 表示部、20 仮想空間、22 プレイヤオブジェクト、24 鎖オブジェクト、24a 剛体オブジェクト、24b ジョイント、26 天井オブジェクト、28 床オブジェクト、30 視点、40 データ記憶部、42 操作状態取得部、44 オブジェクト配置管理部、46 空間画像生成出力部。

【特許請求の範囲】
【請求項1】
仮想空間内に配置されているオブジェクトの移動を制御する情報処理システムとしてコンピュータを機能させるプログラムであって、
仮想空間内に配置されている移動対象のオブジェクトの属性である物理量に対応付けられるパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させるオブジェクト変化手段、
ユーザから受け付ける操作に応じた、前記移動対象のオブジェクトの物理量の変化を決定する第1の変化決定手段、
前記第1の変化決定手段により決定される変化に応じた、当該変化とは異なる物理量の変化を決定する第2の変化決定手段、
前記第1の変化決定手段により特定される物理量の変化、及び、前記第2の変化決定手段により特定される物理量の変化、に基づいて、前記パラメータの値を変更する値変更手段、として前記コンピュータを機能させ、
前記オブジェクト変化手段は、前記値変更手段によりパラメータの値が変化した後は、変化後のパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させる、
ことを特徴とするプログラム。
【請求項2】
前記第1の変化決定手段は、特定方向についての前記移動対象のオブジェクトの速度又は角速度の変化を決定し、
前記第2の変化決定手段は、前記特定方向とは異なる方向の速度又は角速度の変化を決定する、
ことを特徴とする請求項1に記載のプログラム。
【請求項3】
前記第1の変化決定手段が、特定方向についての前記移動対象のオブジェクトの速度又は角速度の増加を決定する場合は、前記第2の変化決定手段は、前記特定方向とは異なる方向の速度又は角速度の減少を決定する、
ことを特徴とする請求項2に記載のプログラム。
【請求項4】
前記第1の変化決定手段は、複数の要素から構成される前記移動対象のオブジェクトのうちの少なくとも1つに対して与えられる力の変化を決定し、
前記第2の変化決定手段は、少なくとも1つの前記要素の質量又は慣性モーメントの変化を決定する、
ことを特徴とする請求項1から3のいずれか一項に記載のプログラム。
【請求項5】
前記第2の変化決定手段は、力の変化が決定される少なくとも1つの要素については、質量又は慣性モーメントの増加を決定し、残りの要素の少なくとも1つについては、質量又は慣性モーメントの減少を決定する、
ことを特徴とする請求項4に記載のプログラム。
【請求項6】
前記第2の変化決定手段は、前記第1の変化決定手段により力の変化が決定される少なくとも1つの要素については、質量又は慣性モーメントの増加を決定し、残りの要素すべてについては、質量又は慣性モーメントの減少を決定する、
ことを特徴とする請求項5に記載のプログラム。
【請求項7】
前記オブジェクト変化手段は、それぞれが各要素の質量又は慣性モーメントに対応付けられる複数のパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させ、
前記値変更手段は、前記第2の変化決定手段により質量又は慣性モーメントの増加又は減少が決定される要素の質量又は慣性モーメントに対応付けられるパラメータの値を変更する、
ことを特徴とする請求項5又は6に記載のプログラム。
【請求項8】
前記オブジェクトが配置されている仮想空間を、前記仮想空間内に設定された視点から見た様子を表す画像を生成する画像生成手段、をさらに含む、
ことを特徴とする請求項1から7のいずれか一項に記載のプログラム。
【請求項9】
仮想空間内に配置されているオブジェクトの移動を制御する情報処理システムとしてコンピュータを機能させるプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体であって、
仮想空間内に配置されている移動対象のオブジェクトの属性である物理量に対応付けられるパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させるオブジェクト変化手段、
ユーザから受け付ける操作に応じた、前記移動対象のオブジェクトの物理量の変化を決定する第1の変化決定手段、
前記第1の変化決定手段により決定される変化に応じた、当該変化とは異なる物理量の変化を決定する第2の変化決定手段、
前記第1の変化決定手段により決定される物理量の変化、及び、前記第2の変化決定手段により決定される物理量の変化、に基づいて、前記パラメータの値を変更する値変更手段、として前記コンピュータを機能させ、
前記オブジェクト変化手段は、前記値変更手段によりパラメータの値が変化した後は、変化後のパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させる、
ことを特徴とするプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項10】
仮想空間内に配置されているオブジェクトの移動を制御する情報処理システムであって、
仮想空間内に配置されている移動対象のオブジェクトの属性である物理量に対応付けられるパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させるオブジェクト変化手段と、
ユーザから受け付ける操作に応じた、前記移動対象のオブジェクトの物理量の変化を決定する第1の変化決定手段と、
前記第1の変化決定手段により決定される変化に応じた、当該変化とは異なる物理量の変化を決定する第2の変化決定手段と、
前記第1の変化決定手段により決定される物理量の変化、及び、前記第2の変化決定手段により決定される物理量の変化、に基づいて、前記パラメータの値を変更する値変更手段、を含み、
前記オブジェクト変化手段は、前記値変更手段によりパラメータの値が変化した後は、変化後のパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させる、
ことを特徴とする情報処理システム。
【請求項11】
仮想空間内に配置されているオブジェクトの移動を制御する情報処理方法であって、
仮想空間内に配置されている移動対象のオブジェクトの属性である物理量に対応付けられるパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させる第1のオブジェクト変化ステップと、
ユーザから受け付ける操作に応じた、前記移動対象のオブジェクトの物理量の変化を決定する第1の変化決定ステップと、
前記第1の変化決定ステップにより決定される変化に応じた、当該変化とは異なる物理量の変化を決定する第2の変化決定ステップと、
前記第1の変化決定ステップにより決定される物理量の変化、及び、前記第2の変化決定ステップにより決定される物理量の変化、に基づいて、前記パラメータの値を変更する値変更ステップと、
前記値変更ステップによりパラメータの値が変化した後に、変化後のパラメータの値に基づいて、前記移動対象のオブジェクトの位置又は向きを変化させる第2のオブジェクト変化ステップと、
を含むことを特徴とする情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−252399(P2012−252399A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2011−122503(P2011−122503)
【出願日】平成23年5月31日(2011.5.31)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】