別の仮想世界にアバターを転送する!

2008年9月26日(金)
劉 小路

インターバースへの課題

 仮想世界の相互接続には1つの重要な問題があります。それはユーザーが仮想世界での持ち物をどうやって、ほかの仮想世界に持ち運ぶかということです。

 似たような状況はWebでも現れています。UGC(User Generated Contents)と呼ばれて、現在多くのユーザーは単にWebから情報を取得するだけではなく、テキスト、画像、ビデオなどいろんな形でインターネット上に自分のコンテンツを作り、ネット上の友達と共有することができます。

 仮想世界は最初からこうしたWeb 2.0の特徴を継承しています。仮想世界のユーザーはテキスト、画像、ビデオ、友達リストなどWebでおなじみのデータ以外に、島上の建築物、車など3Dのオブジェクトも所有できます。

 さらに、特に重要なのがユーザーの分身となるアバターデータです。こういったユーザーの所有物が自由に仮想世界サービス間で持ち運ぶことができないのは、仮想世界の発展を阻害する大きな要因の1つとされています。

 オープンソースであるOpenSimの登場で、インターバースへの試みがさらに関心を集めるようになりました。まだ開発中ですが、ここで、OpenSimを利用する仮想世界サービスの間にユーザーのコンテンツを共有する方法を紹介します。

アバターをグリッド間で転送する技術

 グリッド間でのアバターの転送を実現するための主な変更ポイントは、既存の「ユーザーログイン」と「アバターの初期化」の2つのプロセスにあります。図3は、2つの仮想世界サービス間で、アバターとインベントリのデータの共有する方法を示しています。今回の前半で紹介した知識をベースに説明します。

 まず、ユーザーログインの手順です。ユーザーがログインする時に認証情報として「アクセスするリージョン」が必要です。仮想世界間で転送するには、リージョンが所属するグリッドサービスも付けて、以下のように指定します。

[リージョン名]@[グリッドサービスアドレス]
例:MyIsland@OSGRID

 このように指定すると、ユーザーログインプロセスの手順3にて、ユーザーサーバーは、同じ仮想世界サービス内のグリッドサーバーではなく、ユーザーの指定するグリッドサーバーにリージョン情報を問い合わせます。こうして、ユーザーは1つのユーザーサーバーでアカウントを登録すれば、どの仮想世界のリージョンにもログインすることが可能になります。

 続いてアバター、インベントリデータの取り込み処理について説明します。ログインプロセスの手順4で、ユーザーサーバーは認証用キー値とともに、ユーザーの所有データを提供するサーバーのURLも一緒にリージョンサーバーに送信します。なお、ユーザーの所有データを提供するサーバーとは、ユーザーサーバー(ユーザーのアバターデータを提供)、インベントリサーバー、アセットサーバー(ユーザーの持ち物データを提供)です。

 これらのURLを取得してから、リージョンサーバーは、所属している仮想世界サービスのデフォルトのインベントリサーバー、アセットサーバーではなく、実際にユーザーのデータを提供している各サーバーにデータをリクエストして、仮想世界に取り込みます。

 これらの処理が成功すれば、アバターを別の仮想世界に転送することができます。

 さて、4回にわたってOpenSimの概要、インストール、その仕組みなどを紹介してきました。まずは、実際に試してみて、その可能性を実感していただければと思います。本連載がそのきっかけになればと幸いです。

3Di株式会社
京都大学情報学科、東京大学大学院を経て、2006年ヤフー株式会社に入社し、Webサービスのバックエンドシステムの開発に従事。現在、シニアエンジニアとして3Di株式会社で3Dサーバアプリケーション製品開発を担当。OpenSimプロジェクトのコントリビューターでもある。http://3di.jp/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています