前にスカイランタン(空飛ぶ行灯)を作っていたのをイベントで一度にたくさん飛ばそうと言うことになり、タッチで飛ぶ仕組みだったものを裏チャットで飛ぶように改造していました。
飛行部分はwebで拾ってきた風船のスクリで、いろいろググったりスクリプタさんに聞いたりしながら作ってたんですが…
自分のsimで試したところ、数十個rezしてシャウトで飛ばしてみると、6個くらいしか飛びませんw
そこでさらに調べてみるとllListenはずっと待機状態だとけっこう重いんだと書いてあるサイトを見つけ、これはもしかしたらとlistenしたらすぐにllListenRemoveするようにしました。
いやスクリ書いてる方には常識なのかもしれませんが^^;;
それでもう一度テストすると数十個ちゃんと飛んでくれました。
一斉に飛んじゃうとあっというまに終わっちゃうので、listenしたあとランダムに時間を置いて飛ぶように改造し、会場である島上で四百数十個rezしテストしたところ全部飛んでくれました。
ただこれだけの数が物理になるとかなり重く、物理FPSが一時的にひと桁にww
それでもトラブルなく終わったので再度タイマーの数値を変え、今度は600個以上でテストしたところ…今度は100個以上残ってしまいました。
残った子たちにチャットコマンド与えても反応しないところを見ると、listenイベントは起こりListenRemoveされているようです。それでも飛ばないところを見るとその後の物理化のユーザ関数呼び出しに失敗したのかな??
タッチしたところ、タッチイベントは発生し飛んでくれました。
不思議だったのは、listenで飛ばなかった子たちはスクリプトをリセットしてもチャットコマンドを受け付けてくれなかったことです。
新しくrezしたものは普通にチャットコマンドで飛んだので、sim側がお腹いっぱいでlisten受け付けないとかじゃなかったようです。
ま、本番は500個以下でやりましょうw