Page 1 of 1
2D Text with different images on each character

Posted:
Mon May 22, 2017 6:03 pm
by Frank Van Atta
Have a 10 frame input with a different image in each frame. Would like to create a line of 10 2D text characters with a different image on each character.
The goal is to end up with a string of images that can be manipulated like text.
Re: 2D Text with different images on each character

Posted:
Mon May 22, 2017 6:34 pm
by Sander de Regt
Do you want the images to be in the shape of letters? Or do you just want 10 squares with different images on them, so you can animate them?
Re: 2D Text with different images on each character

Posted:
Mon May 22, 2017 9:47 pm
by Frank Van Atta
In the shape of the letters with the image on top. I'm currently using capital O's with faces for images and adjusting the letters so I end up with a solid looking head. But all the letters are overlaid with the same head image.
Re: 2D Text with different images on each character

Posted:
Mon May 22, 2017 10:33 pm
by Sander de Regt
The easiest way to go about this is probably by setting the mapping to word or whole image or something like that (not in front of Fusion right now) and pre-comp all your faces onto a BG that you feed into the Text+ tool. Use the merges to reposition the images so they line up with your O's.
Does that work for you?
Re: 2D Text with different images on each character

Posted:
Tue May 23, 2017 5:10 am
by Frank Van Atta
That sounds like it will work; I'll try it and get back to you.
Thank you for the input.
Re: 2D Text with different images on each character

Posted:
Tue May 23, 2017 9:29 am
by Frank Van Atta
The simplest way to do this turns out to be to use a numbered Shading element in the TEXT+ tool for each image. An input is created on the TEXT+ tool for each Shading element where the TYPE is set to IMAGE, so up to 8 separate Loaders can be used to bring in 8 different images. Each image can be applied to one or more characters by using the Character Level Styling modifier in the text tool - simply select the character(s) where you want to add the image, select the appropriate Shading element number and enable it, then you can use the various sliders to fit the image to the character and transform/rotate it.
For fitting faces I have had the best luck using capital O's and the Border Fill element type. Some adjustment of the thickness slider may be necessary to get a good match between the character shape and the input image.
I didn't have any luck trying to create a string of images and then feeding them in to the text tool so they would fit individual characters.
Re: 2D Text with different images on each character

Posted:
Tue May 23, 2017 10:51 am
by Sander de Regt
Can you show us what you have so far? It sounds like fun.
Re: 2D Text with different images on each character

