- elements in the Clothing tab are now recognized by the right click menu of UXPlus as triggerable parameters
- show asterisk in the Physics tab's Breast Weight button if Rotation Inertia is modified
- suppress a possible error message during init/restore
- adding the Auto-Update.cs script to a person that doesn't have a Naturalis instance no longer complains about that, but just adds Naturalis.cslist
- clothing profile file browser no longer shows presets included in the package when setting a target profile (see docs), those are only meant for use as templates (see docs)
Naturalis v1.3 is out of beta! All info about new v1.3 features is in the previous update posts.
v1.3-beta4 -> v1.3.0:
Trigger memory optimization on calibration done:
The calibration cache implementation uses a lot of memory (hundreds of MB), most likely due to file reads and writes, even though the files themselves are very small. This memory would normally be freed up at some point automatically (by the C# runtime's garbage collector), but since that optimization causes an annoying hiccup (a 1 frame freeze for a fraction of a second), the plugin now triggers the optimization at the end of the calibration. The setting is on by default.
It's mainly useful when using calibration caching which I assume most people will be using. However, even with caching disabled, it could help reduce the frequency of those hiccups when playing scenes, given that there are many other potential sources that can build up memory use (other plugins, UI navigation, loading looks etc.).
Fixes
- Fixed issue where mass could get stuck to minimum value during calibration (introduced in the v1.3-beta4)
- Fixed issue where loading or resetting the in-plugin TittyMagic or BootyMagic preset during an ongoing calibration would result in the person atom staying in the calibration pose with collision off, instead of restoring the pose and collision back to normal
- Fixed issue where negative slider values in a clothing profile's Soft Physics settings did not work (broke in v1.3-alpha2)
- Fixed issue where using the Reset button to restore the plugin to defaults complained about "migrating from unknown version"
- Using the Reset button now also sets the advanced soft physics toggles appopriately based on your defaults set in Naturalis User Preferences
- Fixed potential null error during plugin restore
- Fixed issue where the Reset button in BootyMagic used the "default enabled" user preferences for breasts to set the advanced soft physics toggle values
- Prevent occasonal null error during init ("Error during migration from unknown version: System.NullReferenceException: Object reference not set to an instance of an object")
Calibration result caching
When a matching result is found in the cache, the calibration finishes quickly. It still needs to freeze the scene and load the calibration pose briefly, however, because finding a matching calibration result is done based on the actual physical breast/glute shape. Apart from that, matching is done based on relevant plugin parameters and other settings, so you will accumulate cached results for all kinds of different combinations of plugin parameters and models.
A single cached result is about 80 KB of data combined for BootyMagic and TittyMagic, which means 1 GB of disk space will fit about 12500 unique calibration results. I think the cache will become obsolete due to changes in the plugin well before its size becomes a problem.
Naturalis user preferences has been reorganized a bit to fit new options regarding the caching:
Also note that:
- Calibration results are stored in Custom\PluginData\everlaster\Naturalis\CalibrationCache.
- Caching is enabled by default.
- If there's any visible issue with the plugin's behavior and you suspect it might be due to some kind of faulty cached result, you can trigger a full calibration using Calibrate Now Without Cache.
- The Clear Calibration Cache button deletes all files in the CalibrationCache\TittyMagic and CalibrationCache\BootyMagic directories.
Fixes/other
- Calibration data is still saved into the scene file when you save the scene without a pending calibration - when you load the scene, it'll instantly load the data from the scene file and doesn't load it from the cache.
- Scenes saved with previous versions will not use the saved data, but will calibrate normally on scene load. This is due to changes in the format in which the calibration data is saved in the scene file.
- calibrating with soft physics enabled will now always do the multi-directional calibration, even if none of the Advanced Soft Physics toggles are on
- this ensures that you can just enable those toggles without having to calibrate again, and that the cached calibration data works regardless of those toggles
- fixed broken zeroing of duplicate morphs from earlier vars
- morphs from earlier Naturalis versions are now zeroed automatically post Pose Preset load and during calibration
- prevent drawing visualizations during calibration
Fairies and giantesses: full atom scale support
Credit: Spawn Point by AcidBubbles [CC BY-SA]
This update adds support for very low or high person atom scales. You can now have a tiny little model with the breast/glute physics or a normal sized person - or a gigantic one. As you can see in the video, VAM still applies its own physics scaling to the body's joints, causing tiny person atoms to stiffen up, and the opposite for gigantic person atoms. The plugin doesn't try to equalize the overall body's physics, just the breast and glute joints and soft physics.
In previous versions, the plugin attempted to calculate the mass and other parameters from the absolute breast/glute volume in world space, however the rest of the plugin didn't properly adjust to different atom scales. Now, the plugin tries to make the physics as atom scale independent as possible so that unrealistically small or large person atoms can still have good looking jiggle physics.
If you want an unrealistically upscaled person atom to have behavior that would be appropriate for the size, you can try to increase breast and glute mass values in the plugin, but you'll hit the upper limit of mass pretty easily. In most cases however things look better when the behavior is similar to what you'd get with a normal size person atom.
QOL
When loading plugin data saved with Naturalis v1.1 (either via preset, Auto-update.cs, or by loading a scene with the referenced version not present) the Up/Down Base Angle is not set to the default value of +9 degrees. Instead it's set to the value of the gravity offset morphing slider that existed in v1.1 and earlier versions. The reason for this is to prevent plugin parameters designed for specific models to not change the base breast shape of those models. In other words the plugin only sets the +9 default angle when adding a fresh new plugin instance, or when loading a plugin parameters that were saved with v1.2 or v1.3.
When auto-updating from or loading a scene (or VAM plugin preset) saved with v1.1, you'll get a message like this in the log:
Additionally, when loading an in-plugin preset saved with a mismatching version, it will show the version the loaded preset was saved with in the UI:
Note: If your default in-plugin preset was saved with v1.1, you may need to update its Up/Down Base Angle offset value.
Fixes/other
- fixed obscure bug where glute joint mass would be zero after adding the plugin
- this only occurred if you had morph monitoring enabled in Naturalis user preferences and Auto Female Genital/Anus Morphs enabled in Auto Behaviors
- lean forward morphed shape is now closer to v1.2, it looked better (it was changed in v1.3-beta1)
- prevent unnecessarily processing morphs for morph monitoring again when plugin re-enabled (introduced in v1.3-alpha2)
- fixed issue where the morphs used by the base angle parameters were saved in the scene json (they were zeroed anyway during calibration, so probably a low impact issue)
Nipple clipping prevention for clothing profiles
Credit: Nymreth by GilgameshVR and KyussVII [CC BY], VAM-included hair and skin by RenVR, Skin Micro Detail & Tessellation Plug-In by northern.shikima
The "Flatten Nipples" slider sets a limit on how long nipples can be. The reduction in length is done with a morph based on the built in Nipples Depth morph.
The slider value saves with the clothing profile, default is 0 since it depends on the item whether clipping is an issue. The profile should then work to eliminate clipping regardless of what look the clothing is enabled on.
Other
- separate left and right Nipple Erection sliders
- possible to drive the slider values with separate left and right collision triggers, for example
- fixed issue where adding another instance of Naturalis wasn't prevented correctly
- fixed issue where the Down Angle Limit's offset slider value would not restore correctly from the save file
This update post details changes since v1.2.
Soft physics mesh pressure
Mesh pressure expands soft physics mesh as soft joints are pushed towards the center of the mesh. It automatically compensates for volume loss in collisions by physically expanding the soft physics mesh.
It's very performant, there's barely any effect on frame rate.
Credit: Nymreth by GilgameshVR and KyussVII [CC BY], Eyes reflection and shadow (Male/Female/Futa) by paledriver [CC BY], VAM-included hair and skin by RenVR
You can configure the pressure using a new soft physics parameter called Fat Pressure Multiplier. It's a multiplier on how much pressure force the soft joints can receive. This is just like any other soft physics parameter in the UI, should be pretty easy to use if you're familiar with adjusting soft physics parameters in Naturalis:
By default, the the outer multiplier is low and areola/nipple multipliers are high, so the pressure force degrades towards the edges of the physics mesh.
Like other soft physics parameters, you can set the value along a gradient and dynamically adjust it using depth physics and/or local distortion physics. Whether those dynamic adjustments make sense for this parameter, not sure - but worth experimenting with!
Soft joint depth physics
Depth physics is the change of soft physics parameter values based on the depth of soft joints relative to the center of the mesh. This is similar to Local Distortion Physics which drives the parameters based on distances from neighboring soft joints.
Credit: Nymreth by GilgameshVR and KyussVII [CC BY], Skin 6 by Riddler [CC BY], EditedSkin1 by PicoVam [CC BY], long hair17 by ddaamm [CC BY], BooMoon - Piercings by BooMoon [CC BY], Eyes reflection and shadow (Male/Female/Futa) by paledriver [CC BY], Eyes! Lips! Nails! by Jackaroo [CC BY], Arms Tattoo by VamLooks69 [CC BY], WindControl+ by wgsoup [CC BY], Joint Correct by FallenDancer [CC BY-NC-SA, with permission]
The video is from v1.3-alpha1 - in the beta the feature is more full fledged, supporting increasing or decreasing the value with the depth either increasing (pushed in) or decreasing (pulled out):
The most important default settings are for Fat Spring which is set up to increase when the mesh is pushed in, and decrease when mesh pressure pushes the soft joints out.
There is a performance cost to dynamically updating soft physics values. The performance cost is basically the same whether depth physics, local distortion physics or both are enabled.
Rotation inertia
Rotation Inertia adds resistance to the joint's rotation similar to how mass adds resistance to its movement. It is available in a new sub section in the Breast Weight and Glute Weight windows:
For small to medium breasts the default rotation inertia is close to its normal value in VAM, and for very large breasts it is increased. It slightly dampens the joint's rotation and makes it resist movement due to short-lived forces (e.g. a quick slap/push or chest movement in an animation). The effect of this parameter is nothing revolutionary, it's just a slight incremental improvement and an additional configuration option.
For glutes, I couldn't really find any value in increasing the rotation inertia. Instead, I just put it to the minimum value, it's unaffected by glute size/mass. I think the core idea here is that the glutes don't hang off of the hip but are structurally part of it, so the glutes shouldn't behave too much like they're hinged on the glute joint.
Softness (Soft Physics) vs. Softness (Joint Physics)
Main window:
Other changes in the main window you'll see are that the soft physics toggle is moved to the top, and there's a new advanced soft physics area. Advanced soft physics differentiates between the advanced soft-physics-only features of Naturalis from the basic soft physics of VAM. It includes the dynamically adjusting soft physics (depth and local distortion) as well as the new mesh pressure implementation.
- The Softness (Soft Shysics) slider affects soft physics parameters and a background offset on hard collider depth. This slider doesn't do anything if soft physics is disabled.
- The Softness (Joint Physics) slider affects everything else - joint physics parameters, other collider properties, background multipliers on morphing, how gravity affects breasts/glutes.
- Using different values you can make the joint very rigid while keeping the soft physics soft, and vice versa.
Other physics changes
Morphing changes
- increased default damper of soft breasts slightly
- increased default downward (upright pose) gravity of small breasts slightly
- improved breast up/down angle target's adjustment with angle (gravity physics) - (1) breasts that aren't max softness drop slightly more heavily when upright, (2) breasts don't climb up as much when leaning back 90 deg or more
- Fat Mass gradient defaults - outer multiplier is now 0.65 (was 1.00), so fat mass decreases towards the edge
- Fat Distance Limit - in TittyMagic, it now has the same base value whether local distortion physics enabled or not, and no longer adjusts with local compression/stretching
Unified and improved calibration
- reduced amount of upward morphing by 10% (equivalent to 0.9 Up multiplier in previous version)
- improved depth morph values to better maintain a consistent breast size (reduced depth in morphing size, increased depth out morphing size compared to before)
Both plugins now always calibrate whenever you calibrate.
Improved morph monitoring
- The precision of calibration is now near perfect - there were a couple of bugs and oversights that caused the calibrated up/down and right/left angles to be off by several degrees, which affected the way morphs were applied
- Multidirectional calibration is a bit faster and becomes faster the lower the softness (since the soft joints stop jiggling more quickly) and the smaller the breasts/glutes
- When any of the advanced soft physics features is enabled in either plugin and the plugin has gone through the multi directional calibration, you can then toggle any of those advanced soft physics features on or off in either plugin without another calibration. This makes it easy to compare and see the difference when using those features.
As you may know, the plugin listens for changes to morphs that affect the chest/hip area (excluding pose morphs), and puts calibration to pending when a change is detected.
The plugin initializes this monitoring system more quickly now, especially if you don't have tons of custom morphs. This should improve loading time on the first time you add the plugin. Note: if loading time is still slow, you can disable the monitoring in Naturalis User Preferences (but then morph changes won't be detected).
Other improvements:
Fixes, QOL & other
- Changes to monitored morphs are now detected instantly and there's no performance overhead.
- Morphs that only have a small effect can be adjusted more without triggering the pending calibration. The amount you can adjust goes up to a morph slider value of about 0.150 for morphs that have a small effect, and down to 0.005 for morphs that have a major effect. Previously, any monitored morph would trigger the pending state when adjusted +/- 0.001.
User preferences updates
- improved the way that friction drops off towards zero as hard colliders move away from the volume (previously glute collider could get stuck to the colliding object)
- the "legs" clothing tag is now recognized as valid for BootyMagic clothing adjustment items; previously only "hip" and "full body" were valid
- increased chest / torso / hip area dampers in the calibration pose to reduce jiggling
- fixed issue where pectoral colliders were enabled when removing plugin if atom collision was disabled at that time
- force is now applied immediately when changing the direction of gravity simulation (faster but not a smooth transition)
- one of the breast base angle morphs was not defined as a pose morph
- morphing is no longer paused when moving a detached person root control while Freeze Physics While Grabbing is enabled
- tiny memory use optimizations
- soft joints can be visualized for left, right or both breasts/glutes
- The Advanced Soft Physics contains new toggles for whether the new depth physics and mesh pressure features should be enabled by default. In TittyMagic, toggles for glutes are not shown, and in BootyMagic, toggles for breasts are not shown. The update rate only applies to the depth and local distortion physics. The mesh pressure force is always applied at the full physics rate.
- In the General tab, there is a new option to not show the gravity simulation control panel by default.
- The rest of the usual user preferences are split across the other sections.
- Hard collider friction no longer goes all the way to zero when using adaptive friction and high skin gloss. (This is how it worked in v1.1 as well)
- Triggering memory optimization (in VAM user preferences) deactivates on-demand loaded package morphs. Previously this caused morphing to stop working, but now the plugin reactivates those morphs if they are not active.
- Fixed error when plugin was disabled and another scene was loaded where the person had different atom scale
- Morphing is no longer paused when moving a detached person root control while Freeze Physics While Grabbing is enabled
Credit: see below
List of new features in v1.2: https://hub.virtamate.com/resources/naturalis.33647/
Documentation updated with v1.2 content: https://everlastervr.github.io/docs/naturalis/v1_2/
Starting with v1.2, new releases don't have a predefined early access period, but will become free at some point (when the next batch of new features is completed).
Changes in v1.2.0 (compared to v1.2-beta5)
- A lot of free clothing items that aren't chest/hip area items are now automatically ignored and won't show up unnecessarily in the Clothing tab
- things like makeup, hats, accessories, jewelry and piercings, gloves, boots, cum splats etc.
- clothing creators: region tag your items please! (More info in the docs)
- Fixed memory leaks when drawing visualizations
- Optimized memory use when updating text fields in the UI, e.g. things like current values of physics parameters.
- Ensured that loading an in-plugin preset saved in v1.0.x is converted properly when loaded in v1.2.x
- Ensured that migrating from TittyMagic 5 to Naturalis v1.2 using the auto-upgrade script works properly
- Prevent error when saving scene/preset when the plugin is not yet initialized (e.g. when the plugin is added to a disabled person atom, and the atom is not enabled before saving the scene)
Video Credit
- Nymreth by @GilgameshVR and @ViiVaM [CC BY]
- Skin 6 by @Riddler [CC BY]
- EditedSkin1 by @PicoVAM [CC BY]
- short hair3 by @ddaamm [CC BY]
- BooMoon - Piercings by @BooMoon [CC BY]
- Eyes reflection and shadow (Male/Female/Futa) by @paledriver [CC BY]
- Eyes! Lips! Nails! by @Jackaroo [CC BY]
- Arms Tattoo by @VamLooks69 [CC BY]
- Joint Correct by @FallenDancer [CC BY-NC-SA, with permission]
- Female Body Smoother Tessellation by @Hunting-Succubus [CC BY]
- Music: https://uppbeat.io/t/tobias-voigt/night-ride License code: MRKI6AKAXRYWGWJW
Physics Quality user preference
This setting adjusts the accuracy of pectoral/glute joint and hard collider physics. You can have more accurate physics on the breasts and glutes than the rest of the body and the overall scene. Thanks to @Dombl for the idea!
The pectoral and glute joints will have a value of 2 at minimum, so "double" the accuracy compared to normal (the reason for this is to prevent the joint from jittering/oscillating in certain angles). Setting Physics Quality to 1 will set only the hard colliders to that value.
- 1 is equivalent to having High Quality Physics disabled in VAM User Preferences.
- 5 is equivalent to having High Quality Physics enabled.
- Values 2, 3 and 4 can also be selected.
Technically this is a multiplier on Unity Rigidbody solverIterations, but VAM doesn't normally allow setting the multiplier freely, instead High Quality Physics just flips between 1 and 5. If High Quality Physics is enabled in VAM User Preferences, this setting has no effect since everything is already at 5.
The performance impact of this setting can be very significant, even though it's not just applying high(er) quality physics on a small number of objects. You can easily lose 20 frames per second at setting 5 compared to 1 when colliding actively with just one breast.
Tweaked breast physics defaults
QOL fixes - when plugin is disabled:
- reduced down angle limit (esp. on large breasts)
- tiny change on how size affects up angle limit
- increased down gravity (i.e. gravity when person is upright)
- rotation spring is less dependent on breast size (a bit higher on small-medium breasts, similar on large breasts as before)
- increased rotation damper of low softness breasts a bit
- prevent updates to physics due to clothing adjustments being synced on item toggled etc.
- prevent callbacks in various situations like when changing physics rate, toggling high quality physics, changing character etc.
- fixed issue where breast/glute joint was not getting any gravity force when loading a scene where the plugin was already disabled
- fixes to restoring original joint physics on disabling the plugin (should finally work flawlessly)
Short demo of the current physics at 100 softness and with Local Distortion Physics enabled, at three different breast sizes:
Music: Too Soon by Diamond Ace feat. Nymbius CC BY-SA 3.0; video license CC BY-SA 3.0
Joint base angles
Joint base angles are breast/glute rotation morphs that function similarly to physics parameters. The purpose is to allow for adjusting the breast/glute angle without affecting physical behavior in any way. The morphs were created by rotating the actual pectoral or glute bone (similar to how angle targets apply rotation) - while the morphs are not perfect replicas of how the shape changes when rotating the bone, they're close enough.
By default, the breast up/down base angle is +9, effectively cancelling out almost all the droop that the plugin's physics settings cause relative to VAM's default physics, up to about a medium size:
The smaller the breasts, the more accurately the droop is cancelled out with the default angle of +9. If the angle looks off, simply adjust the base angle and calibrate. You can use the "Enable calibration state" toggle to load the calibration pose, pause the plugin's real-time updates to morphs etc., and freeze the scene. This way, it should be easy to get the angle "just right".
The base angles are available in the Up/Down Angle and Right/Left Angle parameter windows:
These windows also contain the corresponding angle target and angle limit parameters.
Calibrated angle limits (TittyMagic)
Other defaults changes (TittyMagic)
- Joint up/down and right/left angle limits are now calibrated for different sizes
- For small breasts, the limits are not super tight. Making the limits too tight would just make the breasts look like they "drop harder" than would be realistic for their size.
- For medium-large breasts, the limits are pretty close to the angles that the breasts naturally due to gravity.
- For very large breasts, the limits are increased compared to the default VAM values, but there's a lot of room for them to be increased. Essentially, the limits for very large breasts keep the angles in check and prevent the breasts from drooping out of control, while still allowing for a better range of movement than by default in VAM.
- The up/down base angle offset is automatically subtracted from up angle limit - basically, if you rotate breasts up by increasing the base angle, the angle limit is decreased by the same amount, ensuring that the breasts can't move too far up when there is some force pushing them up (e.g. when model is upside down or when simulating upwards gravity).
TittyMagic's defaults have been updated. This is mostly just adapting to the new base rotation parameters and the calibrated angle limits, but also an attempt to just improve the default behavior a bit.
Due to the physics changes as well as the below collider changes, all of the following parameters are ignored (= they use default values) when restoring any previous version's plugin parameters from a preset/scene JSON:
- Increase Up and Sideways In morphing by 20%
- Fat Back Force is 0 unless using a negative quickness offset on the main screen
- The custom gravity force on the breast joint is decreased for up/down and right/left directions. It's now closer to normal gravity and stays constant across different sizes (but it still decreases the lower the softness).
- Rotation Spring is decreased a bit, and its gravity adjustments (joint angle based adjustments) are removed. The gravity adjustments were problematic with the already decreased spring, so the breast rotation spring is now constant in different poses.
- Doubled rotation damper for low softness breasts
- Angles targets now adjust along a range based on softness (with the angle being 0 at softness 0)
- This is closer to how it used to work in Naturalis v1.0
- Up/Down Angle Target adjusts between -6 and +6 at max softness, based on pose (-6 when upright, +6 when upside down)
- Right/Left Angle Target adjusts between +5 and -5 at max softness (+5 for inward rotation when leaning to the side, -5 for outward rotation when leaning to the opposite side)
Collider changes
- "Up Gravity", "Down Gravity" and "Sideways Gravity" multipliers (in Breast Weight window)
- "Offset" sliders of Rotation Spring, Up Angle Limit, Down Angle Limit, Up/Down Angle Target, Right/Left Angle Limit and Right/Left Angle Target parameters
- "Up Gravity" and "Down Gravity" multipliers of Up/Down Angle Target
- "Sideways In Gravity" and "Sideways Out Gravity" multipliers of Right/Left Angle Target
- "Base Mass Multiplier" and "Mass Multiplier" sliders of hard colliders
Obsolete stuff
- Overall, breast hard collider mass is reduced, and reduces further when size is increased; just trying to balance out how easily breasts of different sizes can be moved with collision by default
- When decreasing softness to a very low value, collider spring increases and and damper decreases sharply - the colliders become "harder"
- Collider mass, spring and damper sliders have a max value 4.00
- You can still get up to 20x the default value by combining the base and collider specific sliders
Calibration
- The Gravity Offset Morphing slider is removed from TittyMagic's Morphs window - it's obsolete due to the up/down base angle which is a far superior way to counter the droop.
- Removed the "Apply changes only to left breast" and "Apply changes only to left glute" toggles from physics parameter windows. It's easy enough to just adjust the value and tell the difference before/after.
- Removed the Linear Limit parameter that was added in v1.2-beta1. It wasn't really useful.
Fixes
- Loading scenes saved with previous versions will cause the plugin to calibrate instead of skipping calibration
- this is due to the new Up/Down Base Angle parameter having a non zero default value, and due to changes to the calibration pose
- to be able to skip the calibration, save the scene again with this plugin version (can't do that with scenes in var packages, of course)
- Joint springs in the calibration pose are loosened up a bit (still much more rigid than the default pose though), and the chest is straightened out a little (it was tilted upwards too much)
- The root control is no longer ungrabbable in the calibration pose (it could get stuck like that in case of an error during calibration, or when loading the calibration pose manually from the var)
- Calibration data is no longer unnecessarily included in legacy pose/look presets
- Fixed issue where the plugin calibrated on scene load when it should've just loaded the data from the saved JSON (introduced in v1.2-beta1)
- When setting hard collider depth, the GPU colliders associated with hard colliders that provide collision with clothing and hair are now correctly updated
- Fixed issue where the default clothing profile didn't take effect if the clothing item was already equipped when adding the plugin. This issue was introduced in v1.1.11 and is present in the latest v1.1 free version.
- Fixed restoring glute joint angle targets when bootymagic is disabled/removed (third time's the charm...)
- Fixed restoring mass from VAM mass slider to the joint when the plugin is disabled/removed