別の仮想世界にアバターを転送する!
インターバースへの課題
仮想世界の相互接続には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の概要、インストール、その仕組みなどを紹介してきました。まずは、実際に試してみて、その可能性を実感していただければと思います。本連載がそのきっかけになればと幸いです。