Jump to content
You must now use your email address to sign in [click for more info] ×

Outline part of mask?


Recommended Posts

In Affinity Designer 2 I cannot figure out how to create the effect similar to the hill (center image).

What I want is basically add a brush outline to a shape A, then add a brush to a shape B—and then have shape B clipped by both outline and all of the shape A, so that I is left with an added highlight to shape A.

Any suggestions how this can be done without using an extremely time consuming workaround (like I did with the hill)?

Thanks!

Screenshot 2024-03-15 at 14.52.40.png

Screenshot 2024-03-15 at 14.48.23.png

Screenshot 2024-03-15 at 14.58.45.png

Link to comment
Share on other sites

Strokes are always separate from fill, and painted before or after the fill. Stroke doesn’t count for masking or clipping of vector objects.

you can expand the stroke to get the desired behavior (but only for basic round brush).

If you don’t mind going pixel layers you can rasterize the layers and use them as parents / masks.

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

 

Link to comment
Share on other sites

15 hours ago, NotMyFault said:

Strokes are always separate from fill, and painted before or after the fill. Stroke doesn’t count for masking or clipping of vector objects.

you can expand the stroke to get the desired behavior (but only for basic round brush).

If you don’t mind going pixel layers you can rasterize the layers and use them as parents / masks.

Well, color overlay works and includes the outline brush. This is basically what I need, right?

But the overlay has to be a shape with a brushed outline..

 

The idea of using Designer is to keep it as vectore and non-destructive.

Link to comment
Share on other sites

10 minutes ago, thomaso said:

Without 'Rasterize' or 'Expand Stroke':
A Compound (intersect) + 1 layer copy may work, depending on the similarity of the two brush stroke textures.

fillstrokecompound1.jpg.5965cfc85267032dc22173415436d594.jpg

fillstrokecompound2.jpg.af0bd0104640986b583b7451301a608e.jpg

fillstrokecompound3.thumb.jpg.42723a4e73e83217fb4b9f1eac04c956.jpg

fillstrokecompound4.jpg.913424b936c843f45f905db0c247d08c.jpg

fillstrokecompound5.jpg.a4ee78ac4667104db494efff04b863fb.jpg

Yeah, but as you also demonstrates: this fails when the brushes are dramatically different.

Link to comment
Share on other sites

23 minutes ago, Gatada said:

fails when the brushes are dramatically different

Currently I see only the compromise to separate fill and stroke for the clipped object, for instance:

fillstrokecompound6.jpg.fcdd2436288cfc040315e3c0ad198ba1.jpg

This starts to get more complex than just using a rasterized a layer copy for the clipping object. As @NotMyFault mentioned in Affinity the stroke attribute doesn't allow the required clipping mask but stays in foreground unfortunately. Thus we are forced to workarounds + compromises for this actually very normal, natural task. If brush textures would be true vector and/or allow to get curved accordingly it could be solved easily by "Expand Stroke" and merge fill + stroke to one common curve layer without a separate stroke attribute.

Does one know for what purpose (advantage?) the Affinity handling of this stroke vs. fill hierarchy in clipping objects has been coded this way?

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

a simple solution:

layer a -> the one which was nested

layer b -> the one who was parent.

  1. arrange layer a on top of layer b (no nesting!)
  2. make a symbol of the layer a
  3. copy it
  4. nest copy it into masking position of layer b

Now the fill and stroke akt as mask.
You better lock the symbol, as position of both copies must always stay in sync.

2 hours ago, Gatada said:

The idea of using Designer is to keep it as vectore and non-destructive.

Please note that exports of vector files with vector brushes (except basic round brush) will always be rasterized as export. So your workflow does not allow to export as vector format anyways.

Using layers in masking position can lead to rasterization, too.

 

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

 

Link to comment
Share on other sites

Alternative:

  1. seperate shape form from shape fill
  2. use a group for inner object and huge rectangle for fill area of outer shape
  3. use shape as mask for group

this simplifies layer re-prositioning.

AD shape with stroke clip.PNG

vctor clipping with stroke.afdesign

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

 

Link to comment
Share on other sites

1 hour ago, NotMyFault said:
  1. arrange layer a on top of layer b (no nesting!)
  2. make a symbol of the layer a
  3. copy it
  4. nest copy it into masking position of layer b

Now the fill and stroke akt as mask.

Can you show a screenshot? For what use needs the Symbol be copied?
I don't get your result for the parent stroke (regardless of "masking" vs. "clipping" position).

clipping.jpg.bf781843c872e5a1d0d33aa821beff84.jpgmasking.jpg.48b30c219a433706127b5cd1d450d95f.jpg

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

3 hours ago, NotMyFault said:

a simple solution:

layer a -> the one which was nested

layer b -> the one who was parent.

  1. arrange layer a on top of layer b (no nesting!)
  2. make a symbol of the layer a
  3. copy it
  4. nest copy it into masking position of layer b

Now the fill and stroke akt as mask.
You better lock the symbol, as position of both copies must always stay in sync.

Please note that exports of vector files with vector brushes (except basic round brush) will always be rasterized as export. So your workflow does not allow to export as vector format anyways.

Using layers in masking position can lead to rasterization, too.

 

When artwork is finished, and is exported, the format is not significant—as long as resolution is respected.

I’ll try the above though it sounds .. quite .. tedious.

