1

so I had this idea but inorder to do it, I need to have water as a green screen. (Because I wanted to make the image move like water). So I was thinking of using dye to color the water and key that color out in premiere pro but its not working that well.

Is there any alternative to this. Or even an effect in premiere or after effect that let's you move images like the flow of water?

3
  • 1
    Welcome! Water won't give you a clean key. You need the color of your background to be pretty uniform and water scatters light and rarely looks a single color, especially if moving. Also, when keyed out, the background is gone and replaced with the key signal, so if you even get a clean key, the movement of the water won't transform your key signal to map on to the peaks and valleys of the water. It will just be the flat key signal. I'm not a motion graphics expert, so I can't point you to a specific plugin, but After Effects is likely the way to go. Aug 12, 2020 at 14:45
  • to make an image move like water, you want to "displace" the image. I'm not sure what the AE effect for this is called, but in Blackmagic Fusion (free), it's called displace and uses a luminance field as input. The caustic light pattern that you see at the bottom of a swimming pool would probably work well. There's other ways to use "normal maps" which use RGB values, instead of just B&W luminance, but generating them is more complicated, and they don't resemble anything in the natural world, so you cant just go out and film them. Aug 12, 2020 at 23:56
  • youtube.com/watch?v=l_0k_jGwW8Y This is the light pattern im talking about Aug 12, 2020 at 23:58

2 Answers 2

2

Take a look at using noise turbulence to displace the image. You can do this in after effects. There are lots of good tutorials on it. I recommend this one:

Maybe add some images so we can see what you have and what you’re going for.

0

You can make an image move like water by using a displacement map. This will warp the image as if the folds in the surface of the water are refracting the light as it passes through. For better results, you'd also want a separate map for reflection and/or specularity on top of the water surface. Here's an example in Blackmagic Fusion. If you copy the code text here, and paste it into the Node graph of fusion, it'll show up as a working composition. Here's what the result looks like. Of course, you'll need to supply your own footage, but you can examine this setup to see how it works.

{
Tools = ordered() {
    MediaIn1 = MediaIn {
        ExtentSet = true,
        CustomData = {
            MediaProps = {
                MEDIA_HEIGHT = 2160,
                MEDIA_LAYERS_IN_OUT_LIST = {
                    {
                        0,
                        24
                    }
                },
                MEDIA_MARK_IN = 0,
                MEDIA_MARK_OUT = 23,
                MEDIA_NAME = "Fusion Clip 1",
                MEDIA_NUM_FRAMES = 24,
                MEDIA_NUM_LAYERS = 1,
                MEDIA_PAR = 1,
                MEDIA_SRC_FRAME_RATE = 23.976023976024,
                MEDIA_START_FRAME = 0,
                MEDIA_WIDTH = 4096
            },
        },
        Inputs = {
            GlobalOut = Input { Value = 23, },
            Layer = Input { Value = "0", },
            ClipTimeEnd = Input { Value = 23, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
        },
        ViewInfo = OperatorInfo { Pos = { 114.524, 26.8857 } },
    },
    TimeSpeed1 = TimeSpeed {
        Inputs = {
            Speed = Input { Value = 5, },
            Input = Input {
                SourceOp = "MediaIn2",
                Source = "Output",
            },
        },
        ViewInfo = OperatorInfo { Pos = { 191.735, 135.686 } },
    },
    Displace1 = Displace {
        Inputs = {
            UseGPU = Input { Value = 0, },
            Offset = Input { Value = -0.445, },
            RefractionStrength = Input { Value = 0.95, },
            LightPower = Input { Value = 3, },
            Spread = Input { Value = 1.228, },
            LightChannel = Input { Value = 5, },
            Input = Input {
                SourceOp = "MediaIn1",
                Source = "Output",
            },
            Foreground = Input {
                SourceOp = "TimeSpeed1",
                Source = "Output",
            },
        },
        ViewInfo = OperatorInfo { Pos = { 290.267, 56.7689 } },
    },
    MediaIn2 = MediaIn {
        ExtentSet = true,
        CustomData = {
            MediaProps = {
                MEDIA_FORMAT_TYPE = "QuickTime",
                MEDIA_HEIGHT = 360,
                MEDIA_MARK_IN = 0,
                MEDIA_MARK_OUT = 449,
                MEDIA_NAME = "122253798-animated-background-abstract-c.mp4",
                MEDIA_NUM_FRAMES = 450,
                MEDIA_NUM_LAYERS = 1,
                MEDIA_PAR = 1,
                MEDIA_PATH = "/Users/jasonconrad/Movies/122253798-animated-background-abstract-c.mp4",
                MEDIA_SRC_FRAME_RATE = 30,
                MEDIA_START_FRAME = 0,
                MEDIA_WIDTH = 640
            },
        },
        Inputs = {
            GlobalOut = Input { Value = 449, },
            MediaID = Input { Value = "87a9779e-8ba3-47cc-a30d-7b1cbf3b3ff2", },
            Layer = Input { Value = "", },
            ClipTimeEnd = Input { Value = 449, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
        },
        ViewInfo = OperatorInfo { Pos = { 134.151, 185.76 } },
    },
    Merge1 = Merge {
        CtrlWZoom = false,
        Inputs = {
            Background = Input {
                SourceOp = "Displace1",
                Source = "Output",
            },
            Foreground = Input {
                SourceOp = "TimeSpeed1",
                Source = "Output",
            },
            Size = Input { Value = 6.6, },
            SubtractiveAdditive = Input { Value = 0.118, },
            Gain = Input { Value = 0.15, },
            PerformDepthMerge = Input { Value = 0, },
        },
        ViewInfo = OperatorInfo { Pos = { 468.84, 64.6124 } },
    },
    MediaOut1 = MediaOut {
        Inputs = {
            Index = Input { Value = "0", },
            Input = Input {
                SourceOp = "Merge1",
                Source = "Output",
            },
        },
        ViewInfo = OperatorInfo { Pos = { 653.863, 63.2301 } },
    }
},
ActiveTool = "Merge1"

}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.