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