units for Torque are incongruously small

Add Torque of 10,000 torque units on a 200 kg body for all steps of a second does almost nothing. presumed unit (to be consistent with other types in system) should be kgf.cm. However, it behaves more as if it’s gf.mm.

In general, documenting units for physics (for force impulses, angular velocity, etc) would be good, too. units I assume (based on expressed units in various edit fields) would be:

  • weight: kilograms
  • distance: centimeters
  • angles: degrees
  • force: N
  • torque: N.cm
  • linear velocity: cm/s
  • angular velocity: degrees/cm

I’d actually prefer radians and radians/sec, and meters, meters/sec, and N.m, but I’ll take any consistent set of units I can get :slight_smile:

Howdy jwatte,

Sorry about delay in a response to your question. We are currently looking into what that exact units are for torque. I have sent question off to a couple devs that may know what exact units are.

Thanks for your patience and I will let you know answer to your question as soon as I get response back.

Have a great day!

Hi jwatte,

AddTorque is specified in kg for mass, cm for distance, and rad/s for angular acceleration. In future we may add another function AddTorqueDegrees to make this more consistent with rest of engine, but I’m not sure how useful this would be since computing torque using angular acceleration requires knowledge of moment of inertia which is currently not exposed.

One thing to keep in mind with your example is geometry of your 200kg body will dictate moment of inertia. Here’s a reference page if you’re interested: http://en.wikipedia.org/wiki/List_of_moments_of_inertia

For example, if I have a 208kg cube which is 80cm x 80cm x 80cm associated moment of inertia will be 368058.469
This means that when I apply a torque of 10000 I should expect an angular acceleration of 10000/368058.469 rad/s = .027 rad/s or about 1.5 degrees / second.

If I setup a blueprint that applies this torque for 1 second and print out angular velocity I get an angular velocity of ~1.537 degrees / second.

Note that if I do this without sub-stepping turned on and with a very low frame-rate angular velocity may dip to around 1.2 degrees / second. This makes sense since without sub-stepping I’m essentially shortening amount of time torque is applied for.

I hope this helps clarify some of your concerns. Please let me know if you have any more questions!

UPDATE: Sorry just noticed I’m actually using a sphere collision not a box so moment of inertia for a box would be slightly different, but overall principal is same.

Can you clarify exactly how you calculated your moment of inertia in this example Ori? math doesn’t seem to add up.

Also, is there any news on when MOI might be exposed in API at all?

TIA.

volume doesn’t really matter here. If I add torque corresponding to 80 kgf at 40 cm from center, torque applied is 3200 kgfcm, or about 310 N.m. That’s a lot of torque! It is, in fact, in class with a high-end car engine or electric car motor.

Your argument seems to be that main problem here is short time of impulse. There may be something to that, but my experiment seems to indicate that applying this impulse as a continuous torque does not accelerate sphere as quickly as a car would accelerate – and sphere weighs about 1/25th of what a car does!

I didn’t calculate moment of inertia, this is done by PhysX. In example I wrote up I was originally using a cube, but moment of inertia is actually for a sphere. I don’t have this example any more so unfortunately I don’t have original numbers. We could certainly add a GetMOI, I think this would be useful. I don’t have any ETA on this right now though. I’ll add it to our backlog.

Much appreciated.

jwatte, did u mean?:

  • angular velocity: degrees/sec

Yup. (But see below – actual units are not what I assumed they were)

How can I convert kgfcm in N*m?

Hey Mattiamatrix,

1 kilogram-force centimeter = 0.0980665 newton meter. You can use a MathNode to create this conversion in editor, if you need.

I found this very old thread - I guess something could change in last 10 years, but “very small” torques are still in UE5.
Explanation is simple.

Torque unit in UE5 torque functions is 1/10000 Nm.

UE5 use cm (centimeter) as base measure for length, while SI use m (meter).

That implies that force unit in UE5 is not N (newton), but cN (centinewton) = 1/100N
Because 1N=1kg*1m/(s^2), co when we use cm as length unit we got cN as force.

Torque is forcedistance, in our case force is in cN, distance in cm.
So our unit of torque is kg
(cm^2)/(s^2).
cm is squared! - that is why we need to scale it by 10000 to have SI unit of Nm.