Menu

Joints / Ragdoll Support?

Help
masd
2007-06-21
2013-04-22
  • masd

    masd - 2007-06-21

    Hi,

    Is there any support for applying joints between the bones in max using this plugin. Just browsing through the ageia doc, i came across the "Loading PML Files" training program and it shows a screenshot of the plugin with buttons for Joint Editor and Bone Hulls. Can you please confirm if these options are available in this version of plugin?

    Thanks a lot.

     
    • Markus Storm

      Markus Storm - 2007-06-21

      There is an object type called "D6Joint", which can be found under "Helpers"/"AGEIA PhysX", this is a general joint object that can be used for modelling any type of joint. There is currently no support for taking an existing bones setup and turning it into a ragdoll.

      (I am working on user documentation, but it won't be available for some time yet)

       
    • masd

      masd - 2007-06-21

      Thanks for the reply.

      I downloaded the plugin and installed in the max plugin directory along with scripts but i cant see any joint related functionality in the PhysX Utility Panel. Can you point me to some help/article how to properly use the plugin? Am i missing something?

       
    • masd

      masd - 2007-06-21

      Also, my ultimate goal is to implement ragdoll using PhysX, can you suggest what's the best way to go about it?

       
      • Markus Storm

        Markus Storm - 2007-06-21

        I haven't built a ragdoll myself, but the way I would try to do it would be to use simple geometries as far as possible. E.g. a sphere for the head might prove enough, instead of using a convex geometry that "better" fit the form of the head. This is to make sure that the simulation is made as efficient as possible. Using capsules for arms and legs is also good. Perhaps you will only end up using a convex geometry for the torus.

        There is a joint object, not in the PhysX tool menu, but in the helpers menu, under the "AGEIA PhysX" dropdown view.

        You also need to make sure that the different parts of the ragdoll don't interact and disturb each other too much, e.g. the upper part of the arm should probably not be configured to collide with the torus. If you are building the character sparse enough, this should be handled by the joints (if you disable collision between pairs of jointed objects).
        There are features missing at the moment though, that would make it possible to better define the interactions that should take part between actors, I will try and do something about that soon.

         
    • avdoot

      avdoot - 2007-07-05

      hi all, i am using physx plugin for the very first time, i want to perform a ragdol stunt on my character can anyone brief me the whole procedure?..i am using it wth 3ds max 9.

       
    • avdoot

      avdoot - 2007-07-05

      also if u hv any user reference or help available for the PX joint helper..

      thank you...

       
      • Markus Storm

        Markus Storm - 2007-07-06

        The help isn't finished yet. I am working on it when there is time left, but that doesn't happen often enough. Please read through this discussion and see the suggestions I wrote there.

        A quick guide:
        * The joint object joints two objects together, both need to be defined as PhysX actors.
        * When creating the joint object, you drag with the mouse to specify the freedom of movement along different axes (you can change this via the modify tab later if you want to tweak the settings).
        * When the joint has been created, you need to go to the modify tab and specify the both bodies (the PhysX actors)

        That is about it, the rest is tweaking and choosing a "good" setup for your character. There is information in the PhysX documentation about the different settings you can make on the D6 joint.

         
        • avdoot

          avdoot - 2007-07-06

          thanks for that quick guide, that helped a lot. i had done some experiments wth the simple human structure made up of capsules the joints r acting well but there is a slight problem wth the simulation these r;

          - when i run the simulation the character doesnt falling on to the ground its floating a bit up from the ground..i hv done some experiment wth the phys x sdk parameters but result wasnt gud..also the character is not coming straight on the ground..its behaving like a kite..

          - i hv set the px joints non breakable but when the simulation starts one of its shoulder detach from the body..

          i am an artist so if u can guide me through this..

          thank you..

           
          • Markus Storm

            Markus Storm - 2007-07-06

            It is hard to say exactly what your problem is, but I will make a few guesses, that you can test:

            You say that if you make the joints non-breakable one of the shoulders detach from the body? This sounds to me as if you have specified the wrong pair of actors for one of the joints. Please go through all joints and check to see that they connect the correct PhysX actors (set a descriptive name for each part of the body, like "right leg", and it will be easier to see if there is an error in the joint setup).

            You can also make sure that all the parts of the character are specified as dynamic. Try the following:
            1. Remove all objects from the PhysX scene (you don't need to do this if you just opened the scene)
            2. Select only the body parts of the character and add those to the simulation
            3. Simulate continously and make sure that all the parts of the body fall down (this is to make sure that all the parts are dynamic). If some parts stay in the air, then they need to be changed to dynamic

            As I said, there can be many reasons why the character behaves badly. Perhaps you have added joints that are counter-acting each other, so that they make the simulation unstable. Try to add a few parts of the character at a time, and then simulating. That could help you debug which of the joints is the one that gives you problems.

            Yet another thing to think of, is that you should not use scaling in objects that are used for PhysX simulation, since that is not supported by PhysX. I am trying to handle it by resizing the objects, but that code is not yet in the code repository, as I am having some problems with it.

             
    • avdoot

      avdoot - 2007-07-13

      thanks for the help Markus...but there r still some problems if u can help..these r;

      - is it important to take real world sizes..n whats the unit scale phys x is using?..currently i am using real world sizes..my character is 2 m long.

      - does phys x supports biped?..coz i am using it with biped n skinned mesh (classic structure-n i setted up the physics representation as box)..n its giving weird results as compared to the simple capsule structure i used for testing purposes.

      - also if u can help me wth these parameters- PXJOINT PARAMETERS:projection, projection dist n angle, gearing(comes under collision), n translation (locked, limited, free), PHYS X SDK PARAMETERS: skin width, sleep velo (lin n ang), max ang velo.

      thank you.

      avdoot.

       
      • Markus Storm

        Markus Storm - 2007-07-13

        It is best if you use a meter scale, otherwise you need to start changing some parameters. But strictly speaking, the scale doesn't matter, as long as you adjust the gravity, sleep thresholds, skin width and possibly some other parameters, accordingly.

        There is no support in the plugin to work with the biped, but I am not sure what it is that you have built around the biped. Perhaps you are using the same objects in some way and simulating the PhysX objects makes you violate the biped constraints? (I am just guessing here). Try to build a similar-looking character using shapes and see if it behaves good. Triangle meshes should not be used, but you can create convex geometries with the tool found in the PhysX control panel.

        For the parameters, please read the SDK documentation on D6 joints, and PhysX SDK parameter. It is explained there.

         
    • avdoot

      avdoot - 2007-07-13

      yeah i am using scale in meters. n i am using fully  rigged n skinned character wht biped, the character is for a game whose mesh is already triangulated. also the joints r not working well wth biped...suggest me something.

      thank you.

       
      • Markus Storm

        Markus Storm - 2007-07-13

        I will need you to explain better what "not working well" means for you. I can't keep guessing solutions when I don't really know what your problem is. Otherwise, please see my previous reply, where I made some suggestions. Perhaps your joint setup is bad? Perhaps you need to simulate more iterations on the joints?

        /Markus

         
    • Pranav A Tekchand

      I intend to look in to this real soon, but I'll post a question just in case you manage to answer before that. I can't seem to remember whether I read something like this on the forums/docs/changelog that the d6 was to replace the other joints (maybe it was just that the plugin supports it and you can use it instead). I imagine that the special case spherical and revolute might be *slightly* faster since they'd not bother with checking if some of the degrees are locked, based on that do(n't do) something. I noticed that there is a px_joint.ms, and it seems like the its stuff from the post "Joints / Ragdoll Support?" https://sourceforge.net/forum/forum.php?thread_id=1760389&forum_id=673850 which mentions the "Loading PML Files". This seems old and possibly unusable - so are there any plans to add/update the 'special case' joints to the plugin any time soon?

       
    • Pranav A Tekchand

      So I looked in to it a bit more.
      px_joint.ms (not used by px_main.ms (in 2.8.0)), got me the names of the (max) user properties which need to be set and px_base.ms (which is used) has px_addjoint function. I set up a script to create joints and ran into pxaddjoint:  The node Biped Head has no PhysX SDK actor associated with it, can't add a joint to it. (Biped Head is a PhysX capsule, created in script and works/exports fine with my D6 code.)
      Turns out that PxFunctions::pxaddjoint has an NxD6JointDesc, so this isn't what I'm looking for anyway. Which brings me back to:
      Are there any plans to add the 'special case' joints to the plugin any time soon? 

       
    • Pranav A Tekchand

      So I looked in to it a bit more.
      px_joint.ms (not used by px_main.ms (in 2.8.0)), got me the names of the (max) user properties which need to be set and px_base.ms (which is used) has px_addjoint function. I set up a script to create joints and ran into pxaddjoint:  The node Biped Head has no PhysX SDK actor associated with it, can't add a joint to it. (Biped Head is a PhysX capsule, created in script and works/exports fine with my D6 code.)
      Turns out that PxFunctions::pxaddjoint has an NxD6JointDesc, so this isn't what I'm looking for anyway. Which brings me back to:
      Are there any plans to add the 'special case' joints to the plugin any time soon?
      (I'm going to post this message under PhysX Tools on http://devsupport.nvidia.com/ics/support/default.asp?deptID=1949 or http://developer.nvidia.com/forums/index.php?showforum=16 since those forums are more active.)

       
    • Jun Ma

      Jun Ma - 2008-05-29

      Hi Pranav:

      Currently I am the engineer supporting the project. I understand that you are eager to use a mature solution to meet your requirement to build Ragdoll easily. But, sorry. I have to say you have to wait for a while for this. We are considering to support it. But it is not that quick in weeks.

       
    • Stan Melax

      Stan Melax - 2009-07-31

      Hmmm,
      There is/was the ragdoll .ms file that is still in the repository.  However this file doesn't get included in the package that is up on the nvidia site.  
      What this did was auto-generate tight fitting convex rigid bodies for each bone by sampling a skinned mesh.  i.e. the same thing that John Ratcliff did in his Rocket demo.  Also there was code that would use the animation keys to compute joint axis and limits.  

      I dont recall if it ever worked with biped (character studio), but it works with regular max bone system and the skin modifier.  I pulled the file from here and with some small changes I was able to get the convex bone hulls working.   
      Didn't have time to look into any of the other functionality.

       

Log in to post a comment.

Auth0 Logo