Accessories v1.

2
Accessories are products that can attach themselves to a bone in an avatar’s skeleton. This means that you now have the power to make watches, halos, wings, PETS. Anything! The power is in your hands. NOTE: It is very important that you work from and save all of your files to IMVUtools/Previewer/Examples. This is because certain products (like Avatar Body Patterns and all derivations of any product) rely on the existence of other products to run in the previewer. So, please avoid the headache of dealing with this bug by simply working out of the Examples folder we provide. That said, it is also VERY, VERY important that you save all of your finished products and source files anywhere but IMVUtools/Previewer/Examples as uninstalling the previewer or installing a new version of the previewer will cause this folder to be deleted. Now on to the How To.

1. Building the Skeleton, Mesh and Material
1.a Download the base Avatar Mesh
For the purposes of this document, we will be using 3DS MAX 7 as the default 3D editing program. Start MAX and open the base avatar mesh that you wish to add an attachment to. The base avatar meshes that IMVU, inc. has created can be found in the various Weighting.ZIP files found on our Developer site. These files are called: FemaleWeighting.ZIP MaleWeighting.ZIP You will NOT actually use or export any piece of the original base avatar mesh or embedded avatar skeleton. You are building an Accessory and accessories contain their own skeletons and meshes. You need the avatar mesh and embedded avatar skeleton for placement/alignment only. Although it is highly recommended that you use the embedded Accessory skeleton, you COULD create your own from scratch if you like. The Accessory meshes found in the example files, typically a pair of glasses, are there as an example of how an Accessory can be weighted (using the Skin modifier) and to give you a functioning example of an Accessory Multi-Sub Material. NOTE: Save this file with a new name, as you may need to merge facets of the original example 3D file into your new file if a mistake is made.

1.b Build your Accessory Skeleton
You may always use the embedded AttachmentRoot bone/node for your Accessory. All you need do is align it to the avatar bone with which you want your attachment to move. For example, if you want to build a bracelet, you would not align your AttachmentRoot bone/node to the avatar’s Head bone. Rather you would align it to one of the wrist bones.

Page 1

IMVU, inc. Confidential

1.b.1 Pets If you want to make a pet that moves on its own (without the influence of the avatar’s idle animations), you will want to align the master root of your Accessory skeleton (usually the AttachmentRoot bone) to the avatar’s master root bone (called Female03MasterRoot). 1.b.2 Building your own skeleton If you would like to build your own Accessory skeleton, you may do so. The accessory skeleton can be VERY simple. Whether you are using the Skin or Physique modifiers, you must build two bones/nodes. These bones/nodes can be called anything you like. One will be your master bone (or, the top of the hierarchy) and one will be the bone you actually weight the mesh to. I prefer to have the master bone called AttachmentRoot. I prefer to call the second bone AttachmentNode. Link the AttachmentNode bone to the AttachmentRoot bone. Now align AttachmentRoot to the avatar bone you wish your accessory to attach to. THEN, either align AttachmentNode to the same bone in the avatar skeleton OR align it to AttachmentRoot. Either way, AttachmentNode will end up in the same spot. Now you can weight the mesh to your heart’s content. NOTE: If you are building something that is meant to move with one bone only (Glasses, Earrings, etc.), weight all of your vertices to that bone in the ACCESSORY SKELETON. EXTRA SPECIAL NOTE: Your Accessory mesh should never be weighted to any bones in the avatar skeleton. Your Accessory has its own skeleton (which you just created). If you weight your accessory to anything but the accessory skeleton, it will not work.

1.c Build your Accessory Mesh
1.c.1 Accessory skeleton location The first thing to realize about building an Accessory mesh is that the location of the Accessory skeleton master root matters a lot. If you want your glasses to show up on the avatar’s head in the Previewer, you need to have your Accessory skeleton master root bone aligned to the avatar’s head bone before you weight your glasses. So, to recap: 1. Align your Accessory master root bone to the bone in the avatar skeleton that you want to influence the Accessory. 2. THEN weight your mesh to the Accessory skeleton. 1.c.2 Accessories for Avatar heads If you are building an Accessory for an avatar head (glasses, earrings, horns, etc.), there are a few things to keep in mind. First is that the current IMVU head products are all built around the same basic head shape for Male or Female products. The difference in all of the heads built by IMVU is only found in the size of the head and the shape of the face.

Page 2

IMVU, inc. Confidential

Specifically, the cranium, bridge of nose and ears do not move from head to head. This allows each head to use all of the pre-existing Accessories without glaring aesthetic bugs. However, this means that things like facial jewelry, beards, mustaches, fangs, etc. will not look right from head to head. 1.c.3 The sky is the limit Your Accessory can be anything you like. Check out the IMVU catalog to see some of the ingenious Accessories our other Developers have created. All of these have been built in the IMVU Previewer. EXCITING! NOTE: The mesh for your Accessory can be very close to the mesh for the avatar. However, if they are too close you may get Z fighting (or shimmering) in IMVU. It is worth testing in the previewer. If you see Z fighting in the previewer, you will see it in IMVU. 1.b.1 Vertex Colors

fig1.2 – Vertex Color editor in the Surface Properties Menu Vertex colors allow you to tint or darken the appearance of a portion of your mesh at runtime without having to manually paint in shadows on your texture. A vertex color blends evenly from the colored vertex A to the color of the next vertex B. If the color of B is white, the blend from A to B will go from 100% colored to 0% colored. This is especially handy if you want to keep your overall CFL file size down but want shaded and lit parts of a tiled texture. To add vertex colors, go to edit Vertex mode in either the Edit Mesh or Edit Poly modifiers. Then, select one or a group of verts. Go to the surface properties menu and click on the white bar next to the word Colors. This will bring up a color picker. Pick your color, Close the picker and voila. Colored vertex. Vertex colors are not visible in Page 3 IMVU, inc. Confidential

MAX so you just have to have faith in the color, export the .xmf mesh file and load it all up in the Previewer. The vertex colors are activated per material vs. per mesh so please refer to the Previewer section of this doc for more info. NOTE: There is a runtime cost of having one vertex color blend into another vertex color (as opposed to blending from color to no color) so beware and use vertex color blending sparingly. 1.b.2 Animation in Accessories? YES! For more on animation, go to section 1.g. 1.b.3 Building and Hierarchy Your mesh should not be parented or linked to any bones in the scene. However, they should be weighted to bones in the scene. Once again: No to parented or linked. Yes to weighted. If you want portions of your Accessory to animate and you want to see the mesh animate, you should weight the mesh to the appropriate bone in the Accessory skeleton. You will have to do this anyway for proper exporting of the mesh.

1.c Mapping Your Mesh
Texture mapping in any 3D program is an art all its own. However, there are a few IMVU specific things that you ought to know before you can export. 1.c.1 One Multi-Sub Material If you are using MAX, you may only have one material on your model. This material can contain as many sub-materials as you like and can therefore be a “Multi-Sub” material. If you are using another 3D program, it is likely that you will have to have separate top level materials. This may result in your needing to have more meshes than described in this document. 1.c.2 Multi-Sub Material naming convention What follows is from the IMVU Developers forum: “When creating your materials for IMVU products, you must follow a simple numerical naming convention in order for your textures to show up in the previewer. Each material name must contain a bracketed number at the end of the name. For example, FrogTexture [2]

Page 4

IMVU, inc. Confidential

The number contained in the brackets is always one number less than the material index in MAX. Therefore, every time you have a material in index 1 in MAX, that material's name must contain [0] at the end of its name. If the index is 6, the convention is [5]. If the material is 10, the convention is [9] and so on. It is actually pretty easy once you know what to do. It is also easy to forget if you've never done it before. Very easy.” (see fig 1.3) Another thing to consider when naming your sub-materials is that they need to be consecutively numbered. You cannot have four sub-materials number [0], [2], [7], [22]. If you have four sub-materials, those materials must be numbered [0], [1], [2], [3]. Otherwise, you will end up with a product that will eventually not load. (see fig 1.3)

Fig 1.3 – Example of Material Editor and Sub-Material layout from MAX 1.c.3 Alpha Page 5 IMVU, inc. Confidential

You can use both Cutout and Alpha blending in IMVU. Just add an opacity map to your material in MAX then, in the Previewer, you can choose the alpha setting you want. 1.c.4 HIGHLY Recommended Texture Guidelines IMVU imposes only a limited budget on your texture usage: Any texture sized larger than 512 pixels on a side gets automatically reduced to 512 pixels on that side or lower. We do recommend the following guidelines to providing your customers with a decent IMVU experience.
• •

All textures are required to be powers of 2 along a given side. No texture should be greater than 512x512 pixels (this is actually a very helpful guideline as the larger your texture, the worse it looks in the IMVU window. This is due to IMVU having to cram all of your texture information into just a few pixels. Better to play it safe and keep your texture small and, surprisingly, more legible) In the IMVU rendering engine, it is far better to have many small textures rather than one big texture. This runs contrary to many other engines wherein puzzlelike texture collages are used to save rendering budget. Although we haven't hit a tiling limit yet, it is recommended that you keep your tiling down to 40 or so times. .jpg is the file type of choice. There are a plethora of file types that we support but we have found .jpg to be both the best tasting and most filling.

• •

1.c.5 Ambient Color It is possible to dilute the color of your sub-material using its embedded ambient color setting. To be clear, this is the ambient color setting that is actually part of the submaterial and NOT the Scene ambient. IMVU exports the ambient color that you can't see in your 3D program so, when you load your sub-material file in the previewer, you may be startled to see that your once bright and happy colors are now grey and sullen. The fix is simple: every time you create a new sub-material, make sure all of the sub-material's light settings are set to pure white. Pure white = no ambient interference. (see fig 1.4)

Page 6

IMVU, inc. Confidential

Fig 1.4 – Change the material colors to WHITE in order to avoid dull textures in IMVU.

1.d Animate your Accessory
Accessories with animations make IMVU come alive. However, this is not the time or place for an in depth discussion on how to animate in your 3D program. Rather, let's just say that if you know or can learn how to animate, you can make some really killer Accessories. By “animate” I am referring to both skeletal and morph animation. Skeletal animation refers to translating or rotating a bone that has vertices weighted to it over a linear timeline. Morph animation refers to playing one or a series of morph targets over a linear timeline. For example, if I wanted to animate an avatar flexing his bicep, I would use skeletal animation to actually move the bones (and thereby the mesh) to the right spot and then use a morph target to scale the bicep portion of the mesh. 1.d.1 Action Files An Action file is what is played when anything in IMVU is animated. There are two levels of Accessory Action file, an Idle (or constant) Action and a Triggerable Action. When building a Accessory animation meant for a triggerable Action file, it is important to remember that you can use the Loop Frame functionality in the previewer to add length and life to your animation. For example, it may not be necessary to export an animation that includes, say, a slow, bobbing motion over and over. Rather, you may be able to simply loop one bob over and over again in the Previewer. This will help keep your Accessory animation file size way down but still get the desired effect. For more on Action files, please refer to section 3.g of this doc. In regards to skeletal animation, the longer your animation, the larger your exported animation file will be and therefore the overall size of your Accessory will be higher. The same holds true for morph animation with the additional concern of the more morph targets you have in your exported file, the larger your file will be. But don't sweat it – have fun and create your vision. The Greeny Baby Dragon by IMVU is only @83k and it contains several skeletal animations.

1.e Smoothing Groups

Page 7

IMVU, inc. Confidential

NOTE: In order to avoid geometrical looking meshes in IMVU, it is important to make sure that all of the smoothing groups for a given mesh are the same across all polygons. To set the smoothing groups, select your geometry in a sub-object mode (faces, polygons, etc.) and go to the smoothing groups section of the Polygon Parameters panel. Note the rows of consecutive numbers. If you cannot see a number on a given square, then it is active and not the only number active. Click on all of the unseen numbers until you can see them all. Then, choose the number that you wish your smoothing group to be (any number is fine as long as all of your geometry is the same number).

Fig 1.5 – Incorrect looking Smoothing Groups

Correct looking Smoothing Groups

