diff options
author | Joshua Leung <aligorith@gmail.com> | 2007-12-26 14:17:26 +0300 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2007-12-26 14:17:26 +0300 |
commit | 10b8237eab7e41ef7563cedbf6a2e4e5dda13456 (patch) | |
tree | 38e69047fcea8ce20b4a2c97a9cabc318b8c2f5b /source/blender/blenkernel/intern/action.c | |
parent | f81bc543e7f274aa88ca0d0c00dc86b4d6381416 (diff) |
== PoseLib - Pose-Library Tool for Blender ==
"A slightly late Christmas present for the Animators out there :-)"
This tool allows animators to store frequently used poses in an action, and be able to label those poses to help them retrieve them later. In a way, it acts as a glorified clipboard for poses.
One of the cool features with this is the ability to select which stored pose to use interactively in the 3d-view. Once a few poses have been stored in the PoseLib, simply use the "Ctrl L" hotkey to start previewing. Use the Mousewheel or the Page Up/Down keys to change poses, and confirm/cancel the preview in the same way as you do for transforms.
Usage Notes:
* Each Armature may get its own PoseLib. PoseLibs are simply actions with extra data, so they can get relinked.
* Manually editing actions used as PoseLibs is not a good idea, as some data may not be able to be found. Tools to automagically find poses in an action could be investigated...
* PoseLib will only apply/retrieve poses to/from selected bones
* A basic UI for this can be found in the "Links and Materials" panel. Most of the PoseLib tools are presented there.
Useful Hotkeys (also found in Pose->PoseLib menu):
* Ctrl L - interactively preview poses
* Shift L - add a new pose or replace an existing pose in the PoseLib with the current pose
* Ctrl Shift L - rename an existing pose in the PoseLib
* Alt L - remove a pose from the poselib.c
Diffstat (limited to 'source/blender/blenkernel/intern/action.c')
-rw-r--r-- | source/blender/blenkernel/intern/action.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index 162ee582d74..86e119f5e6f 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -163,6 +163,15 @@ void make_local_action(bAction *act) } } +static void free_act_poselib (bAction *act) +{ + if (act->poselib) { + bPoseLib *pl= act->poselib; + + BLI_freelistN(&pl->poses); + MEM_freeN(pl); + } +} void free_action (bAction *act) { @@ -177,6 +186,9 @@ void free_action (bAction *act) if (act->chanbase.first) BLI_freelistN(&act->chanbase); + + /* Free PoseLib */ + free_act_poselib(act); } bAction *copy_action (bAction *src) |