Characters on the Web
Introduction
This page is for collecting information about characters on the web, and for trying to line up the concepts with USD.
Well established technologies are linked here for reference, and the concepts used by characters on the web are listed.
Concepts
Linear Blend Skinning
Blend Targets
Animated Texture Maps
Proceduralism
Look At
SpringBones
Cloth
Hair
Collision
Spheres
Cylinders
Planes
Animation Clips
Weighted and Blended Animation Clips
Accessories
Skins
Clothing
Concepts, In Detail
Blend Targets
In Unity it's an import choice to either import or calculate blend shape normals. Calculation is then "auto-smooth" per-blendshape and the calculated normals are used at runtime for interpolation.
Video of a box/sphere blend shape interpolation:
Which means that sharp cube to smooth sphere is representable in Unity and also in FBX and glTF. Hree's a glb file that illustrates the concept:
Blending normals is as a general problem not solvable because normals in different shapes easily become self contradictory, especially in crease areas. The general technique used in engines and renderers is to figure out where creased edges are and compute normals of the final blended mesh. In a subdivision surface, that's indicated with crease attributes; when importing from FBX, you can infer crease edges from the boundaries of smoothing groups. For smoothing groups and polygon meshes in general, Newell's method is commonly used (cf. https://www.khronos.org/opengl/wiki/Calculating_a_Surface_Normal) For subdivision surfaces, the preferred thing is to compute the normal for each vertex at the limit surface. This can be done through various analytic methods without performing the subdivision.
In the case of the cube to sphere example, the morph is possible without artifacts, because the convexity of the shapes does not change throughout the morph. Interpolation is more problematic in areas where a mesh surface stretches and folds, such as occurs at the corners of a character's mouth.
Mapping the Concepts to USD
Anyone available to have a go?
Geometry
Skeletal Animation
VRM
Next Gen Idol Master Graphics and Animation Programming Preview; https://cedil.cesa.or.jp/cedil_sessions/view/416
From CEDEC 2010, the basics of what's in VRM are laid out
Kawaii Physics; https://github.com/pafuhana1213/KawaiiPhysics/blob/master/README_en.md
Widely used in Japanese AAA games plugin for UE that implements secondary character animation
vrm-samples, https://github.com/madjin/vrm-samples
VRoid sample models in VRM format
VRMToybox, https://github.com/Keshigom/VRMToybox
browser based VRM viewer
VRM4U, https://github.com/ruyo/VRM4U
VRM importer for UE4
VrmEditor, https://github.com/ousttrue/VrmEditor
three-vrm, https://github.com/pixiv/three-vrm/tree/dev
reference implementation
VRM specification, https://github.com/vrm-c/vrm-specification
specification
VRM consortium, https://github.com/orgs/vrm-c
hosting for their various projects, including the specification
VRM documentation, https://vrm.dev/en/
documentation published by the consortium
VRM utilities, https://vipe.io/utilities
curated by Vipe
VRoid
VRoid Studio https://vroid.com/en/studio
Software to create avatars
VRoid Hub https://hub.vroid.com/en
Sharing site
Booth https://booth.pm/en/search/vroid
eCommerce site for accessories like clothes and hair styles
Fashion Show https://vroid.com/en/news/6UFOiyMQm9Ih4YUD2AoRBh
Example use case
License: CC BY 4.0, Copyright Contributors to the ASWF USD working group.