伺かアドベントカレンダー2010/追加シェルとバルーンのネットワーク更新時にもトークさせるお話

SSPではゴーストのネットワーク更新時に使用している追加シェルやバルーンがネットワーク更新に対応しているならば、それらのネットワーク更新も合わせて実施することができる(SSPの設定によります)のですが、その追加シェルやバルーンのネットワーク更新時にちゃんとトークをしてくれるゴーストはまだまだ少ないといった感じがします(実際、手持ちのゴーストの中ではうみほたるさんの「無限遠」だけしか対応してないようでした)。

SSPの独自拡張ということで対応の重要度は低そうに見えますが、追加シェルやバルーンのネットワーク更新のトークを喋るようにしていない場合、画面表示上はバルーンにネットワーク更新のトークがいつまでも残り、さらに、何のアナウンスもなしにオンラインアイコンが表示されるといった状態になってしまいます(追加シェルやバルーンの更新に時間がかからない場合には表示されないこともあるようですが)。

百聞一見というわけで、まぁ、こんな感じ。バルーンの左下にオンラインアイコンがついてるのがわかってもらえればいいのだけれど。

別にこのままでも害は無いといえば無いのですが、どうせならちゃんと追加シェルやバルーンのネットワーク更新のトークを喋るようにしてあげましょう(ゴースト更新のネタにもなりますし)。
追加シェルの方はネットワーク更新対応の追加シェルがある一部のゴーストでしか必要ないかも知れないけど、少なくともバルーンの方はSSPデフォルトの「SSP デフォルト+」がネットワーク更新に対応してるのでSSPで動作する全てのゴーストにかかわる話になります。

というのが今回のお話。

で、どうすればいいの?

追加シェルやバルーンのネットワーク更新時、SSPは次のようなSHIORIイベントを投げてきます。

  • OnUpdateOtherBegin (ネットワーク更新開始時)
  • OnUpdateOtherReady (更新があった)
  • OnUpdateOtherComplete (更新終了or更新なし)
  • OnUpdateOtherFailure (更新失敗)
  • OnUpdateOther.OnDownloadBegin (ファイルのダウンロード開始)
  • OnUpdateOther.OnMD5CompareBegin (MD5照合開始)
  • OnUpdateOther.OnMD5CompareComplete (MD5照合成功)
  • OnUpdateOther.OnMD5CompareFailure (MD5照合失敗)

要するにゴーストのネットワーク更新用イベントであるOnUpdateBeginなどにOtherがついただけです。
で、そのパラメータもReference 3にshellやballoonなどの更新対象の種別の情報が追加されていることを除けば従来のOnUpdateBeginなどのイベントとまるっきり同じです。詳しくはDisc-2 ゴースト製作とかCROW・SSPリファレンスを参照。

というわけで、これらのイベントに対してトークをするように辞書を書いてあげればOKです。
更新対象の種別はどのイベントでもReference3に乗って来てるから逐次参照できるけど、更新対象の名称はOnUpdateOtherBeginのReference0にしか乗ってこないから、適当な変数に放り込んどいてあげれば更新の最後まで更新対象の名称を参照できてお洒落かも。
あと、ゴーストのネットワーク更新と違って栞のリロードは発生しないので華和梨でも難しいことは考えずトークをさせるだけで大丈夫です。

……で話が済むならC.R.O.W.はあっても苦労はないわけで。とりあえず、里々と華和梨向けに(ごめんなさい、YAYAはわかんないです)。

里々向け

このファイルをダウンロードして、ゴーストの辞書フォルダに放り込んでトークをゴーストに合わせて書き直してください。里々はこのファイルを自動的に里々の辞書ファイルとして読み込んでくれます。
とりあえずポスト準拠ですが他のテンプレートゴーストでも問題なく動くはず。

和梨向け

とりあえず、今、配布されてるミドルウェア向けに。元から対応してるかりんと新規使用は非推奨のFUDSは除きます。

和梨向け1・OpenKEEPS編

このファイルをダウンロードして templete フォルダに放り込んでトークをゴーストに合わせて書き直してください。OpenKEEPSの設定をいじってないなら読み込んでくれるはず。

和梨向け2・華和梨のかおり編

このファイルをダウンロードして talk フォルダに放り込んでトークをゴーストに合わせて書き直してください。華和梨のかおりの設定をいじってないなら読み込んでくれるはず。

和梨向け3・wish編

これを doc05event.txt の最後あたりにでもコピペしてトークをゴーストに合わせて書き直してください。

和梨向け4・paripari編

これを dict_event.txt の最後あたりにでもコピペしてトークをゴーストに合わせて書き直してください。

和梨向け5・lv1編

これを User/network.txt の最後あたりにでもコピペしてトークをゴーストに合わせて書き直してください。

和梨向け6・GOA Lilith

これを dict/event.txt の最後あたりにでもコピペしてトーク部分をゴーストに合わせて書き直してください。

動作の確認の方法

S.E.E.D.でイベントを投げるのがイイと思うけど、よくわからないなら、追加シェルやバルーンのファイルを適当に(surface0.pngとかballoonc0.pngとか)削除してネットワーク更新をかけるとテストできます。
ただし、この方法でやるときはネットワーク用URLをダミーのURLに書き換えてゴースト自体のネットワーク更新は失敗するようにしておくのを忘れずに。忘れるとせっかく更新した内容が消し飛んでしまって悲惨なことに!

ちなみに、追加シェルはゴーストに依存するのでともかく、バルーンの方は「SSP デフォルト+」(フォルダ名はssp)がネットワーク更新に対応してるバルーンなのでテスト用にはこれを使うといいかも。標準で入ってるからみんなもってるはずだし。