1

想知道是否可以检索最后删除的对象的名称。

我查看了 listHistory,但这似乎列出了选定或命名对象的历史记录。我还研究了 undoHistory printqueue,它将撤消历史记录打印到脚本编辑器中,但我无法从控制台检索该信息。

有任何想法吗?我环顾四周,找不到任何有关此的信息。提前致谢。

4

2 回答 2

2

您可以通过以下方式获取列表:

undoInfo -q -pq;

有一些非常好的用例可用于剥头皮 Maya 撤消。比如事后确定选择顺序。在任何情况下,可能很难知道它实际上是来自队列的什么,因此您可能需要撤消和重做以获取已删除的对象是什么。

所以这可能会也可能不会,里程可能会有所不同。

作为一个旁注,因为你恢复的东西为什么不在保存时保存对象列表。顺序将是相同的(确保),因此您可以将最后的更改和删除视为丢失的对象。查看普通 ls 中的对象按创建顺序排列。例如,您可以将其用于从导入到导入的基本差异。同样适用于删除。

于 2014-02-17T19:36:02.243 回答
0

不可能在事后发现任何单独的删除。但是,您可以attributeDeleted在要监视的对象上粘贴 scriptJob - 当它们被删除时它将触发。如果你真的想捕捉每个对象,一个监听事件的 scriptJobDagObjectCreated会让你将另一个 scriptJob 连接到每个新对象 - 但是大多数时候这不是一个好主意,因为它会在你的场景中创建大量的 scriptJobs (另外,您还必须在加载时循环浏览场景并将相同的删除回调附加到现有对象......)

import maya.cmds as cmds
from functools import partial

def objectDeleted(obj):
    print "%s was deleted" % obj

def catch_deletion(obj):
   cmds.scriptJob ( attributeDeleted = ( (obj + ".tx"), partial(objectDeleted, obj) ) )

catch_deletion('pCube1')   
于 2014-02-15T00:44:21.530 回答