Sticking an ICE tree on a mesh and then getting the kine.global, updating it, and setting the kine.global doesn’t really work. And I’m not sure it should. Between ICE optimizations and the way the XSI evaluation model works, I don’t think you’ll get consistent updates. SCOPs are similar, but they have that Always Evaluate flag to force evaluations.
Second attempt. I also have an ICE Tree in the Modeling region that initializes self.tmp.
I’ve got that issue before and figure out that you can’t get and set the global transform of the same object in Ice, no matter where the ICE op is places. That will cause a cycle dependency, result just like a constrain loop.
Try use one object to drive the transform of another object.
About ICE optimizations, here’s my little finding:
If “A” is ice-driven, and “B” will be driven by “A” with ICE as well….
Use 2 Ice tree for A and B .
And in “B”‘s Ice tree, don’t get “A” as input transform but use a child of “A”.
Although it defeat the idea of having less objects in the scene, it give a better interaction frame rate.