Quill VR animation to .glb

Hello,

I am new to 3D and will have a question that I cannot find an answer to.
I have looked and tried a lot of things, but a lot of the answers are currently not working.

The problem is that I created an animation in VR using Quill, but I can’t export it to glb (or gltf).

I tried exporting the animation as .alembic in Blender, everything works fine, but when I export as .glb (or .gltf), there is no more animation.
I tried several tweaks I found on the forums, but since I have absolutely no knowledge of it, it’s not obvious …

Could anyone just tell me how to export animation made in Quill and convert it to .glb?

Thank you in advance !

1 Like

Does this thread help? Quill to GLTF Bug

Good evening!

I’m not sure it’s the same problem.
When I export an .alb file from Quill and open it in Blender, everything is ok, the animation works fine.

But when I export to .glb, I end up with a still image.
And when I check with https://gltf-viewer.donmccurdy.com/, it does mark “0 animation”.

Currently I am trying to export dequis Quill to .fbx, but when I open in Blender I have all the separate images showing at the same time. And I don’t know how to animate them …

I’m pretty sure it’s the same — Not all types of animation in Blender can be exported. Try exporting to .mdd, reimport as shape keys, and then export as .glb. Otherwise, you’ll need to share a .blend file for help I think.

I’m sorry, I really don’t have any experience in 3D and related software. I tried the method presented on the other post, but I don’t think I’m doing it well…

I am sending you here the .abc .fbx and .blend documents (taken from the .abc) of the test I am using.
I’m looking for the easiest technique to convert similar projects to .glb.

I do not have access to Maya (because it pays), but I can use other software if necessary.

Thank you again for the time given to your answers!

Torche.abc (2.5 MB)
Torche.fbx (1.3 MB) untitled.blend (1.0 MB)

This is tricky because .abc uses features that most other formats don’t have. It’s basically a format dedicated to a special type of animation. My suggestion of .mdd won’t work in this case, because the animation has different vertex counts on each frame. I think the steps you want to take would be:

  1. In Blender, export to .obj and be sure to enable the “Animation” option during export. This will create many OBJ files, so you’ll want to export to an empty folder.
  2. Drag all of the OBJ files into https://threejs.org/editor/.
  3. Export from the Editor to a torch.glb file, containing all of the meshes.
  4. Run npm install --global @gltf-transform/cli@alpha to get an upcoming version of the glTF-Transform CLI.
  5. Run gltf-transform sequence torch.glb torch_animated.glb --pattern "Torch_*.obj" --fps 24

The .glb exported from the Editor contains each frame of the animation as a separate mesh, each with the name of the original OBJ. Then, step (5) creates a new animation that shows each of those meshes in sequence. If your original files were named differently, you’d have to adjust the --pattern argument to this command.

The final torch_animated.glb should contain your animation:

4 Likes

Ah ! thank you so much, got it ! Very great explanation !

1 Like

I have reached till the 3rd step to export a glb file. I have got a glb file with all frames in one file.

Now about step 4, where should I run the commands in step 4&5? I’m not so familiar with scripting.

Thanks in advance

You’ll need to use a Terminal to run steps 4 and 5. If you’re not familiar with commandline/terminal usage, a tutorial like this one may be helpful: https://www.learnenough.com/command-line-tutorial/basics#sec-running_a_terminal

Great that worked! I ended up using Node.js because mac terminal and windows CMD didn’t work for me.

Any idea how to import a separate texture map for each mesh automatically? is there a script I can run to do that? Right now I’m importing each map separately but that’s very time consuming.

Thanks for your time!

Could you explain the difference between what you’re currently doing, and what you want to do, a bit more? I’m not sure I understand, they both sound like the same thing.

I have a OBJ seq and a Texture seq. I can import OBJ seq in threejs but I am having problem in importing and linking the texture seq with the corresponding mesh.

Might need to start a new thread and share some code or a demo if you can? I can suggest a for loop that just downloads a bunch of textures but I don’t expect that’s what you actually want. :slight_smile:

1 Like

The procedure works flawlessly, I just want to know one thing, How to get the textures into the final animated glb?, I tried importing that glb and mapping the textures but the export was not up to what I was expecting, Please let me know some steps to get the textures.

These steps already support textures – if not, can you share enough information to debug what you’re seeing?

Hello,
thanks for the great explanation! I followed all your steps, only changing the fps to 25.
Using your gltf-viewer the .glb looks exactly what it should.
My Problem now ist, that I want to use it inside Spark AR, where the animation is all buggy.

I don’t know the exact reason, but most likely it has to do with timing? Spark AR shows 1000fps as the original framerate. Do you have any idea why?

Thank you!

Spark AR

via GIPHY

Your viewer:

via GIPHY

Hm, does the model pass in glTF Validator? And look similar in https://sandbox.babylonjs.com/? This may be a bug that would need to be reported to the Spark AR team.

Thanks for the links. The Validator tells me “The asset is valid.” In Babylon js the animation looks different. It seems like for each object it does the keyframe “scale=0->scale=1” but not back. So at the end of the animation every object ist shown. Although the timeline at the bottom is looping, the objects just stay all visible.

liquid_animated.glb (2.6 MB)

Comparing a few viewers:

  • :white_check_mark: three.js
  • :white_check_mark: PlayCanvas
  • :x: Babylon.js
  • :x: Khronos Sample Viewer
  • :x: Spark AR

I do still believe this is a bug or limitation in the viewers that can’t play this animation style, and it’s interesting that all three of the ‘broken’ viewers are broken in different ways. In the case of Spark AR, it looks like they may not support discrete/constant steps in animation? There’s a smooth scaling effect visible that shouldn’t be there, each frame is marked to go instantly from scale=0 to scale=1, and scale=1 to scale=0, with no transition.

Filed an issue here: Suggestion: Sample with discrete/constant interpolation of scale 0↔1 · Issue #321 · KhronosGroup/glTF-Sample-Models · GitHub