I wanted to post this to the bug tracker, but I wanted to know what you guys think about this.
Currently, the “Group” encapsulation element retains its “center” (Origin and focus for scaling / translating) relative to the canvas, and not to the elements themselves. In theory (and in programming, of course) it seems simple to use it just as it is, but in practice this somehow causes a lot of annoyances design and animation wise.
Create a scene that’s probably larger than the project resolutions (say, if your project resolution is 1280 x 720, then make a scene that’s 3000 pixels of hieght and width). Pan it around with the Translate tool at the top, probably position it at the top-left corner of the scene. There, make a table at the corner, and draw an elf on it. Group that Elf. Now try translating that Elf around with the group’s own Origin point.
But there’s no origin point, is there? It’s waaaayyy far away now at the centre of the scene that’s not even IN the screen.
Sure, moving the vectors around and re-adjusting your character configuration is possible, but it’s highly time-consuming when working on large projects especially.
Here’s the solution: When selecting the elements / vectors on screen in order to group them, calculate the center of the “elements” and not the canvas, and put the Origin point there!
What do you think? It’s a tiny improvement, but will end up saving LOTS of animation time!
Yes, would save much time.
I like how Inkscape does it: Simply click and drag to move objects (no “origin” point to worry about at all). For scale/rotate/shear the transform widget is always displayed around the object, no chance of it getting lost. And it’s possible to set the “transform-center” when needed for rotate/shear transforms.
I agree with the problems that the misaligned center of the group causes at the design time.
We have some alternatives here:
Create the Origin of the group at the “center” of the grouped objects when those objects are grouped. It would imply some sacrifices to define “center” (all layers doesn’t have a clear defined boundaries) and also (IMHO) should allow to the user to decide if the group origin would be aligned or still at (0,0).
Leave the origin at the place it is created by default and give to the user the ability to drag the origin indirectly by the dragging of the objects. In the current bones2 branch, the group origin can be relocated respect to the group stuff by pressing the space bar meanwhile the origin is being dragged. Why don’t add the alternative functionality? Move the group origin when you’re are dragging the stuff and pressing the space bar at the same time. This way the user could animate or modify the group origin even if it is not accessible on the current zoom.
It would be very useful to have a “zoom to selected layers” action. This way user can zoom out canvas, space drag the origin to the desired place, and zoom to selected layers to fix the misalignment very quick.
I personally don’t see a reason to keep going thru all the trouble to preserve the “origin” concept.
For example, when one moves a desk one doesn’t care if it is located at 36°32′N 6°17′W globally or anything. One just grabs it and moves it, say 30cm to the left.
The actual value of the “origin” is not really important. What matters is the displacement applied.
The problem on Synfig is that the “origin” and the transformation axis for rotation/shears are both stuck together. Maybe the transformation axis should be stored seperately?