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

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:

https://academysoftwarefdn.slack.com/archives/C013Z5AMT7T/p1699372600728409?thread_ts=1699305453.565659&cid=C013Z5AMT7T

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:

cubeToSphere.glb

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?

VRM

Next Gen Idol Master Graphics and Animation Programming Preview; https://cedil.cesa.or.jp/cedil_sessions/view/416

Kawaii Physics; https://github.com/pafuhana1213/KawaiiPhysics/blob/master/README_en.md

vrm-samples, https://github.com/madjin/vrm-samples

VRMToybox, https://github.com/Keshigom/VRMToybox

VRM4U, https://github.com/ruyo/VRM4U

VrmEditor, https://github.com/ousttrue/VrmEditor

three-vrm, https://github.com/pixiv/three-vrm/tree/dev

VRM specification, https://github.com/vrm-c/vrm-specification

VRM consortium, https://github.com/orgs/vrm-c

VRM documentation, https://vrm.dev/en/

VRM utilities, https://vipe.io/utilities 


VRoid

VRoid Studio https://vroid.com/en/studio

VRoid Hub https://hub.vroid.com/en 

Booth https://booth.pm/en/search/vroid

 Fashion Show https://vroid.com/en/news/6UFOiyMQm9Ih4YUD2AoRBh