「SHIORI Event簡易解説」の編集履歴(バックアップ)一覧に戻る

SHIORI Event簡易解説 - (2010/11/14 (日) 17:15:35) のソース

''SHIORI Event簡易解説''

[[SHIORI Event>http://ukadoc.googlecode.com/svn/trunk/manual/list_shiori_event.htm]]とは、ベースウェアから発信されてくる「イベント」の事を指します。一部のさくらスクリプトと密接な関係を持っており、また、ゴースト作成では基本として押さえておきたい事項となります。

このページではこのSHIORI Event(以下イベント)について簡単に解説をします。
----
#contents()
----

*伺かの基本構造
|BGCOLOR(#fcc):伺か|BGCOLOR(#fee):ベースウェア|>|>|伺か本体。&br()materia、SSP、CROWなど。現行の主流ベースウェアはSSP。|
|~|~|BGCOLOR(#eef):プラグイン|>|本体にインストールするプラグイン。|
|~|BGCOLOR(#fee):ゴースト|>|>|辞書データと立ち絵から成るキャラクターデータ。|
|~|~|BGCOLOR(#eef):ghost|>|辞書。文書や定義データ。|
|~|~|~|BGCOLOR(#eef):shiori|栞。ベースウェアと辞書の間を繋ぐdll。要するに翻訳機。&br()里々、YAYA、華和梨など。|
|~|~|~|BGCOLOR(#eef):saori|ゴーストに機能を追加するプラグイン。|
|~|~|BGCOLOR(#eef):shell|>|立ち絵。画像や当たり判定などの定義データ。|
|~|BGCOLOR(#fee):バルーン|BGCOLOR(#eef):balloon|>|台詞表示用ふきだしのデータ。|


*イベントの流れ
実際はちょっと違いますが概ねこんな感じ。
#image(eventdoc1.jpg,title=イベントの流れ)
即ち、イベントとはベースウェアからゴーストへと送られる、返送用封筒のついた郵便物のようなものだと言えます。&br()
ゴーストへ届いた郵便は、shioriの通訳によって適切な情報(スクリプト)を記入し、再びベースウェアに返送されます。その後、ベースウェアが中身を解釈してユーザのパソコンに表示したり、機能を動かしたりするというわけです。


*イベントの種類
-詳しくは[[SHIORI Event>http://ukadoc.googlecode.com/svn/trunk/manual/list_shiori_event.htm]]を参照のこと。
-起動した時にOnBootが、終了した時にOnCloseが、という基本的なものから、ゴーストをダブルクリックした時に発生するOnMouseDoubleClick、選択肢をクリックした時に発生するOnChoiceSelectまで非常にたくさんあります。
-ゴースト制作の基本とは''&color(red){これらのイベントにトークや機能を織り込んでいく作業}''と言っていいでしょう。
--里々ではあまり使う機会のないOnSecondChangeも、他の栞ではランダムトークに欠かせません。

**リファレンスについて
-ベースウェアがイベントを発生させ、ゴーストに反応を求める時、ゴースト側が対応しやすいように色々な追加情報を''イベントと一緒に''送信します。これをリファレンス(Reference)と呼びます。
--リファレンスは基本的に0、1、2…と0から順に使われます。
--使用するshioriによって、リファレンスの参照の仕方が異なり、短縮して表記されている事があります。里々では(R0)、(R1)、(R2)…となっています。

***実際のリファレンスの例
|BGCOLOR(#fdd):イベント名|OnGhostChanged|
|BGCOLOR(#fdd):説明|他のゴーストから自ゴースト切り替えられた際に発生。|
|BGCOLOR(#fdd):Reference0|直前のゴースト名。|
|BGCOLOR(#fdd):Reference1|直前のゴーストの切り替え時のスクリプト。|
このイベントは、他のゴーストから「ゴースト切り替え」によってこちらのゴーストに切り替わって起動した時に発生します。リファレンスは表に書いてある通りです。
-''Ref.0 直前のゴースト名''
--ここに格納されている値を使えば、特定のゴーストを狙い、切り替わった時に特殊な起動トークをさせたりする事ができます。リファレンス1と併用して、俗に言う「切替反応」に使われています。
-''Ref.1 直前のゴーストの切り替え時のスクリプト''
--これはつまり切り替わる直前にしていたトークです。この値を用いて、含まれている単語などで判別すれば、直前のトークに応じて個別に切り替わりトークを作ることができます。


*イベントを発生させるさくらスクリプト
-さくらスクリプトの中には、時計合わせイベントを発生させたり、矩形選択モードに入ったり、\![raise,~]などのように自らイベントを発生させるコマンドもあります。もちろん、そのリファレンスごと設定できるものもあります。
--raiseイベントでのリファレンスの使い方はゴーストベンダーのアイディア次第ですが、例えば、あるイベントで得た情報を他のイベントで使いたいとき、普通はいったん別の変数に情報を保存します(リファレンスは当然それぞれのイベント中にのみ使用可能な情報です)が、「即座に」「連続で」情報を使いたい時に、辞書のソースを無駄に肥大化させることなく、すっきりした文章でまとめる時などに活躍します。

*イベントの実装方法

**里々
-里々はSHIORI Eventを簡単に実装する事ができます。例えば OnKeyPress イベントに対応したい場合、
 *OnKeyPress
 >(R0)が押された
-…と、「*」の後にイベント名を書くだけです。
-従って里々の場合、実装そのものより&color(red){この辞書や他の辞書に同じイベント名がないことをキチンと確認する}のが肝要となります。同じ名前のイベントが2つ以上記述されていると、当然この中からどれかがランダムで選ばれるため、意図通りの動作をしてくれません。
-特に里々のテンプレートゴーストである ポストと狛犬 は、ある程度のイベントが最初から実装されています。実装前に全ての辞書で検索を行いチェックをしましょう。なお、小文字・大文字には充分注意して下さい。


**華和梨
-ミドルウェアを使用している場合、ミドルウェア側が新イベントに対応する必要があるため、自分で実装するのは困難を極めます。種類によってはミドルウェアの更新自体にも知識が必要です。ミドルウェアを使用していない場合は説明不要でしょう(知っていなければミドルウェアなしでゴーストは作れません)。
-どちらの場合でも、「無理矢理実装したい!」という場合は以下の方法を用います。
++${System.Request.ID} の使われ方の確認するため、kawarirc.kis を開きます。
++System.Callback.OnGET エントリを見て、${System.Request.ID} がどのように呼び出されているかを確認します。これで呼び出すイベント方法のエントリが分かるはずです。
&br()
-分からない場合
 event.OnKeyPress : ....
-か
 OnKeyPress : ....
-のどちらかを試して実験してみて下さい。大抵のミドルウェアはevent.イベント名のエントリで対応していると思われます。
&br()
-ちなみに華和梨でのリファレンスの参照方法は ${System.Request.Reference(値)} ですが、ミドルウェアによってはセキュリティチェックを通した別のエントリでの参照を推奨している事もあります。ただ、上記の記述でも動作はしますので、無理矢理実装したい場合は上記でOKです。







&br()&br()&br()

----
目安箱バナー