擅长:python、mysql、java
<p>首先,要列出包含变换的所有对象,可以使用以下命令:</p>
<pre><code>cmds.ls(selection=True, transforms=True, dagObjects=True)
</code></pre>
<p>如果要读/写变换,则不需要分别获取平移、旋转和缩放。可以这样读取复合变换矩阵:</p>
^{pr2}$
<p>您将得到一个16个浮点数的列表,这些浮点数可以应用于其他对象:</p>
<pre><code>cmds.xform(destination_object, matrix=xform_matrix)
</code></pre>
<p>我不确定您希望如何将变换从一组选定对象映射到另一组对象。如果你描述一下,我可以把完整的代码贴出来。在</p>
<p>以下脚本将收集字典中所有选定对象的复合变换矩阵,其中长对象名作为键:</p>
<pre><code>selected_objects_matrix = {}
for current_object in cmds.ls(selection=True, transforms=True, dagObjects=True):
selected_objects_matrix[cmds.ls(current_object, long=True)] = cmds.xform(
current_object,
query=True,
matrix=True)
</code></pre>
<p>然后,如果在Maya中移动/旋转/缩放对象,则可以这样还原:</p>
<pre><code>for current_object in selected_objects_matrix:
cmds.xform(
current_object,
matrix=selected_objects_matrix[current_object])
</code></pre>