Jump to content

[Unofficial] BodyGen - docs


Recommended Posts

Neovalen gave me credits *blushes like a teenager* :blush:

 

Anyway, does anyone know a male body in which you can do the same? I heard SAM could be bodyslided, but it appears to be gone now.

 

I have my curvy redguards, my bulky orcs and my skinny elves females and now my males look all the same race  :-/

 

SAM has gone back behind a registration wall again. You must be a member of HoT to view the files and/or download them.

 

EDIT: Are there still issues with the Race filters? I've not really touched BodyGen before, and I'm re-building my mod list. Would be helpful to know ahead of time.

Link to comment

You're doing the Lords work shoka.

I don't Have Python, or any codey ability, but I understand what you're achieving, nice.

Is there any possibility it could be  converted to a User Friendly GUI/program at some point by you or someone else?

 

Sorry, no. I have no practical knowledge of using a GUI. I believe that it would have to be re-written by someone who knows VB or Java. My code could help someone do it though. Assuming that similar text-processing libraries exist in Java, it should not be that difficult.

 

I am feeling great about the enthusiastic response - I would learn Java and do it, but I really have no time. Life.E

 

Edit: You know what, i will try to see if there is a Python compiler and a basic ready-made command line to GUI interface of sorts. No promises, but I will make anattempt.

Link to comment

 

Here is a Python v2.7 script (Windows) to convert Preset XML files into BodyGen data. It automatically does all the conversion, prints the output, and copies that output to the clipboard automatically. It is working, but I would appreciate some alpha testing. I saw this go horribly wrong with some presets, and I am not sure what is wrong.

So this script puts the BodyGen string into the clipboard? 

 

I also assume that you run the script like so. I named the script BodyGen.py:

 

    BodyGen.py preset.xml --weight=100

 

 

I get nothing, no errors, nothing in the clipboard.

 

 

OK, I was not expecting much when I posted, to be honest.

 

The option should have been "--weight=big". (or "--weight=small") Then it should work.

Link to comment

 

Here is a Python v2.7 script (Windows) to convert Preset XML files into BodyGen data. It automatically does all the conversion, prints the output, and copies that output to the clipboard automatically. It is working, but I would appreciate some alpha testing. I saw this go horribly wrong with some presets, and I am not sure what is wrong.

So this script puts the BodyGen string into the clipboard? 

 

I also assume that you run the script like so. I named the script BodyGen.py:

 

    BodyGen.py preset.xml --weight=100

 

 

I get nothing, no errors, nothing in the clipboard.

 

 

OK, badcock, please see first my previous response.

 

 

 

Now for the next version. Now you *should* be able to use an integer as a weight option. So, enter 75 and you *should* get the body with weigh 75. That's a big "should", though, I have not tested this new code once.

#! python2

import argparse
import os
from bs4 import BeautifulSoup
from Tkinter import Tk

parser = argparse.ArgumentParser(description='Output the BodySlide information in an XML file in BodyGenData format.')
parser.add_argument( "filename", type=str, default="", help="The BodySlide xml file" )
parser.add_argument( "--weight", type=str, default="range", help="Whether you want to extract the (small) weight=0 values, (big) weight=100 values, or a range from 0 to 100. Enter small, big or range." )
args = parser.parse_args()

dictBaseSliders = {}
dictBaseSliders['small'] = {"Ankles":1, "Breasts":0.2, "BreastsSmall":1, "ButtCrack":1, "ButtSmall":1, "NippleDistance":1, "NippleSize":1, "ShoulderWidth":1}
dictBaseSliders['big'] = {"Ankles":1, "Arms":1, "Breasts":1, "BreastsSmall":1, "Butt":1, "ButtCrack":1, "ButtSmall":1, "Legs":1, "NippleDistance":1, "NippleSize":1, "ShoulderWidth":1, "Waist":1}
arrInvertedSliders = [ "Ankles", "Arms", "Breasts", "BreastsSmall", "Butt", "ButtCrack", "ButtSmall", "Legs", "NippleDistance", "NippleSize", "ShoulderWidth" ]

if os.path.isfile(args.filename):
    file = open(args.filename, "r")
    soup = BeautifulSoup(file, "lxml-xml")
    strText = ""
    for set in soup.find_all('Preset'):
        strLine = set.get('name').replace(" ", "") + "="
        dictSlider = {}
        for slider in set.find_all('SetSlider'):
            if slider.get('name') in dictSlider.keys()  :
                dictSlider[slider.get('name')][slider.get('size')] = float(slider.get('value'))/100
            else:
                dictSlider[slider.get('name')] = { slider.get('size'): float(slider.get('value'))/100 }
            # strLine += slider.get('name') + "@" + str(float(slider.get('value'))/100) + ", "
        for size in ['small', 'big']:
            for sliderBase in dictBaseSliders[size]:
                if not sliderBase in dictSlider.keys():
                    dictSlider[sliderBase] = { size: dictBaseSliders[size][sliderBase] }
                elif not size in dictSlider[sliderBase].keys():
                    dictSlider[sliderBase][size] = dictBaseSliders[size][sliderBase]
        for sliderInvert in arrInvertedSliders:
            if sliderInvert in dictSlider.keys():
                for size in ['small', 'big', '']:
                    try:
                        dictSlider[sliderInvert][size] = -dictSlider[sliderInvert][size]
                    except:
                        pass
        for slider in dictSlider:
            if len( dictSlider[slider] )==2 and dictSlider[slider]['small']!=dictSlider[slider]['big']:
                if args.weight=="range":
                    strLine += slider + "@" + str(dictSlider[slider]['small']) + ":" + str(dictSlider[slider]['big']) + ", "
                elif args.weight=="small" or args.weight=="big":
                    strLine += slider + "@" + str(dictSlider[slider][args.weight]) + ", "
                else:
                    strLine += slider + "@" + str(dictSlider[slider]['small']+(dictSlider[slider]['big']-dictSlider[slider]['small'])*(float(args.weight)/100)) + ", "
            else:
                strLine += slider + "@" + str(dictSlider[slider].itervalues().next()) + ", "
        strLine = strLine[:-2]
        if strText=="":
            strText = strLine
        else:
            strText = strText + "\n" + strLine
    print strText
    try:
        r = Tk()
        r.withdraw()
        r.clipboard_clear()
        r.clipboard_append(strText)
    except:
        pass

 

Link to comment

Sadly, the code does not work. It works, but the bodies I get seem to be different from the original bodies from the nexus mods. They tend to have exaggerated breasts - so thought I might be missing an inverted slider or a missing breast-related slider.

 

Zerodomai, this is supposed to emulate exactly what you do in your video with notepad++. Any ideas from looking at the output or my Python code?

 

If this works, I promise to either release output from common bodyslide presets or wrap this in an executable + GUI. It seems that it can be done.

 

Here is the code:

#! python2

import argparse
import os
from bs4 import BeautifulSoup
from Tkinter import Tk

parser = argparse.ArgumentParser(description='Output the BodySlide information in an XML file in BodyGenData format.')
parser.add_argument( "filename", type=str, default="", help="The BodySlide xml file" )
parser.add_argument( "--weight", type=str, default="range", help="--weight=0 --weight=50 --weight=100 --weight=range" )
args = parser.parse_args()

dictBaseSliders = {}
dictBaseSliders['small'] = {"Ankles":1, "Breasts":0.2, "BreastsSmall":1, "ButtCrack":1, "ButtSmall":1, "NippleDistance":1, "NippleSize":1, "ShoulderWidth":1}
dictBaseSliders['big'] = {"Ankles":1, "Arms":1, "Breasts":1, "BreastsSmall":1, "Butt":1, "ButtCrack":1, "ButtSmall":1, "Legs":1, "NippleDistance":1, "NippleSize":1, "ShoulderWidth":1, "Waist":1}
arrInvertedSliders = [ "Ankles", "Arms", "Breasts", "BreastsSmall", "Butt", "ButtCrack", "ButtSmall", "Legs", "NippleDistance", "NippleSize", "ShoulderWidth" ]

if os.path.isfile(args.filename):
    file = open(args.filename, "r")
    soup = BeautifulSoup(file, "lxml-xml")
    strText = ""
    for set in soup.find_all('Preset'):
        strLine = set.get('name').replace(" ", "") + "="
        dictSlider = {}
        for slider in set.find_all('SetSlider'):
            if slider.get('name') in dictSlider.keys()  :
                dictSlider[slider.get('name')][slider.get('size')] = float(slider.get('value'))/100
            else:
                dictSlider[slider.get('name')] = { slider.get('size'): float(slider.get('value'))/100 }
            # strLine += slider.get('name') + "@" + str(float(slider.get('value'))/100) + ", "
        for size in ['small', 'big']:
            for sliderBase in dictBaseSliders[size]:
                if not sliderBase in dictSlider.keys():
                    dictSlider[sliderBase] = { size: dictBaseSliders[size][sliderBase] }
                elif not size in dictSlider[sliderBase].keys():
                    dictSlider[sliderBase][size] = dictBaseSliders[size][sliderBase]
        for sliderInvert in arrInvertedSliders:
            if sliderInvert in dictSlider.keys():
                for size in ['small', 'big', '']:
                    if dictSlider[sliderInvert][size] > 0:
                        try:
                            dictSlider[sliderInvert][size] = -dictSlider[sliderInvert][size]
                        except:
                            pass
        for slider in dictSlider:
            if len( dictSlider[slider] )==2 and dictSlider[slider]['small']!=dictSlider[slider]['big']:
                if args.weight=="range":
                    strLine += slider + "@" + str(dictSlider[slider]['small']) + ":" + str(dictSlider[slider]['big']) + ", "
                elif args.weight=="small" or args.weight=="big":
                    strLine += slider + "@" + str(dictSlider[slider][args.weight]) + ", "
                else:
                    strLine += slider + "@" + str(round(dictSlider[slider]['small']+(dictSlider[slider]['big']-dictSlider[slider]['small'])*(float(args.weight)/100), 2)) + ", "
            else:
                strLine += slider + "@" + str(dictSlider[slider].itervalues().next()) + ", "
        strLine = strLine[:-2]
        if strText=="":
            strText = strLine
        else:
            strText = strText + "\n" + strLine
    print strText
    try:
        r = Tk()
        r.withdraw()
        r.clipboard_clear()
        r.clipboard_append(strText)
    except:
        pass

And here are (false) results:

WenchBody40=ShoulderWidth@-0.46, BreastsSH@0.12, Arms@-0.2, Back@-0.25, NippleDistance@-0.72, KneeHeight@0.65, RoundAss@0.56, NippleTip@0.5, TummyTuck@0.25, NippleSize@-1.4, NippleLength@0.3, Legs@-0.0, Waist@-0.18, ChubbyLegs@0.07, Breasts@-0.72, SlimThighs@-0.56, CalfSmooth@0.65, Hips@-0.3, BreastHeight@0.07, Butt@-0.7, BreastCleavage@0.18, ShoulderSmooth@0.44, BreastGravity@0.392, NipplePerkiness@0.9, AppleCheeks@0.35, ChubbyArms@0.2, BreastPerkiness@0.35, DoubleMelon@0.72, BreastsFantasy@-0.6, NippleUp@-0.27, Thighs@0.248, BigButt@0.14, ChubbyButt@0.84, Groin@-0.95, Ankles@-1, ButtSmall@-0.42, CalfSize@0.65, Hipbone@-0.3, NippleDown@0.3, ChubbyWaist@-0.12, BreastsSmall@-0.72, ButtCrack@-0.25, BigTorso@0.25, BreastWidth@-0.35, BreastsSSH@0.54
WenchBody20=ShoulderWidth@-0.23, BreastsSH@0.10, Arms@-0.2, Back@-0.25, NippleDistance@-0.56, KneeHeight@0.65, RoundAss@0.48, NippleTip@0.5, TummyTuck@0.25, NippleSize@-1.2, NippleLength@0.3, Legs@-0.0, Waist@-0.24, ChubbyLegs@0.06, Breasts@-0.56, SlimThighs@-0.48, CalfSmooth@0.65, Hips@-0.3, BreastHeight@0.21, Butt@-0.6, BreastCleavage@0.14, ShoulderSmooth@0.52, BreastGravity@0.306, NipplePerkiness@0.7, AppleCheeks@0.3, ChubbyArms@0.2, BreastPerkiness@0.35, DoubleMelon@0.56, BreastsFantasy@-0.6, NippleUp@-0.21, Thighs@0.214, BigButt@0.12, ChubbyButt@0.72, Groin@-0.95, Ankles@-1, ButtSmall@-0.36, CalfSize@0.65, Hipbone@-0.3, NippleDown@0.3, ChubbyWaist@-0.21, BreastsSmall@-0.56, ButtCrack@-0.25, BigTorso@0.25, BreastWidth@-0.3, BreastsSSH@0.42
WenchBody00=ShoulderWidth@-0.0, BreastsSH@0.07, Arms@-0.2, Back@-0.25, NippleDistance@-0.4, KneeHeight@0.65, RoundAss@0.4, NippleTip@0.5, TummyTuck@0.25, NippleSize@-1.0, NippleLength@0.3, Legs@-0.0, Waist@-0.3, ChubbyLegs@0.05, Breasts@-0.4, SlimThighs@-0.4, CalfSmooth@0.65, Hips@-0.3, BreastHeight@0.35, Butt@-0.5, BreastCleavage@0.1, ShoulderSmooth@0.6, BreastGravity@0.22, NipplePerkiness@0.5, AppleCheeks@0.25, ChubbyArms@0.2, BreastPerkiness@0.35, DoubleMelon@0.4, BreastsFantasy@-0.6, NippleUp@-0.15, Thighs@0.18, BigButt@0.1, ChubbyButt@0.6, Groin@-0.95, Ankles@-1, ButtSmall@-0.3, CalfSize@0.65, Hipbone@-0.3, NippleDown@0.3, ChubbyWaist@-0.3, BreastsSmall@-0.4, ButtCrack@-0.25, BigTorso@0.25, BreastWidth@-0.25, BreastsSSH@0.3
ALSLBody00=ShoulderWidth@-0.5, Arms@-0.15, CalfSize@0.35, NippleDistance@-0.7, Belly@-0.25, NippleSize@-2.0, Legs@-0.15, CalfSmooth@1.0, Groin@0.5, Breasts@-0.0, BreastFlatness@0.65, AppleCheeks@-0.15, NipplePerkiness@0.25, ChubbyLegs@0.3, ShoulderSmooth@0.5, BreastGravity@0.3, ChubbyArms@0.4, Waist@1.0, BigTorso@0.1, Thighs@0.4, Hips@0.25, ButtSmall@-0.5, Back@0.1, Hipbone@0.25, NippleDown@0.25, BreastsSmall@-0.0, ButtCrack@-0.5, DoubleMelon@0.5, BreastWidth@-0.25, BreastsSSH@0.75
ALSLBody25=ShoulderWidth@-0.5, Arms@-0.15, CalfSize@0.35, NippleDistance@-0.7, Belly@-0.13, NippleSize@-2.0, Legs@-0.15, CalfSmooth@1.0, Groin@0.5, Breasts@-0.0, BreastFlatness@0.65, AppleCheeks@-0.04, NipplePerkiness@0.25, ChubbyLegs@0.3, ShoulderSmooth@0.63, BreastGravity@0.3, ChubbyArms@0.4, Waist@1.0, BigTorso@0.18, Thighs@0.4, Hips@0.25, ButtSmall@-0.5, Back@0.1, Hipbone@0.24, NippleDown@0.25, BreastsSmall@-0.0, ButtCrack@-0.5, DoubleMelon@0.5, BreastWidth@-0.25, BreastsSSH@0.75
ALSLBody50=ShoulderWidth@-0.5, Arms@-0.15, CalfSize@0.35, NippleDistance@-0.7, Belly@0.0, NippleSize@-2.0, Legs@-0.15, CalfSmooth@1.0, Groin@0.5, Breasts@-0.0, BreastFlatness@0.65, AppleCheeks@0.07, NipplePerkiness@0.25, ChubbyLegs@0.3, ShoulderSmooth@0.75, BreastGravity@0.3, ChubbyArms@0.4, Waist@1.0, BigTorso@0.25, Thighs@0.4, Hips@0.25, ButtSmall@-0.5, Back@0.1, Hipbone@0.23, NippleDown@0.25, BreastsSmall@-0.0, ButtCrack@-0.5, DoubleMelon@0.5, BreastWidth@-0.25, BreastsSSH@0.75
ALSLBody75=ShoulderWidth@-0.5, Arms@-0.15, CalfSize@0.35, NippleDistance@-0.7, Belly@0.13, NippleSize@-2.0, Legs@-0.15, CalfSmooth@1.0, Groin@0.5, Breasts@-0.0, BreastFlatness@0.65, AppleCheeks@0.19, NipplePerkiness@0.25, ChubbyLegs@0.3, ShoulderSmooth@0.88, BreastGravity@0.3, ChubbyArms@0.4, Waist@1.0, BigTorso@0.33, Thighs@0.4, Hips@0.25, ButtSmall@-0.5, Back@0.1, Hipbone@0.21, NippleDown@0.25, BreastsSmall@-0.0, ButtCrack@-0.5, DoubleMelon@0.5, BreastWidth@-0.25, BreastsSSH@0.75
ALSLBody100=ShoulderWidth@-0.5, Arms@-0.15, CalfSize@0.35, NippleDistance@-0.7, Belly@0.25, NippleSize@-2.0, Legs@-0.15, CalfSmooth@1.0, Groin@0.5, Breasts@-0.0, BreastFlatness@0.65, AppleCheeks@0.3, NipplePerkiness@0.25, ChubbyLegs@0.3, ShoulderSmooth@1.0, BreastGravity@0.3, ChubbyArms@0.4, Waist@1.0, BigTorso@0.4, Thighs@0.4, Hips@0.25, ButtSmall@-0.5, Back@0.1, Hipbone@0.2, NippleDown@0.25, BreastsSmall@-0.0, ButtCrack@-0.5, DoubleMelon@0.5, BreastWidth@-0.25, BreastsSSH@0.75
NaturalCurvesBabe=ShoulderWidth@-0.0:-0.2, PregnancyBelly@0.0, BreastsSH@0.1, Arms@-0.4, CalfSize@0.0, NippleDistance@-0.6, ButtShape2@0.2, NippleTip@0.0, Belly@0.1:0.2, NippleSize@-0.5, TummyTuck@0.0, NippleLength@0.1, Legs@-0.2:-0.3, Waist@0.2, BigBelly@0.2, ChubbyLegs@0.1, KneeHeight@0.5, Breasts@-0.1:-0.6, SlimThighs@0.0, BreastFlatness@0.0, AppleCheeks@0.4, WideWaistLine@0.4, Hips@0.3, BreastHeight@0.0, Butt@-0.55, BreastCleavage@0.0, ShoulderSmooth@0.0, BreastGravity@0.2:0.3, NipplePerkiness@0.5, RoundAss@0.2, BreastPerkiness@0.0, DoubleMelon@0.2, BreastsFantasy@0.2:0.3, NippleUp@0.2:0.3, Thighs@0.5:0.6, BigButt@0.1:0.2, ChubbyButt@0.1:0.2, Groin@0.2:0.3, Ankles@-1, NippleAreola@0.0, ButtSmall@-0.0:-0.1, Back@0.2, Hipbone@0.3:0.4, NippleDown@0.1:0.3, ChubbyWaist@0.0, BreastsSmall@-0.8:-1.0, PushUp@0.0, ButtCrack@-1.0, BigTorso@0.0:0.1, BreastWidth@0.0:0.1, BreastsSSH@0.1
NaturalCurves=ShoulderWidth@-0.4, PregnancyBelly@0.0, BreastsSH@0.2:0.6, Arms@-1, CalfSize@1.0, NippleDistance@-0.9, ButtShape2@0.3:0.4, RoundAss@0.4:0.38, Belly@0.4:1.0, NippleSize@-0.55:-0.7, NippleLength@0.1, Legs@-0.25:-1, Waist@0.15:0.8, BigBelly@0.1:0.25, ChubbyLegs@0.2, Breasts@-0.0:-0.6, SlimThighs@0.1:0.2, BreastFlatness@-0.1, CalfSmooth@1.0, WideWaistLine@0.05, Hips@0.4:0.6, BreastHeight@-0.2:-0.3, Butt@-0.5:-1, BreastGravity@0.3, NipplePerkiness@0.2, AppleCheeks@0.3:0.5, ChubbyArms@0.2, BreastPerkiness@-0.2, DoubleMelon@0.1:0.2, KneeHeight@0.1, NippleUp@0.2:0.3, Thighs@0.3:0.75, BigButt@0.2, ChubbyButt@0.1:0.2, Groin@0.3, Ankles@-1, NippleAreola@0.0:0.2, ButtSmall@-0.25, Back@0.3, Hipbone@0.2, NippleDown@0.2, ChubbyWaist@0.3, BreastsSmall@-0.7:-1, ButtCrack@-1.0, BigTorso@0.1:0.3, BreastWidth@0.2
NaturalCurves00=ShoulderWidth@-0.4, PregnancyBelly@0.0, BreastsSH@0.2, Arms@-1, CalfSize@1.0, NippleDistance@-0.9, ButtShape2@0.3, RoundAss@0.4, Belly@0.4, NippleSize@-0.55, NippleLength@0.1, Legs@-0.25, Waist@0.15, BigBelly@0.1, ChubbyLegs@0.2, Breasts@-0.0, SlimThighs@0.1, BreastFlatness@-0.1, CalfSmooth@1.0, WideWaistLine@0.05, Hips@0.4, BreastHeight@-0.2, Butt@-0.5, BreastGravity@0.3, NipplePerkiness@0.2, AppleCheeks@0.3, ChubbyArms@0.2, BreastPerkiness@-0.2, DoubleMelon@0.1, KneeHeight@0.1, NippleUp@0.2, Thighs@0.3, BigButt@0.2, ChubbyButt@0.1, Groin@0.3, Ankles@-1, NippleAreola@0.0, ButtSmall@-0.25, Back@0.3, Hipbone@0.2, NippleDown@0.2, ChubbyWaist@0.3, BreastsSmall@-0.7, ButtCrack@-1.0, BigTorso@0.1, BreastWidth@0.2
NaturalCurves50=ShoulderWidth@-0.4, PregnancyBelly@0.0, BreastsSH@0.4, Arms@-1, CalfSize@1.0, NippleDistance@-0.9, ButtShape2@0.35, RoundAss@0.39, Belly@0.7, NippleSize@-0.62, NippleLength@0.1, Legs@-0.63, Waist@0.48, BigBelly@0.17, ChubbyLegs@0.2, Breasts@-0.3, SlimThighs@0.15, BreastFlatness@-0.1, CalfSmooth@1.0, WideWaistLine@0.05, Hips@0.5, BreastHeight@-0.25, Butt@-0.75, BreastGravity@0.3, NipplePerkiness@0.2, AppleCheeks@0.4, ChubbyArms@0.2, BreastPerkiness@-0.2, DoubleMelon@0.15, KneeHeight@0.1, NippleUp@0.25, Thighs@0.53, BigButt@0.2, ChubbyButt@0.15, Groin@0.3, Ankles@-1, NippleAreola@0.1, ButtSmall@-0.25, Back@0.3, Hipbone@0.2, NippleDown@0.2, ChubbyWaist@0.3, BreastsSmall@-0.85, ButtCrack@-1.0, BigTorso@0.2, BreastWidth@0.2
NaturalCurves100=ShoulderWidth@-0.4, PregnancyBelly@0.0, BreastsSH@0.6, Arms@-1, CalfSize@1.0, NippleDistance@-0.9, ButtShape2@0.4, RoundAss@0.38, Belly@1.0, NippleSize@-0.7, NippleLength@0.1, Legs@-1.0, Waist@0.8, BigBelly@0.25, ChubbyLegs@0.2, Breasts@-0.6, SlimThighs@0.2, BreastFlatness@-0.1, CalfSmooth@1.0, WideWaistLine@0.05, Hips@0.6, BreastHeight@-0.3, Butt@-1.0, BreastGravity@0.3, NipplePerkiness@0.2, AppleCheeks@0.5, ChubbyArms@0.2, BreastPerkiness@-0.2, DoubleMelon@0.2, KneeHeight@0.1, NippleUp@0.3, Thighs@0.75, BigButt@0.2, ChubbyButt@0.2, Groin@0.3, Ankles@-1, NippleAreola@0.2, ButtSmall@-0.25, Back@0.3, Hipbone@0.2, NippleDown@0.2, ChubbyWaist@0.3, BreastsSmall@-1.0, ButtCrack@-1.0, BigTorso@0.3, BreastWidth@0.2
NaturalCurvesCommon=ShoulderWidth@-0.4, Arms@-1, CalfSize@1.0, NippleDistance@-0.9, ButtShape2@0.3, RoundAss@0.4, Belly@0.4:1.0, NippleSize@-0.75:-1, Legs@-0.25:-1, Waist@0.15:0.8, BigBelly@0.1:0.25, ChubbyLegs@0.2, Breasts@-0.0, SlimThighs@0.2:0.35, BreastFlatness@-0.1, CalfSmooth@1.0, WideWaistLine@0.05, Hips@0.1:0.15, BreastHeight@-0.2:-0.3, Butt@-0.5:-1, BreastGravity@0.2, AppleCheeks@0.2:0.4, ChubbyArms@0.2, BreastPerkiness@-0.2, DoubleMelon@0.1:0.2, KneeHeight@0.1, Thighs@0.3:0.75, BigButt@0.2, ChubbyButt@0.1, Groin@0.3, Ankles@-1, ButtSmall@-0.25:-0.2, Back@0.3, NippleDown@0.4, ChubbyWaist@0.4, BreastsSmall@-0.6:-0.9, ButtCrack@-1.0, BigTorso@0.1:0.3, BreastWidth@0.2, BreastsSSH@0.1:0.15
NaturalCurvesCommon00=ShoulderWidth@-0.4, Arms@-1, CalfSize@1.0, NippleDistance@-0.9, ButtShape2@0.3, RoundAss@0.4, Belly@0.4, NippleSize@-0.75, Legs@-0.25, Waist@0.15, BigBelly@0.1, ChubbyLegs@0.2, Breasts@-0.0, SlimThighs@0.2, BreastFlatness@-0.1, CalfSmooth@1.0, WideWaistLine@0.05, Hips@0.1, BreastHeight@-0.2, Butt@-0.5, BreastGravity@0.2, AppleCheeks@0.2, ChubbyArms@0.2, BreastPerkiness@-0.2, DoubleMelon@0.1, KneeHeight@0.1, Thighs@0.3, BigButt@0.2, ChubbyButt@0.1, Groin@0.3, Ankles@-1, ButtSmall@-0.25, Back@0.3, NippleDown@0.4, ChubbyWaist@0.4, BreastsSmall@-0.6, ButtCrack@-1.0, BigTorso@0.1, BreastWidth@0.2, BreastsSSH@0.1
NaturalCurvesCommon50=ShoulderWidth@-0.4, Arms@-1, CalfSize@1.0, NippleDistance@-0.9, ButtShape2@0.3, RoundAss@0.4, Belly@0.7, NippleSize@-0.88, Legs@-0.63, Waist@0.48, BigBelly@0.17, ChubbyLegs@0.2, Breasts@-0.0, SlimThighs@0.27, BreastFlatness@-0.1, CalfSmooth@1.0, WideWaistLine@0.05, Hips@0.12, BreastHeight@-0.25, Butt@-0.75, BreastGravity@0.2, AppleCheeks@0.3, ChubbyArms@0.2, BreastPerkiness@-0.2, DoubleMelon@0.15, KneeHeight@0.1, Thighs@0.53, BigButt@0.2, ChubbyButt@0.1, Groin@0.3, Ankles@-1, ButtSmall@-0.23, Back@0.3, NippleDown@0.4, ChubbyWaist@0.4, BreastsSmall@-0.75, ButtCrack@-1.0, BigTorso@0.2, BreastWidth@0.2, BreastsSSH@0.12
NaturalCurvesCommon100=ShoulderWidth@-0.4, Arms@-1, CalfSize@1.0, NippleDistance@-0.9, ButtShape2@0.3, RoundAss@0.4, Belly@1.0, NippleSize@-1.0, Legs@-1.0, Waist@0.8, BigBelly@0.25, ChubbyLegs@0.2, Breasts@-0.0, SlimThighs@0.35, BreastFlatness@-0.1, CalfSmooth@1.0, WideWaistLine@0.05, Hips@0.15, BreastHeight@-0.3, Butt@-1.0, BreastGravity@0.2, AppleCheeks@0.4, ChubbyArms@0.2, BreastPerkiness@-0.2, DoubleMelon@0.2, KneeHeight@0.1, Thighs@0.75, BigButt@0.2, ChubbyButt@0.1, Groin@0.3, Ankles@-1, ButtSmall@-0.2, Back@0.3, NippleDown@0.4, ChubbyWaist@0.4, BreastsSmall@-0.9, ButtCrack@-1.0, BigTorso@0.3, BreastWidth@0.2, BreastsSSH@0.15
NaturalCurvesThin=ShoulderWidth@-0.1:-0.4, BreastsSH@0.1, Arms@-0.7, NippleDistance@-0.8:-1, NippleAreola@0.1:0.2, NippleSize@-0.25:-0.5, Legs@-0.2:-0.6, Waist@0.5, Breasts@-0.0, WideWaistLine@0.5:0.7, ChubbyLegs@0.1, Butt@-0.55, BreastCleavage@0.4, BreastGravity@0.1:0.2, BreastHeight@-0.1:-0.2, DoubleMelon@0.1, Thighs@0.2:0.3, BigButt@0.2, Ankles@-1, ButtSmall@-0.0:-0.1, Hipbone@0.2:0.3, NippleDown@0.3, BreastsSmall@-0.3:-0.9, ButtCrack@-1.0, BigTorso@0.1, Belly@0.2:0.5
NaturalCurvesFat=ShoulderWidth@-0.3:-1, PregnancyBelly@0.0, BreastsSH@0.3:1.0, Arms@-0.8, CalfSize@1.0, NippleDistance@-1.0, ButtShape2@0.1:0.2, RoundAss@0.9:1.0, Belly@1.0, NippleSize@-0.7:-1.0, TummyTuck@-0.5, NippleLength@0.1, Legs@-1.0, Waist@1.0, BigBelly@0.4:0.8, Breasts@-1.0, SlimThighs@0.0, BreastFlatness@0.0, CalfSmooth@1.0, BreastsSmall@-1, WideWaistLine@0.7:1.0, Hips@0.7:1.0, BreastHeight@0.0, Butt@-1.0, BreastCleavage@0.2, ShoulderSmooth@1.0, BreastGravity@0.3:0.55, NipplePerkiness@0.1, AppleCheeks@0.5:0.7, ChubbyArms@0.8:1.0, BreastPerkiness@0.0, DoubleMelon@0.2:0.3, BreastsFantasy@0.0, NippleUp@0.1:0.3, Thighs@0.6:0.8, BigButt@0.4:0.6, ChubbyButt@0.4:0.7, Groin@0.4:0.5, Ankles@-1, NippleAreola@0.1:0.3, ButtSmall@-1, Back@0.7:1.0, Hipbone@0.1:0.2, NippleDown@0.6, ChubbyWaist@0.8:0.7, ChubbyLegs@0.6:1.0, PushUp@0.0, ButtCrack@-1, BigTorso@1.0:1.5, BreastWidth@0.0, BreastsSSH@0.1:0.2
NaturalCurvesSofia=ShoulderWidth@-0.3, PregnancyBelly@0.0, BreastsSH@0.54:1.0, Arms@-1, CalfSize@1.0, NippleDistance@-0.9, ButtShape2@0.5, RoundAss@0.5, Belly@0.2, NippleSize@-0.45:-0.7, NippleLength@0.1, Legs@-0.25:-1, Waist@0.15:0.8, BigBelly@0.15, KneeHeight@0.1, Breasts@-1.0, SlimThighs@0.0:0.25, BreastFlatness@-0.1:-0.2, CalfSmooth@1.0, WideWaistLine@0.05, NipplePerkiness@0.1, BreastHeight@-0.3:-0.6, Butt@-0.6, BreastCleavage@0.4, BreastGravity@0.2, AppleCheeks@0.1:0.3, ChubbyArms@0.2, ChubbyLegs@0.0, DoubleMelon@0.3:0.5, BreastsFantasy@0.1:0.2, NippleUp@0.0:0.2, Thighs@0.3:0.65, ChubbyButt@0.0, Hips@0.3:0.5, Ankles@-1, NippleAreola@-0.2:0.0, ButtSmall@-0.25, Back@0.3, Hipbone@0.0:0.2, NippleDown@0.1, ChubbyWaist@0.2, BreastsSmall@-0.6, PushUp@0.0, ButtCrack@-1.0, BigTorso@0.1:0.2, BreastWidth@0.2
NaturalCurvesVilja=ShoulderWidth@-0.4, PregnancyBelly@0.0, BreastsSH@0.0, Arms@-1, CalfSize@1.0, NippleDistance@-0.8, ButtShape2@0.3, RoundAss@0.0, NippleTip@0.0, Belly@0.8:1.0, NippleSize@-0.25:-0.5, TummyTuck@-0.5, NippleLength@-0.15, Legs@-0.25:-1, Waist@0.2:0.8, BigBelly@0.3:0.65, ChubbyLegs@0.6:0.5, KneeHeight@0.1, Breasts@-0.4:-0.6, SlimThighs@0.2:0.35, BreastFlatness@0.0, CalfSmooth@1.0, WideWaistLine@0.1, Hips@0.4:0.8, BreastHeight@0.0, Butt@-0.6:-1, BreastCleavage@0.0, ShoulderSmooth@0.3, BreastGravity@0.4:0.5, NipplePerkiness@0.8, AppleCheeks@0.4:0.6, ChubbyArms@0.4:0.85, BreastPerkiness@-0.2, DoubleMelon@0.4:0.6, BreastsFantasy@0.4, Thighs@0.4:0.65, BigButt@0.2:0.4, ChubbyButt@0.5, Groin@0.5:1.0, Ankles@-1, NippleAreola@0.0, ButtSmall@-0.25:-0.3, Back@0.6, Hipbone@0.0, NippleDown@0.0, ChubbyWaist@0.3, BreastsSmall@-0.7:-1.0, ButtCrack@-1.0, BigTorso@0.8:1.0, BreastWidth@0.0
CBBEVariantBodies=ShoulderWidth@-0.15:-1, PregnancyBelly@0.05, BreastsSH@0.02:0.25, Arms@-0.1:-1, CalfSize@1.0, NippleDistance@-0.75:-0.55, ButtShape2@0.4, Belly@1.0, NippleSize@-0.45:-1, TummyTuck@0.25, NippleLength@0.1:0.25, Legs@-0.7:-1, Waist@0.75, BigBelly@0.05, ChubbyLegs@0.1, Breasts@-0.05:-0.8, SlimThighs@0.15, CalfSmooth@1.0:0.8, WideWaistLine@0.3, Hips@0.15, BreastHeight@0.3:0.0, Butt@-1, BreastCleavage@0.1:0.2, ShoulderSmooth@0.4, BreastGravity@1.0:0.9, NipplePerkiness@0.1:0.4, AppleCheeks@0.3, ChubbyArms@0.35, BreastPerkiness@0.0, BreastsFantasy@0.02:0.2, NippleUp@0.1:0.2, Thighs@0.15:0.65, BigButt@0.2, Groin@0.15:0.4, Ankles@-1, ButtSmall@-0.4:-1, Back@0.25, NippleAreola@0.05:0.2, ChubbyWaist@0.1, BreastsSmall@-0.1:-0.9, PushUp@0.8:0.3, ButtCrack@-1.0, DoubleMelon@0.02:0.2, BreastWidth@0.0, BreastsSSH@0.15
CBBEVariantBodies00=ShoulderWidth@-0.15, PregnancyBelly@0.05, BreastsSH@0.02, Arms@-0.1, CalfSize@1.0, NippleDistance@-0.75, ButtShape2@0.4, Belly@1.0, NippleSize@-0.45, TummyTuck@0.25, NippleLength@0.1, Legs@-0.7, Waist@0.75, BigBelly@0.05, ChubbyLegs@0.1, Breasts@-0.05, SlimThighs@0.15, CalfSmooth@1.0, WideWaistLine@0.3, Hips@0.15, BreastHeight@0.3, Butt@-1, BreastCleavage@0.1, ShoulderSmooth@0.4, BreastGravity@1.0, NipplePerkiness@0.1, AppleCheeks@0.3, ChubbyArms@0.35, BreastPerkiness@0.0, BreastsFantasy@0.02, NippleUp@0.1, Thighs@0.15, BigButt@0.2, Groin@0.15, Ankles@-1, ButtSmall@-0.4, Back@0.25, NippleAreola@0.05, ChubbyWaist@0.1, BreastsSmall@-0.1, PushUp@0.8, ButtCrack@-1.0, DoubleMelon@0.02, BreastWidth@0.0, BreastsSSH@0.15
CBBEVariantBodies25=ShoulderWidth@-0.36, PregnancyBelly@0.05, BreastsSH@0.08, Arms@-0.33, CalfSize@1.0, NippleDistance@-0.7, ButtShape2@0.4, Belly@1.0, NippleSize@-0.59, TummyTuck@0.25, NippleLength@0.14, Legs@-0.78, Waist@0.75, BigBelly@0.05, ChubbyLegs@0.1, Breasts@-0.24, SlimThighs@0.15, CalfSmooth@0.95, WideWaistLine@0.3, Hips@0.15, BreastHeight@0.23, Butt@-1, BreastCleavage@0.13, ShoulderSmooth@0.4, BreastGravity@0.98, NipplePerkiness@0.18, AppleCheeks@0.3, ChubbyArms@0.35, BreastPerkiness@0.0, BreastsFantasy@0.07, NippleUp@0.13, Thighs@0.28, BigButt@0.2, Groin@0.21, Ankles@-1, ButtSmall@-0.55, Back@0.25, NippleAreola@0.09, ChubbyWaist@0.1, BreastsSmall@-0.3, PushUp@0.67, ButtCrack@-1.0, DoubleMelon@0.07, BreastWidth@0.0, BreastsSSH@0.15
CBBEVariantBodies50=ShoulderWidth@-0.57, PregnancyBelly@0.05, BreastsSH@0.14, Arms@-0.55, CalfSize@1.0, NippleDistance@-0.65, ButtShape2@0.4, Belly@1.0, NippleSize@-0.73, TummyTuck@0.25, NippleLength@0.17, Legs@-0.85, Waist@0.75, BigBelly@0.05, ChubbyLegs@0.1, Breasts@-0.43, SlimThighs@0.15, CalfSmooth@0.9, WideWaistLine@0.3, Hips@0.15, BreastHeight@0.15, Butt@-1, BreastCleavage@0.15, ShoulderSmooth@0.4, BreastGravity@0.95, NipplePerkiness@0.25, AppleCheeks@0.3, ChubbyArms@0.35, BreastPerkiness@0.0, BreastsFantasy@0.11, NippleUp@0.15, Thighs@0.4, BigButt@0.2, Groin@0.28, Ankles@-1, ButtSmall@-0.7, Back@0.25, NippleAreola@0.13, ChubbyWaist@0.1, BreastsSmall@-0.5, PushUp@0.55, ButtCrack@-1.0, DoubleMelon@0.11, BreastWidth@0.0, BreastsSSH@0.15
CBBEVariantBodies75=ShoulderWidth@-0.79, PregnancyBelly@0.05, BreastsSH@0.19, Arms@-0.78, CalfSize@1.0, NippleDistance@-0.6, ButtShape2@0.4, Belly@1.0, NippleSize@-0.86, TummyTuck@0.25, NippleLength@0.21, Legs@-0.93, Waist@0.75, BigBelly@0.05, ChubbyLegs@0.1, Breasts@-0.61, SlimThighs@0.15, CalfSmooth@0.85, WideWaistLine@0.3, Hips@0.15, BreastHeight@0.08, Butt@-1, BreastCleavage@0.18, ShoulderSmooth@0.4, BreastGravity@0.93, NipplePerkiness@0.33, AppleCheeks@0.3, ChubbyArms@0.35, BreastPerkiness@0.0, BreastsFantasy@0.16, NippleUp@0.18, Thighs@0.53, BigButt@0.2, Groin@0.34, Ankles@-1, ButtSmall@-0.85, Back@0.25, NippleAreola@0.16, ChubbyWaist@0.1, BreastsSmall@-0.7, PushUp@0.42, ButtCrack@-1.0, DoubleMelon@0.16, BreastWidth@0.0, BreastsSSH@0.15
CBBEVariantBodies100=ShoulderWidth@-1.0, PregnancyBelly@0.05, BreastsSH@0.25, Arms@-1.0, CalfSize@1.0, NippleDistance@-0.55, ButtShape2@0.4, Belly@1.0, NippleSize@-1.0, TummyTuck@0.25, NippleLength@0.25, Legs@-1.0, Waist@0.75, BigBelly@0.05, ChubbyLegs@0.1, Breasts@-0.8, SlimThighs@0.15, CalfSmooth@0.8, WideWaistLine@0.3, Hips@0.15, BreastHeight@0.0, Butt@-1, BreastCleavage@0.2, ShoulderSmooth@0.4, BreastGravity@0.9, NipplePerkiness@0.4, AppleCheeks@0.3, ChubbyArms@0.35, BreastPerkiness@0.0, BreastsFantasy@0.2, NippleUp@0.2, Thighs@0.65, BigButt@0.2, Groin@0.4, Ankles@-1, ButtSmall@-1.0, Back@0.25, NippleAreola@0.2, ChubbyWaist@0.1, BreastsSmall@-0.9, PushUp@0.3, ButtCrack@-1.0, DoubleMelon@0.2, BreastWidth@0.0, BreastsSSH@0.15
SBSv5Body00=ShoulderWidth@-0.2, BreastsSH@0.45, Arms@0.1, Back@-0.1, NippleDistance@-0.0, ButtShape2@0.35, RoundAss@0.7, Belly@-0.05, NippleSize@-0.9, TummyTuck@0.5, NippleLength@0.15, Legs@-0.7, BigBelly@-0.1, Breasts@-0.0, SlimThighs@0.8, BreastFlatness@0.1, CalfSmooth@1.0, WideWaistLine@-0.75, Hips@0.35, BreastPerkiness@0.5, Butt@-0.15, BreastCleavage@0.02, ShoulderSmooth@0.45, BreastGravity@0.03, NipplePerkiness@0.05, AppleCheeks@0.04, Waist@-0.75, DoubleMelon@0.05, Thighs@0.75, BigButt@0.4, Groin@0.4, Ankles@-1, NippleAreola@0.05, ButtSmall@-0.35, CalfSize@0.9, Hipbone@0.35, ChubbyWaist@-0.15, BreastsSmall@-0.0, PushUp@0.05, ButtCrack@-0.65, BigTorso@-0.01, BreastsSSH@0.0
ADECMANGA00=ShoulderWidth@-1.5, BreastsSH@0.5, Arms@-0.5, CalfSize@1.0, NippleDistance@-0.75, ButtShape2@1.0, NippleTip@0.57, Belly@0.5, NippleSize@-0.3, NippleLength@0.4, Legs@-1.0, Breasts@-0.7, CalfSmooth@0.65, Hips@0.1, BreastHeight@0.14, Butt@-0.3, BreastCleavage@0.0, BreastGravity@1.0, NipplePerkiness@1.0, AppleCheeks@0.25, Waist@0.3, NippleUp@1.0, Thighs@0.7, Groin@0.25, Ankles@-1, ButtSmall@-1, KneeHeight@0.3, Hipbone@-0.25, NippleDown@0.0, ChubbyWaist@0.2, BreastsSmall@-1.3, PushUp@0.78, ButtCrack@-0.0, DoubleMelon@0.7, BreastWidth@0.4, BreastsSSH@0.2
Iva00=ShoulderWidth@0.3, PregnancyBelly@0.0, BreastsSH@0.0, Arms@-0.8, Back@-0.5, NippleDistance@-0.5, ButtShape2@0.5, NippleTip@0.12, Belly@0.75, NippleSize@-0.12, TummyTuck@0.19, NippleLength@0.19, Legs@-1, Waist@0.4, BigBelly@0.1, ChubbyLegs@-0.4, KneeHeight@0.2, Breasts@-0.5, SlimThighs@0.11, BreastFlatness@0.0, CalfSmooth@0.0, WideWaistLine@-0.5, NipplePerkiness@0.5, BreastHeight@-0.3, Butt@-0.0, BreastCleavage@0.05, ShoulderSmooth@0.25, BreastGravity@0.34, ChubbyArms@-0.3, BreastPerkiness@0.0, DoubleMelon@0.25, BreastsFantasy@0.4, NippleUp@0.5, Thighs@0.6, BigButt@0.03, Hips@-1.2, Ankles@-1, NippleAreola@0.05, ButtSmall@-1, CalfSize@1.0, Hipbone@0.42, NippleDown@0.14, ChubbyWaist@-0.2, BreastsSmall@-0.5, PushUp@0.0, ButtCrack@-0.2, BigTorso@-0.4, BreastWidth@-1.0, BreastsSSH@0.0
Iva25=ShoulderWidth@0.23, PregnancyBelly@0.0, BreastsSH@0.0, Arms@-0.8, Back@-0.45, NippleDistance@-0.5, ButtShape2@0.5, NippleTip@0.12, Belly@0.74, NippleSize@-0.12, TummyTuck@0.2, NippleLength@0.19, Legs@-1, Waist@0.4, BigBelly@0.12, ChubbyLegs@-0.4, KneeHeight@0.2, Breasts@-0.63, SlimThighs@0.11, BreastFlatness@0.02, CalfSmooth@0.1, WideWaistLine@-0.5, NipplePerkiness@0.5, BreastHeight@-0.4, Butt@-0.0, BreastCleavage@0.05, ShoulderSmooth@0.25, BreastGravity@0.45, ChubbyArms@-0.3, BreastPerkiness@0.0, DoubleMelon@0.25, BreastsFantasy@0.4, NippleUp@0.5, Thighs@0.7, BigButt@0.03, Hips@-1.15, Ankles@-1, NippleAreola@0.05, ButtSmall@-1, CalfSize@1.25, Hipbone@0.52, NippleDown@0.14, ChubbyWaist@-0.2, BreastsSmall@-0.63, PushUp@0.0, ButtCrack@-0.27, BigTorso@-0.35, BreastWidth@-0.75, BreastsSSH@0.0
Iva50=ShoulderWidth@0.15, PregnancyBelly@0.0, BreastsSH@0.0, Arms@-0.8, Back@-0.4, NippleDistance@-0.5, ButtShape2@0.5, NippleTip@0.12, Belly@0.72, NippleSize@-0.12, TummyTuck@0.22, NippleLength@0.19, Legs@-1, Waist@0.4, BigBelly@0.14, ChubbyLegs@-0.4, KneeHeight@0.2, Breasts@-0.75, SlimThighs@0.11, BreastFlatness@0.04, CalfSmooth@0.2, WideWaistLine@-0.5, NipplePerkiness@0.5, BreastHeight@-0.5, Butt@-0.0, BreastCleavage@0.05, ShoulderSmooth@0.25, BreastGravity@0.55, ChubbyArms@-0.3, BreastPerkiness@0.0, DoubleMelon@0.25, BreastsFantasy@0.4, NippleUp@0.5, Thighs@0.8, BigButt@0.03, Hips@-1.1, Ankles@-1, NippleAreola@0.05, ButtSmall@-1, CalfSize@1.5, Hipbone@0.62, NippleDown@0.14, ChubbyWaist@-0.2, BreastsSmall@-0.75, PushUp@0.0, ButtCrack@-0.35, BigTorso@-0.3, BreastWidth@-0.5, BreastsSSH@0.0
Iva75=ShoulderWidth@0.08, PregnancyBelly@0.0, BreastsSH@0.0, Arms@-0.8, Back@-0.35, NippleDistance@-0.5, ButtShape2@0.5, NippleTip@0.12, Belly@0.71, NippleSize@-0.12, TummyTuck@0.23, NippleLength@0.19, Legs@-1, Waist@0.4, BigBelly@0.16, ChubbyLegs@-0.4, KneeHeight@0.2, Breasts@-0.88, SlimThighs@0.11, BreastFlatness@0.06, CalfSmooth@0.3, WideWaistLine@-0.5, NipplePerkiness@0.5, BreastHeight@-0.6, Butt@-0.0, BreastCleavage@0.05, ShoulderSmooth@0.25, BreastGravity@0.66, ChubbyArms@-0.3, BreastPerkiness@0.0, DoubleMelon@0.25, BreastsFantasy@0.4, NippleUp@0.5, Thighs@0.9, BigButt@0.03, Hips@-1.05, Ankles@-1, NippleAreola@0.05, ButtSmall@-1, CalfSize@1.75, Hipbone@0.72, NippleDown@0.14, ChubbyWaist@-0.2, BreastsSmall@-0.88, PushUp@0.0, ButtCrack@-0.42, BigTorso@-0.25, BreastWidth@-0.25, BreastsSSH@0.0
Iva100=ShoulderWidth@0.0, PregnancyBelly@0.0, BreastsSH@0.0, Arms@-0.8, Back@-0.3, NippleDistance@-0.5, ButtShape2@0.5, NippleTip@0.12, Belly@0.7, NippleSize@-0.12, TummyTuck@0.25, NippleLength@0.19, Legs@-1, Waist@0.4, BigBelly@0.18, ChubbyLegs@-0.4, KneeHeight@0.2, Breasts@-1.0, SlimThighs@0.11, BreastFlatness@0.08, CalfSmooth@0.4, WideWaistLine@-0.5, NipplePerkiness@0.5, BreastHeight@-0.7, Butt@-0.0, BreastCleavage@0.05, ShoulderSmooth@0.25, BreastGravity@0.77, ChubbyArms@-0.3, BreastPerkiness@0.0, DoubleMelon@0.25, BreastsFantasy@0.4, NippleUp@0.5, Thighs@1.0, BigButt@0.03, Hips@-1.0, Ankles@-1, NippleAreola@0.05, ButtSmall@-1, CalfSize@2.0, Hipbone@0.82, NippleDown@0.14, ChubbyWaist@-0.2, BreastsSmall@-1.0, PushUp@0.0, ButtCrack@-0.5, BigTorso@-0.2, BreastWidth@0.0, BreastsSSH@0.0
Aiko100=ShoulderWidth@-0.65, Arms@-0.7, Breasts@-1.0, NippleDistance@-0.8, NippleSize@-1.5, Legs@-0.6, AppleCheeks@-0.25, SlimThighs@0.8, CalfSmooth@0.1, Groin@0.4, Butt@-1, ShoulderSmooth@0.5, BreastGravity@0.3, NipplePerkiness@0.2, RoundAss@0.1, ChubbyArms@0.4, Waist@0.5, Thighs@-0.15, Hips@0.1, Ankles@-1, ButtSmall@-1.0, Back@0.25, Hipbone@0.15, NippleDown@0.4, BreastsSmall@-0.85, ButtCrack@-1, BigTorso@0.2, BreastWidth@0.2
DMRAEnhanced00=ShoulderWidth@-0.0, PregnancyBelly@0.0, BreastsSH@0.25, Arms@-0.0, CalfSize@0.0, NippleDistance@-1, ButtShape2@0.0, RoundAss@0.16, TummyTuck@1.0, NippleSize@-0.0, NippleLength@0.0, Legs@-0.0, Waist@1, Breasts@-0.35, SlimThighs@0.0, BreastFlatness@0.0, CalfSmooth@0.0, WideWaistLine@0.0, NipplePerkiness@0.2, BreastHeight@0.0, Butt@-0.4, BreastCleavage@0.25, BreastGravity@0.0, AppleCheeks@0.55, BreastPerkiness@0.0, BreastsFantasy@0.26, Thighs@0.3, BigButt@0.0, ChubbyButt@0.15, Hips@1.0, Ankles@-1, ButtSmall@-0.0, Back@0.0, Hipbone@0.0, BreastsSmall@-1, PushUp@0.0, ButtCrack@-1, DoubleMelon@1.0, BreastWidth@0.0, BreastsSSH@0.35
SlimtoBusty=ShoulderWidth@-0.7:-0.8, BreastsSH@0.2:0.6, Arms@-0.4:-0.5, NippleDistance@-1, KneeHeight@1.0, Belly@-0.5, NippleSize@-0.8:-1, NippleLength@0.2, Legs@-0.8:-1, Breasts@-0.6:-0.8, SlimThighs@1.0:0.5, BreastFlatness@0.5, CalfSmooth@0.5, WideWaistLine@0.5, NipplePerkiness@1.0, BreastHeight@0.5, Butt@-0.5:-0.7, ShoulderSmooth@1.0:0.5, BreastGravity@1.0, RoundAss@0.5:1.0, Waist@0.3:1, NippleUp@1.0, Thighs@0.35:0.5, BigButt@0.51, Ankles@-1, ButtSmall@-0.5:-0.7, TummyTuck@1.0, BreastsSmall@-0.6:-0.8, ButtCrack@-0.5:-1, BreastsSSH@0.2:0.6
SlimtoBusty00=ShoulderWidth@-0.7, BreastsSH@0.2, Arms@-0.4, NippleDistance@-1, KneeHeight@1.0, Belly@-0.5, NippleSize@-0.8, NippleLength@0.2, Legs@-0.8, Breasts@-0.6, SlimThighs@1.0, BreastFlatness@0.5, CalfSmooth@0.5, WideWaistLine@0.5, NipplePerkiness@1.0, BreastHeight@0.5, Butt@-0.5, ShoulderSmooth@1.0, BreastGravity@1.0, RoundAss@0.5, Waist@0.3, NippleUp@1.0, Thighs@0.35, BigButt@0.51, Ankles@-1, ButtSmall@-0.5, TummyTuck@1.0, BreastsSmall@-0.6, ButtCrack@-0.5, BreastsSSH@0.2
SlimtoBusty20=ShoulderWidth@-0.72, BreastsSH@0.28, Arms@-0.42, NippleDistance@-1, KneeHeight@1.0, Belly@-0.5, NippleSize@-0.84, NippleLength@0.2, Legs@-0.84, Breasts@-0.64, SlimThighs@0.9, BreastFlatness@0.5, CalfSmooth@0.5, WideWaistLine@0.5, NipplePerkiness@1.0, BreastHeight@0.5, Butt@-0.54, ShoulderSmooth@0.9, BreastGravity@1.0, RoundAss@0.6, Waist@0.44, NippleUp@1.0, Thighs@0.38, BigButt@0.51, Ankles@-1, ButtSmall@-0.54, TummyTuck@1.0, BreastsSmall@-0.64, ButtCrack@-0.6, BreastsSSH@0.28
SlimtoBusty40=ShoulderWidth@-0.74, BreastsSH@0.36, Arms@-0.44, NippleDistance@-1, KneeHeight@1.0, Belly@-0.5, NippleSize@-0.88, NippleLength@0.2, Legs@-0.88, Breasts@-0.68, SlimThighs@0.8, BreastFlatness@0.5, CalfSmooth@0.5, WideWaistLine@0.5, NipplePerkiness@1.0, BreastHeight@0.5, Butt@-0.58, ShoulderSmooth@0.8, BreastGravity@1.0, RoundAss@0.7, Waist@0.58, NippleUp@1.0, Thighs@0.41, BigButt@0.51, Ankles@-1, ButtSmall@-0.58, TummyTuck@1.0, BreastsSmall@-0.68, ButtCrack@-0.7, BreastsSSH@0.36\
SlimtoBusty60=ShoulderWidth@-0.76, BreastsSH@0.44, Arms@-0.46, NippleDistance@-1, KneeHeight@1.0, Belly@-0.5, NippleSize@-0.92, NippleLength@0.2, Legs@-0.92, Breasts@-0.72, SlimThighs@0.7, BreastFlatness@0.5, CalfSmooth@0.5, WideWaistLine@0.5, NipplePerkiness@1.0, BreastHeight@0.5, Butt@-0.62, ShoulderSmooth@0.7, BreastGravity@1.0, RoundAss@0.8, Waist@0.72, NippleUp@1.0, Thighs@0.44, BigButt@0.51, Ankles@-1, ButtSmall@-0.62, TummyTuck@1.0, BreastsSmall@-0.72, ButtCrack@-0.8, BreastsSSH@0.44
SlimtoBusty80=ShoulderWidth@-0.78, BreastsSH@0.52, Arms@-0.48, NippleDistance@-1, KneeHeight@1.0, Belly@-0.5, NippleSize@-0.96, NippleLength@0.2, Legs@-0.96, Breasts@-0.76, SlimThighs@0.6, BreastFlatness@0.5, CalfSmooth@0.5, WideWaistLine@0.5, NipplePerkiness@1.0, BreastHeight@0.5, Butt@-0.66, ShoulderSmooth@0.6, BreastGravity@1.0, RoundAss@0.9, Waist@0.86, NippleUp@1.0, Thighs@0.47, BigButt@0.51, Ankles@-1, ButtSmall@-0.66, TummyTuck@1.0, BreastsSmall@-0.76, ButtCrack@-0.9, BreastsSSH@0.52
SlimtoBusty100=ShoulderWidth@-0.8, BreastsSH@0.6, Arms@-0.5, NippleDistance@-1, KneeHeight@1.0, Belly@-0.5, NippleSize@-1.0, NippleLength@0.2, Legs@-1.0, Breasts@-0.8, SlimThighs@0.5, BreastFlatness@0.5, CalfSmooth@0.5, WideWaistLine@0.5, NipplePerkiness@1.0, BreastHeight@0.5, Butt@-0.7, ShoulderSmooth@0.5, BreastGravity@1.0, RoundAss@1.0, Waist@1.0, NippleUp@1.0, Thighs@0.5, BigButt@0.51, Ankles@-1, ButtSmall@-0.7, TummyTuck@1.0, BreastsSmall@-0.8, ButtCrack@-1.0, BreastsSSH@0.6
RogueBody00=ShoulderWidth@-0.65, BreastsSH@0.25, Arms@-0.25, Back@-0.05, NippleDistance@-1, ButtShape2@-0.1, NippleTip@0.3, Belly@-0.25, NippleSize@-0.7, TummyTuck@-0.05, NippleLength@-0.05, Legs@-0.25, Waist@0.25, BigBelly@0.1, Breasts@-0.0, SlimThighs@-0.3, BreastFlatness@0.2, CalfSmooth@0.65, Hips@0.05, BreastHeight@0.9, Butt@-0.5, BreastCleavage@0.0, ShoulderSmooth@0.35, BreastGravity@0.0, NipplePerkiness@-0.05, RoundAss@0.2, ChubbyArms@-0.1, ChubbyLegs@-0.25, DoubleMelon@-0.2, BreastsFantasy@-0.1, Thighs@0.2, BigButt@-0.3, ChubbyButt@0.1, Groin@0.05, Ankles@-1, ButtSmall@-0.55, CalfSize@-0.2, Hipbone@0.05, NippleDown@0.15, BreastsSmall@-1.0, PushUp@0.3, ButtCrack@-0.7, BigTorso@-0.1, BreastWidth@-0.1, BreastsSSH@0.2
RogueBody50=ShoulderWidth@-0.67, BreastsSH@0.25, Arms@-0.63, Back@-0.05, NippleDistance@-1, ButtShape2@-0.05, NippleTip@0.3, Belly@-0.18, NippleSize@-0.75, TummyTuck@-0.05, NippleLength@-0.05, Legs@-0.38, Waist@0.63, BigBelly@0.1, Breasts@-0.5, SlimThighs@-0.3, BreastFlatness@0.33, CalfSmooth@0.65, Hips@0.1, BreastHeight@0.9, Butt@-0.6, BreastCleavage@0.0, ShoulderSmooth@0.35, BreastGravity@0.2, NipplePerkiness@-0.05, RoundAss@0.27, ChubbyArms@-0.1, ChubbyLegs@-0.25, DoubleMelon@-0.1, BreastsFantasy@-0.05, Thighs@0.45, BigButt@-0.15, ChubbyButt@0.15, Groin@0.08, Ankles@-1, ButtSmall@-0.6, CalfSize@-0.2, Hipbone@0.08, NippleDown@0.13, BreastsSmall@-1.05, PushUp@0.3, ButtCrack@-0.7, BigTorso@-0.1, BreastWidth@-0.1, BreastsSSH@0.2
RogueBody100=ShoulderWidth@-0.68, BreastsSH@0.25, Arms@-1.0, Back@-0.05, NippleDistance@-1, ButtShape2@0.0, NippleTip@0.3, Belly@-0.1, NippleSize@-0.8, TummyTuck@-0.05, NippleLength@-0.05, Legs@-0.5, Waist@1.0, BigBelly@0.1, Breasts@-1.0, SlimThighs@-0.3, BreastFlatness@0.45, CalfSmooth@0.65, Hips@0.15, BreastHeight@0.9, Butt@-0.7, BreastCleavage@0.0, ShoulderSmooth@0.35, BreastGravity@0.4, NipplePerkiness@-0.05, RoundAss@0.35, ChubbyArms@-0.1, ChubbyLegs@-0.25, DoubleMelon@0.0, BreastsFantasy@0.0, Thighs@0.7, BigButt@0.0, ChubbyButt@0.2, Groin@0.1, Ankles@-1, ButtSmall@-0.65, CalfSize@-0.2, Hipbone@0.1, NippleDown@0.1, BreastsSmall@-1.1, PushUp@0.3, ButtCrack@-0.7, BigTorso@-0.1, BreastWidth@-0.1, BreastsSSH@0.2
WarMaiden=ShoulderWidth@-0.2:-1, Arms@-0.4:-1, CalfSize@0.6:1.5, NippleDistance@-1, KneeHeight@0.5, NippleTip@0.1, Belly@0.6:0.7, NippleSize@-0.4:-1, NippleLength@0.1:0.2, Legs@-1, Breasts@-0.3:-0.2, CalfSmooth@0.8:0.5, Hips@0.5, BreastPerkiness@0.6, Butt@-0.1, ShoulderSmooth@0.8:0.6, NipplePerkiness@0.15, AppleCheeks@0.6, Waist@1, Thighs@0.4:0.85, BigButt@0.2, ButtShape2@0.2, Groin@0.4:1.0, Ankles@-0.4:-1, ButtSmall@-0.4:-1, Back@0.4, Hipbone@1.0, ChubbyWaist@0.4:0.65, BreastsSmall@-0.6:-0.0, ButtCrack@-1, BigTorso@0.5, BreastsSSH@0.5

Link to comment

I sadly can't read python code (struggling learning c# atm) sorry i cant be much help on this

 

but looking at the outputs for alsl and wench and they are indeed off in weird areas like alsl preset has shoulderwidth at 65 so it should translate to .65 but you have in the results -0.5

that in itself is alarming

 

i did find this error in my original process though,
these are the sliders that need to be added and set to 1.00 if missing and then inverted (no need to differentiate from big and small)
 

Ankles
Arms
Breasts
BreastsSmall
ButtCrack
Butt
ButtSmall
NippleDistance
NippleSize
ShoulderWidth
Legs

 

everything else should be a simple addition of a decimal point

 

 

Link to comment

I don't think there is a way to shortcut the decimal part, but I also don't think what i did was super complex a programmer should be able to automate the process. hopefully someone rises to the occasion.

for ranges they would still work but would need to be added in manually sadly.

 

Kitsune,

 

I think I got it. Your video tutorial is great. I think that you missed two inverted sliders. (I am not entirely sure if we got them all.)

 

Can you please have a look at this? I finished the script (Ready for some alpha testing) and I wrote a guide.

https://www.loverslab.com/topic/66322-bodyslide-to-bodygen-conversion-cbbe/

Link to comment

 

Here is a Python v2.7 script (Windows) to convert Preset XML files into BodyGen data. It automatically does all the conversion, prints the output, and copies that output to the clipboard automatically. It is working, but I would appreciate some alpha testing. I saw this go horribly wrong with some presets, and I am not sure what is wrong.

So this script puts the BodyGen string into the clipboard? 

 

I also assume that you run the script like so. I named the script BodyGen.py:

 

    BodyGen.py preset.xml --weight=100

 

 

I get nothing, no errors, nothing in the clipboard.

 

 

badcock - my latest version is here if you want to test it. It is more involved than I first thought it would be, because the final result is a combination of BodySlide and BodyGen. I wrote an entire explanation.

 

https://www.loverslab.com/topic/66322-bodyslide-to-bodygen-conversion-cbbe/

 

 

 

Here is my templates.ini. I use various combinations of body shapes and appropriate breast types.

 

I edited these on my own looking at amateur pictures online. They are not meant to be fantastical, they are meant to be realistic and average. Some of them are more pleasing to look, some not.

Shoulders=ShoulderSmooth@1:2

ShapeSlimA=HipBone@-0.25, Hips@0, SlimThighs@1, Thighs@-0.5:-0.25, Butt@0:0.5, AppleCheeks@-0.5, ButtCrack@0:1.5, Legs@0.25, BigTorso@-0.5, Waist@0.25, WideWaistLine@0.5, ShoulderWidth@1
ShapeSlimB=Waist@1, WideWaistLine@0.5, BigTorso@0.5, Butt@1, ButtSmall@1, AppleCheeks@-0.5, RoundAss@1, HipBone@-0.5, Thighs@-0.25, ChubbyLegs@-0.25, Legs@-0.1
ShapeCurvyA=Waist@0.4, WideWaistLine@0.4, ChubbyWaist@0.75, Butt@-0.75, ButtShape2@0.75, ChubbyButt@0.3, Thighs@0.5, ChubbyLegs@0.5, ChubbyArms@0.75
ShapeCurvyB=BigTorso@0.05, Waist@1, WideWaistLine@0, ChubbyWaist@0.1, Back@0.25, Butt@0.25, AppleCheeks@0.1, Groin@-2:2, Hips@0.25, SlimThighs@-0.25, Thighs@0.1, Legs@-0.1
ShapeCurvyC=Thighs@0.5:0.75, Waist@1, WideWaistLine@0.75, Legs@-1, CalfSize@1
ShapeCurvyD=Thighs@0.2, ChubbyLegs@0.33, SlimThighs@0.36, HipBone@0.33
ShapeCurvyD=BigTorso@0.67, Thighs@0.5, Legs@-0.33
ShapeChubbyA=BigTorso@0.05, Waist@1, WideWaistLine@0, ChubbyWaist@0.1, Back@0.25, Butt@0.25, AppleCheeks@0.1, Groin@1:2, Hips@0.33, SlimThighs@-0.25, Thighs@0.25, Legs@-0.1, CalfSize@0.25, CalfSmooth@0.25, Belly@0.25, TummyTuck@-0.5
ShapeChubbyB=BigTorso@1, Thighs@0.5, Legs@-0.33, ChubbyLegs@0.75, Waist@0.5, ChubbyWaist@0.75

SlimBreastsA=Breasts@0.3, BreastsSmall@0.5, BreastFlatness@0.3, NippleAreola@0:0.5, NippleDown@0.25, NippleTip@0.25
SlimBreastsB=Breasts@0, BreastsSmall@0.5, BreastsFantasy@0.25, BreastFlatness@0.3, BreastGravity@0.75, PushUp@0.75, BreastHeight@1, BreastWidth@-1, NippleAreola@0.5:1, NippleTip@0.25
BreastsA=BreatsSmall@0.5, BreastsSH@0.5, BreastCleavage@0.2, PushUp@0.5, BreastWidth@-0.75, NipplePerkiness@0.4, NippleDown@0.5, Breasts@1:-0.25
BreastsB=Breasts@-0.25, BreastsSmall@0.25, BreastsSH@0.25, BreastsSSH=0.25, BreastCleavage@0.5, BreastFlatness@0.25, BreastGravity@0.5, BreastHeight@0.25, BreastWidth@-0.75, NippleAreola@0:0.5, NippleDown@0.25
BreastsC=BreastsSH@0.75, BreastsSSH@0.25, BreastsFantasy@0.25, DoubleMelon@-0.5, BreastCleavage@-0.5, BreastFlatness@0.1, BreastGravity@0.75, PushUp@0.5, BreastHeight@1, BreastPerkiness@1, BreastWidth@-0.25, NippleDistance@0.75, NippleAreaola@1, NippleDown@0.75
BreastsD=BreastsSSH@0.67, DoubleMelon@0.33, BreastCleavage@0.5, BreastGravity@0.33, BreastPerkiness@1.25, BreastWidth@-1.25, NipplePerkiness@1.25, NippleSize@-0.25, NippleAreaola@1, NippleDown@0.33
BreastsE=Breasts@0.5, BreastsSmall@0.5, BreastsFantasy@1, NippleSize@-0.25:0, NippleAreaola@0.85
BreastsF=Breasts@0.33, BreastsSmall@-1, BreastsFantasy@0.75, BreastFlatness@0.25, BreastPerkiness@1, BreastWidth@-0.5, NipplePerkiness@0.75 
BreastsG=Breasts@-0.5, BreastGravity@0.5, NipplePerkiness@0.67, NippleAreaola@1
CurvyBreastsA=Breasts@-1, BreastsSH@0.5, BreastCleavage@0.5, BreastFlatness@1, BreastGravity@0.5, BreastHeight@0.5, BreastWidth@-1.25, NippleAreola@1.25:1.75, NippleUp@0.75
CurvyBreastsB=Breasts@-0.25, BreastsSSH@0.25, DoubleMelon@0.33, BreastCleavage@0.75, BreastGravity@0.25, BreastWidth@-1, NippleAreola@0.75:1.25, NippleSize@1
CurvyBreastsC=Breasts@-0.67, BreastsSmall@0.5, BreastsSH@-1.25, BreastsSSH@1.05, BreastCleavage@0.5, BreastGravity@0.33, NippleSize@0.67, NippleAreola@0.25:0.5
CurvyBreastsD=Breasts@0.25, BreastFlatness@0.25, BreastGravity@0.5, BreatHeight@0.25, NipplePerkiness@-0.5, NippleSize@-0.1, NippleAreaola@1
CurvyBreastsE=Breasts@-0.75, BreastsSH=0.25, BreastFlatness@0.33, BreatHeight@0.33, BreastPerkiness@0.33, NipplePerkiness@1, NippleAreaola@1, NippleDown@0.33

Here is a Python v2.7 script (Windows) to convert Preset XML files into BodyGen data. It automatically does all the conversion, prints the output, and copies that output to the clipboard automatically. It is working, but I would appreciate some alpha testing. I saw this go horribly wrong with some presets, and I am not sure what is wrong.

 

Clearly you need to have Python v2.7 installed on a Windows computer if you would like to use it. If you have that, I would appreciate some feedback. Otherwise, it is probably not worth installing Python for.

 

Also, feel free to use and modify the script to your heart's desire.

#! python2

import argparse
import os
from bs4 import BeautifulSoup
from Tkinter import Tk

parser = argparse.ArgumentParser(description='Output the BodySlide information in an XML file in BodyGenData format.')
parser.add_argument( "filename", type=str, default="", help="The BodySlide xml file" )
parser.add_argument( "--weight", type=str, default="range", help="Whether you want to extract the (small) weight=0 values, (big) weight=100 values, or a range from 0 to 100. Enter small, big or range." )
args = parser.parse_args()
# size: small / big

if os.path.isfile(args.filename):
    file = open(args.filename, "r")
    soup = BeautifulSoup(file, "lxml-xml")
    for set in soup.find_all('Preset'):
        strLine = set.get('name').replace(" ", "") + "="
        dictSlider = {}
        for slider in set.find_all('SetSlider'):
            if slider.get('name') in dictSlider.keys()  :
                dictSlider[slider.get('name')][slider.get('size')] = float(slider.get('value'))/100
            else:
                dictSlider[slider.get('name')] = { slider.get('size'): float(slider.get('value'))/100 }
            # strLine += slider.get('name') + "@" + str(float(slider.get('value'))/100) + ", "
        for slider in dictSlider:
            if len( dictSlider[slider] )==2 and dictSlider[slider]['small']!=dictSlider[slider]['big']:
                if args.weight=="range":
                    strLine += slider + "@" + str(dictSlider[slider]['small']) + ":" + str(dictSlider[slider]['big']) + ", "
                else:
                    strLine += slider + "@" + str(dictSlider[slider][args.weight]) + ", "
            elif len( dictSlider[slider] )==1:
                strLine += slider + "@" + str(dictSlider[slider].itervalues().next()) + ", "
            else:
                pass
        strLine = strLine[:-2]
        print strLine
        try:
            r = Tk()
            r.withdraw()
            r.clipboard_clear()
            r.clipboard_append(strLine)
        except:
            pass

Mate you just made my day biggrin.png

 

 

 

giphy.gif

 

This will skyrocket the bodygen mod.

 

 

You're doing the Lords work shoka.

I don't Have Python, or any codey ability, but I understand what you're achieving, nice.

Is there any possibility it could be  converted to a User Friendly GUI/program at some point by you or someone else?

 

 

Hey,

 

Perhaps I shouldn't have, but I opened a new forum dedicated to this. I am wondering if there is enough demand for it? There is now a working code - still in alpha, but works as intended. I am just trying to see if there is any demand to turn this into a small project.

 

https://www.loverslab.com/topic/66322-bodyslide-to-bodygen-conversion-cbbe/

I wrote a script to convert BodySlide to BodyGen. If there is interest, there is a way to convert this into a full project to have multiple body types in Skyrim for all NPCs. It is a bit involved, and requires concentration to understand if want the details or want to actually use the code.

 

https://www.loverslab.com/topic/66322-bodyslide-to-bodygen-conversion-cbbe/

 

I do not mean to troll, sorry about the repeat message. I am just trying to see if there is any demand for this.

Link to comment
  • 3 weeks later...

Is there a video tutorial or anything? it doesn't seem to be working for me.

 

files attached: sexlab submit is the last plugin in my load order.

 

placed it in "D:\Mod Organizer\overwrite\meshes\actors\character\BodyGenData\SexLab Submit.esp"

 

mod list:

 

 

 

# This file was automatically generated by Mod Organizer.
Skyrim.esm
Update.esm
Dawnguard.esm
HearthFires.esm
Dragonborn.esm
Skyrim Project Optimization - Full Version.esm
Falskaar.esm
Unofficial Skyrim Legendary Edition Patch.esp
ETaC - RESOURCES.esm
WM Flora Fixes.esp
Lanterns Of Skyrim - All In One - Main.esm
Inn Girls Resources.esm
notice board.esp
CreatureFramework.esm
ZaZAnimationPack.esm
Schlongs of Skyrim - Core.esm
SexLab.esm
SexLabAroused.esm
ApachiiHair.esm
ApachiiHairFemales.esm
ApachiiHairMales.esm
SGHairPackBase.esm
Cutting Room Floor.esp
FNIS.esp
SkyUI.esp
iActivate.esp
iHUD.esp
RelightingSkyrim-NoScripts.esp
Atlas Compass Tweaks.esp
Bounty Gold.esp
Animations.esp
Customizable Camera.esp
ETaC - Complete.esp
EnhancedWetnessandPuddles.esp
Weapons & Armor Fixes_Remade.esp
Complete Alchemy & Cooking Overhaul.esp
RelightingSkyrim_DB.esp
3DNPC.esp
Tes Arena - Skyrim Frontier Fortress.esp
RelightingSkyrim_DG.esp
Skyrim Immersive Creatures.esp
Immersive Orc Strongholds.esp
Dual Sheath Redux.esp
towConversation.esp
HelmetToggle.esp
SkyrimCoinReplacerRedux.esp
SkyFalls + SkyMills.esp
ESFCompanions.esp
Immersive Solstheim.esp
Holidays.esp
ETaC - Complete Holidays Patch.esp
Ordinator - Perks of Skyrim.esp
Skyrim Immersive Creatures - DLC2.esp
Immersive Whiterun.esp
Populated Lands Roads Paths Legendary.esp
Point The Way.esp
HarvestOverhaul.esp
PermaZONESLegendaryBalanced.esp
Combat Evolved.esp
Skysunder Metamagics.esp
BFT Ships and Carriages.esp
Inconsequential NPCs.esp
notice board - dragonborn patch.esp
Cloaks.esp
RelightingSkyrim_HF.esp
Atlas Legendary.esp
Populated Cities Towns Villages Legendary.esp
ETaC - Dragon Bridge South.esp
Immersive Patrols II.esp
MusicMerge.esp
TES ARENA AIO-Clutting-patch.esp
Immersive Wenches.esp
Immersive Citizens - AI Overhaul Lite.esp
iNeed.esp
kuerteeGoldAjustment.esp
Lock Overhaul.esp
LootandDegradation.esp
NARC.esp
RandomIdleAnimation.esp
dD - Realistic Ragdoll Force - Realistic.esp
RealisticRoomRental-Basic.esp
bugi_quicksave.esp
SimplyKnock.esp
SkyRealism - Encumbrance.esp
TimingIsEverything.esp
MF_RadiantProstitution.esp
Apocalypse - The Spell Package.esp
TheEyesOfBeauty.esp
KS Hairdo's.esp
LovelyHairstylesCE.esp
SGHairPackAIO.esp
Ultimate NPC Overhaul II.esp
DW Enemies and Wanderers.esp
Immersive Weapons.esp
FluffArgoniansDB.esp
Disparity.esp
TradeBarter.esp
TKDodge.esp
TwoRings.esp
UIExtensions.esp
UltimateCombat.esp
attack commitment movement speed fluid 3.esp
Vivid Weathers.esp
Vivid Weathers - Falskaar.esp
Vivid Weathers - Lanterns of Skyrim Preset.esp
WetandCold.esp
WetandCold - Ashes.esp
1nivWICCloaks.esp
WondersofWeather.esp
YOT - iNeed.esp
YOT - Your Own Thoughts.esp
WeaponsArmorFixes_ImmersiveWeapons_Patch.esp
Falskaar - Notice Board.esp
VioLens.esp
AddItemMenu2.esp
PC Head Tracking - MCM.esp
PC Head Tracking - Patch.esp
CACO-Ordinatored.esp
Scrolling Speed.esp
FNIS_PCEA2.esp
FNISSexyMove.esp
SRG Enhanced Trees Activator.esp
Populated Skyrim Prisons Cells.esp
Battle Vixen Loadscreens.esp
BlackHorseCourier.esp
AHZmoreHUD.esp
RaceMenuMorphsUUNP.esp
12FemaleBrows.esp
RaceMenu.esp
RaceMenuPlugin.esp
HDT Female Hairstyles.esp
MoreNastyCritters.esp
SexLabNudeCreatures.esp
SexLabNudeCreaturesDB.esp
SexLabNudeCreaturesDG.esp
Schlongs of Skyrim.esp
SOS - VectorPlexus Muscular Addon.esp
SOS - VectorPlexus Regular Addon.esp
SOS - B3lisario UNP Addon.esp
SLAL_AnimationsByLeito.esp
SAP.esp
SLALAnimObj.esp
SLAnimLoader.esp
SexLabHorribleHarassment.esp
SC07SexLabRandomAttack.esp
HDT Piercingsets.esp
EiriesOhmesRahtReplacer.esp
XPMSE.esp
Apropos.esp
SexLabDangerousNights2.esp
SexistGuards.esp
SexLab Brawling Rape.esp
SexLabDefeat.esp
SexLabFuck'EmUp.esp
SexLab_PaySexCrime.esp
SexLabTools.esp
SexLabWorkingGirl.esp
WetFunction.esp
ElderOutfit.esp
TavernGames.esp
Inncreased Food.esp
Inncreased Food - CaCO patch.esp
prettypotions.esp
iNeed - Dangerous Diseases.esp
prettypotionsiNeedDD.esp
KomAnimObjects.esp
HonedMetal.esp
Skysunder Metamagics Apocalypse Compatibility Patch.esp
SexLab FadeBlack.esp
Apocalypse - Ordinator Compatibility Patch.esp
TaxesOfTheNineHolds.esp
Alternate Start - Live Another Life.esp
Bashed Patch, 0.esp
MasculinizedLevelLists.esp
MasculinizedLevelListsDB.esp
MasculinizedLevelListsDG.esp
Dual Sheath Redux Patch.esp
SexLab_Solutions.esp
ContinueGameNoCrash.esp
Insignificant Object Remover.esp
Inns and Taverns.esp
SexLab Submit.esp
 

 

 

SexLab Submit.esp.zip

Link to comment
  • 4 months later...

Hi guys hoping for some advice with regards to morph ini.

So in my template i have
 

  • 2 "small" breasts presets
  • 6 medium breasts presets
  • 8 large breasts presets

My goal is to have small breasts, medium breasts and large breasts appearing in a ratio of 3:2:1 respectively. What would be the best way to go about it? I tried creating clones of small breast presets but skyrim crashes if i overload the range of presets to choose from.

an example of my morph ini right now which is NOT WORKING is below:
 All | Female =Shoulders,  ShapeSlimA|ShapeSlimB|ShapeCurvyA|ShapeCurvyB|ShapeCurvyC|ShapeCurvyD|ShapeCurvyE|ShapeChubbyA|ShapeChubbyB, SlimBreastsA|SlimBreastsB|SlimBreastsC|SlimBreastsD|SlimBreastsE|SlimBreastsF|SlimBreastsG|SlimBreastsH|SlimBreastsI|SlimBreastsJ|SlimBreastsK|SlimBreastsL|SlimBreastsM|SlimBreastsN|SlimBreastsO|SlimBreastsP|SlimBreastsQ|SlimBreastsR|SlimBreastsS|SlimBreastsT|SlimBreastsU|SlimBreastsV|SlimBreastsW|SlimBreastsX|SlimBreastsY|SlimBreastsZ|SlimBreasts1|SlimBreasts2|SlimBreasts3|SlimBreasts4|BreastsA|BreastsB|BreastsC|BreastsD|BreastsE|BreastsF|BreastsG|BreastsH|BreastsI|BreastsJ|BreastsK|BreastsL|BreastsM|BreastsN|BreastsO|BreastsP|BreastsQ|BreastsR|BreastsS|BreastsT|BreastsU|BreastsV|BreastsW|BigbreastA|BigbreastB|BigbreastC|BigbreastD|BigbreastE|BigbreastF|BigbreastG|BigbreastH|BigbreastI|BigbreastJ

 
Link to comment
  • 2 weeks later...

I actually extended upon that code up there and now it has a graphical interface.

But I don't know what to do with it tbh. I barely have the time to finish it, and I certainly cannot write documentation or provide support.

 

I will finish it, but it looks like I will be the only one using it.

 

If anybody is interested, please let me know.

Link to comment

I actually extended upon that code up there and now it has a graphical interface.

 

But I don't know what to do with it tbh. I barely have the time to finish it, and I certainly cannot write documentation or provide support.

 

I will finish it, but it looks like I will be the only one using it.

 

If anybody is interested, please let me know.

 

shoka, I would be interested. Thanks

Link to comment
Test2=7B Bombshell Low@0.25:0.5|7B Bombshell High@0.25:0.5|7B Cleavage Low@0.25:0.5|7B Cleavage High@0.25:0.5|7B BCup Low@0.25:0.5|7B BCup High@0.25:0.5|7B CH Low@0.25:0.5|7B CH High@0.25:0.5|UNP Low@0.25:0.5|UNP High@0.25:0.5|UNP Skinny Low@0.25:0.5|UNP Skinny High@0.25:0.5|UNPB Low@0.25:0.5|UNPB High@0.25:0.5|UNPetite Low@0.25:0.5|UNPetite High@0.25:0.5|UNPSH Low@0.25:0.5|UNPSH High@0.25:0.5|Demonfet Low@0.25:0.5|Demonfet High@0.25:0.5|Top Model Low@0.25:0.5|Top Model High@0.25:0.5|Leito Low@0.25:0.5|Leito High@0.25:0.5|Venus Low@0.25:0.5|Venus High@0.25:0.5|ZGGB-R2 Low@0.25:0.5|ZGGB-R2 High@0.25:0.5|Manga Low@0.25:0.5|Manga High@0.25:0.5, 7B Bombshell Low@0.5|7B Bombshell High@0.5

I've created above template and added it to all females.

While testing I couldn't help myself and spawned in loads of NPCs to bask in the glory of diversity :)

 

The template uses some body types I'd never use as a standalone, but when combined with other body types they increase variety quite nicely.

I'm planning on using this template for nords and create more for the other races.

 

I can't believe I didn't know about BodyGen a few days ago.

 

Edit:

Well, only the RedguardRace-filter is working for me.

It seems like it was working just fine for some people and only partially for others.

What's the current status of race filters?

Link to comment

shoka's BodySlide to BodyGen converter didn't run on my 32-bit machine so I was forced to write my own simple converter with java

using some of the pointers from shoka's thread.

 

This tool is outdated!

Use the new one here.

 

Changelog:

 

 

Updated (May 3, 2017)

- Added convenient buttons and sliders for setting all min and all max.

 

Updated (March 26, 2017)

- Fixed a bug where undefined sliders with default values are incorrectly inverted. Sheesh! You're gonna have to re-add your affected xmls to fix them.

- Adding an already existing xml will now override the existing xml instead of ignoring the action.

- Fixed slider values not being rounded to 2 decimals.

 

Updated (March 22, 2017)

- Converted slider values are now calculated during runtime instead of during xml import only. Before, that means changing the settings file will have no effect on an existing slider value in a saved .jbs2bg file. Now, the BodySlide values are the ones stored in the save file instead of the converted BodyGen values. This also means previously saved .jbs2bg file won't be compatible! Sorry 'bout that.

You must restart the app whenever you change the settings.json though.

- Saved .jbs2bg files are now "pretty printed" to be easily human-readable.

- Sort list of morphed NPCs and list of target's presets alphabetically.

- Display name of current file in use on the title bar.

 

Updated (March 15, 2017)

- Created a "settings.json" file for defining default values and multipliers. Inverted sliders can be defined in this file by setting a negative value as a multiplier.

- SetSlider "Double Melon" shouldn't be inverted.

- Added a convenient "View Image" function when browsing NPCs. To show an image, an image file with the NPC's name must be in the "images" folder, then put the "images" folder in the same location as "jBS2BG.jar". An attachment of a collection of NPC images can be found below.

 

Updated (March 12, 2017)

- Each individual SetSlider in a preset can now be assigned a range based on their min/max by using the edit button.

- Added buttons for renaming and duplicating a preset.

- Now sorts SliderPresets, SetSliders and NPCs in the database alphabetically.

 

Updated (March 11, 2017)

- Fixed incorrect setup of default base values.

- Set 100 as default for both min and max weight sliders.

- Added a counter for the target's presets.

 

Updated (March 10, 2017)

- Slider values separated by " | " doesn't seem to work when I tested them, the values didn't get distributed. So I removed the checkboxes and replaced them with percentage weight sliders to define the range of the set sliders instead.

- Fixed the not working Remove Preset From Morph Target button.

 

Updated (March 8, 2017)

- Changed radio buttons into checkboxes instead, the preset's values can now be randomized between what is checked using " | ".

- Added a Morphs panel for generating "morphs.ini". A text file containing a list of NPCs is required to be able to add NPCs into the list.

A TES5Edit script (jBS2BGExportNpcList.pas) for generating the list is included in the archive along with a sample list

(FemaleNPCList.txt) that was generated from Skyrim.esm, Dawnguard.esm, HearthFires.esm and Dragonborn.esm.

- Added a save and load feature. This feature can save and load your settings to and from a ".jbs2bg" file (actually a json file).

The data of the presets are saved along with the file so the external XML and text files used are no longer required, which means users can easily share their settings.

 

 

 

Requires Java 8 installed of course.

It was written on a whim and I haven't tested it much, so feel free to give it a run and tell me if there's something wrong.

 

If you downloaded the "images.7z" archive attached below, put the extracted "images" folder inside "jBS2BG" folder for the "View Image" function to work.

 

Screenshots:

 

 

 

j_BS2_BG-_Templates.png

j_BS2_BG-_Morphs.png

j_BS2_BG-_Templates-_Edit.png

 

 

 

images.7z

jBS2BG - 20170326.7z

jBS2BG - 20170503.7z

Link to comment

Updated (March 8, 2017)

Updated the tool above to support generating the morphs file from a list of NPCs and also added support for saving and loading work progress.

 

Updated (March 10, 2017)

Separating slider values with " | " doesn't work so I replaced them with percentage weight sliders instead and also fixed a not working button.

 

Updated (March 11, 2017)

Fixed incorrect setup of default base values and set 100 as default for both min and max weight sliders.

Link to comment

Updated again...

 

Updated (March 12, 2017)

Replaced the min/max weight sliders in the templates panel with an edit button that launches a menu for editing each individual SetSlider in the selected preset.

Also implemented renaming, duplicating and alphabetical sorting.

 

Updated (March 15, 2017)

Created a "settings.json" file for defining defaults and multipliers.

Added "View Image" function.

 

Updated (March 22, 2017)

Converted slider values are now calculated during runtime instead of during xml import only.

This will break compatibility with previously saved .jbs2bg files! Sorry!

Link to comment
  • 2 weeks later...

 

 

Here is my templates.ini. I use various combinations of body shapes and appropriate breast types.

 

I edited these on my own looking at amateur pictures online. They are not meant to be fantastical, they are meant to be realistic and average. Some of them are more pleasing to look, some not.

Shoulders=ShoulderSmooth@1:2

ShapeSlimA=HipBone@-0.25, Hips@0, SlimThighs@1, Thighs@-0.5:-0.25, Butt@0:0.5, AppleCheeks@-0.5, ButtCrack@0:1.5, Legs@0.25, BigTorso@-0.5, Waist@0.25, WideWaistLine@0.5, ShoulderWidth@1
ShapeSlimB=Waist@1, WideWaistLine@0.5, BigTorso@0.5, Butt@1, ButtSmall@1, AppleCheeks@-0.5, RoundAss@1, HipBone@-0.5, Thighs@-0.25, ChubbyLegs@-0.25, Legs@-0.1
ShapeCurvyA=Waist@0.4, WideWaistLine@0.4, ChubbyWaist@0.75, Butt@-0.75, ButtShape2@0.75, ChubbyButt@0.3, Thighs@0.5, ChubbyLegs@0.5, ChubbyArms@0.75
ShapeCurvyB=BigTorso@0.05, Waist@1, WideWaistLine@0, ChubbyWaist@0.1, Back@0.25, Butt@0.25, AppleCheeks@0.1, Groin@-2:2, Hips@0.25, SlimThighs@-0.25, Thighs@0.1, Legs@-0.1
ShapeCurvyC=Thighs@0.5:0.75, Waist@1, WideWaistLine@0.75, Legs@-1, CalfSize@1
ShapeCurvyD=Thighs@0.2, ChubbyLegs@0.33, SlimThighs@0.36, HipBone@0.33
ShapeCurvyD=BigTorso@0.67, Thighs@0.5, Legs@-0.33
ShapeChubbyA=BigTorso@0.05, Waist@1, WideWaistLine@0, ChubbyWaist@0.1, Back@0.25, Butt@0.25, AppleCheeks@0.1, Groin@1:2, Hips@0.33, SlimThighs@-0.25, Thighs@0.25, Legs@-0.1, CalfSize@0.25, CalfSmooth@0.25, Belly@0.25, TummyTuck@-0.5
ShapeChubbyB=BigTorso@1, Thighs@0.5, Legs@-0.33, ChubbyLegs@0.75, Waist@0.5, ChubbyWaist@0.75

SlimBreastsA=Breasts@0.3, BreastsSmall@0.5, BreastFlatness@0.3, NippleAreola@0:0.5, NippleDown@0.25, NippleTip@0.25
SlimBreastsB=Breasts@0, BreastsSmall@0.5, BreastsFantasy@0.25, BreastFlatness@0.3, BreastGravity@0.75, PushUp@0.75, BreastHeight@1, BreastWidth@-1, NippleAreola@0.5:1, NippleTip@0.25
BreastsA=BreatsSmall@0.5, BreastsSH@0.5, BreastCleavage@0.2, PushUp@0.5, BreastWidth@-0.75, NipplePerkiness@0.4, NippleDown@0.5, Breasts@1:-0.25
BreastsB=Breasts@-0.25, BreastsSmall@0.25, BreastsSH@0.25, BreastsSSH=0.25, BreastCleavage@0.5, BreastFlatness@0.25, BreastGravity@0.5, BreastHeight@0.25, BreastWidth@-0.75, NippleAreola@0:0.5, NippleDown@0.25
BreastsC=BreastsSH@0.75, BreastsSSH@0.25, BreastsFantasy@0.25, DoubleMelon@-0.5, BreastCleavage@-0.5, BreastFlatness@0.1, BreastGravity@0.75, PushUp@0.5, BreastHeight@1, BreastPerkiness@1, BreastWidth@-0.25, NippleDistance@0.75, NippleAreaola@1, NippleDown@0.75
BreastsD=BreastsSSH@0.67, DoubleMelon@0.33, BreastCleavage@0.5, BreastGravity@0.33, BreastPerkiness@1.25, BreastWidth@-1.25, NipplePerkiness@1.25, NippleSize@-0.25, NippleAreaola@1, NippleDown@0.33
BreastsE=Breasts@0.5, BreastsSmall@0.5, BreastsFantasy@1, NippleSize@-0.25:0, NippleAreaola@0.85
BreastsF=Breasts@0.33, BreastsSmall@-1, BreastsFantasy@0.75, BreastFlatness@0.25, BreastPerkiness@1, BreastWidth@-0.5, NipplePerkiness@0.75 
BreastsG=Breasts@-0.5, BreastGravity@0.5, NipplePerkiness@0.67, NippleAreaola@1
CurvyBreastsA=Breasts@-1, BreastsSH@0.5, BreastCleavage@0.5, BreastFlatness@1, BreastGravity@0.5, BreastHeight@0.5, BreastWidth@-1.25, NippleAreola@1.25:1.75, NippleUp@0.75
CurvyBreastsB=Breasts@-0.25, BreastsSSH@0.25, DoubleMelon@0.33, BreastCleavage@0.75, BreastGravity@0.25, BreastWidth@-1, NippleAreola@0.75:1.25, NippleSize@1
CurvyBreastsC=Breasts@-0.67, BreastsSmall@0.5, BreastsSH@-1.25, BreastsSSH@1.05, BreastCleavage@0.5, BreastGravity@0.33, NippleSize@0.67, NippleAreola@0.25:0.5
CurvyBreastsD=Breasts@0.25, BreastFlatness@0.25, BreastGravity@0.5, BreatHeight@0.25, NipplePerkiness@-0.5, NippleSize@-0.1, NippleAreaola@1
CurvyBreastsE=Breasts@-0.75, BreastsSH=0.25, BreastFlatness@0.33, BreatHeight@0.33, BreastPerkiness@0.33, NipplePerkiness@1, NippleAreaola@1, NippleDown@0.33

Here is a Python v2.7 script (Windows) to convert Preset XML files into BodyGen data. It automatically does all the conversion, prints the output, and copies that output to the clipboard automatically. It is working, but I would appreciate some alpha testing. I saw this go horribly wrong with some presets, and I am not sure what is wrong.

 

Clearly you need to have Python v2.7 installed on a Windows computer if you would like to use it. If you have that, I would appreciate some feedback. Otherwise, it is probably not worth installing Python for.

 

Also, feel free to use and modify the script to your heart's desire.

#! python2

import argparse
import os
from bs4 import BeautifulSoup
from Tkinter import Tk

parser = argparse.ArgumentParser(description='Output the BodySlide information in an XML file in BodyGenData format.')
parser.add_argument( "filename", type=str, default="", help="The BodySlide xml file" )
parser.add_argument( "--weight", type=str, default="range", help="Whether you want to extract the (small) weight=0 values, (big) weight=100 values, or a range from 0 to 100. Enter small, big or range." )
args = parser.parse_args()
# size: small / big

if os.path.isfile(args.filename):
    file = open(args.filename, "r")
    soup = BeautifulSoup(file, "lxml-xml")
    for set in soup.find_all('Preset'):
        strLine = set.get('name').replace(" ", "") + "="
        dictSlider = {}
        for slider in set.find_all('SetSlider'):
            if slider.get('name') in dictSlider.keys()  :
                dictSlider[slider.get('name')][slider.get('size')] = float(slider.get('value'))/100
            else:
                dictSlider[slider.get('name')] = { slider.get('size'): float(slider.get('value'))/100 }
            # strLine += slider.get('name') + "@" + str(float(slider.get('value'))/100) + ", "
        for slider in dictSlider:
            if len( dictSlider[slider] )==2 and dictSlider[slider]['small']!=dictSlider[slider]['big']:
                if args.weight=="range":
                    strLine += slider + "@" + str(dictSlider[slider]['small']) + ":" + str(dictSlider[slider]['big']) + ", "
                else:
                    strLine += slider + "@" + str(dictSlider[slider][args.weight]) + ", "
            elif len( dictSlider[slider] )==1:
                strLine += slider + "@" + str(dictSlider[slider].itervalues().next()) + ", "
            else:
                pass
        strLine = strLine[:-2]
        print strLine
        try:
            r = Tk()
            r.withdraw()
            r.clipboard_clear()
            r.clipboard_append(strLine)
        except:
            pass

Mate you just made my day :D

 

 

Hi Shoku, any chance you mind pointing out to me which ones are the big and pleasant looking breasts types? Hoping you could tell me so i could save some time from actually having to test to see each of them in game which would take a bit of time. Thanks!

Link to comment
  • 4 weeks later...

I was looking at some of these other ini files and I think I may be mistaken about how the morphs are executed. Say I have two morphs that adjust overlapping sliders, such as:

 

MorphA = BreastsSH@0:1 , Thighs@0:1

MorphB = BreastsSH@0:1 , Hips@0:1

 

So in the case that I have both these morphs being applied to all females, I though you'd end up calculating the "BreastsSH" morph twice with only the second result being applied. Is that correct or am I missing something?

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