I am just sharing the code for any new developers looking to start their own toy projects. I put everything in a single file so it would be easy for you to understand what is required to create a new gizmo in the C source code. However, this is my first blender dev project so my approach is 100% not the best practices. Feel free to ask me any questions.
The tool itself is somewhat usable, but it is not as complete as what is presented in the Disney paper. I think I am taking a break from this project now, might as well just share it with you. I hope I can help someone in need.
This is really cool! I’ve always been frustrated with Blender’s lack of good workspace animation tools. Out of curiosity, why did you implement it in C? Is the optimization very expensive?
I implemented this feature as a new gizmo type. Blender’s gizmo python API is buggy at the time I started this project. It did not support custom geometry or dynamic geometry and some other interaction behaviors. Also I knew this project will be hacky, so using C I can pretty much hack anything needed to get the feature to work if blender does not provide the API I want. Easier to debug too, since I can inspect the raw source code.
Pretty cool work! Thanks for sharing!
Reminds me of the 2.7 Motion Trail addon by Bart Crouch: https://vimeo.com/26670975
Which was partially converted to 2.8: github repo.
Unfortunately I’m not knowledgeable enough to update the bgl draw methods that are now used in 2.8 (some stuff like bgl.glEnable are deprecated, etc), otherwise this would be a pretty nice tool for animators who can’t afford paid stuff or resourceful enough to mess with the complexity of building blender. I’m thinking seriously in giving it a try though!
Apparently editable motion trails will be implemented officially some time in the future (Ton postponed the Animation Update to 2021 or later), maybe you can the part of it! Pablo Dobarro wasn’t even part of the dev team when he started commiting updates to blender sculpt.
Nice UI design :D, feel free to reference my code if you want to take it all the way and DIY. I am moving on to some other projects now so I probably won’t do it. To be honest, what you want is not that difficult in terms of programming. In fact it is a great project to learn C programming in Blender XD. I can answer questions if you ever need help.