it’s probably a commonplace doubt but I’ve been wracking my brain about this problem for a while now: I’m trying to replicate this kinematic chain consisting of two elements A and B connected to a rigid body (not represented) and able to rotate only along their y-axis (red dots).
A third element C, controls the whole chain by moving back and forward.
The movement this chain should follow is illustrated in the following two images:
For design needs this is not a skeletal mesh, the three elements are static meshes and I am trying to replicate the whole kinematic chain using Physc Constraints placed in the rotation points (red dots).
I think I was able to reproduce the constraints of A and B respectively with the rigid body, of B to A and of A to C.
So I have a kinematic chain that based on the motion C manages to consistently move A and B.
The constraint that I cannot represent is the one between C and B.
Here is an example of the end result if I start moving C in my scene:
How can I constrain C so that its movements remain consistent with A but occur within the limits dictated by B?
Thanks a lot.
You need another constraint to limit the movement of B and C to linear.
PhysicConstrains.zip (1.2 MB)
Thanks for the reply…and the example progect, too. WOW!
As soon as i’m back on pc I’ll test it and let you know for sure.
@L1z4rD89 Okay I studied your design. you managed to unlock my brain, thanks.
I added the constraint you mentioned, then for me the real breakthrough was controlling the movement with Set Limit in the Linear Constraint as you do instead of moving the mesh around the scene as I was doing.
Now I have another doubt. You are controlling the chain using the UP position as the rest position and the constraint moves the whole chain from UP to DOWN and vice versa.
In my case the rest position is the DOWN one, so when I control the constraint the chain moves further down.
I cuold precalculate the UP position in my chain but it’s not an affordable solution on the long term.
I have tried reversing the constraint limit but it is not possible.
So how can I set the constraint to move UP?
@Miker91 Hey, I did it this way because the LinearMotor will move in the direction of the force, in this case downwards. You now have 2 options:
- Use the same UP position from the beginning and use the timeline with 20,0,20 instead of 0,20,0 (the A tube will fall down in the first frame)
- Use the DOWN position and set the LinearMotor strength to let it move upwards.
PhysicConstraints2.zip (1.4 MB)
@L1z4rD89 Setting the LinearMotor doeas exactly what i’m expeting. Thanks man, you have been of great help.
I’ve marked your reply as solution of this question.