Download

As a new UE4 Programmer

Hiya!
My name is Joshua.

I have been working through learning Unreal now for about 2 months almost full time.
First of all I want to say I love Unreal, especially after working in Unity last year for homework projects.
Unreal is just far more intuitive.

But there is something I have been wrestling with for weeks: collision.
While working in UE4 I have been importing assets through Maya using .fbx files, while the embed files work great the collision is frankly a nightmare.

It took me roughly a week to even figure out what the best importing settings were, and after a great deal of struggle I have figured a work flow for complex objects, but it is still a bear to get anything to function properly in Unreal concerning collision.

I have attempted so many importing styles it would be difficult to even list them all, but the only thing that seems to function consistently is perfectly angled at 90 degree box shapes.

But to add to this issue at any point where boxes overlap ~ no matter the settings on import UE4 creates its own version of what it thinks of my collision boxes. So the workflow to get good collision for any “enterable” spaces such as a house or cave or such is arguous, meticulous box creation. This has become a huge time soak to implement, and I am wondering (hoping really) if I am just doing it flat out wrong.

Now, before I get any responses about how convex collision is the only really functional collision and there is a link to how to import and create collision, I have actually gone through all the collision pages thoroughly in UE4 answers and I know that well. I am also fairly aware of what DOP is etc.

Things I would really like to know…

  1. Why is the workflow so arguous and difficult?

  2. Why is there advice in several spots on this portal to simply duplicate an object and create a collision object based on the original mesh when in fact this almost never works since most objects are not convex?

  3. Also, why is just creating a work flow for importing collision so difficult to find? The information (as far as I can tell) just isn’t out there. Without school I would have never figured this out on my own.

To clarify this is what I do to import complex collision meshes.

Create an object such as a house.
Create 39,765 convex boxes to represent the house
Combine the boxes into one object, but not into a single mesh.

object_name
MCDCX_object_name

create the mesh and collision then export these two nodes to an .fbx file.

Turn off create collision, turn off one convex hull, turn off anything else to do with messing with the hours of collision creation I just made.
And turn on invert axis (this is coming from Maya).

Then pray, and pray a little more that even one box isn’t precisely in the right spot, overlapped or in the right shape.

BTW, I really want to say for everything else I really love Unreal, but this collision issue is killing the joy.

Its complex but once you get the hang of it, it starts to make sense (for the most parts). On average i estimate that you need about 3 month to get familiar with the editor. For most questions are already answers available, and if not you get normally a quick response via the forum or at Unreal Answers.

Hmm. Basically for collision you need a collision capsule. That is for characters, for static meshes or foliage, set the collisions to “Block All”.

You can create collisions inside each mesh with the collision tool (simple or convex). If this is not possible for a particular mesh, export the mesh, then reimport it, or maybe try the recalculate option inside the mesh editor.

Collision advice: For basic geometry shapes, like wall pieces with holes (e.g. window/door holes) you can just use per-poly collision. It saves some time when preparing assets. It’s available in static mesh editor, under “Static Mesh Settings” -> “Collision Complexity” dropdown menu. Set it to “Use Complex Collision As Simple”.
Of course for more complex geometry you probably want to have a separate collision mesh, but in most cases per-poly collision will do the job.

One note about using “Use Complex Collision As Simple” (which i would also just assume you want to use), is that if your meshes are destructables, then something weird happens when using this setting. Weird as in, then you can’t enter the mesh where you used to be able to.

The real answer is that you should’nt build a house as a single object. Especially collision-wise. Thats is not how video games work, and as a rule of thumb, you should never design concave collisions because physics engines can’t handle them.

What you should do is import individual elements like a wall, a roof section, a door, and use UE’s auto-collision setup, then build the house in-editor.

Generally it is better to build everything from pieces you can use elsewhere too, but statements like “thats not how video games work” are too black and white and not true at all in all cases.
Ive worked with engines that dont have a level editor like UE has. The approach wasnt the best, but it was there and it was how it worked.

