Bake Modifiers Into Shapekeys
Add the ability for blender to bake modifiers (example displace) into shapekeys, ie one shapekey per frame, and also the animation for them (shapekeys turn on for one frame, then turn off, in sequence).
This makes it easier to export animations or sequences that are constructed from modifiers.
Example: tracks animated using curve modifier:
There is already a very hacky way to do this in blender using the .mdd format, but it is very obscure and doesn't even tell you that it does this. An option inside of blender would work better.
12 Comments
I've made an addon just for that - blendermarket.com/products/bake-key-frames-to-shape-keys
why have shapekeys at all if you're baking. I think it would be better to just export the animated vertices in one of the available formats that support that. It would be nice if vertex positions could be baked to keyframes within Blender though. So in the bake menu you could have an option to apply modifiers, after which each vertex gets it's own channel in the graph editor, perhaps only available in a new graph editor 'geometry' mode.
the question is what format would be able to support this kind of vertex animation and is this format well supported in the end software (like game engine or whatever software animation is made for)
Yes this would be very useful. Baking an Alembic would require much more disk space than keyframes.
It shouldn't. Shapekeys is basically storing a copy of your mesh while Alembic is just storing a bunch of vertices deltas. Plus shapekeys are heavier on runtime calculations.
Oh, I thought he was just storing a few shape keys and then interpolating. I see now he's suggesting to create a shape key for every frame. Yeah, in that case just use alembic, usd, or fbx, perhaps even gltf.
Alembic is apparently not that commonly supported in game engines. I imagine usd is even worse in that regard, considering how young it is. Fbx and i also think gltf don't convert mesh deform animation into shapekeys for you.
Export as Alembic. It is MADE for that.
The modifier has a drop down that lets you save as shapekey, and having to that for every frame is kind of silly when blender can have a function to do it for you.
Also for game dev purposes you don't want alembic, it is not supported everywhere, and it performs poorly. Shapeykey animations are much better for that purpose.
I have never heard that. 🤔 Though I am in the CGI movies industry, not video games. I definitely have used ABC in UE4 , but I don't know how is the support elsewhere.
Alembic should offer better performance than shapekeys for storing and reading mesh deformations. ABC uses efficient delta encoding, requires less storage, and provides smooth interpolation between frames, while shapekeys require calculations at runtime and store each shape individually.
Like pretty much anything, the actual performance impact varies depending on the specific implementation, mesh complexity, number of frames, and the efficiency of the underlying system. Both shapekeys and Alembic have their strengths and trade-offs, and the optimal choice depends on the specific requirements and constraints of your project.
But in any case, if ABC isn't so widespread outside CGI movies, I guess there isn't really a better alternative than your proposal!
So basically you're looking for a way to bake geometry for each frame to shape keys?
How do you do it with mdd format?
I've had similar problem I end up baking everything to alembic (.abc) and then making custom tool in houdini that's using first frame as basis and adding all other frames as blend shapes and exporting this object as .fbx.
blender.stackexchange.com/questions/106120/how-do-i-use-shape-keys-to-bake-a-soft-body-animation