Unreal importer bug

I’ve found a serious bug in UnrealEngine3’s collada importer. Is there anyone who could help me, or interested in the problem?

It’s probably best to report it to Epic directly.

I doubt they care because they are still using that old PSK based workflow, but hey it is worth a try.
At this point my goal is to understand the problem and develop workarounds, hacks in our exporter.

I doubt they care because they are still using that old PSK based workflow, but hey it is worth a try.
It’s still better to report the bug, so they know people are using the Collada pipeline.

If you describe the bug maybe someone can offer ideas for workarounds. I’ve never worked with UE so I might not be much help.

Hmm… does anyone know an email at Epic where I could send the bug report? The only email address I found on the unreal tech site is Mark Rein’s.

Soo, about the bug:

First of all, our exporter produces fully 1.4 compliant collada files. (Was tested with that consistency test.) Most of the skeletal meshes get into Unreal all right, but in certain cases influences go weird, and a bone start to influence 100% most of the polygons, leaving one or two random vertices to the rest of the bones. The problem is that I can’t see the pattern in the objects where this bug appears. Here are the three cases I encountered so far:

  • A rough human shape, built with metaballs.
  • The foliage of a palm tree. It was magically fixed when I extruded one of the leaf polygons. I mean I deleted the newly created polys afterwards, but it was still okay.
  • A rag bunny.

In the latter object I managed to isolate the problem (or at least part of it): It’s the bunny’s head and one ear.

This is how it should to look like in Unreal. The bounding boxes you see are auto generated collision primitives around the influence area of a bone.

Well, its not good in practice, because I had to delete some polys from the side of the ear to achieve this. Deleting polys from the head or from the tip of the ear doesn’t help.

And this is the bad state I originally got:

As you can see the head bone covers the whole object, affecting almost all vertices as seen here:

The interesting thing is that it tears the object apart, so vertices get duplicated for some reason and one vertex in the same position is influenced by one bone and the other is by an other bone. I checked and the weird vertices don’t necessarily have discontinous UV coordinates, which would otherwise explain the duplication.

As it turns out, vertex and/or polygon order matters. The head and the ear are two independent closed volumes, different polygon islands. If I cut the head island and paste it right back, then the error moves to the ears:

Finally a few other observations:

Subdividing the mesh doesn’t matter.
Unwelding all vertices doesn’t matter.
Making one or more quads in the mesh changes the bad influence zone a bit, or sends the error elsewhere.
Bone hierarchy doesn’t matter.
Bone influence values don’t matter.

The files load in a year old Unreal build (RoboBlitz), but the same files crash the most recent UnrealEngine 3 build:

assertion failed: Wedges.Num() == WedgeInfluenceIndices.Num()

So this is all the clues I have. Any, and I mean any ideas what might go wrong?

If anyone interested I have a good file new, directly comparable to the BunnyBadHead example: SparkingSpot.com is for sale | HugeDomains

It seems that certain constellation of the weights causes problems.

Based on what you’ve said it’s pretty clear that it’s a simple regression in their code. You should report this to Epic.

Steve

I can’t. :frowning: Epic does not have any public support (yet), NakedSky (makers of RoboBlitz) never used the collada pipline, so they point at Epic.
Even if I could report this to Epic, I’m not sure how much they care about the issue.

So at this point I want to understand the problem and prepare our exporter to avoid things that cause the issue.

U3 probably uses that FCollada framework, so now I’m trying to find a change log or bug database of it, to see if there was a bug in there which would explain all this.

Anyway, I keep posting developments here for other Collada&Unreal users.

Thanks a lot for reporting this issue.
I will contact Epic and ask what is the right way to report COLLADA import bugs to them.
I would also suggest that you report this issue on the feeling software forum, since they were involved in writing he UE COLLADA importer.

Oh damn, I totally forgot about this thread. :slight_smile: I started another on the feeling software website, and after a few days I finally solved the issue: There were vertices without any bone influences. The weird thing is that with one geometry unreal crashes in this case, but when it happens on another mesh, it just screws up the influences…

I also learned that the Unreal’s early October build always crashes with the example above, but at least gives an error message

assertion failed: Wedges.Num() == WedgeInfluenceIndices.Num()

I wonder if Epic will ever officially support the Collada pipeline, since internally they are still using the crappy .PSK format (afaik).