Blender is missing local coordinates display
It seems that when we parent one object to another, the child only displays its global coordinates. Besides global coordinates is important to be able to visualise local coordinates if the object has a parent. For example: Object A at coordinates (10 , 0, 0) Object B is at origin (0, 0, 0) If I parent object B to object A then even though the object B global coordinates is still (0, 0, 0), its local coordinates should display (-10, 0, 0)
There are so many workflow uses for this feature I dont even know where to start and this is something standard in all the other software packages I know.
36 Comments
YES PLEASE. I know rigging and posing and many child/parent workflows switch from local/global coordinates seamlessles, but there is no way to tell which values you are looking at. Softimage was very clear to toggle which showed which, and also where you keyframed. This should be a software wide system where global and local keyframes, interface feedback, and manipulation on parents, children, bones and everything should be clearly defined. Also, understand in what space the Delta transforms happen. Are they global? Local? Who knows!?!
* @Andres Stephens - Trinumedia * Deltas are added to the (global) transforms. I think delta scale is multiplied. with the scale.
@nunoalexconceicao I think this should be added as an add-on as it is not a simple patch, but would add additional properties and UI to blender.
At the moment I think it would include the following:
I'm not yet sure how well a two-way update like described in 4 and 5 is possible.
If you are okay with this proposal I could start to write an experimental addon for this.
* @Ondrej Brinkel * How are you going to make this work with the general Blender API? Are objects set and animated and built with a system to be able to do this? Has this just never been exposed? I'd totally support your addon/feature development for this.
* @Andres Stephens - Trinumedia * I don't think it would be all that hard. All objects have a matrix that gives their location as seen in the Blender UI right now (the world space). Showing the local-space location is as simple as doing some matrix math on the world space location (all of which is accessible via bpy). Editing it would just reverse the math (it's more nuanced than that in execution) and give you local--world.
You could write these math functions in getters and setters and I think it would work without too much pain. You might need to add a handler, but I don't think you would.
* @Ondrej Brinkel * Looks good to me, would this also allows one to animate using local coordinates?
These are the fundamental tools for a 3d software. Please implement local transform ui visibility
I started addon development here: gitlab.com/blender3d/addon-object-location-edit
World location is working two-way (read and write), local location only read is working correctly atm.
You will find it under the Transform > Local / Global panel in the object transform tab
Repository was moved gitlab.com/blender3d/addons/object-location-edit
* @Ondrej Brinkel * I'll give this a whirl.
I think I've now got it working. Please test the addon and give feedback.
hi, * @Ondrej Brinkel * tried to test it, not sure how though, not really a developer. how do I install it?
* @nunoalexconceicao * I will provide installable ZIPs soon. Please have some patience.
* @nunoalexconceicao * I've now added a first release with a link to an installable ZIP gitlab.com/blender3d/addons/object-location-edit/-/releases
* @Ondrej Brinkel * Cool this is a great start, Ive installed and seems to be working as it should except for animation but you probably know that, lol
* @nunoalexconceicao * Actually I do not knowed it. Haven't tried it yet. Could you create a bug report at gitlab.com/blender3d/addons/object-location-edit/issues You can login using third party accounts there and do not need to create a new one. Thank you very much.
* @nunoalexconceicao * Could you please give me more details on what exactly is not working with animation? I tried it yesterday to animate the locations and it was working.
For bugfixing I need a reproducable problem that is clearly defined.
* @Ondrej Brinkel * Sorry for the absense, I wasnt getting notifications and checking the forum. Already submited the issue on github
* @nunoalexconceicao * excellent!
* @nunoalexconceicao * New release: gitlab.com/blender3d/addons/object-location-edit/-/releases The properties have been made non-animatable. Instead the regular location has to be keyframed.
* @Ondrej Brinkel * Tried it out. So nice to be able to see. Just seeing is nice. If it also had rotation and scale, I'd be your biggest fan. How did you develop this?
The displayed location is not the locale nor the global position, but rather the transformation the user applied to the object. So basically there is currently no way to see local or global coordinates. This could be added using Python, but editing those would not be possible just using Python I assume.
* @Ondrej Brinkel * Actually, editing them in Python is trivial. Just a matrix here, an @ over there...
* @Josephbburg * It would involve creating intermediate properties on an object, as we cannot directly edit a matrix from within the UI. Yes we could, but no one would understand it. So we need additional properties on an object that, when changes would change the matrix and vice versa.
Please correct me if I'm wrong.
* @Ondrej Brinkel * You could create a window in the viewport that calls an operator that sets it. The user wouldn't have to know what's going on behind the scenes. I don't know how involved setting up the UI is, but it's easy to make a function that lets you set the local or world space directly.
It would be very useful to have the ability to see and to edit the global and the local coordinates of parented objects. There should be the possibility of switching between them, like in edit-mode. I know that this is an available feature in Cinema4D. {attachment Screen-2019-10-05_12-51-29png}{attachment Screen-2019-10-05_12-49-45png}{attachment Screen-2019-10-05_12-49-35png}
I thought every software displayed only local coordinates.
But I work mostly with cinema 4d and Adobe After Effects. I used a little bit maya and 3dsmax and I didn't remember something strange like the coordinates of a child object in blender.
Like der_On said : "The displayed location is not the locale nor the global position, but rather the transformation the user applied to the object. So basically there is currently no way to see local or global coordinates."
Since 4 month i'm using Blender daily at work and generaly the default Parent / Child behavior in blender is not like other sofware and therefore what expected by a new user. I hope it would be studied by the blender team like the right click was before.
Thanks !
I suppose this is still not in Blender? It's a real bummer.
needs more upvotes
Where in Blender's interface do you propose that this information gets displayed?
* @Jason van Gumster * In the object transforms panel in the Object Properties tab, along with the deltas readouts. Also, in the N Properties shelf, add another drop down panel and/or add a toggle to the transform panel under Item that updates the readouts according to the mode you are in (widget transform mode or readout toggle). The 3D View transform panel will update the transform coordinates to Global/Local on toggle ideally. In the Object transform panel and Bone transform panel, both transforms will show at once along with the deltas. It's not hard to think up. Softimage has a toggle button under the transform panel or a dedicated object panel with the transform readouts of both local and global seperately (first the preferred local SRT), then the buttons for keyframe and sliders to change their values.
The other is when you toggle your transform tool from global to local, it will move in that space also and/or key in the space.
In the animation editors, you will have to add the ability to show and key local/global SRT keyframes and show them in slightly different colours (not just RGB, but pale RGB for global, etc) and list them seperately.
I know Blender works in local/global based on parenting, but it's really proved to be an unexpected behaviour when you start to work, animate and rig in this paradigm when there is no UX or UI around what transform space you are working in. Widget manipulation has no difference too, so when something doesn't move as expected, or key as expected - you are left with a frustrating mystery and it's hard to correct.
AND, deltas are also arbritrary, you are not sure if it's a global delta or a local delta.
* @Jason van Gumster * Here is a quick concept of what I just said. {attachment bforartists_2019-10-05_08-49-57png}
I know this would be a very big project, but it is about UX and it is a base 3D feature for any authoring software that keeps Blender away from the industry due to production issues that this causes when animation and rigging breaks.
Here is how it was like in XSI. {attachment Screenshot_1png}
Here is how it was exposed for any given object {attachment Screenshot_2png}
* @nunoalexconceicao * I love Softimage so much, I wish it was still available and still alive...
* @Andres Stephens - Trinumedia * Yes I hope the developers take a look at it, there are so many good things in there for inspiration of proper workflows, but im picking up all the gaps of blender and submiting proposals based on XSI