#author("2023-11-11T07:37:17+09:00","default:post","post")
*イベント [#i1987797]
イベントとは、ゴーストが動くための基点です。~
ゴースト制作とはイベントに対応することと言っても過言ではありません。

伺かの仕様の知識がある方は[[栞としての里々-リクエストに対するレスポンスの記述>栞としての里々#oe83bc01]]を参照して下さい。~
イベントの種類については外部サイトを参照。→[[Ukadoc SHIORI Eventリスト>http://ssp.shillest.net/ukadoc/manual/list_shiori_event.html]]~
イベントの種類については外部サイトを参照。→[[Ukadoc SHIORI Eventリスト>https://ssp.shillest.net/ukadoc/manual/list_shiori_event.html]]~

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

#ref(栞としての里々/kanikaisetsu.jpg)


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

 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

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

*里々でイベントに対応するには [#d51552bb]

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

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

**書き方の例 [#s9f27f6e]
上の例に当てはめるなら、[[OnMouseDoubleClick>http://ssp.shillest.net/ukadoc/manual/list_shiori_event.html#OnMouseDoubleClick]]は、ユーザがダブルクリックした際に発生するイベントなので、
上の例に当てはめるなら、[[OnMouseDoubleClick>https://ssp.shillest.net/ukadoc/manual/list_shiori_event.html#OnMouseDoubleClick]]は、ユーザがダブルクリックした際に発生するイベントなので、

 *OnMouseDoubleClick
 :つつかれた。

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

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

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

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

 *OnMouseDoubleClick
 >(R3)つつかれ
 
 *0つつかれ
 :つつかれた。
 
 *1つつかれ
 こっちを突くな。本体をつつけ。

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

*里々でリソースを設定するには [#af3196e1]
伺かの仕様には[[SHIORI Resource>http://ssp.shillest.net/ukadoc/manual/list_shiori_resource.html]](リソース)も存在しますが、SHIORI/3.0以降の仕様により通常のSHIORI Eventと区別されていません。~
伺かの仕様には[[SHIORI Resource>https://ssp.shillest.net/ukadoc/manual/list_shiori_resource.html]](リソース)も存在しますが、SHIORI/3.0以降の仕様により通常のSHIORI Eventと区別されていません。~
これがどういう事かというと、要するに&color(#ff0000){リソースもイベントと同じ方法で設定できます};。~

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

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

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

-*は分岐処理やトークをしたい場合に向く
-@は一行で完結する書き方なので、短い応答に向く

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


*用語注釈 [#wbdbb76b]

:イベント|主に[[SHIORI Event>http://ssp.shillest.net/ukadoc/manual/list_shiori_event.html]](栞イベント)を指しますが、基本的にはベースウェアから通知される全ての情報はイベントと呼んでも間違いではないです。~
[[SHIORI Resource>http://ssp.shillest.net/ukadoc/manual/list_shiori_resource.html]]はリソースと呼んで区別はしていますが、これも総称するならイベントの一部になります。理由は、現在使用されているSHIORI/3.0規格において、イベントとの実装上の明確な違いがないためです。
:イベント|主に[[SHIORI Event>https://ssp.shillest.net/ukadoc/manual/list_shiori_event.html]](栞イベント)を指しますが、基本的にはベースウェアから通知される全ての情報はイベントと呼んでも間違いではないです。~
[[SHIORI Resource>https://ssp.shillest.net/ukadoc/manual/list_shiori_resource.html]]はリソースと呼んで区別はしていますが、これも総称するならイベントの一部になります。理由は、現在使用されているSHIORI/3.0規格において、イベントとの実装上の明確な違いがないためです。

:リソース|前述の通り[[SHIORI Resource>http://ssp.shillest.net/ukadoc/manual/list_shiori_resource.html]]のこと。ベースウェア本体が必要な都度通知を送り、栞+辞書が内容を返す形は普通のイベントと変わりませんし、その方法もほぼ同じです。
:リソース|前述の通り[[SHIORI Resource>https://ssp.shillest.net/ukadoc/manual/list_shiori_resource.html]]のこと。ベースウェア本体が必要な都度通知を送り、栞+辞書が内容を返す形は普通のイベントと変わりませんし、その方法もほぼ同じです。

:リクエスト|直訳すれば要望、要求。~
伺かの仕様において、主にベースウェアなどが「イベントを発信し反応を求めること」をリクエストと呼びます。どちらかといえば難しい言い方ですが、「通知」が単に全てのイベントが送られてくる事を指すのに対し、「リクエスト」は反応(レスポンス)を要求するイベントに使われる事が挙げられます。~

:レスポンス|反応のこと。リクエストに応えるのがレスポンス。~
[[関数]]でお馴染みの「何かを要求すると何かが返ってくる」ような動作を、「リクエストに対しレスポンスを返す」というような形で使います。~
栞イベントやSAORIで稀に登場します。~

:スクリプト|文章。~
ややこしいですが、栞においては「さくらスクリプト形式のトーク」を指す事が多いです。トークをさくらスクリプトの形式に変換した状態のもの、とも言えます。~
基本的に、イベントのレスポンス内容は大半がスクリプトであるため、栞の動作に言及する際に用いられる事があります。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS