Skip to main content

Code style: black

Animated-texture generator for Minecraft

Anitexgen is a generator for ".mcmeta" files that Minecraft uses to animate textures.

It allows you to write texture animations in Python instead of json. Using a proper programming language enables you to create much more complex animations, like this model that uses 3 animated textures to create a moving dog.

Installation

pip install mcanitexgen

Usage

Generate .mcmeta files for all animations in an animation file

$ mcanitexgen generate <animation_file>
    -o, --out       The output directory of the generated files
    -m, --minify    Minify generated files
    -i, --indent    Indentation used when generating files
    --dry           Dry run. Don't generate any files

Create gifs for all animations in an animation file

$ mcanitexgen gif <animation_file>
    -o, --out       The output directory of the generated files

Getting started

Create a simple animation

We are going to create this blinking Steve:

First we have to create the different states of the animation. I created a simple steve.png file:

Top to Bottom: Looking normal, blinking, wink with right eye, wink with left eye.
Now we can create the animation file steve.animation .py that uses these states to create an animation:

from mcanitexgen.animation import animation, TextureAnimation, State, Sequence

@animation("steve.png")
class Steve(TextureAnimation):
  NORMAL = State(0)  # Look normal
  BLINK = State(1)
  WINK_RIGHT = State(2)  # Wink with right eye
  WINK_LEFT = State(3)  # Wink with left eye

  # Look normal and blink shortly
  look_and_blink = Sequence(NORMAL(duration=60), BLINK(duration=2))

  # The main Sequence used to create the animation
  main = Sequence(
    3 * look_and_blink,  # Play "look_and_blink" Sequence 3 times
    NORMAL(duration=60),
    WINK_LEFT(duration=30),
    look_and_blink,
    NORMAL(duration=60),
    WINK_RIGHT(duration=30),
  )

Files overview:

resourcepack
  ⠇
  textures
    └╴ item
       ├╴steve.png
       └╴steve.animation.py

Passing the animation file to Anitexgen will create a steve.png.mcmeta file:

$ mcanitexgen generate steve.animation.py
steve.png.mcmeta
{
  "animation": {
      "interpolate": false,
      "frametime": 1,
      "frames": [
        {"index": 0, "time": 60},
        {"index": 1, "time": 2},
        {"index": 0, "time": 60},
        {"index": 1, "time": 2},
        {"index": 0, "time": 60},
        {"index": 1, "time": 2},
        {"index": 0, "time": 60},
        {"index": 3, "time": 30},
        {"index": 0, "time": 60},
        {"index": 1, "time": 2},
        {"index": 0, "time": 60},
        {"index": 2, "time": 30}
      ]
  }
}
resourcepack
  ⠇
  textures
    └╴ item
       ├╴ steve.png
       ├╴ steve.animation.py
       └╴ steve.png.mcmeta

Release files for mcanitexgen 1.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcanitexgen 1.2.3
File Size Uploaded
mcanitexgen-1.2.3.tar.gz 22.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcanitexgen 1.2.3
File Interpreter ABI Platform
mcanitexgen-1.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 46.8 kB

Release files / mcanitexgen-1.2.3.tar.gz

Download URL mcanitexgen-1.2.3.tar.gz
Size 22.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c6fa6282569300f6b7ff48792b2d3abd5cd23b32db3df55d7700d3248ed58cbb
BLAKE2b-256 checksum
How to use checksums
adba32ab38dc172dc76d924b3fff72c53864540c5dc46a098f2d25559d7773bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

Release files / mcanitexgen-1.2.3-py3-none-any.whl

Download URL mcanitexgen-1.2.3-py3-none-any.whl
Size 24.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c05c27d0d373a6d5ea239b7d34ebc02e01ea23c8e3f5fe350deaea7d4ac8d27a
BLAKE2b-256 checksum
How to use checksums
8839ba81f1c4e89d00420a3648309e0d0b95907031d8e193fa531569c4806381
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

Release history Release notifications | RSS feed

This release

1.2.3 This release

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.6

2 release files

0.0.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page