10-14-2007 08:51
Ijust released 100% free and Open Source Holodeck soon to be on wiki once i get the time.

grab your copy from:

http://slexchange.com/modules.php?name=Marketplace&file=item&ItemID=391016
Or
http://slurl.com/secondlife/Snow%20Crash/128/128/23

current features:

Rezzing of Objects
Rezzing of Gloves
Texture Rezzing
Sound Rezzing
Lighting System
Particle System
Temp Rezzing
Group Control
Multi User Holodeck (so anyone in the same group can build together)

Builders doc:

From: someone

The Skidz Partz - Primitizer Builders Manual
By Revolution Perenti

Welcome to the world of building with your Primitizer System. Anyone wishing to build scenes for the Primitizer needs to have a good understanding of building/texturing skills to succeed. Please read this manual through once fully and then as needed when you start building. This manual is divided into several sections:

Introduction
Building scenes
Building Gloves
Texture NoteCard
Particle NoteCard
Sound NoteCard
Lights NoteCard
Scene Creation
Tips
Packaging

Introduction
The main thing to remember is any object you want to put in the Primitizer scene / Gloves must be copy/mod/ at a minimum. The way the Primitizer system works is by rezzing “copies” of an item from it’s inventory. These objects must be modified, adding a special script to make them work with the system scripts.

There are two ways to build for the Primitizer,
1. The linked scene or
2. The multi item scene.
The linked scene is made from multiple objects and linked; the unlinked scene consists of a number or unlinked objects around the unit.

A scene set will consist of the objects you create and a texture card. These will be explained in greater detail as we move along. The texture card must begin with tex_ or the system will not read them. Feel free to give your scenes a user friendly name, but only with letters, numbers _ or – in the same name as the current scene we are building for.


Building Scenes
We will go into much more detail of how to build a scene later, and how to use the cards, but I will outline the basic procedure here.
1. Create the objects you want in your scene. And arrange them as you like
2. Place a label script into each linked object or individual object you have set out in your scene
3. Use /1000 SAVED to save the position and rotation of the current scene.
4. If you wish to modify the scene before repacking or move things around more enter /1000 RESET and then follow step 3 again.
5. Next texture the walls, floor ceiling set the repeats etc the way you want them.
6. Open the example tex_*Clear*, and go from prim to prim, and copy the info from the texture window to the notecard as explained above.
7. Name the suffix of the notecards something user friendly.
8. Right click on all the object while holding ctrl key -> edit and take all the objects into your inventory.
9. Next click on your control panel on the wall and press *Create* button this will prepare a package for your scene.
10. Now we will want to name the scene right click this box->edit now fill in something friendly for your scene name and description
11. Finally we want to add an address script to this object, so right click on the package box->content tab or just press content tab if your still in edit mode, now browse the inventry for our product Skidz Partz - Primitizer and look for box called address scripts, drag this to the floor->right click open-> copy to inventry you should now have a folder called package scripts in your inventry, Now drag the internal address script to the content tab of your inventry. also drag the object from our scene that we took into our inventry earier and copy this also to the content tab, now we have all the requirments for loading scenes
12. Right click on the Primitizer floor panel, go into edit, check edit link parts, then select the red area of the floor panel (inside the red field), next press contents tab and drag the object package, and tex_package in there.
13. type /1000 RESET and now wait for the menu to update with your scene (this can take upto 1 minute depending on how many scenes you have saved)
14. your new scene should now be in the menu

