---
title: "Using TexturePacker with Spine"
description: "Use TexturePacker with Spine to create optimized texture atlases with better compression, asset control, and multi-project support."
canonical: "https://www.codeandweb.com/texturepacker/tutorials/how-to-use-texturepacker-with-spine"
date: "2025-06-24T00:00:00.000Z"
modified: "2025-06-24T00:00:00.000Z"
source: "html"
---

# Using TexturePacker with Spine

Joachim Grill

[texturepacker](https://www.codeandweb.com/texturepacker/tutorials.md),  [tutorial](https://www.codeandweb.com/tags/tutorial),  [spine](https://www.codeandweb.com/tutorials/spine.md)

![Using TexturePacker with Spine](https://www.codeandweb.com/static/a2d85ec0a62d58ada744200c1e60c3ac/a6312/post-image%402x.png)

## What is Spine?

Spine is a 2D skeletal animation tool designed specifically for game development. It enables artists and developers to create smooth, complex animations using bones, meshes, and inverse kinematics. Spine projects are typically exported as data files along with a sprite atlas that contains all the images used in the animations.

## Spine's Built-In Packer

Spine includes a built-in texture packer that packs all the images used in animations into a single sprite sheet. This is convenient for quick exports, but it lacks some advanced features needed in production environments.

## Why Use TexturePacker?

TexturePacker provides several advantages over Spine's built-in packer:

*   **Multi-project packing**: Combine sprites from multiple Spine animation projects into a single sprite sheet.
*   **Additional assets**: Include sprites that are not part of any Spine project.
*   **Simplified asset management**: Easier to manage sprite atlases across multiple projects.
*   **Hardware compression**: Supports texture formats like ETC1, PVRTC, and others for mobile optimization.
*   **PNG optimization**: Reduces file size with lossless or lossy PNG compression.
*   **Alpha bleeding**: Avoid visual artifacts by adding bleeding pixels around trimmed sprites.

You can download TexturePacker here:

[Download TexturePacker 8.3.0](https://www.codeandweb.com/texturepacker/download/8.3.0/win)

for Windows

[Also available for macOS and Linux](https://www.codeandweb.com/texturepacker/download.md)

## Workflow

Both Spine and TexturePacker use the same set of image assets as input. In Spine, set up your skeletons and animations as usual. When exporting, export only the skeleton data (`.json` or `.skel`):

![workflow when using Spine with TexturePacker](https://www.codeandweb.com/static/50527f6f2a6a9dc60c8db284347723dc/9bec7/spine-texturepacker-workflow%402x.png)

To create the sprite sheet, drag the images folder from your Spine project onto the left sidebar of TexturePacker. Select the data format **Spine**. Click **Publish** to generate both the texture atlas image and the corresponding _.atlas_ metadata file.

![setup TexturePacker project for Spine](https://www.codeandweb.com/static/22eb39939ecf602c7e7dd655b0c578d9/c5f35/texturepacker-spine%402x.png)

In Spine, ensure that the option to pack images is disabled when exporting. This prevents Spine from generating its own sprite sheet.

![export spine project without packing sprite atlas](https://www.codeandweb.com/static/9c7db97c39d53aa0756f073ea677c4ff/a5019/spine-export%402x.png)

## Limitations

When using TexturePacker with Spine, be aware of the following limitations:

*   **No meshes**: If your Spine project does not use mesh attachments, you can safely enable trimming and use all optimization features.
*   **Untraced meshes**: If your project uses meshes but they are not traced (i.e., use rectangular bounds), trimming must be **disabled** in TexturePacker to maintain compatibility.
*   **Traced meshes**: Projects using traced mesh attachments (non-rectangular bounds) are **incompatible** with TexturePacker. In this case, TexturePacker cannot be used, and you must use Spine's built-in packer instead.

## Conclusion

By integrating TexturePacker into your Spine workflow, you can achieve better sprite atlas management and optimization. Just keep in mind the limitations with meshes as described above to ensure compatibility and avoid artifacts displaying parts of neighboring sprites.

## Structured data

```json
{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "Using TexturePacker with Spine",
  "author": [
    {
      "@type": "Person",
      "name": "Joachim Grill"
    }
  ],
  "dateModified": "2025-06-24T00:00:00.000Z",
  "image": "/static/a2d85ec0a62d58ada744200c1e60c3ac/a6312/post-image%402x.png"
}
```
