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.

{{0xc000e79720 0xc000e79720 image-19.png Combining all the techniques alt text alt text 0xc000802f60} 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)
    {{0xc000e79720 0xc000e79720 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 0xc000803020} 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

{{0xc000e79720 0xc000e79720 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 0xc000802de0} 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

{{0xc000e79720 0xc000e79720 image-2.png  alt text alt text 0xc000803aa0} 3 false}

{{0xc000e79720 0xc000e79720 image-3.png You can set a different curve to use if you would like. alt text alt text 0xc000803da0} 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.

{{0xc000e79720 0xc000e79720 image-4.png  alt text alt text 0xc0006fbda0} 5 false}
{{0xc000e79720 0xc000e79720 image-5.png  alt text alt text 0xc0009b2240} 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.

{{0xc000e79720 0xc000e79720 image-6.png  alt text alt text 0xc000a30f60} 7 false}
{{0xc000e79720 0xc000e79720 image-7.png  alt text alt text 0xc0009b2cc0} 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


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

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

{{0xc000e79720 0xc000e79720 image-9.png  alt text alt text 0xc0009b3560} 10 false}
{{0xc000e79720 0xc000e79720 image-10.png  alt text alt text 0xc0009b3860} 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!

{{0xc000e79720 0xc000e79720 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 0xc0009b3b60} 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


{{0xc000e79720 0xc000e79720 image-12.png  alt text alt text 0xc000a82120} 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

{{0xc000e79720 0xc000e79720 image-13.png  alt text alt text 0xc000a82720} 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:
    {{0xc000e79720 0xc000e79720 image-14.png  alt text alt text 0xc000a300c0} 15 false}

Example techniques:


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

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

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

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

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

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

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

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

Happy rooting!