Static vs Skeletal Meshes

🛑⚠️🚧Content not yet finished 🚧⚠️🛑

Everything below represents notes for Sepha to finish the YouTube vid and article with.

Static Meshes vs Skeletal Meshes

Game worlds contain two fundamental types of 3D objects: those that can deform and those that cannot. This distinction defines the difference between Static and Skeletal Meshes.

Note - In Blender or other DCCs, there isn't a distinction between Static and Skeletal Meshes. But in game engines however, there is a large distinction. So when we author content for a video game Engine, we think in these two concepts.

Static Meshes

  • 3D models that maintain a fixed geometric structure.

  • Preserves the original vertex positions throughout their lifecycle.

  • No bone binding or vertex weight calculations required.

  • Computationally efficient for rendering large numbers of objects.

Common Examples

  • Environment Art: Walls, floors, roads, cliffs, rocks

  • Props: Daggers, Hammers, Barrels, Sign posts

  • Natural Objects: Rocks, Trees

  • Rule of Thumb: 99.99% of assets in a game world will be Static Meshes.

Animation Capabilities

  • Transform Animations: Can be moved through the world over time

    • A grenade can be thrown, a flag can be placed, a barrel can roll down a hill.

  • Surface Animations: They can exhibit a form of surface motion by GPU driven animations, driven by Shaders

    • However, the underlying structure and topology remains fixed. The asset itself is static

    • Trees, Grass, Dust, Ocean water, etc, are all "static" meshes which can be "animated" via Shaders on the GPU

    • This is a heavily technical and advanced topic we will explore later.

A static mesh is by its nature designed NOT to be animated.

Skeletal Meshes

Skeletal meshes by contrast, are designed specifically to be animated. They are built and designed with all the drawbacks of animation in mind.

  • 3D models designed specifically to enable deformation

    • Characters / Creatures, some vehicles, some weapons, etc

  • The mesh is glued (bound) to an underlying "Skeleton", allowing an animator to Transform the skeletons "Bones" over time, creating beleivable motion and deformation.

  • Requires significantly more computational overhead than Static Meshes

    • Bone positions, final vertex positions, and animating components all need to be computed

  • Suited for characters and other animating props where static meshes cannot achieve the desired result

    • A human face for example is a perfect candidate for a Skeletal Mesh

  • Not suited for environment geometry in GENERAL as it carries several expenses with it, however it is common to make exceptions to this rule given the specific needs of the required visuals.

  • Requires both CPU AND GPU time to render, and in both cases, more than an equivalent static mesh.

  • Due to its dynamic nature, many optimizations that an engine can make about static meshes do not apply to skeletal meshes.

Bone Structure and Hierarchy

  • Organization: Hierarchical network of parent-child relationships

  • Structure: Tree-like system mirroring anatomical or mechanical joints

  • Coordinate system: Each bone functions as a 3D coordinate space, with their own local Forward, Right, and Up axes

  • Inheritance:

    • Parent bone transformations propagate to child bones

    • Moving a humans Neck, will indirectly move its Head.

    • This is known as Forward Kinematics, or FK for short

Vertex Binding and Weight Distribution

  • Establishes mathematical relationships between mesh vertices and bone influences

  • Each vertex assigned weighted values determining bone influence degree

    • This is called Weight Painting in Blender

  • Weights are normalized, typically summing to 1.0 (100%)

    • It is often considered an error if the weights of the vertices sum to a value over 1, as this leads to ambiguity when imported

  • Individual vertices can be influenced by multiple bones simultaneously

    • But this commonly carries a limit in engine of between 2 and 4 bones per vertex.

  • Users are capable of setting up complex relationships between bones by way of constraints and drivers - which allows for complex procedural animations to be authored.

    • When a skeleton is driven substantially by constraints, drivers, and other procedural methods, this structure is known as a Rig.

    • The Mesh is bound to a skeleton, which is in turn animated and driven by a Rig.

      • This can confuse some artists, as skeletons can be animated directly, but there is an important distinction, and Rigging is a whole field on its own.

Technical Implementation and Applications

  • Essential for models requiring articulated movement:

    • Bipedal and quadrupedal characters

    • Facial animation systems

    • Complex mechanical assemblies with multiple degrees of freedom

  • Bone directional properties important for animation authoring

  • Enables creation of believable animated performances impossible with static geometry

  • Typically require supporting assets:

    • A rig which defines the constraints and procedural motion the skeleton is capable of

    • An animation controller (AnimBP in Unreal) which defines how the animations play, layer, loop, and otherwise present to the user during the gameplay.

Last updated