ousnius Posted August 28, 2016 Posted August 28, 2016 Patch for Beeing Female? Alright, once again let me know if this works, because once again I didn't even launch the game. You have to reset the mod and choose "Visual Scaling Type #5" in the MCM menu. I didn't add translations so it will show up as dollar signs. Max of the belly and breasts should be 1.0 or so. EDIT: New file below.
Nepro Posted August 28, 2016 Posted August 28, 2016 Patch for Beeing Female? Alright, once again let me know if this works, because once again I didn't even launch the game. You have to reset the mod and choose "Visual Scaling Type #5" in the MCM menu. I didn't add translations so it will show up as dollar signs. Max of the belly and breasts should be 1.0 or so. I need sexlab inflation framework for this to work?
ousnius Posted August 28, 2016 Posted August 28, 2016 Patch for Beeing Female? Alright, once again let me know if this works, because once again I didn't even launch the game. You have to reset the mod and choose "Visual Scaling Type #5" in the MCM menu. I didn't add translations so it will show up as dollar signs. Max of the belly and breasts should be 1.0 or so. I need sexlab inflation framework for this to work? You only need what BeeingFemale needs. Check its mod page. EDIT: Well and RaceMenu with a body with morphs. Attached a new version, I forgot a line of code but I don't know if it mattered. BeeingFemale 2.7.2 - NiO Body Morphs 2.7z
Isenia Posted August 28, 2016 Posted August 28, 2016 Could you by any chance do Soulgem oven too? Also maybe you could tell us exactly how to make a mod use this scaling (in a tutorial kinda way) for future reference, so any mod that comes can use it, or we can convert it ourselves?
ousnius Posted August 28, 2016 Posted August 28, 2016 Could you by any chance do Soulgem oven too? Also maybe you could tell us exactly how to make a mod use this scaling (in a tutorial kinda way) for future reference, so any mod that comes can use it, or we can convert it ourselves? All you have to do is replace something like NiOverride.AddNodeTransformScale(actor, false, true, "NPC Belly", "UniqueKeyOfTheMod", bellyScale) with NiOverride.SetBodyMorph(actor, "PregnancyBelly", "UniqueKeyOfTheMod", bellyScale) NiOverride.UpdateModelWeight(actor) Of course you have to take in mind how the rest of the script works, adjust default values or some math.
feral Posted August 28, 2016 Author Posted August 28, 2016 It work aboslutely fine, produces beautiful bellies, BUT, with both fill her up and egg factory, it quite literally breaks my characters dick (https://gyazo.com/580e592e9edaffe3124c80fdcf4536d2), but that only occurs when I use a schlong which "sticks" to the belly, supposedly to enable belly scaling, so I can use a version without that, it just clips a bit, but worth for that pretty belly, thank you very much for this mod!<3 Glad it works. Yeah maybe the schlong expects the belly to be scaled with bones instead of morphs. I've noticed that sometimes with the body morph that it will scale other parts of the body too. In bodyslide with Caliente's HDT body the breasts will scale slightly with the pregnant belly morph at the upper end of the scale. It's hardly noticeable unless you watch for it specifically. That might be the case for their penis model.
qotsafan Posted August 29, 2016 Posted August 29, 2016 Hey feral, as of right now, those patches are NOT compatible with SexLab Inflation Framework, just wanted to let you know I'm trying to incorporate those changes into my framework as optional scaling, but I'm having some issues right now. All you have to do is replace something like NiOverride.AddNodeTransformScale(actor, false, true, "NPC Belly", "UniqueKeyOfTheMod", bellyScale)with NiOverride.SetBodyMorph(actor, "PregnancyBelly", "UniqueKeyOfTheMod", bellyScale) NiOverride.UpdateModelWeight(actor)Of course you have to take in mind how the rest of the script works, adjust default values or some math. I did that, but I must be doing something wrong, as the following video shows:
ousnius Posted August 29, 2016 Posted August 29, 2016 Hey feral, as of right now, those patches are NOT compatible with SexLab Inflation Framework, just wanted to let you know I'm trying to incorporate those changes into my framework as optional scaling, but I'm having some issues right now. All you have to do is replace something like NiOverride.AddNodeTransformScale(actor, false, true, "NPC Belly", "UniqueKeyOfTheMod", bellyScale)with NiOverride.SetBodyMorph(actor, "PregnancyBelly", "UniqueKeyOfTheMod", bellyScale) NiOverride.UpdateModelWeight(actor)Of course you have to take in mind how the rest of the script works, adjust default values or some math. I did that, but I must be doing something wrong. I'm assuming the math is wrong then. While node scaling is "off" at a value of 1.0 (1.0 * 1.0 = 1.0), morphs are off at a value of 0.0 and should be maxed at a value of 1.0. So, your node scale could be going from 1.0 to 10.0, but the morph should be going from 0.0 to 1.0. Did you check the "SetMorphValue" function I added to all the scripts I uploaded above?
qotsafan Posted August 29, 2016 Posted August 29, 2016 I'm assuming the math is wrong then. While node scaling is "off" at a value of 1.0 (1.0 * 1.0 = 1.0), morphs are off at a value of 0.0 and should be maxed at a value of 1.0. So, your node scale could be going from 1.0 to 10.0, but the morph should be going from 0.0 to 1.0. Did you check the "SetMorphValue" function I added to all the scripts I uploaded above? Yes, I have taken a look at your functions, but I'm not quite sure how you are calculating the values. My code looks like this at the moment, assuming the values go from 0.0000001 to 100.0: (0.0000001 as safety, that nodes do not vanish) string function SetMorphName(String node) global if (node == "NPC Belly") return "PregnancyBelly" elseIf (node == "NPC L Breast" || node == "NPC R Breast") return "Breasts" endIf return "" endFunction bool function UseBodymorphs(String morphName) global return morphName != "" && SLIF_Config.GetInt("use_bodymorphs_instead") as bool endFunction function SetNodeTransformScale(Actor kActor, String node, String modName, float value, bool firstPerson, bool isFemale) global String morphName = SetMorphName(node) if (UseBodymorphs(morphName)) If value != SLIF_Util.AbsoluteZero() NiOverride.SetBodyMorph(kActor, morphName, modName, value) Else NiOverride.ClearBodyMorph(kActor, morphName, modName) EndIf If (kActor.Is3DLoaded()) NiOverride.UpdateModelWeight(kActor) EndIf If (NiOverride.HasNodeTransformScale(kActor, firstPerson, isFemale, node, modName)) NiOverride.RemoveNodeTransformScale(kActor, firstPerson, isFemale, node, modName) If (kActor.Is3DLoaded()) NiOverride.UpdateNodeTransform(kActor, firstPerson, isFemale, node) EndIf endIf else If (NetImmerse.HasNode(kActor, node, firstPerson)) If value != 1.0 NiOverride.AddNodeTransformScale(kActor, firstPerson, isFemale, node, modName, value) Else NiOverride.RemoveNodeTransformScale(kActor, firstPerson, isFemale, node, modName) Endif If (kActor.Is3DLoaded()) NiOverride.UpdateNodeTransform(kActor, firstPerson, isFemale, node) EndIf If (morphName != "") If (NiOverride.HasBodyMorph(kActor, morphName, modName)) NiOverride.ClearBodyMorph(kActor, morphName, modName) If (kActor.Is3DLoaded()) NiOverride.UpdateModelWeight(kActor) EndIf EndIf EndIf Endif Endif endFunction I tried dividing the value by 100, but now it's barely scaling at all.
ousnius Posted August 29, 2016 Posted August 29, 2016 I'm assuming the math is wrong then. While node scaling is "off" at a value of 1.0 (1.0 * 1.0 = 1.0), morphs are off at a value of 0.0 and should be maxed at a value of 1.0. So, your node scale could be going from 1.0 to 10.0, but the morph should be going from 0.0 to 1.0. Did you check the "SetMorphValue" function I added to all the scripts I uploaded above? Yes, I have taken a look at your functions, but I'm not quite sure how you are calculating the values. My code looks like this at the moment, assuming the values go from 0.0000001 to 100.0: (0.0000001 as safety, that nodes do not vanish) string function SetMorphName(String node) global if (node == "NPC Belly") return "PregnancyBelly" elseIf (node == "NPC L Breast" || node == "NPC R Breast") return "Breasts" endIf return "" endFunction bool function UseBodymorphs(String morphName) global return morphName != "" && SLIF_Config.GetInt("use_bodymorphs_instead") as bool endFunction function SetNodeTransformScale(Actor kActor, String node, String modName, float value, bool firstPerson, bool isFemale) global String morphName = SetMorphName(node) if (UseBodymorphs(morphName)) If value != SLIF_Util.AbsoluteZero() NiOverride.SetBodyMorph(kActor, morphName, modName, value) Else NiOverride.ClearBodyMorph(kActor, morphName, modName) EndIf If (kActor.Is3DLoaded()) NiOverride.UpdateModelWeight(kActor) EndIf If (NiOverride.HasNodeTransformScale(kActor, firstPerson, isFemale, node, modName)) NiOverride.RemoveNodeTransformScale(kActor, firstPerson, isFemale, node, modName) If (kActor.Is3DLoaded()) NiOverride.UpdateNodeTransform(kActor, firstPerson, isFemale, node) EndIf endIf else If (NetImmerse.HasNode(kActor, node, firstPerson)) If value != 1.0 NiOverride.AddNodeTransformScale(kActor, firstPerson, isFemale, node, modName, value) Else NiOverride.RemoveNodeTransformScale(kActor, firstPerson, isFemale, node, modName) Endif If (kActor.Is3DLoaded()) NiOverride.UpdateNodeTransform(kActor, firstPerson, isFemale, node) EndIf If (morphName != "") If (NiOverride.HasBodyMorph(kActor, morphName, modName)) NiOverride.ClearBodyMorph(kActor, morphName, modName) If (kActor.Is3DLoaded()) NiOverride.UpdateModelWeight(kActor) EndIf EndIf EndIf Endif Endif endFunction I tried dividing the value by 100, but now it's barely scaling at all. That part of the script looks correct to me. The issue must be where you call SetNodeTransformScale() then, not in the function itself. Can you show me the entire script (or link me where I can download it)?
qotsafan Posted August 29, 2016 Posted August 29, 2016 That part of the script looks correct to me. The issue must be where you call SetNodeTransformScale() then, not in the function itself. Can you show me the entire script (or link me where I can download it)? Well, it's actually three scripts: SLIF_Scale provides the functions for scaling SLIF_Util does most of the Math and calls the SLIF_Scale functions SLIF_Main calls the functions from SLIF_Util They are uploaded nowhere, since I'm still working on them. SLIF_Math.SetBounds() if needed: float function SetBounds(float value, float minimum, float maximum) global float tempMin = MinFloat(minimum, maximum) float tempMax = MaxFloat(minimum, maximum) if (value < tempMin) return tempMin endIf if (value > tempMax) return tempMax endIf return value endFunction Source.zip
ousnius Posted August 29, 2016 Posted August 29, 2016 That part of the script looks correct to me. The issue must be where you call SetNodeTransformScale() then, not in the function itself. Can you show me the entire script (or link me where I can download it)? Well, it's actually three scripts: SLIF_Scale provides the functions for scaling SLIF_Util does most of the Math and calls the SLIF_Scale functions SLIF_Main calls the functions from SLIF_Util They are uploaded nowhere, since I'm still working on them. AbsoluteZero() needs to be 0.0 for morphs, not 0.0000001 (just use 0.0 instead of AbsoluteZero() in the morphs part). SLIF_Util.psc:607 needs to be a value of 0.0 instead of 1.0 when morphs are enabled. "value = SLIF_Math.SetBounds(value, AbsoluteZero(), 100.0)" Needs to be 0.0 when morphs are enabled, no AbsoluteZero(). "StorageUtil.GetFloatValue(kActor, "All Mods" + sKey, 1.0)" Needs to be 0.0 when morphs are enabled, not 1.0. Not sure why the breasts would shrink infinitely though.
qotsafan Posted August 29, 2016 Posted August 29, 2016 AbsoluteZero() needs to be 0.0 for morphs, not 0.0000001 (just use 0.0 instead of AbsoluteZero() in the morphs part). SLIF_Util.psc:607 needs to be a value of 0.0 instead of 1.0 when morphs are enabled. "value = SLIF_Math.SetBounds(value, AbsoluteZero(), 100.0)" Needs to be 0.0 when morphs are enabled, no AbsoluteZero(). "StorageUtil.GetFloatValue(kActor, "All Mods" + sKey, 1.0)" Needs to be 0.0 when morphs are enabled, not 1.0. Not sure why the breasts would shrink infinitely though. Well, the 0.0000001 is a safeguard for NiOverride, to avoid scales vanishing forever, but I guess I could change is for morphs. will change the minimum for these cases though. The belly seems to be working fine, the breasts are shrinking instead of growing.
ousnius Posted August 29, 2016 Posted August 29, 2016 AbsoluteZero() needs to be 0.0 for morphs, not 0.0000001 (just use 0.0 instead of AbsoluteZero() in the morphs part). SLIF_Util.psc:607 needs to be a value of 0.0 instead of 1.0 when morphs are enabled. "value = SLIF_Math.SetBounds(value, AbsoluteZero(), 100.0)" Needs to be 0.0 when morphs are enabled, no AbsoluteZero(). "StorageUtil.GetFloatValue(kActor, "All Mods" + sKey, 1.0)" Needs to be 0.0 when morphs are enabled, not 1.0. Not sure why the breasts would shrink infinitely though. Well, the 0.0000001 is a safeguard for NiOverride, to avoid scales vanishing forever, but I guess I could change is for morphs. will change the minimum for these cases though. The belly seems to be working fine, the breasts are shrinking instead of growing. Maybe it has something to do with the counter-scaling of the secondary breast bones (TBBP) ?
feral Posted August 29, 2016 Author Posted August 29, 2016 Could it be possible that there is a conflict somewhere in the script, since the SLIF currently works by scaling nodes, and each breast having two bones; could that be part of the problem somehow? Also I made corrections to the first page.
qotsafan Posted August 29, 2016 Posted August 29, 2016 Could it be possible that there is a conflict somewhere in the script, since the SLIF currently works by scaling nodes, and each breast having two bones; could that be part of the problem somehow? Also I made corrections to the first page. Nah, I don't think that makes a difference, since it would do the same thing, just twice. SLIF is still stated as a requirement on the front page.
feral Posted August 29, 2016 Author Posted August 29, 2016 Could it be possible that there is a conflict somewhere in the script, since the SLIF currently works by scaling nodes, and each breast having two bones; could that be part of the problem somehow? Also I made corrections to the first page. Nah, I don't think that makes a difference, since it would do the same thing, just twice. SLIF is still stated as a requirement on the front page. I forgot about that, removed it. Also, I'm sitting here converting an outfit in outfit studio for myself, and I notice that the "breasts" slider shrinks the breasts.
qotsafan Posted August 29, 2016 Posted August 29, 2016 I forgot about that, removed it. Also, I'm sitting here converting an outfit in outfit studio for myself, and I notice that the "breasts" slider shrinks the breasts. It's doing the opposite for me
ousnius Posted August 29, 2016 Posted August 29, 2016 I forgot about that, removed it. Also, I'm sitting here converting an outfit in outfit studio for myself, and I notice that the "breasts" slider shrinks the breasts. It's doing the opposite for me In BodySlide, the slider is inverted. This isn't the case for the morphs file. So in BodySlide, 0% is actually a morph of 1.0, and 100% is actually a morph value of 0.0.
qotsafan Posted August 29, 2016 Posted August 29, 2016 In BodySlide, the slider is inverted. This isn't the case for the morphs file. So in BodySlide, 0% is actually a morph of 1.0, and 100% is actually a morph value of 0.0. Well, for some reason, 0% is small and 100% is big for me. (like it should be :3)
ousnius Posted August 29, 2016 Posted August 29, 2016 In BodySlide, the slider is inverted. This isn't the case for the morphs file. So in BodySlide, 0% is actually a morph of 1.0, and 100% is actually a morph value of 0.0. Well, for some reason, 0% is small and 100% is big for me. (like it should be :3) No, that's not like it should be. It means the COS Body is set up the wrong way and causes your issue with the script, because the morph goes the wrong way. Unless the morph still goes the right way but the sliders are set up differently. Try it again with the normal CBBE Body HDT and see if it works that way. If it works with CBBE, but not COS, then COS is at fault. EDIT: Now you've confused me. Of course 100% being larger than 0% is correct in BodySlide, but it only appears that way because the slider is inverted. So it depends on if the slider is inverted for COS or not, I'm assuming it's correct. So yes, a morph of 1.0 makes the breasts smaller... however negative values aren't supported (-1.0), so you'll have to try different morphs such as "BreastsSH". As I said I didn't test the scripts above myself, so those probably have the same issue for the breasts.
qotsafan Posted August 29, 2016 Posted August 29, 2016 No, that's not like it should be. It means the COS Body is set up the wrong way and causes your issue with the script, because the morph goes the wrong way. Unless the morph still goes the right way but the sliders are set up differently. Try it again with the normal CBBE Body HDT and see if it works that way. If it works with CBBE, but not COS, then COS is at fault. EDIT: Now you've confused me. Of course 100% being larger than 0% is correct in BodySlide, but it only appears that way because the slider is inverted. So it depends on if the slider is inverted for COS or not, I'm assuming it's correct. So yes, a morph of 1.0 makes the breasts smaller... however negative values aren't supported (-1.0), so you'll have to try different morphs such as "BreastsSH". As I said I didn't test the scripts above myself, so those probably have the same issue for the breasts. Hmm, well I have uploaded an alpha version, with the new feature enabled, so maybe that will get some results: SexLab Inflation Framework 0.9.8 alpha
ousnius Posted August 29, 2016 Posted August 29, 2016 No, that's not like it should be. It means the COS Body is set up the wrong way and causes your issue with the script, because the morph goes the wrong way. Unless the morph still goes the right way but the sliders are set up differently. Try it again with the normal CBBE Body HDT and see if it works that way. If it works with CBBE, but not COS, then COS is at fault. EDIT: Now you've confused me. Of course 100% being larger than 0% is correct in BodySlide, but it only appears that way because the slider is inverted. So it depends on if the slider is inverted for COS or not, I'm assuming it's correct. So yes, a morph of 1.0 makes the breasts smaller... however negative values aren't supported (-1.0), so you'll have to try different morphs such as "BreastsSH". As I said I didn't test the scripts above myself, so those probably have the same issue for the breasts. Hmm, well I have uploaded an alpha version, with the new feature enabled, so maybe that will get some results: SexLab Inflation Framework 0.9.8 alpha If you want to go in-depth, you can add a morph selection to the MCM menu, where you can select the morph that will be used for the breast scaling and the morph that will be used for the belly scaling (out of all BodySlide sliders that would make sense for it).
Recommended Posts
Archived
This topic is now archived and is closed to further replies.