Just posting some simple productivity tools that should speed up your creations:
VaMExporter is a tool for the Unity Editor. It works in tandem with the AssetBundleBrowser which we use to export AssetBundles to VaM. My tool does nothing more than taking the exported AssetBundles from one folder and copy them to the folder where you want them in VaM. While doing that it restores uppercase letters in the filename and adds the ".assetbundle" extension so VaM finds it. To make it work properly, put the file "VaMExporterWindow.cs" into your project's Assets folder and inside a folder named "Editor".
EditorOnly is a trivial script you can put on GameObjects in your Unity project. It prevents that GameObject and their children from being exported as AssetBundle. For example I use it for light sources in my scene I need to see things in the Editor, but don't want exported to VaM, because VaM has its own lights.
MacGruber_EditMode is trivial but glorious VaM plugin you can put on your default VaM scene. It just switches VaM to edit mode on startup. If you are running VaM in Desktop mode this does also open the MainMenu UI and enables targets (pressing T), so you can start doing things instantly.
2019-10-03 08:02:41 +0000 UTC
View Post
Hi there!
I have updated the usage policy of my content. Since more and more VaM creators start their own Patreon pages, it gets hard to keep remixing content to make it better. However, that is what the VaM community strives on. For example the scenes I shipped with my SecretRoom asset could have been so much better, if I could have used some of the glorious Looks made by others. Vice versa, someone might want to use my asset to present their looks, etc. Therefore I'm making the first step here and I hope others will follow. I changed my content usage policy on the "Overview" page to allow limited commercial usage. Obviously I won't let you just take my content, so you claim it as yours and make money with it. However, I hope you find the following terms very reasonable:
You are free to use my content for REMIXING with your own. Unless otherwise agreed, the following LIMITATIONS apply:
You CAN post things like teaser screenshots or videos of my content before the EarlyAccess period has ended. However, if you want to include assets in your package that can be used to extract/restore my original content, you MUST wait until I made the content freely available. - You MUST properly credit me by name "MacGruber" in a clearly visible way. Make clear what was made/changed by you, and what is mine.
- If you use my content COMMERCIALLY, besides crediting me as stated above, you MUST have a link to my original content and MUST mention that it is freely available. Do this be linking directly to my post on Patreon. This MUST happen in some clearly visible way, for example mentioning it in your own post on Patreon, Reddit or Discord where you publish your content.
- I might also have used work of other people. If there was a "credits.txt" in my original package, keep that around or integrate it in you own "credits.txt". Try to make it easy for your users to keep track of who made what content, so they as well can properly credit you, me and potential others involved.
- Only use my content in the context of Virt-a-Mate.
If any of those limitations are an issue because of the specifics of your content, contact me. I'm sure we can come to an reasonable agreement.
2019-10-03 07:43:53 +0000 UTC
View Post
Hi! I'm planning to post a report like this near the end of each month, reporting on what I worked on behind the scenes and what the vague plans for the next months are. A lot of my work is very experimental and has not yet produced anything useful. If your only interest is downloading finished things, feel free to skip these reports. However, I like to be straight with my patrons, so you can decide if you want buy-in on the coming month or not. By the way, I'm totally fine with people hoping on and off as they see fit.
Failed Project: Reflection Probes

Two weeks ago I spend some time on getting ReflectionProbes to work. These are a way to fake global illumination. VaM supports this in the sense that you can use the skybox as global illumination. However, especially in indoor scenes the skybox has nothing to do with the actual scene. Shiny materials like plastic, latex or metal can appear very wrong (middle image) and you usually have to make the reflection blurry to make it not look that obviously wrong. What you can do currently in VaM is either turn off global illumination (left image) or choose a skybox from the limited build-in selection that at least kind of matches your environment colors. Also you can bake reflection probes for a static scene in Unity and import the entire scene into VaM. However, in the that case the reflection would only work on other imported stuff (e.g. no characters or clothing) and can only contain the static parts of the Unity scene. It does not contain anything that is movable or was added in VaM. You could not even add major lightsources in VaM.
What I tried to do is getting runtime reflection probes to work. Theoretically this should be fairly easy, as it is obviously a Unity feature. Just a script that spawns a ReflectionProbe, changes some settings on it and turns on QualitySettings.realtimeReflectionProbes to override Meshed's graphic settings. You could either "bake" the reflection once when loading the scene or keep it updating every frame if your machine is fast enough. Sounds simple, I thought so too, except it does not work. So far I could not figure out what the issue is. The rendered cubemap appears to be just black.
Additionally I tried reverse engineer VaMs skybox system to load a custom skybox into VaM to override the global illumination on persons/clothing that way. For that kind of thing I'm using ILSpy to decompile VaM and look at Meshed's source code. For the sky system, VaM appears to be using Marmoset Skyshop or at least parts of it. However, I could not figure out how to make it do what I wanted by just using the limited VaM scripting capabilities.
In total I spend about 8 hours on this and I'm out of ideas that could make it work.
Ongoing: Post Effects in VR

Another project I have been working on is getting some kind of post processing effects working. Most important to me would be Ambient Occlusion, see images. It does not look like much, but it helps a lot to make a scene feel real. Of course there are other great effects we would like to see in VR: Depth of Field, Color Grading, etc. In simple terms this would be kind of like an less capable Reshade, but it would work in VR, assuming your graphics card does not scream for mercy. Just one or two effects could/should™ be totally doable performance-wise.
The obvious way to do this in Unity is using the PostProcessingStack which is provided by Unity as an add-in package. Normal you would just setup this in the Unity Editor and have it running in your project in about a minute. But it is not intended to be added at runtime, why would any sane person would want that? However, the source code is available so my idea was to load it either as VaM script or as a DLL using the CustomUnityAsset. I spend several evenings this week on this and I have run in various concrete walls during the process, some of which I could break or circumvent. For example the code uses reflection, which is forbidden when loaded in VaM, so I will have to refactor stuff. Also I would have to get creative in getting the shaders and special textures loaded, not to mention in building VaM UI to make it all tweakable at runtime. There is also an older version of the PostProcessingStack available that is less complex, possibly making things easier at the cost of less fancy effects.
I'm not out of ideas to try, yet. I guessing on a 50:50 chance on getting at least Ambient Occlusion working during the next few weeks. Can't promise anything, though, there might be more of these concrete walls I'm not aware of, yet.
Long-term plans: Breathing Script, Locking in VR, Tools
Other than that I have various ideas what could be done. There is the audio-synced breathing script I would like to look into again. And there is VaMConnect that deserves some more attention. A while back I added functionality to control up to two ABox estim devices from VaM. The Abox is controlled through sound, so I'm using the stereo jack on the RasberryPI. In combination with my modded Suck-o-Mat I was able to get an amazing handjob. I'm still following that very old plan of a femdom scene "locking" the player in VR, actually punishing through real E-Stim in case the player does not look into the eyes (or whatever) of the girl, moves his hands or is trying to quit the game before the timer runs out. If you let the Oculus Touch controllers dangle from their straps, you really can't get out without being punished. I have several building blocks for that, that still have to be assembled. Note sure how useful this will be for others, though, as I assume nobody will have the exact same setup. But I'm sure you will be able to use it as a base for your own scene, assuming you have some scripting skills.
I'm not sure how much of this can happen in the coming month, due to obvious real-life limitations. It might take till Christmas or even longer.
Last but not least there are one or two smaller productivity scripts/tools I'm planning on releasing for free. Nothing too fancy.
Cheers, MacGruber
2019-09-27 19:20:10 +0000 UTC
View Post
A bondage environment that can be customized for your scene. You have different material options and use "kind of morphs" to modify the room via scripts.
Includes
- Room with 3 different materials: Red, black and white leather. The leather walls are a PBR material that is using parallax mapping.
- The metal frame and pillars can be moved around via script. The hooks/fixtures as well. (see videos)
- The spotlights are separate assets that can be adjusted as well and automatically sync to their corresponding VaM light source. (see videos)
- The chains are also separate assets which you can let swing physically correct via script. This is a performance-aware alternative to actual physically simulating a chain. Great for creating atmosphere in the background of a scene. (see videos)
- Includes 2 simple scenes plus an empty scene with just the room.
- More pictures and video: https://imgur.com/a/vygCSjK
Download
2-week EarlyAccess for Patrons: https://www.patreon.com/posts/30153035
Edit: Taken offline due to licencing issues, get the updated version instead: https://www.patreon.com/posts/secretroom-3-36382992
2019-09-22 13:08:58 +0000 UTC
View Post
(This was an 14-day early access, now made public on October 6, 2019.)
Edit: Taken offline due to licencing issues, get the updated version instead: https://www.patreon.com/posts/secretroom-3-36382992
2019-09-22 13:06:26 +0000 UTC
View Post
While VaM 1.18 introduced a VSync toggle in the UserPreferences, this plugin allows you additional finer control while in desktop mode. Requires VaM 1.18+.
Why do you need it?
- Smoother video capture! If you capture with 30fps, you will want to render with synchronized 30fps.
- Faster clothing import! I achieved like 20% speedups of the VaM clothing import. Not that much, but still.
- If you switch back and forth between other CPU/GPU intense applications (Daz3D, Unity, Blender, ...) you will want to automatically pause VaM when you work in those other apps to get all the power you can get.
- Less energy usage = more battery life on laptops
- Less (or none) fan noise
Features
- You can either use VSync or set a FrameRateTarget independent of your monitor refresh rate.
- Plugin automatically disables itself when in VR mode.
- You can put this plugin in your default scene and use the "Keep settings" function and your settings will stick while switching scenes until you restart VaM or mess with the UserPreferences.
Known issues
An issue I did run into is that VaM physics might get out of sync with time. For example animations might run slightly slower. For several hours I tried various things to calculate and set the best possible Physics settings for you, but it did not work. You will have to tweak PhysicsRate and PhysicsUpdateCap in the VaM UserPreferences by hand until you get satisfying results.
Download
2-week EarlyAccess for Patrons: https://www.patreon.com/posts/30150699
(Edit: Download is now public.)
2019-09-22 09:54:23 +0000 UTC
View Post
(This was an 14-day early access, now made public on October 6, 2019.)
2019-09-22 09:52:23 +0000 UTC
View Post
(This is old, new version here!) If you put this plugin into your scene, for example as a session plugin, the VaM internal screenshot tool will do screenshots in super high resolution (e.g. 8K UHD) instead of just lame FullHD (1920x1080). This improves the grainy shadow quality quite a lot, but also improves hair slightly and edges in general. Some comparison pictures: https://imgur.com/a/u4wFOSc
New Features
Preview picture is not using super resolution anymore. This means this is now fast enough to work in VR mode! Of course there is still a severe lag/freeze (like 1-2 seconds) when actually taking a picture, but the preview is fast now.
You can select between different resolutions now using the Plugin UI:
- 9600x5400 (5x FullHD)
- 8192x4608
- 7680x4320 (8K UHD) (<== New Default)
- 5760x3240 (3x FullHD)
- 3840x2160 (4K UHD)
Known Issues
- Does not work with Reshade.
- Of course there is a severe lag/freeze (like 1-2 seconds) when taking a picture, depending on the selected resolution and your CPU speed. This is simply crunching a lot of data. I tried higher resolutions, like 16K, but that does produce incomplete pictures for some reason.
- When using as a Session Plugin and you load a new scene the plugin will sometimes be disabled. Also it will forget its resolution setting. (I thought that was the point of Session Plugins that they survive a scene switch?)
2019-09-21 08:37:48 +0000 UTC
View Post