Frage von klusterdegenerierung:Moin Fusioner,
habe mir diese Generators für splitscreens runtergeladen.
https://www.youtube.com/watch?v=p0MIlRgMM3c
möchte sie aber in der Größe etwas varieren und auch eine 4 in 1 Version daraus erstellen.
Gesagt getan, in Fusion geguckt und nix gefunden bzw gecheckt wie ich das angehen kann.
Kann mir bitte jemand sagen wie ich das anstellen muß/könnte?
Danke! :-)
Antwort von klusterdegenerierung:
Noch cooler wäre wenn ich es on the fly wie hier zu sehen verändern könnte (getimed)
Wie zufällig jemand wie das geht? Danke! :-)
https://youtu.be/AX2sfu_QsLI?t=174
Antwort von roki100:
- Du wechselst zu (Tab) Fusion
- Klickst mit der rechten Maustaste auf das erste Node links und dann auf "Ungroup"
Nun hast Du Rectangle Nodes und kannst dir das so gestalten wie Du es haben möchtest, z.B. ein Rectangle Node kopieren einfügen, dann das ganze beliebig im Viewer mit Maus platzieren... bzw. aus 2,3, so 4 oder 5+ splitts machen.
Antwort von klusterdegenerierung:
roki100 hat geschrieben:
- Du wechselst zu (Tab) Fusion
- Klickst mit der rechten Maustaste auf das erste Node links und dann auf "Ungroup"
Nun hast Du Rectangle Nodes und kannst dir das so gestalten wie Du es haben möchtest, z.B. ein Rectangle Node kopieren einfügen, dann das ganze beliebig im Viewer mit Maus platzieren... bzw. aus 2,3, so 4 oder 5+ splitts machen.
Öööööööööööh! ;-)))
Ja soweit das ich das ausgeklappt hatte war ich bereits, aber dann verliesen sie mich.
Dort habe ich dann nix gefunden wo ich zb. die Maße editieren könnte und wie gehe ich vor, das ich dieses template selbst nicht vergeige, es vorher im Explorer duplizieren?
Antwort von roki100:
roki100 hat geschrieben:
Dort habe ich dann nix gefunden wo ich zb. die Maße editieren könnte
Du kannst zB im Viewer auf die grüne Rectangle Rändern, die ecken mit dem Maus anpacken und ziehen, oder mittig das Kreis (im Kreis die grüne Linie) ebenso mit Maus anpacken und drehen... Oder rechts im Bild (unter Inspector) Height, Width usw. die Regler benutzen.
und wie gehe ich vor, das ich dieses template selbst nicht vergeige, es vorher im Explorer duplizieren?
ja, geht glaube ich auch... oder einfach vorher die *.settings Files sichern.
Antwort von klusterdegenerierung:
Probiere ich aus und gebe feedback.
Antwort von klusterdegenerierung:
Moin roki,
so ich habe das mal so gemacht und bin auch soweit durch gekommen, allerdings checke ich die Maße nicht so wirklich, weil ich nicht so recht weiß weclche Maße der Rahmen hat und wie ich es nun zu berechnen habe, das bei 4 Kästchen alle den gleichen Abstand zu einander haben, denn immer wenn ich ein Kästchen in eine Größe ziehe, expandiert es zu beiden Seiten statt nur zu einer.
Ich komme vorallem weil das Fenster keine Gesamtgrößen Skalierung hat, nicht dahin das ich es antiproportional proportional zu resizen, weißt Du was ich meine?
Wenn da nun wenigstens die Auflösungmaße in der Skalierung stehen würden, dann könnte ich es simple berechnen und die Position einfach eintragen, so stehe ich gerade wie der Ochse vorm Berg, was hab ich verpasst? :-)
Das Ding ist ja, wenn ich alle gleich groß mache, haben sie zu der Mitte den doppelten Abstand, wenn ich es durch verschieben vermittle, stimmt natürlich die Größe wieder nicht, wenn ich die Größe wieer änder stimmt natürlich die Position wieder nicht.
Antwort von roki100:
Hier:
{
Tools = ordered() {
SplitX4 = GroupOperator {
CtrlWZoom = false,
NameSet = true,
Inputs = ordered() {
Input1 = Input {
Value = 0,
Default = 0,
},
Input2 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftRed",
Name = "Color",
ControlGroup = 2,
Default = 0,
},
Input3 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftGreen",
ControlGroup = 2,
Default = 0,
},
Input4 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftBlue",
ControlGroup = 2,
Default = 0,
},
Input5 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftAlpha",
ControlGroup = 2,
Default = 1,
}
},
Outputs = {
MainOutput1 = InstanceOutput {
SourceOp = "Background1",
Source = "Output",
}
},
ViewInfo = GroupInfo {
Pos = { 32.7778, -15.6515 },
Flags = {
AllowPan = false,
AutoSnap = true,
RemoveRouters = true
},
Size = { 686.826, 166.869, 278.969, 24.2424 },
Direction = "Horizontal",
PipeStyle = "Direct",
Scale = 1,
Offset = { -95.5556, 0 }
},
Tools = ordered() {
Background1 = Background {
Inputs = {
EffectMask = Input {
SourceOp = "Rechts_unten_E",
Source = "Mask",
},
GlobalOut = Input { Value = 119, },
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
UseFrameFormatSettings = Input { Value = 1, },
= Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 327.92, 86.0303 } },
},
Rechts_unten_E = RectangleMask {
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "Links_unten_E",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.75, 0.25 }, },
Width = Input {
Value = 0.48,
Expression = "W_und_H_Control.Width",
},
Height = Input {
Value = 0.472,
Expression = "W_und_H_Control.Height",
},
CornerRadius = Input {
SourceOp = "Publish1_2_1",
Source = "Value",
},
},
ViewInfo = OperatorInfo { Pos = { 198.476, 82.4949 } },
},
Links_unten_E = RectangleMask {
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "Rechts_oben_E",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.25, 0.25 }, },
Width = Input {
Value = 0.48,
Expression = "W_und_H_Control.Width",
},
Height = Input {
Value = 0.472,
Expression = "W_und_H_Control.Height",
},
CornerRadius = Input {
SourceOp = "Publish1_2",
Source = "Value",
},
},
ViewInfo = OperatorInfo { Pos = { 98.2048, 83.505 } },
},
Rechts_oben_E = RectangleMask {
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "W_und_H_Control",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.75, 0.75 }, },
Width = Input {
Value = 0.48,
Expression = "W_und_H_Control.Width",
},
Height = Input {
Value = 0.472,
Expression = "W_und_H_Control.Height",
},
CornerRadius = Input {
SourceOp = "Publish1_1",
Source = "Value",
},
},
ViewInfo = OperatorInfo { Pos = { 196.507, 46.2071 } },
},
W_und_H_Control = RectangleMask {
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "Rectangle1_1",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.25, 0.75 }, },
Width = Input { Value = 0.48, },
Height = Input { Value = 0.472, },
CornerRadius = Input {
SourceOp = "Publish1_3",
Source = "Value",
},
},
ViewInfo = OperatorInfo { Pos = { 97.3472, 46.2071 } },
},
Rectangle1_1 = 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" }, },
Width = Input { Value = 1.014066, },
Height = Input { Value = 1.045455, },
},
ViewInfo = OperatorInfo { Pos = { 9.01387, 48.8333 } },
}
},
},
Publish1_2_1 = PublishNumber {
CtrlWZoom = false,
},
Publish1_2 = PublishNumber {
CtrlWZoom = false,
},
Publish1_1 = PublishNumber {
},
Publish1_3 = PublishNumber {
CtrlWZoom = false,
}
}
}
- Kopieren und im Node-Bereich einfügen und mit MediaOut verbinden
- Und W_und_H_Control Node nur als Beispiel, was man mit "Expressions" machen kann (einfach in Fusion unter Inspector die Regler Width und Height bewegen)
Antwort von klusterdegenerierung:
Ich vermute wir missverstehen uns.
Mir geht es nicht um das einstellen, welches man ja mit den Tools hinbekommt, aber mir fehlt die Berechnungsgrundlage dafür, das am Ende alle Kästchen so gleichgroß sind, das der Rahmen auch zu allen Seiten und Zwischenräumen den gleichen Abstand hat, da man ja den Rahmen selbst nicht rezisen kann, was sicherlich einfacher wäre. :-)
Antwort von roki100:
Und was habe ich mit W_und_H_Control gemeint? ;)
Hier hast Du noch mit Pubilsh Control Slider "S_Height" und "S_Width" - damit Regelst Du den abstand zwischen alle Kästchen
Bildschirmfoto 2022-05-01 um 16.49.26.png
{
Tools = ordered() {
SplitX4 = GroupOperator {
CtrlWZoom = false,
NameSet = true,
Inputs = ordered() {
S_Height = Input {
SourceOp = "Publish3",
Source = "Value",
},
S_Width = Input {
SourceOp = "Publish4",
Source = "Value",
},
Input2 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftRed",
Name = "Color",
ControlGroup = 2,
Default = 0,
},
Input3 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftGreen",
ControlGroup = 2,
Default = 0,
},
Input4 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftBlue",
ControlGroup = 2,
Default = 0,
},
Input5 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftAlpha",
ControlGroup = 2,
Default = 1,
}
},
Outputs = {
MainOutput1 = InstanceOutput {
SourceOp = "Background1",
Source = "Output",
}
},
ViewInfo = GroupInfo {
Pos = { 224, 92.7273 },
Flags = {
AllowPan = false,
AutoSnap = true,
RemoveRouters = true
},
Size = { 686.826, 166.869, 278.969, 24.2424 },
Direction = "Horizontal",
PipeStyle = "Direct",
Scale = 1,
Offset = { -95.5556, 0 }
},
Tools = ordered() {
Background1 = Background {
CtrlWShown = false,
Inputs = {
EffectMask = Input {
SourceOp = "Rechts_unten_E",
Source = "Mask",
},
GlobalOut = Input { Value = 119, },
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
UseFrameFormatSettings = Input { Value = 1, },
= Input { Value = FuID { "SLog2" }, },
TopLeftRed = Input { Value = 0.992, },
TopLeftGreen = Input { Value = 0.992, },
TopLeftBlue = Input { Value = 0.992, },
},
ViewInfo = OperatorInfo { Pos = { 327.92, 86.0303 } },
},
Rechts_unten_E = RectangleMask {
CtrlWShown = false,
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "Links_unten_E",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.75, 0.25 }, },
Width = Input {
Value = 0.488,
Expression = "W_und_H_Control.Width",
},
Height = Input {
Value = 0.48,
Expression = "W_und_H_Control.Height",
},
CornerRadius = Input {
SourceOp = "Publish1_2_1",
Source = "Value",
},
},
ViewInfo = OperatorInfo { Pos = { 198.476, 82.4949 } },
},
Links_unten_E = RectangleMask {
CtrlWShown = false,
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "Rechts_oben_E",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.25, 0.25 }, },
Width = Input {
Value = 0.488,
Expression = "W_und_H_Control.Width",
},
Height = Input {
Value = 0.48,
Expression = "W_und_H_Control.Height",
},
CornerRadius = Input {
SourceOp = "Publish1_2",
Source = "Value",
},
},
ViewInfo = OperatorInfo { Pos = { 98.2048, 83.505 } },
},
Rechts_oben_E = RectangleMask {
CtrlWShown = false,
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "W_und_H_Control",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.75, 0.75 }, },
Width = Input {
Value = 0.488,
Expression = "W_und_H_Control.Width",
},
Height = Input {
Value = 0.48,
Expression = "W_und_H_Control.Height",
},
CornerRadius = Input {
SourceOp = "Publish1_1",
Source = "Value",
},
},
ViewInfo = OperatorInfo { Pos = { 196.507, 46.2071 } },
},
W_und_H_Control = RectangleMask {
CtrlWShown = false,
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "Rectangle1_1",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.25, 0.75 }, },
Width = Input {
SourceOp = "Publish1",
Source = "Value",
},
Height = Input {
SourceOp = "Publish2",
Source = "Value",
},
CornerRadius = Input {
SourceOp = "Publish1_3",
Source = "Value",
},
},
ViewInfo = OperatorInfo { Pos = { 97.3472, 46.2071 } },
},
Rectangle1_1 = RectangleMask {
CtrlWShown = false,
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" }, },
Width = Input { Value = 1.014066, },
Height = Input { Value = 1.045455, },
},
ViewInfo = OperatorInfo { Pos = { 9.01387, 48.8333 } },
}
},
UserControls = ordered() {
S_Height = {
ICS_ControlPage = "Controls",
INP_Integer = false,
INPID_InputControl = "SliderControl",
LINKID_DataType = "Number",
INP_MinScale = 0,
INP_Default = 0.5,
INP_MaxScale = 1,
LINKS_Name = "S_Height"
},
S_Width = {
ICS_ControlPage = "Controls",
INP_Integer = false,
INPID_InputControl = "SliderControl",
LINKID_DataType = "Number",
INP_MinScale = 0,
INP_Default = 0.5,
INP_MaxScale = 1,
LINKS_Name = "S_Width"
}
}
},
Publish3 = PublishNumber {
Inputs = {
Value = Input {
SourceOp = "Publish2",
Source = "Value",
},
},
},
Publish2 = PublishNumber {
Inputs = {
Value = Input { Value = 0.48, },
},
},
Publish4 = PublishNumber {
CtrlWZoom = false,
Inputs = {
Value = Input {
SourceOp = "Publish1",
Source = "Value",
},
},
},
Publish1 = PublishNumber {
Inputs = {
Value = Input { Value = 0.488, },
},
},
Publish1_2_1 = PublishNumber {
CtrlWZoom = false,
},
Publish1_2 = PublishNumber {
CtrlWZoom = false,
},
Publish1_1 = PublishNumber {
},
Publish1_3 = PublishNumber {
}
}
}
 |
