Jump to content

Recommended Posts

I say the bodytalk body neck seam is off by a few virtual millimeters. Prove me wrong.

 

My head wasn't fitting the seam, so I loaded the vanilla human head, and it didn't fit, so I loaded the vanilla body and that seam is just Not. In. The. Same. Place.

 

Spoiler

image.png

 

(The seam down the side of the neck is a blender artifact--it's just showing the edge of the shapes.

 

Now I'm not really sure what to do. I want that seam gone, but it seems I can support one or the other. Or put my heads on the vanilla seam and ship a patch for BT. 

 

Since I'm using my own importer I would like a cross-check from someone to validate what I'm seeing. It could be the floating point rounding error, but BT is positioned so the seam is near the origin. So it's not that. 

 

Blaze, I'm not ignoring your post above, I'll come back to it when I'm doing that thing.

 

Side note, is LL's indexing screwed up right now? My "unread content" is missing a bunch of posts. If you think I'm ignoring you it's not intentional.

 

Link to comment
4 hours ago, Bad Dog said:

Since I'm using my own importer I would like a cross-check from someone to validate what I'm seeing. It could be the floating point rounding error, but BT is positioned so the seam is near the origin. So it's not that. 

Don't have much time to check right now but a quick look in Blender at the exported OBJs (which should avoid any potential hypothetical fuckery on your importer's end) shows the BT3 mesh does indeed not match the vanilla one 1:1. Looks like it's only some vertices that are off by a mm or two, but seems like it's enough to cause the seams you were seeing.

 

4 hours ago, Bad Dog said:

Blaze, I'm not ignoring your post above, I'll come back to it when I'm doing that thing.

Fair enough, just let me know when that happens.

Link to comment
4 hours ago, Bad Dog said:

I say the bodytalk body neck seam is off by a few virtual millimeters. Prove me wrong.

 

My head wasn't fitting the seam, so I loaded the vanilla human head, and it didn't fit, so I loaded the vanilla body and that seam is just Not. In. The. Same. Place.

 

 

 

image.png.9580a6986b67102960f2b3eb4defe5b4.png

 

Check your import/Export Script BD as well as your normals, I obsessively checked over BT3 to make sure I got it as close as I could to the seam to account for Fallout 4's float nonsense. There is absolutely 0 Neck seam in game for me (in relation to my mesh work). and I'm using outfits that are publically available and use the latest BT base available. If it works fine on humans, it should work fine on everyone else. 


BT's proudest feature that I worked hardest on (Other than full Dismemberment) is literally busting the hand and neck seams. 
 

image.png.e6a0c561031c66c6141fe5a387ebf70f.png

Link to comment

@TheBottomhoodofSteel Ya, I have to believe you, and when I load a FO4 head into OS along with the BT body, I don't see a seam there. But Blaze says he then exported objs, loaded them into Blender, and  did get the seam. And I can import other bodies--vanilla male head and body, CBBE body with vanilla head--and not get seams. It's def a problem with vert position, btw, not normals.

 

My export/import is certainly the prime suspect here, but whatever it is, it's subtle. The code handling vert positions is all from OS--I didn't muck with it. I could be screwing up transforms, but it's a small error and there's something specific about this model triggering it. Since Blaze is seeing it in the OS to Blender path there might be something on the Blender side that's triggering it. 

 

How did you build the mesh? Max?

 

Meanwhile, while I'm bitching about bodies, whatup with the CBBE body? The seam's fine but the head fits into body like it's sitting in a dish, so there's a ridge along the seam in the area of the clavicles. Is it intended for a better head? Surely folks don't just live with it as it is.

Link to comment
6 hours ago, TheBottomhoodofSteel said:

BT's proudest feature that I worked hardest on (Other than full Dismemberment) is literally busting the hand and neck seams.

I believe you on this as well which is why this puzzles me so much.

 

I loaded the vanilla male body mesh alongside the BT3 one into Blender as OBJs after exporting from NifSkope and the vertex locations at the neck seam just don't match 1:1, they're off by a mm or so each (it's more noticeable on the ones on the sides). I'll try to get a pic or two whenever I'm back at my PC but something weird is going on here.

Link to comment
4 hours ago, Bad Dog said:

@TheBottomhoodofSteel Ya, I have to believe you, and when I load a FO4 head into OS along with the BT body, I don't see a seam there. But Blaze says he then exported objs, loaded them into Blender, and  did get the seam. And I can import other bodies--vanilla male head and body, CBBE body with vanilla head--and not get seams. It's def a problem with vert position, btw, not normals.

 

My export/import is certainly the prime suspect here, but whatever it is, it's subtle. The code handling vert positions is all from OS--I didn't muck with it. I could be screwing up transforms, but it's a small error and there's something specific about this model triggering it. Since Blaze is seeing it in the OS to Blender path there might be something on the Blender side that's triggering it. 

 

How did you build the mesh? Max?

 

Meanwhile, while I'm bitching about bodies, whatup with the CBBE body? The seam's fine but the head fits into body like it's sitting in a dish, so there's a ridge along the seam in the area of the clavicles. Is it intended for a better head? Surely folks don't just live with it as it is.

 

I'm unsure what would be the case with the OBJ export situation. It's possible it could be an OS thing. I'm running v5.2.0 if it helps, since I know some of the newer OS/BS updates changed how things worked in regards to mesh positioning. 

 

BT's base (BT2+) was redesigned by Leito to add in some details and a new hand mesh, he fixed them in Max, ZaZ and I corrected the transforms by using an export trick in Max to fix transforms to conform with older OS versions. Outpowner then updated that with BT3 and FG 1.6 with a newer version of OS to further minimize the hand/neck seam. It's worked fine for me the entire time, I've created numerous outfits on this base and I've had no issues from others, so I can't tell you what's up. 

 

image.png.234cfad5ff6f6bafaa10665193f05950.png

Here's the Origin point for BT3, I haven't touched it since Outpowner edited it, and this works perfectly fine for me. 

 

 

 

2 hours ago, Blaze69 said:

I believe you on this as well which is why this puzzles me so much.

 

I loaded the vanilla male body mesh alongside the BT3 one into Blender as OBJs after exporting from NifSkope and the vertex locations at the neck seam just don't match 1:1, they're off by a mm or so each (it's more noticeable on the ones on the sides). I'll try to get a pic or two whenever I'm back at my PC but something weird is going on here.

I'm in Blender 2.8 and I run I believe a older version of OS/BS, so I can't help you with the issue. 

 

To get this, I export from OS as OBJ, Make sure you hit "NO" when it asks to convert to Global coordinates, and save the OBJ

image.png.e6d465c8474d34162fec7ca9eb1b0f11.png

 

 

 

Link to comment

I thought I posted--but maybe in the other thread--that I can see where the problem is. The global to skin transform is giving me slightly different results for the vanilla body than the BT body--the rotation is off just by a fraction of a degree, but that's enough to open up the seam. I'm guessing however you rigged it is doing the right thing, but it's slightly different from however the vanilla body was built and the rounding errors cause different results. Dunno why it works in game, but it's a different engine so it's possible.

 

I'm thinking I can build against the vanilla body--since the BT body works with vanilla heads--and it might all be fine.

 

I'm also thinking that armatures imported from different nifs might not work well together in general for this exact reason--if they are using different transforms to get the same result, there could be such small rounding errors. 

Link to comment
10 hours ago, Bad Dog said:

I thought I posted--but maybe in the other thread--that I can see where the problem is. The global to skin transform is giving me slightly different results for the vanilla body than the BT body--the rotation is off just by a fraction of a degree, but that's enough to open up the seam. I'm guessing however you rigged it is doing the right thing, but it's slightly different from however the vanilla body was built and the rounding errors cause different results. Dunno why it works in game, but it's a different engine so it's possible.

 

I'm thinking I can build against the vanilla body--since the BT body works with vanilla heads--and it might all be fine.

 

I'm also thinking that armatures imported from different nifs might not work well together in general for this exact reason--if they are using different transforms to get the same result, there could be such small rounding errors. 


I assume OS does the calculations on the each mesh group when it exports, but I'm unsure. I assume if you're running a older OS version, you're more likely to see this error or have issues. Also There's absolutely no problems porting from Vanilla to BT without any need for reweight or other issues. I know Skyrim has that issue where you do need to clear all weights on conversion between bodies, but FO4 seems more forgiving about it. 

Link to comment

My own head, in game: 

 

Spoiler

ScreenShot44.png

 

The textures could use some work but the mesh has no seams at all. This is with matching the head mesh (and weights, ofc) to the vanilla body but running with the BT body in game. (You can just see the guy's nipple is 3d.) So whatever the transform issues are, they are not screwing up the export.

 

Hey, have I mentioned how I'm... ya, I did. You guys have heard it already.

 

I think that normal sucks, I'll have to figure out what happened there.

 

Hey, I've been hating on FO4's pencil necks, but I realized the way they did it the neck seam is usually hidden under the clothes. Which is not stupid. I'm making the lykaios neck smaller so it doesn't clip so badly with clothes.

 

I think I'll do the Doc's import-to-an-existing armature feature bc I'm kinda enjoying the coding. Maybe fix those speculars and upload a new version. 

Link to comment

@TheBottomhoodofSteel just to mention, so you talked about working the transformations with ZaZ and OS. I didn't say, but I'm basically using OS's code--they split the layer that talks to nifs out and that's what I have. So it's about a month old, max. There have been updates which I will pull in, but what I have is quite recent.

 

I don't know if this export method will work for you at all but I'm planning on clawhands as well as revamping all the ends, so it will get a workout and it seems (knocks on all the wood he can find) to be doing the right thing without hassle.

Link to comment

I'm trying to get rid of the female neck seam and maybe I just don't have the right skilz, but I want to say Bethesda said F U suckers and left us with something unworkable. I swear the seam isn't in the textures cuz I blended them all and they look fine on the models in blender. It looks to me like the normal just doesn't match on the seam, even tho the normal texture totally does.

 

Which makes sense, actually, because Beth said never mind that we've figured out how to put an MSN on a skinned mesh, we're gonna use tangent space normals. And there's really no good way to match the normals where the shape butts up against the next shape because they're driven by the orientation of the face and there's no way to blend across the seam.

 

So it seems like the only way to make this work is to make the faces on each side of the seam lie on the same plane, or pretty nearly. Which is maybe why the vanilla heads have this dished neckline, like the head is sitting in a tray. 

 

Anybody got some wisdom to share?

Link to comment
7 hours ago, Bad Dog said:

[...] we're gonna use tangent space normals. And there's really no good way to match the normals where the shape butts up against the next shape because they're driven by the orientation of the face and there's no way to blend across the seam.

There is (or at least was) a way to blend vertex normals across meshes, actually. And I've used it paired up with seamless/blended-in-paint normal textures to get seamless wrists/necks in FO4 before. It's called the TiNA Transfer Normals addon (Gitlab seems to be having a stroke at the moment, but hopefully it'll be back up soon).

 

It's as easy as it gets: load up both head and body, select body in Object Mode, Shift-select head, Alt + N. Boom, neck vertex normals are blended. The only real issue with it was that before your plugin existed the only way to get those meshes into a nif was Outfit Studio, and it really likes to mess up existing custom normal data on import, so you had to wrestle with it and re-import the fixed OBJ a few times after disabling auto normal smoothing and such to get it to work. But if the export can be made from Blender straight into nif, that's not a problem anymore.

 

...the real problem is that going by what I've read in the last post of this thread, it's not working on 2.81+, so you would have to either find another plugin that can copy vertex normals across objects and is compatible with 2.81+, or get the normals sorted in 2.79 and then load the meshes into 2.81+ and save as nif from there. (Otherwise, does your plugin actually work on 2.79? Never actually tried).

Link to comment

Blender thinks backwards compatibility is for sissies, so no, it doesn't work on 2.79. They break really basic things like how you refer to the current active object.

 

Also too it probably works by setting custom normals on the verts, which is not something I handle on export yet.  I could get T!NA to work but getting the resulting normals out to the nif might be as hard or harder. (Or not. They're already exported explicitly, so I might just be able to get the custom normal instead of the regular normal and be done.)

 

But what I take from this is that I'm right and Beth shat the bed. So fine. I'm inclined first to go around the neck seam and make every pair of tris across the seam lie on the same plane. That's a poor man's way of making the normals match. If that works I'll probably get sick of doing it and then I might see about fixing up T!NA.

Link to comment

Did some spelunking. 

 

Turns out Blender has an option to copy normals from one mesh to another--does natively what T!NA does. So I used that and it seemed to work.

 

Here's the neck seam before:

 

Spoiler

image.png

 

After:

 

Spoiler

image.png

 

So yay, that looks like just what I need. But but but I can't figure out what blender did. The mesh has a list of normals, but they didn't change before and after the operation. Maybe there's some other morph or deform list, but if so I haven't found it and most of the data transform operations just change the mesh, they don't create some modifier layer or something. 

 

I have a call in to the blender.stackexchange folks and they're pretty responsive, so we'll see if they have thoughts.

 

Link to comment

Still hunting a resolution to the normals thing.

 

Another subject: TheBottomhoodOfSteel says I can use the BT male body as a base for the furry bodies as long as I'm not a dick about it and support the things BT supports, which is fine. But I think that means I should finally get serious about supporting bodyslide.

 

So does anybody who actually uses bodyslide want to tell me what would be useful? I think body parts have "tri" files that provide the various morphs, but they aren't quite the same format as normal tri files. So I'm thinking to do the same mechanism where your morphs are shape keys and get exported with the shape. If they have common names we can just create one of these files whenever such shape keys exist, but they could also be marked in some way as intended for bodyslide, or if the mesh is a body (rather than head) part any shapes could be exported as a BS tri by default.

Link to comment
11 hours ago, Bad Dog said:

So does anybody who actually uses bodyslide want to tell me what would be useful? I think body parts have "tri" files that provide the various morphs, but they aren't quite the same format as normal tri files. So I'm thinking to do the same mechanism where your morphs are shape keys and get exported with the shape. If they have common names we can just create one of these files whenever such shape keys exist, but they could also be marked in some way as intended for bodyslide, or if the mesh is a body (rather than head) part any shapes could be exported as a BS tri by default.

Those TRI files are only used for ingame morphing, the "standard" use case for BS stuff is simply running BS itself to generate the meshes with whatever body shape you want them to. And the BS morphs themselves are stored in .OSD files, not TRIs, so that would be kind of a moot point. At least as far as creating proper Bodyslide set goes.

 

Outfit Studio can import and export slider data as BS-formatted TRIs, though, so I guess if you added BS-TRI support to the plugin you could use that to generate the proper slider data in Blender and then simply import it as TRI into the Outfit Studio project and save it as a working Bodyslide set (if that makes any sense; I can give more detail on what the hypothetical pipeline would be later). You can already do that, actually; the only "issue" is you need to export each slider individually as OBJ and then import it back once you're done fixing it up in Blender, so it's obviously slower and more cumbersome that doing all morphs in one sitting would be.

Link to comment

What I'm worried about is taking a body, whether BT or CBBE, that is set up with a set of BS sliders, and then I add or modify bits, like feet or other parts, then all the sliders are messed up. What I want to do is import the body, import the sliders/morphs/whatever as shape keys, make my changes, then export body + morphs into a <something> that means people can use the edited body in BS just like a regular CBBE body, with all the different body shapes available. Or does that not make sense?

 

Related, people have bugged me about hands and feet not fitting the CBBE body and there are feet and hand morphs for BS, aren't there? What do I have to do to support them properly?

Link to comment
17 minutes ago, Bad Dog said:

What I want to do is import the body, import the sliders/morphs/whatever as shape keys, make my changes, then export body + morphs into a <something> that means people can use the edited body in BS just like a regular CBBE body, with all the different body shapes available. Or does that not make sense?

In that case, I assume the process would go like this:

  1. Load up the body project that will be used as a base into OS and export its slider data as a TRI file. You'll probably want to do BT3 Nude for males and True Wasteland Body for females (TWB is a CBBE derivative that has all of CBBE's sliders plus a handful unique ones so it's better to go for that one instead of just base CBBE).
  2. Also export the zeroed sliders/base shape as nif.
  3. Load both the base shape nif and the slider data from the TRI (with that hypothetical BS-TRI support in your plugin).
  4. Do your stuff (I'm guessing it implies beast feet/legs, among other things).
  5. Export the new base body as nif and the new slider data as BS-TRI.
  6. Open up OS, load base nif, import slider data from TRI file.
  7. Save as a new project with the proper path to wherever it must be saved in and stuff.

This should (key word: should) give you a working Bodyslide set for your new custom bodies while also allowing you to clean up and fix the slider data inside Blender itself at the same time so you can get everything done at once.

 

Do note that I can take care of steps 1-2 and 6-7 for you if you wanted, and you'd then only have to do BS-TRI support and then the actual body sculpting/creation/editing from 3-5.

 

Quote

Related, people have bugged me about hands and feet not fitting the CBBE body and there are feet and hand morphs for BS, aren't there? What do I have to do to support them properly?

You must be misremembering or mixing up Skyrim stuff here, because AFAIK there's no sliderset for hands in FO4 and feet are part of the body so that's not an issue either. Simply grab the hand nifs from CBBE/TWB and BT3 and use them as a base for your custom hands, they should automatically fit any other bodies out there since they all use the same wrist seam layout as vanilla.

Link to comment
54 minutes ago, Blaze69 said:

Load up the body project that will be used as a base into OS and export its slider data as a TRI file.

That's a BS-TRI file, yes? All sliders in one file?

 

& ya, if you did 1-2 for me as a starter set that would be great. 6-7 I expect to do, uh, more than once so I might as well get used to it.

Link to comment
8 minutes ago, Bad Dog said:

That's a BS-TRI file, yes? All sliders in one file?

That'd be my understanding, yeah. I haven't really tinkered with them before but TRIs are supposed to include all slider data, and if the nif itself is the base/zeroed sliders shape, then that NIF + BS-TRI set should effectively be the same as the standard NIF + OSD data from actual Bodyslide sets (and allow you to recreate the whole BS set easily).

 

8 minutes ago, Bad Dog said:

& ya, if you did 1-2 for me as a starter set that would be great. 6-7 I expect to do, uh, more than once so I might as well get used to it.

Should I just get the files exported and sent your way, then? Or do you want to get the BS-TRI thing done first?

Link to comment

Okay, I can read the BS tri files. Export shouldn't be hard.

 

I think the way I'll handle them in Blender is to give the shape key a special identifier, like ">BTShoulders". Then those can be exported in their own format without ambiguity. 

 

I'm not sure if this scheme of using a mark in the shape key name to say what to do with it has legs, but I'll keep playing with it for now.

 

I have the normals mostly sorted also. <rant> As far as I can tell, given blender's crappy API documentation, bmeshes just shit the bed when it comes to custom normals. Nothing I did would make them come out right. But I can see them just fine on the regular mesh object. So then I decided to stop using bmeshes altogether because it's one more conversion step and the only thing I absolutely needed them for was converting to tris, and there's an operator for that. BUT it turns out the operator works on the selected object so I couldn't just copy the mesh I had to make a whole new object and that's stupid so now I convert to bmesh, triangularize, and convert back for the rest of the work. Which is stupid.

 

And also I just realized that the triangularization is screwing up the custom normals I'm trying to preserve and maybe if I did it on the mesh, not the bmesh, that wouldn't happen cuz the whole bmesh mechanism is pretty much a crock anyway. <Does a quick test.> Yup. It's a crock. Works on the mesh side. So I guess I'll have to figure out how to make a hidden object or something for the operator to work on. 

 

Anyway that particular problem didn't matter because all the faces down on the neck seam were tris already. But I can't swear the seam is really much better.

Link to comment
2 hours ago, Bad Dog said:

Turns out the BS tri file can hold more than one shape. Anyone know why? Is it ever used?

That's because each TRI file corresponds to a single nif, and every nif can have several TriShapes in it (and they usually do). And yes, it's used for every single multi-shape nif generated by Bodyslide.

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