2009-08-31 11 views
1

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

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

もしそうなら、どのように2つの操作された部分が信じられない方法で一緒に戻ってくるか(サイズが変わった)

もしそうでなければ、どのように操作をメッシュの1つのセクションに限定し、他のセクションには限定しませんか?

私は、一般的な技術だけでなく、特定のソリューションを探しています。これは一般的な3Dグラフィックス問題ですが、私はKit3D/Silverlight/C#で作業しています。これは私が投稿した別の質問に似ていますが、これはもっと一般的です。

答えて

2

MakeHumanプロジェクトをご覧ください。ほとんどの人はぼやけているが、公正な警告です。

MakeHumanが使用する人体メッシュは、一連のターゲットを持つ単純な基本メッシュです(警告、作業中でない可能性のあるスクリーンショットがメインページに表示される可能性があります) 4軸または5軸で調整できます。プログラムの大半はPythonで書かれているので、掘り起こすのは比較的簡単です。 document siteには、ホワイトペーパーやその他のドキュメントもあります。

+1

「作業に安全でない」部分は実際には作業の一部です。これは非常にエキサイティングで、オープンソースです。 – colithium

1

ジオメトリがメッシュベースの場合は、非線形変換(「変形」と呼ぶ)を試してみてください。

例えば、N個のピボットポイントを3D世界に挿入してから、メッシュ内の各頂点(ポイント)を特定のピボットの影響をどの程度受けるかを決定できます。たとえば、逆正方形の重み付けやガウシアンのフォールオフ、3Dボロノイなどを使用することができます。次に、ピボットポイントを移動し、ウェイトマップに基づいてメッシュの頂点を変形します。

すべてのメッシュ内のすべての頂点に対してこれを行い、メッシュがうまく構築されていると、ギ​​ャップや不要な交差で終わることはありません。

別のアプローチは、フォールオフを伴うローカル変形を使用することです。たとえば、3Dスケーリングを実行します。スケーリング操作の中心点Cを定義しますが、スケールファクタはこの基点からの距離に依存します。したがって、Cに近いメッシュの部分は大きくスケールされ、遠くにある部分はほとんどスケールされません。

+0

私は似たような解決策を試みてきましたが、私の数学の背景は明らかにあなたほど強くありません。私はこれが解決策であると確信しています。それは、MakeHumanの人々がやったことだと思います。それは、うまく構築されたメッシュを得ることの問題です(私たちにはいくつかの問題があり、プロのモデラーはいません)。 – colithium

+0

ラジアル基底関数の使い方の簡単なチュートリアル:http://cg.alexandra.dk/tag/geometry-deformation/ – greyfade

関連する問題