Page MenuHome

Fix T70585: Walk Navigation keyframe tweaks (still frame)
ClosedPublic

Authored by Philipp Oeser (lichtwerk) on Tue, Oct 8, 1:55 PM.

Details

Summary

Walk Navigation was missing rotation keyframes on confirm (when animation
wasnt playing) after rB22bdd08dfd0.

Because for walk [in contrast to fly], the cursor is constantly warped
(WM_cursor_warp in walkEvent), we cant do something reasonable with
comparing mouse positions (to detect rotation) when mouse comes to rest.

Now remember if rotation changed at any time.

Also tweaked the insertion for location keyframes (which was always
happening even if the camera did not move), now checking the real dvec
(instead on relying on speed)

Diff Detail

Repository
rB Blender

Event Timeline

Tested here. Nitpicking aside the patch is good and working well.

That aside (as a separate patch in the far future?) I think it should keyframe ALL channels if anything changed. This is how Blender does by default.
If you open:

And just translate the camera around it will keyframe location, rotation AND scale. But 2.80 is working like this patch, and not how I suggest, so we can treat as a separate issue.

source/blender/editors/space_view3d/view3d_walk.c
207

FYI I personally would use bitwise flags for that, makes easy to expand in the future.

That aside let me nitpick ;) whatabout:

- bool needs_rotation_keyframe;
- bool needs_translation_keyframe;
+ bool need_keyframe_rotation;
+ bool need_keyframe_translation;
This revision is now accepted and ready to land.Tue, Oct 8, 2:22 PM

Tested here. Nitpicking aside the patch is good and working well.
That aside (as a separate patch in the far future?) I think it should keyframe ALL channels if anything changed. This is how Blender does by default.
If you open:


And just translate the camera around it will keyframe location, rotation AND scale. But 2.80 is working like this patch, and not how I suggest, so we can treat as a separate issue.

Yep, for that, would need to really take selected keyingsets into account. atm. it just does ANIM_KS_ROTATION_ID and ANIM_KS_LOCATION_ID which I think for fly/walk is fine though?
(also need to make myself familiar with the Only Needed option for keyingsets -- and why this option apparently isnt avaiable for builting keymaps? anyhow, thats for later...)

+1 for need_ vs. needs_ (will change that and commit this for now).

Thx for review!