Coder Social home page Coder Social logo

Comments (7)

kcoley avatar kcoley commented on September 17, 2024 2

@enzyme69 interesting, I was able to get all the toruses to animate on iOS, though it doe look different in XCode Beta 6. This could be another difference in behavior between Mac OS and iOS. I made a screen recording on my phone for reference.
IMG_1338.TRIM.MOV.zip

from gltf2usd.

enzyme69 avatar enzyme69 commented on September 17, 2024 1

@kcoley You are right!! It's also working and animating on my side on iPhone and iPad.

I guess we can send bug report to Apple. MacOS and iOS USDZ has different behaviour. Sometimes it works on MacOS and not on iOS... at least this works on iOS!!

Thanks!

from gltf2usd.

wave-electron avatar wave-electron commented on September 17, 2024

@enzyme69 @kcoley My guess is gltf2usd.py may not handle this exception. I've tried numerous bone based animations, building the source glTF with either the COLLADA2glTF or FBX2glTF tool. The animations may load and work as expected in sandbox.babylonjs.com, but the glTF is converting to USD with distorted or broken animations that won't even load in xcode as usda or safari as a usdz. I've only successfully converted 2 bone animations so far.... and may have tried a dozen or so models to date. Even my newton_cradle model isn't converting correctly, but works fine in the glTF sandbox. The static pose meshes seem fine in most cases you can check these using the older beta 5 xcode, but the animation conversion fails in all beta versions I've tried including 6. I think the bone naming issues can be easily fixed for all cases, but different animation exceptions will require more testing and debugging. For example if you have a morph target with weight, the program will hang with an exception currently. Another issue is you take the same animation and save it as either a dae or fbx, and use the respective tools to build each glTF file, these glTF files can be widely different in node structure even though they run similar animations in the sandbox.babylonjs.com. I also performed diff operations comparing the resulting usda files and they are very different in many respects. IMHO it will take considerable time to work through some of these issues. Personally I'm unfamiliar with glTF orUSD schema to tackle some of these problems in a timely fashion. I think it would be helpful to know definitely what cases the tool will work for in its current state, and the glTF converter or exporter used to create the glTF input file. I can put together a list of what in currently hasn't worked for, but @kcoley be in a much better position to know the cases it was designed to work for.

from gltf2usd.

wave-electron avatar wave-electron commented on September 17, 2024

Its only a guess based on the error. “dict object has no attribute “GetRestTransformAttr”. It seems that maybe USD schema is looking for a Rest pose that may be missing?

the USD schema for GetRestTransformAttr

A blender user had flagged this issue with glTF exporter... missing rest pose on glTF export in respect to the Armature. (July 2018)

glTF-Blender-Exporter issue

@enzyme69 As a workaround you could try exporting as a dae file and using the COLLADA2glTF command tool to see if fixes the missing rest pose error.

from gltf2usd.

kcoley avatar kcoley commented on September 17, 2024

@wave-electron @enzyme69 I have some time tonight to look into this. I suspect it is related to glTF node animations that are attached to joints and transferring to USD, or essentially attaching meshes to joint nodes. I believe this case was not handled for certain meshes exported from the Blender exporter, so I will see if I can get that working. Any sample models you can provide would be great

from gltf2usd.

kcoley avatar kcoley commented on September 17, 2024

@wave-electron @enzyme69 I just merged a change to master that may help with this issue. The bug was on my side with an API change I had made earlier. I was able to get the loopingnoise gltf converted to usda and working on iOS.

loopingNoise.usdz.zip

Feel free to try pulling from master and let me know if you run into other issues.

from gltf2usd.

enzyme69 avatar enzyme69 commented on September 17, 2024

@kcoley Thanks for the update, looks like only 1 Torus is animating, but at least no error this time 👍 I will investigate this from the USDA...

I will try again using simpler bone and animation. All I have here is just a bunch of mesh torus, joined into a single surface, and each of this torus got skinned into bones and animated randomly using nose.

Previously I thought that maybe bone naming or my hierarchy is the issue...

  1. bunch of free bones animating does not work
  2. parent those bones under a single root bone still does not work
  3. rename bone hierarchy does not work
  4. maybe giving each bone a different name works, instead of bone_00, bone_01, bone_02 ? not sure, will check.

PS: I am slowly reading your code to do this conversion. Ideally it should just work from Blender export to USDA, but then Blender is Python 3 hit head into Mac but anyhow, I really quite like this GLTF2USD workflow.

from gltf2usd.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.