Building Gloves
We will go into much more detail of how to build a scene later, and how to use the cards, but I will outline the basic procedure here.
1. Create the objects you want as your Gloves. And arrange them as you like
2. Place a external label script into each linked object or individual object you have set out as your Primitizer Gloves
3. Use /2000 SAVED to save the position and rotation of the current Gloves.
4. If you wish to modify the Gloves before repacking or move things around more enter /2000 RESET and then follow step 3 again.
8. Right click on all the object while holding ctrl key -> edit and take all the objects into your inventory.
9. Next click on your control panel on the wall and press *Create* button this will prepare a package for your Gloves.
10. Now we will want to name the Gloves package right click this box->edit now fill in something friendly for your Gloves name and description
11. Finally we want to add an address script to this object, so right click on the package box->content tab or just press content tab if your still in edit mode, now browse the inventry for our product Skidz Partz - Primitizer and look for box called package scripts, drag this to the floor->right click open-> copy to inventry you should now have a folder called package scripts in your inventry, Now drag the external address script to the content tab of your inventry. also drag the object from our Gloves that we took into our inventry earier and copy this also to the content tab, now we have all the requirments for loading our Gloves
12. Right click on the Primitizer floor panel, go into edit, check edit link parts, then select the blue area of the floor panel (inside the blue field), next press contents tab and drag the object package in there.
13. type /2000 RESET and now wait for the menu to update with your scene (this can take upto 1 minute depending on how many scenes you have saved)
14. your new scene should now be in the menu


Texture Card
The Primitizer consists of 9 walls, 4 ceiling, and 4 floor prims. The texture card has one line for each of these inner prim faces. The prims are named for their direction on the SL compass, and the name of each face on the texture card corresponds to these names. The card must begin with tex_xxx where xxx is the name of the scene, which, must be the same name as will be given to the scene package.

Each line of the texture card has the following information.

wall section#texture key#vector repeats#vector offsets#float rotation#vector color#float alpha
once it’s completed, it may look like the following:

ene_wall#2eabe96c-2540-e1fa-ce7f-9030c3d958df#<1.5,1,0>#NULL_VECTOR#90.00#<1,1,1>#1.0
Each of the items in the texture card must be separated by the symbol #

*Wall Section*
The wall section name, corresponds to the name given each prim in the Primitizer, use the edit linked parts and then point to the prim, make a note of the wall name. Then go to the card and find the same line containing that wall name.

*Texture Key*
This is the ID of the texture you are using. This texture must have full permissions. Right click on the prim, then select texture, locate it in inventory, then right click and copy UUID. Next paste this ID into the note card exactly between the ##.

*Vector Repeats*
These numbers correspond to the Horizontal/Vertical repeats found in the texture tab in your edit window.
<1.5,1,0>
The first number is Horizontal repeats, the second one is Vertical, the third is not used, so will always be 0.
Please make sure that the numbers are separated with a comma or they will not work.

*Vector Offsets*
This set of numbers corresponds to the Horizontal/Vertical Offsets also found in the texture tab in the edit window. For most builds you will keep this set at NULL_VECTOR, since you can’t leave these numbers as 0,0,0.
If you do need to offset a texture for some reason, you would replace NULL_VECTOR, with <.5,0,0>, again the first number in the set corresponds to the horizontal offset, the second for vertical offset, the third is not to be used, therefore is left at 0.
*Float Rotation*
If the texture must be rotated for some reason on the prim face, you will enter that number in the float rotation section. In the example above it’s set at 90.0. Because of the location of some of the walls they will need to be set at 90.0 anyway.
*Vector Color*
If you would like to tint the prim face, you will use this section. For walls that aren’t tinted, leave the numbers at 1,1,1 because this is equivalent to white/clear. 0,0,0 is black. Below are the basic colours, and included with the Primitizer package is a full list of colours in SL format.

Red, Green Blue
Number may go between 0.1 to 0.9 for each of the three colors
white = <1.0, 1.0, 1.0>;
grey = <0.5, 0.5, 0.5>;
black = <0.0, 0.0, 0.0>;
red = <1.0, 0.0, 0.0>;
green = <0.0, 1.0, 0.0>;
blue = <0.0, 0.0, 1.0>;
yellow = <1.0, 1.0, 0.0>;
cyan = <0.0, 1.0, 1.0>;
magenta = <1.0, 0.0, 1.0>;
*Float Alpha*
This corresponds to the amount of transparency, 1.0 being no transparency, 0.0 is full transparency.

NOTE: One final word on textures. Make sure that when you reference a texture id key, that you keep that texture in your inventory, If you delete it from inventory, after a while it will be also deleted from the asset inventory SL keeps and won’t work anymore.

