(57)【特許請求の範囲】
【請求項１】
コンピュータを、
３次元の仮想空間を生成する仮想空間生成手段、
前記仮想空間に配置した仮想カメラで撮影した画像をゲーム画面として表示する画面表示手段、および
前記仮想空間内における流体要素の３次元表現を前記ゲーム画面上で行う流体表現手段、として機能させ、
前記流体表現手段は、
所定の線状モデルを、前記仮想空間に配置するモデル配置手段と、
所定のポリゴンメッシュが前記線状モデルの動きに追従して変形するように前記ポリゴンメッシュを前記線状モデルの周囲に配置するポリゴンメッシュ配置手段と、
前記ポリゴンメッシュ上に前記流体要素を表示する流体要素表示手段と、を含み、
前記モデル配置手段は、前記線状モデルの基端部を所定の方向に移動させるとともに、前記基端部から間欠的に射出され、前記基端部を基準とする所定の軌道に沿って移動する複数の仮想点に、前記線状モデルが追従するように前記線状モデルを動かし、
前記流体要素表示手段は、前記線状モデルの前記基端部から先端部に向けて前記流体要素が流れるような表示を行い、
前記線状モデルは、複数の関節と、当該複数の関節を順に連結する少なくとも一の連結体とを有し、
前記モデル配置手段は、前記複数の仮想点に前記線状モデルが追従するように、前記線状モデルを、前記複数の関節で曲げることで変形させ、
前記モデル配置手段は、前記線状モデルの前記基端部の動きに伴って移動する前記線状モデルの各関節の移動速度を、互いに接続された２つの関節のうち、前記先端部側の関節の移動速度が前記基端部側の関節の移動速度より遅くなるように、それぞれ制限することによって、前記複数の仮想点に前記線状モデルが追従するように前記線状モデルを動かす、ゲームプログラム。
【請求項２】
請求項１に記載のゲームプログラムを記憶したプログラム記憶部と、
前記プログラム記憶部に記憶されたプログラムを実行するコンピュータとを備えた、ゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラムおよびゲームシステムに関する。
【背景技術】
【０００２】
従来、アクションゲームまたはロールプレイングゲーム等、ユーザの操作に応じてプレイヤキャラクタ等の操作対象を３次元の仮想空間内で動作させるゲームがある。３次元の仮想空間には様々な３次元のオブジェクト等が配置され、それらはコンピュータグラフィックスによって生成されている。
【０００３】
このような３次元の仮想空間内で煙または水等の流体の流れを表現するために、ポリゴンメッシュを用いた表現が考えられる（例えば非特許文献１参照）。このような表現態様においては、ポリゴンメッシュを変形させることにより、ポリゴンメッシュ上に貼り付けられたテクスチャが変形し、流体の動きが疑似的に表現される。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「AUTODESK MAYA 2016｜ヘルプ「流体をポリゴンに変換する」」、［online］、AUTODESK Inc.，［平成28年1月22日検索］、インターネット<http://help.autodesk.com/view/MAYAUL/2016/JPN/?guid=GUID-E509F8B9-2E27-40F8-ABD5-5530CC4F0909>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来、ポリゴンメッシュを用いて流体の３次元表現を行うと動きが硬いという問題がある。
【０００６】
そこで本発明は、３次元の仮想空間を用いたゲームにおいて、よりリアルな流体の３次元表現を行うことができるゲームプログラムおよびゲームシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るゲームプログラムは、コンピュータを、３次元の仮想空間を生成する仮想空間生成手段、前記仮想空間に配置した仮想カメラで撮影した画像をゲーム画面として表示する画面表示手段、および前記仮想空間内における流体要素の３次元表現を前記ゲーム画面上で行う流体表現手段、として機能させ、前記流体表現手段は、所定の線状モデルを、前記仮想空間に配置するモデル配置手段と、所定のポリゴンメッシュが前記線状モデルの動きに追従して変形するように前記ポリゴンメッシュを前記線状モデルの周囲に配置するポリゴンメッシュ配置手段と、前記ポリゴンメッシュ上に前記流体要素を表示する流体要素表示手段と、を含み、前記モデル配置手段は、前記線状モデルの基端部を所定の方向に移動させるとともに、前記基端部から間欠的に射出され、前記基端部を基準とする所定の軌道に沿って移動する複数の仮想点に、前記線状モデルが追従するように前記線状モデルを動かし、前記流体要素表示手段は、前記線状モデルの前記基端部から先端部に向けて前記流体要素が流れるような表示を行う。
【０００８】
前記流体要素表示手段は、前記線状モデルの動きに応じて複数の表示態様の中から一の表示態様を選択して表示してもよい。
【０００９】
前記線状モデルは、複数の関節と、当該複数の関節を順に連結する少なくとも一の連結体とを有し、前記モデル配置手段は、前記複数の仮想点に前記線状モデルが追従するように、前記線状モデルを、前記複数の関節で曲げることで変形させてもよい。
【００１０】
前記モデル配置手段は、前記線状モデルの前記基端部の動きに伴って移動する前記線状モデルの各関節の移動速度を、互いに接続された２つの関節のうち、前記先端部側の関節の移動速度が前記基端部側の関節の移動速度より遅くなるように、それぞれ制限することによって、前記複数の仮想点に前記線状モデルが追従するように前記線状モデルを動かしてもよい。
【００１１】
本発明の他の態様に係るゲームシステムは、上記ゲームプログラムを記憶したプログラム記憶部と、前記プログラム記憶部に記憶されたプログラムを実行するコンピュータとを備えている。
【発明の効果】
【００１２】
本発明によれば、３次元の仮想空間を用いたゲームにおいて、よりリアルな流体の３次元表現を行うことができるゲームプログラムおよびゲームシステムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態におけるゲーム装置のハードウェア構成を示すブロック図である。
【図２】図１に示すゲーム装置の機能的な構成を示すブロック図である。
【図３】本実施の形態における３次元の仮想空間を示す平面図である。
【図４】本実施の形態におけるゲーム画面を示す図である。
【図５】本実施の形態における流体要素の構造例を示す図である。
【図６】本実施の形態における線状モデルの動かし方を説明するための図である。
【図７】本実施の形態の流体要素の他の例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態に係るゲームプログラムおよびゲームシステムについて、図面を参照しつつ説明する。
【００１５】
［ゲーム概要］
以下の説明では、家庭用ゲーム装置において実行されるアクションゲームを例として説明する。本実施の形態に係るアクションゲームは、３次元の仮想空間が生成され、ユーザが当該仮想空間内で行動するプレイヤキャラクタを操作して、敵キャラクタを全滅させる、またはゲーム空間内の所定の位置に到達する等といった所定の目標を達成するために、敵キャラクタと戦うことにより進行する。
【００１６】
［ハードウェア構成］
上述したゲームを実現するゲーム装置の構成について説明する。本実施の形態におけるゲームシステムは、下記ゲーム装置２と、当該ゲーム装置２に接続されるモニタ（表示部）１９、スピーカ２２およびコントローラ（操作部）２４などの外部装置とで構成され、下記ディスク型記憶媒体３０から読み込んだゲームプログラム３０ａおよびゲームデータ３０ｂに基づいてゲームを行い得るものである。ただし、以下では、説明を簡単にするため、単にゲーム装置２と称する場合がある。
【００１７】
図１は、本実施の形態におけるゲーム装置２のハードウェア構成を示すブロック図である。図１に示すように、ゲーム装置２は、他のゲーム装置２およびサーバ装置３との間で、インターネットまたはＬＡＮなどの通信ネットワークＮＷを介して互いに通信可能である。このゲーム装置２は、その動作を制御するコンピュータであるＣＰＵ１０を備え、このＣＰＵ１０にはバス１１を介してディスクドライブ１２、メモリカードスロット１３、プログラム記憶部を成すＨＤＤ１４、ＲＯＭ１５およびＲＡＭ１６が接続されている。
【００１８】
また、ＣＰＵ１０には、バス１１を介してグラフィック処理部１７、オーディオ合成部２０、無線通信制御部２３およびネットワークインタフェース２５が接続されている。
【００１９】
このうちグラフィック処理部１７は、ＣＰＵ１０の指示にしたがってゲーム空間および各キャラクタなどを含むゲーム画像を描画する。また、グラフィック処理部１７にはビデオ変換部１８を介して外部のモニタ１９が接続されており、グラフィック処理部１７にて描画されたゲーム画像はビデオ変換部１８において動画形式に変換され、モニタ１９にて表示されるようになっている。
【００２０】
オーディオ合成部２０は、ＣＰＵ１０の指示に従ってデジタルのゲーム音声を再生および合成する。また、オーディオ合成部２０にはオーディオ変換部２１を介して外部のスピーカ２２が接続されている。したがって、オーディオ合成部２０にて再生および合成されたゲーム音声は、オーディオ変換部２１にてアナログ形式にデコードされ、さらにスピーカ２２から外部へ出力されるようになっている。
【００２１】
さらに、オーディオ合成部２０は、ゲーム装置２に接続されるヘッドセットやコントローラ２４等に設けられたマイク２６から入力されるユーザの音声等がオーディオ変換部２１にてデジタル形式にコードされたデータを取得可能である。オーディオ合成部２０は、取得したデータをＣＰＵ１０に入力情報として伝えることができる。
【００２２】
無線通信制御部２３は、２．４ＧＨｚ帯の無線通信モジュールを有し、ゲーム装置２に付属するコントローラ２４との間で無線により接続され、データの送受信が可能となっている。ユーザは、このコントローラ２４に設けられたボタン等の操作子（後述）を操作することにより、ゲーム装置２へ信号を入力することができ、モニタ１９に表示されるプレイヤキャラクタの動作を制御可能になっている。また、ネットワークインタフェース２５は、インターネットまたはＬＡＮなどの通信ネットワークＮＷに対してゲーム装置２を接続するものであり、他のゲーム装置２またはサーバ装置３との間で通信可能である。そして、ゲーム装置２を、通信ネットワークＮＷを介して他のゲーム装置２と接続し、互いにデータを送受信することにより、同一のゲーム空間内で同期して複数のプレイヤキャラクタを表示させることができる。これにより、本ゲームにおいては、複数のユーザに対応する複数のプレイヤキャラクタが協同して敵キャラクタと戦う、または複数のユーザ同士が敵対して対戦する、マルチプレイが可能である。
【００２３】
［ゲーム装置の機能的構成］
図２は、図１に示すゲーム装置２の機能的な構成を示すブロック図である。図１に示すようにゲーム装置２は、ＣＰＵ１０、ＨＤＤ１４、ＲＯＭ１５、ＲＡＭ１６、グラフィック処理部１７、ビデオ変換部１８、オーディオ合成部２０、オーディオ変換部２１、ネットワークインタフェース２５などを含む制御部４を備えたコンピュータとして動作する。そして、図２に示すように、ゲーム装置２の制御部４は、本発明のゲームプログラム３０ａを実行することで、仮想空間生成手段４１、画面表示手段４２、流体表現手段４３、および、移動オブジェクト制御手段４４等の機能を発揮する。流体表現手段４３は、モデル配置手段４５、ポリゴンメッシュ配置手段４６、および、流体要素表示手段４７を含んでいる。移動オブジェクト制御手段４４は、キャラクタ制御手段４８を含んでいる。
【００２４】
このうち、仮想空間生成手段４１は、３次元の仮想空間を生成する。当該仮想空間が、ユーザが操作するプレイヤキャラクタが行動するゲーム空間となる。さらに、仮想空間生成手段４１は、仮想空間に配置される固定オブジェクトおよび／または当該仮想空間内を移動するプレイヤキャラクタ等の移動オブジェクトを生成する。例えば、仮想空間生成手段４１は、プレイヤキャラクタの移動に伴って、ゲームデータ３０ｂに含まれるオブジェクトおよびテクスチャなどのデータを読み出し、三次元の仮想空間を生成する。
【００２５】
図３は、本実施の形態における３次元の仮想空間を示す平面図である。また、図４は、本実施の形態におけるゲーム画面を示す図である。図３に示すように、３次元の仮想空間Ｓには、地形がポリゴン、テクスチャ等で描画され、当該地形上に各種のオブジェクト、仮想カメラＣ等が配置される。例えば、図３の例においては、移動オブジェクトとして、ユーザがコントローラ２４を介して操作可能なプレイヤキャラクタＰおよびコンピュータにより動作制御されるノンプレイヤキャラクタＥが仮想空間Ｓに配置されている。
【００２６】
移動オブジェクト制御手段４４は、仮想空間を移動可能な移動オブジェクトＰ，Ｅの移動を制御する。特に、移動オブジェクト制御手段４４は、キャラクタ制御手段４８として機能し、少なくとも当該コンピュータを操作するユーザに対応するキャラクタ（プレイヤキャラクタ）の動作を、当該ユーザによるコントローラ２４の操作入力またはゲームの進行状況に応じて制御する。移動オブジェクトは、プレイヤキャラクタＰ以外の移動可能なキャラクタまたは物体を含む。例えば移動オブジェクトには、敵キャラクタ等のノンプレイヤキャラクタＥや、車、飛行機等の乗物や、ボール、爆弾、弾丸、弓矢等の飛翔物や、動物や、爆発等によって飛散する家具等の固定物等が含まれる。これらの移動オブジェクトも、移動オブジェクト制御手段４４によって制御される。
【００２７】
画面表示手段４２は、仮想空間Ｓに配置した仮想カメラＣで撮影した画像をゲーム画面Ｇ（図４）としてモニタ１９に表示する。ゲーム画面Ｇには、仮想カメラＣの撮影範囲Ｕに含まれる移動オブジェクトＰ，Ｅ、および後述する流体要素Ｔ１等も表示される。
【００２８】
流体表現手段４３は、仮想空間Ｓ内における流体要素Ｔ１の３次元表現をゲーム画面Ｇ上で行う。本実施の形態においては、図４に示すように、ノンプレイヤキャラクタＥが把持している棒の先から煙が立ち上っている状態（一連の動きの表現）を流体要素Ｔ１として例示している。流体要素は、これらに限られず、例えば炎、煙、水蒸気等の気体または気体中を浮遊する粒子であってもよいし、例えば水、血等の液体であってもよい。
【００２９】
［流体表現処理］
図５は、本実施の形態における流体要素Ｔ１の構造例を示す図である。本実施の形態において、流体要素Ｔ１を構成する流体オブジェクトは、線状モデルＫ、ポリゴンメッシュＭおよび、ポリゴンメッシュＭ上に動画として描画される流体要素Ｔ１により構成される。線状モデルＫは、可動部である複数の関節Ｌ０〜Ｌ４（以下、関節Ｌと総称する場合がある）を有し、当該複数の関節Ｌ０〜Ｌ４が順に連結された構造を有している。図５において、隣接する関節間において両関節を連結する連結体をＮ１〜Ｎ４で表している（以下、連結体Ｎと総称する場合がある）。線状モデルＫは、複数の関節Ｌ０〜Ｌ４で曲がることによって変形する。なお、本実施の形態において、関節Ｌの数を５つとしているが、２〜４つでも、６つ以上でもよい。例えば、立ち上る煙を表現する際には、実際には関節Ｌの数を５〜１０個の範囲とすることが想定される。
【００３０】
ポリゴンメッシュＭは、線状モデルＫが中心となるように線状モデルＫの周囲に配置されている。ポリゴンメッシュＭは、ポリゴンの各関節における３次元位置と、ポリゴンメッシュＭ上に表示される流体要素Ｔ１の２次元座標位置とが対応付けられたものであり、２次元データとしてゲームデータ３０ｂに含まれている流体要素Ｔ１のデータ（後述する複数のテクスチャ画像のデータ、ムービーデータまたは２次元シミュレーションデータ等）がポリゴンメッシュＭを介して３次元的に描画される。なお、線状モデルＫおよびポリゴンメッシュＭ自体は、ゲーム画面Ｇ上には表示されない（透明である）。したがって、実際のゲーム画面Ｇ上では、ポリゴンメッシュＭ上に表示される流体要素Ｔ１のみが表示される。ただし、図４では流体要素Ｔ１が線状モデルＫに従っていることが把握できるように、線状モデルＫを模式的に表示している。
【００３１】
流体表現手段４３は、上記のような構造の流体オブジェクトを用いて流体要素Ｔ１の３次元表現を行う。すなわち、モデル配置手段４５は、線状モデルＫを仮想空間Ｓに配置する。また、ポリゴンメッシュ配置手段４６は、ポリゴンメッシュＭが線状モデルＫの動きに追従して変形するようにポリゴンメッシュＭを線状モデルＫの周囲に配置する。例えば、線状モデルＫの各連結体Ｎに垂直なポリゴンメッシュＭの断面上の３次元座標と当該断面内に位置する線状モデルＫの３次元座標とが対応付けられている。ポリゴンメッシュ配置手段４６は、線状モデルＫの各位置における３次元座標の変化に基づいて対応するポリゴンメッシュＭの３次元座標を変化させる。また、流体要素表示手段４７は、ポリゴンメッシュＭ上に流体要素Ｔを表示する。
【００３２】
ここで、モデル配置手段４５は、線状モデルＫの基端部Ｋ０（関節Ｌ０が固定される箇所）を所定の方向に移動させるとともに、基端部Ｋ０から間欠的に射出され、基端部Ｋ０を基準とする所定の軌道Ｑｉ（ｉ＝０，１，２，…）に沿って移動する複数の仮想点ｘｉ（ｉ＝０，１，２，…）に、線状モデルＫが追従するように線状モデルＫを動かす。所定の軌道Ｑｉは、線状モデルＫの基端部Ｋ０の静止時における線状モデルＫの関節Ｌ０〜Ｌ４の配設位置の基準となるものである。
【００３３】
線状モデルＫの基端部Ｋ０は、例えば当該基端部Ｋ０が配置されているオブジェクトが移動オブジェクト（本例におけるノンプレイヤキャラクタＥ等）である場合、当該移動オブジェクトの移動に伴って移動する。これに加えてまたはこれに代えて、仮想空間Ｓ内における外部要因（風等）によって基端部Ｋ０が移動してもよい。また、基端部Ｋ０が配置されているオブジェクトの移動または静止の別に拘わらず、基端部Ｋ０が往復動（振動）等の所定の態様で移動してもよい。このようなオブジェクトの移動に拘わらない基端部Ｋ０の移動は、少なくともゲーム画面Ｇに表示されている間において常時移動するようにしてもよいし、所定のトリガに応じて移動を開始するようにしてもよい。所定のトリガは、例えば、所定のスイッチが押下された場合、対象のオブジェクトに攻撃等が当たった場合等が例示されるがこれらに限定されない。
【００３４】
なお、図４に示すようなノンプレイヤキャラクタＥが把持している棒の先端から煙である流体要素Ｔ１が立ち上るような場合には、当該棒自体を線状モデルＫの基端部Ｋ０としてもよい。すなわち、ノンプレイヤキャラクタＥが把持している棒がノンプレイヤキャラクタＥの動作等に応じて動くことにより、基端部Ｋ０が移動するとしてもよい。しかし、これに限られず、線状モデルＫの基端部Ｋ０は、当該基端部Ｋ０が配置されるオブジェクト等とは独立して設定されてもよい。例えば、図４に示す例において、ノンプレイヤキャラクタＥが把持している棒が移動するか否かに拘わらず、基端部Ｋ０が移動してもよい。この場合、基端部Ｋ０はノンプレイヤキャラクタＥが把持している棒の先端部を基準として所定範囲を移動可能に配置される。この場合、基端部Ｋ０はゲーム画面Ｇ上には表示されない（透明である）。なお、後述する図６および図７については、基端部Ｋ０を箱状の構造物のように明示しているが、前述の通り、ゲーム画面Ｇ上では当該基端部Ｋ０は表示されなくてもよい。
【００３５】
図６は、本実施の形態における線状モデルの動かし方を説明するための図である。図６（ａ）は、時刻ｔ１における線状モデルＫの状態を示し、図６（ｂ）は、時刻ｔ１から所定時刻経過後の時刻ｔ２における線状モデルＫの状態を示し、図６（ｃ）は、時刻ｔ２から所定時刻経過後の時刻ｔ３における線状モデルＫの状態を示し、図６（ｄ）は、時刻ｔ３から所定時刻経過後の時刻ｔ４における線状モデルＫの状態を示す。本例においては、仮想点ｘｉの軌道Ｑｉが直線である例を示し、線状モデルＫの基端部Ｋ０は、時刻ｔ１までの期間は、線状モデルＫの基端部Ｋ０は停止し、時刻ｔ１から時刻ｔ３までの間、軌道Ｑｉに対して直交する方向（図６においては右方向）に移動し、時刻ｔ３から時刻ｔ４までの間、時刻ｔ１から時刻ｔ３までとは反対方向（図６においては左方向）に移動する態様を例示する。なお、本例において、各時刻間の間隔は一定であり、線状モデルＫの基端部Ｋ０は、等速で移動するものとする。
【００３６】
時刻ｔ１までの期間は、線状モデルＫの基端部Ｋ０は停止しているため、線状モデルＫは、基端部Ｋ０からすべての関節Ｌ０〜Ｌ４が一直線上に並ぶ（後述する直線状の軌道Ｑ１に沿って並ぶ）ように配置される。図６（ａ）に示すように、時刻ｔ１において、仮想点ｘ１は、線状モデルＫの基端部Ｋ０から軌道Ｑ１に沿って進むように発射される。このため、この時点で線状モデルＫは、それまでの状態から変化しない。時刻ｔ１から時刻ｔ２へ時間が進むにつれて線状モデルＫの基端部Ｋ０は、右方向に移動する。ここで、仮想点ｘ１の軌道Ｑ１は仮想点ｘ１の発射時点である時刻ｔ１における位置に固定されている。したがって、仮想点ｘ１は、線状モデルＫの基端部Ｋ０の移動に拘わらず、元の軌道Ｑ１に沿って進む。
【００３７】
図６（ｂ）に示すように、時刻ｔ２において、仮想点ｘ２は、線状モデルＫの基端部Ｋ０から軌道Ｑ２に沿って進むように発射される。軌道Ｑ２は、時刻ｔ２における線状モデルＫの基端部Ｋ０に基づいて設定される。したがって、軌道Ｑ２は、軌道Ｑ１から線状モデルＫの基端部Ｋ０の右方向へ距離Ｒだけ平行移動した軌道となる。この結果、線状モデルＫは、仮想点ｘ１，ｘ２の位置を通るように変形する。図６（ｂ）においては、関節Ｌ０が仮想点ｘ２に位置し、関節Ｌ１が仮想点ｘ１に位置し、その他の関節Ｌ２〜Ｌ４が軌道Ｑ１に沿うように、線状モデルＫが変形する。
【００３８】
時刻ｔ２から時刻ｔ３へ時間が進むにつれて線状モデルＫの基端部Ｋ０は、右方向に移動する。ここで、仮想点ｘ２の軌道Ｑ２は仮想点ｘ２の発射時点である時刻ｔ２における位置に固定されている。したがって、仮想点ｘ２は、線状モデルＫの基端部Ｋ０の移動に拘わらず、元の軌道Ｑ２に沿って進む。図６（ｃ）に示すように、時刻ｔ３において、仮想点ｘ３は、線状モデルＫの基端部Ｋ０から軌道Ｑ３に沿って進むように発射される。軌道Ｑ３は、時刻ｔ３における線状モデルＫの基端部Ｋ０に基づいて設定される。したがって、軌道Ｑ３は、軌道Ｑ２から線状モデルＫの基端部Ｋ０の右方向へ距離Ｒだけ平行移動した軌道となる。この結果、線状モデルＫは、仮想点ｘ１，ｘ２，ｘ３の位置を通るように変形する。図６（ｃ）においては、関節Ｌ０が仮想点ｘ３に位置し、関節Ｌ１が仮想点ｘ２に位置し、関節Ｌ２が仮想点ｘ１に位置し、その他の関節Ｌ３，Ｌ４が軌道Ｑ１に沿うように、線状モデルＫが変形する。
【００３９】
時刻ｔ３から時刻ｔ４へ時間が進むにつれて線状モデルＫの基端部Ｋ０は、左方向に移動する。ここで、仮想点ｘ３の軌道Ｑ３は仮想点ｘ３の発射時点である時刻ｔ３における位置に固定されている。したがって、仮想点ｘ３は、線状モデルＫの基端部Ｋ０の移動に拘わらず、元の軌道Ｑ３に沿って進む。図６（ｄ）に示すように、時刻ｔ４において、仮想点ｘ４は、線状モデルＫの基端部Ｋ０から軌道Ｑ４に沿って進むように発射される。軌道Ｑ４は、時刻ｔ４における線状モデルＫの基端部Ｋ０に基づいて設定される。したがって、軌道Ｑ４は、軌道Ｑ３から線状モデルＫの基端部Ｋ０の左方向へ距離Ｒだけ平行移動した軌道となる。本例では、軌道Ｑ４は、軌道Ｑ２に一致する。この結果、線状モデルＫは、仮想点ｘ１，ｘ２，ｘ３，ｘ４の位置を通るように変形する。図６（ｄ）においては、関節Ｌ０が仮想点ｘ４に位置し、関節Ｌ１が仮想点ｘ３に位置し、関節Ｌ２が仮想点ｘ２に位置し、関節Ｌ３が仮想点ｘ１に位置し、その他の関節Ｌ４が軌道Ｑ１に沿うように、線状モデルＫが変形する。以下同様に基端部Ｋ０から軌道Ｑｉに沿って進むように発射される仮想点ｘｉに追従するように線状モデルＫが変形する。
【００４０】
上記のような仮想点ｘｉに追従して線状モデルＫが変形する際、線状モデルＫの互いに接続されている（連結体Ｎｉの両端に位置する）２つの関節間の張力は、線状モデルＫの変形には考慮されない。すなわち、例えば関節Ｌ０が移動した場合であっても、関節Ｌ１の移動に関して、関節Ｌ０の移動による張力の影響は及ばない。なお、この場合であっても、図６に示すように、互いに接続されている２つの関節間の距離（各連結体Ｎ１〜Ｎ４の長さ）は一定に維持されてもよい。一方、後述する図７の例に示すように、互いに接続されている２つの関節間の距離が変化してもよい。
【００４１】
上記のような複数の仮想点ｘｉに追従する線状モデルＫの変形を容易に実現するために、モデル配置手段４５は、線状モデルＫの基端部Ｋ０の動きに伴って移動する線状モデルＫの各関節Ｌ０〜Ｌ４の移動速度を、互いに接続された２つの関節のうち、先端部（関節Ｌ４）側の関節の移動速度が基端部Ｋ０側の関節の移動速度より遅くなるように、それぞれ制限する。
【００４２】
例えば、図６の例において、右方向の移動のみを考えると、時刻ｔ１から時刻ｔ３の期間（Ｔとする）、関節Ｌ０は、距離２Ｒを移動する一方、関節Ｌ１は距離Ｒを移動する。したがって、関節Ｌ１の右方向の移動速度Ｒ／Ｔは、関節Ｌ０の右方向の移動速度２Ｒ／Ｔより遅くなる。したがって、線状モデルＫの基端部Ｋ０の右方向の移動に際しては、互いに接続された２つ関節Ｌ０，Ｌ１のうち、先端部側の関節Ｌ１の移動速度Ｒ／Ｔが基端部Ｋ０側の関節Ｌ０の移動速度２Ｒ／Ｔより遅くなるように制限される。同様に、関節Ｌ２の移動速度が関節Ｌ１の移動速度より遅くなり、関節Ｌ３の移動速度が関節Ｌ２の移動速度より遅くなり、関節Ｌ４の移動速度が関節Ｌ３の移動速度より遅くなるように制限される。これにより、リアルな３次元表現を行うための線状モデルＫの動きを簡単な処理で実現することができる。なお、線状モデルＫをより滑らかに動かすために、上記のような線状モデルＫに対して公知のスキニング処理が適用され得る。
【００４３】
以上のように、仮想点ｘｉに追従するように変形する線状モデルＫを用いて、流体要素表示手段４７は、線状モデルＫの基端部Ｋ０から先端部（関節Ｌ４）に向けて流体要素Ｔ１が流れるような表示を行う。流体要素Ｔ１は、ポリゴンメッシュＭに対応付けられる２次元画像上に描画される動画により表現される。この動画には、例えば、複数のテクスチャ画像を所定の順番でポリゴンメッシュＭ上に表示する連番アニメーション、予め作成された動画データをポリゴンメッシュ上に表示するムービーテクスチャ、または後述する流体の２次元シミュレーションによる表現等が含まれる。
【００４４】
上記のような表示態様によれば、流体要素Ｔ１を表示するポリゴンメッシュＭが線状モデルＫに基づいて変形する。この際、線状モデルＫが、所定の軌道Ｑｉに沿って移動する複数の仮想点ｘｉに追従するように変形するため、線状モデルＫの各関節Ｌ１〜Ｌ４の動きが互いに影響し合わない。これにより、線状モデルＫの動きを滑らかにすることができ、流体の３次元表現に好適に適用することができる。したがって、ポリゴンメッシュＭ上に表示される流体要素Ｔ１を、よりリアルな流体の３次元表現とすることができる。
【００４５】
［その他の例］
線状モデルＫの動きの元となる仮想点ｘｉの軌道Ｑｉは、上記の例のように直線であってもよいし、曲線または折れ線であってもよい。図７は、本実施の形態の流体要素の他の例を示す図である。図７（ａ）は、線状モデルＫが曲線状の軌道Ｖ１に沿っている流体要素Ｔ２を示す図であり、図７（ｂ）は、図７（ａ）における線状モデルＫが変形する過程を示す図であり、図７（ｃ）は、図７（ｂ）による変形後の線状モデルＫに沿っている流体要素Ｔ３を示す図である。なお、前述したように、ゲーム画面Ｇ上には線状モデルＫは表示されない（透明である）が、図７（ａ）および図７（ｃ）においては、流体要素Ｔ２，Ｔ３との関係が分かり易いように線状モデルＫを明示している。
【００４６】
本例においては、流体要素Ｔ２，Ｔ３として、例えば、仮想空間Ｓ内に配置された固定オブジェクト（図示せず）から水が水平方向に噴出し、その後、水が自然落下により流れ落ちる様子を示す表現態様（滝のような表現）を例示している。本例における仮想点ｘｉは、線状モデルＫの基端部Ｋ０から水平方向に発射され、発射後は自由落下するような曲線状の軌道Ｖｉを通過するように設定されている。したがって、図７（ａ）に示すように、線状モデルＫの基端部Ｋ０が停止している状態において、線状モデルＫは、基端部Ｋ０から弧を描くように下方に曲げられた状態となる。このとき、ポリゴンメッシュＭ（図７では図示せず）上に表示される流体要素Ｔ２は、線状モデルＫの基端部Ｋ０から噴出した水が弧を描いて落下しているような表現（アニメーション表現等）とされている。さらに、流体要素Ｔ２は、水の勢いを強調して表現するために、線状モデルＫの先端部（関節Ｌ４）へ向かうに従って水の束が広がるように表現される。
【００４７】
ここで、図７（ｂ）に示すように、基端部Ｋ０が下方へ移動した場合、仮想点ｘ１〜ｘ４は、それぞれ、各仮想点ｘ１〜ｘ４の発射時点における線状モデルＫの基端部Ｋ０の位置を基準とする軌道Ｖ１〜Ｖ４に沿って移動する。このため、線状モデルＫは、基端部Ｋ０に対して先端部（関節Ｌ４）が上方に位置するように変形する。この結果、図７（ｃ）に示すように、ポリゴンメッシュＭ上に表示される流体要素Ｔ３は、線状モデルＫの基端部Ｋ０から噴出した水が一旦上方に吹き上げられてから自由落下するような表現となる。この場合、流体要素Ｔ３は、線状モデルＫの基端部Ｋ０の近傍では一部の水が重力により逆流し、線状モデルＫの先端部（関節Ｌ４）へ向かうに従って水の束が細くなるように表現される。
【００４８】
このため、本例においては、一の流体表現に対して、複数（２つ）の流体要素Ｔ２，Ｔ３（複数の動画）が選択的に用いられる。言い換えると、流体要素表示手段４７は、線状モデルＫの動きに応じて複数の表示態様（流体要素Ｔ２，Ｔ３）の中から一の表示態様を選択して表示する。これにより、線状モデルＫがどのような形状に変化しても立体感および現実感の高い表現を行うことができる。なお、本例においては２つの表示態様（流体要素Ｔ２，Ｔ３）を用いたが３つ以上の表示態様を選択的に用いてもよい。なお、複数の動画は、例えば連番アニメーションを構成する複数のテクスチャ画像自体および／またはその表示順が異なる複数の動画として構成されてもよいし、アニメーションの表示速度が異なる複数の動画として構成されてもよい。
【００４９】
［変形例］
以上、本発明の実施形態について説明したが、本発明は上記実施の形態に限定されるものではなく、その趣旨を逸脱しない範囲内で種々の改良、変更、修正が可能である。
【００５０】
例えば、上記実施の形態においては、線状モデルＫの基端部Ｋ０から発射される仮想点ｘｉの初速は変化しない前提で説明したが、基端部Ｋ０の位置、移動方向または移動速度等に応じて仮想点ｘｉの初速を変化させてもよい。この場合、仮想点ｘｉの初速に応じて仮想点ｘｉの軌道Ｑｉ，Ｖｉを変化させてもよい。これに加えてまたはこれに代えて、仮想点ｘｉの初速に応じて線状モデルＫの各関節Ｌ１〜Ｌ４の移動速度（制限速度）を変更してもよい。仮想点ｘｉの初速に応じて仮想点ｘｉの軌道Ｑｉ，Ｖｉおよび／または線状モデルＫの各関節Ｌ１〜Ｌ４の移動速度が変化することにより、仮想点ｘｉの初速に応じて線状モデルＫの変形態様が変化し得る表現態様となる。これにより、流体の流れる勢いの違いによる流体表現の変化を実現することができる。
【００５１】
また、仮想点ｘｉは、図３から図６の例に示すように上向きに移動してもよいし、図７の例に示すように、下向きに移動してもよい。仮想点ｘｉが上向きに移動する態様は、例えば立ち上る煙等、気体の表現に適している。また、仮想点ｘｉが下向きに移動する態様は、例えば流れ落ちる水等、液体の表現に適している。
【００５２】
また、上記実施の形態では、仮想点ｘｉを所定の時間間隔で射出することにより、間欠的に射出する態様を例示したが、これに代えて、基端部Ｋ０の移動距離に応じて射出することにより、間欠的に射出してもよい。
【００５３】
また、上記実施の形態では、線状モデルＫの関節Ｌの位置は必ずしも複数の仮想点ｘｉの位置に一致しない態様を例示したが、モデル配置手段４５は、線状モデルＫの複数の関節Ｌの位置が、複数の仮想点ｘｉの位置に一致するように線状モデルＫを動かしてもよい。また、線状モデルＫは、柔軟に曲がるように構成される限り、必ずしも複数の関節Ｌを有していなくてもよい。
【００５４】
流体要素Ｔ１〜Ｔ３は、ポリゴンメッシュＭ上で流体要素Ｔ１〜Ｔ３を構成する単位要素（流体の粒子等）の２次元シミュレーションを行い、その結果をポリゴンメッシュＭ上に表示することにより、流体要素Ｔ１〜Ｔ３がポリゴンメッシュＭ上に表現される態様としてもよい。
【００５５】
この場合、流体要素表示手段４７は、２次元シミュレーション表示手段として機能し、ポリゴンメッシュＭ上で流体要素Ｔ１〜Ｔ３を構成する単位要素の２次元シミュレーションを行い、その結果をポリゴンメッシュＭ上に表示する。２次元シミュレーションにおいて、ポリゴンメッシュＭには、それぞれ所定のグリッド（シミュレーショングリッド）が設定される。例えば、シミュレーショングリッドは、ポリゴンメッシュＭを６４マス×６４マスに区分けするグリッドとして構成される。流体要素表示手段４７は、ポリゴンメッシュＭ上における所定の流体発生源を起点とする流体要素Ｔ１〜Ｔ３を構成する単位要素の動きをポリゴンメッシュＭ上においてグリッド単位でシミュレーションする。
【００５６】
２次元シミュレーションの方法は特に限定されず、公知のシミュレーション方法を種々適用可能である。例えば、２次元シミュレーションとしては、"Real-Time Fluid Dynamics for Games", Jos Stam, <http://www.intpowertechcorp.com/GDC03.pdf>、"Fast Fluid Dynamics Simulation on the GPU", Mark J. Harris, Chapter 38. GPU Gems, <http://http.developer.nvidia.com/GPUGems/gpugems_ch38.html>、"A Simple Fluid Solver based on the FFT", Jos Stam, <http://www.dgp.toronto.edu/people/stam/reality/Research/pdf/jgt01.pdf>、"Go With The Flow: Fluid and Particle Physics in PixelJunk Shooter", Jaymin Kessler, Game Developers Conference 2010, <http://fumufumu.q-games.com/gdc2010/shooterGDC.pdf>等に記載された態様が例示できる。
【００５７】
また、上記実施の形態において、アクションゲームを例示したが、上記流体の表現態様は、ロールプレイングゲーム、シミュレーションゲームまたはシューティングゲーム等、３次元の仮想空間を用いる種々のゲームに適用可能である。
【００５８】
また、上記実施の形態では据え置き型のゲーム装置について説明したが、携帯型のゲーム装置、携帯電話機、およびパーソナルコンピュータなどのコンピュータについても、本発明を好適に適用することができる。
【産業上の利用可能性】
【００５９】
本発明は、３次元の仮想空間を用いたゲームにおいて、よりリアルな流体の３次元表現を行うために有用である。
【符号の説明】
【００６０】
２  ゲーム装置
３０ａ  ゲームプログラム
３０ｂ  ゲームデータ
４１  仮想空間生成手段
４２  画面表示手段
４３  流体表現手段
４５  モデル配置手段
４６  ポリゴンメッシュ配置手段
４７  流体要素表示手段
Ｃ  仮想カメラ
Ｋ  線状モデル
Ｋ０  基端部
Ｑｉ，Ｖｉ（ｉ＝１，２，…）  軌道
Ｓ  仮想空間
Ｔ１，Ｔ２，Ｔ３  流体要素
ｘｉ（ｉ＝１，２，…）  仮想点
【図１】
0006397436.tif 000002
【図２】
0006397436.tif 000003
【図３】
0006397436.tif 000004
【図４】
0006397436.tif 000005
【図５】
0006397436.tif 000006
【図６】
0006397436.tif 000007
【図７】
0006397436.tif 000008