Chat Rooms - IMVU



How to build Rooms

In IMVU, a Room is any 3D environment that surrounds an avatar chat. A Room can contain anything you, the developer, can think of and be as simple as an all white background or as complicated as the oval office...or the Gobi desert...or inside the human heart. The biggest limitation on building 3D Rooms for IMVU is your own imagination.

Building 3D Rooms requires a working knowledge of building in 3D including: texture mapping, weighting, lighting, and animating.

This document will be split up into four sections:

1. Building the Skeleton, Mesh and Material for the 3D Room

2. Exporting those assets into the proper, Cal3D file formats

3. Assembling those assets in the IMVU Previewer to create a Room product

4. Submitting a product to the IMVU catalog

When finished with this doc, you will know more than just how to make a 3D Room. You will know how to levitate and turn chow mein into window casing. ;p Seriously, you will know how to retrieve the example 3D Room, set screen ratios, set up the Room skeleton and node hierarchy, build the Room geometry, assign Multi Sub-Material names, animate the Room (or portions thereof), place cameras, light the Room, export the skeleton, mesh, animation and material files, take a GREAT catalog shot, load your new exported files in the Previewer, create a product, save your CFL file, submit the product to the IMVU catalog and – FINALLY – download the product and use it in IMVU. Nonsense, you say? Lunacy? MADNESS? Oh yes, it's that and more....so let's get started.

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.

Chapter the 1st: Building the Skeleton, Mesh, Materials and Animations for the 3D Room

1.a Retrieve the example 3D Room

For the purposes of this document, we will be using 3DS MAX 7 as the default 3D editing program. Start Max and open the example 3D Room. The Example 3D Room can be found in the Example3Droom.zip download on our developer site at

This .zip file also contains product10860.cfl, which you will be using in the Previewer.

You will most likely use the skeletal hierarchy found within this MAX file. However, this IS a How To so we're going to walk you through how to build everything from scratch. If you don't want to build everything from scratch, then please skip on to section 1.d.3.

1.b Example 3D Room Contents

The Example 3D Room contains several objects necessary to convert your idea into IMVU reality. These include point lights, an omni light, an ambient light setting, 1 camera, a mesh or meshes, a Multi-Sub material, a skeleton.Room node, a node.Room node, 2 seat nodes, 2 sets of Catcher/Pitcher nodes, 2 handle nodes and 2 groups of avatar meshes (one standing, one seated).

NOTE: Save this file with a new name, as you may need to merge facets of the original example 3D Room into your new Room if a mistake is made.

NOTE: We at IMVU, inc. do not limit you in how large any particular piece of your Room asset can be. We do, however, limit the overall size of your final CFL product file to 2mgs (WHICH IS HUGE). Download and runtime size is an issue that should be kept in mind whenever designing for IMVU. If your Room’s file size is too big, it is unlikely that your potential customer will purchase and download it. It is good practice to try to keep the texture size, vertex/face count of your meshes and animation length down to the bare minimum. There really is no reason to have a 256x256 texture on a tiny facet of your Room: it just won’t be seen. In fact, we have found that the smaller the texture, the BETTER it looks in IMVU. Go figure.

1.c IMVU Window Size Ratio

The size of the IMVU window is customizable in the previewer. Although I know you want to get on to building the darn Room already, it is QUITE helpful to have a good idea of the end result size of the IMVU window before actually building. Having the Room size right from the get go allows you to set your camera up and know, with certainty, that what you see in MAX will be what you see in IMVU. You can always have fun and change the window size on the fly...but, trust me, you're not gonna want to do that once you've spent a couple of days getting that camera angle just right.

You can set the “window size” in MAX by changing the width and height under Output Size in the Render Room dialog. In order to see the affect of the height and width change, just choose “show safe frame” in your viewport.

Your Room window size can be any size up to 1000 x 1000 pixels. Of course, the larger the IMVU window is, the more costly it is at runtime so please be wise. We have found that 400x320 or 390x310 are pretty good sizes.

1.d Build your Skeleton

1.d.1 skeleton.Room and node.Room

Every Room in IMVU has a skeleton. The IMVU Room skeleton can be as simple as two “bones”, or nodes, or as complex as you like for implementing Room animations. The first necessary bone is called ‘skeleton.Room’. Skeleton.Room is the top of the hierarchy and may eventually be what you weight your mesh or meshes to. The other necessary bone is called node.Room. Node.Room is what the lights need to be linked to. Node.Room is linked to skeleton.Room. These bones can be anywhere in the Room and be any size.

