I realize that I did things out of order by UVing after rigging, but I needed to make changes to the topology as I rigged. I don't have a ton of character build experience.

Now I'm having some issues with point order coming from the .OBJ and .FBX models in 3DCoat, heading to C4D. It normally wouldn't really matter to me, but I've already painted weights in my rig in C4D. I have tried transferring weights and the rig using VAMP, but that's getting jacked up too. Have tried Bret's CV weights scripts as well, no dice. It doesn't see all the joints for some reason.

Because of all of this, I feel like the easier thing to do is to just transfer the UVs.

Working in C4D R19 & 4.7.24
﻿1) Modelled in zBrush, retopo in 3DCoat and C4D
﻿2) UV'd in 3DCoat
﻿3) export .OBJ or .FBX (tried both)
﻿4) import into C4D
﻿5) vertex order on imported model totally shuffled from the old one. Point count is the same, geo looks to be the same.

The only other thing I can think of is using the exchange plugin with 3DC, maybe that preserves vertex order?

Has anyone had this experience working between these apps? Shed some light. Worst case is that I'll bite the bullet and re-weight.

Had that issue too, wrote a script that transfers the UVs from one model to another based on the vertex position data. It's of limited use as it doesn't solve topological duplicates but it works for my cases. (Model in C4D, export to 3DCoat for UVing, reimport to C4D.)

I noticed there was an error on line 93 (accidental tab or spaces), so I tweaked that, ran the script again. Now the script definitely is searching as it takes a little while to go through everything, but all the polys come up "Not found: XXXX"

My target was under a null, so brought it out and tried again but no luck. Also tried renaming both source and target polys but no dice.

I noticed there was an error on line 93 (accidental tab or spaces), so I tweaked that, ran the script again. Now the script definitely is searching as it takes a little while to go through everything, but all the polys come up "Not found: XXXX"

My target was under a null, so brought it out and tried again but no luck. Also tried renaming both source and target polys but no dice.

If you put both objects into the same position, are the objects covering each other? Maybe the positions have been ruined too.

You can change the constant epsilon to something larger - this is the cube around each point that defines the maximum distance where the point in the other object is found.

Try it for two cubes and check what the output says... or send me your file and I'll have a look why the algorithm doesn't work for you. (As I not said, this is a very ad hoc approach and neither efficient nor totally smart.)

Why do these programs change the mesh point orders when doing symmetry?

This is my guess on how most people are writing the code for this task. And why this re-ordering problem happens:
- Get all of the points to the left or right side of the center points of the mesh
- Delete them ( At this time in the process. The point order of the remaining points is still unchanged)
- Copy all of the polygons that have not been deleted
- Flip their point positions by *-1 and paste them into the mesh's matrix <-------This is where the point order gets changed
- Weld the center points at the middle of the mesh
Result: A symmetrical mesh. But the point order is now different from the original

Is there another way to make a mesh symmetrical without deleting, copying, flipping, and pasting and thus killing the point orders?
On meshes where the sides are fairly close I know this can be done using a range option to sample the good side to the new side. And just moving the points. That will keep the current point order in tact.
But I don't see how you can do that when the two sides of the mesh are drastically different?
Is there a technique, or maybe even a code library, for doing this?
Or is it just an industry wide accepted rule that symming always kills the point order. And there's nothing we can do about it?

My Undertow plugin, in addition to a bunch of UV-mapping tools, was specifically designed for working with Symmetry Objects and/or other symmetrical mesh modeling. It has tools for selecting (or setting up selections to select) half the model, recovering the symmetrical uv-mapping once the mesh has been re-built and even mirroring Group selections across the mesh (if you need those, for Poser, lFoot -> rFoot, etc. for example).

While I think you'd find that useful, my Morph Mill plugin might help more with the topic at hand... it has a Remap Point Order command that will remap the vertices/points of one mesh to match another (just keep a copy of the original around to remap to), along with some other tools.

You can try either/both for a free 30-day trial (just enter DEMO when prompted for a license).

Hi Keith,
I was really wondering about how people are approaching this task industry wide. And how I might be able to do it myself without relying on anyone else.
It sounds like your Morph Mill is using that same delete, copy, flip, paste workflow. Which kills the original point order.
And your approach to dealing with that problem is to cache the original non-symmetrical mesh's point order (not the positions) in some sort of table. And in some manner edit the newly symmed mesh's point order to make it match the cached point orders.

That actually helps me out quite a bit.
I'll just need to go learn how to edit mesh point orders. I've never done that kind of thing.

Not exactly, but close... the plugin goes through a pretty elaborate process to correlate the new mesh (it's points) with the target/original mesh when activated. If interested, it's probably best explained by the existing plugin documentation (just click on the Remap Point Order link on the left).

While I'm at it, the "Background Info" link of the Undertow plugin documentation explains the "Symmetry Workflow" process that I use (but was written before and does not cover use of the Remap Point Order of the Morph Mill plugin).

Follow Us On:

The CGSociety

The CGSociety is the most respected and accessible global organization for creative digital artists. The CGS supports artists at every level by offering a range of services to connect, inform, educate and promote digital artists worldwide. More about us on TheArtSociety.com