When changing the scale of a softbody skinner, I get the following error:
[Error] console:Mesh.SetBoneWeights() failed: Vertex [...] has zero weights.
The skinner appears fine in the editor, but when I press "Play", the skinner snaps back to it's original, unscaled size and the error appears (See attached GIF.)
SoftBodyScaleIssue.gif (Size: 634.4 KB / Downloads: 61)
My Obi Solver is set up as the RedDragon example, with the Softbody and Softbody skinner attached to different GameObjects.
BTW, if I set the skinner scale back to '1', re-bind and press "Play", the error message goes away.
Is this a bug or might I be doing something wrong?
Thanks,
David
Using Obi Softbody 6.4 with Unity 2020.3.30f1
BTW, here's the full stack trace:
[Error] console:Mesh.SetBoneWeights() failed: Vertex [...] has zero weights.
The skinner appears fine in the editor, but when I press "Play", the skinner snaps back to it's original, unscaled size and the error appears (See attached GIF.)
SoftBodyScaleIssue.gif (Size: 634.4 KB / Downloads: 61)
My Obi Solver is set up as the RedDragon example, with the Softbody and Softbody skinner attached to different GameObjects.
BTW, if I set the skinner scale back to '1', re-bind and press "Play", the error message goes away.
Is this a bug or might I be doing something wrong?
Thanks,
David
Using Obi Softbody 6.4 with Unity 2020.3.30f1
BTW, here's the full stack trace:
Code:
ObiSoftbodySkinner.SetBoneWeights() at /Obi/Scripts/Softbody/Rendering/ObiSoftbodySkinner.cs:386
384: {
385: if (m_BoneWeights != null && m_BoneWeights.count > 0)
-->386: m_SoftMesh.SetBoneWeights(m_BonesPerVertex.AsNativeArray<byte>(), m_BoneWeights.AsNativeArray<BoneWeight1>());
387: }
ObiSoftbodySkinner.Setup() at /Obi/Scripts/Softbody/Rendering/ObiSoftbodySkinner.cs:135
133: m_SoftMesh = Instantiate(m_Target.sharedMesh);
-->135: SetBoneWeights();
136: AppendBindposes();
137: AppendSoftBones();
ObiSoftbodySkinner.UpdateSoftBones() at /Obi/Scripts/Softbody/Rendering/ObiSoftbodySkinner.cs:218
216: }
217: else
-->218: Setup();
219: }
ObiActor.Interpolate() at /Obi/Scripts/Common/Actors/ObiActor.cs:1223
1222: if (OnInterpolate != null)
-->1223: OnInterpolate(this);
1224: }
ObiSoftbody.Interpolate() at /Obi/Scripts/Softbody/Actors/ObiSoftbody.cs:288
286: SetSelfCollisions(selfCollisions);
-->288: base.Interpolate();
289: }
ObiSolver.Interpolate() at /Obi/Scripts/Common/Solver/ObiSolver.cs:1641
1640: foreach (ObiActor actor in actors)
-->1641: actor.Interpolate();
1643: }
ObiUpdater.Interpolate() at /Obi/Scripts/Common/Updaters/ObiUpdater.cs:132
130: foreach (ObiSolver solver in solvers)
131: if (solver != null)
-->132: solver.Interpolate(stepDeltaTime, accumulatedTime);
133: }
134: }
ObiFixedUpdater.Update() at /Obi/Scripts/Common/Updaters/ObiFixedUpdater.cs:64
62: {
63: ObiProfiler.EnableProfiler();
-->64: Interpolate(Time.fixedDeltaTime, accumulatedTime);
65: ObiProfiler.DisableProfiler();