smfontフォーマット(b4以降)
まだ案なので確定ではないです
概要
ルール
- #から始まる行はコメント行
- 文字コードはUTF-8(ANSIでも読めるようにはする)
- テキスト記述ルール
[タイトル]
/特殊項目
*項目=内容(一行)
*項目<
内容(複数行)
>
- 複数行項目の場合、内容の両端に含まれるタブやスペースは削除される
- 極力一つの項目に対して内容も一つにする
- 途中で値変更が可能
font=ms gothic
list=あいうえお
font=ms mincho
list=かきくけこ
タイトル
- 定義内に同じタイトルを2つ以上記述してはならない
- 背景色が赤の項目は必須項目
[out]
[html]
[option]
[default]
- パラメータ省略時の内容を指定
- これすら省略した場合はソフトの内部で指定している値になる
[_shared1]
[_shared2]
[_japanese 16px]
[_japanese 24px]
- 各言語ごとの内容を定義
- [out]で定義している名前であること
[out]
言語名
- 生成する言語名を指定(サイズ違いは別に書く)
- 行区切り
例:
_shared1
_shared2
_japanese 16px
_japanese 24px
(以下省略)
[html]
内容
- html記述が可能
- UTF-8を直接扱ったら文字化け起こしたので一旦ANSI文字に直している
- ♥等の記号は♥等を利用して入力すること
例:
<b>HTML記述が可能です</b><br />改行も可能
[option]
custom
=
0か1
例:
custom
=
0
fontfile
=
フォントファイル名
- インストールしていないフォントを利用できるようにする
- ここで指定することによって、
font
でインストールしていないフォント名が指定できるようになる
例:
fontfile
=
meiryo.ttc
[default]
font
=
フォント名
例:
font
=
メイリオ
fontstyle
=
フォントスタイル
0 |
なし |
1 |
太字 |
2 |
斜体 |
4 |
下線 |
8 |
取り消し線 |
例:太字&斜体
fontstyle
=
3
size
=
出力サイズの倍率(%)
- 高解像度出力時などに利用する
- 境界線の太さ、ボケ具合、文字サイズに影響する
- 基準サイズは1文字あたり32x32ピクセル
例:1.5倍
size
=
150
cntx
=
横に並べる文字の数
例:
cntx
=
8
cnty
=
縦に並べる文字の数
- たとえば
cntx
=
8
、
cnty
=
8
の場合、合計64文字並べることが出来る
例:
cnty
=
8
fontsize
=
文字のサイズ
- 16pxの方は21、24pxの方は26を指定するとちょうどいい大きさになる
例:
fontsize
=
21
textcolor
=
文字色
- 0が黒、255が白の256段階
- グラデーションタイプの上部または下部を選んだ場合、残り半分はこの色になる
例:
textcolor
=
224
textstyle
=
グラデーションのタイプ
0 |
グラデーションなし |
1 |
縦にグラデーション |
2 |
上半分グラデーション |
3 |
下半分グラデーション |
4 |
縦に2回グラデーション |
例:
textstyle
=
1
gradation1
=
グラデーション開始部の色
例:
gradation1
=
0
gradation2
=
グラデーション終了部の色
例:
gradation2
=
255
border
=
境界線の太さ
- 仕様上0でも完全に境界線がなくなるわけではない
- 大きいほど極端に出力速度が遅くなる
例:
border
=
2
bordercolor
=
境界線の色
例:
bordercolor
=
0
borderblur
=
ぼやけ具合
例:
borderblur
=
1
[_shared1],[_shared2],[_japanese 16px],[_japanese 24px],…
/グループ名
- たとえば_japanese 16px [AAA] 16x16.pngの場合、AAAに相当する部分を定義する
- 次のグループ名定義までここで指定したグループが継続される
例:
/kanji 1
type
=
文字の種類
0 |
英数字用、文字コード0x00から0xFFまで順に出力する |
1 |
_msic用 |
2 |
マルチバイト文字用 |
32以上 |
Unicodeの文字コードで指定した数値から入りきる文字分出力する |
例:英数字用の定義
type
=
0
例:ひらがな・カタカナ用の定義
type
=
12288
- 12288は、16進数で表すと0x3000であり、Unicodeの文字コードU+3000から読み取る仕様である
listtype
=
文字一覧の読み取り方
- 出力する文字とテキストに記録される文字が違う場合に利用する
-
type
が2以外の場合無視される
0 |
リストは1文字ずつ並んでいる |
1 |
リストは描画文字⇒出力文字の順で並んでいる |
2 |
将来バージョン用予約値 |
例:
listtype
=
0
width
=
文字幅の定義の有無
- 1の場合、文字幅を取得してテキストに出力する
- おもに英数字用
例:
width
=
1
flip
=
反転方向
0 |
反転しない |
1 |
X方向に反転する(左右逆) |
2 |
Y方向に反転する(上下逆) |
3 |
180度回転する |
例:
flip
=
1
list
=
文字
- この命令によって描画するので必須項目
- 出力する文字を定義する
- 基本的に複数行
- 定義不要の場合は0
例:
list
<
亜哀愛悪握圧扱安暗案以位依偉囲委
威尉意慰易為異移維緯胃衣違遺医井
(省略)
>
例:
listtype
が1の場合
list
<
ABCDEFGHIJKLM
NOPQRSTUVWXYZ
(省略)
>
例:
type
が2以外の場合
list
=
0
text
=
内容
- 出力テキストを直接記述
- Baseline等を現段階ではサポートする気がないのでここで記述する
例:
text
<
LineSpacing=22
Top=9
Baseline=24
DrawExtraPixelsLeft=2
DrawExtraPixelsRight=5
>