Wednesday, June 1, 2016

Next Gen Animation Dev - Dev Update 3

As promised, here is a video updating showing off the current state of the Pose Sculpting and Pose Sketching tools, and how they can be used for a more fluid animating experience.

* These tools are still heavily under development. Key mappings and things like that are still liable to change, as are any glitchy/buggy things you may have seen happening
* To make it easier to follow what I'm doing, I was quite intentionally going slower than I usually would
* Also, it's worth noting that I currently still have to be quite careful about where I place the brush when sculpting. I've got some changes planned (i.e. using bounding boxes on the bones, instead of only testing their head/tail points - which can be misleading when dealing with bones with custom shapes and other similar magic) which should mean that things will get a lot more comfortable to use very soon
* In general, the sketch tool is also quite sensitive to the structure of the rig (in particular, to things like direction and hierarchy). What you see here is just the "direct" mode, which is the simplest to get working (and the most useful for some cases), but which is also the least flexible/tolerant of complexity in rigs.
* Currently these tools are meant to make it as easy as possible to animate complex things with simple rigs. So, support for things like IK and constraints is not really there yet. I am planning on looking into IK at least (i.e. setting the IK targets appropriately so that the rigs can work) at some point in the distant future, but doing the same for constraints may be more difficult (if not actually impossible). But, that's why these are not really production ready tools ;)

* The on-mesh highlighting seen on the Red Nelb uses a technique I described a while back when introducing the Mask Modifier.  An updated copy of this rig (as seen in this video), is located here (on Google Drive)
* The chain and tail rigs are from:
* The BBB and Tara rigs are the ones you've seen from my previous Pose Sculpting videos.
   - The BBB rig is actually a version updated for 2.6.2 by Wayne Dixon
   - The Tara rig is a WIP pre-final version of the rig. If you open the one on the cloud now, you'll find that it has a lot more controls, but you'll also find that it ends up being less "friendly" to these tools

* Where/When can we get hold of these tools to play with them?
   This is all still very much heavily WIP/experimental/early stage stuff still, with many more important features that still need to be implemented before it's really fit for more general usage. So for the time being, I've decided that I'm not going to publicly post any links to the code yet, until it gets to a more mature stage. It's also more of a matter of trying to keep people from developing bad first impressions of these techniques from dealing with an implementation which isn't ready for the prime time yet :)

That said, the usual "crash test pilots" will soon be hearing from me to start having a play around :)

* Is this an addon? How do I install this?
  As with all of my other work, THIS IS NOT A F***ING ADDON! As a general rule, I don't really work on addons and plugins (or rather, the stuff I do doesn't end up happening in an addon/plugin). When this does eventually become available for wider testing, it will be as a branch of Blender that'll need to be compiled to a separate build.

* What is this doing?
   These tools operate on the bones of a rig, giving you a bunch of powerful new ways to pose and tweak the poses of them. In the video, all of the poses were created without using any of the standard transform tools for posing any of the bones!

* Could this be used for Bendy Bones? What about Bendy Bones?
   Bendy Bones are a prime candidate for being controlled visually using these techniques. Implementing sculpt brush support for those is trivial. Sketch support is also something that I've got an initial plan of attack for (i.e. I've got in mind a crude iterative solver which should be able to do the job), and would make it super easy to use just a single Bendy Bone to represent a tentacle for example.

* Where is this all leading?

The next big step after this "direct sketch" method is to implement a "line of action" posing tool - where you basically draw a single line (or series of single lines) and the computer figures out what general pose you were trying to achieve. As crazy as it sounds, this is actually really possible! I know of at least 2 different ways of doing this (though the specifics - and the devil really is in the detail here - are not really widely known).

With these 3 techniques (Pose Sculpting, Direct Sketch, and Line of Action) in addition to the basic tools animators already have, we should be pretty good in terms of "getting the poses into the computer". The next target after that is to solve the "motion expression problem" (i.e. how can we more easily communicate our intentions of the shape and timing of motion we want to the computer?)  Sculpt+Sketch only give us pose-to-pose, but animation is not just poses, but timing and motion between  those poses. There are again a whole bunch of interesting things we can experiment with here, but one of the papers at Siggraph this year is IMO one of the more interesting/relevant directions to head in. Basically, if you've seen that paper and its demos, you really won't be asking for editable motion paths any more - just like nobody box-models organics anymore now that sculpt + retopo tech is powerful enough to be useful :)

And of course, there are also a whole bunch of other ways of constructing Pose Sculpt brushes that I haven't really gone into much detail about yet. All I'll say about this now is that a while back, I sat down and outlined at least 4-5 different classes of Pose Sculpt brushes that we could look into - even if some aren't that useful in the end, there are still a lot of interesting things we can investigate there!

So basically, the "grand master plan" if you will is to try and push the state of the art of character animation tools in this industry past the current plateau that we've been on for the past decade or two. Indeed, activity in this area has actually been picking up, if you know where to look.

* What are next (immediate) steps?
Taking a look at the nearer term picture, several smaller things will take place before the next update:
   - Set up tool settings for Pose Sketching settings (instead of having these in the operator)
   - Bendy Bone support
   - Improved bone detection method for Pose Sculpting (using armature bone bounding boxes)
   - Some alternative solvers for the Direct Sketch mode - for example, to be able to place a bunch of controls along a sketch stroke (e.g. for drawing eyebrow and mouth contours for example, where the controls are often standalone location controllers)
   - Stabilisation of the tools (to fix a few more of the quirks they currently have)

* How are these tools used?
   The following keymap is currently implemented:
   - Q/Shift-Q  = Adjust/Rotate
   - E                = Sketch Direct
   - X/Shift-X  = Rest to Restpose/Keyed
   - Y/Shift-Y  = Grab/Push
   - V/Shift-V  = Active brush
   - F/Shift-F   = Brush Size/Strength


  1. This is awesome! Thank you for this work. As an animator, the manipulation of motion graphs (as show in the mentioned siggraph video) is indeed very interesting, even more so than pose sculpting itself (I'm sceptical about euler transforms misbehaving in animations, or how well this works with complex rigs). Anyhow, great work, and please continue this development, I can't wait to try this stuff.

    1. Thanks for the feedback. Indeed, when I saw the video, I was quite inspired to see proof that one of the ideas I'd been thinking about is actually doable, that it can large work as I'd always envisioned.

      The problems with eulers is indeed something we need to look into more - I'm a little surprised just how much this seems to be a massive issue with current tools.

      As for complex rigs - It really depends a lot on *how* that complex rig was set up. Some rigs (like BlenRig) were set up to be used in a very different way, so of course they may end up feeling more than a little awkward to use. On the other hand, I get the feeling that a lot of the complex rigs we have now are because the basic tools we have are inadequate - because manipulating in FK is a pain, IK is useful in cases but needs to be heavily constrained, so a balance between these (with weird control structures, and more and more "extra bones") are needed to countercorrect for the problems with using either one directly.