Tracking the development of the BlenderPeople script suite.
Wednesday, July 26, 2006
I'm currently rendering 25 seconds of animation to send to SIGGRAPH. It should be done tomorrow, but until then, here's the OpenGL non-meshed version, and a still from the final...Rendered still
Timing is bad in the video on some of the actions, obviously, but I've yet to tweak things like optimizing length of NLA strips. Just popping them in, at the moment. What I'll really have to do is to generate a bunch of characters' actions, analyze and correct them by hand, then figure out how what I've done translates into Python.
The great thing about this, though, is that once you've used the BP tools that are already available to you (moving them around the terrain, etc.), getting to this point from there boils down to executing a "Go" kind of script that marries meshes, makes the armatures walk and fills in the character animation.
Also, everything remains changeable until you bake it. Two people use the same "death" action too close together on camera? Just select the "death" NLA strip, and substitute it with one of the different "death" actions. Or, offset it a little bit in time. Or, if you have someone you want super-detailed control over, you can remove their NLA and build the animation by hand, right beside all the autogenerated stuff.
Tuesday, July 25, 2006
BlenderPeople Custom Binary
I think I have all of my patches in order for the next release of BlenderPeople. It's a significant departure from the official Blender binary, including Action Baking, MatchBone and some Python enhancements. BlenderPeople will not work
with the standard release of Blender. When things are ready to release here, I'll be providing custom builds for OS X (Python 2.3), win32 (Windows, duh) on graphicall.org, as well as a monolithic patch against the 2.42a official release cvs checkout for people on different OS's.
If you're planning to actually use BlenderPeople output in conjunction with a renderfarm, fear not! Once everything is baked into a single Action strip per armature, you should be able to do accurate playback and rendering on the standard releases.
NLA Interface Updates
Now that I'm off the coding side (whew!) and back into actually working with Blender as a compiled application, I have to put down some quick thoughts for the NLA interface. It really needs a couple of things.
When you have lots of objects in your scene (say, even 20) with NLA material, the interface becomes really ungainly. To scroll through the available objects, your only option is middle-click drag. Yuck. Vertical scroll bar is much needed. Also, the ability to filter objects based on name, selection state, layer and object type would help. Being able to use Ctrl-Home to bring the selected object to center screen in the NLA window is much needed also.
On another NLA topic, I had an irc discussion with some people about getting rid of blendin/blendout in favor of linking each strip to an Ipo. The ideal interface would display the Ipo curve directly within the strip in the NLA window, and let you edit the bezier curve right there. I can do the other stuff, but doing the curve drawing and editing right there is a little beyond my capabilities at the moment.
Anyway, just some thoughts For The Record.
Bad News, Annoying News and Good News
Bad News first...
I'm not going to SIGGRAPH. Currently, I own two houses (anyone want to buy one), which means two house payments. It also means that I got unexpected additional tax and insurance bills last week for the house I'm not living in. Finally, this means that I cannot, in good conscience, spend the money to go to SIGGRAPH this year. This is an extreme disappointment for me, as the Open Source booth was going to be right down the walkway from Massive software, and, well... that would have just been cool.
In any case, I had only been really trying to pull off going for the last two months. No doubt, I will be in significantly better financial shape next year, and I've already decided that I'm going next year, and have a whole year to make it happen this time ($, time off from work, etc.)Good News...
I have BlenderPeople putting together character animation using the database, the actions created by Donald Kim, and the NLA. It's very cool. But, it leads to the annoying news...Annoying News...
Finally having the character animation portion of BlenderPeople in production made apparent that my implementation of MatchBone did not work correctly. It created some cases I had considered when writing the feature originally, and exposed a major shortcoming. It seems that when actions take place sufficiently distant from the object's center, blendin/blendout in an NLA strip made the armatures fly all over the place. That was bad. I just spend the last week and a half (since last Monday) banging my head against the wall to fix this problem. The solution ended up being only six additional lines of code, as well as another modification to NLA Strip SDNA, but it works now.
This means that I can now get on to refining the NLA build process, which should be pretty easy compared to the matrix gymnastics I've been doing for the past ten days.The Very Good News...
Although I'm not going to SIGGRAPH, I will have a demo to send. I'm actually preparing two separate demos. The first is a small loop of BlenderPeople in action, showing a quick setup, motion generation and character animation, followed by an OpenGL visualization and a short section of rendered material. Hopefully, that will be suitable to show on the big screen at the booth and can be added to the overall Blender demo loop. The second demo (if I have time) will be a longer one that I'll be recording straight to DVD and shipping up to SIG. It'll be a more in-depth look at BlenderPeople, done live while I do a voice over. If I can compress it suitably, I'll put it on the web too, for all to see.
Tuesday, July 11, 2006
Video of Character Animation
Bad things about this video:
1. I don't like the way the mesh's skin and eyes render under animation style lighting conditions. Need to tweak.
2. Wrists twist oddly. Need to tweak skinning on the new rig.
3. Legs sometimes push through chainmail skirt. More skinning tweaks.
This video shows the rig and mesh that'll "ship" with BlenderPeople, as well as some of the awesome character Actions create by Donald Kim. This was done by simply adding his Actions to NLA, then turning on MatchBone so there was no skating between actions.
The Actions were added by hand in this case, but (I'm hoping that) doing it in a automated fashion is fairly trivial.
For the last couple of weeks, I've been working on refining autolocomotion and getting it integrated into the BP workflow. There are STILL some bugs to kick out of the autowalking stuff, which is why I haven't put up any videos of it in action. Mostly, it's just playing around with the best velocities to switch between walking and running, and a better transition between the two. Now that I have a final rig (confirmed by the good character animation), I can finalize a walk and run cycle and really squash
Oh, the video (7MB Quicktime)
Thursday, July 06, 2006
Thank you for animations
A big thank you to everyone who volunteered animation work for the next release. Apologies to Sketchy, who tried to contact me via the BlenderArtist.org personal messaging. I hadn't enabled message notification via email, and hadn't noticed I had PMs until it was too late.
In any case, I ended up getting some spectacular work, much better than I could have done in the short amount of time, and I'll give proper credit as soon as I put up the next demo animation.
02/01/2004 - 02/29/2004
04/01/2004 - 04/30/2004
05/01/2004 - 05/31/2004
06/01/2004 - 06/30/2004
07/01/2004 - 07/31/2004
08/01/2004 - 08/31/2004
09/01/2004 - 09/30/2004
11/01/2004 - 11/30/2004
12/01/2004 - 12/31/2004
01/01/2005 - 01/31/2005
02/01/2005 - 02/28/2005
06/01/2005 - 06/30/2005
09/01/2005 - 09/30/2005
10/01/2005 - 10/31/2005
11/01/2005 - 11/30/2005
12/01/2005 - 12/31/2005
01/01/2006 - 01/31/2006
03/01/2006 - 03/31/2006
04/01/2006 - 04/30/2006
05/01/2006 - 05/31/2006
06/01/2006 - 06/30/2006
07/01/2006 - 07/31/2006
08/01/2006 - 08/31/2006
09/01/2006 - 09/30/2006
10/01/2006 - 10/31/2006
11/01/2006 - 11/30/2006