Let's talk about cutting down a tree and setting up the proper way to do it!

Aside from player anims, what’s the best method for cutting down a tree? If you have ever played “The Forest” bad company 1 or 2, or even a lot of new games with destructible trees, you’d know they have a very nicely set up way to cut down trees. There’s a lot going on, but I’d like to replicate it the best I can in UE4.

The tree would have to look like a normal tree. As in wind effects, blowing around, etc. However, here’s the part that gets me. When a tree is cut, (not cut down yet) how would you show that it’s got a cut in it? Or a chunk taken out of it? How would you handle a setup where the tree is getting more cut up, and a deeper chunk is being removed from the tree before it actually gets cut down?

Then, after the tree is on it’s final cut, and actually gets to the part where it’s falling down, what’s a good way to handle that? Would you spawn a tree chunk where the tree got cut? I’m all kinds of confused about all of the little details that would be involved with this.

I want it to look fluid, and nice. I don’t want it to look like the tree I just cut down got deleted, and another tree suddenly appears falling down to the ground. Would you actually have to animate the entire tree from start to finish?

If I have to place very single tree because it’s a blueprint, that’s fine by me. I just want it to look nice, but i’m a little stumped at the right way to go about it. The only real “suggestion” I found is apex destruction.

I obviously found this topic )

but i’m still left without some answers. and it doesn’t seem to be the best approach to it, and I didn’t want to revive such a dead thread.

Edit: aha! This guy managed to do it nicely, but it has no leaves/branches on it, so it’s hard to tell if the tree would “ragdoll” after it got cut or not.

Bump. I’ve done some testing with speedtree. It really sucks because I’m stuck with this UE4 subscription version, and I don’t know how to get an FBX file out of it in any workaround.

I’ve found all kinds of ways to make a tree “cuttable” but I can’t seem to find a way to make it work with speedtree.

So the way I guess I would “attempt” this, would be to have a speedtree and create a blueprint from it.

Walk up to the tree, press a “key” and delete current speedtree, spawn in a static tree in the same location that I’ve worked on, play cutting animation, or whatever method I would use, and voila! However, I can’t seem to get the fbx file from speedtree, so I can’t send it into apex and create a custom destruction for the tree. If I can delete actor (speedtree) and spawn a new staticmesh that’s completely identical to the speedtree with the same scale/rotation, I should be able to do it pretty seamlessly. At least it did when I tested it with one tree.

But I’m stuck here…

I basically need a speedtree I create to be identical, but only as a basic static mesh. Am I missing something? There’s got to be a way to do this that’s just zingin past my head. . . lol. If I can get a speedtree model into Apex, or nvidia’s physx lab, I’ll be in good shape.

I will say I can successfully get a speedtree model into apex IF I export it from UE4, but Unreal crashes when I try to bring it back in. Is there an easier way to make a speedtree destructible or

Take a look at this community members. Hippowombat’s generous work! It should help you further. There is also a link to his project sharing the files. :slight_smile:

https://hippowombatsblog.wordpress.com/2015/11/17/ue4-tree-cutting-system-breakdown/

Thanks! However, I was already looking at that. :slight_smile: Problem is, is that I can’t find a way to replicate that with speedtree trees. :frowning:

There’s also another pretty nice method sen here. v=81GfJ5J4BCE)

However, again, not with speed tree. lol

  1. Use normal foliage tools.
  2. Get trace from camera forward N units.
  3. Get reference to static instanced mesh component that was returned by the trace, and it’s index in the static foliage actor that controls it
  4. Remove that index from said actor
  5. Spawn new object, let fall

you did it! all while retaining the power of UE4’s foliage system.

1 Like

That seems like a good method. I didn’t know you could reference a static mesh from foliage like that. So two things… how the hell would I do this? And how the heck would I accomplish the other issue I’m having? lmao.

I still have the issue of getting a speedtree tree to be destructible. Since I can’t figure out a way to to send it to my 3d modeling program or Physx lab to make it destructible. I could probably figure out the tracing method you mentioned, but I only have the UE4 subscription of speedtree. (it doesn’t allow fbx exporting) So I’m still stuck at getting it to be destructible.

I’m basically trying to do this. And I think it’s the right way to do what I want, but I’m limited with my experience here so I can only assume this is one way to do what I want.

1: Create tree in speed tree.
2: Export speedtree model into UE4, and also as an FBX into physxlab. This way I essentially have a duplicate speedtree that’s 100% identical to spawn in place of speedtree asset <—TROUBLE
3: Paint foliage in unreal with my speedtrees
4: create a destructible version of the same speedtree. This way I can spawn it in place of the “Actual” speedtree and it will have the phsyx lab work done in it. <—Trouble

I’m stumped. (pun intended?)

I’ve also tried to export the speedtree mesh from UE4. but it crashes ue4 when I bring it back in. Too much information on the fbx file maybe? I don’t know. There’s got to be a way to make these trees destructible.

  1. Get your tree
  2. Grab it’s vertices and other data onto a ProceduralMeshComponent
    3)For chopping, you need to check which vertices you need to cut manually
    4)Split the mesh based on these vertices(or create new ones on the mesh)
  3. Enable physics (=ragdoooling)

yw

You simply grab the transform/scale of the instance, and apply that to the new spawned duplicate object. This will be exactly the same looking to the player :slight_smile:

The problem I have with this, is that it’s only making a blueprint from the speedtree. I need to actually make it destructible. I need to duplicate the tree from speedtree.

I want to have a tree from speedtree that has the wind/bones/etc, and I want to have a tree that’s just a static mesh. I want a lot more control over my tree then just having it fall to the ground.

So I still don’t see a solution to the issue I’m having. :slight_smile: Although I definitely appreciate the responses!!

I need to take a tree out of speedtree and have it it be identical in size and material. But without the speedtree components.

Basic workflow would be this.

1: Create tree in my SpeedTree UE4 subscription

2: Import speedtree model into UE4.

3: Create an identical tree to the one I modeled, without any of the animation/bones/wind etc. This will be strictly just a static mesh that I will take into a 3rd party program like physx lab.

4: Create a blueprint in UE4 that replaces the Speedtree with a destructible mesh that I have created in step 3.

5: Enjoy the benefits of speedtree, while still being able to have a destructible tree that I can do as I wish.

So Basically, I need help with step 3. So far you guys have helped me very well with step 4. :slight_smile:

The thing that sucks about this is that speedtree for unreal doesn’t have a mesh export option. It’s only in SRT format. So I don’t see a way to make a duplicate tree without the wind and bones ****.

I found one workaround for this method… Which is basically to create a tree in Speedtree UE4 subscription and save the file. Then you extract the .SPM file you saved, rename it to xml, delete the UE4 restrictions, and rename it to spm. Then you can open the tree up in Speedtree Cinema, extract the mesh, and then I have a duplicate tree in FBX format that I can edit. However, when I do it like this, I lose my material data for the tree. and everything then becomes messed up again. . I can’t freakin win.

I won! Will post in a couple weeks.

And now in Unreal Engine 5.1, what’s the best way to do?

1 Like

Likely exact same thing/tips.
Stay away from Nanite and you shpuld be ok, assuming you can put up with the fonal reaulting 5fps ue5 will get you anyway.

Like explained above, the proper way to do this is to convert each tree you approach from a regular foliage mesh to a blueprint actor. In the blueprint you can do whatever you need. Receive damage, animate the cut section, etc.

Despite being able to, do not place blueprints with the foliage tool, as it will destroy performance.
The blueprint is likely going to contain a skeletal mesh rather than an instanced static one…

1 Like