I suggest to discuss milestones for each evaluation period to clearly set our minimal expectations on each checkpoint. It is possible that your schedule might have changed since the time when you wrote proposal. If so - do not hesitate to tell about this and we can make adjustments.
At the same time we can discuss details of implementation to clearly understand what and how Skeleton Tool will be working.
I think the best it to put all this information together on a single page in our developer’s documentation. I have created a dedicated page - https://synfig-docs-dev.readthedocs.io/en/latest/projects/skeleton.html
I suggest you to fill it with information from your proposal and we can discuss it further.
Also, my exam time table can affect the schedule a bit. The dates are not finalized yet but I’ll try my best to stay dedicated to this project! I’m currently trying to close the issue I was working on asap and finalize the implementation plan.
I missed on including about linking the bones with sprites. I’m trying to refer to other animation tools as @rodolforg suggested. Also, I’m studying the code of state, statebline and Layer_skeleton to get an understanding on how to get it done!
I’ll start working on it asap after getting the plan chalked out and will try to get a head start before the actual coding period.
If I understood your phrase correctly… Do you think that Skeleton Tool should allow to link sprites to bones?
I was thinking that Skeleton Tool is only for constructing skeletons.
I think it will be great!
But we should be clear on what to achieve with “max” quality
How would be natural to construct skeletons?
Propose, discuss, implement and test it. And another round
Later another features, like to view bone links, to link bones in an easier way…
In the tool options, we can show current active bone and it’s child bones
I think we shouldn’t use Tool Options Panel for that. In tool options Synfig generally have options for tool, not dynamic content.
I suggest to expose parameters for creating new bones in Tool Options panel.
The only parameter I can think of right now is “Bone width” - i.e. default thickness of created bone.
Synfig already can highlight points of spline, when some its vertex selected in Params panel -
Here is a good moment to think on how Skeleton Tool actually could behave.
You can notice that Bline Tool (Spline Tool) - the one I recommended to take as base example - allows user to create points one-by-one, but actual layer is created only after user hit “Run” button (or switch to another tool).
On the other hand, Synfig has some tools that work differently - i.e. Circle tool or Draw Tool. With them user do some action (i.e. drag mouse) and layer is created immediately after user releases button.
So, how Skeleton Tool would behave?
How to make it behave like Circle tool?
I.e. as soon as user clicks/drags on workarea it creates a Skeleton Layer and adds a first bone in the place where user clicked (dragged). This layer becomes selected.
If user clicked (or dragged) to add one more bone, then the tool doesn’t creates new layer - it just adds a new bone to currently selected layer.
So, the logic of tool:
if some Skeleton layer is already selected, then bones added to it (no new layer created).
if no Skeleton layer selected, then tool creates new layer and adds bone to it.
I was actually thinking about this. Then what do you think will be the Active bone in the selected layer? Do we need a parameter to save the previous one?
Also, I wanted to add a preview type functionality. Suppose you clicked and dragged to draw a bone, I thought when there is mouse motion, we can show a line from the start point to the cursor. This would be helpful.
I’m currently working on implementing Single Click in empty space function. I may have to implement Active Bone in parallel. will try my best!
Active bone is defined by clicking on any bone. If user haven’t clicked on any bone, then there are no active bone. That means that new created bone will have no parent.
I think we do not need to remember last active bone.
Yes, that would be very helpful!
Yes, please try to implement this first.
I.e. a single click on empty space (when no skeleton layer is selected).
The tool should create a Skeleton layer and add a bone in the point where user clicked.
You can start with a first step:
Just create an empty skeleton layer when user clicks on empty space.