Archive 17/01/2023.

Is there a way to do local Torque force?

evolgames

I have a helicopter with a rigidbody that I hover with upward force and steer and pitch with torque. However, the problem I get is that once you have turned, if you adjust the pitch it becomes a roll. I prefer torque forces here because it gives nice realistic motion. But is there any way I can make the Torque’s vector direction local to itself? Or do I need more nodes or something?
It’s weird because ApplyForce works fine if I multiply the rotation of the body by my up vector, resulting in it “lifting” wherever its top is. This allows you to lean forward to travel forward, like a real helicopter. Is there an Urho function for what I need to do?

Modanung

Could you show the code where you apply the torque and forces?

evolgames

Yeah sure, it’s simply:

self.hullBody:ApplyTorque(Vector3(self.curAccel, 0, 0) * self.tiltForce)
self.hullBody:ApplyTorque(Vector3(0, self.steering, 0) * self.turnForce)
Modanung

Try using something like:

self:GetNode():GetRight() * self.curAccel * self.tiltForce
self:GetNode():GetUp()    * self.steering * self.turnForce

…as arguments.

evolgames

Hm no, that looks like it does the same thing

Modanung

Exactly the same? :confused:

Is self:GetNode() the same as self.hullBody:GetNode()?

evolgames

Yeah the hullbody rigidbody is a component of self.node. Switching to self.hullBody:GetNode() produces the same result

Modanung

Got repo?

evolgames

Oh no it’s all local in my project folder