Minor gestures fix

Version bump up
This commit is contained in:
SDraw 2023-07-18 10:57:32 +03:00
parent 777a4fdb1c
commit 2e25d098d8
No known key found for this signature in database
GPG key ID: BB95B4DAB2BB8BB5
5 changed files with 40 additions and 43 deletions

View file

@ -7,7 +7,7 @@ Merged set of MelonLoader mods for ChilloutVR.
| [Desktop Head Tracking](/ml_dht/README.md)| ml_dht | 1.1.3 [:arrow_down:](../../releases/latest/download/ml_dht.dll)| ✔ Yes | | [Desktop Head Tracking](/ml_dht/README.md)| ml_dht | 1.1.3 [:arrow_down:](../../releases/latest/download/ml_dht.dll)| ✔ Yes |
| [Desktop Reticle Switch](/ml_drs/README.md)| ml_drs | 1.0.0 [:arrow_down:](../../releases/latest/download/ml_drs.dll)| ✔ Yes | | [Desktop Reticle Switch](/ml_drs/README.md)| ml_drs | 1.0.0 [:arrow_down:](../../releases/latest/download/ml_drs.dll)| ✔ Yes |
| [Extended Game Notifications](/ml_egn/README.md) | ml_egn | 1.0.2 [:arrow_down:](../../releases/latest/download/ml_egn.dll)| ✔ Yes | | [Extended Game Notifications](/ml_egn/README.md) | ml_egn | 1.0.2 [:arrow_down:](../../releases/latest/download/ml_egn.dll)| ✔ Yes |
| [Leap Motion Extension](/ml_lme/README.md)| ml_lme | 1.3.8 [:arrow_down:](../../releases/latest/download/ml_lme.dll)| ✔ Yes | | [Leap Motion Extension](/ml_lme/README.md)| ml_lme | 1.3.9 [:arrow_down:](../../releases/latest/download/ml_lme.dll)| ✔ Yes<br>:hourglass_flowing_sand: Update review |
| [Pickup Arm Movement](/ml_pam/README.md)| ml_pam | 1.0.5 [:arrow_down:](../../releases/latest/download/ml_pam.dll)| ✔ Yes | | [Pickup Arm Movement](/ml_pam/README.md)| ml_pam | 1.0.5 [:arrow_down:](../../releases/latest/download/ml_pam.dll)| ✔ Yes |
| [Player Movement Copycat](/ml_pmc/README.md)| ml_pmc | 1.0.0 [:arrow_down:](../../releases/latest/download/ml_pmc.dll)| ✔ Yes | | [Player Movement Copycat](/ml_pmc/README.md)| ml_pmc | 1.0.0 [:arrow_down:](../../releases/latest/download/ml_pmc.dll)| ✔ Yes |
| [Player Ragdoll Mod](/ml_prm/README.md)| ml_prm | 1.0.5 [:arrow_down:](../../releases/latest/download/ml_prm.dll)| ✔ Yes | | [Player Ragdoll Mod](/ml_prm/README.md)| ml_prm | 1.0.5 [:arrow_down:](../../releases/latest/download/ml_prm.dll)| ✔ Yes |

View file

