
ゴーストを作る際、シェル画像を用意することが多いと思います。
もし、サーフェスに使う画像の大きさがそれぞれ異なる場合、バルーンの位置がずれてしまうという問題があります。
すると、トーク中にサーフェスが変わるたびにバルーンが移動するため、非常にトークが読みづらくなってしまいます。
一番簡単なのは、画像に余白を追加して、全てのサーフェス用画像のサイズを揃えることです。
別の解決法として、今回は、画像に手を加えずにsurfaces.txtでの記述で補正する方法を紹介します。
もし、サーフェスに使う画像の大きさがそれぞれ異なる場合、バルーンの位置がずれてしまうという問題があります。
すると、トーク中にサーフェスが変わるたびにバルーンが移動するため、非常にトークが読みづらくなってしまいます。
一番簡単なのは、画像に余白を追加して、全てのサーフェス用画像のサイズを揃えることです。
別の解決法として、今回は、画像に手を加えずにsurfaces.txtでの記述で補正する方法を紹介します。
----
今回使うもの
----
surfaces.txt
・char*.balloon.offsetx,???
----
解説
----
サイズの異なる画像を利用する場合、以下の画像のようなことが起こります。
下記は、横幅600pixelのサーフェス画像と、横幅300pixelのサーフェス画像を用意して表示した例です。
サイズが違う場合、画像の中心に合わせて表示されています。

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

上記画像は、\0(メインキャラクター)にサーフェス0番を表示、途中でサーフェス1番を表示しています。
surfaces.txtは以下です。
これを解消する方法が、バルーンオフセット、要はバルーンの表示位置をずらす方法です。
書き方は、以下です。
???の部分には半角数字を記入します。
記入した数字が0より大きいと右側にずれ、0より小さいと左側にずれます。
さきほどのトークに適用した例を以下に示します。

surfaces.txtは以下です。
上記の例では、\0キャラクターに、サーフェス1番を表示した場合のみ有効です。
バルーンオフセットに-150を指定したため、左側に150pixelずれて表示されています。
\0側意外のキャラも同様に設定が出来ます。
・\1(サブキャラクター)
kero.balloon.offsetx,???
・\p[2]など3キャラ目以降(char?の部分の数字を変更)
char2.balloon.offsetx,???
sakura.~はchar0.~、kero.~はchar1.~と書くことも可能です。
上記を適用した例を挙げます。
こうすると、サーフェス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に以下を記述します。
すると、\0に表示される全てのサーフェスでバルーンが100pixel右にずれ、サーフェス0だけ150pixel右にずれます。
結果として、サーフェス0のバルーンが右に50pixelずれるように見えます。
数値通りにならない場合は、シェルやゴーストのdescript.txtの表示を見なおしてみてください。
今回使うもの
----
surfaces.txt
・char*.balloon.offsetx,???
----
解説
----
サイズの異なる画像を利用する場合、以下の画像のようなことが起こります。
下記は、横幅600pixelのサーフェス画像と、横幅300pixelのサーフェス画像を用意して表示した例です。
サイズが違う場合、画像の中心に合わせて表示されています。

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

上記画像は、\0(メインキャラクター)にサーフェス0番を表示、途中でサーフェス1番を表示しています。
surfaces.txtは以下です。
charset,Shift_JIS
surface0
{
}
surface1
{
}
これを解消する方法が、バルーンオフセット、要はバルーンの表示位置をずらす方法です。
書き方は、以下です。
sakura.balloon.offsetx,???
???の部分には半角数字を記入します。
記入した数字が0より大きいと右側にずれ、0より小さいと左側にずれます。
さきほどのトークに適用した例を以下に示します。

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の表示を見なおしてみてください。


