1

Youtube で XNA 3 Morph ターゲット アニメーションのデモを見つけました。

http://www.youtube.com/watch?v=e6PLtA7wgg0

そして、ここにダウンロードリンクがあります:

http://mvinetwork.co.uk/permanent/morphtargets/MorphTargetAnimation.zip

このプロジェクトは XNA 3 (VS2008) で正常に動作します

ここに画像の説明を入力

そして、XNA 4 (VS2010) にアップグレードしようとしました。

ここに画像の説明を入力

何か問題があることはわかっていましたが、技術的に何が問題なのか誰か教えてもらえますか?

ヒント、キーワードは大歓迎です。

ここで私のアップグレードされたプロジェクトを見つけることができます:

http://code.google.com/p/stack-overflow-questions/downloads/list

4

1 に答える 1

2

この問題は、アニメーションの計算エラーのようです。モーフ-ターゲットの値は、モーフの強さに応じて通常0f〜1fです。計算が間違っていると、より高いレベルに上がる可能性があります。また、複数のモーフターゲット間のブレンディングを計算するときに問題になる可能性があります。

単純なモーフの数学コード:

verticalPosition =((morphVertex-originalVertex)* morphValue)+ originalVertex

ここで、異なるモーフターゲット間でモーフィングする場合、つまり話すキャラクターの場合は、morphValueアニメーションごとにを計算する必要があります。

このコードが間違っていると、頂点が本来あるべきではない場所に到達する可能性があります。次のサンプルを想像してみてください(1軸のみ):

morphVertexResult [0] =(((1f-0.2f)* 0.6f)+ 0.2f)= 0.68f
morphVertexResult [1] =(((0.5f-0.2f)* 0.7f)+ 0.2f)= 0.41f
VertexPosition = morphVertexResult [0] + morphVertexResult [1] = 1.09f

この場合、の値を取得しますが、との間で1.09fなければならない値を期待します。正しい計算はもう少し複雑です。最後にモーフターゲットを使用したときに、3D Maxからモーフ値を取得しましたが、それらはすでに正規化されています。1f0.2f

于 2012-11-12T15:33:27.673 に答える