I used the muscle transfer recipe to successfully transfer the muscles, bones, proxy mesh and rig to my character. However, on the first frame of the muscle sim, the muscle's instantly turn to nans. I have stepped through every sop but am kind of at a loss. Any suggestions on where to look would be helpful. Thanks.
edit: When I disable collisions, the behavior goes away, but obviously that's not a valid workaround.
h21.0.470 build.
Otis / Otto muscle sim collapses on first frame
571 7 2-
- jarjarshaq
- Member
- 65 posts
- Joined: 2月 2016
- オフライン
-
- jarjarshaq
- Member
- 65 posts
- Joined: 2月 2016
- オフライン
-
- jarjarshaq
- Member
- 65 posts
- Joined: 2月 2016
- オフライン
-
- Liesbeth_Levick
- スタッフ
- 48 posts
- Joined: 6月 2024
- オフライン
-
- jarjarshaq
- Member
- 65 posts
- Joined: 2月 2016
- オフライン
-
- Liesbeth_Levick
- スタッフ
- 48 posts
- Joined: 6月 2024
- オフライン
-
- johner
- スタッフ
- 826 posts
- Joined: 7月 2006
- オフライン
We've seen cases where the geometry created by the Muscle Transfer process contains very, very small tetrahedra (on the order of 1e-15), which can lead the solver to become unstable with floating-point precision.
One thing to try is just delete any incoming tets below a certain threshold. They are so small they often make no difference in the appearance of the sim. Try a Primitive Wrangle with the following code:
And put this below both the incoming muscles and fascia setups, as in the green "remove_tiny_tets" nodes below:
EDIT: Actually all the outputs from the `muscle_setup` node should likely be re-routed through `remove_tiny_tets`.
One thing to try is just delete any incoming tets below a certain threshold. They are so small they often make no difference in the appearance of the sim. Try a Primitive Wrangle with the following code:
if(primintrinsic(0, "typename", @primnum) == "Tetrahedron" && primintrinsic(0, "measuredvolume", @primnum) < 1e-10) removeprim(geoself(), @primnum, 0);
And put this below both the incoming muscles and fascia setups, as in the green "remove_tiny_tets" nodes below:
EDIT: Actually all the outputs from the `muscle_setup` node should likely be re-routed through `remove_tiny_tets`.
Edited by johner - 2025年11月28日 17:43:00
-
- jarjarshaq
- Member
- 65 posts
- Joined: 2月 2016
- オフライン
-
- Quick Links


