らくだ屋/里々から華和梨への移行ガイド・SHIORI Event実装編
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
華和梨 8.2.8 系
#contents
#br
*イベントに対応していこう [#a8b344fa]
-基本的な事を覚えたら、[[SHIORI Eventリスト:http://ukadoc...
-ここでは工夫を必要とする一部のイベントと、作り方を紹介
#br
-以下、例示するロジックは分かりやすくするため、System.Cal...
System.Callback.OnGET : $(entry ${System.Request.ID})
System.Callback.OnNOTIFY : $(entry ${System.Request.ID})
-つまりここから先はOnBoot時にはOnBootエントリをそのまま呼...
#br
#br
*触り反応(つつかれ) - OnMouseDoubleClick [#b33b2644]
-これがないとゴーストとして認められないかも知れない、まず...
-一般的なゴーストにダブルクリックすると、メニューを出した...
>栞イベント: OnMouseDoubleClick
>ダブルクリックされた際に発生。
>Reference0 マウスカーソルの x 座標(ローカル座標)
>Reference1 マウスカーソルの y 座標(ローカル座標)
>Reference2 常に0。
>Reference3 本体の場合は0、相方の場合は1が返る。
>Reference4 当たり判定の識別子。
>Reference5 左クリックは0、右クリックは1、ホイールクリッ...
-上のリファレンスは判別のために3~5を使う
OnMouseDoubleClick : $(entry ${R3}${R4}つつかれ)
0Bustつつかれ : \0\s[7]さわんなタコ!!\e
-これはさっきの例、しかしReference5を使っていない。このま...
-↓修正すると共に、メニューを追加し、また、対応した場所が...
OnMouseDoubleClick : $(if $[ ${R5} == 0 ] $(entry ${R...
0Bustつつかれ : \0\s[7]さわんなタコ!!\e
0つつかれ : \0\s[0]なに?\w9\n${メニュー}\e
メニュー : \q[お話して","ランダムトーク]\n\q[なんで...
ランダムトーク : 略
キャンセルトーク : 略
-これはReference5の判別にifを使った例。これで、左のダブル...
-ひとまずダブルクリックに関する対応は完了
#br
#br
*触り反応(なでられ) - OnMouseMove [#y81b9038]
-頭をなでたりした時の反応が欲しいので、これをOnMouseMove...
-実現するための工夫が要求されます kisもバンバン使わなけ...
-これを自作できるようになればあなたも立派な華和梨ャー
>栞イベント: OnMouseMove
>マウスが(当たり判定内を)移動した際に発生。
>Reference0 マウスカーソルの x 座標(ローカル座標)
>Reference1 マウスカーソルの y 座標(ローカル座標)
>Reference2 マウスホイールの回転量および回転方向。
>Reference3 本体の場合は0、相方の場合は1が返る。
>Reference4 当たり判定の識別子。
-ここではReferenceの0~2は不要(Reference2についても、ホ...
-とりあえず作ってみようということで、ダブルクリックと同じ...
OnMouseMove : $(entry ${R3}${R4}なでられ)
0Headなでられ : \0\s[5]なんだよー。\e
-とやってみると。。。んまやってみてください。反応しすぎに...
-マウスがシェルのHead領域に入った瞬間にトークしてしまう
#br
**改良その1 [#ob7b0d4c]
-そんなわけで、なでられ反応を成立させるためにOnMouseMove...
-このイベントは、&color(red){マウスが(当たり判定内を)ち...
-なので、このイベントが来るごとにチェック用の変数を加算し...
敏感度 : 50
# 低いほど過敏に反応する
OnMouseMove : $(inc なで数) $(if $[ ${なで数} >= ${敏感...
なでられ反応 : $(set なで数 0)${${R3}${R4}なでられ}\e
0Headなでられ : \0\s[5]なんだよー。\e
-↑動作としては「シェルの上をマウスが一定走るとトークする...
-ここではentryは不要と判断し、代わりに入れ子で対応
-kisの概説は以下の通り
--inc 指定エントリに1を足す // なで数 = なで数 + 1 ...
--set いわずもがな。ここではincで加算された【なで数】を0...
#br
**改良その2 [#daeef7f2]
-上の挙動は、一見正しそうに見えるが実際はあんまり正しくない
-実行してみると以下の問題点があったはず
--&color(blue){1.シェルのどこを移動しても【なで数】がカウ...
--&color(blue){2.敏感度(50)に達した時点の(最後にマウス...
---&color(blue){2-1.それまでHeadを触っていても、50に達す...
---&color(blue){2-2.極端に敏感な時とそうでない時がある};
-解決の方策
--カウント用の変数を、領域ごとに複数用意する
---1 と 2-1 の解決
--OnSecondChangeイベントが来た時(1秒ごとに来る)、カウン...
---2-1 と 2-2 の解決
#br
-人によってどう解決するかまるで違うため、ここでは執筆者の...
敏感度 : 60
OnMouseMove : (
$(set @j 0)
$(foreach @i 当たり判定 $(if $[ ${@i} == ${R3}${R4}...
$(if $[ ${@j} == 0 ] $(push 当たり判定 ${R3}${R4}) )
$(inc ${R3}${R4}なで数)
$(if $[ ${${R3}${R4}なで数} >= ${敏感度} ]
$(set ${R3}${R4}なで数 0)${${R3}${R4}なでられ}
)
)
OnSecondChange : (
$(foreach @i 当たり判定 $(set ${@i}なで数 $[ ${${@i}な...
)
0Headなでられ : \0\s[5]なんだよー。\e
0Headなでられ : \0\s[5]さわんなよー。\e
0Bustなでられ : \0\s[1]……。\e
0Bustなでられ : \0\s[7]胸を触るな!\e
-挙動の簡易説明
--マウスが通った当たり判定の名称で区別したカウント用の変...
--マウスが通った当たり判定の名称を変数【当たり判定】に追...
--1秒毎に、【当たり判定】に格納された変数名を全て2で割る
#br
#br
*ランダムトーク - OnSecondChange [#aca239a6]
-一般的には必須のはず
-これも里々のように自動ではしてくれないため、OnSecondChan...
-なでられ反応に比べればずっと楽です
>栞イベント: OnSecondChange
>1秒ごとに発生。
>Reference0 連続起動時間(hour)
>Reference1 見切れ時に1、それ以外は0が返る。
>Reference2 重なり時に1、それ以外は0が返る。
>Reference3 cantalkが再生されるときに1、それ以外は0が返る...
>Reference4 ※SSPのみ タイムアウトするまでの時間。(秒単位)
-Reference1~2は後々「見切れ・重なり」に対する反応を作る...
-理屈としては、なでられ反応と同じようにカウント用の変数を...
-余談はさておき、ランダムトークの実装例
トーク頻度 : 120
# 秒数で指定してね!
OnSecondChange : (
$(inc Talkcount)
$(if $[ ${Talkcount} >= ${トーク頻度} ] $(set Talkcount...
)
ランダムトーク : \0\s[0]新世界の神に\1\s[10]なりません。...
-トーク頻度を超えたらトークする。イベントが1秒毎に来る、...
-簡単
-さっきの例と組み合わせると、OnSecondChange部はこうなる感...
OnSecondChange : (
$(foreach @i 当たり判定 $(set @i $[ ${${@i}なで数} / 2 ...
$(inc Talkcount)
$(if $[ ${Talkcount} >= ${トーク頻度} ] $(set Talkcount...
)
-以上
#br
*以下執筆中 [#aab11848]
終了行:
華和梨 8.2.8 系
#contents
#br
*イベントに対応していこう [#a8b344fa]
-基本的な事を覚えたら、[[SHIORI Eventリスト:http://ukadoc...
-ここでは工夫を必要とする一部のイベントと、作り方を紹介
#br
-以下、例示するロジックは分かりやすくするため、System.Cal...
System.Callback.OnGET : $(entry ${System.Request.ID})
System.Callback.OnNOTIFY : $(entry ${System.Request.ID})
-つまりここから先はOnBoot時にはOnBootエントリをそのまま呼...
#br
#br
*触り反応(つつかれ) - OnMouseDoubleClick [#b33b2644]
-これがないとゴーストとして認められないかも知れない、まず...
-一般的なゴーストにダブルクリックすると、メニューを出した...
>栞イベント: OnMouseDoubleClick
>ダブルクリックされた際に発生。
>Reference0 マウスカーソルの x 座標(ローカル座標)
>Reference1 マウスカーソルの y 座標(ローカル座標)
>Reference2 常に0。
>Reference3 本体の場合は0、相方の場合は1が返る。
>Reference4 当たり判定の識別子。
>Reference5 左クリックは0、右クリックは1、ホイールクリッ...
-上のリファレンスは判別のために3~5を使う
OnMouseDoubleClick : $(entry ${R3}${R4}つつかれ)
0Bustつつかれ : \0\s[7]さわんなタコ!!\e
-これはさっきの例、しかしReference5を使っていない。このま...
-↓修正すると共に、メニューを追加し、また、対応した場所が...
OnMouseDoubleClick : $(if $[ ${R5} == 0 ] $(entry ${R...
0Bustつつかれ : \0\s[7]さわんなタコ!!\e
0つつかれ : \0\s[0]なに?\w9\n${メニュー}\e
メニュー : \q[お話して","ランダムトーク]\n\q[なんで...
ランダムトーク : 略
キャンセルトーク : 略
-これはReference5の判別にifを使った例。これで、左のダブル...
-ひとまずダブルクリックに関する対応は完了
#br
#br
*触り反応(なでられ) - OnMouseMove [#y81b9038]
-頭をなでたりした時の反応が欲しいので、これをOnMouseMove...
-実現するための工夫が要求されます kisもバンバン使わなけ...
-これを自作できるようになればあなたも立派な華和梨ャー
>栞イベント: OnMouseMove
>マウスが(当たり判定内を)移動した際に発生。
>Reference0 マウスカーソルの x 座標(ローカル座標)
>Reference1 マウスカーソルの y 座標(ローカル座標)
>Reference2 マウスホイールの回転量および回転方向。
>Reference3 本体の場合は0、相方の場合は1が返る。
>Reference4 当たり判定の識別子。
-ここではReferenceの0~2は不要(Reference2についても、ホ...
-とりあえず作ってみようということで、ダブルクリックと同じ...
OnMouseMove : $(entry ${R3}${R4}なでられ)
0Headなでられ : \0\s[5]なんだよー。\e
-とやってみると。。。んまやってみてください。反応しすぎに...
-マウスがシェルのHead領域に入った瞬間にトークしてしまう
#br
**改良その1 [#ob7b0d4c]
-そんなわけで、なでられ反応を成立させるためにOnMouseMove...
-このイベントは、&color(red){マウスが(当たり判定内を)ち...
-なので、このイベントが来るごとにチェック用の変数を加算し...
敏感度 : 50
# 低いほど過敏に反応する
OnMouseMove : $(inc なで数) $(if $[ ${なで数} >= ${敏感...
なでられ反応 : $(set なで数 0)${${R3}${R4}なでられ}\e
0Headなでられ : \0\s[5]なんだよー。\e
-↑動作としては「シェルの上をマウスが一定走るとトークする...
-ここではentryは不要と判断し、代わりに入れ子で対応
-kisの概説は以下の通り
--inc 指定エントリに1を足す // なで数 = なで数 + 1 ...
--set いわずもがな。ここではincで加算された【なで数】を0...
#br
**改良その2 [#daeef7f2]
-上の挙動は、一見正しそうに見えるが実際はあんまり正しくない
-実行してみると以下の問題点があったはず
--&color(blue){1.シェルのどこを移動しても【なで数】がカウ...
--&color(blue){2.敏感度(50)に達した時点の(最後にマウス...
---&color(blue){2-1.それまでHeadを触っていても、50に達す...
---&color(blue){2-2.極端に敏感な時とそうでない時がある};
-解決の方策
--カウント用の変数を、領域ごとに複数用意する
---1 と 2-1 の解決
--OnSecondChangeイベントが来た時(1秒ごとに来る)、カウン...
---2-1 と 2-2 の解決
#br
-人によってどう解決するかまるで違うため、ここでは執筆者の...
敏感度 : 60
OnMouseMove : (
$(set @j 0)
$(foreach @i 当たり判定 $(if $[ ${@i} == ${R3}${R4}...
$(if $[ ${@j} == 0 ] $(push 当たり判定 ${R3}${R4}) )
$(inc ${R3}${R4}なで数)
$(if $[ ${${R3}${R4}なで数} >= ${敏感度} ]
$(set ${R3}${R4}なで数 0)${${R3}${R4}なでられ}
)
)
OnSecondChange : (
$(foreach @i 当たり判定 $(set ${@i}なで数 $[ ${${@i}な...
)
0Headなでられ : \0\s[5]なんだよー。\e
0Headなでられ : \0\s[5]さわんなよー。\e
0Bustなでられ : \0\s[1]……。\e
0Bustなでられ : \0\s[7]胸を触るな!\e
-挙動の簡易説明
--マウスが通った当たり判定の名称で区別したカウント用の変...
--マウスが通った当たり判定の名称を変数【当たり判定】に追...
--1秒毎に、【当たり判定】に格納された変数名を全て2で割る
#br
#br
*ランダムトーク - OnSecondChange [#aca239a6]
-一般的には必須のはず
-これも里々のように自動ではしてくれないため、OnSecondChan...
-なでられ反応に比べればずっと楽です
>栞イベント: OnSecondChange
>1秒ごとに発生。
>Reference0 連続起動時間(hour)
>Reference1 見切れ時に1、それ以外は0が返る。
>Reference2 重なり時に1、それ以外は0が返る。
>Reference3 cantalkが再生されるときに1、それ以外は0が返る...
>Reference4 ※SSPのみ タイムアウトするまでの時間。(秒単位)
-Reference1~2は後々「見切れ・重なり」に対する反応を作る...
-理屈としては、なでられ反応と同じようにカウント用の変数を...
-余談はさておき、ランダムトークの実装例
トーク頻度 : 120
# 秒数で指定してね!
OnSecondChange : (
$(inc Talkcount)
$(if $[ ${Talkcount} >= ${トーク頻度} ] $(set Talkcount...
)
ランダムトーク : \0\s[0]新世界の神に\1\s[10]なりません。...
-トーク頻度を超えたらトークする。イベントが1秒毎に来る、...
-簡単
-さっきの例と組み合わせると、OnSecondChange部はこうなる感...
OnSecondChange : (
$(foreach @i 当たり判定 $(set @i $[ ${${@i}なで数} / 2 ...
$(inc Talkcount)
$(if $[ ${Talkcount} >= ${トーク頻度} ] $(set Talkcount...
)
-以上
#br
*以下執筆中 [#aab11848]
ページ名: