ZSkinning
Skin binding between a mesh and a skeleton for skeletal animation.
Holds the list of bone IDs that influence the mesh, their per-bone inverse bind matrices, and an optional skin-level bind matrix pair used when the mesh node and skeleton root do not share the same transform (e.g. in glTF when skin and mesh are on different nodes).
Typically created by loaders/exporters and attached to a ZModel together with a ZSkeleton.
GPU joint order (per skinned ZModel): boneIds defines the row order of the joint palette for that mesh. ZBoneMatrixGenerator collects each joint’s current world pose (ZBone.poseMatrix) in that same order. ZInverseBindMatrixGenerator fills the matching inverse-bind uniform from inverseBindMatrices by index, or falls back to ZBone.inverseBindMatrix when a skin entry is missing — loaders should keep boneIds and inverseBindMatrices aligned. ZModelSkinningMatrixGenerator supplies modelSkinBindMatrix / mesh–skeleton node offset separately.
Properties
Ordered list of bone IDs that influence this skin. Order must match inverseBindMatrices.
Per-bone inverse bind matrices (bind pose bone world → bone local). One per entry in boneIds.
Inverse of modelSkinBindMatrix. Transforms from skeleton space back to mesh local space.
Represents a boolean value indicating whether a component has been initialized.
Represents a boolean value indicating whether a component is renderizable.
Transform from mesh local space to skeleton (bind) space at bind time. Use identity when the mesh and skeleton share the same node; set from asset data when they differ (e.g. glTF skin on a different node than the mesh).