- Home /
How to create compound rigidbodies?
I would like to reach the effect of for example putting/spawning a stone on the back of a truck. I'd like to behave it realistically. Searched almost everywhere, couldn't find an answer... Parenting two rigidbodies or turning ON isKinematic on the child doesn't do the trick. I also can't use altering the transforms, nor MovePosition. I really hope there's a reasonable solution out there somewhere.. Pleeease helppp!
Answer by skovacs1 · Dec 15, 2010 at 06:31 PM
Did you consider reading the documentation on physics or rigidbodies? They clearly state:
You should never have a parent and child rigidbody together
Consider what you want to do. You have a rock on the back of a truck, but what keeps the rock on the back of the truck? Friction which cannot exist without the forces of gravity, the materials' surfaces' effect on friction, and collision.
- Without the force of gravity pulling your rock down onto your truck bed, there would be no collision and no friction. When your truck moves, the rock would just float there without any forces acting upon it. Note that gravity is dependent upon mass.
- With a material that has little to no friction (like ice), even with gravity, your rock will just slide right off.
- Even with friction and gravity, unless your object is of an extreme density and/or your fiction is to the point of being glued down, rocks won't sit in the truck for long, hence all the rock chips in peoples' windshields. Depending on your setup, you may need something to hold the object on the truck, be it the tailgate or some straps in case it slides around.
What does this mean? To behave somewhat realistically:
- Your rock rigidbody needs gravity and the mass should be set appropriately.
- Add approrpiate physic materials to your colliders
- Ensure that your colliders and the rest of your scene are setup correctly.
There are all sorts of things that aren't properly emulated within physics simulation, like aerodynamics and buoyancy for example so it will never be perfectly realistic.
If you don't care how the rock behaves once it is in the truck, you could always add code to remove the rigidbody and parent the truck to the rock OnCollision if you like.
$$anonymous$$y seeing on this problem is unsolvable without a trick is strengthened. The level of realism is a misunderstanding. I don't want the stone to move an inch but to pull the truck's butt sideways in tight corners. Or: couldn't I make a see-saw with totally fixed parts, with seats on each side via runtime changeable masses?
You want the rock to not move, but the rear of the truck to swing out in tight turns? Ignoring the flaws with the realism of that, to get the physics engine to generate that behaviour may require a more complex setup, but the one you describe seems incorrect as mass isn't really changing per side. Essentially, you'll want shift your centerOf$$anonymous$$ass and be very picky about how and where you apply forces. If your truck is kinematic, then you'd likely have to fake this faux inertia yourself.
Answer by Iamdain · Oct 05, 2012 at 02:57 PM
@Gil the short answer I believe is that the way to go about what you want to do is to:
a) Increase the mass of the truck object itself each time an object is added b) Change the centre of mass of the truck (including rocks) by hand to account for the new weight distribution
Part b will require understanding centre of mass calculations for discreet objects, see centre of mass for particles here http://hyperphysics.phy-astr.gsu.edu/hbase/cm.html
Might be confusing if you're not familiar with physics concepts but Physx doesn't have any way to 'weld' or compound rigidbodies together in a way that preserves their respective mass distributions to my knowledge...
It does create combined objects out of child colliders - but those items are not going to be physically interacting with each other. For example a stone applied to the truck could be added as a new collider and the mass of the truck increased as you suggest - this would automatically move the centre of gravity etc.
Your answer
Follow this Question
Related Questions
How performance-intensive are rigidbodies? 2 Answers
Attaching Rigidbody breaks gravity 1 Answer
Inconsistent gravity/random forces/solver problem? (forum crosspost) 0 Answers
Simulating wheels without a wheel collider? 1 Answer
How to stop Rigidbody characters from sliding off rigidbody platforms? 0 Answers