First thing you should do is load up the ground demo scene inside the asset package "Assets\BruteForce\Scenes\Ground\..."
You will see that some files have a Standard and URP version, choose accordingly.
Once the "01_Ground" or "01_GroundURP" is loaded you will be prompted to play the scene for a quick introduction. This will help you understand the asset better and showcase all its basic features in a complete environment.
In the first showcase you can use Left Click to dig the ground, Right Click to change mud to tile, Middle Click to create water effects
You can click the top arrows on the screen to switch sub-showcases and the left and right arrows to switch showcases.
There is a player template that leaves footprint as well as other dynamic objects leaving traces in the mud that you can use to easily replicate the effects on your player.
Importing it in your project and Components
To append the ground assets in your projects you can either copy and import one of the working showcase as a starting template or you can use the setup prefab. Keep in mind that if you need the interactive feature you have to append the CameraEffects in your scene. I will go into details on what components you need in the prefab for the ground to work properly:
The first main component you'll need if you want interactivity on your ground are the "Camera Effects" like a regular camera it will be used for rendering, but instead this one will render to a target texture namely: "RTGround" and "RTGroundAdditional" and will have only ONE culling mask set to "TransparentFX", we only need to render the effects.
It needs to have a target texture set to a render texture and it also needs the script "BF_InteractiveEffects.cs" for the first one and "BF_InteractiveEffectsAdditional" for the second one (which is optional, more details below). This script will make sure your cameras will render to the render textures.
If you have a moving camera you'll need to set a transform to follow (preferably the camera). RTCamAdd MUST have your main camera as transform value.
If you don't know what the global names are do not change them.
If you do not need the interactive part of the shader you can disable the CameraEffects and the "Use RT" in the material pragmas for a small performance boost.
You can increase the size of the camera projection to increase the radius of the rendered effect at a precision cost (more details below), do not rotate the RTcamera.
You can drag and drop any ground materials to a mesh or any assets you want to use as ground, I will explain in more depth how the Ground Shader works in the next page so you can be able to customize or create a ground material for your projects.
Particle System Effects
To control the interactive effect of the ground you can use a particle system set on the TransparentFX layer, the important thing to note is that only the rendered color matters:
Red color will turn Mud to Tile, Blue color will dig the sand and create water, Green color will disable vertex displacement
You can use anything that can be rendered to achieve the desired effect: meshes, sprites, particle systems etc...
This means you can place a colored quad in the TransparentFX layer to have a permanent ground effect in your scene.
Alternatively you can edit the "Duration" and "Start Lifetime" parameters of the particle system to either shorten or extend the effect duration.
Increasing the Render Texture size
Depending on your project, you can increase the size of the Render Texture field so you would be able to see sand effects from much further away.
To do so you'll need to select your RTCam in your scene and increase the "Size" Camera variable, keep in mind that increasing this value will decrease the effect resolution.
To increase the effect resolution you can change the "Size" of the RenderTexture to 2048x2048 or 4096x4096 by selecting the "RTGround" in your project. Changing this value will greatly increase memory consumption.
Using the RTCamAdd to expand the Ground effect area
In addition to the RTCam I created an experimental additive RenderTexture effect which is much larger. This camera is optional but its use is highly recommended if you intend to use the effects on a large area.
When you assign the main camera to the "Main Camera" field in the BF_InteractiveEffectsAdditional script; the RTcamAdd will automatically change its position based on the main camera FOV.
Import footstep effects on your character
There are 2 main ground effect templates you can add on your character that both have their unique advantages:
This effect will create continuous trail on the ground as if the foot was in the mud, it doesn't need any scripts to work and will work even without any ground contact.
You can simply drag and drop this one from the prefabs to the foot transforms of your character, then reset their local position to 0 so that they math the foot position. The FootEffectTrail prefab is located here:
This one will instantiate a particle effect right where the foot hits the ground, for it to work you will need to add the "BF_Footsteps.cs" component to your player, then assign the "FootParticleEffect" prefab that's located in the prefabs folder or any custom particle system that will emulate footsteps. Then Assign Left foot to the left foot transform of your player and Right foot to the right foot, if your player has only 1 leg then I guess set both feet to the same one.