The Subsnapshot Importer Exporter module is now available in the Wonderland Module Warehouse.
This was our first completed Wonderland Wednesday project. Community member Bob Potter described the project when we started it almost exactly a year ago in his blog post “Wonderland Wednesdays Subsnapshot Project.” We officially concluded the project at the end of May, but it has taken some time to finish up a few loose ends and create a downloadable version for the Module Warehouse.
What is a Subsnapshot?
You may already be familiar with the Wonderland concept of a snapshot. That’s a way to save the state of the virtual world so you can restore it at some later date. Snapshots are a crucial tool for saving work, but they can only be used to save the entire virtual world and they also require a server restart. Subsnapshots, on the other hand, allow you to save one or more individual objects by exporting them to a file on your computer. You can then import the saved content into a Wonderland scene on the same server or on a different server, assuming the Subsnapshot module is installed.
This diagram illustrates the concept.
The large blue circle at the top of the diagram represents a snapshot of a world that contains six separate spaces. If you wanted to re-use the Teacher Commons space on another server, you could save a subsnapshot of only this space. Likewise, if you just wanted to save a subset of the objects in that space, you could make a subsnapshot that contained only a few objects.
Creating a Subsnapshot with a Single Object
After installing the Subsnapshot module, all objects in your world will now have an “Export” menu item added to the right-click context menu. To export a single object, simply right-click on it and select “Export.” You will be asked to name the file and select a location on your hard disk to save the item. Once saved, you will end up with a .wlexport file. To import this file, simply drag and drop it back into a Wonderland scene. If you want to import it to a world on a different server, remember that the Subsnapshot module needs to be installed first.
Exporting Multiple Objects
It’s a bit more complicated if you want to export multiple objects. To do so, you must first put all the objects into a single container. A container is a Wonderland mechanism for grouping objects. To create a container, select one of the objects in your group to act as the container or “parent” object. I usually select either the largest object or the ground plane object (e.g., the grass or the floor). Right click on this object and select “Properties…” to open the Object Editor. In the Object Hierarchy pane, drag the name of each of the other objects onto the name of the container object. You will now see the smaller objects displayed as “children” of the parent object.
Once you group all the objects into a single container, you are ready to export the group. Returning to the Wonderland scene, right click on the parent container object and select “Export.” Everything now works as above. You will be asked to name and save the object. This saves a .wlexport file on your hard disk. When you drag and drop this file back into a Wonderland world, the entire group of objects will be imported. This short video demonstrates how to export multiple objects.
A Work in Progress
While the Subsnapshot module is usable in its current form, it still needs a bit of work, particularly to improve usability. The biggest problem is that there is currently no feedback to the user on the status of either the export or the import. Some large containers may take a considerable amount of time to export. Right now, you need to check your hard disk to see when the .wlexport file appears. When importing, there will be a bit of a delay when you see nothing happening and then “Downloading” messages will appear in the lower right of your screen. When the downloading messages stop appearing, your set of objects should be visible. In both cases, we would like to add progress bars to show the status of the import or export.
Another feature we hope to add is the ability to export directly from the Object Editor window. We also hope to allow users to dynamically select multiple objects for exporting without requiring the use of a container to group the objects.
As you use this module, please don’t hesitate to suggest other features or usability improvements, either in comments below or on the Open Wonderland forum. And if you find bugs, please report those in the Issue Tracker.
(This article adapted with permission from Wonderblog.)