Antwort von klusterdegenerierung:
Ah ok, sorry, firstimer! :-)
Aaaaaber, wieder das gleiche Problem, die Innenabstände sind doppelt, sie sollen aber so groß sein wie die Äusseren. :-)
Antwort von roki100:
ich weiß was Du meinst. Ab gewissen Punkt lässt sich das ganze nicht mehr zentriert. Du darfst also nicht zu weit mit S_Height und S_Width gehen. Ansonsten besteht die Möglichkeit in Fusion (Rectangle) Center X/Y nochmal genauer anzupassen.
Ich probiere aber etwas aus....und melde mich in zwei Wochen bei dir^^
Antwort von klusterdegenerierung:
Das ergibt nicht wirklich Sinn, denn mit den settings verstellt man immer proportional und damit kommt immer dieser Zustand raus.
Anders wäre es, wenn man nun bei den oberen Fenstern die Unterkante alleine runterziehen und bei den unteren die obere Kante etwas hoch ziehen könnte, ohne das sich dabei alle anderen Seiten verändern.
Antwort von roki100:
klusterdegenerierung hat geschrieben:
Das ergibt nicht wirklich Sinn, denn mit den settings verstellt man immer proportional und damit kommt immer dieser Zustand raus.
Anders wäre es, wenn man nun bei den oberen Fenstern die Unterkante alleine runterziehen und bei den unteren die obere Kante etwas hoch ziehen könnte, ohne das sich dabei alle anderen Seiten verändern.
eben, es fehlt bei Rectangle "Border"-Height ;) Dann könnte man as einfacher hinbekommen. Rectangle ist in diesem Fall (Split4x) ungeeignet, da ist Polygon passend.
Bildschirmfoto 2022-05-01 um 19.23.07.png
Packe ich gleich zusammen... Paypal Verbindung kommt gleich per PN. Kostet 20 Euro^^
Antwort von klusterdegenerierung:
Öh? Hast Du da auch einen copy code für? :-))
Antwort von roki100:
Bildschirmfoto 2022-05-01 um 19.51.04.png
{
Tools = ordered() {
SplitX4_Polygon = GroupOperator {
CtrlWZoom = false,
NameSet = true,
Inputs = ordered() {
Split_Border = Input {
SourceOp = "Publish6",
Source = "Value",
},
Input2 = InstanceInput {
SourceOp = "Background1_1",
Source = "TopLeftRed",
Name = "Color",
ControlGroup = 2,
Default = 0,
},
Input3 = InstanceInput {
SourceOp = "Background1_1",
Source = "TopLeftGreen",
ControlGroup = 2,
Default = 0,
},
Input4 = InstanceInput {
SourceOp = "Background1_1",
Source = "TopLeftBlue",
ControlGroup = 2,
Default = 0,
},
Input5 = InstanceInput {
SourceOp = "Background1_1",
Source = "TopLeftAlpha",
ControlGroup = 2,
Default = 1,
}
},
Outputs = {
MainOutput1 = InstanceOutput {
SourceOp = "Background1_1",
Source = "Output",
}
},
ViewInfo = GroupInfo {
Pos = { 94.6203, 218.28 },
Flags = {
AllowPan = false,
GridSnap = true,
AutoSnap = true,
RemoveRouters = true
},
Size = { 999.321, 281.443, 278.969, 24.2424 },
Direction = "Horizontal",
PipeStyle = "Direct",
Scale = 1,
Offset = { -95.5556, -21.2121 }
},
Tools = ordered() {
Background1_1 = Background {
Inputs = {
EffectMask = Input {
SourceOp = "Merge1_3",
Source = "Output",
},
GlobalOut = Input { Value = 119, },
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
UseFrameFormatSettings = Input { Value = 1, },
= Input { Value = FuID { "SLog2" }, },
TopLeftRed = Input { Value = 0.361706, },
TopLeftGreen = Input { Value = 0.811, },
TopLeftBlue = Input { Value = 0.800216944, },
},
ViewInfo = OperatorInfo { Pos = { 440, 181.5 } },
},
Polygon_oben_1 = PolylineMask {
DrawMode = "InsertAndModify",
DrawMode2 = "InsertAndModify",
CtrlWShown = false,
NameSet = true,
Inputs = {
Filter = Input { Value = FuID { "Fast Gaussian" }, },
BorderWidth = Input {
Value = 0.071,
Expression = "Control_1.BorderWidth",
},
PaintMode = Input { Value = FuID { "Subtract" }, },
JoinStyle = Input { Value = 2, },
CapStyle = Input { Value = 0, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
UseFrameFormatSettings = Input { Value = 1, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.5, 1 }, },
ZRotation = Input { Value = -90, },
Polyline = Input {
Value = Polyline {
Points = {
{ X = 1.25767452008319e-17, Y = 0.917254247764452, RX = 0.000520125833360913, RY = -0.242862134121228, LZ = -5.05571083658923e-06, RZ = 4.18021098940084e-06 },
{ X = -1.26851654180804e-17, Y = -0.916107366015714, LX = -4.83307513646173e-10, LY = 0.0965539870855173 }
}
},
},
Polyline2 = Input {
Value = Polyline {
},
Disabled = true,
},
},
ViewInfo = OperatorInfo { Pos = { 55, 49.5 } },
},
Polygon_mittig_1 = PolylineMask {
DrawMode = "InsertAndModify",
DrawMode2 = "InsertAndModify",
CtrlWShown = false,
NameSet = true,
Inputs = {
Filter = Input { Value = FuID { "Fast Gaussian" }, },
BorderWidth = Input {
Value = 0.021,
Expression = "Control_1.BorderWidth-0.05",
},
PaintMode = Input { Value = FuID { "Subtract" }, },
JoinStyle = Input { Value = 2, },
CapStyle = Input { Value = 0, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
UseFrameFormatSettings = Input { Value = 1, },
ClippingMode = Input { Value = FuID { "None" }, },
ZRotation = Input { Value = -90, },
Polyline = Input {
Value = Polyline {
Points = {
{ X = 1.25767452008319e-17, Y = 0.917254247764452, RX = 0.000520125833360913, RY = -0.242862134121228, LZ = -5.05571083658923e-06, RZ = 4.18021098940084e-06 },
{ X = -1.26851654180804e-17, Y = -0.916107366015714, LX = -4.83307513646173e-10, LY = 0.0965539870855173 }
}
},
},
Polyline2 = Input {
Value = Polyline {
},
Disabled = true,
},
},
ViewInfo = OperatorInfo { Pos = { 55, 82.5 } },
},
Merge1_1_2 = Merge {
CtrlWShown = false,
Inputs = {
Background = Input {
SourceOp = "Polygon_mittig_1",
Source = "Mask",
},
Foreground = Input {
SourceOp = "Polygon_oben_1",
Source = "Mask",
},
SubtractiveAdditive = Input { Value = 0.906, },
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 220, 49.5 } },
},
Polygon_unten_1 = PolylineMask {
DrawMode = "InsertAndModify",
DrawMode2 = "InsertAndModify",
CtrlWShown = false,
NameSet = true,
Inputs = {
Filter = Input { Value = FuID { "Fast Gaussian" }, },
BorderWidth = Input {
Value = 0.071,
Expression = "Control_1.BorderWidth",
},
PaintMode = Input { Value = FuID { "Subtract" }, },
JoinStyle = Input { Value = 2, },
CapStyle = Input { Value = 0, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
UseFrameFormatSettings = Input { Value = 1, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.5, 0 }, },
ZRotation = Input { Value = -90, },
Polyline = Input {
Value = Polyline {
Points = {
{ X = 1.25767452008319e-17, Y = 0.917254247764452, RX = 0.000520125833360913, RY = -0.242862134121228, LZ = -5.05571083658923e-06, RZ = 4.18021098940084e-06 },
{ X = -1.26851654180804e-17, Y = -0.916107366015714, LX = -4.83307513646173e-10, LY = 0.0965539870855173 }
}
},
},
Polyline2 = Input {
Value = Polyline {
},
Disabled = true,
},
},
ViewInfo = OperatorInfo { Pos = { 55, 115.5 } },
},
Merge1_1_1_1 = Merge {
CtrlWShown = false,
Inputs = {
Background = Input {
SourceOp = "Merge1_1_2",
Source = "Output",
},
Foreground = Input {
SourceOp = "Polygon_unten_1",
Source = "Mask",
},
SubtractiveAdditive = Input { Value = 0, },
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 220, 115.5 } },
},
Control_1 = RectangleMask {
NameSet = true,
Inputs = {
Filter = Input { Value = FuID { "Fast Gaussian" }, },
BorderWidth = Input {
SourceOp = "Publish5",
Source = "Value",
},
Solid = Input { Value = 0, },
CapStyle = Input { Value = 0, },
OutputSize = Input { Value = FuID { "Custom" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Width = Input { Value = 1, },
Height = Input { Value = 1, },
},
ViewInfo = OperatorInfo { Pos = { 55, 181.5 } },
},
Merge1_3 = Merge {
Inputs = {
Background = Input {
SourceOp = "Merge1_2_1",
Source = "Output",
},
Foreground = Input {
SourceOp = "Control_1",
Source = "Mask",
},
SubtractiveAdditive = Input { Value = 0, },
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 220, 181.5 } },
},
Merge1_2_1 = Merge {
CtrlWShown = false,
Inputs = {
Background = Input {
SourceOp = "Merge1_1_1_1",
Source = "Output",
},
Foreground = Input {
SourceOp = "Polygon_Vert_mittig_1",
Source = "Mask",
},
SubtractiveAdditive = Input { Value = 0, },
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 220, 148.5 } },
},
Polygon_Vert_mittig_1 = PolylineMask {
DrawMode = "InsertAndModify",
DrawMode2 = "InsertAndModify",
CtrlWShown = false,
NameSet = true,
Inputs = {
Filter = Input { Value = FuID { "Fast Gaussian" }, },
BorderWidth = Input {
Value = 0.021,
Expression = "Control_1.BorderWidth-0.05",
},
PaintMode = Input { Value = FuID { "Subtract" }, },
JoinStyle = Input { Value = 2, },
CapStyle = Input { Value = 0, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
UseFrameFormatSettings = Input { Value = 1, },
ClippingMode = Input { Value = FuID { "None" }, },
Polyline = Input {
Value = Polyline {
Points = {
{ X = 1.25767452008319e-17, Y = 0.917254247764452, RX = 0.000520125833360913, RY = -0.242862134121228, LZ = -5.05571083658923e-06, RZ = 4.18021098940084e-06 },
{ X = -1.26851654180804e-17, Y = -0.916107366015714, LX = -4.83307513646173e-10, LY = 0.0965539870855173 }
}
},
},
Polyline2 = Input {
Value = Polyline {
},
Disabled = true,
},
},
ViewInfo = OperatorInfo { Pos = { 55, 148.5 } },
}
},
UserControls = ordered() {
Split_Border = {
LINKS_Name = "Split_Border",
INP_Integer = false,
LINKID_DataType = "Number",
ICS_ControlPage = "Controls",
INPID_InputControl = "SliderControl",
INP_MinScale = 0,
INP_MaxScale = 1,
INP_Default = 0.5
}
}
},
Publish6 = PublishNumber {
CtrlWZoom = false,
Inputs = {
Value = Input {
SourceOp = "Publish5",
Source = "Value",
},
},
},
Publish5 = PublishNumber {
Inputs = {
Value = Input { Value = 0.071, },
},
}
}
}
 |
