1

私が達成しようとしている全体的な目標は、身長、体重、体型などを変更できるカスタマイズ可能なアバター システムを実装することです。これはどのように行われますか? 簡単な例として、アバターの高さを変更するときに、頭/目/指などを伸ばしたくない場合は、胴体と脚のみのサイズを変更し、他のすべてはそのままにしておきます (おそらく再配置されます)。別の例は、「ビール腹」を追加することです。その種のモーフィングのための既存のテクニックは何ですか?

モーフィングされた各ピースは個別のメッシュですか?

もしそうなら、操作された 2 つのピースはどのように信じられないほど一緒に「くっついた」のですか (サイズが変わりました)。

そうでない場合、どのようにして操作をメッシュの 1 つのセクションに限定し、他のセクションには限定しないのでしょうか?

一般的な手法と特定のソリューションを探しています。これは一般的な 3D グラフィックスの問題ですが、私は Kit3D/Silverlight/C# を使用しています。これは私が投稿した別の質問に似ていますが、これはより一般的です。

4

2 に答える 2

2

Take a look at the MakeHuman project. (Warning, some potentially not-safe-for-work screenshots may be on the main page. Most are blurred, but fair warning.)

The human body mesh that MakeHuman uses is a simple base mesh with a series of targets that can be adjusted on 4 or 5 axes. The majority of the program is written in Python, so it should be relatively easy to dig through. There are also some whitepapers and other documents on the document site.

于 2009-08-31T02:16:48.340 に答える
1

ジオメトリがメッシュベースの場合は、非線形変換を生成してみることをお勧めします(「変形」と呼びましょう)。

たとえば、3DワールドにN個のピボットポイントを挿入し、メッシュ内の各頂点(ポイント)について、特定のピボットによってどの程度影響を受けるかを判断できます。たとえば、逆二乗の重み付け、ガウスフォールオフ、または一種の3Dボロノイを使用できます。次に、ピボットポイントを移動し、ウェイトマップに基づいてメッシュ頂点を変形します。

すべてのメッシュのすべての頂点に対してこれを行い、メッシュが適切に構築されている場合は、ギャップや不要な交差が発生することはありません。

別のアプローチは、フォールオフを伴うローカルデフォームを使用することです。たとえば、3Dスケーリングを取り上げます。スケーリング操作の中心点Cを定義しますが、スケール係数はこの基点からの距離に依存します。したがって、Cに近いメッシュの部分は大きくスケーリングし、遠くにあるパーツはほとんどスケーリングしないか、まったくスケーリングしません。

于 2009-08-31T02:27:30.010 に答える