2016-11-14 4 views
0

を後にオフにしているが、それは私の補間の間に奇妙な結果得られます。補間は、Pythonのimportantion私はマヤにファイルからアニメーションをインポートしようとしている

https://i.imgur.com/cP27Yai.mp4

それは奇妙だった

を理由グラフエディタを見るまで、キーフレームは最初に正しく見えました。

enter image description here

が、これは第1のジンバルロックにあったと思ったので、私はオイラーのフィルターを使用するが、それはそれに解決策を与えませんでした。時には、あるキーと別のキーとの違いは180です。なぜなら、アニメーションを見るだけで、キーはきれいに見えますが、補間によって180回転します。

もし私が1つずつ行くならば、180のキーのvauleを差し引いてから、その数を反転させてください(正または負の場合に応じて)、それをちょっと微調整して動作させることができます。

しかし、これはあまりにも多くの作業であり、特に2足アニメーションのためには、私を永遠に奪うことができました。

これは一般的な問題か他の誰かに起こったことですか?これを修正する方法はありますか?たぶん、彼らは当初、四元だったので、私はオイラー角を適用しています方法ですが、私は直接、四元数を適用する方法を見つけることができませんでした:

#Taking a rotation from the QUATERNION Array and converting it to Euler. 
arot = anim.AnimRot[index].normal().asEulerRotation() 
frot = MEulerRotation(arot.x*180/math.pi, arot.y*180/math.pi, arot.z*180/math.pi) 

cmds.setAttr((obj + ".rotate"), frot.x, frot.y, frot.z) 
cmds.setKeyframe(obj, time=anim.TotalKeys[i]) 

は、任意のエディタからこの問題を解決するための方法またはありますスクリプト?それを修正すれば、私はこの二足歩行アニメーションをインポートすることに大いに賛成します。これはオイラー変換によるものだと私は信じていますが、私はマヤAPIの骨に四元数を適用する方法がないことを発見しました。

+0

スナップフリー(180回転)補間のためにDouble Quaternionsが必要でしょう –

+0

ファイルからデュアルクォートに変換する方法はありますか?問題は、とにかくクォータニオンを直接適用することができないことです。 –

答えて

0

回転がすでに四元している場合、あなたは私が変更するrotationInterpolationを適用し、その後、1つのキーを設定したいだけで安全であるために

cmds.rotationInterpolation('pSphere2.rotateX', 'pSphere2.rotateY', 'pSphere2.rotateZ', c="quaternionSquad") 

のようなものを使用してクォータニオン補間にアニメーションカーブを設定したい場合がありますキーをクォートし、元のクォータニオンを適用します。すでにAPI土地にいるので、MTransformationMatrixを作成し、そのsetRotationComponentsメソッドを使用してクォート値を設定し、ユーラーに変換しないようにすることができます。

+0

私はそれを行って、あなたに教えてくれます、ありがとう!私は今、調査中です –

+0

悲しいことに、私はそれを取り除くことができませんでした。これを正しく適用する方法はありますか? –

関連する問題