Evening folks. Just a wee heads up on a UV mapping proposal I've posted on the Silo forums. I'm not posting this to get people to jump in and support me, but to point out any flaws or anything that I missed. There is no need to join there if you are not a member, just post any response here if you do feel inclined. I'll post the link, and a copy of my suggestion
Firstly, the link:
http://www.silo3d.com/forum/viewtopic.php?t=3158
And now the post.
I was driving back from the beach today, and thinking about UV mapping and the various discussions. After a while I think I managed to come up with a complete solution, and would appreciate others feedback on this.
Just a little background - I've been involved with 3D for about 10 years, and working in the games industry for the last 6. I've modelled environments and props in the past, but for the last few years I've been pretty much a character specialist. I've used several packages, and all have pros and cons. Sometimes my turnaround for building, mapping, texturing and rigging a character can be 3 weeks, and sometimes it can be as little as a day. With all this in mind, here goes:
Its all about ease of use, automation, and having complete control. For my line of work, one click mapping is impossible. For some people the results provided by a simple one click solution would be more than acceptable. Thats why we need to have the balance. I love the automatic features in Max, but on their own they are not good enough.
Automation
Pelting seems to be the buzzword here. Simply put, a user defines a continous area of polygons, and the software unwraps them.
This could be simple as selecting 4 faces, and hitting a "Map It!" button, that will planar map those faces.
Taking a cue from Wings 3D, I'm suggesting that we "paint" the blocks of UVs, using a sort of mask system. 4 colours would probably be enough, but lets say we have 8 colours of selection masks.
I'll use an example of a space marine - you know the type, armour, grenade and ammo packs, big shoulder pads.
Firstly, I block off all the legs in a colour, then I block off the torso in a secord colour. Next the head - i could use a third masking colour, or use the same as the legs, since his legs and head share no connection polygons. There we have a REALLY simple masking selection.
If we select any polygon on the model, we can shrink and grow our selection, but in the UV editor the selection would NEVER cross a mask boundary.
After we have our basic selection, we can refine them - lets mask off the feet and the knee pads. Lets mask off the soles of the feet. Lets seperate those ammo pouches from the torso. ets mask off the hands. We dont need many colours, as we don't need a seperate colour for each section. - the hands and feet and ammo pouches could be the same mask colour as they wont touching.
Ok, so we have masked out our area. Anywhere where colour masks meet there will be a seam - but thats not enough seams. I'm masked my arm off, and its seperate from the torso and the hand - its just a big tube. Next we have the option to and extra seams, by selecting edges on the model. We could select them all by hand, but it is LIKELY that we can use edge loops to do this - select an edge on the inside of the arm, hit the edge loop button, and it selects the loop. It stops at the armpit and the write, as those polygons are in a different masking group.
Then you hit the magic "Unwrap" button that does all the magic - we've all seen this working in Max/Maya/whatever. It unwraps the mesh alson all the seams we created.
That all seems pretty simple to me, it's nothing new.
Complete Control
Once we have all this laid out, it is vital that each face, vert and edge can be moved. Hopefully the selection highlighting will work in the UV editor. The same move/rotate/scale buttons and keyboard shortcuts would work in the editor, so you go to scale mode, and mouseover the quad you want to affect, and scale it either vertically, horizontally, or both. YOu can move edges and verts around - this shoudl be the same as all other ammpers.
The most useful Max5 and upwards addition was vertex highlighting -when I have selected a vert(or number of verts) it highlights the other shared verts so that I know where they are in the editor. It would be nice to extend this to edges - If i select an edge on one of my UV seams, it will highlight an edge on another UV seam from a separate section, so that I know where this UV jigsaw matches up.
Edge sticking would be great - I select an edge or a strip of edges, and hit the stitch selected button. It then finds the shared edges on another seam, grabs that section, moves it into the correct position, rotates it and merges the shared verts/edges.
I beleive that is the most of it, but a useful addition would be the ability to create and name UV selections. I could then have a drop down selection box to easily choose Head/Torso/Left Arm/Tongue whatever. And when I have any UVs selected, I need to be able to lock them, and to hide them. And I need to be able to find them on the mesh - so selecting a group of verts in the editor will have an option to highlight them on the mesh, and vice versa - i select faces on the model, and they get highlighted in the editor.
I'm sorry I couldn't provide pictures, but i'm going out tonight, and tomorrow I fly off for a week.
Replies
When I've seen pelting in action, the user typically selects the edges where they want the cuts to be, then the program applies the UVs, flaying the model. This seems a more efficient path than painting chunks of mesh, then selecting cut edges.
Averaging vertex position horizontally/vertically is a must, you want to be able to select a row of verts and just hit the "align" button, and it averages all their positions out into a perfect straight line upwards or across.
Likewise a vertex spacing tool (average vertex spacing across a selection) is very useful too.
Both of these are seen in Chuggnut's tools for Max's unwrapper.
Maya has the align button by default, but it only aligns to maximum or minimum, not average.
Max's UV-mapper is one step away from being ideal, for me. The only things it's missing are an ability to break UV seams along an edge selection (why can't they put in vertex and edge sub-objects in the UnwrapUV stack, they'd be just as useful as face selection!) and a good "Relax" tool.
If I could get someone to grab Deep UV's relaxing algorithm and throw it into Max's Unwrap UI for free, I'd be a happy bunny indeed.
Averaging vertex position horizontally/vertically is a must, you want to be able to select a row of verts and just hit the "align" button, and it averages all their positions out into a perfect straight line upwards or across.
[/ QUOTE ]
even better tho, the possibility to align the whole UV rather than just a row of Uv's. Feel that maya lacks in that aspect.
IMO the simplest and best UV tool would just be a feature of choosing where to place your seams and then what area to unwrap. To go with this, a good relax.
Mop - those align and spacing options are useful, and I missed them.
cheers for the feedback so far.
I'm with MoP, the 3ds max toolset is pretty solid. I have some small gripes, like the SubObject thing he mentioned. A DeepUV-style relax, and a decent Pelt would be very welcome.
Chuggnut's tools are awesome, I use them literally every day. My favorites...
Align U
Align V
Space Evenly U
Space Evenly V
Tranform Tools: Offset & Scale
The Rotate shortcut tools
Nudge! Pixel or Unit
0-1 Fit
Good stuff.
Anyone know which low-cost/free UV mapper has a nice Pelt-style option?
From mop
"The only things it's missing are an ability to break UV seams along an edge selection"
i may be misunderstanding what you mean, but you can break uv seams along edge selections, just select the edges and rt click, and select break
I do like your idea of defining 'sections' of the mesh for easier selection, but then again, binding a key to 'select shell' in maya does basically that. You know what pieces are what on the uv map, its just a matter of selecting the right things, eh?
I think being able to set up those selections would help out in the beginning of an unwrap, but would they be that helpful all the way through? Or would you just end up deleting them after you got halway done?
I dont think i agree with being able to move edges and faces, im ok with only being able to move one component in a given UV editor - it gives you less room to accidentally click and drag something to fuckall without noticing. Maya's selection updates in the viewports and UV editor, and i have found its a must for uv editing.
everything you list would be great to have in all uv editors - but the biggest thing would be that the move, rotate, and scale key shortcuts are the SAME in the UV editor as they are in the Viewport. i fucking cant STAND Max for this, so much that i wont UV in it.
Although I don't understand why they don't set them as default... still, it's a matter of moments to fix this oversight, then all is good again
- Keyboard tab
- "Unwrap UVW" from the Group drop down list.
- Look for "Texture Vertex Move Mode" in the list ... bind this to whatever key you want (I use Q).
- Rotate and Scale are directly below that.
- Save settings.
- Enjoy.
One thing I really hate is that they named the functions differently in the Customize dialog than they are named in the tooltips. Such a pain to find some of those commands...
Anyhow, MoP you were talking about selecting edges/verts in the viewport vs. the Edit UVW window. Here's a set of scripts that does something similar. Have to go up/down in the stack to modify the selections, and it's not free, but some of the tools do look useful.
http://www.polyboost.com/features_unwrap.htm
The topology tools also look very interesting, especially in this new normalmap-generation age.
It was pimped here a while back with a gif animation showing the process on a curved pipe, with a bw checker material applied. It was sortof pait-oriented...
I know I have it somewhere... but where!?
Thanks if you can help (Mop I'm sure you have the link at hand )
Some details that might help you...
======================
From: Zola
Sent: Tuesday, January 06, 2004 4:34 AM
To: Eric Chadwick
Subject: Re: UVPaint feedback
Eric,
The reason of your problem is the method of my pointing algorithm. The
maxScript gives me a ray (that helps me to point out faces) which starts
from the center of viewport's virtual camera and follows the direction
where the cursor is projected to the active grid. If your camera looks
near to the horizon or above then there is no available projection
point. I've tried to upgrade the script but couldn't find any
replacement yet with acceptable precision and speed.
A new version of the script is waiting to be published but I have not
yet finished it. In this version there will be no need to prepare the
object because it splits up UV-faces if needed and notifies the user if
s/he tries to paint in a non-perspective viewport. Automatically
changing the current projection may remove the object from our sight.
I will try to get some free time to have this version finished and
published...
Good Luck and have a Happy Year!
by Zola/.
Eric Chadwick wrote:
> I have been testing your script lately with a room model, and it has
> been working great, a real time-saver. Thank you for sharing it.
>
> One problem I have is that it sometimes refuses to work. I have to
> zoom out or rotate the viewport a little, then try to paint again. Im
> not sure why some Perspective angles work while others do not. I am
> using 3ds max 5.1 with OpenGL display mode.
>
> It would be helpful if the script could automate the setup process,
> specifically breaking the UV verts, collapsing to Editable Mesh, and
> choosing a Perspective viewport. Could you add this? I think it would
> be best if you had a separate script for this step, maybe as part of a
> popup window like this
>
> ======================
> UVPaint v1.0.3
> [Prepare]
> [ UVPaint ]
> [About]
> [Close]
> ======================
>
> Thanks again,
>
> Eric
>
Thanks!
In my experience though, Deep UV has a much more solid relax than UV Help's relax. Believe me, I would avoid crash-prone Deep UV if I could, but UV Help doesn't work well with large UV chunks, nor with a selection within a chunk. It always seems to smear the surrounding UVs, whereas Deep UV tries to avoid this. UV Help is also really slow, and not too smart about overlaps.
I guess UV Help works OK with character unwraps, since each chunk tends to be a small area unto itself. But these days I'm working with terrain-style meshes that have to tile to one another, so I have to keep the UV edges intact while relaxing the UV interiors. UV Help seems to fail miserably with these.
Deep UV also has the UV Knead tools, which help me untangle messy UVs. A nice addition there.
thank you! hahah im starting to like max, slowly.