## Where communities thrive

• Join over 1.5M+ people
• Join over 100K+ communities
• Free without limits
• Create your own community
##### Activity
Guillaume Blanc
@guillaumeblanc
There's still an issue when blending with the walk cycle as it animates the hands also.
Koray Hagen
@cgikoray
Thank you for the invite guillaume! :)
Guillaume Blanc
@guillaumeblanc
Welcome Koray !
Koray Hagen
@cgikoray
I'm happy to see that, unlike the GamesTech slack, I have not missed 800,000 previous messages
Alex Fuller
@boberfly
@guillaumeblanc looks great!
steelfax
@steelfax_gitlab
@guillaumeblanc is there a write operation in the library?
Right now I have a Blender script that reads Mixamo animation data and retargets to the game standard skeleton. I'm using it as part of the asset workflow, but could improve the life of the artists in the team if I could integrate into the engine.
So they drop their anims into a folder and the engine will spit out them with the standard game skeleton.
Guillaume Blanc
@guillaumeblanc
@steelfax_gitlab Not sure I understand what you want to write. Do you mean serializing ozz data structures? If that's the case yes, I can guide you to it.
steelfax
@steelfax_gitlab
Yes, but in a more automated way.
As in, loading FBX, saving COLLADA or any other interchangeable format.
So I can load FBX and stuff, fix to match the game needs and automate a few tasks, and output something that can be tweaked by an artist later on.
By importing into their DCC.
Guillaume Blanc
@guillaumeblanc
So if I understand correctly you want to load an fbx/dae, modify the data in code, and save it back to a dcc format, right? Then I assume you could use fbx sdk directly, as I think it allows to write also (which I don't do within ozz code as I output ozz archives). Maybe fbx2ozz or ozz_animation_fbx could give you a head start.
Can Blender be used from the command line, and run Blender Scripts? If so you could also use it to process your data with your existing Blender script, automatically.
Niklas Lundberg
@datgame
yes, blender can be used from command line to run script
steelfax
@steelfax_gitlab
Thanks!
Niklas Lundberg
@datgame
"You can use free characters and animations from @Mixamo to experiment and prototype"
Guillaume Blanc
@guillaumeblanc
To my understanding, and the answer I had, you can shoot a video containing Mixamo data, publish a game, but not redistribute animation data.
Guillaume Blanc
@guillaumeblanc
I don't think ozz (or another animation programming library) competes with Mixamo. I think it's the opposite. People using or learning animation programming with ozz would be directed to Mixamo, and be happy to be able to use all this content out-of-the-box. But that's an opinion.
Hence my suggestion for a CCBY pack of assets/animations, not the full Mixamo content.
Niklas Lundberg
@datgame
yeah it's silly.
i guess we'll have to make something better and free, that outcompetes it :)
Danel Sánchez
@danelsanchez
Hello everyone, Technical Artist here. Looking to expand my knowledge on DCC rig/animation processing independent solutions. This looks like an interesting project indeed!
Guillaume Blanc
@guillaumeblanc
Welcome @danelsanchez ! What do you mean by "DCC rig/animation processing independent solutions"?
Danel Sánchez
@danelsanchez

I am developing a 3D application where I want to be able to import FBX files with animation clips that can be override by Inverse Kinematics.
As of now my implementation is based in baked animations. I process everything in Maya, bake it and send it back to the app. I am not really happy with this, specially because I want to get rid of Maya in a future.
My plan is to automatically rig my meshes in Blender/Maya, export the skinned FBX and animation clips and then process the IK, animation layering and so on in an independent solution like Ozz, then send that to my application.

I have been testing this with Comet IK + FBX SDK but the results have been really bad so far. Right now I am looking for something similar as what steelfax was saying some days ago... to process stuff in ozz maybe and export it to FBX or make an ozz implementation in my app. Everything is in the air though, I still need to do plenty of research.

5 replies
Niklas Lundberg
@datgame
champagne for the release party of 0.13.0 :)
steelfax
@steelfax_gitlab
holy crap, this library surprises me everyday. thanks for making my job 1000 times easier @guillaumeblanc
Sandro Stikić
@opeik
CMake Error at /Users/opeik/Documents/University/Year 3/ICT397/Assignment/lib/ozz-animation/build-utils/cmake/fuse_target_script.cmake:12 (get_filename_component):
get_filename_component unknown component
3/ICT397/Assignment/lib/ozz-animation/include/ozz/animation/offline/raw_animation.h
Building ozz-animation via cmake as a subdirectory, as instructed on the build page. Any ideas?
Sandro Stikić
@opeik
Huh, looks like the build breaks if the path has a space in it
I'll file a bug report
9 replies
Sandro Stikić
@opeik

Hmm, ran into another issue while enabling FBX support.

CMake Error at lib/ozz_animation/src/animation/offline/fbx/CMakeLists.txt:125 (add_custom_command):
add_custom_command attempted to have a file

/Users/opeik/Documents/University/Year3/ICT397/Assignment/lib/ozz_animation/media/bin/pab_skeleton.ozz

in a source directory as an output of custom command.

I have set(CMAKE_DISABLE_SOURCE_CHANGES ON) enabled in my root CMake script. It seems that the custom command outputs a binary into the source directory.

