Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Bug / Crash  Invalid Skinmap in Cloth Renderer
#1
Hey, 

I get this error message:
Invalid skinmap in cloth renderer (Obi Tearable Cloth). Make sure the skinmap is not null and suitable for the mesh and cloth blueprint being used.

I cannot use the tearable cloth, this error also occurs in the TearableCloth demo scene.

Unity 6.2 URP
Obi Cloth 7.1 (latest version)

Thanks!
Reply
#2
(24-10-2025, 01:26 PM)jaripam Wrote: Hey, 

I get this error message:
Invalid skinmap in cloth renderer (Obi Tearable Cloth). Make sure the skinmap is not null and suitable for the mesh and cloth blueprint being used.

I cannot use the tearable cloth, this error also occurs in the TearableCloth demo scene.

Unity 6.2 URP
Obi Cloth 7.1 (latest version)

Thanks!

Hi,

This means the skinmap data you're using has been generated for a mesh other than what the cloth blueprint is using, or is stale. Try re-generating the cloth blueprint.

kind regards,
Reply
#3
(28-10-2025, 08:52 AM)josemendez Wrote: Hi,

This means the skinmap data you're using has been generated for a mesh other than what the cloth blueprint is using, or is stale. Try re-generating the cloth blueprint.

kind regards,

Hey,

I can't get it to work.

I tried re-generating the existing blueprint, also I tried creating a new one, always making sure the "Corners" particle group exists as well.
But the same error occurs.

Thanks!
Reply
#4
(31-10-2025, 09:55 AM)jaripam Wrote: Hey,

I can't get it to work.

I tried re-generating the existing blueprint, also I tried creating a new one,

Thanks!

Hi,

I'm unable to reproduce this. Could you share a scene/blueprint that exhibits this issue, by sending them to support(at)virtualmethodstudio.com?

thanks!

(31-10-2025, 09:55 AM)jaripam Wrote: always making sure the "Corners" particle group exists as well.
But the same error occurs.

Particle groups have nothing to do with skinning, whether or not the group exists is irrelevant.

kind regards
Reply
#5
I don't know how to reproduce it, because coworker tried to do the same and it worked for him for some reason, but definitely this problem exists, because I encountered it too.
Reply
#6
(31-10-2025, 01:08 PM)Qriva0 Wrote: I don't know how to reproduce it, because coworker tried to do the same and it worked for him for some reason, but definitely this problem exists, because I encountered it too.

Yes, you can of course encounter it when the skinmap is not valid. For instance if you set a vertex weld distance in the blueprint that’s too high, causing many vertices to collapse. Or if you bind a custom skinmap, modify the cloth blueprint but forget to re-bind the skinmap afterwards (since skinning data becomes stale).

OP mentions this also happens to him with the included example blueprint however, which I can’t get to happen.
Also tried other meshes to no avail.
Reply
#7
(31-10-2025, 01:30 PM)josemendez Wrote: Yes, you can of course encounter it when the skinmap is not valid. For instance if you set a vertex weld distance in the blueprint that’s too high, causing many vertices to collapse. Or if you bind a custom skinmap, modify the cloth blueprint but forget to re-bind the skinmap afterwards (since skinning data becomes stale).

OP mentions this also happens to him with the included example blueprint however, which I can’t get to happen.
Also tried other meshes to no avail.

I guess it might be hard to reproduce it, I feel like it can be device related thing, because as far as I remember version of unity was the same. Maybe it's some package version or library.
In any case I encountered the same problem with default one and also I am unable to generate one.
Sample scene with tearable cloth just throws following excpetion, but if I try to press generate it produces even more errors.
Quote:Invalid skinmap in cloth renderer (Obi Tearable Cloth). Make sure the skinmap is not null and suitable for the mesh and cloth blueprint being used.
UnityEngine.Debug:LogError (object)
Obi.ObiClothRendererBase:ValidateRenderer () (at Assets/Obi/Scripts/Cloth/Rendering/ObiClothRendererBase.cs:48)
Obi.ObiTearableClothRenderer:ValidateRenderer () (at Assets/Obi/Scripts/Cloth/Rendering/ObiTearableClothRenderer.cs:139)
Obi.ObiRenderer`1:RegisterRenderer (Obi.ObiSolver) (at Assets/Obi/Scripts/Common/Rendering/ObiRenderer.cs:39)
Obi.ObiActorRenderer`1:ObiActorRenderer_OnBlueprintLoaded (Obi.ObiActor,Obi.ObiActorBlueprint) (at Assets/Obi/Scripts/Common/Rendering/ObiActorRenderer.cs:40)
Obi.ObiActor:LoadBlueprint () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:1283)
Obi.ObiClothBase:LoadBlueprint () (at Assets/Obi/Scripts/Cloth/Actors/ObiClothBase.cs:181)
Obi.ObiTearableCloth:LoadBlueprint () (at Assets/Obi/Scripts/Cloth/Actors/ObiTearableCloth.cs:74)
Obi.ObiSolver:InsertBufferedActor (Obi.ObiActor) (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:2061)
Obi.ObiSolver:StartSimulation (single,int) (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1714)
Obi.ObiSolver:LateUpdate () (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1230)
Reply
#8
(31-10-2025, 10:09 AM)josemendez Wrote: Hi,

