シェルの作成は里々の領分ではないので、ここでは自力で絵を描ける・編集できる人向けのサクッと作る手順を紹介。
参考情報/2023年11月時点。
シェルの仕様書は先人の努力の積み重ねもあって高機能だが、そのぶん複雑にもなっている。
新機能もどんどん追加されているので、マニュアルがまだ追い付いていないことも多い。
そこで、以下では現在の主流SSPを前提としたシンプルな手順を紹介。
なにはともあれマニュアルはSSP公式仕様書へ。
ゴースト名\shell\masterフォルダ内に画像を作る。
(フォルダの構成はファイル構成を参照)
過去の仕様も使えるので色々こんがらがるが、今は新機能によってpnaを用意したり背景を原色にする等は必要なくなった。
画像形式はPNG32(32bit-PNG、アルファチャンネル透明度つきPNG)で保存しよう。
ファイル名は自分で覚えやすいもので。
※ここではあくまで例としてAIさんに描いてもらいました。
表情などの差分はできるだけ透明部分(元絵の外縁部)を含めないように切り取るのがポイント。
解像度も変更しないのが吉。
同じく形式はPNG32(32bit-PNG、アルファチャンネル透明度つきPNG)で保存しよう。
こちらもファイル名は自分で覚えやすいもので。
なにそれ!?…と思った人もいると思うが、これを使うとかなり手間を省ける。
(当たり判定がいらない場合は下記はスルーして欲しい)
ゴーストの当たり判定については触った事があると思う。
従来はsurfaces.txtに書き込む情報なのだが、座標の数字を一つ一つ入力しなければならなかったため、これがまた非常に手間がかかるものだった。
しかし、現在ではこれを画像で代用できるようになり、絵を描けるならこの手間を省略できるようになった。
具体的には、2値ペンなどを使い、こういうものを作る。
画像形式はPNG。特に気にせずPNG32でよい。
ただし、塗った色情報(RGB)はきちんとメモに控えておくこと!
この画像の例では
という色の情報をメモしておこう。
作るときは下図のようなイメージで。
使っているお絵描きツールで上から新規レイヤーで塗っていくとやりやすい。
ここからはテキスト編集作業。
メモ帳でもいいけど、なんかよさげなテキストエディタを選ぶと捗るはず。
descript.txtはゴーストの辞書本体側(ghost)にも同じ名前のファイルがあるので、混同しないように気を付けて!
こっちはシェル側のdescript.txt。
charset,UTF-8 craftmanw,作者名 type,shell name,シェルの名前 seriko.use_self_alpha,1
どれも重要だが、「seriko.use_self_alpha,1」に注目。
これを書いておかないと用意したPNGの透明度が適用されない。
また、下のsurfaces.txtに共通して、「charset」はShift_JISかUTF-8の文字コードを指定しよう。
(今のwindowsで新規作成→テキストドキュメントで作った場合、文字コードはUTF-8になっているはず)
これが違うと全角文字が化けるので、逆に化けていたなら文字コードが間違っているとも言える。
これさえ終わればシェルの最低限の体裁は整う。頑張って。
charset,UTF-8 descript { version,1 } surface0 { element0,base,ベース画像.png,0,0 collisionex0,Head,region,当たり判定画像.png,255,0,0 collisionex1,Face,region,当たり判定画像.png,0,255,0 collisionex2,Bust,region,当たり判定画像.png,255,0,255 } surface1 { element0,base,ベース画像.png,0,0 element1,overlayfast,差分画像その1.png,0,0 collisionex0,Head,region,当たり判定画像.png,255,0,0 collisionex1,Face,region,当たり判定画像.png,0,255,0 collisionex2,Bust,region,当たり判定画像.png,255,0,255 } surface2 { element0,base,ベース画像.png,0,0 element1,overlayfast,差分画像その2.png,0,0 collisionex0,Head,region,当たり判定画像.png,255,0,0 collisionex1,Face,region,当たり判定画像.png,0,255,0 collisionex2,Bust,region,当たり判定画像.png,255,0,255 }
こんな感じで書いていけばサーフェス番号(0)と(1)と(2)が完成!
ざっくりな解説
なお、このままシェルにぶちこんだ場合、SSPが「Surface10が存在しないよ!」とエラーを言ってくるが、これは伺かが伝統的に0番と10番を最初のデフォルト立ち絵として呼び出すため(メインが0、相方が10)なので、10番を定義すれば解消するし、surface10.pngという名前の画像ファイルを用意する事でも解決する。
surface10.pngを用意する場合は1ドットの画像にしておくとよい。強制的に透明になる。
いずれにせよ致命的なエラーではないので安心しよう。
いちいちcollisionexの行をコピペしまくるのが面倒!
って感じたなら上の例は下のように書き換えられる。
これで記述する手間をかなり省けるはず。
charset,UTF-8 descript { version,1 } surface0-2 { element0,base,ベース画像.png,0,0 collisionex0,Head,region,当たり判定画像.png,255,0,0 collisionex1,Face,region,当たり判定画像.png,0,255,0 collisionex2,Bust,region,当たり判定画像.png,255,0,255 } surface.append1 { element1,overlayfast,差分画像その1.png,0,0 } surface.append2 { element1,overlayfast,差分画像その2.png,0,0 }