JP2022088007A - 画像生成プログラム、記録媒体、画像生成方法 - Google Patents

画像生成プログラム、記録媒体、画像生成方法 Download PDF

Info

Publication number
JP2022088007A
JP2022088007A JP2020200214A JP2020200214A JP2022088007A JP 2022088007 A JP2022088007 A JP 2022088007A JP 2020200214 A JP2020200214 A JP 2020200214A JP 2020200214 A JP2020200214 A JP 2020200214A JP 2022088007 A JP2022088007 A JP 2022088007A
Authority
JP
Japan
Prior art keywords
limit value
control points
processing unit
target position
image generation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020200214A
Other languages
English (en)
Inventor
賢二 高松
Kenji Takamatsu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koei Tecmo Holdings Co Ltd
Original Assignee
Koei Tecmo Holdings Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koei Tecmo Holdings Co Ltd filed Critical Koei Tecmo Holdings Co Ltd
Priority to JP2020200214A priority Critical patent/JP2022088007A/ja
Publication of JP2022088007A publication Critical patent/JP2022088007A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

【課題】柔軟な物体の動きをより自然に表現する。【解決手段】情報処理装置3を、人物モデル25が着用する衣服27を変形させるための布シミュレーション処理により、衣服27に設定された複数の制御点37の目標位置を計算する第1目標位置計算処理部13、複数の制御点37の各々に対して設定された、関連付けされた基準点35及び当該基準点35ごとの関連度合いを含むウェイト情報に基づいて、複数の制御点37のスキニング位置を計算する第2目標位置計算処理部15、複数の制御点37に対し、スキニング位置からの移動量の制限値を設定する制限値設定処理部17、設定されたスキニング位置からの移動量の制限値の範囲内で、複数の制御点37の位置を布シミュレーションによる目標位置に近づくように更新する制御点更新処理部21、制御点37の更新された位置に基づいて衣服27の画像を生成する画像生成処理部23として機能させる。【選択図】図2

Description

本発明は、画像生成プログラム、記録媒体、及び画像生成方法に関する。
従来、バネモデルを使用して変形可能な物体をシミュレートする方法が知られている。例えば特許文献1には、布、衣服、毛髪等の柔軟な物体を複数の四角形ポリゴンで構成し、その頂点を仮想的な質点として、隣り合う質点の間を仮想的なバネで連結したモデルにより、その形状を求める布シミュレーション技術が記載されている。
特開2005-99952号公報
上記布シミュレーション技術では、計算時間の制限やキャラクタの動きの速さ等に起因して、布、衣服、及び毛髪等がキャラクタの身体にめり込んだり貫通する等の不自然な画像となる場合があるという課題があった。
本発明はこのような問題点に鑑みてなされたものであり、柔軟な物体の動きをより自然に表現することが可能な画像生成プログラム、記録媒体、及び画像生成方法を提供することを目的とする。
上記目的を達成するために、本発明の画像生成プログラムは、情報処理装置を、柔軟なオブジェクトを変形させるための所定のシミュレーション処理により、前記オブジェクトに設定された複数の制御点の第1目標位置をそれぞれ計算する第1目標位置計算処理部、前記複数の制御点の各々に対して設定された、関連付けされた少なくとも1つの基準点及び当該基準点ごとの関連度合いを含むウェイト情報に基づいて、前記複数の制御点の第2目標位置をそれぞれ計算する第2目標位置計算処理部、前記複数の制御点に対し、前記第2目標位置からの移動量の制限値を設定する制限値設定処理部、設定された前記第2目標位置からの移動量の制限値の範囲内で、前記複数の制御点の位置を前記第1目標位置に近づくようにそれぞれ更新する制御点更新処理部、前記制御点の更新された位置に基づいて前記オブジェクトの画像を生成する画像生成処理部、として機能させる。
上記目的を達成するために、本発明の記録媒体は、上記画像生成プログラムを記録した、情報処理装置が読み取り可能な記録媒体である。
上記目的を達成するために、本発明の画像生成方法は、情報処理装置によって実行される画像生成方法であって、柔軟なオブジェクトを変形させるための所定のシミュレーション処理により、前記オブジェクトに設定された複数の制御点の第1目標位置をそれぞれ計算するステップと、前記複数の制御点の各々に対して設定された、関連付けされた少なくとも1つの基準点及び当該基準点ごとの関連度合いを含むウェイト情報に基づいて、前記複数の制御点の第2目標位置をそれぞれ計算するステップと、前記複数の制御点に対し、前記第2目標位置からの移動量の制限値を設定するステップと、設定された前記第2目標位置からの移動量の制限値の範囲内で、前記複数の制御点の位置を前記第1目標位置に近づくようにそれぞれ更新するステップと、前記制御点の更新された位置に基づいて前記オブジェクトの画像を生成するステップと、を有する。
本発明の画像生成プログラム等によれば、柔軟な物体の動きをより自然に表現することができる。
一実施形態に係るゲームシステムの全体構成の一例を表すシステム構成図である。 情報処理装置の機能的構成の一例を表すブロック図である。 柔軟なオブジェクトを模した三次元対象物を形成する複数の四角形の一例を表す説明図、及び、三次元対象物の描画に必要な計算を行う場合に想定される力学モデルの一例を表す説明図である。 基準点及び制御点の設定の一例を表す説明図である。 基準点及び制御点の挙動の一例を表す説明図である。 制限値を適用する割合の分布形状の一例を表すグラフである。 情報処理装置のCPUによって実行される処理手順の一例を表すフローチャートである。 オブジェクトの立体的形状を保持する変形例において、各制御点の移動量の制限値が比較的大きな値に設定された場合の一例を表す説明図である。 オブジェクトの立体的形状を保持する変形例において、各制御点の移動量の制限値が比較的小さな値に設定された場合の一例を表す説明図である。 情報処理装置のハードウェア構成の一例を表すブロック図である。
以下、本発明の一実施の形態について図面を参照しつつ説明する。なお、本実施形態では、本発明をゲームに適用する場合、すなわち本発明の画像生成プログラム及び画像生成方法が情報処理装置によって実行されることによりゲームが提供される場合について説明するが、適用対象をゲームに限定するものではない。
<1.ゲームシステムの全体構成>
まず、図1を用いて、本実施形態に係るゲームシステム1の全体構成の一例について説明する。図1に示すように、ゲームシステム1は、情報処理装置3と、ゲームコントローラ5と、表示装置7とを有する。ゲームコントローラ5及び表示装置7は、情報処理装置3と有線又は無線により通信可能に接続されている。
情報処理装置3は、例えば据え置き型のゲーム機である。但しこれに限定されるものではなく、例えば入力部や表示部等を一体に備えた携帯型のゲーム機でもよい。また、ゲーム機以外にも、例えば、サーバコンピュータ、デスクトップ型コンピュータ、ノート型コンピュータ、タブレット型コンピュータ等のように、コンピュータとして製造、販売等されているものや、スマートフォン、携帯電話、ファブレット等のように、電話機として製造、販売等されているものでもよい。
プレイヤは、ゲームコントローラ5を用いて各種の操作入力を行う。図1に示す例では、ゲームコントローラ5は例えば十字キー9や複数のボタン11等を有する。なお、ゲームコントローラ5は上記に代えて又は加えて、例えばジョイスティックやタッチパッド等を有してもよい。
<2.情報処理装置の機能的構成>
次に、図2及び図3~図6を用いて、情報処理装置3の機能的構成の一例について説明する。
図2に示すように、情報処理装置3は、第1目標位置計算処理部13と、第2目標位置計算処理部15と、制限値設定処理部17と、割合設定処理部19と、制御点更新処理部21と、画像生成処理部23とを有する。
第1目標位置計算処理部13は、柔軟なオブジェクトを変形させるための所定のシミュレーション処理により、オブジェクトに設定された複数の制御点の第1目標位置をそれぞれ計算する。「柔軟なオブジェクト」とは、動作する3次元モデルに付随して柔軟に揺れ動くことが可能なオブジェクトであり、例えば人物モデルに付随する衣服等である。なお、人物モデルは人間に限定されるものではなく、例えば動物、人間や動物以外の生物、仮想的な生物(例えば怪物、ゴースト、妖怪等)、ロボット、物品や物体などでもよい。
「所定のシミュレーション処理」とは、柔軟なオブジェクトの変形をシミュレート可能な処理であれば特に限定されるものではないが、例えば衣服等のオブジェクトの変形をシミュレート可能ないわゆる布(クロス)シミュレーション処理が好適である。具体的には、例えば弾性バネモデルにより力学的な計算を行うシミュレーション処理を用いてもよい。図3(a)は、柔軟なオブジェクト(例えば正方形の布)を模した三次元対象物を形成する複数の四角形の一例を表す説明図であり、図3(b)は、図3(a)に示した三次元対象物の描画に必要な計算を行う場合に想定される力学モデルの一例を表す説明図である。
図3(a)に示す三次元対象物の描画に要する計算を行う場合には、図3(b)に示すように各四角形の頂点を質点とし、隣接する質点間をバネで接続し、これらのバネにより各質点が隣接する質点(布の端部の質点では隣接する2又は3の質点)から力を受けるバネモデルを想定する。このバネモデルにより、例えば布の端部を引っ張るという動きを描画する場合に、布の端部に相当する質点にかかる力、またその質点に隣接する質点にかかる力、さらにその質点に隣接する質点にかかる力を計算することが可能となり、布を模した三次元対象物の形状の変化を計算により求めることが可能となる。
また、布シミュレーション処理として例えば位置ベースの物理シミュレーション処理(PBD:Position Based Dynamics。論文「Position Based Dynamics」、http://matthias-mueller-fischer.ch/publications/posBasedDyn.pdf)を用いてもよい。PBDは、速度情報を持たずに現在位置、前状態の位置、そしてフレーム更新時間Δt(例えば60fpsの場合には16.67ms)で物理計算をしていく手法である。
なお、上記のシミュレーション処理以外にも、布のような動きをシミュレート可能な手法であれば、様々なシミュレーション処理を採用することができる。なお、以下では説明の便宜上、第1目標位置計算処理部13により実行される所定のシミュレーション処理を「布シミュレーション」と、第1目標位置計算処理部13により計算される第1目標位置を「布シミュレーションによる目標位置」ともいう。
第2目標位置計算処理部15は、複数の制御点の各々に対して設定されたウェイト情報に基づいて、複数の制御点の第2目標位置をそれぞれ計算する。ウェイト情報は、各制御点が基準点(いわゆるボーン)に対してどのように追従するかを設定するための情報であり、関連付けされた少なくとも1つの基準点と、当該基準点ごとの関連度合いである重み量が含まれる。以下では説明の便宜上、第2目標位置計算処理部15により計算される第2目標位置を「スキニング位置」ともいう。
次に、第2目標位置計算処理部15による処理の具体例について説明する。図4に、基準点及び制御点の設定の一例を示す。図4に示す例では、3次元仮想空間内に男性の人物モデル25が描画されている。人物モデル25は衣服27を着用しており、プレイヤによるゲームコントローラ5の操作に応じて各種の動作を行う。3次元仮想空間内にはワールド座標系(X,Y,Z)が設定されている。衣服27は、身体に固定された部分である固定部29と、自由に動くことが可能な部分である可動部31とを備えている。図4に示す例では、固定部29は境界33より上方の部分であり、可動部31は境界33より下方の部分である。
人物モデル25は、身体を動かすための複数の基準点35(ボーンともいう)を備えている。なお、図4では基準点35を後述する制御点37と区別するためにハッチングで示している。図4に示す例では、例えば人物モデル25の手首関節、肘関節、腰、股関節、膝関節等に対応する位置に基準点35がそれぞれ設定されている。各基準点35は人物モデル25の動作システム(モーション計算等)により移動する。例えば、股関節と膝関節に対応する複数の基準点35が、衣服27の可動部31を変形させるための基準点として設定されている。
図4に示すように、衣服27には複数の制御点37が設定されている。制御点37は、衣服27の動きや変形を表現するために制御上使用される点である。複数の制御点37は衣服27の表面を覆うように格子状に配列されている。なお、図4では固定部29の制御点37を可動部31の制御点37と区別するために四角形状で示している。両者の違いは、固定部29の制御点37は後述する移動量の制限値を適用する割合が0(又は0に近い値でもよい)に設定されるのに対し、可動部31の制御点37は移動量の制限値を適用する割合が0よりも大きな値(0~1の範囲)に設定される点である。
上述のように、各制御点37にはウェイト情報がそれぞれ設定されており、当該ウェイト情報には制御点37がどの基準点35と関連付けられているか、及び、当該基準点35ごとの関連度合い(重み量)が含まれる。例えば、衣服27の可動部31の右側の領域の各制御点37に対しては2つの股関節と右足の膝関節に対応する3つの基準点35が関連付けられており、各基準点35ごとに重み量が設定されている。また、衣服27の可動部31の左側の領域の各制御点37に対しては2つの股関節と左足の膝関節に対応する3つの基準点35が関連付けられており、各基準点35ごとに重み量が設定されている。なお、1つの制御点37に設定される各基準点35に対する重み量(割合)の合計は1である。ウェイト情報は、衣服27の可動部31が人物モデル25の身体に干渉(例えばめり込み、貫通等)しないように、上記関連付ける基準点と重み量が調整されている。
第2目標位置計算処理部15は、上記ウェイト情報に基づいて、各制御点37のスキニング位置(第2目標位置)をそれぞれ計算する。具体的には、第2目標位置計算処理部15は下記の計算式(1)にしたがって各制御点37のスキニング位置を計算する。
Figure 2022088007000002
なお、goal[i]∈Rはi番目の制御点37のスキニング位置、BoneNum[i]∈Nはi番目の制御点37に関連付けられた基準点35の数、BoneWeightArray[i][j]∈Rはi番目の制御点37に関連付けられたj番目の基準点35の重み量、BonePosition[k]∈Rはk番目の基準点35の現在位置、BoneArray[i][j]∈Zはi番目の制御点37に関連付けられたj番目の基準点35のインデックス(配列の添字)である。
図5に、計算されたスキニング位置の一例を示す。なお、図5では説明を簡単にするために制御点37の数を減らして簡易的な二次元オブジェクトとして図示している。図5(a)に示す初期状態から、人物モデル25が動作することにより、例えば図5(b)に示すように各基準点35が移動したとする。前述のように、各制御点37にはウェイト情報として関連付けられた基準点35ごとに重み量が設定されており、各基準点35の移動後の現在位置と上記重み量に応じて、各制御点37のスキニング位置がそれぞれ計算される。図5(c)にはこの計算されたスキニング位置に各制御点37が移動した状態が示されている。このようにして、人物モデル25の動きに応じて基準点35が移動すると、各制御点37のスキニング位置もそれに追従するように所定の方向に所定の量だけ移動する。
図2に戻り、制限値設定処理部17は、複数の制御点37に対し、第2目標位置計算処理部15により計算されたスキニング位置からの移動量の制限値を設定する。「移動量の制限値」は、前述した制御点37の布シミュレーションによる目標位置をスキニング位置から所定の範囲内に制限するための当該所定の範囲を規定する値である。制限値設定処理部17は、移動量の制限値を複数の制御点37の各々に対して個別に設定するのではなく、複数の制御点37に対して共通の値として設定する。移動量の制限値は、ゲームプログラムの設計者等により例えばスライダ等を用いて適切な値に調整されており、制限値設定処理部17は当該調整結果に応じて制限値を可変に設定する。
割合設定処理部19は、複数の制御点37の各々に対し、制限値設定処理部17により設定された移動量の制限値を適用する割合を個別に設定する。割合は0~1の範囲の数値で設定されてもよいし、0~100の範囲の数値(%)で設定されてもよい。例えば、割合が0とされた制御点37の位置は、移動量の制限値の大小に関わらずスキニング位置に制限(固定)される。また、割合が0より大きな値に設定された制御点37は、スキニング位置から移動量の制限値に割合を乗じた値の範囲内で、前述の布シミュレーションによる目標位置に応じて自由に動くことができる。
割合は複数の制御点37の各々に対して個別に設定されるので、オブジェクトの部位に応じて変化をつけることが可能である。例えば、オブジェクトの固定された部分(例えば衣服27の固定部29)から自由に動くことが可能な部分(例えば衣服27の可動部31の下端)に向けて、割合が徐々に大きくなるように設定されてもよい。
図6に、この場合の制限値の適用割合の分布形状の一例を示す。図6は、縦軸に割合(0~1)をとり、横軸に例えば鉛直下方向(ワールド座標系のY軸負方向)の位置をとったグラフであり、オブジェクトの固定端(例えば衣服27の固定部29)から自由端(例えば衣服27の可動部31の下端)に向けて、割合が徐々に大きくなるように設定されている。なお、図示は省略するが、衣服の途中に例えばベルトやアクセサリ、アイテム等が装備されているような場合には、その部分は動きが制限されるように上記割合を小さく設定してもよい。この場合、例えばグラフの形状が途中に凹みが形成された形状となる。
このような割合分布の編集は、例えばゲームプログラムの設計者等により行われる。この際、例えば複数種類のカーブの中から特定のカーブを選択することで割合分布を編集可能としてもよいし、例えば図6に示すようにカーブの両端や途中に複数の編集ポイント39を設けておき、当該編集ポイント39の値を変更することでカーブの形状を編集できるようにしてもよい。
図2に戻り、制御点更新処理部21は、上記制限値設定処理部17により設定された制限値に上記割合設定処理部19により設定された割合を乗じた、スキニング位置からの移動量の制限値の範囲内で、複数の制御点37の位置を上記第1目標位置計算処理部13により計算された布シミュレーションによる目標位置に近づくようにそれぞれ更新する。すなわち、制御点37の布シミュレーションによる動きがスキニング位置から制限値の範囲内に制限される。
画像生成処理部23は、上記制御点更新処理部21により更新された制御点37の位置に基づいてオブジェクトの画像を生成する。
なお、以上説明した各処理部における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部(例えば1つの処理部)で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、上述した各処理部の機能は、後述するCPU101(後述の図10参照)が実行するゲームプログラムにより実装されるものであるが、例えばその一部がASICやFPGA等の専用集積回路、その他の電気回路等の実際の装置により実装されてもよい。
<3.情報処理装置が実行する処理手順>
次に、図7を用いて、情報処理装置3のCPU101によって実行される処理手順の一例について説明する。
ステップS10では、情報処理装置3は、第1目標位置計算処理部13により布シミュレーションを実行し、衣服27(オブジェクト)に設定された複数の制御点37の布シミュレーションによる目標位置(第1目標位置)をそれぞれ計算する。
ステップS20では、情報処理装置3は、第2目標位置計算処理部15により、複数の制御点37の各々に対して設定されたウェイト情報に基づいて、複数の制御点37のスキニング位置(第2目標位置)をそれぞれ計算する。
ステップS30では、情報処理装置3は、制限値設定処理部17により、複数の制御点37に対し、上記ステップS20で計算したスキニング位置からの移動量の制限値を設定する。
ステップS40では、情報処理装置3は、割合設定処理部19により、複数の制御点37の各々に対し、上記ステップS30で設定した移動量の制限値を適用する割合を個別に設定する。
ステップS50では、情報処理装置3は、制御点更新処理部21により、上記ステップS40で設定したスキニング位置からの移動量の制限値の範囲内で、複数の制御点37の位置を上記ステップS10で計算した布シミュレーションによる目標位置に近づくようにそれぞれ更新する。
ステップS60では、情報処理装置3は、画像生成処理部23により、上記ステップS50で更新した各制御点37の位置に基づいて衣服27(オブジェクト)の画像を生成する。以上により、本フローチャートを終了する。
なお、上述した処理手順は一例であって、上記手順の少なくとも一部を削除又は変更してもよいし、上記以外の手順を追加してもよい。また、上記手順の少なくとも一部の順番を変更してもよいし、複数の手順が単一の手順にまとめられてもよい。
<4.実施形態の効果>
以上説明したように、本実施形態のゲームプログラムは、情報処理装置3を、人物モデル25が着用する衣服27(柔軟なオブジェクト)を変形させるための布シミュレーション処理により、衣服27に設定された複数の制御点37の布シミュレーションによる目標位置をそれぞれ計算する第1目標位置計算処理部13、複数の制御点37の各々に対して設定された、関連付けされた少なくとも1つの基準点35及び当該基準点35ごとの関連度合いを含むウェイト情報に基づいて、複数の制御点37のスキニング位置をそれぞれ計算する第2目標位置計算処理部15、複数の制御点37に対し、スキニング位置からの移動量の制限値を設定する制限値設定処理部17、設定されたスキニング位置からの移動量の制限値の範囲内で、複数の制御点37の位置を布シミュレーションによる目標位置に近づくようにそれぞれ更新する制御点更新処理部21、制御点37の更新された位置に基づいて衣服27の画像を生成する画像生成処理部23、として機能させる。これにより、次のような効果を奏する。
すなわち、布シミュレーション処理により衣服27に設定された複数の制御点37の目標位置を計算し、複数の制御点37の現在位置を布シミュレーションによる目標位置に近づくようにそれぞれ更新する場合、計算時間の制限や人物モデル25の動きの速さ等に起因して、衣服27が人物モデル25の身体にめり込んだり貫通する等の不自然な画像となる場合がある。
そこで本実施形態では、複数の制御点37の各々に対し、関連付けされた少なくとも1つの基準点35及び当該基準点35ごとの重み量を含むウェイト情報を設定しておく。そして、当該ウェイト情報に基づいて複数の制御点37のスキニング位置をそれぞれ計算する。基準点35は人物モデル25の動きに応じて移動し、各制御点37のスキニング位置もそれに追従するように所定の方向に所定の量だけ移動する。
このとき、ウェイト情報は各制御点37のスキニング位置が人物モデル25の身体に干渉しないように設定される。その上で、本実施形態では複数の制御点37に対してスキニング位置からの移動量の制限値をそれぞれ設定し、当該制限値の範囲内で複数の制御点37の位置を布シミュレーションによる目標位置に近づくようにそれぞれ更新する。そして、制御点37の更新された位置に基づいて衣服27の画像を生成する。これにより、衣服27が動作する人物モデル25の身体にめり込んだり貫通したりすることを抑制できる。したがって、衣服27等の柔軟な物体の動きをより自然に表現することができる。
また、本実施形態では特に、制限値設定処理部17は、移動量の制限値を可変に設定する。これにより、ゲームの設計時に移動量の制限値の大小を調整することが可能となり、例えばオブジェクトの種類や素材等に応じて動きの自由度(硬さ)を変化させて表現することが可能となる。
また、本実施形態では特に、制限値設定処理部17は、移動量の制限値を複数の制御点37に共通の値として設定し、ゲームプログラムは、情報処理装置3を、複数の制御点37の各々に対し、移動量の制限値を適用する割合を個別に設定する割合設定処理部19、としてさらに機能させる。
これにより、複数の制御点37の各々に対して設定する移動量の制限値を異ならせることができる。その結果、柔軟なオブジェクトの固定端に近い部位ほど動きにくく、自由端に近い部位ほど自由に動きやすくする等が可能となり、人物モデル25に付随する衣服27等の自然な動きを表現することができる。また、各制御点37に対して移動量の制限値を個別に設定するのではなく、制限値自体は共通の値として設定しておき、各制御点37に対しては移動量の制限値を適用する割合を個別に設定することにより、ゲームプログラム設計時の設定の作業負担を軽減できると共に、制限値の大小の変化を直感的に分かり易くすることができる。
また、本実施形態では特に、割合設定処理部19は、オブジェクトの固定された部分から自由に動くことが可能な部分に向けて、割合が徐々に大きくなるように設定する。これにより、次のような効果を奏する。
例えば図4に示す衣服27のように、一つながりの連続した生地上において、境界33の上方の固定部29の制御点37は固定、境界33の下方の可動部31の制御点37は自由に動けるようにすると、境界33における生地の動きが不連続となって不自然な画像となる可能性がある。本実施形態では、衣服27の固定部29と可動部31との境界33において、移動量の制限値を適用する割合をなだらかに変化させることが可能となり、動きを馴染ませて境界33を目立たなくすることができる。その結果、境界33部分の動きが不連続となって不自然な画像となることを抑制でき、自然な表現が可能となる。
また、本実施形態では特に、柔軟なオブジェクトは、人物モデル25に付随する衣服27であり、基準点35は、人物モデル25に動きを与えるために人物モデル25の複数個所に設定されている。
これにより、人物モデル25の動きが速い場合でも、衣服27が人物モデル25の身体にめり込んだり貫通することを抑制できる。また、衣服27の動きを固定部から自由端に向けてなだらかに変化させることができる。したがって、衣服27の動きをより自然に表現することができる。
<5.変形例等>
なお、本発明は、上記の実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
(5-1.オブジェクトが立体的形状を有する場合)
例えばワイヤフレームにより膨らませた形状のスカートのように、オブジェクトが立体的な形状を有する衣服等である場合には、その立体的形状を保持しつつ、柔軟な衣服の動きを自然に表現することが可能である。以下、その詳細について説明する。
図8に、本変形例における基準点及び制御点の設定の一例を示す。図8に示す例では、3次元仮想空間内に女性の人物モデル41が描画されている。人物モデル41は衣服43を着用しており、プレイヤによるゲームコントローラ5の操作に応じて各種の動作を行う。衣服43は、身体に固定された部分である固定部45と、自由に動くことが可能なスカート部分である可動部47とを備えている。
人物モデル41は、身体を動かすための複数の基準点49(ボーンともいう)を備えている。なお、図8では基準点49を後述する制御点51と区別するためにハッチングで示している。図8に示す例では、例えば人物モデル41の手首関節、肘関節、肩関節、腰、股関節、膝関節、足首関節等に対応する位置に基準点49がそれぞれ設定されている。各基準点49は人物モデル41の動作システム(モーション計算等)により移動する。例えば、股関節、膝関節、足首関節に対応する複数の基準点49が、衣服43の可動部47を変形させるための基準点として設定されている。
図8に示すように、衣服43には複数の制御点51が設定されている。制御点51は、衣服43の動きや変形を表現するために制御上使用される点である。複数の制御点51は衣服43の表面を覆うように格子状に配列されている。なお、図8では固定部45の制御点51を可動部47の制御点51と区別するために四角形状で示している。両者の違いは、前述のように、固定部45の制御点51は移動量の制限値を適用する割合が0(又は0に近い値でもよい)に設定されるのに対し、スカート部分である可動部47の制御点51は移動量の制限値を適用する割合が0よりも大きな値(0~1の範囲)に設定される点である。
前述のように、各制御点51にはウェイト情報がそれぞれ設定されており、当該ウェイト情報には制御点51がどの基準点49と関連付けられているか、及び、当該基準点49ごとの重み量が含まれる。例えば、衣服43の可動部47の右側の領域の各制御点51に対しては、2つの股関節と右足の膝関節及び足首関節に対応する4つの基準点49が関連付けられており、各基準点49ごとに重み量が設定されている。また、衣服43の可動部47の左側の領域の各制御点51に対しては2つの股関節と左足の膝関節及び足首関節に対応する4つの基準点49が関連付けられており、各基準点49ごとに重み量が設定されている。なお、1つの制御点51に設定される各基準点49に対する重み量(割合)の合計は1である。
衣服43のスカート部分である可動部47は、例えば図9に示すように元々は丸く膨らんだ立体的な形状を有するスカートである。そして、各制御点51のウェイト情報は、衣服43の可動部47が人物モデル41の身体に干渉(例えばめり込み、貫通等)しないようにすると共に、上記立体的な形状が表現される(モデリングされる)ように、上記関連付ける基準点と重み量が調整されている。この場合において、例えば移動量の制限値が比較的大きな値に設定された場合には、可動部47の各制御点51はスキニング位置から大きな範囲で自由に動けることとなる。その結果、図8に示すように、可動部47は布シミュレーションにより重力の影響を受けて萎んだ形状に表現される。一方、例えば移動量の制限値が比較的小さな値(0または0に近い値)に設定された場合には、可動部47の各制御点51の位置はスキニング位置と一致するように制限されるか、または可動範囲がスキニング位置近傍に制限されることとなる。その結果、図9に示すように、可動部47の立体的形状が保持され、衣服43を立体的な形状をもった衣服として表現することができる。前述のように、移動量の制限値はゲームプログラムの設計者等により適切な値に調整可能であることから、衣服43の立体的な形状を保持する度合いを可変に調整することができる。
なお、本変形例における情報処理装置3の各処理部の機能や処理手順は、前述の実施形態と同様であるため説明を省略する。
以上説明した変形例によれば、オブジェクトが立体的な形状を有する衣服等である場合に、移動量の制限値又は当該移動量の制限値を適用する割合を小さくすることで、モデリングした形状を重力等の外力で崩れ難くして保持し、立体的な形状をもった布や衣服等として表現することができる。この際、制限値又は割合の大小を調整することで、立体的な形状を保持する度合いを調整することができる。
(5-2.その他)
以上では、柔軟なオブジェクトの一例として衣服を例にとって説明したが、これに限定されるものではない。例えば、人物モデルに付随する衣服以外の布(鉢巻等の布製の装備品や、旗等の布製の所持アイテムを含む)や毛髪等のオブジェクトに以上説明した処理を適用してもよい。毛髪等のオブジェクトである場合には、「所定のシミュレーション処理」は紐やロープ等のオブジェクトの変形をシミュレート可能ないわゆる紐シミュレーション処理が好適である。
また、以上では、画像生成プログラムがゲームプログラムである場合について説明したが、画像生成プログラムは、ゲーム以外の技術分野、例えばCGアニメーション、コンピュータ・シミュレーション、CAD等にも適用可能である。
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
<6.情報処理装置のハードウェア構成>
次に、図10を用いて、上記で説明したCPU101等が実行するプログラムにより実装された各処理部を実現する情報処理装置3のハードウェア構成の一例について説明する。
図10に示すように、情報処理装置3は、例えば、CPU101と、ROM103と、RAM105と、GPU106と、例えばASIC又はFPGA等の特定の用途向けに構築された専用集積回路107と、入力装置113と、出力装置115と、記録装置117と、ドライブ119と、接続ポート121と、通信装置123を有する。これらの構成は、バス109や入出力インターフェース111等を介し相互に信号を伝達可能に接続されている。
ゲームプログラムは、例えば、ROM103やRAM105、ハードディスク等の記録装置117等に記録しておくことができる。
また、ゲームプログラムは、例えば、フレキシブルディスクなどの磁気ディスク、各種のCD、MOディスク、DVD等の光ディスク、半導体メモリ等のリムーバブルな記録媒体125に、一時的又は永続的(非一時的)に記録しておくこともできる。このような記録媒体125は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体125に記録されたゲームプログラムは、ドライブ119により読み出されて、入出力インターフェース111やバス109等を介し上記記録装置117に記録されてもよい。
また、ゲームプログラムは、例えば、ダウンロードサイト、他のコンピュータ、他の記録装置等(図示せず)に記録しておくこともできる。この場合、ゲームプログラムは、LANやインターネット等のネットワークNWを介し転送され、通信装置123がこのプログラムを受信する。そして、通信装置123が受信したプログラムは、入出力インターフェース111やバス109等を介し上記記録装置117に記録されてもよい。
また、ゲームプログラムは、例えば、適宜の外部接続機器127に記録しておくこともできる。この場合、ゲームプログラムは、適宜の接続ポート121を介し転送され、入出力インターフェース111やバス109等を介し上記記録装置117に記録されてもよい。
そして、CPU101が、上記記録装置117に記録されたプログラムに従い各種の処理を実行することにより、前述の第1目標位置計算処理部13、第2目標位置計算処理部15、制限値設定処理部17、割合設定処理部19、制御点更新処理部21、及び画像生成処理部23等による処理が実現される。この際、CPU101は、例えば、上記記録装置117からプログラムを、直接読み出して実行してもよく、RAM105に一旦ロードした上で実行してもよい。更にCPU101は、例えば、プログラムを通信装置123やドライブ119、接続ポート121を介し受信する場合、受信したプログラムを記録装置117に記録せずに直接実行してもよい。
また、CPU101は、必要に応じて、前述のゲームコントローラ5を含む、例えばマイク、マウス、キーボード等(図示せず)の入力装置113から入力する信号や情報に基づいて各種の処理を行ってもよい。
GPU106は、CPU101からの指示に応じて例えばレンダリング処理などの画像表示のための処理を行う。
そして、CPU101及びGPU106は、上記の処理を実行した結果を、例えば前述の表示装置7を含む、出力装置115から出力する。さらにCPU101及びGPU106は、必要に応じてこの処理結果を通信装置123や接続ポート121を介し送信してもよく、上記記録装置117や記録媒体125に記録させてもよい。
3 情報処理装置
13 基準点設定処理部
15 制御点設定処理部
17 重み量設定処理部
19 目標位置計算処理部
21 制御点更新処理部
23 画像生成処理部
25 衝突判定処理部
27 表示用目標位置計算処理部
29 第1表示用位置更新処理部
31 移動量計算処理部
33 第1係数設定処理部
35 第2係数設定処理部
37 第3係数設定処理部
39 第2表示用位置更新処理部
41 パッチ設定処理部
43 第3表示用位置更新処理部
45 初期距離設定処理部
47 距離拘束処理部
50 水着(衝突オブジェクト)
51L,51R 乳房(変形オブジェクト)
53 基準点
55 基準点
57 基準点
59 基準点
61 制御点
61p 表示用位置
61pg 第2目標位置
65 衝突オブジェクト
67 移動ベクトル
69 三角形パッチ(多角形パッチ)
125 記録媒体
N 法線ベクトル

Claims (8)

  1. 情報処理装置を、
    柔軟なオブジェクトを変形させるための所定のシミュレーション処理により、前記オブジェクトに設定された複数の制御点の第1目標位置をそれぞれ計算する第1目標位置計算処理部、
    前記複数の制御点の各々に対して設定された、関連付けされた少なくとも1つの基準点及び当該基準点ごとの関連度合いを含むウェイト情報に基づいて、前記複数の制御点の第2目標位置をそれぞれ計算する第2目標位置計算処理部、
    前記複数の制御点に対し、前記第2目標位置からの移動量の制限値を設定する制限値設定処理部、
    設定された前記第2目標位置からの移動量の制限値の範囲内で、前記複数の制御点の位置を前記第1目標位置に近づくようにそれぞれ更新する制御点更新処理部、
    前記制御点の更新された位置に基づいて前記オブジェクトの画像を生成する画像生成処理部、
    として機能させるための画像生成プログラム。
  2. 前記制限値設定処理部は、
    前記移動量の制限値を可変に設定する、
    請求項1に記載の画像生成プログラム。
  3. 前記制限値設定処理部は、
    前記移動量の制限値を前記複数の制御点に共通の値として設定し、
    前記情報処理装置を、
    前記複数の制御点の各々に対し、前記移動量の制限値を適用する割合を個別に設定する割合設定処理部、
    としてさらに機能させるための請求項1又は2に記載の画像生成プログラム。
  4. 前記割合設定処理部は、
    前記オブジェクトの固定された部分から自由に動くことが可能な部分に向けて、前記割合が徐々に大きくなるように設定する、
    請求項3に記載の画像生成プログラム。
  5. 前記オブジェクトは、
    人物モデルに付随する布、衣服、又は毛髪の少なくともいずれかであり、
    前記基準点は、
    前記人物モデルに動きを与えるために前記人物モデルの複数個所に設定されている
    請求項1乃至4のいずれか1項に記載の画像生成プログラム。
  6. 前記画像生成プログラムはゲームプログラムである、
    請求項1乃至5のいずれか1項に記載の画像生成プログラム。
  7. 請求項1乃至6のいずれか1項に記載の画像生成プログラムを記録した、情報処理装置が読み取り可能な記録媒体。
  8. 情報処理装置によって実行される画像生成方法であって、
    柔軟なオブジェクトを変形させるための所定のシミュレーション処理により、前記オブジェクトに設定された複数の制御点の第1目標位置をそれぞれ計算するステップと、
    前記複数の制御点の各々に対して設定された、関連付けされた少なくとも1つの基準点及び当該基準点ごとの関連度合いを含むウェイト情報に基づいて、前記複数の制御点の第2目標位置をそれぞれ計算するステップと、
    前記複数の制御点に対し、前記第2目標位置からの移動量の制限値を設定するステップと、
    設定された前記第2目標位置からの移動量の制限値の範囲内で、前記複数の制御点の位置を前記第1目標位置に近づくようにそれぞれ更新するステップと、
    前記制御点の更新された位置に基づいて前記オブジェクトの画像を生成するステップと、
    を有する、画像生成方法。
JP2020200214A 2020-12-02 2020-12-02 画像生成プログラム、記録媒体、画像生成方法 Pending JP2022088007A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020200214A JP2022088007A (ja) 2020-12-02 2020-12-02 画像生成プログラム、記録媒体、画像生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020200214A JP2022088007A (ja) 2020-12-02 2020-12-02 画像生成プログラム、記録媒体、画像生成方法

Publications (1)

Publication Number Publication Date
JP2022088007A true JP2022088007A (ja) 2022-06-14

Family

ID=81982087

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020200214A Pending JP2022088007A (ja) 2020-12-02 2020-12-02 画像生成プログラム、記録媒体、画像生成方法

Country Status (1)

Country Link
JP (1) JP2022088007A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7418677B1 (ja) 2023-07-10 2024-01-22 株式会社Laila 情報処理システム、情報処理方法、及び情報処理プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7418677B1 (ja) 2023-07-10 2024-01-22 株式会社Laila 情報処理システム、情報処理方法、及び情報処理プログラム

Similar Documents

Publication Publication Date Title
CA2863097C (en) System and method for simulating realistic clothing
US10430999B2 (en) Computer-implemented method for designing an avatar with at least one garment
JP5118220B2 (ja) 動作モデリング装置及び方法、並びにプログラム
Luo et al. Reactive 2D/3D garment pattern design modification
JP2015184875A (ja) データ処理装置及びデータ処理プログラム
US20200012104A1 (en) Skin-based approach to virtual modeling
KR102374307B1 (ko) 애니메이팅된 캐릭터의 수정
JP4988862B2 (ja) リアルタイム・クロース・シミュレーションシステム及び方法
JP5431173B2 (ja) 着装シミュレーション装置とシミュレーションプログラム
US20180315253A1 (en) Virtual Reality Presentation of Clothing Fitted on Avatars
JP2022088007A (ja) 画像生成プログラム、記録媒体、画像生成方法
JP2011113135A (ja) 仮想キャラクタ生成装置及び仮想キャラクタ生成プログラム
GB2546815A (en) Animating a virtual object in a virtual world
JP7189051B2 (ja) 画像生成プログラム、記録媒体、画像生成方法
KR102611126B1 (ko) 강화학습모델을 이용한 보행 동작 정보 출력 방법 및 서비스 장치
JP3713381B2 (ja) 物体の把持動作シミュレーション装置
KR102273317B1 (ko) 의상 패턴들의 오토 그레이딩 방법 및 장치
JP7008557B2 (ja) 画像生成プログラム、記録媒体、画像生成方法
KR20220145203A (ko) 시뮬레이션 방법 및 장치
JP3973992B2 (ja) 3次元モデル変形システム
JP2023062814A (ja) 画像生成プログラム、記録媒体、画像生成方法
JP5699648B2 (ja) 動作制御方法、ロボット及びプログラム
JP7418677B1 (ja) 情報処理システム、情報処理方法、及び情報処理プログラム
Kil et al. 3D Warp Brush: Interactive Free-Form Modeling on the Responsive Workbench.
JP2023069831A (ja) 画像生成プログラム、記録媒体、画像生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231030

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240913