Posted:
Tue May 23, 2017 9:24 pm
by Lucjan Hirszmajer
Hope that helps, instead multiple loaders time stretch, and instantiated text with isolated wtite on range.
Believe there are far more different solutions.
change dissolve to fg to enable loader with your sequence
- Code: Select all
{
Tools = ordered() {
Merge2 = Merge {
Inputs = {
Background = Input {
SourceOp = "Instance_Text1_1",
Source = "Output",
},
Foreground = Input {
SourceOp = "Merge1",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 605, 247.5, }, },
},
Merge1 = Merge {
Inputs = {
Background = Input {
SourceOp = "Instance_Text1",
Source = "Output",
},
Foreground = Input {
SourceOp = "Text1",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 605, 148.5, }, },
},
Merge3 = Merge {
Inputs = {
Background = Input {
SourceOp = "Instance_Text1_2",
Source = "Output",
},
Foreground = Input {
SourceOp = "Merge2",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 605, 346.5, }, },
},
Instance_Text1_2 = TextPlus {
SourceOp = "Text1",
Inputs = {
["Gamut.ColorSpaceNest"] = Input { },
["Gamut.GammaSpaceNest"] = Input { },
LayoutRotation = Input { },
Start = Input { Value = 0.2945205, },
End = Input { Value = 0.339041, },
InternationalFontControls = Input { },
AdvancedFontControls = Input { },
Alignment = Input { },
LineRotation = Input { },
WordRotation = Input { },
CharacterRotation = Input { },
Options1 = Input { },
Color1 = Input { },
ColorImage1 = Input {
SourceOp = "TimeStretcher1_3",
Source = "Output",
},
Softness1 = Input { },
Transform1 = Input { },
RenderToDPTFile = Input { Disabled = true, },
DPTType = Input { Disabled = true, },
DPTResolution = Input { Disabled = true, },
StartEndRenderScripts = Input { },
EffectMask = Input { },
},
ViewInfo = OperatorInfo { Pos = { 495, 346.5, }, },
},
Text1 = TextPlus {
Inputs = {
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
CenterZ = Input { Value = 0.1506024, },
Size = Input { Value = 0.2334337, },
Font = Input { Value = "Arial", },
StyledText = Input { Value = "12345678", },
End = Input { Value = 0.0445205, },
Style = Input { Value = "Bold", },
ManualFontKerningPlacement = Input {
Value = StyledText {
Array = {
},
Value = "",
},
},
Type1 = Input { Value = 1, },
ColorImage1 = Input {
SourceOp = "TimeStretcher1",
Source = "Output",
},
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 = { 495, 49.5, }, },
},
Instance_Text1 = TextPlus {
SourceOp = "Text1",
Inputs = {
["Gamut.ColorSpaceNest"] = Input { },
["Gamut.GammaSpaceNest"] = Input { },
LayoutRotation = Input { },
Start = Input { Value = 0.0719178, },
End = Input { Value = 0.1164383, },
InternationalFontControls = Input { },
AdvancedFontControls = Input { },
Alignment = Input { },
LineRotation = Input { },
WordRotation = Input { },
CharacterRotation = Input { },
Options1 = Input { },
Color1 = Input { },
ColorImage1 = Input {
SourceOp = "TimeStretcher1_1",
Source = "Output",
},
Softness1 = Input { },
Transform1 = Input { },
RenderToDPTFile = Input { Disabled = true, },
DPTType = Input { Disabled = true, },
DPTResolution = Input { Disabled = true, },
StartEndRenderScripts = Input { },
EffectMask = Input { },
},
ViewInfo = OperatorInfo { Pos = { 495, 148.5, }, },
},
Instance_Text1_1 = TextPlus {
SourceOp = "Text1",
Inputs = {
["Gamut.ColorSpaceNest"] = Input { },
["Gamut.GammaSpaceNest"] = Input { },
LayoutRotation = Input { },
Start = Input { Value = 0.1678082, },
End = Input { Value = 0.2123287, },
InternationalFontControls = Input { },
AdvancedFontControls = Input { },
Alignment = Input { },
LineRotation = Input { },
WordRotation = Input { },
CharacterRotation = Input { },
Options1 = Input { },
Color1 = Input { },
ColorImage1 = Input {
SourceOp = "TimeStretcher1_2",
Source = "Output",
},
Softness1 = Input { },
Transform1 = Input { },
RenderToDPTFile = Input { Disabled = true, },
DPTType = Input { Disabled = true, },
DPTResolution = Input { Disabled = true, },
StartEndRenderScripts = Input { },
EffectMask = Input { },
},
ViewInfo = OperatorInfo { Pos = { 495, 247.5, }, },
},
Instance_Text1_3 = TextPlus {
SourceOp = "Text1",
Inputs = {
["Gamut.ColorSpaceNest"] = Input { },
["Gamut.GammaSpaceNest"] = Input { },
LayoutRotation = Input { },
Start = Input { Value = 0.380137, },
End = Input { Value = 0.4246575, },
InternationalFontControls = Input { },
AdvancedFontControls = Input { },
Alignment = Input { },
LineRotation = Input { },
WordRotation = Input { },
CharacterRotation = Input { },
Options1 = Input { },
Color1 = Input { },
ColorImage1 = Input {
SourceOp = "TimeStretcher1_4",
Source = "Output",
},
Softness1 = Input { },
Transform1 = Input { },
RenderToDPTFile = Input { Disabled = true, },
DPTType = Input { Disabled = true, },
DPTResolution = Input { Disabled = true, },
StartEndRenderScripts = Input { },
EffectMask = Input { },
},
ViewInfo = OperatorInfo { Pos = { 495, 445.5, }, },
},
Merge4 = Merge {
Inputs = {
Background = Input {
SourceOp = "Instance_Text1_3",
Source = "Output",
},
Foreground = Input {
SourceOp = "Merge3",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 605, 445.5, }, },
},
TimeStretcher1_4 = TimeStretcher {
Inputs = {
SourceTime = Input { Value = 4, },
InterpolateBetweenFrames = Input { Value = 0, },
SampleSpread = Input { Disabled = true, },
Input = Input {
SourceOp = "Dissolve1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 385, 445.5, }, },
},
TimeStretcher1 = TimeStretcher {
Inputs = {
SourceTime = Input { Value = 0, },
InterpolateBetweenFrames = Input { Value = 0, },
SampleSpread = Input { Disabled = true, },
Input = Input {
SourceOp = "Dissolve1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 385, 49.5, }, },
},
TimeStretcher1_3 = TimeStretcher {
Inputs = {
SourceTime = Input { Value = 3, },
InterpolateBetweenFrames = Input { Value = 0, },
SampleSpread = Input { Disabled = true, },
Input = Input {
SourceOp = "Dissolve1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 385, 346.5, }, },
},
TimeStretcher1_2 = TimeStretcher {
Inputs = {
SourceTime = Input { Value = 2, },
InterpolateBetweenFrames = Input { Value = 0, },
SampleSpread = Input { Disabled = true, },
Input = Input {
SourceOp = "Dissolve1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 385, 247.5, }, },
},
TimeStretcher1_1 = TimeStretcher {
Inputs = {
SourceTime = Input { Value = 1, },
InterpolateBetweenFrames = Input { Value = 0, },
SampleSpread = Input { Disabled = true, },
Input = Input {
SourceOp = "Dissolve1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 385, 148.5, }, },
},
Instance_Text1_4 = TextPlus {
SourceOp = "Text1",
Inputs = {
["Gamut.ColorSpaceNest"] = Input { },
["Gamut.GammaSpaceNest"] = Input { },
LayoutRotation = Input { },
Start = Input { Value = 0.4657534, },
End = Input { Value = 0.5102739, },
InternationalFontControls = Input { },
AdvancedFontControls = Input { },
Alignment = Input { },
LineRotation = Input { },
WordRotation = Input { },
CharacterRotation = Input { },
Options1 = Input { },
Color1 = Input { },
ColorImage1 = Input {
SourceOp = "TimeStretcher1_5",
Source = "Output",
},
Softness1 = Input { },
Transform1 = Input { },
RenderToDPTFile = Input { Disabled = true, },
DPTType = Input { Disabled = true, },
DPTResolution = Input { Disabled = true, },
StartEndRenderScripts = Input { },
EffectMask = Input { },
},
ViewInfo = OperatorInfo { Pos = { 495, 544.5, }, },
},
Merge5 = Merge {
Inputs = {
Background = Input {
SourceOp = "Instance_Text1_4",
Source = "Output",
},
Foreground = Input {
SourceOp = "Merge4",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 605, 544.5, }, },
},
TimeStretcher1_5 = TimeStretcher {
Inputs = {
SourceTime = Input { Value = 5, },
InterpolateBetweenFrames = Input { Value = 0, },
SampleSpread = Input { Disabled = true, },
Input = Input {
SourceOp = "Dissolve1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 385, 544.5, }, },
},
Instance_Text1_5 = TextPlus {
SourceOp = "Text1",
Inputs = {
["Gamut.ColorSpaceNest"] = Input { },
["Gamut.GammaSpaceNest"] = Input { },
LayoutRotation = Input { },
Start = Input { Value = 0.5993151, },
End = Input { Value = 0.6438356, },
InternationalFontControls = Input { },
AdvancedFontControls = Input { },
Alignment = Input { },
LineRotation = Input { },
WordRotation = Input { },
CharacterRotation = Input { },
Options1 = Input { },
Color1 = Input { },
ColorImage1 = Input {
SourceOp = "TimeStretcher1_6",
Source = "Output",
},
Softness1 = Input { },
Transform1 = Input { },
RenderToDPTFile = Input { Disabled = true, },
DPTType = Input { Disabled = true, },
DPTResolution = Input { Disabled = true, },
StartEndRenderScripts = Input { },
EffectMask = Input { },
},
ViewInfo = OperatorInfo { Pos = { 495, 643.5, }, },
},
Merge6 = Merge {
Inputs = {
Background = Input {
SourceOp = "Instance_Text1_5",
Source = "Output",
},
Foreground = Input {
SourceOp = "Merge5",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 605, 643.5, }, },
},
TimeStretcher1_6 = TimeStretcher {
Inputs = {
SourceTime = Input { Value = 6, },
InterpolateBetweenFrames = Input { Value = 0, },
SampleSpread = Input { Disabled = true, },
Input = Input {
SourceOp = "Dissolve1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 385, 643.5, }, },
},
Dissolve1 = Dissolve {
Transitions = {
[0] = "DFTDissolve",
},
Inputs = {
Mix = Input { Value = 0, },
Background = Input {
SourceOp = "Background1",
Source = "Output",
},
Foreground = Input {
SourceOp = "Loader3",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 110, 247.5, }, },
},
Background1 = Background {
CtrlWZoom = false,
Inputs = {
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
TopLeftRed = Input {
SourceOp = "Background1TopLeftRed",
Source = "Value",
},
TopLeftGreen = Input {
SourceOp = "Background1TopLeftGreen",
Source = "Value",
},
TopLeftBlue = Input {
SourceOp = "Background1TopLeftBlue",
Source = "Value",
},
TopLeftAlpha = Input {
SourceOp = "Background1TopLeftAlpha",
Source = "Value",
},
Gradient = Input {
Value = Gradient {
Colors = {
[0] = { 0, 0, 0, 1, },
[1] = { 1, 1, 1, 1, },
},
},
},
},
ViewInfo = OperatorInfo { Pos = { 110, 115.5, }, },
},
Background1TopLeftRed = BezierSpline {
SplineColor = { Red = 255, Green = 0, Blue = 0, },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 0.333333333333333, 0.333333333333333, }, Flags = { Linear = true, }, },
[1] = { 1, LH = { 0.666666666666667, 0.666666666666667, }, RH = { 1.66666666666667, 1, }, Flags = { Linear = true, }, },
[3] = { 1, LH = { 2.33333333333333, 1, }, RH = { 3.33333333333333, 0.666666666666667, }, Flags = { Linear = true, }, },
[4] = { 0, LH = { 3.66666666666667, 0.333333333333333, }, RH = { 4.33333333333333, 0.255427841634738, }, Flags = { Linear = true, }, },
[5] = { 0.766283524904215, LH = { 4.66666666666667, 0.510855683269476, }, RH = { 5.33, 0.617088122605364, }, Flags = { Linear = true, }, },
[6] = { 0.314176245210728, LH = { 5.67, 0.463371647509579, }, RH = { 6.33333333333333, 0.209450830140485, }, Flags = { Linear = true, }, },
[7] = { 0, LH = { 6.66666666666667, 0.104725415070243, }, Flags = { Linear = true, }, },
},
},
Background1TopLeftGreen = BezierSpline {
SplineColor = { Red = 0, Green = 255, Blue = 0, },
NameSet = true,
KeyFrames = {
[0] = { 1, RH = { 0.333333333333333, 0.666666666666667, }, Flags = { Linear = true, }, },
[1] = { 0, LH = { 0.666666666666667, 0.333333333333333, }, RH = { 1.66666666666667, 0.333333333333333, }, Flags = { Linear = true, }, },
[3] = { 1, LH = { 2.33333333333333, 0.666666666666667, }, RH = { 3.66666666666667, 0.83397190293742, }, Flags = { Linear = true, }, },
[5] = { 0.501915708812261, LH = { 4.33333333333333, 0.66794380587484, }, RH = { 5.33, 0.336283524904215, }, Flags = { Linear = true, }, },
[6] = { 0, LH = { 5.67, 0.165632183908046, }, Flags = { Linear = true, }, },
},
},
Background1TopLeftBlue = BezierSpline {
SplineColor = { Red = 0, Green = 0, Blue = 255, },
NameSet = true,
KeyFrames = {
[0] = { 0, RH = { 0.666666666666667, 0.333333333333333, }, Flags = { Linear = true, }, },
[2] = { 1, LH = { 1.33333333333333, 0.666666666666667, }, RH = { 2.33, 0.67, }, Flags = { Linear = true, }, },
[3] = { 0, LH = { 2.67, 0.33, }, RH = { 3.33333333333333, 0, }, Flags = { Linear = true, }, },
[4] = { 0, LH = { 3.66666666666667, 0, }, RH = { 4.33333333333333, 0.122605363984674, }, Flags = { Linear = true, }, },
[5] = { 0.367816091954023, LH = { 4.66666666666667, 0.245210727969349, }, RH = { 5.33, 0.466436781609195, }, Flags = { Linear = true, }, },
[6] = { 0.666666666666667, LH = { 5.67, 0.568045977011494, }, RH = { 6.33333333333333, 0.777777777777778, }, Flags = { Linear = true, }, },
[7] = { 1, LH = { 6.66666666666667, 0.888888888888889, }, Flags = { Linear = true, }, },
},
},
Background1TopLeftAlpha = BezierSpline {
SplineColor = { Red = 180, Green = 180, Blue = 180, },
NameSet = true,
KeyFrames = {
[0] = { 1, Flags = { Linear = true, }, },
},
},
Saver1 = Saver {
Inputs = {
ProcessWhenBlendIs00 = Input { Value = 0, },
Clip = Input {
Value = Clip {
Filename = "P:\\Private\\Kids\\_RENDERS\\Steam_04.avi",
FormatID = "AVIFormat",
Length = 0,
Saving = true,
TrimIn = 0,
ExtendFirst = 0,
ExtendLast = 0,
Loop = 1,
AspectMode = 0,
Depth = 0,
TimeCode = 0,
GlobalStart = -2000000000,
GlobalEnd = 0,
},
},
OutputFormat = Input { Value = FuID { "AVIFormat", }, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
Input = Input {
SourceOp = "Merge7",
Source = "Output",
},
["AVIFormat.Compression"] = Input { Value = 5, },
["AVIFormat.DataRateK"] = Input { Value = 627, },
["AVIFormat.Quality"] = Input { Value = 95, },
["AVIFormat.AttemptToSaveAlpha"] = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 770, 742.5, }, },
},
Merge7 = Merge {
Inputs = {
Background = Input {
SourceOp = "Instance_Text1_6",
Source = "Output",
},
Foreground = Input {
SourceOp = "Merge6",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 605, 742.5, }, },
},
Instance_Text1_6 = TextPlus {
SourceOp = "Text1",
Inputs = {
["Gamut.ColorSpaceNest"] = Input { },
["Gamut.GammaSpaceNest"] = Input { },
LayoutRotation = Input { },
Start = Input { Value = 0.6815068, },
End = Input { Value = 0.7260273, },
InternationalFontControls = Input { },
AdvancedFontControls = Input { },
Alignment = Input { },
LineRotation = Input { },
WordRotation = Input { },
CharacterRotation = Input { },
Options1 = Input { },
Color1 = Input { },
ColorImage1 = Input {
SourceOp = "TimeStretcher1_7",
Source = "Output",
},
Softness1 = Input { },
Transform1 = Input { },
RenderToDPTFile = Input { Disabled = true, },
DPTType = Input { Disabled = true, },
DPTResolution = Input { Disabled = true, },
StartEndRenderScripts = Input { },
EffectMask = Input { },
},
ViewInfo = OperatorInfo { Pos = { 495, 742.5, }, },
},
TimeStretcher1_7 = TimeStretcher {
Inputs = {
SourceTime = Input { Value = 7, },
InterpolateBetweenFrames = Input { Value = 0, },
SampleSpread = Input { Disabled = true, },
Input = Input {
SourceOp = "Dissolve1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 385, 742.5, }, },
},
Loader3 = Loader {
Clips = {
},
Inputs = {
MissingFrames = Input { Value = 2, },
PostMultiplyByAlpha = Input { Value = 1, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
},
ViewInfo = OperatorInfo { Pos = { 0, 247.5, }, },
},
},
}
Re: 2D Text with different images on each character

Posted:
Thu May 25, 2017 5:20 am
by Frank Van Atta
The intent of this exercise was to create a string of images that could be animated with the Text+ Follower tool. This short piece is rather primitive, but it does prove the concept.
https://drive.google.com/file/d/0B3dFsx ... sp=sharing