Jump to: Board index » General » Fusion

Сhange the shape of individual letters in 3D fonts

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

Jinxer

  • Posts: 59
  • Joined: Thu Sep 23, 2021 3:06 pm
  • Real Name: Sergey Zinchenko

Сhange the shape of individual letters in 3D fonts

PostFri Jan 21, 2022 12:59 am

Is there a way to manually change the shape of individual letters in 3D fonts? I mean not only the rotation and shear, but also the shape of the letters themselves.
Offline

Sander de Regt

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

Re: Сhange the shape of individual letters in 3D fonts

PostFri Jan 21, 2022 7:12 am

Only by using another font for them and/or by using tools like displace on them, but I am not sure if the geometry is clean enough for the latter. You can't do any mesh editing on them if that's what you meant.
Sander de Regt

ShadowMaker SdR
The Netherlands
Offline

Jinxer

  • Posts: 59
  • Joined: Thu Sep 23, 2021 3:06 pm
  • Real Name: Sergey Zinchenko

Re: Сhange the shape of individual letters in 3D fonts

PostFri Jan 21, 2022 4:06 pm

Maybe there are additional plugins like krokodov that can edit the mesh?
Offline
User avatar

Bryan Ray

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

Re: Сhange the shape of individual letters in 3D fonts

PostFri Jan 21, 2022 5:18 pm

There's SecondMan's Yankee macro. It's a little hard to use, but it can move points around. There's no way of adding loops, though, which would be very useful.

Krokodove has some tools that can convert text to its shape format, then extrude. I don't know if that would create a more useful mesh or not.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

Jinxer

  • Posts: 59
  • Joined: Thu Sep 23, 2021 3:06 pm
  • Real Name: Sergey Zinchenko

Re: Сhange the shape of individual letters in 3D fonts

PostFri Jan 21, 2022 11:32 pm

Bryan Ray wrote:There's SecondMan's Yankee macro.

I'm not sure if it can be used to change the text in a meaningful way. Its result seems random.
Offline
User avatar

Bryan Ray

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

Re: Сhange the shape of individual letters in 3D fonts

PostSat Jan 22, 2022 6:55 pm

It's tricky, for sure. It uses the UV coordinates to select which vertex to move, and the Range and Falloff controls can let you do a soft selection. For text, I'd say you'd want to use a UV Map node to do a planar projection across the entire text. Otherwise, the UV coordinates are repeated for each letter.

Capture.JPG
Capture.JPG (38.51 KiB) Viewed 928 times


