SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

セカンドライフの世界に外部Webアプリケーションから乗り込む

HTTPとXML-RPCを使ったセカンドライフ外部アプリケーション連係


  • X ポスト
  • このエントリーをはてなブックマークに追加

セカンドライフの世界で実行可能なスクリプトの機能は限定的です。オブジェクト指向型言語ではありませんし、強力なフレームワークもなく、データベースも利用できません。しかし、HTTPリクエスト、電子メール、XML-RPCという逃げ道が用意されています。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 セカンドライフは、オンラインゲームの類ではなく、3次元オブジェクトのレンダリング・ツール、モデリング・ツールであり、作成したオブジェクトを共有するための空間を提供するストレージ・サービスであると考えるべきです。そして、オブジェクトにLSL(Linden Scripting Language)と呼ばれる専用のスクリプト言語を実行させられる、一種のアプリケーション実行環境であるとも捉えられます。

 ところが、経験あるアプリケーション開発者であれば、すぐにLSLが貧弱であまり実用的ではないということに気が付くでしょう。LSLは柔軟性に乏しく、簡単な計算と用意された関数の呼び出し、定められているイベントの実装程度の機能しか持ちません。クラスや構造体のようなユーザー定義型を作ることはできず、ポインタを使った多態性のあるコードを書くこともできません。

 こうした制限からLSLはデータ処理に弱く、加えてサーバ環境で実行されることからデータサイズやパフォーマンスの面でも制限が多く見られます。スクリプトが確保できる変数の領域は16KBまでであり、関数を通して受け渡しする文字列のサイズや、サーバに負担のかかる関数の遅延などの制限もあります。

 よって、LSLが対象としているプログラムは、オブジェクトを動かしたり、プログラムからオブジェクトのプロパティを変更したり、ちょっとした演出や効果といったものが中心となります。ビジネス・アプリケーションを考えた場合LSLの制限は大きな障害となるでしょう。

 LSL単体では実現が難しい処理や膨大な情報量を扱う方法は、Webと連携することです。幸い、セカンドライフはネットワーク上の孤島ではありません。驚くことに、LSLはEメールの送受信、HTTPリクエスト、そしてXML-RPCによるサービスの公開が可能になっています。こうした機能を使えばWebサービスを通して間接的にデータベースや高度なビジネスロジックを利用できるようになります。

 LSLは、オブジェクトからWebへの要求と、Webからオブジェクトへ要求という双方向通信が可能です。この機能を駆使することで、翻訳や辞書の問い合わせ処理といった複雑で膨大な情報を扱うプログラムをセカンドライフの世界で実現することができます。

 なお、Eメールは唯一セカンドライフの外部と送受信の両方が可能な通信方法ですが、データの交換には適さないため本稿では割愛します。プログラム的なデータの交換では、セカンドライフから外部へ通信を行うHTTPリクエストと、外部からセカンドライフへ通信を行うXML-RPCを使います。

情報ソースをWebと共有する

 最近は見かけなくなりましたが、一年ほど前からセカンドライフの世界に多くの企業が参入しているというニュースが流れています。Dell、IBM、トヨタ、日産といった大企業から、多くの中小企業も参入していますが、実際にセカンドライフに参入している企業の土地や店舗に行くと、自社ビルと看板を立てて満足してしまっている感が否めません。定期的な販促イベントが行われているのかもしれませんが、普段は閑散としています。

 自社ビル、看板、商品テクスチャを貼るだけの静的なコンテンツではユーザーはすぐに飽きてしまいます。しかし、常に自分の土地にオンラインのアバターを配置し、新しい情報をセカンドライフの世界で発信し続けるのはコストがかかります。

 こうした問題を解決するために、本稿では「セカンドライフ+Web」によるコンテンツを管理を提案いたします。LSLを用いて定期的にHTTPリクエストを送りWebサーバから情報を取得する仕組みを一度作れば、情報の管理はすべてWebベースで行うことができるようになり、セカンドライフ内での情報更新をすべて自動化できます。

 また、セカンドライフの世界のデータをWebサーバに送ることで、来客者数やコンテンツの利用者の情報などを集計することができます。加えて、セカンドライフの情報をブラウザなどで視覚化することもできるでしょう。セカンドライフ内のアバターとWebページの利用者がリアルタイムで同じ情報を共有することも可能です。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
HTTPリクエスト

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

赤坂 玲音(アカサカ レオン)

平成13年度「全国高校生・専門学校生プログラミングコンテスト 高校生プログラミングの部」にて最優秀賞を受賞。2005 年度~ Microsoft Most Variable Professional Visual Developer - Visual C++。プログラミング入門サイト WisdomSoft の管理人。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1763 2008/09/26 16:42

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング