Jump to: Board index » General » Fusion

Page turn/flip effect

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline
User avatar

GiorgioAdolfoKrenkel

  • Posts: 7
  • Joined: Sat Oct 10, 2015 7:21 pm
  • Location: Brasil

Page turn/flip effect

PostSun Oct 11, 2015 9:32 pm

is there a tutorial, or even better a scrip that create this effect?

I tried in 3d, with a bend modifier, but i can't find a way to make it look like a page flip. It looks more like a carpet rolling.


Fusion 8 free version

Thank you!
Offline
User avatar

GiorgioAdolfoKrenkel

  • Posts: 7
  • Joined: Sat Oct 10, 2015 7:21 pm
  • Location: Brasil

Re: Page turn/flip effect

PostMon Oct 12, 2015 9:19 pm

The problem with the 3d bend, was that you need to rotate the image plane. Then i was able to get the page flip effect.

Thank you!
Offline

KenSullivan

  • Posts: 23
  • Joined: Sun May 14, 2017 1:58 am

Re: Page turn/flip effect

PostSat May 27, 2017 4:45 pm

I would like a little more instruction on how to make a page turn effect. Anybody?
Win 10., ASRock x370, 32GB Ram, Nvidia 4090.
Offline

Okke Verbart

  • Posts: 290
  • Joined: Tue Jan 17, 2017 8:40 pm

Re: Page turn/flip effect

PostTue May 30, 2017 4:15 pm

Maybe something like the below (copy & paste the code into a new composition)


Code: Select all
{
   Tools = ordered() {
      Text1 = TextPlus {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.025531914893617, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "- Chapter 1 -", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 46, 64 } },
      },
      Background1 = Background {
         Inputs = {
            Width = Input { Value = 300, },
            Height = Input { Value = 600, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 43, 98 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 167, 70 } },
      },
      ImagePlane3D1 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.PivotNest"] = Input { Value = 1, },
            ["Transform3DOp.Pivot.X"] = Input { Value = -0.5, },
            ["Transform3DOp.ScaleLock"] = Input { Value = 0, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 40, },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.UseTwoSidedLighting"] = Input { Value = 1, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 307, 144 } },
      },
      Bender3D1 = Bender3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "ImagePlane3D1",
               Source = "Output",
            },
            Amount = Input {
               SourceOp = "Bender3D1Amount",
               Source = "Value",
            },
            Axis = Input { Value = 0, },
            Angle = Input { Value = 90, },
            Center = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 432, 139 } },
      },
      Bender3D1Amount = BezierSpline {
         SplineColor = { Red = 6, Green = 235, Blue = 218 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 6.66666666666667, 0.13 }, Flags = { Linear = true } },
            [20] = { 0.27, LH = { 13.3340001106262, 0.27 }, RH = { 33.3319997787476, 0.27 } },
            [60] = { 0, LH = { 46.6666666666667, 0.13 } }
         }
      },
      Transform3D1 = Transform3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Bender3D1",
               Source = "Output",
            },
            ["Transform3DOp.Rotate.Y"] = Input {
               SourceOp = "Transform3D1YRotation",
               Source = "Value",
            },
            ["Transform3DOp.PivotNest"] = Input { Value = 1, },
            ["Transform3DOp.Pivot.X"] = Input { Value = -0.5, },
         },
         ViewInfo = OperatorInfo { Pos = { 582, 143 } },
      },
      Transform3D1YRotation = BezierSpline {
         SplineColor = { Red = 128, Green = 255, Blue = 128 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 20, -60.8450704333333 }, Flags = { Linear = true } },
            [60] = { -182.5352113, LH = { 40, -121.690140866667 }, Flags = { Linear = true } }
         }
      },
      Merge3D1 = Merge3D {
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.9953052, },
            SceneInput1 = Input {
               SourceOp = "Transform3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "ImagePlane3D2",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "SpotLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 763, 144 } },
      },
      Text1_1 = TextPlus {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.0127659574468085, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "Random text for the first chapter\nRandom text for the first chapter\nRandom text for the first chapter\nRandom text for the first chapter\n\n\n", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 389, 339 } },
      },
      Merge1_1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 514, 340 } },
      },
      ImagePlane3D2 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.01, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            MaterialInput = Input {
               SourceOp = "Merge1_1",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 624, 340 } },
      },
      Background1_1 = Background {
         Inputs = {
            Width = Input { Value = 300, },
            Height = Input { Value = 600, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 386, 373 } },
      },
      SpotLight1 = LightSpot {
         CtrlWZoom = false,
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.339796600255703, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 3.07872416102675, },
            Intensity = Input { Value = 0.697872340425532, },
            ConeAngle = Input { Value = 38.6808510638298, },
            PenumbraAngle = Input { Value = 8.76595744680851, },
         },
         ViewInfo = OperatorInfo { Pos = { 937, 86 } },
      }
   },
   ActiveTool = "SpotLight1"
}
www.ablackbirdcalledsue.com
Offline

Jörg-Mark Kasassoglou

  • Posts: 46
  • Joined: Tue Jan 20, 2015 10:40 am

Re: Page turn/flip effect

PostWed Jun 07, 2017 12:02 pm

looks great...

one probably simple question – the pages are Two Sided in the material settings, how would you put different materials on side 01 and side 02?

Is this possible with an ImagePlane node?
Offline
User avatar

Bryan Ray

  • Posts: 2478
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Page turn/flip effect

PostWed Jun 07, 2017 6:54 pm

As far as I am aware, you can't assign a different texture to different sides of the same poly. What you can do, though, is use two copies of the imagePlane. In the Visibility controls, turn on Cull Front Face for one and Cull Back Face for the other. Then feed a different texture into each one.
Code: Select all
{
   Tools = ordered() {
      Text1 = TextPlus {
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            Size = Input { Value = 0.025531914893617, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "- Chapter 1 -", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = "",
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1, },
                     [1] = { 1, 1, 1, 1, },
                  },
               },
            },
            RenderToDPTFile = Input { Disabled = true, },
            DPTType = Input { Disabled = true, },
            DPTResolution = Input { Disabled = true, },
         },
         ViewInfo = OperatorInfo { Pos = { 1309, 159.5, }, },
      },
      Background1 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 300, },
            Height = Input { Value = 600, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1, },
                     [1] = { 1, 1, 1, 1, },
                  },
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1306, 193.5, }, },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1430, 165.5, }, },
      },
      ImagePlane3D1_1 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.PivotNest"] = Input { Value = 1, },
            ["Transform3DOp.Pivot.X"] = Input { Value = -0.5, },
            ["Transform3DOp.ScaleLock"] = Input { Value = 0, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 40, },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.Visibility.CullBackFace"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.UseTwoSidedLighting"] = Input { Value = 1, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 1570, 239.5, }, },
      },
      Bender3D1 = Bender3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Merge3D2",
               Source = "Output",
            },
            Amount = Input {
               SourceOp = "Bender3D1Amount",
               Source = "Value",
            },
            Axis = Input { Value = 0, },
            Angle = Input { Value = 90, },
            Center = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1695, 234.5, }, },
      },
      Bender3D1Amount = BezierSpline {
         SplineColor = { Red = 6, Green = 235, Blue = 218, },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 6.66666666666667, 0.13, }, Flags = { Linear = true, }, },
            [20] = { 0.27, LH = { 13.3340001106262, 0.27, }, RH = { 33.3319997787476, 0.27, }, },
            [60] = { 0, LH = { 46.6666666666667, 0.13, }, },
         },
      },
      Transform3_1 = Transform {
         Inputs = {
            FlipHoriz = Input { Value = 1, },
            Input = Input {
               SourceOp = "Merge1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1320, 313.5, }, },
      },
      Merge1_2 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_2",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform3_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1430, 313.5, }, },
      },
      Background1_2 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 300, },
            Height = Input { Value = 600, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1, },
                     [1] = { 1, 1, 1, 1, },
                  },
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1265, 346.5, }, },
      },
      ImagePlane3D1_2 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.PivotNest"] = Input { Value = 1, },
            ["Transform3DOp.Pivot.X"] = Input { Value = -0.5, },
            ["Transform3DOp.ScaleLock"] = Input { Value = 0, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 40, },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.Visibility.CullFrontFace"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "Merge1_2",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.UseTwoSidedLighting"] = Input { Value = 1, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 1540, 346.5, }, },
      },
      Transform3D1 = Transform3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Bender3D1",
               Source = "Output",
            },
            ["Transform3DOp.Rotate.Y"] = Input {
               SourceOp = "Transform3D1YRotation",
               Source = "Value",
            },
            ["Transform3DOp.PivotNest"] = Input { Value = 1, },
            ["Transform3DOp.Pivot.X"] = Input { Value = -0.5, },
         },
         ViewInfo = OperatorInfo { Pos = { 1845, 238.5, }, },
      },
      Transform3D1YRotation = BezierSpline {
         SplineColor = { Red = 128, Green = 255, Blue = 128, },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 20, -60.8450704333333, }, Flags = { Linear = true, }, },
            [60] = { -182.5352113, LH = { 40, -121.690140866667, }, Flags = { Linear = true, }, },
         },
      },
      Merge3D2 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "ImagePlane3D1_1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "ImagePlane3D1_2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1650, 346.5, }, },
      },
      Merge3D1_1 = Merge3D {
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.9953052, },
            SceneInput1 = Input {
               SourceOp = "Transform3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "ImagePlane3D2",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "SpotLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 2026, 239.5, }, },
      },
      ImagePlane3D2 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.01, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            MaterialInput = Input {
               SourceOp = "Merge1_1",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 1887, 435.5, }, },
      },
      Merge1_1 = Merge {
         CtrlWZoom = false,
         Inputs = {
            Background = Input {
               SourceOp = "Background1_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1650, 445.5, }, },
      },
      Text1_1 = TextPlus {
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            Size = Input { Value = 0.0127659574468085, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "Random text for the first chapter\nRandom text for the first chapter\nRandom text for the first chapter\nRandom text for the first chapter\n\n\n", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = "",
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1, },
                     [1] = { 1, 1, 1, 1, },
                  },
               },
            },
            RenderToDPTFile = Input { Disabled = true, },
            DPTType = Input { Disabled = true, },
            DPTResolution = Input { Disabled = true, },
         },
         ViewInfo = OperatorInfo { Pos = { 1525, 444.5, }, },
      },
      Background1_1 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 300, },
            Height = Input { Value = 600, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1, },
                     [1] = { 1, 1, 1, 1, },
                  },
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1522, 478.5, }, },
      },
      SpotLight1 = LightSpot {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.339796600255703, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 3.07872416102675, },
            Intensity = Input { Value = 0.697872340425532, },
            ConeAngle = Input { Value = 38.6808510638298, },
            PenumbraAngle = Input { Value = 8.76595744680851, },
         },
         ViewInfo = OperatorInfo { Pos = { 2200, 181.5, }, },
      },
   },
}
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

Peter Fleming

  • Posts: 75
  • Joined: Sat Nov 18, 2017 3:08 am

Re: Page turn/flip effect

PostWed Aug 08, 2018 6:48 am

I am a new user of Fusion within Resolve 15 and would like to know the exact procedure on using
this script to do a page turn between two clips. Clip A page turning to reveal clip B.
Okke Verbart wrote:Maybe something like the below (copy & paste the code into a new composition)


Code: Select all
{
   Tools = ordered() {
      Text1 = TextPlus {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.025531914893617, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "- Chapter 1 -", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 46, 64 } },
      },
      Background1 = Background {
         Inputs = {
            Width = Input { Value = 300, },
            Height = Input { Value = 600, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 43, 98 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 167, 70 } },
      },
      ImagePlane3D1 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.PivotNest"] = Input { Value = 1, },
            ["Transform3DOp.Pivot.X"] = Input { Value = -0.5, },
            ["Transform3DOp.ScaleLock"] = Input { Value = 0, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 40, },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.UseTwoSidedLighting"] = Input { Value = 1, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 307, 144 } },
      },
      Bender3D1 = Bender3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "ImagePlane3D1",
               Source = "Output",
            },
            Amount = Input {
               SourceOp = "Bender3D1Amount",
               Source = "Value",
            },
            Axis = Input { Value = 0, },
            Angle = Input { Value = 90, },
            Center = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 432, 139 } },
      },
      Bender3D1Amount = BezierSpline {
         SplineColor = { Red = 6, Green = 235, Blue = 218 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 6.66666666666667, 0.13 }, Flags = { Linear = true } },
            [20] = { 0.27, LH = { 13.3340001106262, 0.27 }, RH = { 33.3319997787476, 0.27 } },
            [60] = { 0, LH = { 46.6666666666667, 0.13 } }
         }
      },
      Transform3D1 = Transform3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Bender3D1",
               Source = "Output",
            },
            ["Transform3DOp.Rotate.Y"] = Input {
               SourceOp = "Transform3D1YRotation",
               Source = "Value",
            },
            ["Transform3DOp.PivotNest"] = Input { Value = 1, },
            ["Transform3DOp.Pivot.X"] = Input { Value = -0.5, },
         },
         ViewInfo = OperatorInfo { Pos = { 582, 143 } },
      },
      Transform3D1YRotation = BezierSpline {
         SplineColor = { Red = 128, Green = 255, Blue = 128 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 20, -60.8450704333333 }, Flags = { Linear = true } },
            [60] = { -182.5352113, LH = { 40, -121.690140866667 }, Flags = { Linear = true } }
         }
      },
      Merge3D1 = Merge3D {
         Inputs = {
            ["Transform3DOp.Translate.Y"] = Input { Value = 0.9953052, },
            SceneInput1 = Input {
               SourceOp = "Transform3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "ImagePlane3D2",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "SpotLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 763, 144 } },
      },
      Text1_1 = TextPlus {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.0127659574468085, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "Random text for the first chapter\nRandom text for the first chapter\nRandom text for the first chapter\nRandom text for the first chapter\n\n\n", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
            ShadingGradient1 = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 389, 339 } },
      },
      Merge1_1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 514, 340 } },
      },
      ImagePlane3D2 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.01, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            MaterialInput = Input {
               SourceOp = "Merge1_1",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 624, 340 } },
      },
      Background1_1 = Background {
         Inputs = {
            Width = Input { Value = 300, },
            Height = Input { Value = 600, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1 },
                     [1] = { 1, 1, 1, 1 }
                  }
               },
            },
         },
         ViewInfo = OperatorInfo { Pos = { 386, 373 } },
      },
      SpotLight1 = LightSpot {
         CtrlWZoom = false,
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.339796600255703, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 3.07872416102675, },
            Intensity = Input { Value = 0.697872340425532, },
            ConeAngle = Input { Value = 38.6808510638298, },
            PenumbraAngle = Input { Value = 8.76595744680851, },
         },
         ViewInfo = OperatorInfo { Pos = { 937, 86 } },
      }
   },
   ActiveTool = "SpotLight1"
}


