This is a common issue when a character appears invisible with no errors in the Spine Web Player. Here are the most likely causes to check:
The character is loaded but outside the visible area
The skeleton may be positioned far outside the camera/viewport. Try setting defaultMix or adjusting the viewport settings in your player configuration to fit the skeleton bounds automatically:
new spine.SpinePlayer("player-container", {
skeleton: "your-skeleton.json",
atlas: "your-atlas.atlas",
viewport: {
debugRender: true // Enable this temporarily to see bounds
}
});
The scale is wrong
If the skeleton was exported at a very different scale than expected, it might be rendering at an imperceptibly small size. Try explicitly setting the scale property:
new spine.SpinePlayer("player-container", {
skeleton: "your-skeleton.json",
atlas: "your-atlas.atlas",
scale: 1
});
No animation is playing and the skeleton is in a default pose that is invisible
Try explicitly setting an animation to confirm it is rendering:
new spine.SpinePlayer("player-container", {
skeleton: "your-skeleton.json",
atlas: "your-atlas.atlas",
animation: "walk" // replace with a valid animation name from your skeleton
});
The atlas PNG is not loading correctly
Even without an error, the PNG may be loading as blank/transparent. Check your browser's Network tab in DevTools to confirm the image is returning a valid response with the correct content type.
The skin is not set
If your skeleton uses skins and none is set by default, no attachments may be visible. Try setting the default skin explicitly:
new spine.SpinePlayer("player-container", {
skeleton: "your-skeleton.json",
atlas: "your-atlas.atlas",
skin: "default" // replace with your actual skin name
});
Pre-multiplied alpha mismatch
If the atlas was exported with pre-multiplied alpha (PMA) but the player is not configured to handle it (or vice versa), the character can appear invisible. Check whether your .atlas file contains pma: true and ensure your setup is consistent.
Since your other characters work fine, the most likely culprits are a scale/position issue or a skin not being set. Enabling debugRender is usually the quickest way to confirm whether the skeleton is actually there but just not visible in the viewport.