[英]Python FBX SDK – How to scale models that have keyframes?
我正在嘗試使用 Python FBX SDK 編寫腳本來縮放模型。 我正在使用LclScaling.Set()
來設置比例值。 但是我發現如果這個 model 有關鍵幀,那么就不會應用縮放。
所以我的問題是如何正確縮放具有關鍵幀的模型。 這是我的代碼:
scale = node.LclScaling.Get()
value = 0.5
node.LclScaling.Set(fbx.FbxDouble3(scale[0] * value, scale[1] * value, scale[2] * value))
如果您無法縮放已經具有 animation 關鍵幀的 model,它似乎在Scale
參數上有關鍵幀,即使在播放 Z21D6F40CFB511982E4424E0E250A9 期間比例沒有變化。 當用戶按S快捷鍵為 model 的 position 設置動畫時,這可能是可能的。 此快捷方式一次生成 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")
在此之后,您可以輕松擴展 model。
另一種適當的方法是更新 FBX model 的舊比例關鍵幀(首先在動畫開始,然后在動畫結束)。
我想到了。 在 Maya 中,如果我設置平移或旋轉關鍵幀,縮放屬性也會在 FBX SDK 中具有 Animation 節點。 所以,如果我想修改 scale 屬性,我應該使用SetChannelValue
或FbxAnimCurveFilterScale
而不是LclScaling.Set()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.