VEX: get usd_localtransform at specific timecode not working

   815   5   1
User Avatar
Member
13 posts
Joined: April 2019
Offline
On Houdini 19.0

I'm trying to get a world transform on a primitive at a specific frame.

From vex's usd_worldtransform documentation page [www.sidefx.com], I should be able to use a timecode argument, but this seems to output the current frame value.

See screenshot:
- /world/cube2 is animated on tx between frame 1001 and frame 1010.
- matrix constraint_fixed_m should return /world/cube2 world transform at frame 1001
- matrix constraint_m should return /world/cube2 world transform at current frame
- to check the values, I export both translate values (fixed and animated)
- in the scene graph detail, the attribute A_constraint_fixed_t has the same value as A_constraint_t and shows the current frame value.


Is the vex function usd_worldtransform broken ? How can I get the value at frame 1001 no matter what the current frame ?

I have the same problem with usd_localtransform.
Edited by BenWall - July 17, 2023 07:41:19
User Avatar
Member
13 posts
Joined: April 2019
Offline
It seems I have the same issue with all solaris vex functions with this argument: usd_attrib(), usd_localtransform()...
User Avatar
Staff
4168 posts
Joined: Sept. 2007
Online
The issue is that Houdini is only cooking the data to USD on the current frame. If you set the Frame Range on the Cube LOP to "Sample Frame Range", that should author the data across the entire frame range, so the VEX functions have data to retrieve at the specified time codes. This Frame Range is a much more efficient version of using a Cache LOP to author time samples across a time range.

Hopefully that works, but if it's not working with cached values, it's probably a bug worth logging.

Attachments:
Screenshot_20230717_225018.png (30.2 KB)

I'm o.d.d.
User Avatar
Member
13 posts
Joined: April 2019
Offline
I don't think I have this option on the cube lop node in houdini 19.0
This cube is just for a quick test, I usually work with usd scenes exported buy a pipeline.
Is there another node to do that on a scene scale ? I could not find anything on Configure Stage LOP node for instance.
User Avatar
Staff
4168 posts
Joined: Sept. 2007
Online
The Cache LOP is the way to do that in H19.0 or earlier. Stick one after your animated node, and set it to cache the frame range.
I'm o.d.d.
User Avatar
Member
13 posts
Joined: April 2019
Offline
Thanks for the help
  • Quick Links