Manual · 09

When to bake again

A baked frame plays only while nothing it was solved from has changed; Fleshy checks this on every frame and names what moved.

The cache is tied to the mesh it was baked from. Bake again after changing:

  • a setting (Bulge, Dent, Bulge Width, Smoothing, Firmness), a Corner Taper setting, a region's settings, Close Openings, Smooth Pops, Exact Collider Edges, or the colliders (the list, or a collider's Firmness, or, for a set-up collider pressing with its own, its Firmness, its Firmness regions or the vertex groups they read);
  • the subdivision level, or any modifier above Fleshy, including adding, removing, reordering or re-enabling one;
  • the base mesh, its vertex groups, creases or shape keys.

In a group of meshes set up as one (Several meshes as one), any of these on one of its meshes makes every mesh's frames out of date, because each is solved with the others.

You also need to bake again the frames whose pose you changed after baking: re-posing a baked frame, adding or moving keys, retiming. This is checked frame by frame. An edited frame is refused, and the frames you did not touch keep playing. Bake again just the ones it names. The same goes for a collider moved, re-animated or re-modelled after baking.

Updating the add-on can also put a cache out of date, when the new version solves some setting differently; the panel says so.

You do not need to bake again for: moving the character as a whole, scrubbing or playing anywhere in the baked range, hiding things in the viewport, or rendering on a different Blender version.

It will never play back a frame when one of those has changed. You get the undeformed character and a message, not a plausible-looking wrong result.

Two things about the pose check

  • It is strict. Bending a finger on a baked frame refuses that frame too, even though the finger is nowhere near the knee. This is deliberate: a hand that moves might be moving into contact.
  • In the viewport it is checked when the frame changes. If you re-pose without changing frame, the old deformation stays on screen until you scrub. A render always checks.

Settings changed and changed back

If you change a setting and then change it back, the frames baked with the original setting play again. Nothing is thrown away until you ask. Discard Out-of-Date Frames, in Cache inside the Scene section, removes the frames that no longer match anything in the scene.

Use Baked Settings, at the top of the Deformation section, changes them back for you: every setting the out-of-date frames were baked with, regions and colliders included, and they play again at once. It is greyed until a setting changes after a bake; hover it to see why. So you can try a new Bulge with Bake This Frame, and if you do not like it, press Use Baked Settings to go back to the rest of the shot. If the frames were baked with different settings at different times, it picks the settings most of them were baked with.

It cannot put back what lives somewhere else: a collider that has been deleted, or a set-up collider's own Firmness. Then it changes nothing and says so; bake again.

For people who script Blender

A script that edits vertex groups and then changes frame in the same run should call bpy.context.view_layer.update() in between; otherwise the viewport can show the old deformation for that frame. A render always checks everything.