Clipping masks could be better, especially with all the work-arounds needed to compensate for all of it's shortcomings.
The main problems that I have, and many others is the fact that clipping masks tend to stack incorrectly, as well as that the system is generally clunky with it's current configuration.
Here are some of my proposed solutions, but I'm not someone who knows a lot about the coding and math side of things, so take it with a grain of salt.
ALPHA MASKSFor the 'Incorrect Stacking/ Leaking" problem, I had proposed this earlier in another thread (
here) and I'll just put it here as well:
There can be a separate function from Clipping Mask(s), called; 'Inherit Alpha'. This new function works in the same manner: i.e; a textbox where you can paste artmeshes into, and the "invert mask" tick-box. But inherits the
visible alpha of the layer/s specified in the text box, instead of the whole alpha, regardless of the current state of it's visibility.
For example; You have Mesh 1 clipped Mesh 2- of which is clipped to Mesh 3. When you move Mesh 1 and 2, Mesh 2 stays within the bounds of Mesh 3, but Mesh 1 leaks, as it only clips to Mesh 1, regardless of it's visibility.
(From the "
Stacking Dual Clipping" discussion)
With 'Inherit Alpha', Mesh 1 would be inheriting the visibility of Mesh 2, meaning rather than leaking, it stays both within Mesh 2, and Mesh 3.
(From the "
Stacking Dual Clipping" discussion)
It would be good to keep the legacy system, as that allows for invisible masking, and a whole bunch of other very useful applications.
MASK GROUPSMask groups would help a ton with efficiency. I propose that there are two ways to group-mask artmeshes.
One, being the easiest- allowing folders to mask onto artmeshes, and vice versa. This can allow for things like eyes and mouths to reduce their mask count.
The second being a separate function, either in the deformer or parts list. I can't say much about this, as it functions the same, if not with more features than masking folders, but I haven't been able to think up of any more features, without being able to actually use it.
Anyways, I do hope the team considers this. Many thanks! Live2D is great, and I'd love to see it improve. Hopefully this isn't too long winded.
Comments
Thank you for your contact.
This is Live2D Support.
I have shared this request with the developers.
We will use this as a reference for future development.
Thank you very much!
Live2D Support
For example
ArtMesh3.Clipping_ID = "ArtMesh1 , ArtMesh2"
Circle_Green.Clipping_ID = "Circle_Red , Circle_Blue"
in scuffed code this would look like
[ArtMesh1.Area + ArtMesh2.Area]
[Circle_Red.Area + Circle_Blue.Area]
but what if, instead a "or" "," "||" "+" we can use the "and" "&&" "*"
we would have to need both textures and so we can make the segment of the green circle
As I understand it, the original post in summary is requesting an option to configure clipping masks as the intersection of specified masks instead of just the sum of them as is done presently.
Per the later commenter's idea, adding binary operations to the Clipping ID field could allow for an implementation of that.
You could then create combinations in the Clipping ID field which might look like:
Artmesh1 AND Artmesh2
= The intersection of the mesh with Artmeshes 1 & 2
Artmesh1 AND !Artmesh2
= The intersection of the mesh with Artmesh1 except where Artmesh2 also overlaps
Artmesh1 XOR (Artmesh2 OR Artmesh3)
= the intersection of the mesh with Artmesh 1 except where it overlaps with artmesh2 or 3, and the areas of artmesh 2 or 3 except where they overlap with artmesh 1.