On Fri, Apr 07, 2006 at 02:31:42PM +0200, Karsten Otto wrote:
> Hello,
> 
> I am a bit confused about the way avatars are supposed to work. This  
> seems to be handeled inconsistently across the VOS code. Maybe  
> someone could explain the correct use to me.
> 
> The most simple case is mesh, which just creates a local vobject and  
> tries to add this to the remote site sector. I believe this is maybe  
> a remnant of happier ACL-free days

Sort of. This is the cleanest way to do it in the abstract.  The problem with it
though, is firewalls, since if the avatar object is hosted locally, then remote
sites must be able to contact the local site to access it. Mesh still does this
because it's easy and it was never updated for avatar factories. The only reason
that you have an avatar in mesh is to send and recieve talk messages. 


> The most sophisticated (and working) avatar is that of Ter'angreal.  
> It *requires* the remote sector to be a compound factory, and uses  
> this to create remote puppet avatar. The step of inserting the avatar  
> into the sector seems to be unnecessary, apparenty the factory  
> already does it (?), however the avatar code has a failsafe (?) for  
> this:
> 
> avatar.cc:420
>     try {
>         avatar->findParent(sector);
>     } catch(NoSuchObjectError) {
>         sector->insertChild(-1, getNick(), avatar);
>         goToViewpoint("default-viewpoint");
>     }
> 
> What does Ter'angreal do when the remote sector is not a compound  
> factory? Use a local pseudo-avatar? Try to construct it manually?

If there is no factory TerAngreal ought to create a local avatar and try to 
insert it.
(which won't work if you're behind a firewall, so all worlds on the internet
ought to support a factory).

TerAngreal has some bugs regarding avatar creation and preferences.  What it
ought to do is have some set of preferred avatar properties (name, mesh model,
texture, etc.)  When it connects to a remote site, it should ask the factory if
present to create an avatar. Then it should ask the user if he wants to override
the properties that the factory gave him (such as mesh data) with his own
preferences.

Currently the bugs are -- I think I am remembering correctly -- that you have to
go into preferences and reset your model data, texture, real name if you want to
change the default that the factory gave you.

> Otherwise, access control will either hinder this kind of repair, or  
> must be set to be wide open and thus becomes useless. 

Probably the factory should create new objects with access control that allows
only the requesting client full access. Or use a policy named by the requesting
client.

Factories in general are kind of messy and may end up having some revision done
on them.  They are also complex to use and could use a really easy API on the
client side.

Reed



_______________________________________________
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d

Reply via email to