記述日: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番を最初のデフォルト立ち絵として呼び出すためなので、surface10を定義するか、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 }
このように書き換えられる。
「surface0-2」で0から2まで全部にベース画像と当たり判定を設定し、
「surface.append番号」で1と2のelement1にそれぞれ異なる差分画像を重ねるというやり方。