0

有没有办法使用节点来获取以前的转换或在我的情况下翻译?我已经写了一个简单的表达式来做到这一点,但我真的很想用节点来实现这一点。

$transx =getattr 'objname.tx' -frame time -1;

或者类似的东西我不完全记得,但它在表达式中使用了 getatrr 。

有任何想法吗?

4

1 回答 1

0

表达式节点是节点,表达式节点内的强 getAttr会破坏节点流。但是,是的,您可以使用frameCache节点存储先前运行的值 。或者您可以将值存储在表达式的属性中。

node.tx = node.cacheTx;
node.cacheTx = objname.tx;

这要快得多,因为它不会破坏属性评估流程。这两种机制都有一个缺陷,如果它在帧变化之间发生了变化,它们不会在时间上下文之外进行评估。这是 Maya 用户一直在做的事情,导致用户反馈不佳。实际上,对于这种实现非常复杂的自定义节点,您几乎无能为力。

之所以难,是因为 Maya 用户用实际行动成功打破了 Maya 时间机制。开发人员随后在用户压力下投降并允许这样做,但它破坏了 Mayas 时间评估周期,因此并非所有内容都可以通过时间上下文转换进行查询。使在 Maya 中制作差分方程求解器变得困难。当然,在这种特殊情况下,节点并不是特别难制作,但在大多数情况下实际工作的节点却很难。

于 2013-02-03T12:12:31.473 回答