我正在嘗試在Maya中創建一個用於在yz平面上鏡像變換的腳本。如何用openMaya將矩陣乘以另一個矩陣?
我能夠建立一個能獲得理想結果的節點網絡。我將sz設爲-1的源節點以及左側的源節點(此測試爲lf_grp),並將它們的worldMatrix attrs饋送到multMatrix節點。然後,我通過分解矩陣將輸出(multMatrix.matrixSum)傳遞到我的目標節點。
我真的不想創建一堆節點來做我的鏡像 - 每次運行創建/連接/斷開/刪除循環都是緩慢和痛苦的......我寧願只是「它通過我的腳本,但我似乎無法弄清楚如何實際上增加我的兩個矩陣...
哦,我使用MTransformationMatrix,因爲它處理了一些東西,你的MMatrix不像旋轉順序(至少從我讀過的...)
謝謝你的任何幫助,你可以給!
import maya.cmds as mc
import maya.OpenMaya as om
src_xfm = 'lf_grp'
mir_matrix_vals = [-1.0, -0.0, -0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0]
# get src xfm matrix
#
selList = om.MSelectionList()
selList.add(src_xfm)
mDagPath = om.MDagPath()
selList.getDagPath(0, mDagPath)
src_xfmFn = om.MFnTransform(mDagPath)
src_matrix = src_xfmFn.transformation()
# construct mir xfm matrix
#
mir_matrix = om.MTransformationMatrix()
tmp_matrix = om.MMatrix()
om.MScriptUtil().createMatrixFromList(mir_matrix_vals, tmp_matrix)
mir_matrix = om.MTransformationMatrix(tmp_matrix)
# multiply matrices to get mirrored matrix
#
dst_matrix = src_matrix * mir_matrix # HOW DO YOU DO THIS????
忘了提及我不想使用pymel ... –