@ -137,7 +137,7 @@ namespace ml_lme
{ {
ResetFingers(true); ResetFingers(true);
m_handVisibleLeft = false; m_handVisibleLeft = false;
if (Settings.Gestures) if(Settings.Gestures)
ResetGestures(true); ResetGestures(true);
} }
} }
@ -153,7 +153,7 @@ namespace ml_lme
{ {
ResetFingers(false); ResetFingers(false);
m_handVisibleRight = false; m_handVisibleRight = false;
if (Settings.Gestures) if(Settings.Gestures)
ResetGestures(false); ResetGestures(false);
} }
} }
@ -174,10 +174,10 @@ namespace ml_lme
m_handRayLeft.enabled = (l_data.m_leftHand.m_present && (!m_inVR || !Utils.IsLeftHandTracked() || !Settings.FingersOnly)); m_handRayLeft.enabled = (l_data.m_leftHand.m_present && (!m_inVR || !Utils.IsLeftHandTracked() || !Settings.FingersOnly));
m_handRayRight.enabled = (l_data.m_rightHand.m_present && (!m_inVR || !Utils.IsRightHandTracked() || !Settings.FingersOnly)); m_handRayRight.enabled = (l_data.m_rightHand.m_present && (!m_inVR || !Utils.IsRightHandTracked() || !Settings.FingersOnly));
} }
public override void UpdateInput() public override void UpdateInput()
{ {
if (!Settings.Enabled) if(!Settings.Enabled)
return; return;
GestureMatcher.LeapData l_data = LeapManager.GetInstance().GetLatestData(); GestureMatcher.LeapData l_data = LeapManager.GetInstance().GetLatestData();
@ -241,46 +241,44 @@ namespace ml_lme
} }
} }
if (Settings.Gestures) if(Settings.Gestures)
{ {
// Left hand gestures // Left hand gestures
if (l_data.m_leftHand.m_present && (!m_inVR || !Utils.IsLeftHandTracked() || !Settings.FingersOnly)) if(l_data.m_leftHand.m_present)
{ {
m_inputManager.gestureLeftRaw = 0f; m_inputManager.gestureLeftRaw = 0f;
// Finger Point & Finger Gun // Finger Point & Finger Gun
if (m_inputManager.fingerCurlLeftIndex < 0.2f && m_inputManager.fingerCurlLeftMiddle > 0.75f && if((m_inputManager.fingerCurlLeftIndex < 0.2f) && (m_inputManager.fingerCurlLeftMiddle > 0.75f) &&
m_inputManager.fingerCurlLeftRing > 0.75f && m_inputManager.fingerCurlLeftPinky > 0.75f) (m_inputManager.fingerCurlLeftRing > 0.75f) && (m_inputManager.fingerCurlLeftPinky > 0.75f))
{ {
m_inputManager.gestureLeftRaw = m_inputManager.fingerCurlLeftThumb >= 0.5f ? 4f : 3f; m_inputManager.gestureLeftRaw = (m_inputManager.fingerCurlLeftThumb >= 0.5f) ? 4f : 3f;
} }
// Peace Sign // Peace Sign
if (m_inputManager.fingerCurlLeftIndex < 0.2f && m_inputManager.fingerCurlLeftMiddle < 0.2f && if((m_inputManager.fingerCurlLeftIndex < 0.2f) && (m_inputManager.fingerCurlLeftMiddle < 0.2f) &&
m_inputManager.fingerCurlLeftRing > 0.75f && m_inputManager.fingerCurlLeftPinky > 0.75f) (m_inputManager.fingerCurlLeftRing > 0.75f) && (m_inputManager.fingerCurlLeftPinky > 0.75f))
{ {
m_inputManager.gestureLeftRaw = 5f; m_inputManager.gestureLeftRaw = 5f;
} }
// Rock and Roll // Rock and Roll
if (m_inputManager.fingerCurlLeftIndex < 0.2f && m_inputManager.fingerCurlLeftMiddle > 0.75f && if((m_inputManager.fingerCurlLeftIndex < 0.2f) && (m_inputManager.fingerCurlLeftMiddle > 0.75f) &&
m_inputManager.fingerCurlLeftRing > 0.75f && m_inputManager.fingerCurlLeftPinky < 0.5f) (m_inputManager.fingerCurlLeftRing > 0.75f) && (m_inputManager.fingerCurlLeftPinky < 0.5f))
{ {
m_inputManager.gestureLeftRaw = 6f; m_inputManager.gestureLeftRaw = 6f;
} }
// Fist & Thumbs Up // Fist & Thumbs Up
if (m_inputManager.fingerCurlLeftIndex > 0.5f && m_inputManager.fingerCurlLeftMiddle > 0.5f && if((m_inputManager.fingerCurlLeftIndex > 0.5f) && (m_inputManager.fingerCurlLeftMiddle > 0.5f) &&
m_inputManager.fingerCurlLeftRing > 0.5f && m_inputManager.fingerCurlLeftPinky > 0.5f) (m_inputManager.fingerCurlLeftRing > 0.5f) && (m_inputManager.fingerCurlLeftPinky > 0.5f))
{ {
m_inputManager.gestureLeftRaw = m_inputManager.fingerCurlLeftThumb >= 0.5f m_inputManager.gestureLeftRaw = (m_inputManager.fingerCurlLeftThumb >= 0.5f) ? ((l_data.m_rightHand.m_grabStrength - 0.5f) * 2f) : 2f;
? (l_data.m_rightHand.m_grabStrength - 0.5f) * 2f
: 2f;
} }
// Open Hand // Open Hand
if (m_inputManager.fingerCurlLeftIndex < 0.2f && m_inputManager.fingerCurlLeftMiddle < 0.2f && if((m_inputManager.fingerCurlLeftIndex < 0.2f) && (m_inputManager.fingerCurlLeftMiddle < 0.2f) &&
m_inputManager.fingerCurlLeftRing < 0.2f && m_inputManager.fingerCurlLeftPinky < 0.2f) (m_inputManager.fingerCurlLeftRing < 0.2f) && (m_inputManager.fingerCurlLeftPinky < 0.2f))
{ {
m_inputManager.gestureLeftRaw = -1f; m_inputManager.gestureLeftRaw = -1f;
} }
@ -289,43 +287,41 @@ namespace ml_lme
} }
// Right hand gestures // Right hand gestures
if (l_data.m_rightHand.m_present && (!m_inVR || !Utils.IsRightHandTracked() || !Settings.FingersOnly)) if(l_data.m_rightHand.m_present)
{ {
m_inputManager.gestureRightRaw = 0f; m_inputManager.gestureRightRaw = 0f;
// Finger Point & Finger Gun // Finger Point & Finger Gun
if (m_inputManager.fingerCurlRightIndex < 0.2f && m_inputManager.fingerCurlRightMiddle > 0.75f && if((m_inputManager.fingerCurlRightIndex < 0.2f) && (m_inputManager.fingerCurlRightMiddle > 0.75f) &&
m_inputManager.fingerCurlRightRing > 0.75f && m_inputManager.fingerCurlRightPinky > 0.75f) (m_inputManager.fingerCurlRightRing > 0.75f) && (m_inputManager.fingerCurlRightPinky > 0.75f))
{ {
m_inputManager.gestureRightRaw = m_inputManager.fingerCurlRightThumb >= 0.5f ? 4f : 3f; m_inputManager.gestureRightRaw = (m_inputManager.fingerCurlRightThumb >= 0.5f) ? 4f : 3f;
} }
// Peace Sign // Peace Sign
if (m_inputManager.fingerCurlRightIndex < 0.2f && m_inputManager.fingerCurlRightMiddle < 0.2f && if((m_inputManager.fingerCurlRightIndex < 0.2f) && (m_inputManager.fingerCurlRightMiddle < 0.2f) &&
m_inputManager.fingerCurlRightRing > 0.75f && m_inputManager.fingerCurlRightPinky > 0.75f) (m_inputManager.fingerCurlRightRing > 0.75f) && (m_inputManager.fingerCurlRightPinky > 0.75f))
{ {
m_inputManager.gestureRightRaw = 5f; m_inputManager.gestureRightRaw = 5f;
} }
// Rock and Roll // Rock and Roll
if (m_inputManager.fingerCurlRightIndex < 0.2f && m_inputManager.fingerCurlRightMiddle > 0.75f && if((m_inputManager.fingerCurlRightIndex < 0.2f) && (m_inputManager.fingerCurlRightMiddle > 0.75f) &&
m_inputManager.fingerCurlRightRing > 0.75f && m_inputManager.fingerCurlRightPinky < 0.5f) (m_inputManager.fingerCurlRightRing > 0.75f) && (m_inputManager.fingerCurlRightPinky < 0.5f))
{ {
m_inputManager.gestureRightRaw = 6f; m_inputManager.gestureRightRaw = 6f;
} }
// Fist & Thumbs Up // Fist & Thumbs Up
if (m_inputManager.fingerCurlRightIndex > 0.5f && m_inputManager.fingerCurlRightMiddle > 0.5f && if((m_inputManager.fingerCurlRightIndex > 0.5f) && (m_inputManager.fingerCurlRightMiddle > 0.5f) &&
m_inputManager.fingerCurlRightRing > 0.5f && m_inputManager.fingerCurlRightPinky > 0.5f) (m_inputManager.fingerCurlRightRing > 0.5f) && (m_inputManager.fingerCurlRightPinky > 0.5f))
{ {
m_inputManager.gestureRightRaw = m_inputManager.fingerCurlRightThumb >= 0.5f m_inputManager.gestureRightRaw = (m_inputManager.fingerCurlRightThumb >= 0.5f) ? ((l_data.m_rightHand.m_grabStrength - 0.5f) * 2f) : 2f;
? (l_data.m_rightHand.m_grabStrength - 0.5f) * 2f
: 2f;
} }
// Open Hand // Open Hand
if (m_inputManager.fingerCurlRightIndex < 0.2f && m_inputManager.fingerCurlRightMiddle < 0.2f && if((m_inputManager.fingerCurlRightIndex < 0.2f) && (m_inputManager.fingerCurlRightMiddle < 0.2f) &&
m_inputManager.fingerCurlRightRing < 0.2f && m_inputManager.fingerCurlRightPinky < 0.2f) (m_inputManager.fingerCurlRightRing < 0.2f) && (m_inputManager.fingerCurlRightPinky < 0.2f))
{ {
m_inputManager.gestureRightRaw = -1f; m_inputManager.gestureRightRaw = -1f;
} }
@ -462,7 +458,7 @@ namespace ml_lme
void ResetGestures(bool p_left) void ResetGestures(bool p_left)
{ {
if (p_left) if(p_left)
{ {
m_inputManager.gestureLeft = 0f; m_inputManager.gestureLeft = 0f;
m_inputManager.gestureLeftRaw = 0f; m_inputManager.gestureLeftRaw = 0f;
@ -475,7 +471,7 @@ namespace ml_lme
} }
// Game settings // Game settings
void OnGameSettingBoolChange(string p_name, bool p_state) void OnGameSettingBoolChange(string p_name, bool p_state)
{ {
if(p_name == "ControlUseGripToGrab") if(p_name == "ControlUseGripToGrab")
m_gripToGrab = p_state; m_gripToGrab = p_state;

View file

@ -1,10 +1,10 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyTitle("LeapMotionExtension")] [assembly: AssemblyTitle("LeapMotionExtension")]
[assembly: AssemblyVersion("1.3.8")] [assembly: AssemblyVersion("1.3.9")]
[assembly: AssemblyFileVersion("1.3.8")] [assembly: AssemblyFileVersion("1.3.9")]
[assembly: MelonLoader.MelonInfo(typeof(ml_lme.LeapMotionExtension), "LeapMotionExtension", "1.3.8", "SDraw", "https://github.com/SDraw/ml_mods_cvr")] [assembly: MelonLoader.MelonInfo(typeof(ml_lme.LeapMotionExtension), "LeapMotionExtension", "1.3.9", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")] [assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonOptionalDependencies("ml_pmc")] [assembly: MelonLoader.MelonOptionalDependencies("ml_pmc")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)] [assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]

View file

@ -23,5 +23,6 @@ Available mod's settings in `Settings - Implementation - Leap Motion Tracking`:
* **Model visibility:** shows Leap Motion controller model, useful for tracking visualizing, disabled by default. * **Model visibility:** shows Leap Motion controller model, useful for tracking visualizing, disabled by default.
* **Visualize hands:** shows overlayed hands model, disabled by default. * **Visualize hands:** shows overlayed hands model, disabled by default.
* **Interaction input:** enables in-game interactions (props, menu and etc.); `true` by default. * **Interaction input:** enables in-game interactions (props, menu and etc.); `true` by default.
* **Recognize gestures:** sets avatar gestures (fist, gun, rock'n'roll and etc.) based on current fingers pose; `false` by default.
* **Interact gesture threadhold:** activation limit for interaction based on hand gesture; 80 by default. * **Interact gesture threadhold:** activation limit for interaction based on hand gesture; 80 by default.
* **Grip gesture threadhold:** activation limit for grip based on hand gesture; 40 by default. * **Grip gesture threadhold:** activation limit for grip based on hand gesture; 40 by default.

View file

@ -400,7 +400,7 @@ function inp_dropdown_mod_lme(_obj, _callbackName) {
</div> </div>
<div class ="row-wrapper"> <div class ="row-wrapper">
<div class ="option-caption">Recognize Gestures: </div> <div class ="option-caption">Recognize gestures: </div>
<div class ="option-input"> <div class ="option-input">
<div id="Gestures" class ="inp_toggle no-scroll" data-current="false"></div> <div id="Gestures" class ="inp_toggle no-scroll" data-current="false"></div>
</div> </div>