Jump to content

Devious Devices Framework Development/Beta


Recommended Posts

On 1/16/2021 at 6:58 AM, tiger9099 said:

Will the adjustable ball gag mod be incorporated at some point to this, or roggvir's mod he had been working on?

It is just as easy to edit face geometry a little to suit gags, i tried adjustable ballgag's mod once but very fast realized it's redundant.

Link to comment

Small change of plans. I am going to release DD 5.1 today, as I got made aware of a critical bug that needs immediate fixing (it has the potential to destroy items in your inventory). Development for version 5.2 will seamlessly continue though. I will merge all new devices currently worked on in 5.2.

 

Talking about the new devices - do testers deem them ready to go into the framework or do they need tweaking and/or more testing?

 

I have the following new/updated devices on my list:

 

- New Boxbinder

- New Boxbinder Suit

- Updated Armbinders

- Updated Catsuit

- Updated Petsuit

- Patch for the ESM changing priorities of restrictive boots

- Potentially more Kziid devices, depending on whether or not they're covered by the permissions given (I still need to figure that out).

 

As a small request to anyone contributing new/updated devices: It would be super awesome if the files would be ready to merge as is, e.g. patched files having the same filenames and external and internal paths as the files they are supposed to overwrite, and any Bodyslide files such as slider sets also be separated for CBBE and UUNP (not providing both slider sets in the same file - because the DD installer will install -either- CBBE -or- UUNP depending on user choice, but never both). This will reduce the potential for me accidentally messing up things when merging them (I have a track record of doing that....) and make it generally easier and faster for me to merge the files. Thanks! :)

Link to comment
21 minutes ago, Kimy said:

Small change of plans. I am going to release DD 5.1 today, as I got made aware of a critical bug that needs immediate fixing (it has the potential to destroy items in your inventory). Development for version 5.2 will seamlessly continue though. I will merge all new devices currently worked on in 5.2.

 

Talking about the new devices - do testers deem them ready to go into the framework or do they need tweaking and/or more testing?

 

I have the following new/updated devices on my list:

 

- New Boxbinder

- New Boxbinder Suit

- Updated Armbinders

- Updated Catsuit

- Updated Petsuit

- Patch for the ESM changing priorities of restrictive boots

- Potentially more Kziid devices, depending on whether or not they're covered by the permissions given (I still need to figure that out).

 

As a small request to anyone contributing new/updated devices: It would be super awesome if the files would be ready to merge as is, e.g. patched files having the same filenames and external and internal paths as the files they are supposed to overwrite, and any Bodyslide files such as slider sets also be separated for CBBE and UUNP (not providing both slider sets in the same file - because the DD installer will install -either- CBBE -or- UUNP depending on user choice, but never both). This will reduce the potential for me accidentally messing up things when merging them (I have a track record of doing that....) and make it generally easier and faster for me to merge the files. Thanks! :)

 

The Boxbinder is actually the Boxbinder Suit, if that's the one I fixed.

If you want me to, I can make a Boxbinder-only version too. ?

I'll also check every path of the BS files I uploaded and post here a zip with all of them inside.  ?

Link to comment
22 minutes ago, Racoonity said:

 

The Boxbinder is actually the Boxbinder Suit, if that's the one I fixed.

If you want me to, I can make a Boxbinder-only version too. ?

I'll also check every path of the BS files I uploaded and post here a zip with all of them inside.  ?

 

Awesome! And yes, a standalone boxbinder version would be awesome! About the slot, I guess the standalone version should probably use the same slot as the regular armbinder?

 

Did you or anyone else testing the device in game experience massive clipping with suits or other DD devices?

Link to comment

I think the Boxbinder Suit wouldn't work very well as it stands right now, it'll conflict with too many devices such as corsets/harnesses and even boots due the Biped slots being used. If you're going to include the Boxbinder it should be a non-suit version for now, at least until some slot conflicts can be resolved. Then again since I don't think arms can be hidden without using a modified body, such as straitjackets do, you may have to use the suit version.

 

Also @Kimy did you miss my post here regarding the Pet Suit and adding Keywords to regular, non-dress straitjackets to allow vaginal and anal sex?

 

@Racoonity When you're checking all your BodySlide files be sure to add the new sliders to the current DD Framework CBBE and DD Framework UUNP SliderGroup files. I created those for DD5 so people only have to select and build a single group now. Previous versions of DD has several groups to build and may have contributed to the many reports of invisible devices.

 

 

 

Link to comment

@Racoonity if you do separate the boxbinder and suit (as @UnEvenSteven has a good point on combability) can you also "standardify" the texture paths?

I would suggest adding a new folder as more items from Kziid might be added. textures\devious\Kziid would be a fitting place? (don't forget to move the env2.dds from the "sack" folder.

 

The DD textures are by default named (diffuse, normal, env map)

ArmbEbonite_d

ArmbEbonite_n

ArmbEbonite_em

 

I've added all the files and the photoshop sources. I already renamed the black ones with the default naming scheme. The red and white colors only need a different diffuse file so a texture set in the ESP wil be all.

BoxBinder Black+Red+White+Sources.7z

Link to comment
45 minutes ago, UnEvenSteven said:

I think the Boxbinder Suit wouldn't work very well as it stands right now, it'll conflict with too many devices such as corsets/harnesses and even boots due the Biped slots being used. If you're going to include the Boxbinder it should be a non-suit version for now, at least until some slot conflicts can be resolved. Then again since I don't think arms can be hidden without using a modified body, such as straitjackets do, you may have to use the suit version.

 

I know, that's on purpose: the tights aren't supposed to be wearable under boots, and the corset isn't supposed to be wearable over a harness (not to mention another corset ?)

 

Quote

@Racoonity When you're checking all your BodySlide files be sure to add the new sliders to the current DD Framework CBBE and DD Framework UUNP SliderGroup files. I created those for DD5 so people only have to select and build a single group now. Previous versions of DD has several groups to build and may have contributed to the many reports of invisible devices.

 

Yep, sure! ?

Link to comment
11 minutes ago, naaitsab said:

@Racoonity if you do separate the boxbinder and suit (as @UnEvenSteven has a good point on combability) can you also "standardify" the texture paths?

I would suggest adding a new folder as more items from Kziid might be added. textures\devious\Kziid would be a fitting place? (don't forget to move the env2.dds from the "sack" folder.

 

The DD textures are by default named (diffuse, normal, env map)

ArmbEbonite_d

ArmbEbonite_n

ArmbEbonite_em

 

I've added all the files and the photoshop sources. I already renamed the black ones with the default naming scheme. The red and white colors only need a different diffuse file so a texture set in the ESP wil be all.

BoxBinder Black+Red+White+Sources.7z 7.94 MB · 0 downloads

 

Thanks for the info. ?

Link to comment
7 minutes ago, Racoonity said:

 

I know, that's on purpose: the tights aren't supposed to be wearable under boots, and the corset isn't supposed to be wearable over a harness (not to mention another corset ?)

 

 

Yep, sure! ?

 

45 minutes ago, UnEvenSteven said:

I think the Boxbinder Suit wouldn't work very well as it stands right now, it'll conflict with too many devices such as corsets/harnesses and even boots due the Biped slots being used. If you're going to include the Boxbinder it should be a non-suit version for now, at least until some slot conflicts can be resolved. Then again since I don't think arms can be hidden without using a modified body, such as straitjackets do, you may have to use the suit version.

 

Also @Kimy did you miss my post here regarding the Pet Suit and adding Keywords to regular, non-dress straitjackets to allow vaginal and anal sex?

 

@Racoonity When you're checking all your BodySlide files be sure to add the new sliders to the current DD Framework CBBE and DD Framework UUNP SliderGroup files. I created those for DD5 so people only have to select and build a single group now. Previous versions of DD has several groups to build and may have contributed to the many reports of invisible devices.

 

 

 

 

Unless you mean a DD conflict, in that case you may be right, but I thought I managed to fix it with keywords... I'll check it again. ?

Link to comment

It's Kimy's decision on how she wants to proceed with the Boxbinder. If she is fine with the suit version blocking corsets/harnesses and boots then so be it.

 

Or do away with the corset and stocking-boots portion and keep just the Boxbinder but implement it similar to the Pet Suit. This would unfortunately block catsuits and hobble dresses since the Boxbinder would be considered a suit.

 

That or an animator comes forwards and creates new animation sets for the Boxbinder that would position the arms in such a way that would hide them inside the binder. Then it could be implemented the same way as armbinders. Don't think there's a chance of that happening, though.

 

Or different option (concept only!):

Spoiler

BoxJacketConcept.png.fc8958744799a91ca5928cdc5be02239.png

 

The Boxbinder Jacket, still a suit but like the current straitjacket wouldn't block devices except for other suits. Though there might already be too many straitjacket-type variants, some fool had to go and make them all....?

Link to comment
2 hours ago, Kimy said:

Small change of plans. I am going to release DD 5.1 today, as I got made aware of a critical bug that needs immediate fixing (it has the potential to destroy items in your inventory). Development for version 5.2 will seamlessly continue though. I will merge all new devices currently worked on in 5.2.

 

Talking about the new devices - do testers deem them ready to go into the framework or do they need tweaking and/or more testing?

 

I have the following new/updated devices on my list:

 

- New Boxbinder

- New Boxbinder Suit

- Updated Armbinders

- Updated Catsuit

- Updated Petsuit

- Patch for the ESM changing priorities of restrictive boots

- Potentially more Kziid devices, depending on whether or not they're covered by the permissions given (I still need to figure that out).

 

As a small request to anyone contributing new/updated devices: It would be super awesome if the files would be ready to merge as is, e.g. patched files having the same filenames and external and internal paths as the files they are supposed to overwrite, and any Bodyslide files such as slider sets also be separated for CBBE and UUNP (not providing both slider sets in the same file - because the DD installer will install -either- CBBE -or- UUNP depending on user choice, but never both). This will reduce the potential for me accidentally messing up things when merging them (I have a track record of doing that....) and make it generally easier and faster for me to merge the files. Thanks! :)

I can seperate them out tonight and add them to the correct groups you specified.

Link to comment
12 minutes ago, NIND (jimmyyu) said:

I can seperate them out tonight and add them to the correct groups you specified.

 

I'm already on it, but thanks ?

 

Edit: but I just realized you were probably talking about your armbinders ?

Link to comment
33 minutes ago, UnEvenSteven said:

It's Kimy's decision on how she wants to proceed with the Boxbinder. If she is fine with the suit version blocking corsets/harnesses and boots then so be it.

 

Or do away with the corset and stocking-boots portion and keep just the Boxbinder but implement it similar to the Pet Suit. This would unfortunately block catsuits and hobble dresses since the Boxbinder would be considered a suit.

 

That or an animator comes forwards and creates new animation sets for the Boxbinder that would position the arms in such a way that would hide them inside the binder. Then it could be implemented the same way as armbinders. Don't think there's a chance of that happening, though.

 

Or different option (concept only!):

  Hide contents

BoxJacketConcept.png.fc8958744799a91ca5928cdc5be02239.png

 

The Boxbinder Jacket, still a suit but like the current straitjacket wouldn't block devices except for other suits. Though there might already be too many straitjacket-type variants, some fool had to go and make them all....?

That looks very nice I must say :) 

Link to comment
42 minutes ago, UnEvenSteven said:

It's Kimy's decision on how she wants to proceed with the Boxbinder. If she is fine with the suit version blocking corsets/harnesses and boots then so be it.

 

I had actually planned to add both variants. The suit can block any slots it requires. The SJ does the same, really.

 


Love the boxbinder jacket btw! :)

 

Link to comment
1 hour ago, UnEvenSteven said:

It's Kimy's decision on how she wants to proceed with the Boxbinder. If she is fine with the suit version blocking corsets/harnesses and boots then so be it.

 

Or do away with the corset and stocking-boots portion and keep just the Boxbinder but implement it similar to the Pet Suit. This would unfortunately block catsuits and hobble dresses since the Boxbinder would be considered a suit.

 

That or an animator comes forwards and creates new animation sets for the Boxbinder that would position the arms in such a way that would hide them inside the binder. Then it could be implemented the same way as armbinders. Don't think there's a chance of that happening, though.

 

Or different option (concept only!):

  Reveal hidden contents

BoxJacketConcept.png.fc8958744799a91ca5928cdc5be02239.png

 

The Boxbinder Jacket, still a suit but like the current straitjacket wouldn't block devices except for other suits. Though there might already be too many straitjacket-type variants, some fool had to go and make them all....?

 

29 minutes ago, naaitsab said:

That looks very nice I must say :) 

 

I agree ?
Besides, I just checked the BB outfit in game: when trying to equip any possible slot-conflicting device on it, the aforementioned device won't show any message box, good;
problems come when doing the opposite thing... The BB outfit will just stop showing on the character. ?

I'll upload the reorganized BS files for the separated BB as well as the outfit one: so you can choose or fix anything you like, @Kimy,

 

Quote

 The Boxbinder Jacket, still a suit but like the current straitjacket wouldn't block devices except for other suits. Though there might already be too many straitjacket-type variants, some fool had to go and make them all....?

 

Well, I'm the fool who made a transparent catsuit version of the three catsuit straitjackets, for the next-still-to-be-released-update of  "THE RUBBER FACILITYmod ?, but even I could see the madness of your awesome plan. ? (Sheogorath would be pleased, btw)

Although, if @Kimy wants, I could start trying to make the basic ones and maybe, splitting the work with @NIND (jimmyyu), if he agrees as well, we could make them all... ?

Link to comment
17 minutes ago, Kimy said:

 

I had actually planned to add both variants. The suit can block any slots it requires. The SJ does the same, really.

 


Love the boxbinder jacket btw! :)

 

 

1 minute ago, Racoonity said:

Besides, I just checked the BB outfit in game: when trying to equip any possible slot-conflicting device on it, the aforementioned device won't show any message box, good;
problems come when doing the opposite thing... The BB outfit will just stop showing on the character. 

 

@Kimy, do you have any idea how to fix this?

Link to comment
10 hours ago, Racoonity said:

Besides, I just checked the BB outfit in game: when trying to equip any possible slot-conflicting device on it, the aforementioned device won't show any message box, good;
problems come when doing the opposite thing... The BB outfit will just stop showing on the character. ?

Skyrim itself does a slot check (so no 2 body slots can be worn at once). I believe DD does this based on keywords. You can try setting the boxbinder as an armbinder (slot and keyword) and try a body suit then. It should work if the binder itself does not contain a body (like the armbinder) if it does it will still collide

Link to comment
1 hour ago, naaitsab said:

Skyrim itself does a slot check (so no 2 body slots can be worn at once). I believe DD does this based on keywords. You can try setting the boxbinder as an armbinder (slot and keyword) and try a body suit then. It should work if the binder itself does not contain a body (like the armbinder) if it does it will still collide

 

The problem is that the boxbinder does need its own body, otherwise arms will show.
I can't even use the partition / priorities trick here, since it would require painting them for the base naked body again and force all players to use it ?, but that's definitely not a solution...
That's another reason why I made a full outfit, other than the knee clipping.

 

Link to comment
8 minutes ago, Racoonity said:

 

The problem is that the boxbinder does need its own body, otherwise arms will show.
I can't even use the partition / priorities trick here, since it would require painting them for the base naked body again and force all players to use it ?, but that's definitely not a solution...
That's another reason why I made a full outfit.

 

Hmm, perhaps you can use scripting to hide certain parts of the body? Like with node scaling in NiOverride. At least I think that is what's done in this mod:

 

 

Link to comment
7 minutes ago, naaitsab said:

Hmm, perhaps you can use scripting to hide certain parts of the body? Like with node scaling in NiOverride. At least I think that is what's done in this mod:

 

 

 

Well, scripting is a bit out of my reach... ?

Maybe @Kimy will know what to do.

Link to comment
7 minutes ago, Racoonity said:

 

Well, scripting is a bit out of my reach... ?

Maybe @Kimy will know what to do.

To each their own ;)  I've checked the code and it seems to be quite straightforward (Skyrim beeing Skyrim this propably won't be true ?)

 

I've added to code as reference, from what I can see is that different body nodes are forced to 0 so are hidden. Exactly what we need in this usecase.

It also included leg/feet parts but these might come in handy to keep as a possibility for future devices.

 

Spoiler

Scriptname AmputatorMorphScript extends Quest  
String Property SLT_KEY = "Amputator.esp" AutoReadOnly

; NiNodes

string Property NINODE_RIGHT_UpperarmTwist1 = "NPC R UpperarmTwist1 [RUt1]" AutoReadOnly
string Property NINODE_LEFT_UpperarmTwist1= "NPC L UpperarmTwist1 [LUt1]" AutoReadOnly

string Property NINODE_RIGHT_Upperarm = "NPC R UpperArm [RUar]" AutoReadOnly
string Property NINODE_LEFT_Upperarm= "NPC L UpperArm [LUar]" AutoReadOnly

string Property NINODE_RIGHT_UpperarmTwist2 = "NPC R UpperarmTwist2 [RUt2]" AutoReadOnly
string Property NINODE_LEFT_UpperarmTwist2= "NPC L UpperarmTwist2 [LUt2]" AutoReadOnly

string Property NINODE_RIGHT_Forearm = "NPC R Forearm [RLar]" AutoReadOnly
string Property NINODE_LEFT_Forearm = "NPC L Forearm [LLar]" AutoReadOnly

string Property NINODE_RIGHT_ForearmTwist1 = "NPC R ForearmTwist1 [RLt1]" AutoReadOnly
string Property NINODE_LEFT_ForearmTwist1 = "NPC L ForearmTwist1 [LLt1]" AutoReadOnly

string Property NINODE_RIGHT_Calf = "NPC R Calf [RClf]" AutoReadOnly
string Property NINODE_LEFT_Calf = "NPC L Calf [LClf]" AutoReadOnly

string Property NINODE_RIGHT_Thigh = "NPC R Thigh [RThg]" AutoReadOnly
string Property NINODE_LEFT_Thigh = "NPC L Thigh [LThg]" AutoReadOnly

string Property NINODE_RIGHT_Hand = "NPC R Hand [RHnd]" AutoReadOnly
string Property NINODE_LEFT_Hand = "NPC L Hand [LHnd]" AutoReadOnly

string Property NINODE_RIGHT_Foot = "NPC R Foot [Rft ]" AutoReadOnly
string Property NINODE_LEFT_Foot = "NPC L Foot [Lft ]" AutoReadOnly


Float Property Weight = 0.0 Auto

Function ResetAllLimbs(Actor akActor)


	SetNodeScale(akActor,NINODE_RIGHT_UpperarmTwist2, 1)
	SetNodeScale(akActor,NINODE_LEFT_UpperarmTwist2, 1)

	SetNodeScale(akActor,NINODE_RIGHT_Forearm, 1)
	SetNodeScale(akActor,NINODE_LEFT_Forearm, 1)

	SetNodeScale(akActor,NINODE_RIGHT_Calf, 1)
	SetNodeScale(akActor,NINODE_LEFT_Calf , 1)

	SetNodeScale(akActor,NINODE_RIGHT_Thigh, 1)
	SetNodeScale(akActor,NINODE_LEFT_Thigh, 1)
	SetNodeScale(akActor,NINODE_RIGHT_Hand, 1)
	SetNodeScale(akActor,NINODE_LEFT_Hand, 1)
	SetNodeScale(akActor,NINODE_RIGHT_Foot, 1)
	SetNodeScale(akActor,NINODE_LEFT_Foot , 1)
	SetNodeScale(akActor,NINODE_RIGHT_Upperarm, 1)
	SetNodeScale(akActor,NINODE_LEFT_Upperarm, 1)


EndFunction



Function MorphActor(Actor akActor , int morphType,int LeftRight)


	

	if(morphType == 0)
	 ResetAllLimbs(akactor)

	elseif(morphType == 1)
	; FEET
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Foot, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Foot , 0)
	endif
	elseif(morphType == 2)
	; LOWER LEGS
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Calf, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Calf , 0)
	endif
	elseif(morphType == 3)
	 ; UPPER LEGS
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Thigh, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Thigh, 0)
	endif
	elseif(morphType == 4)
	 ; HANDS
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Hand, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Hand, 0)
	endif
	elseif(morphType == 5)
	 ;FOREARM
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Forearm, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Forearm, 0)
	endif
	elseif(morphType == 6)
	 ;UPPERARM
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Upperarm, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Upperarm, 0)
	endif
	Endif


	NiOverride.UpdateModelWeight(akActor)

EndFunction



Function RemoveNodeTransforms(Actor akActor, bool isFemale, string nodeName)
	NiOverride.RemoveNodeTransformScale(akActor, false, isFemale, nodeName, SLT_KEY)
	NiOverride.RemoveNodeTransformScale(akActor, true, isFemale, nodeName, SLT_KEY)

EndFunction

Function SetNodeScale(Actor akActor, string nodeName, float value)
	bool isFemale = false
	if(akActor.GetActorBase().GetSex() == 1)
	isFemale = true
	endif

	If value != 1.0
		NiOverride.AddNodeTransformScale(akActor, false, isFemale, nodeName, SLT_KEY, value)
		NiOverride.AddNodeTransformScale(akActor, true, isFemale, nodeName, SLT_KEY, value)
	Else
		NiOverride.RemoveNodeTransformScale(akActor, false, isFemale, nodeName, SLT_KEY)
		NiOverride.RemoveNodeTransformScale(akActor, true, isFemale, nodeName, SLT_KEY)
	Endif
	NiOverride.UpdateNodeTransform(akActor, false, isFemale, nodeName)
	NiOverride.UpdateNodeTransform(akActor, true, isFemale, nodeName)
EndFunction

float Function GetNodeScale(Actor akActor, bool isFemale, string nodeName)
	return NiOverride.GetNodeTransformScale(akActor, false, isFemale, nodeName, SLT_KEY)
EndFunction

 

 

Link to comment

@Kimy, I'm done checking and separating! ?

 

As @UnEvenSteven suggested, I added them to the Framework Slider Groups. ?

 

I think that the "UUNP DeviouslyCursedLoot.xml" Slider Group in DCL may be kind of redundant, since it has DD as requirement, so you may want to delete it. ?

Or I could change it so it contains the DCL exclusive BS files, instead. ?

 

 

 

DD Racoonity.7z

Link to comment
1 hour ago, naaitsab said:

To each their own ;)  I've checked the code and it seems to be quite straightforward (Skyrim beeing Skyrim this propably won't be true ?)

 

I've added to code as reference, from what I can see is that different body nodes are forced to 0 so are hidden. Exactly what we need in this usecase.

It also included leg/feet parts but these might come in handy to keep as a possibility for future devices.

 

  Reveal hidden contents


Scriptname AmputatorMorphScript extends Quest  
String Property SLT_KEY = "Amputator.esp" AutoReadOnly

; NiNodes

string Property NINODE_RIGHT_UpperarmTwist1 = "NPC R UpperarmTwist1 [RUt1]" AutoReadOnly
string Property NINODE_LEFT_UpperarmTwist1= "NPC L UpperarmTwist1 [LUt1]" AutoReadOnly

string Property NINODE_RIGHT_Upperarm = "NPC R UpperArm [RUar]" AutoReadOnly
string Property NINODE_LEFT_Upperarm= "NPC L UpperArm [LUar]" AutoReadOnly

string Property NINODE_RIGHT_UpperarmTwist2 = "NPC R UpperarmTwist2 [RUt2]" AutoReadOnly
string Property NINODE_LEFT_UpperarmTwist2= "NPC L UpperarmTwist2 [LUt2]" AutoReadOnly

string Property NINODE_RIGHT_Forearm = "NPC R Forearm [RLar]" AutoReadOnly
string Property NINODE_LEFT_Forearm = "NPC L Forearm [LLar]" AutoReadOnly

string Property NINODE_RIGHT_ForearmTwist1 = "NPC R ForearmTwist1 [RLt1]" AutoReadOnly
string Property NINODE_LEFT_ForearmTwist1 = "NPC L ForearmTwist1 [LLt1]" AutoReadOnly

string Property NINODE_RIGHT_Calf = "NPC R Calf [RClf]" AutoReadOnly
string Property NINODE_LEFT_Calf = "NPC L Calf [LClf]" AutoReadOnly

string Property NINODE_RIGHT_Thigh = "NPC R Thigh [RThg]" AutoReadOnly
string Property NINODE_LEFT_Thigh = "NPC L Thigh [LThg]" AutoReadOnly

string Property NINODE_RIGHT_Hand = "NPC R Hand [RHnd]" AutoReadOnly
string Property NINODE_LEFT_Hand = "NPC L Hand [LHnd]" AutoReadOnly

string Property NINODE_RIGHT_Foot = "NPC R Foot [Rft ]" AutoReadOnly
string Property NINODE_LEFT_Foot = "NPC L Foot [Lft ]" AutoReadOnly


Float Property Weight = 0.0 Auto

Function ResetAllLimbs(Actor akActor)


	SetNodeScale(akActor,NINODE_RIGHT_UpperarmTwist2, 1)
	SetNodeScale(akActor,NINODE_LEFT_UpperarmTwist2, 1)

	SetNodeScale(akActor,NINODE_RIGHT_Forearm, 1)
	SetNodeScale(akActor,NINODE_LEFT_Forearm, 1)

	SetNodeScale(akActor,NINODE_RIGHT_Calf, 1)
	SetNodeScale(akActor,NINODE_LEFT_Calf , 1)

	SetNodeScale(akActor,NINODE_RIGHT_Thigh, 1)
	SetNodeScale(akActor,NINODE_LEFT_Thigh, 1)
	SetNodeScale(akActor,NINODE_RIGHT_Hand, 1)
	SetNodeScale(akActor,NINODE_LEFT_Hand, 1)
	SetNodeScale(akActor,NINODE_RIGHT_Foot, 1)
	SetNodeScale(akActor,NINODE_LEFT_Foot , 1)
	SetNodeScale(akActor,NINODE_RIGHT_Upperarm, 1)
	SetNodeScale(akActor,NINODE_LEFT_Upperarm, 1)


EndFunction



Function MorphActor(Actor akActor , int morphType,int LeftRight)


	

	if(morphType == 0)
	 ResetAllLimbs(akactor)

	elseif(morphType == 1)
	; FEET
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Foot, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Foot , 0)
	endif
	elseif(morphType == 2)
	; LOWER LEGS
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Calf, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Calf , 0)
	endif
	elseif(morphType == 3)
	 ; UPPER LEGS
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Thigh, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Thigh, 0)
	endif
	elseif(morphType == 4)
	 ; HANDS
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Hand, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Hand, 0)
	endif
	elseif(morphType == 5)
	 ;FOREARM
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Forearm, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Forearm, 0)
	endif
	elseif(morphType == 6)
	 ;UPPERARM
	If(LeftRight == 2 )
	SetNodeScale(akActor,NINODE_RIGHT_Upperarm, 0)
	else
	SetNodeScale(akActor,NINODE_LEFT_Upperarm, 0)
	endif
	Endif


	NiOverride.UpdateModelWeight(akActor)

EndFunction



Function RemoveNodeTransforms(Actor akActor, bool isFemale, string nodeName)
	NiOverride.RemoveNodeTransformScale(akActor, false, isFemale, nodeName, SLT_KEY)
	NiOverride.RemoveNodeTransformScale(akActor, true, isFemale, nodeName, SLT_KEY)

EndFunction

Function SetNodeScale(Actor akActor, string nodeName, float value)
	bool isFemale = false
	if(akActor.GetActorBase().GetSex() == 1)
	isFemale = true
	endif

	If value != 1.0
		NiOverride.AddNodeTransformScale(akActor, false, isFemale, nodeName, SLT_KEY, value)
		NiOverride.AddNodeTransformScale(akActor, true, isFemale, nodeName, SLT_KEY, value)
	Else
		NiOverride.RemoveNodeTransformScale(akActor, false, isFemale, nodeName, SLT_KEY)
		NiOverride.RemoveNodeTransformScale(akActor, true, isFemale, nodeName, SLT_KEY)
	Endif
	NiOverride.UpdateNodeTransform(akActor, false, isFemale, nodeName)
	NiOverride.UpdateNodeTransform(akActor, true, isFemale, nodeName)
EndFunction

float Function GetNodeScale(Actor akActor, bool isFemale, string nodeName)
	return NiOverride.GetNodeTransformScale(akActor, false, isFemale, nodeName, SLT_KEY)
EndFunction

 

 

If you do go that route, keep in mind that in SE if you set a node to 0 it can cause issues with physics bodies.  We figured out, though, that if you SetNodeScale using a value of 0.01 (instead of 0) you get essentially the same result, but no issues with physics bodies.  The Amputator Tweaked files that Monoman1 maintains incorporates this change and makes it more compatible (script-wise with both LE and SE).

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