Antwort von klusterdegenerierung:
roki ich verstehe nur noch Bahnhof, jetzt sind die inneren gleich, dafür die äusseren doppelt!
He? :-)
Antwort von roki100:
klusterdegenerierung hat geschrieben:
roki ich verstehe nur noch Bahnhof, jetzt sind die inneren gleich, dafür die äusseren doppelt!
He? :-)
Einfach in Davinci unter Inspector > Tab "Video" mit Zoom regeln.
Antwort von roki100:
Ich habe nochmal was anderes versucht, geht nicht, es fehlt mir Border "Height" und mit Polygon_mittig ist wird der Border beidseitig fett.... Oder es geht bestimmt und ich habe da nen mathematischen Denkfehler^^
Einfacher ist es unter Video > Zoom das zu regeln.
Update
Zwei Polygone waren zuviel und etwas anderes korrigiert.... Diesmal auch mit SoftEgde Regler.... sieht auch etwas mittiger aus ;)
Bildschirmfoto 2022-05-01 um 20.40.36.png
{
Tools = ordered() {
SplitX4_Polygon = GroupOperator {
NameSet = true,
Inputs = ordered() {
Split_Border = Input {
SourceOp = "Publish2",
Source = "Value",
},
SoftEdge_Border = Input {
SourceOp = "Publish1",
Source = "Value",
},
Input2 = InstanceInput {
SourceOp = "Background1_1",
Source = "TopLeftRed",
Name = "Color",
ControlGroup = 2,
Default = 0,
},
Input3 = InstanceInput {
SourceOp = "Background1_1",
Source = "TopLeftGreen",
ControlGroup = 2,
Default = 0,
},
Input4 = InstanceInput {
SourceOp = "Background1_1",
Source = "TopLeftBlue",
ControlGroup = 2,
Default = 0,
},
Input5 = InstanceInput {
SourceOp = "Background1_1",
Source = "TopLeftAlpha",
ControlGroup = 2,
Default = 1,
}
},
Outputs = {
MainOutput1 = InstanceOutput {
SourceOp = "Background1_1",
Source = "Output",
}
},
ViewInfo = GroupInfo {
Pos = { -78.4825, 108.527 },
Flags = {
AllowPan = false,
GridSnap = true,
AutoSnap = true,
RemoveRouters = true
},
Size = { 999.321, 281.443, 278.969, 24.2424 },
Direction = "Horizontal",
PipeStyle = "Direct",
Scale = 1,
Offset = { -95.5556, -21.2121 }
},
Tools = ordered() {
Background1_1 = Background {
Inputs = {
EffectMask = Input {
SourceOp = "Merge1_3",
Source = "Output",
},
GlobalOut = Input { Value = 119, },
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
UseFrameFormatSettings = Input { Value = 1, },
= Input { Value = FuID { "SLog2" }, },
TopLeftRed = Input { Value = 0.807405648, },
TopLeftGreen = Input { Value = 0.811, },
TopLeftBlue = Input { Value = 0.361706, },
},
ViewInfo = OperatorInfo { Pos = { 440, 181.5 } },
},
Polygon_Horiz_mittig = PolylineMask {
DrawMode = "InsertAndModify",
DrawMode2 = "InsertAndModify",
NameSet = true,
Inputs = {
Filter = Input { Value = FuID { "Fast Gaussian" }, },
SoftEdge = Input {
Value = 0.01378,
Expression = "Control_1.SoftEdge",
},
BorderWidth = Input {
Value = 0.044,
Expression = "Control_1.Border_Control-0.05",
},
PaintMode = Input { Value = FuID { "Subtract" }, },
JoinStyle = Input { Value = 2, },
CapStyle = Input { Value = 0, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
UseFrameFormatSettings = Input { Value = 1, },
ClippingMode = Input { Value = FuID { "None" }, },
ZRotation = Input { Value = -90, },
Polyline = Input {
Value = Polyline {
Points = {
{ X = 1.25767452008319e-17, Y = 0.917254247764452, RX = 0.000520125833360913, RY = -0.242862134121228, LZ = -5.05571083658923e-06, RZ = 4.18021098940084e-06 },
{ X = -1.26851654180804e-17, Y = -0.916107366015714, LX = -4.83307513646173e-10, LY = 0.0965539870855173 }
}
},
},
Polyline2 = Input {
Value = Polyline {
},
Disabled = true,
},
},
ViewInfo = OperatorInfo { Pos = { 55, 115.5 } },
},
Control_1 = RectangleMask {
NameSet = true,
Inputs = {
Filter = Input { Value = FuID { "Fast Gaussian" }, },
SoftEdge = Input {
SourceOp = "Publish1",
Source = "Value",
},
BorderWidth = Input {
Value = 0.094,
Expression = "Control_1.Border_Control",
},
Solid = Input { Value = 0, },
CapStyle = Input { Value = 0, },
OutputSize = Input { Value = FuID { "Custom" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Width = Input { Value = 1, },
Height = Input { Value = 1, },
Border_Control = Input {
SourceOp = "Publish2",
Source = "Value",
},
},
ViewInfo = OperatorInfo { Pos = { 55, 181.5 } },
UserControls = ordered() {
Border_Control = {
LINKS_Name = "Border_Control",
LINKID_DataType = "Number",
INPID_InputControl = "SliderControl",
INP_Default = 0.5,
INP_Integer = false,
INP_MinScale = 0,
INP_MaxScale = 1,
ICS_ControlPage = "Controls"
}
}
},
Merge1_3 = Merge {
Inputs = {
Background = Input {
SourceOp = "Merge1_2_1",
Source = "Output",
},
Foreground = Input {
SourceOp = "Control_1",
Source = "Mask",
},
SubtractiveAdditive = Input { Value = 0, },
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 220, 181.5 } },
},
Merge1_2_1 = Merge {
CtrlWShown = false,
Inputs = {
Background = Input {
SourceOp = "Polygon_Horiz_mittig",
Source = "Mask",
},
Foreground = Input {
SourceOp = "Polygon_Vert_mittig_1",
Source = "Mask",
},
SubtractiveAdditive = Input { Value = 0, },
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 220, 148.5 } },
},
Polygon_Vert_mittig_1 = PolylineMask {
DrawMode = "InsertAndModify",
DrawMode2 = "InsertAndModify",
NameSet = true,
Inputs = {
Filter = Input { Value = FuID { "Fast Gaussian" }, },
SoftEdge = Input {
Value = 0.01378,
Expression = "Control_1.SoftEdge",
},
BorderWidth = Input {
Value = 0.044,
Expression = "Control_1.Border_Control-0.05",
},
PaintMode = Input { Value = FuID { "Subtract" }, },
JoinStyle = Input { Value = 2, },
CapStyle = Input { Value = 0, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
UseFrameFormatSettings = Input { Value = 1, },
ClippingMode = Input { Value = FuID { "None" }, },
Polyline = Input {
Value = Polyline {
Points = {
{ X = 1.25767452008319e-17, Y = 0.917254247764452, RX = 0.000520125833360913, RY = -0.242862134121228, LZ = -5.05571083658923e-06, RZ = 4.18021098940084e-06 },
{ X = -1.26851654180804e-17, Y = -0.916107366015714, LX = -4.83307513646173e-10, LY = 0.0965539870855173 }
}
},
},
Polyline2 = Input {
Value = Polyline {
},
Disabled = true,
},
},
ViewInfo = OperatorInfo { Pos = { 55, 148.5 } },
}
},
UserControls = ordered() {
Split_Border = {
LINKS_Name = "Split_Border",
INP_Integer = false,
LINKID_DataType = "Number",
ICS_ControlPage = "Controls",
INPID_InputControl = "SliderControl",
INP_MinScale = 0,
INP_MaxScale = 1,
INP_Default = 0.5
},
SoftEdge_Border = {
LINKS_Name = "SoftEdge_Border",
LINKID_DataType = "Number",
INPID_InputControl = "SliderControl",
INP_Default = 0,
INP_Integer = false,
INP_MinScale = 0,
INP_MaxScale = 0.0500000007450581,
ICS_ControlPage = "Controls"
}
}
},
Publish2 = PublishNumber {
Inputs = {
Value = Input { Value = 0.094, },
},
},
Publish1 = PublishNumber {
Inputs = {
Value = Input { Value = 0.01378, },
},
}
}
}
 |
Antwort von klusterdegenerierung:
Ja das ist einfacher, allerdings kann ich die Ecken nicht mehr in Summe abrunden.
Kann ich das jetzt irgendwo abspeichern, hatte die x3 Version editiert?
Antwort von roki100:
klusterdegenerierung hat geschrieben:
Ja das ist einfacher, allerdings kann ich die Ecken nicht mehr in Summe abrunden.
Ist Polygon. Man kann jetzt nur Rectangle (also die Ecken) abrunden, weil nur ein Rectangle (Control_1) drin ist.
Kann ich das jetzt irgendwo abspeichern, hatte die x3 Version editiert?
Ja in Fusion die Gruppe mit der rechten Maustaste >> Settings >> Save As...
Antwort von klusterdegenerierung:
Aber ohne abgerundete Ecken ist es nicht das was ich benötige, was nun? ;-)
Antwort von roki100:
Dann kannst Du das erste mit Rectangle benutzen^^Dafür hier noch mit S_CornerRadius Regler
{
Tools = ordered() {
SplitX4 = GroupOperator {
CtrlWZoom = false,
NameSet = true,
Inputs = ordered() {
S_Height = Input {
SourceOp = "Publish3",
Source = "Value",
},
S_Width = Input {
SourceOp = "Publish4",
Source = "Value",
},
Input2 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftRed",
Name = "Color",
ControlGroup = 2,
Default = 0,
},
Input3 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftGreen",
ControlGroup = 2,
Default = 0,
},
Input4 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftBlue",
ControlGroup = 2,
Default = 0,
},
Input5 = InstanceInput {
SourceOp = "Background1",
Source = "TopLeftAlpha",
ControlGroup = 2,
Default = 1,
},
S_CornerRadius = Input {
SourceOp = "Publish1_3",
Source = "Value",
}
},
Outputs = {
MainOutput1 = InstanceOutput {
SourceOp = "Background1",
Source = "Output",
}
},
ViewInfo = GroupInfo {
Pos = { 247.333, 127.97 },
Flags = {
Expanded = true,
AllowPan = false,
AutoSnap = true,
RemoveRouters = true
},
Size = { 686.826, 166.869, 278.969, 24.2424 },
Direction = "Horizontal",
PipeStyle = "Direct",
Scale = 1,
Offset = { -95.5556, 0 }
},
Tools = ordered() {
Background1 = Background {
Inputs = {
EffectMask = Input {
SourceOp = "Rechts_unten_E",
Source = "Mask",
},
GlobalOut = Input { Value = 119, },
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
UseFrameFormatSettings = Input { Value = 1, },
= Input { Value = FuID { "SLog2" }, },
TopLeftRed = Input { Value = 0.992, },
TopLeftGreen = Input { Value = 0.992, },
TopLeftBlue = Input { Value = 0.992, },
},
ViewInfo = OperatorInfo { Pos = { 327.92, 86.0303 } },
},
Rechts_unten_E = RectangleMask {
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "Links_unten_E",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.7446428571429, 0.2550505050505 }, },
Width = Input {
Value = 0.465,
Expression = "W_und_H_Control.Width",
},
Height = Input {
Value = 0.449,
Expression = "W_und_H_Control.Height",
},
CornerRadius = Input {
SourceOp = "Publish1_2_1",
Source = "Value",
Expression = "W_und_H_Control.CornerRadius",
},
},
ViewInfo = OperatorInfo { Pos = { 198.476, 82.4949 } },
},
Links_unten_E = RectangleMask {
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "Rechts_oben_E",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.2553571428571, 0.2550505050505 }, },
Width = Input {
Value = 0.465,
Expression = "W_und_H_Control.Width",
},
Height = Input {
Value = 0.449,
Expression = "W_und_H_Control.Height",
},
CornerRadius = Input {
SourceOp = "Publish1_2",
Source = "Value",
Expression = "W_und_H_Control.CornerRadius",
},
},
ViewInfo = OperatorInfo { Pos = { 98.8715, 83.505 } },
},
Rechts_oben_E = RectangleMask {
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "W_und_H_Control",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.7446428571429, 0.7446428571429 }, },
Width = Input {
Value = 0.465,
Expression = "W_und_H_Control.Width",
},
Height = Input {
Value = 0.449,
Expression = "W_und_H_Control.Height",
},
CornerRadius = Input {
SourceOp = "Publish1_1",
Source = "Value",
Expression = "W_und_H_Control.CornerRadius",
},
},
ViewInfo = OperatorInfo { Pos = { 196.507, 46.8132 } },
},
W_und_H_Control = RectangleMask {
CtrlWZoom = false,
NameSet = true,
Inputs = {
EffectMask = Input {
SourceOp = "Rectangle1_1",
Source = "Mask",
},
Filter = Input { Value = FuID { "Fast Gaussian" }, },
PaintMode = Input { Value = FuID { "Subtract" }, },
MaskWidth = Input { Value = 1920, },
MaskHeight = Input { Value = 1080, },
PixelAspect = Input { Value = { 1, 1 }, },
ClippingMode = Input { Value = FuID { "None" }, },
Center = Input { Value = { 0.2550505050505, 0.7446428571429 }, },
Width = Input {
SourceOp = "Publish1",
Source = "Value",
},
Height = Input {
SourceOp = "Publish2",
Source = "Value",
},
CornerRadius = Input {
SourceOp = "Publish1_3",
Source = "Value",
},
},
ViewInfo = OperatorInfo { Pos = { 97.3472, 46.2071 } },
},
Rectangle1_1 = 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" }, },
Width = Input { Value = 1.014066, },
Height = Input { Value = 1.045455, },
},
ViewInfo = OperatorInfo { Pos = { 9.01387, 48.8333 } },
}
},
UserControls = ordered() {
S_Height = {
LINKS_Name = "S_Height",
INP_Integer = false,
LINKID_DataType = "Number",
ICS_ControlPage = "Controls",
INPID_InputControl = "SliderControl",
INP_MinScale = 0,
INP_MaxScale = 1,
INP_Default = 0.5
},
S_Width = {
LINKS_Name = "S_Width",
INP_Integer = false,
LINKID_DataType = "Number",
ICS_ControlPage = "Controls",
INPID_InputControl = "SliderControl",
INP_MinScale = 0,
INP_MaxScale = 1,
INP_Default = 0.5
},
S_CornerRadius = {
LINKS_Name = "S_CornerRadius",
LINKID_DataType = "Number",
INPID_InputControl = "SliderControl",
INP_Default = 0,
INP_Integer = false,
INP_MinScale = 0,
INP_MaxScale = 1,
ICS_ControlPage = "Controls"
}
}
},
Publish3 = PublishNumber {
Inputs = {
Value = Input {
SourceOp = "Publish2",
Source = "Value",
},
},
},
Publish2 = PublishNumber {
Inputs = {
Value = Input { Value = 0.449, },
},
},
Publish4 = PublishNumber {
Inputs = {
Value = Input {
SourceOp = "Publish1",
Source = "Value",
},
},
},
Publish1 = PublishNumber {
Inputs = {
Value = Input { Value = 0.465, },
},
},
Publish1_3 = PublishNumber {
CtrlWZoom = false,
Inputs = {
Value = Input { Value = 0.291, },
},
},
Publish1_2_1 = PublishNumber {
CtrlWZoom = false,
},
Publish1_2 = PublishNumber {
CtrlWZoom = false,
},
Publish1_1 = PublishNumber {
}
},
ActiveTool = "SplitX4"
}
Ansonsten siehe das :D
https://www.youtube.com/watch?v=mKqoyPDu0fw