Rss

  • youtube

Archives for : unreal engine

Foliage Plugin + Multiplayer Survival Game Template (MSGT)

Create the Foliage Data Table



Create the Foliage Plugin Actor Blueprint Class



Assign the Data Table and Foliage Actor blueprint in Project Settings > Foliage Plugin



Change the Component Class for your foliage to use the “FoliagePluginComponent” as seen below



In your data table, add a new “Tree” resource, example below:



Implement the Foliage Plugin Interface in the SurvivalController Blueprint



Right click anywhere inside the Event Graph (SurvivalController) and add the Interface Event as seen below:

An example of how to add foliage rewards to your inventory

Inside the SurvivalController Event Graph, Right click and create a new event as seen below:

Open the C_Manager-HUD Blueprint Component and modify the InteractiveTrace function to output the Hit Result



Inside the GetActionType Function (SurvivalController), add an input pin of Hit Result type as seen below:



Connect the Hit Result you just created, inside the “InteractAction” function (SurvivalController)



Modify the “GetActionType” function and add the event call you created earlier as seen in yellow:



Foliage Plugin + Survival Game Kit (SGT)

Enable the Foliage Plugin



Create the Data Table (Foliage Data)



Create a Blueprint Class of type FoliagePluginActor



Assign the Data Table and the Foliage Actor in the Project Settings



Change the Component Class for your Foliage to use the “FoliagePluginComponent”



Create a new Tree resource in the Foliage Data Table you previously created, see example below



Create a new Rock resource in the Foliage Data Table you previously created, see example below



In the BP_SurvivalCharacter Blueprint, add the Foliage Plugin Interface



Example of adding the harvested resources to our inventory



Example of how to enable Melee Weapons to harvest Trees and Rocks

Open the “BP_MasterMeleeWeapon” Blueprint (/Blueprints/Holdables/BP_MasterMeleeWeapon) and modify the “Give Damage Once” function to the example below:



Example of how to enable harvesting with “E” Interact Key

Open the “BP_PlayerInventoryComponent” (/Blueprints/Components) and modify the “Is inventory actor?” macro as such:



Open the “Is interactable?” Macro and modify as such:

Foliage Plugin Damage Types

Setting up Damage Types for the Foliage Plugin

If you haven’t setup the Foliage Plugin yet, follow this tutorial first.

Create a new Blueprint Class based on the DamageType

Set the new Damage Type required in your Foliage DataTable

When Applying damage to your Foliage, specify the new Damage Type

All done, if the incorrect damage type is applied, you will not be able to interact with the Foliage

Foliage Plugin – Destructible Meshes

Setting up Destructible Meshes with the Foliage Plugin

If you haven’t setup the Foliage Plugin yet, follow this tutorial first.

Create a Destructible Mesh of your Foliage Mesh

Example Settings of a Destructible Mesh (a rock in this example)

Add the Destructible Mesh to the Foliage DataTable you created in the previous tutorial

Important here is that the IDs (marked in RED) are the SAME, it doesn’t matter if the Destructible Mesh is Empty (if you don’t have one for a different mesh)

Another Example

Add a Destructible Component to your BP_FoliageActor that you created in the previous tutorial

All done, the Foliage Plugin will handle dealing damage and visibility of the Destructible Mesh

Configuring Sockets

Begin by adding your building to the DT_Buildings DataTable

Add a new socket to the CompatibleSocketNames array, here you determine what sockets that this building component can be placed on, in this example, Door is our compatible socket name, every building that has the socket “Door” we will be able to snap our new building to.

Inside /BuildingSystem/Meshes, open up any mesh that require a “Door” (can be anything), in this example, we’ll use “SM_Simple_Cottage

Once the Static Mesh Editor is open, in the lower right corner you’ll find the Sockets editor

Create a new socket and name it “Door

 

In the “Preview Static Mesh” selector, pick the “SM_Simple_Door” mesh as a preview mesh so that we can position it correctly

 

Use the preview window to move the door into the correct position

You can do this for anything you want to “snap” onto a building

Done!