surfaces.txtを倒す方法、描いた絵がフリーシェルになるまで

おさとう(可愛い女の子)
すぱいす(性癖)
素敵な差分をたくさん……
全部混ぜれば素敵なフリシェができる……はずだった……
だけどフリーシェルにするには倒さねばならぬ敵がいる!
そう、surfaces.txt……

今まで描いたやつはポーズ差分なしの表情差分が合計20個あるかないかぐらいだったので
全身の透過pngを出力して直接surfaceとして指定していました。
わかりやすいし、Windows標準の画像ビューワで眺めながら\s[7]とか定義できたので楽ちんでした。

今回描いた子はポーズ差分があって表情差分もその他の差分もたくさん描いたから……
全部結合して出力するのは非現実的な量になってしまいました。
体型6
顔色3
目 19
口 10
眉 4

(差分をたくさん作るとうれしい)
まあいいか!気合い入れて使いそうなやつ1000枚くらい全部出力しよ!となってしまっては産業革命が起きません。
人は省力化のためには労力を惜しんではならないのです。

検索 伺か フリーシェル 作り方 銀の弾丸

???「フリーシェルは、フリーシェルにしようという不断の攻勢の意思にのみによって完成される」

うおおおおお---っ!!!!!
どうしてシェルが一枚絵ぼっ立ちで納得できるだろうか?
いや、できない。

そしてもう少しだけ調べていると
そういえば伺か・伺的アドベントカレンダーでこんな記事がありましたね。
https://apxxxxxxe.dev/entries/adventcalendar_20241207/
福笑い式surfaces.txtジェネレーターを作った話 日野つみ

やったろうじゃん!でもyamlファイル書きたくないので
同記事にて紹介されていた
・桁ごとにパーツを指定するsurface定義
・サーフェス連番ジェネレータ
とかが簡単そうだったのでやってみました!!

結果
目と口の差分が二桁個あったのでダメでした……

ではyamlを書いてsurfaces-mixerを使おう!
ラーシェちゃんにyamlってどう発音するの?から聞きながら書きました。
結論から言ってインデントの深さが重要な記法だったのでそこら辺でめちゃくちゃつまづいて友人の助けを借りながら書きました。


ぜんぜんわからない……俺たちは雰囲気でyamlを書いている……

範囲選択してTabとかShift+Tabとかでちまちま一時間くらいインデントの深さを直してようやく生成できました!

ドン!!!

surfaces.txtの基本形ができたけど……
724KBある上にSSPが5秒くらいフリーズする!!!
そしてsurface総数が13680個あるんだけど……?
なぜ……?
答え 6*3*19*10*4 = 13680

まあさとりすと2のサーフェスパレットで読めれば……


A FEW MINUTES LATER … …

終わりです。

これでフリーシェルとして配布していい?
友人>ダメ

ではどうすればいいの?
友人>着せ替えを使おう

えっ!
element0,overlay.xxx.png,0,0
をおまじないとして繰り返しているこの吾輩が着せ替えを!?

ukadocを読み、https://earlduant.github.io/ukagaka-shell-description/surfaces.htmlを読み
そしてうかどんとかで聞く……
吾輩は聞きました。

身体を着せ替えして
えっちな差分をその上に着せ替えをして
これが多重着せ替え……

そうして
体型6
顔色3
目 19
口 10
眉 4
のうち体型、顔色を着せ替えに移植
19*10*4の760通りまで総surface数を削減!!

できた!!!

今回わかったこと
福笑い式(総当たり)サーフェス定義は銀の弾丸ではない……
一枚絵をたくさん出力してやるシェルの作り方も銀の弾丸ではない……




今回できたもの(宣伝)
フリーシェル「ドラネーちゃん」

探せ!えっちな差分の全てをそこに置いてきた……(宣伝)
https://shimosent.sakura.ne.jp/top/ukagaka/draney_ukagaka/