1.f Weight your Mesh
The term “weighting” a mesh refers to the act of attaching a bone's influence to a particular vertex. Weighting a mesh can be as much of an art as painting a texture, mapping that texture or building the mesh itself. Though in some cases it is quite simple, it often requires patience and skill, as sloppy jobs are immediately evident. The two major weighting modifiers in MAX are called Skin and Physique. Both modifiers now ship with MAX 7 while Physique requires a license for versions 6 and below. Each modifier has their strengths and weaknesses. Namely, Skin is the best for weighting any non-organic mesh. Skin's envelope system is super fast and not as error prone as Physique. Physique, on the other hand, works much better for organic meshes like avatars or puppies. I love puppies.

Page 8

IMVU, inc. Confidential

For the most part, Accessory weighting will be done in Skin so I will briefly describe how it’s done here. 1.f.1 Weighting using Skin First up, select your mesh and apply a Skin modifier to the top of the stack. Within the Skin modifier, click the “add” button and add AttachmentNode to the bone list. Now click the big button labeled “Edit Envelopes”. Check the Vertices box and uncheck the envelopes and Cross Sections boxes. In the veiwport, click and drag over all of the vertices in your mesh to select them. Back in the Skin Parameters menu, scroll down to Weight Properties and uncheck the Normalize and Rigid Handles boxes. Then check the Rigid box and drag the Abs. Effect arrows to the numeric value to 1.0. Unclick the big Edit Envelopes button and, voila, your mesh is now weighted. (see fig 1.4)

Page 9

IMVU, inc. Confidential

Fig 1.6 The Skin Modifier Menu 1.f.2 Weighting using Physique The Physiquing process is too complex to cover here. Try looking online for how to use Physique if you are interested. One big tip, though, will save you hours of wasted time. When you apply Physique, it offsets your mesh ever so slightly. So, when you are ready to export your mesh, remember to turn the Physique modifier off. To be clear, do NOT delete Physique – just turn it off by clicking the little light bulb next to the modifier. The IMVU exporter will still export the vertex weighting values.

2.a Export the Skeleton, Mesh,Material and Animation files
Once you have a fully weighted, fully mapped mesh, you are ready to export. At the end of the export process you will need a skeleton file, a mesh file, and a material file. Optionally, you will have animation files. Remember, when exporting, you must manually type in the file extension or you will end up exporting the binary version of the file – which is unusable in the previewer. NOTE: Sometimes, your weighting modifier will actually move the vertices of your mesh!! In order to avoid this, simply turn off your weighting modifier. Do not delete it but turn it off using the light bulb icon in the stack. Here are the steps to export: 1) Select AttachmentRoot (ALWAYS select the root node of a skeleton when exporting a .xsf file). Choose Export in the file menu. Scroll down to the .xsf file format, name your skeleton, click save and just hit next/finish until there are no more Cal3D windows visible. 2) Now select your mesh (it should turn white in wireframe mode), choose Export, scroll to the .xmf file format, name your mesh file, click save, choose the skeleton file you just exported and click next/finish until there are no Cal3D windows visible. 3) Drum roll please…. NOW select nothing, choose Export, scroll to the .xrf file format, name your material file, choose the material you named earlier (example: Glasses [0]) and click next/finish until there are no Cal3D windows visible. You need to repeat step 3 for every material in your Multi-Sub. This means that for every material you want to actually have show up in IMVU, you need a corresponding .xrf, or material, file. Woohoo!! You’re all exported and what not!!! 2.a.1 Export the skeleton Select AttachmentRoot (ALWAYS select the root node of a skeleton when exporting a .xsf file). Choose Export in the file menu. Scroll down to the .xsf file format, name your skeleton and remember to manually type the .xsf at the end of the name, and click next. The Cal3D skeleton export window appears. Within this window, you will see every asset

Page 10

IMVU, inc. Confidential

in your scene that lives within the hierarchy of the master skeleton node sitting beside a checkbox and an icon. The icons are more or less meaningless to this process but the checkboxes are relevant. Anything that has an actual checked box beside it is exported within the skeleton file. Click Finish to complete the export process. Woohoo! You have just exported a skeleton file for your Accessory. VERY IMPORTANT NOTE: Every time bones are added to or deleted from the skeleton and the skeleton file is re-exported and reloaded into the previewer, all of the assets that referred to the old skeleton need to be re-exported and reloaded. This is because your skeleton file is the base on which everything else hinges. Once the skeleton is changed, all of the other assets are now referencing a skeleton that no longer exists and your product will no longer work. Your material files do not refer to the skeleton file and therefore do not need to be re-exported. WHEW! 2.a.2 Export the Mesh The Mesh file needs to be exported AFTER the skeleton file as the skeleton is referenced in the Mesh export process. It is possible to have multiple Mesh files in one Accessory. If your Accessory uses multiple skeletal animations, you will no doubt be exporting multiple .xmf files. Just how many you can use has not been tested so play away. NOTE: Sometimes, your weighting modifier will actually move the vertices of your mesh!! In order to avoid this, simply turn off your weighting modifier. Do not delete it but turn it off using the light bulb icon. In order to export your Mesh file, select the mesh in question and choose Export in the file menu. Scroll to the .xmf file format, name your file (remembering to manually type in the .xmf at the end of the name), and click save. In the Cal3D window that appears, you will be prompted to supply a skeleton/.xsf file with which this mesh is weighted. Browse to the skeleton file you just created and then click next/finish until there are no Cal3D windows visible. You just exported a Mesh file. Look what you did! NOTE: If your Accessory has a morph animation, you must have the morph targets named properly and parented to the mesh file that is going to morph. Also, the morpher modifier needs to be underneath the weighting modifier. See section 2.d on proper morph target naming and export. 2.a.3 Export the Skeletal Animation file Your Accessory does not need an animation file to work in IMVU. It only needs an animation file if you want it to....well...animate. Heh. The animation file needs to be exported AFTER the skeleton file as the skeleton is referenced in the Animation export process.

Page 11

IMVU, inc. Confidential

