A Pet is a glorified Avatar Accessory product. An Avatar Accessory product, simply put, is a product that can be attached to an Avatar but that does not Override any Avatar Body Parts (like Shirts or Shoes). An Accessory product can also be anything you can possibly think of: Earrings, Floaties, Wings.....and Pets.
Obviously, you can build a technically simple Pet like, say, a Parrot that sits on your Shoulder but does not move at all. On the other hand, you can also build a technically complex Pet that feels alive and reactive.
This tutorial assumes you have already read the Introduction to Accessories Tutorial.
Also, for the purposes of this tutorial, we will be using 3DS MAX.
Where's the Avatar?
As you prepare to bring your idea to IMVU customers, remember to be cognizant of where your Pet is going to live in relation to the Avatar. It can be attached to the Avatar, like a Parrot on a Shoulder, or it can be detached from the Avatar.
You should also be cognizant of what other things an Avatar might be wearing at the same time as your Pet. For example, if building a Parrot on a Shoulder, you should probably put the Parrot out towards the tip of the Shoulder vs. close to the Head. That way, there will be less potential for penetration with things like Hair, Hats, Big Earrings and Shirt Collars.
It is always a great idea to design you Pet out on paper first. This early 'concept phase' or 'design phase' will help you get through many issues not the least of which is positioning your Pet, the size of your Pet and overall penetration with the Avatar.
Before embarking on building your Pet Accessory, you should read the How to Build a Skeleton Tutorial.
It all starts and ends with the Skeleton. It is frustrating to learn you need one more Bones after you have nearly completed the product - Animations and all. The reason it is frustrating is because adding even one more Bone to the Skeleton requires the following changes:
New Skeleton .xsf Export
New Mesh Weighting
New Mesh .xmf Export
New Animation .xaf Exports
This is no small amount of work (it can take a full work day if your pet is complex enough) so please take the time in advance to figure out how many Bones you will need by knowing what you need your pet to do.
For example: Does your Pet have wings? Will they Flap? Will they Flap like a Bird's wings? If so, you know you need three main Bones in the Wing and one end effector (so that Skin will work).
Does your Pet have a Head? A Neck? Will it nod yes and no? If so, you know you have at least two more Bones (+ end effector): Head + Neck (you can have more Neck Bones the longer your Pet's neck is.)
Does your Pet have Arms? Hands? Legs? Feet? a Tail? Are those extremities going to move? If so, how?
As you can see, advance planning will help you realize your vision sooner and without having to start over repeatedly.
Align Root Nodes
If you want a Pet that moves independently of the Avatar, the first thing should do is Align the AttachmentRoot and Attachment Node Bones to the Avatar's Root Node: Female03MasterRoot.
As detailed in the Introduction to Accessories Tutorial, every Accessory attaches to a Bone in the Avatar. Just which Bone it attaches to is set in the Editor. Therefore, the Root Bones of the Accessory Skeleton need to be Aligned to the Bone you intend to attach your Accessory to.
Since you will eventually tell the Pet/Accessory product to attach itself to Female03MasterRoot in the Editor, you need to have your Accessory Skeleton Root Bones Aligned to Female03MasterRoot in your 3D file.
To Align your Root Bones, you use the Align tool found in the upper left tool bar. First select both your Accessory bones. Then, with the Align tool selected, click on Female03MasterRoot. The Align Selection dialog box appears. You want to Align the XYZ position *and* the XYZ Orientation. Also, make sure Pivot Point is selected in both the 'Current Object' and 'Target Object' fields. Click 'OK' and your Accessory Root Bones should have moved to the exact same position as Female03MasterRoot.
Build Mesh, morphs, materials, textures
Once you have your Skeleton built and properly positioned, its time to build your Mesh (or Meshes), Morph Targets, Materials and textures. To learn more about each of these, please consult the following tutorials:
Introduction to Mesh Building
Building Morph Targets
Mapping Materials - Powers of Two
NOTE: It should be noted that Morph Targets are optional. Your Pet does not need Morph Targets in order to be a successful product.
Download and runtime file size is an issue that should be kept in mind whenever designing for IMVU. If your Head’s file size is too big, it is unlikely that your potential customer will purchase and download it and, if they do, there is a very high chance that they will review your product poorly and your sales will decrease.
Therefore, it is good practice to try to keep the Texture size, Vertex/Face count of your Meshes and Animation length as small as possible. There really is no reason to have a 256x256 Texture for a button on a shirt: it just won’t be seen in the IMVU messenger. In fact, we have found that the smaller the Texture, the BETTER it looks in IMVU.
Also, please know that IMVU automatically resizes Assets that are too large or Teched incorrectly.
To learn more, please consult the Mapping Materials Tutorial.
Weight the Mesh
You could use the Skin Weighting modifier instead.
To learn more, please consult the Weighting Using Skin Tutorial.
It is important to test whether your Weighting works the way you want it and, more importantly, that every Vertex in your Pet is actually Weighted. To do this, you ought to make an Animation that moves every Bone in your Pet's Skeleton. To learn more about Skeletal Animation, please consult the Animating in 3DMAX tutorial.
Typically you can move one Bone at a time over time so that I can see how the Head moves without the rest of the Bones moving.
Once you get an Animation built that moves all of the Bones in the body, make sure to also add a big movement to the Pelvis Bone.
This last Animation moves the entire Pet far away from its original position with the intent of seeing whether all of the Vertices are actually Weighted. If they are not, they will remain in place while the rest of your Pet moves around.
If you see any errant Verts, go right into Skin and Weight them.
Once you are sure your weighting is complete, it is important to test your Morph Targets as well. Remember, you do not need to build Morphs for your Pet. It is 100% optional.
When testing your Morphs, you are looking for a few things:
1. How do multiple Morphs work when they are applied together?
2. Are there aesthetically unpleasing peaks or tears in the Mesh when the Morphs are applied?
3. Do the Morphs affect vertices in parts of the Mesh that are not meant to be effected?
4. Do the Morphs work well with the Skeletal test Animation?
If you find any issues, you can always go edit your Morphs, reload the Morph Targets in the Morpher modifier and run your tests again.
As is the case with any 3D product, you must Export the Skeleton - .xsf file first.
Then, you are free to export both the Mesh - .xmf files and the Animation - .xaf files (though, we'll get to Animations in the next section).
You can Export the Material - .xrf files at any time.
To learn more about Idle Actions, please consult the Idle Actions Tutorial.
The most common Idle Actions in the IMVU Avatar are the Standing and Sitting Actions. This means your Pet can have a different behavior whether the Avatar is Sitting or Standing. What's more, a Pet can have its Idle Action named stance.Idle, then it will play the same no matter what stance is called on the Avatar.
Remember, as the Idle Actions Tutorial explains, you can build multiple Idle Animations, Export them all and then place them into the Editor as separate pieces of separate Idle Actions.
For example, you typically have one Action named stance.Idle that covers only the Blinking Animation. That way, the Blink will play regardless of what else the Pet is doing. Also add another Action named stance.Idle that contains at least five Ensembles with Animations for a Pet so that it has a feeling of life.
Reminder: Each Idle Animation should be saved into its own MAX file.
Blink Idle Tip
If you want to build a Pet that Blinks build the eyes as separate Meshes from the Body. Then, go back to your Skeleton and add Bones that are located approximately where your Eye Meshes are located. Then, you will be able to build an Animation that pulls the Eyes inside of the Head for a frame or two.
Plus, if you make sure the Texture on your Pet head contains closed Eyes just underneath the location of the Eye Meshes, it will look like a real Blink in IMVU.
Sitting Idle Position
Although an Avatar moves the height of its Body when it switches from a Standing Node to a Sitting Node, its Root Node does not change its height. This means that if you have a Pet that is attached to Female03MasterRoot, then it will not move lower in the scene just because an Animation makes the Avatar sit lower in the scene. This is most obvious in stance.Sitting seats.
To address this, you can make another series of Idle Animations that have the Pet positioned lower in 3D space. In the Editor, you create an Action titled stance.Sitting that contains Ensembles with these new lower-positioned Assets. Then, when an Avatar sits down, its Pet acts the way you want it to.
Make Triggered Animations
Triggered Actions make the Pet feel sentient. Making a Triggered Action is pretty easy as you just need to name the Action anything you want. When someone types in that word, or words, then the Pet will play the Animation associated with that Action.
If you want to know what Triggers are used by the IMVU Avatar, you can always take a look at the .xml file that comes with IMVU. It is called 'menus.config.xml' and should be right in your IMVU directory. The section titled 'Personal Gestures' are ones that can be used by your Pet. If you can't open the .xml file, you can just try a few commands in IMVU to see if they work on your Avatar.
Try to make your Pet react the same way your Avatar does to Triggered commands. That's why we typically include Actions for Yes, No, What, Lol and Flip.
Your Triggered Animations can contain Ensembles as well. This means that you could have multiple reactions to the same command that were randomly chosen. This makes your Pet feel even more alive.
Export All Animations
When you've built all of your Animations, remember to Export them. To learn more about Exporting Animations, please consult the Export Animation - .xaf Files Tutorial.
Create Mode: the Editor
Now that you have all of your Assets built and Exported, it is time to put them all together in the Editor. To learn more about Create Mode and the Editor, please consult the Create Mode introduction Tutorial and the Editor Introduction Tutorial.
Create Mode : Base Product
While we recommend that you Derive from either product 682 or product 669, product 434931 is a good example of how a Pet ought to be set up. You can Derive from 434931 just to see how it is set up.
As with any 3D product that you build from scratch, you should build your Accessory product with NO Actions or Animations first. In the Config tab, browse to your Skeleton .xsf file, type in the name of the Bone that you want the Accessory Pet to be attached to and then type in the Avatar IDs with which you want your Pet to work with.
If you want the Pet to work with both the Female and Male avatars, you would type in "80, 191" in the IDs field. IMVU always does this.
The reason you should create your product without Animations first is because it is much easier to find errors with your Skeleton, Mesh, Materials and Textures without having to wade through potential Animation errors too.
Save your product once you have the Skeleton, Mesh, Material and Texture Assets working.
Editor: Set Up
As mentioned above, product 434931 is a great example of how your Actions ought to be set up for a Pet product. Each panel is set up how you will no doubt want your panels to look.
The 'Config' tab:
You will notice that the Compatible Body Pattern Product IDs filed is already set to '80, 191', the Attachment Node is already set to Female03MasterRoot, and it contains its own .xsf file. You only need to add your own .xsf in this tab.
To learn more about the Config tab, please consult the Config Tab Tutorial.
The 'Meshes' tab:
Notice that this product has multiple Body Parts. Your Pet can have as many Body Parts as you like - as long as you remain within budget, of course. Also note that each Mesh has Materials and Textures.
To learn more about the Meshes tab, please consult the Meshes Tab Tutorial.
The 'Actions' tab:
You will notice that this Pet contains several Actions named stance.Idle with one handling the Blinks, one handling the Wings, one handling the Core Floating Animations and the last handling the Bow Idle.
Add Idle Actions First
At this stage, you should already have your Skeleton, Mesh and Material Assets in place.
When setting up your Actions, we recommend you add your Idle Actions first. Essentially, this is so you can get through the hard part first and save the quicker and easier part (Triggers) for last.
Every Action needs a name. The name of your main Idle Action depends on how you want it to behave. For example, if you want the Action to play forever, regardless of which seat an Avatar joins, then you would name your Action 'stance.Idle' in the Trigger field.
On the other hand, if you want your Pet to have different Behaviors/Positions when the Avatar is standing vs. sitting, then you would name your main Idle Action 'stance.Standing' in the Trigger field.
Any Ensemble in any 3D product Action can contain both Skeletal and Morph Animations.
We have already discussed what you ought to name your Idle Actions in the Trigger field but what are the other fields for? The other fields in the Action Parameters section are discussed in detail in the Actions Tab Tutorial. However, there are some specifics as to how to set them up for a Pet Accessory.
First of all, the Type field does not matter to Pet Accessories so you don't have to add any information to it.
Next is the '# of ensembles' field. If you are building an Action that is meant to loop forever, like an Idle Action, then you ought to type in the number 0. If you are building an Action that is meant to play a limited number of times, you can type in any number other than '0'. We typically type in 1.
The 'After playing' field tells the Action what it should do once it stops playing an Ensemble. If you have multiple Ensembles that you want to have play at random (even sometimes choosing the same Ensemble twice), then you choose 'Pick new Ensemble'.
If you want to play the same Ensemble every time (if you have only one Ensemble in the Action), then you choose 'Pick same Ensemble'.
The third option, 'Cycle Through Ensembles' is only for testing purposes and may not give you reliable results in IMVU.
If you want your Pet to have different Behaviors/Positions when the Avatar is standing vs. sitting, not only do you need to make your main Idle Action called stance.Standing but you must also make a secondary Idle Action called stance.Sitting.
Remember, you can have as many Actions of the same name as you like and as many Ensembles within each Action as you like.
Editor: Test Idles
Once you have added your Idle Actions, Animation Assets and Saved your Pet, it is a good time to test whether all of the Actions in your Idles work. To do this, you can set the After playing field to Cycle through Ensembles and then press thePlay button. This will play all of the Ensembles included in the Action in consecutive order.
If an Animation Asset doesn't work properly, or if your Ensemble loops and/or Blends are not working, then you can easily fix the individual Assets, re-Save and test again.
NOTE: Remember to set your 'After playing' field back to something other than 'Cycle through Ensembles' before submitting the product.
Once you have added and tested your Idle Animations, you can add new Actions for your Trigger words. There are only two technical differences between these Actions and the ones you just set up.
1. The name you add to the 'Trigger' field can be anything you want. Then, when that word is typed in IMVU, your Pet will play that Animation.
2. The '# of Ensembles Played' should be the number '1' or higher.
Another feature of Triggered Actions is that you can add comma separated lists to the Trigger field. This powerful feature allows your Accessory Pet to feel more alive. For example, in the image below, Action 5 is Triggered by all of the following text commands: yes, yeah, yep, yup, ya, yah.
Editor: Test Test Test
We can't stress enough how important it is to test your Pet product repeatedly as you build it. In fact, we often save a new version of the Pet every time we add a new batch of Assets.
New Idle Action with multiple Ensembles? Save as. New series of Triggered Actions? Save As. This is important because it is possible to add corrupt or broken Assets to a CFL that make it impossible to open later.
It can be frustrating to lose all of the work you put into getting the Skeleton, Meshes, Materials, and Idles perfect just to have some random Trigger Asset ruin the whole product.
Editor: Save Save Save
Save repeatedly. This is incredibly important as you don't want to lose your work.
Editor: Submitting your Pet
Submitting a Pet is like submitting any other product. To learn more, please consult the Product Submission Tutorial.