bmGlyph Help

(bitmap font generator)


* bmGlyph PRIVACY POLICY:

- Thank you for using our application!

We take your privacy very seriously, and we want you to feel comfortable using our app. Here is our privacy policy:

Our app does not collect any data from you, nor does it store any information that can track you or your activity. We do not have access to any personal information such as your name, email address, or location.

We do not use any third-party services that collect data about you. We do not sell or share any data with third-party companies or organizations.

* Toolbar menu:

- Open: Open a bmGlyph project in the current window.

- Save: Save the current project if it exists, without asking confirmation, or will save as a new file.

- Save as: Save the current project as a new file. (the saved-as project is now the one you edit in the current window)

- Save as copy: Save the current project as a new file. (a new window is opened with the saved-as project).

- Publish: Publish the project depending on the publish settings. (open the publish setting sheet).


- Select All: Select all glyph on the texture (red square around each glyph)

- Select Inverse: Inverse the current glyph selection

- Work on selected glyph(s) only: when this option is checked, changing the fill mode (texture / color / gradient) will only affect the selected glyph.


- Preview / Texture: Switch to the preview mode or to the texture mode. While in preview mode, you can drag & drop a background picture in the view.

- Preview text: Change the preview text for the available glyphs. You can use \n .

- xAdvance offset: Adjust yourself the glyphs advancement. This option allows to make nice effects, such as sticking each letters.

- xOffset and yOffset: adjust the final bounding box, as it should appear on a device. The bounding box appears in red, and is positioned like the cocos2d bounding box (same method). It allows to tune the result depending on what you want, and to be able to center your label easily when you code...

- 1536x2048 / 768x1024 / 640x960 / 320x480 / 640x1136: Load a background for the preview mode.

* You can also drag & drop your on background picture directly in the view.

- Color: Change the background color. It will also clear any existing background picture.

- Rotate: rotate the background picture by 90°.

- Save: Export the preview text in a PNG. Allows to write custom text and use it as sprite or for illustration without having to render it on a device.


* Fonts:

- Font name: Select the font. A Green color means bmGlyph has found kernings table, Black means no kerning.

- Search Filter: Filter the font list.

- Load ttf: Load a .ttf file which is not installed on your system.

- Font size: adjust the font size with the slider or textfield.

- Line height: manually set the line height, you can see the result under the preview mode if you use a \n for the preview text.

- Space width: manually set the space xadvance. ou can see the result under the preview mode if you use a space for the preview text.

- Fixed xAdvance: force the xdavance value for all chars, allows better HUD display for numbers.

- Auto x/y offsets: when checked, the shadow radius and offset and stroke size will automatically increase the xdavance offsets of each letters. this was the behavior until v1.9.2., for v1.9.3 and more, this checkbox is by default unchecked. Previously saved project will be loaded with this option checked.

- Trait : Normal / Bold / Italic / BoldItalic (…) - Choose the font trait.

- Use kernings: load kerning tables (kern format 0, and camp format 0 & 4 currently supported). Kernings are used in preview mode and will appear in the atlas file.

- Letters: Customize your letters...

- Charsets: Here you can quickly add the latin and latin-1 supplement charset, erase the current letters, add a custom range (1000 max or it won't be added), display a popup with a huge charset list where you can select any charset and add it to the current list.

- magic wand button: you can select letters in the letter textfield, then click on the wand : it will select the letters on the texture sheet.

- trashcan: clear the letters field


* Glyph Editor:

This editor allows you to adjust each glyph: the xOffset, yOffset and xAdvance. You can use it on any glyph (for exemple you can adjust each digit xAdvanced value), or on a custom image.


- Char: the glyph you selected. To select a glyph, right click on it, either on the texture sheet, or on the preview mode.

- Width / Height: width and height of the current glyph or image

- Add xOffset, yOffset, xAdvance: add a value to the default xoffset/yoffset/xadvance value. For a custom image, the default values are 0.

- Custom image: here you can only uncheck the box, it will remove the custom image and use the original glyph


* Adding a custom image:

Please keep in mind that you can’t resize the imported custom image, choose the correct size …

bmGlyph is not a sprite sheet editor (even if now with this option, it’s very close !), so you can only replace an existing glyph by a custom image, and you can’t only add an image. For exemple, you want to display the remaining lives in your game, you would only need to write a label with this string: #3. the glyph # would be your custom image, like a heart.

- adding a custom image:

Find your glyph on the texture sheet (hint: if you can’t find it, select it in the letters textfield and click on the magic wand: your glyph will be selected, it’s easy to find it).

Drag & drop you image on the glyph, a green square will appear around the current glyph, your glyph is immediatly replaced by your image.

Now you can switch to the preview mode and see the result. Use the Glyph Editor to adjust the image positioning and xadvance.


* Color Tools:

- Shadow: Add shadow to all glyphs. Change x and y offset, the shadow radius and the shadow color. Inner/Outer shadow, but not both at the same time.

- Stroke: Stroke all glyphs. Adjust the color and stroke size. Choose between gradient or color mode. Stroke can be center,inner or outer.

- Fill Mode:

- Transparency: Don't fill the glyph. If ever Shadow is enabled, glyphs will be filled with gray color.

- Color / Glossy: Fill with the selected color. Glossy: makes the color glossy (you will obtain a better result with dark colors).

- Texture: Drag & Drop a picture in the box, glyphs will be filled with this picture. Please try to load a small file, like 200x200 or it may be very slow to update….

- Gradient linear: Apply a gradient, choose the angle and the start/end colors.

- Gradient radial: Apply a radial gradient, set the center point with x and y

- Anti Alias: Draw with or without anti alias.


the gradient bar selector: double click on a circle to change its color, drag and drop a circle outside the bar to delete the control point. double click in the bar to add a control point.


- Shaded Material Filter: Produces a shaded image from a height field. Here is how the image is processed:

1. A mask to alpha filter is applied (for starting, you will want to remove the stroke, and use the white color in the ‘Fill mode’ option to produce a basic white letter output.

2. A height field filter is applied, you can adjust the parameter to increase/decrease the emboss effect

3. The shaded material is applied on the the height field image, you can adjust the ‘distance’ parameter to change the result as well.

note: To change the material image, just drop a new image on the default image (don’t use a huge image size or it will slow down everything)

With this effect, you can achieve almost what you want (sharp emboss, smooth emboss, any 3D material effect like plastics, glass, metals, etc…)


* Texture:

- Auto Size: Auto Size will adjust alone the width and height , and will try to fit all the glyph in it.

- Power of 2 only: when auto size is on, and if power of 2 is checked, the texture sheet will be only a power of two (from 2^5 (32) to 2^12 (4096)). If unchecked, size will be increased or decrease by 128 pixels (same behavior until v1.9.2).

- Width x Height: the output picture format. maximum is 4096x4096


- Transparency: transparent background, uncheck to use a background color.

- Background: This color won't appear in published picture, it allows only to work with the desired color…


* Publish Settings:

The publish setting will now appear as a sheet when you click on the Publish button (top of the window).

You can add as much as targets as you want. Keep in mind you work in the highest resolution.

Best practice is to configure the default target with the Directory Path, File Name, Suffix … Then to duplicate the current

target for the desired scale (ex: 50 to duplicate the current target with a 50% scale). A scale ratio reminder is displayed to help you…


You need to enter yourself the suffixes (-ipadhd, -ipad, @4x, -hd, @2x, etc…).

Force Font Face: can be left empty, it will use the default font name.


- Export format: Cocos2d, Corona (using .fnt font atlas, and hd extension), Sparrow (.fnt font atlas in xml, and @2x extension), Unity/ezgui (.txt font atlas and -hd), uvCoords (with top left or bottom left system, will calculate the uvCoordinates with the start and end coordinates on the texture, the size of the character, and the offsets/xadvance parameters), Sprite Kit (will create a <FileName>.atlas directory, please see the tutorial about sprite kit on bmglyph.com).

- SD Quality: interpolation quality when downscaling to SD format.

- Redraw when downscaling: when downscaling, bmGlyph will redraw the texture sheet with a new glyph size. it avoids bad round values and wrong offsets especially for the SD versions. Please note that the letters positions might be in different order on the texture. (stroke size, shadows, advanced offset and fixed advance parameter are also changed during that operation).


you can export only the texture or atlas file with the Texture and Coordinates checkbox.


Files will be exported as follow:

Texture: {PATH}/{FILE}{SUFFIX}.png

Coordinates: {PATH}/{FILE}{SUFFIX}.fnt (or .txt depending on the export format)


common problem: "check all target suffixes": you need to click on each target (under the target box), and set a valid suffix (CHANGE ME is not a valid one)


* Packing:

- Bounding Box (+ px): increase the bounding box of each char by X pixels around. (width += value * 2). the char will be centered. it allows to add new effect with other tools (deformations, outer glows etc…)

- Padding: adjust the padding between each glyph. Keep it at 2px or 4px is recommended while using the AutoSD feature.

- Sort Method: Manually change the way the glyphs are packed. Keep the default settings for better result. You can sort by letters as displayed in the settings.

- Reversed: Reverse or not the sort order. Default settings gives the better result.

- Refresh: Force a re-pack. Usually everything is auto-repacked…


- Align on Grid: don't use the best packing algorithm, but align the letters on a grid. You can set yourself the width/height of the letters. You will need to play with the size in order to have the best glyph size/grid size. This option is only needed if you have a basic bitmap font parser (no need to use a font atlas file). Anyway, the result might look strange depending on the fonts, as the kerning and advanced parameter won't be used.


------------------------------------------------------------------


How to use the published files in a cocos2d application:


- In order to use the -hd files (with the AutoSD feature), check that you have enabled the retina support in your AppDelegate.m :

if( ! [director enableRetinaDisplay:YES] )

CCLOG(@"Retina Display Not supported");


- Create a CCLabelBMFont and add it on your Layer:

CGSize size = [[CCDirector sharedDirector] winSize];

CCLabelBMFont *label = [CCLabelBMFont labelWithString:@"Preview text" fntFile:@"preview.fnt"];

// position the label on the center of the screen

label.position = ccp( size.width /2 , size.height/2 );

// add the label as a child to this Layer

[self addChild: label];


------------------------------------------------------------------


Legal Stuff:

DISCLAIMER

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


PERMITTED USE

You agree not to reproduce, duplicate, copy, sell this software.


Special Thanks:


--------------------


//icons & color

//This framework is free for every use, even for commercial project, but you need to credit me by linking to this page : http://www.webalys.com/design-interface-application-framework.php


--------------------


SFBInspectorPane:

Copyright (C) 2009 Stephen F. Booth <me@sbooth.org>

All rights reserved.


Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions

are met:

1. Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the

documentation and/or other materials provided with the distribution.

3. The name of the author may not be used to endorse or promote products

derived from this software without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR

IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.

IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,

INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT

NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,

DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY

THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF

THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.



-------------------


gradientSelector:

Copyright (c) 2011, Alexandre Truppel

All rights reserved.


Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright notice in the documentation and/or other materials provided with the distribution.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


---------------------

// AppSandboxFileAccess.h

// AppSandboxFileAccess

//

// Created by Leigh McCulloch on 23/11/2013.

//

// Copyright (c) 2013, Leigh McCulloch

// All rights reserved.

//

// BSD-2-Clause License: http://opensource.org/licenses/BSD-2-Clause

//

// Redistribution and use in source and binary forms, with or without

// modification, are permitted provided that the following conditions are

// met:

//

// 1. Redistributions of source code must retain the above copyright

// notice, this list of conditions and the following disclaimer.

//

// 2. Redistributions in binary form must reproduce the above copyright

// notice, this list of conditions and the following disclaimer in the

// documentation and/or other materials provided with the distribution.

//

// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS

// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED

// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A

// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT

// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED

// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR

// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF

// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

———————————

CocoaFob is distributed under the BSD License http://www.opensource.org/licenses/bsd-license.php

Copyright © 2009-2011, PixelEspresso. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.