![]() |
![]() |
トップページへ | [ 一覧 | 検索 | 最終更新 ] [ 差分 | バックアップ | 凍結 ] |
![]() |
直前の会話をもう一度再生する『文』には直前の会話を再生する機能がありません。これをスクリプト側で実現するのが本稿の趣旨です。会話の再生時には、ベースウェアからAIの『OnAiTalk』が呼ばれますが、主にこのOnAiTalk関数に細工します。 OnAiTalkを改造する初期状態のOnAiTalk関数は、だいたい以下のような構造をしています。 aya_aitalk.dic
『文』では、ランダムトークを実現するためにOnAiTalk関数からRandomTalk関数を呼び出していますので、RandomTalk関数の戻り値を取得して、その戻り値を会話として再生するようにすれば、直前の会話を記憶しておくことが出来ます。改造したOnAiTalk関数は以下のようになります。
「//ここ!」が変更した場所です。 メニュー周りの改造変数を保存するだけでは再生機能が実現できないので、次にメニューを改造します。 #include(): No such page: 選択肢注意『文』でのメニュー表示を行う『OpenMenu』関数は、基本的に以下のようになっています。 aya_menu.dic
まず、これを以下のように変更します。
『OnLastTalk』関数を作る新たに作るOnLastTalk関数は以下のようにします。
これで、メニュー『さっきなんて言ったの?』を選択すると、OnLastTalk関数が呼ばれ、直前の会話が再生されるようになります。 これを応用して、lastTalkを簡易配列にするなどの変更を行えば、N個前の会話を再生するようなスクリプトも組めると思います。 |
最終更新日: Sat, 09 Dec 2006 16:12:52 JST (4152d)
|