Jump to content

New Clothing Body Style Converter Beta v0.89f (10-26-2014)


Recommended Posts

Am starting to see a few of those other artifacts you mentioned going through the rest of the folders.

 

This ebony mesh for instance that fits about the waist: 

 

Before:

before.jpg

 

 

After:

after.jpg

 

 

I need to go through the rest of the output to try and find problem areas I suppose. Not sure, maybe my lattice settings were off or something. I can provide those and test files if needed - using the same from/to body templates as last time (UNPBase->7BBombshell).

Link to comment

Yeah, there's an artifact in my nearest point in triangle code that sometimes (about 1 in 500) gives very odd results. I suspect that it's a floating point precision problem, but I still haven't fully resolved it.

 

The very nasty result is that every so often vertices get matched with *very* inappropriate face...for no good reason that I can see.

Link to comment

Weird. o.o

 

I take it there's not much I can vary settings-wise on this end to try and get different results? Or is this one of those "try the problem meshes again with different numbers and see if it works better" situations?

 

Or is this one of those "make a list of meshes to fix by hand" situations

Link to comment

You can try increasing the number of search targets and search distance, but honestly, I doubt it would make a difference.

 

***To clarify...increasing the number of search targets and search distance might help if the tool wasn't considering the correct vertex targets/faces. The issue appears to be that the tool is examining them and then discarding them in a very small percentage of cases...I just haven't tracked down the issue yet.

Link to comment

Okay, I tested it with a lot of body types and different meshes and I am just in love with this :D

 

The only things I've noticed are the following.

 

When you convert from a cup size to a smaller one, lets say DMRA to A Cup, the convertion is pretty much flawless. Same if you convert similar body sizes like DMRA to DMRA GUTS. However, with some meshes converting to a bigger size causes a lot of mesh distortion. For example, DMRA to K cup. Not to say the prevalent clipping in these cases. 

 

I assume this is to be expected, as these large cup conversions look more complicated than smaller ones, but I thought I'd point it out. :)

Link to comment

Thanks for the info.

 

Would you be willing to send me a couple of the meshes that were showing distortion (From nif, To nif, and a mesh or two that showed distortion after conversion)

 

I'd like to add them to my testbed and see if there is anything I can do to improve their quality.

Link to comment

Thanks for the info.

 

Would you be willing to send me a couple of the meshes that were showing distortion (From nif, To nif, and a mesh or two that showed distortion after conversion)

 

I'd like to add them to my testbed and see if there is anything I can do to improve their quality.

 

Sent you a PM with the files!

Link to comment

OK. That was an exhausting bug hunt.

 

Clothing Converter Release Candidate 0.79

 

This update brings several improvements to the quality and performance of Clothing Converter.

 

Note: Please generate new Lattices for use with 0.79. Older lattices will continue to suffer from pre-existing artifacts.

 

Download:

 

Portable Package 79 Upgrade (upgrades Portable Package v.70, v.72, v.73, v.74, v.75, v.76, v.78 to v.79): 

Convert Clothing RC_79_Upgrade.7z

Light Download 79 (scripts only. Recommended if you intend to use 64 Bit version of Python): 

Convert Clothing RC_79_Light.7z

 

ChangeLog

 

v.78 to v.79

1. Remaining Known transformation artifacts appear to have been resolved.

 

Development Note: In the process of eliminating every possible source of artifacts, I have removed a number of speed optimizations from this version of the tool. So, it's quite a bit slower than v.78. On the other hand, the quality is *much* higher. I'll begin adding speed optimizations bit by bit as I test them to ensure that they aren't introducing any more dreaded artifacts.

 

The truth is, with a tool like this accuracy is more important than performance. And right now, the accuracy appears to be very high.

 

I look forward to the inevitable bug reports. Keep em coming folks.

Link to comment

Hello! I'm playing around with the converter, but i think i may be having an issue. So I apologize if this is a stupid question. I cant seem to locate a full naked body of what i want to make a lattice of. Some of the armors I want to convert and full armor pieces. Will the converter still run successfully if I just have the upper body portion?

Link to comment

@cthulhu worship

 

What I do for armors that need a full body is to take the player skeleton and make a copy of it then I copy my body that I am using for conversions to that skeleton. Sometimes things like feet and hands might get some weird formations you can just delete those body branches out and add your originals hands and feet into it after the convert. You might have to add the armor and hands/feet to a skeleton to be able to do it though as not all armors will allow you to place stuff into a armor nif as you will get a error.

Link to comment

Also, note the way in which this mesh converts. The front lining is slightly warped, and the front bottom of the mesh should be further forward due to the type of clothing.

 

In this Fiona top, you have some under boob warping and the central gemstone is also warped.

The gemstone is one of those cases where you'll want to enable the 'Customize Meshes' option. Since it lies directly between two breasts that are being transformed into something with considerably more cleavage, any objects directly between the breasts will inherit a transform that will tend to squash them a bit.

 

To combat this, I recommend disabling X Movement, and maybe even Z movement for the gemstone mesh. That will allow it to still be transformed along the y axis, but it won't inherit the x-axis boob squash or be shortened on the Z-Axis.

 

Underboob clipping or jaggies on certain clothing underboobs are probably going remain with us for some time. Most of the instances that I have seen to date appear to occur when the body mesh simply has more faces in that region than the clothing. So the underboob gets a nice organic curve that clips right through the flat planes of the top.

 

If I ever finish the automated clipping removal tool, it might be possible to proceduraly eliminate that sort of clipping. But automatically mending the jagged transforms may turn out to be a tall order. *If* I decide to take that on, I'll need to basically add an algorithm that detects regions of comparably low vertex density and splits faces and vertices to increase it.

Link to comment

Try running this lattice on this TGND body and look what happens to the feet (default settings). Otherwise flawless though.

Yeah.

 

I was expecting something like that to crop up sooner or later. I did a bit of a hack job with the wrist, ankle, neck, and waist seam matching algorithm.

 

Basically what's happening is this. Right now, the Make Lattice tool isolates any large groups of interconnected non-manifold vertices on skin meshes and gives them their own special search.

 

This is important because for inter-mesh seams, you generally want the tool to find an exact vertex match with another seam vertex, rather than some best fit location on the surface of a mesh.

 

*Unfortunately* toenails and fingernails are also non-manifold vertices, so they end up getting their own special search. In this particular instance, the From nif probably had a full set of unconnected toenails, and the To nif had an unconnected big toe. When the toes were running around like a bunch of piggies looking for their nearest match, the only neighbor still around was the big toe, so they decided to party with him.

 

So, my fix is going to be to categorize each group and have them perform the search only with other members of their category (left wrist, neck, left ankle, etc.) That should resolve the issue...I just need to finish the code.

Link to comment

Hello! I'm playing around with the converter, but i think i may be having an issue. So I apologize if this is a stupid question. I cant seem to locate a full naked body of what i want to make a lattice of. Some of the armors I want to convert and full armor pieces. Will the converter still run successfully if I just have the upper body portion?

Although the tool is perfectly happy to attempt to convert a full body armor using a partial mesh, the results are likely to be fairly ugly in the area where one mesh ends and the other would have begun.

 

A future update of the tool will include the ability to automatically merge separate nifs into a single combined lattice. Once that's complete, generating a combined lattice will be as simple as selecting multiple nifs for the body and the target and running the Make Lattice tool. That's for the future, unfortunately.

 

In the meantime, a bit of Nifskope magic is required.

Link to comment

 

Also, note the way in which this mesh converts. The front lining is slightly warped, and the front bottom of the mesh should be further forward due to the type of clothing.

 

In this Fiona top, you have some under boob warping and the central gemstone is also warped.

The gemstone is one of those cases where you'll want to enable the 'Customize Meshes' option. Since it lies directly between two breasts that are being transformed into something with considerably more cleavage, any objects directly between the breasts will inherit a transform that will tend to squash them a bit.

 

To combat this, I recommend disabling X Movement, and maybe even Z movement for the gemstone mesh. That will allow it to still be transformed along the y axis, but it won't inherit the x-axis boob squash or be shortened on the Z-Axis.

 

Underboob clipping or jaggies on certain clothing underboobs are probably going remain with us for some time. Most of the instances that I have seen to date appear to occur when the body mesh simply has more faces in that region than the clothing. So the underboob gets a nice organic curve that clips right through the flat planes of the top.

 

If I ever finish the automated clipping removal tool, it might be possible to proceduraly eliminate that sort of clipping. But automatically mending the jagged transforms may turn out to be a tall order. *If* I decide to take that on, I'll need to basically add an algorithm that detects regions of comparably low vertex density and splits faces and vertices to increase it.

 

The clipping is more annoying the the jagged vertices, so good look with the clipping tool.

 

Is there anything I can do in the meantime (with this kind of mesh below)?

 

 

Armor.nif

Link to comment
Not a major issue, but Make Lattice refuses to convert the feet mesh from Sevenbase to my custom body from UNP. Log attached. Can provide files if it helps. This is in RC 79.
 

loading settings from D:\Program Files (x86)\Convert Clothing RC_79\save\makeLattice.cfg
Distance : 10.0
name : make_lattice_options
uv_search : True
destination : D:/Program Files (x86)/Convert Clothing RC_79/Clothing Converter/lattice/SeveNBase Original/femalefeet_0.lat
norm_weight : 0.0
version : b_70
template : D:/Program Files (x86)/Convert Clothing RC_79/Clothing Converter/from/SeveNBase Original/femalefeet_0.nif
skin : True
v_index : True
targets : 3
target : D:/Program Files (x86)/Convert Clothing RC_79/Clothing Converter/to/UNP BodySlide Feminine Hands/femalefeet_0.nif
**********Bones Initialized**********
initializing meshes
b'phygitfeet_0{}2{}' : Initializing Vertices
b'phygitfeet_0{}2{}' : Vertex Initialization Complete
b'phygitfeet_0{}2{}' : Initializing Skin
b'phygitfeet_0{}2{}' : *Initializing Skin Bone Transforms
b'phygitfeet_0{}2{}' : *Calculating world Coordinates
b'phygitfeet_0{}2{}' : Skin Initialization Complete
Building Vertex Dictionary
Initializing Doubles
b'phygitfeet_0{}2{}' : Recalculating Normals
initializing faces
b'phygitfeet_0{}2{}' : Normal Vector Calculation Complete
Doubles Initialized
initializing faces
**********Meshes Initialized**********
**********Bones Initialized**********
initializing meshes
b'phygitfeet_0{}2{}' : Initializing Vertices
b'phygitfeet_0{}2{}' : Vertex Initialization Complete
b'phygitfeet_0{}2{}' : Initializing Skin
b'phygitfeet_0{}2{}' : *Initializing Skin Bone Transforms
b'phygitfeet_0{}2{}' : *Calculating world Coordinates
b'phygitfeet_0{}2{}' : Skin Initialization Complete
Building Vertex Dictionary
Initializing Doubles
b'phygitfeet_0{}2{}' : Recalculating Normals
initializing faces
b'phygitfeet_0{}2{}' : Normal Vector Calculation Complete
Doubles Initialized
initializing faces
**********Meshes Initialized**********
morph keys 0 0
Attempting Vertex Index Search
CTX Mesh b'phygitfeet_0{}2{}'
ACT Mesh b'phygitfeet_0{}2{}'
b'phygitfeet_0{}2{}' matches [b'phygitfeet_0{}2{}']
Match Found phygitfeet_0 phygitfeet_0
Traceback (most recent call last):
File "PythonPortable\App\Scripts\kgtools\make_lattice.py", line 211, in
Main()
File "PythonPortable\App\Scripts\kgtools\make_lattice.py", line 170, in Main
good_targets += indexSearch(cs, to_mesh, from_mesh, act_p_vert = search_res, ctx_p_vert = lattice_res, vertFunction = setInfluences)
File "D:\Program Files (x86)\Convert Clothing RC_79\PythonPortable\app\lib\site-packages\kg\search_util.py", line 962, in indexSearch
vertFunction(c_vert, [a_vert, 1.0], settings = settings)
File "D:\Program Files (x86)\Convert Clothing RC_79\PythonPortable\app\lib\site-packages\kg\search_util.py", line 274, in setInfluences
ctx_vert.setInfluence(NormalizeInfluence(influence_list))
File "D:\Program Files (x86)\Convert Clothing RC_79\PythonPortable\app\lib\site-packages\kg\search_util.py", line 49, in NormalizeInfluence
influence_sum = float(sum(i[1] for i in influence_list))
File "D:\Program Files (x86)\Convert Clothing RC_79\PythonPortable\app\lib\site-packages\kg\search_util.py", line 49, in
influence_sum = float(sum(i[1] for i in influence_list))
TypeError: 'vertex' object does not support indexing

 
Question: can your script run with command-line arguments, bypassing the GUI altogether? I have 11 armor sets to convert, with lattices from 5 different bodies. Being able to compose all that in a script would make it much easier to test new versions.
Link to comment

The clipping is more annoying the the jagged vertices, so good look with the clipping tool.

 

Is there anything I can do in the meantime (with this kind of mesh below)?

Well, the feet twisting is an artifact of my non-manifold seam hack job, so that ugly mess near the big toe of the boot should get fixed when I resolve that issue.

 

For the breast clipping, I recommend experimenting with a few of the options on the 'customize meshes' screen.

 

I forgot to mention it in the changelog, but 'Magnify Movement', 'Growth Bias', and 'Padding' should all function properly now.

 

Those three options were developed back when I was developing the Blender version of this tool and are designed specifically to help combat clipping.

 

The differences between the three options is fairly subtle, but important. To understand what they do, it's important to know a bit about how the tool transforms a mesh from one body style to another.

 

 

 

 

When you save a Lattice , what the tool is actually saving is a virtual copy of the 'From' nif that was used to generate the lattice, with a few crucial differences. Every vertex, face, vertex normal, and bone is preserved in the lattice (bones are needed so that I can calculate a shared worldspace coordinate system between the Lattice and the Target nif).

 

In addition to all of that, the tool also stores a transformation vector for each vertex. This defines the difference in coordinates between the a given 'From' vertex and it's best fit position on the 'To' nif.

 

When Clothing Converter runs, every vertex on the Target nif identifies the nearest point on the surface of the Lattice. This is going to be either a precise match with a Lattice vertex, a position on a Lattice Edge (line connecting one vertex to another), or a position on a face (surface connecting three vertices to each other).

 

The tool simply combines an appropriate average of the transformation vectors in the 1, 2, or 3 vertices that contribute to the Target vertex's location.

 

That transformation vector is then added to the Target vertex's location property.

 

Magnify Movement, Growth Bias, and Padding are settings that modify that transformation vector immediately before it is applied to the Target vertex.

 

 

 

 

Magnify Movement and Growth Bias multiply the amount of movement in a given transform. Any vertices that receive very little or no movement will be almost unaffected by theses two options. On the other hand, these settings will have a significant impact on any vertices taht receive large movements.

 

1. Magnify Movement: Every transformation vector is multiplied by this value. Set it to less than one to reduce the amount by which the selected mesh is transformed, set it to more than one to increase the amount by which the selected mesh is transformed.

 

2. Growth Bias: This is similar to Magnify Movement, with one difference. It categorizes each transformation vector as either a growth vector or a shrink vector. If the value is set to > 1, any growth vectors will be magnified by Growth Bias. If the value is set to < 1, any shrink vectors will be multiplied by 1 / value.

 

Padding is applied equally to every vertex on a mesh. The size or direction of the transformation vector has no effect whatsoever on padding.

 

3. Padding: For a given vertex, this value is derived from multiplying the Normal vectors of the matched Lattice vertices by the Padding Value. The net effect is a bit like scaling the mesh, except that each vertex is scaled relative to its matching normal vector.

 

So, to combat clipping, I recommend a delicate combination of the three settings, depending on the mesh. The results probably won't be perfect, but it's the best I've got until I get Clipping Cleaner working.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use