Marcus Ottosson talked about the Ragdoll Dynamics' fantastic tool for Maya called Ragdoll, a real-time physics solver that works on transforms, discussed the development process, and explained how it helps artists.
In case you missed it
You may find these articles interesting
Hello, my name is Marcus and I developed a Maya plug-in called Ragdoll Dynamics.
I finished my studies in Sweden in 2006, in the final cohort to ever study in the now-defunct 3D animation school “School of Future Animation”, just as 3D was starting to make an appearance in schools. Along the way to where I’m sitting right at this moment, I animated characters for a few years, creature effects for another few years, and developed software for a few other years. I’ve picked up skills from some of my favorite artists; from character animation at Meindbender in Sweden – with clients like Cartoon Network – to creature effects at Framestore in London – on shows Gravity and Doctor Strange – to pipeline development at Anima in Tokyo – developing Allzpark – to physics simulation and programming from my previous venture with Natural Motion developers – creators of the fabled (but sadly defunct) Euphoria and Endorphin software.
Developing Ragdoll Dynamics
I’ve been wanting a tool like this to exist since I cleared the initial hurdles of learning how to animate characters. When it became obvious that yes, it’s possible to achieve great-looking animation but that it was going to take time. My journey towards actually making it myself was initiated by my transition from Character Animation to Creature FX; from working with purely keyframe animation, to simulating with keyframes as an indirect guide. It was there I learned how useful simulation can be to what I’ve been doing “freehand” all this time, but I also learned how complex it was. So I set out to learn Python in an effort to simplify nCloth and make it something an animator could use alongside keyframes as I had done.
I spent a few weeks on that and I ended up with some pretty cool results!
But, it was not enough. It was still much too complex, performance was also nowhere near what I wanted and the level of control just wasn’t there. nCloth wasn’t the ideal choice for the simulation of a skeleton. So here began my journey to transition once more from Creature FX to Software Development, a journey that would take me roughly 6 years.
In that time, I developed Pyblish, Avalon, and Allzpark, along with Qt.py, cmdx, and a few others. All of which are used by dozens to hundreds of studios today, and Pyblish winning the “Best Tool Award” at DigiPro 2020. These projects gave me a good foundation upon which to build more sophisticated software, like Ragdoll. I early got exposed to things that C++ developers normally encounter later in their careers, such as testing and continuous integration, overcoming platform differences, and designing graphical user interfaces. I learned about what kind of performance could be expected out of this one language and where the bottlenecks were.
Animators use Ragdoll to steer a simulation, using traditional animation as a guide. Given some pose or poses, Ragdoll enables one or more (or all!) controls in a character rig to match your animation as closely as physically possible. Limited by contacts with the self, forces, the environment, and constraints put on things like elbows and knees to keep them from bending the wrong way. Animators can use it for simple things like tails and ears, or for full-body simulations like an actual “ragdoll” – that kind of results you see in games whenever characters get punched or shot.
Complex Tasks in Development
You’d think that the maths of non-linear dynamics and parallel processing in C++ was hard, but by far the hardest parts of this project– measured by where the most time is actually spent and where most of my hair went missing – has been, and continues to be:
1) Iterating on an animator-friendly workflow for something that is fundamentally a heavily complex topic and,
2) Explaining how to use it. I think of iterating on workflow similar to how I expect game designers think of iterating their gameplay loop. Knowing what works and what doesn’t is really hard to do on paper or in code; you really have to build it and experience it to have any idea of whether an idea works, and by then you’ve already spent that time.
These two are the most important challenges of this field I think, which is also why I am in a good position to try and tackle it, as my roots stem from character animation.
So in more ways than one is I scratching my own itch and am delighted to find that others have that same itch!
Starting to Use Ragdoll
Apart from a robust tool, the most important aspect of Ragdoll is the learning material. Time is split 50/50 between developing and teaching Ragdoll, through videos and documentation. These take a tremendous amount of time and effort. The end goal is for the least technical artist to be able to start being productive with Ragdoll in minutes; each aspect of the tool is designed to be as aligned with the expectations of the animator as possible. Installation is one double-click, with no copying of files or setting up environment variables. The UI is encapsulated in a regular menu, much like all other utilities used during animation. Menu items have an options window that looks and behaves just like other option windows. For anyone with experience with nHair or Bullet inside of Maya, the underlying node network looks and acts very much the same.
Eventually, Ragdoll will find its way into Blender, 3ds Max, standalone, and web. All of the workflow and export/import functionality is being built to facilitate interoperability with these alternatives, the web being a sharing and prototyping platform for physics creatures and animations. It would be safe to say that the Ragdoll of today is the mere beginnings of a much greater vision of how to solve the character animation problem.
Usage by Studios
Ragdoll has been in private early access since October 2020, when the bare essentials were in place and none but the most technical of users following an exact recipe were able to use it. The brave souls who ventured alongside me early on use Ragdoll for overlapping motion – like tails of various sorts.
Others use it to adapt motion capture to new environments, like standing on a boat on heavy seas. The full-body dynamics use-cases are the most interesting to me personally, like the ones on the landing website where the whole character is simulated (a true “ragdoll”). One of the more interesting use-cases I’ve seen so far is sea-creatures that need to look realistic when animated underwater. A really hard task to pull off without some kind of simulation involved; on-par with animation in zero-gravity.
Business Side of Things
Outside of film and games is a different world requiring its own marketing approach; like if you were to try and invent the next ketchup or new headphones. Even if you were objectively 10-100x better it would hardly matter because there is so much noise out there. So your efforts would be spent screaming louder than everyone else.
Film and games are different. Here, if there is even a hint of anything new being built, you can’t keep people from finding out. Because we’re hungry. Because unlike ketchup and headphones we know that what exists currently can be improved, sometimes by a huge margin. That there is tons of innovation out there, waiting to be discovered. So we listen for it.
But it’s true that even in film, most new tools are incremental improvements or subtle alternatives to existing tools. It’s a safer investment and easier pitch. It makes them easy to compare and contrast, but also difficult to distinguish. Got a new renderer, running on the GPU with very little flicker? Join the club. Got a new cloth solver, incrementally faster than nCloth? Join the other club. But what if you got a way for animators to make ragdolls in Maya? Now you make the club.
LinkedIn does a good job exposing the right people to your posts, and later showing you what industries viewers were in. Since the beginning it’s been a 60-80% proportion of character animators, the exact audience I’m looking for. Later I’d like to approach a wider audience – especially newcomers to the field – and at that point, I expect to need a slight shift from LinkedIn to YouTube, from the professional audience to the casual audience. In its current state, Ragdoll can augment the professional animator, make their work stronger and quicker, but what the world really needs is a more approachable barrier-to-entry for new animators and that’s where things are going.
You may find these articles interesting