Page 1 of 1

Duplicate over time dozens of stills without layer for each.

PostPosted: Thu Feb 02, 2023 10:26 pm
by MarnMxxx
Quick graphics design question.
I need to take one still image, a png file (need the alpha) and multiply it dozens of times. Kind of after the 1st one pops up, holds for 2 seconds, then the same image (probably scaled to many sizes), pops up over & over every half second or so to get 2 or 3 dozen of the image over a few seconds all over the screen.
The easy but long way would be to add a layer for each but that would make dozens of layers in the Timeline. Is there a way maybe in Fusion to create multiple version to pop up? I've played with the sDuplicate node in Fusion but I can't get it to work on a png file.

Re: Duplicate over time dozens of stills without layer for e

PostPosted: Thu Feb 02, 2023 10:33 pm
by Sander de Regt
That's because sTools are for shapes. What you're describing sounds like a perfect case for particles in Fusion.

Re: Duplicate over time dozens of stills without layer for e

PostPosted: Thu Feb 02, 2023 11:12 pm
by MarnMxxx
Yea, I found the Duplicate node (no s) but still pretty difficult to get random duplicates over time. I'll look for a particle tutorial & see if I can use that.

Re: Duplicate over time dozens of stills without layer for e

PostPosted: Fri Feb 03, 2023 10:16 am
by Sander de Regt
Or you could try it in 3D space.

Maybe this is similar to what you're after?

Just copy/paste this in your flow area (where the nodes are)