NOTE: In order to have multiple skeletal and/or morph animations in your Accessory, you can optionally export only those bones that will animate the desired mesh. In order to export your Animation file, select AttachmentRoot and choose Export in the file menu. Scroll to the .xaf file format, name your file (remembering to manually type in the .xaf at the end of the name) and click Save. In the Cal3D window that appears, you will be prompted to supply a skeleton/.xsf file. Browse to the skeleton file you just created and then click next. The Cal3D window will then show you a list of all of the bones/nodes in the scene with check boxes next to them. You only need to export the bones/nodes that actually animate so uncheck those that are unnecessary. Step 3 of the Cal3D animation exporter is where you verify the actual time values of the animation. Check that the start and end frame numbers match what you intended to export (they usually do), and make sure the frames per second is set to 30 (it usually is). Click finish. You just exported an animation file! We're so proud of you. 2.a.4 Export the Morph Animation file Your Accessory does not need a morph file to work in IMVU. It needs a morph file if you want it to play a morph animation. The morph file can be exported at any time. The morph file simply contains the morph names and value change percentages over time. To get your file ready for Morph export, the file needs to be set up a certain way. The actual morph set up is the same as usual (with copies of your mesh acting as your morph targets), but the actual morpher modifier needs to be just under the weighting modifier. Also, your morph targets need to be parented to your mesh (the mesh that is actually going to morph at runtime). The morph targets have a naming convention that dictates what kind of morph they are. This naming convention must be used or your morphs will not play back in IMVU. An example of a properly named morph target is leftBlink.Clamped where the .Clamped suffix is the morph type. The prefix of the name can be anything you like. Here is a breakdown of what the four morph types are and what they mean: .Clamped – allows multiple morph animations to affect the channel but clamps the sum of their effects to 100% .Averaged – allows mutlipe morph animations to affect the channel, averages the result. .Exclusive – allows only one morph animations (the most recent one applied) to affect the channel, no cap on value (ie allows values greater than 100%) .Additive – allows multiple animations to affect the channel, values are added together. In order to export your Morph file, select the mesh file that has the morpher modifier at the top of the stack, choose Export from the file menu, browse to the .xpf file format,

Page 12

IMVU, inc. Confidential

name your file (remembering to manually type in the .xpf at the end of the name) and click Save. A Cal3D window appears with information regarding the actual time values of the morph animation. Check that the start and end frame numbers match what you intended to export, and make sure the frames per second is set to 30. Click finish. You just exported a morph animation file! You're doing ever so nicely!! 2.a.5 Export the Material files The Material files in the IMVU process are not textures themselves. They are the link between the texture and the mesh that live in your final CFL product. Basically, the Material file tells the mesh that a specific texture (or textures) is meant to be applied to the material ID number embedded in the mesh. This material ID number should be included in the sub-material name in MAX. The Material files can be exported at any time. In order to export the Material files, make sure you have nothing selected, choose export from the file menu, name the file (remembering to manually type in the .xrf at the end of the name) and click Save. The Cal3D window that appears shoes you a list of the materials and sub-materials in the scene – including the sub-materials you had named back when you were building. Choose your sub-material name from this list and then click next. The following Cal3D window is your opportunity to verify that this Material does indeed contain the texture(s) you wish to export. Once verified, click Finish. You need to repeat this process for every multi-sub in your MAX material. This means that for every material you want to actually have show up in IMVU, you need a corresponding .xrf, or Material, file. Ok...are you ready? You done been exported!!!

3.a Catalog Shot
While you still have MAX open, this is a good time to take your catalog snapshots. I usually take them in Perspective mode with a completely white background and all of the environmental lighting turned off/set to white – this makes the images nice and crisp when they are small. Taking your catalog shots in MAX also allows you to quickly swap textures while keeping the mesh in the exact same place. This is handy when you want to run an action in Photoshop to reduce all of the snaps of a given mesh to the same proportion. Once you have your source, it needs to be reduced to 100x80 in order to fit in the IMVU catalog. The submission process automatically reduces any catalog image to 100x80 but the result is never as nice as what you can do yourself. The final catalog shot should be saved as a .gif file with no more than 64 characters in its name.

Page 13

IMVU, inc. Confidential

4. Building an Accessory in the Previewer
The Previewer is IMVU’s proprietary development tool. It allows you to put together all of your exported assets, save them into a product and submit that product to the IMVU catalog. The Previewer is pretty powerful; allowing new Developers to do the simple stuff like just changing a texture while also allowing professional Developers to put together a wide range of products.

4.a Asset signing?
'Asset signing' means that every product in the catalog is automatically digitally signed by its Developer author. The Previewer is aware of who is the author of every Product. The first time you use the Previewer, you will have to enter a login, for an account to be "associated" with the Previewer install. You can also add other accounts, for those of you with multiple dev accounts (see section 0.c).

Fig 3.1 – The Previewer’s Product Info panel

4.b How does ‘asset signing’ work?
When someone attempts to edit a product, the Previewer will determine if the product's author is one of the Developer accounts associated with it. You will not be allowed to edit a product which is not your own. Consequently, no one else will be able to ‘edit’ your products – they will only be able to ‘derive’ from them. Asset signing gives IMVU a theft free Developing environment where you should feel safe placing your hard work into the IMVU catalog.

4.c What if I have multiple Developer accounts?
If you have multiple Developer accounts, have no fear. You can add Developer accounts to one Preview install. Just click Help/Manage Developer Accounts to be brought to the ‘Manage Developer Accounts’ dialog. Within this dialog, you can add and remove Developers. You can also set which Developer is the default or active Developer.

4.d Load Existing CFL
Now that you have all of your files exported, fire up the previewer. The easiest way to make a new Accessory in the previewer is to ‘Create a Derived Product’. Go to the

Page 14

IMVU, inc. Confidential

webpage of the product you wish to derive from and click on the ‘Derive from product’ link. Example primary Accessory products are: Female: product683 Male: product669 If you don’t want to go to the trouble of surfing the web and know the product number of the Accessory product you wish to derive from, just choose ‘Create a Derived Product’ in the file menu of the Previewer and type in the product number when prompted. If you do not have the product files you need, the Previewer will ask if you want to download them. Click the download button and then click the close button. NOTE: if a product has been set to non-derivable by the original Developer, you will not see the ‘derive’ link on that product’s page nor will you be able to create a derived product straight from the Previewer.

4.e Advanced Mode
The IMVU previewer comes prepared for the painter to change textures and the novice modeler to play with geometry. In order to create an Accessory you must enter the dark and forbidding world of.....ADVANCED MODE. Muahahahahahaaa. Under Edit in the main menu, check Advanced Mode. This will actually set the previewer default to Advanced Mode so there is less hassle. You will notice several new tabs appear within the previewer window. You will use most of these before we are through.

