幻日幻月環

作成した伺かの更新情報などをつぶやくところ

サーフェスごとにバルーンの位置を補正

ゴーストを作る際、シェル画像を用意することが多いと思います。

もし、サーフェスに使う画像の大きさがそれぞれ異なる場合、バルーンの位置がずれてしまうという問題があります。
すると、トーク中にサーフェスが変わるたびにバルーンが移動するため、非常にトークが読みづらくなってしまいます。

一番簡単なのは、画像に余白を追加して、全てのサーフェス用画像のサイズを揃えることです。
別の解決法として、今回は、画像に手を加えずにsurfaces.txtでの記述で補正する方法を紹介します。
----
今回使うもの
----
surfaces.txt
char*.balloon.offsetx,???

----
解説
----
サイズの異なる画像を利用する場合、以下の画像のようなことが起こります。
下記は、横幅600pixelのサーフェス画像と、横幅300pixelのサーフェス画像を用意して表示した例です。
サイズが違う場合、画像の中心に合わせて表示されています。

balloonoffset1.png

このサーフェスを使ってトークを行い、トーク中にサーフェスを変更した場合を以下に示します。
トーク中にバルーンの位置がずれてしまうことがなんとなく分かると思います。
balloonoffset2.png


上記画像は、\0(メインキャラクター)にサーフェス0番を表示、途中でサーフェス1番を表示しています。
surfaces.txtは以下です。

charset,Shift_JIS

surface0
{
}

surface1
{
}

これを解消する方法が、バルーンオフセット、要はバルーンの表示位置をずらす方法です。
書き方は、以下です。

sakura.balloon.offsetx,???

???の部分には半角数字を記入します。
記入した数字が0より大きいと右側にずれ、0より小さいと左側にずれます。

さきほどのトークに適用した例を以下に示します。
balloonoffset3.png

surfaces.txtは以下です。

charset,Shift_JIS

surface0
{
}

surface1
{
sakura.balloon.offsetx,-150
}

上記の例では、\0キャラクターに、サーフェス1番を表示した場合のみ有効です。
バルーンオフセットに-150を指定したため、左側に150pixelずれて表示されています。

\0側意外のキャラも同様に設定が出来ます。
・\1(サブキャラクター)
kero.balloon.offsetx,???
・\p[2]など3キャラ目以降(char?の部分の数字を変更)
char2.balloon.offsetx,???

sakura.~はchar0.~、kero.~はchar1.~と書くことも可能です。

上記を適用した例を挙げます。

surface1
{
sakura.balloon.offsetx,-150
kero.balloon.offsetx,50
}

こうすると、サーフェス1番を\0側に表示した場合、バルーンが150pixel左にずれ、
\1側に表示した場合、バルーンが50pixel右にずれて表示されます。

----
縦方向に関しては、以下を記述します。

sakura.balloon.offsety,???

offsetxがoffsetyに変わっています。
この場合、0より大きいと下、0より小さいと上にずれます。

----
この記述は上書きされます。
上にあるほど優先度されます。
・シェルのsurfaces.txt(優先度高)
・シェルのdescript.txt(優先度中)
・ゴーストのdescript.txt(優先度低)
※特に、「Rポストと狛犬」のシェルのdescript.txtに記述されているので注意してください

たとえば、シェルのdescript.txtに以下の記述があるとします。
sakura.balloon.offsetx,100

この状況で、surfaces.txtに以下を記述します。

surface0
{
sakura.balloon.offsetx,150
}

すると、\0に表示される全てのサーフェスでバルーンが100pixel右にずれ、サーフェス0だけ150pixel右にずれます。
結果として、サーフェス0のバルーンが右に50pixelずれるように見えます。
数値通りにならない場合は、シェルやゴーストのdescript.txtの表示を見なおしてみてください。
PageTop

コメント


管理者にだけ表示を許可する