大根コミュニケート


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

FrontPage


これって何?

ゴースト間コミュニケートで変数(数値とか言葉とか)の受け渡しをする

  • トークだけではわからない内容を送受信するのが目的です。
  • 技術仕様の元ネタは台本トーク(仮)です
  • ていうか、ゴースト間I/Fと考えてもいいのかな。

何ができるの?

変数の受け渡しですが、具体的には・・・

  • ユーザを差し置いてゴーストだけで内緒話ができる。
  • サーフェイスを変えるだけのリアクションに反応できる。
  • 「え?」とか「はい?」だけでも何のトークの返信か特定できる。

使うには

ゴーストを改造する必要があります

  • 対応ゴーストであれば、「伺か」とゴースト以外に必要なものはありません。
  • 複数ゴーストの同時起動が前提となります。
  • ゴースト自身がSSTP(本体間のNOTIFY/1.1相当?)を拡張して使い、他のゴーストにトーク以外の追加情報を送ります。
  • 追加情報を送られたゴーストは、内容に応じてリアクションを返します

特徴

  • トークに追加して送る情報は、基本的に返信を「期待する」だけのものです。
  • ゴースト間コミュニケートの規格上に別の通信規格を載せただけです。

課題

  • 実装がちょっとめどい。
  • 送信する変数の氾濫や不統一がおこりそう
  • 複数個の変数がある場合はどうするか
    • 複数回のコミュニケートを行う?
    • 区切り文字を入れて一度に送信して相手側でsplitしてもらう?
    • 複数個の変数送信を禁止する?
  • あるいは相手ゴーストの関数呼び出しと考えてもいいけど、どういう仕様がベストか
    --関数とする場合、別の識別子にした方がいい?

発展

テンプレート的会話(キーワードによるトーク)

ある程度お決まりの会話パターンに対して固定のキーワードを用意すれば、
相手を問わない「一般的」で妥当な会話ができそう。(「挨拶」とか「ボケ」「ツッコミ」とか)

個別反応への発展(キーワードトークのオーバーライド)

キーワードによる汎用の会話は「ゴースト名」によって個別の反応に分岐できる。
切り替え反応で、個別のゴーストに対する反応を追加するようなもの。

世界観の相違によるキャラ崩れの防止

あらかじめトーク内容のジャンルを変数として受け渡し、返信によって振って欲しくない話題を相手に伝えることができる。
(HTMLのメタ情報で、ボット制御にNOINDEXを指定するみたいなもの)

「外見」などを判断

未知のゴーストであっても、相手が規格に対応していれば、外見上の特徴などの情報が取得できる。
(通常のコミュニケートは、デベロパが見聞きしてこれらの情報を判断し反応を返す)

既存のコミュニケートでリアクション

トークが何か判断を行うのに十分なものだったり、「こんな規格はよくわからん!」って場合は
渡された変数なんて無視して普通のコミュニケートを使ってもいいです。
会話のきっかけにはなるだろう。

仕様

送信

SendTo にゴースト名を入れればコミュニケートになる?
詳しい方補足お願いします・・・
空いてる最初の Reference に JPRadish を、
以降の Reference に任意の変数名や値をセットします。

受信

OnCommunicateイベント が発生したとき、
Reference に JPRadish を発見したら、
以降の Reference 値に応じて分岐なり処理なりします。

大根コミュニケート実装サンプル集

サンプルといえばHelloWorldでしょう。挨拶から。

里々の場合

dic05_Communicate.txtあたりにスクリプトを追加します。

受信

*COMMUNICATE該当なし
>コミュ受信(R2)
>COMMUNICATE該当なし通常

*COMMUNICATE該当なし通常
:(R0)からの通常コミュニケート。
該当なし。

*コミュ受信JPRadish
>大根で(R3)
:(R0)から、(R3)だって。
詳細は、(R4)が(R5)だってよ。
:しらん。

*大根で挨拶
:やっはー!!
:やっひー!!

送信

*ラベル (変数「隣で起動しているゴースト」の存在)
$相手ゴースト名=(隣で起動しているゴースト)
$Value0 (相手ゴースト名)
$Value1 JPRadish
$Value2 挨拶
:おー、元気してるか?

(隣で起動しているゴースト)と指定すると、そのまんまゴースト名が入る。
起動していない場合は(変数「○○」の存在)で判定する。

文の場合

華和梨の場合

ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。