Jump to content

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


Recommended Posts

With the new update, it even terminate faster with 0 byte lattice.

Would you be willing to send me those .nif files. I'm able to generate a lattice with no issues using the last nif files you sent. I'd like to check if these ones are different somehow. Thanks.

Link to comment

On an unrelated note, I'm working on a couple additional enhancements.

 

Right now, the tool has a bit of a problem with vertex crash on the X-Axis for any meshes with significant cleavage growth. I think I've worked out how I want to deal with that...I'm thinking about adding a new option 'Disable X-Axis Crossing' to the Clothing Converter tool. When activated, it identifies any vertices that would cross the axis and instead merely shift them an arbitrary percentage towards the X-Axis from their current position. Probably 75%. So a vert with a position of 1,0,0 that was getting shifted to -0.5,0,0 would instead end up shifted to .25,0,0

 

I'm also thinking about adding an X, Y, Z search bias transform, similar to the one developed for my Blender Clothing converter. This would allow you to bias the searches by axis.

 

Finally, I have some ideas for an experimental face normals matching algorithm that should be able to improve the clothing conversion matching results. If I'm right, this should help reduce the under-boob problem that appears when, say, TGND is converted to DMRA.

Link to comment

 

With the new update, it even terminate faster with 0 byte lattice.

Would you be willing to send me those .nif files. I'm able to generate a lattice with no issues using the last nif files you sent. I'd like to check if these ones are different somehow. Thanks.

 

 

All nifs I used are included in file attached in #67.

 

Link to comment

Thanks for the feedback and the bug reports everyone.

 

Beta 40 for the Clothing Converter has been uploaded.

 

ChangeLog:

 

33 to 40

1. Several Crash or Freeze bugs have been resolved

2. New Option 'Vertex Normal Search Weight' added to clothing converter. This allows the tool to use Vertex Normals to help match targets between the Lattice and the nif.

3. Several new options added to the Customize Meshes screen

Link to comment

Great idea but for some reason, i just cant get this to work :/ ive got as far as building the lattice which takes about 5 minutes, although the file ends up being 0 bytes and when using the clothing converter, i select that file, my source directory to convert, and my output folder and click ok and nothing happens :/ i reallllyy wanna use this lol

Link to comment

Hmm...would you be willing to post the files you're working with.

 

A 0 byte lattice means that it was never fully generated, and thus was never saved. This probably means that the tool crashed at some point during the process.

 

I'd like to see if I can spot the problem.

Link to comment

I've been trying to make a CBBE -> Sevenbase lattice work. So far it keeps telling me that it's failed to set bind position or failed to send bones to bind positions and producing an empty output folder. I'm not sure if I should just be excluding more meshes, or if I need to try a different pair of body types, or if I'm just using some setting somewhere in the process that I shouldn't be, or what, exactly, which is a shame because this sounds and looks absolutely amazing.

 

I'll keep cracking at it though.

Link to comment

The failed to set bind position error can mean that there is a rigging problem on one of the meshes. A full explanation gets a bit complicated, but the short version is that in order to accurately match vertices between two nifs, my tools need to, essentially, render them as if they were being animated in game.

 

Unfortunately, some very popular Skyrim skeletons have fairly nasty bugs in some of their bone transforms that can lead to all sorts of rendering problems.

 

For the most part, my tools *should* be able to work around these problems, but this isn't always the case. Would you be willing to post the nifs that you are using to generate your lattice? I'll see if I can spot any problems.

 

To use Clothing Converter, here's what you want to do.

 

Step 1. Make a lattice. This is, by far, the most important step. Once you have a good quality lattice, the Clothing Converter tool should be able to batch convert entire folders of clothing.

 

So, how do you make a good lattice? First, find two good quality nude meshes. You want one nude body that represents the body style you are converting from, and another nude body that represents the body style you are converting to.

 

Ideally, these two nifs should include the body meshes, the foot meshes, and the hand meshes and nothing else. Note: you can also include a head nif, if it has a good seam with the body.

 

Make Lattice can be the source of many problems...it's still a bit experimental and unfortunately I erred on the side of giving the user more options than was necessary. This means that, with the wrong settings, it is extremely easy to generate a lattice that will crash Python. I think I'll post an updated version of the Lattice Maker that eliminates redundant and dangerous settings.

Link to comment

The failed to set bind position error can mean that there is a rigging problem on one of the meshes. A full explanation gets a bit complicated, but the short version is that in order to accurately match vertices between two nifs, my tools need to, essentially, render them as if they were being animated in game.

 

Unfortunately, some very popular Skyrim skeletons have fairly nasty bugs in some of their bone transforms that can lead to all sorts of rendering problems.

 

For the most part, my tools *should* be able to work around these problems, but this isn't always the case. Would you be willing to post the nifs that you are using to generate your lattice? I'll see if I can spot any problems.

 

To use Clothing Converter, here's what you want to do.

 

Step 1. Make a lattice. This is, by far, the most important step. Once you have a good quality lattice, the Clothing Converter tool should be able to batch convert entire folders of clothing.

 

So, how do you make a good lattice? First, find two good quality nude meshes. You want one nude body that represents the body style you are converting from, and another nude body that represents the body style you are converting to.

 

Ideally, these two nifs should include the body meshes, the foot meshes, and the hand meshes and nothing else. Note: you can also include a head nif, if it has a good seam with the body.

 

Make Lattice can be the source of many problems...it's still a bit experimental and unfortunately I erred on the side of giving the user more options than was necessary. This means that, with the wrong settings, it is extremely easy to generate a lattice that will crash Python. I think I'll post an updated version of the Lattice Maker that eliminates redundant and dangerous settings.

 

Ah I'll have to try merging the parts together - I didn't think of that. That's probably my problem right there!

 

I'll attach the files I used and the resulting lattice for interest sake but I suspect this has answered my question (user error = incomplete/wrongbad lattice) and I'll have something new to try next time I'm logged in. I'll check back here after I've corrected that oversight and let you know how things turned out when I'm actually doing it right xD

 

Thank you!

Samples.zip

Link to comment

Clothing Converter has been updated to beta 42

 

ChangeLog

 

1. Make Lattice interface has been streamlined with unneeded or redundant options eliminated.

2. All lattices will now be 'Minimal' lattices. This simply means that the shape of the lattice will correspond to the shape of the 'From' nif rather than as a rectangular grid. Extensive testing has confirmed that this style of lattice generates significantly higher quality clothing conversions with a lower performance overhead.

Link to comment

Ah I'll have to try merging the parts together - I didn't think of that. That's probably my problem right there!

 

I'll attach the files I used and the resulting lattice for interest sake but I suspect this has answered my question (user error = incomplete/wrongbad lattice) and I'll have something new to try next time I'm logged in. I'll check back here after I've corrected that oversight and let you know how things turned out when I'm actually doing it right xD

 

Thank you!

Thanks. I'll take a look at the files and see if I can generate a usable lattice.

 

Testing with Beta 42 and default settings.

Link to comment

OK, everything looks good.

 

I was able to generate a usable conversion lattice that successfully converted the CBBE body to match the SevenBase body.

 

CBBE to SevenBase: cbbe_to_sevenbase.7z

 

This lattice should convert clothing generated for CBBE to the SevenBase body style. Note: This will update the vertex positions, but will not modify Rigging or Weightpainting. For best results, re-rig converted clothing using Mesh Rigger to match the SevenBase body weightpainting, if desired.

 

Additional Note regarding Morph Meshes:

 

 

 

This particular lattice was generated using a CBBE _0 morph mesh. Clothing Converter has the ability to automatically generate both _0 and _1 morph meshes when it converts clothing.

 

To make use of this feature, simply select both the _0 and the _1 nif that you want to convert.

 

The tool will first morph the CBBE _0 nif to match the SevenBase _0 nif. It will then apply the CBBE _0 to _1 transform to the new SevenBase _0 nif to generate a matching SevenBase _1 nif.

 

 

Link to comment

Ok the info in the spoiler kinda confused me lol. 1) How would I know if a mesh I was using was a morph mesh or not? 2) Would this be able to be done to possible non morph meshes?

 

As that is one of the things I am trying to work on currently. There is a few outfits that really do not seem to change at all in size from a weight 0 to 100 at all.

 

So in that line of thought so far I am attempting to make 2 lattices one for the _0 and one for the _1 then taking the clothing that is like that and using each of the lattices on each _0 & _1 in separate directory's to hopefully get a morph mesh.

 

As my main goal overall is trying to redo a lot of past clothing to a new skyrim body style that I like fairly well ( UNP Top model )

From various bits of 7B, CBBE, and UNPB clothing. I am thinking should be easy overall once a I get a good enough lattice that I can see actually working correctly. Especially since the main part being changed is torso sections.

Link to comment

Any suggestions on the best way to merge meshes together to form a good template? I've been trying using NifSkope and so far all that's happened is it's managed to choke out the lattice generator. :/ Sorry if this is a dumb question and thanks for the help.

Link to comment

Ok the info in the spoiler kinda confused me lol. 1) How would I know if a mesh I was using was a morph mesh or not? 2) Would this be able to be done to possible non morph meshes?

Sorry about that.

 

All that my tool looks at is the file name. So if you have two nifs, armor_0.nif and armor_1.nif, my tool *can* recognize them of morphs for each other. To make this work, both need to be selected as targets when you run Convert Clothing.bat.

 

On the other hand, if you have a nif called armor.nif, my tool does not consider it to be a morph nif.

 

Further, let's say that you have armor_0.nif and armor_1.nif but only select one of them as a target. Since only half of the morph pair was passed to the tool, it does not consider it to be a morph nif.

 

As that is one of the things I am trying to work on currently. There is a few outfits that really do not seem to change at all in size from a weight 0 to 100 at all.

 

So in that line of thought so far I am attempting to make 2 lattices one for the _0 and one for the _1 then taking the clothing that is like that and using each of the lattices on each _0 & _1 in separate directory's to hopefully get a morph mesh.

That should work. Basically it sounds like the _0 and _1 nif are identical...that is, instead of being morph meshes of each orther, they are the same nif with different names.

 

If that's the case, then you first want to figure out which body nif matches both. Then find a body nif that corresponds to either the _0 or _1 nif that you want as your morph.

 

Generate a lattice that converts the the body to its corresponding morph.

 

Finally, run the Clothing Converter with only either _0 or _1 nifs selected (depending on which you are converting). This can be done either through manual selection, or by moving all of the nifs that you want to convert to a single folder.

 

As my main goal overall is trying to redo a lot of past clothing to a new skyrim body style that I like fairly well ( UNP Top model )

From various bits of 7B, CBBE, and UNPB clothing. I am thinking should be easy overall once a I get a good enough lattice that I can see actually working correctly. Especially since the main part being changed is torso sections.

That sounds good.

 

I should note that Clothing Converter combined with Mesh Rigger can typically handle about 90% of the work for a typical nif. However, significant changes to the size and shape of the breasts can result in some clipping if the vertex counts in the bust for the clothing are significantly lower than the vertex counts for the breasts.

Link to comment

Any suggestions on the best way to merge meshes together to form a good template? I've been trying using NifSkope and so far all that's happened is it's managed to choke out the lattice generator. :/ Sorry if this is a dumb question and thanks for the help.

I wrote a tool for that purpose, but it's got some bugs. I need to get back and finish it.

 

In the meantime, here's my workflow.

 

1. Start with a nif containing a nude torso.

2. Run Mesh rigger. Select the torso nif as both the template and the target nif

3. Select the skeleton that you use in-game as the skeleton template

4. Enable 'preserve skeleton structur'

5. Set vertex targets to 1

6. Enable 'Replace Existing Rigging'

7. Disable all other options

 

This will generate an updated torso nif with a complete skeleton

 

8. Open that nif in Nifskope

9. Open the hands nif in Nifskope

10. Expand the view until you see the geometry block (typically niTristrips or niTrishape)

11. Right click on that block and select 'copy branch'

12. Click on the Torso nif in Nifskope

13. Select the scene root. This may be called scene root or something else. It is the top level niNode

14. Right click on the scene root and select 'paste branch'

15. Repeat for every block that you are copying over

16. save the nif

Link to comment

 

Any suggestions on the best way to merge meshes together to form a good template? I've been trying using NifSkope and so far all that's happened is it's managed to choke out the lattice generator. :/ Sorry if this is a dumb question and thanks for the help.

I wrote a tool for that purpose, but it's got some bugs. I need to get back and finish it.

 

In the meantime, here's my workflow.

 

1. Start with a nif containing a nude torso.

2. Run Mesh rigger. Select the torso nif as both the template and the target nif

3. Select the skeleton that you use in-game as the skeleton template

4. Enable 'preserve skeleton structur'

5. Set vertex targets to 1

6. Enable 'Replace Existing Rigging'

7. Disable all other options

 

This will generate an updated torso nif with a complete skeleton

 

8. Open that nif in Nifskope

9. Open the hands nif in Nifskope

10. Expand the view until you see the geometry block (typically niTristrips or niTrishape)

11. Right click on that block and select 'copy branch'

12. Click on the Torso nif in Nifskope

13. Select the scene root. This may be called scene root or something else. It is the top level niNode

14. Right click on the scene root and select 'paste branch'

15. Repeat for every block that you are copying over

16. save the nif

 

 

I think I actually managed to make it worse. :/

 

I'm not sure why but for some reason the workflow doesn't work for me at step 11-14 unless I copy the branch for the hands/feet from the root node. If I copy the niTrishape, it tells me that it can't attach to the parent node or something, so copying from the root node ... brings over the original rigging for those parts, which feels wrong somehow. And may be the reason why it won't generate a lattice afterward.

 

I'm gonna attach the stuff I'm testing with just in case you can help me with that - is there something wrong with the Nifskope version I'm using (1.1.3) in terms of default settings?

 

I really want to figure this out o.o; Thanks again.

templates.zip

Link to comment

Oops. I left out a step.

 

This applies only to Skyrim nifs, and it is necessary only because, for some stupid reason, Skyrim nifs can use arbitrary names for their Scene Root.

 

Unfortunately, in order to copy a geometry branch from one nif to another nif, the scene root of the second nif needs to have exactly the same name as the scene root of the first nif. So, most of the time, you have to rename it. Dumb dumb dumb.

 

Here's the modified workflow:

 

1. Start with a nif containing a nude torso.

2. Run Mesh rigger. Select the torso nif as both the template and the target nif

3. Select the skeleton that you use in-game as the skeleton template

4. Enable 'preserve skeleton structur'

5. Set vertex targets to 1

6. Enable 'Replace Existing Rigging'

7. Disable all other options

 

This will generate an updated torso nif with a complete skeleton

 

8. Open that nif in Nifskope

9. You should see a single block (generally a NiNode). This is the Scene Root. Select it.

10. Look for the name field in the 'Block Details' panel.

11. Right click on the 'value' text field. It might be something like skeleton_female.nif[177]

12. Select 'Edit String Index'

13. Copy the text field in the popup window

 

14. Open the second nif in Nifskope

15. Repeat steps 9-12 on the scene root of the second nif

16. Paste the name of the first nif's scene root

17. Click OK

 

18. Expand the view until you see the geometry block (typically niTristrips or niTrishape)

19. Right click on that block and select 'copy branch'

20. Click on the Torso nif in Nifskope

21. Select the scene root. This may be called scene root or something else. It is the top level niNode

22. Right click on the scene root and select 'paste branch'

23. Repeat for every block that you are copying over

24. save the nif

 

It's a big giant mess.

 

This is one of the reasons that I wrote a stand-alone mesh-copy tool. Unfortunately, it has some annoying bugs that I have not yet resolved.

Link to comment

Aaaaaaah that makes sense. Awesome. I'll give that a shot and get back to you!

 

EDIT: This is a question that might be obvious and it might not, but on several occasions when copying over the hand/feet meshes I've noticed that the scale gets screwed up related to the proportion of the body and they're all out of alignment. Am I meant to be leaving that as is, correcting it manually with NifSkope (my first instinct and what I've been trying to do), or is there another tool I might try to fix that problem?

Link to comment

Never mind. Solved my own problem there - turns out the whole thing gets a little wonky if you start using a skeleton that isn't the skyrim default? Something like that. Extracted my base game skeleton and trying again with that instead. Scaling problem vanished immediately when building the 7B template so I think I've got it now. Testing with the CBBE next.

Link to comment

Yeah...It's very important to make sure that all of the meshes are rigged using the same skeleton.

 

Actually, rigging all of your nifs to use the same skeleton is probably a good thing in general. If different nifs are rigged with skeletons that have different positions for equivalent bones, things can get seriously wonky in game.

 

Mesh Rigger can largely automate that process, although it is still a work in progress.

Link to comment

Yeah I'm using the XP32 skeleton in game but that doesn't seem to work too well for this process, so I'm thinking vanilla is the way to go for these tools at this stage. CBBE parts copied over with perfect alignment this time through after switching. Whew! .__.

 

My fault for trying to get fancy before nailing the basics.

 

Generating my new lattice now - let's see if I've learned anything. Thanks again for helping me figure this stuff out. :)

 

EDIT: Aaaaaaaaaand blank lattice file. Again. <___>

 

Excuse me while I sink into despair. #everythinglookedsogooduptothen #whatamidoingwrong

templates.zip

Edited by xarathos
Link to comment

Hmm.

 

No idea why the tool is crashing on you. It works fine with those nifs on this end.

 

I suppose it could be running out of memory on you...but I wouldn't think the vertex counts are high enough to cause that particular problem. You could try installing the 64 bit version of python, pyffi, and running the scripts only version if you're feeling adventurous.

 

In any event, here's a _0 lattice file that I was able to generate with your template meshes.

 

Download (CBBE to 7Base Lattice): cbbe_to_7b.7z

 

*Edit* OK, it looks like my development environment has no problems with those meshes, but the Python Portable install is crashing on them. Investigating.

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