シンクロオブジェクトの必要性

現状、「ポリゴンウォーク」の空間は、アバターの位置情報以外はユーザー間で
連携はしていません。

空間内のオブジェクトの動きはあくまでクライアント側(ユーザーのブラウザ)だけで
独立したものです。

例えば、ユーザーAが空間内の家の照明をつけるとします。
しかしユーザーBの空間では照明はつきません。

これを実現するにはクラアント側が変更したオブジェクトの変化の情報を一度データベース側で
保持し、その後に全ユーザーのブラウザに情報を配信する必要があります。

3D空間内での体験の共有という意味ではこれは非常に重要な機能になると思います。

先ほどの照明の例でもそうですが、例えば、空間内で船を操縦するユーザーAがいるとします。
ユーザーAが操縦する船は全ユーザーのVRMLブラウザ内の港に同時に到着します。

そして船に乗って出発すると船の動きに連動してすべてのユーザーの位置情報が変化します。
これにより全ユーザーが同じ船から同じ景色を眺めることが可能になるのです。

オンラインゲームでは普通にやっていることですよね。
この同じ体験をするというのはとても楽しいものだと思います。

「ポリゴンウォーク」で言えば、例えばシンクロオブジェクトなるものを登録できる仕組みを作る。

基本的に他サーバーから参照したVRMLファイル内のノードにはJavascriptでアクセスができないため、
シンクロオブジェクトは別途「ポリゴンウォーク」側で登録してもらいます。

シンクロオブジェクトには「ポリゴンウォーク」側でユニークなID(DEFノード)を設定し、
マップ読み込み時にそのIDを付加したオブジェクトをjavascriptでVRMLブラウザに設置します。

これであればWEBブラウザはJavascriptを介しVRMLブラウザ内のオブジェクトとデータの受け渡しが
できるため、あるユーザーのVRMLブラウザから抽出したオブジェクトのパラメータを随時データベースに
登録して一定間隔で全ユーザーのVRMLブラウザに同期をとることが可能です。
※トリガーとなるユーザーをどう決めるかの問題はありますが。

しかし、このような実装方法の場合、オブジェクトの動きはひどいことになりそうです。

現状のアバターの動きでさえかなりタイムラグがあります。
Javascriptの定期処理で設定した間隔で同期をとって全ユーザーのVRMLブラウザに位置情報を伝えて
いるため限界がありますね。

おそらくこのシンクロオブジェクトの動きはとびとびになると思います。
※インタポレーターで動きを補間させるのもひとつの方法でしょうか。

となると、そもそもの通信方法から見直す必要があるのかもしれません。
※この辺の技術は勉強不足で想像もつきませんが…。

しかしゆくゆくイメージしている仮想空間に近づけるためにはこういった部分を勉強してゆく必要も
ありそうです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>