Max mirror problem (not seen before)

Community Forums/Developer Stations/Max mirror problem (not seen before)

Skitchy(Posted 2003) [#1]
This is NOT the problem with normals etc. seen before in Blitz.

I've got a 'hierarchy' animation in Max. It looks fine and works properly. Certain parts of the animating object are mirrors of other parts.
Now, when I export it into UltimateUnwrap, any parts that were mirrored go mad. They seem to have different interpretations of where the x,y and z axes point (ie. 'up' is now 'left' etc)
I've tried it with the UU dedicated exporter AND 2 different .x exporters and it's exactly the same.
If I re-mirror the objects (so they're effectively as they started) the problem goes away.
Ive tried 'Reset XForm','Reset Pivot','Reset Transform' and Reset Scale' in Max but nothing is helping.

I REALLY don't want to have to mess about with the pivot points because I spent the best part of a day animating the bloody thing.

Any ideas folks? :(


jhocking(Posted 2003) [#2]
Reset XForm didn't fix this? I'm at a loss. I have seen parts export incorrectly but the problem was always easy to fix. Note that many times it was not possible to preserve the animation (ie. the animation was screwed up and had to be redone.) I learned the hard way to always do test exports at every major step (and that certainly includes just before I start animating) and to always Reset XForm immediately every time I mirror anything. If you work "blind" and just assume it will export correctly at the end you are setting yourself up to have a lot of time and effort wasted.


Gabriel(Posted 2003) [#3]
I get this problem all the time when mirroring, but like Joe, Reset XForm always fixes it for me. The other thing I've found has the same result is to "Attach" it to another object which doesn't have any mirrored geometry. But Reset XForm immediately after a mirror is good practice, and I believe it's been on Rob's site under the top 10 tips section for over a year.


Skitchy(Posted 2003) [#4]
I think what it is, is that the pivot axes get mirrored as well, and AFAIK there's no way to reverse this unless you re-mirror the whole object. By this I mean that the y-axis (for example) becomes a negative y-axis. So regardless of how you then rotate the gizmo its a mirror image of what it should be. This then causes the animation to screw up because it seems that it assumes that axes are a 'constant' thing.


(tu) sinu(Posted 2003) [#5]
have you tried unlinking all the parts of the mirrored parts, reseting the xform then relinking all of them again.
Other than that im lost for ideas.


Gabriel(Posted 2003) [#6]
Create a cube, convert it to editable poly. Then attach everything else to the cube. Be sure to do it the right way around. Then select all polys of the cube and delete them. It's bad practice, but it's about all I can think of.


Skitchy(Posted 2003) [#7]
Tried all these things already I'm afraid. This is REALLY annoying me. I HATE having to kludge my way around everything. There REALLY should be a Max -> B3D exporter that suppports animation (and doesn't completely screw up all your hard work) by now.
It's stuff like this that stops people from completing games, I'm sure. I shouldn't have to spend more time than it took to build and animate the thing exporting it.
:(
Thanks for your suggestions all the same :)


jhocking(Posted 2003) [#8]
The problem is undoutedly in 3D Studio Max, not any exporters. Other mirror problems certainly are because for some reason 3D Studio Max does not render accurately until Reset XForm is applied. Because the problems are fundamental to the model, such problems are also common to ALL exporting. You said yourself you tried two separate .x exporters; it being Microsoft's file format one has to assume it is pretty completely tested as file formats/exporting go. For reference have you tried exporting to 3ds and then viewing that in other apps (Blitz3D, Ultimate Unwrap, etc?)

Note that mirroring problems aren't limited to Blitz; since I first started using 3D Studio Max, years before I ever even heard of Blitz3D, I've been using Reset XForm to correct that problem. I really wonder why discreet has never addressed that problem. It's not just a problem for exporting, it can screw things up within 3D Studio Max too (for example, try doing a boolean involving a mirrored object.) The trouble mirroring can cause for booleans is why I was first advised to use Reset XForm; somewhat ironically booleans are problematic in so many other ways too that I still avoid them with a vengeance.

As for hating to kludge around everything you may want to rethink doing 3D modeling. As I pointed out, when you use 3D Studio Max (or pretty much any other 3D art tool) a lot you get used to doing cleanup steps as you work. Using Reset XForm after every mirror for example becomes a habit, something you don't even think about and just do. Other common cleanup steps you may want to get into the habit of doing regularly to ensure the integrity of your model, some specific to 3D Studio Max and some common to all 3D art tools, include STL Check, welding vertices to close cracks, collapsing the modifier stack, test smoothing the model (eg. with MeshSmooth) to see problems in the mesh, and turning edges to even out topology. If this sounds annoying, well, it is but you just have to get used to it. Software is flaky and there's not a whole lot you can do about it. It's just like how you should save and backup your work regularly in case the computer craps out on you.

****************

Er, so the point of that lecture was that it is impossible to write a bullet-proof exporter because mirroring problems are due to 3D Studio Max, not the exporter.


Skitchy(Posted 2003) [#9]
Righty ho.
I've calmed down a bit now because I managed to solve it. It HAS involved deleting all the animation and starting again, but I managed to salvage the model so all is not lost.
What I meant by a 'reliable' exporter was simply this : one that gives you TRUE WYSIWYG between Max and Blitz. What annoys me the most is when something works fine in one tool, then completely self-destructs when you export it to another.
I had already tried exporting to 3DS as you suggested, and it only infureated me more, because the .3ds file looked FINE when imported back into Max, but was messed up in both UU and Blitz.

The reason it was all going wrong was because the first frame in my animation wasn't - how can I put this - in a straight line. The character was half way through a running animation on frame 0, which was causing a 'skew' effect to any object that was rotated. This ONLY happened on export however - it was all fine in Max.

Therefore, I unlinked everything and set the character up in a 'sraight-up standing' pose, applied 'reset x-form' to each object individually, then re-linked everything.
This obviously messed with my animations to such an extent that I decided to redo them from scratch.

So in essence it was all because frame 0 wasn't set properly.
And it only took me 10 hours to figure it out!
;)
Thanks for everybodys help on this, and I hope somebody else can save themselves a days work by reading it.


Gabriel(Posted 2003) [#10]
What I meant by a 'reliable' exporter was simply this : one that gives you TRUE WYSIWYG between Max and Blitz.


The problem is that Max on it's own isn't giving you true WYSIWYG. Max hides the problem from you, and it's only when exporting ( properly ) that it shows up.

By means of an example : Create a simple object, convert to E-Poly. Mirror a copy of it. Now delete a couple of faces and put them back in. You know how you always have to build your faces/polys by going through the vertice in an anti-clockwise fashion? Surprise!! Now you have to go through them in a clockwise fashion. Because the mirrored section is now inverted. It just doesn't show that it's inverted until you reset XForm.


jhocking(Posted 2003) [#11]
To reiterate what he said (and I said several times already but you seem unwilling to believe:) the problem is not in exporting, it is a problem within 3D Studio Max. Repeated another way: 3D Studio Max does not display mirrored objects correctly. And again: the exported geometry is correct, the mesh is displayed wrong in 3D Studio Max.

His example shows the problem, as does my example of using boolean operations on mirrored objects. Note that the problem is happening entirely within 3D Studio Max, no exporting and other apps involved.

****************

I'm getting a little worked up over this because I've seen many posts where people blame Blitz for problems which are entirely due to 3D Studio Max. People assume (presumably because it costs so much) that 3D Studio Max is perfect and bug free, when in fact it is one of the most flaky and bug-ridden pieces of software around. Not to blame discreet mind you; flakiness is inevitable when you are adding features and making changes at the pace they do. The whole point of my last post was that getting good with a given 3D app is largely about learning to deal with the flakiness, to constantly double check the integrity of the data.


Skitchy(Posted 2003) [#12]
Sorry if I gave the impression I was blaming Blitz for this - I honestly wasn't. Blitz can only display the data given to it. I tried it in UU as well to be absolutely sure it wasn't Blitz before I posted here.

If these problems are so well known, and Discreet isn't willing to listen, then perhaps the exporters should take mirror glitches into account (if that's possible). If Max is 'hiding' the problems from you, then the exporters should do the same thing.

I know all about 'learning to deal with the flakiness' - it seems to be the case with most complex software right now. But it shouldn't be this way. You shouldn't have to EXPECT bugs in software. And at the very least, the bugs that slip through should be squashed BEFORE a company cashes in by releasing version 2,3,4,5 etc.

But it's just the way the world is I suppose.
;)

All I want a .B3D exporter that supports
1) Hierarchy animation
2) Bone animation
3) Vertex animation (Morph)
4) All Blitz material properties
5) Cameras, lights, dummies

The UU path (with the new U3D format) is now pretty close but I can't persuade Brad to implement Vertex animation.


jhocking(Posted 2003) [#13]
The b3d file format doesn't support morphing animation, like an md2 file. At the moment it only allows heirarchy and skeletal animation. I was surprised Brad has already added blended vertex weights to Ultimate Unwrap; I assumed he wouldn't bother until Blitz supported that feature.


Skitchy(Posted 2003) [#14]
Somebody's working on an importer/exporter that supports morphing at the moment though :-
http://www.blitzbasic.com/bbs/posts.php?topic=21165
Don't know how it works - possibly uses its own format instead (or assigns a bone to each animated vertex).

I REALLY hope this gets finished. I've seen the morphing stuff working (download the demo if it's still there), and he was going to do bones etc. next.


Rob(Posted 2003) [#15]
Sorry mate but this happens in the game industry world too, not just with blitz. And yes - my exporter WILL export it fecked up if you don't sort out your normals while you model.

Max has several pain-in-the-ass quirks with it that maya and so forh addressed long ago. Slowly, but surely, they fix these issues.

I myself contacted discreet over several maxscript anomalies only recently.