Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Animated Gif simultaneously in two different location of large background
#1
Hi guys, 

the concrete links and stuff are only an example to explain the task. Cool

For an animated Gif, I would like to use this zoo image as background, which must be visible in the background for the whole time the animation plays.
https://img.schnaeppchenfuchs.com/img/51/79/f0/zoo.jpg

I want to run the smiley 2 animation (s2) near the lion and the smiley 4 animation (s2) near the elephants head.
http://www.goodlightscraps.com/content/s...iley-2.gif

http://www.goodlightscraps.com/content/s...iley-4.gif


So when you play the animation, s2 and s4 starting their movement SIMULTANEOUSLY.

Now, the only way to achieve this known to me is manually:

Have the zoo image as background layer.
Paste s2, its 7 layers will be visible in the layers pattern dock above zoo layer and named frame 1 (1ms) replace, frame 2 (1ms) replace...
Move every layer manually near the proper XY position near lion.
Duplicate background layer 7 times, move each duplicate below one of the frames, merge frames down to background.
Rename all the background, background copy1,... into frame 1 with lion smiley (1ms) replace, frame 2 (with lion smiley 1ms) replace...

I do hope this descirption does not confuse!!! Heart

For the other animated smiley:
Paste s4, its 7 layers (named frame 1 (1ms) replace, frame 2 (1ms) replace...) will be visible in the layers pattern dock above frame 1 with lion smiley (1ms) replace, frame 2 (with lion smiley 1ms) replace,...
Move every layer of the s4 animtion manually near the proper XY position near the elephant. Merge down frame 1 (1ms) replace onto frame 1 with lion smiley (1ms) , merge down frame 2 (1ms) replace onto frame 2 with lion smiley (1ms)  and so on.

Sounds like A LOT OF MANUAL WORK Angry , and this is only for describing, the actual project might use animations with 40 frames.

I was also looking for some online gif software, but did not any helpful for my task. 
1.Is there a magic gimp script / way or other software to help with the whole problem?Also very helpful to know: 
2. After loading the background png, how to paste the animated gif and its 7 layers NOT IN THE CENTER, but at a certain XY position, so all the 7 frames are automatically pasted at that XY position.
3. How to AUTOMATICALLY merge 7 frames down to the background image, so they are still 7 frames and the background image is dispayed in every frame.
 
I really do hope you understand what I want to say, let me rephrase if not! 

