Skip to content

Rename Skeleton types #1604

@Dragorn421

Description

@Dragorn421

Context

Skinning

In the context of modern 3d graphics, "skinning" refers to a mesh being deformed by bones (as if the mesh is skin wrapping the bones and the skin stretches to accomodate for bone movements).
There's almost no constraints on how this deform happens, the mesh vertices may be rigged to one or more bones, using weights to blend the transformations. There's also no restrictions on which face(s) the vertex belongs to and how the other vertices on those faces are rigged.

In ancient days (n64 era) however the processing power and complexity level wasn't quite there yet for general use and there were constraints to save processing power.

The three main OoT skeleton types

In oot, there is a generic least-constraints multi-weighted-vertices (a vertex may be influenced by several bones, according to defined weights) skinned skeleton system, SkinSkeleton, which is used for horses.

There is also a widely used single-weighted-vertices (one bone per vertex with weight 1) skinned skeleton FlexSkeleton.
Examples: Link, carpenters...

And finally there is the simplest single-weight non-skinned Skeleton
It is "non-skinned" in that a triangle's vertices may only be deformed by a single bone, so a triangle is never stretched.
Illustration of such a rigged mesh:

mario split into chunks to illustrate single-weight non-skinned 'Skeleton'

Suggested names

After investigating I concluded to suggesting the following name changes:

  • Skeleton -> DisjointedSkeleton
  • FlexSkeleton -> RigidSkeleton
  • SkinSkeleton -> SmoothSkeleton

Note:

  • OoT also has "CurveSkeleton" which not much is known about. It gets little use by the game.
  • MM also has a "c_keyframe" skeleton system which not much is known about, too.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions