見出し画像

DaVinci ResolveのFusionのおもしろさ

いやー、なかなかYou Tube動画が作成できない苦しみを味わってます。
頭の中のイメージを言語化できないので練習しなくちゃ。

クライアントの案件だとアイディアがスラスラでてくるのに自分のことになると途端にアイディアが枯渇する問題。

さて、動画を作る上で必要なのが動画編集ソフト。
色々ありますよね。

Premiere Proから始まってFinal Cut Pro Xを使ったりしていました。
EDIUSとかVEGAS Proは結局触らずじまいだったのですが、
DaVinci Resolveを使いだしてからずっとこればっかりです。

昔はカラーグレーディングをする人が使うっていうイメージでしたが
最近はオールインワンの便利ソフトになりました。

どう便利なのかは色んな人が書いていたり動画あるのでそれを見てください。

せっかく動画を作るのであれば映像だけでなく、モーショングラフィックスもできたら楽しそうだよねと思っていたのですが、なかなかAfter Effectsから脱却できず悩んでいましたがFusionのセミナーを受けたら目からウロコなことばかり。

After Effectsでプラグインをいっぱい入れていましたがほぼそれがなくてもだいたいのことができる。

そしてプレビューが軽い。
軽いのは正義ですよね。

さらにエクスプレッションはもちろんなのですが、コードのコピペができる。

一番惹かれたのはここでした。

PythonとLuaで書けるんですよね。

Fusion 16 | Blackmagic Design
https://www.blackmagicdesign.com/jp/products/fusion/

普通にテンプレで保存しておけば済む話なのですが、なぜかここがツボでした。

このトランジションだって、コピペしてFusionのタブを開いて貼り付けてください。​

{
   Tools = ordered() {
       Background2 = Background {
           Inputs = {
               EffectMask = Input {
                   SourceOp = "Rectangle2",
                   Source = "Mask",
               },
               GlobalIn = Input { Value = 403, },
               GlobalOut = Input { Value = 415, },
               Width = Input { Value = 1920, },
               Height = Input { Value = 1080, },
               UseFrameFormatSettings = Input { Value = 1, },
               ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
               TopLeftRed = Input { Value = 1, },
               TopLeftGreen = Input { Value = 1, },
               TopLeftBlue = Input { Value = 1, },
           },
           ViewInfo = OperatorInfo { Pos = { 55, 82.5 } },
       },
       Rectangle1 = RectangleMask {
           Inputs = {
               Filter = Input { Value = FuID { "Fast Gaussian" }, },
               MaskWidth = Input { Value = 1920, },
               MaskHeight = Input { Value = 1080, },
               PixelAspect = Input { Value = { 1, 1 }, },
               ClippingMode = Input { Value = FuID { "None" }, },
               Center = Input {
                   SourceOp = "Path1",
                   Source = "Position",
               },
               Width = Input {
                   SourceOp = "Rectangle1Width",
                   Source = "Value",
               },
               Height = Input { Value = 1, },
           },
           ViewInfo = OperatorInfo { Pos = { 165, 49.5 } },
       },
       Path1 = PolyPath {
           DrawMode = "InsertAndModify",
           Inputs = {
               Displacement = Input {
                   SourceOp = "Path1Displacement",
                   Source = "Value",
               },
               PolyLine = Input {
                   Value = Polyline {
                       Points = {
                           { Linear = true, LockY = true, X = -0.602, Y = 0, RX = 0.200666666666667, RY = 0 },
                           { Linear = true, LockY = true, X = 0, Y = 0, LX = -0.200666666666667, LY = 0, RX = 0.2, RY = 0 },
                           { Linear = true, LockY = true, X = 0.6, Y = 0, LX = -0.2, LY = 0 }
                       }
                   },
               },
           },
       },
       Path1Displacement = BezierSpline {
           SplineColor = { Red = 255, Green = 0, Blue = 255 },
           NameSet = true,
           KeyFrames = {
               [403] = { 0, RH = { 404.666666666667, 0.166943982251803 }, Flags = { Linear = true, LockedY = true } },
               [408] = { 0.500831946755408, LH = { 406.333333333333, 0.333887964503605 }, RH = { 410.333333333333, 0.667221297836939 }, Flags = { Linear = true, LockedY = true } },
               [415] = { 1, LH = { 412.666666666667, 0.833610648918469 }, Flags = { Linear = true, LockedY = true } }
           }
       },
       Rectangle1Width = BezierSpline {
           SplineColor = { Red = 225, Green = 255, Blue = 0 },
           NameSet = true,
           KeyFrames = {
               [403] = { 0.202479338842975, RH = { 404.666666666667, 0.47465564738292 }, Flags = { Linear = true } },
               [408] = { 1.01900826446281, LH = { 406.333333333333, 0.746831955922865 }, RH = { 410.333333333333, 0.746005509641873 }, Flags = { Linear = true } },
               [415] = { 0.2, LH = { 412.666666666667, 0.473002754820937 }, Flags = { Linear = true } }
           }
       },
       Merge1 = Merge {
           CtrlWZoom = false,
           Inputs = {
               Background = Input {
                   SourceOp = "Background1",
                   Source = "Output",
               },
               Foreground = Input {
                   SourceOp = "Background2",
                   Source = "Output",
               },
               PerformDepthMerge = Input { Value = 0, },
           },
           ViewInfo = OperatorInfo { Pos = { 165, 115.5 } },
       },
       MediaOut1 = MediaOut {
           Inputs = {
               Index = Input { Value = "0", },
               Input = Input {
                   SourceOp = "Merge1",
                   Source = "Output",
               },
           },
           ViewInfo = OperatorInfo { Pos = { 275, 115.5 } },
       },
       Rectangle2 = RectangleMask {
           Inputs = {
               Filter = Input { Value = FuID { "Fast Gaussian" }, },
               MaskWidth = Input { Value = 1920, },
               MaskHeight = Input { Value = 1080, },
               PixelAspect = Input { Value = { 1, 1 }, },
               ClippingMode = Input { Value = FuID { "None" }, },
               Center = Input {
                   SourceOp = "Path2",
                   Source = "Position",
               },
               Width = Input {
                   SourceOp = "Rectangle2Width",
                   Source = "Value",
               },
               Height = Input { Value = 1, },
           },
           ViewInfo = OperatorInfo { Pos = { 55, 49.5 } },
       },
       Path2 = PolyPath {
           DrawMode = "InsertAndModify",
           Inputs = {
               Displacement = Input {
                   SourceOp = "Path2Displacement",
                   Source = "Value",
               },
               PolyLine = Input {
                   Value = Polyline {
                       Points = {
                           { Linear = true, LockY = true, X = -0.596694214876033, Y = 0, RX = 0.0584022038567493, RY = 0 },
                           { Linear = true, LockY = true, X = -0.421487603305785, Y = 0, LX = -0.0584022038567493, LY = 0, RX = 0.321490201101928, RY = 0 },
                           { Linear = true, LockY = true, X = 0.542983, Y = 0, LX = -0.321490201101928, LY = 0 }
                       }
                   },
               },
           },
       },
       Path2Displacement = BezierSpline {
           SplineColor = { Red = 255, Green = 0, Blue = 255 },
           NameSet = true,
           KeyFrames = {
               [403] = { 0, RH = { 404.666666666667, 0.0512445130028347 }, Flags = { Linear = true, LockedY = true } },
               [408] = { 0.153733539008504, LH = { 406.333333333333, 0.102489026005669 }, RH = { 410.333333333333, 0.435822359339003 }, Flags = { Linear = true, LockedY = true } },
               [415] = { 1, LH = { 412.666666666667, 0.717911179669501 }, Flags = { Linear = true, LockedY = true } }
           }
       },
       Rectangle2Width = BezierSpline {
           SplineColor = { Red = 225, Green = 255, Blue = 0 },
           NameSet = true,
           KeyFrames = {
               [403] = { 0.189256198347107, RH = { 404.666666666667, 0.189256198347107 }, Flags = { Linear = true } },
               [408] = { 0.189256198347107, LH = { 406.333333333333, 0.189256198347107 }, RH = { 410.333333333333, 0.152179065564738 }, Flags = { Linear = true } },
               [415] = { 0.0780248, LH = { 412.666666666667, 0.115101932782369 }, Flags = { Linear = true } }
           }
       },
       Background1 = Background {
           Inputs = {
               EffectMask = Input {
                   SourceOp = "Rectangle1",
                   Source = "Mask",
               },
               GlobalIn = Input { Value = 403, },
               GlobalOut = Input { Value = 415, },
               Width = Input { Value = 1920, },
               Height = Input { Value = 1080, },
               UseFrameFormatSettings = Input { Value = 1, },
               ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
               Type = Input { Value = FuID { "Gradient" }, },
               Gradient = Input {
                   Value = Gradient {
                       Colors = {
                           [0] = { 0.658823529411765, 1, 0.470588235294118, 1 },
                           [1] = { 0.470588235294118, 1, 0.83921568627451, 1 }
                       }
                   },
               },
           },
           ViewInfo = OperatorInfo { Pos = { 165, 82.5 } },
       }
   }
}

ほら、どうですか。

普段コードを書いているからちょっとホッとするこの感覚。
こうやって見ると映像もプログラムの一部なんだなと思います。

この面白さがわかるとFusionがもっと楽しくなると思いますよ。

この記事が気に入ったらサポートをしてみませんか?