別の仮想世界にアバターを転送する!
アバターの初期化
アバターとは、「ユーザーの分身となるキャラクター」です。仮想世界では、ユーザーはアバターの外形、服装、装飾品をカスタマイズして、自分の個性をアピールするので、アバターはとても重要な要素です。
OpenSimでは現在、セカンドライフと同じようなアバターのカスタマイズ機能を提供しています。アバターデータは、アバターの外見や服装をパラメーターで記述するデータと、実際の服装テクスチャなどの画像データの2部分からなります。外見や服装のパラメーターはユーザーサーバーで管理されていて、テクスチャ画像はアセットサーバーで管理されています。
クライアントから見ると、ユーザーがログインした後、アバターが表示されます。この間に図2に示す処理が行われます。
1.リージョンサーバーはユーザーサーバーにユーザーIDを送信し、アバターのデータを要求します。
2.ユーザーサーバーはアバターのデータをリージョンサーバーに返します。このデータには、アバターの外形を記述するパラメーターのほか、アセットサーバーで保存されているアバターの服装テクスチャのアセットIDも含まれています。
3.リージョンサーバーは手順2で受け取ったアバターのデータをそのままクライアントに返します。
4.アバターデータを受信したクライアントは外形パラメーターにしたがって、アバターをスクリーンに描画します。そして、服装のテクスチャをアバターに張るために、リージョンサーバーに服装テクスチャIDを送信して、服装などの画像データをリクエストします。
5.リージョンサーバーが手順4で受信した服装テクスチャIDをアセットサーバーに送信します。アセットサーバーは画像データをリージョンサーバーに返します。
6.リージョンサーバーは取得した画像データをクライアントに送信します。
7.クライアントでテクスチャ画像をアバターに張り付けます。これでアバターがスクリーンに表示されます。
アバター表示の処理について3つのポイントを紹介します。
1つ目は、アバターの取得では、クライアントが直接ユーザーサーバー、アセットサーバーと通信するのではなく、すべてリージョンサーバーを通して通信することです。
2つ目は、リージョンサーバーとユーザーサーバー、リージョンサーバーとアセットサーバーの通信はHTTPで、クライアントとリージョンサーバーの通信はUDPで行われることです。
3つ目が、このプロセスでは、アバターの外形が先に描画されて、その後服装のリクエストを行われることです。同時にログインするユーザーが多くなると、リージョンサーバーにアクセスが集中し、処理が遅くなります。ログイン数が多い時、クライアントのスクリーンに先にグレーのアバターが表示され、その後だんだん服が表示されるのはこれが原因です。
インターバースへ
1981年にティム・バーナーズ=リーがハイパーテキストの概念を元にWebを開発しました。インターネットのユーザーはWebブラウザでページ上のリンクをクリックすることによって、簡単にほかのWebサイトのページを閲覧することができるようになりました。それ以来、インターネットが爆発的な発展を成し遂げました。
インターネットはネットワークとネットワークのつながりによって形成されたように、仮想世界の別名である「メタバース」(http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%BF%E3%83%90%E3%83%BC%E3%82%B9)の相互接続によって、インターバースになるのではないかという考えの下、仮想世界においてもグリッドサービス同士をつながる研究が進んでいます。
次のページで、複数グリッドサービス間で、アバターを転送する技術を紹介します。