神鳴
主に自分用メモだけど、初心者や久しぶりに辞書を書く人にも役立つ、と思う。
タブとスペースは別物です。
タブっていうのは
tab |← →|
みたいに書かれてるキーで入力されるやつのこと。
里々wikiやここでは【タブ】と書いて表現する。
採用条件とかなんとかでよく使うので覚えておこう。
里々の辞書に基本的に必須の記述はない。
シェルがちゃんとあってdescript.txtとかの必須のファイルや記述があればdic~~.txtがなくても立ち絵は表示される。
ポストと狛犬とかではヘッドラインセンサとか時計合わせとかいろいろあるけど分からなかったら省いても問題ない。
よくあるストーリーorキャラものゴーストでだいたい必須とされるのは、
起動 終了 ランダムトーク メニュー さわり反応
ぐらい。
極端な話他を全部切り捨てたって怒られたりはしないし場合によってはこの中の一部がなくても大丈夫。
もちろん、右クリックメニューの表示文やリンク先、アンインストール等々こだわればその分個性を持たせやすい。
でも分からないままに記述を中途半端に残して結果バグらせる、なんてなるくらいなら取っ払ってもいい。
初めて作るなら最小限から始めて、慣れてきたらあれこれ勉強して手を出す、って形でもいいんじゃないかな。
当然機能型ゴーストを作りたいなら話は別。けどそもそもそういう人はここ見ないんじゃない?
気を付けないとよくやるやつ。 サンプルを挙げるのでさとりてで起動中の子に渡してみて。
:私がスコープ。ここでクリック待ちを入れると\xこうなるわ。ここでスコープ切り替え。 :こっちにクリック待ちで\xこう。スコープ切り替えすると、 :こう。
実行すると、↓
\0私がスコープ。ここでクリック待ちを入れると\x\0こうなるわ。ここでスコープ切り替え。 \1こっちにクリック待ちで\x\0こう。スコープ切り替えすると、 \0こう。
↑最後が\1にならず\0になってしまう。
:今度は記法を変えるわ。クリック待ちで…\xこう。ここまではいいわね。スコープ切り替え。 :こっちにクリック待ち…と見せかけて、:\xこっちでクリック待ちを出すの。これでスコープ切り替えすると、 :こうなる。
↑常に\0側に切り替えてから\xを入れる回避法。
:もう一つの回避法。クリック待ちで、\xこう。スコープを切り替える…けど。 \1切り替えの記法を変える。クリック待ちをするともちろん、\xこっちに移るわ。この後の切り替えも、 \1こっちを使えば切り替えミスは起きようもない。ただ、改行を自分で入れるのを忘れないように。
↑\xを入れた後は常にさくらスクリプトでスコープを変える回避法。
このパターンの亜種として、characters.iniで
[0] popular-name=にゃんこ initial-letter=に full-name= family-name= first-name= base-surface= [1] popular-name=はかせ initial-letter=は full-name= family-name= first-name= base-surface=
と書いておき、
に:最後にcharacters.iniの方法。そもそも話者を指定してしまうのよ。\xこっちに来てから、 は:こう。クリック待ちで、\xこっちに移す。この後の切り替えも、 は:これで。要はさっきの方法とほぼ同じ。
こう書いてやる。
メリットは半角全角を切り替えなくていいこと、そして3キャラ以上でも同じ書式ができること。
里々は基本的にセミコロン(;)を使わない。
辞書を書き終えたらテキストエディタの検索機能で;(全角セミコロン)、;(半角セミコロン)、:(半角コロン)をチェック。
意図しない部分を見つけたら:(全角コロン)に置き換えよう。
置換機能で一気にやっちゃってもいい。
>や*や@や$の後、あるいは\q[こっちはいいけど,こっちはダメ]みたいなところに、エスケープが必要なものを入れない。
エスケープというのはつまりφ←この記号。
特殊記号やreplace、replace_afterを無効化するやつ。
これが必要な文字を入れてしまうとバグの原因に。
そういう特殊な文字群はトークとして表示される部分だけにしましょうね。
やりがちなのは!とか?とか。だいたいreplace.txtでウェイト入れてるから…。
*NGなパターン \q[こう!,こう!] *こう!
じゃなくて、
*OKなパターン \q[こう!,こう] *こう
としましょう。
まとめてチェックが難しいやつ。
$おにゃ【タブ】1 *【タブ】(ほにゃ)==1
↑変数名の指定時にhを押し損ねたパターン。
トークタイトルとかでもありがち。
変数名やジャンプ先はコピー&ペーストを使うのが吉。
$好感度【タブ】(好感度)+1
↑間にタブを入れると計算されない。元の好感度が1ならこれは1+1が入ってしまう。
$好感度=(好感度)+1
↑イコールなら計算される。この場合元の好感度が1なら1+1が計算されて2が入る。
$好感度==(好感度)+1
↑イコール二つは比較演算になってしまう。ダメ絶対。
タブとイコールは使い分け。
問答無用で固定の内容にしたいならタブ。
今の数字をもとに加減算等をしたいならイコール。
これらは書く時点で気を付ける。一応$で検索してやればチェックはしやすい。
他にも記法ミスはよくあるので気を付けて。
*ほげ【タブ】(好感度)<5 *ほげ【タブ】(好感度)>5
好感度5を境に反応を変えたい…のはわかるけど、この表記だと好感度が5の時にどちらにも当てはまらない。
*ほげ【タブ】(好感度)<5 *ほげ【タブ】(好感度)>=5
か、
*ほげ【タブ】(好感度)<5 *ほげ【タブ】(好感度)>4
とすれば回避可能。
* :にゃんにゃん♪ かわいいなぁ
↑スコープ変更の入れ忘れ。
誤入力ならまだ検出もしやすいけどこっちは難しい。
対処法は、トークを書いたら必ずさとりてを使って喋ってもらうこと。