イベント

イベントとは、ゴーストが動くための基点です。
ゴースト制作とはイベントに対応することと言っても過言ではありません。

伺かの仕様の知識がある方は栞としての里々-リクエストに対するレスポンスの記述を参照して下さい。
イベントの種類については外部サイトを参照。→Ukadoc SHIORI Eventリスト




イベントの流れ

里々に限らず、ほぼ全てのゴーストはイベントに対応する事で動いています。
発信されるイベントは多岐に渡り、そのタイミングは、時間が経過したり、ユーザが何かしたりと非常に様々。

#ref(): File not found: "kanikaisetsu.jpg" at page "栞としての里々"

イベントの正体

そんなイベントの実体ですが、こんな感じ。ナニコレ?
とりあえず、こういうのがベースウェアから大量に送られてくる、と思って下さい。

GET SHIORI/3.0
Charset: Shift_JIS
Sender: SSP
SecurityLevel: local
ID: OnMouseDoubleClick
Reference0: 201
Reference1: 186
Reference2: 0
Reference3: 0
Reference4: 
Reference5: 0
Reference6: mouse

上から四行くらいはとりあえず置いといて
ここで重要なのは、ID: OnMouseDoubleClickとその下に続くReference
IDはSHIORI Eventのイベント名で、Referenceはリファレンス。
ここで「おや?このリファレンスってまさか(R0)とか(R1)の事?」と閃いたら貴方はもう里々マスター。

里々でイベントに対応するには

*イベント(ID)名
(イベントに対応した内容や処理)

上記のように、普通のトークと同じ書き方でOK。
このイベントの中で、(R○)によってリファレンスを取得する事ができます。
なお、普通のトークと同じ書き方ということは、逆に言えばこの名前を別のトークに使ったり、変数名に使ったりすると、意図通りに動かなくなるということ。要注意。

書き方の例

上の例に当てはめるなら、OnMouseDoubleClickは、ユーザがダブルクリックした際に発生するイベントなので、

*OnMouseDoubleClick
:つつかれた。

と書いておくと、ゴーストをダブルクリックする度に「つつかれた。」と喋るようになります。

補足として、当然ながらこれだけだと何をつついても同じ事を言うだけ。
そこで、リファレンスの情報を活用して、つつかれた箇所に応じた、別のトークをするように分岐させていく事で、応答の幅を広げる事ができます。まずUKADOCを参照して、OnMouseDoubleClickの内容を調べてみると…

イベントIDOnMouseDoubleClick
Reference0マウスカーソルの x 座標(ローカル座標)
Reference1マウスカーソルの y 座標(ローカル座標)
Reference2常に0
Reference3本体の場合は0、相方の場合は1。SSP/CROWでは2以降もある
Reference4シェルの当たり判定の識別子
......

と、こういうもの。では本体と相方どちらがつつかれたかを示すReference3(R3)を利用すれば…

*OnMouseDoubleClick
>(R3)つつかれ

*0つつかれ
:つつかれた。

*1つつかれ
こっちを突くな。本体をつつけ。

と、細かく分けて様々な反応を返す事ができるようになるのです。
無理に喋らせなくても、イベントがくるごとに変数をチョイチョイ弄ったり、色々仕込んでみると楽しいかもしれません。

里々でリソースを設定するには

伺かの仕様にはSHIORI Resource(リソース)も存在しますが、SHIORI/3.0以降の仕様により通常のSHIORI Eventと区別されていません。
これがどういう事かというと、要するにリソースもイベントと同じ方法で設定できます

@homeurl
http://... または https://...

こんな感じ。homeurlはネットワーク更新のアドレスを指定するSHIORI Resourceです。

*と@

基本的にイベントやリソースに対応する時はどちらを使っても構いません。
強いて区別するとしたら、

くらいでしょうか。
汎用的には、リソースでは処理を書くケースは稀なので、@が使われる事が多いでしょう。

用語注釈

イベント
主にSHIORI Event(栞イベント)を指しますが、基本的にはベースウェアから通知される全ての情報はイベントと呼んでも間違いではないです。
SHIORI Resourceはリソースと呼んで区別はしていますが、これも総称するならイベントの一部になります。理由は、現在使用されているSHIORI/3.0規格において、イベントとの実装上の明確な違いがないためです。
リソース
前述の通りSHIORI Resourceのこと。ベースウェア本体が必要な都度通知を送り、栞+辞書が内容を返す形は普通のイベントと変わりませんし、その方法もほぼ同じです。
リクエスト
直訳すれば要望、要求。
伺かの仕様において、主にベースウェアなどが「イベントを発信し反応を求めること」をリクエストと呼びます。どちらかといえば難しい言い方ですが、「通知」が単に全てのイベントが送られてくる事を指すのに対し、「リクエスト」は反応(レスポンス)を要求するイベントに使われる事が挙げられます。
レスポンス
反応のこと。リクエストに応えるのがレスポンス。
関数でお馴染みの「何かを要求すると何かが返ってくる」ような動作を、「リクエストに対しレスポンスを返す」というような形で使います。
栞イベントやSAORIで稀に登場します。
スクリプト
文章。
ややこしいですが、栞においては「さくらスクリプト形式のトーク」を指す事が多いです。トークをさくらスクリプトの形式に変換した状態のもの、とも言えます。
基本的に、イベントのレスポンス内容は大半がスクリプトであるため、栞の動作に言及する際に用いられる事があります。

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-11-11 (土) 07:37:17