偽AI「翡翠」を使用するにあたって、翡翠で実現できることをつらつらと書いて行こうと思います。ここで示されている例は、拙作「何か with ほずみ」で使用されているものです。
v0.1.0 ダウンロード - hisuisoul010.zip
このテンプレートはあくまで手間を省くことのみを目的としています。翡翠についてのある程度の知識と理解が必須です。でも、なるべくわかりやすく解説したいとおもっていますので、ご意見等お待ちしております。
ダウンロード - hisui.hilight
秀丸用の強調定義ファイルです。秀丸を使用して翡翠のスクリプトを記述している方には便利かと思います。私もこれでスクリプトを見やすくしています。
ある話題をしたあとに、次に必ず話してほしい話題がある場合があります。話題と話題に関連づけを行うことを、ここでは「会話チェーン」と定義します。「会話チェーン」は基本機能としては実装されていませんが、変数による分岐を行うことによって、実現することができます。
// ----- // 通常ランダムトーク { token: OnHisuiFreeTalk.default script: \0\s[0]体中に拡張機能のためのポート穴があるんですよ。\n 各種周辺機器と接続可能です。\w4\n\n \1\s[10]USB端子もあるぞ。\w4\n \0\s[0]‥‥\w4そんなのあったっけ?\n\n\w4 \1\s[10]普段は使わないからな。緊急用だ。\n \formula[neta_0001 = 1] // ネタ0001フラグを立てる \e } // 関連ネタ0001 - USB { token: OnHisuiFreeTalk // ランダムトークイベント conditional: %[neta_0001] == 1 // ネタ0001フラグが立っているか? conditionalelse: OnHisuiFreeTalk.default // 立っていない場合は通常 script: \0\s[0]ねえ、%keroname?\w4\n \1\s[10]ん?\w4\n \0\s[0]さっきのUSB端子って、どこについてるの?\w4\n\n \1\s[10]‥‥‥\w4世の中、知らない方がいーこともある。\w4\n \0\s[4]‥‥どこにあるんだろう‥‥ \formula[neta_0001 = 0] // フラグを下ろす \e } // -----
まず、翡翠のランダムトークが OnHisuiFreeTalk によって起動します。このとき、変数「neta_0001」は「1」ではありませんので、通常のフリートークが選択されます。この時、会話チェーンをしたい話題の場合には、変数「neta_0001」を最後に「1」に設定します。
次のランダムトーク時には、変数「neta_0001」は「1」ですので、チェーン対象の話題が選択されます。話題の最後には変数「neta_0001」を「0」にして、ネタ0001の話題が選択されないようにします。これで、会話チェーンが成立しました。
あとは、会話チェーンにしたい話題ごとに、変数を別々に設定していきます。連続した話題の場合には、前のチェーンフラグを下ろした後に、次のチェーンフラグを立てればいいだけです。
注意点としては、conditionalelse, token を使用することによって、その話題が必ず選ばれるように制御することです。同時に成立してしまう token を作ってしまうと、翡翠は条件が成立するすべての話題からランダムに選択してしまいます。話題1つごとに変数、else文を作って制御することで、重複を防ぐことができます。
予定。
(c)2001-2003 Copyright Midori Aro. All rights reserved.
aro@bunny.or.jp