- Home /
Change Inertia of rigidbody (Ixy)
Hi, I'm simulating the dynamics of an aircraft and I need to specify the inertia values (to get the correct rotation rates)
I have Ixx, Iyy and Izz which I assume are the rigidbody.inertiaTensor.x, ...y and .z respectively.
However, I also need to set the cross moment of inertia Ixy.
Does anybody know how this can be done?
Answer by Bunny83 · Jun 09, 2018 at 07:19 PM
This can't be done. Unity specifies the moment of inertia as a diagonal tensor where each value specifes the moment of inertia around one of the principal axes. The actual axes system is rotated by the inertiaTensorRotation quaterion. Every moment of inertia should be representable that way. Unity does not use an actual 3x3 tensor so you can't set it's members. Read the last sentence of the introduction
Note that Unity's physics system does not preserve angular momentum but only angular velocity. So there's no gyration like shown at the end of this video
Does that mean I have to calculate the principle axes and order rotation about those axes ins$$anonymous$$d of the geometric x, y, z? Or is that what unity is doing under the hood? I'm not sure I've understood the scripting reference.
Well, in most cases objects are usually oriented along the main geometric axes, so they simply match the principal axes. Though if your shape does not match those axes you would need to calculate the rotation of your principal axes and the inertia around those yourself.
Unity already calculates the inertia tensor automatically based on the mass and all compound colliders. However if you want to set it yourself you have to calculate it yourself. It's not clear how Unity does actually calculate the combined diagonal tensor and the rotation. Though since the tensor is basically a symetric matrix you should be able to deter$$anonymous$$e the principal axis. $$anonymous$$eep in $$anonymous$$d that rotating the inertia tensor works a bit different from rotating a matrix.
This is generally a good source for common moments of inertia of various shapes.
Your answer
Follow this Question
Related Questions
How to decrease inertia for a rolling ball 1 Answer
Inconsistent gravity/random forces/solver problem? (forum crosspost) 0 Answers
Connect rigidbody to another moving rigidbody to simulate a hanging weight 0 Answers
Disable inertia tensor calculations on rigidbody? 0 Answers
Why is my object tilting when moving? 2 Answers