よくある質問と答え。FAQ。「ふぁきゅ」と読んではいかんらしい。
 
 「本当にそんな質問あったんですか?」もまたFAQらしい。

……

2人を同時に喋らせたい

 さくらスクリプトを使ってください。


:\_sそのふざけた顔の突きっぷり!

 みたいな感じで。

もっと細かくウェイトを設定したい

 まずさくらスクリプトを使っちゃう手。

ま、\w5ま、\w7……まさかッ!?

 とか。\w1〜\w9まであって、だんだん待ち時間が長くなります。
 長めに待つなら\w9\w9とか続けて書くこともできます。

 半角全角切り換えが面倒ならこんなのとか。

ま、W5ま、W7……まさかッ!?

 replace.txtをこれに入れ替えるとできます。
 Wじゃなくて記号とかの方がいいかも。

見切れ反応・重なり反応をつけたい

 とりあえず簡単な例。

*OnMinuteChange
>見切れ (R1)
>重なり (R2)

*見切れ
:画面の外からこんにちは。
:黙ってろ。
:うー。

*重なり
:狛犬、くっつくの好き?
:……いや。\4


ネットワーク更新元URLはどこに書くの?

 dic6の@homeurlに。

「ユーザ名」は何がどうなっているのか

 (ユーザ名)により取得しているのは、「ユーザ名」という名前の変数です。

 
*OnFirstBoot
 で
$ユーザ名 ユーザ
 とし、変数「ユーザ名」に「ユーザ」という内容を入れています。
 この時点でトーク中で(ユーザ名)さんと書くとユーザさんとなるわけです。
 
 
 これが、
 
*名前覚えて
:なんていうお名前なんですか?
$教わること ユーザ名


 で、teachボックスが開き、ユーザが名前を入力すると
 
*ユーザ名を教わった
:(ユーザ名)さんですね。覚えました。


 となり、この時点で変数「ユーザ名」にユーザが設定した名前が入ってるわけです。
 ちなみに「ユーザ名」の部分を変えれば他にも色々教わることができます。


 また、dic6に
 
@username
(ユーザ名)


 という記述がありますが、これは本体側からユーザ名を聞かれたときに返す答えです。buttoncaption等と同じ。

「ユーザ名」を選択肢から選ばせるようにしたい

以下のような。


:なんて呼ばれたいの?
_ユーザさん
_お兄ちゃん
_パパ

*ユーザさん
$ユーザ名 ユーザさん

*お兄ちゃん
$ユーザ名 お兄ちゃん

*パパ
$ユーザ名 パパ



同じ意味ですが、もう少し小粋に書いてみるとこんな感じ。


:なんて呼ばれたいの?
_ユーザさん 名前決定
_お兄ちゃん 名前決定
_パパ 名前決定

*名前決定
$ユーザ名 (R0)

それで結局さくらスクリプトって何なんですか?

 「何か」において、ゴーストを演出するものです。
 ↓こんなのですね。  
 \0\s[0]こんにちは。\1\s[10]よぉ。\e
 
 仕様書はこれ
 里々以外の多くの栞は、このさくらスクリプトをそのまま使っています。
 
 里々の場合、簡易性と、辞書の見やすさを確保するため、普通に喋りを書いていく分には「さくらスクリプト」を使わないでもいいようになっています。
 ていうか、里々が「里々形式の辞書」を「さくらスクリプト」へ翻訳しているんです。
 
 導入のところでお見せしましたが、こんな風に。
 
●元の「里々形式の辞書」
:普通のポストで終わりたくないなぁ……
:……っていうかお前、自分を普通だと思ってたのか。
:え?


●里々が翻訳したあとの「さくらスクリプト」
\0\s[0]\1\s[10]\0普通のポストで終わりたくないなぁ…\w2…\w2\n\_w[126]\n[half]\1…\w2…\w2っていうかお前、\_w[78]自分を普通だと思ってたのか。\_w[84]\n\n[half]\0え?\e


 具体的には、以下の様な処理をしています。
 
 ・サーフェスをデフォルトに戻す
 ・\0,\1,\n[half]に置き換え
 ・改行を\nに置き換え
 ・(0)\s[0]に置き換え
 ・_\q[?][?]に置き換え
 ・文字数に応じて\w?を付け加え(自動ウェイト挿入)
 ・最後に\eを付け加え
 
 
 しかし、たまにしか使わないような「さくらスクリプト」まで独自の記号etcにしてしまっては、結局さくらスクリプトを覚える手間と変わらなくなってしまいます。なので、里々のサンプル辞書の一部や、このFAQの上の方では「さくらスクリプト」を使用しているわけです。(ウェイトはまた、難しい問題なんですけどねー)
 

イベントって?

 ゴーストが喋るきっかけです。
 materia本体は、何か変化が発生すると、それを栞(=ゴーストの喋り管理部)に伝えます。
 逆にいうと、materiaが何もイベントを送ってくれないなら、ゴーストは喋ることができません。
 
 
 materiaは、ゴーストに何か喋って欲しい事態が起きたとき、ゴーストに対し「イベント」を送ります。
 ゴースト側は、そのイベントに対し喋るべきことがあるなら、materiaに喋る内容を返します。
 
 
 
 
 
 materiaに返すトーク(喋る内容)は「さくらスクリプト」で記述されていなくてはなりません。
 
 上の図で、栞が里々だった場合、
  ・起動時に、各種のイベントに対応した喋りを辞書から読み込む
  ・materiaからイベントがくる
  ・対応するイベントが辞書に書いてあれば「さくらスクリプト」に翻訳してmateriaに返す
 という処理が行われます。
 
 
 「イベント」にはユーザによる操作(OnMouseDoubleClick等)のほかにも、materiaがヘッドラインを取得しようとする(OnHeadlinesenseBegin)ものや、単に時間が経過した(OnMinuteChange等)ものなど、多種多様に渡ります。
 
 ランダムトークもイベントトークの一種です。
 OnSecondChangeというイベントがあり、名前の通り1秒ごとにmateriaから送られてくるのですが、これを数十回数えてから、1回だけ喋る内容を返す、という処理になっています。
 
 繰り返しますが、イベントの発生はゴーストが喋るきっかけです。
 ゴーストの喋りは全てイベントトークであり、イベントが発生しなければゴーストは喋ることはありません。

バグを見つけたんだけど黙ってた方がいいですか?

 よくないです。掲示板などで報告してくださるようお願いします。

他の栞から乗り換えようと思うんだけどイマイチ里々がつかめない。

 こちらの文書をどうぞ。

機能に不満があります。

 掲示板などに提案/要望を出していただければ、対処するかもしれません(しないかもしれません)。

他の栞に乗り換えてもいいですか?

 ご遠慮なくどうぞ。
 
 里々も随分色々なことができるようになりましたが、相変わらず「簡単さ」「見やすさ」を最優先しており、きめ細かな制御や複雑なシステムの記述には向いていません。
 やりたいことが里々では難しいようならば、他の「お節介焼きでない」栞を使ったほうが幸せになれます。
 
 里々から別の栞へ移行する際に一番問題になるのは、直接「さくらスクリプト」を記述しなければならないことでしょう。が、逆にそれさえ乗り越えれば、どの栞も「イベントトークによる構成」という基本構造は同じなため、そう躓くところはないと思います。
 
 トップに戻る