Thanks in advance for any effort! Wink
Reply
#2
With my interleave-layers script:
  • For each animation:
    • Load the zoo image
    • File>Open as layers and load the animation
    • Chain-Link all the layers of the animation (if you don't know what the layer "chain-link" is, see here).
    • Move one of these layers where you want the animation to be, this will move the other layers when you confirm the move (due to the link).
    • Resize all these layers to the zoo image size (which will add transparency as padding). Either use Layer>Layer to image size on all layers, or, quicker:
      • Image>Canvas size, and add one pixel in X, and select "Resize all layers"
      • Image>Canvas size, set back to initial size, and select "Resize all layers"
    • Hide the zoo layer (yes, in both images)
  • In first image: Image>Interleave layers>Interleave single layer (sprite mode), select the zoo layer, and leave other options to the default. This should create a new image where copies of the zoo image have a merged frame of the animation. If you play this you should have one animation working.
  • In that new created image: Image>Interleave layers>Interleave stacks of layers, select the image with the second animation layers, and leave other options to the default. This should create a new image where copies of the zoo image have a merged frame from each animation.
Notes:

For interleave-layers:
  • the stack of layers are the visible layers, so make sure the zoo frame is no visible otherwise it will also be taken as an animation frame
  • all layers should have exactly the same size (which is the canvas size)
  • when merging the stacks, the stacks should have the same number of layers (in other words, the same number of visible layers in each image)
Reply
#3
A few notes on the images.

The gif's (obviously) are in indexed colour mode. Need to be changed to RGB Image -> Mode -> RGB as a start.

Both animations are optimised and need to be unoptimised as a next step. Filters -> Animation -> Unoptimise

The 'Good Morning' gif has a white background, that needs removing Colors -> Color to Alpha for each layer.

The 'Good Morning' gif has 8 layers the 'Smiley' 24 layers. They will need the same number. Easiest way repeat 'Good Morning' three times to give 24 layers. (hint: Open once, then open as layers another two times)

Then a question of size, 80 pix square animations versus a 1280x720 background. 1280x720 is quite large for an animation. Might be better to scale that down rather than scale the animations up.

Now go and re-read ofnuts section on image sizes all being the same.

Depending how you do it, the base layer can be used as a single layer (Ofnuts sprite mode) or 'duplicate' up to 24 layers (interleave mode)

This a similar request from a couple of years ago. Not exact but the sort of procedure you will need.

https://youtu.be/Rw-Dk0oRdh4 four and a half minutes duration.

Edit:

Quote:..Move every layer manually near the proper XY position near lion....

That is the hard way Wink

Most tools show their position bottom left corner as x.y

Use those values as offsets when you come to resize the canvas of the gif's

example https://i.imgur.com/1ZtAlRw.jpg
Reply
#4
(02-06-2018, 09:03 AM)rich2005 Wrote:
Quote:..Move every layer manually near the proper XY position near lion....

That is the hard way Wink

Most tools show their position bottom left corner as x.y

Use those values as offsets when you come to resize the canvas of the gif's

example https://i.imgur.com/1ZtAlRw.jpg

Or chain-link them, or put pair of H/V guides and tuck each lager in that corner.
Reply
#5
(02-06-2018, 12:29 AM)Ofnuts Wrote: With my interleave-layers script:
Hi Ofnuts, thanks for all the info! In order to download the il script I clicked on the link, unfortunately it is not working, then also googled interleave layers link, apart from some interleave layers python (?) stuff I could not able to find any WORKING link. Do you have a different source?

Kind regards Smile
Reply
#6
Hate those embedded links - don't you Wink

The page is:
http://sourceforge.net/projects/gimp-too...s/scripts/ and the download is well down the page, about 30th item. Well worth a look for all the useful scripts.

however the direct link is

https://sourceforge.net/projects/gimp-to...y/download

and if you ever look at that little video I referenced earlier, you will see it in action.
Reply
#7
(02-07-2018, 08:12 AM)rich2005 Wrote: Hate those embedded links - don't you Wink

The page is:
http://sourceforge.net/projects/gimp-too...s/scripts/ and the download is well down the page, about 30th item. Well worth a look for all the useful scripts.

however the direct link is

https://sourceforge.net/projects/gimp-to...y/download

and if you ever look at that little video I referenced earlier, you will see it in action.

Thank you so much rich2005 and ofnuts, your descriptions and the video were well enough for a newbie like m to understand. Smile Smile Smile I was able to do it. 

Made me very happy! Cool
Reply
#8
(02-07-2018, 08:12 AM)rich2005 Wrote: Hate those embedded links - don't you Wink

The page is:
http://sourceforge.net/projects/gimp-too...s/scripts/ and the download is well down the page, about 30th item. Well worth a look for all the useful scripts.

however the direct link is

https://sourceforge.net/projects/gimp-to...y/download

and if you ever look at that little video I referenced earlier, you will see it in action.

Quick question: I was changing opacity to each frame of the smileys, frame1 10%, frame2 15%, ...  frame8 100%, in order to give the illusion the smiley would be slowly become visible. However, when I did the steps described in the video, the merged frames showed the smiley on the zoo background as if I had never changed the opacity of the individual layers of the smileys before. In other words, when intermeave layers is executed, opacity of the individual layers is understood as 100%. Can I do something about that?
Reply
#9
Never thought about picking the opacity from the source layer. Likely not too hard to fix, but since the script is due for a rewrite I can't/won't patch it up now. So it's back to manual, or to another script... Sorry.
Reply
#10
Probably best to wait for Ofnuts to update the plugins.

Otherwise

It is very annoying, the few tools I have to dump the layers to individual files and the reduced transparency is again removed. Saving each edited (-> colour-mode -> unoptimised -> resized and repositioned) as an .xcf keeps everything.

The best I came up with is very tedious, just as well only 24 layers.

The equivalent animation layer from each .xcf are merged. Lots of drag-and drop from one image to another. Merge Down can be assigned a keyboard shortcut.

The resulting 24 (merged) layers then combined with the background. I used SaulGoodes script for this.
see: http://chiselapp.com/user/saulgoode/repo...pt-fu/home in the animation section.

That got me to here: https://i.imgur.com/CU1m9FH.gif
Reply


Forum Jump: