Plugins available on Patreon | |
---|---|
Morph Extractor v1.0 alpha | Extract morph file or raw deltas from skin mesh start and end states. |
Naturalis v1.4 alpha | Enhanced physics simulation and natural dynamic morphing for the body. |
Trigger User Preferences v1.0 | Makes almost everything in user preferences triggerable. |
Draw Debug Mesh v1.0 | Wireframe rendering for the person atom's skin mesh. |
UXPlus v1.3 | Usability improvements focusing on the VAM user interface. |
Body Weight v1.0 | More realistic body mass, adjustable by region. |
Default Scene Manager v1.0 | Select scene to load on VAM start, and create scene load actions for Keybindings. |
Continue Scene v1.0 | Auto-save the current scene to Continue.json when exiting VAM. |
Performance Overlay v1.0 | Configurable overlay for monitoring frame rate, frame time and heap size memory. |
VamBoop v1.0 | Boop the boob with your mouse pointer! |
Requires VaM v1.21.0.4 or newer
Morph Extractor
Video credit: Eyes reflection and shadow (Male/Female/Futa) CC BY by paledriver
Morph Extractor works by storing start positions of the skin mesh vertices, changing the positions, and then saving the difference in a morph file. Any method of changing the vertex positions works: existing morphs, joint positions and rotations, collision, soft physics... Smooth passes and tessellation probably have no effect since the plugin reads vertex positions from a GPU buffer that contains data prior to smoothing.
It can also export the raw deltas to JSON e.g. for inspection of the exact values per skin vertex, or for use in other software like Blender (importing to Blender requires additional scripting).
Use cases
- Create morphs that are not possible just by merging existing morphs, e.g. based on collision or animation
- An alternative way to merge morphs
- Visual inspection of a morph's deltas
- Limit the effect of the morph using a tolerance value
UI explained
- 1. Set Start Vertex Positions must be clicked before you can export anything. This will be also when the plugin will start drawing the deltas relative to the start positions. You can undo this with Unset Start Vertex Positions.
- Tolerance sets a lower limit on the magnitude of deltas that it will include in the morph. Basically, lower number actually means higher tolerance (it "tolerates" smaller deltas).
- Save As Pose Morph sets the "isPoseControl" flag to true in the morph .vmi file, which tells VaM to categorize the morph as a pose morph.
- Morph Name is at the same time the actual name and the display name of the morph, and the filename as well (but the filename can be appended with a generated id to prevent overwriting, similar to Morph Merger)
- Category is at the same time the Region and the Group of the morph (you might be familiar with these terms from Morph Merger)
- The morph export settings sets Category to your creator name by default. "/" characters denote subfolders for the purpose of saving the morph file when Save Morph To Category Subfolder is checked.
Good to know
- Make sure to not have any animation, auto behaviors/expressions, forces, jittering due to constant collision etc. that could cause unwanted deltas to be recorded.
- The tolerance setting will help prevent detecting very small changes in vertex positions. Increase the alpha slider value to more easily spot deltas outside of the intended region of your morph.
- If you're adjusting some morphs to extract a new shape from, it doesn't save the exact deltas that are actually stored on the morphs that you're adjusting. It's not exact in that way like morph merger or MorphMAS which actually combine the deltas themselves.
Known issues
- Genital morphs are not supported yet
- In some cases you may need to refresh custom morphs manually to properly reset the state of the mesh. I'm not yet sure why the method I use to programmatically refresh custom morphs doesn't work as expected every time.