I'm unable to reproduce this. Could you share a scene/blueprint that exhibits this issue, by sending them to support(at)virtualmethodstudio.com?

thanks!


Particle groups have nothing to do with skinning, whether or not the group exists is irrelevant.

kind regards

For me, this happens every time I try it, also in the demo scene.

I first tested it in my project using Unity 6.2, and just now I tried it again with Unity 2022.3.31f1.

Steps:

- Create a new project (Unity 2022.3.31f1 URP).

- Create a new scene and add an Obi Solver and Obi Tearable Cloth (both via right-click in the Hierarchy: 3D Object → Obi → ...).

- Create a new blueprint, assign a mesh to it, and generate. (In this example, I used the Unity plane mesh, but I also tried with custom meshes.)

- Press Play, and you’ll get this error:
Invalid skinmap in cloth renderer (Obi Tearable Cloth).
Make sure the skinmap is not null and suitable for the mesh and cloth blueprint being used.

The other cloth component always works fine for me.
Reply
#9
(01-11-2025, 02:19 PM)jaripam Wrote: For me, this happens every time I try it, also in the demo scene.

I first tested it in my project using Unity 6.2, and just now I tried it again with Unity 2022.3.31f1.

Steps:

- Create a new project (Unity 2022.3.31f1 URP).

- Create a new scene and add an Obi Solver and Obi Tearable Cloth (both via right-click in the Hierarchy: 3D Object → Obi → ...).

- Create a new blueprint, assign a mesh to it, and generate. (In this example, I used the Unity plane mesh, but I also tried with custom meshes.)

- Press Play, and you’ll get this error:
Invalid skinmap in cloth renderer (Obi Tearable Cloth).
Make sure the skinmap is not null and suitable for the mesh and cloth blueprint being used.

Hi,

Just followed these steps without issue: the error you mention isn't showing up regardless of the mesh being used to generate the blueprint. I've tried both 2022.3 and Unity 6 on 3 different machines (Windows 10, Windows 11 and MacOS Catalina). Here's a video of the process, maybe you can pinpoint some difference in the workflow that I'm not taking into account:

Reply
#10
(03-11-2025, 12:07 PM)josemendez Wrote: Hi,

Just followed these steps without issue: the error you mention isn't showing up regardless of the mesh being used to generate the blueprint. I've tried both 2022.3 and Unity 6 on 3 different machines (Windows 10, Windows 11 and MacOS Catalina). Here's a video of the process, maybe you can pinpoint some difference in the workflow that I'm not taking into account:


Hey, 
thank you for taking the time, much appreciated!

I went on searching by myself and found the cause. 
I have ProjectSettings - Editor - 'Enter Play Mode Settings' set to 'Do not reload Domain or Scene'.

With this setting, the clothVertices count is 0 (ObiTearableClothRenderer.cs)

Code:
public override int vertexCount { get { return clothVertices.Count; } }


Do you want to add support for this setting? If not, I may have a custom solution.

The issue is simply that ValidateRenderer() is called before Awake() when the setting is active, so we simply have to call another InstantiateMeshAndSkinmap()
This seams like its working, but probably not super clean (or what do you think, any problems lurking later on?)


Code:
        public override int vertexCount
        {
            get
            {
                if(clothVertices.Count == 0)
                {
                    InstantiateMeshAndSkinmap();
                }
                return clothVertices.Count;
            }
        }


Thanks again!

Reply