Home(en) - PoChang007/UniVRM_1_0 GitHub Wiki
- Help us find any feature from UniVRM-0.X missed in UniVRM-1.X! Open an issue and state what features are missed in UniVRM-1.X (Example). Thank you!
- This repository will serve as the core library for VRM1.0's Editor&Runtime. Other utilities such as UniHumanoid and VRMViewer will be managed in UniVRMUtility.
Here are draft notes for UniVRM1.0:
- API(en)
- API-update-from-UniVRM-0.XX(en)
- HowToExport(en)
- Load-VRM-0.X-model(en)
- UnityAssets(en)
- Use-Vrm(en)
- Use-with-UniVRM-0.XX(en)
Structure
VrmLib(namespace VrmLib)
VrmLib.Model
: An intermediate container generated from the GLTF array buffer to make handling VRM model data easier. It can access the GLTF hierarchy in the VRM model without index referencing.
ProtobufSerializer
VRM-1.0's reading/writing. Defined by ProtocolBuffer and generate a Json serializer.
Google.Protobuf
Google.Protobuf
VrmProtobuf(namespace VrmProtobuf)
C# container and JSON serializer exported from the GLTF's Protobuf definition.
Implement JSON(VRM-1.0) => C#(VrmProtobuf)
and C#(VrmProtobuf) => JSON(VRM-1.0)
.
ProtobufSerializer(namespace VrmProtobuf)
Transfer from C# serialized container to the intermediate format VrmLib.Model
.
Implement VrmProtobuf => VrmLib.Model
and VrmLib.Model => VrmProtobuf
.
Builder(namespace UniVRM10)
Implement VrmLib.Model => Unity
(UnityBuilder) and Unity => VrmLib.Model
(VRMBuilder).
- Transformation between right-handed and left-handed coordinate system
- Must be run in ScriptThread
- GLTF-related (Mesh, Texture, Material, GameObject, SkinnedMeshRenderer, etc.)
- VRM-related (HumanoidAvatar, BlendShapeProxy, LookAt, FirstPerson, etc.)
Current Implementation Status
File IO
- Runtime&Editor export in vrm-1.0 format
- Runtime&Editor import in vrm-1.0 format
- vrm-0.X import
- Use ScriptedImporter when exporting with Unity Editor
- Force the model to be normalized at export
- Be able to check whether the model is in T-Pose
Material
- MToonMaterial import/export
- UnlitMaterial import/export
- PbrMaterial import/export
- Unify ColorProperty to Linear
- Modified to handle MapTexture as Linear
- jpeg texture
- import/export tests
BlendShape
- Exclusion options for Blink, LookAt, Mouth
- LookAt target is set to Head
- Modify to export LookAt's coordinate system to right-handed system
- Organize MaterialBind's specifications
- Change Mesh specification of FirstPerson to NodeIndex
- Change BlendShapeBind specification to NodeIndex
SpringBone
- Modify to export as right-handed coordinate system
- Add the capsule-typed collider to SpringBone
- Move to an individual extension (VRMC_springBone)
Constraint
- Add Constraint
Schema
- Be able to handle content changes in Meta
Gltf Extension
- KHR_materials_unlit
- KHR_texture_transform
- KHR_materials_pbrSpecularGlossiness
- MSFT_lod
- KHR_compressed_texture_transmission?
Other
- IL2CPP support, AOT operation verification