Fig 3.2 – Choosing Advanced Mode

4.c Auto-refresh
Something you might want to do at some point in the Accessory making process is turn off Auto-Refresh. With Auto-Refresh on, the previewer applies every change you make when you make it. Sometimes a single change can cause a pause of about 10 to 20

Page 15

IMVU, inc. Confidential

seconds while your change loads. You are going to be making so many changes that a 10 to 20 second wait between them will quickly become tiresome. When you are ready to see any of the changes you have made, just hit any available Apply Changes button.

4.d Use OpenGL Rendering option
IMVU’s default rendering software is provided by Pixomatic, or Pixo. Pixo is a software renderer while most other renderers use hardware acceleration. Because of this, the Pixo renderer is able to run on a larger base of machines and is likely to cause fewer headaches upon first installation of IMVU. However, because Pixo omits some of the more costly rendering calculations (filtering, anti-aliasing, and alpha textures just to name a few) it does not usually look as good as OpenGL. IMVU users have the choice of running IMVU in either Pixo or OpenGL. This support is also available in the Previewer. If you want to see your Accessory looking fantastic, choose “Use OpenGL Rendering” from the edit menu. However, be advised that you should always check to see what your Accessory looks like in Pixo in case there are any problem areas. I, for one, always build in Pixo because I know that if I get things looking good in Pixo, they will just look better in GL.

4.e Edit Other tab – Accessory specific options

Page 16

IMVU, inc. Confidential

Edit Other Panel Our first stop is the Edit Other tab (the yellow one). In this tab, you will find several key bits of Accessory functionality. First up is the BodyPatternProductID. Change this

Page 17

IMVU, inc. Confidential

number to the avatar product number of your desire and then apply changes. The IMVU Body Pattern Products are named as follows: Female: product80 Male: product191 Now is the time to Save As a different file name. The file name can be anything at this point as the name is automatically converted to a product number upon upload. The second thing you will notice is the AttachmentNode box. Change this name to whatever avatar skeleton bone name you wish your accessory to attach to. For example, in the case of Glasses, type in “Head”. Remember to type in the EXACT name of the avatar skeleton bone you wish your Accessory to attach to. 4.e.1 Avoid attaching to the Avatar’s Pelvis node In the Previewer, you will tell your accessory skeleton which bone on the avatar it should attach to. Although you are allowed to attach your Accessory skeleton to any bone on the avatar, it is recommended that you do not attach it to the Pelvis node. You may be unhappy with the result. 4.e.2 Accessory limit per bone You may wear multiple Accessories at one time but may only wear three Accessories per attachment node at one time. This means that you could be wearing your sunglasses, halo and antennae on your head AND be wearing your shoulder pads, wings and sheathed sword on Spine4 at the same time. Pretty cool.

4.f Change the mesh files
In the tab called Edit Geometry, browse for and select your mesh file. If you require more than one mesh file in your Accessory product, hit the Add New Mesh button. When you are done adding mesh files, hit Apply Changes to see the effect of your changes or move on. Whenever you hit the Add Mesh button, a new material slot is added in the Edit Textures tab at the bottom of the stack. Remember to give your new mesh a number in the Mesh ID box.

Page 18

IMVU, inc. Confidential

Edit Geometry Panel NOTE: It is wise to Save or SaveAs as often as possible.

Page 19

IMVU, inc. Confidential

4.g Change the Material files
In the tab called Edit textures, you will notice a material window named Material0. This contains a slot for material/.xrf files, actual texture files, texture file name, material ID, a delete button, a New Material button and a whole lot of check boxes.

Page 20

IMVU, inc. Confidential

Edit Textures Panel 4.g.1 Material Properties

Page 21

IMVU, inc. Confidential

Each Material panel contains a series of check boxes that affect how the texture is seen in IMVU. The first of these, Use Blending, tells the material that the opacity map supplied (if you supply an alpha map) should use full opacity as opposed to rough cutout. Full opacity means that all 255 levels of gray are factored into creating the final alpha image. Cutout means that only black and white are taken into consideration – with all of the grays being turned into either white or black. Directly to the right of this check box is the Mode drop down menu. If you checked the Use Blending checkbox, the Mode drop down tells the full opacity map whether it can be an Additive blend or just stay a composite blend. Additive blending literally takes the texture and “adds” light values to it based on values in your opacity map. The more additive textures you have in front of one another, the brighter and brighter they get. COOL! This is handy for things like shafts of light. The second check box, Two Sided, tells the material to render no matter what side of a polygon you are looking at. Handy for draping hair and the like. The third checkbox, Self Illuminated, makes the material unaffected by the Scene’s lighting. This is handy for things like fire or anything that you want to stay bright. The fourth checkbox, Fog Override, makes the material unaffected by fog. This is VERY handy for sky textures. The fifth checkbox is Vertex Colors. If you have exported a mesh that contains vertex colors, you can view them on a per-material basis by checking this box in each material. 4.g.2 Browse for new textures In the material window named P0M0, browse for the Material/.xrf file that corresponds to the first material in your MAX file. This Material/.xrf file would contain the sub-material with the [0] in its name. Next, delete the texture names underneath the texture images. This wipes the texture slate clean and allows your pending texture change to take effect. Next, click on the actual picture of the texture and browse for your new texture. Make sure the Material ID is set to 0 (zero) and hit apply changes. The most noticeable change in the previewer should be that an icon of your texture has replaced the original texture. 4.g.3 Adding Materials As you add new meshes and materials to those meshes, the name of the material panel will procedurally change from Material0 to Material1, Material2 and so on. 4.g.4 Texture Animation Texture animation rox. Within every material’s panel, there lives a Texture Animation Parameters panel. The boxes in this panel allow you to make a texture move – neat! The first thing you need to do to access this functionality is turn ON texture animation.

Page 22

IMVU, inc. Confidential

Currently, IMVU supports two types of texture animation, Scrolling and Cycling. These are accessed in the Mode dropdown. Scrolling allows you to slide the texture across the surface of a mesh in a direction and speed of your choosing. Cycling allows you to sample frames within a given texture. An example of Scrolling can be found on the water in the Cast Away Raft room (product651). An example of Cycling can be found on the fire in the Romantic Log Cabin room (product608). Cell width and Cell height are used for Cycling animations. The number here is in pixels and tells the animator what size you want your animation cell size to be. For example, if I had a texture that was 128x64 and I happened to have four separate frames drawn across it from left to right, my Cell width would be (128/4=) 32 and my Cell height would be 64. Offset X and Y allow you to offset where your first frame of a Cycling animation begins. This is very handy if you have one large texture that contains several Cycling animations on it. Set your X and Y to 0, 0 to use the full texture, or different values to use a subset of the texture. The cell rectangle does not have to divide the dimensions of the texture evenly, and it doesn't have to have the same proportions as the texture. Start Cell is used for Cycling animations and tells the animator which frame to start on. This is handy for things like flickering candles where you may want to use the same texture on a bunch of candles but don’t want them to animate the exact same way (meaning looking EXACTLY the same in IMVU). With this feature, you could use the same texture on multiple candles but have them all appear different in IMVU. Of course, you COULD just make new textures per each flickering candle but that would needlessly increase the file size of your product. Direction X and Y are used for Scrolling animations. These deltas specify the amount (direction and speed) to scroll, positive numbers going down and right. The delta is in Fixels (fractional pixels) # of Cells (I know, it says 0 of cells – we’re working on it) allows you to define how many Cells the animator should include in a given animation. By calling setting Offset X/Y or Start Cell, and then setting the number of cells with this function, you can use a single texture sheet for multiple sets of cells. Frames per Cell allows you to slow down the animation. You can specify that it takes multiples of 1/30 sec to advance a frame of animation. 4.g.5 Material files with Alpha There is an issue with loading a Material file that contains an alpha channel into a slot that does not already contain it. Basically, it pretty much breaks your product. However, there is a workaround. Once you have loaded a Material file that has Alpha into a nonalpha Material slot, the product looks for an alpha material but can't find one. Plus, because the original Material file did not contain an Alpha map, you don't have the option

Page 23

IMVU, inc. Confidential

to browse for the Alpha map. So, SAVE the product. After you save, you will notice that all of the material icons have disappeared. Don't worry – now that there are no textures in those texture slots, you are now able to browse for your alpha channel. Do so, hit Apply Changes and all should come back looking healthy. 4.g.6 Add or Delete Some CFL files have a different amount of Material slots than your Accessory. Thus, we have supplied you with Add and Delete buttons. Clicking the add button adds a new material to the bottom of the list. While clicking the delete button deletes the Material that contains the button you are pressing. As you add or delete materials, please make sure that the Material/.xrf file you are using contains a sub-material whose name matches the Material ID number in the window. If the CFL file you started with contains more materials than you need, it is wise to delete them. Otherwise, the size of your CFL file will be unnecessarily large. There are two steps to deleting those extra files: delete the material reference in the Edit Textures tab and deleting the actual files from the CFL tab.

4.h Change/Add the Animation file
It should be noted that although the Accessory Action Editing section of the previewer will look scary at first, what with all those variables, knobs, gauges and so forth, please remember that the casual user will rarely use all of them. We supply them so that you can do whatever you have in mind….even if it is complicated. The main thing to keep in mind when using the Accessory Action Editor is that it has been built to allow for a wide range of randomization. Randomization is one of the most powerful tools you can use in IMVU as the level of interest and fun increases as the participants realize they aren’t seeing the same damn animation every time they trigger it. It is different somehow. This is how you can bring life to an otherwise dead Accessory. Once you have used the Accessory Action Editor once, you’ll find its like riding a bike – so simple…our bike just happens to be a top of the line carbon fiber deal with dura-ace components, spinergy wheels and weighs just under five pounds! Actions are not to be confused with animations. An Action file can contain multiple animation files. It can also contain sounds. Action files are all encompassing. They reach into your soul and tease it. They bathe in cream and walk tall. Action files are God.

Page 24

IMVU, inc. Confidential

Fig 3.5 – Action Editor tab complete with Action (in blue) and ensemble (in red) 4.h.1 Action Editing Header The header for Accessory Actions contains the usual Apply Changes button and a button called “New Action”. Accessory products can have multiple embedded Actions. These can be either be an Idle or a Triggerable Action. For example, the Baby Greeny Dragon contains Idle animations to make sure it keeps flapping its wings no matter what your avatar might be doing. It also contains triggerable actions that respond to what is typed in the 3D window like ‘yes’, ‘no’ and ‘flip’. 4.h.2 Triggerable Action Name

Page 25

IMVU, inc. Confidential

In the tab called Edit Actions, click the New Action button. This will load the action editing parameters necessary to load and edit your Accessory Action. The first section is called Triggerable Action Name # where # = the actual number of the Action. Your first Action will always be named Triggerable Action Name 0 while the next one you add will be Triggerable Action Name 1 and so on. Within this panel there are many useful tools: Click the “Play Action” button when you want to witness your triggerable action. If your Accessory is meant to have a constant, idle animation (like the Baby Dragon or the Balloon Turtle), then there will be no need to hit this button. In the “Trigger Word” box, you may choose the word that, when typed, will trigger the Accessory action. If you want the animation to be an Idle animation (always playing) the name should be “stance.Standing”. Underneath the Trigger Word box is the Sound box. Here you may browse for any sound that you want associated with this action. You may also delete the sound if you prefer or just leave it blank if you don’t want any sound involved. IMVU only supports .ogg sound files but the content of the sound file can be anything you like. Just remember to use caution when adding large sound files as these will make your overall product size larger. And last but not least, the “Add Ensemble to this Action” button…well….adds an Ensemble to the Action. Ensembles are collections of assets and variables that can play within one Action. This is handy if you want to have random variety in what happens when your Action is played. An Action can consist of one or many Ensembles. 4.h.3 Action File Parameters There are two options in the Action file parameters: ‘No. of ensembles played (0 = infinite loop):’ allows you to set how many ensembles play within an Action. In all honesty, it is more convoluted than that and so I offer this simple guidance: Set this number to zero if you want to have your Action loop forever (as in the case of an idle or prop action). Otherwise, just leave this number at the default of 1. In the “After playing ensemble” drop down, you may choose “Pick new ensemble” or “Pick same ensemble” or “Cycle through ensembles”. Pick new ensemble means that your Action will choose randomly from the Ensembles available in the Action every time an iteration comes to an end. Pick same ensemble means that your Action will play the same collection of Ensembles every time an iteration comes to an end. Cycle through ensembles is something we added to allow us to make sure that all of the ensembles embedded in the avatars were actually working. This is handy for anyone testing an action with multiple ensembles.

