logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Namespace Serenity.ProceduralExpression.Domain.Entities

    Classes

    MaterialDelta

    Represents a collection of material property changes for procedural animation. Analogous to PoseDelta but for material properties instead of bone transforms.

    Combination Semantics: Uses last-write-wins per MaterialId. When combining two MaterialDeltas, entries from the other delta overwrite existing entries with the same MaterialId. This is deterministic given consistent ordering.

    Weight Semantics: Weight represents blend strength, not additive contribution. A weight of 0 means "no change" (original color preserved), and 1 means "full delta applied". The applier is responsible for lerping between original and delta colors based on weight.

    Why Separate from PoseDelta: Material changes target renderers (visual appearance) while pose changes target transforms (skeletal animation). They have different application semantics, different Unity APIs (MaterialPropertyBlock vs Transform), and may be applied to different objects (a character's body vs. equipment materials).

    PoseDelta

    Represents a collection of bone offsets for procedural animation. Position offsets are additive (base + offset). Rotation offsets use quaternion multiplication (base * offset). Combination is deterministic and order-stable.

    TransformDelta

    Represents a collection of transform scale changes for procedural animation. Analogous to MaterialDelta but for transform scale instead of material colors.

    Combination Semantics: Uses last-write-wins per TransformId. When combining two TransformDeltas, entries from the other delta overwrite existing entries with the same TransformId. This is deterministic given consistent ordering.

    Weight Semantics: Weight represents blend strength, not multiplicative contribution. A weight of 0 means "no change" (identity scale preserved), and 1 means "full delta applied". The applier is responsible for lerping between identity and delta scale based on weight.

    Structs

    MaterialPropertyData

    Data container for a single material property change. Contains the target color and blend weight.

    ProceduralContext

    Context passed to all procedural animation evaluation logic. Contains state reader for accessing state values and time information.

    TransformScaleData

    Data container for a single transform scale change. Contains the target scale multiplier and blend weight.

    In this article
    © 2026 Serenity. All Rights Reserved