(57)【特許請求の範囲】
【請求項１】
画像生成を行う画像生成システムであって、
対向する多角形の上面の頂点及び下面の頂点により定義される第１の多角柱オブジェクトの側面を切断する切断平面と、前記上面の頂点と該上面に対応する前記下面の頂点との間を結ぶ線と、の交点を求める手段と、
前記第１の多角柱オブジェクトを複製して第２の多角柱オブジェクトを生成する手段と、
前記第１の多角柱オブジェクトの上面の頂点の位置を前記交点の位置に設定し、前記第２の多角柱オブジェクトの下面の頂点の位置を前記交点の位置に設定する手段と、
上面の頂点の位置が前記交点の位置に設定された第１の多角柱オブジェクトと、下面の頂点の位置が前記交点の位置に設定された第２の多角柱オブジェクトとについて、所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項２】
請求項１において、
前記切断平面を、前記第１の多角柱オブジェクトのローカル座標系に座標変換する手段を含み、
前記交点は、前記ローカル座標系において求められることを特徴とする画像生成システム。
【請求項３】
請求項２において、
前記ローカル座標系は、
互いに直交する第１〜第３の座標軸を有し、
前記上面及び前記下面に第１及び第２の座標軸が設定され、前記上面及び前記下面に対して垂直な方向に第３の座標軸が設定されることを特徴とする画像生成システム。
【請求項４】
画像生成を行う画像生成システムであって、
対向する多角形の上面の頂点及び下面の頂点により定義される第１の多角柱オブジェクトの側面を切断する切断平面と、前記第１の多角柱オブジェクトとの位置関係に応じて決められる前記第１の多角柱オブジェクトのローカル座標系に、前記切断平面を座標変換する手段と、
前記ローカル座標系において、前記切断平面と、前記上面の頂点と該上面に対応する前記下面の頂点との間を結ぶ線と、の交点を求める手段と、
前記第１の多角柱オブジェクトを複製して第２の多角柱オブジェクトを生成する手段と、
前記第１の多角柱オブジェクトの上面の頂点の位置を前記交点の位置に設定し、前記第２の多角柱オブジェクトの下面の頂点の位置を前記交点の位置に設定する手段と、
上面の頂点の位置が前記交点の位置に設定された切断後の第１の多角柱オブジェクトと、下面の頂点の位置が前記交点の位置に設定された第２の多角柱オブジェクトについて、所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項５】
請求項１乃至４のいずれかにおいて、
切断前の第１の多角柱オブジェクトの側面を構成する上面及び下面の頂点間を結ぶ線を前記交点の位置が内分する比率に基づいて、前記側面にマッピングされていたテクスチャにおけるテクスチャ座標を求め、
上面の頂点の位置が前記交点の位置に設定された切断後の第１の多角柱オブジェクトの当該側面において、前記交点の位置に設定された頂点に前記テクスチャ座標をコーディネートし、
第２の多角柱オブジェクトの当該側面において、前記交点の位置に設定された頂点に前記テクスチャ座標をコーディネートし、
切断後の第１の多角柱オブジェクト及び第２の多角柱オブジェクトの当該側面に、切断前のテクスチャをマッピングすることを特徴とする画像生成システム。
【請求項６】
画像生成を行う画像生成システムであって、
始点と終点との間で順次連結される複数の頂点によって定義された第１のひも状オブジェクトを、切断平面が切断する切断位置を求める手段と、
前記第１のひも状オブジェクトを複製して第２のひも状オブジェクトを生成する手段と、
前記第１のひも状オブジェクトの終点を前記切断位置に設定し、前記第２のひも状オブジェクトの始点を前記切断位置に設定する手段と、
終点が前記切断位置に設定された切断後の第１のひも状オブジェクトと、始点が前記切断位置に設定された第２のひも状オブジェクトとについて、所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項７】
請求項６において、
前記切断位置は、
切断前の第１のひも状オブジェクトの始点と終点とを結ぶ第１の線を前記切断平面が内分する比率で、切断前の第１のひも状オブジェクトを構成する各頂点間の長さの総和を内分した頂点間の位置として求められることを特徴とする画像生成システム。
【請求項８】
請求項６又は７において、
前記複数の頂点を用いて、前記所与の視点の向きと正対するポリゴンを配置することを特徴とする画像生成システム。
【請求項９】
請求項８において、
切断前の第１のひも状オブジェクトの始点及び終点を結ぶ線を前記切断平面が内分する比率に基づいて、切断前の第１のひも状オブジェクトにマッピングされていたテクスチャにおけるテクスチャ座標を求め、
切断後の第１のひも状オブジェクトの終点に前記テクスチャ座標をコーディネートし、
第２のひも状オブジェクトの始点に前記テクスチャ座標をコーディネートし、切断後の第１のひも状オブジェクト及び第２のひも状オブジェクトに、切断前のテクスチャをマッピングすることを特徴とする画像生成システム。
【請求項１０】
画像生成を行う画像生成システムであって、
始点と終点との間で順次連結される複数の頂点によって定義されたひも状オブジェクトを複数配列させた第１〜第Ｔ（Ｔは、２以上の自然数）のひも状オブジェクトにより構成される第１の布オブジェクトを切断平面が切断する切断位置を、第１〜第Ｔのひも状オブジェクトごとに求める手段と、
前記第１の布オブジェクトを複製して第２の布オブジェクトを生成する手段と、
前記第１の布オブジェクトを構成する第Ｒ（Ｒは、１以上Ｔ以下の自然数）のひも状オブジェクトの終点を、第Ｒのひも状オブジェクトの切断位置に設定し、前記第２の布オブジェクトを構成する第Ｒのひも状オブジェクトの始点を、第Ｒのひも状オブジェクトの切断位置に設定する手段と、
各ひも状オブジェクトの終点が切断位置に設定された切断後の第１の布オブジェクトと、各ひも状オブジェクトの始点が切断位置に設定された第２の布オブジェクトとについて、所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項１１】
請求項１０において、
前記切断位置は、
切断前の第Ｒのひも状オブジェクトの始点と終点とを結ぶ第２の線を前記切断平面が内分する比率で、切断前の第Ｒのひも状オブジェクトを構成する各頂点間の長さの総和を内分した頂点間の位置として求められることを特徴とする画像生成システム。
【請求項１２】
請求項１０又は１１において、
切断前の第１の布オブジェクトを構成する第Ｒのひも状オブジェクトの始点及び終点を結ぶ線を前記切断平面が内分する比率に基づいて、切断前の第Ｒのひも状オブジェクトにマッピングされていたテクスチャにおけるテクスチャ座標を求め、
切断後の第１の布オブジェクトを構成する第Ｒのひも状オブジェクトの終点に、前記テクスチャ座標をコーディネートし、
第２の布オブジェクトを構成する第Ｒのひも状オブジェクトの始点に、前記テクスチャ座標をコーディネートし、
切断後の第１の布オブジェクト及び第２の布オブジェクトに、切断前のテクスチャをマッピングすることを特徴とする画像生成システム。
【請求項１３】
対向する多角形の上面の頂点及び下面の頂点により定義される第１の多角柱オブジェクトの側面を切断する切断平面と、前記上面の頂点と該上面に対応する前記下面の頂点との間を結ぶ線と、の交点を求める手段と、
前記第１の多角柱オブジェクトを複製して第２の多角柱オブジェクトを生成する手段と、
前記第１の多角柱オブジェクトの上面の頂点の位置を前記交点の位置に設定し、前記第２の多角柱オブジェクトの下面の頂点の位置を前記交点の位置に設定する手段と、
上面の頂点の位置が前記交点の位置に設定された第１の多角柱オブジェクトと、下面の頂点の位置が前記交点の位置に設定された第２の多角柱オブジェクトとについて、所与の視点から見える画像を生成する手段としてコンピュータに機能させることを特徴とするプログラム。
【請求項１４】
請求項１３において、
前記切断平面を、前記第１の多角柱オブジェクトのローカル座標系に座標変換する手段を含み、
前記交点は、前記ローカル座標系において求められることを特徴とするプログラム。
【請求項１５】
請求項１４において、
前記ローカル座標系は、
互いに直交する第１〜第３の座標軸を有し、
前記上面及び前記下面に第１及び第２の座標軸が設定され、前記上面及び前記下面に対して垂直な方向に第３の座標軸が設定されることを特徴とするプログラム。
【請求項１６】
対向する多角形の上面の頂点及び下面の頂点により定義される第１の多角柱オブジェクトの側面を切断する切断平面と、前記第１の多角柱オブジェクトとの位置関係に応じて決められる前記第１の多角柱オブジェクトのローカル座標系に、前記切断平面を座標変換する手段と、
前記ローカル座標系において、前記切断平面と、前記上面の頂点と該上面に対応する前記下面の頂点との間を結ぶ線と、の交点を求める手段と、
前記第１の多角柱オブジェクトを複製して第２の多角柱オブジェクトを生成する手段と、
前記第１の多角柱オブジェクトの上面の頂点の位置を前記交点の位置に設定し、前記第２の多角柱オブジェクトの下面の頂点の位置を前記交点の位置に設定する手段と、
上面の頂点の位置が前記交点の位置に設定された切断後の第１の多角柱オブジェクトと、下面の頂点の位置が前記交点の位置に設定された第２の多角柱オブジェクトについて、所与の視点から見える画像を生成する手段としてコンピュータを機能させることを特徴とするプログラム。
【請求項１７】
請求項１３乃至１６のいずれかにおいて、
切断前の第１の多角柱オブジェクトの側面を構成する上面及び下面の頂点間を結ぶ線を前記交点の位置が内分する比率に基づいて、前記側面にマッピングされていたテクスチャにおけるテクスチャ座標を求め、
上面の頂点の位置が前記交点の位置に設定された切断後の第１の多角柱オブジェクトの当該側面において、前記交点の位置に設定された頂点に前記テクスチャ座標をコーディネートし、
第２の多角柱オブジェクトの当該側面において、前記交点の位置に設定された頂点に前記テクスチャ座標をコーディネートし、
切断後の第１の多角柱オブジェクト及び第２の多角柱オブジェクトの当該側面に、切断前のテクスチャをマッピングすることを特徴とするプログラム。
【請求項１８】
始点と終点との間で順次連結される複数の頂点によって定義された第１のひも状オブジェクトを、切断平面が切断する切断位置を求める手段と、
前記第１のひも状オブジェクトを複製して第２のひも状オブジェクトを生成する手段と、
前記第１のひも状オブジェクトの終点を前記切断位置に設定し、前記第２のひも状オブジェクトの始点を前記切断位置に設定する手段と、
終点が前記切断位置に設定された切断後の第１のひも状オブジェクトと、始点が前記切断位置に設定された第２のひも状オブジェクトとについて、所与の視点から見える画像を生成する手段としてコンピュータを機能させることを特徴とするプログラム。
【請求項１９】
請求項１８において、
前記切断位置は、
切断前の第１のひも状オブジェクトの始点と終点とを結ぶ第１の線を前記切断平面が内分する比率で、切断前の第１のひも状オブジェクトを構成する各頂点間の長さの総和を内分した頂点間の位置として求められることを特徴とするプログラム。
【請求項２０】
請求項１８又は１９において、
前記複数の頂点を用いて、前記所与の視点の向きと正対するポリゴンを配置することを特徴とするプログラム。
【請求項２１】
請求項２０において、
切断前の第１のひも状オブジェクトの始点及び終点を結ぶ線を前記切断平面が内分する比率に基づいて、切断前の第１のひも状オブジェクトにマッピングされていたテクスチャにおけるテクスチャ座標を求め、
切断後の第１のひも状オブジェクトの終点に前記テクスチャ座標をコーディネートし、
第２のひも状オブジェクトの始点に前記テクスチャ座標をコーディネートし、切断後の第１のひも状オブジェクト及び第２のひも状オブジェクトに、切断前のテクスチャをマッピングすることを特徴とするプログラム。
【請求項２２】
始点と終点との間で順次連結される複数の頂点によって定義されたひも状オブジェクトを複数配列させた第１〜第Ｔ（Ｔは、２以上の自然数）のひも状オブジェクトにより構成される第１の布オブジェクトを切断平面が切断する切断位置を、第１〜第Ｔのひも状オブジェクトごとに求める手段と、
前記第１の布オブジェクトを複製して第２の布オブジェクトを生成する手段と、
前記第１の布オブジェクトを構成する第Ｒ（Ｒは、１以上Ｔ以下の自然数）のひも状オブジェクトの終点を、第Ｒのひも状オブジェクトの切断位置に設定し、前記第２の布オブジェクトを構成する第Ｒのひも状オブジェクトの始点を、第Ｒのひも状オブジェクトの切断位置に設定する手段と、
各ひも状オブジェクトの終点が切断位置に設定された切断後の第１の布オブジェクトと、各ひも状オブジェクトの始点が切断位置に設定された第２の布オブジェクトとについて、所与の視点から見える画像を生成する手段としてコンピュータを機能させることを特徴とするプログラム。
【請求項２３】
請求項２２において、
前記切断位置は、
切断前の第Ｒのひも状オブジェクトの始点と終点とを結ぶ第２の線を前記切断平面が内分する比率で、切断前の第Ｒのひも状オブジェクトを構成する各頂点間の長さの総和を内分した頂点間の位置として求められることを特徴とするプログラム。
【請求項２４】
請求項２２又は２３において、
切断前の第１の布オブジェクトを構成する第Ｒのひも状オブジェクトの始点及び終点を結ぶ線を前記切断平面が内分する比率に基づいて、切断前の第Ｒのひも状オブジェクトにマッピングされていたテクスチャにおけるテクスチャ座標を求め、
切断後の第１の布オブジェクトを構成する第Ｒのひも状オブジェクトの終点に、前記テクスチャ座標をコーディネートし、
第２の布オブジェクトを構成する第Ｒのひも状オブジェクトの始点に、前記テクスチャ座標をコーディネートし、
切断後の第１の布オブジェクト及び第２の布オブジェクトに、切断前のテクスチャをマッピングすることを特徴とするプログラム。
【請求項２５】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項１３乃至２４のいずれかのプログラムを記憶することを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。ガンゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、銃などを模して作られたガン型コントローラ（シューティングデバイス）を用いて、画面に映し出される敵キャラクタ（オブジェクト）などの標的オブジェクトをシューティングすることで、敵キャラクタとの間で攻防を繰り返すことができる３次元ゲームを楽しむ。
【０００３】
また、ガン型コントローラに限らず、プレーヤが刀や剣などの武器を操作入力部として用いて、画面上に現れる敵キャラクタと斬り合うことで３次元ゲームを楽しむことも考えることができる。この場合、プレーヤの仮想現実感を向上させるため、画面上の敵キャラクタを相手にリアルに斬り合う動作を入力することができることが望ましい。そして、プレーヤの斬り方に応じて、敵キャラクタなどの物体が切断される画像を生成できれば、より一層仮想現実感を向上させることができる。
【０００４】
このような物体の切断平面を生成する手法として、操作入力部の軌跡に応じてオブジェクトを切断する手法が考えられる。しかしながら、オブジェクトが複数のポリゴンにより構成されている場合、ポリゴンごとに切断平面が通過したか否かの判定処理を行っていたのでは、リアルタイム性が要求されるゲーム画像などを生成することは困難であるという問題がある。
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、処理負荷をかけることなく、オブジェクトに対して任意の切断平面で切断する画像を、リアルタイムで生成することができる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【０００６】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像生成を行う画像生成システムであって、対向する多角形の上面の頂点及び下面の頂点により定義される第１の多角柱オブジェクトの側面を切断する切断平面と、前記上面の頂点と該上面に対応する前記下面の頂点との間を結ぶ線と、の交点を求める手段と、前記第１の多角柱オブジェクトを複製して第２の多角柱オブジェクトを生成する手段と、前記第１の多角柱オブジェクトの上面の頂点の位置を前記交点の位置に設定し、前記第２の多角柱オブジェクトの下面の頂点の位置を前記交点の位置に設定する手段と、上面の頂点の位置が前記交点の位置に設定された第１の多角柱オブジェクトと、下面の頂点の位置が前記交点の位置に設定された第２の多角柱オブジェクトとについて、所与の視点から見える画像を生成する手段とを含むことを特徴とする。
【０００７】
また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるプログラムを記憶することを特徴とする。
【０００８】
本発明によれば、多角柱オブジェクトを、対向する多角形の上面の頂点及び下面の頂点により定義したので、この多角柱オブジェクトの側面を切断平面が切断する場合、上面の頂点とこれに対応する下面の頂点とを結ぶ線と、切断平面との交点を求め、切断前の多角柱オブジェクト（第１の多角柱オブジェクト）の上面の頂点と、この切断前の多角柱オブジェクトを複製して生成した第２の多角柱オブジェクトの下面の頂点に、求めた交点を設定するだけで、切断平面に沿って切断された２つの多角柱オブジェクトを、少ない処理負荷で生成することができる。
【０００９】
したがって、例えば任意の切断平面に沿って多角柱オブジェクトが切断される様子を表現するゲーム画像をリアルタイムに生成することができるようになる。
【００１０】
なお、切断前の第１の多角柱オブジェクトの上面の頂点と、第２の多角柱オブジェクトの下面の頂点とを、それぞれ求めた交点の位置に設定する場合に限定されるものではなく、切断前の第１の多角柱オブジェクトの下面の頂点と、第２の多角柱オブジェクトの上面の頂点を、それぞれ求めた交点の位置に設定することも可能である。
【００１１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記切断平面を、前記第１の多角柱オブジェクトのローカル座標系に座標変換する手段を含み、前記交点は、前記ローカル座標系において求められることを特徴とする。
【００１２】
ここで、ローカル座標系に座標変換される前の切断平面の座標系に限定されるものではない。第１の多角柱オブジェクトのローカル座標系では、上面及び下面の各頂点の座標が既知の状態となる。したがって、本発明によれば、切断平面をこのローカル座標系に座標変換することによって、求めるべき交点の位置を求める座標軸を限定することができ、処理負荷の軽減を図ることができる。
【００１３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記ローカル座標系は、互いに直交する第１〜第３の座標軸を有し、前記上面及び前記下面に第１及び第２の座標軸が設定され、前記上面及び前記下面に対して垂直な方向に第３の座標軸が設定されることを特徴とする。
【００１４】
本発明によれば、多角柱オブジェクトを定義する上面及び下面の頂点座標が第１及び第２の座標軸上で既知の状態となるため、求めるべき交点の位置は、第３の座標軸についてのみ求めるようにすればよいので、処理負荷の軽減を図ることができる。
【００１５】
また本発明は、画像生成を行う画像生成システムであって、対向する多角形の上面の頂点及び下面の頂点により定義される第１の多角柱オブジェクトの側面を切断する切断平面と、前記第１の多角柱オブジェクトとの位置関係に応じて決められる前記第１の多角柱オブジェクトのローカル座標系に、前記切断平面を座標変換する手段と、前記ローカル座標系において、前記切断平面と、前記上面の頂点と該上面に対応する前記下面の頂点との間を結ぶ線と、の交点を求める手段と、前記第１の多角柱オブジェクトを複製して第２の多角柱オブジェクトを生成する手段と、前記第１の多角柱オブジェクトの上面の頂点の位置を前記交点の位置に設定し、前記第２の多角柱オブジェクトの下面の頂点の位置を前記交点の位置に設定する手段と、上面の頂点の位置が前記交点の位置に設定された切断後の第１の多角柱オブジェクトと、下面の頂点の位置が前記交点の位置に設定された第２の多角柱オブジェクトについて、所与の視点から見える画像を生成する手段と、を含むことを特徴とする。
【００１６】
また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるプログラムを記憶することを特徴とする。
【００１７】
ここで、ローカル座標系に座標変換される前の切断平面の座標系に限定されるものではない。
【００１８】
本発明によれば、多角柱オブジェクトを、対向する多角形の上面の頂点及び下面の頂点により定義し、この多角柱オブジェクトと、そのの側面を切断する切断平面との位置関係に応じて決められる多角柱オブジェクトのローカル座標系に、切断平面を座標変換するようにしたので、上面の頂点とこれに対応する下面の頂点とを結ぶ線と、切断平面との交点を求め、この交点を、切断前の多角柱オブジェクト（第１の多角柱オブジェクト）の上面の頂点と、この切断前の多角柱オブジェクトを複製して生成した第２の多角柱オブジェクトの下面の頂点とに設定するだけで、切断平面に沿って切断された２つの多角柱オブジェクトを、少ない処理負荷で生成することができる。
【００１９】
したがって、例えば板オブジェクトのように、多角柱オブジェクトとして処理することができるが、その切断平面の向きが多様となる場合であっても、最適な座標系で切断平面が切断する交点をより少ない処理負荷で求めることができるようになる。そのため、例えば任意の切断平面に沿って板オブジェクトが切断される様子を表現するゲーム画像をリアルタイムに生成することができるようになる。
【００２０】
なお、切断前の第１の多角柱オブジェクトの上面の頂点と、第２の多角柱オブジェクトの下面の頂点とを、それぞれ求めた交点の位置に設定する場合に限定されるものではなく、切断前の第１の多角柱オブジェクトの下面の頂点と、第２の多角柱オブジェクトの上面の頂点を、それぞれ求めた交点の位置に設定することも可能である。
【００２１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、切断前の第１の多角柱オブジェクトの側面を構成する上面及び下面の頂点間を結ぶ線を前記交点の位置が内分する比率に基づいて、前記側面にマッピングされていたテクスチャにおけるテクスチャ座標を求め、上面の頂点の位置が前記交点の位置に設定された切断後の第１の多角柱オブジェクトの当該側面において、前記交点の位置に設定された頂点に前記テクスチャ座標をコーディネートし、第２の多角柱オブジェクトの当該側面において、前記交点の位置に設定された頂点に前記テクスチャ座標をコーディネートし、切断後の第１の多角柱オブジェクト及び第２の多角柱オブジェクトの当該側面に、切断前のテクスチャをマッピングすることを特徴とする。
【００２２】
本発明によれば、切断前の第１の多角柱オブジェクトの側面にマッピングされていたテクスチャについて、切断前の第１の多角柱オブジェクトの側面を構成する上面及び下面の頂点間を結ぶ線を交点の位置が内分する比率に基づいてテクスチャ座標を求め、これを切断後の第１の多角柱オブジェクトの上面の頂点と、第２の多角柱オブジェクトの下面の頂点とにコーディネートして、切断前のテクスチャをマッピングするようにしたので、切断平面により切断された側面のテクスチャが変形することなく、切断平面に沿ってオブジェクトが切断される様子をよりリアルに表現することができる。
【００２３】
また本発明は、画像生成を行う画像生成システムであって、始点と終点との間で順次連結される複数の頂点によって定義された第１のひも状オブジェクトを、切断平面が切断する切断位置を求める手段と、前記第１のひも状オブジェクトを複製して第２のひも状オブジェクトを生成する手段と、前記第１のひも状オブジェクトの終点を前記切断位置に設定し、前記第２のひも状オブジェクトの始点を前記切断位置に設定する手段と、終点が前記切断位置に設定された切断後の第１のひも状オブジェクトと、始点が前記切断位置に設定された第２のひも状オブジェクトとについて、所与の視点から見える画像を生成する手段とを含むことを特徴とする。
【００２４】
また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるプログラムを記憶することを特徴とする。
【００２５】
本発明によれば、ひも状オブジェクトを、始点と終点との間で順次連結される複数の頂点によって定義したので、このひも状オブジェクトを切断平面が切断する場合、切断前のひも状オブジェクト（第１のひも状オブジェクト）の終点と、この切断前のひも状オブジェクトを複製して生成した第２のひも状オブジェクトの始点の頂点とに、その切断位置を設定するだけで、切断平面に沿って切断された２つのひも状オブジェクトを、少ない処理負荷で生成することができる。
【００２６】
したがって、例えば任意の切断平面に沿ってひも状オブジェクトが切断される様子を表現するゲーム画像をリアルタイムに生成することができるようになる。
【００２７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記切断位置は、切断前の第１のひも状オブジェクトの始点と終点とを結ぶ第１の線を前記切断平面が内分する比率で、切断前の第１のひも状オブジェクトを構成する各頂点間の長さの総和を内分した頂点間の位置として求められることを特徴とする。
【００２８】
本発明によれば、切断平面がひも状オブジェクトを切断する切断位置を求める際に、ひも状オブジェクトの始点と終点とを結ぶ仮想的な第１の線を用いて、この第１の線を切断平面が内分する比率で、ひも状オブジェクトを構成する各頂点間のリンクの総和を内分する位置として求めるようにしたので、頂点間それぞれに切断平面が通過したか否かを判別する必要がなくなり、さらに少ない処理負荷で切断後の２つのオブジェクトを生成することができる。
【００２９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記複数の頂点を用いて、前記所与の視点の向きと正対するポリゴンを配置することを特徴とする。
【００３０】
本発明によれば、少ないポリゴン数でひも状オブジェクトの画像を生成することができる。
【００３１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、切断前の第１のひも状オブジェクトの始点及び終点を結ぶ線を前記切断平面が内分する比率に基づいて、切断前の第１のひも状オブジェクトにマッピングされていたテクスチャにおけるテクスチャ座標を求め、切断後の第１のひも状オブジェクトの終点に前記テクスチャ座標をコーディネートし、第２のひも状オブジェクトの始点に前記テクスチャ座標をコーディネートし、切断後の第１のひも状オブジェクト及び第２のひも状オブジェクトに、切断前のテクスチャをマッピングすることを特徴とする。
【００３２】
本発明によれば、切断前のひも状オブジェクトにマッピングされていたテクスチャについて、切断前の第１のひも状オブジェクトの始点及び終点を結ぶ線を切断平面が内分する比率に基づいてテクスチャ座標を求め、これを切断後の第１のひも状オブジェクトの終点と、第２のひも状オブジェクトの始点とにコーディネートして、切断前のテクスチャをマッピングするようにしたので、切断平面により切断されたひも状オブジェクトのテクスチャが変形することなく、切断平面に沿ってオブジェクトが切断される様子をよりリアルに表現することができる。
【００３３】
また本発明は、画像生成を行う画像生成システムであって、始点と終点との間で順次連結される複数の頂点によって定義されたひも状オブジェクトを複数配列させた第１〜第Ｔ（Ｔは、２以上の自然数）のひも状オブジェクトにより構成される第１の布オブジェクトを切断平面が切断する切断位置を、第１〜第Ｔのひも状オブジェクトごとに求める手段と、前記第１の布オブジェクトを複製して第２の布オブジェクトを生成する手段と、前記第１の布オブジェクトを構成する第Ｒ（Ｒは、１以上Ｔ以下の自然数）のひも状オブジェクトの終点を、第Ｒのひも状オブジェクトの切断位置に設定し、前記第２の布オブジェクトを構成する第Ｒのひも状オブジェクトの始点を、第Ｒのひも状オブジェクトの切断位置に設定する手段と、各ひも状オブジェクトの終点が切断位置に設定された切断後の第１の布オブジェクトと、各ひも状オブジェクトの始点が切断位置に設定された第２の布オブジェクトとについて、所与の視点から見える画像を生成する手段とを含むことを特徴とする。
【００３４】
また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるプログラムを記憶することを特徴とする。
【００３５】
本発明によれば、布オブジェクトを、始点と終点との間で順次連結される複数の頂点によって定義されたひも状オブジェクトを複数配列させた第１〜第Ｔのひも状オブジェクトにより構成するようにしたので、この布オブジェクトを切断平面が切断する場合、切断前の布オブジェクト（第１の布オブジェクト）を構成する第１〜第Ｔのひも状オブジェクトの終点と、この切断前の布オブジェクトを複製して生成した第２の布オブジェクトを構成する第１〜第Ｔのひも状オブジェクトの始点の頂点とに、各ひも状オブジェクトについて求められた切断位置を設定するだけで、切断平面に沿って切断された２つの布オブジェクトを、少ない処理負荷で生成することができる。
【００３６】
したがって、例えば任意の切断平面に沿って布オブジェクトが切断される様子を表現するゲーム画像をリアルタイムに生成することができるようになる。
【００３７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記切断位置は、切断前の第Ｒのひも状オブジェクトの始点と終点とを結ぶ第２の線を前記切断平面が内分する比率で、切断前の第Ｒのひも状オブジェクトを構成する各頂点間の長さの総和を内分した頂点間の位置として求められることを特徴とする。
【００３８】
本発明によれば、切断平面が布オブジェクトを構成する各ひも状オブジェクトを切断する切断位置を求める際に、各ひも状オブジェクトについて、その始点と終点とを結ぶ仮想的な第２の線を用いて、この第２の線を切断平面が内分する比率で、各ひも状オブジェクトを構成する各頂点間のリンクの総和を内分する位置として求めるようにしたので、布オブジェクトを構成する各ひも状オブジェクトを定具する頂点間それぞれに切断平面が通過したか否かを判別する必要がなくなり、さらに少ない処理負荷で切断後の２つのオブジェクトを生成することができる。
【００３９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、切断前の第１の布オブジェクトを構成する第Ｒのひも状オブジェクトの始点及び終点を結ぶ線を前記切断平面が内分する比率に基づいて、切断前の第Ｒのひも状オブジェクトにマッピングされていたテクスチャにおけるテクスチャ座標を求め、切断後の第１の布オブジェクトを構成する第Ｒのひも状オブジェクトの終点に、前記テクスチャ座標をコーディネートし、第２の布オブジェクトを構成する第Ｒのひも状オブジェクトの始点に、前記テクスチャ座標をコーディネートし、切断後の第１の布オブジェクト及び第２の布オブジェクトに、切断前のテクスチャをマッピングすることを特徴とする。
【００４０】
本発明によれば、切断前の布オブジェクトにマッピングされていたテクスチャについて、切断前の布オブジェクトを構成する各ひも状オブジェクトについて、その始点及び終点を結ぶ線を切断平面が内分する比率に基づいてテクスチャ座標を求め、それぞれを切断後の布オブジェクトを構成するひも状オブジェクトの終点と、第２の布オブジェクトを構成するひも状オブジェクトの始点とにコーディネートして、切断前のテクスチャをマッピングするようにしたので、切断平面により切断された布オブジェクトのテクスチャが変形することなく、切断平面に沿ってオブジェクトが切断される様子をよりリアルに表現することができる。
【００４１】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００４２】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の必須構成要件とは限らない。
【００４３】
また、以下に説明する実施形態では、プレーヤによって操作される刀型コントローラ（広義には、操作入力部、被検出物）の位置等を検出して、画面上に現れる敵キャラクタと斬り合う刀ゲームに適用した場合を例にとり説明するが、本発明はこれに限定されず、種々の画像生成システムに適用することができる。
【００４４】
１．  構成
図１に、本実施形態の画像生成システムを業務用のゲームシステムに適用した場合の外観斜視図を模式的に示す。
【００４５】
このゲームシステム１０では、本実施形態における画像生成システムにより生成された画像が、筐体２０に収められた表示装置（表示部）の画面３０に表示される。画面３０は、所与のエリア内で操作入力部としての刀型コントローラ４０を操作するプレーヤが注視できるように配置されている。以下では、画面３０の横方向をｘ軸、画面３０の縦方向をｙ軸、画面３０に対して垂直な画面の奥行き方向をｚ軸とする。
【００４６】
ゲームシステム１０は、プレーヤが操作する刀型コントローラ４０を用いて、画面３０に映し出される敵キャラクタ（オブジェクト）と斬り合うゲームを実現する。このゲームシステム１０は、仮想現実感を向上させるため、プレーヤが操作する（例えば、振り回す）刀型コントローラ４０の操作状況をそのまま反映させて、画面３０に映し出される敵キャラクタを斬りつけたり、プレーヤに対して斬りつけようとする敵キャラクタに対して防御を行ったりして、攻防の駆け引きを楽しむことができるようになっている。
【００４７】
そのため、ゲームシステム１０では、所与のエリア内でプレーヤによって操作される刀型コントローラ４０の画面３０での位置を検出し、その検出された位置に基づいてゲームのエフェクト効果（エフェクト画像（広義には、画像）、効果音（広義には、音）、振動、風、光などの各種エフェクト）を与えたり、プレーヤが操作するキャラクタの攻撃力や防御力などの能力値（広義には、エフェクト効果（画像、音、振動など）を変化させるためのパラメータ）を変化させるといったゲーム応答を変化させる処理を行う。
【００４８】
そこで、ゲームシステム１０は、２つのタブレットセンサ（第１及び第２のセンサ）により形成される互いに平行な２つのセンサ面（広義には、エリア）を用いて、プレーヤが操作する刀型コントローラ４０の位置や向き等を検出する検出装置（入力装置）を備えている。
【００４９】
この検出装置は、第１及び第２のセンサ５０、６０を含む。第１のセンサ５０は、１組のセンサにより第１のセンサ面５２を形成する。第１のセンサ面５２の各位置は、画面３０の各位置に１対１で対応付けられている。第２のセンサ６０は、１組のセンサにより第２のセンサ面６２を形成する。第２のセンサ面６２の各位置は、画面３０の各位置に１対１で対応付けられている。第１及び第２のセンサ面６２は、所与の間隔ｄを置いて形成される。
【００５０】
第１のセンサ５０は、プレーヤによって操作される刀型コントローラ（広義には、被検出物）４０が第１のセンサ面５２を横切る第１の位置を特定することができる。また、第２のセンサ６０は、この刀型コントローラ（広義には、被検出物）４０が第２のセンサ面６２を横切る第２の位置を特定することができる。
【００５１】
本実施形態における画像生成システムは、第１及び第２のセンサ５０、６０によって特定された刀型コントローラ４０の第１及び第２のセンサ面５２、６２における第１及び第２の位置（或いは、第１及び第２の位置を特定するための情報。広義には、検出装置からの入力情報）に基づいて、第１及び第２のセンサ面における刀型コントローラの位置に対応する画面３０上での位置を特定する。そして、この特定された画面３０上での位置に基づき、プレーヤに種々のエフェクト効果を与える処理等を行う。
【００５２】
こうすることで、本実施形態における画像生成システムでは、プレーヤが刀型コントローラ４０を振った位置（画面３０上での位置）や、振る速さ（広義には、単位時間当たりの位置の変化量）、振り幅（広義には、位置の変化量の絶対値）、振る向き（広義には、位置が変化する向き）或いは第１及び第２のセンサ面における刀型コントローラ４０の画面方向に対する向き等に応じて、刀（剣）を用いたゲームとしてプレーヤが仮想現実感を向上させるようなエフェクト効果を適切に与えることができるようになる。
【００５３】
このように、第１及び第２のセンサ５０、６０により第１及び第２のセンサ面５２、６２を横切る第１及び第２の位置を、画面３０上での位置に対応付けることができるため、プレーヤによって操作される刀型コントローラ４０の各部にセンサを設ける必要がなくなる。したがって、プレーヤが操作する操作入力部としては、刀型コントローラに限定されるものではなく、センサ面を横切らせることができる物体であれば何でもよく、例えばプレーヤの身体の一部（プレーヤの拳、足、頭など）であってもよい。
【００５４】
すなわち、このようなセンサを用いることで、操作入力部の低コスト化が可能となるばかりでなく、操作入力部からの検出情報を筐体２０に伝送するための配線を不要とすることができる。さらに、センサ面で特定した位置と画面３０上での位置を精度よく特定することができる。
【００５５】
図２に、本実施形態における画像生成システムのブロック図の一例を示す。
【００５６】
なお図２において、本実施形態は少なくとも処理部１００を含めばよく（或いは処理部１００と入力情報受付部１６２と記憶部１７０、或いは処理部１００と入力情報受付部１６２と記憶部１７０と情報記憶媒体１８０を含めばよく）、それ以外のブロック（例えば、操作部１６０、表示部１９０、音出力部１９２、携帯型情報記憶装置１９４、通信部１９６）については、任意の構成要素とすることができる。
【００５７】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００５８】
操作部１６０は、プレーヤがゲームの設定などを行う操作データを入力するためのものであり、その機能は、レバー、ボタン、筐体などのハードウェアにより実現できる。
【００５９】
入力情報受付部１６２は、プレーヤが操作する操作部１６０とは別の刀型コントローラ等の操作入力部の操作状況を検出するための検出装置からの入力情報を受け付けるものであり、その機能はＡＳＩＣなどのハードウェアや、所与のプログラムにより実現できる。例えば図１に示す検出装置が接続される場合、入力情報として第１及び第２のセンサ５０、６０によって検出された第１及び第２のセンサ面５２、６２における第１及び第２の位置の座標（或いは、第１及び第２の位置の座標を特定するための情報）を受け付ける。
【００６０】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００６１】
情報記憶媒体（コンピュータにより読み取り可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。すなわち、情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００６２】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本実施形態の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本実施形態の処理を指示するたえの情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００６３】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００６４】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００６５】
携帯型情報記憶装置１９４は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００６６】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００６７】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバ）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバ）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００６８】
処理部（プロセッサ）１００は、操作部１６０又は入力情報受付部１６２からの操作データ又は入力情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０内の主記憶部をワーク領域として各種の処理を行う。
【００６９】
ここで、処理部１００が行うゲーム処理としては、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、プレーヤが操作するキャラクタに付与された攻撃力や防御力といった各種パラメータ（広義には、エフェクト画像を変化させるための各種パラメータ）をゲームの進行に応じて更新する処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回りの回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒット判定処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバ処理などを考えることができる。
【００７０】
処理部１００は、位置演算部１１０、パラメータ設定部１３０、オブジェクト生成部１３２、画像生成部１４０、音生成部１５０を含む。なお、処理部１００に、これらの全ての機能ブロック１１０〜１５０を含ませる必要はなく、一部の機能ブロックを省略する構成にしてもよい。
【００７１】
ここで位置演算部１１０は、入力情報受付部１６２によって受け付けられた検出装置からの入力情報に基づいて、表示部１９０の画面上での位置等を求める処理を行う。より具体的には、位置演算部１１０は、検出装置で検出された被検出物（図１では、刀型コントローラ４０）の第１及び第２のセンサ面における第１及び第２の位置の座標に基づいて、第１及び第２のセンサ面と対応付けられている表示部１９０の画面上での位置を求める。さらに、位置演算部１１０は、求められた画面上での位置の単位時間当たりの変化量（絶対値）、画面上での位置の変化量（絶対値）、画面上での位置の変化する向き、第１及び第２のセンサ面における被検出物の画面方向に対する向きを求める。
【００７２】
パラメータ設定部１３０は、位置演算部１１０によって求められた画面３０上での位置等に基づいて行われるゲーム処理の結果を反映して、エフェクト画像を変化させるためのパラメータを更新する処理を行う。より具体的には、パラメータ設定部１３０は、例えばプレーヤが操作するキャラクタに付与される体力値や攻撃力、防御力といったパラメータを更新し、その結果としてエフェクト画像や効果音を変化させる。
【００７３】
オブジェクト生成部１３２は、位置演算部１１０によって求められた画面３０上での位置に基づいて、オブジェクトを生成する処理を行う。より具体的には、オブジェクト生成部１３２は、プレーヤが斬る動作を行って画面３０に表示されるオブジェクトを切断する処理を行う場合に、切断前のオブジェクトから、切断後の２つのオブジェクトを生成する処理を行う。そのため、本実施形態では、切断対象のオブジェクトを定義するデータ構造を工夫し、少ない処理負荷で切断後の２つのオブジェクトを生成することができるようになっている。その際、オブジェクト生成部１３２は、切断後の２つのオブジェクトに対して、切断されたイメージが効果的になるようなテクスチャのマッピングを行う。
【００７４】
このようなオブジェクト生成部１３２は、切断位置演算部１３４、頂点補正部１３６を含む。
【００７５】
切断位置演算部１３４は、プレーヤが刀型コントローラ４０により入力した刀の軌跡に基づいて、切断対象のオブジェクトの切断位置を求める。より具体的には、刀の軌跡は、位置演算部１１０によって求められた画面３０上での位置の軌跡として特定することができるため、刀の軌跡から切断平面を求めることができるようになっている。そこで、切断位置演算部１３４は、求めた切断平面と、切断対象のオブジェクトとの交点を切断位置として求める。
【００７６】
なお、上述した切断平面は、プレーヤが操作する刀型コントローラ４０の画面３０に対する向きを考慮して特定することも可能である。
【００７７】
切断位置演算部１３４は、オブジェクト空間において切断位置を求めることは処理負荷の増大となる場合に、切断平面を、オブジェクト基準のローカル座標系（切断対象のオブジェクトのローカル座標系）に座標変換し、このローカル座標系で切断位置を求めることで処理負荷の軽減を図ることができる。
【００７８】
頂点補正部１３６は、１又は複数の頂点座標により定義されるオブジェクトに対して、切断位置演算部１３４により求められた切断位置を反映させることで、切断後のオブジェクトの頂点座標を設定（補正）する処理行う。
【００７９】
こうすることで、例えば、対向する多角形の上面の頂点と下面の頂点とにより定義される多角柱オブジェクトにおいて、その側面が切断された場合、多角柱オブジェクトを複製して２つのオブジェクトを生成し、一方の多角柱オブジェクトは上面として定義された頂点座標を切断位置の座標に設定し、他方の多角柱オブジェクトは下面として定義された頂点情報を切断位置の座標に設定する処理が可能となる。これにより、オブジェクトを構成するポリゴンごとに切断の有無を判定する必要がなくなり、少ない処理負荷でプレーヤの動作を反映させた任意の切断方向で切断されたオブジェクトの画像を生成することができるようになる。
【００８０】
画像生成部１４０は、ゲーム処理結果等に基づいて、オブジェクト空間内において所与の視点（仮想カメラ）から見える画像を生成し、表示部１９０に出力する。
【００８１】
より具体的には、画像生成部１４０では、まず座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（頂点に付与される位置座標、テクスチャ座標、色（輝度）データ、法線ベクトル或いはα値等を含むデータ）が作成される。
【００８２】
そして、画像生成部１４０は、この描画データに基づいて、ジオメトリ処理後のオブジェクト（１又は複数のプリミティブ面）の画像を、記憶部１７０内の描画領域（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できる領域）に描画する。この際、画像生成部１４０は、テクスチャをオブジェクトにマッピング処理等も行う。
【００８３】
画像生成部１４０は、さらに位置演算部１１０によって求められた第１及び第２のセンサ面における被検出物の位置に対応する画面３０上での位置等に基づいて、エフェクトとしての画像を生成する処理を行う。すなわち、より効果的なエフェクト画像を生成して画面３０に表示させることにより、操作入力部としての刀型コントローラ４０を駆使して画面３０に映し出される敵キャラクタと攻防を繰り返すプレーヤの仮想現実感を向上させる。さらに、画像生成部１４０は、オブジェクト生成部１３２によって生成された切断後の２つのオブジェクトの画像を生成する処理を行う。
【００８４】
音生成部１５０は、ゲーム処理結果等に基づいて、各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【００８５】
本実施形態における音生成部１５０は、さらに位置演算部１１０によって求められた画面３０上での位置等に基づいて、エフェクトとしての音を生成する処理を行う。すなわち、より効果的なエフェクト音を生成して出力させることにより、操作入力部としての刀型コントローラ４０を駆使して画面３０に映し出される敵キャラクタと攻防を繰り返すプレーヤの仮想現実感を向上させる。
【００８６】
なお、本実施形態の画像生成システムを適用したゲームシステムについては、１人のみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００８７】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００８８】
２．  検出装置
本実施形態における画像生成システムは、図１に示した検出装置により形成されたセンサ面における操作入力部（被検出物）の位置から、表示部の画面上での位置を求め、その位置又はその位置から求められる位置の変化に基づいて、画像生成を行う。さらに、プレーヤが操作する操作入力部を介して入力された画面上での位置の軌跡により特定される切断平面に基づいて、画面上に表示される物体を切断し、切断後の２つの物体の画像を生成する。
【００８９】
そのため、まず、画像生成システムにおいて、プレーヤによって操作される操作入力部の位置等を検出する原理について説明する。
【００９０】
２．１  操作入力部の位置の検出
本実施形態では、画像生成システムが生成する画像を表示する画面上の各位置と、上述した検出装置により形成されるセンサ面上の各位置とを１対１に対応付けている。したがって、操作入力部がセンサ面上を横切る位置が検出できれば、操作入力部の画面上での位置を容易に特定することができる。
【００９１】
図３（Ａ）、（Ｂ）に、上述した検出装置により形成されるセンサ面における操作入力部の位置の検出原理について説明するための図を示す。
【００９２】
ここでは、第１のセンサ５０による第１の位置の検出原理ついてのみ説明するが、第２のセンサ６０による第２の位置の検出原理についても同様である。
【００９３】
第１のセンサ５０は、図３（Ａ）に示すように、第１のセンサ面形成枠２００内に、２次元の第１のセンサ面５２を形成する。第１のセンサ面形成枠２００の第１の辺ＳＤ１の両角部には、１組のセンサＳ１、Ｓ２が設けられている。
【００９４】
センサＳ１は、発光部と受光部とを有している。発光部は、角度θが０度〜９０度の間で赤外線を出力し、その戻り光を受光部で受光するようになっている。
そのため、第１のセンサ面形成枠２００の各辺ＳＤ１〜ＳＤ４には、反射板を配置し、センサの発光部からの赤外線を受光部に反射させるようにしている。
【００９５】
センサＳ２も、センサＳ１と同様に発光部と受光部とを有し、角度θが０度〜９０度の間で自ら発光した赤外線の戻り光を受光する。
【００９６】
このようなセンサＳ１、Ｓ２は、角度θが０度となる方向が、互いに逆方向になるように設けられている。こうすることで、センサＳ１、Ｓ２により２次元平面の第１のセンサ面５２が第１のセンサ面形成枠２００内に形成される。
【００９７】
センサＳ１によって角度θが０度〜９０度の間で受光された結果は、第１のセンサ５０において結像ＩＭ１として得られる。センサＳ２によって角度θが０度〜９０度の間で受光された結果は、第１のセンサ５０において結像ＩＭ２として得られる。
【００９８】
結像ＩＭ１、ＩＭ２では、プレーヤによって操作される操作入力部が被検出物として第１のセンサ面５２を横切ると、被検出物により発光した赤外線が遮られない部分は各辺に設けられた反射板により反射して受光部で受光されるが、被検出物により発光した赤外線が遮られる部分は各辺に設けられた反射板により反射されることがない。したがって、結像ＩＭ１、ＩＭ２では、被検出物の部分のみが影となって表現される。すなわち、結像ＩＭ１、ＩＭ２において、影となった部分を、角度θ１、θ２として判別することができる。
【００９９】
なお、第１のセンサ面形成枠２００の各辺に反射板を設けずに、操作入力部の方に反射板を設けるようにしてもよい。この場合、結像ＩＭ１、ＩＭ２では、被検出物として操作入力部が第１のセンサ面５２を横切ると、被検出物に遮られない部分が影となって表現されるので、結像ＩＭ１、ＩＭ２において、影とならない部分を、角度θ１、θ２として判別することができる。
【０１００】
センサＳ１、Ｓ２の位置が固定されているため、角度θ１、θ２から操作入力部が第１のセンサ面５２を横切る位置をＰ（ｘ，ｙ）を特定することができる。
【０１０１】
ここで、図３（Ｂ）に示すように第１のセンサ面形成枠２００の第１の辺ＳＤ１の中点を原点Ｏ（０，０）とし、第１の辺ＳＤ１の長さを２×Ｌとし、センサＳ１、Ｓ２の座標をそれぞれ（−Ｌ，０）、（Ｌ，０）とする。この場合、Ｐの座標（ｘ，ｙ）は（１）式、（２）式より求めることができる。
【０１０２】
ｔａｎθ１＝ｙ／（ｘ＋Ｌ）  ・・・（１）
ｔａｎθ２＝ｙ／（Ｌ−ｘ）  ・・・（２）
以上より、操作入力部が第１のセンサ面５２を横切る位置Ｐの座標を特定することができる。同様に、操作入力部が第２のセンサ面６２を横切る位置も特定することができる。
【０１０３】
したがって、第１のセンサ面形成枠２００内に形成される第１のセンサ面５２の各位置と、本実施形態において生成される画像が表示される画面の各位置とを１対１に対応付けておくことで、本実施形態における画像生成システムは操作入力部が第１のセンサ面５２を横切る位置に対応した画面上での位置を容易に特定することができる。
【０１０４】
なお、本実施形態では、第１及び第２のセンサ５０、６０により、第１及び第２のセンサ面５２、６２における第１及び第２の位置を特定し、その位置を入力情報として画像生成システムに供給するものとして説明したが、これに限定されるものではない。例えば、第１及び第２のセンサ５０、６０における結像ＩＭ１、ＩＭ２から求められる角度θ１、θ２を入力情報として画像生成システムに供給し、画像生成システムにおいて、上述したように第１及び第２のセンサ面５２、６２における位置を求めた後、画面上での位置を特定するようにしてもよい。
【０１０５】
また、操作入力部の画面上での位置の特定は、上述した１つのセンサ面のみで可能となるため、第１及び第２のセンサ面５２、６２のいずれかの検出された位置を代表値として用いることができる。本実施形態では、第１のセンサ面５２における位置を代表値として用いる。
【０１０６】
２．２  操作入力部が移動する速さの検出
図４に、本実施形態において、上述した検出装置により形成されるセンサ面における操作入力部が移動する速さの検出原理について説明するための図を示す。
【０１０７】
本実施形態では、リアルタイムに画像を生成し、例えば所与のフレーム周期（例えば、１／６０秒、１／３０秒）で画像を生成する。したがって、このフレーム周期を単位時間とすることで、所与のフレームｆ１において求められた第１のセンサ面５２における位置Ｐf1（ｘ１，ｙ１）と、次のフレームｆ２（＝ｆ１＋１）において求められた第１のセンサ面５２におけるＰf2（ｘ２，ｙ２）の変化量を求めることで、第１のセンサ面５２における単位時間当たりの変化量を求めることができる。
【０１０８】
この単位時間当たりの変化量を、操作入力部が移動する速さ（例えば、刀型コントローラの振る速さ）とすることができる。
【０１０９】
また、第１のセンサ面５２における位置Ｐf1（ｘ１，ｙ１）から、次のフレームｆ２（＝ｆ１＋１）において求められた第１のセンサ面５２におけるＰf2（ｘ２，ｙ２）の変化する向きを求めることで、操作入力部が移動する向き（例えば、刀型コントローラの振る向き）とすることができる。
【０１１０】
さらに、第１のセンサ面５２における位置Ｐf1（ｘ１，ｙ１）から、次のフレーム（ｆ１＋１）において求められた第１のセンサ面５２におけるＰf2（ｘ２，ｙ２）の変化する量の絶対値を求めることで、操作入力部の移動距離（例えば、刀型コントローラの振り幅）とすることができる。
【０１１１】
また、操作入力部の移動する速さ、向き及び距離は、上述した１つのセンサ面のみで可能となるため、第１及び第２のセンサ面５２、６２のいずれかのみを用いて求めるようにしてもよい。第１及び第２のセンサ面５２、６２を用いる場合は、いずれかのセンサ面で求められた値を代表値として用いることができる。本実施形態では、第１のセンサ面５２における値を代表値として用いる。
【０１１２】
２．３  操作入力部の画面に対する向きの検出
図５（Ａ）、（Ｂ）に、上述した検出装置による操作入力部の画面に対する向きの検出原理について説明するための図を示す。
【０１１３】
図５（Ａ）に示すように、検出装置の２つのタブレットセンサにより、間隔ｄをおいて第１及び第２のセンサ面５２、６２が形成される。ここで、プレーヤによって操作される操作入力部が、第１のセンサ面５２を横切る位置をＰS1、第２のセンサ面６２を横切る位置をＰS2とする。
【０１１４】
このとき、操作入力部の画面に対する向きは、第１のセンサ面５２を横切る位置をＰS1と第２のセンサ面６２を横切る位置をＰS2とを結ぶ線が、第１又は第２のセンサ面５２、６２となす角となる。
【０１１５】
すなわち、第１のセンサ面５２を横切る位置ＰS1（ｘｓ１，ｙｓ１）、第２のセンサ面６２を横切る位置ＰS2（ｘｓ２，ｙｓ２）とすると、図５（Ｂ）に示すように、操作入力部の画面に対する向きφのｘ成分をφｘ、ｙ成分をφｙは、次の（３）式、（４）式により求められる。
【０１１６】
ｔａｎφｘ＝（ｘｓ１−ｘｓ２）／ｄ      ・・・（３）
ｔａｎφｙ＝（ｙｓ１−ｙｓ２）／ｄ      ・・・（４）
このように、センサ面における操作入力部が横切る位置が特定できれば、第１及び第２のセンサ面における位置から、操作入力部の画面に対する向きを容易に求めることができるようになる。
【０１１７】
３．  本実施形態の特徴
このような検出装置からの入力情報に基づいて、プレーヤによって操作される操作入力部の画面上での位置等を特定することができる画像生成システムでは、オブジェクトを定義するデータ構造を工夫することで、その軌跡によって特定される切断平面で切断されたオブジェクトの画像を少ない処理で生成することができ、より一層の仮想現実感を向上させることができる。
【０１１８】
以下では、オブジェクト空間内をプレーヤが移動するゲームにおいて、プレーヤが一人称視点位置から見た画像が表示される画面を見ながら、画面上に現れる敵キャラクタ（オブジェクト）やその他の物体（オブジェクト）を操作入力部としての刀型コントローラを振り回して斬っていくゲームを考える。ここで、一人称視点とは、プレーヤが操作するキャラクタ自身の目の位置に、視点位置および視線方向を設定したものをいう。ちなみに、キャラクタに対し相対的に固定された位置（キャラクタを含めた景色を第３者的に見える位置）に視点位置および視線方向を設定したものを三人称視点という。
【０１１９】
また、以下では、切断対象のオブジェクトとして、棒オブジェクト（広義には、多角柱オブジェクト）、板オブジェクト、ひも状オブジェクト及び布オブジェクトについて説明するが、これらに限定されるものではなく、種々の形態のオブジェクトに適用することができる。
【０１２０】
３．１  棒オブジェクト（多角柱オブジェクト）
棒オブジェクト（広義には、多角柱オブジェクト）は、例えば木や竹、敵キャラクタが所持している棒状の武器などを表現することができる。以下では、理解を容易にするために、棒状オブジェクトとして６角柱について説明するが、これ以外の多角柱オブジェクトでも原理的には同じである。
【０１２１】
図６に、棒オブジェクトとして６角柱オブジェクトを切断平面に沿って切断した場合における切断後の２つのオブジェクトの生成原理を説明するための図を示す。
【０１２２】
本実施形態では、６角柱オブジェクトＯＢＪ１を、例えば対向する６角形の上面ＵＳと下面ＤＳの各頂点ＵＰ１〜ＵＰ６、ＤＰ１〜ＤＰ６で定義する。これにより、６角柱オブジェクトＯＢＪ１の６つの側面を、上面ＵＳ及び下面ＤＳの対応する頂点で特定することができ、例えば６角柱オブジェクトＯＢＪ１の１つの側面は頂点ＵＰ１、ＵＰ２、ＤＰ２、ＤＰ１で特定される。
【０１２３】
切断平面ＳＳは、操作入力部の画面上での位置の軌跡を含む画面奥行き方向にできたワールド座標系若しくはカメラ座標系における平面として求めることができる。この場合、代表点Ａの座標と法線ベクトルｎとを求め、これらのパラメータで切断平面ＳＳを一意に定義することもできる。
【０１２４】
６角柱オブジェクトＯＢＪ１の側面を切断平面ＳＳが切断する位置は、上面の各頂点と、これに対応する下面の各頂点を結ぶ線と、切断平面ＳＳとの交点Ｐとして求めることができる。
【０１２５】
本実施形態では、ワールド座標系若しくはカメラ座標系で交点ＰのＸ、Ｙ、Ｚ座標を求めると処理負荷が増大するため、切断平面ＳＳをオブジェクト基準のローカル座標系に変換するようにしている。すなわち、切断平面ＳＳを、６角柱オブジェクトＯＢＪ１が定義されるローカル座標系に変換し、このローカル座標系で交点Ｐを求める。こうすることで、ローカル座標系の１軸の座標のみを求めればよいことになる。特に、ワールド座標系若しくはカメラ座標系で切断平面ＳＳと６角柱オブジェクトＯＢＪ１とのヒット判定を行う場合を考慮すると、処理負荷を大幅に軽減することができる。
【０１２６】
オブジェクト基準のローカル座標系では、例えば６角柱オブジェクトの高さ方向をｙ軸、上面及び下面がｘｚ座標系で定義され、座標変換後の切断平面ＳＳの代表点Ａ（ａｘ，ａｙ，ａｚ）、法線ベクトルｎ（ｎｘ，ｎｙ，ｎｚ）とする。交点ＰＰ（ｘ，ｙ，ｚ）の各座標位置は、点ＰＰのｘ座標（第１の座標軸）、ｚ座標（第２の座標軸）が既知であるため、次の（５）式でｙ座標（第３の座標軸）を求めればよいことになる。
【０１２７】
ｙ＝ａｙ＋（ａｘ−ｘ）（ｎｘ／ｎｙ）＋（ａｚ−ｚ）（ｎｚ／ｎｙ）
・・・（５）
この結果、上面若しくは下面の頂点数だけ、切断平面ＳＳとの交点Ｐ１〜Ｐ６が求められる。
【０１２８】
次に、切断前の６角柱オブジェクトＯＢＪ１（広義には、第１の多角柱オブジェクト）を複製して、６角柱オブジェクトＯＢＪ１と６角柱オブジェクトＯＢＪ２（広義には、第２の多角柱オブジェクト）を用意する。
【０１２９】
そして、切断後のオブジェクトを生成するために、６角柱オブジェクトＯＢＪ１の上面を定義する頂点座標を、（５）式で求められた交点Ｐ１〜Ｐ６に設定する。これにより、新たに上面ＵＳ´が定義される。
【０１３０】
また、６角柱オブジェクトＯＢＪ２の下面を定義する頂点座標を、（５）式で求められた交点Ｐ１〜Ｐ６に設定する。これにより、新たに下面ＤＳ´が定義される。
【０１３１】
以上のように、上面及び下面の頂点により定義される多角柱オブジェクトの側面を任意の切断平面が切断した場合でも、その切断位置に応じて、切断後の２つの多角柱オブジェクトを、少ない処理負荷で生成することができる。
【０１３２】
３．１．１  側面のテクスチャ
ところで、切断前の６角柱オブジェクトＯＢＪ１にマッピングされていたテクスチャを、切断後の６角柱オブジェクトＯＢＪ１、ＯＢＪ２にそのままマッピングした場合、テクスチャが変形してしまう。
【０１３３】
そこで、以下のように、切断後のオブジェクトの各頂点にコーディネート（ｃｏｒｄｉｎａｔｅ）するテクスチャ座標を設定することで、テクスチャが変形することなく、より一層リアルな切断画像を表現することができる。
【０１３４】
図７に、６角柱オブジェクトＯＢＪ１、ＯＢＪ２の側面にマッピングされるテクスチャのテクスチャ座標の一例を示す。
【０１３５】
ここで、点ＵＰ１〜ＵＰ６は、６角柱オブジェクトＯＢＪ２の上面ＵＳの各頂点に対応する。点ＤＰ１〜ＤＰ６は、６角柱オブジェクトＯＢＪ１の下面ＤＳの各頂点に対応する。点Ｐ１〜Ｐ６は、切断平面ＳＳによる切片であり、６角柱オブジェクトＯＢＪ１の上面ＵＳ´及び６角柱オブジェクトＯＢＪ２の下面ＤＳ´の各頂点に対応する。
【０１３６】
例えば、点ＵＰ１には、（ｕ，ｖ）＝（０，１．００）のテクスチャ座標がコーディネートされる。点ＤＰ１には、（ｕ，ｖ）＝（１．００，０）のテクスチャ座標がコーディネートされる。
【０１３７】
本実施形態では、点Ｐｋ（ｋ＝１〜６、ｋは自然数）に、点ＵＰｋと点ＤＰｋとを結ぶ線を内分するテクスチャ座標をコーディネートする。
【０１３８】
このように、上面及び下面の対応する頂点間を結ぶ線を、切断平面ＳＳが内分する比率に応じて、テクスチャ座標を変更することにより、切断前のテクスチャを、切断後の６角柱オブジェクトＯＢＪ１、ＯＢＪ２にマッピングしても、テクスチャが変形することがなくなる。
【０１３９】
３．１．２  切断後のオブジェクトの切断面のテクスチャ
これに対して、竹のようにどこを斬っても切断面が同じものを表現する場合には、切断後の上面及び下面にマッピングするテクスチャ座標は変更しない。
【０１４０】
図８に、６角柱オブジェクトＯＢＪ１、ＯＢＪ２の上面及び下面にマッピングされるテクスチャのテクスチャ座標の一例を示す。
【０１４１】
このように、切断後の６角柱オブジェクトＯＢＪ１の上面ＵＳ´若しくは６角柱オブジェクトＯＢＪ２の下面ＤＳ´の各頂点には、切断前の６角柱オブジェクトＯＢＪ１の上面及び下面にマッピングされていたテクスチャのテクスチャ座標をそのままコーディネートする。したがって、切断前のテクスチャがそのままマッピングされることになる。
【０１４２】
この場合、切断平面ＳＳが上面及び下面と平行ではない場合、切断後のオブジェクトの切断面の画像は切り口にあわせて変形することになる。
【０１４３】
こうして、図９に示すように、切断の前後で、側面にマッピングされたテクスチャの変形を防止するとともに、切断面の画像をより少ない処理負荷で生成することができるようになる。
【０１４４】
３．１．３  本実施形態の処理例
次に、本実施形態において、切断平面に応じて棒オブジェクト（Ｎ角柱オブジェクト、Ｎは３以上の自然数）を切断する処理について、より詳細に説明する。
【０１４５】
図１０に、本実施形態における棒オブジェクト（多角柱オブジェクト）を定義する構造体の構成の一例について説明するための図を示す。
【０１４６】
棒オブジェクトの構造体２１０は、棒オブジェクトの基準点の位置２１２、基準点の向き２１４、基準点の速度２１６、上面及び下面の各頂点座標群２２０、テクスチャ座標２２２を含む。各頂点座標群２２０は、オブジェクト座標系（ローカル座標系）の下面のｉ番目（Ｎ角柱オブジェクトの場合、ｉは１以上Ｎ以下の自然数）の頂点のｙ座標としてｙｍｉｎ（ｉ）、オブジェクト座標系（ローカル座標系）の上面のｉ番目の頂点のｙ座標としてｙｍａｘ（ｉ）を含む。
【０１４７】
このようなデータ構造の棒オブジェクトＭについては、以下のようにして切断後のオブジェクトを生成することができる。
【０１４８】
図１１、図１２及び図１３に、本実施形態における棒オブジェクトＭを切断した画像を生成する処理の一例を示すフローチャートを示す。
【０１４９】
まず、切断前の棒オブジェクトＭの初期化（ステップＳ１０）をした後、オブジェクト空間において仮想カメラの位置及び向きを設定するとともに、上述した検出装置からの入力情報を読み込む（ステップＳ１１）。
【０１５０】
次に、プレーヤによって操作され、カメラ座標系で画面上に表示される刀が、棒オブジェクトＭに届く範囲にあるか否かの判定を行うために、まず棒オブジェクトＭの基準点をカメラ座標系に変換し、そのＺ座標を求める（ステップＳ１２）。
【０１５１】
続いて、ステップＳ１２で求められたＺ座標を用いて、プレーヤによって画面上での位置が移動させられる刀の届く範囲として設定された範囲に、棒オブジェクトＭがあるか否かを判別する（ステップＳ１３）。ここでは、図１４に示すように、プレーヤが操作する刀が届く範囲として、カメラ座標系のＺ座標の範囲が０より大きくＺ０より小さい範囲であるものとする。
【０１５２】
ステップＳ１３で、棒オブジェクトＭの基準点２５０のカメラ座標系におけるＺ座標が、０より大きくＺ０より小さいと判定されたとき（ステップＳ１３：Ｙ）、棒オブジェクトＭが刀の届く範囲にあると判断し、棒オブジェクトＭの切断処理を行う（ステップＳ１４）。この切断処理では、棒オブジェクトＭと刀とのヒット判定も行われる。
【０１５３】
そして、切断処理後の棒オブジェクト（ヒットミス判定後の棒オブジェクト、又はヒット判定後に切断処理された２つの棒オブジェクト）、或いはステップＳ１３で刀が届く範囲にないと判定されたとき（ステップＳ１３：Ｎ）の棒オブジェクトＭについて、移動処理を行う（ステップＳ１５）。
【０１５４】
次に、これらオブジェクトを所与の視点から見た画像として生成し、表示部に表示させる（ステップＳ１６）。
【０１５５】
ゲームオーバなどの所与の終了条件を満たしたとき（ステップＳ１７：Ｙ）、一連の処理を終了する（エンド）。一方、所与の終了条件を満たしていないとき（ステップＳ１７：Ｎ）、ステップＳ１１に戻って再度入力情報の読み込み等を行う。
【０１５６】
ステップＳ１４における切断処理では、入力情報に基づいて求められた刀型コントローラの画面上での位置等から刀の軌跡を求める。
【０１５７】
そして、刀の軌跡と棒オブジェクトＭとの交差判定を行う（ステップＳ２０）。
【０１５８】
より具体的には、図１５に示すように、例えばプレーヤによって操作される刀型コントローラの画面上での位置とその変化する向きとを用いて、軌跡を特定することができる。したがって、透視変換後の棒オブジェクトＭの基準軸（縦軸）２６０と、特定された軌跡２６２とが交差するか否かを判定することができる。
【０１５９】
ステップＳ２０で、刀の軌跡が棒オブジェクトＭの基準軸と交差しないと判定されたとき（ステップＳ２０：Ｎ）、一連の切断処理を終了する（エンド）。
【０１６０】
一方、ステップＳ２０で、刀の軌跡が棒オブジェクトＭの基準軸と交差すると判定されたとき（ステップＳ２０：Ｙ）、画面上の刀の軌跡２６２から、切断平面ＳＳを求める（ステップＳ２１）。この結果、切断平面ＳＳのパラメータとして、代表点ＡＡとその法線ベクトルｎ０とが求められる。
【０１６１】
次に、この切断平面ＳＳのパラメータを、オブジェクト基準の座標系である棒オブジェクトＭのローカル座標系に座標変換し、図６に示すように、座標変換後の代表点Ａ（ａｘ，ａｙ，ａｚ）と座標変換後の法線ベクトルｎ（ｎｘ，ｎｙ，ｎｚ）を求める（ステップＳ２２）。
【０１６２】
次に、法線ベクトルｎのｎｙ成分が０か否かを判別する（ステップＳ２３）。
ここで、法線ベクトルｎのｎｙ成分が０である切断平面ＳＳは、側面と平行な平面となるため、棒オブジェクトの側面を切断することができなくなる。これは、棒オブジェクトを上面及び下面の頂点により定義することで、切断後のオブジェクト生成を容易にした本実施形態を適用することができなくなることを意味する。したがって、ステップＳ２３で、法線ベクトルｎのｎｙ成分が０のとき（ステップＳ２３：Ｙ）を除外し、切断処理を終了させている（エンド）。
【０１６３】
ここで、プレーヤが斬る動作を行ったにも関わらず、その切断平面が棒オブジェクトＭの側面と平行になったために、棒オブジェクトＭの切断処理が行われないという不自然さを解消するために、例えばオブジェクト基準の座標系での法線ベクトルｎのｎｙ成分が０のとき、切断平面ＳＳの法線ベクトルｎのｎｙ成分を補正して、切断処理を強制的に行うようにしてもよい。リアルタイムな画像生成が要求される場合、プレーヤがどの方向に斬った動作を行ったかについては正確に反映させる必要がないため、仮想現実感の向上のためにはむしろ好ましい。
【０１６４】
ステップＳ２３で、法線ベクトルｎのｎｙ成分が０ではないとき（ステップＳ２３：Ｎ）、変数ｉを「１」に、変数ｆを「０」に設定する（ステップＳ２４）。ここで変数ｉは、上面及び下面の頂点を指定するための１以上Ｎ以下の自然数である。また、変数ｆは、切断平面ＳＳが棒オブジェクトＭの上側若しくは下側を通過した頂点数を数えるための判別カウント変数である。この変数ｆは、各頂点ごとに上述した判別を行ってインクリメント若しくはデクリメントが行われる。こうすることで、変数ｆが「＋Ｎ」若しくは「−Ｎ」のとき、棒オブジェクトＭの上側若しくは下側のみを通過したと判断することができるので、切断されたか否かを判別することができる。
【０１６５】
続いて、上面のｉ番目の頂点と、これに対応する下面のｉ番目の頂点とを通る辺と、切断平面ＳＳとの交点のｙ座標ｙ（ｉ）を（５）式を用いて求める（ステップＳ２５）。上述したように、オブジェクト基準の座標系で交点を求めるようにしたので、例えば図６に示すように、求めるべき座標はｙ座標のみである。
【０１６６】
そして、求めたｙ（ｉ）と、ｙｍａｘ（ｉ）とを比較する（ステップＳ２６）。
【０１６７】
ｙ（ｉ）が、ｙｍａｘ（ｉ）より小さくないとき（ステップＳ２６：Ｎ）、切断平面ＳＳが棒オブジェクトＭの上面より上側を通過したと判断し、変数ｆをインクリメントするとともに、ｙ（ｉ）にｙｍａｘ（ｉ）を代入する（ステップＳ２７）。
【０１６８】
ステップＳ２６で、ｙ（ｉ）がｙｍａｘ（ｉ）より小さいとき（ステップＳ２６：Ｙ）、或いはステップＳ２７で変数ｆのインクリメント等が行われたとき、ｙ（ｉ）とｙｍｉｎ（ｉ）とを比較する（ステップＳ２８）。
【０１６９】
ｙ（ｉ）が、ｙｍｉｎ（ｉ）より大きくないとき（ステップＳ２８：Ｎ）、切断平面ＳＳが棒オブジェクトＭの下面より下側を通過したと判断し、変数ｆをデクリメントするとともに、ｙ（ｉ）にｙｍｉｎ（ｉ）を代入する（ステップＳ２９）。
【０１７０】
ステップＳ２８で、ｙ（ｉ）がｙｍｉｎ（ｉ）より大きいとき（ステップＳ２８：Ｙ）、或いはステップＳ２９で変数ｆのデクリメント等が行われたとき、次の頂点について同様の判別を行うために、変数ｉをインクリメントする（ステップＳ３０）。
【０１７１】
インクリメントした変数ｉが棒オブジェクトＭの上面若しくは下面の頂点数Ｎ以下のとき（ステップＳ３１：Ｙ）、ステップＳ２５に戻って、次の辺の交点のｙ座標を求める。
【０１７２】
一方、ステップＳ３１で、インクリメントした変数ｉが棒オブジェクトＭの上面若しくは下面の頂点数Ｎ以下ではないとき（ステップＳ３１：Ｎ）、変数ｆが「−Ｎ」より大きく、かつ「＋Ｎ」より小さいか否かを判別する（ステップＳ３２）。
【０１７３】
変数ｆが「−Ｎ」より大きく、かつ「＋Ｎ」より小さいとは判別されなかったとき（ステップＳ３２：Ｎ）、棒オブジェクトＭの上側若しくは下側のみを通過したと判断し、一連の切断処理を終了する（エンド）。
【０１７４】
一方、変数ｆが「−Ｎ」より大きく、かつ「＋Ｎ」より小さいと判別されたとき（ステップＳ３２：Ｙ）、棒オブジェクトＭ（広義には、第１の多角柱オブジェクト）の図１０に示す構造体を複製して、棒オブジェクトＭ´（広義には、第２の多角柱オブジェクト）を作成する（ステップＳ３３）。
【０１７５】
続いて、棒オブジェクトＭ（広義には、第１の多角柱オブジェクト）の上面の頂点座標のｙ座標を、上述したように求めた交点のｙ座標ｙ（ｉ）に書き換える（ステップＳ３４）。この際、図７で説明したように、図６に示す棒オブジェクトＭの構造体において、切断位置である交点にコーディネートされるテクスチャ座標も同様に書き換える。
【０１７６】
また、棒オブジェクトＭ´（広義には、第２の多角柱オブジェクト）の下面の頂点座標のｙ座標を、上述したように求めた交点のｙ座標ｙ（ｉ）に書き換える（ステップＳ３５）。この際、図７で説明したように、図６に示す構造体において、切断位置である交点にコーディネートされるテクスチャ座標も同様に書き換える。
【０１７７】
そして、切断後に２つの棒オブジェクトＭ、Ｍ´がずれて落ちる様を表現するために、所与の初速度を与える（ステップＳ３６）。この場合、互いの初速度が異なっていることが望ましい。こうすることで、切断前のオブジェクトから、斬る動作によって、２つのオブジェクトが切断されていく様をよりリアルに表現することができる。
【０１７８】
最後に、一連の切断処理を終了する（エンド）。
【０１７９】
以上のようにすることで、棒オブジェクトＭに対して任意の切断平面に沿って切断された２つの棒オブジェクトを、より少ない処理負荷で生成することができる。
【０１８０】
図１６（Ａ）、（Ｂ）、（Ｃ）に、ゲーム画像の一例を示す。
【０１８１】
図１６（Ａ）に示すゲーム画像において、検出装置からの入力情報に基づいて、プレーヤによって操作される刀型コントローラの画面３００上での位置や、その位置の変化する向きなどに応じて、一人称視点で刀オブジェクト３０２が表示されている。このとき、プレーヤが画面３００に対して画面の横軸方向に斬る動作を行うと、図１６（Ｂ）に示すように刀の軌跡３０４が生成される。
【０１８２】
ここで、画面３００に表示される棒状の竹オブジェクト３０６は、多角柱オブジェクトで構成されており、竹オブジェクト３０６がカメラ座標系において刀の届く範囲にあるものとすると、刀の軌跡３０４と、竹オブジェクト３０６の図示しない基準軸との交差判定が行われる。そして、竹オブジェクト３０６のローカル座標系で交点が求められ、もう１つの竹オブジェクト３０８が生成される。一方の竹オブジェクト３０６は、図６に示したように上面の頂点座標が交点に設定され、他方の竹オブジェクト３０８は、図６に示したように下面の頂点座標が交点に設定される。
【０１８３】
そして、両竹オブジェクト３０６、３０８は、それぞれ所与の初速度が与えられ、図１６（Ｃ）に示すように、互いに別々に落下していくことになる。
【０１８４】
なお、以上の説明では、切断前のオブジェクトの上面の頂点座標を、切断後の切断位置の座標に設定し、新たに複製されたオブジェクトの下面の頂点座標を切断後の切断位置の座標に設定するように説明したが、これに限定されるものではない。例えば、切断前のオブジェクトの下面の頂点座標を、切断後の切断位置の座標に設定し、新たに複製されたオブジェクトの上面の頂点座標を切断後の切断位置の座標に設定するようにしてもよい。
【０１８５】
３．２  板オブジェクト
板オブジェクトは、厚さ方向が薄い４角柱オブジェクトと考えれば、基本的には上述した多角柱オブジェクトと同様に処理することができる。
【０１８６】
しかしながら、カメラ座標系における板オブジェクトＢＯＢＪでは、刀の軌跡（切断平面）が板オブジェクトと交差する位置によって、オブジェクト基準のローカル座標系への座標変換の向きを変える必要がある。
【０１８７】
図１７に、板オブジェクトを切断平面に沿って切断する場合の説明図を示す。
【０１８８】
カメラ座標系における板オブジェクトＢＯＢＪに対して、刀の軌跡３２０に沿って切断平面を生成する場合と、刀の軌跡３２２に沿って切断平面を生成する場合とでは、上述したように多角柱オブジェクトの切断処理を用いて少ない処理負荷で切断後のオブジェクトを生成するための処理方法を変える必要がある。
【０１８９】
刀の軌跡３２０に沿って板オブジェクトＢＯＢＪを切断する処理を行う場合、より少ない処理負荷で切断位置を求めるためには、例えば図１８（Ａ）に示すようなオブジェクト座標系に座標変換を行う必要がある。この場合、図６に示したように、上面ＵＳ１及び下面ＤＳ１のｘｚ座標は既知であるため、刀の軌跡３２０によって特定される切断平面ＳＳ１と、上面及び下面の頂点を結ぶ線との交点ＰＰ´のｙ座標のみを求めればよい。
【０１９０】
一方、刀の軌跡３２２に沿って板オブジェクトＢＯＢＪを切断する処理を行う場合、より少ない処理負荷で切断位置を求めるためには、例えば図１８（Ｂ）に示すようなオブジェクト座標系に座標変換を行う必要がある。この場合、上面ＵＳ２及び下面ＤＳ２のｙｚ座標は既知であるため、刀の軌跡３２２によって特定される切断平面ＳＳ２と、上面及び下面の頂点を結ぶ線との交点ＰＰ´のｘ座標のみを求めればよい。
【０１９１】
３．２．１  本実施形態の処理
このような板オブジェクトＢＯＢＪに対する刀の軌跡（切断平面）の交差位置の判別は、切断処理に先立って行うことができる。
【０１９２】
また、図１２及び図１３に示した切断処理では、板オブジェクトＢＯＢＪと刀とのヒット判定が行われるので、例えば図１８（Ａ）に示す向きで切断されなかったときに、図１８（Ｂ）に示す向きで切断処理を行うようにしてもよい。
【０１９３】
図１９に、本実施形態における板オブジェクトを切断した画像を生成する処理の一例のフローチャートを示す。
【０１９４】
ここでは、図１２及び図１３に示した切断処理において、板オブジェクトＢＯＢＪと刀とのヒット判定が行われる場合の処理例を示す。
【０１９５】
まず、切断前の板オブジェクトの初期化（ステップＳ４０）をした後、オブジェクト空間において仮想カメラの位置及び向きを設定するとともに、上述した検出装置からの入力情報を読み込む（ステップＳ４１）。
【０１９６】
次に、プレーヤによって操作され、カメラ座標系で画面上に表示される刀が、板オブジェクトに届く範囲にあるか否かの判定を行うために、まず板オブジェクトの基準点をカメラ座標系に変換し、そのＺ座標を求める（ステップＳ４２）。
【０１９７】
続いて、ステップＳ４２で求められたＺ座標を用いて、プレーヤによって画面上での位置が移動させられる刀の届く範囲として設定された範囲に、板オブジェクトがあるか否かを判別する（ステップＳ４３）。ここでは、図１４と同様に、プレーヤが操作する刀が届く範囲として、カメラ座標系のＺ座標の範囲が０より大きくＺ０より小さい範囲であるものとする。
【０１９８】
ステップＳ４３で、板オブジェクトの基準点のカメラ座標系におけるＺ座標が、０より大きくＺ０より小さいと判定されたとき（ステップＳ４３：Ｙ）、板オブジェクトが刀の届く範囲にあると判断し、まず図１８（Ｂ）に示す縦軸方向に対して板オブジェクトの切断処理を行う（ステップＳ４４）。この切断処理は、図１２及び図１３で示した棒オブジェクトの切断処理と同様のため、説明を省略する。
【０１９９】
そして、ステップＳ４４において、板オブジェクトの切断処理が行われたか否かを判別し（ステップＳ４５）、板オブジェクトの切断処理が行われなかったと判別されたとき（ステップＳ４５：Ｎ）、次は図１８（Ａ）に示す横軸方向に対して板オブジェクトの切断処理を行う（ステップＳ４６）。この切断処理は、図１２及び図１３で示した棒オブジェクトの切断処理と同様のため、説明を省略する。
【０２００】
ステップＳ４５で、板オブジェクトの切断処理が行われたと判別されたとき（ステップＳ４５：Ｙ）、或いはステップＳ４６で横軸方向に対して切断処理が行われると、切断処理後の板オブジェクト（ヒットミス判定後の板オブジェクト、又はヒット判定後に切断処理された２つの板オブジェクト）について、移動処理を行う（ステップＳ４７）。
【０２０１】
次に、これらオブジェクトを所与の視点から見た画像として生成し、表示部に表示させる（ステップＳ４８）。
【０２０２】
ゲームオーバなどの所与の終了条件を満たしたとき（ステップＳ４９：Ｙ）、一連の処理を終了する（エンド）。一方、所与の終了条件を満たしていないとき（ステップＳ４９：Ｎ）、ステップＳ４１に戻って再度入力情報の読み込み等を行う。
【０２０３】
以上のようにすることで、板オブジェクトＢＯＢＪを任意の向きの任意の切断平面に沿って切断される画像を、より少ない処理負荷で生成することができる。
【０２０４】
なお、板オブジェクトの厚さ方向が薄い場合には、上面及び下面の各頂点を結ぶ線と切断平面との４交点を求める必要はなく、例えば図１８（Ａ）に示すように、交点ＰＰ´、ＰＰ1´の２点だけを求め、手前側と奥側のｙ座標を同じとして扱うことで、より処理負荷の軽減を図ることができる。
【０２０５】
３．３  ひも状オブジェクト
ひも状オブジェクトは、例えば垂れ下がる木の枝や、縄、蛇などを表現することができる。
【０２０６】
図２０に、ひも状オブジェクトを切断平面に沿って切断した場合における切断後の２つのオブジェクトの生成原理を説明するための図を示す。
【０２０７】
本実施形態では、ひも状のオブジェクトＳＯＢＪを、順次リンクされる１又は複数の頂点のワールド座標系での座標で定義する。そして、各頂点の座標を用いて、常に仮想カメラの向きと正対する２次元のポリゴンを表示させるようにする。こうすることで、節となる頂点の座標を管理するだけでよいため、ポリゴン数を消費することなく、より少ない処理負荷でひも状オブジェクトの画像生成を行うことができる。
【０２０８】
このようなひも状オブジェクトＳＯＢＪは、例えば風になびいて状態を表現するため、揺れて表現されることがある。本実施形態では、ひも状オブジェクトＳＯＢＪの揺れが小さいという前提で、各頂点間について切断平面が通過したか否かを判別することなく、以下のように処理している。なお、リアルタイム処理が要求されるゲーム画像では、ひも状オブジェクトＳＯＢＪの揺れが大きい場合であっても、プレーヤがどの位置を切断したかといった正確さは要求されず、むしろ切断平面によって異なる切断が行われる方が、仮想現実感を向上させることができる。
【０２０９】
そのため、本実施形態では、ひも状オブジェクトＳＯＢＪと切断平面ＳＳ４とのヒット判定を行うために、ひも状オブジェクトＳＯＢＪの始点と終点とを結ぶ仮想的な直線ＶＬを考える。
【０２１０】
例えばひも状オブジェクトＳＯＢＪが、始点をＡ０、終点をＡ４とした頂点Ａ０〜Ａ４で定義されている場合、頂点Ａ０、Ａ４を結ぶ仮想的な直線ＶＬを考える。そして、この直線ＶＬと、切断平面ＳＳ４とのヒット判定を行う。
【０２１１】
さらに、直線ＶＬと切断平面ＳＳ４の交点Ｐ´´を求め、この交点Ｐ´´が直線ＶＬを内分する比率に基づいて、ひも状オブジェクトＳＯＢＪの切断位置Ｑを特定する。より具体的には、交点Ｐ´´が直線ＶＬを内分する比率がα：βであるものとすると、ひも状オブジェクトＳＯＢＪの各頂点間の距離の総和Ｌ（＝ｗ１＋ｗ２＋ｗ３＋ｗ４）をα：βに内分する点Ｑを求め、切断位置とする。
【０２１２】
この切断位置が、例えば頂点Ａ２と頂点Ａ３との間にあるものとすると、ひも状オブジェクトＳＯＢＪ（広義には、第１のひも状オブジェクト）を複製して、ひも状オブジェクトＳＯＢＪ２（広義には、第２のひも状オブジェクト）を生成する。
【０２１３】
そして、ひも状オブジェクトＳＯＢＪの終点を頂点Ａ３として設定するとともに、頂点Ａ３の座標に切断位置Ｑの座標を設定する。また、ひも状オブジェクトＳＯＢＪ２の始点を頂点Ａ２として設定するとともに、頂点Ａ２の座標に切断位置Ｑの座標を設定する。
【０２１４】
以上のように、１又は複数の頂点で定義されるひも状オブジェクトが、任意の切断平面で切断された場合でも、非常に簡素な処理で切断後の２つのひも状オブジェクトを生成することができる。
【０２１５】
ところで、切断前のひも状オブジェクトＳＯＢＪにマッピングされていたテクスチャを、切断後のひも状オブジェクトＳＯＢＪ、ＳＯＢＪ２にそのままマッピングした場合、テクスチャが変形してしまう。
【０２１６】
そこで、以下のように、切断後のオブジェクトの各頂点にコーディネートするテクスチャ座標を設定することで、テクスチャが変形することなく、より一層リアルな切断画像を表現することができる。
【０２１７】
図２１に、ひも状オブジェクトＳＯＢＪにマッピングされるテクスチャのテクスチャ座標の一例を示す。
【０２１８】
ここで、点Ａ０〜Ａ４は、ひも状オブジェクトＳＯＢＪを定義する各頂点に対応する。本実施形態では、各頂点の座標を用いて、常に仮想カメラの向きに正対するポリゴンを表示するようにし、図２１に示すテクスチャがマッピングされる。そのため、頂点Ａ０〜Ａ４について、一定の幅を有するテクスチャを用意する。
【０２１９】
本実施形態では、図２２に示すように、例えば各頂点間を結ぶリンクと仮想カメラの向きに垂直な方向の線上に、頂点Ａ０〜Ａ４それぞれから長さｗ／２の位置に、点Ｌ０〜Ｌ４、Ｒ０〜Ｒ４を設ける。点Ｌ０〜Ｌ４、Ｒ０〜Ｒ４には、図２１に示す対応するテクスチャ座標をコーディネートする。
【０２２０】
したがって、切断位置Ｑが求められると、切断後のひも状オブジェクトＳＯＢＪの終点Ａ３には点Ｑが設定されるため、これに対応する点ＬＱ、ＲＱには、図２１に示すテクスチャ座標をコーディネートすることができる。
【０２２１】
このように、切断平面ＳＳ４が、ひも状オブジェクトを切断する位置がその始点と終点を結ぶ仮想的な直線を内分する比率に応じて、テクスチャ座標を変更することにより、切断前のテクスチャを切断後のひも状オブジェクトＳＯＢＪ、ＳＯＢＪ２にマッピングしても、テクスチャが変形することがない。
【０２２２】
３．３．１  本実施形態の処理例
次に、本実施形態において、切断平面に応じてひも状オブジェクトを切断する処理について、より詳細に説明する。
【０２２３】
図２３に、本実施形態におけるひも状オブジェクトを定義する構造体の構成の一例について説明するための図を示す。
【０２２４】
ひも状オブジェクトの構造体４００は、各頂点Ａ０〜ＡＮのワールド座標系における座標４１０、使用頂点情報４２０、各頂点間を結ぶリンクの長さ４３０を含む。
【０２２５】
使用頂点情報４２０は、頂点Ａ０〜ＡＮのうち使用する頂点の最小番号ｍ、頂点Ａ０〜ＡＮのうち使用する頂点の最大番号ｎを含む。ひも状オブジェクトＳＯＢＪは、最小番号ｍに設定された頂点が始点となり、最大番号ｎに設定された頂点が終点となる。
【０２２６】
各頂点間を結ぶリンクの長さ４３０は、リンクごとの長さｗ（０）〜ｗ（Ｎ−１）を含む。
【０２２７】
このようなデータ構造のひも状オブジェクトについては、以下のようにして切断後のオブジェクトを生成することができる。
【０２２８】
図２４及び図２５に、本実施形態におけるひも状オブジェクトを切断した画像を生成する処理の一例を示すフローチャートを示す。
【０２２９】
ここで、ひも状オブジェクトを定義する各頂点間を結ぶリンクの最大数をＮ、刀の届く最大距離をＺ０としている。
【０２３０】
まず、切断前のひも状オブジェクトＭ１の初期化（ステップＳ５０）を行う。
より具体的には、使用する頂点の最大番号ｎを０に、使用する頂点の最小番号ｍをＮに設定する。
【０２３１】
次に、オブジェクト空間において仮想カメラの位置及び向きを設定するとともに、上述した検出装置からの入力情報を読み込む（ステップＳ５１）。
【０２３２】
次に、プレーヤによって操作され、カメラ座標系で画面上に表示される刀が、ひも状オブジェクトに届く範囲にあるか否かの判定を行うために、まずひも状オブジェクトの基準点をカメラ座標系に変換し、そのＺ座標を求める（ステップＳ５２）。
【０２３３】
続いて、ステップＳ５２で求められたＺ座標を用いて、プレーヤによって画面上での位置が移動させられる刀の届く範囲として設定された範囲に、ひも状オブジェクトがあるか否かを判別する（ステップＳ５３）。
【０２３４】
ステップＳ５３で、ひも状オブジェクトの基準点のカメラ座標系におけるＺ座標が、０より大きくＺ０より小さいと判定されたとき（ステップＳ５３：Ｙ）、ひも状オブジェクトが刀の届く範囲にあると判断し、画面上の刀の軌跡から切断平面ＳＳ４を求め（ステップＳ５４）、この切断平面ＳＳ４を用いてひも状オブジェクトの切断処理を行う（ステップＳ５５）。
【０２３５】
そして、切断処理後のひも状オブジェクト、或いはステップＳ５３で刀が届く範囲にないと判定されたとき（ステップＳ５３：Ｎ）、ひも状オブジェクトについて、移動処理を行う（ステップＳ５６）。
【０２３６】
続いて、各頂点間を結ぶリンクの長さがｗ（ｉ）になるように各頂点を補正する（ステップＳ５７）。このリンクの長さは、ステップＳ５４で求められた切断平面ＳＳ４により切断された場合には、ステップＳ５５で切断位置に応じた長さに更新されている。
【０２３７】
次に、これらオブジェクトを所与の視点から見た画像として生成し、表示部に表示させる（ステップＳ５８）。
【０２３８】
ゲームオーバなどの所与の終了条件を満たしたとき（ステップＳ５９：Ｙ）、一連の処理を終了する（エンド）。一方、所与の終了条件を満たしていないとき（ステップＳ５９：Ｎ）、ステップＳ５１に戻って再度入力情報の読み込み等を行う。
【０２３９】
ステップＳ５５における切断処理では、入力情報に基づいて求められた刀型コントローラの画面上での位置等から刀の軌跡を求める。
【０２４０】
そして、ひも状オブジェクトの始点Ａｍと終点Ａｎとを結ぶ線分ＡｍＡｎと、刀の軌跡との交点Ｐ´´を求める（ステップＳ６０）。
【０２４１】
ステップＳ６０で求められた交点Ｐ´´が、線分ＡｍＡｎ上にないと判定されたとき（ステップＳ６１：Ｎ）、一連の切断処理を終了する（エンド）。
【０２４２】
一方、ステップＳ６０で求められた交点Ｐ´´が、線分ＡｍＡｎ上にあると判定されたとき（ステップＳ６１：Ｙ）、リンクの全長Ｌを求める（ステップＳ６２）。
【０２４３】
続いて、線分ＡｍＡｎの長さに対する線分ＡｍＰ´´の比率を用いて、ひも状オブジェクトの始点Ａｍから切断位置までの長さＫを求める（ステップＳ６３）。
【０２４４】
そして、まず変数ｉに、始点の番号ｍを代入し（ステップＳ６４）、長さＫとｗ（ｉ）を比較する（ステップＳ６５）。Ｋがｗ（ｉ）より小さいときは当該リンクが切断されると判断され、Ｋがｗ（ｉ）以上のとき次のリンク以降で切断されると判断される。
【０２４５】
したがって、ステップＳ６５で、Ｋがｗ（ｉ）以上であると判定されたとき（ステップＳ６５：Ｙ）、Ｋをｗ（ｉ）だけ減算した値をＫに代入するとともに、変数ｉをインクリメントして（ステップＳ６６）、再びＫとｗ（ｉ）とを比較する（ステップＳ６５）。
【０２４６】
そして、Ｋがｗ（ｉ）より小さいと判定されたとき（ステップＳ６５：Ｎ）、ひも状オブジェクトＭ１の構造体を複製して、ひも状オブジェクトＭ１´を作成する（ステップＳ６７）。
【０２４７】
さらに、ひも状オブジェクトＭ１については、リンクを書き換えるために、各頂点を補正する（ステップＳ６８）。すなわち、頂点の最大番号ｎを「ｉ＋１」に設定するとともに、ｗ（ｉ）をＫに設定する。この際、上述したように、ひも状オブジェクトＭ１について、テクスチャ座標も同様に書き換える。
【０２４８】
また、ひも状オブジェクトＭ１´については、リンクを書き換えるために、各頂点を補正する（ステップＳ６９）。すなわち、頂点の最小番号ｍをｉに設定するとともに、ｗ（ｉ）に「ｗ（ｉ）−Ｋ」を設定する。この際、上述したように、ひも状オブジェクトＭ１について、テクスチャ座標も同様に書き換える。
【０２４９】
そして、切断後に２つのひも状オブジェクトＭ１、Ｍ１´がずれて落ちる様を表現するために、所与の初速度を与える（ステップＳ７０）。この場合、互いの初速度が異なっていることが望ましい。こうすることで、切断前のオブジェクトから、斬る動作によって、２つのオブジェクトが切断されていく様をよりリアルに表現することができる。
【０２５０】
最後に、一連の切断処理を終了する（エンド）。
【０２５１】
以上のようにすることで、ひも状オブジェクトＭ１に対して任意の切断平面に沿って切断された２つの棒オブジェクトを、より少ない処理負荷で生成することができる。
【０２５２】
３．４  布オブジェクト
布オブジェクトは、上述したひも状オブジェクトが複数配列したものと考えれば、上述したひも状オブジェクトと同様に処理することができる。
【０２５３】
図２６に、本実施形態における布オブジェクトのモデルの一例を示す。
【０２５４】
このように本実施形態における布オブジェクトＣＯＢＪは、上述したひも状オブジェクトを単位として複数配列された、第１〜第Ｔ（Ｔは、２以上の自然数）のひも状オブジェクトの集合体として定義することができる。
【０２５５】
例えば図２６では、布状オブジェクトＣＯＢＪは、始点が頂点Ａ００で終点が頂点Ａ０４である頂点Ａ００〜Ａ０４で定義されるひも状オブジェクトＳＯＢＪ０、始点が頂点Ａ１０で終点が頂点Ａ１４である頂点Ａ１０〜Ａ１４で定義されるひも状オブジェクトＳＯＢＪ１、始点が頂点Ａ２０で終点が頂点Ａ２４である頂点Ａ２０〜Ａ２４で定義されるひも状オブジェクトＳＯＢＪ２、始点が頂点Ａ３０で終点が頂点Ａ３４である頂点Ａ３０〜Ａ３４で定義されるひも状オブジェクトＳＯＢＪ３、始点が頂点Ａ４０で終点が頂点Ａ４４である頂点Ａ４０〜Ａ４４で定義されるひも状オブジェクトＳＯＢＪ４を含む。
【０２５６】
なお、図２６では５つのひも状オブジェクトで布オブジェクトを定義するものとして説明したが、その数には限定されるものではなく複数のひも状オブジェクトを用いて、任意の布オブジェクトをモデル化することが可能である。
【０２５７】
このようにモデル化された布オブジェクトを任意の切断平面ＳＳ５で切断する場合、切断平面ＳＳ５と各ひも状オブジェクトＳＯＢＪ０〜ＳＯＢＪ４それぞれについて、上述したようにリンクを切断して始点及び終点の頂点座標を補正する。これにより、切断平面に応じた切断後の２つのオブジェクトを、より少ない処理負荷で生成することができる。
【０２５８】
また、このような布オブジェクトは、ひも状オブジェクトの各頂点に、ポリゴンメッシュを割り当て、対応するテクスチャをマッピングすることができる。
【０２５９】
図２７に、本実施形態における布オブジェクトにマッピングされるテクスチャのテクスチャ座標の一例を示す。
【０２６０】
ここで、点Ａ００〜Ａ４４は、布オブジェクトＣＯＢＪを構成する各ひも状オブジェクトの構成頂点に対応する。
【０２６１】
例えば、点Ａ００には、（ｕ，ｖ）＝（０，１．００）のテクスチャ座標がコーディネートされる。点Ａ４４には、（ｕ，ｖ）＝（１．００，０）のテクスチャ座標がコーディネートされる。
【０２６２】
このようなテクスチャがマッピングされた布オブジェクトは、例えば図２６に示すものとなる。
【０２６３】
また、切断後の布オブジェクトにマッピングされるテクスチャについても、ひも状オブジェクトと同様に切断位置に対応するテクスチャ座標をコーディネートすることで、切断後の布オブジェクトにマッピングされるテクスチャが変形することがない。
【０２６４】
３．４．１  本実施形態の処理例
次に、本実施形態において、切断平面に応じて布オブジェクトを切断する処理について、より詳細に説明する。
【０２６５】
図２８に、本実施形態における布オブジェクトを切断した画像を生成する処理の一例のフローチャートを示す。
【０２６６】
まず、切断前の布オブジェクトの初期化（ステップＳ８０）をした後、オブジェクト空間において仮想カメラの位置及び向きを設定するとともに、上述した検出装置からの入力情報を読み込む（ステップＳ８１）。
【０２６７】
次に、プレーヤによって操作され、カメラ座標系で画面上に表示される刀が、布オブジェクトに届く範囲にあるか否かの判定を行うために、まず布オブジェクトの基準点をカメラ座標系に変換し、そのＺ座標を求める（ステップＳ８２）。
【０２６８】
続いて、ステップＳ８２で求められたＺ座標を用いて、プレーヤによって画面上での位置が移動させられる刀の届く範囲として設定された範囲に、布オブジェクトがあるか否かを判別する（ステップＳ８３）。
【０２６９】
ステップＳ８３で、布オブジェクトの基準点のカメラ座標系におけるＺ座標が、０より大きくＺ０より小さいと判定されたとき（ステップＳ８３：Ｙ）、布オブジェクトが刀が届く範囲にあると判断し、画面上の刀の軌跡から切断平面ＳＳ５を求める（ステップＳ８４）。
【０２７０】
そして、布オブジェクトを構成するひも状オブジェクトを特定するための変数ｊに１を設定して（ステップＳ８５）、変数ｊで特定されるひも状オブジェクトについて切断処理を行う（ステップＳ８６）。この切断処理は、図２５で示したひも状オブジェクトの切断処理と同様のため、説明を省略する。
【０２７１】
続いて、変数ｊをインクリメントして（ステップＳ８７）、変数ｊが布オブジェクトを構成するひも状オブジェクトの数ｄｄ以下であるか否かを判定する（ステップＳ８８）。
【０２７２】
変数ｊがｄｄ以下と判定されたとき（ステップＳ８８：Ｙ）、ステップＳ８６に戻って、ステップＳ８７でインクリメントされた変数ｊで特定されるひも状オブジェクトについて切断処理を行う。
【０２７３】
一方、変数ｊがｄｄ以下ではない判定されたとき（ステップＳ８８：Ｎ）は切断後の２つの布オブジェクトを構成するひも状オブジェクトについて、或いはステップＳ５３で刀が届く範囲にないと判定されたとき（ステップＳ８３：Ｎ）は各ひも状オブジェクトについて、移動処理を行う（ステップＳ８９）。
【０２７４】
続いて、各頂点間を結ぶリンクの長さを補正し（ステップＳ９０）、これらオブジェクトを所与の視点から見た画像として生成し、表示部に表示させる（ステップＳ９１）。
【０２７５】
ゲームオーバなどの所与の終了条件を満たしたとき（ステップＳ９２：Ｙ）、一連の処理を終了する（エンド）。一方、所与の終了条件を満たしていないとき（ステップＳ９２：Ｎ）、ステップＳ８１に戻って再度入力情報の読み込み等を行う。
【０２７６】
以上のようにすることで、布オブジェクトを任意の向きの任意の切断平面に沿って切断される画像を、より少ない処理負荷で生成することができる。
【０２７７】
４．  ハードウェア構成
次に、本実施形態を実現できるハードウェア構成の一例について図２９を用いて説明する。
【０２７８】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インタフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０２７９】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０２８０】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０２８１】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インタフェース９９０を介して外部から転送される。
【０２８２】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ（プリミティブ面）で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すとともに、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、痺uレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０２８３】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０２８４】
ゲームコントローラ９４２（レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等）からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０２８５】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０２８６】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０２８７】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０２８８】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０２８９】
通信インタフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインタフェースである。この場合に、通信インタフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【０２９０】
或いは通信インタフェース９９０を介して、図示しない検出装置におけるセンサ面における操作入力部の位置等を特定するための入力情報を受け付けるようにすることが考えられる。
【０２９１】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実現（実行）してもよいし、情報記憶媒体に格納されるプログラムや通信インタフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０２９２】
そして、本発明の各手段をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実現するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示するとともに、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実現することになる。
【０２９３】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０２９４】
例えば、検出装置は図１、図３乃至図５で説明した検出手法に限定されない。
検出装置としては、赤外線を超音波に替えて操作入力部の位置を検出するようにしてもよいし、画像認識や、モーションキャプチャリングの原理を用いて、操作入力部の位置を検出するようにしてもよい。要は、表示部の画面上の位置に各位置が１対１に対応付けられた所与の空間（エリア）において、プレーヤの身体の一部又はプレーヤによって操作される操作入力部の位置若しくは位置を特定するための情報を検出できる検出装置であればよい。
【０２９５】
また本実施形態では、操作入力部として刀型コントローラを例に説明したがこれに限定されるものではなく、槍やこん棒などの武器に限らず、指揮棒やゴルフクラブ、料理に使う包丁などを考えることができる。
【０２９６】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０２９７】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０２９８】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態の画像生成システムを業務用のゲームシステムに適用した場合の模式的な外観斜視図である。
【図２】本実施形態における画像生成システムのブロック図の一例である。
【図３】図３（Ａ）、（Ｂ）は、検出装置により形成されるセンサ面における操作入力部の位置の検出原理について説明するための説明図である。
【図４】本実施形態において、検出装置により形成されるセンサ面における操作入力部が移動する速さの検出原理について説明するための説明図である。
【図５】図５（Ａ）、（Ｂ）は、検出装置による操作入力部の画面に対する向きの検出原理について説明するための説明図である。
【図６】６角柱オブジェクトを切断平面に沿って切断した場合における切断後の２つのオブジェクトの生成原理を説明するための説明図である。
【図７】６角柱オブジェクトの側面にマッピングされるテクスチャのテクスチャ座標の一例を示す説明図である。
【図８】６角柱オブジェクトの上面及び下面にマッピングされるテクスチャのテクスチャ座標の一例を示す説明図である。
【図９】本実施形態における６角柱オブジェクトの切断前後のイメージを説明するための説明図である。
【図１０】本実施形態における多角柱オブジェクトを定義する構造体の構成の一例について説明するための図である。
【図１１】本実施形態における多角柱オブジェクトを切断した画像を生成する処理の一例を示すフローチャートである。
【図１２】本実施形態における多角柱オブジェクトの切断処理の一例の前半部を示すフローチャートである。
【図１３】本実施形態における多角柱オブジェクトの切断処理の一例の後半部を示すフローチャートである。
【図１４】カメラ座標系における刀の届く範囲と多角柱オブジェクトの位置関係を説明するための説明図である。
【図１５】本実施形態における刀の軌跡を説明するための説明図である。
【図１６】図１６（Ａ）、（Ｂ）、（Ｃ）は、ゲーム画像の一例を示す図である。
【図１７】本実施形態における板オブジェクトを切断平面に沿って切断する場合の説明図である。
【図１８】図１８（Ａ）、（Ｂ）は、切断平面の向きと板オブジェクトとの関係を説明するための図である。
【図１９】本実施形態における板オブジェクトを切断した画像を生成する処理の一例のフローチャートである。
【図２０】本実施形態におけるひも状オブジェクトを切断平面に沿って切断した場合における切断後の２つのオブジェクトの生成原理を説明するための説明図である。
【図２１】本実施形態におけるひも状オブジェクトにマッピングされるテクスチャのテクスチャ座標の一例を示す説明図である。
【図２２】本実施形態におけるひも状オブジェクトにマッピングされたテクスチャと切断位置との関係を説明するための説明図である。
【図２３】本実施形態におけるひも状オブジェクトを定義する構造体の構成の一例について説明するための図である。
【図２４】本実施形態におけるひも状オブジェクトを切断した画像を生成する処理の一例を示すフローチャートである。
【図２５】本実施形態におけるひも状オブジェクトの切断処理の一例を示すフローチャートである。
【図２６】本実施形態における布オブジェクトのモデル化の一例を示す説明図である。
【図２７】本実施形態における布オブジェクトにマッピングされるテクスチャのテクスチャ座標の一例を示す説明図である。
【図２８】本実施形態における布オブジェクトを切断した画像を生成する処理の一例を示すフローチャートである。
【図２９】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【符号の説明】
１０  ゲームシステム
２０  筐体
３０  画面
４０  刀型コントローラ
５０  第１のセンサ
５２  第１のセンサ面
６０  第２のセンサ
６２  第２のセンサ面
１００  処理部
１１０  位置演算部
１３０  パラメータ設定部
１３２  オブジェクト生成部
１３４  切断位置演算部
１３６  頂点補正部
１４０  画像生成部
１５０  音生成部
１６０  操作部
１６２  入力情報受付部
１７０  記憶部
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
Ａ  代表点
ＤＳ、ＤＳ´  下面
ＤＰ１〜ＤＰ６  下面の頂点
ｎ  法線ベクトル
ＯＢＪ１  ６角柱オブジェクト（第１の多角柱オブジェクト）
ＯＢＪ２  ６角柱オブジェクト（第２の多角柱オブジェクト）
ＰＰ、Ｐ１〜Ｐ６  交点
ＳＳ  切断平面
ＵＳ、ＵＳ´  上面
ＵＰ１〜ＵＰ６  上面の頂点
【図１】
0004632596.tif 000002
【図２】
0004632596.tif 000003
【図３】
0004632596.tif 000004
【図４】
0004632596.tif 000005
【図５】
0004632596.tif 000006
【図６】
0004632596.tif 000007
【図７】
0004632596.tif 000008
【図８】
0004632596.tif 000009
【図９】
0004632596.tif 000010
【図１０】
0004632596.tif 000011
【図１１】
0004632596.tif 000012
【図１２】
0004632596.tif 000013
【図１３】
0004632596.tif 000014
【図１４】
0004632596.tif 000015
【図１５】
0004632596.tif 000016
【図１６】
0004632596.tif 000017
【図１７】
0004632596.tif 000018
【図１８】
0004632596.tif 000019
【図１９】
0004632596.tif 000020
【図２０】
0004632596.tif 000021
【図２１】
0004632596.tif 000022
【図２２】
0004632596.tif 000023
【図２３】
0004632596.tif 000024
【図２４】
0004632596.tif 000025
【図２５】
0004632596.tif 000026
【図２６】
0004632596.tif 000027
【図２７】
0004632596.tif 000028
【図２８】
0004632596.tif 000029
【図２９】
0004632596.tif 000030