Author Topic: Group layers  (Read 2386 times)

Offline Bollebib

  • Full Member
  • ***
  • Posts: 158
  • Karma: +4/-0
Group layers
« on: December 06, 2012, 12:33:50 pm »
I'm sure I'm not the only one who has wondered this,but are group layers not possible for mypaint?
it would help with transferring them to other programs and back again and still have a comprehensive layer managment.


It would help tremendously with more complex scenes

Offline achadwick

  • Administrator
  • Full Member
  • *****
  • Posts: 245
  • Karma: +9/-0
  • MyPaint developer and Mypaint-testing PPA owner
Re: Group layers
« Reply #1 on: December 06, 2012, 01:34:37 pm »
I'm sure I'm not the only one who has wondered this,but are group layers not possible for mypaint?
it would help with transferring them to other programs and back again and still have a comprehensive layer managment.


It would help tremendously with more complex scenes

Not possible right now. Future development could change this. Could you make a "Wish" bug in the bug tracker please, with some use cases and other explanations of why it's important, so we don't forget about it?

It's possible in allowed by the OpenRaster spec, and we use a tree _view_ widget for showing the list. The underlying model(s) are all flat lists however: those would need some significant work to change.

Offline blurymind

  • Sr. Member
  • ****
  • Posts: 261
  • Karma: +2/-0
    • blog
Re: Group layers
« Reply #2 on: December 08, 2012, 03:18:39 am »
user case 1:
you sketched two characters on separate layers. Then you colored them each. So each has 2 layers= 4 in total. You need to move one of the two, however it contains multiple layers. You end up having to move  them one by one, introducing an offset.
What if each character had over 10 layers. Would be even more important if mypaint could rotate and scale a selection or pixels on a specific layer.  This is the usercase that really made my life better when gimp implemented it.

user case 2:
You have lots of things on the canvas and they are all part of a composition. However the art director is asking you to hide some of these from the composition temporarily - so he can talk to you about the thing behind it. Lets say a Car in front of a building. That car is made out of 20 or so layers that you now must manually toggle off. This takes long enough for you both to lose patience and it feels like the software is making you waste time doing a repetative operation in order to achieve a single action.
Furthermore having a lot of layers forces you to wonder how to get to an element in the long list that is covered by something else- blocking your context picker.
The art director wonders off to do some other important job and you are suddenly less reliable than the other artists.

User case 3:
The same as the previous, only now our artist- Johny doesnt have time to name all the 60 layers on the canvas. If only there was a way to group some of them under a folder called "car" and some of them under one called "tree" - he wouldnt  have to rename things 60 times- just 6 times
« Last Edit: December 08, 2012, 03:24:53 am by blurymind »
http://imovethings.blogspot.com
my website. I do 2d and 3d animation, concept art and storyboards

Offline Marand

  • Jr. Member
  • **
  • Posts: 56
  • Karma: +4/-0
Re: Group layers
« Reply #3 on: December 09, 2012, 05:56:20 pm »
Not possible right now. Future development could change this. Could you make a "Wish" bug in the bug tracker please, with some use cases and other explanations of why it's important, so we don't forget about it?

It's possible in allowed by the OpenRaster spec, and we use a tree _view_ widget for showing the list. The underlying model(s) are all flat lists however: those would need some significant work to change.

Out of curiosity, why is it not possible?  An ORA file created in Krita preserves the program's layer grouping just fine by nesting <stack> tags.  Do you mean the Gtk widget you're using won't allow you to show groups?

I don't see a wish report for this on the tracker yet, so I started one myself, because this is a really nice feature to have.  The report is here: https://gna.org/bugs/index.php?20359 complete with a failed attempt at using the tracker's autonumbering markup

Repeating the use cases here, for easier reading and discussion here as well:

1.  Organisation of complex documents.  Being able to expand and collapse groups of layers helps simplify navigation of the layers list in a large file with many layers.  Collapsing groups you don't need currently can reduce scrolling.  Grouping also allows you to rearrange multiple layers in the stack simultaneously, by moving the group to a new place in the stack.  Things like reference images can be grouped, reducing visible layer clutter.

2.  Visually, it can be easier to find certain groups and layers within them due to the nested structure.  In a scene with three characters, for example, you could make a group for each character, and then have layers for pencils, inks, flats, and shading in each group.  Instead of having to check every layer in the list, you can find the appropriate group, and then check inside it for the layer you want.

3.  Grouping is a more flexible, powerful, and obvious concept than layer linking.  If you have three layers inside a group, you can still perform layer operations on the individual layers like normal, but if you select the group and perform the interaction, it affects all members of the group, akin to linking.  A well-organised document can be easier to make adjustments to because of this.  For example, a layer group containing all of a scene's background elements on separate layers.  You can move or toggle visibility of the entire background as needed in a single action, but you can still manage each element separately to fix problems like scale or positioning.

4.  Following on #3, grouping allows you to set certain layer traits to an entire group instead of on each layer, giving more control over layer interaction.  You can set the opacity and layer blending modes of the group instead of the layers, and it acts on the composite of the grouped layers, rather than each layer separately.  For example, two layers with normal blend mode, 100% opacity, inside a group that has has 50% opacity and overlay mode:  the layers would combine normally, with the higher layer obscuring parts of the lower, and the resulting composite is then used for the 50% opacity overlay.

5.  Can help reduce layer clutter.  Some features of layer grouping can be emulated without grouping through use of layer duplication and merging, but this requires keeping extra copies of layers.  This is the sort of thing the software could (should?) handle so the user can focus on doing what he or she wants instead of coercing the software.

6.  Consistency with Krita.  Krita currently saves layer grouping information inside ORA files, but this gets obliterated in a Krita<->MyPaint workflow.  They're good tools to use together, and it would be nice for MyPaint to not massacre the information, even if it doesn't make use of it.  (I believe gimp obliterates the grouping data too, but this isn't about gimp)

Well, that's everything I can think of right now.  Thanks for reading.

Offline achadwick

  • Administrator
  • Full Member
  • *****
  • Posts: 245
  • Karma: +9/-0
  • MyPaint developer and Mypaint-testing PPA owner
Re: Group layers
« Reply #4 on: December 11, 2012, 12:13:59 pm »
Not possible right now. Future development could change this. Could you make a "Wish" bug in the bug tracker please, with some use cases and other explanations of why it's important, so we don't forget about it?

...

Out of curiosity, why is it not possible?  An ORA file created in Krita preserves the program's layer grouping just fine by nesting <stack> tags.  Do you mean the Gtk widget you're using won't allow you to show groups?

It is not possible in master because a) we ignore nested stacks on loading and just build a list of their layers, preserving the order; b) we don't store any sort of nesting information in the internal model that's tucked away behind all the presentation stuff; and consequentially c) layer stacking information is not saved (because it isn't available).

Bollebib asked a fairly open-ended "is it possible to group layers?" question, so I was trying to answer it fairly broadly and contingently. Hope that was clear. It is not supported right now for the technical reasons above. Future work may change this (and actually, some work is being done on it right now in the Librarian branch, which is awesome!)

Offline Marand

  • Jr. Member
  • **
  • Posts: 56
  • Karma: +4/-0
Re: Group layers
« Reply #5 on: December 11, 2012, 03:38:35 pm »
It is not possible in master because a) we ignore nested stacks on loading and just build a list of their layers, preserving the order; b) we don't store any sort of nesting information in the internal model that's tucked away behind all the presentation stuff; and consequentially c) layer stacking information is not saved (because it isn't available).

Bollebib asked a fairly open-ended "is it possible to group layers?" question, so I was trying to answer it fairly broadly and contingently. Hope that was clear. It is not supported right now for the technical reasons above. Future work may change this (and actually, some work is being done on it right now in the Librarian branch, which is awesome!)

Makes sense, thanks for the info. 

I'll have to try that branch sometime, maybe see if it plays well with others (Krita's grouping).  I read the explanation of how it works on the mailing list; it sounds like a clever workaround, but it also sounds like it might have problems working with the other players (Krita and Gimp) due to the approach being very different to how they handle grouping.


Offline blurymind

  • Sr. Member
  • ****
  • Posts: 261
  • Karma: +2/-0
    • blog
Re: Group layers
« Reply #6 on: December 12, 2012, 01:35:33 am »
would be nice if they are compatible  :P
http://imovethings.blogspot.com
my website. I do 2d and 3d animation, concept art and storyboards

Offline sfepa

  • Jr. Member
  • **
  • Posts: 95
  • Karma: +0/-0
Re: Group layers
« Reply #7 on: May 27, 2013, 02:03:43 pm »
Sorry for reviving this relatively old topic, but i'd like to accede to this request. It's because i faced the problem recently while working with the file with groups in Krita, then  opened it in MyPaint and back in Krita . It wasn't vital but i've lost the structure, so it could be very useful.

Offline Bollebib

  • Full Member
  • ***
  • Posts: 158
  • Karma: +4/-0
Re: Group layers
« Reply #8 on: May 28, 2013, 09:41:47 am »
yeah


I'm working with krita  additionally as well,and I have to preven,t myself to bother too much with ordering layers as mypaint will not read that.
Or with gimp,or any other program

Offline Marand

  • Jr. Member
  • **
  • Posts: 56
  • Karma: +4/-0
Re: Group layers
« Reply #9 on: May 28, 2013, 10:32:27 am »
yeah


I'm working with krita  additionally as well,and I have to preven,t myself to bother too much with ordering layers as mypaint will not read that.
Or with gimp,or any other program

Unfortunately, I ended up doing the reverse: because I use layer grouping so much in Krita, I find myself not using MyPaint very much because of how it mangles them. I still love the program, but it's a lot harder to go back to once I start grouping the layers, because when I consider it, I ask myself if it's worth losing the group structure.  Usually I decide it's not, and just keep using Krita from that point, even if it's not as well suited to the task. :(




Offline Bollebib

  • Full Member
  • ***
  • Posts: 158
  • Karma: +4/-0
Re: Group layers
« Reply #10 on: May 29, 2013, 10:23:22 am »
guess I feel more at home on mypaint for the moment.
Certainly for quick sketches en preliminary coloring.

it's quick and minimal,and the infinite canvas is great to just draw.


but I do wish they would add groups and a few other things

Offline Marand

  • Jr. Member
  • **
  • Posts: 56
  • Karma: +4/-0
Re: Group layers
« Reply #11 on: May 30, 2013, 10:47:24 pm »
guess I feel more at home on mypaint for the moment.
Certainly for quick sketches en preliminary coloring.

it's quick and minimal,and the infinite canvas is great to just draw.


but I do wish they would add groups and a few other things

I found it easier to bend Krita to my will, rather than change my layering habits to suit MyPaint, personally.  For minimal mode, tab enters "canvas-only" mode and you can configure what (if anything) appears, and the right click/side switch brush and colour selector is great for this mode. Sort of like MyPaint's colour history, except you can put your favourite brushes on instead.

I do miss the infinite canvas when I'm not using MyPaint, but Krita recently added a feature that works well enough as a replacement, shown here:  http://dimula73.blogspot.com/2013/05/krita-28-prealpha-new-pseudo-infinite.html.

I started using his "Krita Lime" PPA (http://dimula73.blogspot.fr/2013/05/krita-lime-ppa-always-fresh-versions.html) specifically for it.  Not nearly as nice as MyPaint's seamless canvas, but 'good enough'.  Of course, that only works if you're using Linux...From what I've seen, Krita is practically unusable in Windows.

I'd still love to get compatible layer grouping in both programs, but for now I just work around it. :(