(57)【特許請求の範囲】
【請求項１】
情報処理装置を、
変形可能な変形オブジェクトに対して基準点を設定する基準点設定処理部、
前記変形オブジェクトに対して一又は複数の制御点を設定する第１制御点設定処理部、
前記変形オブジェクトに作用する力に基づいて、前記制御点の少なくとも１つを前記制御点と前記基準点とを結ぶ直線方向に沿って移動させる第１移動処理を実行する第１制御点移動処理部、
前記第１移動処理における前記制御点の移動量を、前記基準点の位置に基づいて変化するように決定する第１移動量決定処理部、
前記第１移動処理における前記制御点の前記直線方向における移動の向きを、前記基準点の位置に基づいて変化するように決定する移動向き決定処理部、
として機能させることを特徴とする画像生成プログラム。
【請求項２】
前記移動向き決定処理部は、
前記複数の制御点のうち、一部の前記制御点の移動の向きを、前記直線方向における一方側に決定し、残りの前記制御点の一部又は全部の移動の向きを、前記直線方向における他方側に決定する
ことを特徴とする請求項１に記載の画像生成プログラム。
【請求項３】
情報処理装置を、
変形可能な変形オブジェクトに対して基準点を設定する基準点設定処理部、
前記変形オブジェクトに対して一又は複数の制御点を設定する第１制御点設定処理部、
前記変形オブジェクトに作用する力に基づいて、前記制御点の少なくとも１つを前記基準点に基づいて移動させる第１移動処理を実行する第１制御点移動処理部、
前記変形オブジェクトに対する接触オブジェクトの接触を検出する接触検出処理部、
前記接触検出処理部により前記接触が検出された場合に、前記複数の制御点のうち、前記接触オブジェクトの接触位置に対応する少なくとも１つの前記制御点に、前記接触により及ぼされる第１の力を作用させる第１力作用処理部、
前記接触検出処理部により前記接触が検出された場合に、前記第１の力を含む前記力、及び、前記基準点の位置に基づいて、前記第１の力が作用する前記制御点を含む一部の制御点の移動の向きを前記制御点と前記基準点とを結ぶ直線方向における一方側に決定し、残りの制御点の一部又は全部の移動の向きを前記直線方向における他方側に決定する移動向き決定処理部、
として機能させることを特徴とする画像生成プログラム。
【請求項４】
情報処理装置を、
変形可能な変形オブジェクトに対して基準点を設定する基準点設定処理部、
前記変形オブジェクトに対して一又は複数の制御点を設定する第１制御点設定処理部、
前記変形オブジェクトに作用する力に基づいて、前記制御点の少なくとも１つを前記基準点に基づいて移動させる第１移動処理を実行する第１制御点移動処理部、
前記第１移動処理における前記制御点の移動量を、前記基準点の位置に基づいて変化するように決定する第１移動量決定処理部、
前記複数の制御点の各々に、前記変形オブジェクトの対応する部分の変形のし易さを表す第１移動量パラメータを設定する第１パラメータ設定処理部、
として機能させ、
前記第１移動量決定処理部は、
前記第１移動量パラメータに基づいて前記制御点の移動量を決定する
ことを特徴とする画像生成プログラム。
【請求項５】
情報処理装置を、
変形可能な変形オブジェクトに対して基準点を設定する基準点設定処理部、
前記変形オブジェクトに対して一又は複数の制御点を設定する第１制御点設定処理部、
前記変形オブジェクトに作用する力に基づいて、前記制御点の少なくとも１つを前記基準点に基づいて移動させる第１移動処理を実行する第１制御点移動処理部、
前記変形オブジェクトに、鉛直方向における下向きの重力を作用させる重力作用処理部、
前記重力作用処理部により前記重力を作用させた前記変形オブジェクトが所定の基準姿勢である場合に、前記重力による変形を相殺するための前記鉛直方向における上向きの第２の力を作用させる第２力作用処理部、
としてさらに機能させ、
前記第１制御点移動処理部は、
前記重力及び前記第２の力を含む前記力に基づいて、前記第１移動処理を実行する
ことを特徴とする画像生成プログラム。
【請求項６】
前記情報処理装置を、
前記変形オブジェクトの姿勢を検出する姿勢検出処理部、
としてさらに機能させ、
前記第２力作用処理部は、
前記姿勢検出処理部により検出された前記変形オブジェクトの姿勢に基づいて、前記第２の力の向きを変更する
ことを特徴とする請求項５に記載の画像生成プログラム。
【請求項７】
情報処理装置を、
支持オブジェクトに支持された変形可能な変形オブジェクトに対して複数の制御点を設定する第２制御点設定処理部、
前記変形オブジェクトに作用する力に基づいて、前記複数の制御点の少なくとも１つを移動させる第２移動処理を実行する第２制御点移動処理部、
前記複数の制御点の少なくとも２つに、前記変形オブジェクトの対応する部分の変形のし易さを表す第２移動量パラメータを、前記制御点の前記支持オブジェクトからの離間距離に基づいて変化するように設定する第２パラメータ設定処理部、
前記第２移動量パラメータに基づいて前記制御点の移動量を決定する第２移動量決定処理部、
揺動可能な前記変形オブジェクトに作用する前記力の向きを検出する力向き検出処理部、
として機能させ、
前記第２パラメータ設定処理部は、
前記複数の制御点のうち、前記力向き検出処理部により検出された前記力の向きに対応する側に位置する一部の前記制御点を設定対象として、第１の前記制御点よりも前記離間距離が大きな第２の前記制御点に対し、前記第１の制御点よりも変形がし易くなるように前記第２移動量パラメータを設定する
ることを特徴とする画像生成プログラム。
【請求項８】
ゲームプログラムであることを特徴とする請求項１乃至７のいずれか１項に記載の画像生成プログラム。
【請求項９】
請求項１乃至８のいずれか１項に記載の画像生成プログラムを記録した、情報処理装置が読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成プログラム及びこの画像生成プログラムが記録された記録媒体に関する。
【背景技術】
【０００２】
従来、仮想空間内のキャラクタオブジェクトを変形させた画像を生成する技術が知られている。この技術によれば、主ボーンに固定された座標系における副ボーンの位置を変化させ、仮想空間に固定された座標系における制御点の位置を副ボーンの位置の変化量に基づいて計算し、計算された制御点の位置に基づいてスキンの形状を決めた画像を生成することで、仮想空間内のキャラクタオブジェクトを変形させる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４５７９９６４号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来技術では、変形オブジェクトの挙動が物理法則に従った自然な挙動になるとは言えなかった。一方、変形オブジェクトの挙動を物理法則に従った自然な挙動とする場合には複雑な演算を行う必要があり、情報処理装置の演算処理負担が増大するという課題があった。
【０００５】
本発明はこのような問題点に鑑みてなされたものであり、情報処理装置の演算処理負担を軽減しつつ、変形オブジェクトの挙動を物理法則に従った自然な表現とすることが可能な画像生成プログラム及びこの画像生成プログラムが記録された記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の画像生成プログラムは、情報処理装置を、変形可能な変形オブジェクトに対して基準点を設定する基準点設定処理部、前記変形オブジェクトに対して一又は複数の制御点を設定する第１制御点設定処理部、前記変形オブジェクトに作用する力に基づいて、前記制御点の少なくとも１つを前記基準点に基づいて移動させる第１移動処理を実行する第１制御点移動処理部、として機能させる。
【０００７】
変形オブジェクトに対して基準点及び制御点を設定し、変形オブジェクトに作用する力に基づいて各制御点を移動させることで、変形オブジェクトの挙動を物理法則に従った自然な表現とすることができる。その際、各制御点を基準点に基づいて移動させる第１移動処理を実行するので、変形オブジェクトを変形させる際の演算を簡略化でき、情報処理装置の演算処理負担を軽減できる。その結果、情報処理装置の演算処理負担を軽減しつつ、変形オブジェクトの挙動を物理法則に従った自然な表現とすることができる。
【０００８】
また、各制御点の移動方向は、設定される基準点の位置に基づいて変化する。したがって、設定する基準点の位置を変更するだけで、各制御点の移動方向を変化させ、変形オブジェクトの変形挙動を変化させることができる。したがって、変形オブジェクトの変形挙動を容易に調整できる。
【０００９】
また、本発明の画像生成プログラムは、好ましくは、第１制御点移動処理部は、前記制御点の少なくとも１つを、前記制御点と前記基準点とを結ぶ直線方向に沿って移動させる、前記第１移動処理を実行する。
【００１０】
各制御点の移動方向を制御点と基準点とを結ぶ直線方向に沿った方向に制限して、各制御点を移動させることで、変形オブジェクトを変形させる際の演算を簡略化でき、情報処理装置の演算処理負担を軽減できる。その結果、高速且つ安定した制御を実現できる。
【００１１】
また、本発明の画像生成プログラムは、好ましくは、前記情報処理装置を、前記力、及び、前記基準点設定処理部により設定された前記基準点の位置に基づいて、前記第１移動処理における前記制御点の移動量を決定する第１移動量決定処理部、としてさらに機能させる。
【００１２】
各制御点の移動量は、変形オブジェクトに作用する力の態様（大きさ、向き）や、設定される基準点の位置に基づいて変化する。したがって、変形オブジェクトに作用する力、及び、設定された基準点の位置に基づいて、各制御点の移動量を決定することで、変形オブジェクトの変形挙動を適切に表現できる。
【００１３】
また、本発明の画像生成プログラムは、好ましくは、前記情報処理装置を、前記力、及び、前記基準点の位置に基づいて、前記第１移動処理における前記制御点の前記直線方向における移動の向きを決定する移動向き決定処理部、としてさらに機能させる。
【００１４】
各制御点の移動方向における移動の向きは、変形オブジェクトに作用する力の態様（大きさ、向き）や、設定される基準点の位置に基づいて変化する。したがって、変形オブジェクトに作用する力、及び、設定された基準点の位置に基づいて、各制御点の移動方向における移動の向きを決定することで、変形オブジェクトの変形挙動を適切に表現できる。
【００１５】
また、本発明の画像生成プログラムは、好ましくは、前記移動向き決定処理部は、前記複数の制御点のうち、一部の前記制御点の移動の向きを、前記直線方向における一方側に決定し、残りの前記制御点の一部又は全部の移動の向きを、前記直線方向における他方側に決定する。
【００１６】
これにより、一部の制御点を上記直線方向のうち変形オブジェクトに作用する力の向きに対応する一方側に移動させることで、変形オブジェクトの対応する部分を凹ませるか又は膨らませ、残りの制御点の一部又は全部を上記直線方向における他方側に移動させることで、変形オブジェクトの対応する部分を上記とは反対に膨らませるか又は凹ませる、といった制御を行うことが可能となる。
【００１７】
例えば、変形オブジェクトに接触オブジェクトが接触した場合には、接触オブジェクトの接触位置に対応する制御点を含む一部の制御点を上記直線方向における内側に移動させることで、変形オブジェクトの対応する部分を凹ませ、残りの制御点の一部又は全部を上記直線方向における外側に移動させることで、変形オブジェクトの対応する部分を上記とは反対に膨らませる、といった制御を行うことが可能となる。
【００１８】
また、例えば、一部の制御点を上記直線方向のうち重力の向き（下向き）に対応する一方側に移動させる（例えば、変形オブジェクトが下向き姿勢の場合には下側に位置する制御点を含む一部の制御点を上記直線方向における外側に移動させる、変形オブジェクトが上向き姿勢の場合には上側に位置する制御点を含む一部の制御点を上記直線方向における内側に移動させる）ことで、変形オブジェクトの対応する部分を膨らませるか又は凹ませ（例えば、変形オブジェクトが下向き姿勢の場合には変形オブジェクトの下側部分を膨らませ、変形オブジェクトが上向き姿勢の場合には変形オブジェクトの上側部分を凹ませ）、残りの制御点の一部又は全部を上記直線方向における他方側に移動させる（例えば、変形オブジェクトが下向き姿勢の場合には下側以外に位置する制御点の一部又は全部を上記直線方向における内側に移動させる、変形オブジェクトが上向き姿勢の場合には上側以外に位置する制御点の一部又は全部を上記直線方向における外側に移動させる）ことで、変形オブジェクトの対応する部分を上記とは反対に凹ませるか又は膨らませる（例えば、変形オブジェクトが下向き姿勢の場合には変形オブジェクトの下側以外の部分の一部又は全部を凹ませる、変形オブジェクトが上向き姿勢の場合には変形オブジェクトの上側以外の部分の一部又は全部を膨らませる）、といった制御を行うことが可能となる。
【００１９】
これにより、変形オブジェクトの変形挙動を自然に表現できる。また、この際、見かけ上の体積が略一定となるように変形オブジェクトを変形させることも可能であり、この場合は、変形オブジェクトの変形挙動をより自然に表現できる。
【００２０】
また、本発明の画像生成プログラムは、好ましくは、前記情報処理装置を、前記変形オブジェクトに対する接触オブジェクトの接触を検出する接触検出処理部、前記接触検出処理部により前記接触が検出された場合に、前記複数の制御点のうち、前記接触オブジェクトの接触位置に対応する少なくとも１つの前記制御点に、前記接触により及ぼされる第１の力を作用させる第１力作用処理部、としてさらに機能させ、前記移動向き決定処理部は、前記接触検出処理部により前記接触が検出された場合に、前記第１の力を含む前記力、及び、前記基準点の位置に基づいて、前記第１の力が作用する前記制御点を含む前記一部の制御点の移動の向きを前記一方側に決定し、前記残りの制御点の一部又は全部の移動の向きを前記他方側に決定する。
【００２１】
これにより、変形オブジェクトに接触オブジェクトが接触した場合には、接触オブジェクトの接触位置に対応する制御点を含む一部の制御点を上記直線方向における内側に移動させることで、変形オブジェクトの対応する部分を凹ませ、残りの制御点の一部又は全部を上記直線方向における外側に移動させることで、変形オブジェクトの対応する部分を上記とは反対に膨らませる、といった制御を行うことが可能となる。これにより、接触オブジェクトが接触した際の変形オブジェクトの変形挙動を自然に表現できる。また、この際、見かけ上の体積が略一定となるように変形オブジェクトを変形させることも可能であり、この場合は、接触オブジェクトが接触した際の変形オブジェクトの変形挙動をより自然に表現できる。
【００２２】
また、本発明の画像生成プログラムは、好ましくは、前記情報処理装置を、前記複数の制御点の各々に、前記変形オブジェクトの対応する部分の変形のし易さを表す第１移動量パラメータを設定する第１パラメータ設定処理部、としてさらに機能させ、前記第１移動量決定処理部は、前記第１移動量パラメータに基づいて前記制御点の移動量を決定する。
【００２３】
一般に、現実空間では、変形オブジェクトの各部位は、例えば被覆（露出）の有無や位置等に応じて変形のし易さが異なる（例えば、被覆されている部位（露出していない部位）よりも被覆されていない部位（露出している部位）の方が変形し易く、基端側の部位よりも先端側の部位の方が変形し易い）。したがって、各制御点に、変形オブジェクトの対応する部分の変形のし易さを表す第１移動量パラメータを設定し、設定された第１移動量パラメータに基づいて各制御点の移動量を決定することで、変形オブジェクトに各部位の変形のし易さに応じた自然な柔らかさを表現でき、変形オブジェクトの変形挙動を自然に表現できる。
【００２４】
また、本発明の画像生成プログラムは、好ましくは、前記情報処理装置を、前記変形オブジェクトに、鉛直方向における下向きの重力を作用させる重力作用処理部、前記重力作用処理部により前記重力を作用させた前記変形オブジェクトが所定の基準姿勢である場合に、前記重力による変形を相殺するための前記鉛直方向における上向きの第２の力を作用させる第２力作用処理部、としてさらに機能させ、前記第１制御点移動処理部は、前記重力及び前記第２の力を含む前記力に基づいて、前記第１移動処理を実行する。
【００２５】
仮想空間内に配置される変形オブジェクトの形状が基準姿勢で下向きの重力が作用している状態の変形オブジェクトの形状をモデルにデザインされた場合、変形オブジェクトが基準姿勢である場合には、変形オブジェクトを重力の影響により変形させないことが望ましい。したがって、変形オブジェクトに、下向きの重力を作用させるとともに、変形オブジェクトが基準姿勢である場合に、重力による変形を相殺するための上向きの第２の力を作用させ、これら重力及び第２の力を含む変形オブジェクトの少なくとも一部に作用する力に基づいて、前述の第１移動処理を実行することで、変形オブジェクトが基準姿勢である場合には、重力と第２の力とが釣り合う（重力と第２の力との合力が０となる）ので、変形オブジェクトを重力の影響（重力と第２の力との合力）により変形させないようにできる。また、この際、変形オブジェクトの姿勢に基づいて第２の力の向きを変更することも可能であり、この場合は、変形オブジェクトが基準姿勢でない場合に、変形オブジェクトの姿勢に基づいて重力と第２の力との合力が変化するので、姿勢に応じた形状となるように変形オブジェクトを重力の影響（重力と第２の力との合力）により変形させることが可能となる。これにより、変形オブジェクトに重力感を表現でき、変形オブジェクトの変形挙動を自然に表現できる。
【００２６】
また、本発明の画像生成プログラムは、好ましくは、前記情報処理装置を、前記変形オブジェクトの姿勢を検出する姿勢検出処理部、としてさらに機能させ、前記第２力作用処理部は、前記姿勢検出処理部により検出された前記変形オブジェクトの姿勢に基づいて、前記第２の力の向きを変更する。
【００２７】
これにより、変形オブジェクトが基準姿勢でない場合に、変形オブジェクトの姿勢に基づいて重力と第２の力との合力が変化するので、姿勢に応じた形状となるように変形オブジェクトを重力の影響（重力と第２の力との合力）により変形させることができる。これにより、変形オブジェクトに重力感を表現でき、変形オブジェクトの変形挙動を自然に表現できる。
【００２８】
上記目的を達成するために、本発明の画像生成プログラムは、情報処理装置を、支持オブジェクトに支持された変形可能な変形オブジェクトに対して複数の制御点を設定する第２制御点設定処理部、前記変形オブジェクトに作用する力に基づいて、前記複数の制御点の少なくとも１つを移動させる第２移動処理を実行する第２制御点移動処理部、前記複数の制御点の少なくとも２つに、前記変形オブジェクトの対応する部分の変形のし易さを表す第２移動量パラメータを、前記制御点の前記支持オブジェクトからの離間距離に基づいて変化するように設定する第２パラメータ設定処理部、前記第２移動量パラメータに基づいて前記制御点の移動量を決定する第２移動量決定処理部、として機能させる。
【００２９】
制御点の移動量に関する第２移動量パラメータを使用して各制御点の移動量を決定することで、制御点ごとに移動量を複雑な演算により求める必要がなくなるので、変形オブジェクトを変形させる際の演算を簡略化でき、情報処理装置の演算処理負担を軽減できる。その結果、高速且つ安定した制御を実現できる。
【００３０】
また、一般に、現実空間では、変形オブジェクトの各部位は、支持オブジェクトからの離間距離に基づいて変形のし易さが異なる（例えば、離間距離が小さい基端側の部位よりも離間距離が大きい先端側の部位の方が変形し易い）。したがって、少なくとも２つの制御点に、支持オブジェクトからの離間距離に基づいて変化するように（例えば、離間距離が小さい基端側の制御点よりも離間距離が大きい先端側の制御点の方が変形し易くなるように）第２移動量パラメータを設定し、このように設定された第２移動量パラメータに基づいて各制御点の移動量を決定することで、基端側の制御点よりも先端側の制御点の方が移動量が大きくなるように変形オブジェクトを変形させることが可能となる。これにより、変形オブジェクトに各部位の変形のし易さに応じた自然な柔らかさを表現でき、変形オブジェクトの変形挙動を物理法則に従った自然な表現とすることができる。
【００３１】
また、本発明の画像生成プログラムは、好ましくは、前記第２パラメータ設定処理部は、第１の前記制御点よりも前記離間距離が大きな第２の前記制御点に対し、前記第１の制御点よりも変形がし易くなるように前記第２移動量パラメータを設定する。
【００３２】
一般に、現実空間では、変形オブジェクトの各部位は、支持オブジェクトからの離間距離が小さい基端側の部位よりも離間距離が大きい先端側の部位の方が変形し易い。したがって、離間距離が小さい基端側の制御点よりも離間距離が大きい先端側の制御点の方が変形し易くなるように第２移動量パラメータを設定することで、基端側の制御点よりも先端側の制御点の方が移動量が大きくなるように変形オブジェクトを変形させることができる。これにより、変形オブジェクトに各部位の変形のし易さに応じた自然な柔らかさを表現でき、変形オブジェクトの変形挙動を自然に表現できる。
【００３３】
また、本発明の画像生成プログラムは、好ましくは、前記情報処理装置を、揺動可能な前記変形オブジェクトに作用する前記力の向きを検出する力向き検出処理部、としてさらに機能させ、前記第２パラメータ設定処理部は、前記複数の制御点のうち、前記力向き検出処理部により検出された前記力の向きに対応する側に位置する少なくとも２つの前記制御点に、前記第２移動量パラメータを設定する。
【００３４】
揺動する側の少なくとも２つの制御点に、基端側の制御点よりも先端側の制御点の方が変形し易くなるように、第２移動量パラメータを設定することで、揺動する側の基端側の部位が支持オブジェクトの内部に入り込まないように変形オブジェクトを変形させることが可能となる。これにより、変形オブジェクトの変形挙動をより自然でダイナミックに表現できる。
【００３５】
また、本発明の画像生成プログラムは、好ましくは、ゲームプログラムである。
【００３６】
上記目的を達成するために、本発明の記録媒体は、上記画像生成プログラムを記録した、情報処理装置が読み取り可能な記録媒体である。
【発明の効果】
【００３７】
本発明の画像生成プログラム及び記録媒体によれば、情報処理装置の演算処理負担を軽減しつつ、変形オブジェクトの挙動を物理法則に従って自然に表現することができる。
【図面の簡単な説明】
【００３８】
【図１】一実施形態に係るゲームシステムの全体構成の一例を表すシステム構成図である。
【図２】ゲームの概略内容の一例を説明するための説明図である。
【図３】胸に対して設定された複数の制御点の一例を表す説明図である。
【図４】第１変形処理の概略内容の一例を説明するための説明図である。
【図５】第２変形処理の概略内容の一例を説明するための説明図である。
【図６】第３変形処理の概略内容の一例を説明するための説明図である。
【図７】情報処理装置の第３変形処理等に関わる機能的構成の一例を表すブロック図である。
【図８】基準点設定の一例を説明するための説明図である。
【図９】接触が検出された場合に作用させる力の一例を説明するための説明図である。
【図１０】胸に作用させる重力及び力を説明するための説明図である。
【図１１】第１移動処理の一例を説明するための説明図である。
【図１２】第１移動処理の一例を説明するための説明図である。
【図１３】情報処理装置のＣＰＵによって実行される第３変形処理等に関わる処理手順の一例を表すフローチャートである。
【図１４】情報処理装置の第１変形処理等に関わる機能的構成の一例を表すブロック図である。
【図１５】第２移動処理の一例を説明するための説明図である。
【図１６】情報処理装置のＣＰＵによって実行される第１変形処理等に関わる処理手順の一例を表すフローチャートである。
【図１７】情報処理装置のハードウェア構成の一例を表すブロック図である。
【発明を実施するための形態】
【００３９】
以下、本発明の一実施の形態について図面を参照しつつ説明する。
【００４０】
＜１．ゲームシステムの全体構成＞
まず、図１を用いて、本実施形態に係るゲームシステム１の全体構成の一例について説明する。図１に示すように、ゲームシステム１は、情報処理装置３と、コントローラ５と、テレビ等の表示装置７を有する。コントローラ５及び表示装置７の各々は、情報処理装置３と通信可能に接続されている。なお、図１には有線により接続された場合を図示しているが、無線により接続されてもよい。
【００４１】
情報処理装置３は、据え置き型のゲーム機である。但しこれに限定されるものではなく、入力部や表示部を一体に備えた携帯型のゲーム機でもよい。また、ゲーム機以外にも、例えば、サーバコンピュータ、デスクトップ型コンピュータ、ノート型コンピュータ、タブレット型コンピュータ等のように、コンピュータとして製造、販売等されているものや、携帯電話、スマートフォン、ファブレット等のように、電話機として製造、販売等されているものでもよい。
【００４２】
＜２．ゲームの概略内容＞
次に、図２〜図６を用いて、本実施形態に係るゲーム、すなわち、本発明のゲームプログラム（画像生成プログラムの一例に相当）が情報処理装置３によって実行されることにより提供されるゲームの概略内容の一例について説明する。
【００４３】
図２及び図３に示すように、本実施形態に係るゲームは、プレイヤによるコントローラ５の操作に応じて、３次元仮想空間（又は２次元仮想空間でもよい）内に１体以上配置されたキャラクタ５１に各種動作を行わせるものである。３次元仮想空間内には、ＸＹＺ座標系が設定されている。キャラクタ５１は、特に限定されるものではないが、例えば女性モデル、男性モデル、人間以外の動物モデル、動物以外の物体モデル等である。以下では、キャラクタ５１が女性モデルである場合を例にとって説明し、以下適宜「女性モデル５１」という。
【００４４】
女性モデル５１の所定の部位５３は、変形可能である。所定の部位５３は、変形可能な程度に柔らかい部位であれば特に限定されるものではないが、例えば胸（乳房）、尻、太もも、腹、二の腕等である。以下では、所定の部位５３が胸である場合を例にとって説明し、以下適宜「胸５３」という。なお、胸５３は、変形オブジェクトの一例に相当し、胸５３を支持する胴体５５は、支持オブジェクトの一例に相当する。胸５３には、その形状を表現するための複数の制御点Ｃが設定される。
【００４５】
女性モデル５１の姿は、特に限定されるものではないが、例えば水着姿、下着姿、制服姿、洋服姿、和服姿等である。あるいは、女性モデル５１の姿は、裸でもよい。以下では、女性モデル５１が水着姿である場合を例にとって説明する。すなわち、女性モデル５１は、水着５９を身に纏っており、胸５３表面の少なくとも一部は、水着５９により被覆されている。なお、胸５３表面の全体が露出していてもよい。
【００４６】
プレイヤは、コントローラ５を操作して、水着５９により胸５３表面の少なくとも一部を含む部位が被覆された女性モデル５１に各種動作を行わせることができる。その際、女性モデル５１の胴体５５の移動や胸５３の姿勢変更に伴い胸５３に作用する重力や慣性力、胸５３への接触オブジェクト５７（後述の図６参照）の接触に応じて、胸５３に設定された複数の制御点Ｃの少なくとも１つを移動させることで、胸５３を変形させることが可能である。なお、ここでいう制御点Ｃの「移動」には、制御点Ｃの「回転」も含まれる。接触オブジェクト５７は、胸５３に接触可能なオブジェクトであれば特に限定されるものではないが、例えば女性モデル５１以外の物体モデル、女性モデル５１の当該胸５３以外の部位（例えば反対側の胸５３）等である。胸５３を変形させる際には、以下の第１変形処理、第２変形処理、第３変形処理の少なくとも１つが行われる。
【００４７】
以下、図４〜図６を用いて、第１変形処理、第２変形処理、第３変形処理の概要内容の一例について順次説明する。
【００４８】
なお、図４〜図６では、説明の便宜上、水着５９の図示を省略する。また、図４〜図６では、胸５３に設定された複数の制御点Ｃのうち５つの制御点Ｃ１〜Ｃ５のみを図示する。また、図４〜図６では、変形前の胸５３の形状を破線、変形後の胸５３の形状を実線で図示する。
【００４９】
（２−１．第１変形処理の概略内容）
まず、図４を用いて、第１変形処理の概要内容の一例について説明する。
【００５０】
図４に示すように、第１変形処理は、女性モデル５１の胴体５５の移動や胸５３への接触オブジェクト５７の接触に応じて、胸５３に力を作用させ、胸５３全体を揺動（スウィング、振動）をさせて、胸５３全体の動きを表現するための処理である。第１変形処理では、胸５３全体の揺動の移動量として、上下左右方向の移動量が、ばねモデル（目標地点に向かって距離に比例した加速度を与える制御）で演算され、各制御点Ｃの移動量に変換される。
【００５１】
図４に示す例では、胸５３に上向き（Ｙ軸方向正向き）の力Ｆが作用し、各制御点Ｃ１〜Ｃ５が例えば上向きに移動することで、全体が上向きに揺動するように胸５３が変形する挙動となる。
【００５２】
（２−２．第２変形処理の概略内容）
次に、図５を用いて、第２変形処理の概要内容の一例について説明する。
【００５３】
図５に示すように、第２変形処理は、各制御点Ｃごとに僅かに揺動（振動）させ、胸５３表面が全体的に波打つような柔らかさを表現するための処理である。第２変形処理でも、上記第１変形処理と同様、胸５３全体の揺動の移動量として、上下左右方向の移動量が、ばねモデルで演算され、各制御点Ｃの移動量に変換される。なお、ここでいう制御点Ｃの「揺動（振動）」には、制御点Ｃの「回転」も含まれる。
【００５４】
図５に示す例では、各制御点Ｃ１〜Ｃ５が例えば上向き（Ｙ軸方向正向き）に僅かに移動することで、全体が上向きに僅かに揺動するように胸５３が変形する挙動となる。
【００５５】
（２−３．第３変形処理の概略内容）
次に、図６を用いて、第３変形処理の概要内容の一例について説明する。
【００５６】
図６に示すように、第３変形処理は、胸５３への接触オブジェクト５７の接触、胸５３に作用する重力Ｇ（後述の図１０参照）の影響による胸５３の凹み、膨らみを表現するための処理である。
【００５７】
図６に示す例では、胸５３の頭と反対側の基端近傍への接触オブジェクト５７の接触（衝突）に応じて、接触オブジェクト５７の接触位置に対応する制御点Ｃ４，Ｃ５に上向き（Ｙ軸方向正向き）の力Ｆが作用し、制御点Ｃ４，Ｃ５が内側に移動し、残りの制御点Ｃ１〜Ｃ３が外側に移動することで、接触オブジェクト５７の接触位置が凹み他の部位が膨らむように胸５３が変形する挙動となる。
【００５８】
＜３．情報処理装置の第３変形処理等に関わる機能的構成＞
次に、図７〜図１２を用いて、情報処理装置３の機能的構成のうち、主として上記第３変形処理等に関わる機能的構成の一例について説明する。なお、図７中に示す矢印は信号の流れの一例を示すものであり、信号の流れ方向を限定するものではない。
【００５９】
また、図８〜図１２では、上記図４〜図６と同様、水着５９の図示を省略し、胸５３に設定された複数の制御点Ｃのうち制御点Ｃ１〜Ｃ５のみを図示し、変形前の胸５３の形状を破線、変形後の胸５３の形状を実線で図示する。
【００６０】
図７に示すように、情報処理装置３は、基準点設定処理部９と、制御点設定処理部１１（第１制御点設定処理部の一例に相当）と、パラメータ設定処理部１３（第１パラメータ設定処理部の一例に相当）と、接触検出処理部１５と、第１力作用処理部１７と、重力作用処理部１９と、姿勢検出処理部２１と、第２力作用処理部２３と、移動量決定処理部２５（第１移動量決定処理部の一例に相当）と、移動向き決定処理部２７と、制御点移動処理部２９（第１制御点移動処理部の一例に相当）と、画像生成処理部３１を有する。
【００６１】
基準点設定処理部９は、１つの胸５３に対して少なくとも１つ（この例では１つ）の基準点Ｂを設定する（図８参照）。この際、基準点設定処理部９は、胸５３に対して適宜の位置に基準点Ｂを設定可能である。図８（ａ）は、基準点Ｂを胸５３に対して胴体５５の前側（図中左側）の位置に設定した場合の例である。図８（ｂ）は、基準点Ｂを胸５３に対して胴体５５の上記図８（ａ）に示す位置よりも後側（図中右側）の位置に設定した場合の例である。図８（ｃ）は、基準点Ｂを胸５３に対して胴体５５の上記図８（ａ）に示す位置よりも下側（Ｙ軸方向負側）の位置に設定した場合の例である。具体的には、基準点Ｂの位置は、ゲームの製造時に決定され記憶されており、基準点設定処理部９は、その記憶された基準点Ｂの位置を読み出すことで、胸５３に対して基準点Ｂを設定する。なお、ゲームの設定画面等でプレイヤの操作に応じて基準点Ｂの位置を調整可能としてもよい。
【００６２】
図７に戻り、制御点設定処理部１１は、１つの胸５３に対して一又は複数（この例では複数）の上記制御点Ｃを設定する。例えば、制御点設定処理部１１は、胸５３表面上（肌）の適宜の位置に複数の制御点Ｃを設定する。具体的には、各制御点Ｃの初期位置は、ゲームの製造時に決定され記憶されており、制御点設定処理部１１は、その記憶された各制御点Ｃの初期位置を読み出すことで、胸５３に対して複数の制御点Ｃを設定する。
【００６３】
パラメータ設定処理部１３は、各制御点Ｃに、胸５３の対応する部分の変形のし易さを表す第１移動量パラメータを設定する。具体的には、各制御点Ｃに対する第１移動量パタメータは、ゲームの製造時に決定され記憶されており、パラメータ設定処理部１３は、その記憶された各制御点Ｃに対する第１移動量パラメータを読み出すことで、各制御点Ｃに第１移動量パラメータを設定する。制御点Ｃに対する第１移動量パタメータは、胸５３の対応する部分の上記水着５９による被覆の有無等に応じて設定される。例えば、胸５３の水着５９により被覆されていない部分は、胸５３の水着５９により被覆されている部分よりも変形がし易い。したがって、胸５３の水着５９により被覆されていない部分に対応する制御点Ｃは、胸５３の水着５９により被覆されている部分に対応する制御点Ｃよりも、変形がし易くなるように第１移動量パラメータ（例えば係数）が設定される。
【００６４】
接触検出処理部１５は、胸５３への上記接触オブジェクト５７の接触を検出する。この際、接触検出処理部１５は、制御点Ｃへの接触オブジェクト５７の接触を検出することで、胸５３への接触オブジェクト５７の接触を検出する。なお、隣接する２つの制御点Ｃ間に補助点を設定しておき、補助点への接触オブジェクトの接触を検出することによっても、胸５３への接触オブジェクトの接触を検出してもよい。
【００６５】
第１力作用処理部１７は、接触検出処理部１５により接触が検出された場合に、複数の制御点Ｃのうち、接触オブジェクト５７の接触位置に対応する少なくとも１つの制御点Ｃに、当該接触により及ぼされる力Ｆ１（第１の力の一例に相当。後述の図９参照）を作用させる。例えば、図９に示すように、胸５３の頭と反対側の基端近傍に位置する制御点Ｃ４，Ｃ５への接触オブジェクト５７の接触が検出された場合には、制御点Ｃ４，Ｃ５に、当該接触により及ぼされる上向き（Ｙ軸方向正向き）の力Ｆ１を作用させる。
【００６６】
図７に戻り、重力作用処理部１９は、胸５３に、鉛直方向における下向き（Ｙ軸方向負向き）の重力Ｇ（後述の図１０参照）を作用させる。
【００６７】
姿勢検出処理部２１は、胸５３の姿勢を検出する。例えば、図１０（ａ）に示すように、女性モデル５１の頭が胸５３に対して上側（Ｙ軸方向正側）に位置する場合には、胸５３の姿勢が前向き姿勢（所定の基準姿勢の一例に相当）であると検出される。また例えば、図１０（ｂ）に示すように、女性モデル５１の頭が胸５３に対して前側（図中左側）に位置する場合には、胸５３の姿勢が下向き姿勢であると検出される。
【００６８】
図７に戻り、第２力作用処理部２３は、姿勢検出処理部２１により検出された胸５３の姿勢が前向き姿勢である場合に、重力作用処理部１９により重力Ｇを作用させた胸５３に、重力Ｇによる変形を相殺するための鉛直方向における上向き（Ｙ軸方向正向き）の力Ｆ２（第２の力の一例に相当。図１０参照）を作用させ、姿勢検出処理部２１により検出された胸５３の姿勢が前向き姿勢以外の姿勢である場合には、その検出された姿勢に応じて、胸５３に作用させる力Ｆ２の向きを変更する。例えば、図１０（ａ）に示すように、胸５３の姿勢が前向き姿勢であり、その旨が検出された場合には、胸５３に上向きの力Ｆ２を作用させる。この場合、重力Ｇと力Ｆ２とが釣り合う（これらの合力が０となる）。また例えば、図１０（ｂ）に示すように、胸５３の姿勢が下向き姿勢であり、その旨が検出された場合には、胸５３に前向き（図中左向き）の力Ｆ２を作用させる。この場合、重力Ｇと力Ｆ２とが釣り合わない（これらの合力が０とならない）。
【００６９】
図７に戻り、制御点移動処理部２９は、胸５３の少なくとも一部に作用する力に応じて、複数の制御点Ｃの少なくとも１つを、制御点Ｃごとに、当該制御点Ｃと基準点Ｂとを結ぶ直線方向に沿って移動させる、第１移動処理を実行する。
【００７０】
移動量決定処理部２５は、胸５３の少なくとも一部に作用する力、すなわち、重力Ｇ及び力Ｆ２（接触検出処理部１５により接触が検出された場合にはさらに力Ｆ１）を含む力、及び、基準点設定処理部９により設定された基準点Ｂの位置に応じて、上記第１移動処理における各制御点Ｃの移動量を決定する。この際、移動量決定処理部２５は、パラメータ設定処理部１３により各制御点Ｃに設定された第１移動量パタメータに基づいて、各制御点Ｃの移動量を決定する。
【００７１】
移動向き決定処理部２７は、胸５３の少なくとも一部に作用する力、すなわち、重力Ｇ及び力Ｆ２（接触検出処理部１５により接触が検出された場合にはさらに力Ｆ１）を含む力、及び、基準点設定処理部９により設定された基準点Ｂの位置に応じて、上記第１移動処理における各制御点Ｃの上記直線方向における移動の向きを決定する。この際、移動向き決定処理部２７は、複数の制御点Ｃのうち、一部の制御点Ｃの移動の向きを、上記直線方向における一方側に決定し、残りの制御点Ｃの一部又は全部の移動の向きを、上記直線方向における他方側に決定する。特に、接触検出処理部１５により接触が検出された場合には、移動向き決定処理部２７は、力Ｆ１、重力Ｇ、力Ｆ２を含む力、及び、基準点Ｂの位置に応じて、力Ｆ１が作用する制御点Ｃを含む一部の制御点Ｃの移動の向きを、上記直線方向における一方側に決定し、残りの制御点Ｃの一部又は全部の移動の向きを、上記直線方向における他方側に決定する。
【００７２】
そして、制御点移動処理部２９は、移動量決定処理部２５及び移動向き決定処理部２７の決定結果に基づいて、第１移動処理を実行する。
【００７３】
例えば、図１１（ａ）に示す例では、基準点Ｂが胸５３に対して胴体５５の前側（図中左側）の位置に設定され、制御点Ｃ１〜Ｃ５に変形のし易さが同程度となるように第１移動量パラメータが設定された状態で、胸５３に下向きの重力Ｇを作用させ、胸５３の姿勢が前向き姿勢であると検出されて胸５３に上向きの力Ｆ２を作用させ、制御点Ｃ４，Ｃ５への接触オブジェクト５７の接触が検出されて制御点Ｃ４，Ｃ５に上向きの力Ｆ１を作用させている。なお、重力Ｇ及び力Ｆ２の図示は省略している。
【００７４】
そして、制御点Ｃ４，Ｃ５を、当該制御点Ｃ４，Ｃ５の各々と基準点Ｂとを結ぶ直線方向のうち力Ｆ１の向きに対応する内側（一方側）に移動させ、残りの制御点Ｃ１〜Ｃ３を、当該制御点Ｃ１〜Ｃ３の各々と基準点Ｂとを結ぶ直線方向のうち外側（他方側）に移動させることで、接触オブジェクト５７の接触位置が凹み他の部位が膨らみ見かけ上の体積が略一定となるように胸５３を変形させている。
【００７５】
また、図１１（ｂ）に示す例は、上記図１１（ａ）と、制御点Ｃ１に他の制御点よりも変形がし易くなるように第１移動量パラメータが設定され、制御点Ｃ２に他の制御点よりも変形がし難くなるように第１移動量パラメータが設定された点が異なり、基準点Ｂの位置や胸５３に作用する力は同様である。
【００７６】
この場合も、上記図１１（ａ）と同様、制御点Ｃ４，Ｃ５を、当該制御点Ｃ４，Ｃ５の各々と基準点Ｂとを結ぶ直線方向のうち力Ｆ１の向きに対応する内側に移動させ、残りの制御点Ｃ１〜Ｃ３を、当該制御点Ｃ１〜Ｃ３の各々と基準点Ｂとを結ぶ直線方向のうち外側に移動させることで、接触オブジェクト５７の接触位置が凹み他の部位が膨らみ見かけ上の体積が略一定となるように胸５３を変形させているが、この例では、胸５３の制御点Ｃ１に対応する部分が相対的に大きく膨らみ、制御点Ｃ２に対応する部分が相対的に小さく膨らんでいる。
【００７７】
また、図１１（ｃ）に示す例は、上記図１１（ａ）と制御点Ｃ１に他の制御点よりも変形がし難くなるように第１移動量パラメータが設定され、制御点Ｃ２に他の制御点よりも変形がし易くなるように第１移動量パラメータが設定された点が異なり、基準点Ｂの位置や胸５３に作用する力は同様である。
【００７８】
この場合も、上記図１１（ａ）と同様、制御点Ｃ４，Ｃ５を、当該制御点Ｃ４，Ｃ５の各々と基準点Ｂとを結ぶ直線方向のうち力Ｆ１の向きに対応する内側に移動させ、残りの制御点Ｃ１〜Ｃ３を、当該制御点Ｃ１〜Ｃ３の各々と基準点Ｂとを結ぶ直線方向のうち外側に移動させることで、接触オブジェクト５７の接触位置が凹み他の部位が膨らみ見かけ上の体積が略一定となるように胸５３を変形させているが、この例では、胸５３の制御点Ｃ１に対応する部分が相対的に小さく膨らみ、制御点Ｃ２に対応する部分が相対的に大きく膨らんでいる。
【００７９】
また例えば、図１２（ａ）に示す例では、基準点Ｂが胸５３に対して胴体５５の前側（図中下側）の位置に設定され、制御点Ｃ１〜Ｃ５に変形のし易さが同程度となるように第１移動量パラメータが設定され、胸５３への接触オブジェクトの接触が検出されていない状態で、胸５３に下向きの重力Ｇを作用させ、胸５３の姿勢が下向き姿勢であると検出されて胸５３に前向き（図中左向き）の力Ｆ２を作用させている。
【００８０】
そして、制御点Ｃ１，Ｃ３，Ｃ５を、当該制御点Ｃ１，Ｃ３，Ｃ５と基準点Ｂとを結ぶ直線方向の外側（一方側）に移動させ、残りの制御点Ｃ２，Ｃ４を、当該制御点Ｃ２，Ｃ４と基準点Ｂとを結ぶ直線方向の内側（他方側）に移動させることで、先端側が伸びるように胸５３を変形させている。この際、胸５３は。先端側が僅かに頭側を向くように変形している。
【００８１】
また、図１２（ｂ）に示す例は、上記図１２（ａ）と、基準点Ｂが胸５３に対して胴体５５の後側（図中上側）の位置に設定された点が異なり、第１移動量パラメータや胸５３に作用する力は同様である。
【００８２】
この場合は、制御点Ｃ１〜Ｃ５を、当該制御点Ｃ１〜Ｃ５と基準点Ｂとを結ぶ直線方向の外側に移動させることで、全体が膨らむように胸５３を変形させている。
【００８３】
また、図１２（ｃ）に示す例は、上記図１２（ａ）と、基準点Ｂが胸５３に対して胴体５５の頭と反対側（図中右側）の位置に設定された点が異なり、第１移動量パラメータや胸５３に作用する力は同様である。
【００８４】
この場合は、制御点Ｃ１，Ｃ４，Ｃ５を、当該制御点Ｃ１，Ｃ４，Ｃ５と基準点Ｂとを結ぶ直線方向の外側（一方側）に移動させ、残りの制御点Ｃ２，Ｃ３のうち制御点Ｃ２を、当該制御点Ｃ２と基準点Ｂとを結ぶ直線方向の内側（他方側）に移動させることで、頭と反対側に膨らむように胸５３を変形させている。
【００８５】
図７に戻り、画像生成処理部３１は、上記第１移動処理後の胸５３の画像を含む女性モデル５１の画像を生成する。女性モデル５１の画像は、他の画像（他の物体モデルの画像や背景画像等）と合成され、表示装置７に出力されて、表示装置７により表示される。
【００８６】
なお、以上説明した各処理部における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部（例えば１つの処理部）で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、上述した各処理部の機能は、後述するＣＰＵ１０１（後述の図１７参照）が実行するゲームプログラムにより実装されるものであるが、例えばその一部がＡＳＩＣやＦＰＧＡ等の専用集積回路、その他の電気回路等の実際の装置により実装されてもよい。
【００８７】
＜４．第３変形処理等に関わる処理手順＞
次に、図１３を用いて、情報処理装置１のＣＰＵ１０１によって実行される第３変形処理等に関わる処理手順の一例を説明する。
【００８８】
ステップＳ１０では、情報処理装置３は、基準点設定処理部９により、記憶された基準点Ｂの位置を読み出し、胸５３に対して基準点Ｂを設定する。
【００８９】
ステップＳ２０では、情報処理装置３は、制御点設定処理部１１により、記憶された各制御点Ｃの初期位置を読み出し、胸５３に対して複数の制御点Ｃを設定する。
【００９０】
ステップＳ３０では、情報処理装置３は、パラメータ設定処理部１３により、記憶された各制御点Ｃに対する第１移動量パラメータを読み出し、各制御点Ｃに第１移動量パラメータを設定する。
【００９１】
ステップＳ４０では、情報処理装置３は、接触検出処理部１５により、胸５３への接触オブジェクト５７の接触を検出する。胸５３への接触オブジェクト５７の接触が検出された場合（ステップＳ４０：ＹＥＳ）には、ステップＳ５０に移る。
【００９２】
ステップＳ５０では、情報処理装置３は、第１力作用処理部１７により、複数の制御点Ｃのうち、接触オブジェクト５７の接触位置に対応する少なくとも１つの制御点Ｃに、当該接触により及ぼされる力Ｆ１を作用させる。その後、ステップＳ６０に移る。
【００９３】
一方、上記ステップＳ４０において、胸５３への接触オブジェクト５７の接触が検出されなかった場合（ステップＳ４０：ＮＯ）には、ステップＳ５０を実行することなく、ステップＳ６０に移る。
【００９４】
ステップＳ６０では、情報処理装置３は、重力作用処理部１９により、胸５３に、下向きの重力Ｇを作用させる。
【００９５】
ステップＳ７０では、情報処理装置３は、姿勢検出処理部２１により、胸５３の姿勢を検出する。
【００９６】
ステップＳ８０では、情報処理装置３は、第２力作用処理部２３により、上記ステップＳ７０で検出された胸５３の姿勢に応じて、力Ｆ２を作用させる。前述のように、検出された胸５３の姿勢が前向き姿勢である場合には、上向きの力Ｆ２を作用させ、検出された胸５３の姿勢が前向き姿勢以外の姿勢である場合には、その検出された姿勢に応じて、胸５３に作用させる力Ｆ２の向きを変更する。
【００９７】
ステップＳ９０では、情報処理装置３は、移動量決定処理部２５により、重力Ｇ及び力Ｆ２（上記ステップＳ４０で接触が検出された場合にはさらに力Ｆ１）を含む力、及び、上記ステップＳ１０で設定された基準点Ｂの位置に応じると共に、上記ステップＳ３０で各制御点Ｃに設定された第１移動量パタメータに基づいて、後述のステップＳ１１０での第１移動処理における各制御点Ｃの移動量を決定する。
【００９８】
ステップＳ１００では、情報処理装置３は、移動向き決定処理部２７により、重力Ｇ及び力Ｆ２（上記ステップＳ４０で接触が検出された場合にはさらに力Ｆ１）を含む力、及び、上記ステップＳ１０で設定された基準点Ｂの位置に応じて、後述のステップＳ１１０での第１移動処理における各制御点Ｃの上記直線方向における移動の向きを決定する。
【００９９】
ステップＳ１１０では、情報処理装置３は、制御点移動処理部２９により、上記ステップＳ９０，１００での決定結果に基づいて、複数の制御点Ｃの少なくとも１つを、制御点Ｃごとに、当該制御点Ｃと基準点Ｂとを結ぶ直線方向に沿って移動させる、第１移動処理を実行する。
【０１００】
ステップＳ１２０では、情報処理装置３は、画像生成処理部３１により、上記ステップＳ１１０での第１移動処理後の胸５３の画像を含む女性モデル５１の画像を生成する。
【０１０１】
ステップＳ１３０では、情報処理装置３は、上記ステップＳ１２０で生成された女性モデル５１の画像を他の画像（他の物体モデルの画像や背景画像等）と合成し、表示装置７に出力して、表示させる。
【０１０２】
ステップＳ１４０では、情報処理装置３は、所定の終了指令が入力されたか否かを判定する。終了指令が入力されていない場合（ステップＳ１４０：ＮＯ）には、上記ステップＳ４０に戻り同様の手順を繰り返す。終了指令が入力された場合（ステップＳ１４０：ＹＥＳ）には、本フローを終了する。
【０１０３】
なお、上述した処理手順は一例であって、上記手順の少なくとも一部を削除又は変更してもよいし、上記以外の手順を追加してもよい。また、上記手順の少なくとも一部の順番を変更してもよい。
【０１０４】
＜５．情報処理装置の第１変形処理等に関わる機能的構成＞
次に、図１４及び図１５を用いて、情報処理装置３の機能的構成のうち、主として上記第１変形処理等に関わる機能的構成の一例について説明する。なお、図１４中に示す矢印は信号の流れの一例を示すものであり、信号の流れ方向を限定するものではない。
【０１０５】
また、図１５では、前述の図４〜図６と同様、水着５９の図示を省略し、胸５３に設定された複数の制御点Ｃのうち制御点Ｃ１〜Ｃ５のみを図示し、変形前の胸５３の形状を破線、変形後の胸５３の形状を実線で図示する。
【０１０６】
図１４に示すように、情報処理装置３は、制御点設定処理部３３（第２制御点設定処理部の一例に相当）と、力作用処理部３４と、力向き検出処理部３５と、パラメータ設定処理部３７（第２パラメータ設定処理部の一例に相当）と、移動量決定処理部３９（第２移動量決定処理部の一例に相当）と、移動向き決定処理部４１と、制御点移動処理部４３（第２制御点移動処理部の一例に相当）と、画像生成処理部４５を有する。
【０１０７】
制御点設定処理部３３は、１つの上記胸５３に対して複数の上記制御点Ｃを設定する。例えば、制御点設定処理部３３は、胸５３表面上（肌）の適宜の位置に複数の制御点Ｃを設定する。具体的には、各制御点Ｃの初期位置は、ゲームの製造時に決定され記憶されており、制御点設定処理部３３は、その記憶された各制御点Ｃの初期位置を読み出すことで、胸５３に対して複数の制御点Ｃを設定する。
【０１０８】
力作用処理部３４は、胴体５５の移動や胸５３への接触オブジェクト５７の接触に応じて、胸５３の少なくとも一部に力Ｆ３（後述の図１５参照）を作用させる。
【０１０９】
力向き検出処理部３５は、胸５３に作用する力Ｆ３の向きを検出する。
【０１１０】
パラメータ処理部３７は、複数の制御点Ｃの少なくとも２つに、胸５３の対応する部分の変形のし易さを表す第２移動量パラメータを、制御点Ｃの胴体５５からの離間距離に応じて変化するように設定する。具体的には、パラメータ処理部３７は、複数の制御点Ｃのうち、力向き検出処理部３５により検出された力Ｆ３の向きに対応する側（揺動方向側）に位置する少なくとも２つの制御点Ｃに、胴体５５からの離間距離が小さな基端側の制御点Ｃ（第１の制御点の一例に相当）よりも胴体５５からの離間距離が大きな先端側の制御点Ｃ（第２の制御点の一例に相当）に対し、先端側の制御点Ｃよりも変形がし易くなるように、第２移動量パラメータ（例えば倍率）を設定する。例えば、検出された力Ｆ３の向きが上向きである場合（上向きに揺動する場合）には、上側に位置する少なくとも２つの制御点Ｃに第２移動量パラメータを設定し、検出された力Ｆ３の向きが下向きである場合（下向きに揺動する場合）には、下側に位置する少なくとも２つの制御点Ｃに第２移動量パラメータを設定する。
【０１１１】
制御点移動処理部４３は、胸５３の少なくとも一部に作用する力に応じて、複数の制御点Ｃの少なくとも１つを移動させる、第２移動処理を実行する。
【０１１２】
移動量決定処理部３９は、胸５３の少なくとも一部に作用する力、すなわち、力Ｆ３を含む力に応じると共に、パラメータ設定処理部３７により少なくとも２つの制御点Ｃに設定された第２移動量パタメータに基づいて、上記第２移動処理における各制御点Ｃの移動量を決定する。
【０１１３】
移動向き決定処理部４１は、胸５３の少なくとも一部に作用する力、すなわち、力Ｆ３を含む力に応じて、上記第２移動処理における各制御点Ｃの移動の向きを決定する。
【０１１４】
そして、制御点移動処理部４３は、移動量決定処理部３９及び移動向き決定処理部４１の決定結果に基づいて、第２移動処理を実行する。
【０１１５】
例えば、図１５（ａ）に示す例では、胸５３作用する力Ｆ３の向きが上向きである検出されて制御点Ｃ１〜Ｃ３に第２移動量パラメータが設定されている。この際、制御点Ｃ２よりも制御点Ｃ３、制御点Ｃ３よりも制御点Ｃ１の方が変形し易くなるように第２移動量パラメータが設定されている。そして、制御点Ｃ１〜Ｃ５を上向きに移動させることで、全体が上向きに揺動しつつ基端側よりも先端側の方が大きく揺動するように胸５３を変形させている。
【０１１６】
また、図１５（ｂ）に示す例では、胸５３作用する力Ｆ３の向きが下向きである検出されて制御点Ｃ１、Ｃ４，Ｃ５に第２移動量パラメータが設定されている。この際、制御点Ｃ４よりも制御点Ｃ５、制御点Ｃ５よりも制御点Ｃ１の方が変形し易くなるように第２移動量パラメータが設定されている。そして、制御点Ｃ１〜Ｃ５を下向きに移動させることで、全体が下向きに揺動しつつ基端側よりも先端側の方が大きく揺動するように胸５３を変形させている。
【０１１７】
図１４に戻り、画像生成処理部４５は、上記第２移動処理後の胸５３の画像を含む女性モデル５１の画像を生成する。女性モデル５１の画像は、他の画像（他の物体モデルの画像や背景画像等）と合成され、表示装置７に出力されて、表示装置７により表示される。
【０１１８】
なお、以上説明した各処理部における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部（例えば１つの処理部）で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、上述した各処理部の機能は、後述するＣＰＵ１０１（後述の図１７参照）が実行するゲームプログラムにより実装されるものであるが、例えばその一部がＡＳＩＣやＦＰＧＡ等の専用集積回路、その他の電気回路等の実際の装置により実装されてもよい。
【０１１９】
＜６．第１変形処理等に関わる処理手順＞
次に、図１６を用いて、情報処理装置１のＣＰＵ１０１によって実行される第１変形処理等に関わる処理手順の一例を説明する。
【０１２０】
ステップＳ２１０では、情報処理装置３は、制御点設定処理部３３により、記憶された各制御点Ｃの初期位置を読み出し、胸５３に対して複数の制御点Ｃを設定する。
【０１２１】
ステップＳ２１５では、情報処理装置３は、パラメータ処理部３７により、複数の制御点Ｃに、胸５３の対応する部分の変形のし易さを表す第２移動量パラメータを、制御点Ｃの胴体５５からの離間距離に応じて変化するように設定する。
【０１２２】
ステップＳ２２０では、情報処理装置３は、力作用処理部３４により、胴体５５の移動や胸５３への接触オブジェクト５７の接触に応じて、胸５３の少なくとも一部に力Ｆ３を作用させる。
【０１２３】
ステップＳ２３０では、情報処理装置３は、力向き検出処理部３５により、上記ステップＳ２２０で胸５３に作用させた力Ｆ３の向きを検出する。
【０１２４】
ステップＳ２４０では、情報処理装置３は、パラメータ処理部３７により、複数の制御点Ｃのうち、上記ステップＳ２３０で検出された力Ｆ３の向きに対応する側に位置する少なくとも２つの制御点Ｃに、基端側の制御点Ｃよりも先端側の制御点Ｃに対し、先端側の制御点Ｃよりも変形がし易くなるように、第２移動量パラメータを設定する。ここで設定された第２移動量パラメータは、上記ステップＳ２１５で設定された第２移動量パラメータに例えば加算される。
【０１２５】
ステップＳ２５０では、情報処理装置３は、移動量決定処理部３９により、力Ｆ３を含む力に応じると共に、上記ステップＳ２４０で少なくとも２つの制御点Ｃに設定された第２移動量パタメータに基づいて、後述のステップＳ２７０での第２移動処理における各制御点Ｃの移動量を決定する。
【０１２６】
ステップＳ２６０では、情報処理装置３は、移動向き決定処理部４１により、力Ｆ３を含む力に応じて、後述のステップＳ２７０での第２移動処理における各制御点Ｃの移動の向きを決定する。
【０１２７】
ステップＳ２７０では、情報処理装置３は、制御点移動処理部４１により、上記ステップＳ２５０，２６０での決定結果に基づいて、複数の制御点Ｃの少なくとも１つを移動させる、第２移動処理を実行する。
【０１２８】
ステップＳ２８０では、情報処理装置３は、画像生成処理部４１により、上記ステップＳ２７０での第１移動処理後の胸５３の画像を含む女性モデル５１の画像を生成する。
【０１２９】
ステップＳ２９０では、情報処理装置３は、上記ステップＳ２８０で生成された女性モデル５１の画像を他の画像（他の物体モデルの画像や背景画像等）と合成し、表示装置７に出力して、表示させる。
【０１３０】
ステップＳ３００では、情報処理装置３は、所定の終了指令が入力されたか否かを判定する。終了指令が入力されていない場合（ステップＳ３００：ＮＯ）には、上記ステップＳ２２０に戻り同様の手順を繰り返す。終了指令が入力された場合（ステップＳ３００：ＹＥＳ）には、本フローを終了する。
【０１３１】
なお、上述した処理手順は一例であって、上記手順の少なくとも一部を削除又は変更してもよいし、上記以外の手順を追加してもよい。また、上記手順の少なくとも一部の順番を変更してもよい。
【０１３２】
＜７．情報処理装置のハードウェア構成＞
次に、図１７を用いて、上記で説明したＣＰＵ１０１が実行するプログラムにより実装された各処理部を実現する情報処理装置３のハードウェア構成の一例について説明する。
【０１３３】
図１７に示すように、情報処理装置３は、例えば、ＣＰＵ１０１と、ＲＯＭ１０３と、ＲＡＭ１０５と、例えばＡＳＩＣ又はＦＰＧＡ等の特定の用途向けに構築された専用集積回路１０７と、入力装置１１３と、出力装置１１５と、記録装置１１７と、ドライブ１１９と、接続ポート１２１と、通信装置１２３を有する。これらの構成は、バス１０９や入出力インターフェース１１１等を介し相互に信号を伝達可能に接続されている。
【０１３４】
ゲームプログラムは、例えば、ＲＯＭ１０３やＲＡＭ１０５、記録装置１１７等に記録しておくことができる。
【０１３５】
また、ゲームプログラムは、例えば、フレキシブルディスクなどの磁気ディスク、各種のＣＤ、ＭＯディスク、ＤＶＤ等の光ディスク、半導体メモリ等のリムーバブルな記録媒体１２５に、一時的又は永続的に記録しておくこともできる。このような記録媒体１２５は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体１２５に記録されたゲームプログラムは、ドライブ１１９により読み出されて、入出力インターフェース１１１やバス１０９等を介し上記記録装置１１７に記録されてもよい。
【０１３６】
また、ゲームプログラムは、例えば、ダウンロードサイト、他のコンピュータ、他の記録装置等（図示せず）に記録しておくこともできる。この場合、ゲームプログラムは、ＬＡＮやインターネット等のネットワークＮＷを介し転送され、通信装置１２３がこのプログラムを受信する。そして、通信装置１２３が受信したプログラムは、入出力インターフェース１１１やバス１０９等を介し上記記録装置１１７に記録されてもよい。
【０１３７】
また、ゲームプログラムは、例えば、適宜の外部接続機器１２７に記録しておくこともできる。この場合、ゲームプログラムは、適宜の接続ポート１２１を介し転送され、入出力インターフェース１１１やバス１０９等を介し上記記録装置１１７に記録されてもよい。
【０１３８】
そして、ＣＰＵ１０１が、上記記録装置１１７に記録されたプログラムに従い各種の処理を実行することにより、前述の各処理部による処理が実現される。この際、ＣＰＵ１０１は、例えば、上記記録装置１１７からプログラムを、直接読み出して実行してもよく、ＲＡＭ１０５に一旦ロードした上で実行してもよい。更にＣＰＵ１０１は、例えば、プログラムを通信装置１２３やドライブ１１９、接続ポート１２１を介し受信する場合、受信したプログラムを記録装置１１７に記録せずに直接実行してもよい。
【０１３９】
また、ＣＰＵ１０１は、必要に応じて、例えば前述のコントローラ５やマウス、キーボード、マイク等（図示せず）を含む入力装置１１３から入力する信号や情報に基づいて各種の処理を行ってもよい。
【０１４０】
そして、ＣＰＵ１０１は、上記の処理を実行した結果を、例えば前述の表示装置７や音声出力部等（図示せず）を含む、出力装置１１５から出力してもよく、さらにＣＰＵ１０１は、必要に応じてこの処理結果を通信装置１２３や接続ポート１２１を介し送信してもよく、上記記録装置１１７や記録媒体１２５に記録させてもよい。
【０１４１】
＜８．実施形態の効果＞
以上説明したように、本実施形態のゲームプログラムは、情報処理装置３を、基準点設定処理部９、制御点設定処理部１１、制御点移動処理部１３として機能させる。基準点設定処理部９は、胸５３に対して基準点Ｂを設定する。制御点設定処理部１１は、胸５３に対して複数の制御点Ｃを設定する。制御点移動処理部１３は、胸５３に作用する力に基づいて複数の制御点Ｃの少なくとも１つを基準点Ｂに基づいて移動させる、第１移動処理を実行する。
【０１４２】
胸５３に対して基準点Ｂ及び制御点Ｃを設定し、胸５３に作用する力に基づいて各制御点Ｃを移動させることで、胸５３の挙動を物理法則に従った自然な表現とすることができる。その際、各制御点Ｃを基準点Ｂに基づいて移動させる第１移動処理を実行するので、胸５３を変形させる際の演算を簡略化でき、情報処理装置３の演算処理負担を軽減できる。その結果、情報処理装置３の演算処理負担を軽減しつつ、胸５３の挙動を物理法則に従った自然な表現とすることができる。
【０１４３】
また、各制御点Ｃの移動方向は、設定される基準点Ｂの位置に基づいて変化する。したがって、設定する基準点Ｂの位置を変更するだけで、各制御点Ｃの移動方向を変化させ、胸５３の変形挙動を変化させることができる。したがって、胸５３の変形挙動を容易に調整できる。
【０１４４】
また、本実施形態では特に、制御点移動処理部２９は、複数の制御点Ｃの少なくとも１つを、制御点Ｃと基準点Ｂとを結ぶ直線方向に沿って移動させる、第１移動処理を実行する。
【０１４５】
各制御点Ｃの移動方向を制御点Ｃと基準点Ｂとを結ぶ直線方向に沿った方向に制限して、各制御点Ｃを移動させることで、胸５３を変形させる際の演算を簡略化でき、情報処理装置３の演算処理負担を軽減できる。その結果、高速且つ安定した制御を実現できる。
【０１４６】
また、本実施形態では特に、情報処理装置３を、移動量決定処理部２５としてさらに機能させる。移動量決定処理部２５は、胸５３の少なくとも一部に作用する力、及び、基準点設定処理部９により設定された基準点Ｂの位置に基づいて、上記第１移動処理における制御点Ｂの移動量を決定する。
【０１４７】
各制御点Ｂの移動量は、胸５３に作用する力の態様（大きさ、向き）や、設定される基準点Ｂの位置に基づいて変化する。したがって、胸５３に作用する力、及び、設定された基準点Ｂの位置に基づいて、各制御点Ｃの移動量を決定することで、胸５３の変形挙動を適切に表現できる。
【０１４８】
また、本実施形態では特に、情報処理装置３を、移動向き決定処理部２７としてさらに機能させる。移動向き決定処理部２７は、胸５３の少なくとも一部に作用する力、及び、基準点設定処理部９により設定された基準点Ｂの位置に基づいて、上記第１移動処理における制御点Ｃの上記直線方向における移動の向きを決定する。
【０１４９】
各制御点Ｃの移動方向における移動の向きは、胸５３に作用する力の態様（大きさ、向き）や、設定される基準点Ｂの位置に基づいて変化する。したがって、胸５３に作用する力、及び、設定された基準点Ｂの位置に基づいて、各制御点Ｃの移動方向における移動の向きを決定することで、胸５３の変形挙動を適切に表現できる。
【０１５０】
また、本実施形態では特に、移動向き決定処理部２７は、複数の制御点Ｃのうち、一部の制御点Ｃの移動の向きを、上記直線方向における一方側に決定し、残りの制御点Ｃの一部又は全部の移動の向きを、上記直線方向における他方側に決定する。
【０１５１】
これにより、一部の制御点Ｃを上記直線方向のうち胸５３に作用する力の向きに対応する一方側に移動させることで、胸５３の対応する部分を凹ませるか又は膨らませ、残りの制御点Ｃの一部又は全部を上記直線方向における他方側に移動させることで、胸５３の対応する部分を上記とは反対に膨らませるか又は凹ませる、といった制御を行うことが可能となる。
【０１５２】
例えば、胸５３に接触オブジェクト５７が接触した場合には、接触オブジェクト５７の接触位置に対応する制御点Ｃを含む一部の制御点Ｃを上記直線方向における内側に移動させることで、胸５３の対応する部分を凹ませ、残りの制御点Ｃの一部又は全部を上記直線方向における外側に移動させることで、胸５３の対応する部分を上記とは反対に膨らませる、といった制御を行うことが可能となる。
【０１５３】
また、例えば、一部の制御点Ｃを上記直線方向のうち重力の向き（下向き）に対応する一方側に移動させる（例えば、胸５３が下向き姿勢の場合には下側に位置する制御点Ｃを含む一部の制御点Ｃを上記直線方向における外側に移動させる、胸５３が上向き姿勢の場合には上側に位置する制御点Ｃを含む一部の制御点Ｃを上記直線方向における内側に移動させる）ことで、胸５３の対応する部分を膨らませるか又は凹ませ（例えば、胸５３が下向き姿勢の場合には胸５３の下側部分を膨らませ、胸５３が上向き姿勢の場合には胸５３の上側部分を凹ませ）、残りの制御点Ｃの一部又は全部を上記直線方向における他方側に移動させる（例えば、胸５３が下向き姿勢の場合には下側以外に位置する制御点Ｃの一部又は全部を上記直線方向における内側に移動させる、胸５３が上向き姿勢の場合には上側以外に位置する制御点Ｃの一部又は全部を上記直線方向における外側に移動させる）ことで、胸５３の対応する部分を上記とは反対に凹ませるか又は膨らませる（例えば、胸５３が下向き姿勢の場合には胸５３の下側以外の部分の一部又は全部を凹ませる、胸５３が上向き姿勢の場合には胸５３の上側以外の部分の一部又は全部を膨らませる）、といった制御を行うことが可能となる。
【０１５４】
これにより、胸５３の変形挙動を自然に表現できる。また、この際、見かけ上の体積が略一定となるように胸５３を変形させることも可能であり、この場合は、胸５３の変形挙動をより自然に表現できる。
【０１５５】
また、本実施形態では特に、情報処理装置３を、接触検出処理部１５、第１力作用処理部１７としてさらに機能させる。接触検出処理部１５は、胸５３に対する接触オブジェクト５７の接触を検出する。第１力作用処理部１７は、接触検出処理部１５により上記接触が検出された場合に、複数の制御点Ｃのうち、接触オブジェクト５７の接触位置に対応する少なくとも１つの制御点Ｃに、上記接触により及ぼされる力Ｆ１を作用させる。移動向き決定処理部２７は、接触検出処理部１５により上記接触が検出された場合に、力Ｆ１を含む胸５３の少なくとも一部に作用する力、及び、基準点設定処理部９により設定された基準点Ｂの位置に基づいて、力Ｆ１が作用する制御点Ｃを含む一部の制御点Ｃの移動の向きを上記一方側に決定し、残りの制御点Ｃの一部又は全部の移動の向きを上記他方側に決定する。
【０１５６】
これにより、胸５３に接触オブジェクト５７が接触した場合には、接触オブジェクト５７の接触位置に対応する制御点Ｃを含む一部の制御点Ｃを上記直線方向における内側に移動させることで、胸５３の対応する部分を凹ませ、残りの制御点Ｃの一部又は全部を上記直線方向における外側に移動させることで、胸５３の対応する部分を上記とは反対に膨らませる、といった制御を行うことが可能となる。これにより、接触オブジェクト５７が接触した際の胸５３の変形挙動を自然に表現できる。また、この際、見かけ上の体積が略一定となるように胸５３を変形させることも可能であり、この場合は、接触オブジェクト５７が接触した際の胸５３の変形挙動をより自然に表現できる。
【０１５７】
また、本実施形態では特に、情報処理装置３を、パラメータ設定処理部１３としてさらに機能させる。パラメータ設定処理部１３は、複数の制御点Ｃの各々に、胸５３の対応する部分の変形のし易さを表す第１移動量パラメータを設定する。移動量決定処理部２５は、第１移動量パラメータに基づいて制御点Ｃの移動量を決定する。
【０１５８】
一般に、現実空間では、胸５３の各部位は、例えば被覆（露出）の有無や位置等に基づいて変形のし易さが異なる（例えば、被覆されている部位（露出していない部位）よりも被覆されていない部位（露出している部位）の方が変形し易く、基端側の部位よりも先端側の部位の方が変形し易い）。したがって、各制御点Ｃに、胸５３の対応する部分の変形のし易さを表す第１移動量パラメータを設定し、設定された第１移動量パラメータに基づいて各制御点Ｃの移動量を決定することで、胸５３に各部位の変形のし易さに応じた自然な柔らかさを表現でき、胸５３の変形挙動を自然に表現できる。
【０１５９】
また、本実施形態では特に、情報処理装置３を、重力作用処理部１９、第２力作用処理部２３としてさらに機能させる。重力作用処理部１９は、胸５３に、鉛直方向における下向きの重力Ｇを作用させる。第２力作用処理部２３は、重力作用処理部１９により重力Ｇを作用させた胸５３が前向き姿勢である場合に、重力Ｇによる変形を相殺するための鉛直方向における上向きの力Ｆ２を作用させる。２９制御点移動処理部は、重力Ｇ及び力Ｆ２を含む胸５３の少なくとも一部に作用する力に基づいて、上記第１移動処理を実行する。
【０１６０】
仮想空間内に配置される胸５３の形状が前向き姿勢で下向きの重力Ｇが作用している状態の胸５３の形状をモデルにデザインされた場合、胸５３が前向き姿勢である場合には、胸５３を重力Ｇの影響により変形させないことが望ましい。したがって、胸５３に、下向きの重力Ｇを作用させるとともに、胸５３が前向き姿勢である場合に、重力Ｇによる変形を相殺するための上向きの力Ｆ２を作用させ、これら重力Ｇ及び力Ｆ２を含む胸５３の少なくとも一部に作用する力に基づいて、前述の第１移動処理を実行することで、胸５３が前向き姿勢である場合には、重力Ｇと力Ｆ２とが釣り合う（重力Ｇと力Ｆ２との合力が０となる）ので、胸５３を重力Ｇの影響（重力Ｇと力Ｆ２との合力）により変形させないようにできる。また、この際、胸５３の姿勢に基づいて力Ｆ２の向きを変更することも可能であり、この場合は、胸５３が前向き姿勢でない場合に、胸５３の姿勢に基づいて重力Ｇと力Ｆ２との合力が変化するので、姿勢に応じた形状となるように胸５３を重力Ｇの影響（重力Ｇと力Ｆ２との合力）により変形させることが可能となる。これにより、胸５３に重力感を表現でき、胸５３の変形挙動を自然に表現できる。
【０１６１】
また、本実施形態では特に、情報処理装置３を、姿勢検出処理部２１としてさらに機能させる。姿勢検出処理部２１は、胸５３の姿勢を検出する。第２力作用処理部２３は、姿勢検出処理部２１により検出された胸５３の姿勢に基づいて、力Ｆ２の向きを変更する。
【０１６２】
これにより、胸５３が前向き姿勢でない場合に、胸５３の姿勢に基づいて重力Ｇと力Ｆ２との合力が変化するので、姿勢に応じた形状となるように胸５３を重力Ｇの影響（重力Ｇと力Ｆ２との合力）により変形させることができる。これにより、胸５３に重力感を表現でき、胸５３の変形挙動を自然に表現できる。
【０１６３】
また、本実施形態のゲームプログラムは、情報処理装置３を、制御点設定処理部３３、制御点移動処理部４３、パラメータ設定処理部３７、移動量決定処理部３９として機能させる。制御点設定処理部３３は、胴体５５に支持された胸５３に対して複数の制御点Ｃを設定する。制御点移動処理部４３は、胸５３に作用する力に基づいて、複数の制御点Ｃの少なくとも１つを移動させる第２移動処理を実行する。パラメータ設定処理部３７は、複数の制御点Ｃの少なくとも２つに、胸５３の対応する部分の変形のし易さを表す第２移動量パラメータを、制御点Ｃの支持オブジェクト胴体５５からの離間距離に基づいて変化するように設定する。移動量決定処理部３９は、第２移動量パラメータに基づいて制御点Ｃの移動量を決定する。
【０１６４】
制御点Ｃの移動量に関する第２移動量パラメータを使用して各制御点Ｃの移動量を決定することで、制御点Ｃごとに移動量を複雑な演算により求める必要がなくなるので、胸５３を変形させる際の演算を簡略化でき、情報処理装置３の演算処理負担を軽減できる。その結果、高速且つ安定した制御を実現できる。
【０１６５】
また、一般に、現実空間では、胸５３の各部位は、胴体５５からの離間距離に基づいて変形のし易さが異なる（例えば、離間距離が小さい基端側の部位よりも離間距離が大きい先端側の部位の方が変形し易い）。したがって、少なくとも２つの制御点Ｃに、胴体５５からの離間距離に基づいて変化するように（例えば、離間距離が小さい基端側の制御点Ｃよりも離間距離が大きい先端側の制御点Ｃの方が変形し易くなるように）第２移動量パラメータを設定し、このように設定された第２移動量パラメータに基づいて各制御点Ｃの移動量を決定することで、基端側の制御点Ｃよりも先端側の制御点Ｃの方が移動量が大きくなるように胸５３を変形させることが可能となる。これにより、胸５３に各部位の変形のし易さに応じた自然な柔らかさを表現でき、胸５３の変形挙動を物理法則に従った自然な表現とすることができる。
【０１６６】
また、本実施形態では特に、パラメータ設定処理部３７は、基端側の制御点Ｃよりも上記離間距離が大きな先端側の制御点Ｃに対し、基端側の制御点Ｃよりも変形がし易くなるように第２移動量パラメータを設定する。
【０１６７】
一般に、現実空間では、胸５３の各部位は、胴体５５からの離間距離が小さい基端側の部位よりも離間距離が大きい先端側の部位の方が変形し易い。したがって、離間距離が小さい基端側の制御点Ｃよりも離間距離が大きい先端側の制御点Ｃの方が変形し易くなるように第２移動量パラメータを設定することで、基端側の制御点Ｃよりも先端側の制御点Ｃの方が移動量が大きくなるように胸５３を変形させることができる。これにより、胸５３に各部位の変形のし易さに応じた自然な柔らかさを表現でき、胸５３の変形挙動を自然に表現できる。
【０１６８】
また、本実施形態では特に、情報処理装置３を、力向き検出処理部３５としてさらに機能させる。力向き検出処理部３５は、揺動可能な胸５３に作用する力Ｆ３の向きを検出する。パラメータ設定処理部３７は、複数の制御点Ｃのうち、力向き検出処理部３５により検出された力Ｆ３の向きに対応する側に位置する少なくとも２つの制御点Ｃに、第２移動量パラメータを設定する。
【０１６９】
揺動する側の少なくとも２つの制御点Ｃに、基端側の制御点Ｃよりも先端側の制御点Ｃの方が変形し易くなるように、第２移動量パラメータを設定することで、揺動する側の基端側の部位が胴体５５の内部に入り込まないように胸５３を変形させることが可能となる。これにより、胸５３の変形挙動をより自然でダイナミックに表現できる。
【０１７０】
＜９．変形例等＞
なお、本発明は、上記の実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
【０１７１】
例えば、上記第１変形処理においても、上記第３変形処理と同様、基準点Ｂを設定し、各制御点Ｃの移動方向を、制御点Ｃと基準点Ｂとを結ぶ直線方向に沿った方向にしてもよい。また、上記第１変形処理においても、上記第３変形処理と同様、重力Ｇ及び力Ｆ２を作用させ、これら重力Ｇ及び力Ｆ２についても含む力に応じて、上記第２移動処理等を行ってもよい。
【０１７２】
また、以上では、画像生成プログラムがゲームプログラムである場合について説明したが、画像生成プログラムは、ゲーム以外の技術（例えばＣＡＤやコンピュータ・シミュレーション等）にも適用可能である。
【０１７３】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【符号の説明】
【０１７４】
３            情報処理装置
９            基準点設定処理部
１１          制御点設定処理部（第１制御点設定処理部の一例）
１３          パラメータ設定処理部（第１パラメータ設定処理部の一例）
１５          接触検出処理部
１７          第１力作用処理部
１９          重力作用処理部
２１          姿勢検出処理部
２３          第２力作用処理部
２５          移動量決定処理部（第１移動量決定処理部の一例）
２７          移動向き決定処理部
２９          制御点移動処理部（第１制御点移動処理部の一例）
３３          制御点設定処理部（第２制御点設定処理部の一例）
３５          力向き検出処理部
３７          パラメータ設定処理部（第２パラメータ設定処理部の一例）
３９          移動量決定処理部（第２移動量決定処理部の一例）
４３          制御点移動処理部（第２制御点移動処理部の一例）
５３          胸（変形オブジェクトの一例）
５５          胴体（支持オブジェクトの一例）
５７          接触オブジェクト
１２５        記録媒体
Ｂ            基準点
Ｃ            制御点
【図１】
0006749765.tif 000002
【図２】
0006749765.tif 000003
【図３】
0006749765.tif 000004
【図４】
0006749765.tif 000005
【図５】
0006749765.tif 000006
【図６】
0006749765.tif 000007
【図７】
0006749765.tif 000008
【図８】
0006749765.tif 000009
【図９】
0006749765.tif 000010
【図１０】
0006749765.tif 000011
【図１１】
0006749765.tif 000012
【図１２】
0006749765.tif 000013
【図１３】
0006749765.tif 000014
【図１４】
0006749765.tif 000015
【図１５】
0006749765.tif 000016
【図１６】
0006749765.tif 000017
【図１７】
0006749765.tif 000018