Code: Select all
{
   Tools = ordered() {
      ThisWouldBeYourPNG = TextPlus {
         NameSet = true,
         Inputs = {
            GlobalOut = Input { Value = 100, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            LayoutRotation = Input { Value = 1, },
            TransformRotation = Input { Value = 1, },
            Softness1 = Input { Value = 1, },
            StyledText = Input { Value = "PNG", },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 110, -16.5 } },
      },
      Duplicate3D1 = Duplicate3D {
         CtrlWZoom = false,
         Inputs = {
            FirstCopy = Input {
               SourceOp = "Duplicate3D1FirstCopy",
               Source = "Value",
            },
            LastCopy = Input {
               SourceOp = "Duplicate3D1LastCopy",
               Source = "Value",
            },
            RandomSeed = Input { Value = 17290, },
            ["JitterTranslate.X"] = Input { Value = 1.55, },
            ["JitterTranslate.Y"] = Input { Value = 0.683, },
            ["JitterScale.X"] = Input { Value = 2, },
            SceneInput = Input {
               SourceOp = "ImagePlane3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 49.5 } },
      },
      Duplicate3D1FirstCopy = BezierSpline {
         SplineColor = { Red = 69, Green = 242, Blue = 188 },
         CtrlWZoom = false,
         NameSet = true,
         KeyFrames = {
            [0] = { 0, Flags = { Linear = true } }
         }
      },
      Duplicate3D1LastCopy = BezierSpline {
         SplineColor = { Red = 140, Green = 243, Blue = 6 },
         CtrlWZoom = false,
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 33.3333333333333, 166.666666666667 }, Flags = { Linear = true } },
            [100] = { 500, LH = { 66.6666666666667, 333.333333333333 }, Flags = { Linear = true } }
         }
      },
      ImagePlane3D1 = ImagePlane3D {
         Inputs = {
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "ThisWouldBeYourPNG",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 220, 49.5 } },
      },
      Camera3D1 = Camera3D {
         NameSet = true,
         CustomData = {
            Settings = {
               [1] = {
                  Tools = ordered() {
                     Camera3D1 = Camera3D {
                        Inputs = {
                           ApertureW = Input { Value = 0.831496062992126 },
                           AoV = Input { Value = 19.2642683071402 },
                           ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" } },
                           ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1 },
                           ApertureH = Input { Value = 0.467716535433071 },
                           FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" } },
                           ["MtlStdInputs.MaterialID"] = Input { Value = 1 }
                        },
                        Name = "Camera3D1",
                        CtrlWZoom = false,
                        NameSet = true,
                        ViewInfo = OperatorInfo { Pos = { 550, 214.5 } },
                        CustomData = {
                        }
                     }
                  }
               },
               [6] = {
                  Tools = ordered() {
                     Camera3D1 = Camera3D {
                        Inputs = {
                           FLength = Input { Value = 49.0568334445481 },
                           ["Transform3DOp.Translate.Z"] = Input { Expression = "self.ImageInput.Metadata.Translate.Z" },
                           ImagePlaneEnabled = Input { Value = 0 },
                           AoV = Input {
                              Value = 19.2642683071402,
                              Expression = "self.ImageInput.Metadata.RSCameraFOV or self.ImageInput.Metadata['rs/camera/fov']"
                           },
                           AovType = Input { Value = 1 },
                           ["Transform3DOp.Rotate.Y"] = Input { Expression = "self.ImageInput.Metadata.Rotate.Y" },
                           ApertureH = Input { Value = 0.9 },
                           FilmGate = Input { Value = FuID { "HD" } },
                           ["Transform3DOp.Rotate.X"] = Input { Expression = "self.ImageInput.Metadata.Rotate.X" },
                           ["Transform3DOp.Translate.X"] = Input { Expression = "self.ImageInput.Metadata.Translate.X" },
                           PlaneOfFocus = Input { Expression = "self.ImageInput.Metadata.RSCameraDOFFocusDistance or self.ImageInput.Metadata['rs/camera/DOFFocusDistance']" },
                           FilmBack = Input { Value = 1 },
                           ["Transform3DOp.Rotate.RotOrder"] = Input { Value = FuID { "ZXY" } },
                           ["MtlStdInputs.MaterialID"] = Input { Value = 1 },
                           ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" } },
                           ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1 },
                           ["Transform3DOp.Translate.Y"] = Input { Expression = "self.ImageInput.Metadata.Translate.Y" },
                           ApertureW = Input { Value = 1.6 },
                           ["Transform3DOp.Rotate.Z"] = Input { Expression = "self.ImageInput.Metadata.Rotate.Z" }
                        },
                        CtrlWZoom = false,
                        NameSet = true,
                        ViewInfo = OperatorInfo { Pos = { 387, 145 } },
                        CustomData = {
                        }
                     }
                  }
               }
            }
         },
         Inputs = {
            ProjectionType = Input { Value = FuID { "Orthographic" }, },
            AoV = Input { Value = 19.2642683071402, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis" }, },
            FilmGate = Input { Value = FuID { "BMD_URSA_4K_16x9" }, },
            ApertureW = Input { Value = 0.831496062992126, },
            ApertureH = Input { Value = 0.467716535433071, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 220, 82.5 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Duplicate3D1",
               Source = "Data3D",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 550, 82.5 } },
      },
      Renderer3D1 = Renderer3D {
         CustomData = {
            ToolVersion = 2,
         },
         Inputs = {
            GlobalOut = Input { Value = 100, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            RendererType = Input { Value = FuID { "RendererOpenGL" }, },
            ["RendererOpenGL.AntiAliasing.Channels.RGBA.HighQuality.Enable"] = Input { Value = 1, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Color.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateX"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Supersampling.HighQuality.RateY"] = Input { Value = 3, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.LowQuality.SampleCount"] = Input { Value = 2, },
            ["RendererOpenGL.AntiAliasing.Presets.Aux.Multisampling.HighQuality.SampleCount"] = Input { Value = 3, },
            ["RendererOpenGL.AccumQuality"] = Input { Value = 32, },
         },
         ViewInfo = OperatorInfo { Pos = { 715, 82.5 } },
         SubInputsData = {
            RendererOpenGL = {
               Version = 1
            }
         }
      }
   }
}

Re: Duplicate over time dozens of stills without layer for e

PostPosted: Fri Feb 03, 2023 10:36 am
by deBabba
Sander de Regt wrote:Or you could try it in 3D space.

Maybe this is similar to what you're after?
Thank you Sander :!:

This is another example how to genereta an impressive effect just with a few nodes and the knowledge how to use them ;)

Re: Duplicate over time dozens of stills without layer for e

PostPosted: Fri Feb 03, 2023 10:49 am
by Sander de Regt
I try my best. Glad I could help.