top of page

tech

Spline Twist Correct

​
Splines in UE4 can sometimes have unintentional twisting between spline points. The control points may have the correct rotation, but the default spline can twist leaving a spline mesh that looks like its tied in a knot. This is especially true when the up vector at a spline point rotates more than 90 degrees.
​
This plugin has several functions which aid in building a new spline that will result in a smooth untwisted spline mesh from a user generated spline. It also includes a component that is a combination of a spline and spline mesh which simplifies the entire process.

SuperShapes

​
Making simple polygons, buttons, wheels, or flowers might require hiring an artist or access to external software. There might also be times where 4k textures still look pixelated when enlarged to massive sizes in games or applications. 
​
The provided material functions assist in setting up shapes in UE4 material to bake into texture or procedurally edit at run-time. If opacity masks are too heavy on performance there is a procedural mesh component that cuts along the edge of the shape using the same parameters. 

Voxelization (coming soon)

​
The mech levels in Crystal Flux features robots made up of cubes. Animating hundreds or even thousands of cubes wouldn't be very efficient to do manually either with code or with external software.

I've written a fast algorithm that places instance static meshes in place of any geometry. Larger forms can then be animated in the method of your choice while the C++ code plugin for UE4 can subdivide in real time. The component can use any 3D mesh and each piece can have physics applied later.  

Procedural Trees

​
Using an external applications like SpeedTree or Houdini for building trees will have some limitations: file size, inability to edit at run-time, or respond dynamically in engine for level designers and environmental artists. 
​
I've borrowed the collision detection math from my character in  Crystal Flux to seek out paths for tree roots over any geometry. Just drag and drop the tree component into the level and assign a few parameters for thickness, number of branches/roots, etc. 

Procedural Layered Materials

​

Crystal Flux levels have hundreds of spline mesh components to make up the tunnels and half-pipes. They required a smooth surface with very precise ramps and loops that 'feel' fun, but that would distract from the natural landscape. 

To avoid repetition and mechanical looking forms I've blended material layers with 3D noise maps and used tri-planar projections. Tessellation with displacement can be added to further break up the smooth geometry. UV coordinates from line trace can add sinkholes and other features. I built the texture maps in Substance Designer with similar elements to make blending more seamless. 

Procedural Mushrooms

​

Crystal Flux has a lot of foliage and obstacles. Its not just a visual element but adds game play depth; obstacles are spawned in different places so the player has to look ahead and make new choices. 

Most of the obstacles are modular and assembled with code and spawned with a set of parameters. In this instance I have a grouping of one variety of mushroom that always grows up even if they are placed on vertical surfaces.  Mushrooms will never spawn in the 'ideal' path and can't be destroyed. They also have a unique bounce effect using physics rigs that can force a player wildly off course. 

UV coordinates from line trace

​

All lighting in Crystal Flux is dynamic. To give the appearance of global illumination I've built some emissive channels into the landscape geometry, but that posed a problem with projected decals meant to look like sinkholes. 
​
Unreal Engine 4.13 gave us support for getting UV data from a line trace. I've used this to make interactive sinkholes in mesh landscapes for Crystal Flux.  They can spawn in front of the player with a gradual value to to make it look like the ground is breaking up. 

© 2018 by gadz.tech. Proudly created with Wix.com

  • github logo
  • LinkedIn - Black Circle
  • Twitter Round
bottom of page