Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取以前的Maya变换_Python_Maya_Mel - Fatal编程技术网

Python 获取以前的Maya变换

Python 获取以前的Maya变换,python,maya,mel,Python,Maya,Mel,是否有一种方法可以使用节点从时间获取以前的转换或我的例子中的转换?我已经编写了一个简单的表达式,可以实现这一点,但我真的希望通过节点实现这一点 $transx=getattr'objname.tx'-帧时间-1 或者类似的东西,我记不清了,但它在表达式中使用了getatrr node.tx = node.cacheTx; node.cacheTx = objname.tx; 有什么想法吗?表达式节点是节点,表达式节点内的强getAttr会破坏节点流。但是可以,您可以使用帧缓存节点存储上一次运行

是否有一种方法可以使用节点从时间获取以前的转换或我的例子中的转换?我已经编写了一个简单的表达式,可以实现这一点,但我真的希望通过节点实现这一点

$transx=
getattr'objname.tx'-帧时间-1

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

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

有什么想法吗?

表达式节点是节点,表达式节点内的强getAttr会破坏节点流。但是可以,您可以使用帧缓存节点存储上一次运行的值。也可以只将值存储在表达式中的属性中

node.tx = node.cacheTx;
node.cacheTx = objname.tx;
这要快得多,因为它不会中断属性求值流。这两种机制都有一个缺陷,如果在帧更改之间发生更改,它们不会在时间上下文之外进行评估。这是Maya用户一直在做的事情,导致用户反馈不佳。实际上,对于这种复杂的自定义节点的实现,您几乎无能为力


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

我真的不明白您提供的代码如何获得“上一个”translationX,它们不只是相等的值吗?@JulianMann是的,我做到了