Shapes and Clothing

Note: This page is rather complicated and may have a bug or two. I intend to rewrite it, but haven’t yet. In the meantime, you may find it easier to look at the example scenarios #1: Just One Shape and #2: Multiple Shapes. You can then return to this page for additional information if those examples aren’t enough for you.

Most dolls and androids can have their clothing changed when they are shut down or frozen. In addition, many units have the ability to assume entirely different shapes, using nanite, holographic, or other technology. Finally, a unit may attach or detach other types of objects such as animation overriders (AOs) and speech limiters in order to modify its behavior. Although SL and RLV cannot tell the difference between attachments defining body shape, clothing, and behaviors, with a little bit of work you will be able to give the CCU enough of a hint to allow these abilities to be properly used.

For simplicity, this document describes ACS’s recommended Best Practices (as of CCU Version 1.6). Other approaches are possible. A few simpler approaches are given here. An updated, easier to follow document that includes some new features of Version 1.7 will be released in the near future.

Getting Started

  1. If you have not already done so, create a folder called “#RLV” in your inventory.
  2. Inside that folder, create three subfolders: “Shapes”, “Outfits”, and “Behaviors”.
  3. Inside “Shapes”, create one clearly-named folder for each distinct shape you can assume. Create a link inside each such folder to each body part and attachment that is part of that shape. Include shapes, skins, makeup, hair, tails, horns, access panels, indicator lights, doll keys, and so on – things that someone could not walk up to you and remove by hand.? Do not include clothes unless that shape is never expected to wear any other clothing.
  4. Inside “Outfits”, create one clearly-named folder for each distinct outfit you can wear. Create a link inside each such folder to each clothing item and attachment that is part of that outfit. Include shirts, skirts, pants, underwear, shoes, jewelry, scarves – anything someone might walk up to you and remove by hand. Do not include items that cannot be removed in this way, like hair and attachments. If you have many different outfits, create a folder hierarchy inside Outfits to organize them. Do not leave more than about 30 outfit folders inside any one folder.
  5. Inside “Behaviors”, create one clearly-named folder for each AO or other type of behavior-modifying device that you may wear. Create a link inside each such folder to each attachment that is part of that behavior. (Usually there will be only one item per folder, but that’s not a requirement.) Do not include any items that would be visible, like indicator lights or hair.
  6. Edit your “p99 ShapesOutfits” notecard (“p99 Unit” if you got your CCU at Version 1.7 or earlier) to be sure it has the following lines:
    set clothingfolders=Outfits
    set shapefolders=Shapes
    set behaviorfolders=Behaviors

Example:

	#RLV
		Outfits
			Formal
				BlueBallGown	(with clothing items inside)
				Red Pants Suit	(with clothing items inside)
				(more options here)
			Casual
				Jeans-and-tshirt
				Green sweater outfit
				Stripy skirt
			Sexy
				Lavender lingerie
				Teddy
		Shapes
			Porcelain doll		(with items inside)
			Harem Android		(with items inside)
			Schoolgirl Android
			Pink Drone			(with items inside)
		Behaviors
			SexyAO
			DemureAO
			RobotAO
			DollAO
			RobotSpeaker		(makes.unit.talk.like.this)

Scenario #1: Shape-changing android

In this example, the android has two forms, a petite Schoolgirl shape and a tall buxom Harem shape. They can both wear the same clothing. The android also has three personality modes: a sexy one, a demure one, and a robotic one. Either shape can run any of the three personalities. Here are example Shape and Personality programs using the above #RLV structure:

	mode Shape (Schoolgirl;Harem) D
	action (shape=schoolgirl)...
		detachall:Shapes
		attachover:Shapes/Schoolgirl Android
	action (shape=harem)...
		detachall:Shapes
		attachover:Shapes/Harem Android

	mode Personality (Sexy;Demure;Robotic) B
	action (personality=sexy)...
		detachall:Behaviors
		attachover:Behaviors/SexyAO
	action (personality=demure)...
		detachall:Behaviors
		attachover:Behaviors/DemureAO
	action (personality=Robotic)...
		detachall:Behaviors
		attachover:Behaviors/RobotAO
		attachover:Behaviors/RobotSpeaker

Notice that the program never alters the unit’s clothing. When the unit changes shape or behaviors, its clothes are unchanged. If the Schoolgirl personality is embarrassed at the sexy harem costume she was wearing before her personality was changed, she can change her clothes – or she can be frozen so someone else can change them.

Scenario #2: Bigger changes

In this example, the android has three forms: an android, a doll, and a drone. Each form has its own associated behaviors. When it changes shape, this unit automatically appears in the default clothing for its new form, though it can be changed into any other outfit.? For this to work, you need to make a change to p99 ShapesOutfits (or p99 Unit):

set shapefolders=Shapes,Outfits