1.d.2. Seat nodes

The next sets of bones are the seat nodes. Although IMVU does not support having 99 seats in one chat, you may have as many as 99 seats in your Room (Its really fun to hop around from seat to seat).

The avatars come with two default idle stances: either standing or seated position. As of the inception of this document, any dummy node using the seat node naming convention and linked to skeleton.Room, is a seat node. The seat node naming convention is as follows:

Standing: seat01.Standing and seat02.Standing

Seated: seat01.Sitting and seat02.Sitting

As your keen and perceptive eyes have no doubt noted, the naming convention is simple: the prefix identifies which number seat the node is while the suffix identifies which “Base Pose” to use for that particular seat node.

The seat nodes need to be parented/linked to the node.Room bone.

1.d.2.a Room specific Avatar Actions – new base poses

Although there are only two base poses embedded in a given Avatar’s Body Definition, it is possible to have a different base pose for you room. Your new base pose animation can be anything you like. In order for that animation to be called by the Room, the seat nodes in the MAX file need to be renamed (preferably a name that is easy for you to remember later) and that name has to be repeated later when using the Previewer. For example, if I want to have my avatars floating in a pool, I would name my seat nodes seat01.FloatingInLiquid, seat02.FloatingInLiquid, etc. Then, when using the previewer, I would name my Room embedded avatar Action ‘stance.FloatingInLiquid’. More on this in section 3.g.2.a.

NOTE: If you name a seat to have a special base pose but do not supply an avatar action with this name in the Room product, the avatar will default to its embedded standing idle.

1.d.3 Camera

1.d.3.1 Camera Naming Convention.

Each Room must have one camera. This default camera is named camera.01.01.root. Every time you load a Room in IMVU from scratch you will start in this camera position so it is pretty important that you frame things correctly.

IMVU has multiple camera paradigms. From the default camera, it is possible to zoom in and out and rotate around the camera’s target by just dragging your mouse in the IMVU window. You can also pan left/right and up/down by right clicking on the window and moving your mouse. When you switch to another seat within the Room, the camera then tracks your avatar and will zoom into and swivel around your avatar’s head.

1.d.3.2 Camera hotkeys

You can zoom and rotate the camera by using keyboard controls as well. Ctrl+Arrow keys pan and Shift+Ctrl+arrow keys allow you to rotate both side/side and up/down.

NOTE: the camera can be placed ANYWHERE in the Room - so have FUN!”

1.d.3.3 Camera Field of View

What follows is from the IMVU Developer forums:

“The field of view for the IMVU camera is currently set to 45 degrees. However, IMVU is currently faced with two options insofar as the basic camera is concerned: 45degrees horizontally or 45 degrees vertically. We have opted for vertically.

This means that when you folks start building your own Rooms from scratch the camera focal length in your 3D program ought to be set to 45 degrees. (In MAX, you have three FOV options: horizontal, vertical and diagonal. For a one to one correlation between what you see in MAX and what you see in IMVU, choose the Vertical button. This is located right next to the FOV editor).”

1.d.3.4 Camera parenting

The camera needs to be parented to the skeleton.Room bone.

1.d.3.5 Camera Targets

When creating the camera in your 3D Room, you will notice the target of the camera is automatically generated with the proper name. The target can be moved separate from the camera itself.

1.d.3.6 Auto Head Zoom

The position of your camera’s target node matters, as there are some behind the Rooms wizardry at work. Since IMVU has so many avatars of varying heights, we ran into the problem of the target node’s position being the place you zoom into. We kept zooming into the chest of one avatar, the chin of another and the forehead of the third. SO, we built in auto head zooming. Imagine that the seat node in a room has a centrally placed, meter wide cylinder around it that goes up and down to infinity. By placing the target of your camera within this invisible cylinder of influence, you are effectively telling the IMVU code to zoom not to the target position but to the head node of the avatar that is sitting in the seat. Pretty neat.

1.d.3.7 CloseUp nodes

.CloseUp nodes act much like the Auto Head Zoom feature detailed above. In this case, however, you are prescribing exactly where you want a camera to zoom rather than having it dictated by proximity to the seat node. By tacking on the suffix “.CloseUp” to a new Dummy node that has been named after a camera (camera.01.01.root.CloseUp, for example), you are effectively overriding the target node of the camera as the zoom destination. When the camera is at the position identified in MAX, it is still looking at the target node. However, when you begin to zoom in, the .CloseUp node takes more and more control until, at full zoom, you have arrived at the .CloseUp node’s location. For an example of this functionality, take a look at the Snowy Mountain backdrop room (product510.cfl).

NOTE: There is no need to make a .CloseUp node for most 3D Rooms. It really is an error case solution.

1.d.3.7 Camera Animation

The camera in IMVU Rooms can animate! Like any other “bone” in the Room, the IMVU camera can be animated using translation and rotation. Like any other camera, these animating cameras will be included in your skeleton file when you export.

For examples of animating cameras, take a look at the Ferris Wheel Room or the Alpine Skating Rink Room.

1.d.3.8 IMVU supplied Avatars

Within the example 3D Room, you will see two avatar meshes: one standing and one seated. These avatars have been positioned EXACTLY right on the seat nodes so that you can be certain that the direction your avatars are pointing in MAX are going to be the way they are pointing in IMVU.

Depending on the type of Room you want to build, you will need both, one or the other or none of these avatars. If you want to build a Room with only standing positions, delete the seated group and seat node it is linked to. This node is most likely named seat02.seated. Now copy the remaining avatar and seat node at the same time. Please make sure that you now have two seat nodes and they are named seat01.standing and seat02.standing respectively. To verify that your new avatar is linked to the seat node, delete the link between the seat node and avatar and then re-link the avatar to the seat node.

NOTE: In order to move the avatar while retaining the correct position and heading on the seat node, just move and rotate the seat node. The avatar will move and rotate along with it. If you move the avatar instead of the seat node, you are basically sunk insofar as proper camera placement is concerned and will have to merge a new copy of the avatar and seat node into your new MAX file.

Now that you have the avatar poses you would like to have show up in your IMVU Room, place your cameras so that you can see at least both avatars' heads. Although you are free to do anything you like with the Room cameras, more often than not Developers actually want to make money and that means supplying folks with Rooms that allow them to have a conversation. This means they need to be able to see their heads and have enough room above their heads to see at least three chat balloons. Having the Avatar groups that are exactly aligned with the Room's seat nodes minimizes the need for camera trial and error between MAX and the IMVU previewer.

1.d.3.9 Catcher/Pitcher nodes

In IMVU, you can click on another avatar and interact with them. We call these interactions ‘cooperative animations’. As you can imagine, cooperative animations rely on precise starting points in order for avatars to register – ie, their hands or lips meet. If these starting points are off by even an inch, the result is immediately obvious – when you go to shake hands with someone, either your hand will go through theirs or won’t meet at all.

The example 3D Room comes with two sets of these nodes. We call these nodes, the Catcher/Pitcher nodes. For reference, the person who chooses to do the animation is called the Pitcher. The person who receives an animation is called the Catcher.

You should have a C/P node for every seat in your Room. However, if you don't supply them, IMVU will automatically generate them based on a predertimined offset from the catcher's seat node. This pretty much always results in your coop animations looking bad (clipping through something, wrong angle, etc.).

To avoid aesthetic issues (and to have fun with just where your coop anims will take place) grab both the catcher and pitcher node with a given number. The C/P nodes supplied in the exampled Room are the *EXACT* *PERFECT* distance from one another. Do not move these two nodes away from each other or your coop animations will not register. If you realize that you have moved the C/P in any way (in relation to

each other, that is), you can always import them again from the example Room.

So, grab both nodes and place wherever you like in the Room. Since a coop animation triggered by someone in seat 5 but on someone in seat 1 will result in the picther (seat 5) going to the catcher's (seat 1) C/P setup, I typically try to keep the C node for a particular seat as close to the seat node as possible. Then it isn't as jarring when seat 5 'goes over' to seat1. That said, you can place your C/P nodes anywhere you like.

C/P nodes need to live in the same place in the hierarchy as their parent seats. They should not be parented to the seats themselves. That said, they can be parented to another bone in the Room if the seat is as well. For example, all of the C/P nodes and seats in the Flying Dragon Room are parented to bones on the Dragon’s skeleton.

1.d.4 Lights

Lets face it: lighting is everything. In IMVU, you can use point, omni and ambient lighting to enhance your Room. The lights can be placed anywhere. In regards to point lights, IMVU does not support the cone of influence or the falloff settings available in MAX. Currently, there is no limit to the amount of lights you can place in your Room. However, a VERY CAUTIOUS word to the wise: having more than four lights (including ambient) can cripple IMVU. If you can live the dream with two lights or less, your Room will be lightning fast and give you far less grief from angry customers.

1.d.4.1 Ambient Light

IMVU exports the Ambient light settings as part of the skeleton file. The ambient light is also customizable in the Previewer’s Edit Other tab.

1.d.4.2 Light parenting

Lights need to be parented to the node.Room bone.

1.d.5 Handle nodes

When users hover their mouse over a seat node, a little seat icon appears to let them know that it is possible to click there to switch seats. However, sometimes the seat node isn’t in a place that makes much sense. For example, the sitting seat nodes are on the floor and people don’t think to click on the floor when they want to sit in a seat: they look to click on the seat. So, we have introduced Handle nodes. A Handle node is a dummy node that is parented to the same bone as its corresponding seat node.

The naming convention for Handle nodes is pretty simple. If you are making a handle for seat01, then your Handle should be called Handle01. So simple.

You can place a handle node wherever you like in the Room so have fun.

1.d.6 SeeThrough nodes

Sometimes, you want to build an element in your room or furniture product that looks great when viewed from the front but gets in the way when viewed from behind. Many’s the time that I have had to remove a great looking architectural element because it got in the way of the most important feature of IMVU: viewing the chat.

Enter the SeeThrough node. By weighting a mesh to a node named SeeThrough01, I can force that mesh to disappear when viewed from behind. SCORE!

You can have multiple SeeThrough nodes in your room skeleton. The naming convention is similar to Handle nodes: SeeThrough01, SeeThrough02, SeeThrough03, and so on up to 99.

Just like furniture nodes, SeeThrough nodes have a forward direction. This is the Z axis of the node. If you choose to be in World coordinate space in MAX, you will see the Z is typically pointing up. Rotate the Z arrow 90 degrees to point in.

NOTE: The Z axis arrow tells you the node’s forward direction. In IMVU, when the camera is moved to be able to view any portion of the back of this node, the mesh weighted to the node will disappear.

All of the vertices in a mesh must be weighted to a SeeThrough node in order for it to disappear. This means that your Room must be broken into separate pieces to take advantage of this powerful feature.

1.d.7 Hierarchy

The basic skeleton hierarchy in MAX should look something like this

[pic]

fig1.1 – Example Room hierarchy

For more complicated, animating Rooms, a hierarchy can look much more complex but the above gives you the basic set up.

1.e Build your Mesh

Now that your skeleton is set up, it is time to build your mesh (or meshes as the case may be). You can build ANYTHING you can possibly think of as a 3D Room in IMVU so long as you stay within budget. The actual high mark geometry budget for 3D Rooms is ten thousand triangles. The recommended budget for 3D Rooms is less than seven thousand triangles. The lower the poly count in your Room, the faster it will run in IMVU so please exercise caution and keep your poly counts low. If you want an accurate poly count, convert your mesh to an editable Mesh, select it and then right click and select Properties. The poly count is in the Properties panel.

1.e.1 BackDrop Rooms

The BackDrop Room is the simplest 3D Room you can build. Basically, it is a flat plane set some distance behind the avatars upon which you can slap any old texture you please. The simplicity of the geometry lends itself to a very simple camera system. Sometimes, only one or two cameras are necessary. The Example 3D Room is a BackDrop Room.

Although not nearly as cool as the full 3D Rooms, BackDrop Rooms offer high speed and high customization without having to know a 3D program or have in depth knowledge of the IMVU previewer.

1.e.2 Full 3D Rooms

Full 3D Rooms rock the kasbah. The biggest upgrades in Full 3D Rooms are:

Multiple seats

Building an actual horizon line that can be affected by fog

Having a multitude of geometric shapes that react to the Room's lights

Having a sense of place and more realistic interaction with the Room

