Skip to content

Latest commit

 

History

History
113 lines (70 loc) · 7.34 KB

advanced-spline-shapes.md

File metadata and controls

113 lines (70 loc) · 7.34 KB

Advanced Spline Shapes

The following //ezspline subcommands feature three very powerful but more complex spline shapes with effectively limitless customizability.


//ezspline noise

Noise Spline

//ezsp noise <pattern> <radii> [noise] [depth] [-s <stretch>] [-t <angle>] [-p <kbParameters>] [-q <quality>] [-n <normalMode>] [-h]

Generates a noise-based spline along the selected positions.

  • <Pattern>:
    • Specifies the block(s) the spline is made out of.
  • [noise] (Default: "Perlin(Freq:2,z:0.5)"):
    • The noise that should be embedded along the spline path.
  • [depth] (Default: 0.7):
    • How deep the noise should cut into the cylinder-shaped spline. Depths approaching 0 approach the original cylinder-shaped spline, 0.5 means the noise may reach half the radius deep, and 1.0 means the full radius, reaching the center. Larger than 1.0 will result in a choppy look.
  • [-e <expression>] (Default: "r=sqrt(x*x+y*y);t=r/d+1-1/d;f=r>1?1:(4*r*(r-1))^2;g=f*t+(1-f)*n;p=min(d,1);(g>t)*max((r-1)/p+1,0.01)"):
    • Advanced parameter for nerds. Ignore if this above looks scary.
    • This expression implements the functionality of the noise cutting into a cylinder at a certain relative <depth>. Derivation. If you really want to, you can come up with a different expression here to get a different result. If you don't need custom noises just use //ezspline expression instead though.
    • Input parameters are x,y,z,n,d whereby x,y,z are assigned like in //ezspline expression, n is the evaluation of the given <noise> at the coordinates x,y,z and d is the given <depth> parameter.
    • An alternative expression could be:
      • r=sqrt(x*x+y*y);(r<1&&n>0.5)*max(n,0.01): If you only want the noise to be restricted to a cylinder shape

The remaining arguments are outlined on the Common Parameters subpage.

Example:

//ezspline noise ##Grayscale 10


//ezspline expression

Expression Spline

//ezsp expression <palette> <radii>[-s <stretch>] [-t <angle>] [-p <kbParameters>] [-q <quality>] [-n <normalMode>] [-z] [-o] [-h] <expression...>

Generates a spline shaped by the given WorldEdit expression along the selected positions.

  • <Palette>:
    • Specifies the block palette.
  • [-z]:
    • Without setting this flag, the domain of the z-axis is 0 to the length of the spline divided by the radius. You may set this flag to normalize the z-Axis, that runs along the path of the spline, to the [-1,1] domain.
  • [-o]:
    • By default, expression output maps >0..1 to the palette. Use this flag to instead map the output to whole numbers.
  • <expression...>:
    • A WorldEdit expression. Input variables are
      • -1 ≤ x ≤ 1
      • -1 ≤ y ≤ 1
      • 0 ≤ z ≤ L, whereby L is the length of the spline divided by its radius.
      • or -1 ≤ z ≤ 1, if you're using the -z flag.
    • Output is either a normalized palette index (0,1] or if using the -o flag (0,P] whereby P is the number of blocks in the palette. Note that <=0 means not placing any block.

The remaining arguments are outlined on the Common Parameters subpage.

Example:

//ezspline expression clay 10 -t 90 R=0.2;r=0.1;w=0.7;s=0.5;sqrt((abs(x)-w)^2+y^2)<R||sqrt(((z+1)%s-r)^2+y^2)<r&&abs(x)<w

Expression by imhols


//ezspline structure

Structure Spline

//ezsp structure <structure> <radii>[-s <stretch>] [-t <angle>] [-p <kbParameters>] [-q <quality>] [-n <normalMode>] [-z] [-h]

Embeds a structure along the path defined by the selected convex region.

  • <structure>:
  • [-z]:
    • Normalizes the Z-Axis, which results in exactly one structure being stretched out throughout the entire length of the path.

The structure will be placed in its Z-direction facing along the path. Multiple instances will be repeated one after another as often as its bounding box fits, unless you use -z, in which case one instance of the structure will be stretched across the whole length of the path.

The remaining arguments are outlined on the Common Parameters subpage.

Examples:

//ezsp structure TS(P:##GlowPurple,S:Heart,T:=(z+y)*.4+.5) 12