Jump to content

[WIP] BodyMorph


Expired6978

Recommended Posts

Hi Expired,

I am the creator of Realistic Body System, which uses Bodyslide to give 30 bodytypes with armors and clothes to npcs.

Let me get this straight.
What i have understood is that your tool/mod uses bodyslide data to make a tri file that changes the triangles(meshes) ingame. I have tested that. runs fine for me.
I am wondering what is necessary to add the tri files to different npcs wearing different clothes (compatible for bodyslide).
Do we have to add tri files for every armor and clothes or does it scale bodyslide armors out of the box?
So is it possible via papyrus to add a tri file only to lydia and another to formid "xyz" and if how?

if that is possible i will resume working on RBS because this way i won´t have problems with huge memory usage because of thousands of different body meshes.
Wonder if a tri file also could be used to change the path where body textures are loaded. If thats possible npcs could use different skins without creating a new body mesh.



 

Link to comment

Sorry I haven't had much to update with, I've gotten a little busy and haven't had time to find a function to invalidate the geometry of a loaded mesh in the world. The current method of flagging the geometryData as dirty/volatile seems to be causing some people to crash on load so I had to pull that version when I released it with RaceMenu.

 

 

Hi Expired,

I am the creator of Realistic Body System, which uses Bodyslide to give 30 bodytypes with armors and clothes to npcs.

Let me get this straight.
What i have understood is that your tool/mod uses bodyslide data to make a tri file that changes the triangles(meshes) ingame. I have tested that. runs fine for me.
I am wondering what is necessary to add the tri files to different npcs wearing different clothes (compatible for bodyslide).
Do we have to add tri files for every armor and clothes or does it scale bodyslide armors out of the box?
So is it possible via papyrus to add a tri file only to lydia and another to formid "xyz" and if how?

if that is possible i will resume working on RBS because this way i won´t have problems with huge memory usage because of thousands of different body meshes.
Wonder if a tri file also could be used to change the path where body textures are loaded. If thats possible npcs could use different skins without creating a new body mesh.

Each armor has to have its own TRI linked, I'm not really sure how this would be a problem for you since you technically need other bodies anyway. You can just link them to different TRI files, although if they are all made from the same base variant you could simply just use the same TRI file which would make your altered body the base. You cannot dynamically link the TRI files to specific actors, the TRI will be loaded and cached as long as the armor hosting the TRI is loaded, I haven't worked out a self-cleaning cache yet so any TRI loaded will remain in memory (Compared to other things it's really not that much, it doesn't multiply per actor as that's the point of caching).

 

What you can do is dynamically morph Actor's body shape via Papyrus, this would probably be far more efficient as you would be using the same base body, then just giving other actors random or controlled variations of the morphs.

 

As far as changing the body texture this is fairly trivial using NiOverride as it was designed specifically to modify shader properties of a loaded mesh on an Actor (Including textures). The thing about the body texture is that it is applied to any Armor with the BODY/HAND/FEET biped object that contains a child TriShape with the SkinTint shader type. It's not simply applied to a particular armor as the plugin was designed to do. While it's possible to do, the plugin cannot currently do that. I could certainly add that as a future feature. I think more recently SKSE got Get/SetSkin related functions, these might actually help with that. I believe the 'Skin' is what's used to find the body texture, you could just change the ActorBase's Skin override?

Link to comment

 

 

quoting for the notification (=

 

question about tri files in general... 

 

I did this mod here (a nipple skin mod) and I want to redo it, but I was unsure of how to approach it. It hit me the other day that I could make some tri files for the end of the breast, set it up as a plugin for racemenu where you're basically choosing a skin, and build it so that certain aspects of the business end of the breast was modifiable. So like racemenu and ece allow you to do really tweaky shit with eyes and noses (for example) i could do the same with  say nipple width, nip length, puffy etc. 

 

Do you think that would be possible?

Link to comment
  • 2 weeks later...

Do you think that would be possible?

Yes, if it involves moving vertices. This is the purpose of body morph, it would be similar to the nipple length and nipple size options to existing BodySlide sliders. I still haven't figured out a way to morph the geometry without having to flag some unstable flags that caused a lot of people to crash unnecessarily. I haven't really figure out what the heck "Additional Geometry" is for but it may be the solution. 

Link to comment

Hello,

 

I tried your mod, and while I finally got it to display the sliders properly and without any CTD's on the race menu, the sliders won't do anything when used. I looked through this thread to find a solution, but the solutions given did not solve the problem. When looking through the papyrus logs, though, I found this:

 

error: Native static function ClearMorphValue does not match existing signature on linked type NiOverride. Function will not be bound.

 

Could this be causing the issue, and if so, how can it be fixed?

 

Thank you in advance.

Link to comment
  • 2 weeks later...
  • 1 month later...

Expired6978 looks like an incompatibility between netimmerse override pluging and latest hdtPhysicsExtensions(LLab thread here) was found. If both plugins are present, Skyrim crashes right after the loading screen.

Does this mean you guys both modify the same part of Skyrim's process with your plugins? Is it possible to solve this incompatibility somehow?

 

edit: the problem occurs with the latest nioverride.dll from Nexus. Have not tried other versions.

 

 

About nioverride.dll : I don't know what's wrong. I capture an unhandled C++ except throw by nioverride itself. this is the full infomation:

Unhandled exception at at 0x76E5C41F in TESV.exe: Microsoft C++ exception: std::__non_rtti_object at memory location 0x0018F02C.

 

Link to comment

 

Expired6978 looks like an incompatibility between netimmerse override pluging and latest hdtPhysicsExtensions(LLab thread here) was found. If both plugins are present, Skyrim crashes right after the loading screen.

Does this mean you guys both modify the same part of Skyrim's process with your plugins? Is it possible to solve this incompatibility somehow?

 

edit: the problem occurs with the latest nioverride.dll from Nexus. Have not tried other versions.

 

 

About nioverride.dll : I don't know what's wrong. I capture an unhandled C++ except throw by nioverride itself. this is the full infomation:

Unhandled exception at at 0x76E5C41F in TESV.exe: Microsoft C++ exception: std::__non_rtti_object at memory location 0x0018F02C.

 

I don't get this error with my current version, or the existing version included with the RaceMenu. Is this error caused by the standalone nexus version, or the one included with RaceMenu?

 

Also, I just literally threw the DLL into my plugins folder, I don't know if the mod needs any additional configuration files to work correctly.

Link to comment

 

You used the latest hdtPE from the baidu link?

http://pan.baidu.com/share/link?shareid=3435982268&uk=2619899231#dir/path=%2FhdtPhysicsExtensions

Yes, I only downloaded the DLL and placed it into my plugins folder, I did not put anything else there.

 

The hooks from either DLL do not conflict.

Link to comment

You also need that hdtPhysicsExtensionsDefaultBBP.xml in plugins to see an actual effect ingame... I dunno then. For me, only one plugin is working. I think i'll install a clean Skyrim and experiment on it.

Ah, wrong loading screen. I thought you meant the start up screen. Yes it crashes.

 

The physics plugin is messing with the stack in proximity to my hook, so when the hook goes to acquire an object off the stack, it's an invalid pointer and then it tries to use the RTTI info to convert from an object reference to an actor, which can't happen since the invalid pointer is pointing to garbage.

 

My hook is taking parameters off the stack rather than direct function parameters, but this assumes the stack is not ruined.

(Because the function doesn't provide enough parameters, all the ones required are before the function call, still on the stack)

Link to comment

Yeah... like hell i know what all this means... What i could understand is that hdtPE is doing unsafe stuff? My lack of technical english with inexpirience in programming prevents me from understanding further.
Could you please talk to HydrogensaysHDT(his private messaging is not blocked) to solve this problem somehow?

I'll point him to your post with explanation, but...

Link to comment

Yeah... like hell i know what all this means... What i could understand is that hdtPE is doing unsafe stuff? My lack of technical english with inexpirience in programming prevents me from understanding further.

Could you please talk to HydrogensaysHDT(his private messaging is not blocked) to solve this problem somehow?

I'll point him to your post with explanation, but...

It's not an issue, I can probably solve this on my end.

Link to comment

Good to hear that. Thanks.

I wonder if this type of problems will keep occuring because hdt is actively developing the physics plugin.

No, I did the hook really poorly for this particular hook this is my fault. This was the only hook I did this way, all others are function overwrites, which don't need to manipulate the stack.

 

I didn't get the actor parameter from an offset of the stack pointer and instead got it from a stack register, which doesn't guarantee the object would be there. I've fixed it so it will acquire the actor from an offset of the stack, it works with HDT installed and also without.

 

Edit: Fixed, uploaded to the standalone and the RaceMenu download.

Link to comment

 

Good to hear that. Thanks.

I wonder if this type of problems will keep occuring because hdt is actively developing the physics plugin.

No, I did the hook really poorly for this particular hook this is my fault. This was the only hook I did this way, all others are function overwrites, which don't need to manipulate the stack.

 

I didn't get the actor parameter from an offset of the stack pointer and instead got it from a stack register, which doesn't guarantee the object would be there. I've fixed it so it will acquire the actor from an offset of the stack, it works with HDT installed and also without.

 

Edit: Fixed, uploaded to the standalone and the RaceMenu download.

 

I'm not using this yet but am planning to soon so thank you for taking the time to fix this (and doubly thank you for the work on RaceMenu!).

Link to comment
  • 1 month later...

 

Ok, i look at this mod, read almost all replies, and i still dont really get it......

Where is the download?

How do i get the sliders ingame?

What are the required mods?

What to do if i want to use this on the Manga body?

The download is there, but it's still in testing:

http://www.mediafire.com/download/uu58rdb44x2mmdg/BodyMorph.7z

http://www.mediafire.com/download/ph191fxr5z262hf/nioverride.7z (Fixes potential crash when you load a game)

The sliders are part of the included RaceMenuBodyMorphs plugin.

The above are the 'required' mods.

You don't unless manga body is a variant of an existing body that someone has made morphs for. (e.g. UNP or CBBE base)

 

This mod is essentially the same as BodySlide but it works ingame. If your body doesn't have any BodySlide morphs then it's probably not going to work.

 

There are cases where it MAY work, for example if your body is a variant of an existing body that has morphs, like UNP. I only have distributed UNP naked body morphs right now and the variant I used happens to be TBBP. It will work for CBBE as well once someone, (probably going to be me) converts the BodySlide bsd files into TRI files.

 

personally I'm waiting until something a bit more comprehensible and user friendly comes out

It depends what you're expecting from user friendly. One-click install sure, but it's not going to work for every body type and there isn't anything I can do about that but hope people can make the sliders for armors. I can't make it work for every body because that's just not possible, the bodies need shape delta data to do anything otherwise they're just a bunch of points in space. That data is different for every armor, the only one that can be reused is the naked body, since most armors are made around the existing body.

 

 

Can I know How to install the BodyMorph?

 

 

Link to comment
  • 3 weeks later...

Yes they can have different morphs on different npcs. I still haven't figured out the internal process for morphing a static meshes in-game though so updating is rather taxing. The API is certainly there and is workable, it's just painful to make morph sets for and hardly anyone seems to be interested in actually making body slide capable bodies.

Link to comment

Yes they can have different morphs on different npcs. I still haven't figured out the internal process for morphing a static meshes in-game though so updating is rather taxing. The API is certainly there and is workable, it's just painful to make morph sets for and hardly anyone seems to be interested in actually making body slide capable bodies.

 

I'm guessing this mod could make bodyslide settings far more popular.   Not to mention the upcoming studio tool in bodyslide 2.

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • 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