mobends / MoBends

A Minecraft mod that adds more realistic looking animations to the inhabitants of your blocky world.
MIT License
138 stars 30 forks source link

Discussion about support for other mods to create optional custom animations. #234

Open FelisMoon opened 3 years ago

FelisMoon commented 3 years ago

Problem: Third Party Compatibility is not very friendly. Many third party mods fail to make compatibility towards MOBENDS for its complexity or models.

A Solution id like: A feature that allows other mods to execute all override animations to an action performed by the player. For example, a third party mod that introduces a double jump will be able to tell MOBENDS to execute a barrer rol animation (provided by the double jump mod) each time a double jump is performed.

the way Id prefer it to work would be, as I said, a default animation override that plays an animation in a looping format. the third party mod that "binds" new animations would be able to tell MOBENDS (By a JSON and a resource?) when the animation is being played, for how long should be played, and if it can be forced back to default animations. (Interrupted by other actions)

Maybe in a future support animated states? Like IDLE animations when handling certain items that interact with moving or running animations. (Though, Bend Packs achieve already similar tasks)

This system would allow modders to add new animations to actions not present in Vanilla Minecraft. No longer shooting modded guns will use the animation for bows, when MOBENDS allows an easy system to add a gunshot animation directly to the mod instead of compromising mod compatibility designing or borrowing another way to animate the player model.

Alternatives or concretes would be to add any kind of way for other mods to interact with MOBENDS animations and models, that allow them to play animations of their own. (Instead of losing animations because of MOBENDS overriding them or modders not even having the chance to make for their own)

iwoplaza commented 3 years ago

Hey! Thank you for this proposal, very thourough. This has been one of my main concerns during the creating of a new system for Mo' Bends.

The state of the system in the past 8 years

In case you're unfamilliar with the way Mo' Bends is currently animating the models, it's doing so by written translatiton/rotation/scale instructions directly in the code of the mod. It has been this way for the past 8 years.

What's currently being done

What I'm working on now is pretty much a complete rewrite of the system, where the animations are a custom format exportable from Blender and the way animations are being played is written in a custom binary format exported from a tool I'm currently working on. The wolf animations are the first living example of that system working. Doing it in this way allows me to load those assets via resources. The very desirable side-effect of this is that any mod developer can create these assets, put them in a specific folder in their resources, and Mo' Bends will automatically load them up. If any custom mod action is to be animated, I could very well make a "Mod Impulse" trigger event, where a mod could simply send a trigger event to a Mo' Bends active animation controller.

This version of the system will first be released for 1.16.5, then ported to backwards and forwards. Porting in this case will be easier, since all the animations are version independent.

Hope this clears up what's currently going on. If you have any suggestions as to what could be done further, or any specific ease-of-use perspective points, I'd love to hear them! In the mean-time, I'd love if you joined my Discord server. I do weekly streams where I work on Mo' Bends and share my progress.

Thanks again!