NOTE: If you do not like your customers to see the black space world around your Room, it is best to simply enclose the camera within your geometry. Keep in mind that this enclosure can be enormous. This way, you have complete freedom when playing with camera placement. You can see the black space by pulling the camera out in the Buckstars Room (product593.cfl) and you can see how I enclosed the camera within the geometry in the Redwood Forest room (product10828.cfl).

1.e.3 Vertex Colors

[pic]

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 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.e.4 Animation in Rooms?

YES! Since both BackDrop and Full 3D Rooms are basically the same thing and consist of the same pieces, they can both contain animating geometry and textures. For more on animation, go to section 1.g.

1.e.5 Building and Hierarchy

Your mesh should not be parented to any bones in the Room. If you have portions of your Room that animate and you want to see the mesh animate with your Room, you should weight the mesh to the appropriate bone. You will have to do this anyway for proper exporting of the mesh.

1.f 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.f.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.f.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]

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)

[pic]Fig 1.3 – Example of Material Editor and Sub-Material layout from MAX

1.f.3 Alpha

You can use both Cutout and Alpha blending in IMVU.

1.f.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 puzzle-like 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.f.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 sub-material and NOT the Room 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)

[pic]

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

1.g Animate your Room

Rooms 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 Rooms. 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.g.1 Action Files

An Action file is what is played when anything in IMVU is animated. There are two levels of Room Action file, an Idle (or constant) Action and a Triggerable Action. When building a Room 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 Room 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 Room 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 Cast Away Raft Room by IMVU is only @230k and it has a 400 frame skeletal animation.

1.h Smoothing Groups

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).

[pic] [pic]

Fig 1.5 – Incorrect looking Smoothing Groups Correct looking Smoothing Groups

1.j 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.

For the most part, Room weighting will be done in Skin so I will briefly describe how it’s done here.

1.j.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 skeleton.Room 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)

[pic]

Fig 1.6 The Skin Modifier Menu

1.j.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.

Chapter the 2nd: Export Time

Once you have built a skeleton, a mapped and weighted mesh, placed lights, cameras and seat nodes, you are ready to export. 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.

2.a Export the Skeleton .xsf file FIRST

[pic]

Fig 2.1 – Skeletal export panel. Remember to uncheck all meshes (ex: avatars).

Select the skeleton.Room bone and 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 in your Room 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. If you are using the Example 3D Room, then the avatars will appear in the list of assets in the Room. To keep your file size down, uncheck all of the boxes related to the avatars. Click Finish to complete the export process. Woohoo! You have just exported a skeleton file for your Room.

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! If you are just moving the camera around or renaming seat nodes, I have found that I do not have to re-export any meshes or animations.

2.b Export the Mesh .xmf file

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 Room. If your Room 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 Room 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.c Export the Animation .xaf file

Your 3D Room does not need an animation file to work in IMVU. It only needs an animation file if you want your Room 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.

NOTE: In order to have multiple skeletal and/or morph animations in your Room, you can optionally export only those bones that will animate the desired mesh.

In order to export your Animation file, select skeleton.Room 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 Room with check boxes next to them. You only need to export the bones/nodes that actually animate so uncheck those that are unnecessary. For example, you will never need to include the avatar meshes in your animations as they actually don’t animate based on the Room (the seat nodes may) so uncheck the boxes next to the avatars.

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, and make sure the frames per second is set to 30. Click finish. You just exported an animation file! We're so proud of you.

2.d Export the Morph.xpf

Your 3D Room does not need a morph file to work in IMVU. It needs a morph file if you want your Room to play a morph animation. The morph file can be exported at any time. The morph file simply holds 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, 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.e Export the Material .xrf 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 Room – 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!!!

2.e Catalog Snapshot

While you still have MAX open, this is a good time to take your catalog snapshot. For Rooms, it is usually best to take the shot from the camera.01.01.root position as this is the first thing your customers will see in the Room. Taking your shot with a completely white background and all of the environmental lighting turned off/set to white makes the images nice and crisp when they are small. Taking your catalog shots in MAX also gives you the peace of mind that you will always have the same exact shot should you need to change the Room in any way and retake the shot.

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.

Chapter the 3rd: Der 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.

3.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).

[pic]

Fig 3.1 – The Previewer’s Product Info panel

3.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.

3.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.

3.d Load Existing CFL

