※ Reporting bugs or issues will help me improve the plugin and help others.
AtomClickTrigger
● This can be triggered by clicking on the Atom like a button.
● Just add this plugin to the Atom.
● Define Triggers based on mouse Hover-in/out, click. In particular, it provides a toggle function to turn it on/off.
● CUA is now also supported (v0.2)
● VR Controller is now supported (v0.3)
● VR Head Hover/Click is now supported (v0.4) - If the VR Head is hovering, you can click with mouse or controller L/R.
● Implements accurate shape selection (v0.5)
● Person's part (hand, foot, breast, eye .... etc) selection is not yet supported. I will implement it in the future. (maybe next next version)
● Person's clothing selection is not yet supported. I will implement it in the future. (maybe next next next version)
● Please refer to the demo below for more details.
----------------------------------------
Example Demo Scenes
hub.virtamate.com
AtomClickTrigger
● This can be triggered by clicking on the Atom like a button.
● Just add this plugin to the Atom.
● Define Triggers based on mouse Hover-in/out, click. In particular, it provides a toggle function to turn it on/off.
● CUA is now also supported (v0.2)
● VR Controller is now supported (v0.3)
● VR Head Hover/Click is now supported (v0.4) - If the VR Head is hovering, you can click with mouse or controller L/R.
● Implements accurate shape selection (v0.5)
● Person's part (hand, foot, breast, eye .... etc) selection is not yet supported. I will implement it in the future. (maybe next next version)
● Person's clothing selection is not yet supported. I will implement it in the future. (maybe next next next version)
● In VaM, there are cases where a shape's scale is set to below approximately 0.3.
● At this scale, the ray range no longer decreses, which causes issues with selecting objects.
● Rather than being a bug in VaM, it might actually be an intentional design choice by the developer to improve detection accuracy for very small objects—specifically those below 0.x in size.
● This issue has been observed with Shape atoms such as Capsule, Cube, Sphere, ISCapsule, ISCone, ISCube, ISCylinder, ISSphere, and ISTube. Other atom types have not yet been tested.
● You can see this behavior in the screenshot below.
● I attempted to development the MeshCollider and related components to achieve accurate raycast range, but ultimately abandoned the approach due to side effects, inconsistent implementations across as each types, and most importantly, unnecessary overhead caused by the additional mesh structures.
● Instead, I used the VamObjectExplorer tool I previously developed to debug how scale changes affect the interaction range.
● The root cause of the issue was that when the scale is changed, only the rescaleObject is modified, while the scale value is not applied to the ShapeCollider and RigidBody components of the mainController.
● Therefore, I implemented the code as shown below and tested whether precise raycasting is possible for nine types of shapes: Capsule, Cube, Sphere, ISCapsule, ISCone, ISCube, ISCylinder, ISSphere, and ISTube.
● As shown below, precise selection is possible even at a scale as small as 0.001.
● To uncover this, I used VamObjectExplorer, a plugin I proudly developed myself. I was so thrilled with it, I celebrated for two whole days!
hub.virtamate.com
● I conducted tests on a total of nine shape types, categorized as follows: Capsule, Cube, Sphere, ISCapsule, ISCone, ISCube, ISCylinder, ISSphere, and ISTube.
● At long last, We can finally operate the spaceship dashboard with precision!!! 
● At this scale, the ray range no longer decreses, which causes issues with selecting objects.
● Rather than being a bug in VaM, it might actually be an intentional design choice by the developer to improve detection accuracy for very small objects—specifically those below 0.x in size.
● This issue has been observed with Shape atoms such as Capsule, Cube, Sphere, ISCapsule, ISCone, ISCube, ISCylinder, ISSphere, and ISTube. Other atom types have not yet been tested.
● You can see this behavior in the screenshot below.
● The root cause of the issue was that when the scale is changed, only the rescaleObject is modified, while the scale value is not applied to the ShapeCollider and RigidBody components of the mainController.
C#:
public override void Init()
{
if (TYPESHAPE.Contains(containingAtom.type))
{
IS_SHAPES = true;
}
}
public void FixedUpdate()
{
patchScaleOfShape();
}
private bool IS_SHAPES = false;
HashSet<string>TYPESHAPE = new HashSet<string> { "Capsule", "Cube", "Sphere", "ISCapsule", "ISCone", "ISCube", "ISCylinder", "ISSphere", "ISTube" };
Transform t_rescale = null;
Transform t_control = null;
private long timeofchk = -1;
void patchScaleOfShape(bool forcednow=false)
{
if (IS_SHAPES)
{
long time = DateTime.Now.Ticks/10000; // msec
if ((time - timeofchk) < 1000 && forcednow == false) return; else timeofchk = time; // check every 1sec
if (t_rescale == null) t_rescale = containingAtom.reParentObject.Find("object/rescaleObject");
if (t_control == null) t_control = containingAtom.mainController.transform;
if (t_rescale.localScale != t_control.localScale)
{// compare rescale vs controller scale
if (DBGLOG) SuperController.LogMessage($"[INF] scale patch : {t_rescale.localScale} to {t_control.localScale}");
t_control.localScale = t_rescale.localScale;
}
}
}
● To uncover this, I used VamObjectExplorer, a plugin I proudly developed myself. I was so thrilled with it, I celebrated for two whole days!
VamObjectExplorer - Plugins + Scripts -
※ Reporting bugs or issues will help me improve the plugin and help others. ※ If this plugin made you smile, nod, or say “hmm, not bad,” give that React button some love! VamObjectExplorer ● This plugin is used to explore the structure of VaM's...
● Accurate selection is now possible for Shape Atoms.
● UI fully Modification
● UI fully Modification
● Max Clickable Distance (meter)
- It is possible to specify the Maximum Clickable Distance.
● VR Head Hovering
- The center point of the VR Head and the center point of the Desktop are functionally the same.
- Hovering is possible with the position of the VR Head's viewing center point, and triggering is possible with mouse or controller L/R.
- Also, It is also supported in Desktop Mode Experimentally.
● VR Head Hovering - Support in VR Mode
● VR Head Hovering - Support in Desktop Mode
● Demo Update : Now the elevator door in the demo can be opened and closed using the SecondHandle Plugin without an any AnimationPattern.
hub.virtamate.com
- It is possible to specify the Maximum Clickable Distance.
● VR Head Hovering
- The center point of the VR Head and the center point of the Desktop are functionally the same.
- Hovering is possible with the position of the VR Head's viewing center point, and triggering is possible with mouse or controller L/R.
- Also, It is also supported in Desktop Mode Experimentally.
● VR Head Hovering - Support in VR Mode
● VR Head Hovering - Support in Desktop Mode
● Demo Update : Now the elevator door in the demo can be opened and closed using the SecondHandle Plugin without an any AnimationPattern.
SecondHandle - Plugins + Scripts -
※ Reporting bugs or issues will help me improve the plugin and help others. SecondHandle ● To use this plugin, Just add this plugin to the Atom. ● This plugin is an simple editing tool, creates a alternative handle and provides movement and...
1. Trigger to SliderFloatValue
Atom-to-Atom interaction is always expensive.
For example, if you install ClickTrigger on one atom and successively call SliderFloatValue on another atom, a bottleneck will occur.
I discovered this problem in the process of installing and calling a separate Atom on the knob to open it by applying an animation effect to the Atom that serves as the gate.
However, I have confirmed that when both ClickTrigger and SliderFloatValue exist in one atom, no bottleneck problem occurs even when called.
Perhaps, if you install ClickTrigger on Atom in the future, you may need to add an area click function rather than an entire click function.
2. Ray Detection
When adjusting the scale of a Shape (Sphere) (for example, setting the scale to 0.2), the actual detectable range is much wider than the actual size.
Assumed, when the scale is reduced, the size of the collider does not appear to be reduced below a certain size.
3. Issues with using multiple AtomClickTriggers
Raycasting is quite expensive in terms of performance.
If you attach an AtomClickTrigger to 100 atoms, the system has to process 100 separate raycasts.
To optimize this, a more efficient approach would be to place a single AtomClickTrigger on an Empty Atom and use more than 10 Tabs, each configured to target a specific receiver Atom.
This way, only one raycast needs to be processed.
Atom-to-Atom interaction is always expensive.
For example, if you install ClickTrigger on one atom and successively call SliderFloatValue on another atom, a bottleneck will occur.
I discovered this problem in the process of installing and calling a separate Atom on the knob to open it by applying an animation effect to the Atom that serves as the gate.
However, I have confirmed that when both ClickTrigger and SliderFloatValue exist in one atom, no bottleneck problem occurs even when called.
Perhaps, if you install ClickTrigger on Atom in the future, you may need to add an area click function rather than an entire click function.
Assumed, when the scale is reduced, the size of the collider does not appear to be reduced below a certain size.
3. Issues with using multiple AtomClickTriggers
Raycasting is quite expensive in terms of performance.
If you attach an AtomClickTrigger to 100 atoms, the system has to process 100 separate raycasts.
To optimize this, a more efficient approach would be to place a single AtomClickTrigger on an Empty Atom and use more than 10 Tabs, each configured to target a specific receiver Atom.
This way, only one raycast needs to be processed.
Example Demo Scenes
Plugins + Scripts - AtomClickTrigger (VR Ready)
AtomClickTrigger Demo ● For some reason, the demo of this plugin will be posted here from now on. ● download the attached file below and change the extension from [.txt] to [.var]
I was able to create a this demo thanks to Farger's Amazing Assets. Always Thanks Farger !
hub.virtamate.com
hub.virtamate.com
hub.virtamate.com
Sultry Saiko - Looks -
In the early 1990's, Somchai, a tall athletic businessman from Thailand, started a career with a new megaproject company in Norway. After building a successful reputation there, he met an aspiring actress from Japan who had just moved to Oslo...
Farger Phase 2 - Assets + Accessories -
Collection of 65 particle effects designed for making interesting cyberpunk or sci-fi scenes. This resource also includes a 3D mesh CUA of a hologram projector stage. The nature of implementation for many of these effects results in a small...
Love in an Elevator - Environments -
This resource consists of 26 objects that enable the creation and customization of elevator scenes. All of the objects are contained within one assetbundle, which will enable quick switching between assets using triggers; for example, the floor...
I was able to create a this demo thanks to Farger's Amazing Super Car. Always Thanks @Farger !
hub.virtamate.com
Additionally, Embody from Acid Bubbles, a legendary Plugin, was used. Thanks too @Acid Bubbles !
hub.virtamate.com
Also, The SecondHandle Plugin was used to open the door when clicked.
hub.virtamate.com
SUV of Good Fortune - Assets + Accessories -
This resource is the 2021 Fortuner SUV. The original model creator made this vehicle that is targeted for markets like Japan, where they drive on the left side of the road, that is why the steering wheel is on the opposite side than what many...
Embody - Plugins + Scripts -
Embody ? Do you like Embody? Support me on Patreon and get early access to new features: https://www.patreon.com/posts/39197180 ? Need help using this plugin or want to share ideas? Join us on Discord! https://discord.gg/VtUpPkb Embody is a...
SecondHandle - Plugins + Scripts -
※ Reporting bugs or issues will help me improve the plugin and help others. SecondHandle ● To use this plugin, Just add this plugin to the Atom. ● This plugin is an simple editing tool, creates a alternative handle and provides movement and...
The Jump Plugin was used to move position when clicked.
hub.virtamate.com
Jump - Plugins + Scripts -
※ Reporting bugs or issues will help me improve the plugin and help others. Jump ● up to 10 atoms warp to space using trigger instantaneously without trembling or shaking. ● If atom is a person, it including the body pose/hand pose/foot pose. ●...