animation baking code. also a patch to autokey, to only key the keys made.
Log: More things for easing the job of replacing proxy/working armatures in the scenes of Elephants Dream with the final ones: 1) adds removing Fakeusers from Actions to PyAPI, now with a hackish call in the Blender module. Possibility of better ways should be discussed on bf-python.
2) adds BPY Object.copyNLA(otherob) - that was simple 'cause the copy_nla function was nicely in kernel nla.c.
3) Object.convertActionToStrip(), here it gets tricky: the function to convert the active action of an object to a NLA strip was buried inside the respective function in the GUI editnla.c which had also code for reading mouse coordinates and whatnot. So I took the actual copying out of it and moved it to the kernel nla.c as a new function, bActionStrip *convert_action_to_strip (Object *ob). that code used other functions, of which find_stridechannel() was also in editnla.c but free of UI code so i moved it to kernel too. Kept things with UI code in editnla.c. Tried to be careful with keeping mallocs and the pointer business intact, and tested that this works and after usage Blender gives no memory warnings or anything, so seems ok - but certainly is best reviewed by ppl more active with c coding than me. Hopefully this little refactor makes it possible to add this function to the menus too, which was not straightforward earlier when Matt took a look at it.
Bone Radius Numeric
Added UI numeric access to bone radius (for envelopes), needed to access the other day to make bones the same radius and had to guess. See the edit bone properties.
Some better support for new bone layers: action window now draws nicer... it was still counting all bones for defining visible area, so many times channels got displayed out of view.
Custom drawing types for bones in Poses!
In Armature Pose-bone panel, the 'hide' button got replaced with a button where you can type (TAB complete works) a name for a Mesh Object. It then draws that Object instead of the indicated bone drawing type.
Fixes for bone layers: - Akey in Editmode didn't work properly (now deselects all non visible bones too. selection for editmode works on the vertices, not bones... - Snap in Editmode now respects layers
On adding constraints, names are now unique per object/bone, this prevents confusing situations when adding constraint ipos.
Change Step by Using the Up and Down Arrow Keys
Patch #4044 patch to change the step when changing frame with up or down arrow keys.
This adds a per Scene setting to specify the number of frames skipped by the up and down arrow. This setting can be changed in the Timeline header and in the Anim/Playback section of the Scene settings.
Upon loading a file without that setting or creating a new scene, it is set to 10
Also fixed the Start and End frame buttons in the Scene buttons to do a proper refresh.
Inserting keypositions for a constraint which is part of action that's part of action strip... now is corrected for action strip offset.
Copy NLA Strips
Added a command to copy NLA strips to the Copy Attributes (Ctrl C) menus. Will be useful for updating versions of armatures, and transferring animation between them.
Copy Shape Verts
Copy Shape Verts
In mesh editmode, while editing a shape, select some verts, W Key, "Copy Shape Verts". You will be presented with a list of shapes and once chosen, the selected verts will be moved to the position of the verts from the chosen shape. Most handy use would be reverting part of a shape back to basis e.g.
Making eyebrow shapes, add a key and model the eyebrow shape symetrically with the x-mirror tool Go out of editmode, copy that shape Go into each shape and revert 1 side to basis
If the mesh has had verts added/removed since last entering editmode, you need to TAB-TAB first before copying
Additional Shape Vert Copy Tools in editmode WKEY
Copy Shape Verts Blend (interactive blending copy) Propagate Verts (copys selected verts from current to all other shapes)
UI for interactive needs work and Propagate verts needs tidying up, propagation does not show yet until TAB :(
now sets RECALC for all objects that share the obedit's mesh data. So no more TAB-TAB nonsense :)One caveat: Undo is on Global Level not editmode level.
Also added header note for Copy Shape Vert that MMB does 100% copy
Copy Size Constraint
This new constraint is pretty simple. Following in the footsteps of such giants as Copy Loc and Copy Rot, it lets you constrain the size of an object/bone to another object/bone, with per axis restrictions.
Another NLA goodie. The NLA code didn't evaluate any strips when the current frame was outside of strips. This gives potential errors with playback that skips frames, or for a renderfarm. And, while editing, the poses got 'stuck' if you changed to different frames.
Now if no strips are found on the 'current frame', always the first strip to the right is used, or the last strip to the left.
Enabled Striding in NLA to also use FollowPath Constraint. Until now it only worked when Object was parented to a Curve. Interesting feature now is that it checks for all FollowPath Constraints, and it chooses to stride over the first Path found with influence > 0.5.
Note: to make switching to other paths work, map the time curve for these paths to match the switch. This is not very NLA friendly... but let the dudes in studio test it first. :)
Todo for later once; ensure proper blending...
Made dashed parent-offset lines option for drawing Poses.
For some ancient reason, the stride option only worked on a single strip, and extended always. This made it nearly impossible to integrate it well with other actions in NLA. This commit changes it as follows;
- As any strip, the striding-strip also stops at the end of a strip - This allows to put multiple different actions on a single path, and if all of these have the striding option set, the actions will each do their own individual stride. - To match the different actions, a new "Action Offset" button was added in the NLA Panel, which allows to internally cycle the action. - Of course, blend-in and blend-out works nicely too.
Here's a quick AVI test with 2 actions. There's some slipping of the feet between actions still, because of the stridebone blending. I might look at that later, for now you can correct it with a simple Ipo on Armature too
Zoom to Selected Bone
When weightpainting, with the armature in posemode, you now can press the NumPad-period key to zoom in to the selected bone. (it used to zoom to the painted mesh instead). Actually bugreport 4161.