﻿<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text" xml:lang="en">Tutorial</title>
  <link type="application/atom+xml" href="https://d.moonfire.us/tags/tutorial/atom.xml" rel="self" />
  <link type="text/html" href="https://d.moonfire.us/tags/tutorial/" rel="alternate" />
  <updated>2026-09-06T17:41:56Z</updated>
  <id>https://d.moonfire.us/tags/tutorial/</id>
  <author>
    <name>D. Moonfire</name>
  </author>
  <rights>Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International</rights>
  <entry>
    <title>Creating slippery maps</title>
    <link rel="alternate" href="https://d.moonfire.us/blog/2014/09/13/making-slippery-maps/" />
    <updated>2014-09-13T05:00:00Z</updated>
    <id>https://d.moonfire.us/blog/2014/09/13/making-slippery-maps/</id>
    <category term="artistic" scheme="https://d.moonfire.us/categories/" label="Artistic" />
    <category term="programming" scheme="https://d.moonfire.us/categories/" label="Programming" />
    <category term="exalted" scheme="https://d.moonfire.us/tags/" label="Exalted" />
    <category term="javascript" scheme="https://d.moonfire.us/tags/" label="Javascript" />
    <category term="openlayers" scheme="https://d.moonfire.us/tags/" label="OpenLayers" />
    <category term="slippery-map" scheme="https://d.moonfire.us/tags/" label="Slippery Map" />
    <category term="tutorial" scheme="https://d.moonfire.us/tags/" label="Tutorial" />
    <summary type="html">Someone recently asked me how to create an online map of a created world. I decided to use this opportunity to update my Exalted online map to a newer library while writing a tutorials.</summary>
    <content type="html">&lt;p&gt;Recently, I &lt;a href="http://www.reddit.com/r/worldbuilding/comments/2g3u7y/is_there_a_program_with_an_interactive_map_style/ckfdza1"&gt;answered a question&lt;/a&gt; about creating an online map of someone's fantasy world. I mentioned &lt;a href="http://wiki.openstreetmap.org/wiki/Slippy_Map"&gt;slippery maps&lt;/a&gt; which is the generic name for maps like Google Maps or MapQuest where you can drag around the map, zoom into it, and maybe set up bookmarks.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;If you just want to look at the results, head over &lt;a href="http://exalted-map.mfgames.com/"&gt;to the website&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Now, a &lt;em&gt;lot&lt;/em&gt; of things changed since 2006 when I last created a map. Then, I needed to create some PHP code to manage it and spent better part of a week trying to jam Google Map's API into something that would work.&lt;/p&gt;
&lt;p&gt;Today, things are a lot different and a lot easier to create something that looks good. It also doesn't require a PHP host or a database to run. But, to answer the question I gave in more detail, this is a short tutorials on how to create a slippery map of a fantasy world.&lt;/p&gt;
&lt;h1&gt;Zoom Levels and Tiles&lt;/h1&gt;
&lt;p&gt;Probably the best way to understand slippery maps is to understand zoom levels. The lowest detail, highest area is zoom zero (Z0). This represents the entire world as a single 256 pixel square tile.&lt;/p&gt;
&lt;p&gt;A zoom level starts with zero (Z0) which represents the entire world in a single tile.&lt;/p&gt;
&lt;img class="img-responsive" src="x0y0.png" /&gt;
&lt;p&gt;Each &lt;em&gt;zoom&lt;/em&gt; level higher doubles the image size. So Z1 is a 512 pixel square image and Z2 is a 1,024 pixel square image. Google Maps allows up to Z18 which is an image 67,108,864 pixels on a side. At that level, we can see the driveway leading into most houses but the image requires at least 16 petabytes to load into memory at once.&lt;/p&gt;
&lt;p&gt;I don't about you, but I'd love to have a 16 PiB RAM machine, but that isn't going to happen. Not to mention, you'd have to download all 16 PiB to actually see it.&lt;/p&gt;
&lt;p&gt;So, to break it into smaller parts that are easier to download, display, and manage, slippery maps use 256 pixel square tiles. Each of those images are broken down into these consistent-sized tiles which are then downloaded as the library needs it.&lt;/p&gt;
&lt;p&gt;Since we aren't using a full image, we have to know &lt;em&gt;where&lt;/em&gt; in the bigger image we need to retrieve these images. And this introduces the coordinate system for slipper maps. The basic coordinate is a (z, x, y) where &lt;em&gt;z&lt;/em&gt; is the zoom level. Both &lt;em&gt;x&lt;/em&gt; and &lt;em&gt;y&lt;/em&gt; are the zero-based index from the upper-left of the image.&lt;/p&gt;
&lt;p&gt;Z0 would only have a single image (0, 0, 0). Z1 would have four: (1, 0, 0), (1, 0, 1), (1, 1, 0), and (1, 1, 1). Z2 would have sixteen and so on.&lt;/p&gt;
&lt;p&gt;When a slippery map needs to retrieve the image, it maps the coordinate system into a URL of some sort. For example: &lt;a href="http://exalted-map.mfgames.com/creation/z0/x0y0.png"&gt;http://exalted-map.mfgames.com/creation/z0/x0y0.png&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The final component of a slippery map is a &lt;em&gt;layer&lt;/em&gt;. This can be raster data, such as satellite or a political map. It can also be vector data, such as a map of all streets in a tile. In the above example, the layer is actually &lt;code&gt;creation&lt;/code&gt;. There is also &lt;code&gt;creation-geo&lt;/code&gt; which is a second raster layer that doesn't have cities, geomancy, or boundaries on it.&lt;/p&gt;
&lt;p&gt;The only limitation on how far you allow zooming or which layers is time. It does take a fair amount of time to create and manage tiles. The higher the acceptable zoom level, the more work and disk space is required to keep those tiles and to make them look good.&lt;/p&gt;
&lt;h1&gt;Starting points&lt;/h1&gt;
&lt;p&gt;Because the Javascript can't create the tiles for me, and I'm not using PHP, I need to pre-render the individual tiles at all the zoom levels I need which will then be uploaded to my website.&lt;/p&gt;
&lt;p&gt;For me, the best place to start is with a relatively large map in &lt;a href="http://en.wikipedia.org/wiki/Mercator_projection"&gt;Mercator project&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I'm not going to use a proper Mercator projected map since I'm going to put my &lt;a href="https://mfgames.com/exalted-map/"&gt;Exalted Map of Creation&lt;/a&gt; back online and I already had most of the work done. This is a flat map without projection, so most of the coordinates are hacked to get things to work.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I decided to focus on a zoom level five for the map which requires me to start with a 8,192 pixel square. Fortunately, SVG scales very well so I have a relatively sharp image at that level.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;What doesn't work is that my map of Creation isn't square. I'm cheating and just putting black bars on the top and bottom, but I highly recommend you use a properly projected map that fills the tile completely.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I do &lt;a href="http://exalted-map.mfgames.com/creation/map-z5.png"&gt;host a full version of the map&lt;/a&gt; on my website (there is also z0 through z4, there is also creation-geo for maps without markers). Feel free to download or use that, or even hotlink. It's there until I run out of bandwidth or something goes wrong.&lt;/p&gt;
&lt;p&gt;The next step is to create 256 pixel square tiles from the image and give them a consistent name. Now, the tedious approach is to manually slice out each one and save it to the disk. For the larger map, that can take hours.&lt;/p&gt;
&lt;p&gt;I happen to be lazy, I don't do tedious things like this when I can find a tool to do it for me. Fortunately &lt;a href="http://www.imagemagick.org/"&gt;ImageMagick&lt;/a&gt; has all the tools I need. This runs under Windows (you have to double up on the &lt;code&gt;%&lt;/code&gt; though for the DOS command prompt) also, for those who don't use Linux.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;$ convert map-z5.png -crop 256x256 -set filename:tile &amp;quot;x%[fx:page.x/256]y%[fx:page.y/256]&amp;quot; +repage +adjoin &amp;quot;z5/%[filename:tile].png&amp;quot;
$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This basically creates 1024 tile images in &lt;code&gt;exalted-map/z5&lt;/code&gt; where the name is &lt;code&gt;xMyN.png&lt;/code&gt; where &lt;em&gt;M&lt;/em&gt; and &lt;em&gt;N&lt;/em&gt; are numbers from 0 to 31. This means that you can get a tile just from the middle by using something like &lt;code&gt;exalted-map/z5/x15y15.png&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Now, if you can't guess from the above path, I'm putting all the zoom levels above five (four through zero) in the same structure.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;$ convert -scale 50% map-z5.png map-z4.png
$ convert map-z4.png -crop 256x256 -set filename:tile &amp;quot;x%[fx:page.x/256]y%[fx:page.y/256]&amp;quot; +repage +adjoin &amp;quot;z4/%[filename:tile].png&amp;quot;
$
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is all in a &lt;a href="http://exalted-map.mfgames.com/creation/Makefile"&gt;makefile&lt;/a&gt; so I can just type &lt;code&gt;make&lt;/code&gt; and have it generate all six zoom levels in a single command. Now, if you have a custom map for a different zoom level, then don't scale it from the higher level (z5 to z4). I'm only going to have the one for each layer, so I'm just scaling the entire thing from Z5.&lt;/p&gt;
&lt;h1&gt;Putting it up&lt;/h1&gt;
&lt;p&gt;Now that I have the tiles at all the zoom levels (Z0 through Z5) generated, I need to put them somewhere that can be accessed via a HTTP request. If you can't guess, I have a host at &lt;a href="http://exalted-map.mfgames.com/"&gt;http://exalted-map.mfgames.com/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The tiles have to have a consistent name for the slippery map to work. I decided to use the pattern:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;http://exalted-map.mfgames.com/{layer}/z{zoom}/x{x}y{y}.png
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;At the moment, I'm allow providing two layers: &lt;code&gt;creation&lt;/code&gt; and &lt;code&gt;creation-geo&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The above URL is important for when we hook up a library to our URL, but the important part is that you can go to any image on that map and have it produce the correct results.&lt;/p&gt;
&lt;h1&gt;Creating the HTML&lt;/h1&gt;
&lt;p&gt;I decided to use &lt;a href="http://openlayers.org/"&gt;OpenLayers 3&lt;/a&gt; as my Javascript library. This is a pretty solid library, though there are others that can do much of the same functionality.&lt;/p&gt;
&lt;p&gt;On the &lt;a href="http://openlayers.org/en/v3.0.0/doc/quickstart.html"&gt;quickstart&lt;/a&gt; directions, they have a very basic HTML page that uses OpenLayers 3 and has the basic page. Take that HTML file and throw it up on a website (maybe at the &lt;a href="http://exalted-map.mfgames.com/"&gt;root above the layers&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;If you load the page, you should see MapQuest map. But we don't really want to see that, we want to see our own map. To do that, we change the layer:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-javascript"&gt;layers: [
  new ol.layer.Tile({
    source: new ol.source.XYZ({
      layer: 'creation-geo',
      url: 'http://exalted-map.mfgames.com/creation-geo/z{z}/x{x}y{y}.png'
    })
  })
],
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Refresh the page and you have a basic slippery map.&lt;/p&gt;
&lt;h1&gt;Icons and Locations&lt;/h1&gt;
&lt;p&gt;Getting locations to show up in the map is a &lt;em&gt;bit&lt;/em&gt; harder. In OpenLayers 3, there are a lot of ways of doing it and I haven't quite found a perfect way. But, a &amp;ldquo;good enough&amp;rdquo; approach uses KML and a bit of magic.&lt;/p&gt;
&lt;p&gt;This is the basic KML file. It just lists points on a map along with their icons. If you follow the &lt;a href="http://exalted-map.mfgames.com/icons/"&gt;icon links&lt;/a&gt;, you can find the icon images, they aren't that impressive (though I did make them in Inkscape).&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-xml"&gt;&amp;lt;kml&amp;gt;
  &amp;lt;Document&amp;gt;
	&amp;lt;name&amp;gt;Exalted Canon Locations&amp;lt;/name&amp;gt;
    &amp;lt;description&amp;gt;Created from stephenls map data.&amp;lt;/description&amp;gt;
    &amp;lt;Folder&amp;gt;
      &amp;lt;name&amp;gt;Locations&amp;lt;/name&amp;gt;
      &amp;lt;description&amp;gt;Locations&amp;lt;/description&amp;gt;

      &amp;lt;Style id=&amp;quot;style-canon-gate&amp;quot;&amp;gt;
        &amp;lt;IconStyle&amp;gt;
          &amp;lt;scale&amp;gt;1.0&amp;lt;/scale&amp;gt;
          &amp;lt;Icon&amp;gt;
            &amp;lt;href&amp;gt;http://exalted-map.mfgames.com/icons/canon-gate.png&amp;lt;/href&amp;gt;
          &amp;lt;/Icon&amp;gt;
        &amp;lt;/IconStyle&amp;gt;
      &amp;lt;/Style&amp;gt;
      &amp;lt;Style id=&amp;quot;style-canon&amp;quot;&amp;gt;
        &amp;lt;IconStyle&amp;gt;
          &amp;lt;scale&amp;gt;1.0&amp;lt;/scale&amp;gt;
          &amp;lt;Icon&amp;gt;
            &amp;lt;href&amp;gt;http://exalted-map.mfgames.com/icons/canon.png&amp;lt;/href&amp;gt;
          &amp;lt;/Icon&amp;gt;
        &amp;lt;/IconStyle&amp;gt;
      &amp;lt;/Style&amp;gt;

      &amp;lt;Folder&amp;gt;
        &amp;lt;name&amp;gt;POI&amp;lt;/name&amp;gt;
        &amp;lt;Placemark&amp;gt;
		  &amp;lt;name&amp;gt;Imperial Mountain&amp;lt;/name&amp;gt;
          &amp;lt;styleUrl&amp;gt;#style-canon&amp;lt;/styleUrl&amp;gt;
          &amp;lt;Point&amp;gt;
            &amp;lt;coordinates&amp;gt;-20, 12&amp;lt;/coordinates&amp;gt;
          &amp;lt;/Point&amp;gt;
        &amp;lt;/Placemark&amp;gt;
	  &amp;lt;/Folder&amp;gt;

	  &amp;lt;Folder&amp;gt;
		&amp;lt;name&amp;gt;Gates&amp;lt;/name&amp;gt;
		&amp;lt;description&amp;gt;Celestial Gates&amp;lt;/description&amp;gt;
        &amp;lt;Placemark&amp;gt;
		  &amp;lt;name&amp;gt;Celestial Gate #10&amp;lt;/name&amp;gt;
          &amp;lt;styleUrl&amp;gt;#style-canon-gate&amp;lt;/styleUrl&amp;gt;
          &amp;lt;Point&amp;gt;
            &amp;lt;coordinates&amp;gt;22.7673, 8&amp;lt;/coordinates&amp;gt;
          &amp;lt;/Point&amp;gt;
        &amp;lt;/Placemark&amp;gt;
	  &amp;lt;/Folder&amp;gt;
	&amp;lt;/Folder&amp;gt;
  &amp;lt;/Document&amp;gt;
&amp;lt;/kml&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I uploaded the KML file to the site under &lt;a href="http://exalted-map.mfgames.com/canon.kml"&gt;http://exalted-map.mfgames.com/canon.kml&lt;/a&gt;. If you can't guess, the library needs to download it to use it.&lt;/p&gt;
&lt;p&gt;Adding the KML file to the map is pretty easy, you do it as a second layer.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-javascript"&gt;var creationGeography = new ol.layer.Tile({
    source: new ol.source.XYZ({
        // attributes: Always give credits
        url: &amp;quot;http://exalted-map.mfgames.com/creation-geo/z{z}/x{x}y{y}.png&amp;quot;,
    }),
});

var canonLocations = new ol.layer.Vector({
    source: new ol.source.KML({
        projection: &amp;quot;EPSG:3857&amp;quot;,
        url: &amp;quot;canon.kml&amp;quot;,
    }),
});

var map = new ol.Map({
    target: &amp;quot;map&amp;quot;,
    layers: [creationGeography, canonLocations],
    view: new ol.View({
        center: [0, 0],
        zoom: 3,
    }),
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You'll notice I refactored the geography stuff out into a variable to make it easier to read. I do that a lot as I'm working and puzzling through things.&lt;/p&gt;
&lt;p&gt;When you upload and refresh, you'll see pretty icons for all of the canon locations. The reason I'm using &amp;lsquo;canon&amp;rsquo; is because I had a secondary layer called &amp;lsquo;sepia&amp;rsquo; for my Sepia Throne campaign. We had a tendency to create new locations, destroy cities, and we also used 108 celestial gates instead of the 56 in the canon world. (The 108 came from the 108 Stars of Destiny.)&lt;/p&gt;
&lt;h1&gt;Clickable labels&lt;/h1&gt;
&lt;p&gt;And the final part. It isn't obvious from the icons which gate it is, so it would be nice if you could click on it and get a bit more information. To do that, we are going to show a bootstrap popup of the KML name, which should be enough.&lt;/p&gt;
&lt;p&gt;This needs three parts. The first is to add Bootstrap and jQuery to your webpage. View source at the map to find examples if you don't know how.&lt;/p&gt;
&lt;p&gt;The second is to add a popup element in the map.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-html"&gt;&amp;lt;div id=&amp;quot;map&amp;quot; class=&amp;quot;map&amp;quot;&amp;gt;
    &amp;lt;div id=&amp;quot;popup&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And finally, a bit more Javascript.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-javascript"&gt;var element = document.getElementById(&amp;quot;popup&amp;quot;);

var popup = new ol.Overlay({
    element: element,
    positioning: &amp;quot;bottom-center&amp;quot;,
    stopEvent: false,
});

map.addOverlay(popup);

// display popup on click
map.on(&amp;quot;click&amp;quot;, function (evt) {
    var feature = map.forEachFeatureAtPixel(
        evt.pixel,
        function (feature, layer) {
            return feature;
        }
    );

    if (feature) {
        var geometry = feature.getGeometry();
        var coord = geometry.getCoordinates();
        popup.setPosition(coord);

        $(element).popover(&amp;quot;destroy&amp;quot;);
        $(element).popover({
            placement: &amp;quot;auto&amp;quot;,
            html: true,
            content: feature.get(&amp;quot;name&amp;quot;).replace(/ /g, &amp;quot;&amp;amp;#160;&amp;quot;),
        });
        $(element).popover(&amp;quot;show&amp;quot;);
    } else {
        $(element).popover(&amp;quot;destroy&amp;quot;);
    }

    feature = null;
});
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Conclusions&lt;/h1&gt;
&lt;p&gt;There are a few more things I'd like to do, but&amp;hellip; it's good enough for now. If you want to see a full version, check out the source of &lt;a href="http://exalted-map.mfgames.com/index.html"&gt;http://exalted-map.mfgames.com/index.html&lt;/a&gt; and &lt;a href="http://exalted-map.mfgames.com/map.js"&gt;http://exalted-map.mfgames.com/map.js&lt;/a&gt;. That should give you a rough idea of how to do it, along with poor comments on what we're doing.&lt;/p&gt;
&lt;p&gt;I don't like using the KML approach, but I couldn't easily figure out how to do it via JSON or creating the features manually. For some reason, &lt;code&gt;ol.geom.Point&lt;/code&gt; wasn't working with a &lt;code&gt;ol.Feature&lt;/code&gt; and I didn't know why. This works for now, but if I was going to add the rest of the points, I'd find a cleaner way of doing it.&lt;/p&gt;
&lt;p&gt;The main reason I don't want to use KML is because I want to have a link to a wiki site of some sort, or maybe some additional text. These are things easily done via JSON but not KML.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Miwāfu Glyphs Redux - Basic Font</title>
    <link rel="alternate" href="https://d.moonfire.us/blog/2014/08/20/miwafu-glyphs-font/" />
    <updated>2014-08-20T05:00:00Z</updated>
    <id>https://d.moonfire.us/blog/2014/08/20/miwafu-glyphs-font/</id>
    <category term="graphics" scheme="https://d.moonfire.us/categories/" label="Graphics" />
    <category term="fedran" scheme="https://d.moonfire.us/tags/" label="Fedran" />
    <category term="fontforge" scheme="https://d.moonfire.us/tags/" label="FontForge" />
    <category term="fonts" scheme="https://d.moonfire.us/tags/" label="Fonts" />
    <category term="inkscape" scheme="https://d.moonfire.us/tags/" label="Inkscape" />
    <category term="miwafu" scheme="https://d.moonfire.us/tags/" label="Miwāfu" />
    <category term="tutorial" scheme="https://d.moonfire.us/tags/" label="Tutorial" />
    <summary type="html">Continuing my series of making a conscript, this describes the steps of going from a cleaned up vector version of the script to a basic font.</summary>
    <content type="html">&lt;p&gt;Fonts can be a scary beast. Like very other technical field, it has its own language and organization. Free programs for creating fonts are&amp;hellip; let's call them difficult to use, but once you get into them, they are very powerful and capable (much like what I'm trying with &lt;span class="missing-link" data-path="/blog/tag/author-intrusion"&gt;Author Intrusion&lt;/span&gt;).&lt;/p&gt;
&lt;h2&gt;Series&lt;/h2&gt;
&lt;p&gt;This is going to be broken into multiple posts about the steps of making a font.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/17/miwafu-glyphs-redux/"&gt;2014-08-17 Miwāfu Glyphs Redux - Redrawing&lt;/a&gt; - Since I picked up a few new calligraphy pens for my birthday, I tried to write out Miwāfu and found that it was a bit more difficult than I thought. So I redrew them until they weren't difficult.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/18/miwafu-glyphs-cleanup/"&gt;2014-08-18 Miwāfu Glyphs Redux - Scanning&lt;/a&gt; - After drawing out the Miwāfu glyphs by hand, I had to scan them in and get them ready for us.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/19/miwafu-redux-vectorize/"&gt;2014-08-19 Miwāfu Glyphs Redux - Vectors&lt;/a&gt; - Once I got a clean raster version of the glyphs, I use Inkscape to create a vector format which is suitable for importing into FontForge. Part 3 of creating a Miwāfu font.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/20/miwafu-glyphs-font/"&gt;2014-08-20 Miwāfu Glyphs Redux - Basic Font&lt;/a&gt; - Continuing my series of making a conscript, this describes the steps of going from a cleaned up vector version of the script to a basic font.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Unicode&lt;/h2&gt;
&lt;p&gt;While there are many different codes for fonts, these days Unicode is pretty much the one and only one to use. Unicode has more than enough code points and the organization to allow for conscripts (constructed scripts).&lt;/p&gt;
&lt;p&gt;Unicode provides three areas for private use (creatively called &lt;a href="http://en.wikipedia.org/wiki/Private_Use_Areas"&gt;Private Use Area&lt;/a&gt; or PUA). The first is E000-F8FF and has 6,400 points (somewhere you can place a glyph). The other two are at F0000-FFFFD and 100000-10FFFD and have 65k points each.&lt;/p&gt;
&lt;p&gt;The PUA can be used by a lot of places: alternative characters, Easter eggs, swashes, non-standard ligatures, and conscripts.&lt;/p&gt;
&lt;h2&gt;ConScript Unicode Registry&lt;/h2&gt;
&lt;p&gt;The &lt;a href="http://www.evertype.com/standards/csur/"&gt;ConScript&lt;/a&gt;, or CSUR, is an attempt to organize the various use of conscripts in the private use areas. Basically, it's an informal &amp;ldquo;reservation&amp;rdquo; for a script to avoid someone else using those ranges.&lt;/p&gt;
&lt;p&gt;Font creators don't have to use the the CSUR to figure out the fonts, but I consider it polite not to use one of the reserved ranges for my own private space. Of course, if the script gets popular, it will probably be moved around, but at least I'm not stepping on known toes.&lt;/p&gt;
&lt;h2&gt;Where to put everything&lt;/h2&gt;
&lt;p&gt;I'm starting my glyphs at F2000 which is currently not reserved. I need 46 glyphs at this point, though I would normally pad it to 64 characters to handle some of the custom characters that exist in the world (and to give me breathing room).&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;F2000: MIWĀFU-W&lt;/li&gt;
&lt;li&gt;F2001: MIWĀFU-R&lt;/li&gt;
&lt;li&gt;F2002: MIWĀFU-M&lt;/li&gt;
&lt;li&gt;F2003: MIWĀFU-N&lt;/li&gt;
&lt;li&gt;F2004: MIWĀFU-H&lt;/li&gt;
&lt;li&gt;F2005: MIWĀFU-F&lt;/li&gt;
&lt;li&gt;F2006: MIWĀFU-P&lt;/li&gt;
&lt;li&gt;F2007: MIWĀFU-B&lt;/li&gt;
&lt;li&gt;F2008: MIWĀFU-S&lt;/li&gt;
&lt;li&gt;F2009: MIWĀFU-Z&lt;/li&gt;
&lt;li&gt;F200A: MIWĀFU-T&lt;/li&gt;
&lt;li&gt;F200B: MIWĀFU-D&lt;/li&gt;
&lt;li&gt;F200C: MIWĀFU-K&lt;/li&gt;
&lt;li&gt;F200D: MIWĀFU-G&lt;/li&gt;
&lt;li&gt;F200E: MIWĀFU-OPEN-QUOTE&lt;/li&gt;
&lt;li&gt;F200F: MIWĀFU-CLOSE-QUOTE&lt;/li&gt;
&lt;li&gt;F2010: MIWĀFU-OPEN-NESTED-QUOTE&lt;/li&gt;
&lt;li&gt;F2011: MIWĀFU-CLOSE-NESTED-QUOTE&lt;/li&gt;
&lt;li&gt;F2012: MIWĀFU-OPEN-NUMBER&lt;/li&gt;
&lt;li&gt;F2013: MIWĀFU-CLOSE-NUMBER&lt;/li&gt;
&lt;li&gt;F2014: MIWĀFU-1&lt;/li&gt;
&lt;li&gt;F2015: MIWĀFU-2&lt;/li&gt;
&lt;li&gt;F2016: MIWĀFU-3&lt;/li&gt;
&lt;li&gt;F2017: MIWĀFU-4&lt;/li&gt;
&lt;li&gt;F2018: MIWĀFU-5&lt;/li&gt;
&lt;li&gt;F2019: MIWĀFU-6&lt;/li&gt;
&lt;li&gt;F201A: MIWĀFU-7&lt;/li&gt;
&lt;li&gt;F201B: MIWĀFU-8&lt;/li&gt;
&lt;li&gt;F201C: MIWĀFU-9&lt;/li&gt;
&lt;li&gt;F201D: MIWĀFU-0&lt;/li&gt;
&lt;li&gt;F201E: MIWĀFU-A-INLINE&lt;/li&gt;
&lt;li&gt;F201F: MIWĀFU-E-INLINE&lt;/li&gt;
&lt;li&gt;F2020: MIWĀFU-I-INLINE&lt;/li&gt;
&lt;li&gt;F2021: MIWĀFU-O-INLINE&lt;/li&gt;
&lt;li&gt;F2022: MIWĀFU-U-INLINE&lt;/li&gt;
&lt;li&gt;F2023: MIWĀFU-RISING-INLINE&lt;/li&gt;
&lt;li&gt;F2024: MIWĀFU-FALLING-INLINE&lt;/li&gt;
&lt;li&gt;F2025: MIWĀFU-WAVE-INLINE&lt;/li&gt;
&lt;li&gt;F2026: MIWĀFU-A-DIACRITIC&lt;/li&gt;
&lt;li&gt;F2027: MIWĀFU-E-DIACRITIC&lt;/li&gt;
&lt;li&gt;F2028: MIWĀFU-I-DIACRITIC&lt;/li&gt;
&lt;li&gt;F2029: MIWĀFU-O-DIACRITIC&lt;/li&gt;
&lt;li&gt;F202A: MIWĀFU-U-DIACRITIC&lt;/li&gt;
&lt;li&gt;F202B: MIWĀFU-RISING-DIACRITIC&lt;/li&gt;
&lt;li&gt;F202C: MIWĀFU-FALLING-DIACRITIC&lt;/li&gt;
&lt;li&gt;F202D: MIWĀFU-WAVE-DIACRITIC&lt;/li&gt;
&lt;li&gt;F202E: MIWĀFU-Y-INLINE&lt;/li&gt;
&lt;li&gt;F202F: MIWĀFU-Y-DIACRITIC&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is somewhat close to how Unicode describes a character. I'm just making it look close to that.&lt;/p&gt;
&lt;h2&gt;Creating the font&lt;/h2&gt;
&lt;p&gt;FontForge is a powerful program that doesn't always work the way you expect it to. The creator ended up making their own widget set because nothing at the time could handle the full Unicode range. But, this also means that it occasionally doesn't have the polish one would expect out of a standard program. It is easy enough to work with, but it has &lt;em&gt;quirks&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It is also free and the work of love, so frankly, I can't complain about it.&lt;/p&gt;
&lt;p&gt;The first thing to do is start up FontForge and create a new font. This will then give a huge list of boxes with Xs in them. Don't panic, those are just empty places for glyphs and correspond to Unicode points.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-300.png"&gt;&lt;img class="post-img-link" src="screen-300.png" width="400" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Go into &lt;code&gt;Element / Font Info&lt;/code&gt; and populate the first three fields. These can't have any fancy characters (ANSI only) and the top two can't have spaces in the names. I use &amp;ldquo;MF&amp;rdquo; for &amp;ldquo;Moonfire&amp;rdquo; in all my fonts, mainly because of ego.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-301.png"&gt;&lt;img class="post-img-link" src="screen-301.png" width="300" height="265" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Creating the slots&lt;/h2&gt;
&lt;p&gt;Because I'm not starting with a Latin font, I clear out the entire font first. I select &lt;code&gt;Encoding / Remove Unused Slots&lt;/code&gt; which removes all the slots. Then, I select &lt;code&gt;Encoding / Add Encoding Slots&lt;/code&gt; and create 46, which is the number of glyphs I want.&lt;/p&gt;
&lt;p&gt;I haven't found an easy way of creating and naming a range of fonts easily. So, I go through each one, one glyph at a time.&lt;/p&gt;
&lt;h2&gt;Populating each slot&lt;/h2&gt;
&lt;p&gt;Start by naming the slot. This consists of right-clicking the first cell and selecting &lt;code&gt;Glyph Info...&lt;/code&gt;. In the dialog, fill in the first two fields.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-302.png"&gt;&lt;img class="post-img-link" src="screen-302.png" width="400" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-303.png"&gt;&lt;img class="post-img-link" src="screen-303.png" width="156" height="370" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-304.png"&gt;&lt;img class="post-img-link" src="screen-304.png" width="273" height="259" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the first one (Glyph Name), we need an identifier field. I'm using the uppercase letter and &amp;ldquo;.miw&amp;rdquo; to indicate this is a Miwāfu glyph. Having &amp;ldquo;.miw&amp;rdquo; will make it easier to merge this font later with a more complete one.&lt;/p&gt;
&lt;p&gt;In Unicode Value, put the hex value with &amp;ldquo;U+&amp;rdquo; in the beginning. If you just put &amp;ldquo;F2000&amp;rdquo;, FontForge will crash. But &amp;ldquo;U+F2000&amp;rdquo; works just fine.&lt;/p&gt;
&lt;p&gt;Click &amp;ldquo;OK&amp;rdquo; and go back to the glyph list.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Don't bother saving at this point, FontForge will forget your info until you put an image into the slot.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Double-click on the glyph which will bring up an editor.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-305.png"&gt;&lt;img class="post-img-link" src="screen-305.png" width="274" height="286" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Go into Inkscape, select the first glyph and paste it in. This will probably be not the right size. You can scale it inside the program, but that rarely works for me. Instead, I scale the image in Inkscape until I can just paste the glyph into the editor and move it around.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-306.png"&gt;&lt;img class="post-img-link" src="screen-306.png" width="274" height="286" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once I position the glyph, I adjust the right vertical bar to give a small amount of space to the right of the glyph. This is the default spacing between the slots, but it's kind of a art form to find the right spacing (it can also be easily changed later).&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-307.png"&gt;&lt;img class="post-img-link" src="screen-307.png" width="274" height="286" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Go ahead and close the editor and save. And do it for the next glyph, and the next&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;See you in an hour or so. Don't forget to save frequently.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-308.png"&gt;&lt;img class="post-img-link" src="screen-308.png" width="400" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Create the font&lt;/h2&gt;
&lt;p&gt;Once all the glyphs are put into the font, I can create the font. I like OTF format over TTF, but either works. To generate the fonts, we use &lt;code&gt;File / Generate Fonts&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-309.png"&gt;&lt;img class="post-img-link" src="screen-309.png" width="411" height="531" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unless you've done this before, are lucky, or know what you are doing, chances are you'll get an error message like this. I usually do, but most of the time, the problems are fixable. &lt;code&gt;Control-E&lt;/code&gt; in the editor is good for finding errors. Moving points around and drawing fixes some of the other problems.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-310.png"&gt;&lt;img class="post-img-link" src="screen-310.png" width="320" height="467" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Eventually, you can plug at it and get through all of the errors. Don't skip them, FontForge is telling you for a reason. Once you finish, you'll have an OTF or TTF font wherever you saved it.&lt;/p&gt;
&lt;h2&gt;Testing it out&lt;/h2&gt;
&lt;p&gt;And since we're finally at a point of seeing it in a word processor, we can use LibreOffice after installing the font into your system.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-311.png"&gt;&lt;img class="post-img-link" src="screen-311.png" width="433" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-312.png"&gt;&lt;img class="post-img-link" src="screen-312.png" width="450" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-313.png"&gt;&lt;img class="post-img-link" src="screen-313.png" width="433" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And&amp;hellip; after all of these posts, I can finally show a couple names from my novels.&lt;/p&gt;
&lt;p&gt;&lt;a href="example.jpg"&gt;&lt;img class="post-img-link" src="example.jpg" width="256" height="256" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;In the future&lt;/h2&gt;
&lt;p&gt;There is a lot here and things to do. I have a basic font, but the diacritics are not working nor is the accent. The next step will be how to get those working in the font and see if I can get the eastern version rendering properly.&lt;/p&gt;
&lt;p&gt;I also have to tweak the kerning and spacing between the characters so it looks a bit more even on screen. For example, &amp;ldquo;Y&amp;rdquo; should be a bit further down and nestled underneath the vowel.&lt;/p&gt;
&lt;p&gt;Well, this is a point where I need to stop for now. I have to work on &lt;a href="/tags/author-intrusion/"&gt;Author Intrusion&lt;/a&gt; for a little bit.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Miwāfu Glyphs Redux - Vectors</title>
    <link rel="alternate" href="https://d.moonfire.us/blog/2014/08/19/miwafu-redux-vectorize/" />
    <updated>2014-08-19T05:00:00Z</updated>
    <id>https://d.moonfire.us/blog/2014/08/19/miwafu-redux-vectorize/</id>
    <category term="graphics" scheme="https://d.moonfire.us/categories/" label="Graphics" />
    <category term="fedran" scheme="https://d.moonfire.us/tags/" label="Fedran" />
    <category term="fontforge" scheme="https://d.moonfire.us/tags/" label="FontForge" />
    <category term="fonts" scheme="https://d.moonfire.us/tags/" label="Fonts" />
    <category term="inkscape" scheme="https://d.moonfire.us/tags/" label="Inkscape" />
    <category term="miwafu" scheme="https://d.moonfire.us/tags/" label="Miwāfu" />
    <category term="tutorial" scheme="https://d.moonfire.us/tags/" label="Tutorial" />
    <summary type="html">Once I got a clean raster version of the glyphs, I use Inkscape to create a vector format which is suitable for importing into FontForge. Part 3 of creating a Miwāfu font.</summary>
    <content type="html">&lt;p&gt;It is very easy to copy SVG images from &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt; into &lt;a href="http://fontforge.org/"&gt;FontForge&lt;/a&gt;. The previous parts of creating a font for Miwāfu was to prepare an image suitable for importing into Inkscape.&lt;/p&gt;
&lt;h2&gt;Series&lt;/h2&gt;
&lt;p&gt;This is going to be broken into multiple posts about the steps of making a font.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/17/miwafu-glyphs-redux/"&gt;2014-08-17 Miwāfu Glyphs Redux - Redrawing&lt;/a&gt; - Since I picked up a few new calligraphy pens for my birthday, I tried to write out Miwāfu and found that it was a bit more difficult than I thought. So I redrew them until they weren't difficult.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/18/miwafu-glyphs-cleanup/"&gt;2014-08-18 Miwāfu Glyphs Redux - Scanning&lt;/a&gt; - After drawing out the Miwāfu glyphs by hand, I had to scan them in and get them ready for us.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/19/miwafu-redux-vectorize/"&gt;2014-08-19 Miwāfu Glyphs Redux - Vectors&lt;/a&gt; - Once I got a clean raster version of the glyphs, I use Inkscape to create a vector format which is suitable for importing into FontForge. Part 3 of creating a Miwāfu font.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/20/miwafu-glyphs-font/"&gt;2014-08-20 Miwāfu Glyphs Redux - Basic Font&lt;/a&gt; - Continuing my series of making a conscript, this describes the steps of going from a cleaned up vector version of the script to a basic font.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Import the image into Inkscape&lt;/h2&gt;
&lt;p&gt;Again, this is a relatively simple process. Using the final image from the previous step, we import it into Inkscape as an image. It doesn't matter if you link or embed, but I usually link to avoid bloating the SVG file.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-200.png"&gt;&lt;img class="post-img-link" src="screen-200.png" width="400" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Tracing the bitmap&lt;/h2&gt;
&lt;p&gt;Because I cleaned up the image in &lt;a href="http://gimp.org/"&gt;Gimp&lt;/a&gt;, it is easy to turn the raster image into a SVG image. Select the bitmap then choose &lt;code&gt;Trace Bitmap&lt;/code&gt; from the menu.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-201.png"&gt;&lt;img class="post-img-link" src="screen-201.png" width="633" height="457" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There is a quirk after you click &amp;ldquo;OK&amp;rdquo; on this dialog. It works for a few moments and then looks like you have to click OK again. Just close the window.&lt;/p&gt;
&lt;h2&gt;Cleaning up the images&lt;/h2&gt;
&lt;p&gt;The resulting item looks just like an image. Just use control and an arrow key to move one out of the way and delete the image behind the vector version. Once you are down to one image, select the traced outline and use &lt;code&gt;Break Apart&lt;/code&gt; (Control-K).&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-202.png"&gt;&lt;img class="post-img-link" src="screen-202.png" width="400" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The resulting image will have each glyph as a separate image, but all of the loops will be filled in. To fix this, click on the filled-in bowl, then control-click on the outline. Use &lt;code&gt;Subtract&lt;/code&gt; (Control-Minus) to remove the bowl from the outline.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-203.png"&gt;&lt;img class="post-img-link" src="screen-203.png" width="400" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Cleaning up individual glyphs&lt;/h2&gt;
&lt;p&gt;This is the next tedious part of the process. I started by throwing everything on a baseline, just to make it easier to scroll.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-204.png"&gt;&lt;img class="post-img-link" src="screen-204.png" width="400" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then, starting on the left side, I go through each glyph and clean it up before moving the next. I was going with an easier approach, so I use &lt;code&gt;Simplify Path&lt;/code&gt; (Control-L) to remove many of the control points and smooth out the lines. After doing that, I tried to remove other control points (F2 lets you see those) to create a simple glyph.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-206.png"&gt;&lt;img class="post-img-link" src="screen-206.png" width="300" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I took a couple passes going back and forth until I was pretty happy with the results. Then, I reorganized the glyphs again just to make it easier for creating the final arrangement.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-205.png"&gt;&lt;img class="post-img-link" src="screen-205.png" width="400" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After a bit more, I had this for the end of this step:&lt;/p&gt;
&lt;p&gt;&lt;a href="arranged-glyphs.jpg"&gt;&lt;img class="post-img-link" src="arranged-glyphs.jpg" width="400" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You may notice that the heights of the individual glyphs varies a lot. I did this for a few reasons, mainly for comprehension. I love Cherokee as a script, but it shows some aspects of being a constructed script. Everything has roughly the same height and it comes off as a block of text. I wanted something more flowing.&lt;/p&gt;
&lt;p&gt;The bottom row has two versions because the lower set is the diacritic version (western) and the upper set is the inline (eastern).&lt;/p&gt;
&lt;h2&gt;In the future&lt;/h2&gt;
&lt;p&gt;One of the drawbacks of simplify path is that you lose a bit of the sharpness of the image. I would probably go with a different approach if I was creating the font again.&lt;/p&gt;
&lt;p&gt;Also, if this was a non-handwriting font, I would be starting in Inkscape (or a C# program). I have an idea for a parametric font, but this &amp;ldquo;perfect&amp;rdquo; idea means that I will probably never finish it.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Miwāfu Glyphs Redux - Scanning</title>
    <link rel="alternate" href="https://d.moonfire.us/blog/2014/08/18/miwafu-glyphs-cleanup/" />
    <updated>2014-08-18T05:00:00Z</updated>
    <id>https://d.moonfire.us/blog/2014/08/18/miwafu-glyphs-cleanup/</id>
    <category term="graphics" scheme="https://d.moonfire.us/categories/" label="Graphics" />
    <category term="fedran" scheme="https://d.moonfire.us/tags/" label="Fedran" />
    <category term="fonts" scheme="https://d.moonfire.us/tags/" label="Fonts" />
    <category term="gimp" scheme="https://d.moonfire.us/tags/" label="Gimp" />
    <category term="miwafu" scheme="https://d.moonfire.us/tags/" label="Miwāfu" />
    <category term="tutorial" scheme="https://d.moonfire.us/tags/" label="Tutorial" />
    <summary type="html">After drawing out the Miwāfu glyphs by hand, I had to scan them in and get them ready for us.</summary>
    <content type="html">&lt;p&gt;I don't write out things by hand very often. The little imperfections always annoy me, which is why I'd rather create a font that write it out. That way, I can also use the font on the &lt;a href="https://fedran.com/"&gt;Fedran&lt;/a&gt; website to show characters in their native language.&lt;/p&gt;
&lt;h2&gt;Series&lt;/h2&gt;
&lt;p&gt;This is going to be broken into multiple posts about the steps of making a font.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/17/miwafu-glyphs-redux/"&gt;2014-08-17 Miwāfu Glyphs Redux - Redrawing&lt;/a&gt; - Since I picked up a few new calligraphy pens for my birthday, I tried to write out Miwāfu and found that it was a bit more difficult than I thought. So I redrew them until they weren't difficult.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/18/miwafu-glyphs-cleanup/"&gt;2014-08-18 Miwāfu Glyphs Redux - Scanning&lt;/a&gt; - After drawing out the Miwāfu glyphs by hand, I had to scan them in and get them ready for us.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/19/miwafu-redux-vectorize/"&gt;2014-08-19 Miwāfu Glyphs Redux - Vectors&lt;/a&gt; - Once I got a clean raster version of the glyphs, I use Inkscape to create a vector format which is suitable for importing into FontForge. Part 3 of creating a Miwāfu font.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/20/miwafu-glyphs-font/"&gt;2014-08-20 Miwāfu Glyphs Redux - Basic Font&lt;/a&gt; - Continuing my series of making a conscript, this describes the steps of going from a cleaned up vector version of the script to a basic font.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Scanning the file&lt;/h2&gt;
&lt;p&gt;The process of scanning in hand-drawn images is fairly simple one. I have a Canon all-in-one printers/scanner which writes out scanned images as PDF to a SD card. I threw everything into a single PDF and then broke it out into individual PNG files using an overly complicated process.&lt;/p&gt;
&lt;p&gt;I should have just scanned each page individually, but it was late and I wanted to go to bed.&lt;/p&gt;
&lt;h2&gt;Removing blue lines&lt;/h2&gt;
&lt;p&gt;The first thing I did was open the scanned images into &lt;a href="http://www.gimp.org/"&gt;Gimp&lt;/a&gt;. I use single window mode (from the &lt;code&gt;Windows&lt;/code&gt; menu) because it plays better with my monitor.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-100.png"&gt;&lt;img class="post-img-link" src="screen-100.png" width="286" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The next is to create a white layer and put it below everything. This will let me use Cut instead of fill to remove elements.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-101.png"&gt;&lt;img class="post-img-link" src="screen-101.png" width="286" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After selecting the main layer again, select by color (right-click, Select, By Color&amp;hellip;) and set the threshold to 40.0.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-102.png"&gt;&lt;img class="post-img-link" src="screen-102.png" width="277" height="483" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With those settings, just click on the blue line and cut (&lt;code&gt;Control-X&lt;/code&gt;). Because we put a white layer behind it, it will delete to white instead of transparent.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-103.png"&gt;&lt;img class="post-img-link" src="screen-103.png" width="286" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After doing this a few times, I get a white background image with the glyphs nice and stark on the page.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-104.png"&gt;&lt;img class="post-img-link" src="screen-104.png" width="286" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Sharpen the images&lt;/h2&gt;
&lt;p&gt;Once I have the guide lines removed, I made the text easier to trace. The first thing is to convert the image into grayscale and back to RGB. This removes any errant blue lines and darkens everything black.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-105.png"&gt;&lt;img class="post-img-link" src="screen-105.png" width="229" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once that is done, I jack up the contrast to deepen the black even more.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-106.png"&gt;&lt;img class="post-img-link" src="screen-106.png" width="374" height="283" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Smooth out the edges&lt;/h2&gt;
&lt;p&gt;The result is actually good enough for the next step for making a vector version. However, I ended up using the &amp;ldquo;Oilify&amp;rdquo; filter to smooth out the edges so the glyphs look reasonable even in Gimp. I like Oilify because it smooths out the rough edges of an image and gives a more newspaper printed appearance to the images.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-107.png"&gt;&lt;img class="post-img-link" src="screen-107.png" width="295" height="603" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The final result is a fairly dark glyph that is easily designed to be scanned.&lt;/p&gt;
&lt;p&gt;&lt;a href="screen-108.png"&gt;&lt;img class="post-img-link" src="screen-108.png" width="286" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Culling the herd&lt;/h2&gt;
&lt;p&gt;The final step was to go through all of the duplicated glyphs and find the best one of the lot. This was actually a couple hours of shifting images around, removing the ones that don't quite fit, and trying to decide the right shapes to use. Once that was done, I had a single image with one of each glyph.&lt;/p&gt;
&lt;h2&gt;In the future&lt;/h2&gt;
&lt;p&gt;The blue lines I used were a little too dark, which increased the complexity of removing the trace lines. I would use a lighter shade next time.&lt;/p&gt;
&lt;p&gt;I also didn't need to use the oilify since I was scanning into the next step. The result is that the glyphs got a bit more blurred than needed, plus it distorted the shapes (which was magnified by other things I did later).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Miwāfu Glyphs Redux - Redrawing</title>
    <link rel="alternate" href="https://d.moonfire.us/blog/2014/08/17/miwafu-glyphs-redux/" />
    <updated>2014-08-17T05:00:00Z</updated>
    <id>https://d.moonfire.us/blog/2014/08/17/miwafu-glyphs-redux/</id>
    <category term="graphics" scheme="https://d.moonfire.us/categories/" label="Graphics" />
    <category term="calligraphy" scheme="https://d.moonfire.us/tags/" label="Calligraphy" />
    <category term="fedran" scheme="https://d.moonfire.us/tags/" label="Fedran" />
    <category term="fonts" scheme="https://d.moonfire.us/tags/" label="Fonts" />
    <category term="miwafu" scheme="https://d.moonfire.us/tags/" label="Miwāfu" />
    <category term="world-building" scheme="https://d.moonfire.us/tags/" label="World-Building" />
    <category term="tutorial" scheme="https://d.moonfire.us/tags/" label="Tutorial" />
    <summary type="html">Since I picked up a few new calligraphy pens for my birthday, I tried to write out Miwāfu and found that it was a bit more difficult than I thought. So I redrew them until they weren't difficult.</summary>
    <content type="html">&lt;p&gt;My dad gave me a little bit of money for my birthday and, after many years of being reminded not to spend it on bills, I gladly went out and bought some DVDs and a set of calligraphy pens.&lt;/p&gt;
&lt;p&gt;I've really been in the mood to create a font for my conlang lately. I'm pretty sure it was entirely because of &lt;a href="http://www.reddit.com/r/worldbuilding/comments/2c82uf/just_finished_a_draft_of_a_new_script_for_a/"&gt;this&lt;/a&gt;, which is a &lt;em&gt;beautiful&lt;/em&gt; set of calligraphy for someone's constructed language by someone far more talented than me. Even knowing they have higher skills, more artistic talent, and a more developed conlang doesn't stop me from wanting to follow in their footsteps. I mean, the only way to get better at something like this is to actually do it.&lt;/p&gt;
&lt;h2&gt;Series&lt;/h2&gt;
&lt;p&gt;This is going to be broken into multiple posts about the steps of making a font.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/17/miwafu-glyphs-redux/"&gt;2014-08-17 Miwāfu Glyphs Redux - Redrawing&lt;/a&gt; - Since I picked up a few new calligraphy pens for my birthday, I tried to write out Miwāfu and found that it was a bit more difficult than I thought. So I redrew them until they weren't difficult.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/18/miwafu-glyphs-cleanup/"&gt;2014-08-18 Miwāfu Glyphs Redux - Scanning&lt;/a&gt; - After drawing out the Miwāfu glyphs by hand, I had to scan them in and get them ready for us.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/19/miwafu-redux-vectorize/"&gt;2014-08-19 Miwāfu Glyphs Redux - Vectors&lt;/a&gt; - Once I got a clean raster version of the glyphs, I use Inkscape to create a vector format which is suitable for importing into FontForge. Part 3 of creating a Miwāfu font.&lt;/li&gt;
&lt;li&gt;&lt;a href="/blog/2014/08/20/miwafu-glyphs-font/"&gt;2014-08-20 Miwāfu Glyphs Redux - Basic Font&lt;/a&gt; - Continuing my series of making a conscript, this describes the steps of going from a cleaned up vector version of the script to a basic font.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Calligraphy&lt;/h2&gt;
&lt;p&gt;I haven't touched calligraphy in a very long time. My mother used to have some pens that I would occasionally play with. I didn't expect much coming back to it, I didn't have the muscle memory or the skill.&lt;/p&gt;
&lt;p&gt;But, I do remember the joy of trying to get curved, balanced lines. And that part is what I was looking for (and got).&lt;/p&gt;
&lt;h2&gt;Starting with the old&lt;/h2&gt;
&lt;p&gt;Back in &lt;a href="/blog/2012/10/29/miwafu-glyphs/"&gt;2012&lt;/a&gt;, I came up with a set of glyphs that I was pretty happy with at the time. However, in the two years since, they felt off but I couldn't figure out why. Trying to draw them out by hand helped me figure out the flaws: they were created on a computer.&lt;/p&gt;
&lt;p&gt;A calligraphy pen is kept at a steady angle for the entire character. The glyphs I created were just put together the way I thought looked good on the computer. More importantly, they had shapes that were easy to draw in &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt; instead of written on the page.&lt;/p&gt;
&lt;p&gt;When I actually tried to draw them, my hand refused to move in the ways needed to match the screen. Plus, it didn't feel &amp;ldquo;balanced&amp;rdquo; to me. So, I decided to draw the glyphs until I came up with a more natural version.&lt;/p&gt;
&lt;p&gt;I started with a cheap fountain pen but later switched to a marker-style pen. I found that I like the marker version slightly better, mainly for coverage, but neither compare to my precious Pentel A55 pencil which is completely unsuited for this endeavor.&lt;/p&gt;
&lt;p&gt;Below are the progression of the images starting with the old versions. You can probably guess that this was done over time (a week) with random bits of plain white paper.&lt;/p&gt;
&lt;p&gt;&lt;a href="scanned-09.jpg"&gt;&lt;img class="post-img-link post-img-link-tile" src="scanned-09.jpg" width="198" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="scanned-08.jpg"&gt;&lt;img class="post-img-link post-img-link-tile" src="scanned-08.jpg" width="198" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="scanned-07.jpg"&gt;&lt;img class="post-img-link post-img-link-tile" src="scanned-07.jpg" width="198" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="scanned-06.jpg"&gt;&lt;img class="post-img-link post-img-link-tile" src="scanned-06.jpg" width="198" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="scanned-06.jpg"&gt;&lt;img class="post-img-link post-img-link-last" src="scanned-06.jpg" width="198" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Coming up with the new&lt;/h2&gt;
&lt;p&gt;As you might tell from the above images, I played around a lot with the feel but started with the old ones. Mostly, it was changing the shape and arrangement while keeping the shapes distinct enough that they couldn't easily be confused with the other. The reason there were so many different variants was because I kept drawing it to see if it was a weakness in my muscles or a difficulty in the shape. Frequently, it was a combination of both.&lt;/p&gt;
&lt;p&gt;Eventually, I came up with a new set of glyphs that felt pretty good to actually draw by hand. Around page five of my tests, I started to organize my symbols instead of just randomly drawing on the page.&lt;/p&gt;
&lt;p&gt;&lt;a href="scanned-05.jpg"&gt;&lt;img class="post-img-link" src="scanned-05.jpg" width="198" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I even made a few attempts to write names in it (mostly character names). On the next image was my attempt, though there was some discussions with a friend at the writing group about different scripts in our world (he's a former military translator and a micro-polyglot).&lt;/p&gt;
&lt;p&gt;&lt;a href="scanned-02.jpg"&gt;&lt;img class="post-img-link" src="scanned-02.jpg" width="198" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One cool thing came out of here is a bit of world-building. There are two ways of putting in the vowels, diacritics or succeeding. Since I've always said that Miwāfu's script was created by researchers and missionaries from &lt;a href="https://fedran.com/tarsan/"&gt;Tarsan&lt;/a&gt;, the original language used diacritics. And since the desert folk hate agreeing with anything, the eastern part of the desert rebuked the diacritics and went with their own way of writing vowels.&lt;/p&gt;
&lt;h2&gt;Practice sheets&lt;/h2&gt;
&lt;p&gt;Once I &lt;em&gt;thought&lt;/em&gt; I was done with the glyphs, I banged up a quick practice sheet in Inkscape using blue lines and printed off a few copies. Then, with my trusty new calligraphy marker, I just spent a few days drawing in boxes, working each one until it felt good but also looked &amp;ldquo;mostly right.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I say &amp;ldquo;thought&amp;rdquo; because I still ended up changing fonts after drawing them a few dozen times.&lt;/p&gt;
&lt;p&gt;&lt;a href="scanned-04.jpg"&gt;&lt;img class="post-img-link post-img-link-tile" src="scanned-04.jpg" width="191" height="198" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="scanned-03.jpg"&gt;&lt;img class="post-img-link post-img-link-tile" src="scanned-03.jpg" width="191" height="198" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="scanned-11.jpg"&gt;&lt;img class="post-img-link post-img-link-tile" src="scanned-11.jpg" width="191" height="198" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="scanned-12.jpg"&gt;&lt;img class="post-img-link post-img-link-last" src="scanned-12.jpg" width="191" height="198" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the end, I figured I had a pretty good set of glyphs of various quality. I scanned them in and then promptly went to bed. Mainly because the next step requires a lot of thinking.&lt;/p&gt;
&lt;h2&gt;In the future&lt;/h2&gt;
&lt;p&gt;The biggest thing about these glyphs and my effort is simply practice. I haven't used calligraphy pens enough to be good at them, nor can I do the little swashes and flairs that I see others doing. This is obviously something I can improve, but it is a matter of time and desire.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Making a cover for Sand and Blood</title>
    <link rel="alternate" href="https://d.moonfire.us/blog/2013/07/22/making-a-cover-for-sand-and-blood/" />
    <updated>2013-07-22T05:00:00Z</updated>
    <id>https://d.moonfire.us/blog/2013/07/22/making-a-cover-for-sand-and-blood/</id>
    <category term="graphics" scheme="https://d.moonfire.us/categories/" label="Graphics" />
    <category term="sand-and-blood" scheme="https://d.moonfire.us/tags/" label="Sand and Blood" />
    <category term="tutorial" scheme="https://d.moonfire.us/tags/" label="Tutorial" />
    <content type="html">&lt;p&gt;I love making things. There is something about being able to point to something (electronically or literally) and be able to say "I did this." I get it every time I run a program I write, read one of my old stories, or point to a bookshelf that I made years ago. Yes, I constantly see the flaws in it, but most other people don't seem to notice, so I think I'm getting better at it.&lt;/p&gt;
&lt;p&gt;When I decided to make the cover for &lt;em&gt;Sand and Blood&lt;/em&gt;, it was a chance to have fun and create a cover for the book. I know that my preferred type of cover won't work at this point, but there are actually multiple parts to creating a cover. My inability to draw and paint a cover is just one fraction of the greater whole.&lt;/p&gt;
&lt;p&gt;I also like helping others and getting help myself. At work, I mentor others in programming techniques and design, but I also learn constantly from others. But, I don't work well with classes and the such. Instead, I prefer tutorials and the power of &lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt; to learn. Give me ideas or suggestions.&lt;/p&gt;
&lt;p&gt;This is a writeup of how I made the cover. It's in a partial tutorial form, mainly with some screen shots to show what I've done. It won't be step-by-step, though, so it isn't what I call a proper tutorials.&lt;/p&gt;
&lt;p&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h1&gt;Programs&lt;/h1&gt;
&lt;p&gt;The starting point is the programs. While I'm capable at Photoshop and Illustrator, along with probably a dozen other graphics programs, I decided to stick with a limited number of programs and get really good at them. In my case, I use &lt;a href="http://www.gimp.org/"&gt;Gimp&lt;/a&gt; and &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt; for a number of reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They are Open Source Software (OSS)&lt;/li&gt;
&lt;li&gt;They run on every platform I use (Windows, Linux)&lt;/li&gt;
&lt;li&gt;They both have great communities&lt;/li&gt;
&lt;li&gt;They don't cost me anything (I do donate to OSS projects though)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In general, I use Inkscape to create covers. Because it is a vector-based program, it handles scaling and resizing a lot better than Gimp does. It also avoids some of the artifacts with the text when I create a cover at full size (2,500 pixels or greater) and then scale down to a proper thumbnail (say 300 pixels).&lt;/p&gt;
&lt;h1&gt;Sizes and Arrangement&lt;/h1&gt;
&lt;p&gt;I'm working on both a print and ebook version of &lt;em&gt;Sand and Blood&lt;/em&gt;, so I have to take both into consideration while creating covers. For print books, the most common format in the US is the trade paperback size. This is the taller of the two basic sizes and the most common you'll see from self-publishers.&lt;/p&gt;
&lt;p&gt;I'm somewhat of a geek and &lt;em&gt;love&lt;/em&gt; the ISO paper standard (the math behind it is sexy). I know (being based in the US) that ISO paper sizes are rare, but that still doesn't mean I can't like them. The Print on Demand (POD) printer I'm planning on using does have ISO paper sizes and A5 is very close to the trade paperback format. Naturally, I'm going to pick that for the size of the printed book. It also means that the cover is going to use the A5 ratio (though I suspect almost no one will notice unless it's pointed out).&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
      Size
    &lt;/th&gt;
&lt;th style="text-align: right;"&gt;
      Metric
    &lt;/th&gt;
&lt;th style="text-align: right;"&gt;
      Imperial
    &lt;/th&gt;
&lt;th style="text-align: right;"&gt;
      Ratio
    &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
      Trade
    &lt;/td&gt;
&lt;td style="text-align: right;"&gt;
      152.4 x 228.6 mm
    &lt;/td&gt;
&lt;td style="text-align: right;"&gt;
      6.0 x 9.0 in
    &lt;/td&gt;
&lt;td style="text-align: right;"&gt;
      0.666
    &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
      A5
    &lt;/td&gt;
&lt;td style="text-align: right;"&gt;
      148.0 x 210.0 mm
    &lt;/td&gt;
&lt;td style="text-align: right;"&gt;
      5.8 x 8.3 in
    &lt;/td&gt;
&lt;td style="text-align: right;"&gt;
      0.705
    &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;The other component to printed books is the size of the spine. There are a couple ways of handling it, but since I'm aiming toward a wrap-around cover, I need to take that into account when I figure out the actual size of the cover.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sand and Blood&lt;/em&gt; is about 68,808 words before I get it back from the editor. Using an average of 250 words per page, this means the book will be about 276 pages. Using a random &lt;a href="http://www.selfpublishing.com/design/production-center/spine-width-calculator/"&gt;spine calculator&lt;/a&gt;, it comes out to 13.7 mm (0.539 in). I use a rough estimate because the typesetting isn't quite done at this point (I haven't gotten through the editor), so I'm going to pad the sizes as I go.&lt;/p&gt;
&lt;p&gt;Taking everything in above, the front cover is going to be 148 x 210 mm and the entire cover, including spine, would be 311 x 210 mm (actually, the math says 309.7 mm, but I'm bumping it up just in case).&lt;/p&gt;
&lt;h1&gt;Ratios&lt;/h1&gt;
&lt;p&gt;The last major component to the covers I'm making is where I'm putting the title and byline. This is optional for most people, but I really like it when the titles all line up. After hundreds of hours of sorting books (as penalty chores), it's the little things that really appeal to me. So, when working on &lt;a href="http://d.moonfire.us/fiction/casting-call"&gt;Casting Call&lt;/a&gt;, I came with a ratio on the cover to place everything. Naturally, given my geekish nature, it is based on the Golden Mean (1.618).&lt;/p&gt;
&lt;p&gt;The text on the cover verses pure image is with a 1:1.618 ratio. Of the "1", it is split 1:1.618 with the title being the larger section and the byline being the smallest part. If we shuffle this around a little bit, we get these expressions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;bylineHeight: 1&lt;/li&gt;
&lt;li&gt;titleHeight: 1.618 * bylineHeight&lt;/li&gt;
&lt;li&gt;totalTextHeight: (1 + 1.618) * bylineHeight&lt;/li&gt;
&lt;li&gt;totalHeight: (1 + 1.618) * totalTextHeight&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Expanding this out, I'll get the following heights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;textHeight: totalHeight / 2.618&lt;/li&gt;
&lt;li&gt;titleHeight: 1.618 * textHeight / 2.618&lt;/li&gt;
&lt;li&gt;bylineHeight: textHeight / 2.618&lt;/li&gt;
&lt;li&gt;graphicsHeight = totalHeight - titleHeight - bylineHeight&lt;/li&gt;
&lt;li&gt;textHeight (again): 1.618 * (totalHeight / 2.618) / 2.618&lt;/li&gt;
&lt;li&gt;bylineHeight (again): (totalHeight / 2.618) / 2.618&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Putting in the height of 210 mm, I get this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;titleHeight = 49.57 mm&lt;/li&gt;
&lt;li&gt;bylineHeight = 30.64 mm&lt;/li&gt;
&lt;li&gt;graphicsHeight = 129.79 mm&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Blocking everything off&lt;/h1&gt;
&lt;p&gt;&lt;a class="thumbnail" href="http://d.moonfire.us/files/2013/07/cover-002.png"&gt;&lt;img src="/assets/cover-002-300x163.png" alt="cover-002" width="300" height="163" class="alignright size-medium wp-image-3152" /&gt;&lt;/a&gt;Now that I have all of our sizes and ratios, I can start actually making the cover. I start with creating an Inkscape document with the proper size. I also create a number of guidelines to block out the regions of the page.&lt;/p&gt;
&lt;p&gt;After a lot of years of being unable to do math properly, I set up the first layer to have some notes on the sizes I'm using. Just in case I need to know what numbers I was using then.&lt;/p&gt;
&lt;p&gt;This is a wrap-around cover, so the right side will be the front cover and the left will be the back. The middle section is the spine. I add labels to the various sections, just to make it easier since I frequently get interrupted at home while doing stuff like this.&lt;/p&gt;
&lt;p&gt;To make things a little easier, I create a couple extra layers.&lt;/p&gt;
&lt;p&gt;&lt;a class="thumbnail" href="http://d.moonfire.us/files/2013/07/cover-004.png"&gt;&lt;img src="/assets/cover-004-300x163.png" alt="cover-004" width="300" height="163" class="alignright size-medium wp-image-3159" /&gt;&lt;/a&gt;The first is the create various screens and masks. This makes it easier to focus on "just" the front cover verses paying attention to the cover as a whole. We do this by creating a "screen" which hides everything but the front cover. This will be called "Front Screen" and it won't have any contents.&lt;/p&gt;
&lt;p&gt;I'm also going to create an error layer. This just has a bright purple background and will tell us if we have some area on the cover we haven't covered yet.&lt;/p&gt;
&lt;p&gt;The third layer (Front Sizing) is to make it easier to export the front cover from inside Inkscape. When I export the front, we just activate that layer, select all (Control A), and then export the bitmap.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create the Front Screen layer on top of the notes layer.&lt;/li&gt;
&lt;li&gt;Create the Error layer below the notes&lt;/li&gt;
&lt;li&gt;Create the Front Sizing layer below everything&lt;/li&gt;
&lt;li&gt;Activate the Front Sizing layer&lt;/li&gt;
&lt;li&gt;Create a new box somewhere and use the toolbar to set the X, Y, Width, and Height manually. Once you enter the values, it should be a plain box where the cover would be.
&lt;ul&gt;
&lt;li&gt;X: 161.7 mm (148 mm plus the spine of 13.7 mm)&lt;/li&gt;
&lt;li&gt;Y: 0 mm&lt;/li&gt;
&lt;li&gt;Width: 148.0 mm&lt;/li&gt;
&lt;li&gt;Height: 210.0 mm&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Duplicate the box (select it and Control-D)&lt;/li&gt;
&lt;li&gt;Move the duplicate to the Front Screen layer (Control-PageUp a few times)&lt;/li&gt;
&lt;li&gt;Activate the Front Screen layer&lt;/li&gt;
&lt;li&gt;Create a huge box that covers everything on the document&lt;/li&gt;
&lt;li&gt;Move the huge box down to the bottom (from the menu if you want)&lt;/li&gt;
&lt;li&gt;Select the huge box and the duplicated box you put in the Front Screen layer&lt;/li&gt;
&lt;li&gt;Subtract the one box from the other (Control-Minus or Path / Difference). This should create a large box with a hole in it that only shows the cover.&lt;/li&gt;
&lt;li&gt;Make the huge box with a hole's color to white, this will match the bulk of the websites your cover will be shown.&lt;/li&gt;
&lt;li&gt;Lock and hide the Front Screen. Whenever you want to see the cover only, just unhide the front screen.&lt;/li&gt;
&lt;li&gt;Activate the Error layer&lt;/li&gt;
&lt;li&gt;Draw a random box and use the settings to control its dimensions:
&lt;ul&gt;
&lt;li&gt;X: 0 mm&lt;/li&gt;
&lt;li&gt;Y: 0 mm&lt;/li&gt;
&lt;li&gt;Width: 311 mm (or whatever the width of your document)&lt;/li&gt;
&lt;li&gt;Height: 210 mm&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Change the fill to bright purple&lt;/li&gt;
&lt;li&gt;Lock the Error layer&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;At this point, I just have a great big purple rectangle on the screen. This is useful when we're working so we can tell where our cover doesn't quite line up on the edges or if we're missing something.&lt;/p&gt;
&lt;p&gt;The Front Sizing layer won't be visible at all. You'll notice that I didn't say hide or lock it. Inkscape won't let you select if the layer is hidden or locked and we need to be able to select to do an easy export of the front cover.&lt;/p&gt;
&lt;h1&gt;Text&lt;/h1&gt;
&lt;p&gt;&lt;a class="thumbnail" href="http://d.moonfire.us/files/2013/07/cover-005.png"&gt;&lt;img src="/assets/cover-005-300x163.png" alt="cover-005" width="300" height="163" class="alignright size-medium wp-image-3162" /&gt;&lt;/a&gt;Once I have everything blocked out, I start with the text layer. Mostly, I just put the text where I think its going to go but with the intent of moving it around until everything looks right. Because of that, I make each word of the title (Sand and Blood) separate text objects. Also keep in mind that printing has a bit of variance, so its best not to put anything right against the edge of anything (say about 4-5 mm from any edge) since the printing may cut it off.&lt;/p&gt;
&lt;p&gt;I do this on a dedicated Text layer which will be on top of everything but the screen.&lt;/p&gt;
&lt;p&gt;When creating the text, I found it is important that you use a good stroke with the fill. If you look at other covers, you'll notice that very few of them use a solid fill on the text without a stroke. If you do, it makes it harder to read the text with a background behind it.&lt;/p&gt;
&lt;p&gt;In this case, I'm using &lt;a href="http://www.dafont.com/underwood-champion.font"&gt;Underwood Champion&lt;/a&gt; because it has a nice rough edges and handles the glyphs I need. The font has a 0.4 mm stroke on it just to keep the text isolated. Over time, this changed through various fonts as I iteratively moved and shuffled things around. In the later images, the font is Impact with a 0.3 mm stroke.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: The black filled bowls for the spine are an artifact of Inkscape at the zoom that I use for screenshots. The final image won't have those.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It is important to note that this text is not the final. It is just to make sure all the elements are on the screen in the right size and proportions while figuring out the images. Don't get too hung up on the font choice or placement.&lt;/p&gt;
&lt;h1&gt;The background image&lt;/h1&gt;
&lt;p&gt;This is the fun (and frustrating) part. We're going to put in the image. With a properly designed background image, you'll find that this will be very easy. The more your image doesn't fit with the cover, the more you'll have to shift and move things around. In general, its a matter of finding the best combination of a good looking and the least amount of error space.&lt;/p&gt;
&lt;p&gt;I do the rough sizing and arrangement in Inkscape, mainly because it is easy to move things around and see them in context with the text. There are others who are good enough to do that in Gimp, but I'm not. So, this step is to figure out where we want to scale and where to crop.&lt;/p&gt;
&lt;p&gt;This is also the point where I have to be careful not to scale up the image too far. The print cover is at 300 dpi. This is very important because an image that looks good on the screen (72-90 dpi) will look fuzzy in print.&lt;/p&gt;
&lt;p&gt;My source image is 2,800 x 4,200 pixels. This gives me a fair amount of flexibility if I have to scale or shift things around. While I &lt;em&gt;can&lt;/em&gt; scale it to the point its less than 300 dpi, the further I get below that point, the worse the image will look like.&lt;/p&gt;
&lt;p&gt;&lt;a class="thumbnail" href="http://d.moonfire.us/files/2013/07/cover-006-scaled.png"&gt;&lt;img src="/assets/cover-006-scaled-300x202.png" alt="cover-006-scaled" width="300" height="202" class="alignright size-medium wp-image-3165" /&gt;&lt;/a&gt;The first attempt at the image is one that just fills the front page with the image I got. This image would great if I was &lt;em&gt;only&lt;/em&gt; doing an ebook. It is the image as Mr. Howard intended and it fits well.&lt;/p&gt;
&lt;p&gt;The drawback is the printed version. When you look at it including the back cover, there is a lot of purple space that I have to fill in with something. I could go with the simple approach of making everything black, but I always felt it looked less than professional. There are very few books that have photographic or illustrated covers with solid color backs.&lt;/p&gt;
&lt;p&gt;&lt;a class="thumbnail" href="http://d.moonfire.us/files/2013/07/cover-007-scaled.png"&gt;&lt;img src="/assets/cover-007-scaled-300x202.png" alt="cover-007-scaled" width="300" height="202" class="alignright size-medium wp-image-3166" /&gt;&lt;/a&gt;This second version is the natural scale of the image at 300 dpi. As you can tell, the image goes along the spine and a decent amount into the back of the cover. Since this is 300 dpi, I don't want to make it much larger otherwise the print version will suffer.&lt;/p&gt;
&lt;p&gt;The actual answer is somewhere in between. That is more of an art form to find the right balance of color, content, and composition. You'll see later, I made the girl more central so the peak of her head lines up with the small "and".&lt;/p&gt;
&lt;p&gt;Overall, this is probably the best I'll be able to get without ruining the image. The hard part is figuring out what to do with that last part of the back cover. Fortunately, back covers are usually covered in a blurb and other elements, so we'll be able to cheat a bit there.&lt;/p&gt;
&lt;p&gt;&lt;a class="thumbnail" href="http://d.moonfire.us/files/2013/07/cover-007-front-scaled.png"&gt;&lt;img src="/assets/cover-007-front-scaled.png" alt="cover-007-front-scaled" width="210" height="298" class="alignright size-full wp-image-3167" /&gt;&lt;/a&gt;One thing to consider while working with wrap-around covers is to occasionally look at the front cover too. This is important because that is the image we'll see in the ebook store, but also what people will see on a shelf (in the chance you get your book face forward).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;As I mentioned before, this is really easy to make this view. Make the "Cover Sizing" layer active and select all. Inkscape's Export dialog will automatically change it from "Page" to "Selection", but when it exports, it will use the visible part of the image. So, instead of getting a solid color box (which is what is selected), I get the complete front cover.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In this case, I think the composition of the front cover is pretty balanced here. Chimípu, the woman on the cover, is somewhat left of the front cover (like most fantasy books these days). From &lt;a href="http://d.moonfire.us/blog/2013/07/15/sand-and-blood-cover"&gt;last post&lt;/a&gt;, I made more of her visible from feedback I got.&lt;/p&gt;
&lt;p&gt;The title and the byline help balance out the image. I added the series title and volume in the upper right to help with the balance. I also made it black (though it will lighten up later), so draw less attention to it instead of the title. We want the reader to see the woman first, title second, and then the byline so that will pretty much tell us how to arrange the front cover.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: When I commissioned this piece, I should have insisted on a lot more on the left side of the image. But, for an artist who is used to doing portraits, it kind of goes against their sense of composition and balance. So, it "feels wrong" to have so much dead space.&lt;/em&gt;&lt;/p&gt;
&lt;h1&gt;Getting rid of that purple&lt;/h1&gt;
&lt;p&gt;&lt;a class="thumbnail" href="http://d.moonfire.us/files/2013/07/cover-016.png"&gt;&lt;img src="/assets/cover-016-300x202.png" alt="cover-016" width="300" height="202" class="alignright size-medium wp-image-3186" /&gt;&lt;/a&gt;So, we still are working on getting rid of the purple (and I've tweaked it a few more times over my lunch break). There are a few ways of doing this. Each one has its own drawbacks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scale the image larger and just span it. This works up to the point I start dipping below the 300 dpi layer. And, since the main character is in the center, her face moves over to the spine and we're just looking at part of her face (and none of the nifty fighting spike).&lt;/li&gt;
&lt;li&gt;Scale the left side of the image out to fit the rest. This is actually what I planned on doing originally, but it skewed the image so badly that it looked horrible. Plus, it changed the nice curve of the background into a flat section with a sharp line where it changed. It wasn't pretty and I won't make screenshots of that.&lt;/li&gt;
&lt;li&gt;Cover it up.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Actually, covering it up is my plan at the moment. This benefits me in a couple ways. One, it is &lt;em&gt;very&lt;/em&gt; hard to read text on a noisy background. While there are readers out there that have sharp eyes and the ability to tell the difference between #223344FF and #223544FF, I can't. If you look the back of most books, you might notice they either have a flat shaded gradient over the image or an opaque image that gives a "flat" area to put the blurb.&lt;br /&gt;
&lt;a class="thumbnail" href="http://d.moonfire.us/files/2013/07/cover-017.png"&gt;&lt;img src="/assets/cover-017-300x202.png" alt="cover-017" width="300" height="202" class="alignright size-medium wp-image-3188" /&gt;&lt;/a&gt;I decided to start with a slightly burnt paper background. It seemed like an easier way and didn't quite look as plain as a straight gradient. The paper came from &lt;a href="http://www.istockphoto.com/stock-photo-13879237-aged-paper.php"&gt;iStockPhoto&lt;/a&gt; (I had some credits) and I basically trimmed off the white space using Gimp so it had a transparent edge. From there, I inserted it into Inkscape using File / Import... and arranged it to take.&lt;/p&gt;
&lt;p&gt;In the above image, I created a placeholder blurb and also a white space for the UPC code. This way, I know where everything lines up as I fill in the gaps.&lt;/p&gt;
&lt;h1&gt;Iterative development&lt;/h1&gt;
&lt;p&gt;If you can't tell from the progression of images, things change constantly. Like writing, the editing process will result in a different font, layout. The background image will shift around until I'm happy.&lt;/p&gt;
&lt;p&gt;The important part is to realize this isn't something that should be done in a single day. Sleep on it, play around. Let it sit for a few days and then come back. Creating a cover works just like writing and editing. It takes time and experience.&lt;/p&gt;
&lt;h1&gt;Mistakes&lt;/h1&gt;
&lt;p&gt;&lt;a class="thumbnail" href="http://d.moonfire.us/files/2013/07/cover-017-front.png"&gt;&lt;img src="/assets/cover-017-front-211x300.png" alt="cover-017-front" width="211" height="300" class="alignleft size-medium wp-image-3193" /&gt;&lt;/a&gt;No cover is perfect and this one isn't either. And being the one who makes it, I'm probably going to be my worst critique. And I'm also rather opinionated of what I like in book covers.&lt;/p&gt;
&lt;p&gt;There were a few things, moving forward, I can do better next time. The biggest is the cover. The commissioned image was actually an impulse purchase of mine, and it was given to someone who didn't have a lot of time before they ran off to a convention (actually, the commission was to pay for said trip). My original request was a bit too vague, but I also wasn't picky enough about what I needed during the process.&lt;/p&gt;
&lt;p&gt;One of the reasons that I want to learn how to draw is to make my own covers because I'm passionate about these topics and I can redo it if I didn't get it right. But, my skill at drawing isn't sufficient for this and I'm not going to get a second commissioned image for this cover. Instead, I decided to work with what I got and I think I did a decent job of it.&lt;/p&gt;
&lt;p&gt;The key part is learning what made my life difficult this time and make sure the next commissioned cover works better.&lt;/p&gt;
</content>
  </entry>
</feed>
