22-04-2022, 09:36 AM
(This post was last modified: 22-04-2022, 09:41 AM by josemendez.)
Hi,
Took a look at both projects. First thing that caught my attention me out is that the InverseMass for the dragged particle shown in the console was completely different in each project (Debug.Log at line 52 of your PhysicsAnimator): in 2019, the value was "1" and in 2021, "10" (which is the correct value, since the mass set in the rope path is 0.1 for all control points).
Inspecting mass values stored in the blueprint for each version, the very first particle in the rope in the 2019 version had incorrect inverse mass of 1:
Turns out, the blueprint generation code in your 2019 project uses thickness instead of mass for the first particle:
That's line 78 in ObiRopeBluepint.cs. It should use masses instead:
The weird part is that this line in the archived version of Obi 5.3 is correct. According to Git, this line hasn't been changed since 5.0. It's extremely unlikely it was changed by accident in your project, either. No idea how that ended up there tbh.
At least the behavior is now consistent in both versions: jitters in both . This is because the proportional/derivative controller you're using to calculate the force overshoots, you need to considerably reduce the frequency. Or, increase particle mass.
let me know if I can be of further help.
Took a look at both projects. First thing that caught my attention me out is that the InverseMass for the dragged particle shown in the console was completely different in each project (Debug.Log at line 52 of your PhysicsAnimator): in 2019, the value was "1" and in 2021, "10" (which is the correct value, since the mass set in the rope path is 0.1 for all control points).
Inspecting mass values stored in the blueprint for each version, the very first particle in the rope in the 2019 version had incorrect inverse mass of 1:
Turns out, the blueprint generation code in your 2019 project uses thickness instead of mass for the first particle:
That's line 78 in ObiRopeBluepint.cs. It should use masses instead:
Code:
particleInvMasses.Add(ObiUtils.MassToInvMass(path.masses.GetAtMu(path.Closed,mu)));
The weird part is that this line in the archived version of Obi 5.3 is correct. According to Git, this line hasn't been changed since 5.0. It's extremely unlikely it was changed by accident in your project, either. No idea how that ended up there tbh.
At least the behavior is now consistent in both versions: jitters in both . This is because the proportional/derivative controller you're using to calculate the force overshoots, you need to considerably reduce the frequency. Or, increase particle mass.
let me know if I can be of further help.