配布ゴーストのサイズ情報を取得するアレコレ

伺かゴースト「アマイロ」「ドラジェ」「シュネ」は、
それぞれにサイズ変化要素があります。

で、他のゴーストはサイズに関する情報を取得し、
なんかサイズ差のある会話をさせたりしなかったりできます。

ゴースト内の"#ChirashiNoUra.txt"にもサンプルを書きましたが、
そこじゃ目立たないしブログでも触れとこう的な記事。



OnRequestProperty を用いた取得方法

*アマイロのサイズを知りたい
:(0)アマイロさんのことを聞いてくるよ。
\![raiseother,アマイロ,OnRequestProperty,<あなたのゴースト名>,0,<知りたい情報>]

*OnGetProperty	(R0)==アマイロ
:(0)アマイロさんの(R2)は(R3)なんだって!

raiseotherでアマイロへとイベント通知を行い、
アマイロからの返答をOnGetPropertyとして受け取ります。
ごーすとじてん」の"データ収集(一部)"と同じはず。

ゴースト名は\0の名前ではなくゴーストそのものの名前を指定します。
知りたい情報はサイズ名スケール身長体重、を扱えます。
更にシュネのみ、経過日数、も扱えるようにしてあります。

サイズ名はそのゴースト内で各サイズに付けられた識別名です。
スケールは表示倍率、身長と体重はいま測った場合のものです。
(アマイロのメニュー右上に出る"ハーフ"等はサイズ名がそのまま出てます)

トーク分岐に用いるのであれば、スケールの値を使用すると良いでしょう。


OnOtherGhostScaleInfo の通知を受け取る方法

*OnOtherGhostScaleInfo	(R0)==アマイロ
$アマイロさんの0側スケール	(R1)
$アマイロさんの0側身長	(R2)

アマイロ達から送られてくるOnOtherGhostScaleInfoを受け取り、
そこで得た情報を記憶させておきます。
(R0)には送信元ゴーストの\0名が入ります。
※ゴースト名の"Emily/Phase4.5"等ではなく"Emily"等が入ります。
 コミュニケート時の指定と同じです。たぶん。

揃いも揃ってソロゴーストなので\0の情報だけですが、
予定としては(R6)に\1のスケール、(R7)に\1の身長
……と、なる気でいます。予定は未定です。

サイズ変化時とゴースト起動or呼ばれた時に送信されます。
なお、notifyイベントとして送信されているため、
上記例にトークを書き足しても喋りません。
変数に入れた上で使うこと前提になってます。


アマイロからの挨拶をサイズで分岐させる例

*OnOtherGhostScaleInfo	(R0)==アマイロ
$アマイロさんの0側スケール	(R1)
$アマイロさんの0側身長	(R2)

*アマイロ「 こんにちは
>コミュニケートでアマイロと会話
*アマイロ「 こんばんは
>コミュニケートでアマイロと会話

*コミュニケートでアマイロと会話 (アマイロさんの0側スケール)>=50
:(5)やっほー!

*コミュニケートでアマイロと会話 (アマイロさんの0側スケール)<50
:(2)小人さんだφ!?
やっほー!

アマイロが等倍~半分までなら普通にお返事、
それより小さければ別の反応をするサンプルです。

あ。もちろん、サイズ差を無視して普通に会話させてもOKです。
ユーザさんとも普通に会話してるんだし、へーきへーき。
狐耳も猫耳も幽霊も居るんだし、縮小も巨大化もあるんだよ。


ちなみに、実際に動作するサンプルとしては、
アマイロとドラジェのサイズ差に応じた会話があります。
これ最初の挨拶以外はすべて台本コミュニケートなんですよ。
互いに大きさ変わるから分岐すごくてトーク書くのたいへんだった。



最後に。ゴースト間でのサイズ情報やり取りに関しては、
このへんのサイトがめっちゃ参考になりました。ありがとうございます。
そずべねぐ/OnRequestPropertyとOnRequestValues - SpecWiki
UKADOC Project