Illust Logic Paint Save Data Format
Illust Logic
Paintのテキストセーブ形式の仕様に関する解説です
基本的にこのデータに無い内容は未定義とし,
実装依存部分とします
但し, 参考までにIllust Logic Paint Plus 1.00, Illust Logic Paint 3.05での挙動をそれぞれ[LP+], [LP3]として挙げておきます
(この部分は将来変更される可能性もあります)
基本ルール
- 空行(スペースすら含まない)及び『#』で始まる行については読み飛ばす
Illust Logic Paintではバージョン情報とデータの区切りのコメントを保存時に挿入しています
- サイズデータは必須,
残りのデータは任意ではあるが,
特定のデータを入れる場合にはその上の全てのデータを入れなければならない
また, 各ブロックを途中で終了してはならない
順序に従ったデータの要求はデータの種類が原理的に区別がつかないためです(ロード処理ではコメントなどは完全に無視しています,
あくまでメモ帳等で見るためだけです)
- データの区切りに許される区切り文字はカンマ,
ピリオド, スペースと改行(CR + LF)で, 前3者と改行は厳密に区別される
[LP+][LP3]
数値等以外の不正な文字は全てカンマと同等の区切り文字と解釈します
[LP3] Unix改行文字のLFのみでは仕様上Illust
Logic Paintでは読み込めません, 予めnkf, emacs等で変換して置いてください
- 標準拡張子は『.lpt』(モノクロ), 『.clt』(カラー)とする
[LP+][LP3]
拡張子末尾が『t』である場合(『.txt』含む)拡張子に関わらず読めるところまで(.lptでも色情報を読む可能性はあります)テキストデータ形式として読み込みます(それ以外はテキスト形式として読み込もうとはしません)
- 当然ながら,
データに異常がある場合の動作は保証しない
データブロック構成
- サイズデータ (1行 x 4データ)
順に横方向のサイズ(X), 縦方向のサイズ(Y), 数字セル(上)の最大高さ(H),
数字セル(左)の最大幅(W)
H, Wの各値がデータと矛盾する場合の動作は未定義とします
[LP+] H, Wの項目は無視され,
他のデータから計算されます
[LP3] H, Wを越える数字行がある場合,
右側から配置されて余った部分は無視されます
[LP3] H, Wが大きすぎる場合は一旦何処かの数字を数値入力モードで弄れば修正されるはずです(自動では直しません)
- 数字データ (X行 x (1 ~ H)データ + Y行 x (1 ~
W)データ)
ロジックを表示したときの各列(行)の数字を上から下(左から右)にデータを区切って入力します
此処の解釈はデータ入力モードと同様のルーチンで処理されるので0は無視されます
データがH, Wに満たないところは0で埋められていると仮定します
データがH, Wを超えたときの動作は未定義とします([LP3] 1.の通り)
- セルデータ (Y行 x X列)
ロジックの各セルの色をロジック表示と同じ位置関係で区切って入力します
0は白, 1~8はパレット(5.)の各色に対応しています
9以上や負数を入れた場合の挙動は未定義です([LP3] エラー終了するでしょう)
2.と違ってデータは0を認識します
[LP+][LP3]
各行の不足分は右に0を付加, 余剰分は無視します
- 数字状態データ (X行 x (1 ~ H)データ + Y行 x
(1 ~ W)データ)
ロジックの各セルがチェックされている時は1(True),
そうでないときには0(False)を2.と同じ配置で入力します
実際に0, 1以外の数値が入っているときの動作は未定義です([LP+][LP3] 0以外の数値に解釈できる時は1と等価に扱います)
- パレットデータ (1行 x 8列, カラーのみ)
パレットの1~8の各色を8進数表記でBBGGRR 16進形式で表記します
パレット0(空白)は白固定で色設定は出来ません
16進の値として等価であれば頭の0の桁は省略できます
数値の頭には"0x"や"&H"のプリフィックスをつけてはいけません
HTMLの色表記の形式(RRGGBB)とは逆なので注意してください
この節が無い場合,
パレットはデフォルトのもので初期化されます
[LP3] VBのカラー表記(&H, &を除いたもの)で256色のパレット(使う人はいるのか?)やシステムカラーを設定できたりします([LP+]では出来ません)が,
互換性等は保証しません
- 数字色データ (X行 x (1 ~ H)データ + Y行 x (1
~ W)データ, カラーのみ)
2.と同じ配置で5.のパレットに従って色を入力します
データ中に出現する0の扱いは未定義です
[LP+] データ中の0は無視されます
[LP+] データ不足分は1で埋められ,
余剰分は無視されます
[LP3] データ中の0は無視されませんが,
本来設定出来ない色なので動作の保証は出来ません
[LP3] データ不足分を0で埋められてしまいますので上記の理由により不足は無いようにしてください
[LP3] データ余剰分はH, Wまでは読み込んでその列の数値を再設定するまでは内部的に保持してしまいますが,
本来設定すべきでないところなので動作の保証は出来ません(問題は無いはずですが…)
その他不明な点等がある場合には管理人にご連絡いただければある程度は説明します
実際にIllust Logic Paintに色々なデータを出力 /
入力させて確かめていただいても結構です