(57)【特許請求の範囲】
【請求項１】
仮想空間内に配置される分割可能なオブジェクトの表面に貼り付けられるテクスチャが予め記憶される記憶部と、
前記記憶されたテクスチャ内の複数の位置のそれぞれに重みを設定する設定部と、
前記オブジェクトが
（ａ）分割されていない場合、前記設定された重みの総和に基づいて、前記オブジェクトの質量を計算し、
（ｂ）複数の断片に分割されている場合、前記複数の断片のそれぞれについて、前記テクスチャのうち前記断片に貼り付けられる領域に含まれる前記重みの総和に基づいて、前記断片の質量を計算する、
計算部と、
を備えることを特徴とするゲーム装置。
【請求項２】
請求項１に記載のゲーム装置であって、
前記オブジェクトが複数の断片に分割された後、前記計算された質量に基づいて、前記複数の断片のそれぞれの位置を移動させる移動部と、
前記移動した複数の断片のそれぞれを表す画像を表示する表示部と、
を更に備えることを特徴とするゲーム装置。
【請求項３】
請求項１又は２に記載のゲーム装置であって、
前記オブジェクトの表面は、複数の領域に分かれており、
前記記憶部には、前記複数の領域のそれぞれに貼り付けられるテクスチャが記憶され、
前記設定部は、前記複数のテクスチャのそれぞれに重みを設定する、
ことを特徴とするゲーム装置。
【請求項４】
請求項１乃至３のいずれか１項に記載のゲーム装置であって、
前記設定部は、前記テクスチャ内の前記重みが設定される位置の総数を一定とし、且つ、前記重みが設定される位置をランダムに決定する、
ことを特徴とするゲーム装置。
【請求項５】
請求項３に記載のゲーム装置であって、
前記設定部は、前記オブジェクトが分割された場合、前記複数のテクスチャのそれぞれに設定された重みの比を求め、当該求められた比に応じて、前記複数のテクスチャのそれぞれから、当該分割により新たに生成された面に貼り付けられるテクスチャに、前記設定された重みを配分する、
ことを特徴とするゲーム装置。
【請求項６】
請求項５に記載のゲーム装置であって、
前記設定部は、前記テクスチャのそれぞれと当該分割により新たに生成された面に貼り付けられるテクスチャとに当該分割後に設定される重みの総和を、前記テクスチャのそれぞれに当該分割前に設定された重みの総和と等しくする、
ことを特徴とするゲーム装置。
【請求項７】
請求項１乃至６のいずれか１項に記載のゲーム装置であって、
前記設定部は、前記記憶されたテクスチャ内の複数の位置のそれぞれについて、当該位置に対応付けられた色に応じて、当該位置に設定される重みを決定する、
ことを特徴とするゲーム装置。
【請求項８】
請求項１乃至３のいずれか１項に記載のゲーム装置であって、
前記記憶部には、前記テクスチャ内の重みを設定する位置と対応付けて、当該位置に設定される重みが予め記憶され、
前記設定部は、前記記憶された位置に、前記記憶された重みを設定する、
ことを特徴とするゲーム装置。
【請求項９】
仮想空間内に配置される分割可能なオブジェクトの表面に貼り付けられるテクスチャが予め記憶される記憶部と、
前記オブジェクトが
（ｘ）分割されていない場合、前記テクスチャの面積に基づいて、前記オブジェクトの質量を計算し、
（ｙ）複数の断片に分割されている場合、前記複数の断片のそれぞれについて、前記テクスチャのうち前記断片に貼り付けられる領域の面積に基づいて、前記断片の質量を計算する、
計算部と、
を備えることを特徴とするゲーム装置。
【請求項１０】
記憶部と設定部と計算部を有するゲーム装置にて実行される制御方法であって、
前記記憶部には、仮想空間内に配置される分割可能なオブジェクトの表面に貼り付けられるテクスチャが予め記憶され、
前記設定部が、前記記憶されたテクスチャ内の複数の位置のそれぞれに重みを設定する設定ステップと、
前記オブジェクトが
（ａ）分割されていない場合、前記計算部が、前記設定された重みの総和に基づいて、前記オブジェクトの質量を計算し、
（ｂ）複数の断片に分割されている場合、前記計算部が、前記複数の断片のそれぞれについて、前記テクスチャのうち前記断片に貼り付けられる領域に含まれる前記重みの総和に基づいて、前記断片の質量を計算する、
計算ステップと、
を備えることを特徴とするゲーム装置の制御方法。
【請求項１１】
コンピュータを、
仮想空間内に配置される分割可能なオブジェクトの表面に貼り付けられるテクスチャが予め記憶される記憶部、
前記記憶されたテクスチャ内の複数の位置のそれぞれに重みを設定する設定部、
前記オブジェクトが
（ａ）分割されていない場合、前記設定された重みの総和に基づいて、前記オブジェクトの質量を計算し、
（ｂ）複数の断片に分割されている場合、前記複数の断片のそれぞれについて、前記テクスチャのうち前記断片に貼り付けられる領域に含まれる前記重みの総和に基づいて、前記断片の質量を計算する、
計算部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分割可能なオブジェクトもしくはそのオブジェクトの断片の形状が複雑であっても、より簡単に質量を求めることができるゲーム装置、ゲーム装置の制御方法、ならびに、プログラムに関する。
【背景技術】
【０００２】
仮想空間内に配置されるオブジェクトをよりリアルに表現するための手法に、テクスチャマッピングがある。テクスチャマッピングでは、ポリゴンで表されるオブジェクトの表面に、テクスチャと呼ばれる画像データが貼り付けられる。例えば、同じ形状のオブジェクトであっても、木目調のテクスチャを貼り付ければユーザーからはそれが木材に見えるし、石の模様のテクスチャを貼り付ければユーザーからはそれが石材に見える、といったように、テクスチャマッピングによって、オブジェクトに質感を与えることができる。
【０００３】
一方で、特許文献１のように、２次元におけるピクセルを３次元に拡張したボクセルを用いることによって、オブジェクトを立体的に表現する手法もある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１５２７７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、仮想空間におけるオブジェクトに現実感をより持たせるためには、質量を与えることが望ましい。特に、オブジェクトが衝突や爆発等によって複数の断片に分割される様子をよりリアルに表現するためには、オブジェクトあるいはその断片の質量を即座に計算することが要求されるが、オブジェクトやその断片の形状が複雑な場合には、体積を求める処理に時間がかかってしまい、オブジェクトやその断片の質量を計算することが難しいという問題があった。また、オブジェクトをボクセル形式で表したとしても、予め用意すべきボクセル情報が大量に必要であり、そもそもボクセル情報が与えられていない部分については質量が計算できないため現実感を欠いてしまうという問題があった。
【０００６】
本発明はこのような課題を解決するものであり、分割可能なオブジェクトもしくはそのオブジェクトの断片の形状が複雑であってもより簡単に質量を求めることができるゲーム装置、ゲーム装置の制御方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００８】
本発明の第１の観点に係るゲーム装置は、記憶部、設定部、計算部を備える。
記憶部には、仮想空間内に配置される分割可能なオブジェクトの表面に貼り付けられるテクスチャが予め記憶される。
設定部は、記憶されたテクスチャ内の複数の位置のそれぞれに重みを設定する。
計算部は、オブジェクトが
（ａ）分割されていない場合、設定された重みの総和に基づいて、オブジェクトの質量を計算し、
（ｂ）複数の断片に分割されている場合、複数の断片のそれぞれについて、テクスチャのうち断片に貼り付けられる領域に含まれる重みの総和に基づいて、断片の質量を計算する。
【０００９】
本発明では３次元の仮想空間が扱われる。この仮想空間には、立体的形状を持ったオブジェクトが配置される。典型的には、オブジェクトの外形は複数のポリゴンから構成される。オブジェクトは、例えば衝突等により、複数の断片に分割されることがある。オブジェクトの表面には、予め絵が描かれたテクスチャが貼り付けられる。
【００１０】
テクスチャ内の複数の位置には、数値で表される重みが設定される。重みが設定される位置は任意であるが、例えば、テクスチャ内に等間隔に並べられてもよいし、あるいはランダムに配置されてもよい。また、設定される値は任意であり、例えば、すべて同じ値でもよいし、あるいはテクスチャに描かれる絵の内容に基づいて異なる値が設定されてもよい。
【００１１】
本発明では、オブジェクトの質量は、その表面に貼り付けられるテクスチャ内に設定された重みの総和によって決まる。オブジェクトが分割されていない場合には、オブジェクトの表面にテクスチャ全体が貼り付けられるので、テクスチャ内に設定された重みの総和によって、オブジェクトの質量が決まる。一方、オブジェクトが複数の断片に分割されている場合には、それぞれの断片の表面には、テクスチャの一部分が貼り付けられる。断片の表面には、設定された重みのうちの一部分が配置される。そして、設定されたすべての重みのうち、断片の表面に貼り付けられる領域内にある重みの総和によって、断片の質量が決まる。従って、ゲーム装置は、たとえオブジェクトや断片の形状が複雑であっても、オブジェクトや断片の体積や密度などを正確に計算しなくてもよく、簡単な計算だけで、オブジェクトや断片の質量を得ることが出来る。得られた質量は、厳密な計算による正確な値ではないかもしれないが、比較的良い近似値となり得る。本発明によれば、分割可能なオブジェクトもしくはそのオブジェクトの断片の形状が複雑であっても、より簡単に質量を求めることができる。
【００１２】
オブジェクトが複数の断片に分割された後、計算された質量に基づいて、複数の断片のそれぞれの位置を移動させる移動部と、
移動した複数の断片のそれぞれを表す画像を表示する表示部と、
を更に備えてもよい。
【００１３】
本発明によれば、より簡単に質量が求まるだけでなく、求まった質量を用いて、オブジェクトやその断片の動きを表す画像をより簡単に生成しユーザーに提供することができる。
【００１４】
オブジェクトの表面は、複数の領域に分かれていてもよい。
また、記憶部には、複数の領域のそれぞれに貼り付けられるテクスチャが記憶されていてもよい。
そして、設定部は、複数のテクスチャのそれぞれに重みを設定してもよい。
【００１５】
本発明によれば、１つのオブジェクトに複数のテクスチャが貼り付けられる場合であっても、より簡単に質量を求めることができる。
【００１６】
設定部は、テクスチャ内の重みが設定される位置の総数を一定とし、且つ、重みが設定される位置をランダムに決定してもよい。
【００１７】
本発明によれば、オブジェクトの表面のうち重みが設定される部分が固定されているわけではないので、オブジェクトの分割のしかた（切断面の形状や位置）によって断片の質量が異なるだけでなく、仮にオブジェクトの分割のしかたが同じであったとしても、分割するたびに、断片の質量が異なってくることとなる。従って、分割後の断片の動きが多様化し、ユーザーを飽きさせない画像を提供できる。
【００１８】
設定部は、オブジェクトが分割された場合、複数のテクスチャのそれぞれに設定された重みの比を求め、当該求められた比に応じて、複数のテクスチャのそれぞれから、当該分割により新たに生成された面に貼り付けられるテクスチャに、設定された重みを配分してもよい。
【００１９】
例えば、ある切断面でオブジェクトが分割されると、その切断面は、生成された断片の表面の一部となる。その生成された断片の表面の一部には、別のテクスチャが貼り付けられることとなる。本発明によれば、分割によって出来た新たな面に貼り付けられるテクスチャに、オブジェクトの分割のされ方に応じて、適切に重みを設定できるようになる。従って、ゲーム装置は、より簡単に質量を求めることができるだけでなく、分割の仕方に応じて適切な“質量の分布”を定めることができる。
【００２０】
設定部は、テクスチャのそれぞれと当該分割により新たに生成された面に貼り付けられるテクスチャとに当該分割後に設定される重みの総和を、テクスチャのそれぞれに当該分割前に設定された重みの総和と等しくしてもよい。
【００２１】
例えば、オブジェクトが分割されて生成された断片の表面の一部には、別のテクスチャが貼り付けられることとなるが、仮にそのテクスチャに新たに任意の重みを設定すると、オブジェクトの分割前後で全体の質量が増加してしまい、断片が不自然な動きになってしまう恐れがある。そこで、本発明では、全体の質量が変わることなく、分割によって新たに生成された面（切断面）に貼り付けられるテクスチャに、重みを設定することとしている。従って、ゲーム装置は、より簡単に質量を求めることができ、且つ、分割後の断片の動きをより自然に表現できる。
【００２２】
設定部は、記憶されたテクスチャ内の複数の位置のそれぞれについて、当該位置に対応付けられた色に応じて、当該位置に設定される重みを決定してもよい。
【００２３】
本発明によれば、テクスチャに描かれた絵の内容に合うような適度な重みを設定することができる。
【００２４】
記憶部には、テクスチャ内の重みを設定する位置に対応付けて、当該位置に設定される重みが予め記憶されていてもよい。
そして、設定部は、記憶された位置に、記憶された重みを設定してもよい。
【００２５】
本発明によれば、オブジェクトあるいはその断片の“質量の分布”を適切に定めることができる。例えば、デザイナーによって描かれた絵の内容に合うように、質量を決めることができる。
【００２６】
本発明のその他の観点に係るゲーム装置は、記憶部と計算部を備える。
記憶部には、仮想空間内に配置される分割可能なオブジェクトの表面に貼り付けられるテクスチャが予め記憶される。
計算部は、オブジェクトが
（ｘ）分割されていない場合、テクスチャの面積に基づいて、オブジェクトの質量を計算し、
（ｙ）複数の断片に分割されている場合、複数の断片のそれぞれについて、テクスチャのうち断片に貼り付けられる領域の面積に基づいて、断片の質量を計算する。
【００２７】
本発明によれば、分割可能なオブジェクトもしくはそのオブジェクトの断片の形状が複雑であっても、表面に貼り付けられるテクスチャの面積を求めるだけで、より簡単に質量を求めることができる。
【００２８】
本発明のその他の観点に係るゲーム装置の制御方法は、記憶部と設定部と計算部を有するゲーム装置にて実行される制御方法であって、設定ステップと計算ステップを備える。
記憶部には、仮想空間内に配置される分割可能なオブジェクトの表面に貼り付けられるテクスチャが予め記憶される。
設定ステップでは、設定部が、記憶されたテクスチャ内の複数の位置のそれぞれに重みを設定する。
計算ステップでは、オブジェクトが
（ａ）分割されていない場合、計算部が、設定された重みの総和に基づいて、オブジェクトの質量を計算し、
（ｂ）複数の断片に分割されている場合、計算部が、複数の断片のそれぞれについて、テクスチャのうち断片に貼り付けられる領域に含まれる重みの総和に基づいて、断片の質量を計算する。
【００２９】
本発明によれば、分割可能なオブジェクトもしくはそのオブジェクトの断片の形状が複雑であっても、より簡単に質量を求めることができる。
【００３０】
本発明のその他の観点に係るプログラムは、コンピュータを、記憶部、設定部、計算部として機能させる。
記憶部には、仮想空間内に配置される分割可能なオブジェクトの表面に貼り付けられるテクスチャが予め記憶される。
設定部は、記憶されたテクスチャ内の複数の位置のそれぞれに重みを設定する。
計算部は、オブジェクトが
（ａ）分割されていない場合、設定された重みの総和に基づいて、オブジェクトの質量を計算し、
（ｂ）複数の断片に分割されている場合、複数の断片のそれぞれについて、テクスチャのうち断片に貼り付けられる領域に含まれる重みの総和に基づいて、断片の質量を計算する。
【００３１】
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００３２】
本発明によれば、分割可能なオブジェクトもしくはそのオブジェクトの断片の形状が複雑であっても、より簡単に質量を求めることができるゲーム装置、ゲーム装置の制御方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明のゲーム装置が実現される典型的な情報処理装置のハードウェア構成を示す図である。
【図２】ゲーム装置の機能的な構成を示す図である。
【図３】（ａ），（ｂ）は、テクスチャ内に設定される重みを説明するための図である。
【図４】（ａ）分割される前のオブジェクトを表す図である。（ｂ）オブジェクトの表面にテクスチャを貼り付ける処理を説明するための図である。
【図５】（ａ）分割された後のオブジェクトを表す図である。（ｂ）第１の断片の表面と第２の断片の表面にテクスチャを貼り付ける処理を説明するための図である。
【図６】（ａ）分割された後のオブジェクトを表す図である。（ｂ）第１の断片の表面と第２の断片の表面と第３の断片の表面にテクスチャを貼り付ける処理を説明するための図である。
【図７】質量計算処理を説明するためのフローチャートである。
【図８】実施形態２におけるゲーム装置の機能的な構成を示す図である。
【図９】（ａ）オブジェクトの断片を表す図である。（ｂ）オブジェクトの断片の表面に貼り付けられるテクスチャを示す図である。
【図１０】実施形態３において、オブジェクトの表面に複数のテクスチャを貼り付ける様子を示す図である。
【図１１】断片の表面に複数のテクスチャを貼り付ける様子を示す図である。
【図１２】実施形態４における質量計算処理を説明するためのフローチャートである。
【図１３】（ａ）オブジェクトを表す図である。（ｂ）オブジェクトの表面に貼り付けられるテクスチャを表す図である。（ｃ）断片を表す図である。（ｄ）断片の表面に貼り付けられるテクスチャを表す図である。
【図１４】（ａ）重みが設定される点の配置を示す図である。（ｂ）重みが設定される点と重みとの対応付けを示す図である。
【発明を実施するための形態】
【００３４】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００３５】
（実施形態１）
図１は、プログラムを実行することにより、本発明の実施形態に係るゲーム装置の機能を果たす典型的な情報処理装置１００の概要構成を示す模式図である。
【００３６】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ  １０２、ＲＡＭ（Random Access Memory）１０３、インターフェース１０４、コントローラ１０５、外部メモリ１０６、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０７、画像処理部１０８、音声処理部１０９、ＮＩＣ（Network Interface Card）１１０、を備える。
【００３７】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０７に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態に係るゲーム装置が実現される。
【００３８】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００３９】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００４０】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００４１】
インターフェース１０４を介して接続されたコントローラ１０５は、プレイヤーがゲーム実行の際などに行う操作入力を受け付ける。
【００４２】
インターフェース１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。プレイヤーは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００４３】
ＤＶＤ−ＲＯＭドライブ１０７に装着されるＤＶＤ−ＲＯＭには、ゲームを行うためのプログラムとゲームに付随する画像データや音声データなどが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０７は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００４４】
画像処理部１０８は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０８が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０８が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０８に接続されるモニター（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００４５】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００４６】
また、仮想空間が３次元にて構成される場合には、当該３次元空間内に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想空間に配置されたポリゴンを所定の視線の方向へ見たレンダリング画像を得る演算の高速実行も可能である。
【００４７】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００４８】
音声処理部１０９は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカーから出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカーから出力させる。
【００４９】
音声処理部１０９では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカーに出力することにより、音声出力が可能となる。
【００５０】
さらに、情報処理装置１００にはマイクを接続することができる。この場合、マイクからのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１０９でのミキシング等の処理ができるようにする。
【００５１】
ＮＩＣ  １１０は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェイス（図示せず）により構成される。
【００５２】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０７に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００５３】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータやパーソナルコンピュータなど、種々の計算機上で本発明を実現することが可能である。
【００５４】
次に、本実施形態のゲーム装置２００の機能的な構成について説明する。図２は、ゲーム装置２００の機能的な構成を示す図である。ゲーム装置２００は、記憶部２０１、設定部２０２、計算部２０３を備える。
【００５５】
記憶部２０１は、仮想空間内に配置される分割可能なキャラクターオブジェクト（以下、単に「オブジェクト」という。）の表面に貼り付けるテクスチャ画像データ（以下、単に「テクスチャ」という。）を予め記憶する。外部メモリ１０６が、記憶部２０１として機能する。
【００５６】
本実施形態のゲーム装置２００にて扱われる仮想空間は３次元であり、この仮想空間の中には、立体的形状をもったオブジェクトが配置される。オブジェクトの表面は、互いに連結された複数のポリゴンで形成される。したがって、オブジェクトの表面は正確には多面体で表現されるのであるが、ポリゴン数を増やすことによって、より滑らかで曲面に近い外形を表現することが可能になる。
【００５７】
ＣＰＵ  １０１は、画像処理部１０８を制御して、このオブジェクトの表面を覆うように、予め用意されたテクスチャを貼り付ける。テクスチャには、貼り付けられるオブジェクトを特徴付ける絵が予め描かれている。例えば、人間の形をしたオブジェクトの表面に、洋服の柄の模様が描かれたテクスチャが貼り付けられると、洋服を着た人間の姿が表現される。
【００５８】
例えば、立方体のオブジェクトの６つの面に“一の目”，“二の目”などが描かれたテクスチャが貼り付けられると、ユーザからはこの立方体が“サイコロ”に見える。一方、この同じ立方体のオブジェクトの表面に木目調の模様が描かれたテクスチャが貼り付けられると、ユーザからはこのオブジェクトが“木片”に見える。また、この同じ立方体のオブジェクトの表面に色がグレーもしくは黒のテクスチャが貼り付けられると、ユーザからはこのオブジェクトが“鉄の固まり”に見える。つまり、表面の形状が同じであったとしても、貼り付けられるテクスチャの違いによって、オブジェクトが表現しようとしている質感、重量感、あるいは物自体が異なってくる。
【００５９】
また、オブジェクトは、複数の断片に分割されることがある。典型的には、オブジェクト同士が衝突すると、一方もしくは両方のオブジェクトが変形することもあれば、一方もしくは両方のオブジェクトが複数の破片に分かれることもある。例えば、一方のオブジェクトが“刀”であり、他方のオブジェクトが“竹”である場合、竹に刀の刃の部分が当たると、刀は分割されないが、竹は２つに分割される（切られる）。
【００６０】
設定部２０２は、記憶部２０１に記憶されたテクスチャ内の複数の位置のそれぞれに重みを設定する。ＣＰＵ  １０１が、設定部２０２として機能する。
【００６１】
図３（ａ）は、テクスチャ３００内において重みが設定される位置を示す図である。ＣＰＵ  １０１は、テクスチャ３００内の任意の位置に重みを設定することができる。位置は、テクスチャ３００内に定義される座標系（図３（ａ）ではＸ−Ｙ座標系）を用いた座標で表される。例えば、ＣＰＵ  １０１は、Ｎ行・Ｍ列（Ｎ，Ｍは１以上の整数）の格子状に、等間隔に、重みを設定する対象となる点Ｐ（ｘ，ｙ）を選択する。
【００６２】
また、ＣＰＵ  １０１は、［数１］に示すように、要素数がＮ×Ｍ個の配列変数Ｇを定義し、それぞれの配列に、任意の数値で表される重みｇ（ｘ，ｙ）を設定する。ただし、１≦ｘ≦Ｎ、１≦ｙ≦Ｍ、である。
【００６３】
Ｇ  ＝  ｛ｇ（１，１），ｇ（１，２），・・・，ｇ（１，Ｍ），
ｇ（２，１），ｇ（２，２），・・・，ｇ（２，Ｍ），
・・・
ｇ（Ｎ，１），ｇ（Ｎ，２），・・・，ｇ（Ｎ，Ｍ）｝  ・・・［数１］
【００６４】
それぞれの重みｇ（ｘ，ｙ）は、予め決められた値でもよいし、ＣＰＵ  １０１が都度計算することによって得られる可変値であってもよい。
【００６５】
そして、ＣＰＵ  １０１は、テクスチャ３００内で選択した点Ｐ（ｘ，ｙ）のそれぞれに、重みｇ（ｘ，ｙ）を対応付ける。
【００６６】
図３（ｂ）は、点Ｐ（ｘ，ｙ）と重みｇ（ｘ，ｙ）との対応関係を簡略化して示した図である。格子内の数字が、重みｇ（ｘ，ｙ）である。例えば図３（ｂ）では、テクスチャ３００の周縁部に重み「１」が設定され、Ｘ軸方向にテクスチャ３００の真ん中にいくほど大きな重みが設定されている。
【００６７】
重みｇ（ｘ，ｙ）が設定されたテクスチャ３００が、オブジェクトの表面に貼り付けられる。ただし、重みｇ（ｘ，ｙ）は論理的に対応付けられているだけであり、重みｇ（ｘ，ｙ）はユーザーの目には見えない。また、どの点にいくつの重みが設定されるのかがユーザーへ明示的に提示されることはない。
【００６８】
ＣＰＵ  １０１は、テクスチャ３００に描かれた内容に応じて、設定する重みの大きさを決定してもよい。具体的には、ＣＰＵ  １０１は、重みを設定する点をテクスチャ３００内から選択した後、選択された点に対応付けられている色を判別する。テクスチャ３００は、Ｒ（レッド）・Ｇ（グリーン）・Ｂ（ブルー）の強度の組み合わせが設定された画素（ピクセル）の集合から構成されるデータであり、ＣＰＵ  １０１は、ＲＧＢの値によって重みを決定する。例えば、Ｒ・Ｇ・Ｂがそれぞれ２５６段階で表される場合に、Ｒが２５５、ＧとＢが０（ゼロ）のピクセル（以下、「（Ｒ，Ｇ，Ｂ）＝（２５５，０，０）」のように表す）であれば、その点には所定の重さｇ１を設定する。同様に、ＣＰＵ  １０１は、（Ｒ，Ｇ，Ｂ）＝（０，２５５，０）であれば、その点には所定の重さｇ２を設定する。つまり、色によって重さが決められる。なお、設定される重さｇ１，ｇ２や、ＲＧＢの各値は、任意である。また、色は、Ｒ・Ｇ・Ｂの代わりに、色相（Ｈ）・彩度（Ｓ）・明度（Ｂ）の組み合わせや、シアン（Ｃ）・Ｍ（マゼンダ）・Ｙ（イエロー）・Ｋ（ブラック）の組み合わせなどによって決められてもよい。
【００６９】
計算部２０３は、設定部２０２によって設定された重みｇ（ｘ，ｙ）に基づいて、オブジェクトの質量を計算する。ＣＰＵ  １０１が、計算部２０３として機能する。
【００７０】
より詳細には、ＣＰＵ  １０１は、オブジェクトが分割されていない場合、設定された重みの総和に基づいて、オブジェクトの質量を計算する。重みの総和Σｇは、［数２］によって表される。
【００７１】
Σｇ  ＝  ｇ（１，１）＋ｇ（１，２）＋・・・＋ｇ（１，Ｍ）＋
ｇ（２，１）＋ｇ（２，２）＋・・・＋ｇ（２，Ｍ）＋
・・・
ｇ（Ｎ，１）＋ｇ（Ｎ，２）＋・・・＋ｇ（Ｎ，Ｍ）    ・・・［数２］
【００７２】
一方、オブジェクトが複数の断片に分割されている場合、ＣＰＵ  １０１は、分割して生成された複数の断片のそれぞれについて、テクスチャ３００のうち断片に貼り付けられる領域に含まれる重みの総和に基づいて、断片の質量を計算する。
【００７３】
具体的な例を用いて説明する。図４（ａ）に、分割可能な、筒状のオブジェクト４００を示す。オブジェクト４００が分割されていない場合、ＣＰＵ  １０１は、図４（ｂ）に示すように、オブジェクト４００の表面に、テクスチャ３００を貼り付ける。例えば、テクスチャ３００の一辺３０１とその対辺３０２とが重なるように、テクスチャ３００がオブジェクト４００の表面に巻き付けられる。
【００７４】
テクスチャ３００内の重みｇ（ｘ，ｙ）が設定されたすべての点Ｐ（ｘ，ｙ）は、オブジェクト４００の表面に配置される。ＣＰＵ  １０１は、テクスチャ３００内に設定されたすべての重みの和Σｇを、分割されていないオブジェクト４００の質量とする。例えば、設定されたすべての重みが「１」であり、この重みが設定された点の数が「１００」であれば、重みの総和「１００」（＝１×１００）が、オブジェクト４００の質量とされる。ただし、質量の単位系は任意である。
【００７５】
なお、ＣＰＵ  １０１は、求めた重みの総和をオブジェクト４００もしくは断片の質量とする代わりに、求めた総和に所定の係数を乗じたり、求めた総和を１つのパラメーターとする任意の関数を用いたりすることにより、オブジェクト４００もしくは断片の質量を求めてもよい。
【００７６】
図５（ａ）に、切断面５００で２つに切断されたオブジェクト４００を示す。ＣＰＵ  １０１は、図５（ｂ）に示すように、オブジェクト４００を、第１の断片５１０と第２の断片５２０に分割する。テクスチャ３００の一辺３０１のうち、一部分５５１は第１の断片５１０に、残りの部分５５２は第２の断片５２０に、それぞれ対応付けられる。ＣＰＵ  １０１は、切断面５００から、切り込み線５６０を求める。ＣＰＵ  １０１は、テクスチャ３００を切り込み線５６０に沿って２つに分割する。ＣＰＵ  １０１は、第１の断片５１０の表面にテクスチャ３００のうちの一部分５８１を貼り付け、第２の断片５２０にテクスチャ３００のうちの残りの部分５８２を貼り付ける。
【００７７】
テクスチャ３００内の重みｇ（ｘ，ｙ）が設定されたすべての点Ｐ（ｘ，ｙ）のうち、一部分が第１の断片５１０の表面に配置され、残りが第２の断片５２０の表面に配置される。ＣＰＵ  １０１は、テクスチャ３００内に設定された重みのうち、第１の断片５１０の表面に配置される点に対応する重みの総和を、第１の断片５１０の質量とする。同様に、ＣＰＵ  １０１は、テクスチャ３００内に設定された重みのうち、第２の断片５２０の表面に配置される点に対応する重みの総和を、第２の断片５２０の質量とする。第１の断片５１０の質量と第２の断片５２０の質量の合計は、オブジェクト４００の質量に等しい。
【００７８】
一般に、オブジェクトの質量を計算する際には、オブジェクトの密度が均一の場合、オブジェクトの体積に密度を掛ければ、オブジェクトの質量が得られる。オブジェクトの密度が不均一の場合、重さが対応付けられた複数のボクセルの集合をオブジェクトとし、ボクセルに対応付けられた重さの総和を求めると、オブジェクトの質量が得られる。ここで、もし、オブジェクトの形状や密度分布が複雑であったり、ボクセルの数が非常に多かったりすると、オブジェクトの体積が求めづらくなって質量を計算する処理が重くなり、ゲーム装置２００が行う他の処理が遅延してしまう恐れが出てくる。特に、オブジェクトが複数の断片に分割され、分割後の断片のそれぞれの形状が複雑であったり、断片の数が多かったりすると、質量計算処理がより重くなってしまう。しかしながら、本実施形態では、オブジェクトもしくは断片の表面に貼り付けられるテクスチャ３００内に設定された重みの総和をオブジェクトもしくは断片の質量として扱うため、体積を計算する必要がなく、計算量が少なくて済む。また、オブジェクト４００の表面に貼り付けられるテクスチャ３００には、オブジェクト４００の材質、質感、特徴などが反映された絵が描かれるのが一般的であり、描かれた絵の内容が反映されるように設定された重みの総和を質量として扱えば、厳密な計算を行ったときの質量計算結果と遜色のない近似が得られるのである。
【００７９】
なお、本実施形態では、オブジェクト４００が２つの断片に分割されることを想定しているが、オブジェクト４００が３つ以上に断片に分割された場合でも、本発明を適用することができる。図６（ａ）に、３つの断片に分割されたオブジェクト４００を示す。オブジェクト４００は、切断面６０１，６０２で、第１の断片６１０と第２の断片６２０と第３の断片６３０とに分割されている。テクスチャ３００の一辺３０１のうち、一部分６５１は第１の断片６１０に、他の一部分６５２は第２の断片６２０に、残りの部分６５３は第３の断片６３０に、それぞれ対応付けられる。
【００８０】
ＣＰＵ  １０１は、第１の断片６１０の表面にテクスチャ３００のうちの一部分６８１を貼り付け、第２の断片６２０にテクスチャ３００のうちの他の一部分６８２を貼り付け、第３の断片６３０にテクスチャ３００のうちの残りの部分６８３を貼り付ける。そして、ＣＰＵ  １０１は、テクスチャ３００内の重みが設定されたすべての点のうち、第１の断片６１０に貼り付けられる部分に含まれる点に対応する重みの総和を、第１の断片６１０の質量とする。同様に、ＣＰＵ  １０１は、テクスチャ３００内の重みが設定されたすべての点のうち第２の断片６２０に貼り付けられる部分に含まれる点に対応する重みの総和を第２の断片６２０の質量とし、テクスチャ３００内の重みが設定されたすべての点のうち第３の断片６３０に貼り付けられる部分に含まれる点に対応する重みの総和を第３の断片６３０の質量とする。
【００８１】
次に、本実施形態の上記各部が実行する質量計算処理について、図７のフローチャートを用いて説明する。オブジェクト４００には、少なくとも１つのテクスチャ３００が割り当てられている。モニターには、オブジェクト４００の表面にテクスチャ３００の全部又は一部が貼り付けられた画像が表示される。
【００８２】
まず、ＣＰＵ  １０１は、外部メモリ１０６等からテクスチャ３００をＲＡＭ  １０３に読み出す（ステップＳ７０１）。
【００８３】
ＣＰＵ  １０１は、重みを設定する対象となる点を選択する（ステップＳ７０２）。
【００８４】
ＣＰＵ  １０１は、ステップＳ７０２で選択した点に、重みを設定する（ステップＳ７０３）。ＣＰＵ  １０１は、選択された点に、予め決められた値を設定してもよいし、オブジェクト４００の形状や位置、仮想空間内に定義される重力場などに応じて都度計算した値を設定してもよい。
【００８５】
ＣＰＵ  １０１は、オブジェクト４００が分割されているか否かを判別する（ステップＳ７０４）。オブジェクト４００は、例えば他のオブジェクトとの衝突により、２つ以上の断片に分割されることがある。
【００８６】
オブジェクト４００が分割されていないと判別された場合（ステップＳ７０４；ＮＯ）、ＣＰＵ  １０１は、オブジェクト４００の表面にテクスチャ３００を貼り付ける（ステップＳ７０５）。オブジェクト４００の表面にはテクスチャ３００全体が貼り付けられるので、テクスチャ３００内の重みが設定された点はすべてオブジェクト４００の表面に配置されることになる。
【００８７】
そして、ＣＰＵ  １０１は、テクスチャ３００内に設定された重みの総和を、オブジェクト４００の質量とする（ステップＳ７０６）。
【００８８】
一方、オブジェクト４００が分割されていると判別された場合（ステップＳ７０４；ＹＥＳ）、ＣＰＵ  １０１は、生成された断片の表面に、テクスチャ３００の一部分を貼り付ける（ステップＳ７０７）。
【００８９】
例えば、ＣＰＵ  １０１は、図５（ａ）に示すように切断面５００が決まると、図５（ｂ）に示すようにテクスチャ３００内の切り込み線５６０を求め、切り込み線５６０によって分割されたテクスチャ３００の一部分５８１，５８２を、第１の断片５１０と第２の断片５２０の表面のそれぞれに貼り付ける。
【００９０】
そして、ＣＰＵ  １０１は、断片に貼り付けられたテクスチャ３００の一部分に含まれる重みの総和を、その断片の質量とする（ステップＳ７０８）。
【００９１】
重みが設定される点の位置は、オブジェクト４００の切断面５００の位置や形状と関係なく、オブジェクト４００が切断される前に既に決まっている。オブジェクト４００が複数の断片に分割されると、各断片には、重みが設定されたすべての点のうちの一部分が割り当てられる。各断片の質量は、重みが設定されたすべての点のうち、切断によって割り当てられた点に対応付けられた重みの、合計値である。したがって、ＣＰＵ  １０１は、オブジェクト４００や断片の体積を求めることなく、重みの総和を求めるだけで、オブジェクト４００や断片の質量を得ることができる。本実施形態によれば、ゲーム装置２００は、オブジェクトやその断片の形状が複雑であっても、厳密な質量計算をすることなく、簡単な計算を行うだけで、オブジェクトやその断片の質量を得ることができる。
【００９２】
（実施形態２）
次に、本発明のその他の実施形態について説明する。本実施形態は、上記のように求められた質量の利用の一例である。ゲーム装置２００は、求められた質量に基づいて分割後の断片がどのように動くかを決め、分割後の各断片を仮想空間内で動かす。
【００９３】
図８は、本実施形態のゲーム装置２００の機能的な構成を示す図である。ゲーム装置２００は、移動部８０１と表示部８０２を更に備える。
【００９４】
移動部８０１は、オブジェクト４００が複数の断片に分割された後、計算部２０３によって計算された質量に基づいて、複数の断片のそれぞれの位置を移動させる。ＣＰＵ  １０１と画像処理部１０８が協働して、移動部８０１として機能する。
【００９５】
表示部８０２は、移動部８０１によって位置が移動した断片の様子を表す画像をモニターに表示する。ＣＰＵ  １０１と画像処理部１０８が協働して、表示部８０２として機能する。
【００９６】
一般に、物体（オブジェクト）の運動を記述する際には、古典力学の運動方程式が用いられることが多い。そして、運動方程式では、物体の加速度と共に、物体の質量が用いられる。しかし、物体もしくはその物体の断片の形状が複雑な場合には、物体や断片の質量の計算に時間がかかり、衝突後の物体もしくは断片の加速度を簡単に得られず、結果的に、衝突後の物体もしくは断片が動く様子を即座に表示できない恐れが出てくる。そこで、上記実施形態のように求められた物体もしくは断片の質量を用いることにより、物体の衝突過程や分裂過程の様子を簡単に表現できるようになる。
【００９７】
例えば図９（ａ）に示すように、ある１つのオブジェクトが第１の断片９１０と第２の断片９２０に分割されたとする。古典力学によれば、第１の断片９１０に働く外力ＦＡと、第１の断片９１０の加速度αと、第１の断片９１０の質量ＭＡとの間には［数３］に示す運動方程式が成り立つ。また、第２の断片９２０に働く外力ＦＢと、第２の断片９２０の加速度βと、第２の断片９２０の質量ＭＢとの間には［数４］に示す運動方程式が成り立つ。
【００９８】
ＦＡ  ＝  ＭＡ・α      ・・・［数３］
ＦＢ  ＝  ＭＢ・β      ・・・［数４］
【００９９】
分割後の２つの断片が動く様子を得るには、加速度α，βを求める必要がある。まず、ＣＰＵ  １０１は、テクスチャ３００内において、重みを設定する点を選択する。そして、ＣＰＵ  １０１は、選択した各点に重みを設定する。
【０１００】
次に、ＣＰＵ  １０１は、テクスチャ３００の全領域のうち、第１の断片９１０の表面に貼り付けられる第１の部分９５０と、第２の断片９２０の表面に貼り付けられる第２の部分９６０と、を求める。
【０１０１】
さらに、ＣＰＵ  １０１は、重みが設定されたすべての点のうち、第１の部分９５０内に含まれる第１種の点９７０の総数を求める。同様に、ＣＰＵ  １０１は、重みが設定されたすべての点のうち、第２の部分９６０内に含まれる第２種の点９８０の総数を求める。図９（ａ）の場合、第１種の点９７０の総数は「３６」であり、第２種の点９８０の総数は「２４」である。
【０１０２】
そして、ＣＰＵ  １０１は、求めた総数から、第１の断片９１０の質量ＭＡと、第２の断片９２０の質量ＭＢを求める。例えば、すべての重みの大きさが「１」である場合には、第１の断片９１０の質量ＭＡは「３６」であり、第２の断片９２０の質量ＭＢは「２４」となる。勿論、設定される重みの大きさは、点ごとに異なる値であってもよい。
【０１０３】
ＣＰＵ  １０１は、外力ＦＡと質量ＭＡ、及び［数１］から、第１の断片９１０の加速度αを得ることができ、外力ＦＢと質量ＭＢ、及び［数２］から、第２の断片９２０の加速度βを得ることができる。従って、ＣＰＵ  １０１は、得られた運動方程式から、分割後の各断片の動きを計算することができるようになる。このように、ゲーム装置２００は、簡単な計算を行うだけで、各断片の動きを計算でき、更には計算結果を表す画像を素早く生成し表示できるようになる。
【０１０４】
（実施形態３）
次に、本発明のその他の実施形態について説明する。１つのオブジェクトに貼り付けられるテクスチャは１つだけでなく複数であってもよい。本実施形態では、６面体の各面にテクスチャを１つずつ貼り付けられ、合計６個のテクスチャが用いられる。
【０１０５】
図１０は、いびつな６面体のオブジェクト１０００と、６面のそれぞれに対応付けられるテクスチャ１０１０〜１０６０を示す図である。頂点Ｐ１，Ｐ２，Ｐ３，Ｐ４を有する面にはテクスチャ１０１０が、頂点Ｐ３，Ｐ４，Ｐ５，Ｐ６を有する面にはテクスチャ１０２０が、頂点Ｐ５，Ｐ６，Ｐ７，Ｐ８を有する面にはテクスチャ１０３０が、頂点Ｐ７，Ｐ８，Ｐ１，Ｐ２を有する面にはテクスチャ１０４０が、頂点Ｐ１，Ｐ４，Ｐ５，Ｐ８を有する面にはテクスチャ１０５０が、頂点Ｐ２，Ｐ３，Ｐ６，Ｐ７を有する面にはテクスチャ１０６０が、それぞれ対応付けられる。
【０１０６】
テクスチャ１０１０〜１０６０上には、所定の重みが設定された点（図１０において黒丸の印で示す点）が配置される。重みが設定される点の分布は、テクスチャ１０１０〜１０５０のように規則性や対称性をもっていてもよいし、テクスチャ１０６０のようにランダムであってもよい。また、設定される重みの大きさは任意の値であってもよい。
【０１０７】
ＣＰＵ１０１は、頂点Ｐ１，Ｐ２，Ｐ３，Ｐ４を有する面にテクスチャ１０１０を貼り付ける。同様にして、ＣＰＵ  １０１は、オブジェクト１０００の各面に、対応するテクスチャ１０１０〜１０６０のいずれかを貼り付ける。そして、ＣＰＵ  １０１は、各面にテクスチャ１０１０〜１０６０が貼り付けられたオブジェクト１０００を表す画像をモニターに表示する。
【０１０８】
オブジェクト１０００が分割されていない場合、テクスチャ１０１０〜１０６０内に設定された重みの総和が、オブジェクト１０００の質量となる。例えば図１０の場合、ＣＰＵ  １０１は、各面上に配置される重みの総和「１９２」（＝５６＋３０＋２７＋２７＋４２＋１０）を、オブジェクト１０００の質量とする。
【０１０９】
オブジェクト１０００が複数の断片に分割されると、分割後の断片の表面に配置されている重みの総和が、その断片の質量となる。図１１に、オブジェクト１０００が切断面１１００によって２つの断片１１５０，１１６０に分割された様子を示す。
【０１１０】
第１の断片１１５０については、ＣＰＵ  １０１は、頂点Ｐ１，Ｐ２，Ｐ３，Ｐ４を有する面にテクスチャ１０１０の全部を貼り付ける。また、ＣＰＵ  １０１は、頂点Ｐ３，Ｐ４，Ｑ２，Ｑ１を有する面に、テクスチャ１０２０のうちの一部分（左半分）を貼り付ける。同様にして、ＣＰＵ  １０１は、オブジェクト１０００の各面に、対応するテクスチャ１０１０〜１０６０のいずれかの一部分を貼り付ける。そして、ＣＰＵ  １０１は、各面にテクスチャ１０１０〜１０６０の一部または全部が貼り付けられたオブジェクト１０００を表す画像をモニターに表示する。なお、第１の断片１１５０には頂点Ｐ５，Ｐ６，Ｐ７，Ｐ８を有する面が含まれないため、第１の断片１１５０については、テクスチャ１０３０は使用されない。
【０１１１】
そして、ＣＰＵ  １０１は、各面上に配置される重みの総和「１１８」（＝５６＋１８＋０＋１５＋２４＋５）を、第１の断片１１５０の質量とする。
【０１１２】
第２の断片１１６０については、ＣＰＵ  １０１は、頂点Ｑ２，Ｑ１，Ｐ６，Ｐ５を有する面にはテクスチャ１０２０の一部分（右半分）を貼り付ける。また、ＣＰＵ  １０１は、頂点Ｐ５，Ｐ６，Ｐ７，Ｐ８を有する面にはテクスチャ１０３０の全部を貼り付ける。同様にして、ＣＰＵ  １０１は、オブジェクト１０００の各面に、対応するテクスチャ１０１０〜１０６０のいずれかの一部分を貼り付ける。そして、ＣＰＵ  １０１は、各面にテクスチャ１０１０〜１０６０の一部または全部が貼り付けられたオブジェクト１０００を表す画像をモニターに表示する。なお、第２の断片１１６０には頂点Ｐ１，Ｐ２，Ｐ３，Ｐ４を有する面が含まれないため、第２の断片１１６０については、テクスチャ１０１０は使用されない。
【０１１３】
そして、ＣＰＵ  １０１は、各面上に配置される重みの総和「７４」（＝０＋１２＋２７＋１２＋１８＋５）を、第２の断片１１５０の質量とする。
【０１１４】
このように、いびつな形状を持ち、その正確な体積を計算することが容易でないオブジェクトあるいはその断片であっても、簡単に質量を見積もることができる。見積もられた質量は正確な値ではないものの、比較的良い近似値であり、且つ、その計算プロセスはとても簡単である。従って、特に迅速かつ大量の演算処理が要求されるゲームにおいて、本発明によって得られる、処理負担の軽減の効果は、大きい。
【０１１５】
なお、オブジェクト１０００の形状は、６面体に限られず、任意の多面体であってもよいし、曲面体であってもよい。また、平面と曲面を組み合わせた立体でもよい。
【０１１６】
また、オブジェクト１０００の各面は、平面でもよいし、曲面でもよい。
【０１１７】
（実施形態４）
次に、本発明のその他の実施形態について説明する。本実施形態では、オブジェクトの各面は、複数の多角形（ポリゴン）で構成される。ポリゴンで構成される表面は、複数の領域に分けられ、領域ごとに異なるテクスチャが貼り付けられる。テクスチャ内には重みが設定される。また、本実施形態では、分割によって新たに生じた面にも重みが設定される。以下詳述する。
【０１１８】
図１２は、本実施形態における質量計算処理を説明するためのフローチャートである。
【０１１９】
まず、ＣＰＵ  １０１は、外部メモリ１０６等からオブジェクトの表面に貼り付けるテクスチャをＲＡＭ  １０３に読み出す（ステップＳ１２０１）。
【０１２０】
例えば、図１３（ａ）に球形のオブジェクト１３００を、図１２（ｂ）にオブジェクト１３００の表面に貼り付けられる４枚のテクスチャ１３１１〜１３１４を、それぞれ示す。オブジェクト１３００の表面全体はポリゴンで覆われており、４つの領域１３０１〜１３０４に分けられている。領域１３０１にはテクスチャ１３１１が、領域１３０２にはテクスチャ１３１２が、領域１３０３にはテクスチャ１３１３が、領域１３０４にはテクスチャ１３１４が、それぞれ貼り付けられる。
【０１２１】
ＣＰＵ  １０１は、重みを設定する対象となるテクスチャ内の点を選択する（ステップＳ１２０２）。例えば図１３（ｂ）において、ＣＰＵ  １０１は、テクスチャ１３１１〜１３１４のそれぞれについて、重みを設定する複数の点を選択する。
【０１２２】
ＣＰＵ  １０１は、ステップＳ１２０２で設定した点に、重みを設定する（ステップＳ１２０３）。
【０１２３】
ＣＰＵ  １０１は、オブジェクト１３００が分割されているか否かを判別する（ステップＳ１２０４）。
【０１２４】
オブジェクト１３００が分割されていないと判別された場合（ステップＳ１２０４；ＮＯ）、ＣＰＵ  １０１は、オブジェクト１３００の表面にテクスチャを貼り付ける（ステップＳ１２０５）。例えば図１３（ａ），（ｂ）に示すように、ＣＰＵ  １０１は、領域１３０１にテクスチャ１３１１を、領域１３０２にテクスチャ１３１２を、領域１３０３にテクスチャ１３１３を、領域１３０４にテクスチャ１３１４を、それぞれ貼り付ける。
【０１２５】
そして、ＣＰＵ  １０１は、テクスチャ全体に設定された重みの総和をオブジェクト１３００の質量とする（ステップＳ１２０６）。すなわち、ステップＳ１２０３でテクスチャ１３１１〜１３１４内に設定された重みの総和が、分割されていないオブジェクト１３００の質量となる。
【０１２６】
一方、オブジェクト１３００が分割されていると判別された場合（ステップＳ１２０４；ＹＥＳ）、ＣＰＵ  １０１は、各領域１３０１〜１３０４に、テクスチャ１３１１〜１３１４のうちいずれか対応するものの一部分を貼り付ける（ステップＳ１２０７）。
【０１２７】
図１３（ｃ）に、オブジェクト１３００が切断面１３５０によって２つの断片１３６０，１３７０に分割された様子を示す。第１の断片１３６０の表面のうち、領域１３２１にはテクスチャ１３１１の部分領域１３３１が、領域１３２２にはテクスチャ１３１２の部分領域１３３２が、領域１３２３にはテクスチャ１３１３の部分領域１３３３が、領域１３２４にはテクスチャ１３１４の部分領域１３３４が、それぞれ貼り付けられる。同様に、第２の断片１３７０の表面に、テクスチャ１３１１〜１３１４の残りの部分が貼り付けられる。
【０１２８】
ＣＰＵ  １０１は、第１の断片１３６０の切断によって生成された切断面１３５０に、所定のテクスチャ１３１５を貼り付ける（ステップＳ１２０８）。同様に、ＣＰＵ  １０１は、第２の断片１３７０の切断によって生成された切断面１３５０に、所定のテクスチャ１３１５を貼り付ける。切断面１３５０に貼り付けられるテクスチャ１３１５は、予め外部メモリ１０６等に格納されている。
【０１２９】
さらに、ＣＰＵ  １０１は、各テクスチャに設定される重みを再配分する。ＣＰＵ  １０１は、切断面１３５０に貼り付けるテクスチャ内にも重みを設定する。仮に、切断面１３５０に貼り付けるテクスチャ内に単純に任意に重みが設定されると、オブジェクト１３００の分割前後で、全体の質量が増加してしまうことになる。そこで、ＣＰＵ  １０１は、分割前後で質量の合計が大きく変動しないように調整しつつ、新たに出来た切断面１３５０に貼り付けるテクスチャ内に重みを設定する。
【０１３０】
具体的には、ＣＰＵ  １０１は、第１の断片１３６０の領域１３２１〜１３２４に貼り付けられるテクスチャ１３１１〜１３１４の部分領域１３３１〜１３３４のそれぞれに含まれる重みの総和の比を計算する（ステップＳ１２０９）。
【０１３１】
そして、ＣＰＵ  １０１は、計算された比に応じて、各部分領域に含まれていた重みを、各部分領域と切断面１３５０とに配分する（ステップＳ１２１０）。
【０１３２】
例えば、部分領域１３３１，１３３２，１３３３，１３３４に含まれる重みの総和が、それぞれ、「１０」「２０」「２０」「１０」であったとすると、各部分領域の重みの総和の比は「１：２：２：１」である。ＣＰＵ  １０１は、この比に応じた量だけ、各部分領域から切断面１３５０へ重みを振り分ける。すなわち、切断面１３５０には総和が「６」の重みが設定され、一方、部分領域１３３１内の重みの総和は「１０」から「９」へ、部分領域１３３２内の重みの総和は「２０」から「１８」へ、部分領域１３３３内の重みの総和は「２０」から「１８」へ、部分領域１３３４内の重みの総和は「１０」から「９」へ、それぞれ減少する。
【０１３３】
なお、計算した比に応じた量の重みを振り分けるので、ＣＰＵ  １０１は、切断面１３５０に総和が「１２」（６の２倍）の重みを設定する一方、部分領域１３３１内の重みの総和を「１０」から「８」へ、部分領域１３３２内の重みの総和を「２０」から「１６」へ、部分領域１３３３内の重みの総和を「２０」から「１６」へ、部分領域１３３４内の重みの総和を「１０」から「８」へ、それぞれ減少させてもよい。いずれにしても、分割前後で重みの総量は不変である。このように、分割前後で総量が変わらないように重みを振り分ければ、分割によって全体の質量が大きくなるといった不自然な減少を回避することができる。
【０１３４】
そして、ＣＰＵ  １０１は、ステップＳ１２１０で配分された重みの総和を、断片の質量とする（ステップＳ１２１１）。
【０１３５】
ステップＳ１２１０では、総和が変化しないように重みが配分されるので、結果的にオブジェクト１３００の断片の質量は上記実施形態１のときと変わらない。しかし、本実施形態では、重みの配分を変えているので、分割によって生成された断片がさらに分割された場合には、“断片の断片”の質量は再配分された重みを用いて決定されることになり、２回目以降の分割時における断片の質量をより現実に近い値にすることができるのである。
【０１３６】
ＣＰＵ  １０１は、重みを設定する点の総数を所定値に固定すると共に、重みを設定する点の位置を所定の規則性に基づいて決定してもよいしランダムに決定してもよい。ランダムに決定する場合、仮に切断面の位置と形状が同じであっても、分割するたびに、断片の質量が変わる可能性がある。従って、分割後の断片の挙動が都度異なることになる。例えば仮想空間内のゲームにおいて、プレイヤーが刀で竹を切ると、切るたびに破片の飛び散り方が異なるようになり、ゲームの多様性が生まれ、プレイヤーを飽きさせない工夫を施すことができる。
【０１３７】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【０１３８】
上記各実施形態では、ＣＰＵ  １０１が重みを設定する点を選択することとしたが、重みが設定される点が予め決められていてもよい。例えば、図１４（ａ）に示すようにテクスチャ１４００内には、重みが設定される点の位置ＰＡ，ＰＢ，ＰＣ，ＰＤ等が予め決められており、図１４（ｂ）に示すように各点に設定される重みＧＡ，ＧＢ，ＧＣ，ＧＤが予め決められている。重みが設定される点の位置と、設定される重みと、を対応付けるデータは、外部メモリ１０６等に予め格納されている。そして、ＣＰＵ  １０１は、上述のステップＳ７０２とＳ７０３の処理の代わりに、重みが設定される点の位置と設定される重みとを外部メモリ１０６等から読み出して、テクスチャ１４００内に重みを設定する、という処理を行えばよい。図１４（ｂ）に示すような位置と重みとの対応付けは、例えば、テクスチャ１４００を作成したデザイナーが、描いた絵の内容に合わせて、予め作成しておけばよい。重みが設定される点の位置、及び、設定される重みは、いずれも本発明によって限定されず任意である。
【０１３９】
ＣＰＵ  １０１は、テクスチャ内の複数の位置に重みを設定し重みの総和に基づいてオブジェクトもしくは断片の質量を計算する代わりに、貼り付けられるテクスチャの面積に基づいてオブジェクトもしくは断片の質量を計算してもよい。例えば図５（ｂ）において、ＣＰＵ  １０１は、第１の断片５１０に貼り付けられるテクスチャの一部分５８１の面積もしくはこの面積を所定倍した値を第１の断片５１０の質量とし、第２の断片５２０に貼り付けられるテクスチャの一部分５８２の面積もしくはこの面積を所定倍した値を第２の断片５２０の質量としてもよい。ゲーム装置２００は、貼り付けられるテクスチャの部分の面積を求めるだけで、オブジェクトもしくは断片の体積の近似値を得ることができる。
【０１４０】
上記のゲーム装置２００の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【０１４１】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【０１４２】
以上説明したように、本発明によれば、分割可能なオブジェクトもしくはそのオブジェクトの断片の形状が複雑であってもより簡単に質量を求めることができるゲーム装置、ゲーム装置の制御方法、ならびに、プログラムを提供することができる。
【符号の説明】
【０１４３】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  ＤＶＤ−ＲＯＭドライブ
１０８  画像処理部
１０９  音声処理部
１１０  ＮＩＣ
２００  ゲーム装置
２０１  記憶部
２０２  設定部
２０３  計算部
３００  テクスチャ
３０１，３０２  辺
４００  オブジェクト
５００，６０１，６０２  切断面
５１０，６１０，９１０  第１の断片
５２０，６２０，９２０  第２の断片
５８１，５８２  テクスチャの一部分
６３０  第３の断片
６８１，６８２，６８３  テクスチャの一部分
８０１  移動部
８０２  表示部
１０００，１３００  オブジェクト
１０１０〜１０６０，１３１１〜１３１５，１４００  テクスチャ
１１００，１３５０  切断面
１１５０，１３６０  第１の断片
１１６０，１３７０  第２の断片
【図１】
0005301590.tif 000002
【図２】
0005301590.tif 000003
【図３】
0005301590.tif 000004
【図４】
0005301590.tif 000005
【図５】
0005301590.tif 000006
【図６】
0005301590.tif 000007
【図７】
0005301590.tif 000008
【図８】
0005301590.tif 000009
【図９】
0005301590.tif 000010
【図１０】
0005301590.tif 000011
【図１１】
0005301590.tif 000012
【図１２】
0005301590.tif 000013
【図１３】
0005301590.tif 000014
【図１４】
0005301590.tif 000015