Breaking ragdoll constraints in H17.5
6004 15 2- Justin Courneya
- Member
- 18 posts
- Joined: Nov. 2015
- Offline
Hello
So i have a crowd system setup with my ragdoll setup and working. I am now trying to break the contraints.
Im familiar with breaking constraints using the sopsolver in dops but i cant seem to get it working with my rogdoll.
This is the part in the manual i am stuck at ….
“The ragdoll_constraints node has a modify_ragdoll_constraints SOP Solver network attached that you can use to modify the constraints as part of the simulation. This is where you can delete constraint lines to detach limbs.”
I took this as i should just connect my sopsolver to the 3rd input on the ragdoll_internal_constraints node in my crowd sim, i then get the warnings . . .
“ Unexpected subdata found: sopsolver1_ragdoll_internal_constraints_constraint_geo_4.” (on the constraint network)
and
“Warning
crowdobject - /obj/crowd_sim/sopsolver1: This data is attached to an unexpected parent data.” (On the sop solver)
Maybe im misssing where this “ modify_ragdoll_constraints SOP Solver network ” is mentioned in the manual.
So i have a crowd system setup with my ragdoll setup and working. I am now trying to break the contraints.
Im familiar with breaking constraints using the sopsolver in dops but i cant seem to get it working with my rogdoll.
This is the part in the manual i am stuck at ….
“The ragdoll_constraints node has a modify_ragdoll_constraints SOP Solver network attached that you can use to modify the constraints as part of the simulation. This is where you can delete constraint lines to detach limbs.”
I took this as i should just connect my sopsolver to the 3rd input on the ragdoll_internal_constraints node in my crowd sim, i then get the warnings . . .
“ Unexpected subdata found: sopsolver1_ragdoll_internal_constraints_constraint_geo_4.” (on the constraint network)
and
“Warning
crowdobject - /obj/crowd_sim/sopsolver1: This data is attached to an unexpected parent data.” (On the sop solver)
Maybe im misssing where this “ modify_ragdoll_constraints SOP Solver network ” is mentioned in the manual.
- cwhite
- Staff
- 747 posts
- Joined: Oct. 2012
- Offline
Those docs are a bit out of date - they'll be fixed for tomorrow's build.
The shelf tool now sets up different parameters on the Constraint Network DOP, so that the constraints are attached to the ConstraintGeometry subdata of the crowd object instead of creating a DOP Relationship. This means that you can just wire the SOP solver or wrangle into the main multisolver, and then change the Data Name parameter from Geometry to ConstraintGeometry to operate on the crowd object's constraints
The shelf tool now sets up different parameters on the Constraint Network DOP, so that the constraints are attached to the ConstraintGeometry subdata of the crowd object instead of creating a DOP Relationship. This means that you can just wire the SOP solver or wrangle into the main multisolver, and then change the Data Name parameter from Geometry to ConstraintGeometry to operate on the crowd object's constraints
- MarXindia
- Member
- 34 posts
- Joined: Sept. 2013
- Offline
cwhite
Those docs are a bit out of date - they'll be fixed for tomorrow's build.
The shelf tool now sets up different parameters on the Constraint Network DOP, so that the constraints are attached to the ConstraintGeometry subdata of the crowd object instead of creating a DOP Relationship. This means that you can just wire the SOP solver or wrangle into the main multisolver, and then change the Data Name parameter from Geometry to ConstraintGeometry to operate on the crowd object's constraints
Works for me thanks cwhite,between I am not able to find the angle attribute in my constraint network.Can you help?
- cwhite
- Staff
- 747 posts
- Joined: Oct. 2012
- Offline
- Justin Courneya
- Member
- 18 posts
- Joined: Nov. 2015
- Offline
- MarXindia
- Member
- 34 posts
- Joined: Sept. 2013
- Offline
cwhite
It may not appear until after the initial frame, since it's added by the Bullet solver at the end of the timestep. It should be a primitive attribute on the ConstraintGeometry subdata
My scene is simulated and I have the crowd on my view port. Please have a look at the attached image ,angle attribute doesn't seem to be in the primitive attributes list.Dont know where I am going wrong
PS: can`t find force and torque attributes either.
Edited by MarXindia - July 30, 2019 08:31:02
- cwhite
- Staff
- 747 posts
- Joined: Oct. 2012
- Offline
- MarXindia
- Member
- 34 posts
- Joined: Sept. 2013
- Offline
- oblong
- Member
- 28 posts
- Joined: Jan. 2010
- Offline
Looking at this last post - from 2015 - I am getting exact same issue now in Houdini 18.0 and wondering how i can sop solve breaking constraints. I manage to load the constraints inside my sopsolver from the Dops path, correctly. However setting groups to broken, or simply blasting the primitives away has no effect at all…. not what i expect.
I should say the crowd agents do turn to ragdoll and work fine. But why do the constraints not get deleted?
Anyone can explain why this does not work - is there a hidden trick to this for the case of crowds, over usual bullet rbd.
I should say the crowd agents do turn to ragdoll and work fine. But why do the constraints not get deleted?
Anyone can explain why this does not work - is there a hidden trick to this for the case of crowds, over usual bullet rbd.
- cwhite
- Staff
- 747 posts
- Joined: Oct. 2012
- Offline
Is your SOP solver operating on the crowd object's ConstraintGeometry subdata? (https://www.sidefx.com/forum/topic/68172/?page=1#post-289807)
- oblong
- Member
- 28 posts
- Joined: Jan. 2010
- Offline
Hi - thanks for replying.
I am referencing this subdata, yes. I have tried several possibly ways to make a difference but nothing works.
I attach a hip file that demonstrates the issue. Its very simple
my constraints are referenced like this: in the sop solver
/obj/crowd_sim:crowdobject/ConstraintGeometry
I am referencing this subdata, yes. I have tried several possibly ways to make a difference but nothing works.
I attach a hip file that demonstrates the issue. Its very simple
my constraints are referenced like this: in the sop solver
/obj/crowd_sim:crowdobject/ConstraintGeometry
Image Not Found
- cwhite
- Staff
- 747 posts
- Joined: Oct. 2012
- Offline
The SOP solver should be wired into the normal multisolver (same as the crowd / Bullet solver) since the constraint geometry is attached to the DOP object and can be modified while solving the object (see attached file)
The third input on the Constraint Network DOP is only used when there is a constraint relationship between multiple DOP objects, and adds warnings to the node otherwise.
The third input on the Constraint Network DOP is only used when there is a constraint relationship between multiple DOP objects, and adds warnings to the node otherwise.
- oblong
- Member
- 28 posts
- Joined: Jan. 2010
- Offline
Thanks- that is now clear. As i progress i realise crowds are not so similar to rbd.
My main task was to create procedural contraints, which i have working in my rbd version hip file.
i managed to create new poly lines with the joint name attribute on the point, and the name attribute of the outside object i am referencing. It does not carry through to outside the sopsolver.
So i tried to copy also the anchor_point and then also the primitive name attribute, which is the name of the agent to no result.
Could there be an example of how to do this via sopsolver? I have seen a demo of how to create constraints in sops prior to entering the dopnetwork, so i am missing something else again, which is probably obvious to you, but not to myself being unfamiliar with crowds.
My main task was to create procedural contraints, which i have working in my rbd version hip file.
i managed to create new poly lines with the joint name attribute on the point, and the name attribute of the outside object i am referencing. It does not carry through to outside the sopsolver.
So i tried to copy also the anchor_point and then also the primitive name attribute, which is the name of the agent to no result.
Could there be an example of how to do this via sopsolver? I have seen a demo of how to create constraints in sops prior to entering the dopnetwork, so i am missing something else again, which is probably obvious to you, but not to myself being unfamiliar with crowds.
- cwhite
- Staff
- 747 posts
- Joined: Oct. 2012
- Offline
Do you have an example file of your current progress? There is a helpcard example (“PinnedRagdolls”) in the documentation that creates constraints between an agent's joint and an external object, which should be fairly similar.
There aren't too many differences with how agent constraints work - the main difference is that they use a different anchor type (https://www.sidefx.com/docs/houdini18.0/nodes/dop/constraintnetwork#anchortypes) to allow attaching at an offset from a joint.
There aren't too many differences with how agent constraints work - the main difference is that they use a different anchor type (https://www.sidefx.com/docs/houdini18.0/nodes/dop/constraintnetwork#anchortypes) to allow attaching at an offset from a joint.
Edited by cwhite - Nov. 3, 2020 13:30:42
- oblong
- Member
- 28 posts
- Joined: Jan. 2010
- Offline
- oblong
- Member
- 28 posts
- Joined: Jan. 2010
- Offline
Hello - Im returning to this issue after a long break. I still cannot find any way to allow the restlength of the new constraint to update. I am creating some walking agents, and at the moment they switch to ragdoll state i want the new restlength to be saved , and fixed, so that the agents will not snap. I feel I have run out of new ideas on how to make this work.
-
- Quick Links