• Hi Guest!

    We have posted a new VaM2 dev log on Patreon, starting a monthly cadence of written progress updates between Beta releases. Highlights include the new Gizmos System, Selection Carousel, and Modes System with Context-Specific Editing. Beta1.2 is 15 of 21 items complete.

    Read the full post on Patreon, or follow progress on the public Trello roadmap.
BodyLanguage

Plugins + Scripts BodyLanguage

Download [<1 MB]
Hey Cheesy, so I've been plagued by the nefarious "Object set to a Null Reference" error log spam with BL fora while now, though it's intermittent. Anyhow, I decided to finally try to track down the cause, poking around the JSON storables in my custom scene where this is happening, and managed to track down the actual cause of the bug.

It has to do with the "Fill Me Up" plugin specifically, and the thrust system. I've been experimenting with different setups, female + male atoms, female + dildos, etc... And the problem can crop up when you cross these two streams:


In the thrust system, you can flag the male + female thrusts to synch with each other. Which I enabled. All well and good.

The problem is that at some point, I deleted the male atom and started seeing how the triggers worked with a stock, native dildo atom. Here's where it comes apart. Since both the male and female thrust systems had "Synch Movement" toggled on, that bool got stored in the JSON. But now that the male is gone, and there's just a plain dildo in the scene (not even a Dildo language powered CUA dildo, just a basic one), you do a smart thing and hide the 'Synch Movement' toggle. However, the bool value still exists in the JSON. So when I go to use the dildo, I get the Object Set to a Null Reference error spam.

Anyhow, going into the JSON and setting this flag to false for both the male and female thrust storables fixed the error and everything works again. One of the side effects of this bug, is that because the toggle is hidden when in this mixed up state, there's no easy way to disable it, or even know that it's on, other than inspecting the JOSN, so the fix is very opaque to probably anyone who encounters it.

So, I guess if the condition occurs where you need to hide, or re-hide that toggle, you might want to reset its state to default, or at least check if there are any valid atoms in the scene for the synch movement function to use, even if it is hidden.


Regardless, thanks for making a terrific suite of plugins, my VaM experience would be much poorer with out them!

- Metix

EDIT - So the problem is actually a bit more pervasive than what I described. Somehow the Synch On toggle keeps turning back on, even after clearing it out of the JSON. I noticed that the Dildo atom name is being stored in the Speak to Me plugin, perhaps that's repopulating it somehow?
 
Last edited:
I think I found a bug with FillMeUp.
->I'm not using any session plugins

If I have two sex poses (it seems to happen when it's cleavage sex pose) that have different values for Thrust in { FillMeUp>Cleavage>Forces>Configure Thrust }, When I switch poses the people keep thrusting for a duration. Their triggers aren't indicating penetration or collision, so it's strange that the forces would remain for a few seconds.

I'm able to replicate this very consistently. Just have a pose with the two people standing (default pose). Then have a cleavage sex pose, and set thrust to max, and save (so it gets added to the pose). Now switch between them.
 
I think I found a bug with FillMeUp.
->I'm not using any session plugins

If I have two sex poses (it seems to happen when it's cleavage sex pose) that have different values for Thrust in { FillMeUp>Cleavage>Forces>Configure Thrust }, When I switch poses the people keep thrusting for a duration. Their triggers aren't indicating penetration or collision, so it's strange that the forces would remain for a few seconds.

I'm able to replicate this very consistently. Just have a pose with the two people standing (default pose). Then have a cleavage sex pose, and set thrust to max, and save (so it gets added to the pose). Now switch between them.
I've seen that too. Clicking on the pose button a second time usually stops it. It might be a bug you'll have to live with.
 
I've been trying to figure out how to stop the atom from gazing at the [Camera Rig] PlayerFace and focus on the male atom, I've turned it to 0 in the interest tab and she still wants to look at the player. Any help is appreciated. <3
1781453012908.png
1781453094762.png
 
If the BL gaze system is problematic, it's best to just turn it off in the Clients tab. You can use a separate plugin for gaze that can be directly controlled. You can use the Action tab to enable, disable gaze controlled externally.
 
Unfortunately, a scene I've been working on for hours is no longer showing poses when I load it up now. Is there any way to recover the poses? It's showing me this error:

!> Could not find a matching rigidbody for collider 'CapsuleCollider:hip.abdomen.abdomen2.chest.FemaleAutoColliderschest.AutoColliderFemaleAutoColliderschest3.AutoColliderFemaleAutoColliderschest3Joint.BL_CleavageTirigger.BL_CleavageTirigger', rigidbody 'Rigidbody:hip.abdomen.abdomen2.chest.FemaleAutoColliderschest.AutoColliderFemaleAutoColliderschest3.AutoColliderFemaleAutoColliderschest3Joint.AutoColliderFemaleAutoColliderschest3Joint'.
!> System.NullReferenceException: Object reference not set to an instance of an object
at CheesyFX.Gaze+CuaTarget..ctor (.Atom atom, System.Collections.Generic.List`1 meshes, System.String name) [0x00000] in <filename unknown>:0
at CheesyFX.Gaze.RegisterObject (.Atom atom, Boolean custom, Boolean isEnvironment) [0x00000] in <filename unknown>:0
at CheesyFX.Gaze.LoadGlobals (SimpleJSON.JSONClass parent) [0x00000] in <filename unknown>:0
at CheesyFX.PoseMe.LateRestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
!> System.NullReferenceException: Object reference not set to an instance of an object
at CheesyFX.Gaze+CuaTarget..ctor (.Atom atom, System.Collections.Generic.List`1 meshes, System.String name) [0x00000] in <filename unknown>:0
at CheesyFX.Gaze.RegisterObject (.Atom atom, Boolean custom, Boolean isEnvironment) [0x00000] in <filename unknown>:0
at CheesyFX.Gaze.LoadGlobals (SimpleJSON.JSONClass parent) [0x00000] in <filename unknown>:0
at CheesyFX.PoseMe.LateRestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
 
Unfortunately, a scene I've been working on for hours is no longer showing poses when I load it up now. Is there any way to recover the poses? It's showing me this error:

!> Could not find a matching rigidbody for collider 'CapsuleCollider:hip.abdomen.abdomen2.chest.FemaleAutoColliderschest.AutoColliderFemaleAutoColliderschest3.AutoColliderFemaleAutoColliderschest3Joint.BL_CleavageTirigger.BL_CleavageTirigger', rigidbody 'Rigidbody:hip.abdomen.abdomen2.chest.FemaleAutoColliderschest.AutoColliderFemaleAutoColliderschest3.AutoColliderFemaleAutoColliderschest3Joint.AutoColliderFemaleAutoColliderschest3Joint'.
!> System.NullReferenceException: Object reference not set to an instance of an object
...
Usually, when BL comes up blank, it's because you have dueling plugins, or multiple versions of a plugin loaded, which can screw up the whole thing.
 
I've been trying to figure out how to stop the atom from gazing at the [Camera Rig] PlayerFace and focus on the male atom, I've turned it to 0 in the interest tab and she still wants to look at the player. Any help is appreciated. <3
View attachment 599660View attachment 599664
The setting does work, but the player is the fallback target if nothing else is visible. Make sure there's always something in her view (and not obstructed).
 
Unfortunately, a scene I've been working on for hours is no longer showing poses when I load it up now. Is there any way to recover the poses? It's showing me this error:

!> Could not find a matching rigidbody for collider 'CapsuleCollider:hip.abdomen.abdomen2.chest.FemaleAutoColliderschest.AutoColliderFemaleAutoColliderschest3.AutoColliderFemaleAutoColliderschest3Joint.BL_CleavageTirigger.BL_CleavageTirigger', rigidbody 'Rigidbody:hip.abdomen.abdomen2.chest.FemaleAutoColliderschest.AutoColliderFemaleAutoColliderschest3.AutoColliderFemaleAutoColliderschest3Joint.AutoColliderFemaleAutoColliderschest3Joint'.
!> System.NullReferenceException: Object reference not set to an instance of an object
at CheesyFX.Gaze+CuaTarget..ctor (.Atom atom, System.Collections.Generic.List`1 meshes, System.String name) [0x00000] in <filename unknown>:0
at CheesyFX.Gaze.RegisterObject (.Atom atom, Boolean custom, Boolean isEnvironment) [0x00000] in <filename unknown>:0
at CheesyFX.Gaze.LoadGlobals (SimpleJSON.JSONClass parent) [0x00000] in <filename unknown>:0
at CheesyFX.PoseMe.LateRestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
!> System.NullReferenceException: Object reference not set to an instance of an object
at CheesyFX.Gaze+CuaTarget..ctor (.Atom atom, System.Collections.Generic.List`1 meshes, System.String name) [0x00000] in <filename unknown>:0
at CheesyFX.Gaze.RegisterObject (.Atom atom, Boolean custom, Boolean isEnvironment) [0x00000] in <filename unknown>:0
at CheesyFX.Gaze.LoadGlobals (SimpleJSON.JSONClass parent) [0x00000] in <filename unknown>:0
at CheesyFX.PoseMe.LateRestoreFromJSON (SimpleJSON.JSONClass jc, Boolean restorePhysical, Boolean restoreAppearance, Boolean setMissingToDefault) [0x00000] in <filename unknown>:0
Not entirely sure what causes this, but make sure that all persons are "On" and advanced colliders are enabled on them.
Aside from that, you should be able to recover the poses by loading another scene and using the "Extract" tab.
 
Not entirely sure what causes this, but make sure that all persons are "On" and advanced colliders are enabled on them.
Aside from that, you should be able to recover the poses by loading another scene and using the "Extract" tab.
Wow, you saved me again, thank you. It seems the issue that's breaking the scene is I'm using two different CUAs, an open book and a closed book, and alternating them being on or off using AtomControl in the Actions tab depending on the scene. When I extract the poses, everything works great but I have to redo the actions involving the books and then I can't switch between poses anymore once I load one up.
 
The setting does work, but the player is the fallback target if nothing else is visible. Make sure there's always something in her view (and not obstructed).
I've made sure of that and even lowered the gaze angle in some cases but sometimes it'll get ignored. haha

I'll keep adjusting it until she stops. I even made it so that upon entering a certain pose, it tells her to focus a target, have to load the pose a second time sometimes.

One thing I was curious about, is it possible to have the 'use mirror' option stay disabled or does it re-enable automatically?
 
Back
Top Bottom