Vex USD cannot query values on "over" prims

   1451   2   1
User Avatar
Member
86 posts
Joined: Jan. 2015
Offline
So I have some prims that are defined as over's instead of def's (ie round-tripped through SOPs with sop_import.packedusdhandling set to Overlay Transforms), and i'm noticing with VEX in LOPs, I can set properties on the over'd prim, but I cannot query the property values, nor can I edit some of them (like transforms). It's not until I merge it back over the def'd prim that i can query the property values, or modify transforms.

Is this expected behavior, and could it be changed? It's odd that I can create and edit some properties on an over'd prim (see example file), but others I cannot.

Attachments:
SESIusdPacked_v0001.hip (86.6 KB)

User Avatar
Staff
1450 posts
Joined: July 2005
Offline
It is an expected behaviour.

Setting the value happens in the current layer, so if the primitive there is an overlay, that's where the value will be authored. And if it's a concrete definition, then again, that's where the value will be authored. Ie, it's not the primitive schema that counts but the current layer.

For querying, the value has to come from the composed stage. All the layers are “collapsed” and attribute values are resolved to a final value. There is no way to ask a value from a specific layer in VEX. VEX runs on stage primitives that provide resolved values from all relevant layers, and it's unlikely this will ever change.
User Avatar
Member
86 posts
Joined: Jan. 2015
Offline
Ah ok that makes sense, thanks @rafal for the explanation.
  • Quick Links