Vince Plunkett's Avmotion is a really great simple SL animation editor. I've seen people create some fairly impressive animations with it. It's fairly simple, but it gets the job done... the only problem is, if you save your animation to a .bvh and load it again, you lose all of your keyframes. It's pretty much impossible to work with an animation you've saved and then loaded. That means you kind of have to get everything done right the first time all at once without sleeping, which just isn't possible in many cases.
Since Vince was kind enough to open source it, I got inspired today and hacked in rudimentary support for saving the keyframes with your animation. My new version of avimator can save to a new format, ".avm", which will store the keyframes with the animation. At this point, it doesn't yet store IK data, but that's just because I need to sleep and wanted to get this out ASAP.
Here's the 0.4.1 version of the avmotion executable:
http://www.lexneva.name/avimator/avmotion.exe
Just drop that into your avmotion folder, replacing your old avmotion.exe. When you want to save your project, make sure you save it with a .avm extension. Note that .avm files aren't compatible with SL, so you'll need to ALSO save a copy as a .bvh to upload into SL. So long as AvMotion remains open, you won't lose your keyframes even if you save as a .BVH. However, before you close avmotion, always save your animation as a .AVM, even if you've already saved it as a .BVH. When you start editing the animation again, always load the .AVM.
In summary, .BVHs should only be used when you're ready to upload to SL, and in all other cases, you should use .AVMs.
For those who want to see the code I changed:
http://www.lexneva.name/avimator/avmotion-0.4.1.patch
This patch should apply cleanly against the avmotion-0.4-src.tar.gz from Vince's site.
I hope to try to hack in the ability to see where keyframes exist in an animation and delete them, but as I don't know the GUI system that avmotion uses, this may be difficult. With this version, it's at least possible to delete keyframes manually by saving to a .AVM, editing the .AVM in a text editor, and reloading the .AVM in avmotion.
The .AVM format is suspiciously similar to the .BVH format. At the end are a series of lines that denote which frames are keyframes. AvMotion deals with separate keyframes for each individual joint. After the BVH frame data, there will be one line of keyframes for each joint in the heirarchy, in the same order as the skeleton at the top of the file. The first number is the number of keyframes, and following that are the keyframe numbers themselves. You can remove a keyframe by deleting one of the numbers and then reducing the first number on the line by one. Make sure the keyframes are always in sorted order.
I hope you like this. I wrote it for me, but I hope you all enjoy it. If you feel especially grateful, I wouldn't mind a few Lindens... ;) Of course, before you donate to me, consider donating to Vince.