我正在尝试在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 ... –