Need some animation help

I have a circle with an arrow head in it that I want to animate into a mp4 (or similar) video. I have the image and I could duplicate the layer, move it slightly, rotate it slightly and then rinse / repeat a number of times.

BUT … I am hoping that there is a filter (or similar) that I could use to get the same effect.

You can get a plugin to assist from Ofnuts Ofnuts' Gimp Tools - Browse /scripts at SourceForge.net look for ofn-rotate-layer.zip dated 2017-12-15

A python plugin. If you are using a linux Gimp with no python support, various ways use a flatpak or grab an old appimage just for this purpose. Windows users have python support.

It works like this

https://i.imgur.com/S434sVn.mp4

40 seconds as a demo. Gimp will produce rotated layers and an animation, a gif or a webp if required but not mp4. Then you need to consider the number of layers and rotated angle requirements, many more layers for a mp4 than an animation.

For an mp4 you could export as a gif and convert using say ffmpeg. Using Windows? then ImageMagick contains its own ffmpeg.

2 Likes

Thanks rich2005 - that is all very useful. I should have given more info … I am on Windows; I can convert to mp4.

Did you knock together that demo mp4? If so, then thank you very much - super generous. Does this site have up-votes?

Well that was fun. I ended up having to hack into one of Ofnut’s Gimp tools to get what I was after. Here is what I finished with.

It is a PLEX movie pre-roll … designed to roll before you play a PLEX movie.

2 Likes

That is a nice clean animation, 10 seconds about 300 frames ?

Ofnuts does have useful plugins for animations, adding backgrounds, merging animations, exporting layers. However from a couple of years ago, when I was twiddling my thumbs, this is just a gif but using all sorts - gimp_gmic / ImageMagick…

Thx Rich2005.

I saw a number of people mention ImageMagick during my googling. I might give it a try. My wife’s daughter is in the business and I just know that she will laugh when she sees my animation attempt.

Re frames … 1084 individual images, 9.00 seconds. I was rotating that wheel 1° each frame and moving it left or right a few pixels. I had to break out the highschool math to calculate the wheel movement using πd.

I was rotating that wheel 1° each frame and moving it left or right a few pixels.

Done by hand? Because there are a few jerks…

Well…this was reported: Re frames … 1084 individual images, 9.00 seconds

but… the (youtube) video is 30 frames-per-second = 271 frames so somewhere along the line, frames have been dropped which does not help. For a raster image a 1 deg rotation then move a couple of pixels might not be wonderful.

Anything in the works for a path transformation along those lines ?

Stop tickling my coding spot!!! But then yes :innocent:

Ofnuts - thanks for dropping in … and thanks for your code! I couldn’t seem to understand what the offsets were doing in your rotation code. Or, more accurately - I couldn’t get it to work for me. I think my original layer that I was rotating didn’t have the image in the middle. It looked like a circle so I couldn’t understand why I was getting vertical translation. Hours later, I realized that the rectangle layer (!) was being rotated and hence the funky image size at the end of the rotation.

But at that stage, I had ‘solved’ the offset issue by manually added an gimp offset function (amongst other adds :slight_smile: ).

I wanted to slow the ‘wheel’ down as it got closer to the target … so I doubled up on the frames (same picture included in the mp4 twice). Those are the jerks you are seeing. At the end, I had 4x pictures included (25% of original speed). I suppose I could have gradually changed the degree rotation measurement (and the horizonal offset) based on distance from the start.

The script has an Auto-center option (which is directly wired to the same in the API). If you set it to No is uses the coordinates you provide in the next two entries. It is possible to code an acceleration/deceleration (or even a swing). In your case things can be a bit complicated because you want the movement to stop at a specific place, and it is probably easier to generate the opposite move and then flip over the layer stack.

It sounds like I should have played with the parameters a bit more.

The ‘stop in a specific place’ was the easy part - I started there and the movements were away from that location.