feat: Merge pull request #94 from DeltaNeverUsed/HSF-and-new-algos-feature-branch

basic vrcft v2 support
This commit is contained in:
Prohurtz 2023-10-08 08:28:35 -05:00 committed by GitHub
commit e1203aa9a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -143,6 +143,117 @@ def output_osc(eye_x, eye_y, eye_blink, last_blink, pupil_dilation, self):
y = (self.right_y + self.left_y) / 2
self.client.send_message(self.config.osc_eyes_y_address, y)
if self.config.gui_osc_vrcft_v2:
if self.main_config.eye_display_id in [
EyeId.RIGHT,
EyeId.LEFT,
]: # we are in single eye mode
se = True
self.client.send_message("/avatar/parameters/FT/v2/EyeX", eye_x)
self.client.send_message("/avatar/parameters/FT/v2/EyeLeftX", eye_x)
self.client.send_message("/avatar/parameters/FT/v2/EyeRightX", eye_x)
self.client.send_message("/avatar/parameters/FT/v2/EyeLeftY", eye_y)
self.client.send_message("/avatar/parameters/FT/v2/EyeRightY", eye_y)
self.client.send_message(
"/avatar/parameters/FT/v2/EyeLid",
eyelid_transformer(self, eye_blink),
)
else:
se = False
if self.eye_id in [EyeId.LEFT] and not se: # left eye, send data to left
self.l_eye_x = eye_x
self.l_eye_blink = eye_blink
if self.l_eye_blink == 0.0:
if (
last_blink > 0.15
): # when binary blink is on, blinks may be too fast for OSC so we repeat them.
for i in range(4):
self.client.send_message(
"/avatar/parameters/FT/v2/EyeLidLeft",
eyelid_transformer(self, self.l_eye_blink),
)
last_blink = time.time() - last_blink
if self.config.gui_eye_falloff:
if (
self.r_eye_blink == 0.0
): # if both eyes closed and DEF is enables, blink
self.client.send_message(
"/avatar/parameters/FT/v2/EyeLidLeft",
eyelid_transformer(self, self.l_eye_blink),
)
self.client.send_message(
"/avatar/parameters/FT/v2/EyeLidRight",
eyelid_transformer(self, self.l_eye_blink),
)
self.l_eye_x = self.r_eye_x
self.client.send_message("/avatar/parameters/FT/v2/EyeLeftX", self.l_eye_x)
self.left_y = eye_y
if self.left_y != 621:
self.client.send_message("/avatar/parameters/FT/v2/EyeLeftY", self.left_y)
self.client.send_message(
"/avatar/parameters/FT/v2/EyeLidLeft",
eyelid_transformer(self, self.l_eye_blink),
)
elif self.eye_id in [EyeId.RIGHT] and not se: # Right eye, send data to right
self.r_eye_x = eye_x
self.r_eye_blink = eye_blink
if self.r_eye_blink == 0.0:
if (
last_blink > 0.15
): # when binary blink is on, blinks may be too fast for OSC so we repeat them.
print("REPEATING R BLINK")
for i in range(4):
self.client.send_message(
"/avatar/parameters/FT/v2/EyeLidRight",
eyelid_transformer(self, self.r_eye_blink),
)
last_blink = time.time() - last_blink
if self.config.gui_eye_falloff:
if (
self.l_eye_blink == 0.0
): # if both eyes closed and DEF is enables, blink
self.client.send_message(
"/avatar/parameters/FT/v2/EyeLidLeft",
eyelid_transformer(self, self.r_eye_blink),
)
self.client.send_message(
"/avatar/parameters/FT/v2/EyeLidRight",
eyelid_transformer(self, self.r_eye_blink),
)
self.r_eye_x = self.l_eye_x
self.client.send_message("/avatar/parameters/FT/v2/EyeRightX", self.r_eye_x)
self.right_y = eye_y
if self.right_y != 621:
self.client.send_message("/avatar/parameters/FT/v2/EyeRightY", self.right_y)
self.client.send_message(
"/avatar/parameters/FT/v2/EyeLidRight",
eyelid_transformer(self, self.r_eye_blink),
)
if (
self.main_config.eye_display_id in [EyeId.BOTH]
and self.right_y != 621
and self.left_y != 621
):
y = (self.right_y + self.left_y) / 2
self.client.send_message("/avatar/parameters/FT/v2/EyeY", y)
if self.config.gui_vrc_native: # VRC NATIVE
if self.main_config.eye_display_id in [