3d joints (under bullet): Can a constraint function if only one node is configured in it?

dotteddotted Posts: 33Member
in 3D

I tried it on a rigid body, with a default 6dof. Node_a is locked in place as expected, but i had wondered if manipulating the node's global transform would then apply the constraints as if the joint was setup with a rigid-body in kinematic mode in node_a and rigid-body in node_b.

In short is it possible to have joint constraints operate with only one node? If so, what is the right setup?

Unity's constraints operate this way.


Tags :

Best Answer

  • dotteddotted Posts: 33
    edited June 30 Accepted Answer

    Not the issue exactly.

    I've done a cursory run through Bullet's own documentation, and reviewed some of Godot's module source for it. The configuration of bullet's joint differs when node_b() is absent or not. When present, node-b's transform is massaged along with node-a's and passed to the bullet constraint constructor.

    Somewhere there was mention that if node-b is not present that the constraint 'operates as if there was a static body in place' or something to that effect and it is the case as a normal (dynamic) rigid body as node a will free in place with a default 6dof, this absolutely works but i had thought that manipulating the joint's global transform would effect the constraint's orientation, as if there was a kinematic rigid body paired with it was being manipulated.

    but nope, the constraint's transform is set in stone when only node_a() is present

    The high order bit was I was hoping not to have to have a kinematic specifically to manipulate the placement and orientation of the constraint reference frame itself.

    --edit--
    As a note for anyone who might be trying to figure out where the pivot of a joint is defined, the relations between the rigid-body/ies and the pivot joint are defined when node_a/node_b are set on the joint itself.

    There after the only way to manipulate the relative orientation of the bodies or a body is by manipulating the constraint parameters (linear and angular axis properties) or manipulating one of the bodies (via forces if you want to keep the physics-solver happiest) or (more or less and again physics-solver friendly) whatever you want by manipulating a rigid-body set to kinematic (with in reason)

Answers

  • MegalomaniakMegalomaniak Posts: 2,649Admin

    Not sure since I haven't experimented with them but one thought that occurs is that maybe you can use spatial or position3D nodes in your hierarchy so you won't need visible nodes?

  • dotteddotted Posts: 33Member
    edited June 30 Accepted Answer

    Not the issue exactly.

    I've done a cursory run through Bullet's own documentation, and reviewed some of Godot's module source for it. The configuration of bullet's joint differs when node_b() is absent or not. When present, node-b's transform is massaged along with node-a's and passed to the bullet constraint constructor.

    Somewhere there was mention that if node-b is not present that the constraint 'operates as if there was a static body in place' or something to that effect and it is the case as a normal (dynamic) rigid body as node a will free in place with a default 6dof, this absolutely works but i had thought that manipulating the joint's global transform would effect the constraint's orientation, as if there was a kinematic rigid body paired with it was being manipulated.

    but nope, the constraint's transform is set in stone when only node_a() is present

    The high order bit was I was hoping not to have to have a kinematic specifically to manipulate the placement and orientation of the constraint reference frame itself.

    --edit--
    As a note for anyone who might be trying to figure out where the pivot of a joint is defined, the relations between the rigid-body/ies and the pivot joint are defined when node_a/node_b are set on the joint itself.

    There after the only way to manipulate the relative orientation of the bodies or a body is by manipulating the constraint parameters (linear and angular axis properties) or manipulating one of the bodies (via forces if you want to keep the physics-solver happiest) or (more or less and again physics-solver friendly) whatever you want by manipulating a rigid-body set to kinematic (with in reason)

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file