This tells the CCU that its programs CAN change the unit’s clothing. (In the previous example, they could not.) Here are example Shape and Personality programs using the above #RLV structure:

        mode Shape (Doll;Android;Drone) D
	action (shape=doll)...
		detachall:Shapes
		detachall:Outfits
		detachall:Behaviors
		attachover:Shapes/Porcelain doll
		attachover:Behaviors/DollAO
		attachover:Outfits/Formal/BlueBallGown

	action (shape=android)...
		detachall:Shapes
		detachall:Outfits
		detachall:Behaviors
		attachover:Shapes/Harem Android
		attachover:Behaviors/SexyAO
		attachover:Outfits/Sexy/Teddy
	action (shape=Drone)...
		detachall:Shapes
		detachall:Outfits
		detachall:Behaviors
		attachover:Shapes/Pink Drone
		attachover:Behaviors/RobotAO
		# drone does not wear clothing by default

Scenario #3: Each form has its own clothing options

This example is like Scenario #2 above, but each shape is restricted to its own set of clothing. The doll can’t be dressed in the sexy outfits, the android can’t wear the doll’s clothes, and the drone can’t wear any clothes. For this to work, you need to NOT set “clothingfolders” or “shapefolders” in p99 ShapesOutfits or p99 Unit. If you do, they will override anything you try to set in your mode module. Instead, set that setting in your mode. For example:

	mode Shape (Doll;Android;Drone) D
	action (shape=doll)...
		set:shapefolders=Outfits,Shapes		# must do this to detach all outfits
		detachall:Shapes
		detachall:Outfits
		attachover:Shapes/Porcelain doll
                attachover:Outfits/Doll/BlueBallGown
		set:shapefolders=Shapes
                set:clothingfolders=Outfits/Doll
	action (shape=android)...
		set:shapefolders=Outfits,Shapes		# must do this to detach all outfits
		detachall:Shapes
		detachall:Outfits
		attachover:Shapes/Harem Android
		attachover:Outfits/Android/Teddy
		set:shapefolders=Shapes
                set:clothingfolders=Outfits/Android
	action (shape=drone)...
		set:shapefolders=Outfits,Shapes		# must do this to detach all outfits
		detachall:Shapes
		detachall:Outfits
		attachover:Shapes/Pink Drone
		set:shapefolders=Shapes
                set:clothingfolders=
		# drone can not wear clothing

Now, when you are in (for example) Android shape, you can ONLY be dressed in outfits in the Outfits/Android folder. The Outfits/Doll folder is not available. When you’re in the Drone shape, the Dress ball won’t even appear.

Scenario #4: But my #RLV folder is already organized a different way!

If you’ve been using a different wardrobe-management tool, you may have your #RLV folder set up something like this:

	#RLV
		Outfits
			Formal
				BlueBallGown	(with clothing items inside)
				Red Pants Suit	(with clothing items inside)
				(more options here)
			Casual
				Jeans-and-tshirt
				Green sweater outfit
				Stripy skirt
			Sexy
				Lavender lingerie
				Teddy
		Shapes
			Porcelain doll		(with items inside)
			Harem Android		(with items inside)
			Schoolgirl Android
			Pink Drone			(with items inside)
		Behaviors
			SexyAO
			DemureAO
			RobotAO
			DollAO
			RobotSpeaker		(makes.unit.talk.like.this)

This works too:

	mode Shape (Porcelain;Blonde;Drone) D
	action (shape=porcelain)...
		set clothingfolders=Manager
		detachall:Manager		# detach all other shapes & outfits
		attachover:Manager/Porcelain doll/Avatar
		set clothingfolders=Manager/Porcelain doll/Clothing
		attachover:Manager/Porcelain doll/Clothing/Default
	action (shape=Blonde)...
		set clothingfolders=Manager
		detachall:Manager		# detach all other shapes & outfits
		attachover:Manager/Harem Android/Avatar
		set clothingfolders=Manager/Harem Android/Clothing
		attachover:Manager/Harem Android/Clothing/Default
	action (shape=Drone)...
		set clothingfolders=Manager
		detachall:Manager		# detach all other shapes & outfits
		attachover:Manager/Pink Drone/Avatar
		set clothingfolders=Manager/Pink Drone/Clothing
		# drone doesn't attach clothing

Other scenarios

You don’t have to be dressed in entire outfits at once. Each folder is worn and removed independently of the others. So if you wanted, you could have Shoes in a separate folder from the rest of the outfits, and an assortment of separate Jewelry options, and so on, allowing someone dressing you to mix and match. Of course, nothing stops someone from dressing you in three different pairs of shoes, four different skirts, and no top… but sometimes that happens to a doll, right?

Why so complicated?

Because the system is designed to allow other people to program you. You might reasonably want to allow someone else to add a new mode to you that uses a different AO, but NOT let that mode change your shape. Your concept may be that you’re a shapeshifting construct that wears real, non-shapeshifting clothes – or that you ONLY change clothes through shapeshifting – or that your personality (AO) and shape can’t be changed independently. These setting options allow you to preserve your concept, while still letting others program you within the boundaries you’ve decided on.

If you don’t plan to let other people program you, then you can safely include your Behaviors in shapefolders and never deal with behaviorfolders separately.