Adsense

2007年11月6日火曜日

同期ダンスの限界に挑戦してみたり・・・

ちょっと前の投稿で「LIN ちゃんからオーダーありました~」って書きましたが・・・

つくってみました、同期ダンスボールw (また、、、玉かいっ!!!)

ですが、その玉は Massive Link Dancers Massive Link Dance Unit という命名をいただきました~

LINZOO さんの呼びかけで多くの方に参加してもらい、たぶん 50人(Avatars) を超えての同期ダンス(シンクロダンス)をたのしんだわけで。

そのときの模様がこれ・・・・

image

引いたときのフォトはこれで、、、
image

SIM は落ちなかったけど、PC 側が大変でしたw
Avatar の数ぶんのデータを PC 側で処理するわけで、40人を超えたあたりからディスクアクセスが・・・・
SIM おちる前に、PC 側の SL ビューアーが落ちそうな(クラッシュしそうな)勢いでした(笑
この Massive Link Dancer(s) は、SIM に対する負荷は(今は)とっても低いんです。
Top Script でみても、このスクリプトは平均して 0.1 秒前後しか SIM CPU を使っていないんです。
LINZOO さんいわく、「これだけたくさんの Avatar が Link したのを見たのははじめてかも、、、」らしいです。
ちょっと、まだ「使い勝手」という点で修正・追加しなきゃならない機能はありますが、おおもとのスクリプトはこれでいけることが確認できたので、ASUKA のクラブ雷神ではすでに本番稼動(でも、スクリプトはまだベータなんですけどね・・・)してます。
もう少しテストと修正を加えたら・・・・うっちゃう?(笑
でも、ほんと、同期ダンス(シンクロダンス)が楽しくて、今まで続けていたようなものなので、まさか自分で作るとは思ってもいませんでした。
実は、、、Yaz Mania 玉の、、、、これも応用だったりするんです。Yaz さんに感謝w
もう一枚 SS をw
image
これで、LINK LINZOO BALL がフルなのでシンクロダンスできません・・・・ということはなくなりましたねw
[11/8追記]
はいはい~、ビデオできました~。

Video: Massive Link Dancers Unit
[追記おわり]

スクリプトとしては、3つのスクリプトが llMessageLinked で通信をして、Avatar の管理をしています。

DDManager という Touch イベント、List によるスロットアサインと管理、SyncManager という Animation の管理とスタート・同期制御、danceSlot という Avatar の Permission 管理、存在チェック、llStartAnimation 指示、そういう役割にしました。
danceSlot を Prim のコンテンツ内で copy すると danceSlot 1, danceSlot 2 と連番がつきます。 100 人ダンスーなんていってますが、たぶん DDManager が管理する Slot List がどんどん大きくなるので、そのメモリがなくなるまで Slot を増やすことが理論上は可能です、、、、(いくつかは試していませんw)

同期させる仕組みはとても簡単で、同じタイミングで複数のアバターに同じアニメーションを開始させる、、、なんですが、一番悩んだのは、スロット管理でした。
一人の Avatar にひとつの danceSlot スクリプトをアサインします。これは Permission を扱うからなのですが、問題は、そのアバターがいなくなったことを感知してスロットを開放しなきゃいけない、、、っていうことです。
再度タッチでダンスはとまるので、明示的にスロット開放はわかりますが、ダンスを止めないで TP しちゃった、、、、なんていうのも考えられます。そこで使うのは llSensorRepeat なんですよね、、、、これの時間の設定が、また、微妙で、、、、あまり短くしすぎると copy した danceslot が次から次へと、、、
このあたりはまだまだ調整の余地がたくさんありそう・・・・

DDManager のスロット管理、、、完全に開放されていないステータスのスロットが残ったり、、、という不具合があるので徐々に改良していきます~