You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

367 lines
17 KiB

#usda 1.0
(
"WARNING: THIS FILE IS GENERATED BY usdGenSchema. DO NOT EDIT."
)
class SkelRoot "SkelRoot" (
doc = '''Boundable prim type used to identify a scope beneath which
skeletally-posed primitives are defined.
A SkelRoot must be defined at or above a skinned primitive for any skinning
behaviors in UsdSkel.
See the extended "Skel Root Schema" documentation for
more information.'''
)
{
float3[] extent (
doc = """Extent is a three dimensional range measuring the geometric
extent of the authored gprim in its own local space (i.e. its own
transform not applied), without accounting for any shader-induced
displacement. If __any__ extent value has been authored for a given
Boundable, then it should be authored at every timeSample at which
geometry-affecting properties are authored, to ensure correct
evaluation via ComputeExtent(). If __no__ extent value has been
authored, then ComputeExtent() will call the Boundable's registered
ComputeExtentFunction(), which may be expensive, which is why we
strongly encourage proper authoring of extent.
\\sa ComputeExtent()
\\sa \\ref UsdGeom_Boundable_Extent.
An authored extent on a prim which has children is expected to include
the extent of all children, as they will be pruned from BBox computation
during traversal."""
)
rel proxyPrim (
doc = '''The proxyPrim relationship allows us to link a
prim whose purpose is "render" to its (single target)
purpose="proxy" prim. This is entirely optional, but can be
useful in several scenarios:
- In a pipeline that does pruning (for complexity management)
by deactivating prims composed from asset references, when we
deactivate a purpose="render" prim, we will be able to discover
and additionally deactivate its associated purpose="proxy" prim,
so that preview renders reflect the pruning accurately.
- DCC importers may be able to make more aggressive optimizations
for interactive processing and display if they can discover the proxy
for a given render prim.
- With a little more work, a Hydra-based application will be able
to map a picked proxy prim back to its render geometry for selection.
\\note It is only valid to author the proxyPrim relationship on
prims whose purpose is "render".'''
)
uniform token purpose = "default" (
allowedTokens = ["default", "render", "proxy", "guide"]
doc = """Purpose is a classification of geometry into categories that
can each be independently included or excluded from traversals of prims
on a stage, such as rendering or bounding-box computation traversals.
See for more detail about how
purpose is computed and used."""
)
token visibility = "inherited" (
allowedTokens = ["inherited", "invisible"]
doc = '''Visibility is meant to be the simplest form of "pruning"
visibility that is supported by most DCC apps. Visibility is
animatable, allowing a sub-tree of geometry to be present for some
segment of a shot, and absent from others; unlike the action of
deactivating geometry prims, invisible geometry is still
available for inspection, for positioning, for defining volumes, etc.'''
)
uniform token[] xformOpOrder (
doc = """Encodes the sequence of transformation operations in the
order in which they should be pushed onto a transform stack while
visiting a UsdStage's prims in a graph traversal that will effect
the desired positioning for this prim and its descendant prims.
You should rarely, if ever, need to manipulate this attribute directly.
It is managed by the AddXformOp(), SetResetXformStack(), and
SetXformOpOrder(), and consulted by GetOrderedXformOps() and
GetLocalTransformation()."""
)
}
class Skeleton "Skeleton" (
doc = '''Describes a skeleton.
See the extended "Skeleton Schema" documentation for
more information.
'''
)
{
uniform matrix4d[] bindTransforms (
doc = """Specifies the bind-pose transforms of each joint in
**world space**, in the ordering imposed by *joints*."""
)
float3[] extent (
doc = """Extent is a three dimensional range measuring the geometric
extent of the authored gprim in its own local space (i.e. its own
transform not applied), without accounting for any shader-induced
displacement. If __any__ extent value has been authored for a given
Boundable, then it should be authored at every timeSample at which
geometry-affecting properties are authored, to ensure correct
evaluation via ComputeExtent(). If __no__ extent value has been
authored, then ComputeExtent() will call the Boundable's registered
ComputeExtentFunction(), which may be expensive, which is why we
strongly encourage proper authoring of extent.
\\sa ComputeExtent()
\\sa \\ref UsdGeom_Boundable_Extent.
An authored extent on a prim which has children is expected to include
the extent of all children, as they will be pruned from BBox computation
during traversal."""
)
uniform token[] jointNames (
doc = """If authored, provides a unique name per joint. This may be
optionally set to provide better names when translating to DCC apps
that require unique joint names."""
)
uniform token[] joints (
doc = """An array of path tokens identifying the set of joints that make
up the skeleton, and their order. Each token in the array must be valid
when parsed as an SdfPath. The parent-child relationships of the
corresponding paths determine the parent-child relationships of each
joint. It is not required that the name at the end of each path be
unique, but rather only that the paths themselves be unique."""
)
rel proxyPrim (
doc = '''The proxyPrim relationship allows us to link a
prim whose purpose is "render" to its (single target)
purpose="proxy" prim. This is entirely optional, but can be
useful in several scenarios:
- In a pipeline that does pruning (for complexity management)
by deactivating prims composed from asset references, when we
deactivate a purpose="render" prim, we will be able to discover
and additionally deactivate its associated purpose="proxy" prim,
so that preview renders reflect the pruning accurately.
- DCC importers may be able to make more aggressive optimizations
for interactive processing and display if they can discover the proxy
for a given render prim.
- With a little more work, a Hydra-based application will be able
to map a picked proxy prim back to its render geometry for selection.
\\note It is only valid to author the proxyPrim relationship on
prims whose purpose is "render".'''
)
uniform token purpose = "default" (
allowedTokens = ["default", "render", "proxy", "guide"]
doc = """Purpose is a classification of geometry into categories that
can each be independently included or excluded from traversals of prims
on a stage, such as rendering or bounding-box computation traversals.
See for more detail about how
purpose is computed and used."""
)
uniform matrix4d[] restTransforms (
doc = """Specifies the rest-pose transforms of each joint in
**local space**, in the ordering imposed by *joints*. This provides
fallback values for joint transforms when a Skeleton either has no
bound animation source, or when that animation source only contains
animation for a subset of a Skeleton's joints."""
)
token visibility = "inherited" (
allowedTokens = ["inherited", "invisible"]
doc = '''Visibility is meant to be the simplest form of "pruning"
visibility that is supported by most DCC apps. Visibility is
animatable, allowing a sub-tree of geometry to be present for some
segment of a shot, and absent from others; unlike the action of
deactivating geometry prims, invisible geometry is still
available for inspection, for positioning, for defining volumes, etc.'''
)
uniform token[] xformOpOrder (
doc = """Encodes the sequence of transformation operations in the
order in which they should be pushed onto a transform stack while
visiting a UsdStage's prims in a graph traversal that will effect
the desired positioning for this prim and its descendant prims.
You should rarely, if ever, need to manipulate this attribute directly.
It is managed by the AddXformOp(), SetResetXformStack(), and
SetXformOpOrder(), and consulted by GetOrderedXformOps() and
GetLocalTransformation()."""
)
}
class SkelAnimation "SkelAnimation" (
doc = '''Describes a skel animation, where joint animation is stored in a
vectorized form.
See the extended "Skel Animation"
documentation for more information.
'''
)
{
uniform token[] blendShapes (
doc = """Array of tokens identifying which blend shapes this
animation's data applies to. The tokens for blendShapes correspond to
the tokens set in the *skel:blendShapes* binding property of the
UsdSkelBindingAPI."""
)
float[] blendShapeWeights (
doc = """Array of weight values for each blend shape. Each weight value
is associated with the corresponding blend shape identified within the
*blendShapes* token array, and therefore must have the same length as
*blendShapes."""
)
uniform token[] joints (
doc = """Array of tokens identifying which joints this animation's
data applies to. The tokens for joints correspond to the tokens of
Skeleton primitives. The order of the joints as listed here may
vary from the order of joints on the Skeleton itself."""
)
quatf[] rotations (
doc = """Joint-local unit quaternion rotations of all affected joints,
in 32-bit precision. Array length should match the size of the
*joints* attribute."""
)
half3[] scales (
doc = """Joint-local scales of all affected joints, in
16 bit precision. Array length should match the size of the *joints*
attribute."""
)
float3[] translations (
doc = """Joint-local translations of all affected joints. Array length
should match the size of the *joints* attribute."""
)
}
class PackedJointAnimation "PackedJointAnimation" (
doc = "Deprecated. Please use SkelAnimation instead."
)
{
uniform token[] blendShapes (
doc = """Array of tokens identifying which blend shapes this
animation's data applies to. The tokens for blendShapes correspond to
the tokens set in the *skel:blendShapes* binding property of the
UsdSkelBindingAPI."""
)
float[] blendShapeWeights (
doc = """Array of weight values for each blend shape. Each weight value
is associated with the corresponding blend shape identified within the
*blendShapes* token array, and therefore must have the same length as
*blendShapes."""
)
uniform token[] joints (
doc = """Array of tokens identifying which joints this animation's
data applies to. The tokens for joints correspond to the tokens of
Skeleton primitives. The order of the joints as listed here may
vary from the order of joints on the Skeleton itself."""
)
quatf[] rotations (
doc = """Joint-local unit quaternion rotations of all affected joints,
in 32-bit precision. Array length should match the size of the
*joints* attribute."""
)
half3[] scales (
doc = """Joint-local scales of all affected joints, in
16 bit precision. Array length should match the size of the *joints*
attribute."""
)
float3[] translations (
doc = """Joint-local translations of all affected joints. Array length
should match the size of the *joints* attribute."""
)
}
class "SkelBindingAPI" (
doc = '''Provides API for authoring and extracting all the skinning-related
data that lives in the "geometry hierarchy" of prims and models that want
to be skeletally deformed.
See the extended "UsdSkelBindingAPI schema"
documentation for more about bindings and how they apply in a scene graph.
'''
)
{
matrix4d primvars:skel:geomBindTransform (
doc = '''Encodes the bind-time world space transforms of the prim.
If the transform is identical for a group of gprims that share a common
ancestor, the transform may be authored on the ancestor, to "inherit"
down to all the leaf gprims. If this transform is unset, an identity
transform is used instead.'''
)
int[] primvars:skel:jointIndices (
doc = """Indices into the *joints* attribute of the closest
(in namespace) bound Skeleton that affect each point of a PointBased
gprim. The primvar can have either *constant* or *vertex* interpolation.
This primvar's *elementSize* will determine how many joint influences
apply to each point. Indices must point be valid. Null influences should
be defined by setting values in jointWeights to zero.
See UsdGeomPrimvar for more information on interpolation and
elementSize."""
)
float[] primvars:skel:jointWeights (
doc = """Weights for the joints that affect each point of a PointBased
gprim. The primvar can have either *constant* or *vertex* interpolation.
This primvar's *elementSize* will determine how many joints influences
apply to each point. The length, interpolation, and elementSize of
*jointWeights* must match that of *jointIndices*. See UsdGeomPrimvar
for more information on interpolation and elementSize."""
)
uniform token primvars:skel:skinningMethod = "classicLinear" (
allowedTokens = ["classicLinear", "dualQuaternion"]
doc = "The skinningMethod specifies the skinning method for the prim."
)
rel skel:animationSource (
doc = """Animation source to be bound to Skeleton primitives at or
beneath the location at which this property is defined.
"""
)
uniform token[] skel:blendShapes (
doc = """An array of tokens defining the order onto which blend shape
weights from an animation source map onto the *skel:blendShapeTargets*
rel of a binding site. If authored, the number of elements must be equal
to the number of targets in the _blendShapeTargets_ rel. This property
is not inherited hierarchically, and is expected to be authored directly
on the skinnable primitive to which the blend shapes apply."""
)
rel skel:blendShapeTargets (
doc = """Ordered list of all target blend shapes. This property is not
inherited hierarchically, and is expected to be authored directly on
the skinnable primitive to which the the blend shapes apply."""
)
uniform token[] skel:joints (
doc = """An (optional) array of tokens defining the list of
joints to which jointIndices apply. If not defined, jointIndices applies
to the ordered list of joints defined in the bound Skeleton's *joints*
attribute. If undefined on a primitive, the primitive inherits the
value of the nearest ancestor prim, if any."""
)
rel skel:skeleton (
doc = """Skeleton to be bound to this prim and its descendents that
possess a mapping and weighting to the joints of the identified
Skeleton."""
)
}
class BlendShape "BlendShape" (
doc = '''Describes a target blend shape, possibly containing inbetween
shapes.
See the extended "Blend Shape Schema
documentation for information.
'''
)
{
uniform vector3f[] normalOffsets (
doc = """**Required property**. Normal offsets which, when added to the
base pose, provides the normals of the target shape."""
)
uniform vector3f[] offsets (
doc = """**Required property**. Position offsets which, when added to the
base pose, provides the target shape."""
)
uniform int[] pointIndices (
doc = """**Optional property**. Indices into the original mesh that
correspond to the values in *offsets* and of any inbetween shapes. If
authored, the number of elements must be equal to the number of elements
in the *offsets* array."""
)
}