That’s it for the texture note-card. It’s a little confusing in the beginning, but you will get the hang of it in no time. A demo note-card has been provided for you to use in what ever way you want. Just remember when naming the card, to use the tex_ prefix.

Particle Card
The Primitizer consists of 9 walls, 4 ceiling, and 4 floor prims. The particle card has one line for each of these inner prim faces. The prims are named for their direction on the SL compass, and the name of each face on the particle card corresponds to these names. The card must begin with psys_xxx where xxx is the name of the scene, which, must be the same name as will be given to the scene package.

Each line of the particle card has the following information.

OBJECT_NAME#PSYS_PART_MAX_AGE#PSYS_PART_FLAGS#PSYS_PART_START_COLOR#PSYS_PART_END_COLOR#PSYS_PART_START_SCALE#PSYS_PART_END_SCALE#PSYS_SRC_PATTERN#PSYS_SRC_BURST_RATE#PSYS_SRC_ACCEL#PSYS_SRC_BURST_PART_COUNT#PSYS_SRC_BURST_RADIUS#PSYS_SRC_BURST_SPEED_MIN#PSYS_SRC_BURST_SPEED_MAX#PSYS_SRC_ANGLE_BEGIN#PSYS_SRC_ANGLE_END#PSYS_SRC_OMEGA#PSYS_SRC_MAX_AGE#PSYS_PART_START_ALPHA#PSYS_PART_END_ALPHA#PSYS_SRC_TEXTURE

once it’s completed, it may look like the following:

nw_floor#6.0#259#<1.0, 1.0, 1.0>#<1.0, 1.0, 1.0>#<0.3, 0.3, 0.0>#<0.7, 0.7, 0.0>#2#0.001000#<0.0, 0.0, 0.5>#1#0.0#0.5#0.8#0.0#0.0#<0.0, 0.0, 0.0>#0.0#1.0#0.0#d13e2a20-42f2-c085-dbe7-08c05629702c

NOTE: Our particle layout is based on Particle Script Generator 2.3 and can be a good and ideal solution for making particles for the Primitizer
and can be found on sl exchange @ http://slexchange.com/modules.php?name=Marketplace&file=item&ItemID=94347

*OBJECT_NAME*
The object name , corresponds to the name given each prim in the Primitizer, use the edit linked parts and then point to the prim, make a note of the wall name. Then go to the card and find the same line containing that wall name.

*PSYS_PART_MAX_AGE*
Specifies the lifetime of each particle emitted, in seconds. Maximum is 30.0 seconds. During this time, the particle will appear, change appearance and move according to the parameters specified in the other sections, and then disappear.

*PSYS_PART_FLAGS*
Various flags controlling the behavior of the particle system. The value may be specified as an integer in decimal or hex format, or by ORing together (using the | operator) one or more of the following flag constants

*PSYS_PART_START_COLOR*
A unit vector specifying the color of the particles upon emission.

*PSYS_PART_END_COLOR*
A unit vector specifying the color the particles transition to during their lifetime. Only used if the PSYS_PART_INTERP_COLOR_MASK flag is set.

*PSYS_PART_START_SCALE*
Specifies the scale or size of the particles upon emission. Valid values for each direction are 0.04 (0.03125) to 4.0, in meters. Since particles are essentially 2D sprites, the Z component of the vector is ignored and can be set to 0.0.

*PSYS_PART_END_SCALE*
Specifies the scale or size the particles transition to during their lifetime. Only used if the PSYS_PART_INTERP_SCALE_MASK flag is set.

*PSYS_SRC_PATTERN*
Specifies the general emission pattern.

*PSYS_SRC_BURST_RATE*
Specifies the time interval, in seconds, between "bursts" of particles being emitted. Specifying a value of 0.0 will cause the emission of particles as fast as the viewer can do so.

*PSYS_SRC_ACCEL*
Specifies a directional acceleration vector applied to each particle as it is emitted, in meters per second. Valid values are 0.0 to 100.0 for each direction, as region coordinates.

*PSYS_SRC_BURST_PART_COUNT*
Specifies the number of particles emitted in each "burst".

