diff --git a/mm/2s2h/Enhancements/FrameInterpolation/FrameInterpolation.cpp b/mm/2s2h/Enhancements/FrameInterpolation/FrameInterpolation.cpp index 7ac739626c..6e982130e8 100644 --- a/mm/2s2h/Enhancements/FrameInterpolation/FrameInterpolation.cpp +++ b/mm/2s2h/Enhancements/FrameInterpolation/FrameInterpolation.cpp @@ -474,6 +474,10 @@ void FrameInterpolation_StartRecord(void) { current_recording = {}; current_path.clear(); current_path.push_back(¤t_recording.root_path); + has_inv_actor_mtx = false; + interpolate_wider_angles = false; + ignore_inv_actor_mtx = false; + if (!camera_interpolation) { // default to interpolating camera_interpolation = true; @@ -523,12 +527,16 @@ int FrameInterpolation_GetCameraEpoch(void) { // Marks the current record path and its children to not apply the matrix result // against the recorded actor inverted matrix void FrameInterpolation_IgnoreActorMtx() { + if (!is_recording) + return; ignore_inv_actor_mtx = true; ignore_inv_actor_mtx_path_index = current_path.size(); } // Allows interpolating from angle changes that are up to 123ยบ for the next SetTranslateRotateYXZ void FrameInterpolation_InterpolateWiderAngles() { + if (!is_recording) + return; interpolate_wider_angles = true; }