Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
197 stars 9 forks source link

VRM avatar import #863

Open AlexanderPavlenko opened 4 years ago

AlexanderPavlenko commented 4 years ago

NeosVR doesn't seem to be able to import https://vrm.dev/en/ I tried to convert VRM to an importable format via their Unity importer/exporter (outputs GLB, importing it crashed NeosVR multiple times) and Blender (converted GLB to DAE). DAE import did work, but some materials were lost.

ProbablePrime commented 4 years ago

VRM Technical Spec for reference: https://github.com/vrm-c/vrm-specification/tree/master/specification/VRMC_vrm-1.0_draft

Looks like its a GLTF with other data embedded.

Frooxius commented 4 years ago

This is planned, but currently waiting on the object ID / license system:

As previously discussed on Discord, one of the parts of VRM is licensing information on how the avatar can be used and distributed. Currently that information would be lost during import, which can be problematic, so I don't plan on integrating it until then.

flarn2006 commented 2 years ago

Couldn't you just have it store the license information in the meantime, and then have it process that information once #21 is complete? Sure, Neos won't be able to actually enforce anything until then, but neither are the licenses of assets uploaded in other formats. And this way, at least the information wouldn't be lost.

ProbablePrime commented 2 years ago

store the license information

Storing it would be the same as making parts of the actual system.

We don't have the capability to store that information at the moment.

uyjulian commented 2 years ago

It looks like you can already upload VRM by renaming the .vrm extension to .glb and uploading that.

ohzee00 commented 2 years ago

It looks like you can already upload VRM by renaming the .vrm extension to .glb and uploading that.

Such a method has a varying amount of success, surprisingly it can get a decent part of the model in but appears some vertex weights can be messed up. The better solution in the mean time would be to import the model into Blender and export it into a model format of your choice, FBX, GLTF, etc... then import it into Neos.

(Note, just adding this due to the increased number of users trying to do the file change method and coming across issues)

uyjulian commented 2 years ago

This may be due to the fact that assimp may not support quantized normalized (unsigned byte, unsigned short, int…) vertex data, while Blender does.

kazu0617 commented 2 years ago

Isn't it possible to check the license when importing, and if the modification is not allowed, don't import it in the first place?The Blender Importer uses this method, which should be helpful.

https://github.com/saturday06/VRM_Addon_for_Blender/blob/release/io_scene_vrm/importer/license_validation.py

kazu0617 commented 1 year ago

I created convert helper. anyone can use this tool to confort vrm into glb that can import natively. https://github.com/kazu0617/vrmtoglb_autoconvert

kazu0617 commented 1 year ago

@AlexanderPavlenko VRM Avatar Import is pre-supported by hantabaru1014. https://github.com/hantabaru1014/NeosVRMImporter

It is based my converter so it doesn't load if vrm model license refuse to load automatically.