WPaint3の大雑把な使い方

最終更新日 2001/09/20


描き方


 WPaint3は通常のペイントツールと違い、画像のスクロールはマウス右ボタンを押したまま
カーソルを動かします。このとき、マウスのホイールを回すと、拡大・縮小します。
 また、中央ボタンクリックで、カーソル位置の色を取得できます。このとき、
”オプション”→”パレットの自動選択”が、チェックされていれば一致するパレットを選択します。



ステータスの設定

識別子 名前です。ソースファイル出力するときの名前(の一部)になります。
パレット パレット番号ですね。ひとつの画像にひとつ指定できます。
フォント単位の幅です。
高さ フォント単位の高さです。
横分割 横に指定数分割します。幅/横分割が一コマのサイズになります。
縦分割 縦に指定数分割します。高さ/縦分割が一コマのサイズになります。
横余白 プログラムであたり判定の余裕に使えます。まったく違う用途に使ってもかまいません。なお、エディタ上では何も起こりません。
縦余白 同上



アニメーションのテスト

を押すと、アニメーションのテストができます。結構手抜きですけど。
まず、動作パターンを記述します。0102という風に順番にフレーム番号を書いていくのですが、
こ番号は、たとえば縦横3分割した場合以下のように割り当てられます。

0 1 2
3 4 5
6 7 8

とはいえ、今のところ番号は0〜9までなんです。まぁ、そのうち直します。
そして、”動かす”を押せば動きます。
あと、x1、x2、x4ボタンを押すと拡大されます。
拡大すると(もしかするとしなくても)はみ出て見えなくなるかもしれません。



リストへ追加・更新

リストに追加しないと、保存ができません。また、絵やステータスを変更しても
更新を押さないと変更した分が保存されません。
リストから削除するにはDelキーを押してください。



C言語ソースファイル出力について

使い方

 まず、出力形式を設定します。出力→C言語ファイル出力設定
を押して、フォーマット欄に出力形式を記述します。
 出力形式を設定済みであれば(.wccを開くときに同名の.frmファイルが
あれば自動的に設定されます)、出力→C言語ファイル出力を押すだけ
で、出力されます。
 なお、出力されるファイル名はファイル名+wcc.hになります。
たとえばaaa.wccと保存されていればaaawcc.hになります。
そのため、ファイル名が長くなりすぎる場合がありますので、
気をつけてください。

出力形式について

出力されるファイルの構成は
・画像データ(圧縮にチェックが入っていれば圧縮される)
・パレット(パレットの出力がチェックされていれば)
・画像データのステータス(画像のサイズ・パレット番号等々。任意に設定可能。)
となります。


bmpファイル出力

メインメニューの”出力”→”編集中の画像を.bmpで出力”で編集中の画像を
bmp出力できます。
(※編集中の画像とはいっても、更新ボタンを押した直後しか出力できません。)
メインメニューの”出力”→”全ての画像を.bmpで出力”で全ての画像を
bmp出力できます。
色数は16色のみです。
識別子+”.bmp”というファイル名で.wccファイルと同じ場所に作成されます。



出力形式詳細

画像データ

画像データはbmp_識別子として、出力されます。
たとえば、リストにchar1の画像データがあれば

unsigned char bmp_char1[] = { 0x01,0x05,0x85・・・
・・・ };

といった感じで、全ての画像データが出力されます。
圧縮のチェックを入れてなければ、
そのままwwc_font_set_colordata関数に渡せます。
圧縮した場合は付属のサンプルを参考にしてください。

※圧縮とかいいながら、元よりサイズが大きくなる場合も
あります(全体的にはそれなりに減るので)。

パレットデータ

パレットデータは以下のように出力されます。

unsigned short ファイル名_palette[] = { 0x000,0x111,0x222・・・・
・・・};

パレットデータはwwc_palette_set_color関数にそのまま渡せますから、

int x,y,i;
for(y = 0,i = 0;y < 16;++y)
 for(x = 0;x < 16;++x,++i)
  wwc_palette_set_color(y,x,ファイル名_palette[i]);

とすればいいと思います。

ステータスデータ

画像データのステータスは、設定されたフォーマットに基づいて出力されます。
といっても、設定されたフォーマットの文字列の予約語部分(下の予約語表参照)が
各画像のデータ値に置き換わるだけです。
簡単な例をあげると、

例その1 - フォント単位のサイズデータ

int g_$ID$_Width = $Width;
int g_$ID$_Height = $Height;
     ↓
int g_house_Width = 4;
int g_house_Height = 4;
int g_tree_Width = 5;
int g_tree_Height = 6;
     ・
     ・
     ・

例その2 - ドット単位のサイズデータ

int g_$ID$_Width = $Width*8;
int g_$ID$_Height = $Height*8;
     ↓
int g_house_Width = 4*8;
int g_house_Height = 4*8;
int g_tree_Width = 5*8;
int g_tree_Height = 6*8;
     ・
     ・
     ・

例その3

struct wwt_char wcc_$ID = {
$PalNum,$Width,$Height,$FontData,$Count
};
     ↓
struct wwt_char wcc_house = { 0,0,4,4,bmp_house,2};
struct wwt_char wcc_tree = { 0,0,5,6,bmp_tree,2};
     ・
     ・
     ・

といった感じになります。おそらく、#defineも使えると思います。
各値に文字を追加したい場合は、手前であればそこにつなげて書きます
(例 abc_$ID → abc_house)。後ろのつけたい場合は$を書いてから
にしてください(例 $ID$_abc → house_abc)。

なお、フォーマットが設定されている場合、WPaint3形式(.wcc)で保存
するときに同名で拡張子が.frmのファイルにテキスト形式で保存されます。
また、WPaint3形式(.wcc)を開くときにこのファイルがあれば、自動的に
ロードされますので、あらかじめ自分でファイルを作っておくこともできます。


予約語表
$ID 識別子
$PalNum パレット番号
$Width 1コマ分の横のFont数(幅/横分割)
$Height 1コマ分の縦のFont数(高さ/縦分割)
$gWidth 横のFont数(幅)
$gHeight 縦のFont数(高さ)
$HBlank 横の余白
$VBlank 縦の余白
$Count 数(縦分割*横分割)
$FontData 画像データ。(char*)
$UnitName 拡張子を除いたファイル名(例 sample.wcc→sample)


もどる