SVGImport.wiki
changeset 240 85ea0e6d423d
parent 239 91b2ea70aff4
child 331 8a16017f175f
equal deleted inserted replaced
239:91b2ea70aff4 240:85ea0e6d423d
    13     * Transforms->Store transformation  is set to Optimized
    13     * Transforms->Store transformation  is set to Optimized
    14 
    14 
    15 Open an SVG. Ideally one of simple line art, without too much use of fill or filters.
    15 Open an SVG. Ideally one of simple line art, without too much use of fill or filters.
    16 
    16 
    17 1) Select all in the image and choose ungroup, then combine all paths in the drawing (select them, then choose Path->Combine). 
    17 1) Select all in the image and choose ungroup, then combine all paths in the drawing (select them, then choose Path->Combine). 
    18 Note. I had some difficulty doing that with some images even after repeated use of ungroup. I ended up just going into the SVG file and deleting all the groups.  This usually happens if there are filters in place. Removing all the <g> tags in the SVG is faster than cleaning up the filters in Inkscape.
    18 Note. I had some difficulty doing that with some images even after repeated use of ungroup. I ended up just going into the SVG file and deleting all the groups.  This usually happens if there are filters in place. Removing all the g tags (keeping the paths inside) in the SVG might be faster than cleaning up in Inkscape.
    19 Also, some paths might be worth eliminating altogether.  In order to get a better idea of what it'll look like, try: View->Display Mode->Outline.  To simulate occluding, you can try combining individual paths first, and using union to combine into larger groups. This takes a bit more work.  If it still doesn't look right, you're going to have to go in and delete nodes, and generally rework the shape to simulate occlusion.
    19 Also, some paths might be worth eliminating altogether.  In order to get a better idea of what it'll look like, try: View->Display Mode->Outline.  To simulate occluding, you can try combining individual paths first, and using union to combine into larger groups. This takes a bit more work.  If it still doesn't look right, you're going to have to go in and delete nodes, and generally rework the shape to simulate occlusion.
    20 
    20 
    21 2) Click on the path, and choose dimensions for W and H that would look good in the game (no more than 4096 for W and 2048 for H).  The Lock button may be helpful here
    21 2) Click on the path, and choose dimensions for W and H that would look good in the game (no more than 4096 for W and 2048 for H).  The Lock button may be helpful here
    22 
    22 
    23 3) Go to File->Document Properties and specify 4096 for W and 2048 for H.  You may want to then reposition the art to be more centred vertically or horizontally.
    23 3) Go to File->Document Properties and specify 4096 for W and 2048 for H.  You may want to then reposition the art to be more centred vertically or horizontally.
    30 6) Open the file in Inkscape again, Click on the path again, then go to Extensions->Modify Path->Flatten Beziers and flatten out the curves to your taste. Default of 10 seems fine most of the time, but for small curved objects you might want something like 5.  Keep in mind, the more the approximation, the more points that Hedgewars has to draw, which can be rough on the engine and network communication.
    30 6) Open the file in Inkscape again, Click on the path again, then go to Extensions->Modify Path->Flatten Beziers and flatten out the curves to your taste. Default of 10 seems fine most of the time, but for small curved objects you might want something like 5.  Keep in mind, the more the approximation, the more points that Hedgewars has to draw, which can be rough on the engine and network communication.
    31 
    31 
    32 7) Save and Quit again
    32 7) Save and Quit again
    33 
    33 
    34 8) Edit the file, and delete everything but the path data.  You should have a one-line file starting with something like  M1234.3 456.78L3298.3 9023.34 and so on.
    34 8) Edit the file, and delete everything but the path data.  You should have a one-line file starting with something like  M1234.3 456.78L3298.3 9023.34 and so on.
    35 If instead you have a format like M 1234.678,9875.323 2345.0,123.45  - you'll want to convert if you want to try the crude script in (10) - otherwise a smarter script would be needed.  Here's some Vim commands for that syntax {{{s/\(\d\) \(\d\)/\1 L\2/g}}}  and {{{s/,/ /g}}} and {{{s/\([LM]\s*\)/\1/g}}}
    35 If instead you have a format like M 1234.678,9875.323 2345.0,123.45  - you'll want to convert if you want to try the crude script in (10) - otherwise a smarter script would be needed.  Here's some Vim commands for that syntax {{{s/\(\d\) \(\d\)/\1 L\2/g}}}  and {{{s/,/ /g}}} and {{{s/\([LM]\)\s*/\1/g}}}
    36 
    36 
    37 The coordinates should now be rounded unless you plan to handle that yourself in some way.  Here is a vim one-liner to do it.
    37 The coordinates should now be rounded unless you plan to handle that yourself in some way.  Here is a vim one-liner to do it.
    38 {{{:s/[0-9][0-9.]*/\=float2nr(floor(submatch(0)*1))/g}}}
    38 {{{:s/[0-9][0-9.]*/\=float2nr(floor(submatch(0)*1))/g}}}
    39 
    39 
    40 
    40