I don’t believe the following fragment is expected to work (correctly) though USD itself doesn’t seem to warn about this either through runtime traces or with usdchecker.
Is the SkelAnimation’s blendShapesarray allowed to contain duplicate tokens?
#usda 1.0
(
endTimeCode = 554.4000091836734
framesPerSecond = 24
metersPerUnit = 0.01
startTimeCode = 0
timeCodesPerSecond = 24
upAxis = "Y"
)
def SkelRoot "SkeletonRoot0" (
apiSchemas = ["SkelBindingAPI"]
)
{
rel skel:animationSource = </SkeletonRoot0/_5832632322048_TempMotion>
rel skel:skeleton = </SkeletonRoot0/Skeleton>
def Skeleton "Skeleton" (
apiSchemas = ["SkelBindingAPI"]
)
{
rel skel:animationSource = </SkeletonRoot0/_5832632322048_TempMotion>
}
def Mesh "model" (
apiSchemas = ["SkelBindingAPI"]
)
{
uniform token[] skel:blendShapes = ["V_None"]
rel skel:blendShapeTargets = </SkeletonRoot0/model/V_None>
rel skel:skeleton = </SkeletonRoot0/Skeleton>
def BlendShape "V_None"
{
uniform vector3f[] normalOffsets = [(-0.0024537444, 0.27901238, 0.27170885)]
uniform vector3f[] offsets = [(0, 0, 0)]
uniform int[] pointIndices = [0]
}
}
def Mesh "model_001" (
apiSchemas = ["SkelBindingAPI"]
)
{
uniform token[] skel:blendShapes = ["V_None"]
rel skel:blendShapeTargets = </SkeletonRoot0/model_001/V_None>
rel skel:skeleton = </SkeletonRoot0/Skeleton>
def BlendShape "V_None"
{
uniform vector3f[] normalOffsets = [(0.005269274, -0.010991216, -0.008327723)]
uniform vector3f[] offsets = [(0, 0, 0)]
uniform int[] pointIndices = [0]
}
}
def SkelAnimation "_5832632322048_TempMotion"
{
uniform token[] blendShapes = ["V_None", "V_None"]
float[] blendShapeWeights.timeSamples = {
0: [0, 0],
0.4: [0, 0],
}
}
}