gotcha

Author Topic: Any simpler way to mush shapes?  (Read 2415 times)

February 20, 2017, 10:35:16 PM
Read 2415 times

creek23

  • Newbie

  • Offline
  • *

  • 1
Hi all,

Been doing fine with Inkscape creating graphics for ~3 games already. but this current game I'm working on requires mushing of characters as they get hit and even when running/slowing/jumping. I hope you get the idea.

Anyway, attached is the problem I'm having:  for simplicity's sake, I have in the upper left a circle with shading and an outline of the shape -- my usual approach is to have 3 layers of shapes; 1 for outline, 1 for shape itself, and 1 for shading to be placed under the outline.

My problem is that, I need to animate a lot of different characters, and my current approach is tedious when I need to mush the character, as shown in attached file in the lower left.  Each time I mush the character, I would have to edit at least 3 shapes -- and one character contains a lot of shapes and it's eating too much time.

Can I possibly do it any easier? I'm hoping, by mushing 1 shape, everything else follows.

Regards.
~creek23

February 21, 2017, 02:22:28 AM
Reply #1

brynn

  • Administrator

  • Offline
  • ******

  • 3,941
  • Gender
    Female

    Female
    • Inkscape Community
Welcome to the forum!

I'm not sure if I understand what "mushing" is.  But it sounds like you want to make a change to one of 3 objects, and have the other 2 objects change automatically.  Correct?

Inkscape doesn't have any functionality exactly like that.  But you can get pretty close with clones.  So if you have a 3 piece character and clone it, you can change the parent object, and all the clones will automatically change.

Or, if the objects are like the example you showed, where all the pieces of the character share all or most of the same nodes, but consist of a fill object, stroke object, and a modified fill object, then you should be able to achieve essentially what you want by selecting the same node for each object. 

So each time you want to make an edit, select all 3 objects, switch to Node tool, and drag a selection box around the 3 stacked noded.
  • Inkscape version 0.92.3
  • Windows 7 Pro, 64-bit
Inkscape Tutorials (and manuals)                      Inkscape Community Gallery                        Inkscape for Cutting Design                     



"Be ashamed to die until you have won some victory for humanity" - Horace Mann                       

February 21, 2017, 03:39:34 AM
Reply #2

Lazur

  • IC Mentor

  • Offline
  • ******
  • Inkscape Filters Wizard

  • 1,154
  • Gender
    Male

    Male
Hi.

Sounds doable to some extent.
Clone the black outline and use that for clipping a group of objects below.
If the grouped objects exceed the adjusted clip area you wouldn't need to resize the object insode one by one.

Other workaround, to make the background fill live updating is by cloning as well, although it may not be an easier solution.
If you unset the stroke and the fill of the outline shaped path and make two clones of it, you can use them for drawing the fill and the outline.
On one of the clones set fill and no stroke, on the other set stroke and no fill.
Use another clone -third one- for clipping the rest of the objects inside the group.
Group the clipped group and the two clones together. Only thing remaining is "hiding" the parent object on top. Lower its opacity to 0%, then preferably group it with the group below.
Theoretically this should do it, however node selecting the "invisible" parent path may not work so well.

February 21, 2017, 05:24:34 AM
Reply #3

Moini

  • IC Mentor

  • Offline
  • ******

  • 1,568
    • VektorRascheln
Depending on where you will create the sprites, an LPE like 'clone original' could also be used.
Or the lattice deformation LPE could be used to deform a whole group at once (but it's not perfect yet).

February 21, 2017, 07:02:48 PM
Reply #4

Pilosopong Tasyo

  • IC Mentor

  • Offline
  • ******

  • 34
  • Gender
    Male

    Male
How about the Tweak Object :twk: Tool?  Several modes of this tool allows a group of objects to be deformed (mushed?) at the same time.