Tweaks:
  • Shapeshift's Glute Side Out g-force morphs reduced to 2/3 the magnitude, they're more consistent now with the Side In morphs
  • The glute up/down and in/out g-force morphs now use the thigh joint instead of the hip joint for the rotation reference - the effect of these morphs is now more appropriate at different forward-back leg rotation angles
  • Fat spring, fat damper and fat mass now use a fixed default value during calibration to prevent inaccuracies and delays during calibration from having very low spring, high damper or high mass. These parameters otherwise don't (and shouldn't) affect the calibration result, so it's appropriate that the plugin uses optimal predefined values during calibration.
Fixes (these will also be patched to the free version soon)
  • Fixed issue where hard collider radius and depth offsets were not loaded correctly on scene/preset load
  • Fixed issue where VAM would override the plugin's hard colliders mass, spring and damper values when using physics rate of >60Hz and playing a scene animation mocap at non-real time speed. There are probably some other cases as well relating to physics rate, playback speed or time scale which could cause VAM to internally re-sync collider properties. Naturalis now detects if the collider properties have been changed outside of the plugin and immediately undoes those external changes.

G-force morph "Rotation reference"​

TLDR: In practice, the butt jiggle is noticeably better looking.

Technical explanation:
An issue in previous versions has been that anchoring g-force morphs to the LGlute and RGlute joints would cause the morph values to be greatly dampened even at high accelerations because the joint itself would rotate/jiggle, and kind of prevent the plugin from getting the correct amount of acceleration up/down or left/right. LGlute and RGlute are the physics simulated joints that VaM's (and therefore BootyMagic's) glute physics are acting on. Those joints unlike other joints in the body don't stay locked in their rotation when forces are applied.

In this version, it's possible to make the anchor joint use the rotation of a different joint. The amount of g-force is still based on how much acceleration the anchor joint is experiencing, but how much of that force is on the y-axis, x-axis or z-axis depends on the rotation of the rotation reference joint. The glute g-force morphs are now using the hip joint as a rotation reference for the LGlute and RGlute anchor joints; the hip joint rotation stays fixed and doesn't wobble due to forces.

Fixed calculation of acceleration value​

TLDR: morphs scale properly beyond 1 G of force again.
In v1.4-alpha9, I implemented a customizable curve for how g-force morph values are calculated, and mentioned that the g-force a.k.a. the joint's acceleration value itself is calculated along a smooth curve. Unfortunately, alpha9 caused the morphs to max out at 1 G when they should go all the way to 2.5 G. It took me quite a long time to realize this issue even though I could tell something was off in how the morphs were being animated.

This is now fixed, the acceleration itself is no longer smoothed in any way, each morph just uses its own smoother curve.

Calibration triggers​

1.jpg


The calibration triggers are part of overall Naturalis instance rather than separate for the different modules (since calibration itself is shared between the modules).

The triggers execute every time you calibrate, regardless of whether it goes through the full calibration, or if it calibrates from a cached result, or if it loads the calibration data from the scene save file. In the case of loading data from the scene save file, the end actions execute immediately (on the same frame) after the start actions.

Credit: MacGruber Utils (CC BY)

Minor fixes and other changes​

  • Fixed issue where opening the BootyMagic UI before first time calibration had begun would prevent the mass from being calculated and it would be stuck at 1 kg (I had already implemented a fix in an earlier v1.4 alpha but it turns out it didn't work)
  • Fixed issue where the pause toggle in Female Morphs / Male Morphs had no effect
  • Clothing profiles: fixed issue where toggling off "symmetric" didn't initialize the right side profile correctly with the left side profile's settings
  • In Shapeshift's bone offsets tab, the bone origin positions are visualized on the model
  • There's now a calibration keybindings action "Naturalis.Calibrate", rather than each script having its own calibration action.
  • Prevent offsetting physics parameters via trigger during calibration
  • Filters for the morph configs dropdown in Shapeshift (Show all, built in, packaged or local, and filter by region)
  • Various small UI fixes and layout changes
Fixed two issues introduced in alpha10:
  • Fixed issue where the calibration pose did not correctly update the hip joint rotation.
  • Fixed issue where loading a scene saved with alpha9 (84.var) would complain about missing glute under curve morphs. Those morphs, like the g-force morphs, are now forced to the default configurations using the morphs from the current package. Saving/loading customizations to the morph configurations will be added later on.
Also
  • g-force morphs use predefined constant springs and dampers during calibration to ensure a consistent calibration result unaffected by changes to the spring and damper sliders.
  • updated glute g-force morphs, smoother and higher quality
  • all new g-force morphs for calves and upper arms
  • fixes (also in the v1.3 free release)
    • fixed a longstanding issue where breasts would be incorrectly calibrated and distorted on scene load
      • this would occur when the user had soft physics disabled in user preferences when loading the scene, but the scene was saved with soft physics enabled (or vice versa)
      • now, if this discrepancy is detected, the plugin goes through the full calibration on scene load
    • fixed issue where changing timescale would cause VAM to recalculate soft physics settings and hard collider masses, radiuses etc., overriding the plugin's settings
      • the timescale change is now detected and the plugin re-applies its own settings

Shapeshift morphing system technical improvements​

I implemented a few technical improvements to the morphing system that allow more fine tuned control over how a morph's value is calculated. In short, each morph has a configurable curve for calculating the morph value, and the effect of a morph's secondary anchor can be adjusted.

Note that changes to the morph configurations themselves aren't yet loaded from saved data (in scene or preset). I'll enable that when the defaults for the configurations is closer to final, so probably in v1.4 beta eventually.

More comprehensive explanations:
Customizable curve

There's a customizable curve in the morph config UI for how g-force (or joint angle in the case of angle morphs) translates into a morph value. You can have a linear slope, an ease-in slope, an ease-out slope, an ease in-out slope (S-curve), or a parameterized S-curve where both the midpoint and the slope can be adjusted.
All g-force morphs adjust along a linear slope by default. The reason: g-force itself is now calculated along curve which enables all g-force morphs to automatically apply more sensitively near low g-forces, and less sensitively at g-forces. This curve is just in the background, it's not configurable in the UI.
Anchor ratio slider

The second improvement was a slider for adjusting how much of a morph's effect comes from its primary anchor, and how much from its secondary anchor (if it has one). In the case of thigh g-force morphs, I've set them up with 80% of the effect coming from the thigh joint and 20% of the effect coming from the shin/knee joint. Previously it was just averaged out (50/50).

New thigh g-force morphs​

The up, down, side in and side out thigh morphs are recreated from scratch. The effect is more concentrated on the thigh muscle and doesn't extend into the glute under curve, and doesn't affect the genitals area much if at all. The up-down morphs change the shape of the glute morph (rather than just shifting the skin), and the sideways morphs are now mostly rotational which I think looks more realistic. In addition, the thigh morphs now use the region springs and dampers, and those are set up with higher springs (faster jiggles, which I also think looks more realistic).

Angle morphs for the glute under curve​

The purpose of these is to dynamically adjust the crease as the leg is rotated backwards. Being able to configure a morph's curve came in handy, as there's separate inner and outer morphs for the under curve (inner being closer to the inside of the leg). The outer curve morph is applied along a steeper curve which means it will lag a bit behind the inner curve morph when the leg is rotated, but will then catch up towards the end of the rotation range. This simulates how the crease starts from the inside of the leg and builds up towards the outside of the leg as the angle increases.

Other​

  • small tweaks to spring and damper of abdomen and pelvis regions
  • g-force morphs for the overall chest area
  • added more morphs for the back
  • fixed morph jerk/hiccup occurring every 10 minutes
    ?
  • changes to how g-force morphing spring/damper work
  • various other fixes and changes

Chest g-force morphs​

As shown in the video, the chest morphs affect the broader chest area rather than just the breasts. Due to how TittyMagic's morphing works, its morphs get exaggerated when the base layer morphs in Shapeshift are applied, resulting in a bit more extreme shapes than before. This is not the intended final look, but it's decent enough for an alpha. If you want to reduce the effect, you can do so with the chest region g-force morph multiplier in Shapeshift, or perhaps reduce the base morph multiplier a bit in TittyMagic itself.

The chest g-force morphs are anchored to the chest joint and cover both sides of the chest (not independent per breast).

Back g-force morphs​

Previously there were just morphs for the up and down directions. Those morphs are redone, and morphs are also added for the in/out and side to side directions. While the back doesn't immediately sound like an area that would need dynamic morphing, it's good for balance so that gravity acting in a given direction won't just morph the front of the body while the back would be entirely static. However the morphs are pretty subtle (as they should for a non soft region).

Fixed armpit area collision issue​

1721754796829.png


In some poses, the shoulder collider could hit the breast soft physics colliders. Now, that collider is ignored by the soft physics and the weird dent is gone! (Technically this was an issue in how the soft physics is set up in VAM itself rather than a bug in Naturalis, but it wouldn't really come up without breasts being morphed upwards like that.)

Fixed morph jerk/hiccup occurring every 10 minutes ?​

This was a long-standing issue and a pet peeve of many an animation creator and mocapper. I had almost lost hope of ever fixing it. In the end, it only took one critical insight into how stuff works in VAM, and one line of code... !

For those who don't know the problem was this: VAM reapplies all morphs from scratch every 10 minutes to prevent the morphs from distorting due to floating point rounding errors (a performance tradeoff in VAM's skinning system). Normally, this doesn't cause any noticeable issue on the user end, but when using Naturalis, it would cause a hiccup where morphs would get applied at an extreme value for 1 frame every 10 minutes.

Changes to how g-force morphing spring/damper work​

The jiggle should look a bit better now. Previously the actual spring value would depend on the amount of g-force, now it is constant. Sometimes less is more...

In addition, the "smooth frames" implementation that I've talked about before and that used to be adjustable before the g-force spring/damper were implemented - that is now removed entirely. It used to spread the acceleration that the drives morph values over multiple frames, but I came to the conclusion that it was interfering with the spring/damper setup which also is an over-time effect. It would kind of result in unpredictable peaks and valleys in the morph values, rather than a smooth oscillation.

Other​

  • changing physics rate no longer requires calibration, the plugin now adapts immediately
  • simulating gravity now works properly on breasts even if TittyMagic is disabled, and on glutes even if BootyMagic is disabled
  • fixed Shapeshift morph debug window not showing the visualization lines on the person atom
  • during calibration when gravity is being simulated for different directions, gforce morphs are also applied to ensure calibration result is accurate and doesn't mess up things for the advanced soft physics features in TittyMagic and BootyMagic (which require soft physics joints to be calibrated to the different shapes that gravity results in)
  • during calibration, g-force morphs have increased damper to prevent jiggling
  • since Shapeshift morphs affecting the chest and hip skin vertices have an effect on the Tittymagic and BootyMagic calibration, respectively, adjustments to those morphs in the Shapeshift UI now sets calibration to pending
    • settings which can trigger this are the overall g-force or angle multiplier, region specific multipliers, and specific morph value at lower/upper limit slider values
  • fixed a g-force morph's damper saving to plugin JSON with an incorrect value (wasn't indepedent of physics rate)


Changes included in v1.4-alpha7 & v1.4-alpha6c​

  • Reverted an earlier change from alpha6 in which I tried to load poses during calibration entirely in memory (without saving/loading pose files). It caused atoms linked to the person's joints to shift relative to their positions before calibration. Undoing this change was easier than trying to figure out how to make the in-memory preset loading work reliably.
  • Fixed target profile selection not saving properly in a clothing profile preset file (broke at some point in alpha6)
  • Fixed null error when clicking Reset in Shapeshift preset area
  • Fixed issue where the Monitor Morphs And Atom Scale user preference setting was overwritten by the equivalent setting from Naturalis v1.2, causing setting not to be loaded correctly from the user preference file
    • Go to Calibration preferences and make sure Monitor Morphs And Atom Scale is checked if you want the plugin to automatically detect those changes and put the calibration to pending
  • Fixed issue where enabling Monitor Morphs And Atom Scale required reloading the plugin for it to work
Presets UI

1721755038465.png

  • Updated the preset area of each module to have a "Change defaults" dropdown menu where you can select between "Set current as user defaults" and "Clear user defaults"
    • previously, clearing user defaults required opening the file browser to manually delete the Default.json file
    • similarly the Clothing tab has a "Change defaults" button with the options "Set current as item defaults" and "Clear item defaults"
  • Show overwrite confirm dialog when saving a preset that already exists
New Module: Shapeshift



Shapeshift is a new module in Naturalis that handles two different types of morphing, eventually for the full body:

1. G-force morphing which shift and jiggle regions of the body in response to gravity and other accelerations
2. Joint angle morphing, a form of corrective morphing that adjusts morphs based on joint angles

In the current version, there are g-force morphs for the abdomen, glutes, thighs and back. There are not yet any joint angle morphs but that system is technically done, just waiting for me to create some morphs.

The purpose of Shapeshift overall is to enable full body dynamic morphing with morphs designed supplied by me, but also to enable users and creators to configure custom morphs to be used. The support for custom morphs is not yet ready, that will be towards the end of v1.4 development. I will also add guides/tutorials for how to configure the morphs.

The g-force and joint angle based morphing in Shapeshift will act as a base layer upon which new morphs for TittyMagic and BootyMagic will be designed, and to which the morphing systems of those modules will be adapted.

In addition, Shapeshift has a Bone Offsets feature explained below.

G-force Morphs

1719148330026.png


The body is divided up into regions, each containing different bones/joints. The morphs themselves anchor to the accelerations of one or two different joints. A morph can belong into two regions depending on the anchor joints: for example, the thigh morphs belong to Pelvis (anchor: lThigh/rThigh) and Left/Right leg (anchor: lShin/rShin). In cases like that, the morph averages the settings of its two different regions, e.g. if one region has a multiplier of 2 and another has a multiplier of 1, the morhp value is multiplied by 1.5.

You can control the jiggle behavior of g-force morphs using the spring and damper sliders. Morphs by default use their regions' springs and dampers, but can also set those individually. Some of the included morphs have individually defined springs and dampers.

The masses of joints also have an effect. You can adjust those with Body Weight. A higher mass means morphs anchored to that joint automatically average the acceleration of that joint over a larger number of physics updates, resulting in more inertia/delay in translating g-forces into morph values.

In contrast with CheesyFX's ShakeIt, the g-force morphs are mainly not rotational but linear, and based on linear acceleration. ShakeIt's morphs are driven by rotational acceleration of the bone, and the morphs themselves are also rotational. I've tested ShakeIt with this new release, and you can definitely use it to good effect combined with the g-force morphs.

Joint Angle Morphs

WIP! No morphs included yet, just a pretty UI tab.

Bone Offsets

In VAM, morphs can contain bone morphs (aka bone formulas) which are just position/rotation offsets that target specific bones in the skeleton. You may be familiar with the red cog symbol shown on some morph sliders in the Female Morphs tab which indicates that the morph has bone morphs.

Bone Offsets is an experimental feature that allows the bones to be moved without requiring morph files. In the Bone Offsets window of the upcoming Shapeshift module, you can configure every major bone's x, y and z position and rotation.

The reason for including this in Shapeshift (as opposed to a separate plugin) is because the positions and rotations of bones can significantly affect the shape of the skin mesh around the bone/joint. The plan is to include some default adjustments and optimize future joint angle based morphs for that default setup.

Regarding Shapeshift and calibration:
  • Adjusting bone offsets of breast or glute region bones in Shapeshift can set calibration to pending
  • The caching of TittyMagic and BootyMagic calibration results that are generated while chest/hip region bones have been offset in Shapeshift is untested!
    • There might be issues such as distorted morphs when those cached results are loaded and the bone offsets are not actually in use... The relevant offsets will probably need to be stored into the cache alongside BootyMagic / TittyMagic data. It's also it's likely that in the future, v1.4 will not always be able to use cached results generated with v1.3.
Fixes
  • Fixed performance issue where solver iterations ("physics quality") was being forced to minimum 2x the normal value for pectoral and glute joints; this fix should improve by a few fps when CPU limited
  • Fixed: opening the TittyMagic/BootyMagic plugin UI immediately after adding the plugin (before first calibration has time to start) could cause joint mass to get stuck to the minimum value
  • Fixed: the simulation of gravity that the plugin runs during calibration did not stop at the end of calibration until you navigated into the plugin UI and out again, or manually clicked "Stop" in the gravity controls panel (introduced in v1.4-alpha2)
  • Fixed: it was not possible to close the adjustments info panel in the plugin UI
  • Fixed: enabling TittyMagic during an ongoing calibration messed up breast joint physics
  • Fixed issue on male skin: loading the plugin from a preset would cause it to wait indefinitely and not calibrate (introduced in a previous alpha)
  • At the end of calibration, the plugin now restores the use of gravity on each joint in the body to the value it was in before calibration began (i.e. true or false), instead of just forcing all joints to use gravity. A low impact issue. In theory this could have interfered with some other plugins that modify body physics.
UI
  • Better main screen in TittyMagic/BootyMagic/PussyMagic:
1719146974169.png

  • Updated user preferences:
    • user preferences split between General and Calibration
    • moved the Monitor Morphs And Atom Scale toggle from General preferences to Calibration preferences, since it's fundamentally calibration related
    • removed all of the "default enabled" user preferences for advanced soft physics features
      • in the main tab, Mesh pressure is on by default, the rest are off by default
      • you can manage custom defaults with your TittyMagic/PussyMagic/BootyMagic default presets
    • the user preferences views fill the entire plugin UI and hide the tab navigation
  • The mass slider in the main tab as well as physics parameter offset sliders in general are no longer interactable during ongoing calibration
  • Uninteractable sliders now show greyed out quick buttons
  • Various other UI tweaks
Other
  • The plugin source files are now combined into a single file during packaging. That file is still loaded by adding the Naturalis.cslist, so there's no difference on the user's end. But it gets rid of the src folder and only the Naturalis.cslist file is now shown in the file browser.
  • Removed BootyMagic's unused morphs from the var package (planning to add new morphs later when BootyMagic's morphing is enabled again)
  • Temporary poses poses are no longer be stored in your VAM folder during calibration, instead the plugin stores/restores the pose in-memory
    • You can check the VAM/Custom/Atom/Person/Pose/everlaster/Naturalis folder - there might be some old temporary poses that the plugin has for some reason failed to delete.
v1.4-alpha2

PussyMagic Mesh Pressure

Mesh pressure physically expands the outer labia soft physics joints outward by pushing the soft physics joints from inside the mesh. The amount of expansion can be configured with the Fat Pressure Multiplier parameter.



PussyMagic Spread Physics

Spread physics calculates the width of the vaginal opening at several points, and applies changes to physics parameter values according to those widths and based on distances of the various soft physics joints in the mesh from the center of the opening.



Improved Fat Collider Previews

No x-ray collider previews by default, only protrusions are shown. X-ray previews can be toggled.

alpha2_fat_collider_viz.jpg


Fixes/Other
  • Fixed issue where TittyMagic/BootyMagic advanced soft physics features could be out of sync - actual enabled state was not always corresponding to the toggle checked state
  • Added missing anus rim and butt crack soft physics joints to BootyMagic
    • These exist in VAM but weren't previously affected by the adjustments in BootyMagic
    • They are now part of the soft physics gradient (affected by outer multiplier) but they are not affected by local distortion physics or depth physics and do not receive mesh pressure
  • Increased background spring and damper multipliers on glute soft physics joints near the genitals area to help prevent ugly looking cave-ins in that area when colliding. However it's impossible to get rid of the issue completely as long as there's a non-soft-physics portion separating the glute and vulva soft physics meshes.



v1.4-alpha1

PussyMagic



Features in this first release:
  • Softness and Quickness slider (low softness probably doesn't make any sense but hey)
  • In-plugin presets
  • Support for Fat Spring, Fat Damper, Fat Mass, Fat Distance Limit and Fat Collider Friction
    • Each parameter has a new default value and scales with the softness and quickness sliders
    • Can offset the value
    • Can adjust value along gradient from center to outer soft physics joints
  • Visualization of soft joints
  • Adaptive friction (Skin Materials 2)
The main differences to VAM default soft physics are:
  • in VAM default physics, the soft colliders have no friction, so there's basically no grip, while in PussyMagic there is a moderate amount of friction by default
  • PussyMagic's soft joints are a bit springier and have much lower damper, making them vibrate much more easily
Note that BootyMagic and PussyMagic are enabled/disabled as a pair, they can't be individually enabled or disabled. Also, glute and vulva soft physics can be toggled on/off independently.

UI improvements

Adjusted the color scheme of TittyMagic and BootyMagic plugin UI tabs, plus some minor edits to texts.

The collider friction settings UI in Skin Materials 2 is redesigned to look and function more like the plugin UI:

alpha1_SkinMaterials2.jpg


Updating the plugin

The package no longer contains the "Auto-update.cs" and "Auto-update from TittyMagic 5.cs" files. These functionalities are integrated into plugin itself - if you add the plugin cslist file to a person atom that already has any version of Naturalis or the old standalone TittyMagic, it will remove that earlier version automatically and add itself at same plugin index number (e.g. plugin#1), and restore any supported parameters from the plugin instance that was present previously.

Fixes/QOL
  • Increased range of Friction Offset slider in Skin Materials 2
  • When disabling any of the scripts (TittyMagic etc.), its pending calibration is cleared; calibration could still be pending on the other scripts though
  • Fixed issue where Mirror Right to Left button actually mirrored left to right (male person atom only, Clothing -> Soft physics tab)
  • increased character ready wait during plugin initialization to 30s, there was some report of the previous 15s duration being too short in some cases

Attachments

  • v1_4_alpha2_pm_meshpressure.ogv
    20.4 MB
  • v1_4_alpha2_pm_spreadphysics.ogv
    29 MB
  • alpha2_fat_collider_viz.jpg
    alpha2_fat_collider_viz.jpg
    195.8 KB · Views: 0
  • v1_4_alpha1_pm_demo.ogv
    71.9 MB
v1.3.5
  • fixed issue where glute joints still had gravity acting on them when BootyMagic was disabled/removed (thanks @CuddleMocap !)
  • fixed a physics explosion issue when the plugin was removed after changing skin while Freeze Physics was enabled in Control & Physics 1
  • the Enabled toggle of BootyMagic is no longer interactable if loaded on a male character
  • disabled scrolling in most text fields
v1.3.4 (March 19)
  • Fixed issue where Breast Soft Physics Enabled or Glute Soft Physics Enabled toggle value would not load properly from preset. Now that toggle as well as all of the other storable parameters on the main screen (softness etc. sliders, adv soft physics toggles) consistently save/load with the plugin JSON
  • Fixed issue where in rare cases the calibration would cycle through the simulation directions (down/forward/up etc) way too quickly and produce an inaccurate result; now each direction will be simulated for at least 0.15s
v1.3.3 (Feb 27)
  • Fixed issue where glute joint mass would progressively diminish with each calibration.
v1.3.2 (Feb 26)
  • gravity simulation controls area was not created on first time UI open (introduced in v1.3.1)
  • no more asterisk (*) shown on a soft physics parameter's button in the Physics tab due to Local Distortion or Depth Physics values being modified when those features are disabled
  • fixed Fat Collider Friction parameter's Friction Value slider being interactable despite looking like it wasn't (now it's actually not interactable)
  • 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)
Back
Top Bottom