インスタントゴーストクッキング
    バックナンバーl 1・材料紹介 l 2・下ごしらえ l 3・成形 | 3/4・成形の補足 | 4・さしすせそ 
                       l 5・調味 l 6・仕上げ l
第五回────調味
2006年3月1日
インスタントゴーストクッキング
★第五回────調味

今回はゴーストの細かい反応やらイベントトークやらをいじります。
いわゆる君色カスタマイズというやつです。
ごめんなさい、今造語しました。

今回いじってゆくのは、前回に引き続き、ここ。


起動(dic01_Base.txt内)から時報(dic07_Time.txt内)までを逐一説明します。
下にある目次の青文字の部分に相当します。

この講座ではまず基本をということで、dic08_Labo.txtからdic10_SAORI_test.txt、
それに伴ってanotherフォルダも使わない予定。
でも、消す前に覗いてみてくださいね。

ちなみに、それぞれ、

dic08_Labo.txtは里々の機能の実験と実例集。
dic09_ExEvent.txtは外部アプリから送られてくるものへの反応。猫どりふやきのこなど。
dic10_SAORI_test.txtは里々に使われているSAORIの使い方のサンプル。
anotherフォルダはラボ内にあるマルチキャラクタ用のフォルダ。

となってます。
今回は使わないので、さっくりと消去。
後日必要になったらもう一度ポストと狛犬を落として、辞書から拝借してください。

□トークの種類
□基本的な形式
□バリエーション
□イベントトークの書き換え
□replace.txt
□satori_conf.txt
□satori_savedata.txt
□descript.txt



□イベントトークの書き換え
ひとつひとつ、ちまちまと説明してゆきますね。

まったくトーク名は置き換えず、文章を書き換えてゆくだけで完成します。
最悪、わからないところは自分のゴーストの口調に書き換えておしまい、という手もあり。

ランダムトークと同じく、複数同じ名前のトークを作れば、ランダムに呼び出されます。
しゃべる内容にバリエーションを作りたい場合には複数作りましょう。
また、代入を利用して短い台詞をたくさん用意するのも手です。

当たり判定などは大量になるようなら、別ファイルに分離するのが良策でしょう。
同様に、起動や終了も、大量になるなら分けましょう。管理しやすくなります。

★dic01_Base.txt
dic01_Base.txtには、初回起動、起動、終了の時のトークが頭の方にあります。
トークに「*起動」という名前がついていれば起動トークとなります。
初回起動、終了なども同じで、全く文字通りのものです。

<例文>
*起動
:今日も元気ー!?
:呼ばれて飛び出てじゃじゃじゃじゃーん!!

などのように書き換えましょう。

★dic02_Event.txt
dic02_Event.txtを見てみましょう。
ざっと眺めてみると、これら全ての行頭に、
「*OnWindowStateRestore」のように、なにかしら名前がついています。

例えば今あげたのは、アイコン化を解除したときに呼ばれるトークです。
そのトークにつけられた名前と内容を見て、適宜書き換えていきましょう。

(R0)や(R1)とあるのはいじらないでください。
そこに更新されたファイル数など変数が代入されます。

★dic03_Menu.txt
dic03_Menu.txtはつつかれ、なでられ反応。
それから、ゴースト固有のメニューもここに。

*0Headなでられ

というように記述されています。

「*」はイベント反応、「0」は\0側という意味、
「Head」は部位、「なでられ」は何をされたか、

を示しています。\1の反応を設定するなら、

*1Bustつつかれ

というように設定するわけです。

○メニューについて
ポストは顔をつつかれるとゴースト固有のメニューを出すので、
そのメニューもこのファイル内に書かれています。

実例集などがあるポストのメニューそのままというわけには当然いきません。
何がなにやら、という人は、

_ご意見やご要望など
_らぼ

を削って、ジャンプ先を自分のゴーストの口調に書き換えるだけでもまあ。
実はメニューなしでも問題があるわけではないので、メニュー自体つけないのも手です。

なんとなく理解は出来たという人は、独自のメニューに書き換えましょう。
基本としてはしゃべり頻度の調節などが入ります。

<例文>

:メニューだよ。

_しゃべり頻度を変えたい
_他のゴーストさんに話しかける

メニューのための選択肢を書き換えたなら、ジャンプ先の名前も書き換えが必要です。

★dic04_Change.txt
他のゴーストへの切り替え時のトークが記述されているファイル。

<例文> *他のゴーストへ変更
>(R0)へ変更
:では、次の人に代わりまーすっ。

切り替え時には、「他のゴーストへ変更」というトークが呼び出されます。
「(RO)へ変更」に該当するトークがあれば、そちらが優先して呼ばれます。

>(RO)へ変更の(RO)には、
切り替える相手のsakura.name(本体側の名前)が入ります。

ゴースト名ではないことに注意してください。
実際に、切り替えを行う時には次のようなことになります。

「period α」に切り替えるとしましょう。
「period α」のさくら側(\0)の名前は「α」なので、
(R0)には「α」が代入され、「*αへ変更」というトークを参照します。

★dic05_Communicate.txt
コミュニケートはゴースト同士、
もしくはユーザとゴーストの間でやり取りをするためのものです。

同時にたっているゴーストが複数いる場合、
最後に起動したゴーストに焦点が当たるようです。

*「  」の後に書かれている言葉に反応できます。
括弧の後に、全角スペースが一つ入ることに注意してください。
全角スペースを入れて、同じ反応を返す単語のバリエーションを増やせます。

」で指定されている行が相手のゴーストには返信として聞こえます。
どれだけ同じ文字があったかで、どの言葉が言われているのか判定しています。
語彙になければ「機嫌」の中の「嫌」だけしか聞き取れないなど聞き間違いもあります。

<例文>
*「  こんにちは  こんにちわ
→:はい、こんにちは。
:礼儀正しいやっちゃな。

この例では、「こんにちは」、もしくは、「こんにちわ」、という言葉を受けると、
「はい、こんにちは」という言葉を相手ゴーストに打ち返します。

トークとしては、

はい、こんにちは。
礼儀正しいやっちゃな。

となります。

ユーザとコミュニケートする場合(長いのでこれからコミュニケートをコミュと略します)、
直接、コミュニケートボックスに言葉を打ち込むことになります。

ゴーストの語彙は、対ゴーストコミュの時と変わりません。

ユーザが「こんにちは」と入力したときに帰ってくる返事「はい、こんにちは」に反応して、
他のゴーストさんが返事に対する返事をしてしまうことがあるかも知れません。

*COMMUNICATE該当なし

は、文字通り何も該当するものが見つからなかった場合にしゃべるトークです。
もしかしたら、一番これを聞く機会が多いかも。

★dic06_String.txt
ネットワーク更新先や、オーナードローのボタン名、
ゴーストのお勧めリンクなどを記述してあるファイルです。

ネットワーク更新にも関係します。
トークにつけられている名前は変えずに、内容だけいじってください。

ちなみに、絶対に必要なのは「@homeurl」だけで、
ネットワーク更新を行うつもりがないのならこれすら不要。
「@username」も里々内での置き換えを書いたものなのであった方がいいですが。

わかりにくそうなものについてちまちまと説明します。

@vanishbutton.visibleは消滅指示を表示するか、しないか。
半角英数字で記述します。「0」はしない、「1」はする、です。

@homeurlはネットワーク更新用ファイルがおいてある場所を示します。

*sakura.portalsitesは\0側のポータルリンク、
*sakura.recommendsitesは\0側のお勧めリンク。
*kero.recommendsitesは\1側のお勧めリンクとなっています。

肝心のリンク先の書き方は、
里々製作者の櫛ヶ浜やぎ様がメモを残してくれていますので割愛。
バナーURLがなくても、三行目は開けてトークを書かなければならないだとか、

*sakura.portalsites
-

と記述すると、メニューに区切り線が引けます、という小技を代わりに進呈します。

★dic07_Time.txt
時間関係のイベントについて記述されています。
タイマ機能のサンプルもついていますが、使わない人はさくっと消しましょう。

一分経過ごとに、里々は時間に関連するイベントを、

<例>(里々がどのような処理をしているかの記録の一部です)
*OnMinuteChange
  (現在分)→29
  >29分 not found.
  (現在時)→2
  (現在分)→29
  >2時29分 not found.

のように問い合わせています。
この例では、「2時29分」というトークがあるかを問い合わせていますね。

もし、該当するトークがあれば、そのトークを呼び出して再生します。

日にちに関しては、ゴーストを呼び出した際に必ず一度は参照されます。
該当するトークがあれば起動用トークではなく日にちのトークのほうが再生されます。

それにあわせて、時間イベントは、

<例文>
*15時
:おやつの時間だよ!
:甘いものが食べたいな。

日にちイベントは、

<例文>
*7月7日
:今日は七夕だよ。
:願い事は書いたか?

のように記述していきます。
そのままトークのところだけ書き換えても問題なし。

□replace.txt
「replace.txt」とは、文字の置き換えをするためのものです。

「replace.txt」は里々が辞書の中の計算式を計算したり、
スクリプトに変換する前の段階で適用されます。

置き換えをするという性質を利用して、
ウェイトやサーフィス番号に自分独自の名前をふることも可能です。

(笑顔)【タブ】(5)

とふっておけば、(笑顔)と辞書に記入したときに、
サーフェスの五番が表示されるわけです。

「replace_after.txt」はもろもろの計算や処理が終わった後の、
一番最後の段階で適用されます。

例えば、ゴースト名の後に、いつでも「さん」をつけるように辞書を書いていた場合、
「〜たん」という名前のゴーストを呼んだときには「〜たんさん」と呼んでしまいますよね。

こんなときに、「replace_after.txt」に、

たんさん【タブ】たん

と書き込んでおけば、「〜たん」ときちんと呼ぶことができます。

□satori_conf.txt
変数の初期設定と使うSAORIの定義を記述します。

SAORIというのは、里々の本体と同じくdllの形で配布されているプログラムで、
大なり小なりのいろいろな機能を追加するために同梱して使うものです。
里々の中にはすでに含まれているので記述がすでにいくつもあります。
ちょっぴり上級者向けなので、ここではいじらずスルー。

変数の初期設定というのは、要するにデフォルトの設定です。

元のままだと最初に起動されたときのユーザのデフォルトの名前は「ユーザ」で、
「$喋り間隔【タブ】180秒」とあるので三分間隔でランダムトークをします。

特に凝らなければ書き換える必要はありません。

この中の「$ユーザ名【タブ】ユーザ」を、
「$ユーザ名【タブ】ご主人様」に書き換えれば、
デフォルトでそのゴーストはユーザのことを「ご主人様」と呼ぶわけですね。

もっとも、(ユーザ名)という変数をトークの中で使用していなければ関係ありません。
よく言う名前を覚えさせるというのは、この変数「$ユーザ名」を書き換えているのです。

<変数ユーザ名の用例>

:べ、別に(ユーザ名)のために作ったんじゃないからねっ!
:ほんじゃわいが食べたろ…まずーっ!!

のように記述すれば、実際のトークでは、

べ、別にご主人様のために作ったんじゃないからねっ!
ほんじゃわいが食べたろ…まずーっ!!

となるわけです。なにこのすごいツンデレ

□satori_savedata.txt
名前のとおり、セーブデータです。
配布時に同梱してはいけません。

ちなみに、削除してもゴーストを起動すると新しいものが生成されます。
この中に書かれているのは、里々の取得した情報や、変数の情報など。

□descript.txt
名前は同じですが、シェルのときとは内容が多少異なります。
でも、やっぱりここでさくっと作って差し替えましょう。

◎一口メモ
辞書を書くときに助けとなるツールは、
「ポストと狛犬」の中に同梱されている「さとりて」と「れしば」です。

「さとりて」は直接ゴーストに打ち込んだトークをしゃべらせることが出来ます。
ただし、変数の一部は値がゼロになってしまうようですが。

「れしば」を起動してからゴーストを起動すると、
里々がどんな処理をやっているかを逐一表示してくれます。
括弧がどのように置き換えられていくかをリアルタイムで見ることが出来ますよ。
「れしば」のデータがあると、質問するときにも便利ですので、一度ぜひ試してみてください。

日時関係のトークはPC時間を進めたり戻したりすればテストすることが可能です。
さくら側(\0)のオーナードローのリンクには、自分のサイトへのリンクをつけておくのが便利。