Home Technical Talk

Way to move frozen UV verts in 3dsmax?

polycounter lvl 11
Offline / Send Message
Bigjohn polycounter lvl 11
Is there a way to move frozen UV vertices in the UV Editor in Max?

I know it sounds counter-intuitive. But I'm basically looking for a UV-pinning feature. Mark some verts to be excluded from Relax.

Replies

  • Eric Chadwick
    Options
    Offline / Send Message
    Don't select them before you hit Relax. Right?
  • Bigjohn
    Options
    Offline / Send Message
    Bigjohn polycounter lvl 11
    That kinda works, but it gets real messy real fast. All it takes is forgetting to deselect one of them once, and the relax will include it. Not to mention that the selection/deselection process in and of itself takes a bit of time every time I want to relax.

    I ended up writing a maxscript that does an Unfreeze and remembers which verts were frozen. So next time I freeze, it just freezes those ones again. Basically a freeze toggle. It's dirty, but gets the job done.
  • renderhjs
    Options
    Offline / Send Message
    renderhjs sublime tool
    would you mind sharing that script? I might be interested in adding something like that in TexTools.
  • Bigjohn
    Options
    Offline / Send Message
    Bigjohn polycounter lvl 11
    heh that's kinda hard. I have one macroscript that does about ~20-30 different things, all depending on what's selected. Like if 2 verts are selected, and it's an Editable Poly, it'll connect. But if it's 2 edges then it'll edge-connect, or if they're a loop it'll chamfer, or if there's a gap then it'll bridge... etc etc. So I just added this as a condition of if you're in Unwrap mode, and have vertices selected.

    But anyway, just that part looks like this:
    global CutScript_UVFrozen = false
    global CutScript_FrozenUVverts = #{}

    .
    .
    .

    SelectedUVverts = #{}
    SelectedUVverts = $.modifiers[#unwrap_uvw].unwrap6.getSelectedVerticesByNode $

    if subObjectLevel == 1 do (
    if SelectedUVverts.numberSet > 0 then (
    join CutScript_FrozenUVverts SelectedUVverts
    $.modifiers[#unwrap_uvw].unwrap.freeze()
    CutScript_UVFrozen = true
    )
    if SelectedUVverts.numberSet == 0 do (
    if CutScript_UVFrozen then (
    $.modifiers[#unwrap_uvw].unwrap.unfreeze()
    CutScript_UVFrozen = false
    )
    else (
    $.modifiers[#unwrap_uvw].unwrap6.selectVerticesByNode CutScript_FrozenUVverts $
    $.modifiers[#unwrap_uvw].unwrap.freeze()
    CutScript_UVFrozen = true
    )
    )
    )


    Keep in mind I don't know crap about coding or maxscript. So this is probably messy as hell.
Sign In or Register to comment.