Also there is as many was to use a house as there are games. If the game doesnt allow you to enter the house and its an house by unique complex design, you can as well make it as one mesh in the max/maya instead of spending the time to make it correct pieces and construct it again in UE4.

I just always see red flag when someone says “thats not how video games work” as believing such statements might just hurt you and certainly is not an approach an open minded game designer should take imho.

I’m sorry if that was offensive or too broad. The author does talk about “39,765 convex boxes” for a single house (which I believe to be an exageration) so I assume it is a playable house with a detailed interior. Whether in Source, Unity, Unreal or any other engine I’ve worked with, that approach is a big no-no, and concave shapes are a challenge for any physics engine, even in 2D. I may have stated that in a more precise way but I do think the approach is generally bad in game development.

I fully agree that a single house that you can’t enter could very well be a single mesh, but that doesn’t seem to be the subject here.

Hey mate, what materials did you use for learning?

I appreciate all the replies.

Breaking things down into smaller chunks may be the answer I am looking for. It makes sense from a programming perspective but not necessarily for importing textures. Workflow wise this seems to be the only sane condition since multiple collision boxes makes asset creation for anything needing accuracy such a time sink.

Still it seems it seems a little more involved than it really should be to create simple geometric shapes and setting them for collision assets.
Also it really doesn’t solve the issue of round objects or those with complex normal structures, when those are what’s required without doing a per case basis where researching a “choice of evils”

Also importing 50 assets with collision boxes versus 1 doesn’t seem to be off the hip all that memory friendly. Especially since pivot movement and snapping in Unreal (from what I can tell) are so clunky. Is there perhaps a video tutorial on this about workflow advantages? At what point its best to create special assets vs. generic vs, basic power of 2 assets? For unreal?

Mostly what I used to learn were school .pdfs, specifically designed for the courses I took. My teacher felt the majority of learning resources were ****, and after a year and a half of study, I agree.

Not to mention that the software is changing so fast its outstripping the few good resources out there. The “best” in the case of UE4 I’ve found is You Tube videos. It’s a sad state of affairs when the user is forced to plunge 10 levels deep just to get their feet wet.

For instance even with just UE4 you tube tutorials it’s a pita as to whether you will even get information that’s applicable prior to 2015. And while there is a lot of good information out there it’s really a tough slog sorting the wheat from the tares.

For software however I can recommend what seems to be industry standards to learn (from what I know)

You either want to use Maya or 3ds max which is really nasty buy in for someone just trying to dabble. But they set the standard for model creation. While 3DS max is more popular and faster, Maya is better organized and higher quality (imho)
You need photoshop as well, although photoshop is about as intuitive as a street map from 1985 can get.
then there are about 30 other programs you have to learn enough of to use and 100+ websites you have to reference.
Then you also have to become a Google guru for texturing and research.

Here are a few comments about what you said. FWIW, I’m a programmer by trade, so I understand where you come from :slight_smile:

  • You really shouldn’t try to use custom, hand-made collision boxes unless you have to. Like you said, it’s a time sink. Every asset you import without collisions will get an automatic one in UE4, and you can further optimize them in the mesh editor.
  • Textures are not typically shared between assets in “modern” games, rather, they tend to have a unique set of textures (normal map, albedo, etc). But that’s not the most pressing issue and that really depends on what you’re doing.
  • Memory will be fine with 50 assets instead of 1. Actually, since 20 of your 50 assets will be instances of the same wall section (for example) you will save a lot of memory space for the same quality. Don’t optimize before measuring.
  • Snapping works if you designed your assets to use it. For example, I always use power of 2 dimensions : a 5 meter wall becomes a 512cm wall, I design a 512 unit asset and that’s it.
  • Instead of 3DS or Maya, you can use Blender, which is free, and really not bad for game development. It works pretty well with Unreal - save, hit file/export/fbx and voilà. All my game’s assets were designed with Blender (take a look at the workflow here).

The one thing you could do is show your project here. Show us what’s wrong, what your assets look like, how you import them, etc. We can help :slight_smile: