LastUpdate 04/05/13


アブストラクト S-Vでの使用 基本 定義ファイル サーフィスファイル SVGの追加機能 設定ファイル その他 サンプル

copyright by: TJ
URL: https://sakura.shillest.net/sstpviewer/
Link Free.

!注意!
W3Cが勧告するベクター画像記述言語
Scalable Vector Graphicsとは全く無関係です。

奈留SVGは楠見直人さんの好意を得て、サンプルとして採用させていただきました。

概要

SVGは、SSTP-Viewer-Ghostの頭文字をとったもので、ifGhost付きのSSTPメッセージに対応させるために作られたSSTP-Viewer(以下「Viewer」)用サプリメントのことです。
SVGは定義ファイルとサーフィスファイルから作られており、1つのSVGを追加することで1体のゴースト(以下「元ゴースト」)を扱う事ができます。
「伺か」の言葉で表現すると、「シェル」のサムネイル+「ゴースト」の基本情報を合わせたもの、です。また、私の言葉では、「ゴーストの写真」と表現します。

また、「ゴーストの名前+サーフィスIDから適切な画像を取得する」ことを目的としているため、SVGは、Viewerのみならず、他のソフトでも利用されるようになりました。marvelous!

このページは、SVGテクノロジの仕様についての解説が示されています。

SSTP-Viewerで使用する

・インストール方法
貴方がSSTP-Viewerを利用するだけのユーザーであれば、「(使用禁止用語)」や「(お察し下さい)」などから手に入れたSVGをアーカイバで解凍し 定義ファイル(.txt)ファイルを起動しているViewerにドロップすればインストールができます。
この時、SSTPViewerのフォルダ内にコピーがされますので、ドロップしたファイルは削除しても問題ありません。
また、SVG-Cocntrollerを使用すれば、インストール・アンインストール・ソートなどが行えます。

※SSTP-Viewerには、最大5000体のSVG(DefaultSVGの「びゅう」除くと4999体)をインストールすることができます。

SVGの基本的な構成

ひとつのSVGは、SVG定義ファイルSVGサーフィスファイルで構成されます。
定義ファイルはTXTファイル、サーフィスファイルは.BMP.GIF.JPG.PNGのいずれかで、このペアのファイルは、常に同じディレクトリに置かれます。
また、ファイル名については規定はありませんが、他のゴーストと競合を起こさないように、また、定義ファイルとサーフィスファイルは同じファイル名(の拡張子違い)を推奨します。


SVG3:SSTP-Viewer-Ghost DefineFile  Ver.3  
sakura=びゅう
unyu=うにゅうモドキ
surfacefile="byu_svg.png"
surface=0:0,surface=10:1
/EOF
最低でも、さくら側とうにゅう側の絵は必要です。
byu_svg.txt
(定義ファイル)
byu_svg.png
(サーフィスファイル)

定義ファイル構造

定義ファイルは、テキストエディタで修正できるテキストファイルです。
最初の一行はSVG3で始まる文字列です。この行から、ViewerはこれがSVG3であると判断します。
(3は、フォーマットのバージョンです。SVGは過去に2回バージョンアップを行い、このフォーマットに落ち着きました。)

2行目からは、常に「sakura=さくら」のように、エントリ名データをイコールで結ぶ形で記述します。
この「エントリ名=データ」を1ブロックとし、ブロックの間は改行あるいはコンマ「,」で区切ります。
そのため、データの中の文字として、改行ないしコンマ、ダブルクオートは使用することはできません。

エントリは自由な順番で記述することが出来ます。(ブロックに前後関係はありません)
同じエントリが二つ以上あった場合は、後から書かれたデータがそのまま上書きで有効になります。
例外はサーフィス・エントリで、これは複数指定することができます。当然ですね。
(ただし、同じサーフィスIDに複数のスプライトを割り当てても、ランダムサーフィスにはなりません。後の方で上書きとなります)

データの前後をダブルクオートで括ってもかまいません。

エントリ名を省略し、「3:3」のように記述した場合は、「surface」エントリが省略されているものとして扱います。 (surfaceエントリのデータとして解釈できなければ、それは無視されます。)
存在しない(ソフトが必要としない)エントリ名は、コメントとして無視されます。
また、最初が「/」で始まるブロックはコメントとして扱われます。

最後は「/EOF」でしめます。これ以降のブロックはすべて無視します。

SVGエントリ一覧:(エントリ名はViewerは大文字・小文字を区別しませんが、小文字で書くことを推奨します。)
sakuraさくら(\0=\h)側の名前。元ゴーストのdescript.txtのsakura.nameと同じ名前。必須
unyuうにゅう(\1=\u)側の名前。元ゴーストのdescript.txtのunyu.nameと同じ名前。必須
userユーザー呼称。「ユーザーさん」など。ゴースト特有のものがあれば指定。
「%username」という文字列を指定するか、省略することでS-V本体設定の呼称が使用される。
craftman元ゴーストのシェルを作った人・ゴーストを作った人。SVGを編集した人ではないので注意。
「シェルベンダ名/ゴーストベンダ名」を一応推奨。
url元ゴーストのシェル・ゴーストが配布されているサイトのURL。
ゴースト配布元とシェル配布元が異なるときは、一応、シェル配布元を推奨
hpname上記配布元のWebサイトの名前。
surfacefileSVGサーフィスファイル名。
SVGサーフィスファイルは、定義ファイルと同一ディレクトリにあることが前提なので、相対パス指定の場合は動作は保証外。
サポートフォーマットは.BMP、.GIF、.JPG、.PNG。
updateSVGの最終更新日付。「YYYY/MM/DD」で指定。
SVG-Controlerでは、そのまま文字列としてソートに使われるため、1桁の数字は0を付けなくてはならない。
surfaceサーフィス指定。サーフィスIDとスプライトIDをコロンで繋げて、「10:12」という形で指定する。
0番サーフィスと10番サーフィスの指定は必須で、常になんらかのスプライトを割り当てる必要がある。
分からなければ、「surface=1-11:*」と書いて、サーフィスファイルのほうを調整すればよい。詳細は後述。
sakura2さくら(\h)側のTrueName。「黒衣さくら(1st)」と「川上さくら(3rd)」の二人の「さくら」を区別するためのもの。ifGhostが同じになってしまう追加シェル等で使用してもよいが、通常は指定する必要はない。
(Viewerでは、特別にsakura2でもifGhostの処理ができる。)
ghostname元ゴーストのパッケージの名前。パッケージ名は、SSPなどでゴースト選択メニューに出る名前。のこと
supported「NORMAL」、「COMPACT」、「FULLSURFACE」、「EXPAND」を指定。
CompactはSVGのスプライト数を減らすように、SVGデザイナが調整したもの(怒り顔を全て\s[7]にエリアスするなど)。
FullSurfaceはアニメーション・着せ替え用の直接使用されないものを除き、全てのサーフィスを(updateの日付の時点では)厳密にサポートしていることを示す。
Expandは、他の同ゴーストのシェルと互換を持たせるために本来は存在しないサーフィスが追加されている事を示す。
Compactはサイズが軽いが、書くツールにおいてはサーフィス指定ミスをするおそれがあり、読むツールでも注意が必要となる。 Expandは読む分には違和感がないが、書くツールにおいては使用されていないサーフィスを指定してしまうおそれがある。 FullSurafaceは読み書き双方においても(48×64のレベルでは)誤解は生じない。
sakura-action「OK」または「NG」を指定。
元ゴーストが、標準的なSSTP(さくらのSSTP)を受信できることを示す。すなわち、\s[0]〜\s[8]および\s[10]、\s[11]といった デファクトスタンダートな基本サーフィスをほぼサポートし、歌やアナウンスのような口調を気にしないレベルでさくらと互換があることを示す。
省略すると「不明」として扱われる。
新旧のさくらはもちろん、双葉・まゆら・せりこ・奈留といった普通の女の子のゴーストとして作られているのは皆OKとする。 ねここ(\uのサーフィスが特徴的)や汁親父(キモい)あたりになってくるとSVGデザイナの判断。
informこのSVGに関する、SVGデザイナからユーザーへの注意事項や告知事項。Viewerではインストールに表示される。

サーフィスファイル構造

サーフィスファイルは画像ファイル(BMP,GIF,JPG,PNG)です。 元ゴーストのシェル画像はそれぞれ横48ピクセル×縦64ピクセルのサムネイルとして並べられています。この一枚の絵をスプライトといいます。
それぞれのスプライトには画像の左上から右下へ向かって順番にスプライトIDが振られています。
サーフィスファイルの横幅・縦幅は、48・64の倍数であればいくつでもかまわないことになっています。

SVG-Modifierでのサーフィスファイル画像。IDが書き込まれているのはツールによる

定義ファイルでは、
これらスプライトに対して、「surface=65:18」のようにサーフィスIDとスプライトIDをコロン「:」でつなげる形で、サーフィスに割り当てていきます。
このケースだと\s[65]でびゅうの「田舎に帰る」絵が表示されます。

この例では、ほとんどのサーフィスIDはスプライトIDと同じです。(無論そのようにサーフィスファイルを編集しているからですが、1000をこえるサーフィスIDではそうもできないでしょう。)
ただし、このような場合でも、「0:0,1:1,2:2」のように、同じ値を割り当てなくてはなりません。それぞれのサーフィスIDの割り当ては初期値が「未定義」です。
未定義のサーフィスはソフトによりますが、Viewerでは、MATERIAがそうであるように、\hが\s[0]、\uが\s[10]の絵を表示します。
使われないスプライト(この例では19)が実際の動作中に表示されることはありません。
なお、\s[0]および\s[10]が割り当てられていないSVGは不正なものとしてロードされません。

surfaceエントリでの特殊な指定方法:(「surface=」は省略します)
1:*この場合、サーフィスID=スプライトIDとなる。
1:+この場合、直前のブロックで指定していたスプライトIDに+1したスプライトIDを指定したことになる。
例えば、直前に0:0を指定していれば1:1、0:10を指定していれば1:11となる。 なお、その前にサーフィス指定が無かった場合は(:0)となる。
1-10:0この場合、1番サーフィス〜10番サーフィス全てをそのスプライトIDに割り当てる。
1-10:*この場合、1〜10がそのまま1〜10となる。、
1-10:+この場合は直前のブロックで指定したスプライトIDに+1、+2・・・を適用していく。
つまり、直前に0:10が指定されているならば、1:11、2:12、・・・10:20となる。
1:-1スプライトIDに-1を指定した場合、そのサーフィスは\s[-1]と同様に表示されない。
1:-2-2を指定した場合、そのサーフィスは未定義として扱う。上書きで指定する時に使う。

先ほどの例ですと、最終的にはこういう指定になります。
0-17:*,20-29:*,65:18

・切り出し方の提案(強制力は全くないです)

SVG3拡張機能

拡張機能があります。こちらをご覧ください。

ゴースト設定ファイル

SSTP-Viewerは、各SVGファイルにアクセスするために、「ghost.txt」というゴースト設定ファイルを使用します。
手動で修正する必要性が生じた際を除き、通常のSVGの使用や作成において、このファイルを加筆修正する必要はありません。

ゴースト設定ファイルの中身は、VisualBasicのシーケンシャルテキストファイルとなっています。
INSTALL,PrivDir,FMO,"ghost\"
GHOST,さくら,FMO,"ghost\sakura.txt"
GHOST,まゆら,FMO,"ghost\mayura.txt"
#GHOST,双葉,FMO,"ghost\futaba\futaba.txt"
各ブロックを前から読みあげていき、「GHOST」という文字列からデータを三つ読み出します。 「#GHOST」はViewerはロードは行いますが、有効に扱いません。

INSTALLというエントリが追加されました。これはViewer系ツールでインストール時に使う設定です。
※このファイルを誤った形で修正保存するとSSTP-Viewerが動かなくなる可能性があります。


その他特記事項等

命名規則への指針
定義ファイル名 [sakura]_[mikage]_[c].txt
サーフィスファイル名 [sakura]_[mikage]_[c].png
アーカイブ名 svg_[sakura]_[mikage]_[c]_20040512.zip

sakuraは、\h側の名前をローマ字書きしたものか、モデルのゴーストが使用しているディレクトリ名を使用します。
mikageは、モデルとしたシェルのディレクトリ名を記述します。マスターシェルなら省略します。
cは、サポートレベルの頭文字です。Fullsurfaceならf、Compactならcです。基本サーフィスしか持たないゴーストは省略してもかまいません。
200040512は、SVGのバージョンです。
※実際は、わかりやすくだぶらない名前であればOKです。

表現能力の限界

SVGと元のゴーストのシェルの関係とは、「写真」と「実物」の関係にあたります。 実物をよく知る人間だからこそ「写真」が代替物の意味をなすと言えます。
そのため、SVGそのものの表現には限界がありますし、 また、SVG作者が元のゴーストを再現しなければならないわけではありません。

配布上の権利の問題

SVGは「ゴーストの名前」および「シェルの改造画像」を使用したものである以上、その配布においては、その元のゴーストに掛けられている制限に従う事になります。
くれぐれもゴースト作者さんに対して礼を失する事のないよう、個人の良識の上でSVGを取り扱ってください。

To:ツールベンダさん

貴方がSVGを使ったツールを作るのは一向にかまいませんが、その結果については 当SVプロジェクトは責任を負えません。
また、このページへのリンクは自由にしていただいてかまいませんが、相互リンクは基本的に致しませんのでご了承ください。
With SVG・ https://sakura.shillest.net/sstpviewer/svg/svg.png 64×48
With SVG・ https://sakura.shillest.net/sstpviewer/svg/svg_m.png 40×40
With SVG・ https://sakura.shillest.net/sstpviewer/svg/svg_l.png 200×40

To:ゴーストベンダさん

いろいろご迷惑をおかけします。


サンプルのダウンロード

  • SVGびゅう(2003/11/01)
    ・SSTP-ViewerのデフォルトSVG「びゅう」です。ただし、S-Vに内蔵されているもの、ないし、ゴースト「びゅう」に梱包されているSVGに比べて内容が古い可能性があります。


    S-V:St跡地へ



    仕様改変履歴: