first commit
This commit is contained in:
commit
fb98172573
287 files changed
+43090
No files matched your search
@@ -0,0 +1,367 @@
|
||||
#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."""
|
||||
)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
# Portions of this file auto-generated by usdGenSchema.
|
||||
# Edits will survive regeneration except for comments and
|
||||
# changes to types with autoGenerated=true.
|
||||
{
|
||||
"Plugins": [
|
||||
{
|
||||
"Info": {
|
||||
"SdfMetadata": {
|
||||
"weight": {
|
||||
"appliesTo": [
|
||||
"attributes"
|
||||
],
|
||||
"default": 0,
|
||||
"displayGroup": "BlendShape",
|
||||
"documentation": "The weight value at which an inbeteen shape is applied.",
|
||||
"type": "float"
|
||||
}
|
||||
},
|
||||
"Types": {
|
||||
"UsdSkelAnimation": {
|
||||
"alias": {
|
||||
"UsdSchemaBase": "SkelAnimation"
|
||||
},
|
||||
"autoGenerated": true,
|
||||
"bases": [
|
||||
"UsdTyped"
|
||||
],
|
||||
"schemaKind": "concreteTyped"
|
||||
},
|
||||
"UsdSkelBindingAPI": {
|
||||
"alias": {
|
||||
"UsdSchemaBase": "SkelBindingAPI"
|
||||
},
|
||||
"autoGenerated": true,
|
||||
"bases": [
|
||||
"UsdAPISchemaBase"
|
||||
],
|
||||
"schemaKind": "singleApplyAPI"
|
||||
},
|
||||
"UsdSkelBlendShape": {
|
||||
"alias": {
|
||||
"UsdSchemaBase": "BlendShape"
|
||||
},
|
||||
"autoGenerated": true,
|
||||
"bases": [
|
||||
"UsdTyped"
|
||||
],
|
||||
"schemaKind": "concreteTyped"
|
||||
},
|
||||
"UsdSkelPackedJointAnimation": {
|
||||
"alias": {
|
||||
"UsdSchemaBase": "PackedJointAnimation"
|
||||
},
|
||||
"autoGenerated": true,
|
||||
"bases": [
|
||||
"UsdSkelAnimation"
|
||||
],
|
||||
"schemaKind": "concreteTyped"
|
||||
},
|
||||
"UsdSkelRoot": {
|
||||
"alias": {
|
||||
"UsdSchemaBase": "SkelRoot"
|
||||
},
|
||||
"autoGenerated": true,
|
||||
"bases": [
|
||||
"UsdGeomBoundable"
|
||||
],
|
||||
"implementsComputeExtent": true,
|
||||
"schemaKind": "concreteTyped"
|
||||
},
|
||||
"UsdSkelSkeleton": {
|
||||
"alias": {
|
||||
"UsdSchemaBase": "Skeleton"
|
||||
},
|
||||
"autoGenerated": true,
|
||||
"bases": [
|
||||
"UsdGeomBoundable"
|
||||
],
|
||||
"implementsComputeExtent": true,
|
||||
"schemaKind": "concreteTyped"
|
||||
}
|
||||
}
|
||||
},
|
||||
"LibraryPath": "",
|
||||
"Name": "usdSkel",
|
||||
"ResourcePath": "resources",
|
||||
"Root": "..",
|
||||
"Type": "library"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,296 @@
|
||||
#usda 1.0
|
||||
(
|
||||
""" This file contains a schema for supporting skeletal animations in USD.
|
||||
"""
|
||||
subLayers = [
|
||||
@usdGeom/schema.usda@
|
||||
]
|
||||
)
|
||||
|
||||
over "GLOBAL" (
|
||||
customData = {
|
||||
string libraryName = "usdSkel"
|
||||
string libraryPath = "pxr/usd/usdSkel"
|
||||
|
||||
dictionary libraryTokens = {
|
||||
dictionary weight = {
|
||||
string doc = """UsdSkelInbetweenShape - The weight location at
|
||||
which the inbetween shape applies."""
|
||||
}
|
||||
}
|
||||
}
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
class SkelRoot "SkelRoot" (
|
||||
inherits = </Boundable>
|
||||
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 \\ref UsdSkel_SkelRoot "Skel Root Schema" documentation for
|
||||
more information."""
|
||||
customData = {
|
||||
string className = "Root"
|
||||
|
||||
dictionary extraPlugInfo = {
|
||||
bool implementsComputeExtent = true
|
||||
}
|
||||
}
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
class Skeleton "Skeleton" (
|
||||
inherits = </Boundable>
|
||||
doc = """Describes a skeleton.
|
||||
|
||||
See the extended \\ref UsdSkel_Skeleton "Skeleton Schema" documentation for
|
||||
more information.
|
||||
"""
|
||||
customData = {
|
||||
dictionary extraPlugInfo = {
|
||||
bool implementsComputeExtent = true
|
||||
}
|
||||
|
||||
string extraIncludes = """
|
||||
#include "pxr/usd/usdSkel/topology.h" """
|
||||
}
|
||||
) {
|
||||
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."""
|
||||
)
|
||||
|
||||
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 matrix4d[] bindTransforms (
|
||||
doc = """Specifies the bind-pose transforms of each joint in
|
||||
**world space**, in the ordering imposed by *joints*."""
|
||||
)
|
||||
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."""
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
class SkelAnimation "SkelAnimation" (
|
||||
inherits = </Typed>
|
||||
doc = """Describes a skel animation, where joint animation is stored in a
|
||||
vectorized form.
|
||||
|
||||
See the extended \\ref UsdSkel_SkelAnimation "Skel Animation"
|
||||
documentation for more information.
|
||||
"""
|
||||
customData = {
|
||||
string className = "Animation"
|
||||
}
|
||||
) {
|
||||
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."""
|
||||
)
|
||||
|
||||
float3[] translations (
|
||||
doc = """Joint-local translations of all affected joints. Array length
|
||||
should match the size of the *joints* attribute."""
|
||||
)
|
||||
|
||||
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."""
|
||||
)
|
||||
|
||||
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."""
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
class PackedJointAnimation "PackedJointAnimation" (
|
||||
inherits = </SkelAnimation>
|
||||
doc = """Deprecated. Please use SkelAnimation instead."""
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
class "SkelBindingAPI" (
|
||||
inherits = </APISchemaBase>
|
||||
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 \\ref UsdSkel_BindingAPI "UsdSkelBindingAPI schema"
|
||||
documentation for more about bindings and how they apply in a scene graph.
|
||||
"""
|
||||
customData = {
|
||||
string className = "BindingAPI"
|
||||
string extraIncludes = """
|
||||
#include "pxr/base/tf/span.h"
|
||||
#include "pxr/usd/usdGeom/primvar.h"
|
||||
#include "pxr/usd/usdSkel/skeleton.h" """
|
||||
}
|
||||
)
|
||||
{
|
||||
rel skel:animationSource (
|
||||
customData = {
|
||||
string apiName = "animationSource"
|
||||
}
|
||||
doc = """Animation source to be bound to Skeleton primitives at or
|
||||
beneath the location at which this property is defined.
|
||||
"""
|
||||
)
|
||||
|
||||
rel skel:skeleton (
|
||||
customData = {
|
||||
string apiName = "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."""
|
||||
)
|
||||
|
||||
uniform token primvars:skel:skinningMethod = "classicLinear" (
|
||||
customData = {
|
||||
string apiName = "skinningMethod"
|
||||
}
|
||||
allowedTokens = ["classicLinear", "dualQuaternion"]
|
||||
doc = """The skinningMethod specifies the skinning method for the prim."""
|
||||
)
|
||||
|
||||
matrix4d primvars:skel:geomBindTransform (
|
||||
customData = {
|
||||
string apiName = "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."""
|
||||
)
|
||||
|
||||
uniform token[] skel:joints (
|
||||
customData = {
|
||||
string apiName = "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."""
|
||||
)
|
||||
|
||||
int[] primvars:skel:jointIndices (
|
||||
customData = {
|
||||
string apiName = "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 (
|
||||
customData = {
|
||||
string apiName = "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[] skel:blendShapes (
|
||||
customData = {
|
||||
string apiName = "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 (
|
||||
customData = {
|
||||
string apiName= "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."""
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
class BlendShape "BlendShape" (
|
||||
inherits = </Typed>
|
||||
doc = """Describes a target blend shape, possibly containing inbetween
|
||||
shapes.
|
||||
|
||||
See the extended \\ref UsdSkel_BlendShape "Blend Shape Schema
|
||||
documentation for information.
|
||||
"""
|
||||
customData = {
|
||||
string extraIncludes = """
|
||||
#include "pxr/base/tf/span.h"
|
||||
#include "pxr/usd/usdSkel/inbetweenShape.h" """
|
||||
}
|
||||
)
|
||||
{
|
||||
uniform vector3f[] offsets (
|
||||
doc = """**Required property**. Position offsets which, when added to the
|
||||
base pose, provides the target shape."""
|
||||
)
|
||||
|
||||
uniform vector3f[] normalOffsets (
|
||||
doc = """**Required property**. Normal offsets which, when added to the
|
||||
base pose, provides the normals of 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."""
|
||||
)
|
||||
}
|
||||
Reference in new issue
Block a user