*PSYS_SRC_BURST_RADIUS*
Specifies the distance from the emitter where particles will be created. This rule is ignored when the PSYS_PART_FOLLOW_SRC_MASK flag is set.

*PSYS_SRC_BURST_SPEED_MIN*
Specifies the minimum value of a random range of values which is selected for each particle in a burst as its initial speed upon emission, in meters per second. Note that the value of this parameter and PSYS_SRC_BURST_SPEED_MAX are internally re-ordered such that this parameter gets the smaller of the two values.

*PSYS_SRC_BURST_SPEED_MAX*
Specifies the maximum value of a random range of values which is selected for each particle in a burst as its initial speed upon emission, in meters per second. Note that the value of this parameter and PSYS_SRC_BURST_SPEED_MIN are internally re-ordered such that this parameter gets the larger of the two values.

*PSYS_SRC_ANGLE_BEGIN*
Specifies a half angle, in radians, of a circular or spherical "dimple" or conic section (starting from the emitter facing) within which particles will NOT be emitted. Valid values are the same as for PSYS_SRC_ANGLE_END, though the effects are reversed accordingly. If the pattern is PSYS_SRC_PATTERN_ANGLE, the presentation is a 2D flat circular section. If PSYS_SRC_PATTERN_ANGLE_CONE or PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY is used, the presentation is a 3D spherical section. Note that the value of this parameter and PSYS_SRC_ANGLE_END are internally re-ordered such that this parameter gets the smaller of the two values.

*PSYS_SRC_ANGLE_END*
Specifies a half angle, in radians, of a circular or spherical "dimple" or conic section (starting from the emitter facing) within which particles will NOT be emitted. Valid values are 0.0, which will result in particles being emitted in a straight line in the direction of the emitter facing, to PI, which will result in particles being emitted in a full circular or spherical arc around the emitter, not including the "dimple" or conic section defined by PSYS_SRC_ANGLE_BEGIN. If the pattern is PSYS_SRC_PATTERN_ANGLE, the presentation is a 2D flat circular section. If PSYS_SRC_PATTERN_ANGLE_CONE or PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY is used, the presentation is a 3D spherical section. Note that the value of this parameter and PSYS_SRC_ANGLE_BEGIN are internally re-ordered such that this parameter gets the larger of the two values.

*PSYS_SRC_OMEGA*
Specifies the rotational spin of the emitter in radians per second along each axis. This "unsticks" the emitter facing from the prim's positive Z axis and is noticeable in directional presentations. Prim spin (via llTargetOmega) has no effect on emitter spin.

*PSYS_SRC_MAX_AGE*
Specifies the length of time, in seconds, that the emitter will operate upon coming into view range (if the particle system is already set) or upon execution of this function (if already in view range). Upon expiration, no more particles will be emitted, except as specified above. Zero will give the particle system an infinite duration.

*PSYS_PART_START_ALPHA*
Specifies the alpha of the particles upon emission. Valid values are in the range 0.0 to 1.0. Higher values are more opaque; lower ones are more transparent.

*PSYS_PART_END_ALPHA*
Specifies the alpha the particles transition to during their lifetime. Only used if the PSYS_PART_INTERP_COLOR_MASK flag is set. Valid values are the same as PSYS_PART_START_ALPHA.

*PSYS_SRC_TEXTURE*
Specifies the name of a asset key UUID for a texture.

Sound Notecard
The Primitizer consists of 9 walls, 4 ceiling, and 4 floor prims. The sound notecard has one line for each of these inner prim faces. The prims are named for their direction on the SL compass, and the name of each face on the sound notecard corresponds to these names. The card must begin with sound_xxx where xxx is the name of the scene, which, must be the same name as will be given to the scene package.

Each line of the Sound Notecard has the following information.

OBJECT_NAME#SOUND_TYPE#SOUND_UUID#SOUND_VOLUME
once it’s completed, it may look like the following:

nw_floor#2#81ea50d4-987e-fd7e-fd8a-addc87ea3504#1.0
Each of the items in the sound notecard must be separated by the symbol #

*OBJECT_NAME*
The object name , corresponds to the name given each prim in the Primitizer, use the edit linked parts and then point to the prim, make a note of the wall name. Then go to the card and find the same line containing that wall name.

