oot icon indicating copy to clipboard operation
oot copied to clipboard

Rename Skeleton types

Open Dragorn421 opened this issue 2 years ago • 3 comments

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

  • discussion on Discord with @train_rlg who is experienced in 3d modelling (zeldaret discord)

    https://discord.com/channels/688807550715560050/838852326231769089/1136617092066590740

  • Maya (3d modelling software) documentation

    https://help.autodesk.com/view/MAYAUL/2019/ENU/?guid=GUID-30415E88-797A-424E-95C5-8EDC79B25614

    With rigid skinning, only one joint can influence each CV, vertex, or lattice point.

    https://help.autodesk.com/view/MAYAUL/2019/ENU/?guid=GUID-11007900-329F-40ED-9C38-BE4DB5C39832

    Smooth skinning provides smooth, articulated deformation effects by enabling several joints to influence the same deformable object points.

  • http://people.rennes.inria.fr/Ludovic.Hoyet/teaching/IMO/05_IMO2016_Skinning.pdf

    mentions rigid skinning but not smooth skinning

  • https://help.autodesk.com/view/MAYAUL/2019/ENU/?guid=GUID-EFE68C08-9ADA-4355-8203-5D1D109DCC82

    Skinning is the process of binding a modeled surface to a skeleton.

  • https://en.wikipedia.org/wiki/Skeletal_animation

    Each bone in the skeleton is associated with some portion of the character's visual representation (the mesh) in a process called skinning.

  • Blender (3d modelling software) manual

    https://docs.blender.org/manual/en/latest/animation/armatures/skinning/introduction.html

    "linking" an armature to the object(s) it should transform and/or deform is called the “skinning” process

Dragorn421 avatar Jan 07 '24 00:01 Dragorn421

Oh I didnt realize this was only an issue and not a PR lol I'm fine with the proposed names I think.

"Rigid" for what is currently "Flex" is the one that makes the least sense to me. Disjointed and Smooth tell me alot about what the final result will be like for those types, but rigid is pretty broad. I do see that professional software like maya refers to it as rigid, but is there any more of an explanation beyond that?

fig02 avatar Jan 07 '24 01:01 fig02

I guess to add on to my point about "rigid" not making sense, the word rigid to me tells me there will be no deformation (like disjoint), but with this type there is some deformation, just only from 1 bone, right?

fig02 avatar Jan 07 '24 01:01 fig02

I feel it wouldn't be as bad if it were spelled out more, e.g. RigidSkinnedSkeleton, SmoothSkinnedSkeleton

OoT also has "CurveSkeleton" which not much is known about. It gets little use by the game.

To me it look like it's in both games, since I believe it's used to animate the light coming from chests (see object_box).

mzxrules avatar Jan 07 '24 04:01 mzxrules