[Opensim-dev] Ways to bundle a building/content for sharing with others
Justin Clark-Casey
jjustincc at googlemail.com
Sun Jan 11 16:38:08 UTC 2009
Ai Austin wrote:
> This might be a question for Justin as he has worked on the OAR
> mechanism and load/save-xml console commands....
>
> It would be useful to be able to take some content, such as a building
> or developed area, and to be able top save that in a form that can be
> downloaded or shared with others to get the same content in heir own
> opensim setup. save-xml, save-xml2 preserve the whole of a sim region
> keeping creatorid, ownerid, lastownerid and prim uuids as they were, and
> save-oar pr serve the whole of the contents of a sim region including
> the terrain height map.
>
> The mechanism I have used to make a building available to different
> Opensim setups, or in different areas of our own build is to use one of
> two mechanisms...
>
> a) save-xml on a sim region that ONLY contains the required content (I
> use a sandbox region just for this purpose), and note how many prims
> were in the region as a check.. I edit the creatorid, ownerid and
> lastownerid manually (i.e. change UUID for 3 X number of prims). Then on
> restore I use the load-xml with -newuid flag to ensure new UUIDs are
> used for the newly loaded prims. I then check the required number fo
> saved prims did come back in.
>
> b) save-oar on a sim region that ONLY contains the required content (I
> use a sandbox region just for this purpose). load-oar into an empty
> sandbox region (as the terrain will change). Then take the contents
> into inventory - with the disadvantage that relative positioning of
> parts is lost. or link teh whole build and take into inventory to be
> moved where you wish with the disadvantage that major linked parts in a
> modular build are lost.
>
> As you can see, the save-xml and save-oar are VERY clise to what is
> needed, but are really for archiving within one Opensim set rather than
> transfer of modular assets to others. I think a mechanism to save-oar
> with a flag to say -noterrain, and/or a mechanism to load-oar
> -noterrain that can ignore any terrain included in the OAR and a way to
> say -add so that the objects in te oar are added to the current region,
> rather than everything being replaced would be close to what is wanted.
> A way to make sure that all UUIDs in the new content are suitable for
> the target environment (Prim UUID, texture UUIDs, creatorid, ownerid and
> lastownerdid) may be needed if the OAR mechanism does not already do that.
>
I recognize the problem. It seemed to me that loading the OAR without deleting the existing region (in effect, merging)
would be of limited use unless the terrain was guaranteed to be the same. Otherwise, of course, your region objects may
well be out of position (above, below ground, etc.). One could then move them, but this still seems somewhat
inconvenient. However, if this is genuinely helpful it could be fairly trivially implemented as an option - this is
actually what happened originally for a couple of revisions. Would this be helpful?
Perhaps the alternative solution in this vein, and one that I had begun to consider, is to produce the equivalent of
OARs but for inventory instead. In fact, there is a hidden experimental feature on the region command console
(load-inv/save-inv) which will save and load inventory from an archive. It's hidden because although it works, there
are various problems with it (the inventory format ain't that good and probably needs changing, reloads on a live sim
don't show up until the sim restarts, etc.), so I wouldn't use it much yet.
To be really useful, we need to add support for taking 'groups' of objects in OpenSim. In other words, you don't make a
linkset but you just select a group of objects at once and take it. On the Linden Grid, this takes the whole group into
your inventory as a single entry (with a different icon), allowing you to rerez it later. Currently on OpenSim, doing
this will just take each object singly. Unfortunately, supporting a group of objects will require a fair bit of work.
If this support was in place, then you could take the whole group in a developed area and save it as a single inventory
item. This could then be archived and said archive made available to others to import back into their inventory.
However, this still may not work because it might be rather awkward to select all the objects in a big build to take as
a single group. What do you think?
--
justincc
Justin Clark-Casey
http://justincc.wordpress.com
More information about the Opensim-dev
mailing list