I would very much appreciate someone walking me through the procedure.
Where to place this script and how to render it.
Thanks in advance
Windows 10 Pro 64-bit
Intel Core i7 Coffee Lake @ 3.70GHz
32.0GB Dual-Channel DDR4 @ 1600MHz
Z370 AORUS Gaming 5-CF
4095MB NVIDIA GeForce RTX 2070
223GB Western Digital SSD
3726GB Western Digital WDC
5589GB INTEL SSDSC2BW120A4
Offline

Sander de Regt

  • Posts: 3500
  • Joined: Thu Nov 13, 2014 10:09 pm

Re: Page turn/flip effect

PostWed Aug 08, 2018 8:43 pm

Open up a new comp and just copy/paste this code. Nodes will show up and you're good to go.
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline

Okke Verbart

  • Posts: 290
  • Joined: Tue Jan 17, 2017 8:40 pm

Re: Page turn/flip effect

PostWed Aug 08, 2018 8:53 pm

Hi - it's not actually a script as such, it's just a composition and you can copy and paste it into the Fusion page in Resolve. Now, one (but no the only) way to make it work:

- add two clips to the timeline, each on a separate track. Overlap where you want the transition (the page flip) to take place. Then cut each clip corresponding to the overlapping area.
- select these 2 "bits", right click and select "new fusion clip"
- go to the fusion page. You should see 2 MediaIn's going into a merge. You can delete the merge.
- paste the comp/code from this thread and feed in the MediaIn1 into one of the Imageplane's and the MeidaIn2 into the other one.
- add a camera 3D to the merge3D and set the projection mode to "Orthographic" and make the z-offset positive (exact value doesn't matter).
- add a renderer3D and display it (I personally set it to OpenGL). Then tweak the "scale" on the controls tab of the camera3D until the image fits perfectly to the canvas.
- feed the renderer3D into the media out.

- you then probably need to move some keyframes around etc.

This won't get you there the full 100% (as you probably still want to work with lights, reflection etc), but it should get you started.
www.ablackbirdcalledsue.com
Offline

Jörg-Mark Kasassoglou

  • Posts: 46
  • Joined: Tue Jan 20, 2015 10:40 am

Re: Page turn/flip effect

PostThu Aug 09, 2018 3:42 pm

I found a way to do this without having to deal with duplicated image planes - a few days ago I had a similar task which I could solve with the help of Vito :-)

Code: Select all
{
   Tools = ordered() {
      Background1 = Background {
         Inputs = {
            Width = Input { Value = 300, },
            Height = Input { Value = 600, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { -858.186, -358.906 } },
      },
      Text1 = TextPlus {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.025531914893617, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "- Chapter 1 -", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { -857.665, -463.976 } },
      },
      Transform1 = Transform {
         Inputs = {
            FlipHoriz = Input { Value = 1, },
            UseSizeAndAspect = Input { Value = 0, },
            Input = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { -698.035, -463.976 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { -698.035, -358.906 } },
      },
      Background1_3 = Background {
         Inputs = {
            Width = Input { Value = 300, },
            Height = Input { Value = 600, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { -1145.43, -139.996 } },
      },
      Merge1_3 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_3",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1_3",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { -588.29, -139.996 } },
      },
      Text1_3 = TextPlus {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.025531914893617, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "- Chapter 1 -\nBackside", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { -588.29, -240.869 } },
      },
      Note1_1_1 = Note {
         Inputs = {
            Comments = Input { Value = "flip the backside text", }
         },
         ViewInfo = StickyNoteInfo {
            Pos = { -565.317, -479.113 },
            Flags = {
               Expanded = true
            },
            Size = { 390.661, 138.405 }
         },
      },
      Merge3D7_1_1_1_1_2_1_1_1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "ReplaceMaterial3D1_1_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "PipeRouter2_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { -433.398, 18.5612 } },
      },
      ReplaceMaterial3D1_1_1_1_1_1_2_1_1_1 = ReplaceMaterial3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Override3D1_1_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
            MaterialInput = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 8, },
         },
         ViewInfo = OperatorInfo { Pos = { -603.733, 18.5612 } },
      },
      Override3D1_1_1_1_1_1_2_1_1_1 = Override3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "PipeRouter4_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
            ["Visibility.DoCullFrontFace"] = Input { Value = 1, },
            ["Visibility.CullFrontFace"] = Input { Value = 1, },
            ["Visibility.CullBackFace"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { -719.098, 18.5612 } },
      },
      ImagePlane3D2_2 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.01, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            MaterialInput = Input {
               SourceOp = "Background1_3",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { -970.678, 18.5612 } },
      },
      PipeRouter4_1_1_1_1_2_1_1_1 = PipeRouter {
         Inputs = {
            Input = Input {
               SourceOp = "ImagePlane3D2_2",
               Source = "Output",
            },
         },
         ViewInfo = PipeRouterInfo { Pos = { -813.973, 18.5612 } },
      },
      Note1 = Note {
         Inputs = {
            Comments = Input { Value = "set size of the imageplane", }
         },
         ViewInfo = StickyNoteInfo {
            Pos = { -1224.55, -16.1806 },
            Flags = {
               Expanded = true
            },
            Size = { 196, 130.226 }
         },
      },
      ReplaceMaterial3D1_2_1_1_1_2_1_1_1 = ReplaceMaterial3D {
         CtrlWZoom = false,
         Inputs = {
            SceneInput = Input {
               SourceOp = "Override3D1_2_1_1_1_2_1_1_1",
               Source = "Output",
            },
            ["ReplaceMode.Nest"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "Merge1_3",
               Source = "Output",
            },
            ["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.407, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.086, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 8, },
         },
         ViewInfo = OperatorInfo { Pos = { -588.29, 66.6313 } },
      },
      Override3D1_2_1_1_1_2_1_1_1 = Override3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "PipeRouter3_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
            ["Visibility.DoCullBackFace"] = Input { Value = 1, },
            ["Visibility.CullBackFace"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { -720.382, 66.6313 } },
      },
      PipeRouter3_1_1_1_1_2_1_1_1 = PipeRouter {
         Inputs = {
            Input = Input {
               SourceOp = "PipeRouter4_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
         },
         ViewInfo = PipeRouterInfo { Pos = { -813.973, 66.6313 } },
      },
      PipeRouter2_1_1_1_1_2_1_1_1 = PipeRouter {
         Inputs = {
            Input = Input {
               SourceOp = "ReplaceMaterial3D1_2_1_1_1_2_1_1_1",
               Source = "Output",
            },
         },
         ViewInfo = PipeRouterInfo { Pos = { -433.398, 66.6313 } },
      },
      Bender3D1 = Bender3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Merge3D7_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
            Amount = Input {
               SourceOp = "Bender3D1Amount",
               Source = "Value",
            },
            Axis = Input { Value = 0, },
            Angle = Input { Value = 90, },
            Center = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { -44.9528, 18.5612 } },
      },
      Bender3D1Amount = BezierSpline {
         SplineColor = { Red = 6, Green = 235, Blue = 218 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 6.66666666666667, 0.13 }, Flags = { Linear = true } },
            [20] = { 0.27, LH = { 13.3340001106262, 0.27 }, RH = { 33.3319997787476, 0.27 } },
            [60] = { 0, LH = { 46.6666666666667, 0.13 } }
         }
      },
      Note1_1 = Note {
         Inputs = {
            Comments = Input { Value = "cull front face on one override\n\ncull backface face on the other override", }
         },
         ViewInfo = StickyNoteInfo {
            Pos = { -777.972, 121.227 },
            Flags = {
               Expanded = true
            },
            Size = { 390.661, 138.405 }
         },
      },
      Text1_1 = TextPlus {
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.0127659574468085, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "Random text for the first chapter\nRandom text for the first chapter\nRandom text for the first chapter\nRandom text for the first chapter\n\n\n", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { -81.1845, 152.329 } },
      },
      Transform3D1 = Transform3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Bender3D1",
               Source = "Output",
            },
            ["Transform3DOp.Translate.Z"] = Input { Value = 0.0001, },
            ["Transform3DOp.Rotate.Y"] = Input {
               SourceOp = "Transform3D1YRotation",
               Source = "Value",
            },
            ["Transform3DOp.PivotNest"] = Input { Value = 1, },
            ["Transform3DOp.Pivot.X"] = Input { Value = -0.5, },
         },
         ViewInfo = OperatorInfo { Pos = { 108.293, 18.5612 } },
      },
      Transform3D1YRotation = BezierSpline {
         SplineColor = { Red = 128, Green = 255, Blue = 128 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 20, -60.8450704333333 }, Flags = { Linear = true } },
            [60] = { -182.5352113, LH = { 40, -121.690140866667 }, Flags = { Linear = true } }
         }
      },
      Merge1_1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 50.9756, 219.561 } },
      },
      ImagePlane3D2 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.01, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            MaterialInput = Input {
               SourceOp = "Merge1_1",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 287.963, 219.561 } },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -1.45458712807556, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 1.00486993639714, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.0517333972172493, },
            SceneInput1 = Input {
               SourceOp = "Transform3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "ImagePlane3D2",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "SpotLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 304.505, 18.5612 } },
      },
      Background1_1 = Background {
         Inputs = {
            Width = Input { Value = 300, },
            Height = Input { Value = 600, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { -81.9726, 266.416 } },
      },
      SpotLight1 = LightSpot {
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.339796600255703, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 3.07872416102675, },
            Intensity = Input { Value = 0.697872340425532, },
            ConeAngle = Input { Value = 38.6808510638298, },
            PenumbraAngle = Input { Value = 8.76595744680851, },
         },
         ViewInfo = OperatorInfo { Pos = { 833.88, 23.5612 } },
      }
   }
}
Offline
User avatar

Bryan Ray

  • Posts: 2478
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Page turn/flip effect

PostThu Aug 09, 2018 5:27 pm

Override3D is one of those incredibly powerful tools that I always overlook.

If you wanted to play some node golf, you could manage this with only one set of Override and ReplaceMaterial nodes:

Code: Select all
{
   Tools = ordered() {
      Text1 = TextPlus {
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.025531914893617, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "- Chapter 1 -", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 220.521, 272.075 } },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_3",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Transform1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 367.41 } },
      },
      Background1_3 = Background {
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 300, },
            Height = Input { Value = 600, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 220, 367.41 } },
      },
      Transform1 = Transform {
         Inputs = {
            FlipHoriz = Input { Value = 1, },
            UseSizeAndAspect = Input { Value = 0, },
            Input = Input {
               SourceOp = "Text1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 385, 272.075 } },
      },
      Note1_1_1 = Note {
         Inputs = {
            Comments = Input { Value = "flip the backside text", }
         },
         ViewInfo = StickyNoteInfo {
            Pos = { 495, 247.5 },
            Flags = {
               Expanded = true
            },
            Size = { 191.257, 71.937 }
         },
      },
      Text1_3 = TextPlus {
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.025531914893617, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "- Chapter 1 -\nBackside", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 764.896, 280.5 } },
      },
      Merge1_3 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_3",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1_3",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 764.896, 367.41 } },
      },
      Bender3D1 = Bender3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Merge3D7_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
            Amount = Input {
               SourceOp = "Bender3D1Amount",
               Source = "Value",
            },
            Axis = Input { Value = 0, },
            Angle = Input { Value = 90, },
            Center = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1135.54, 525.967 } },
      },
      Bender3D1Amount = BezierSpline {
         SplineColor = { Red = 6, Green = 235, Blue = 218 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 6.66666666666667, 0.13 }, Flags = { Linear = true } },
            [20] = { 0.27, LH = { 13.3340001106262, 0.27 }, RH = { 33.3319997787476, 0.27 } },
            [60] = { 0, LH = { 46.6666666666667, 0.13 } }
         }
      },
      ImagePlane3D2_2 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.01, },
            ["SurfacePlaneInputs.Visibility.Nest"] = Input { Value = 1, },
            ["SurfacePlaneInputs.Visibility.CullFrontFace"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            MaterialInput = Input {
               SourceOp = "Merge1",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 382.508, 525.967 } },
      },
      Merge3D7_1_1_1_1_2_1_1_1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "PipeRouter4_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "PipeRouter2_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 919.788, 525.967 } },
      },
      PipeRouter4_1_1_1_1_2_1_1_1 = PipeRouter {
         Inputs = {
            Input = Input {
               SourceOp = "ImagePlane3D2_2",
               Source = "Output",
            },
         },
         ViewInfo = PipeRouterInfo { Pos = { 539.213, 525.967 } },
      },
      Merge1_1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "Background1_3",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Text1_1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1248.01, 367.41 } },
      },
      Text1_1 = TextPlus {
         Inputs = {
            GlobalIn = Input { Value = 1, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            Size = Input { Value = 0.0127659574468085, },
            Font = Input { Value = "Open Sans", },
            StyledText = Input { Value = "Random text for the first chapter\nRandom text for the first chapter\nRandom text for the first chapter\nRandom text for the first chapter\n\n\n", },
            Style = Input { Value = "Bold", },
            ManualFontKerningPlacement = Input {
               Value = StyledText {
                  Array = {
                  },
                  Value = ""
               },
            },
            Red1 = Input { Value = 0, },
            Green1 = Input { Value = 0, },
            Blue1 = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 1248.01, 280.5 } },
      },
      Override3D1_2_1_1_1_2_1_1_1 = Override3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "PipeRouter3_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
            ["Visibility.DoCullFrontFace"] = Input { Value = 1, },
            ["Visibility.DoCullBackFace"] = Input { Value = 1, },
            ["Visibility.CullBackFace"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 632.804, 574.037 } },
      },
      ReplaceMaterial3D1_2_1_1_1_2_1_1_1 = ReplaceMaterial3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Override3D1_2_1_1_1_2_1_1_1",
               Source = "Output",
            },
            ["ReplaceMode.Nest"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "Merge1_3",
               Source = "Output",
            },
            ["MtlStdInputs.Diffuse.Color.Red"] = Input { Value = 0.407, },
            ["MtlStdInputs.Diffuse.Color.Green"] = Input { Value = 0.086, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 8, },
         },
         ViewInfo = OperatorInfo { Pos = { 764.896, 574.037 } },
      },
      Transform3D1 = Transform3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Bender3D1",
               Source = "Output",
            },
            ["Transform3DOp.Translate.Z"] = Input { Value = 0.0001, },
            ["Transform3DOp.Rotate.Y"] = Input {
               SourceOp = "Transform3D1YRotation",
               Source = "Value",
            },
            ["Transform3DOp.PivotNest"] = Input { Value = 1, },
            ["Transform3DOp.Pivot.X"] = Input { Value = -0.5, },
         },
         ViewInfo = OperatorInfo { Pos = { 1288.79, 525.967 } },
      },
      Transform3D1YRotation = BezierSpline {
         SplineColor = { Red = 128, Green = 255, Blue = 128 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 20, -60.8450704333333 }, Flags = { Linear = true } },
            [60] = { -182.5352113, LH = { 40, -121.690140866667 }, Flags = { Linear = true } }
         }
      },
      PipeRouter3_1_1_1_1_2_1_1_1 = PipeRouter {
         Inputs = {
            Input = Input {
               SourceOp = "PipeRouter4_1_1_1_1_2_1_1_1",
               Source = "Output",
            },
         },
         ViewInfo = PipeRouterInfo { Pos = { 539.213, 574.037 } },
      },
      PipeRouter2_1_1_1_1_2_1_1_1 = PipeRouter {
         Inputs = {
            Input = Input {
               SourceOp = "ReplaceMaterial3D1_2_1_1_1_2_1_1_1",
               Source = "Output",
            },
         },
         ViewInfo = PipeRouterInfo { Pos = { 919.788, 574.037 } },
      },
      SpotLight1 = LightSpot {
         CtrlWZoom = false,
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -0.339796600255703, },
            ["Transform3DOp.Translate.Z"] = Input { Value = 3.07872416102675, },
            Intensity = Input { Value = 0.697872340425532, },
            ConeAngle = Input { Value = 38.6808510638298, },
            PenumbraAngle = Input { Value = 8.76595744680851, },
         },
         ViewInfo = OperatorInfo { Pos = { 1422.31, 445.5 } },
      },
      Merge3D1 = Merge3D {
         CtrlWZoom = false,
         Inputs = {
            ["Transform3DOp.Translate.X"] = Input { Value = -1.45458712807556, },
            ["Transform3DOp.Translate.Y"] = Input { Value = 1.00486993639714, },
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.0517333972172493, },
            SceneInput1 = Input {
               SourceOp = "Transform3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "ImagePlane3D2",
               Source = "Output",
            },
            SceneInput3 = Input {
               SourceOp = "SpotLight1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1485, 525.967 } },
      },
      ImagePlane3D2 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -0.01, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            MaterialInput = Input {
               SourceOp = "Merge1_1",
               Source = "Output",
            },
            ["MtlStdInputs.Specular.Nest"] = Input { Value = 1, },
            ["MtlStdInputs.Specular.Intensity"] = Input { Value = 0, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 1485, 367.41 } },
      }
   }
}
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

Peter Fleming

  • Posts: 75
  • Joined: Sat Nov 18, 2017 3:08 am

Re: Page turn/flip effect

PostThu Aug 09, 2018 11:34 pm

Thank you all for your detailed input. I have started to work it all out, so hopefully will be able to come up with something that works well for me.
Windows 10 Pro 64-bit
Intel Core i7 Coffee Lake @ 3.70GHz
32.0GB Dual-Channel DDR4 @ 1600MHz
Z370 AORUS Gaming 5-CF
4095MB NVIDIA GeForce RTX 2070
223GB Western Digital SSD
3726GB Western Digital WDC
5589GB INTEL SSDSC2BW120A4
Offline

zcream

  • Posts: 36
  • Joined: Sun Apr 08, 2018 11:55 pm
  • Real Name: Anmol mishra

Re: Page turn/flip effect

PostThu Nov 08, 2018 4:04 am

Could this be adapted to curl the page during the page turn?

Sent from my Redmi 4A using Tapatalk
Offline
User avatar

Bryan Ray

  • Posts: 2478
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Page turn/flip effect

PostThu Nov 08, 2018 5:55 am

Sure. Add a Bender 3D tool.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com

Return to Fusion

Who is online

Users browsing this forum: No registered users and 30 guests