Root / Spline Tool

Editor tool for authoring roots or other tapered splines

The BP_SplineRootTool tool is used for making tapered splines in the editor. Once baked they are cheap to render, and support collision. If you are doing very complex roots Blender / zbrush are still better tools but for making in context roots this thing works great.

{{0xc000c0bb80 0xc000c0bb80 image-19.png Combining all the techniques alt text alt text 0xc000777da0} 0 false}

Combining all the techniques

Draw some roots

  • Under the collections tab, select Roots
    • There are several presets of roots to choose from - you can start with one of these and make per instance changes if you like
  • Before dragging one in, head to “modeling mode”
  • Click “Draw Spline”
  • Left click and drag in the viewport to draw the spline (works more or less like blender)
    {{0xc000c0bb80 0xc000c0bb80 image.png Use these settings in modeling mode > Draw Spline. You may want to tweak min point spacing depending on how large the mesh is going to be and how precisely you want the spline to follow corners  alt text alt text 0xc0007928a0} 1 false}

    Use these settings in modeling mode > Draw Spline. You may want to tweak min point spacing depending on how large the mesh is going to be and how precisely you want the spline to follow corners

Tips

  • You can release and click again to continue that line (good for changing viewports midway through)
  • Once you are finished with the spline, click accept. Don’t worry about it being perfect you will almost certainly have to edit it after.

Taper

Under the details panel of the new BP that spawned in world, scroll down and click “Set Manual Spline Scale Gradient”, then force an update by either changing a value on the detail panel or wiggling a spline point

{{0xc000c0bb80 0xc000c0bb80 image-1.png This automatically tapers the scale of all the spline points along the spline to a conical shape. You can (and probably will) manually tweak these but its a good start alt text alt text 0xc0008a9440} 2 false}

This automatically tapers the scale of all the spline points along the spline to a conical shape. You can (and probably will) manually tweak these but its a good start

{{0xc000c0bb80 0xc000c0bb80 image-2.png  alt text alt text 0xc00069a240} 3 false}

{{0xc000c0bb80 0xc000c0bb80 image-3.png You can set a different curve to use if you would like. alt text alt text 0xc00069a600} 4 false}

You can set a different curve to use if you would like.

Reducing spline points

After placing ya likely have way too many points for effective manual editing. You can click “Optimize Spline” to clear out redundant ones.

{{0xc000c0bb80 0xc000c0bb80 image-4.png  alt text alt text 0xc000822300} 5 false}
{{0xc000c0bb80 0xc000c0bb80 image-5.png  alt text alt text 0xc0008226c0} 6 false}

  • You may have to click it a few times. It’s a pretty stupid algorithm that looks for similar tangents and lazily deletes some. You will likely need to do some manual deleting later anyways, but it’s a start
  • It loves to make weird geo. Futz with it.

{{0xc000c0bb80 0xc000c0bb80 image-6.png  alt text alt text 0xc000822a80} 7 false}
{{0xc000c0bb80 0xc000c0bb80 image-7.png  alt text alt text 0xc000822f00} 8 false}

  • Usually it is just a matter of massaging the points to create cleaner turns. Sometimes you might need to rotate a point to get it to resolve better.

Detailed Settings

Spline mesh factor

{{0xc000c0bb80 0xc000c0bb80 image-8.png Spline mesh factor adds more samples along the spline (more resolution) to smooth out potential garbage. alt text alt text 0xc0008232c0} 9 false}

Spline mesh factor adds more samples along the spline (more resolution) to smooth out potential garbage.

{{0xc000c0bb80 0xc000c0bb80 image-9.png  alt text alt text 0xc0008237a0} 10 false}
{{0xc000c0bb80 0xc000c0bb80 image-10.png  alt text alt text 0xc000823e00} 11 false}

I’ve found that keeping this as low as possible generally gives better results / cleaner. Don’t worry about jaggies too much, it’s style baby!

{{0xc000c0bb80 0xc000c0bb80 image-11.png You can change the radius of the whole mesh with MainMeshScale. Dunno why I made this a Vector2, only the first value is used. alt text alt text 0xc000792b40} 12 false}

You can change the radius of the whole mesh with MainMeshScale. Dunno why I made this a Vector2, only the first value is used.

Remember you can individually edit each point’s scale as well

Other Settings

{{0xc000c0bb80 0xc000c0bb80 image-12.png  alt text alt text 0xc0007932c0} 13 false}

  • Subdivide is a regular ole subdivision modifier on the whole mesh after generating
  • Gradient scale is a multiplier on the curve when setting the scale gradient. Generally wanna leave this at 2
  • Manual subsplines don’t really work very well so I recommend keeping this off for now
  • Simplification tolerance controls the simplification amount - the higher the number, the more crunched the mesh gets. I’ve found that pushing the mesh more on the simple side often solves visual errors caused by verts bunching up and can actually look cleaner, so I have it set pretty high by default.

Baking

You can bake down these assets non-destructively the same way the “SplineWallTool” works

{{0xc000c0bb80 0xc000c0bb80 image-13.png  alt text alt text 0xc000793980} 14 false}

  • You can select multiple and do many at once, keep in mind they do not merge together but instead will bake in series. (we can merge later if we need to)
  • You don’t need to worry about doing this as you work, but keep in mind that they will not have a distance field until you bake (No lumen occlusion!)
  • You can swap back to dynamic with:
    {{0xc000c0bb80 0xc000c0bb80 image-14.png  alt text alt text 0xc00069a060} 15 false}

Example techniques:

{{0xc000c0bb80 0xc000c0bb80 image-15.png You can non uniformly stretch and squash the spline \- really useful for getting interesting shapes. alt text alt text 0xc0008a8180} 16 false}

You can non uniformly stretch and squash the spline - really useful for getting interesting shapes.

{{0xc000c0bb80 0xc000c0bb80 image-16.png When drawing, the spline collide with each other, making it easier to do the cool thing. alt text alt text 0xc0009900c0} 17 false}

When drawing, the spline collide with each other, making it easier to do the cool thing.

{{0xc000c0bb80 0xc000c0bb80 image-17.png There is no true bifurcation, but you can easily get away with bashing. alt text alt text 0xc00069bb00} 18 false}

There is no true bifurcation, but you can easily get away with bashing.

{{0xc000c0bb80 0xc000c0bb80 image-18.png Wide, flat sections can look really nice hugging playable geo. alt text alt text 0xc00069bf20} 19 false}

Wide, flat sections can look really nice hugging playable geo.

Happy rooting!