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

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

アバターの初期化

 アバターとは、「ユーザーの分身となるキャラクター」です。仮想世界では、ユーザーはアバターの外形、服装、装飾品をカスタマイズして、自分の個性をアピールするので、アバターはとても重要な要素です。

 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)の相互接続によって、インターバースになるのではないかという考えの下、仮想世界においてもグリッドサービス同士をつながる研究が進んでいます。

 次のページで、複数グリッドサービス間で、アバターを転送する技術を紹介します。

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

連載バックナンバー

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

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

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

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