Have you searched for hours and hours, looking for a way to properly animate your entities? Well look no further! The AnimationAPI is a mini-library that allows modders to (more) easily animate their entities.
Information
Although the AnimationAPI is supposed to be easier for modders to use, it still is quite complicated, so a tutorial has been made to guide you modders along the way. For other information, you can check the rest of the wiki.
Examples
Can't believe unless you see it? Check out these photos and a video by ThnxCya of some of my animated mutant creatures.
Installation For users: Locate .minecraft
>> Click Start and type %appdata% into the Search area
>> Click the folder that is called Roaming
>> Find the folder inside called .minecraft Move the mod zip file to .minecraft/mods Play!
For modders: Download the src files Extract the src zip Move the folder called 'thehippomaster' inside MCP's src/minecraft/ directory Animate your entities!
Requires Forge. Please note the AnimationAPI must be installed in servers as well.
Changelist
v1.2.4:
* fixed issue where mod crashes servers
v1.2.3:
* updated to mc1.7.10
v1.2.2:
* fixed the packet sender to be more compatible with 1.7
v1.2.1:
* added a setScale method for ModelObjRenderer
v1.2.0:
* added ModelJoint class
* added ModelObjRenderer class
v1.1.3:
~updated to mc1.7.2
v1.1.2:
~updated to mc1.6.4
v1.1.1:
~added a getEntity method accessor
v1.1.0:
~updated to mc1.6.2
~added a boolean return type for setAnim() for convenience
~fixed some animation issues
~repositioned some files
v1.0.0:
~initial release
TERMS AND CONDITIONS
0. USED TERMS
MOD - modification, plugin, a piece of software that interfaces with the Minecraft client to extend, add, change or remove original capabilities.
MOJANG - Mojang AB
OWNER - TheHippoMaster21, Original author of the MOD. Under the copyright terms accepted when purchasing Minecraft (http://www.minecraft.net/copyright.jsp) the OWNER has full rights over their MOD despite use of MOJANG code.
USER - End user of the mod, person installing the mod.
MODDER - An author of a different MOD.
1. LIABILITY
THIS MOD IS PROVIDED 'AS IS' WITH NO WARRANTIES, IMPLIED OR OTHERWISE. THE OWNER OF THIS MOD TAKES NO RESPONSIBILITY FOR ANY DAMAGES INCURRED FROM THE USE OF THIS MOD. THIS MOD ALTERS FUNDAMENTAL PARTS OF THE MINECRAFT GAME, PARTS OF MINECRAFT MAY NOT WORK WITH THIS MOD INSTALLED. ALL DAMAGES CAUSED FROM THE USE OR MISUSE OF THIS MOD FALL ON THE USER.
2. USE
Use of this MOD to be installed, manually or automatically, is given to the USER without restriction.
3. REDISTRIBUTION
This MOD may only be distributed where uploaded, mirrored, or otherwise linked to by the OWNER solely or where permission is granted to another MODDER whose MOD depending on this MOD can also be distributed. All mirrors of this mod must have advance written permission from the OWNER. ANY attempts to make money off of this MOD (selling, selling modified versions, adfly, sharecash, etc.) are STRICTLY FORBIDDEN, and the OWNER may claim damages or take other action to rectify the situation.
4. DERIVATIVE WORKS/MODIFICATION
This mod is provided freely and may be decompiled and modified for private use, either with a decompiler or a bytecode editor. Public distribution of modified versions of this MOD require advance written permission of the OWNER and may be subject to certain terms.
Awesome! I can't tell you how long I've waited for someone like you to come along! I am not a modder but I have always wanted animations in minecraft to change. Thanks!
How do you use this? Do you have to be a modder to create your own animations? Or can you be a user and install it in the mods folder?
Also, when I put it in the mods folder, it says I have it, but nothing happens.
Awesome mod.
Pugin94, this "mod" dosnt actualy do any thing on its own. its an api, a bunch of files for mod makers to use. this may not sound like anything interesting but it is. take this example
you have "Mod A" and it overrides or replaces files x and z in the minecraft jar, but u also want "Mod B" and it overrides files y and z. this is where u have an issue, because both mods change file z if you install them both then one of the mods will complain because it cannot find the information its after. what the api dose is add "HOOKS". these hooks basicley (from what i can gather) says to the mods "Hey, you want to edit this file? tell me what you want to edit and i execute the code when it is needed". so instead of replacing the file, the api executes or runs the code. the advantage of this is Mod A AND B can both use the same hooks without any problems
Pugin94, this "mod" dosnt actualy do any thing on its own. its an api, a bunch of files for mod makers to use. this may not sound like anything interesting but it is. take this example
you have "Mod A" and it overrides or replaces files x and z in the minecraft jar, but u also want "Mod B" and it overrides files y and z. this is where u have an issue, because both mods change file z if you install them both then one of the mods will complain because it cannot find the information its after. what the api dose is add "HOOKS". these hooks basicley (from what i can gather) says to the mods "Hey, you want to edit this file? tell me what you want to edit and i execute the code when it is needed". so instead of replacing the file, the api executes or runs the code. the advantage of this is Mod A AND B can both use the same hooks without any problems
Oh ok. Thanks.
Rollback Post to RevisionRollBack
[==========================================] [I am the leader and creator of the Sheep Bros™] [==========================================]
Dude. You absolutely HAVE to make a parkour mod with animations. I won't take no for an answer, and not like smart moving. I don't consider smart moving a parkour mod like some people do, because it just helps you get around better. I mean an actual one with rolling, proper wall jumping, momentum etc. It will be extremely awesome, not to mention it will get a lot of downloads (no parkour mods especially with animations out right now).
I am a new modder, and this API is fantastic for me.
I'm using Techne to make my models, (an arm, for example) but I can't use different positions of a already made MC Mob image as a texture.
Can anyone help me?
Also, how do I use the own player's skin?
hello, I have problems with you animationapi, what hapend?
---- Minecraft Crash Report ----
// I let you down. Sorry
Time: 31-08-13 06:04 PM
Description: Initializing game
java.lang.IllegalArgumentException: Can not set static uranium.Uranium field uranium.Uranium.instance to thehippomaster.AnimationExample.AnimationExample
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeStaticObjectFieldAccessorImpl.set(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.parseSimpleFieldAnnotation(FMLModContainer.java:445)
at cpw.mods.fml.common.FMLModContainer.processFieldAnnotations(FMLModContainer.java:378)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:520)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:510)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:181)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:470)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:796)
at net.minecraft.client.main.Main.main(Main.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:57)
at net.minecraft.launchwrapper.Launch.main(Launch.java:18)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeStaticObjectFieldAccessorImpl.set(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.parseSimpleFieldAnnotation(FMLModContainer.java:445)
at cpw.mods.fml.common.FMLModContainer.processFieldAnnotations(FMLModContainer.java:378)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:520)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:510)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:181)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:470)
-- Initialization --
Details:
Stacktrace:
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:796)
at net.minecraft.client.main.Main.main(Main.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:57)
at net.minecraft.launchwrapper.Launch.main(Launch.java:18)
-- System Details --
Details:
Minecraft Version: 1.6.2
Operating System: Windows 7 (x86) version 6.1
Java Version: 1.7.0_25, Oracle Corporation
Java VM Version: Java HotSpot™ Client VM (mixed mode), Oracle Corporation
Memory: 446785736 bytes (426 MB) / 530186240 bytes (505 MB) up to 530186240 bytes (505 MB)
JVM Flags: 3 total; -Xincgc -Xmx512M -Xms512M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Suspicious classes: FML and Forge are installed
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v8.04 FML v6.2.52.836 Minecraft Forge 9.10.0.836 6 mods loaded, 6 mods active
mcp{8.04} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed
FML{6.2.52.836} [Forge Mod Loader] (coremods) Unloaded->Constructed
Forge{9.10.0.836} [Minecraft Forge] (coremods) Unloaded->Constructed
AnimationAPI{1.1.0} [AnimationAPI] (bin) Unloaded->Errored
AnimationExample{1.0.0} [Animation Example] (bin) Unloaded->Errored
g3org1_uranium{1.2} [Uranium Mod] (bin) Unloaded->Constructed
Launched Version: 1.6
LWJGL: 2.9.0
OpenGL: ATI Radeon HD 3200 Graphics GL version 3.3.11672 Compatibility Profile Context, ATI Technologies Inc.
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Pack: Default
Current Language: English (UK)
Profiler Position: N/A (disabled)
Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
Have you searched for hours and hours, looking for a way to properly animate your entities? Well look no further! The AnimationAPI is a mini-library that allows modders to (more) easily animate their entities.
Information
Although the AnimationAPI is supposed to be easier for modders to use, it still is quite complicated, so a tutorial has been made to guide you modders along the way. For other information, you can check the rest of the wiki.
Examples
Can't believe unless you see it? Check out these photos and a video by ThnxCya of some of my animated mutant creatures.
Known Mods
Locate .minecraft
Click Start and type %appdata% into the Search area
Click the folder that is called Roaming
Find the folder inside called .minecraft
Move the mod zip file to .minecraft/mods
Play!
Download the src files
Extract the src zip
Move the folder called 'thehippomaster' inside MCP's src/minecraft/ directory
Animate your entities!
If your mod uses the AnimationAPI, PM me, and I'll add it. The following mods use the AnimationAPI:
Mutant Creatures Mod
Animated Player Mod
Quest
Lycanite's Mobs
Magical Talismans Mod
Aquatic Abyss
Better Horses Mod
Ars Magica 2
Installation
For users:
>>
>>
>>
For modders:
Download
AnimationAPI v1.2.4 mc1.7.10| (src)
AnimationAPI v1.2.3 mc1.7.10 | (src)
AnimationAPI v1.2.2_b mc1.7.2 | (src)
AnimationAPI v1.2.1 mc1.7.2 | (src)
AnimationAPI v1.1.2 mc1.6.4 | (src)
AnimationAPI v1.1.1 mc1.6.2 | (src)
AnimationAPI v1.0.0 | (src)
Requires Forge. Please note the AnimationAPI must be installed in servers as well.
Changelist
v1.2.4:
* fixed issue where mod crashes servers
v1.2.3:
* updated to mc1.7.10
v1.2.2:
* fixed the packet sender to be more compatible with 1.7
v1.2.1:
* added a setScale method for ModelObjRenderer
v1.2.0:
* added ModelJoint class
* added ModelObjRenderer class
v1.1.3:
~updated to mc1.7.2
v1.1.2:
~updated to mc1.6.4
v1.1.1:
~added a getEntity method accessor
v1.1.0:
~updated to mc1.6.2
~added a boolean return type for setAnim() for convenience
~fixed some animation issues
~repositioned some files
v1.0.0:
~initial release
Other Mods
Check out my other mods here!
Copyright
0. USED TERMS
MOD - modification, plugin, a piece of software that interfaces with the Minecraft client to extend, add, change or remove original capabilities.
MOJANG - Mojang AB
OWNER - TheHippoMaster21, Original author of the MOD. Under the copyright terms accepted when purchasing Minecraft (http://www.minecraft.net/copyright.jsp) the OWNER has full rights over their MOD despite use of MOJANG code.
USER - End user of the mod, person installing the mod.
MODDER - An author of a different MOD.
1. LIABILITY
THIS MOD IS PROVIDED 'AS IS' WITH NO WARRANTIES, IMPLIED OR OTHERWISE. THE OWNER OF THIS MOD TAKES NO RESPONSIBILITY FOR ANY DAMAGES INCURRED FROM THE USE OF THIS MOD. THIS MOD ALTERS FUNDAMENTAL PARTS OF THE MINECRAFT GAME, PARTS OF MINECRAFT MAY NOT WORK WITH THIS MOD INSTALLED. ALL DAMAGES CAUSED FROM THE USE OR MISUSE OF THIS MOD FALL ON THE USER.
2. USE
Use of this MOD to be installed, manually or automatically, is given to the USER without restriction.
3. REDISTRIBUTION
This MOD may only be distributed where uploaded, mirrored, or otherwise linked to by the OWNER solely or where permission is granted to another MODDER whose MOD depending on this MOD can also be distributed. All mirrors of this mod must have advance written permission from the OWNER. ANY attempts to make money off of this MOD (selling, selling modified versions, adfly, sharecash, etc.) are STRICTLY FORBIDDEN, and the OWNER may claim damages or take other action to rectify the situation.
4. DERIVATIVE WORKS/MODIFICATION
This mod is provided freely and may be decompiled and modified for private use, either with a decompiler or a bytecode editor. Public distribution of modified versions of this MOD require advance written permission of the OWNER and may be subject to certain terms.
Enjoy, and click the
if you do!
We'll see if more people use the API, because it IS fairly complicated for most modders.
Also, when I put it in the mods folder, it says I have it, but nothing happens.
Awesome mod.
[==========================================]
[I am the leader and creator of the Sheep Bros™]
[==========================================]
Pugin94, this "mod" dosnt actualy do any thing on its own. its an api, a bunch of files for mod makers to use. this may not sound like anything interesting but it is. take this example
you have "Mod A" and it overrides or replaces files x and z in the minecraft jar, but u also want "Mod B" and it overrides files y and z. this is where u have an issue, because both mods change file z if you install them both then one of the mods will complain because it cannot find the information its after. what the api dose is add "HOOKS". these hooks basicley (from what i can gather) says to the mods "Hey, you want to edit this file? tell me what you want to edit and i execute the code when it is needed". so instead of replacing the file, the api executes or runs the code. the advantage of this is Mod A AND B can both use the same hooks without any problems
Oh ok. Thanks.
[==========================================]
[I am the leader and creator of the Sheep Bros™]
[==========================================]
Please.
Please.
PLEASE!
I'm using Techne to make my models, (an arm, for example) but I can't use different positions of a already made MC Mob image as a texture.
Can anyone help me?
Also, how do I use the own player's skin?
you are awesome man i love you (even though im going to use it for a sloth this will be useful)
i forgot to add what it requires