Page 26

IMVU, inc. Confidential

4.h.4 Ensembles The first thing to note in an Ensemble is its name. As you add Ensembles to an Action and more Actions with more Ensembles, the numbers in the Ensemble name rise. The first Ensemble will be called “Ensemble 0/0” where the first number refers to the Action number and the second refers to the Ensemble itself. So, if you were to add an Ensemble to Action 0, it would be named “Ensemble 0/1” and so on. If you were to add two new Actions, then your first new Ensemble in Action 2 would be named “Ensemble 2/0”. Ensembles can consist of one .xaf file and one .xpf file. The rest of the knobs and doohickeys pertain to the specific .xaf and/or .xpf files contained within the Ensemble. The first doohickey of note is the “Probability of Playing” (or POP) box. When your Action contains multiple Ensembles, the number typed here will tell the Action how often it should choose to play this particular Ensemble. The number typed here ought to be 1.0 or a fraction of 1.0. For example, if you want this Ensemble to play roughly 30% of the time, you would type in .3. It is best, though not required, to have the total values of all of the POP boxes equal 1.0. In the “Stop After” box, you may choose to stop the Ensemble after “Longer effect ends”, “Shorter effect ends” or “Do not stop. Effect loops”. If you choose to stop the Ensemble after “Longer effect ends”, then the Ensemble will wait until the last frame of the last asset to stop. If you choose to stop the Ensemble after “Shorter effect ends”, then the Ensemble will either wait until the last frame of the first asset to stop to end OR after the amount of frames typed in the “Fixed duration frames” box. If you choose to stop the Ensemble after “Do not stop. Effect loops”, then the Ensemble will not stop. This option ought to be used when the ‘No. of ensembles…” in the Action File Parameters is set to zero. The “Playback Speed Multiplier” allows you to speed up or slow down the playback speed of your animation when triggered. However, this box does not affect sound effects. Here are examples of what certain values do: 0.5 = half playback speed. 1 = same playback speed. 2 = double playback speed. And the dangerous one…..”Delete this Ensemble”! Be sure you mean to press this button. You can always add an ensemble back but all of your previous entries would be gone. Yuck. 4.h.4.a Skeletal Animation Panel

Page 27

IMVU, inc. Confidential

The Skeletal Animation Panel follows the same naming convention as the Ensemble 0/0 naming convention. The Skeletal Animation Panel is where you browse for and edit settings for your .xaf file. The Browse, Amplitude Scale, Playback Scale and Delete .xaf buttons and boxes should all be self-explanatory as we have covered them at a higher level. The difference is that you can tweak either the individual pieces of your Ensemble within the Skeletal and Morph panels or effect them both within the Ensemble #/# panel. Skeletal animation effects compose in proportion to their “Blend Weights”. By default, all “Blend Weights” are 1.0, meaning that effects will have equal influence, not considering ramping up or down. Ramping will further affect the composition proportions in a way that depends on the composition function, specified below. The two options are Average and Replace. A Replace effect will attenuate the influence of other lower priority and non-Replace effects by the inverse of its ramp value. If its ramp value is 1.0, then the other effects are reduced to zero influence. The “Blend Weight” range is 0-100 with its default = 1. “Blend Weight” doesn't affect sound effects, since sound effects compose additively. “Blend Weight” affects morph effects based on Averaged morph targets (i.e., morph target channels that are named ".Averaged" in the pre-exported asset itself). The “Composition” box allows you to effect whether an animation replaces or averages with other animations in the Action. When you choose Replace, the Replace effect ramps up to 1.0, the other non-Replace effects and lower priority replace effects will be ramped down to zero. When you choose Average, the effects will compose with influence in proportion to their ramped relative weights. If there are two effects of equal relative weight, a fully ramped Average effect will have 50% influence, sharing the other 50% with an existing effect, instead of reducing the existing effect to 0% influence. With “Debug Mode” checked, you will be able to refer to the console window for a detailed description of just what is going on during your animation. Since there is a lot of spew to the console with this option on, the default is set to unchecked. Skeletal Frame Controls allow you to set Blend In/Out frames, Loop Start/End frames, and the # of Loops. However, you must always remember to give the actual number of frames in your animation asset in the “# of frames in asset” box. This done, the Blend In/Out boxes allow your animation to blend seamlessly from whatever triggered or idle animation is being played at the time you play the Action you are editing. If you choose a Blend In/Out time of 0 frames, then your animation will pop. It is possible to loop your animation for as long as you want and for as many frames within your asset as you want. This can effectively cut your .xaf down to only the necessary frames needed to export. Much can be accomplished by simply playing with

Page 28

IMVU, inc. Confidential

the loop parameters. What follows is a more verbose description of just what looping means: This parameter specifies where the loop section begins. The effect will begin on frame N, advancing to the end frame, and then cycling back to the start frame for the remaining loop iterations. After all iterations have played, the effect will advance through the end frame to the remaining frames. The effect remains "on" during the release period. If the start and end frame are both zero and the effect loads successfully, then the end frame will be adjusted to be the last frame. Thus if you want a simple looping effect you can set the start frame, end frame, and loopIterations all to zero. If you want a simple one-shot effect, then set the start frame and end frame to zero, but set loopIterations to one. If the start and adjusted end frame are the same, then the effect does not have a loop section, and the loopIterations parameter will be ignored. 4.h.4.b Morph Animation Panel The first difference between the Morph and Skeletal Animation panels is that the Morph panel is missing the “Composition” box. This is due to the fact that this functionality needs to take place in the actual morph target name within your 3D program. The second difference is the addition of the “Amplitude Scale” box. By adding numerical values greater than 1.0 to the “Amplitude Scale” box, the .xpf will scale the active morph targets. For example, if you had set a morph to 75% upon export, and then set your Amplitude Scale to 2, the morph would play back at 150%. This can result in some fun varieties that you never would have thought of while setting key frames. Play around with it to see what I mean.