*SOUND_TYPE*
The type of sound system to use, if no type of sound system exists NULL the current sound active and clear all playing sounds.

TYPE1: uses llPlaySound Which plays attached sound once at volume
TYPE2: uses llLoopSound Which plays attached sound looping indefinitely at volume
TYPE3: uses llTriggerSound Which sound at volume, centered at but not attached to object

*SOUND_UUID*
Specifies the name of a asset key UUID for a sound.

*SOUND_VOLUME*
volume – between 0.0 (silent) and 1.0 (loud) (0.0 <= volume <= 1.0)

Lights Notecard
The Primitizer consists of 9 walls, 4 ceiling, and 4 floor prims. The light notecard has one line for each of these inner prim faces. The prims are named for their direction on the SL compass, and the name of each face on the sound notecard corresponds to these names. The card must begin with light_xxx where xxx is the name of the scene, which, must be the same name as will be given to the scene package.

Each line of the Light Notecard has the following information.

OBJECT_NAME#LIGHT_STATUS#LIGHT_COLOR#LIGHT_LEVEL#LIGHT_DISTANCE#LIGHT_FALLOFF
once it’s completed, it may look like the following:

nne_wall#FALSE#<1.00000, 1.00000, 1.00000>#1.000000#10.000000#0.750000
Each of the items in the sound notecard must be separated by the symbol #

*OBJECT_NAME*
The object name , corresponds to the name given each prim in the Primitizer, use the edit linked parts and then point to the prim, make a note of the wall name. Then go to the card and find the same line containing that wall name.

*LIGHT_STATUS*
Toggles light property on or off (integer) values 0 = off 1 = on

*LIGHT_COLOR*
Below are the basic colours, and included with the Primitizer package is a full list of colours in SL format.

Red, Green Blue
Number may go between 0.1 to 0.9 for each of the three colors
white = <1.0, 1.0, 1.0>;
grey = <0.5, 0.5, 0.5>;
black = <0.0, 0.0, 0.0>;
red = <1.0, 0.0, 0.0>;
green = <0.0, 1.0, 0.0>;
blue = <0.0, 0.0, 1.0>;
yellow = <1.0, 1.0, 0.0>;
cyan = <0.0, 1.0, 1.0>;
magenta = <1.0, 0.0, 1.0>;

*LIGHT_LEVEL*
level – ranges from 0.0 to 1.0

*LIGHT_DISTANCE*
distance – ranges from 0.1 to 10.0

*LIGHT_FALLOFF*
falloff – ranges from 0.01 to 1.0

Scene Creation
Depending on what you plan on using in your Primitizer building your scene will vary. Some people make their own furniture, and other items for their scenes, for their own use, or for sale. Others use free items they have gathered around SL, which have copy/mod permissions to build their scenes. The Primitizer is perfect for personal homes, clubs, inns and hotels, skyboxes, anywhere you need to rez furniture. The wonderful thing is you have multiple scenes stored in the Primitizer, and change when ever you want, instead of having to keep dragging things from inventory. Or for who don’t want to use all their prim limits on a home and 5 rooms, why not have one room, and 5 scenes and a nice Gloves. There are places to purchase copy/mod pose balls, for your scenes too.

Some tips when building items for your scenes.
- Try and make as few object groupings as possible, one large linked object make of other smaller prims, will load faster then 10 smaller objects located around the box.
- When placing objects keep in mind the location of the door
- When making an object that is of an odd shape such as a torus, you may want to create a flat box prim below it, and link to that, it will save headaches later one.
-

Packaging
When you decide to package the item for sale. Make sure that you give copy rights to the next owner, or they won’t be able to use it. It is also helpful to give full permissions on the tex Also ensure the name you give the object is user friendly, but also, only contains letters, numbers _ or -.
dont forget to add the address script to each completed package.

If you have any questions in building please feel free to contact Revolution Perenti, and do join the Skidz Partz - Open Source Group you will receive updates of this manual and the scripts as they come out. If you have any suggestions for this manual please feel free to let me know.

Happy building

Revolution Perenti