voxell-tech / bevy_motiongfx

Motion graphics creation tool in Bevy. (Highly inspired by Motion Canvas and Manim)
Apache License 2.0
169 stars 3 forks source link

Get frames from typst metada or pages #20

Open astrale-sharp opened 10 months ago

astrale-sharp commented 10 months ago

Go to see the current result, it's Hella cute

I assume the frames are generated from svg? I think next step would be to find this information in metadata or in each page

We should also have the option to keep the generated one inside each frame so as get the beautiful letter by letter result we have now. But now you'd just click once, it'd run to the next "typst frame" label

metadata could also be used to tweak how long the animation are during, what easing method is used etc.

for instance, using polylux we could run a document in a frame per page mode and use metadata to decide the easing we want

Unrelated (there's no enable discussion for now so i'm going rogue) The project is big already (bevy + typst), is it portable, can I run the generated interactive content on any machine once I built it?

For instance, lets say you have 3 polylux slides with the same text but it's color is a different gradient each time, how can we make it render well? :thinking:

nixon-voxell commented 10 months ago

hey @astrale-sharp , transferring this issue to Bevy MotionGfx repo.

First of all, congrats for getting it to work! yayyy 🎉

I think what you are referring to is very similar to sth like Animotion or Microsoft PowerPoint's morph transition from slide to slide. I am not entirely sure how this can be achieved yet, hopefully like you said, there could be metadata in each frame that we can use. Currently, there are no plans yet on integrating this feature, but if there are any useful metadata that typst can generate, that will of course be exposed as soon as possible as it will be very useful for alot of other animations too. Right now, I just want to get this thing usable first 🤣 (there is not even any documentation anywhere yet!).

In terms of portability, I would say that wherever typst + vello + bevy runs, there should not be a problem for it to run 🤣 Performance wise, vector graphics are currently rendered using vello, which I think is pretty fast given that it is rendering using mostly the GPU. There might be some bottlenecks in terms of animation as there are room for code parallelization. But that will come in the future I guess haha.

astrale-sharp commented 10 months ago

You're right that I think we're missing abstraction layer here!

I'd like to see the same content be able to generate an animated html button and a two steps animation of bevy_motiongfx