■立ち絵の仕組み
画像ファイルというものは、必ず四角形でなければなりません。
では、なぜノベルゲームの立ち絵が複雑な形で背景と重ね合わせられているかというと、四角形の画像の中に描かれたキャラの余計な部分を透明にして表示しているからです。
←こんな感じだと思ってください。
水色の所がキャラクター、黄緑色の所が余計な部分です。
■画像タグ
そこで登場するのが、透過形式の指定を行う
「画像タグ」です。
画像タグにはアニメーションの指定もありますが、今回は触れません。
画像タグは、画像表示系の命令文を書く時にファイル名の左側に記述します。
":(ここに透過形式);(ファイル名)"
まず、一番左側には「:」を書きます。半角のコロンです。
そのすぐ隣に透過形式を書きます。
透過形式は、アルファベット一文字で記述します。
「l」…(leftup)
「r」…(rightup)
「a」…(alpha)
「m」…(mask)
「c」…(copy)
他にもRGB指定やパレット色指定などもありますが、とりあえずこれで十分です。
そして透過形式の右には「;」(半角セミコロン)を書き、その右から画像ファイル名を記述します。
■透過形式
透過形式を一つずつ説明して行きましょう。
「l」…(leftup)
これは、画像の一番左上のピクセルの色を透明色に指定する透過形式です。
つまり上の画像では左上は黄緑色なので、黄緑色が透明色になり、結果として表示されるのは水色の部分だけということになります。
「r」…(rightup)
今度は、一番右上のピクセルを透明色に指定する透過形式です。
「a」…(alpha)
アルファブレンドとも言い、上二つのように一色による透明色指定ではなく、マスクとなる画像をグレースケール(白黒)で用意し、その色段階具合で透明になる場所と透明にならない場所が決まるという透過形式です。
透過させたい画像の右側に、グレースケールのマスク画像をくっつけます。
(一つの画像ファイルにするということです。)
この画像ファイルを「a」タグによって立ち絵に指定します。
すると、右側の白いところに対する左側は透明に、右側の黒いところに対する左側はそのまま表示されます。
灰色の部分はどうなるかというと、濃さに順じて半透明になります。
つまり、薄い灰色だともとの色が薄くでて、濃い灰色だともとの色が濃くでます。
そしてもちろん、画像の横幅は半分になって表示されます。
「m」…(mask)
この透過形式は「a」と同じことを、元の画像の横にマスク画像をつけるのではなく、他のファイルとして指定できるという形式です。
そのため、マスクに指定する画像の名前も記述します。
":m(マスク画像ファイル名);(ファイル名)"
この透過形式はマニュアルに載っていません。
「追加命令一覧.txt」にて、確認することができます。
「c」…(copy)
これを指定した場合は何も透過しません。
元の画像をそのまま表示します。
■表示位置
では、画像タグを用いて立ち絵を表示してみましょう。
後ろの数字は、「effect」命令によって定義したエフェクト番号です。
ldの右の「c」は、「center」の「c」です。
立ち絵を表示する位置は、「l」「r」「c」の三つがあります。
それぞれ「左」「右」「中央」です。
■立ち絵の消去
立ち絵を画面から消去するには、
「cl」を使用します。
後ろの数字は、エフェクト番号を指定してください。
clの右の「c」は、やはり「center」の「c」です。
「l」「r」「c」があり、その位置に表示されている立ち絵を消去します。
また、「a」(all)を指定することで、表示されている立ち絵を全て消去できます。
■定義による透過
「transmode」命令で透過形式を指定することで、画像タグで透過形式を指定しなくてもその形式で透過してくれます。
*define
transmode alpha
game
*start
ld c,"tatie.bmp",10
ld l,"tatie.bmp",10
ld r,"tatie.bmp",10
|
全てアルファブレンドで透過する。
指定する透過形式は現在のところ、「leftup」「copy」「alpha」しかありません。
デフォルトではleftupになっています。
また、画像タグで透過指定すると、そちらが優先されます。