着せ替え仕様拡張

着せ替え仕様自体については、
http://www2.wbs.ne.jp/~dskoba/database/seriko.html#mayuna1x
をご覧ください。「非公式」仕様書扱いですが、SSPはこちらにできるだけ準じる形で実装しています。

surfaces.txt

animation[ID].interval

アニメーション実行タイミングの指定です。
従来はこの後にbindと書いていましたが、SSP 2.02から以下の定義が可能になりました。

着せ替えアニメーション仕様追加定義

  1. 区切りでいろんなタイミングを複数組み合わせられるようになりました。以下に例を示します。
bind+always
特定のIDの着せ替えが有効になった場合に、常に実行されるアニメーション。
bind+runonce
特定のIDの着せ替えが有効になった時と、すでに有効だった場合にサーフィス切り替えがなされた場合に、1度だけ実行されるアニメーション。
bind+random,[頻度]
特定のIDの着せ替えが有効になった場合に、指定した頻度でランダムに発生するアニメーション。頻度パラメータは平均何秒に1回実行されるか。5と指定した場合は1秒ごとにランダム判定し1/5の確率で発動=平均5秒に1回
bind+periodic,[間隔]
|特定のIDの着せ替えが有効になった場合に、指定した間隔で等間隔に発生するアニメーション。間隔は秒単位。
bind+random+runonce
着せ替え有効+すでに有効だった場合にサーフィス切り替え+ランダム

※以前ここに|区切りや - 区切りを書いていましたが+で統一しました。しかし実はどれでも動いたりします。

descript.txt

(character id).bindgroup[ID].*

着せ替え仕様のグループ名・着せ替え名の定義です。
ここに記述しただけではメニューには表示されない点に注意してください。

(character id).bindgroup[ID].addid

SSP2.02から。従来は [ID] の部分に書かれるIDを1つだけ有効にできましたが、複数同時にまとめて扱いたい需要が出てきたため、同時実行IDを定義するこのエントリを追加しました。 addidの後にカンマ区切りでIDを並べてください。

sakura.bindgroup0.name,TMP,T0
sakura.bindgroup0.default,0
sakura.bindgroup0.addid,2

sakura.bindgroup1.name,TMP,T1
sakura.bindgroup1.default,0
sakura.bindgroup1.addid,2

上記の例では、ID=0・ID=1のどちらを有効にした場合でも一緒にID=2も有効になります。複数定義で同じIDを書いた場合、すべてが無効になるまで有効を維持します。

(character id).bindoption[ID].*

着せ替え定義のそれぞれのメニュー選択等に関するオプションを設定します。

(characted id).bindoption[ID].group

着せ替え仕様で、同じグループ名の中にある着せ替えは

  • 同時に1つしか着られない
  • 完全に脱ぐことが出来る

という仕様で固定されていました。
前者は適当に別グループ名にすれば良く、後者はあらかじめベースとなる画像ですでに標準の服をつけておく、という解決法がありますが、直感的ではありません。
可能なら何らかの制御用オプション指定がほしいところです。

記述例:

先に記述例を出します。
……どこのシェルかバレますねこれ(汗

sakura.bindoption0.group,昼仕事,mustselect
sakura.bindoption1.group,夜仕事,mustselect
sakura.bindoption2.group,パジャマ,mustselect
sakura.bindoption3.group,私服,mustselect
sakura.bindoption4.group,アクセサリ,multiple+mustselect

上記設定で、昼仕事・夜仕事・パジャマ・私服カテゴリは「常に(少なくとも)1つは選択していなければならない」、アクセサリカテゴリについては「常に選択+いくつも選択可能」のオプション設定が可能となります。

仕様:

mustselect
常に(少なくとも)1つは選択していなければならない
multiple
いくつも選択可能

複数のオプションを同時に設定したい場合(例:上の「アクセサリ」のような場合)は、半角"+"で各オプション定義を区切ります。

どうせ単純に頭から文字列検索してオプションを判断する実装にするので区切り文字にあまり意味はなかったりする。やっぱりちゃんと分割しよう……

その他メモ

  • (character id).bindoption?.*
    の形式で * の部分を拡張可能なものを想定しています。
  • bindoption0、などというように、一応IDを指定して書くようにしてはありますが、特にこの数値は処理しない予定です(単に他と記述法をあわせるためのダミー)

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-09-29 (火) 23:01:48