The command should be updated to output into the binary directory, not the source directory
I can file a bug report for this if you like too
Guillaume Blanc
@guillaumeblanc
I actually really expect to output them in the media directory, part of sources, as these binaries are redistributed with the sources (for use when fbx sdk isn't available). Let's discuss that in a private conversation.
Jan Krassnigg
@jankrassnigg
Hi. Ozz looks great ! I intend to work on an animation system for our engine soon, and will use ozz as the foundation. I wanted to ask, if anyone here knows any good, free models with animations, that have a liberal license. It would be great to have a model that has a good set of animations with which you can build a fully working creature, and be allowed to share that publicly without violating any copyright. The best model I could find so far is this: https://www.cgtrader.com/free-3d-models/character/anatomy/skeleton-e7f32f47-1381-4c18-b3eb-b4f201591ea2 but I don't think I'm allowed to share that.
Sandro Stikić
@opeik
I wasn't able to find any free models that were useful.
Guillaume Blanc
@guillaumeblanc
If you want to redistribute animation files (not only an application or a video), then I don't know either. Otherwise, Mixamo has a good animation set. You can use them but unfortunately you can't redistribute them.
TheOriginalBytePlayer
@TheOriginalBytePlayer
Has anyone here transitioned from Cal3D to Ozz?
7 replies
James Walker
@jwwalker
Hi, I'm just getting started, and trying to build the "skinning" sample with Xcode on macOS. When I run, it says it's missing a required --file argument. Yet the command line tool built by cmake seems to run fine without any arguments. I'm also not clear on what the --file argument is for, since there are other arguments for mesh, skeleton, and animation.
7 replies
TheOriginalBytePlayer
@TheOriginalBytePlayer

If you want to redistribute animation files (not only an application or a video), then I don't know either. Otherwise, Mixamo has a good animation set. You can use them but unfortunately you can't redistribute them.

I'm not sure why you say, that -- according to their faq "You can use both characters and animations royalty free for personal, commercial, and non-profit projects including: Incorporating characters into illustrations and graphic art, 3D printing characters, Creating films, Creating video games"

Though I'm not a lawyer and this should not be considered legal advice in any way, it is my understanding that as long as you incorporate the data in a proprietary, non-exportable format, under this type of licensing as described above, you should be fine.

2 replies
James Walker
@jwwalker
Is there any way to visualize a skeleton for which I do not yet have any animation, or do I need to build some dummy animation?
6 replies
James Walker
@jwwalker
The demo for two bone IK uses a "robot". Would the IK in ozz suffice to make a humanoid actor reach a hand for something, or would it take additional logic to prevent the elbow from bending in painful-looking ways?
5 replies
James Walker
@jwwalker
When I try to use the sample framework to display an imported skeleton, I see nothing but the gray-green background, not even the blue ground plane. But if I scale all the translations down by a factor of 1000, it displays. I can't see why this would be the case, because the sample framework uses GetSceneBounds to adjust the camera for the size of the scene. Anyone know how to make the sample framework able to handle models with large bounds?
4 replies
circinusX1
@circinusX1
I just discovered this great library. I have a question. How do I bind an existent GL context. The samples uses the framework renderer class, and I cannot figure out how to pass an existent gl context to it. Thank you
DuncanKeller
@DuncanKeller
Hey, just started playing with this lib. Awesome stuff! Can anybody offer me some advice on getting local animated joint transforms? I want to integrate into my existing pipeline for skinning, which relies on local poses. I thought I understood that the local space joint_bind_poses() are stored in a SoA format in order to store Pos/Rot/Scale separately, but I don't understand why num_soa_joints() is not the same as num_joints(). Is there a way to get local poses out of a Animation Sampling Job that is structured like joint_names, joint_parents, etc?
5 replies
PeterHiber
@PeterHiber

Hi and thanks for this lib!

We are starting to migrate our current animation code (basically handwritten code that uses glTF animations directly) to Ozz.

One of our major use cases is that we have a lot of characters with essentially the same skeleton (same bones, some minor scaling/translation differences depending on size of character), who all share the same animations. And the number of animations is ever-growing (think dances), so ideally we would like to only export each animation once and then have it magically work for all the existing characters.

Naively, we sort of assumed that the exported animation .ozz files could be shared between different skeletons (.ozz) as long as the skeletons were similar (same amount of bones, same bone names, etc). But reading the documentation more closely, we don't really know whether this is allowed or not.

Any input would be greatly appreciated. :)

22 replies
James Fleming
@jaemzfleming
Hello, great library. Hey I'm trying to sample just the root of an animation to help with root motion that I'm adding to our library that's built on top of ozz. The comments for the sampling job say this is possible. It says: " // Job output.
// The output range to be filled with sampled joints during job execution.
// If there are less joints in the animation compared to the output range,
// then remaining SoaTransform are left unchanged.
// If there are more joints in the animation, then the last joints are not
// sampled.
span<ozz::math::SoaTransform> output;
But the validation code explicitly returns false if the output range is smaller than the number of joints in the animation, and the run job doesn't take a min of the two, it just does const int num_soa_tracks = animation->num_soa_tracks();
But that does make me wonder, can I just modify the library to take the min of the output and the num soa tracks? It looks like it would all work, though I'd have to double check that the cache would remain happy. What do you think? It would be very helpful for my case.
28 replies
KeyC0de
@KeyC0de

Hey people. I can build 32bit version just fine. But I can't build x64. I followed the instructions using CMake and I always get errors.