4.i CFL tab
To purge your CFL file of all extraneous assets, click on the CFL tab. This tab shows you an itemized list of all of the assets currently contained in your CFL file. Among these assets you will notice a file called index.xml. Never delete this file. It is necessary. Otherwise, if you see a file you did not create personally (other than index.xml), then it is garbage and ought to be deleted. Once you have finished deleting files from the CFL tab, SAVE your product. When you save, you essentially make the asset deletions stick. Do not hit Apply Changes as this will only bring all of your deletions back and you will have to do the whole thing over again.

Page 29

IMVU, inc. Confidential

4.J Save and apply changes
Now that you have successfully loaded your skeleton, mesh(es), animation(s) and texture(s), it is time to Save and ApplyChanges. Heck, you might just want to Save again just to be sure.

5. Submit your product
You've got a CFL and a catalog image so you are now ready to press the big, red ‘Submit Product to IMVU catalog’ button in the Product Info panel. If you are not logged into the website, you will be asked to log in. Please log in using the Developer account you are currently using in the Previewer. If there is a mismatch, you will be asked to log in. Once logged in, a web page will pop up wherein you can (and should) edit multiple fields:
• • • • • • •

Choose where in the catalog your product will live The Product’s name The Product Description (you can add HTML tags to this) Product rating (See IMVU’s Terms of Service for guidelines – anything containing nudity and/or otherwise adult content must be given a mature rating) Product price CFL file – for this section, just copy and paste the URL provided just above the edit box. TIP: If you haven’t saved your CFL, this URL will not appear. Derivability – Allows others to make derivations of your work. If they sell, you get more money.

Fill everything out and press the submit button. BLAM! You have submitted a product to the IMVU catalog. It does feel good, doesn't it? NOTE: In the future, if you want to change any info on the product info page, just click the ‘Edit Settings’ link. NOTE: Although you can place any item anywhere in the IMVU catalog, it is prudent to place your product where it makes the most sense to your customer. Also, please remember that you can always edit the product whenever you want so you can change its location if you mistakenly placed it incorrectly.

5.a Rename the CFL on your machine
When a product is submitted to the IMVU catalog, its original name is replaced with a new, unique numerical name. This new name can be found on the product info page in bright red on the left hand side of the page. The naming convention for products in the IMVU catalog is always product#.cfl. So, you essentially only need to know the # your product has been assigned. We HIGHLY recommend that you now rename your CFL to

Page 30

IMVU, inc. Confidential

match the name found on the IMVU server. Doing this will allow you to directly resubmit your product if it is any way broken.

5.b Hide/Show
Every Developer has the power to make their own products hidden or visible in the catalog. You can do this by clicking on the red button for hide or the green button for show. This comes in handy for when you have first created a product and are unsure as to whether it works. You can hide the product and then test it on your own – knowing that others cannot buy it.

5.c Use and Edit
Now that your product is live in the catalog, it is wise to hide the product and wear it in an IMVU conversation. If there is anything you would like to change about this product, you may do so by going back to the catalog, clicking Edit this Product and doing so.

5.d Fix and Resubmit
The CFL files we use in IMVU are their own little universes. Once you save them, they contain all of the relevant information needed to exist on their own. This means that if you update any file included in the CFL file, it will not just automatically appear in the CFL product. You must manually edit the CFL to include the new version of the file. If you want to fix anything about your CFL, you have two routes you can go through: 1. You can just go to that product’s info page and click on the ‘Edit this product in the Previewer’ link. This will launch the Previewer. 2. You can launch the Previewer on your own and choose to Edit a Product. Then, just type in the product number of your CFL. In either case, you can make your edits and save. Then, press the white ‘Resubmit modified product CFL’ button on the Product Info panel. This will bring you to a web page where you can follow the instructions to resubmit. NOTE: There is no fee for resubmitting a product so feel free to fix your products…or even change them in minor ways. Of course, changing them in major ways will upset your customers and bring your Developer ranking down.

5.e Derived Products
There are two kinds of products in the IMVU product system: Primary products and Derived products. Primary products are usually the first product of a given geometry to have been built. You should think of Primary products as the master products from which all others ought to be derived from.

Page 31

IMVU, inc. Confidential

Derived products literally inherit all of the attributes of the Primary product but overwrite one or two features. They are smaller, faster versions of the Primary product as they should only contain overrides. Usually, these overrides are in the form of texture overrides. Since the file size is much smaller than the Primary product, Derived products will make your product more appealing to your customer as the download time is much shorter than the Primary. NOTE: If someone were to purchase only the Derived product you made and not the Primary product, they automatically download the Primary product so that the Derived product will have something to derive from. Say THAT ten times fast! Sometimes, you want to be the first Developer to make derivations of your work (for example, you might want to make different colored versions). Making a Derived product is simple. The first thing to do is rename your recently created Accessory product to be the IMVU-created, product#.CFL naming convention. To find this name, simply go to the catalog page for your item – it is the bright red product#.cfl on the left hand side of the page. Open the previewer and choose Create a Derived Product. This will prompt you to choose the CFL file from which you wish to derive. You will notice that you can only derive from a correctly named CFL and not from a randomly named CFL. This is because your Primary product must have a product number and therefore must actually live in the IMVU catalog BEFORE you create any products that inherit from it. This is a failsafe to protect you from submitting an Inherited product that would ultimately not work. Choose your recently saved and newly named Accessory product CFL file. Although this will load the avatar as well as your Accessory, the only thing that will be saved is the override. Change whatever you want to be different in the new product, and then choose Save As. The new file name can be anything at this point as the name is automatically converted to a product number upon upload. Quit and rerun the previewer and then load your newly created Derived product just to make sure all of your changes took. After making sure the product works, click the big, red ‘Submit Product to IMVU catalog’ button in the Product Info panel.

Wrapping Up
And that’s that. This may seem like a long-winded explanation, but the process is actually quite speedy once you've done it once or twice. So please give it a chance. If you have any problems at all, please do not hesitate to contact matt@imvu.com. We've said this before but we mean it: We at IMVU CAN NOT WAIT to see what you all come up with.

Page 32

IMVU, inc. Confidential

Sign up to vote on this title
UsefulNot useful