Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
(SOLVED) "ERROR: Vertex has zero weights" when scaling softbody skinner
#1
Pregunta 
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.)


.gif   SoftBodyScaleIssue.gif (Size: 634.4 KB / Downloads: 58)

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();
Reply


Messages In This Thread
(SOLVED) "ERROR: Vertex has zero weights" when scaling softbody skinner - by DGuy01 - 11-03-2022, 03:16 PM