vrm-c / vrm-specification

vrm specification
232 stars 36 forks source link

Add an example model for VRMC_node_constraint #444

Closed aaronfranke closed 5 months ago

aaronfranke commented 1 year ago

This PR adds an example model for the VRMC_node_constraint glTF extension. I also added some Git metadata (.gitignore and .gitattributes) because I had .DS_Store diffs on my Mac.

It has several test cases of the aim, roll, and rotation constraints. This does not include any other parts of the VRM specification, it is only a test of this one glTF extension in isolation. This is useful for testing a small part of VRM before implementing the whole spec, and useful for having node constraints outside of VRM.

This file works with this Godot implementation: https://github.com/V-Sekai/godot-vrm/pull/65

The cyan cubes are independent, they can be animated. All other cubes are somehow constrained by the cyan cubes (yellow = target, red = X, green = Y, blue = Z). I tried to include an animation in the glTF file, but it seems Godot has trouble exporting it. This is an example of what it looks like:

https://github.com/V-Sekai/godot-vrm/assets/1646875/61f6fc62-1151-45ed-8e79-dbb1136c5729

As for licensing - you can license it however you want, you can consider this public domain if you want.

0b5vr commented 1 year ago

It doesn't make any sense at a glance. The model should have a self-explanatory looking.

aaronfranke commented 1 year ago

@0b5vr I don't know how we could accomplish that. It does make sense if you read through the model and look at which constraints each node has, this is the intended use case, for an implementer to look at the constraints they are parsing.

0b5vr commented 1 year ago

Look at glTF samples models for example, these models have fairly graspable explanation in appearance of models, such as text instructions, check marks, and aligned objects. You can also use animations field to move source objects automatically without grabbing gizmos -- which is very helpful when you're using implementations or model viewers that does not come with editors and gizmos.

https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0

aaronfranke commented 7 months ago

To clarify the purpose of this model, this is not meant to be realistic. It is meant to be used by programmers as an extremely minimal test file for the early stages of an implementation (or sanity checking a refactor later). This way an implementer can test that VRMC_node_constraint is working without worrying about bones, skins, skeletons, textures, etc.

Anyone is welcome to enhance it further if they'd like, but this model already meets my goals for making it.

0b5vr commented 5 months ago

Providing such models without explanation will rather confuse other people. This model is for you, not the community, which does not need to be included in this repository. However, we should have a simple model to test the behavior of constraints, indeed. We would appreciate the contribution if we could get a model that is simple and easy to understand.

Closing the PR for now.

aaronfranke commented 4 months ago

I would like to point out that the first example for the VRM Blender addon is similar to my test model: