Hey! My name is Ramón Klauck and I for GSoC 2025 will be implementing the ability to create keyframes directly in the VSE preview.
Contact
Blender Chat: @ernst-ellert:blender.org
Synopsis
This project aims to implement the ability to create keyframes directly in the VSE preview by pressing the “I” or “K” key. This feature should follow the same rules and preferences as the 3D viewport, such as using keysets.
Benefits
The VSE is a part of Blender that still lags behind in some areas. Many features and behaviors that users know from other areas of Blender and would expect in the Video Sequencer are not implemented in the VSE. One of these features users would expect is the ability to keyframe sequences directly in the preview area. This allows for a more streamlined video editing experience and faster story-boarding.
Deliverables
- Implementation of keyframe creation in the VSE preview using the “I” respecting keysets
- Implementation of keyframe creation using “K” key
- Comprehensive documentation on how to use the new keyframe feature in the VSE.
Project Details
- Research and Planning
• Study the current implementation of keyframe creation in the 3D viewport.
• Identify the necessary changes to the codebase to support keyframe creation in VSE.
- Development
• Add keyframe creation in the VSE preview with the “I” key.
• Enable keyframe creation with the “K” key.
• Ensure the new functionality integrates seamlessly with existing keysets and preferences.
- Testing
• Perform testing to ensure the feature works as expected and does not introduce regressions.
- Documentation
• Create comprehensive documentation on how to use the new keyframe feature in the VSE.
• Develop example projects demonstrating the new functionality.
- Review and Refinement
• Gather feedback from the Blender community and mentors.
• Refine the implementation based on feedback and testing results.
Timeline
- Week 1-2: Research and planning.
- Week 3-5: Development of keyframe creation using the “I” and “K” keys.
- Week 6: Midterm evaluation.
- Week 7-8: Gathering community feedback, testing, and bug fixing.
- Week 9-10: Documentation and creation of example projects.
- Week 11: Final evaluation
- Week 12: Buffer for any unforeseen delays or additional refinements.
5 Likes
Week 1:
This week was all about getting and impression of how i have to approach this project.
I did this by just starting with the project and looking how far i can get, without worrying about if the things i do are good enough for a PR. I chose this approach since i was not confident in how the keyframe creation and management system(keysets) work in the code.
That said i think i learned a lot that week.
I made a working prototype for the keyframe insert operator,
made keysets work in the VSE Preview
and also looked into making the delete keyframe operator work.
An other cool side effect of implementing the insert keyframe operator is that now “Auto Keying” also works in the VSE Preview.
In some of the videos, the UI is not updating, and I am hovering my mouse over the area to make it update. However, I also figured out how to update the UI when I run the operators.
While doing that i encountered a lot of different errors i had to look into, but now at the end of week one i am confident to raise the first pull requests in the upcoming second week.
6 Likes
Week 2
In Week 2, I created PRs for keying sets and inserting keyframes and deleting keyframes for the VSE preview. So, in short, it was all about taking what I did last week and implementing it in a proper way and refining the implementation. I struggled a bit with the delete keyframe operator, and this is still something I have to look deeper into since there I did some bigger changes, and I looked into creating a new ANIM_OT_keyframe_delete_vse
operator as counterpart to the ANIM_OT_keyframe_delete_v3d
operator.
Overall, I feel like I managed to do a lot less in comparison to last week, but I also had to manage a lot more personal things, and I think I just have to accept that this can happen.
Next Week
As mentioned above, I want to look more into what I did with the ANIM_OT_keyframe_delete_vse
operator and if there are any better ways to do that. This is important because the ANIM_OT_keyframe_clear_v3d
works somewhat similar to the ANIM_OT_keyframe_delete_v3d
operator, and when I am done with ANIM_OT_keyframe_delete_vse
, I could apply the same logic to create a ANIM_OT_keyframe_clear_vse
operator. In addition to that, I think it’s possible to finish the first PR.
1 Like