気分と短期記憶 - SHIORI『真絵(mae)』仕様書
■気分
-
SHIORI真絵は内部的に気分を持っており、話したり話しかけられた文章に含まれる単語の価値観に従って、 内部的な気分は-MAX_SENTI~MAXSENTIで変化します。 その値は感情レベル-5~5に変換され、システム変数emotionで参照可能です。 感情レベルはプログラムや条件で参照する以外に、 タグ内に登録されている文章の選出で使用されます。 文章には価値観を持たせることができ、文章を選出する際に現在の感情レベルと同じ価値観の文章の中から優先的に選出されます。
例えば『AとBは仲直りしたかな』と話したときに、辞書の中でAの価値観が"3"、Bの価値観が"5"だった場合、内部的な気分は"3"+"5"="8"上昇します。 その結果、内部的な気分が現在"23"としたら"31"になり、その結果で感情レベルの閾値を超えると感情レベルが"+1"され、 その後は違う価値観から文章が優先的に選出されるようになります。 また感情レベルによって調整値を持っていて、話す度に調整値が気分に加えられます。 今のケースでは"+8"されましたが、その感情レベルの調整値が"-4"の場合、今回話すことで"+8"されるはずでしたが"-4"の調整値が加えられて、 結果的に"+4"されるということになります。調整値の目的は話すことで落ち着くという設定を作ることです。 気分の閾値と調整値は初期設定パラメータで設定できます。
ここまでは現在の気分の値に連動するものについての説明ですが、SHIORI真絵は気分の変化量によってイベントが変化することがあります。
Communicate BOXでユーザーに話しかけられたり、他のゴーストから話しかけられた文章の中から、 SHIORI真絵は自分の辞書で持っている単語を探します。 ヒットした場合、それらの単語の価値観をすべて足します。 また返答する文章で使用した単語の価値観もそこへ加えます。 結果は気分へ反映しますが、その変化量が負値の場合、返答をする際にMae.ResponseAgainstイベントが発生します。 変化量が"0"以上の場合はMae.ResponseFollowイベントが発生します。
■短期記憶
-
SHIORI真絵は使用した単語のタイトルを20個記憶しています。これを「短期記憶」と呼んでいます。 保存されたユーザー変数や文章そのものを長期記憶とすると、一時的にしか保存されない記憶をそのように呼んでいます。
SHIORI真絵は、短期記憶に保存されたタイトルに属する単語を優先的に使用します。 短期記憶がすべて同じタイトルになった場合、そのタイトル以外のタイトルを使用しようとします。これはSHIORI真絵が話題に飽きるという仕様に基づいています。
短期記憶を使って単語を選出するには、辞書変数を使用してください。辞書変数には3種類あり、それぞれ少しずつ選出方法が違います。
-
「品詞グループ」の辞書変数を使用した場合
原則としてその品詞グループに登録されている品詞の中から単語は選出されますが、以下の考慮があります。
- 前回の文章で使った単語の「タイトル」と同じ単語を探し、存在すればその中からランダムで選出する。
- なければ(または、すでに使われた単語ならば)、次に古い「タイトル」と同じ単語を探し、存在すればその中からランダムで選出する。
- なければ(または、すでに使われた単語ならば)、最近使われた「ジャンル」を持つ単語が登録されているすべての品詞の中から、前回の文章で使った単語の「タイトル」を元に単語をランダムで選出する。
- なければ(または、すでに使われた単語ならば)、最近使われた「ジャンル」を持つ単語が登録されているすべての品詞の中から、次に古い「タイトル」を元に単語をランダムで選出する。
- なければ(または、すでに使われた単語ならば)、タイトル「一般」からランダムで選出する。
- なければ(または、すでに使われた単語ならば)、全体からランダムで選出する。
一文章の中で単語の重複はないようにしていますが、単語の登録数が少なく全体からランダムで選出した場合は、重複使用のチェックはしていません。 最終的に単語が存在しなければUNDEFINED_WORDを表示します。
-
「部分文章」の辞書変数を使用した場合
部分文章定義ファイルに登録された部分文章からランダムで選出されます。その中で使用している単語については「品詞グループ」の単語の選出方法に従います。
-
「ジャンルグループ」の辞書変数または「ジャンル」を使用した場合
「ジャンルグループ」または「ジャンル」に登録されているジャンルの中から選出されます。「品詞グループ」の単語の選出方法に従います。