public override void OnUpdate() { if (VRCInputManager.field_Private_Static_Dictionary_2_String_ObjectPublicStSiBoSiObBoSiObStSiUnique_0[ "ThumbSpreadLeft"] == null || VRCInputManager.field_Private_Static_Dictionary_2_String_ObjectPublicStSiBoSiObBoSiObStSiUnique_0[ "ThumbSpreadRight"] == null) { return; } var leftThumb = ConvertToThumbState(VRCInputManager .field_Private_Static_Dictionary_2_String_ObjectPublicStSiBoSiObBoSiObStSiUnique_0[ "ThumbSpreadLeft"].field_Private_Single_6); var rightThumb = ConvertToThumbState(VRCInputManager .field_Private_Static_Dictionary_2_String_ObjectPublicStSiBoSiObBoSiObStSiUnique_0[ "ThumbSpreadRight"].field_Private_Single_6); AvatarAnimParamController controller = null; if (VRCPlayer.field_Internal_Static_VRCPlayer_0?.field_Private_VRC_AnimationController_0?. field_Private_AvatarAnimParamController_0 != null) { controller = VRCPlayer.field_Internal_Static_VRCPlayer_0 .field_Private_VRC_AnimationController_0.field_Private_AvatarAnimParamController_0; } SetParameter(controller, this.leftThumb, (int)leftThumb); SetParameter(controller, this.rightThumb, (int)rightThumb); }
private static IEnumerator UpdateParams() { for (;;) { AvatarAnimParamController controller = null; if (VRCPlayer.field_Internal_Static_VRCPlayer_0?.field_Private_VRC_AnimationController_0 ?.field_Private_AvatarAnimParamController_0 != null) { controller = VRCPlayer.field_Internal_Static_VRCPlayer_0 .field_Private_VRC_AnimationController_0.field_Private_AvatarAnimParamController_0; } if (controller == null) { yield return(new WaitForSeconds(0.3f)); continue; } foreach (var param in eyeTrackParams.ToArray()) { ParameterHelper.SetParameter(controller, param, SRanipalTrack.SRanipalData[param.ParamName]); } yield return(new WaitForSeconds(0.01f)); } }
private void SetParameter(AvatarAnimParamController controller, AvatarPlayableController.EnumNPublicSealedvaStNoSt18StStStStStUnique param, int state) { if (controller == null || controller.field_Private_AvatarPlayableController_0 == null || param == AvatarPlayableController.EnumNPublicSealedvaStNoSt18StStStStStUnique.None) { return; } controller.field_Private_AvatarPlayableController_0 .Method_Public_Void_EnumNPublicSealedvaStNoSt18StStStStStUnique_Single_0(param, state); }
public static ObjectPublicAnStInObLi1BoInSiBoUnique GetParam(AvatarAnimParamController controller, int index) { if (controller == null || controller.field_Private_AvatarPlayableController_0 == null || index == -1) { return(null); } return(controller.field_Private_AvatarPlayableController_0 .field_Private_ArrayOf_ObjectNPublicInObInPaInUnique_0[index] .field_Public_ObjectPublicAnStInObLi1BoInSiBoUnique_0); }
public static void SetParameter(AvatarAnimParamController controller, MainMod.AV3Parameter param, float value) { if (controller == null || controller.field_Private_AvatarPlayableController_0 == null || param.ParamIndex == -1) { return; } /*var paramsList = controller.field_Private_AvatarPlayableController_0 * .field_Private_ArrayOf_ObjectNPublicInObInPaInUnique_0; * * var paramSingle = paramsList[0].field_Public_ObjectPublicAnStInObLi1BoInSiBoUnique_0; * var paramName = paramSingle.prop_String_0; * var paramCurrentValue = paramSingle.field_Private_Single_0;*/ //paramSingle.field_Private_Boolean_0; var param = GetParam(controller, param.ParamIndex); controller.field_Private_AvatarPlayableController_0.Method_Public_Void_Int32_Single_Boolean_0(param.prop_Int32_0, value); MelonLoader.MelonCoroutines.Start(UpdateParameters(controller)); }
public static IEnumerator UpdateParameters(AvatarAnimParamController controller) { yield return(new WaitForEndOfFrame()); // Needs a frame to update internally controller.field_Private_AvatarPlayableController_0.field_Private_Boolean_3 = true; // marks the parameters to be resynced over the network }