(57)【要約】【課題】情報処理装置の演算処理負担を軽減しつつ、変形オブジェクトの挙動を自然に表現する。【解決手段】情報処理装置３を、変形可能な変形オブジェクトに対して１又は複数の基準点を設定する基準点設定処理部１３、変形オブジェクトに対して複数の制御点６１を設定する制御点設定処理部１５、制御点６１に対して少なくとも１つの基準点を関連付けると共に、当該関連付けられた基準点ごとに関連度合いを表す重み量を設定する重み量設定処理部１７、制御点６１の第１目標位置を、当該制御点６１に関連付けられた基準点の第１現在位置と重み量とに基づいて計算する目標位置計算処理部１９、第１目標位置に近づくように制御点６１の第２現在位置を更新する制御点更新処理部２１、第２現在位置に基づいて変形オブジェクトの形状を表す画像を生成する画像生成処理部２３、として機能させる。【選択図】図２
2019174871.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置を、
変形可能な変形オブジェクトに対して１又は複数の基準点を設定する基準点設定処理部、
前記変形オブジェクトに対して複数の制御点を設定する制御点設定処理部、
前記制御点に対して少なくとも１つの前記基準点を関連付けると共に、当該関連付けられた前記基準点ごとに関連度合いを表す重み量を設定する重み量設定処理部、
前記制御点の第１目標位置を、当該制御点に関連付けられた前記基準点の第１現在位置と前記重み量とに基づいて計算する目標位置計算処理部、
前記第１目標位置に近づくように前記制御点の第２現在位置を更新する制御点更新処理部、
前記第２現在位置に基づいて前記変形オブジェクトの形状を表す画像を生成する画像生成処理部、
として機能させることを特徴とする画像生成プログラム。
【請求項２】
前記情報処理装置を、
前記制御点の前記第２現在位置が前記変形オブジェクトに衝突する衝突オブジェクトの内部に位置するか否かを判定する衝突判定処理部、
前記第２現在位置が衝突オブジェクトの内部に位置すると判定された衝突状態の前記制御点の表示用位置の第２目標位置を、前記第２現在位置と、前記制御点から最も近い前記衝突オブジェクトの表面までの距離と、前記制御点の法線ベクトルに基づいて計算する表示用目標位置計算処理部、
前記第２目標位置に近づくように前記衝突状態の制御点の前記表示用位置を更新する第１表示用位置更新処理部、としてさらに機能させ、
前記画像生成処理部は、
前記衝突状態の制御点の前記表示用位置に基づいて前記変形オブジェクトの形状を表す前記画像を生成する
ことを特徴とする請求項１に記載の画像生成プログラム。
【請求項３】
前記情報処理装置を、
前記衝突オブジェクトが前記変形オブジェクトに衝突を開始した時点から衝突中の現時点までの前記衝突オブジェクトの移動量を表す移動ベクトルを計算する移動量計算処理部、
前記移動ベクトルの方向への第１係数を設定する第１係数設定処理部、
前記法線ベクトルとは異なる参照方向を表す参照方向ベクトルと当該参照方向への第２係数を設定する第２係数設定処理部、
前記移動ベクトル、前記第１係数、前記参照方向ベクトル、前記第２係数に基づいて、前記衝突状態の制御点以外の非衝突状態の前記制御点の前記表示用位置を更新する第２表示用位置更新処理部、としてさらに機能させ、
前記画像生成処理部は、
前記非衝突状態の制御点の前記表示用位置に基づいて前記変形オブジェクトの形状を表す前記画像を生成する
ことを特徴とする請求項２に記載の画像生成プログラム。
【請求項４】
前記情報処理装置を、
前記変形オブジェクトが存在する仮想空間のワールド座標系における上方向を表す上方向ベクトルと当該上方向への第３係数を設定する第３係数設定処理部、としてさらに機能させ、
前記第２表示用位置更新処理部は、
前記上方向ベクトル、前記第３係数に基づいて前記非衝突状態の制御点の前記表示用位置を更新する
ことを特徴とする請求項３に記載の画像生成プログラム。
【請求項５】
前記情報処理装置を、
前記変形オブジェクトに対して設定された前記複数の制御点のうち外側の層に存在する各制御点に対して隣接する前記制御点との間に多角形パッチを設定するパッチ設定処理部、としてさらに機能させ、
前記衝突判定処理部は、
一の前記変形オブジェクトの前記多角形パッチと他の前記変形オブジェクトの前記制御点とが貫通しているか否かを判定し、
前記情報処理装置を、
前記多角形パッチと前記制御点とが貫通していると判定された場合に、当該貫通した状態が解消されるように、前記一の変形オブジェクトの前記制御点の前記表示用位置と前記他の変形オブジェクトの前記制御点の前記表示用位置とを更新する第３表示用位置更新処理部、としてさらに機能させ、
前記画像生成処理部は、
前記表示用位置に基づいて前記一の変形オブジェクトと前記他の変形オブジェクトの形状を表す前記画像を生成する
ことを特徴とする請求項２乃至４のいずれか１項に記載の画像生成プログラム。
【請求項６】
前記情報処理装置を、
前記制御点に対して、前記衝突が発生していない初期状態における隣接する複数の前記制御点との初期距離を設定する初期距離設定処理部、
前記衝突が発生した状態における前記制御点の前記表示用位置同士の距離が前記初期距離に近似するように、前記表示用位置同士の距離を拘束する距離拘束処理部、
としてさらに機能させることを特徴とする請求項２乃至５のいずれか１項に記載の画像生成プログラム。
【請求項７】
ゲームプログラムであることを特徴とする請求項１乃至６のいずれか１項に記載の画像生成プログラム。
【請求項８】
請求項１乃至７のいずれか１項に記載の画像生成プログラムを記録した、情報処理装置が読み取り可能な記録媒体。
【請求項９】
情報処理装置によって実行される画像生成方法であって、
変形可能な変形オブジェクトに対して１又は複数の基準点を設定するステップと、
前記変形オブジェクトに対して複数の制御点を設定するステップと、
前記制御点に対して少なくとも１つの前記基準点を関連付けると共に、当該関連付けられた前記基準点ごとに関連度合いを表す重み量を設定するステップと、
前記制御点の第１目標位置を、当該制御点に関連付けられた前記基準点の第１現在位置と前記重み量とに基づいて計算するステップと、
前記第１目標位置に近づくように前記制御点の第２現在位置を更新するステップと、
前記第２現在位置に基づいて前記変形オブジェクトの形状を表す画像を生成するステップと、
を有する、画像生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成プログラム、記録媒体、画像生成方法に関する。
【背景技術】
【０００２】
従来、仮想空間内のキャラクタオブジェクトを変形させた画像を生成する技術が知られている。この技術によれば、主ボーンに固定された座標系における副ボーンの位置を変化させ、仮想空間に固定された座標系における制御点の位置を副ボーンの位置の変化量に基づいて計算し、計算された制御点の位置に基づいてスキンの形状を決めた画像を生成することで、仮想空間内のキャラクタオブジェクトを変形させる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４５７９９６４号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来技術では、変形オブジェクトの変形を自然な挙動とする場合には複雑な演算を行う必要があり、情報処理装置の演算処理負担が増大するという課題があった。
【０００５】
本発明はこのような問題点に鑑みてなされたものであり、情報処理装置の演算処理負担を軽減しつつ、変形オブジェクトの挙動を自然に表現することが可能な画像生成プログラム及びこの画像生成プログラムが記録された記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の画像生成プログラムは、情報処理装置を、変形可能な変形オブジェクトに対して１又は複数の基準点を設定する基準点設定処理部、前記変形オブジェクトに対して複数の制御点を設定する制御点設定処理部、前記制御点に対して少なくとも１つの前記基準点を関連付けると共に、当該関連付けられた前記基準点ごとに関連度合いを表す重み量を設定する重み量設定処理部、前記制御点の第１目標位置を、当該制御点に関連付けられた前記基準点の第１現在位置と前記重み量とに基づいて計算する目標位置計算処理部、前記第１目標位置に近づくように前記制御点の第２現在位置を更新する制御点更新処理部、前記第２現在位置に基づいて前記変形オブジェクトの形状を表す画像を生成する画像生成処理部、として機能させる。
【０００７】
上記目的を達成するために、本発明の記録媒体は、上記画像生成プログラムを記録した、情報処理装置が読み取り可能な記録媒体である。
【０００８】
上記目的を達成するために、本発明の画像生成方法は、情報処理装置によって実行される画像生成方法であって、変形可能な変形オブジェクトに対して１又は複数の基準点を設定するステップと、前記変形オブジェクトに対して複数の制御点を設定するステップと、前記制御点に対して少なくとも１つの前記基準点を関連付けると共に、当該関連付けられた前記基準点ごとに関連度合いを表す重み量を設定するステップと、前記制御点の第１目標位置を、当該制御点に関連付けられた前記基準点の第１現在位置と前記重み量とに基づいて計算するステップと、前記第１目標位置に近づくように前記制御点の第２現在位置を更新するステップと、前記第２現在位置に基づいて前記変形オブジェクトの形状を表す画像を生成するステップと、を有する。
【発明の効果】
【０００９】
本発明の画像生成プログラム及び記録媒体によれば、情報処理装置の演算処理負担を軽減しつつ、変形オブジェクトの挙動を自然に表現することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係るゲームシステムの全体構成の一例を表すシステム構成図である。
【図２】情報処理装置の機能的構成の一例を表すブロック図である。
【図３】基準点の設定の一例を表す説明図である。
【図４】制御点の設定の一例を表す説明図である。
【図５】基準点及び制御点の挙動の一例を表す説明図である。
【図６】衝突判定手法の一例を表す説明図である。
【図７】衝突状態の制御点の表示用位置の挙動の一例を表す説明図である。
【図８】多角形パッチの一例を表す説明図である。
【図９】情報処理装置のＣＰＵによって実行される処理手順の一例を表すフローチャートである。
【図１０】情報処理装置のハードウェア構成の一例を表すブロック図である。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施の形態について図面を参照しつつ説明する。なお、本実施形態では、本発明をゲームに適用する場合、すなわち本発明の画像生成プログラム及び画像生成方法が情報処理装置によって実行されることによりゲームが提供される場合について説明するが、適用対象をゲームに限定するものではない。
【００１２】
＜１．ゲームシステムの全体構成＞
まず、図１を用いて、本実施形態に係るゲームシステム１の全体構成の一例について説明する。図１に示すように、ゲームシステム１は、情報処理装置３と、コントローラ５と、表示装置７を有する。コントローラ５及び表示装置７の各々は、情報処理装置３と通信可能に接続されている。なお、図１には有線により接続された場合を図示しているが、無線により接続されてもよい。
【００１３】
情報処理装置３は、例えば据え置き型のゲーム機である。但しこれに限定されるものではなく、例えば入力部や表示部等を一体に備えた携帯型のゲーム機でもよい。また、ゲーム機以外にも、例えば、サーバコンピュータ、デスクトップ型コンピュータ、ノート型コンピュータ、タブレット型コンピュータ等のように、コンピュータとして製造、販売等されているものや、携帯電話、スマートフォン、ファブレット等のように、電話機として製造、販売等されているものでもよい。
【００１４】
プレイヤは、コントローラ５を用いて各種の操作入力を行う。図１に示す例では、コントローラ５は例えば十字キー９や複数のボタン１１等を有する。なお、コントローラ５は上記十字キー９やボタン１１に代えて又は加えて、例えばジョイスティックやタッチパッド等を有してもよい。
【００１５】
＜２．情報処理装置の機能的構成＞
次に、図２及び図３〜図８を用いて、情報処理装置３の機能的構成の一例について説明する。
【００１６】
図２に示すように、情報処理装置３は、基準点設定処理部１３と、制御点設定処理部１５と、重み量設定処理部１７と、目標位置計算処理部１９と、制御点更新処理部２１と、画像生成処理部２３と、衝突判定処理部２５と、表示用目標位置計算処理部２７と、第１表示用位置更新処理部２９と、移動量計算処理部３１と、第１係数設定処理部３３と、第２係数設定処理部３５と、第３係数設定処理部３７と、第２表示用位置更新処理部３９と、パッチ設定処理部４１と、第３表示用位置更新処理部４３と、初期距離設定処理部４５と、距離拘束処理部４７とを有する。
【００１７】
（２−１．衝突がない場合の変形処理）
まず、変形オブジェクトに対する衝突がない場合の変形処理について説明する。基準点設定処理部１３は、変形可能な変形オブジェクトに対して１又は複数の基準点を設定する。また制御点設定処理部１５は、変形オブジェクトに対して複数の制御点を設定する。
【００１８】
図３及び図４に、基準点及び制御点の設定の一例を示す。図３に示す例では、３次元仮想空間（２次元仮想空間でもよい）内に女性モデル４９が表示されている。女性モデル４９は水着５０を着用しており、プレイヤによるコントローラ５の操作に応じて各種の動作を行う。３次元仮想空間内にはワールド座標系（Ｘ，Ｙ，Ｚ）が設定されている。
【００１９】
女性モデル４９は、変形可能な変形オブジェクトとして、左右の乳房５１Ｌ，５１Ｒを備えている。なお、乳房以外にも、例えば尻、太もも、腹、二の腕、その他変形可能な程度に柔らかい身体部位を、変形オブジェクトとして備えてもよい。また、変形オブジェクト（変形オブジェクトを備えるオブジェクト）は、上記の女性モデルに限定されるものではなく、例えば男性モデル、人間以外の動物モデル、人間や動物以外の仮想的な生物モデル等でもよいし、例えば生物以外の物体等でもよい。
【００２０】
女性モデル４９は、身体を動かすための複数の基準点（いわゆるボーン）を備えている。各基準点は女性モデル４９の動作システム（モーション計算等）により移動し、現在位置情報（以下「第１現在位置」という）を有する。基準点設定処理部１３は、それらの一部又は全部を乳房５１Ｌ，５１Ｒを変形させるための基準点として設定する。図３に示す例では、左右の肩関節近傍に位置する基準点５３，５５、左右の乳房５１Ｌ，５１Ｒの中心近傍に位置する基準点５７，５９が、乳房５１Ｌ，５１Ｒを変形させるための基準点として設定されている。なお、上記以外の身体部位（例えば首関節）に位置する基準点を、乳房５１Ｌ，５１Ｒを変形させるための基準点に設定してもよい。
【００２１】
図４に、乳房５１Ｌに対して設定された制御点６１の一例を示す。なお、図示は省略するが乳房５１Ｒも同様である。制御点６１は、乳房５１Ｌの形状を表現するために制御上使用される点である。複数の制御点６１は直方体内で格子状に配列されており、その直方体が乳房５１Ｌを包含するように制御点設定処理部１５により設定される。制御点６１の数は特に限定されるものではないが、例えば乳房５１Ｌ，５１Ｒのそれぞれに対して２００〜３００個程度が設定される。以下では、格子状に配列された一群の制御点６１を管理単位としてエンティティという。図３に示すように、乳房５１Ｌにエンティティ６３Ｌが割り当てられ、乳房５１Ｒにエンティティ６３Ｒが割り当てられている。
【００２２】
図２に戻り、重み量設定処理部１７は、制御点に対して少なくとも１つの基準点を関連付けると共に、当該関連付けられた基準点ごとに関連度合いを表す重み量を設定する。本実施形態では、重み量設定処理部１７は、乳房５１Ｌに対応するエンティティ６３Ｌに含まれる各制御点６１に対しては３つの基準点５３，５５，５７を関連付け、乳房５１Ｒに対応するエンティティ６３Ｒに含まれる各制御点６１に対しては３つの基準点５３，５５，５９を関連付ける。また重み量設定処理部１７は、エンティティ６３Ｌに含まれる各制御点６１に対して、上記関連付けられた基準点５３，５５，５７ごとに重み量を設定し、エンティティ６３Ｒに含まれる各制御点６１に対して、上記関連付けられた基準点５３，５５，５９ごとに重み量を設定する。なお、１つの制御点６１に設定される各基準点に対する重み量（割合、比率）の合計は１である。
【００２３】
目標位置計算処理部１９は、制御点の目標位置（以下「第１目標位置」という）を、当該制御点に関連付けられた基準点の第１現在位置と重み量とに基づいて計算する。具体的には、目標位置計算処理部１９は、下記の計算式（１）にしたがって、各制御点６１の第１目標位置を、当該制御点６１に関連付けられた全ての基準点について当該基準点の第１現在位置と重み量との積を合計することにより計算する。
【００２４】
【数１】
2019174871.tif 000003
【００２５】
なお、ｇｏａｌ［ｉ］∈Ｒ３はｉ番目の制御点６１の第１目標位置、ＢｏｎｅＮｕｍ［ｉ］∈Ｎはｉ番目の制御点６１に関連付けられた基準点の数、ＢｏｎｅＷｅｉｇｈｔＡｒｒａｙ［ｉ］［ｊ］∈Ｒはｉ番目の制御点６１に関連付けられたｊ番目の基準点の重み量、ＢｏｎｅＰｏｓｉｔｉｏｎ［ｋ］∈Ｒ３はｋ番目の基準点の第１現在位置、ＢｏｎｅＡｒｒａｙ［ｉ］［ｊ］∈Ｚはｉ番目の制御点６１に関連付けられたｊ番目の基準点のインデックス（配列の添字）である。
【００２６】
制御点更新処理部２１は、上記目標位置計算処理部１９により計算された第１目標位置に近づくように制御点６１の現在位置（以下「第２現在位置」という）を更新する。例えば、制御点更新処理部２１は、下記の計算式（２）及び（３）にしたがって、各制御点６１の第２現在位置を更新する。
【００２７】
【数２】
2019174871.tif 000004
【００２８】
【数３】
2019174871.tif 000005
【００２９】
なお、ＮｏｄｅＶｅｌｏｃｉｔｙ［ｉ］（ｔ）はｉ番目の制御点６１の時刻ｔにおける移動速度、ｈは時間ステップ、αは変形オブジェクトの剛性、ｇｏａｌ［ｉ］（ｔ）はｉ番目の制御点６１の時刻ｔにおける第１目標位置、ＮｏｄｅＰｏｓｉｔｉｏｎ［ｉ］（ｔ）はｉ番目の制御点６１の時刻ｔにおける第２現在位置、ｆｅｘｔ［ｉ］（ｔ）は時刻ｔにおいてｉ番目の制御点６１に作用する外力、ｍ［ｉ］はｉ番目の制御点６１の質量である。上記剛性αは０から１の間で変化し、α＝１の場合は変形オブジェクトが剛体、α＜１の場合は０に近づくほど変形オブジェクトが柔らかいことを示す。
【００３０】
図５に、上述した制御による基準点及び制御点の挙動の一例を示す。なお、図５は乳房５１Ｌに対応するエンティティ６３Ｌに含まれる制御点６１及び関連付けられた基準点５３，５５，５７を図示しているが、説明を簡単にするために制御点６１の数を減らして簡易的な二次元オブジェクトとして説明する。
【００３１】
図５（ａ）に示す初期状態から、女性モデル４９が動作することにより、例えば図５（ｂ）に示すように各基準点５３，５５，５７が移動したとする。前述のように、各制御点６１には関連付けられた３つの基準点５３，５５，５７ごとに重み量が設定されており、基準点５３，５５，５７の移動後の第１現在位置と上記重み量に応じて、各制御点６１の第１目標位置６１ｇがそれぞれ計算される。図５（ｂ）にはこの計算された第１目標位置６１ｇが破線で示されている。その後、各制御点６１の第２現在位置が計算された第１目標位置６１ｇに近づくように更新され、各制御点６１が上述した剛性αに基づく速度により第１目標位置６１ｇに引き寄せられる。そして、図５（ｃ）に示すように、各制御点６１が第１目標位置６１ｇへの移動を完了する。このようにして、女性モデル４９の身体動作に伴う乳房５１Ｌの柔軟な変形が表現される。
【００３２】
図２に戻り、画像生成処理部２３は、上記制御点更新処理部２１により更新された制御点６１の第２現在位置に基づいて変形オブジェクトの形状を表す画像を生成する。なお、制御点６１は現在位置情報（第２現在位置）の他に表示用の位置情報（以下「表示用位置」という）を有しており、画像生成処理部２３は正確には上記表示用位置に基づいて画像を生成する。但し、変形オブジェクトに対し衝突がない状態では第２現在位置と表示用位置は略一致するため、衝突がない状態では画像生成処理部２３は制御点６１の第２現在位置に基づいて画像を生成する、とも言える。
【００３３】
（２−２．衝突がある場合の変形処理）
次に、変形オブジェクトに対して衝突がある場合の変形処理について説明する。衝突判定処理部２５は、変形オブジェクトに対する衝突の有無を判定する。なお、衝突判定はエンティティ単位で行われる。衝突の判定手法は、変形オブジェクトに対して衝突する衝突オブジェクトが変形可能か否か（変形オブジェクトとして処理されているか否か）により異なる。衝突オブジェクトが変形しないオブジェクトである場合には、衝突判定処理部２５は、制御点６１の第２現在位置が衝突オブジェクトの内部に位置するか否かを判定する。変形しない衝突オブジェクトとしては、例えばボールやカプセル、ボックス等のアイテム、他のモデルの柔らかくない身体部位（手足、頭、肩など）、着衣（水着など）等である。なお、衝突オブジェクトが変形するオブジェクトである場合の判定手法については後述する。
【００３４】
図６に、上記衝突判定手法の一例を示す。なお、図６は乳房５１Ｌに対応するエンティティ６３Ｌに含まれる制御点６１を図示しているが、説明を簡単にするために制御点６１の数を減らして簡易的な二次元オブジェクトとして説明する。
【００３５】
図６（ａ）は衝突前の状態を示しており、例えばボール等の衝突オブジェクト６５がエンティティ６３Ｌに向かって移動している。図６（ｂ）は衝突開始の状態を示しており、エンティティ６３Ｌに含まれる制御点６１のうちの１つの第２現在位置が衝突オブジェクト６５の内部に位置している。第２現在位置が衝突オブジェクトの内部に位置すると判定された制御点６１は、衝突状態として扱われる。図６（ｂ）及び図６（ｃ）ではこの衝突状態の制御点６１を斜線ハッチングで図示している。図６（ｃ）は衝突中の状態を示しており、衝突オブジェクト６５が衝突開始から移動ベクトル６７で表される移動方向及び移動量だけ進行することにより、複数の制御点６１が衝突状態となっている。
【００３６】
図２に戻り、表示用目標位置計算処理部２７は、第２現在位置が衝突オブジェクトの内部に位置すると判定された衝突状態の制御点６１の表示用位置の目標位置（以下「第２目標位置」という）を、第２現在位置と、制御点６１から最も近い衝突オブジェクトの表面までの距離と、制御点６１の法線ベクトルに基づいて計算する。なお、表示用位置は、前述のように各制御点６１が第２現在位置とは別に有する情報であり、画像生成処理部２３はこの表示用位置を用いてモデルのレンダリングを行う。また、法線ベクトルも同様に各制御点６１が有する情報であり、当該制御点６１に対応する位置での変形オブジェクトの表面の面方向に垂直な方向のベクトル（衝突時に凹む方向を規定するベクトル）である。
【００３７】
具体的には、表示用目標位置計算処理部２７は、下記の計算式（４）にしたがって、衝突状態の各制御点６１の第２目標位置を、当該制御点６１の第２現在位置から上記距離と法線ベクトルとの積を減ずることにより計算する。
【００３８】
【数４】
2019174871.tif 000006
【００３９】
なお、Ｐ＿ｄｉｓｐｌａｙ＿ｇｏａｌは制御点６１の第２目標位置、Ｐは制御点６１の第２現在位置、Ｄ＿ｓｕｒｆａｃｅは衝突状態の制御点６１から最も近い衝突オブジェクト６５の表面までの距離、Ｎは法線ベクトルである。なお、Ｄ＿ｓｕｒｆａｃｅは最大値が各制御点６１ごとに設定されていて、遠すぎる位置にＰ＿ｄｉｓｐｌａｙ＿ｇｏａｌが設定されないように制限される。これにより、不自然な変形描画を防止できる。
【００４０】
第１表示用位置更新処理部２９は、上記表示用目標位置計算処理部２７により計算された第２目標位置に近づくように、衝突状態の制御点６１の表示用位置を更新する。具体的には、１フレームで表示用位置が大きく動くと不連続性を感じさせるので、例えば数フレームをかけて表示用位置が第２目標位置に徐々に近づくように移動させる。また、前述の計算式（２）及び（３）にしたがって表示用位置を更新させてもよい。
【００４１】
図７に、上記制御による衝突状態の制御点６１の表示用位置の挙動の一例を示す。図７において、衝突状態の制御点６１（斜線ハッチングで図示）は第２現在位置に位置している。この制御点６１の表示用位置６１ｐの目標位置である第２目標位置６１ｐｇが上記計算式（４）により計算され、表示用位置６１ｐが第２現在位置から法線ベクトルＮと反対方向の第２目標位置６１ｐｇに向けて徐々に移動される。
【００４２】
以上の処理により、変形オブジェクトに衝突オブジェクト６５が衝突することによる変形（衝突した部位が凹む挙動）を表現することができる。しかしながら、例えばゴムボールを押す場合等について考えると、押した部位が凹む挙動は上記処理内容（衝突中の制御点６１の第２目標位置を算出して当該第２目標位置に近づくように表示用位置を更新する処理）により表現されるが、押していない部位が膨らむ挙動は別途の処理を演出的に加えることが好ましい。次に、この処理内容について説明する。
【００４３】
図２に戻り、移動量計算処理部３１は、衝突オブジェクト６５が変形オブジェクトに衝突を開始した時点から衝突中の現時点までの衝突オブジェクト６５の移動量を表す移動ベクトル６７（図６（ｃ）参照）を計算する。なお、複数の衝突オブジェクト６５が変形オブジェクトに衝突する場合には、移動量計算処理部３１は各衝突オブジェクト６５の移動ベクトル６７を平均した１つの移動ベクトルを計算する。
【００４４】
第１係数設定処理部３３は、上記移動量計算処理部３１により計算された移動ベクトル６７の方向への第１係数を設定する。この第１係数は、変形オブジェクトの衝突方向への変形の度合いを規定する係数である。
【００４５】
第２係数設定処理部３５は、法線ベクトルＮとは異なる参照方向を表す参照方向ベクトルと当該参照方向への第２係数を設定する。参照方向は任意の方向に設定可能であり、衝突時に変形オブジェクトを演出的に特に膨らませたい方向が参照方向として設定される。第２係数は、変形オブジェクトの参照方向への変形の度合いを規定する係数である。本実施形態では、女性モデル４９が水着５０を着用しているが、この水着５０は乳房５１Ｌ，５１Ｒに対する衝突オブジェクトとして処理される。したがって、例えば参照方向を女性モデル４９の乳房５１Ｌ，５１Ｒの谷間方向に設定することにより、水着５０を着用した際に乳房５１Ｌ，５１Ｒが谷間方向に引き寄せられるといった演出が可能である。また、乳房５１Ｌ，５１Ｒに対して例えばボール等の衝突オブジェクト６５が衝突した際に谷間方向に膨らませるといった演出も可能となる。
【００４６】
第３係数設定処理部３７は、変形オブジェクトが存在する３次元仮想空間のワールド座標系における上方向を表す上方向ベクトルと当該上方向への第３係数を設定する。上方向ベクトルは例えば（０，１，０）である。第３係数は、変形オブジェクトの上方向への変形の度合いを規定する係数である。上述のように、水着５０は乳房５１Ｌ，５１Ｒに対する衝突オブジェクトとして処理されるため、乳房５１Ｌ，５１Ｒに対し上方向への変形処理を加えることにより、水着５０で覆われた部分は水着による押し付けにより引き締まるように変形させる一方、水着５０で覆われていない部分は上方（顔方向）に盛り上がるように乳房の膨らみを演出することが可能である。また、乳房５１Ｌ，５１Ｒに対して例えばボール等の衝突オブジェクト６５が衝突した際に上方向に膨らませるといった演出も可能となる。
【００４７】
第２表示用位置更新処理部３９は、上述の移動ベクトル６７、第１係数、参照方向ベクトル、第２係数、上方向ベクトル、及び第３係数に基づいて、衝突状態の制御点６１以外の非衝突状態の制御点６１の表示用位置を更新する。具体的には、第２表示用位置更新処理部３９は、下記の計算式（５）にしたがって、非衝突状態の制御点６１の表示用位置を更新する。
【００４８】
【数５】
2019174871.tif 000007
【００４９】
なお、Ｐ＿ｄｉｓｐｌａｙは制御点６１の表示用位置、ｓ＿ｒｅｆは参照方向への第２係数、ＲｅｆＤｉｒｅｃｔｉｏｎは参照方向ベクトル、ｓ＿ｐｅｎｅｔｒａｔｅは移動ベクトル６７の方向への第１係数、Ｐｅｎｅｔｒａｔｅは移動ベクトル６７、ｓ＿ｕｐは上方向への第３係数である。
【００５０】
なお以上では、衝突状態の制御点６１に対して上記表示用目標位置計算処理部２７及び第１表示用位置更新処理部２９による処理を実行し、非衝突状態の制御点６１に対して上記移動量計算処理部３１、第１係数設定処理部３３、第２係数設定処理部３５、第３係数設定処理部３７、及び第２表示用位置更新処理部３９による処理を実行するというように、制御点６１が衝突状態か否かで処理を異ならせるようにしたが、これに限定されるものではない。例えば、全ての制御点６１に対して上記の非衝突状態の制御点６１に対する処理を実行してもよい。
【００５１】
以上の処理により、変形オブジェクトの押されていない部位が膨らむ挙動を表現することができる。しかし、衝突オブジェクトが変形可能なオブジェクトである場合（すなわち変形オブジェクト同士が衝突する場合）には、双方のオブジェクトについて変形処理を加えることが好ましい。次に、この処理内容について説明する。
【００５２】
パッチ設定処理部４１は、変形オブジェクトに対して設定された複数の制御点６１のうち外側の層に存在する各制御点６１に対して隣接する制御点６１との間に多角形パッチを設定する。変形オブジェクト同士が衝突する場合、パッチ設定処理部４１は少なくとも一方の変形オブジェクトに対して上記多角形パッチを設定する。
【００５３】
図８に多角形パッチの一例を示す。なお、図８では説明を簡単にするために１つの制御点６１（中心の制御点６１）に対して設定された多角形パッチのみを図示している。図８に示すように、エンティティの外側に存在する各制御点６１に対して、最大４つの三角形パッチ６９（多角形パッチの一例）が設定される。なお、この例では三角形のパッチとしているが、三角形以外の多角形（四角形等）としてもよい。
【００５４】
前述した衝突判定処理部２５は、一の変形オブジェクトの多角形パッチと他の変形オブジェクトの制御点６１とが貫通しているか否かを判定する。貫通判定の手法は特に限定されるものではないが、例えば公知の貫通処理（論文「Ｐｏｓｉｔｉｏｎ  Ｂａｓｅｄ  Ｄｙｎａｍｉｃｓ」、http://matthias-mueller-fischer.ch/publications/posBasedDyn.pdf）を利用してもよい。衝突判定処理部２５により貫通していると判定された場合には衝突あり、貫通していないと判定された場合には衝突なし、として処理される。
【００５５】
第３表示用位置更新処理部４３は、上記衝突判定処理部２５により一の変形オブジェクトの多角形パッチと他の変形オブジェクトの制御点６１とが貫通していると判定された場合に、当該貫通した状態が解消されるように、一の変形オブジェクトの制御点６１の表示用位置と、他の変形オブジェクトの制御点６１の表示用位置とを更新する。解消更新の手法は特に限定されるものではないが、例えば公知の貫通処理（論文「Ｐｏｓｉｔｉｏｎ  Ｂａｓｅｄ  Ｄｙｎａｍｉｃｓ」、http://matthias-mueller-fischer.ch/publications/posBasedDyn.pdf）を利用してもよい。
【００５６】
上記処理により、柔らかい物体同士の衝突による変形挙動を表現できる。例えば本実施形態では、女性モデル４９における胸の谷間の動き等を表現できる。
【００５７】
初期距離設定処理部４５は、各制御点６１に対して、衝突が発生していない初期状態における隣接する複数の制御点６１との初期距離を設定する。
【００５８】
距離拘束処理部４７は、衝突が発生した状態における制御点６１の表示用位置同士の距離が、上記初期距離設定処理部４５により設定された初期距離に近似するように、表示用位置同士の距離を拘束する。拘束処理の手法は特に限定されるものではないが、例えば公知の長さ拘束処理（論文「Ｐｏｓｉｔｉｏｎ  Ｂａｓｅｄ  Ｄｙｎａｍｉｃｓ」、http://matthias-mueller-fischer.ch/publications/posBasedDyn.pdf）を利用してもよい。
【００５９】
以上の処理により、変形オブジェクトを見かけ上の体積が略一定となるように変形させることができる。その結果、変形オブジェクトに衝突オブジェクトが衝突した際に、衝突した部位が凹むだけでなくその他の部位が膨らむ挙動を表現できるので、変形挙動をより自然且つリアルに表現できる。
【００６０】
なお、以上説明した各処理部における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部（例えば１つの処理部）で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、上述した各処理部の機能は、後述するＣＰＵ１０１（後述の図１０参照）が実行するゲームプログラムにより実装されるものであるが、例えばその一部がＡＳＩＣやＦＰＧＡ等の専用集積回路、その他の電気回路等の実際の装置により実装されてもよい。
【００６１】
＜３．情報処理装置が実行する処理手順＞
次に、図９を用いて、情報処理装置３のＣＰＵ１０１によって実行される処理手順の一例について説明する。
【００６２】
ステップＳ５では、情報処理装置３は、基準点設定処理部１３により、乳房５１Ｌ，５１Ｒに対して複数の基準点５３，５５，５７，５９を設定する（図３参照）。
【００６３】
ステップＳ１０では、情報処理装置３は、制御点設定処理部１５により、乳房５１Ｌ，５１Ｒに対してそれぞれエンティティ６３Ｌ，６３Ｒを割り当て、エンティティごとに格子状に配列された複数の制御点６１を設定する（図４参照）。
【００６４】
ステップＳ１５では、情報処理装置３は、重み量設定処理部１７により、各制御点６１に対して少なくとも１つの基準点を関連付けると共に、当該関連付けられた基準点ごとに重み量を設定する。
【００６５】
ステップＳ２０では、情報処理装置３は、パッチ設定処理部４１により、エンティティ６３Ｌ，６３Ｒのそれぞれに対し、外側の層に存在する各制御点６１に対して隣接する制御点６１との間に三角形パッチ６９を設定する。
【００６６】
ステップＳ２５では、情報処理装置３は、初期距離設定処理部４５により、エンティティ６３Ｌ，６３Ｒのそれぞれの各制御点６１に対して、衝突が発生していない初期状態における隣接する複数の制御点６１との初期距離を設定する。
【００６７】
ステップＳ３０では、情報処理装置３は、目標位置計算処理部１９により、各制御点６１の第１目標位置を、当該制御点６１に関連付けられた全ての基準点について当該基準点の第１現在位置と重み量との積を合計することにより計算する。
【００６８】
ステップＳ３５では、情報処理装置３は、制御点更新処理部２１により、上記ステップＳ３０で計算された第１目標位置に近づくように各制御点６１の第２現在位置を更新する。なお、前述したように、本ステップにおける第２現在位置は表示用位置と略一致する。
【００６９】
ステップＳ４０では、情報処理装置３は、衝突判定処理部２５により、変形オブジェクトに対する衝突の有無を判定する。前述のように、衝突オブジェクト６５が変形しないオブジェクトである場合には、衝突判定処理部２５は、制御点６１の第２現在位置が衝突オブジェクト６５の内部に位置するか否かを判定する。また、衝突オブジェクト６５が変形するオブジェクトである場合には、衝突判定処理部２５は、一の変形オブジェクトの多角形パッチと他の変形オブジェクトの制御点６１とが貫通しているか否かを判定する。衝突がないと判定された場合には（ステップＳ４０：ＮＯ）、後述のステップＳ９５に移る。一方、衝突があると判定された場合には（ステップＳ４０：ＹＥＳ）、次のステップＳ４５に移る。
【００７０】
ステップＳ４５では、情報処理装置３は、上記ステップＳ４０においてどちらの判定手法で衝突ありと判定されたかに基づいて、変形オブジェクト同士の衝突であるか否かを判定する。変形オブジェクト同士の衝突でない場合には（ステップＳ４５：ＮＯ）、次のステップＳ５０に移る。
【００７１】
ステップＳ５０では、情報処理装置３は、表示用目標位置計算処理部２７により、衝突状態の制御点６１の表示用位置の第２目標位置を、当該制御点６１の第２現在位置と、当該制御点６１から最も近い衝突オブジェクト６５の表面までの距離Ｄ＿ｓｕｒｆａｃｅと、当該制御点６１の法線ベクトルＮに基づいて計算する。
【００７２】
ステップＳ５５では、情報処理装置３は、第１表示用位置更新処理部２９により、上記ステップＳ５０で計算された第２目標位置に近づくように、衝突状態の各制御点６１の表示用位置を更新する。
【００７３】
ステップＳ６０では、情報処理装置３は、移動量計算処理部３１により、衝突オブジェクト６５が変形オブジェクトに衝突を開始した時点から衝突中の現時点までの衝突オブジェクト６５の移動量を表す移動ベクトル６７を計算する。
【００７４】
ステップＳ６５では、情報処理装置３は、第１係数設定処理部３３により、上記ステップＳ６０で計算された移動ベクトル６７の方向への第１係数を設定する。
【００７５】
ステップＳ７０では、情報処理装置３は、第２係数設定処理部３５により、参照方向ベクトルと当該参照方向への第２係数を設定する。
【００７６】
ステップＳ７５では、情報処理装置３は、第３係数設定処理部３７により、変形オブジェクトが存在する３次元仮想空間のワールド座標系における上方向を表す上方向ベクトルと当該上方向への第３係数を設定する。
【００７７】
ステップＳ８０では、情報処理装置３は、第２表示用位置更新処理部３９により、上記移動ベクトル６７、第１係数、参照方向ベクトル、第２係数、上方向ベクトル、及び第３係数に基づいて、非衝突状態の各制御点６１の表示用位置を更新する。その後、後述のステップＳ９５に移る。
【００７８】
なお、先のステップＳ４５において、変形オブジェクト同士の衝突である場合には（ステップＳ４５：ＹＥＳ）、ステップＳ８５に移る。
【００７９】
ステップＳ８５では、情報処理装置３は、第３表示用位置更新処理部４３により、一の変形オブジェクトの多角形パッチと他の変形オブジェクトの制御点６１とが貫通した状態が解消されるように、一の変形オブジェクトの制御点６１の表示用位置と、他の変形オブジェクトの制御点６１の表示用位置とを更新する。
【００８０】
ステップＳ９０では、情報処理装置３は、距離拘束処理部４７により、衝突が発生した状態における制御点６１の表示用位置同士の距離が、上記ステップＳ２５で設定された初期距離に近似するように、表示用位置同士の距離を拘束する。その後、次のステップＳ９５に移る。
【００８１】
ステップＳ９５では、情報処理装置３は、画像生成処理部２３により、上記ステップＳ３５、ステップＳ８０、ステップＳ８５により更新された制御点６１の表示用位置（ステップＳ８５の場合はさらにステップＳ９０で距離を拘束された表示用位置）に基づいて変形オブジェクトである乳房５１Ｌ，５１Ｒの形状を表す画像を生成する。以上により、本フローを終了する。
【００８２】
なお、上述した処理手順は一例であって、上記手順の少なくとも一部を削除又は変更してもよいし、上記以外の手順を追加してもよい。また、上記手順の少なくとも一部の順番を変更してもよいし、複数の手順が単一の手順にまとめられてもよい。例えば、ステップＳ６０〜ステップＳ８０の代わりにステップＳ９０を実行してもよいし、ステップＳ８０とステップＳ９５の間でさらにステップＳ９０を実行してもよい。
【００８３】
＜４．情報処理装置のハードウェア構成＞
次に、図１０を用いて、上記で説明したＣＰＵ１０１等が実行するプログラムにより実装された各処理部を実現する情報処理装置３のハードウェア構成の一例について説明する。
【００８４】
図１０に示すように、情報処理装置３は、例えば、ＣＰＵ１０１と、ＲＯＭ１０３と、ＲＡＭ１０５と、ＧＰＵ１０６と、例えばＡＳＩＣ又はＦＰＧＡ等の特定の用途向けに構築された専用集積回路１０７と、入力装置１１３と、出力装置１１５と、記録装置１１７と、ドライブ１１９と、接続ポート１２１と、通信装置１２３を有する。これらの構成は、バス１０９や入出力インターフェース１１１等を介し相互に信号を伝達可能に接続されている。
【００８５】
ゲームプログラムは、例えば、ＲＯＭ１０３やＲＡＭ１０５、記録装置１１７等に記録しておくことができる。
【００８６】
また、ゲームプログラムは、例えば、フレキシブルディスクなどの磁気ディスク、各種のＣＤ、ＭＯディスク、ＤＶＤ等の光ディスク、半導体メモリ等のリムーバブルな記録媒体１２５に、一時的又は永続的（非一時的）に記録しておくこともできる。このような記録媒体１２５は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体１２５に記録されたゲームプログラムは、ドライブ１１９により読み出されて、入出力インターフェース１１１やバス１０９等を介し上記記録装置１１７に記録されてもよい。
【００８７】
また、ゲームプログラムは、例えば、ダウンロードサイト、他のコンピュータ、他の記録装置等（図示せず）に記録しておくこともできる。この場合、ゲームプログラムは、ＬＡＮやインターネット等のネットワークＮＷを介し転送され、通信装置１２３がこのプログラムを受信する。そして、通信装置１２３が受信したプログラムは、入出力インターフェース１１１やバス１０９等を介し上記記録装置１１７に記録されてもよい。
【００８８】
また、ゲームプログラムは、例えば、適宜の外部接続機器１２７に記録しておくこともできる。この場合、ゲームプログラムは、適宜の接続ポート１２１を介し転送され、入出力インターフェース１１１やバス１０９等を介し上記記録装置１１７に記録されてもよい。
【００８９】
そして、ＣＰＵ１０１が、上記記録装置１１７に記録されたプログラムに従い各種の処理を実行することにより、前述の重み量設定処理部１７や目標位置計算処理部１９等による処理が実現される。この際、ＣＰＵ１０１は、例えば、上記記録装置１１７からプログラムを、直接読み出して実行してもよく、ＲＡＭ１０５に一旦ロードした上で実行してもよい。更にＣＰＵ１０１は、例えば、プログラムを通信装置１２３やドライブ１１９、接続ポート１２１を介し受信する場合、受信したプログラムを記録装置１１７に記録せずに直接実行してもよい。
【００９０】
また、ＣＰＵ１０１は、必要に応じて、前述のコントローラ５を含む、例えばマウス、キーボード、マイク等（図示せず）の入力装置１１３から入力する信号や情報に基づいて各種の処理を行ってもよい。
【００９１】
ＧＰＵ１０６は、ＣＰＵ１０１からの指示に応じて例えばレンダリング処理などの画像表示のための処理を行う。
【００９２】
そして、ＣＰＵ１０１及びＧＰＵ１０６は、上記の処理を実行した結果を、例えば前述の表示装置７や音声出力部を含む、出力装置１１５から出力する。さらにＣＰＵ１０１及びＧＰＵ１０６は、必要に応じてこの処理結果を通信装置１２３や接続ポート１２１を介し送信してもよく、上記記録装置１１７や記録媒体１２５に記録させてもよい。
【００９３】
＜５．実施形態の効果＞
本実施形態のゲームプログラムは、情報処理装置３を、変形可能な変形オブジェクトに対して１又は複数の基準点を設定する基準点設定処理部１３、変形オブジェクトに対して複数の制御点６１を設定する制御点設定処理部１５、制御点６１に対して少なくとも１つの基準点を関連付けると共に、当該関連付けられた基準点ごとに関連度合いを表す重み量を設定する重み量設定処理部１７、制御点６１の第１目標位置を、当該制御点６１に関連付けられた基準点の第１現在位置と重み量とに基づいて計算する目標位置計算処理部１９、第１目標位置に近づくように制御点６１の第２現在位置を更新する制御点更新処理部２１、第２現在位置に基づいて変形オブジェクトの形状を表す画像を生成する画像生成処理部２３、として機能させる。
【００９４】
これにより、例えば変形オブジェクトの現在の形状との誤差が最小になるように、変形オブジェクトの初期形状を回転、平行移動させて目標形状を計算する手法（例えば特表２００９−５２９１６１号公報に記載の手法）に比べて、最小二乗法等の複雑な演算が不要となるため、情報処理装置３の演算処理負担を軽減することができる。また、アンカーとなる基準点を設定するため、例えば女性モデル４９の急激な動作に対しても乳房５１Ｌ，５１Ｒを安定して変形させることができ、且つ、変形した状態を安定して作りやすくなる。したがって、変形オブジェクトの挙動を自然な表現とすることができる。さらに、一般に基準点はボーンとしてモデルやキャラクタ等の描画に使用されており、当該ボーンを利用することができるため、モデルやキャラクタ等の表現に好適である。
【００９５】
また、本実施形態では特に、ゲームプログラムは、情報処理装置３を、制御点６１の第２現在位置が変形オブジェクトに衝突する衝突オブジェクト６５の内部に位置するか否かを判定する衝突判定処理部２５、第２現在位置が衝突オブジェクト６５の内部に位置すると判定された衝突状態の制御点６１の表示用位置の第２目標位置を、第２現在位置と、制御点６１から最も近い衝突オブジェクト６５の表面までの距離と、制御点６１の法線ベクトルＮに基づいて計算する表示用目標位置計算処理部２７、第２目標位置に近づくように衝突状態の制御点６１の表示用位置を更新する第１表示用位置更新処理部２９、としてさらに機能させ、画像生成処理部２３は、衝突状態の制御点６１の表示用位置に基づいて変形オブジェクトの形状を表す画像を生成する。
【００９６】
これにより、変形オブジェクトに衝突オブジェクト６５が衝突することによる変形（衝突した部位が凹む挙動）を表現することができる。また、各制御点６１に対し、第２現在位置と、画像の生成に使用される表示用位置とを分離して設定することにより、衝突時の変形の描画結果を安定させることができる。
【００９７】
また、本実施形態では特に、ゲームプログラムは、情報処理装置３を、衝突オブジェクト６５が変形オブジェクトに衝突を開始した時点から衝突中の現時点までの衝突オブジェクト６５の移動量を表す移動ベクトル６７を計算する移動量計算処理部３１、移動ベクトル６７の方向への第１係数を設定する第１係数設定処理部３３、法線ベクトルＮとは異なる参照方向を表す参照方向ベクトルと当該参照方向への第２係数を設定する第２係数設定処理部３５、移動ベクトル６７、第１係数、参照方向ベクトル、第２係数に基づいて、衝突状態の制御点６１以外の非衝突状態の制御点６１の表示用位置を更新する第２表示用位置更新処理部３９、としてさらに機能させ、画像生成処理部２３は、非衝突状態の制御点６１の表示用位置に基づいて変形オブジェクトの形状を表す画像を生成する。
【００９８】
例えば、ゴムボールを押す場合について考えると、押した部位が凹む挙動は上記処理内容（衝突中の制御点の第２目標位置を算出して当該第２目標位置に近づくように表示用位置を更新する処理）により表現されるが、押していない部位が膨らむ挙動は別途の処理を演出的に加える必要がある。本実施形態では、演出的に特に膨らませたい方向が参照方向ベクトルとして設定され、その膨らみ具合が第２係数として設定される。これにより、変形オブジェクトに衝突オブジェクト６５が衝突した際に、衝突した部位が凹むだけでなくその他の部位が所定の方向に膨らむ挙動を表現できるので、変形挙動をより自然且つリアルに表現できる。また、膨らむ方向と膨らみ具合を設定できるので（例えば乳房５１Ｌ，５１Ｒを谷間方向に変形させる等）描画内容に応じた演出が可能となり、興趣性を向上できる。
【００９９】
また、本実施形態では特に、ゲームプログラムは、情報処理装置３を、変形オブジェクトが存在する仮想空間のワールド座標系における上方向を表す上方向ベクトルと当該上方向への第３係数を設定する第３係数設定処理部３７、としてさらに機能させ、第２表示用位置更新処理部３９は、上方向ベクトル、第３係数に基づいて非衝突状態の制御点６１の表示用位置を更新する。
【０１００】
一般にボール等の衝突オブジェクト６５は変形オブジェクトに対して側方から衝突することが多く、その場合には変形オブジェクトは側方が凹んで上方又は下方に膨らむように変形する。また、例えば衝突オブジェクトが水着５０等の着衣であり、変形オブジェクトが水着５０で覆われる身体部位（乳房５１Ｌ，５１Ｒ等）である場合も、変形オブジェクトは側方から押し付けられて水着５０で覆われていない方向（上方向）に盛り上がるように変形する。
【０１０１】
そこで本実施形態では、演出的に膨らませたい上方向が上方向ベクトルとして設定され、その膨らみ具合が第３係数として設定される。これにより、上述したような変形挙動をより自然且つリアルに表現できる。
【０１０２】
また、本実施形態では特に、ゲームプログラムは、情報処理装置３を、変形オブジェクトに対して設定された複数の制御点６１のうち外側の層に存在する各制御点６１に対して隣接する制御点６１との間に三角形パッチ６９を設定するパッチ設定処理部４１、としてさらに機能させ、衝突判定処理部２５は、一の変形オブジェクトの三角形パッチ６９と他の変形オブジェクトの制御点６１とが貫通しているか否かを判定し、ゲームプログラムは、情報処理装置３を、三角形パッチ６９と制御点６１とが貫通していると判定された場合に、当該貫通した状態が解消されるように、一の変形オブジェクトの制御点６１の表示用位置と他の変形オブジェクトの制御点６１の表示用位置とを更新する第３表示用位置更新処理部４３、としてさらに機能させ、画像生成処理部２３は、表示用位置に基づいて一の変形オブジェクトと他の変形オブジェクトの形状を表す画像を生成する。
【０１０３】
これにより、柔らかい物体同士の衝突による変形挙動を表現できる。例えば、ゴムボール同士が衝突する場合の変形挙動や、女性モデル同士が互いに胸を押し付ける場合の変形挙動や、女性モデル４９における胸の谷間の動き等の変形挙動を、より自然且つリアルに表現できる。
【０１０４】
また、本実施形態では特に、ゲームプログラムは、情報処理装置３を、制御点６１に対して、衝突が発生していない初期状態における隣接する複数の制御点６１との初期距離を設定する初期距離設定処理部４５、衝突が発生した状態における制御点６１の表示用位置同士の距離が初期距離に近似するように、表示用位置同士の距離を拘束する距離拘束処理部４７、としてさらに機能させる。
【０１０５】
これにより、変形オブジェクトを見かけ上の体積が略一定となるように変形させることができる。その結果、変形オブジェクトに衝突オブジェクト６５が衝突した際に、衝突した部位が凹むだけでなくその他の部位が膨らむ挙動を表現できるので、変形挙動をより自然且つリアルに表現できる。
【０１０６】
＜６．変形例等＞
なお、本発明は、上記の実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
【０１０７】
また、以上では、画像生成プログラムがゲームプログラムである場合について説明したが、画像生成プログラムは、ゲーム以外の技術（例えばＣＧアニメーション、コンピュータ・シミュレーション、ＣＡＤ等）にも適用可能である。
【０１０８】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【符号の説明】
【０１０９】
３              情報処理装置
１３            基準点設定処理部
１５            制御点設定処理部
１７            重み量設定処理部
１９            目標位置計算処理部
２１            制御点更新処理部
２３            画像生成処理部
２５            衝突判定処理部
２７            表示用目標位置計算処理部
２９            第１表示用位置更新処理部
３１            移動量計算処理部
３３            第１係数設定処理部
３５            第２係数設定処理部
３７            第３係数設定処理部
３９            第２表示用位置更新処理部
４１            パッチ設定処理部
４３            第３表示用位置更新処理部
４５            初期距離設定処理部
４７            距離拘束処理部
５０            水着（衝突オブジェクト）
５１Ｌ，５１Ｒ  乳房（変形オブジェクト）
５３            基準点
５５            基準点
５７            基準点
５９            基準点
６１            制御点
６１ｐ          表示用位置
６１ｐｇ        第２目標位置
６５            衝突オブジェクト
６７            移動ベクトル
６９            三角形パッチ（多角形パッチ）
１２５          記録媒体
Ｎ              法線ベクトル
【図１】
2019174871.tif 000008
【図２】
2019174871.tif 000009
【図３】
2019174871.tif 000010
【図４】
2019174871.tif 000011
【図５】
2019174871.tif 000012
【図６】
2019174871.tif 000013
【図７】
2019174871.tif 000014
【図８】
2019174871.tif 000015
【図９】
2019174871.tif 000016
【図１０】
2019174871.tif 000017