Python FBX SDKを使用してスクリプトを作成し、モデルをスケーリングしようとしています。そして、私はLclScaling.Set()
スケール値を設定するために使用しています。しかし、このモデルにキーフレームがある場合、スケーリングは適用されないことがわかりました。
だから私の質問は、キーフレームを持つモデルを適切にスケーリングする方法です。これが私のコードです:
scale = node.LclScaling.Get()
value = 0.5
node.LclScaling.Set(fbx.FbxDouble3(scale[0] * value, scale[1] * value, scale[2] * value))
アニメーションキーフレームが既にあるモデルをスケーリングできない場合、Scale
再生セッション中にスケールが変更されていなくても、パラメータにキーフレームがあるようです。これは、ユーザーがSショートカットを押しているモデルの位置だけをアニメーション化する状況で可能になる可能性があります。このショートカットは一度に10個のキーフレームを生成しますが、ここではtranslation
/rotation
キーフレームのみが重要です。
解決策:
グラフエディタで冗長なキーフレームを手動またはプログラムで削除します。
import maya.cmds as cmds
cmds.cutKey('pSphere1', time=(1,100), attribute='scaleX', option="keys")
cmds.cutKey('pSphere1', time=(1,100), attribute='scaleY', option="keys")
cmds.cutKey('pSphere1', time=(1,100), attribute='scaleZ', option="keys")
この後、モデルを簡単にスケーリングできます。
もう1つの適切な方法は、FBXモデルの古いスケールキーフレームを更新することです(最初はアニメーションの最初、2番目はアニメーションの最後)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加