ユーザ用ツール

サイト用ツール


大根コミュニケート

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
最新のリビジョン両方とも次のリビジョン
大根コミュニケート [2017/09/16 01:00] – 削除 master大根コミュニケート [2021/11/03 00:46] – 以前のリビジョンを復元 (2021/09/26 16:39) master
行 1: 行 1:
 +# 大根コミュニケートって何? 
  
 +## ゴースト間コミュニケートで変数(数値とか言葉とか)の受け渡しをする 
 +
 +- トークだけではわからない内容を送受信するのが目的です。
 +- 技術仕様の元ネタは[[台本トーク(仮)]]です
 +- ていうか、ゴースト間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 挨拶
 + :おー、元気してるか?
 +(隣で起動しているゴースト)と指定すると、そのまんまゴースト名が入る。~
 +起動していない場合は(変数「○○」の存在)で判定する。
 +```
 +
 +## 文の場合
 +
 +## 華和梨の場合