I would expect Designer to have a toggle to include or exclude outline when masking. It’s quite obvious that some feature like this is needed, as all sample files have hard shapes and masks—no fuzzy brushes anywher (unless when manually brushed).

Link to comment
Share on other sites

20 minutes ago, Gatada said:

When artwork is finished, and is exported, the format is not significant—as long as resolution is respected.

In this case, rasterizing the parent object is the fastest + easiest. Just make sure the Document Resolution is set as required before rasterizing.

fillstrokecompound7.jpg.b6c279c4fa03b7e04ab108a842bf227a.jpg

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

Hey all, so grateful for answers, suggestions and contributions! Thank you!

Now that I see it wasn't simply something obvious that I had overlooked, I've been motivated to try to find other ways.

So, there is this approach, still tedious and far from as simple as a "include outline in masking operation" toggle:

  1. Create shape with desired brush, named it Hill.
  2. Duplicate shape and make fill and outline 100% black, named it Mask.
  3. Select the Hill shape and create Highlight shape with desired brush, it is between Mask and Hill.
  4. Right-click Mask in Layers tab and click "Mask to Below". Voila!

The result is vectors and masked with outline.

Hm, oh, is this what @NotMyFault mentioned?

  1. 1. If the Hill is made into a symbol..
  2. And duplicated... and with sync disabled, changed to all black (this is the Mask)
  3. Then changing the Hill shape will also affect the Mask.

Nice! Now I can change.. But of course... I cannot modify multiple Hills individually.. So still a pain... virtually unsustainable.

Screenshot 2024-03-16 at 17.44.46.png

Screenshot 2024-03-16 at 17.41.52.png

Link to comment
Share on other sites

2 hours ago, thomaso said:

Can you show a screenshot? For what use needs the Symbol be copied?
I don't get your result for the parent stroke (regardless of "masking" vs. "clipping" position).

clipping.jpg.bf781843c872e5a1d0d33aa821beff84.jpgmasking.jpg.48b30c219a433706127b5cd1d450d95f.jpg

layer A should stay above layer B, then it will work.

I made it a symbol so any change to the shape will be visible in the copy used for masking.

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

 

Link to comment
Share on other sites

13 minutes ago, Gatada said:

Duplicate shape and make fill and outline 100% black, named it Mask.

no need to change the color. The color is irrelevant when used for maskin. Only the opacity (alpha value) is used.

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

 

Link to comment
Share on other sites

40 minutes ago, Gatada said:

Hm, oh, is this what @NotMyFault mentioned?

13 minutes ago, NotMyFault said:

layer A should stay above layer B, then it will work.

Yes, indeed simple!

fillstrokemasking.jpg.286e89bb00c2846cab5eeec0e7286d40.jpg

It appears in the written recipe 'a' and 'b' are confused (not just opposite to my use of 'A' + 'B'):

4 hours ago, NotMyFault said:

layer a -> the one which was nested
layer b -> the one who was parent.

  1. arrange layer a on top of layer b (no nesting!)
    (…)
  2. nest copy it into masking position of layer b

… or I was confused by the use of "parent". To me the larger is the visual parent but the hierarchical child – while the smaller is the hierarchical parent + visually nested.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

3 minutes ago, thomaso said:

To me the larger is the visual parent but the hierarchical child

Many children grow to be bigger than their parents! The terms ‘parent’ and ‘child’ are purely hierarchical here, with the parent layer being the container and the child layer being the layer which is clip-nested or mask-nested.

Alfred spacer.png
Affinity Designer/Photo/Publisher 2 for Windows • Windows 10 Home/Pro
Affinity Designer/Photo/Publisher 2 for iPad • iPadOS 17.4.1 (iPad 7th gen)

Link to comment
Share on other sites

54 minutes ago, Gatada said:

Nice! Now I can change.. But of course... I cannot modify multiple Hills individually.. So still a pain... virtually unsustainable.

You can but in several steps: Edit the coloured hill layers then copy + move them as mask + delete the previous masking hills.

hills.jpg.3e09d70d866b82e2d1db9e0d234b393b.jpg

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

1 hour ago, Alfred said:

Many children grow to be bigger than their parents!

can confirm.

Me - 192cm, <75kg

My son - 200cm, >90kg pure muscle due to training

 

Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080

LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5

iPad Air Gen 5 (2022) A2589

Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps.

 

Link to comment
Share on other sites

14 hours ago, NotMyFault said:

no need to change the color. The color is irrelevant when used for maskin. Only the opacity (alpha value) is used.

Granted, I didn’t try more than once-but the masked layer where not fully opaque when I didn’t use black..?

I’ll try again.

Link to comment
Share on other sites

14 hours ago, thomaso said:

You can but in several steps: Edit the coloured hill layers then copy + move them as mask + delete the previous masking hills.

hills.jpg.3e09d70d866b82e2d1db9e0d234b393b.jpg

Even when going the symbols route? You mean by making each hill/mask pair a new symbol?

I’ll try this when at the desk.

Link to comment
Share on other sites

On 3/17/2024 at 10:49 AM, Gatada said:

Even when going the symbols route? You mean by making each hill/mask pair a new symbol?

With symbols it may be even easier: The hill-mask gets auto-updated if you modify a hill. (but its layer thumbnail might delay in being updated)

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

7 hours ago, Gatada said:

Granted, I didn’t try more than once-but the masked layer where not fully opaque when I didn’t use black..?

I’ll try again.

Yep, color not relevant. I must have tapped a number by mistake..

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.