SecondLife×Voxのアーキテクチャ
SecondLifeではllHttpRequestでWebと話をすることができます。これを使って、SecondLifeとWebをつなげています。
実装は、
クライアントサイド: LSL
サーバーサイド : Catalyst + Perl
で行うことにしました。
LSLからサーバーに対してHttpRequestを送って、サーバーではVoxの写真や音楽を取得し、XML::RSSを使って、タグから関連する画像、映像のURLを絞り込んで取得して返却します。
llHttpRequestでは結果を非同期で受け取ることができ、レスポンスが戻ってきたら画像、音楽のURLリストを順に再生するというスクリプトをLSLで書いています。
全てをLSL内で処理するのも可能といえば可能なのですが、LSLで書かれたライブラリが殆どないので、なるべくサーバーサイドで処理をしないと、開発をするのがしんどいのでこのような形になりました。また、LSLはSecondLife内でコンパイルしないといけないので開発速度が遅いというのもあって、殆どの処理はサーバーサイドで行っています。