Jump to: Board index » General » Fusion

Mask or keyer?

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

Animumtrix

  • Posts: 20
  • Joined: Wed Oct 23, 2024 3:55 pm
  • Real Name: Seana Kozar

Mask or keyer?

PostWed Jan 15, 2025 6:46 pm

Hi,

I want to use this stage scene I animated as a mask for some painted dance footage that will be composited on the stage area, where the yellow area is. Would I use a (magic) mask, or some kind of keyer or something else? This is how the scene starts. After the performance ends, the audience (as silhouettes) claps, waves hands and generally carries on. So there will be movement in the silhouettes, though this frame is held for awhile while the performance finishes.

This was shot on a light table under the camera as stop motion. Background scene was under glass and then the waving arms, clapping hands and so on were animated on the top in silhouette. The yellow part between the curtains is background and does not itself change. Only the people silhouettes have some movement.

Any advice or links to other threads or videos appreciated. If I need a multipoly mask because of the irregular shapes between the people, please let me know. I’ve been reading and looking up tutorials but a lot of them are a bit simpler than this.

Thank you!
Attachments
IMG_3365.jpeg
How to mask the yellow stage area so other video can play?
IMG_3365.jpeg (330.63 KiB) Viewed 1247 times
Offline

Sander de Regt

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

Re: Mask or keyer?

PostWed Jan 15, 2025 7:25 pm

If the shapes stay as dark as they are in your example, keying out the yellow shouldn't be an issue at all.
In this case you're probably best off with the regular chromakeyer, since the other keyers are geared to blue and/or green specifically.
Sander de Regt

ShadowMaker SdR
The Netherlands
Online
User avatar

KrunoSmithy

  • Posts: 3579
  • Joined: Fri Oct 20, 2023 11:01 pm
  • Real Name: Kruno Stifter

Re: Mask or keyer?

PostWed Jan 15, 2025 9:06 pm

Yes, What Sander said. If the characters in the foreground do not move, all you have to do is key the yellow and mask out the yellow with a garbage mask in the hair of that one female character in the audience. But probably the best is to do keying and some basic manual roto.
Offline
User avatar

Bryan Ray

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

Re: Mask or keyer?

PostThu Jan 16, 2025 1:58 am

Sander de Regt wrote:In this case you're probably best off with the regular chromakeyer, since the other keyers are geared to blue and/or green specifically.


I'd probably use a Color Correct to rotate the hue so the screen becomes blue and use DeltaKeyer on that. I don't find ChromaKeyer to be a pleasant experience

Code: Select all
{
   Tools = ordered() {
      Loader1 = Loader {
         Clips = {
            Clip {
               ID = "Clip1",
               Filename = "C:\\Users\\Bryan\\Desktop\\_temp_img\\IMG_3365.jpeg",
               FormatID = "JpegFormat",
               StartFrame = 3365,
               LengthSetManually = true,
               TrimIn = 0,
               TrimOut = 0,
               ExtendFirst = 0,
               ExtendLast = 0,
               Loop = 0,
               AspectMode = 0,
               Depth = 0,
               TimeCode = 0,
               GlobalStart = 0,
               GlobalEnd = 0
            }
         },
         Inputs = {
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 435.333, 18.2727 } },
      },
      ColorCorrector1 = ColorCorrector {
         Inputs = {
            WheelHue1 = Input { Value = 0.408, },
            WheelSaturation1 = Input { Value = 2, },
            ColorRanges = Input {
               Value = ColorCurves {
                  Curves = {
                     {
                        Points = {
                           { 0, 1 },
                           { 0.4, 0.2 },
                           { 0.6, 0 },
                           { 1, 0 }
                        }
                     },
                     {
                        Points = {
                           { 0, 0 },
                           { 0.4, 0 },
                           { 0.6, 0.2 },
                           { 1, 1 }
                        }
                     }
                  }
               },
            },
            HistogramIgnoreTransparent = Input { Value = 1, },
            Input = Input {
               SourceOp = "Loader1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 572, 21.9091 } },
      },
      DeltaKeyer1 = DeltaKeyer {
         Inputs = {
            BackgroundRed = Input { Value = 0.43529412150383, },
            BackgroundGreen = Input { Value = 0.713725507259369, },
            BackgroundBlue = Input { Value = 0.984313726425171, },
            TuningRanges = Input {
               Value = ColorCurves {
                  Curves = {
                     {
                        Points = {
                           { 0, 1 },
                           { 0.4, 0.2 },
                           { 0.6, 0 },
                           { 1, 0 }
                        }
                     },
                     {
                        Points = {
                           { 0, 0 },
                           { 0.4, 0 },
                           { 0.6, 0.2 },
                           { 1, 1 }
                        }
                     }
                  }
               },
            },
            ["Solid.Matte"] = Input {
               SourceOp = "BSpline1",
               Source = "Mask",
            },
            Input = Input {
               SourceOp = "ColorCorrector1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 683.333, 22.5151 } },
      },
      BSpline1 = BSplineMask {
         DrawMode = "InsertAndModify",
         DrawMode2 = "InsertAndModify",
         CtrlWZoom = false,
         Inputs = {
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            OutputSize = Input { Value = FuID { "Custom" }, },
            MaskWidth = Input { Value = 2144, },
            MaskHeight = Input { Value = 1659, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "BSpline1Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = BSplinePolyline {
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { }
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 696, -5.96969 } },
      },
      BSpline1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         CtrlWZoom = false,
         NameSet = true,
         KeyFrames = {
            [0] = { 0, Flags = { Linear = true, LockedY = true }, Value = BSplinePolyline {
                  Closed = true,
                  Points = {
                     { X = 0.216201489665787, Y = -0.0852328034096924 },
                     { X = 0.24200606056131, Y = -0.0584022971724918 },
                     { X = 0.25841231056131, Y = -0.0601698070046617 },
                     { X = 0.270597478471757, Y = -0.0720274902082238 },
                     { X = 0.302920239665787, Y = -0.0803721513712251 },
                     { X = 0.31092270598724, Y = -0.0914793505352572 },
                     { X = 0.32014752813401, Y = -0.109333699935023 },
                     { X = 0.331791508322504, Y = -0.137199314215508 },
                     { X = 0.353832417382178, Y = -0.190228906465553 },
                     { X = 0.30536644269759, Y = -0.210682669004638 },
                     { X = 0.317132414289904, Y = -0.248303706571611 },
                     { X = 0.324314734731893, Y = -0.259554653243969 },
                     { X = 0.344809421175366, Y = -0.25828105109765 },
                     { X = 0.320114138953877, Y = -0.270994369980213 },
                     { X = 0.307423577603172, Y = -0.257734586499704 },
                     { X = 0.297812018685056, Y = -0.249966597325951 },
                     { X = 0.287331402085732, Y = -0.240032595354122 },
                     { X = 0.272064461581073, Y = -0.229607219818808 },
                     { X = 0.24886004169157, Y = -0.177102802014468 },
                     { X = 0.228970538929139, Y = -0.110847227166135 }
                  },
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }
               } }
         }
      },
      MatteControl1 = MatteControl {
         Inputs = {
            MatteCombine = Input { Value = 4, },
            Filter = Input { Value = FuID { "Fast Gaussian" }, },
            PostMultiplyImage = Input { Value = 1, },
            Background = Input {
               SourceOp = "Loader1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "DeltaKeyer1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 730, 88.5757 } },
      },
      BrightnessContrast1 = BrightnessContrast {
         Inputs = {
            Gain = Input { Value = 0.36, },
            Input = Input {
               SourceOp = "CustomTool1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 706, 149.788 } },
      },
      Checkerboard = MacroOperator {
         CustomData = {
            Path = {
               Map = {
                  ["Setting:"] = "Macros:\\Creator\\"
               }
            },
         },
         Inputs = ordered() {
            Comments = Input { Value = "Muse Tools Library\r\nby Joe Laude\r\nwww.musevfx.com", },
            Center = InstanceInput {
               SourceOp = "CustomTool1",
               Source = "PointIn1",
            },
            CheckerSize = InstanceInput {
               SourceOp = "CustomTool1",
               Source = "CheckerSize",
               Default = 64,
            },
            Width = InstanceInput {
               SourceOp = "Background1",
               Source = "Width",
               Default = 1920,
            },
            Height = InstanceInput {
               SourceOp = "Background1",
               Source = "Height",
               Default = 1080,
            }
         },
         Outputs = {
            Output = InstanceOutput {
               SourceOp = "CustomTool1",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 596.667, 152.212 } },
         Tools = ordered() {
            Background1 = Background {
               CtrlWZoom = false,
               CtrlWShown = false,
               Inputs = {
                  Width = Input { Value = 2144, },
                  Height = Input { Value = 1659, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 8.25757 } },
            },
            CustomTool1 = Custom {
               CtrlWZoom = false,
               CtrlWShown = false,
               Inputs = {
                  NumberIn1 = Input {
                     Value = 64,
                     Expression = "CheckerSize",
                  },
                  LUTIn1 = Input {
                     SourceOp = "CustomTool1LUTIn1",
                     Source = "Value",
                  },
                  LUTIn2 = Input {
                     SourceOp = "CustomTool1LUTIn2",
                     Source = "Value",
                  },
                  LUTIn3 = Input {
                     SourceOp = "CustomTool1LUTIn3",
                     Source = "Value",
                  },
                  LUTIn4 = Input {
                     SourceOp = "CustomTool1LUTIn4",
                     Source = "Value",
                  },
                  Intermediate1 = Input { Value = "(abs(floor((x-p1x)*(w/n1)))%2)", },
                  Intermediate2 = Input { Value = "(abs(floor((y-p1y)*(h/n1)))%2)", },
                  RedExpression = Input { Value = "abs(i1-i2)", },
                  GreenExpression = Input { Value = "abs(i1-i2)", },
                  BlueExpression = Input { Value = "abs(i1-i2)", },
                  NumberControls = Input { Value = 1, },
                  NameforNumber1 = Input { Value = "SquareSize", },
                  ShowNumber2 = Input { Value = 0, },
                  ShowNumber3 = Input { Value = 0, },
                  ShowNumber4 = Input { Value = 0, },
                  ShowNumber5 = Input { Value = 0, },
                  ShowNumber6 = Input { Value = 0, },
                  ShowNumber7 = Input { Value = 0, },
                  ShowNumber8 = Input { Value = 0, },
                  PointControls = Input { Value = 1, },
                  NameforPoint1 = Input { Value = "Center", },
                  ShowPoint2 = Input { Value = 0, },
                  ShowPoint3 = Input { Value = 0, },
                  ShowPoint4 = Input { Value = 0, },
                  ShowLUT1 = Input { Value = 0, },
                  ShowLUT2 = Input { Value = 0, },
                  ShowLUT3 = Input { Value = 0, },
                  ShowLUT4 = Input { Value = 0, },
                  Image1 = Input {
                     SourceOp = "Background1",
                     Source = "Output",
                  },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 41.2576 } },
               UserControls = ordered() {
                  CheckerSize = {
                     INP_MinScale = 0,
                     INP_Integer = true,
                     INP_MinAllowed = 0,
                     LINKID_DataType = "Number",
                     INPID_InputControl = "SliderControl",
                     IC_ControlPage = 0,
                     INP_MaxScale = 100,
                     INP_Default = 64,
                  }
               }
            },
            CustomTool1LUTIn1 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 204, Green = 0, Blue = 0 },
               CtrlWZoom = false,
            },
            CustomTool1LUTIn2 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 0, Green = 204, Blue = 0 },
               CtrlWZoom = false,
            },
            CustomTool1LUTIn3 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 0, Green = 0, Blue = 204 },
               CtrlWZoom = false,
            },
            CustomTool1LUTIn4 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 204, Green = 204, Blue = 204 },
               CtrlWZoom = false,
            }
         },
      },
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "BrightnessContrast1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "MatteControl1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
         },
         ViewInfo = OperatorInfo { Pos = { 878.667, 137.061 } },
      }
   }
}
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

Sam Steti

  • Posts: 2957
  • Joined: Tue Jun 17, 2014 7:29 am
  • Location: France

Re: Mask or keyer?

PostThu Jan 16, 2025 12:17 pm

Funny to see different suggestions...

I'd personally first turn the pic into HSL with a ColorSpace node (Conversion : To color / Color Type : HLS), and then key what was previously yellowish with a Chromakeyer, action normally eased a lot by the previous conversion, then get the mask ...

(but I know myself, I surely tried at least quickly to throw a Luma Keyer at it just to see :) )
*MacMini M1 16 Go - Sonoma - Ext nvme SSDs on TB3 - 14 To HD in 2 x 4 disks USB3 towers
*Legacy MacPro 8core Xeons, 32 Go ram, 2 x gtx 980 ti, 3SSDs including RAID
*Resolve Studio everywhere, Fusion Studio too
*https://www.buymeacoffee.com/videorhin
Offline
User avatar

Chris Huf

  • Posts: 55
  • Joined: Wed Mar 01, 2017 12:11 am

Re: Mask or keyer?

PostThu Jan 16, 2025 12:26 pm

A simple luma keyer might be also an option, you might need to comp in the red stripes of
the curtain via mask on top of it.. This also has the advatage that you can desaturate and lower the brightness of the silhouttes to remove potential fringing, and remove the purple patch between the hairs of one of the persons.

Ah Sam beat me to it...sorry

Code: Select all
{
   Tools = ordered() {
      Merge1 = Merge {
         Inputs = {
            Background = Input {
               SourceOp = "ColorCorrector1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "Loader1",
               Source = "Output",
            },
            PerformDepthMerge = Input { Value = 0, },
            EffectMask = Input {
               SourceOp = "BSpline1",
               Source = "Mask",
            }
         },
         ViewInfo = OperatorInfo { Pos = { 1144, 128 } },
      },
      BSpline1 = BSplineMask {
         DrawMode = "InsertAndModify",
         DrawMode2 = "InsertAndModify",
         CtrlWZoom = false,
         Inputs = {
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1 }, },
            ClippingMode = Input { Value = FuID { "None" }, },
            Polyline = Input {
               SourceOp = "BSpline1Polyline",
               Source = "Value",
            },
            Polyline2 = Input {
               Value = BSplinePolyline {
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { }
               },
               Disabled = true,
            },
         },
         ViewInfo = OperatorInfo { Pos = { 775, 191 } },
      },
      BSpline1Polyline = BezierSpline {
         SplineColor = { Red = 173, Green = 255, Blue = 47 },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, Flags = { Linear = true, LockedY = true }, Value = BSplinePolyline {
                  Closed = true,
                  Points = {
                     { X = -0.492537319660187, Y = -0.234299510717392 },
                     { X = -0.544776141643524, Y = -0.0990338176488876 },
                     { X = -0.60261195898056, Y = 0.125603869557381 },
                     { X = -0.597014904022217, Y = 0.299516916275024 },
                     { X = -0.570895493030548, Y = 0.41545894742012 },
                     { X = -0.552238821983337, Y = 0.519323647022247 },
                     { X = -0.380597025156021, Y = 0.553140103816986 },
                     { X = 0.0279850754886866, Y = 0.579710125923157 },
                     { X = 0.171641796827316, Y = 0.589371979236603 },
                     { X = 0.412313431501389, Y = 0.567632853984833 },
                     { X = 0.492537319660187, Y = 0.555555582046509 },
                     { X = 0.537313461303711, Y = 0.487922698259354 },
                     { X = 0.541044771671295, Y = 0.364734292030334 },
                     { X = 0.52238804101944, Y = 0.120772950351238 },
                     { X = 0.513059675693512, Y = -0.0217391308397055 },
                     { X = 0.503731369972229, Y = -0.0797101482748985 },
                     { X = 0.494402974843979, Y = -0.132850244641304 },
                     { X = 0.430970162153244, Y = -0.132850244641304 },
                     { X = 0.389925360679626, Y = -0.106280192732811 },
                     { X = 0.384328365325928, Y = -0.0579710155725479 },
                     { X = 0.401119410991669, Y = 0.00241545890457928 },
                     { X = 0.389925360679626, Y = 0.0845410600304604 },
                     { X = 0.333955228328705, Y = 0.159420296549797 },
                     { X = 0.274253726005554, Y = 0.2487922757864 },
                     { X = 0.229477614164352, Y = 0.316425114870071 },
                     { X = 0.205223873257637, Y = 0.379227042198181 },
                     { X = 0.197761192917824, Y = 0.425120770931244 },
                     { X = 0.162313431501389, Y = 0.413043469190598 },
                     { X = 0.110074624419212, Y = 0.379227042198181 },
                     { X = 0.0671641826629639, Y = 0.371980667114258 },
                     { X = -0.00932835787534714, Y = 0.364734292030334 },
                     { X = -0.06529850512743, Y = 0.367149770259857 },
                     { X = -0.167910441756248, Y = 0.393719792366028 },
                     { X = -0.218283578753471, Y = 0.408212572336197 },
                     { X = -0.225746273994446, Y = 0.376811593770981 },
                     { X = -0.240671634674072, Y = 0.311594188213348 },
                     { X = -0.298507452011108, Y = 0.214975848793983 },
                     { X = -0.356343269348145, Y = 0.149758458137512 },
                     { X = -0.391791045665741, Y = 0.0990338176488876 },
                     { X = -0.410447746515274, Y = 0.0531400963664055 },
                     { X = -0.402985066175461, Y = -0.0217391308397055 },
                     { X = -0.38619402050972, Y = -0.0942028984427452 },
                     { X = -0.395522385835648, Y = -0.157004833221436 },
                     { X = -0.434701502323151, Y = -0.200483098626137 }
                  },
                  Order = 4,
                  Type = "Tensioned",
                  Knots = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 }
               } }
         }
      },
      ColorCorrector1 = ColorCorrector {
         Inputs = {
            WheelSaturation1 = Input { Value = 0, },
            MasterRGBBrightness = Input { Value = -1, },
            ColorRanges = Input {
               Value = ColorCurves {
                  Curves = {
                     {
                        Points = {
                           { 0, 1 },
                           { 0.4, 0.2 },
                           { 0.6, 0 },
                           { 1, 0 }
                        }
                     },
                     {
                        Points = {
                           { 0, 0 },
                           { 0.4, 0 },
                           { 0.6, 0.2 },
                           { 1, 1 }
                        }
                     }
                  }
               },
            },
            HistogramIgnoreTransparent = Input { Value = 1, },
            Input = Input {
               SourceOp = "LumaKeyer1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 960, 110 } },
      },
      LumaKeyer1 = LumaKeyer {
         Inputs = {
            MatteContrast = Input { Value = 1, },
            MatteGamma = Input { Value = 1e-006, },
            Invert = Input { Value = 1, },
            Input = Input {
               SourceOp = "Loader1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 822, 109 } },
      },
      Loader1 = Loader {
         Clips = {
            Clip {
               ID = "Clip1",
               Filename = "C:\\Users\\splot\\Downloads\\IMG_3365.jpeg",
               FormatID = "JpegFormat",
               StartFrame = 3365,
               LengthSetManually = true,
               TrimIn = 0,
               TrimOut = 0,
               ExtendFirst = 0,
               ExtendLast = 0,
               Loop = 0,
               AspectMode = 0,
               Depth = 0,
               TimeCode = 0,
               GlobalStart = 0,
               GlobalEnd = 0
            }
         },
         Inputs = {
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 651, 141 } },
      }
   }
}
Last edited by Chris Huf on Thu Jan 16, 2025 1:33 pm, edited 2 times in total.
Offline

vilashneha

  • Posts: 23
  • Joined: Thu Oct 05, 2023 8:01 am
  • Real Name: neha Vilash

Re: Mask or keyer?

PostThu Jan 16, 2025 12:58 pm

If the silhouettes are moving, try using keying first to remove the yellow background. Then, you can refine the edges with a garbage mask or some basic rotoscoping, especially where the characters overlap. This should help keep the edges clean while handling the movement.
Offline

Hendrik Proosa

  • Posts: 3304
  • Joined: Wed Aug 22, 2012 6:53 am
  • Location: Estonia

Re: Mask or keyer?

PostThu Jan 16, 2025 2:08 pm

I'd suggest keying on green channel where red stripes don't contribute but yellow is still high value.
I do stuff
Offline

Animumtrix

  • Posts: 20
  • Joined: Wed Oct 23, 2024 3:55 pm
  • Real Name: Seana Kozar

Re: Mask or keyer?

PostSat Jan 18, 2025 8:23 pm

Thanks everyone. I will try these suggestions.

The “purple patch” is the toque that the character waves and then throws into the air when the performance is finished. As I said, no movement until the end, then clapping, waving and general carrying on. She wears it in other scenes outdoors, so it’s a tie-in.

Many thanks! I will post another reply as to what technique(s) worked best.
Offline

Animumtrix

  • Posts: 20
  • Joined: Wed Oct 23, 2024 3:55 pm
  • Real Name: Seana Kozar

Re: Mask or keyer?

PostSun Jan 19, 2025 10:11 pm

Delta keyer and a polygon mask did the trick, thanks to everyone who replied. :D

Return to Fusion

Who is online

Users browsing this forum: No registered users and 11 guests