12 * SVG Output->Allow relative coordinates is unchecked |
12 * SVG Output->Allow relative coordinates is unchecked |
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) Combine all paths in the drawing (select them, then choose Path->Combine). 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. |
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 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 |
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 |
19 |
20 |
20 2) select the combined path, and ungroup. |
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 |
22 |
22 3) 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. |
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 |
24 |
24 4) Go to File->Document Properties and choose Resize Page to Drawing or Selection. You may want to then reposition the art to be more centred vertically or horizontally. |
25 4) Save and Quit |
25 |
26 |
26 5) Save and Quit |
27 6) Open in an editor and verify there is one path. change the path ID attribute to id="base" - this is to work around a bug in the current stable Inkscape extensions tool which was crashing it. Make sure all those groups are removed. |
27 |
28 |
28 6) Open in an editor and verify there is one path. change the path ID attribute to id="base" - this is to work around a bug in the current stable Inkscape extensions tool which was crashing it. |
29 7) 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. |
29 |
|
30 7) 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. |
|
31 |
30 |
32 8) Save and Quit again |
31 8) Save and Quit again |
33 |
32 |
34 9) 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. 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. |
33 9) 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. 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. |
35 {{{:s/[0-9][0-9.]*/\=float2nr(floor(submatch(0)*1))/g}}} |
34 {{{:s/[0-9][0-9.]*/\=float2nr(floor(submatch(0)*1))/g}}} |
36 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 a Vim one-liner for that syntax {{{s/\(\d\) \(\d\)/\1 L\2/g}}} and {{{s/,/ /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 a Vim one-liner for that syntax {{{s/\(\d\) \(\d\)/\1 L\2/g}}} and {{{s/,/ /g}}} |
37 |
36 |
38 10) Convert the path data. Here is a crude script to do that. |
37 10) Convert the path data. Here is a crude script to do that. Note this one uses a line size of 1 (that's the 0x01 business). |
|
38 If you want larger lines you can pick anything between 0x01 and 0x3F. That's 16-636. See the map format wiki page. |
39 {{{ |
39 {{{ |
40 #!/usr/bin/perl |
40 #!/usr/bin/perl |
41 # just a one-line list of points. at least, it had better be one-line |
41 # just a one-line list of points. at least, it had better be one-line |
42 open FILE, $ARGV[0]; |
42 open FILE, $ARGV[0]; |
43 while(<FILE>) |
43 while(<FILE>) |