* 足を向けて眠れません [#c9090d2c]
- かざまさん([[安藤生花店>http://hiho.boo.jp/ukagaka/]])が里々の場合の例を纏めて下さっています。[[こちら。>http://hiho.boo.jp/ukagaka/dic_hup.html]]
- Donさん([[にこらとてすらを置いてるところ>http://home.384.jp/evidence/]])が里々でのHand対応サンプルゴースト「&ghost(たっち&ごう);」を作成して下さっています。
* Handに対応をご検討のゴーストマスターさまへ [#vac16f67]
-Handは、OnHandActivateという特殊なNotifyイベントを色々なタイミングで、触る対象のゴーストに投げます。
-タイミングとパターンにより、Referenceの値が変わりますので、対応して下さる場合は以下の値を見て条件判断ができます。
-なお、Senderは常に"The Hand"です。
-必殺技の確認はとても大変だと思います((数字キーで対応する必殺技が発動しますので使ってください。))。
-こんな情報が欲しい、この場合にこれを投げて欲しい、等ご要望ありましたら可能な限り対応させて頂きますのでご一報ください。
- 「移動した」の指標を、元のシェルの大きさの半分に変更しました。 -- ukiya &new{2006-06-15 (木) 10:45:37};
- Senderを取得するには、里々なら(Sender)で、文なら basewarename でいいようです。 -- ukiya &new{2006-06-28 (水) 22:19:26};
- 他の栞では、おそらくベースウェアの名前を取得する方法と同じ方法で取れると思います。SpecialThanks:上様 -- ukiya &new{2006-06-28 (水) 22:22:10};
- Ref.4にシェル番号を入れるようにしました。 -- ukiya &new{2006-09-30 (土) 16:08:06};
#comment
* イベント発生の流れ [#bbfb85c4]
** 通常触りの流れ [#ceb9e509]
通常触りは、以下の流れに沿って動作します。
(1)触る対象ゴースト位置(矩形)の取得
(2)OnHandActivate - NormalStartを対象ゴーストへ送信
(3)Handトーク、移動
(4)相手の位置(矩形)の移動判定 - (1)と場所が違えば(6)へ
(5)OnMouse~系イベントを対象ゴーストへ送信
(6)OnHandActivate - NormalEnd
但し、OnMouseMoveの場合は(4)と(5)を十秒間繰り返します。
従って、OnMouseMoveの場合は「触られた」と判定してからでも逃げられます。~
それ以外の場合は、NormalStartで逃げれば、触る前に逃げられます(多分)。OnMouseClick等で逃げても、触った後なので逃げたことになりません。
Handが「逃げた」と認識した場合、NormalEndのRef.が"escaped"になります。(後述)~
それを捕まえて「逃げられた~」等と発言して頂く事ができます。
** 必殺技触りの流れ [#fa5afe6b]
必殺技は以下の流れに沿って動作します。
(1)OnHandActivate - SuperStartを対象ゴーストへ送信
(2)触る対象ゴースト位置(矩形)の取得
(3)Handトーク、移動
(4)必殺技発動中:以下の動作が数秒間続きます
OnHandActivate - SuperContinue を対象ゴーストへ送信
相手の位置(矩形)の移動判定、(2)と場所が違えば(5)へ
(5)OnHandActivate - SuperEnd
従って、SuperStartでは逃げられません。追いかけてきます。
((例外は54さんで、特別な処理をしています。SuperStartで逃げたい場合お申し出下さるか、そのようにゴーストを作って頂けばこちらで勝手に対応するかもしれません))~
SuperContinueで、発動中に逃げることは可能です。~
Handが「逃げた」と認識した場合、SuperEndのRef.が"escaped"になります。(後述)~
それを捕まえて「逃げられた~」等と発言して頂く事ができます。
** Handが「移動した」と判定するロジック [#v265a2f4]
- 判断の指標は、相手の位置が、相手のシェルの大きさの半分より大きくずれたかどうかです。少しうごいた、等では「移動した」と判定はしません。
- シェルを変更して、シェルの高さ、幅が元のシェルの高さ、幅の半分以上変わった場合も「移動した」とみなします。
** シェル番号 [#fcb6ceed]
Handの現在のシェルに応じて番号が変わります。
|シェル|番号|備考|h
|master,grid|0|いわゆる普通のHand|
|Hand Girl|1|はんどたん|
* OnHandActivate リファレンス [#wccaf5f4]
** 通常の触りの場合 [#j3e09773]
|タイミング|Reference0|Reference1|Reference2|Reference3|Reference4|h
|触り開始|NormalStart|当たり判定名|触り方法|触り台詞|シェル番号|
|触り終了|NormalEnd|当たり判定名/escaped|触り方法||シェル番号|
-触り方法は、OnMouseMove,OnMouseDoubleClick,OnMouseWheel等が入ります。
-触り開始と終了の間に、1つ以上のOnMouse~系イベントが発生します。
--Senderが"The Hand"になっている点でユーザの触りとの見分けがつきます。
-触っている間(OnMouseMove系は複数投げるため時間がかかります)に、相手が移動した場合は、触るのを停止します。その場合でもNormalEndは発生します。
-- 触るのを停止した場合、NormalEndのRef.1は "escaped" という文字列になります。その場合Ref.2は空欄になります。
** 必殺技1 [#l5ca789d]
必殺技1:&ruby(レックス・トレメンデ){恐るべき御稜威の王};
|タイミング|Reference0|Reference1|Reference2|Reference3|Reference4|h
|必殺技開始|SuperStart|1|||シェル番号|
|必殺技途中|SuperContinue|1|触り回数|当たり判定名|シェル番号|
|必殺技終了|SuperEnd|1|MAX触り回数/escaped/nocollision/attacked/deleted||シェル番号|
-「必殺技開始」は必殺技ボタンを押した瞬間に発生します。
-「必殺技途中」は1秒間に数回発生します。
-触り回数は「必殺技途中」のたびに1ずつ増えます。
-「必殺技終了」はHITCOMBO報告を含め全てのトークが終わった時に発生します。
-必殺技中にマウスイベント(触り反応)は発生しません。
-必殺技中(Handが相手の位置に移動してから。SuperStartの後ではありません)に、相手が移動した場合は、必殺技を停止します。その場合でもSuperEndは発生します。
--必殺技を停止した場合、SuperEndのRef.2は "escaped" という文字列になります。
-当たり判定の無いゴーストに対しては、SuperStart→SuperContinue(触り回数0)→SuperEnd(Ref.2は"nocollision")という流れでメッセージが送付されます。
- 必殺技途中で何からの攻撃を受けて終了した場合、SuperEndのRef.2は"attacked"という文字列になります。
- 必殺技途中で何からの攻撃を受けてHandが消滅した場合、SuperEndのRef.2は"deleted"という文字列になります。
** 必殺技2 [#s7f5adb8]
必殺技2:&ruby(アニュス・デイ){神羊誦};
|タイミング|Reference0|Reference1|Reference2|Reference3|Reference4|h
|必殺技開始|SuperStart|2|||シェル番号|
|必殺技途中|SuperContinue|2|触り回数|当たり判定名|シェル番号|
|必殺技終了|SuperEnd|2|MAX触り回数/escaped/nocollision/attacked/deleted||シェル番号|
-「必殺技開始」は必殺技ボタンを押した瞬間に発生します。
-「必殺技途中」は1秒間に1回発生します。
-触り回数は「必殺技途中」のたびに1ずつ増えます。
-「必殺技終了」は「完了」表示と同時に発生します。
-必殺技中にマウスイベント(触り反応)は発生しません。
-必殺技中(Handが相手の位置に移動してから。SuperStartの後ではありません)に、相手が移動した場合は、必殺技を停止します。その場合でもSuperEndは発生します。
--必殺技を停止した場合、SuperEndのRef.2は "escaped" という文字列になります。
-当たり判定の無いゴーストに対しては、SuperStart→SuperContinue(触り回数0)→SuperEnd(Ref.2は"nocollision")という流れでメッセージが送付されます。
- 必殺技途中で何からの攻撃を受けて終了した場合、SuperEndのRef.2は"attacked"という文字列になります。
- 必殺技途中で何からの攻撃を受けてHandが消滅した場合、SuperEndのRef.2は"deleted"という文字列になります。
** 必殺技3 [#w6332eb9]
必殺技3:&ruby(デウス・エクス・マキナ){機械仕掛けの神};~
※対ヴィイの場合のみ発動
|タイミング|Reference0|Reference1|Reference2|Reference3|Reference4|h
|必殺技開始|SuperStart|3|||シェル番号|
|必殺技途中|SuperContinue|3|触り回数カウントダウン||シェル番号|
|必殺技終了|SuperEnd|3|||シェル番号|
-「必殺技開始」は必殺技ボタンを押した瞬間に発生します。
--(その後Handの口上や落書きなどが発生します)
-「必殺技途中」は1秒間に1回発生します(電撃表示と同時)
-触り回数は「必殺技途中」のたびに1ずつ減り、0まで行くと終わります。
--回数はランダムです。
-「必殺技終了」は「完了」表示と同時に発生します。
-必殺技中にマウスイベント(触り反応)は発生しません。
** 必殺技4 [#i0641a16]
必殺技4:&ruby(ディ・ゼヒツェーン・トートズュンデ){十六の大罪};((元ネタ:Die Sieben Todsunden))~
|タイミング|Reference0|Reference1|Reference2|Reference3|Reference4|h
|必殺技開始|SuperStart|4|||シェル番号|
|必殺技途中|SuperContinue|4|触り回数|当たり判定名|シェル番号|
|必殺技終了|SuperEnd|4|MAX触り回数/escaped/nocollision/attacked/deleted||シェル番号|
-基本的なシーケンスは必殺技1と似ています。
-「必殺技開始」は必殺技ボタンを押した瞬間に発生します。
-「必殺技途中」は&color(Red){1秒間に1回};発生します。
-触り回数は「必殺技途中」のたびに&color(Red){16ずつ};増えます。
-「必殺技終了」はHITCOMBO報告を含め全てのトークが終わった時に発生します。
-必殺技中にマウスイベント(触り反応)は発生しません。
-必殺技中(Handが相手の位置に移動してから。SuperStartの後ではありません)に、相手が移動した場合は、必殺技を停止します。その場合でもSuperEndは発生します。
--必殺技を停止した場合、SuperEndのRef.2は "escaped" という文字列になります。
-当たり判定の無いゴーストに対しては、SuperStart→SuperContinue(触り回数0)→SuperEnd(Ref.2は"nocollision")という流れでメッセージが送付されます。
- 必殺技途中で何からの攻撃を受けて終了した場合、SuperEndのRef.2は"attacked"という文字列になります。
- 必殺技途中で何からの攻撃を受けてHandが消滅した場合、SuperEndのRef.2は"deleted"という文字列になります。
** ホーミング [#f2c8154f]
必殺技1、4の途中で特定のゴーストに対しては一定確率で逃がさずに追いかけます。~
(現在リーライナのみ。他にも追いかけてもいいゴーストさんはご連絡ください)
その際、以下のイベントを送信します。
|タイミング|Reference0|Reference1|Reference2|Reference3|Reference4|h
|必殺技途中でホーミング発動|SuperHoming|1 or 4|ホーミング回数||シェル番号|
-1 or 4 は必殺技番号です。
-ホーミング回数は、1から始まってホーミング発生毎に+1されます。
-このイベントの後、普通にSuperContinueが継続します。