[Opensim-dev] Ways to bundle a building/content for sharing with others

Justin Clark-Casey jjustincc at googlemail.com
Sun Jan 11 16:43:42 UTC 2009


Mo Hax wrote:
> +1 Ai, we need a improved way to save reusable, complex content in 
> singular files that can be passed between sims. Whatever results from 
> such an effort will likely play nicely into REST transfer of such things 
> between OpenSim grids.
> 
> Up to now the methods you describe are the only methods and do not allow 
> the casual OpenSim user any way to put such content into their inventory 
> requiring, instead, sim administrator intervention. I think that will 
> remain that way for some time to come because anything else requires 
> some sort of viewer customization.

Yeah, this is a weakness of inventory archives, though of course there are out of band ways of getting around it (upload 
via a website, etc.)

> 
> I know others have created LSL scripts to transform XML from a notecard 
> into an in-world object like some of the SL tools available for sale do. 
> So far I know of none that actually use save-xml, xml2, oar output however.
> 
> One approach I have been meaning to explore, but have lacked the time 
> and skill, is creating an OpenSim module or special scripted function 
> that would accept XML from xml, xml2 or oar as input, perhaps even 
> directly from a notecard (but that could be a lot of dataserver hits) 
> and automatically build out the represented object in world. In fact, 
> there is already a suggested OSS function to do this from a URL pointing 
> to such XML:
> 
> osRezFromURL(string url, vector pos, vector vel, rotation rot, integer 
> param)

I think that this is a neat idea Mo!  It's kind of the 3d equivalent of displaying a web page in-world - point your 
script at an url and rez whatever 3d objects it describes instead.  Oh, and probably highly dangerous in any public 
world :) (and hence would be marked as highly hazardous) but might allow some cool stuff in more controlled environments.

> 
> A whole family of osRezFrom*() functions would perhaps be best, each 
> with different imposed lag penalties to avoid overloading XML sources. I 
> cannot see such functions, with the parsing and possible network calls, 
> ever being used to rez objects more than once every 0.2 seconds, the 
> usual delay for similar things in LSL. Maybe something like the following:
> 
> osRezFromXML(string xml, vector pos, vector vel, rotation rot, integer 
> param)
> osRezFromXML2(string xml, vector pos, vector vel, rotation rot, integer 
> param)
> osRezFromOAR(string oar, vector pos, vector vel, rotation rot, integer 
> param)
> 
> I admit I like rez from URL best in the long run since it takes care of 
> the ugly issue of getting the XML/XML2/OAR into the string argument in 
> the first place, too many dataserver calls to read such a thing from a 
> notecard I would think. But before layering all the network fetching 
> code having a function that simply does the parsing and rezzing would be 
> work enough to write.
> 
> On Sat, Jan 10, 2009 at 6:34 AM, Ai Austin <ai.ai.austin at googlemail.com 
> <mailto:ai.ai.austin at googlemail.com>> 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.
> 
>     _______________________________________________
>     Opensim-dev mailing list
>     Opensim-dev at lists.berlios.de <mailto:Opensim-dev at lists.berlios.de>
>     https://lists.berlios.de/mailman/listinfo/opensim-dev
> 
> 
> 
> 
> -- 
> Mo Hax
> http://imohax.com
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev


-- 
justincc
Justin Clark-Casey
http://justincc.wordpress.com



More information about the Opensim-dev mailing list