• Hi Guest!

    We are extremely excited to announce the release of our first Beta1.1 and the first release of our Public AddonKit!
    To participate in the Beta, a subscription to the Entertainer or Creator Tier is required. For access to the Public AddonKit you must be a Creator tier member. Once subscribed, download instructions can be found here.

    Click here for information and guides regarding the VaM2 beta. Join our Discord server for more announcements and community discussion about VaM2.
  • Hi Guest!

    VaM2 Resource Categories have now been added to the Hub! For information on posting VaM2 resources and details about VaM2 related changes to our Community Forums, please see our official announcement here.
Angle Driven Triggering System

Plugins + Scripts Angle Driven Triggering System

Download [<1 MB]

Dragontales

Well-known member
Featured Contributor
Joined
Jun 12, 2020
Messages
531
Reactions
1,963
Dragontales submitted a new resource:

Angle Driven Triggering System - Drive morphs & other parameters with these customizable angle measuring plugins

🎯 ANGLE MEASUREMENT PLUGINS 🎯

⚡ TRANSFORM YOUR SCENES WITH PRECISION ANGLE TRACKING! ⚡

🌟 WHAT THESE PLUGINS DO FOR YOU: 🌟

✅ REAL-TIME ANGLE DETECTION - Monitor joint movements instantly!
✅ SMART TRIGGER SYSTEM - Drive morphs or other stuff from the angle measurements
✅ SILKY SMOOTH PERFORMANCE - Built-in smoothing eliminates jitter
✅ DUAL MONITORING CAPABILITY - Track multiple...

Read more about this resource...
 
I don't know how to use it.

Complete Guide to the Angle Measurement Plugin​


This plugin measures angles between three points (nodes) on a figure and can drive various actions based on those measurements. Here's how to use it effectively:

Initial Setup

1. Installation

  • Add the plugin to a Person atom (not Empty or other atom types)
  • Go to the Person atom → Plugins tab → Add Plugin → Select "Angle Measurement.cs"

2. Understanding the Interface

The plugin creates several UI sections:
  • Node Selection (3 dropdowns)
  • Angle Configuration (sliders and toggles)
  • Performance Settings (smoothing and frame skip)
  • Trigger Controls (activation and actions panel)

Node Selection - The Foundation

Selecting Your Three Points

You need to choose three nodes that form the angle you want to measure:
  1. Center Node - The vertex of the angle (where the angle is measured from)
  2. Node 1 - First reference point
  3. Node 2 - Second reference point

Common Use Cases & Node Examples

Measuring Elbow Bend:
  • Center Node: lForeArm or rForeArm
  • Node 1: lShldr or rShldr (shoulder)
  • Node 2: lHand or rHand
Measuring Knee Bend:
  • Center Node: lShin or rShin
  • Node 1: lThigh or rThigh
  • Node 2: lFoot or rFoot
Measuring Head Tilt:
  • Center Node: neck
  • Node 1: chest
  • Node 2: head
Measuring Spine Curve:
  • Center Node: abdomen2
  • Node 1: chest
  • Node 2: hip

Finding the Right Nodes

  • Use the "Refresh Available Nodes" button if nodes don't appear
  • Nodes include both bones and control points
  • The dropdown is alphabetically sorted for easier searching
  • You can type to filter in the dropdown

Angle Configuration

Angle Range Settings

  • Min Angle: The minimum angle value (typically 0°)
  • Max Angle: The maximum angle value (typically 180°)
  • Current Angle: Shows the live measurement (read-only)

Invert Angle Toggle

  • Unchecked: Measures the direct angle between the vectors
  • Checked: Measures 180° minus the angle (useful for inside vs outside angles)
Example: For an elbow bend, you might want to invert so that:
  • Straight arm = 0°
  • Bent arm = 180°

Performance Optimization

Smoothing Factor (0.01-1.0)

  • Lower values (0.01-0.1): Heavy smoothing, slow response
  • Higher values (0.5-1.0): Light smoothing, fast response
  • Use smoothing to: Reduce jitter, create more natural transitions

Frame Skip Interval (1-30)

  • Lower values (1-3): More frequent updates, higher CPU usage
  • Higher values (10-30): Less frequent updates, better performance
  • Recommended: Start with 6, adjust based on your needs

Setting Up Triggers

Activating the Trigger System

  1. Check "Trigger Active" toggle
  2. Click "Open Trigger Actions Panel"
  3. This opens the main trigger interface

Understanding the Trigger Types

Transition Actions (Most Common):
  • Actions that scale with the angle measurement
  • Perfect for morphs, poses, controller positions
  • Value ranges from 0 (min angle) to 1 (max angle)
Start Actions:
  • Trigger once when angle enters the defined range
  • Good for sounds, enabling other plugins, starting sequences
End Actions:
  • Trigger once when angle exits the defined range
  • Good for cleanup, stopping sounds, resetting states

Practical Setup Examples

Example 1: Elbow Bend Drives Bicep Morph

Setup:
  • Center Node: lForeArm
  • Node 1: lShldr
  • Node 2: lHand
  • Min Angle: 30°
  • Max Angle: 150°
  • Invert Angle: ✓ (checked)
Trigger Action:
  • Type: Transition
  • Target: Person → Morphs → Pose Morphs → Bicep Flex
  • Value range: 0 to 1
Result: As the elbow bends more, the bicep morph increases

Example 2: Knee Bend Controls Clothing

Setup:
  • Center Node: lShin
  • Node 1: lThigh
  • Node 2: lFoot
  • Min Angle: 20°
  • Max Angle: 140°
Trigger Actions:
  • Transition: Clothing sim → Clothing item → Sim properties
  • Start Action: Sound → Play audio when knee bends
  • End Action: Reset clothing to default state

Example 3: Head Nod Detection

Setup:
  • Center Node: neck
  • Node 1: chest
  • Node 2: head
  • Min Angle: 10°
  • Max Angle: 45°
Trigger Actions:
  • Start Action: Play "yes" animation
  • End Action: Return to neutral expression

Advanced Tips

Calibration Process

  1. Set up your three nodes
  2. Manually pose the figure in the minimum position
  3. Note the "Current Angle" value and set as Min Angle
  4. Pose the figure in the maximum position
  5. Note the "Current Angle" value and set as Max Angle
  6. Test the invert toggle to see which gives better results

Troubleshooting

"No angle measurement":
  • Check that all three nodes are selected
  • Ensure you're using a Person atom
  • Try refreshing available nodes
  • Verify the nodes actually exist on your figure
"Jittery or erratic behavior":
  • Increase smoothing factor
  • Increase frame skip interval
  • Check if your selected nodes are appropriate for the measurement
"Trigger not working":
  • Ensure "Trigger Active" is checked
  • Verify your min/max angle range makes sense
  • Check that the angle actually varies within your range

Performance Considerations

  • Use higher frame skip intervals for background measurements
  • Lower smoothing for responsive controls
  • Consider multiple instances for complex multi-joint setups

Creative Applications

  • Facial expressions tied to jaw angle
  • Clothing adjustments based on limb positions
  • Lighting changes based on head orientation
  • Sound effects triggered by specific poses
  • Automatic pose corrections based on joint angles
This plugin is extremely versatile and can enhance realism by creating automatic responses to natural body movements. Experiment with different node combinations to discover unique applications for your specific needs.
 

Complete Guide to the Angle Measurement Plugin​


This plugin measures angles between three points (nodes) on a figure and can drive various actions based on those measurements. Here's how to use it effectively:

Initial Setup

1. Installation

  • Add the plugin to a Person atom (not Empty or other atom types)
  • Go to the Person atom → Plugins tab → Add Plugin → Select "Angle Measurement.cs"

2. Understanding the Interface

The plugin creates several UI sections:
  • Node Selection (3 dropdowns)
  • Angle Configuration (sliders and toggles)
  • Performance Settings (smoothing and frame skip)
  • Trigger Controls (activation and actions panel)

Node Selection - The Foundation

Selecting Your Three Points

You need to choose three nodes that form the angle you want to measure:
  1. Center Node - The vertex of the angle (where the angle is measured from)
  2. Node 1 - First reference point
  3. Node 2 - Second reference point

Common Use Cases & Node Examples

Measuring Elbow Bend:
  • Center Node: lForeArm or rForeArm
  • Node 1: lShldr or rShldr (shoulder)
  • Node 2: lHand or rHand
Measuring Knee Bend:
  • Center Node: lShin or rShin
  • Node 1: lThigh or rThigh
  • Node 2: lFoot or rFoot
Measuring Head Tilt:
  • Center Node: neck
  • Node 1: chest
  • Node 2: head
Measuring Spine Curve:
  • Center Node: abdomen2
  • Node 1: chest
  • Node 2: hip

Finding the Right Nodes

  • Use the "Refresh Available Nodes" button if nodes don't appear
  • Nodes include both bones and control points
  • The dropdown is alphabetically sorted for easier searching
  • You can type to filter in the dropdown

Angle Configuration

Angle Range Settings

  • Min Angle: The minimum angle value (typically 0°)
  • Max Angle: The maximum angle value (typically 180°)
  • Current Angle: Shows the live measurement (read-only)

Invert Angle Toggle

  • Unchecked: Measures the direct angle between the vectors
  • Checked: Measures 180° minus the angle (useful for inside vs outside angles)
Example: For an elbow bend, you might want to invert so that:
  • Straight arm = 0°
  • Bent arm = 180°

Performance Optimization

Smoothing Factor (0.01-1.0)

  • Lower values (0.01-0.1): Heavy smoothing, slow response
  • Higher values (0.5-1.0): Light smoothing, fast response
  • Use smoothing to: Reduce jitter, create more natural transitions

Frame Skip Interval (1-30)

  • Lower values (1-3): More frequent updates, higher CPU usage
  • Higher values (10-30): Less frequent updates, better performance
  • Recommended: Start with 6, adjust based on your needs

Setting Up Triggers

Activating the Trigger System

  1. Check "Trigger Active" toggle
  2. Click "Open Trigger Actions Panel"
  3. This opens the main trigger interface

Understanding the Trigger Types

Transition Actions (Most Common):
  • Actions that scale with the angle measurement
  • Perfect for morphs, poses, controller positions
  • Value ranges from 0 (min angle) to 1 (max angle)
Start Actions:
  • Trigger once when angle enters the defined range
  • Good for sounds, enabling other plugins, starting sequences
End Actions:
  • Trigger once when angle exits the defined range
  • Good for cleanup, stopping sounds, resetting states

Practical Setup Examples

Example 1: Elbow Bend Drives Bicep Morph

Setup:
  • Center Node: lForeArm
  • Node 1: lShldr
  • Node 2: lHand
  • Min Angle: 30°
  • Max Angle: 150°
  • Invert Angle: ✓ (checked)
Trigger Action:
  • Type: Transition
  • Target: Person → Morphs → Pose Morphs → Bicep Flex
  • Value range: 0 to 1
Result: As the elbow bends more, the bicep morph increases

Example 2: Knee Bend Controls Clothing

Setup:
  • Center Node: lShin
  • Node 1: lThigh
  • Node 2: lFoot
  • Min Angle: 20°
  • Max Angle: 140°
Trigger Actions:
  • Transition: Clothing sim → Clothing item → Sim properties
  • Start Action: Sound → Play audio when knee bends
  • End Action: Reset clothing to default state

Example 3: Head Nod Detection

Setup:
  • Center Node: neck
  • Node 1: chest
  • Node 2: head
  • Min Angle: 10°
  • Max Angle: 45°
Trigger Actions:
  • Start Action: Play "yes" animation
  • End Action: Return to neutral expression

Advanced Tips

Calibration Process

  1. Set up your three nodes
  2. Manually pose the figure in the minimum position
  3. Note the "Current Angle" value and set as Min Angle
  4. Pose the figure in the maximum position
  5. Note the "Current Angle" value and set as Max Angle
  6. Test the invert toggle to see which gives better results

Troubleshooting

"No angle measurement":
  • Check that all three nodes are selected
  • Ensure you're using a Person atom
  • Try refreshing available nodes
  • Verify the nodes actually exist on your figure
"Jittery or erratic behavior":
  • Increase smoothing factor
  • Increase frame skip interval
  • Check if your selected nodes are appropriate for the measurement
"Trigger not working":
  • Ensure "Trigger Active" is checked
  • Verify your min/max angle range makes sense
  • Check that the angle actually varies within your range

Performance Considerations

  • Use higher frame skip intervals for background measurements
  • Lower smoothing for responsive controls
  • Consider multiple instances for complex multi-joint setups

Creative Applications

  • Facial expressions tied to jaw angle
  • Clothing adjustments based on limb positions
  • Lighting changes based on head orientation
  • Sound effects triggered by specific poses
  • Automatic pose corrections based on joint angles
This plugin is extremely versatile and can enhance realism by creating automatic responses to natural body movements. Experiment with different node combinations to discover unique applications for your specific needs.
Hi, I tried to use it for bend drives morph, but when I set the trigger I couldn't find the ‘morph’ under the person, there is only ‘morph preset’, and the options are blank. did I miss something?
 

Attachments

  • 1.png
    1.png
    152.7 KB · Views: 0
  • 2.png
    2.png
    220.9 KB · Views: 0
Hi, I tried to use it for bend drives morph, but when I set the trigger I couldn't find the ‘morph’ under the person, there is only ‘morph preset’, and the options are blank. did I miss something?
Morphs are found under Person/geometry/..

And the morph needs to be favorites in order for it to show up in the list.
 
This is an interesting idea. I wonder if it could be used to....
1. trigger leg walking animation from arm angle while in embody mode.
2. monitor angles between a person atom node and other objects. For example, to direct a person's head to look at an object, then reach out at the right angle to grasp an object.
 
This is an interesting idea. I wonder if it could be used to....
1. trigger leg walking animation from arm angle while in embody mode.
2. monitor angles between a person atom node and other objects. For example, to direct a person's head to look at an object, then reach out at the right angle to grasp an object.
For the first one, It's probably possible but not quite sure how it would look. For the second, Creating a version for just measuring the angle between main atoms should be relatively easy. There would always need to be a vertex point though to do the measuring from. But I'd think a "look-at" trigger might be better (if the object falls within the POV, it triggers), unless I'm misunderstanding your thought
 
我测试了插件,过渡触发器可以正确触发,但开始和结束触发器没有响应。我已经验证了实时角度值。所以,如果我理解的没错,你的插件应该在达到设定的最大和最小角度时触发,对吗?
 
我测试了插件,过渡触发器可以正确触发,但开始和结束触发器没有响应。我已经验证了实时角度值。所以,如果我理解的没错,你的插件应该在达到设定的最大和最小角度时触发,对吗?
This plugin wasn't designed to have the start and end triggers, just the ones that work during movement. I wanted to remove the "start" and "end" part of the triggers, but couldn't figure out how just yet. but maybe I can try and add that option into them instead. I'll look into it.
 
I see you're enjoying using emojis on the description text, but please remove some, too many make the text very hard to read and understand.
 
Way better, I really had a hard time trying to read it before.
Thanks
 
Hello, I still don't know how to use it. I want the nodding action on timeline to be triggered when the leg bend 90 degrees, so my center node should be the knee, right? Node1 and Node2 are thigh and foot, and the timeline is triggered as the 'start action', right? But even the min and max angle make sense (60 and 100), the trigger still doesn't work.
 
Dragontales updated Angle Driven Triggering System with a new update entry:

Optimization and Presets

What's new:

  • Save and load your plugin settings as presets
  • Presets save with a thumbnail image for easy browsing
  • The currently loaded preset name is displayed in the UI
  • When opening a transition trigger, only the Transition Actions tab is shown — clutter removed
  • All sliders, toggles, and node selections are fully save-able and restore correctly with scenes and presets
  • Plugin controls (enable/disable triggers, smoothing, frame rate, etc.) are accessible from...

Read the rest of this update entry...
 
Cannot figure out how to make this work.

I've copied your exact example for head movement, but cannot make it trigger anything?

It's measuring the angle as I move the head, but no triggers activate
 
Are you using the single or dual?
Using the single

I have it set like this:

  • enter Node: neck
  • Node 1: chest
  • Node 2: head
  • Min Angle: 10°
  • Max Angle: 45°
I've tried multiple different min/max angles but still unable to trigger anything. Also have you removed the start/end triggers?
 
Using the single

I have it set like this:

  • enter Node: neck
  • Node 1: chest
  • Node 2: head
  • Min Angle: 10°
  • Max Angle: 45°
I've tried multiple different min/max angles but still unable to trigger anything. Also have you removed the start/end triggers?
Yes, I moved or deleted the start and end triggers. As I didn't think they did anything on a transitional measuring device. Can you send me a screenshot of the trigger setup in the transitional section? The measuring is constant so it requires transitional triggers. Single triggers don't work for this
 
Also, can you tell me what you're trying to do exactly? And I can see if I can walk you through it or if I need to add functionality to the plugin
 
I'm not trying to do anything in particular. I just set up a trigger for the intensity of a light. I will play around some more to see if I get anything happening.

As I understand it, once within the min/max range the angle drives the intensity slider, so the closer you get to the max angle the more it increases the slider?

transtrigger.JPG
 
I'm not trying to do anything in particular. I just set up a trigger for the intensity of a light. I will play around some more to see if I get anything happening.

As I understand it, once within the min/max range the angle drives the intensity slider, so the closer you get to the max angle the more it increases the slider?

View attachment 586217
That method of triggering a light, is a instantaneous trigger. It. Even though it has a timer, it's still a single point that triggers it. It would require a threshold trigger on this plug-in. However, lights do have the ability to attach their intensity to the angle driven, but I don't have the computer in front of me to tell you which receiver Target you need to use. You should get two sliders, one for the lower end, one for the upper end
 
I'm not trying to do anything in particular. I just set up a trigger for the intensity of a light. I will play around some more to see if I get anything happening.

As I understand it, once within the min/max range the angle drives the intensity slider, so the closer you get to the max angle the more it increases the slider?

View attachment 586217
Ok. I was able to get back in front of the computer. What's happening is that, even though you're only seeing the "transition" trigger panel, when you open the panel, it's actually looking at one of the hidden (probably Start) trigger systems. You have to manually click the Transition tab to get to the transition triggers. Then, when you use those same Reciever Atom, Reciever and Reciever Target, you'll be given the two sliders to adjust. Also, with the settings you gave me above, you likely won't see anything happen. The Head/Neck/chest are all in relative alighment, so a sharp angle like 10 degrees isn't going to be achieved. Set the three nodes and see what min and max angles you can get (by reading the current angle) and then you can set your min and max's more reliably. For those three nodes, you're likely looking at 150 to 175 degrees. I will have to think about adding back the start and end trigger panels, but they still won't actually do anything since their is no start or end to the measurments. I CAN add a threshhold trigger system that, when crossed on either end, can trigger an instant trigger. Let me know if that all makes sense.
 

Similar threads

Back
Top Bottom