Skip to main content

An animation generator for Minecraft .mcmeta files

Project description

Code style: black

Minecraft animated texture generator

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

The full power of Python

Mcanitexgen allows you to write texture animations in Python instead of json. Using a programming language allows you to create much more complex animations, like this dog that has 3 textures that are synchronised with each other.

Install

pip install mcanitexgen

Usage

  • python -m mcanitexgen generate <animation_file> [out_dir] generates .mcmeta files for all animations in an animation file
  • python -m mcanitexgen gif <animation_file> [out_dir] creates gifs for all animations in an animation file

Example

We are going to create this animation.

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 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),
  )

Now run python -m mcanitexgen steve.animation.py and Mcanitexgen will create a "steve.png.mcmeta" file:

{
  "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}
      ]
  }
}

More complex examples can be found in the here

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcanitexgen-1.0.2.tar.gz (20.2 kB view hashes)

Uploaded Source

Built Distribution

mcanitexgen-1.0.2-py3-none-any.whl (21.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page