Code: Select all
{
   Tools = ordered() {
      Yankee_3 = MacroOperator {
         CustomData = {
            Path = {
               Map = {
                  ["Setting:"] = "Macros:\\3D\\"
               }
            },
         },
         Inputs = ordered() {
            MainInput1 = InstanceInput {
               SourceOp = "CustomVertex3D1_8",
               Source = "SceneInput",
            },
            Input1 = InstanceInput {
               SourceOp = "CustomVertex3D1_8",
               Source = "Number5",
            },
            Input2 = InstanceInput {
               SourceOp = "CustomVertex3D1_8",
               Source = "Number6",
            },
            Input3 = InstanceInput {
               SourceOp = "CustomVertex3D1_8",
               Source = "Number7",
            },
            Input4 = InstanceInput {
               SourceOp = "CustomVertex3D1_8",
               Source = "Number8",
            },
            Input5 = InstanceInput {
               SourceOp = "CustomVertex3D1_8",
               Source = "Point1.X",
               Default = 0,
            },
            Input6 = InstanceInput {
               SourceOp = "CustomVertex3D1_8",
               Source = "Point1.Y",
               Default = 0,
            },
            Input7 = InstanceInput {
               SourceOp = "CustomVertex3D1_8",
               Source = "Point1.Z",
               Default = 0,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "CustomVertex3D1_8",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 770, 16.5 } },
         Tools = ordered() {
            CustomVertex3D1_8 = CustomVertex3D {
               CtrlWZoom = false,
               CtrlWShown = false,
               CustomData = {
                  Settings = {
                  }
               },
               Inputs = {
                  SceneInput = Input {
                     SourceOp = "CustomVertex3D1_9",
                     Source = "Output",
                  },
                  ["Position.X"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, px + ( p1x * i1 * i2 ) , px)", },
                  ["Position.Y"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, py + ( p1y * i1 * i2 ) , py)", },
                  ["Position.Z"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, pz + ( p1z * i1 * i2 ) , pz)", },
                  ["VertexColor.Nest"] = Input { Value = 1, },
                  ["TexCoord.Nest"] = Input { Value = 1, },
                  Number1 = Input {
                     Value = 0.522,
                     Expression = "Number5-(Number7/2)",
                  },
                  Number2 = Input {
                     Value = 0.58,
                     Expression = "Number5+(Number7/2)",
                  },
                  Number3 = Input {
                     Value = 0.971,
                     Expression = "Number6-(Number7/2)",
                  },
                  Number4 = Input {
                     Value = 1.029,
                     Expression = "Number6+(Number7/2)",
                  },
                  Number5 = Input { Value = 0.551, },
                  Number6 = Input { Value = 1, },
                  Number7 = Input { Value = 0.058, },
                  ["Point1.Y"] = Input { Value = 0.203, },
                  LUT1 = Input {
                     SourceOp = "CustomVertex3D1_5LUT1_3",
                     Source = "Value",
                  },
                  LUT2 = Input {
                     SourceOp = "CustomVertex3D1_5LUT2_3",
                     Source = "Value",
                  },
                  LUT3 = Input {
                     SourceOp = "CustomVertex3D1_5LUT3_3",
                     Source = "Value",
                  },
                  LUT4 = Input {
                     SourceOp = "CustomVertex3D1_5LUT4_3",
                     Source = "Value",
                  },
                  Intermediate1 = Input { Value = "( ( n7 - abs ( tu - n5 ) > 0 ) * ( n7 - n8 * abs ( tu - n5 ) ) ) / n7 ", },
                  Intermediate2 = Input { Value = "( ( n7 - abs ( tv - n6 ) > 0 ) * ( n7 - n8 * abs ( tv - n6 ) ) ) / n7 ", },
                  ShowNumber1 = Input { Value = 0, },
                  NameForNumber1 = Input { Value = "U index low", },
                  ShowNumber2 = Input { Value = 0, },
                  NameForNumber2 = Input { Value = "U index high", },
                  ShowNumber3 = Input { Value = 0, },
                  NameForNumber3 = Input { Value = "V index low", },
                  ShowNumber4 = Input { Value = 0, },
                  NameForNumber4 = Input { Value = "V index high", },
                  NameForNumber5 = Input { Value = "U index", },
                  NameForNumber6 = Input { Value = "V index", },
                  NameForNumber7 = Input { Value = "Range", },
                  NameForNumber8 = Input { Value = "Falloff", },
                  NameForPoint1 = Input { Value = "Transform ", },
                  ShowPoint2 = Input { Value = 0, },
                  ShowPoint3 = Input { Value = 0, },
                  ShowPoint4 = Input { Value = 0, },
                  ShowPoint5 = Input { Value = 0, },
                  ShowPoint6 = Input { Value = 0, },
                  ShowPoint7 = Input { Value = 0, },
                  ShowPoint8 = Input { Value = 0, },
                  ShowImage1 = Input { Value = 0, },
                  ShowImage2 = Input { Value = 0, },
                  ShowImage3 = Input { Value = 0, },
                  ShowLUT1 = Input { Value = 0, },
                  ShowLUT2 = Input { Value = 0, },
                  ShowLUT3 = Input { Value = 0, },
                  ShowLUT4 = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 8.75758 } },
            },
            CustomVertex3D1_5LUT1_3 = 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 },
            },
            CustomVertex3D1_5LUT2_3 = 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 },
            },
            CustomVertex3D1_5LUT3_3 = 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 },
            },
            CustomVertex3D1_5LUT4_3 = 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 },
            }
         },
      },
      Yankee_4 = MacroOperator {
         CtrlWZoom = false,
         CustomData = {
            Path = {
               Map = {
                  ["Setting:"] = "Macros:\\3D\\"
               }
            },
         },
         Inputs = ordered() {
            MainInput1 = InstanceInput {
               SourceOp = "CustomVertex3D1_9",
               Source = "SceneInput",
            },
            Input1 = InstanceInput {
               SourceOp = "CustomVertex3D1_9",
               Source = "Number5",
            },
            Input2 = InstanceInput {
               SourceOp = "CustomVertex3D1_9",
               Source = "Number6",
            },
            Input3 = InstanceInput {
               SourceOp = "CustomVertex3D1_9",
               Source = "Number7",
            },
            Input4 = InstanceInput {
               SourceOp = "CustomVertex3D1_9",
               Source = "Number8",
            },
            Input5 = InstanceInput {
               SourceOp = "CustomVertex3D1_9",
               Source = "Point1.X",
               Default = 0,
            },
            Input6 = InstanceInput {
               SourceOp = "CustomVertex3D1_9",
               Source = "Point1.Y",
               Default = 0,
            },
            Input7 = InstanceInput {
               SourceOp = "CustomVertex3D1_9",
               Source = "Point1.Z",
               Default = 0,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "CustomVertex3D1_9",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 660, 16.5 } },
         Tools = ordered() {
            CustomVertex3D1_9 = CustomVertex3D {
               CtrlWZoom = false,
               CtrlWShown = false,
               CustomData = {
                  Settings = {
                  }
               },
               Inputs = {
                  SceneInput = Input {
                     SourceOp = "CustomVertex3D1_7",
                     Source = "Output",
                  },
                  ["Position.X"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, px + ( p1x * i1 * i2 ) , px)", },
                  ["Position.Y"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, py + ( p1y * i1 * i2 ) , py)", },
                  ["Position.Z"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, pz + ( p1z * i1 * i2 ) , pz)", },
                  ["VertexColor.Nest"] = Input { Value = 1, },
                  ["TexCoord.Nest"] = Input { Value = 1, },
                  Number1 = Input {
                     Value = 0.7918,
                     Expression = "Number5-(Number7/2)",
                  },
                  Number2 = Input {
                     Value = 0.8602,
                     Expression = "Number5+(Number7/2)",
                  },
                  Number3 = Input {
                     Value = -0.0342,
                     Expression = "Number6-(Number7/2)",
                  },
                  Number4 = Input {
                     Value = 0.0342,
                     Expression = "Number6+(Number7/2)",
                  },
                  Number5 = Input { Value = 0.826, },
                  Number7 = Input { Value = 0.0684, },
                  ["Point1.Y"] = Input { Value = -0.145, },
                  LUT1 = Input {
                     SourceOp = "CustomVertex3D1_5LUT1_4",
                     Source = "Value",
                  },
                  LUT2 = Input {
                     SourceOp = "CustomVertex3D1_5LUT2_4",
                     Source = "Value",
                  },
                  LUT3 = Input {
                     SourceOp = "CustomVertex3D1_5LUT3_4",
                     Source = "Value",
                  },
                  LUT4 = Input {
                     SourceOp = "CustomVertex3D1_5LUT4_4",
                     Source = "Value",
                  },
                  Intermediate1 = Input { Value = "( ( n7 - abs ( tu - n5 ) > 0 ) * ( n7 - n8 * abs ( tu - n5 ) ) ) / n7 ", },
                  Intermediate2 = Input { Value = "( ( n7 - abs ( tv - n6 ) > 0 ) * ( n7 - n8 * abs ( tv - n6 ) ) ) / n7 ", },
                  ShowNumber1 = Input { Value = 0, },
                  NameForNumber1 = Input { Value = "U index low", },
                  ShowNumber2 = Input { Value = 0, },
                  NameForNumber2 = Input { Value = "U index high", },
                  ShowNumber3 = Input { Value = 0, },
                  NameForNumber3 = Input { Value = "V index low", },
                  ShowNumber4 = Input { Value = 0, },
                  NameForNumber4 = Input { Value = "V index high", },
                  NameForNumber5 = Input { Value = "U index", },
                  NameForNumber6 = Input { Value = "V index", },
                  NameForNumber7 = Input { Value = "Range", },
                  NameForNumber8 = Input { Value = "Falloff", },
                  NameForPoint1 = Input { Value = "Transform ", },
                  ShowPoint2 = Input { Value = 0, },
                  ShowPoint3 = Input { Value = 0, },
                  ShowPoint4 = Input { Value = 0, },
                  ShowPoint5 = Input { Value = 0, },
                  ShowPoint6 = Input { Value = 0, },
                  ShowPoint7 = Input { Value = 0, },
                  ShowPoint8 = Input { Value = 0, },
                  ShowImage1 = Input { Value = 0, },
                  ShowImage2 = Input { Value = 0, },
                  ShowImage3 = Input { Value = 0, },
                  ShowLUT1 = Input { Value = 0, },
                  ShowLUT2 = Input { Value = 0, },
                  ShowLUT3 = Input { Value = 0, },
                  ShowLUT4 = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 8.75758 } },
            },
            CustomVertex3D1_5LUT1_4 = 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 },
            },
            CustomVertex3D1_5LUT2_4 = 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 },
            },
            CustomVertex3D1_5LUT3_4 = 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 },
            },
            CustomVertex3D1_5LUT4_4 = 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 },
            }
         },
      },
      Yankee = MacroOperator {
         CustomData = {
            Path = {
               Map = {
                  ["Setting:"] = "Macros:\\3D\\"
               }
            },
         },
         Inputs = ordered() {
            MainInput1 = InstanceInput {
               SourceOp = "CustomVertex3D1_5",
               Source = "SceneInput",
            },
            Input1 = InstanceInput {
               SourceOp = "CustomVertex3D1_5",
               Source = "Number5",
            },
            Input2 = InstanceInput {
               SourceOp = "CustomVertex3D1_5",
               Source = "Number6",
            },
            Input3 = InstanceInput {
               SourceOp = "CustomVertex3D1_5",
               Source = "Number7",
            },
            Input4 = InstanceInput {
               SourceOp = "CustomVertex3D1_5",
               Source = "Number8",
            },
            Input5 = InstanceInput {
               SourceOp = "CustomVertex3D1_5",
               Source = "Point1.X",
               Default = 0,
            },
            Input6 = InstanceInput {
               SourceOp = "CustomVertex3D1_5",
               Source = "Point1.Y",
               Default = 0,
            },
            Input7 = InstanceInput {
               SourceOp = "CustomVertex3D1_5",
               Source = "Point1.Z",
               Default = 0,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "CustomVertex3D1_5",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 330, 16.5 } },
         Tools = ordered() {
            CustomVertex3D1_5 = CustomVertex3D {
               CtrlWZoom = false,
               CtrlWShown = false,
               CustomData = {
                  Settings = {
                  }
               },
               Inputs = {
                  SceneInput = Input {
                     SourceOp = "UVMap3D1",
                     Source = "Output",
                  },
                  ["Position.X"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, px + ( p1x * i1 * i2 ) , px)", },
                  ["Position.Y"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, py + ( p1y * i1 * i2 ) , py)", },
                  ["Position.Z"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, pz + ( p1z * i1 * i2 ) , pz)", },
                  ["VertexColor.Nest"] = Input { Value = 1, },
                  ["TexCoord.Nest"] = Input { Value = 1, },
                  Number1 = Input {
                     Value = 0.9845,
                     Expression = "Number5-(Number7/2)",
                  },
                  Number2 = Input {
                     Value = 1.0155,
                     Expression = "Number5+(Number7/2)",
                  },
                  Number3 = Input {
                     Value = 0.9845,
                     Expression = "Number6-(Number7/2)",
                  },
                  Number4 = Input {
                     Value = 1.0155,
                     Expression = "Number6+(Number7/2)",
                  },
                  Number5 = Input { Value = 1, },
                  Number6 = Input { Value = 1, },
                  Number7 = Input { Value = 0.031, },
                  ["Point1.Y"] = Input { Value = 0.145, },
                  LUT1 = Input {
                     SourceOp = "CustomVertex3D1_5LUT1",
                     Source = "Value",
                  },
                  LUT2 = Input {
                     SourceOp = "CustomVertex3D1_5LUT2",
                     Source = "Value",
                  },
                  LUT3 = Input {
                     SourceOp = "CustomVertex3D1_5LUT3",
                     Source = "Value",
                  },
                  LUT4 = Input {
                     SourceOp = "CustomVertex3D1_5LUT4",
                     Source = "Value",
                  },
                  Intermediate1 = Input { Value = "( ( n7 - abs ( tu - n5 ) > 0 ) * ( n7 - n8 * abs ( tu - n5 ) ) ) / n7 ", },
                  Intermediate2 = Input { Value = "( ( n7 - abs ( tv - n6 ) > 0 ) * ( n7 - n8 * abs ( tv - n6 ) ) ) / n7 ", },
                  ShowNumber1 = Input { Value = 0, },
                  NameForNumber1 = Input { Value = "U index low", },
                  ShowNumber2 = Input { Value = 0, },
                  NameForNumber2 = Input { Value = "U index high", },
                  ShowNumber3 = Input { Value = 0, },
                  NameForNumber3 = Input { Value = "V index low", },
                  ShowNumber4 = Input { Value = 0, },
                  NameForNumber4 = Input { Value = "V index high", },
                  NameForNumber5 = Input { Value = "U index", },
                  NameForNumber6 = Input { Value = "V index", },
                  NameForNumber7 = Input { Value = "Range", },
                  NameForNumber8 = Input { Value = "Falloff", },
                  NameForPoint1 = Input { Value = "Transform ", },
                  ShowPoint2 = Input { Value = 0, },
                  ShowPoint3 = Input { Value = 0, },
                  ShowPoint4 = Input { Value = 0, },
                  ShowPoint5 = Input { Value = 0, },
                  ShowPoint6 = Input { Value = 0, },
                  ShowPoint7 = Input { Value = 0, },
                  ShowPoint8 = Input { Value = 0, },
                  ShowImage1 = Input { Value = 0, },
                  ShowImage2 = Input { Value = 0, },
                  ShowImage3 = Input { Value = 0, },
                  ShowLUT1 = Input { Value = 0, },
                  ShowLUT2 = Input { Value = 0, },
                  ShowLUT3 = Input { Value = 0, },
                  ShowLUT4 = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 8.75758 } },
            },
            CustomVertex3D1_5LUT1 = 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 },
            },
            CustomVertex3D1_5LUT2 = 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 },
            },
            CustomVertex3D1_5LUT3 = 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 },
            },
            CustomVertex3D1_5LUT4 = 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 },
            }
         },
      },
      Yankee_1 = MacroOperator {
         CustomData = {
            Path = {
               Map = {
                  ["Setting:"] = "Macros:\\3D\\"
               }
            },
         },
         Inputs = ordered() {
            MainInput1 = InstanceInput {
               SourceOp = "CustomVertex3D1_6",
               Source = "SceneInput",
            },
            Input1 = InstanceInput {
               SourceOp = "CustomVertex3D1_6",
               Source = "Number5",
            },
            Input2 = InstanceInput {
               SourceOp = "CustomVertex3D1_6",
               Source = "Number6",
            },
            Input3 = InstanceInput {
               SourceOp = "CustomVertex3D1_6",
               Source = "Number7",
            },
            Input4 = InstanceInput {
               SourceOp = "CustomVertex3D1_6",
               Source = "Number8",
            },
            Input5 = InstanceInput {
               SourceOp = "CustomVertex3D1_6",
               Source = "Point1.X",
               Default = 0,
            },
            Input6 = InstanceInput {
               SourceOp = "CustomVertex3D1_6",
               Source = "Point1.Y",
               Default = 0,
            },
            Input7 = InstanceInput {
               SourceOp = "CustomVertex3D1_6",
               Source = "Point1.Z",
               Default = 0,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "CustomVertex3D1_6",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 440, 16.5 } },
         Tools = ordered() {
            CustomVertex3D1_6 = CustomVertex3D {
               CtrlWZoom = false,
               CtrlWShown = false,
               CustomData = {
                  Settings = {
                  }
               },
               Inputs = {
                  SceneInput = Input {
                     SourceOp = "CustomVertex3D1_5",
                     Source = "Output",
                  },
                  ["Position.X"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, px + ( p1x * i1 * i2 ) , px)", },
                  ["Position.Y"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, py + ( p1y * i1 * i2 ) , py)", },
                  ["Position.Z"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, pz + ( p1z * i1 * i2 ) , pz)", },
                  ["VertexColor.Nest"] = Input { Value = 1, },
                  ["TexCoord.Nest"] = Input { Value = 1, },
                  Number1 = Input {
                     Value = -0.0145,
                     Expression = "Number5-(Number7/2)",
                  },
                  Number2 = Input {
                     Value = 0.0145,
                     Expression = "Number5+(Number7/2)",
                  },
                  Number3 = Input {
                     Value = -0.0145,
                     Expression = "Number6-(Number7/2)",
                  },
                  Number4 = Input {
                     Value = 0.0145,
                     Expression = "Number6+(Number7/2)",
                  },
                  Number7 = Input { Value = 0.029, },
                  ["Point1.Y"] = Input { Value = -0.174, },
                  LUT1 = Input {
                     SourceOp = "CustomVertex3D1_5LUT1_1",
                     Source = "Value",
                  },
                  LUT2 = Input {
                     SourceOp = "CustomVertex3D1_5LUT2_1",
                     Source = "Value",
                  },
                  LUT3 = Input {
                     SourceOp = "CustomVertex3D1_5LUT3_1",
                     Source = "Value",
                  },
                  LUT4 = Input {
                     SourceOp = "CustomVertex3D1_5LUT4_1",
                     Source = "Value",
                  },
                  Intermediate1 = Input { Value = "( ( n7 - abs ( tu - n5 ) > 0 ) * ( n7 - n8 * abs ( tu - n5 ) ) ) / n7 ", },
                  Intermediate2 = Input { Value = "( ( n7 - abs ( tv - n6 ) > 0 ) * ( n7 - n8 * abs ( tv - n6 ) ) ) / n7 ", },
                  ShowNumber1 = Input { Value = 0, },
                  NameForNumber1 = Input { Value = "U index low", },
                  ShowNumber2 = Input { Value = 0, },
                  NameForNumber2 = Input { Value = "U index high", },
                  ShowNumber3 = Input { Value = 0, },
                  NameForNumber3 = Input { Value = "V index low", },
                  ShowNumber4 = Input { Value = 0, },
                  NameForNumber4 = Input { Value = "V index high", },
                  NameForNumber5 = Input { Value = "U index", },
                  NameForNumber6 = Input { Value = "V index", },
                  NameForNumber7 = Input { Value = "Range", },
                  NameForNumber8 = Input { Value = "Falloff", },
                  NameForPoint1 = Input { Value = "Transform ", },
                  ShowPoint2 = Input { Value = 0, },
                  ShowPoint3 = Input { Value = 0, },
                  ShowPoint4 = Input { Value = 0, },
                  ShowPoint5 = Input { Value = 0, },
                  ShowPoint6 = Input { Value = 0, },
                  ShowPoint7 = Input { Value = 0, },
                  ShowPoint8 = Input { Value = 0, },
                  ShowImage1 = Input { Value = 0, },
                  ShowImage2 = Input { Value = 0, },
                  ShowImage3 = Input { Value = 0, },
                  ShowLUT1 = Input { Value = 0, },
                  ShowLUT2 = Input { Value = 0, },
                  ShowLUT3 = Input { Value = 0, },
                  ShowLUT4 = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 8.75758 } },
            },
            CustomVertex3D1_5LUT1_1 = 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 },
            },
            CustomVertex3D1_5LUT2_1 = 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 },
            },
            CustomVertex3D1_5LUT3_1 = 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 },
            },
            CustomVertex3D1_5LUT4_1 = 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 },
            }
         },
      },
      Yankee_2 = MacroOperator {
         CustomData = {
            Path = {
               Map = {
                  ["Setting:"] = "Macros:\\3D\\"
               }
            },
         },
         Inputs = ordered() {
            MainInput1 = InstanceInput {
               SourceOp = "CustomVertex3D1_7",
               Source = "SceneInput",
            },
            Input1 = InstanceInput {
               SourceOp = "CustomVertex3D1_7",
               Source = "Number5",
            },
            Input2 = InstanceInput {
               SourceOp = "CustomVertex3D1_7",
               Source = "Number6",
            },
            Input3 = InstanceInput {
               SourceOp = "CustomVertex3D1_7",
               Source = "Number7",
            },
            Input4 = InstanceInput {
               SourceOp = "CustomVertex3D1_7",
               Source = "Number8",
            },
            Input5 = InstanceInput {
               SourceOp = "CustomVertex3D1_7",
               Source = "Point1.X",
               Default = 0,
            },
            Input6 = InstanceInput {
               SourceOp = "CustomVertex3D1_7",
               Source = "Point1.Y",
               Default = 0,
            },
            Input7 = InstanceInput {
               SourceOp = "CustomVertex3D1_7",
               Source = "Point1.Z",
               Default = 0,
            }
         },
         Outputs = {
            MainOutput1 = InstanceOutput {
               SourceOp = "CustomVertex3D1_7",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 550, 16.5 } },
         Tools = ordered() {
            CustomVertex3D1_7 = CustomVertex3D {
               CtrlWZoom = false,
               CtrlWShown = false,
               CustomData = {
                  Settings = {
                  }
               },
               Inputs = {
                  SceneInput = Input {
                     SourceOp = "CustomVertex3D1_6",
                     Source = "Output",
                  },
                  ["Position.X"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, px + ( p1x * i1 * i2 ) , px)", },
                  ["Position.Y"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, py + ( p1y * i1 * i2 ) , py)", },
                  ["Position.Z"] = Input { Value = "if ( tu >= n1 & tu <= n2 & tv >= n3 & tv <= n4, pz + ( p1z * i1 * i2 ) , pz)", },
                  ["VertexColor.Nest"] = Input { Value = 1, },
                  ["TexCoord.Nest"] = Input { Value = 1, },
                  Number1 = Input {
                     Value = 0.4954,
                     Expression = "Number5-(Number7/2)",
                  },
                  Number2 = Input {
                     Value = 0.5486,
                     Expression = "Number5+(Number7/2)",
                  },
                  Number3 = Input {
                     Value = -0.0266,
                     Expression = "Number6-(Number7/2)",
                  },
                  Number4 = Input {
                     Value = 0.0266,
                     Expression = "Number6+(Number7/2)",
                  },
                  Number5 = Input { Value = 0.522, },
                  Number7 = Input { Value = 0.0532, },
                  ["Point1.Y"] = Input { Value = -0.174, },
                  LUT1 = Input {
                     SourceOp = "CustomVertex3D1_5LUT1_2",
                     Source = "Value",
                  },
                  LUT2 = Input {
                     SourceOp = "CustomVertex3D1_5LUT2_2",
                     Source = "Value",
                  },
                  LUT3 = Input {
                     SourceOp = "CustomVertex3D1_5LUT3_2",
                     Source = "Value",
                  },
                  LUT4 = Input {
                     SourceOp = "CustomVertex3D1_5LUT4_2",
                     Source = "Value",
                  },
                  Intermediate1 = Input { Value = "( ( n7 - abs ( tu - n5 ) > 0 ) * ( n7 - n8 * abs ( tu - n5 ) ) ) / n7 ", },
                  Intermediate2 = Input { Value = "( ( n7 - abs ( tv - n6 ) > 0 ) * ( n7 - n8 * abs ( tv - n6 ) ) ) / n7 ", },
                  ShowNumber1 = Input { Value = 0, },
                  NameForNumber1 = Input { Value = "U index low", },
                  ShowNumber2 = Input { Value = 0, },
                  NameForNumber2 = Input { Value = "U index high", },
                  ShowNumber3 = Input { Value = 0, },
                  NameForNumber3 = Input { Value = "V index low", },
                  ShowNumber4 = Input { Value = 0, },
                  NameForNumber4 = Input { Value = "V index high", },
                  NameForNumber5 = Input { Value = "U index", },
                  NameForNumber6 = Input { Value = "V index", },
                  NameForNumber7 = Input { Value = "Range", },
                  NameForNumber8 = Input { Value = "Falloff", },
                  NameForPoint1 = Input { Value = "Transform ", },
                  ShowPoint2 = Input { Value = 0, },
                  ShowPoint3 = Input { Value = 0, },
                  ShowPoint4 = Input { Value = 0, },
                  ShowPoint5 = Input { Value = 0, },
                  ShowPoint6 = Input { Value = 0, },
                  ShowPoint7 = Input { Value = 0, },
                  ShowPoint8 = Input { Value = 0, },
                  ShowImage1 = Input { Value = 0, },
                  ShowImage2 = Input { Value = 0, },
                  ShowImage3 = Input { Value = 0, },
                  ShowLUT1 = Input { Value = 0, },
                  ShowLUT2 = Input { Value = 0, },
                  ShowLUT3 = Input { Value = 0, },
                  ShowLUT4 = Input { Value = 0, },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 8.75758 } },
            },
            CustomVertex3D1_5LUT1_2 = 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 },
            },
            CustomVertex3D1_5LUT2_2 = 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 },
            },
            CustomVertex3D1_5LUT3_2 = 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 },
            },
            CustomVertex3D1_5LUT4_2 = 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 },
            }
         },
      },
      UVMap3D1 = UVMap {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Text3D1",
               Source = "Output",
            },
            Orientation = Input { Value = 2, },
            ["Size.X"] = Input { Value = 2.12405872344971, },
            ["Size.Y"] = Input { Value = 0.431695938110352, },
            ["Size.Z"] = Input { Value = 0.00100000004749745, },
            ["Center.Y"] = Input { Value = 0.210111141204834, },
         },
         ViewInfo = OperatorInfo { Pos = { 220, 16.5 } },
      },
      Text3D1 = Text3D {
         Inputs = {
            StyledText = Input { Value = "FUSION", },
            Font = Input { Value = "Open Sans", },
            Style = Input { Value = "Bold", },
            VerticalTopCenterBottom = Input { Value = 1, },
            VerticalJustification = Input { Value = 3, },
            VerticalJustificationNew = Input { Value = 3, },
            HorizontalJustificationNew = Input { Value = 3, },
            Extrusion = Input { Value = 1, },
            ExtrusionProfile = Input {
               SourceOp = "Text3D1ExtrusionProfile",
               Source = "Value",
            },
            ExtrusionDepth = Input { Value = 0.1039, },
         },
         ViewInfo = OperatorInfo { Pos = { 110, 16.5 } },
      },
      Text3D1ExtrusionProfile = LUTBezier {
         KeyColorSplines = {
            [0] = {
               [0] = { 0, RH = { 0.0196116135138184, 0.098058067569092 }, Flags = { Linear = true } },
               [0.2] = { 1, LH = { 0.180388386486182, 0.901941932430908 }, RH = { 0.3, 1 }, Flags = { Linear = true } },
               [0.8] = { 1, LH = { 0.7, 1 }, RH = { 0.819611613513818, 0.901941932430908 }, Flags = { Linear = true } },
               [1] = { 0, LH = { 0.980388386486182, 0.098058067569092 }, Flags = { Linear = true } }
            }
         },
         SplineColor = { Red = 192, Green = 128, Blue = 64 },
         NameSet = true,
      }
   }
}


But again, without the ability to retopologize you're very much limited by the mesh that Text3D produces.
Bryan Ray
http://www.bryanray.name
http://www.sidefx.com
Offline

Jinxer

  • Posts: 59
  • Joined: Thu Sep 23, 2021 3:06 pm
  • Real Name: Sergey Zinchenko

Re: Сhange the shape of individual letters in 3D fonts

PostSun Jan 23, 2022 6:23 pm

Thank you. The possibilities of this approach are very limited. I think it is better to create text in blender.

Return to Fusion

Who is online

Users browsing this forum: No registered users and 13 guests