Now that you have all of your files exported, fire up the previewer. The easiest way to make a new Room in the previewer is to ‘Create a Derived Product’. The Example3Droom.zip file contains the official, unabridged, uncensored example Room, otherwise known as product10860.cfl. Copy this file into your C:\Program Files\ImvuTools\Previewer\examples folder.

In the file menu in the Previewer, choose ‘Create a Derived Product’ and type in 10860. The example Room product is a BackDrop Room but you will be able to build anything your heart desires with its embedded assets.

3.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 a Room 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.

[pic]

Fig 3.2 – Choosing Advanced Mode

3.c Auto-refresh

Something you might want to do at some point in the Room 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 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.

3.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 Room looking fantastic, choose “Use OpenGL Rendering” from the edit menu. However, be advised that you should always check to see what your Room 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.

3.e Change the Skeleton

In the tab called Edit Other, scroll down to the middle of the menu, browse for and select the skeleton/.xsf file you created earlier. If you want to see the effect of this change, hit Apply Changes. Otherwise, move on.

Also in the Edit Other tab, you will find you can change the size of the preview screen (with Screen Width and Screen Height) and attach a separate window with a URL that you specify. You can also set the size of this URL’s window.

[pic]

Fig 3.3 – Edit Other tab

3.e.1 Synching Actions

When you change your shirt, your avatar is actually rebuilt on the fly. When an avatar is rebuilt, it can get out of sync with any prop action in the Room. For more on Prop actions, see section 3.x.x.

Depending on the Room, you either want or do not want the avatar to become out of sync with the Room’s Actions. For example, in the Psychiatrist Room, we want the avatar holding the pencil to always be in sync with the pencil animation. So, whenever an avatar is rebuilt (read – whenever a product is taken off or applied), we reset the Room action to keep everything looking hunky dory. However, in the case of the Ferris wheel Room, you don’t want the Ferris wheel starting over at the beginning of its animation every time someone changes a shirt.

The default for this kind of synching of Room and prop actions is: OFF. So, if you want to sync the Room action to the avatar’s action, check the ‘Synch all Actions’ checkbox. Consequently, if you only want to sync all of the prop actions in a Room to the avatar’s action, just check ‘Synch props’. Play around with this one to see what we mean…

3.e.2 Fog

Setting and changing fog settings in a Room is hella easy. The first thing you need to do is check the ON and Really, Really ON boxes. If only one of these is checked, fog will not work. You can set when the fog begins in relation to the camera using Fog Near and you can set when the fog becomes opaque using Fog Far. You can set the color of the fog by changing the Red, Green and Blue boxes. The range of entries in any of these boxes is 0-255. Play around with fog. You will be amazed at how many different moods you can achieve with just this simple feature.

3.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 Room product, hit the Add 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.

[pic]

Fig 3.4 – Edit Geometry tab

3.g Change/Add the Animation file

It should be noted that although the Room 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 Room 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 Room.

Once you have used the Room 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.

[pic]

Fig 3.5 – Action Editor tab complete with Action (in blue) and ensemble (in red)

3.g.1 Room Action Editing Header

The header for Room Actions contains the usual Apply Changes button and a new button called “New Action”. Room products can have multiple embedded Actions. These can be either the Room Idle or a Triggerable Action or both. For example, the Cast Away Raft Room only contains an idle animation, which is good for the constant motion of the raft and waves.

3.g.2 Triggerable Action Name

In the tab called Edit Actions, click the New Action button. This will load the action editing parameters necessary to load and edit your Room 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 Room is meant to have a constant, idle animation (like the Ferris Wheel or the Cast Away Raft), 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 Room action. If you want the animation to be an Idle animation (always playing) the name should be “stance.Idle”.

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.

3.g.2.a Room specific Avatar Actions

You can have Actions in a room that affect an avatar while in that Room. You can do this both for triggered animations and idle animations. By “idle animations”, I mean that you can change the base pose of the avatar. For example, if you have built a Room that contains a swimming pool and want the avatars to float in water, you can create your own “floating in water” animation and have it replace the Sitting or Standing base poses that are embedded in the avatar’s Body Definition. Before using this functionality, you will have had to follow the seat renaming convention outlines in section 1.d.2.a.

First, you must choose Avatar in the Type drop down menu. Then, in the Avatar ID panel, you must type in the product number of the avatar you wish to affect. If you want your Action to affect the base pose of the avatar, you must change the Trigger Word to a stance type. Type the prefix, “stance.”, followed by the seat node name that you came up with when building your room. For example, if I named the seat nodes of a room seat01.FloatingInLiquid, seat02FloatingInLiquid, etc, then I would make the name of my Action “stance.FloatingInLiquid”.

NOTE: You can override the avatar’s automatic Gaze code by clicking the ‘Disable Gaze’ checkbox in an Ensemble. The automatic Gaze makes avatars look at one another or, when another avatar cannot be found, look around the Room. It adds life to an otherwise lifeless avatar. However, it can also be a hindrance in certain situations – thus this check box.

Your avatar Action can be anything you like so have some fun!

3.g.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.

3.g.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.

3.g.4.a Skeletal Animation Panel

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 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.

3.g.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.

3.g.5 Prop Actions

Prop Actions kick some serious booty. A ‘prop action’ is a Room action that is triggered when an avatar joins a certain seat. For example, when you click on one of the paws in the Flying Dragon Room, the Dragon's paw wraps around the avatar. Also, when you move from that paw to any other seat in the Room, the paw goes back to its normal, open animation. When the paw changes with a 'seat' change, you are witnessing a prop action.

To create a prop action, you need:

1. The number of the seat node that will trigger the action (example: seat35)

2. The name of the avatar stance for that seat

3. An exported .xaf and/or .xpf from your Room Max file

[pic]

Fig 3.6 – Prop action layout (from Flying Dragon Room)

Setting up a prop action is easy. First, you have to create a separate MAX file for the Room portion of your prop action as you want to leave your master MAX file for things like exporting skeletons, meshes, idle animations, etc. There is sometimes a bit of a back and forth between making your Room animation and your avatar animation match but iterations can go fairly quickly once you have the basic animation set.

NOTE: The Room’s idle action must also animate any bones that the prop action animates, so when the prop action ends, the idle action will reposition the bones back in the desired default position. Prop actions should therefore have their composition set to REPLACE.

ANOTHER NOTE: Remember, you can make your Room and avatar animations very short (and therefore very low memory and therefore MUCH faster to load) and they will still look great in IMVU. The Previewer’s frame controls can help you elongate a prop action.

Once you have gotten your avatar and Room animations exported,

3.h Change the Material files

In the tab called Edit textures, you will notice two material windows named P0M0 and P0M1. They both contain slots for material/.xrf files, actual texture files, texture file name, material ID, a delete button, an add texture to this body part button and a whole lot of check boxes.

[pic]

Fig 3.5 – Edit Textures tab

3.h.1 Material Properties

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 Room’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.

3.h.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.

3.h.3 Adding Materials

As you add Body Parts and materials to those Body Parts, the name of the material panel will procedurally change. P0M0 translates to Part Zero Material Zero. So, as you add parts, the P# increases and as you add Materials the M# increases.

3.i 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.

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.

3.j Product Naming Convention

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. It is important to keep track of your submitted product's new name/product number as this will be handy when you want to make an inherited product.

3.k 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 non-alpha 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 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.

3.L Add or Delete

Some CFL files have a different amount of Material slots than your Room. 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.

You can also add Body Parts under the Edit Geometry tab. When you do this in a Room product, a new material panel is added in the Edit Textures tab. As you add Body Parts and materials to those Body Parts, the name of the material panel will procedurally change. P0M0 translates to Part Zero Material Zero. So, as you add parts, the P# increases and as you add Materials the M# increases.

3.n 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.

3.o Verify cameras

You can verify that your cameras work by simply pressing Shift and using the left/right arrow keys on the keyboard. However, to verify that they actually frame the avatars correctly, you have to choose Load a Body Pattern from the File Menu. You may currently only load one avatar at a time in the Room and that avatar shows up in the seat01 seat node position. If you want to test seat02, you must swap the seat node names in MAX, re-export and load the skeleton file in the previewer. For quick reference, the IMVU created avatar product numbers are:

Female: product80

Male: product191

3.p 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.

Chapter the 4th: 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.

4.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 match the name found on the IMVU server. Doing this will allow you to directly resubmit your product if it is any way broken.

4.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.

4.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.

4.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.

4.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.

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, if you made a Dragon Room, 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 Room product CFL file. Although this will load the entire Room, 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@. We've said this before but we mean it: We at IMVU CAN NOT WAIT to see what you all come up with.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches