「あれ以外の何か以外の何か」プロジェクト直轄サイト
華和梨本家 質問・感想 バグ・要望 使い方解説 テクニクス 関連リンク
プログラマブル準AI 華和梨 「あれ以外の何か以外の何か」掲示板 偽華和梨さんの虫パレード 華和梨を使い倒す? 私設「華和梨」応援団 偽かわりんくす

「あれ以外の何か以外の何か」掲示板

「プログラマブル準AI 華和梨」 「華和梨を使い倒す?」 「私設『華和梨』応援団」3サイト合同掲示板です。
ご質問、ご感想、ご意見などありましたら、お気軽にどうぞ。

(旧掲示板はこちら:旧あれ以外の何か以外の何か掲示板旧華和梨を使い倒す掲示板旧私設『華和梨』応援団掲示板過去ログ

現在、投稿受付を休止しております。ご不便をお詫びします。



一括表示

No.1390 はじめまして。トーク設定とコミュニケートについての質問です。 - 朧童子 -
[2005/01/03(Mon) 15:11:35]
ゴーストを作り始めたばかりの者です。
初歩的な質問かも知れませんが、どうかご容赦を。

サンプルゴーストの“GOA Lilith入門”を見本にしています。
動作は大体思うとおりに動いてくれるようになったのですが、
トーク設定を押しても何も起こらず、
コミュニケートも登録している単語を使わないと反応してくれません。
〔どちらも無視されているようなのです。〕

色々なサイトを廻ったのですが、まだ解決法がわかりません。
誰か、教えて下さい。
使っているのは、サンプルに入っていた華和梨です。

No.1391 Re: はじめまして。トーク設定とコミュニケートについての質問です。 - WO'tW -
[2005/01/04(Tue) 01:11:20] [レス先No.1390]
初歩的というよりも、結構厄介な問題かもしれません。
というのも、華和梨の場合、ミドルウェア(Goa LilithやOpenKEEPS)を間に挟んでいたとしても、少なからず華和梨の独自言語(Kis)で記述しないといけませんし、さくらスクリプトだけでなく、華和梨の記述規則もちゃんと守らないと動作しないからです。

特にGOA Lilithの場合、ミドルウェアというよりも、Kisで直接ゴーストを組み立てるための必要最小限の雛形、という形をとっており、コア(心臓部)として弄らなくて良い部分も目に付く所にあったりするため、ちょっとした変更ミスで動かなくなる可能性も孕んでいます。
ですので、実際のスクリプトを見せてもらって調べた方が早い、という事が多々あります。

と、これだけではなんですので、質問内容から考えられる原因とチェックポイントを示しておきます。

> トーク設定を押しても何も起こらず、
> コミュニケートも登録している単語を使わないと反応してくれません。

どちらも、真っ先に考えられるのが「エントリ名を誤って記述し(書き換え)ている」でしょう。
華和梨のエントリは、半角と全角、そしてアルファベットの大小文字の違いもきちんと区別されます。

「OnTalkSpeed」「ontalkspeed」「OntalkSpeed」…これらは全て異なるエントリとして扱われてしまいます。

ちなみに、GOA Lilithの初期状態での「トーク設定」の部分ですが、
--------------------------------------
  \![*]\q[トーク設定","OnTalkSpeed]\n\n\n\n
--------------------------------------
OnTalkSpeed:(
  \t\0\s[0]どうするの?\n\n
  \![*]\q[ときどき話す","TalkSwitch.on]
  \![*]\q[黙る","TalkSwitch.off]
)
--------------------------------------
となっています。

GOA Lilithでは「\q[(項目),(ID)]」タグの(項目)が選ばれた時、(ID)をそのままエントリとして呼び出す、というようにミドルウェア部分が作られています。
ですから、トーク設定を押された時のID「OnTalkSpeed」と、その実行先であるエントリ名が完全に一致するように記述しないといけない訳です。

それと「コミュニケートも〜」ですが、GOA Lilithのコミュニケートはそれこそイベントの呼び先を作っているだけで、反応を返すようにするためには、ご自身でkisを使い、反応を作らないといけない訳ですが…。
こればかりは、実際に作られたスクリプトを見てみないとなんとも言えないです。

最初から上手く華和梨が扱える人なんてそうそうおりませんから、どんどん自分の書いたものを見せてください。
ガンガン添削しながら教えますので。

No.1392 トーク設定について。 - 朧童子 -
[2005/01/04(Tue) 02:36:13] [レス先No.1391] [親記事No.1390]
コミュニケートの反応は、見直して書き換えたら反応してくれるようになりました。
アドバイス、ありがとう御座います。
けれど、トーク設定はまだ動いてくれません。



[OnTalkSpeed][トーク設定設定]


#トーク設定
OnTalkSpeed:\t\0\s[0]どうするの?\n\n\q0[TalkSwitch.on][ときどき話す]\q1[TalkSwitch.off][黙る]

TalkSwitch.on:\t\0\s[0]わかった$(set TalkSwitch on)\e
TalkSwitch.off:\t\0\s[0]じゃあ黙る$(set TalkSwitch off)\e



最初は、こんな風になっていました。
エントリ名は、念の為コピー ペーストまでしましたが、やはり動きませんでした。
例で提示してくれたものに書き換えもして見ましたが、其れも動かなかったのです。
他の場所での記述間違いが、此処に影響してしまったのでしょうか?
お手数かけますが、添削をお願いします。

No.1394 Re: トーク設定について。 - WO'tW -
[2005/01/04(Tue) 09:36:56] [レス先No.1392] [親記事No.1390]
> お手数かけますが、添削をお願いします。
提示された部分をこちらで用意したGOA Lilithの該当部分にコピー、書き直して試してみましたが、問題なく動きました。

となると、GOA Lilithのミドルウェア部分での問題かもしれません。
ちなみに、選択肢を選択した時、GOA Lilithでは、「event.txt」ファイルの「イベント呼び出し」(9行目〜)の、
----------------------------------------
System.Callback.OnGET:${${System.Request.ID}}
----------------------------------------
が呼ばれ、更に
----------------------------------------
OnChoiceSelect:$(entry ${System.Request.Reference0})
----------------------------------------
と呼び出す事で、該当するエントリを呼び出しています。

テキストエディタに検索機能があれば、「System.Callback.OnGET」と
「OnChoiceSelect」という言葉で検索をかけ、該当するエントリがあるか、その内容が壊れていないか確認してみてください。

それでも駄目な場合は、該当するファイルを見せていただけないでしょうか?
(方法などについてはまた、その時に相談という事で)

No.1395 トーク設定について。 - 朧童子 -
[WWW-Page] [2005/01/06(Thu) 09:30:31] [レス先No.1394] [親記事No.1390]
レスが遅れて申し訳ありません;


OnChoiceSelect:$(entry ${System.Request.Reference0})
というものは見つけたのですが、
System.Callback.OnGET:${${System.Request.ID}}
にあたる部分が見付かりません。
多分、この部分が抜けているのだと思います。
それで、設定の部分に付け足したのですが、
位置が悪いのかやはり動かず、それどころか他の機能まで巧く動かなくなってしまいました。
全文は長いので、リンクで張っておきます。

何度も尋ねてお手数かけます……

No.1396 Re: トーク設定について。 - WO'tW -
[2005/01/07(Fri) 03:30:28] [レス先No.1395] [親記事No.1390]
> OnChoiceSelect:$(entry ${System.Request.Reference0})
> というものは見つけたのですが、
> System.Callback.OnGET:${${System.Request.ID}}
> にあたる部分が見付かりません。
> それで、設定の部分に付け足したのですが、
> 位置が悪いのかやはり動かず、それどころか他の機能まで巧く動かなくなってしま
> いました。

 原因は解りました。

・付け足した「System.Callback.OnGET:${${System.Request.ID}}」は削除。
・「OnChoiceSelect:$(entry ${System.Request.Reference0})」の頭に「event.」と
 つけて「event.OnChoiceSelect:$(entry ${System.Request.Reference0})」と修正。

 多分、この2点を修正すれば大丈夫、とは思いますが…。

 他の機能が動かなくなった原因は、新しく付け足した「System.Call.OnGET」と、
(恐らくは「kawaric.kis」に記述されているだろうと思われる)「System.Call.OnGET」
とが重複してしまったためと思われます。


 華和梨は、全てエントリにデータを記憶します。
 そして、本体からイベントが送られてくると、そのイベントを分析した上で特定の
エントリ…システムエントリ…を呼び出し、その内容を解釈(華和梨マニュアルでは
「評価」)していきます。

 例えば、ゴーストにトークさせるためのイベントが本体から送られてくると、華和梨
は「System.Callback.OnGET」を呼び出します。
「System.Callback.OnGET」では、呼び出されたイベントが何かを調べ、そのイベントに
該当するトークが記載されているエントリを呼び出す、という訳です。

 システムエントリはゴーストを動かす上で必要不可欠なエントリであり、大抵は必ず
読み込まれる辞書ファイル「kawaric.kis」に記述することが多いです。

#ちなみに、GOA Lilithの現行バージョン(6.0)では、「kawaric.kis」は辞書ファイル
#の読み込み指定のみで、システムエントリは「event.txt」に書かれています。
#朧童子さんが参考にしているのはGOA Lilithの現行版ではなく、それ以前のものか、
#もしくは他のミドルウェアのものも参考にしているのではないか、と思われますが…。

No.1397 有難う御座いました! - 朧童子 -
[2005/01/11(Tue) 13:21:47] [レス先No.1396] [親記事No.1390]
返信が遅くなって申し訳ありません;
丁寧なアドバイス、有難う御座いました。
華和梨は、思ったよりも可也複雑です……

GOA Lilithの現行版を参考にしていると思っていましたが、違ったのですね……
今度不具合が出ても、現行版を参考にして、自力でまた頑張ってみようと思います。

それでは。
短いですが、添削してくださって有難う御座いました。

直結ホットライン (またはマルチ"戻る"ボタン)
プログラマブル準AI 華和梨
華和梨本家。「華和梨」配布中。
「あれ以外の何か以外の何か」掲示板・バナー
この掲示板。質問、感想など、お気軽に。
偽華和梨さんの虫パレード
不具合報告&要望掲示板。気楽にどうぞ。
華和梨を使い倒す?
華和梨の使い方解説ページ。
私設「華和梨」応援団
華和梨の応用テクニック紹介ページ。
偽かわりんくす
華和梨関係のリンク集。

- Web Forum v3.07 with CMT-Unit 0.3 -

[modified by 偽Meister]