eszesbalint / bdstudio

Minecraft Block Display Studio - 3D editor and command generator for block display entities
95 stars 12 forks source link

Feature Request: animation visualization #6

Open MattCloward opened 1 year ago

MattCloward commented 1 year ago

This tool is amazing! It makes it so much easier to put my block displays right where I want them before putting them in the game.

I'm currently using this tool to create a boss using block displays. I use block displays so my bosses can be purely vanilla, only using a data pack. The boss will have several different animations where the displays undergo different interpolations (walking, swinging weapon, etc.). Your tool currently makes it possible for me to create and save different states of the model and do the interpolations in-game. It would be so amazing if I could do these interpolations in your tool.

The following features would make working with interpolations really nice:

  1. An animation panel where interpolations can be done (similar to the animation panel in Blockbench)
  2. The ability to create multiple "animations" in which multiple interpolations of multiple blocks can occur
  3. The ability to save these interpolation animations separately as files containing multiple sequential interpolation commands

I recognize this is a big addition to your tool so I am willing to support you monetarily!

eszesbalint commented 1 year ago

Thank you for your suggestion!

Adding an animation system to BDStudio is definitely something worth considering. Display entities are as much about animation as modeling. Not supporting that would be a huge miss. Now that I think about it, it wouldn't really be Block Display Studio without these features.

Luckily threejs already has a built-in keyframe animation system, I just have to create the logic and GUI for it. I don't know much about data packs and mcfunctions, but it seems like I could just export the keyframes to separate mcfunctions, and then time them with schedule commands. I need further investigation though, as threejs might interpolate differently from Minecraft.

I haven't set up any donation methods yet, but feel free to contact me at eszes.balint@pm.me and let's start a discussion on further details.

Have a nice day :)

AuroraHydroid commented 1 year ago

You could look into misode's Play sound tool. It's not identical use, but it does stagger sounds using the schedule and automates it.

blockerlocker commented 1 year ago

Perhaps you could consider reaching out to SnaveSutit, the lead developer of a Block Bench plugin called Animated Java, which allows you to animate custom models created using item displays. It has a different use-case to your tool, but there's definitely some technical overlap there.

SBtree-bit commented 11 months ago

@blockerlocker He doesn’t really need to contact the head of Animated Java, Minecraft already handles the animations by itself. All you need to do is run /data merge entity @e[block entity selector] {transformation:{…},interpolation_duration:…}

eszesbalint commented 11 months ago

I started to work on the animations. It seems harder to implement the animation system in the editor side of things. The command / datapack generation will be pretty straightforward. I already implemented a datapack export option for summoning and killing last week (making it easy to summon and kill multiple instances at the same time). Different animations could be neatly organized into subfolders too and ran as functions on different instances of the same creation.

SBtree-bit commented 11 months ago

Yes! You could also make multiple commands for people who are just using command blocks. Under the "Export to Minecraft" option, there could be "Summon Command" and "Animation Commands." You could do this by making use of tags, such as "{PROJECT_NAME}_display_0."

SBtree-bit commented 5 months ago

@eszesbalint How is the progress on this?

StKillReal commented 2 months ago

Any progress?