Jump to content
Sign in to follow this  

Dynamic Character behaviors setup using Xpresso...possible ?

Recommended Posts


like I said in the title, I would like to know if there is any possibility to make a dynamic character behavior setup using Xpresso, that can "react" to the "surrounding" in a fully procedural way.

Say you have a human character rigged and animated using Cmotion, or a robot using connectors, hinges, motors and stuff to animate it's movements without key-frames and THEN have them react to say; balls hitting them while walking, they get hit, fall back a little then recover and continue their walk and maintaining their balance as much as possible.


A few examples of what i'm trying to explain:


- Euphoria Physics Engine


And the closest thing i could find similar to what i was thinking, is "Fun With Ragdolls" made by "Jadon Barnes" where he explained in one of his videos about the process behind making them.


At a certain time in the video he shows up this MASSIVE Xpresso setup he made.




I'm not sure if that setup includes "behaviors" like the ones shown in the Euphoria physics engine, but i think it's a start ?


Anyway, is there any Xpresso experts (or even python/C++ pluging devs) who can think of anything remotely similar or even the most basic primitive kind of behavior ? (that is if it is even possible as a functionality inside C4D).


Thanks in advance for your time.

Share this post

Link to post

Easiest solution here is to have to versions of the same rig. One that is completely dynamic and the other which is fully controllable. Then you can utilize 3rd rig where you mix between the two. Cheap and easy way to do ragdoll dynamics on characters is to create use mesh deformer. Simply create a basic mesh around your character and use dynamics on it then apply that deformer to your character mesh

Share this post

Link to post
  • Topic Author
  • Author of the topic Posted

    Not sure if I explained correctly what i was looking for, the ragdoll physics themselves can be done in many different way, i will put a few lines here and point toward which part I'm still confused about:

    a character is fully rigged and animated using Cmotion, or other procedural technique.

    1) The character is doing a simple walk cycle following a given path.

    2) The character is hit by a ball (dynamics kick in) disturbing his balance.

    3) The character recovers from the ball hit and continue his walk (or he try avoiding the ball in the first place or any other reaction before or after getting hit).


    It's this 3) point that still confuse me, how is it possible to translate such behavior with Xpresso nodes.


    Like you add a few nodes to the character object telling him:

    - if object "X" touch you, stand back and continue what you were doing.

    - if object "X" touch you, try to keep your balance so you don't fall down then continue what you were doing.

    - if object "X" is in a certain distance from you, avoid it and continue what you were doing.


    Generally once a character gets hit, Dynamics kicks in and he lay flat on the floor and stay like that until something else hit him and activates dynamics again, feels like once he gets hit first time, he becomes an empty shell that is waiting for the next object to interact with, while what i'm looking for is more of a procedural "behavior" system, that makes the character "alive" so to speak, he gets hit, he respond to that with an animation and try to go back to what he was doing before getting hit.


    I think i'm asking for too much from C4D/Xpresso, when most ppl would say, use a game engine or something.

    Share this post

    Link to post

    That is why I mention "receiver" rig. The idea is to mix from two separate sources. One is dynamics, second is some other source (cmotion, keyframes). With Xpresso you can use mix nodes to define how much of which behavior you will actually send to receiver rig. Once combined you can do a lot. With that being said I think you are actually looking for motion clips....

    Share this post

    Link to post

    Hi Hrvoje, I like your idea of the receiver rig.  Would you use an inheritance tag to transfer the ragdoll data to the rig?  What nodes would you recommend using in Xpresso to mix behaviors?  

    Share this post

    Link to post

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Reply to this topic...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    Sign in to follow this  

    • Recently Browsing   0 members

      No registered users viewing this page.

    • Create New...


    Dear members, we are aware of few more bugs that are still present withing the theme.We just wanted to let you know that we are working to fix them as soon as possible.


    Please be aware that we are manually approving all new registrations, due to spam prevention. Please be patient in case you cannot login right away, we will approve you within 12h or less if we decide you are not potential spammer. 


    Thanks for understanding! :cowboypistol: