DoujinStars
everlaster
everlaster

patreon


Naturalis v1.1-alpha7 Release

This update was a quite a lot of work - more than I thought it would be! It's still missing some of the features I originally wanted to include in alpha 7, those will be in the next update. But let's dive in!

Clothing UI

The new clothing UI is now finished. There's quite a lot of stuff here. Let's break it down.

Profile preset saving and loading

TittyMagic's clothing adjustment profiles are saved to VaM/Saves/PluginData/Naturalis/ChestClothingProfiles/<author>/<item display name>. For BootyMagic it's the same but the profiles folder is HipClothingProfiles.

The exact same profile location is used for both male and female clothing items. If you make versions of an item for both genders but name them identically, they should use the same profiles.

Saving opens the normal save file browser and allows you to save a screenshot:

As with the in-plugin presets, you can save to a new folder by adding the / character to the file name.

Loading a profile opens the normal load file browser. The browser shows shortcut paths to the selected clothing item's paths in any var package as well - clothing creators can include profile presets in the var package that users can easily find. Or, you could create a library of clothing profiles for various different items and package it all into the same var.

Currently active profiles are saved/loaded with the plugin. The plugin does not save the actual clothing profile slider values, instead it saves the currently loaded preset file's path. So make sure to save any changes to a profile preset file before saving the scene or plugin preset if you want the profile to restored properly! There's currently no auto-saving of a work in progress profile, but it could be implemented if necessary.

The currently active profiles are also saved/loaded with the in-plugin TittyMagic/BootyMagic presets.

Reset sets all of the parameters to plugin default values, i.e. Symmetric true, Active enabled, all sliders at 0.

Default profiles

These buttons don't open any file browser dialog. "Set As Item Default" simply saves the current profile parameters to Default.json in the item's profile folder. If you want the Default.json to have a thumbnail screenshot, you can overwrite it with the usual save function.

"Load Item Default" loads the Default.json.

Default profiles are automatically applied. When the plugin is added to a person with clothing equipped, or when a clothing item is enabled for the first time after the plugin is added, the plugin scans for a default profile from the local directory. If it doesn't find one, it scans the item's var package instead. This means a clothing creator can include the Default.json file with their creation, and Naturalis will automatically apply that profile unless the user has saved a local default profile that overrides it.

Profile cross-compatibility

Since the item that a profile is applied to is identified based on the profile's path which is just <Author>/<Item display name>, the same default profile works for every version of the item - could be a local item, or from any var package.

The profile json files only contain the parameter values, there's no info on what item it should be used with. Although the file browser only suggests paths for the selected item, you can browse to any item's folder under ChestClothingProfiles or HipClothingProfiles and apply a different item's profile. That could be useful for using an existing profile as a starting point for a different item's profile. You can also just copy-paste the Default.json from one folder to another and it'll get automatically applied for the new item.

In addition, if you save a plugin preset with ShirtA from Author.Shirts.1.var enabled, and load the preset later on when ShirtA from Author.Shirts.2.var is enabled, the plugin will try apply the profile since the author and name are a match. If the referenced profile isn't found for some reason, it'll apply the item's default profile instead (if it has one - either the local profile or the default profile from the var package).

Open customization

You can open the clothing item's customization window from the customize button.

It's the same as clicking Customize in the person atom's Clothing tab:

General settings

So far the only general setting is the morphing transition timer. It saves with the plugin.

New slider design

I customized the default slider that VAM provides - the custom slider is a bit narrower in height, but the buttons are bigger to make them more legible and more easily clickable especially with a VR pointer. The lowest and highest value buttons are gone (e.g. the -10 and +10 buttons in the above Morphing Transition slider). Those are generally just not needed. I will be converting other parts of the plugin to use this custom slider in some later version.

Info panel

Copypaste from the previous WIP post:

The a new info panel shows you all of the adjustments for all active profiles (combined values) and per left/right breast or glute. The panel can be hidden away temporarily, just like the Simulate Gravity panel.
The forces are shown in m/s^2 i.e. the actual acceleration value - you'll be able to see these values adapt to pose (or gravity simulation) and to breast size.
The amounts for all shown values are the combined amounts of all active profiles. If you have multiple active profiles, you might see that a value doesn't change even if you're adjusting a slider. That'd be because one of other profiles already applies the slider at a greater value.
With clothing adjustment sliders divided under two tabs, the info panel helps keep track of the overall status so that non-zero values on sliders that are currently not visible will still be shown in the info panel.

Identified items & tagging

TittyMagic and BootyMagic identify clothing items based on the Region Tags in the clothing item's user prefs:

The rules are simple.

1. If there are no region tags (built in or set by user), the item will show up in both plugins.

2. If "full body" or "hip" is checked, the item always shows up in BootyMagic. If neither of these is checked, but any other region is checked, the item will not show up in BootyMagic.

3. If "full body" or "torso" is checked, the item always shows up in TittyMagic. If neither of these is checked, but any other region is checked, the item will not show up in TittyMagic.

As an example, the Neo Ayane Dress has built in tags for hip and torso so it shows up in both plugins.

Another example: some headwear item like sunglasses that is correctly tagged "head", and doesn't have any of the "full body", "hip" or "torso" tags, will not show up in either plugin.

You can easily use this to ensure that the right items are showing up. Anything that's missing - just give it the "full body", "hip" or "torso" tag. Anything that's showing up incorrectly because it's missing a region tag, just give it the correct tag. Generally, clothing creators should remember to set these up so that thousands users don't have to do it individually!

It's worth noting that since a user can set any tags they like, things like applying profiles via triggers in a scene might produce errors (e.g. if the item was tagged "torso" in the scene creator's installation but "arms" in the user's installation, the item can't have a profile in the user's installation).

When you modify the tags, you have to click on Reload Items to update the plugin:

Triggerable parameters are organized in categories

The plugin now registers all of the triggerable parameters in an ordered way and shows categories for them in the trigger menu. E.g. the GENERAL category contains stuff like:

Joint physics:

...and so on. There's a lot of parameters, this makes it much easier to find what you're looking for - or what you didn't know you could even trigger.

All clothing parameters are triggerable

On initialization, the plugin exposes the parameters of clothing items that are enabled at that time. All of the clothing item parameters are at the very bottom of the list of triggerable parameters. As you enable additional items during the current plugin session, their parameters get appended to the end of the list.

Although the parameters are triggerable, the values don't save with the scene. Generally in VAM, any registered (= exposed = triggerable) parameter is also saved with the plugin JSON, but the clothing profile parameters are an exception.

I haven't yet tested animating the parameter values, but it should work fine. There might be a tiny performance cost due to code that executes every time a value changes.

The LoadClothingProfileWithPath works basically like any LoadPresetWithPath - you just give it the profile path. When the load is triggered, plugin identifies the clothing item based on the path. The item must be enabled first though, if it's disabled when the load is triggered you'll get an error in the log.

Other/fixes

Mentioned in the WIP post:

_____

Features originally planned for alpha 7 moved to the next version

_____

Whew. 😅

With the saving/loading of profiles, the system is now very usable. There's still more functionality to be added to the profiles though, and those adjustments will be at default values when loading any profile created with the current alpha 7.

Enjoy! Any issues or other feedback - let me know.

-everlaster

Comments

🤓

DelusionOverdosed

This post explains it in detail: https://www.patreon.com/posts/status-update-on-84399419 In short, I'm looking into generating morphs at runtime with a separate plugin, and the morphs could then be referenced in a clothing profile.

everlaster

Cool! just curious, what happened with the cloth squeezing? thought you were working on a way to get the clothing to squeeze the skin on edges

Cc


More Creators