Prop Actions kick some serious booty. A ‘prop action’ is a Furniture or 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 be clear, prop actions work in both Rooms *and* Furniture products.
Prop Actions can be used in concert with Avatar Actions to create wonderful effects. For the purposes of this tutorial, we will assume you want to make a piece of Furniture animate in concert with an Avatar Action. However, please note that a Prop Action does not require a corresponding Avatar Action.
What You Need
Before you can make a Prop Action, you need to have built a few things first.
To create a prop action, you need:
Idle *AND* Prop Action
A Prop Action only works if the bones involved in that Action are being animated by another Action. For example, the weight bar on my bench press seemingly does not move when my avatar is not in the bench press seat. However, it actually is animating – just so slightly that an IMVU user can not tell. That way, when my avatar joins the seat, the Prop Action is triggered and the currently animating bones have a new location to go to.
To make an Idle animation, Save a copy of your working file. Name it something that you will remember later. For example, if your original animation came from a file called :
Then your Idle animation file could be called:
As mentioned above, the Idle animation moves all of the bones that will end up being moved in your Prop Action. That movement can be as small as you want. In the case of a piece of furniture that is meant to look like it is sitting still when no avatars are seated on it, I always just move my bones fractions of millimeters along the Z axis.
Once you have all of your various animations exported, it is time to put them all together in IMVU Studio.
For the purposes of this tutorial, we assume you are building a bench press. This means you will have three animations:
IMVU Studio Tips
Once you’ve opened IMVU Studio and chosen to derive from a Furniture or Room product, we recommend that you build out that new project completely to verify that any new skeleton, mesh and texture assets work.
It is very, very helpful to know that everything in your Furniture or Room product works perfectly before you embark on adding Prop Actions. This is because mistakes in exporting animations are only clear once you start loading in those animations.
As an optional step, you could edit the project details and save it as your own. This can be done by changing the details in the Info tab, then clicking Save. Make sure to name your product, and to upload a product image as well! This gives you a clean slate product to go back to in case you encounter Action issues.
Create Mode Idle
I always create the Idle(s) first. That way, I can more easily keep tabs on where they all are in the stack.
To create an animation that loops forever, you want to create what is called an Idle Action. An Action is considered an Idle if it is named correctly. Otherwise, all other attributes of the Action are available to you.
All Idle and avatar seat based animations are named the same way: stance.AnimationName
The prefix is always labeled as stance. so the code can recognize that this Action will have special properties.
The middle section can be named two things:
- The name of the seat bone to which you want this Action to be applied
If an Action is named stance.Idle, then the IMVU code will play it forever (or until the hamsters that keep our servers running need to take a bio break.) However, there is one other thing you will need to do in order to get your Idle animation to play forever:
set ‘# ensembles played’ to zero.
Number of Idles
You may have as many Idle Actions as you want. For example, in the Candle Lit Dinner scene, one Idle controls the up/down water movement, another Idle controls the Prop Action for the ‘dolphin swim’ seat rotation and yet another Idle controls the Prop Action for the violin.
Add Avatar Action
Once you have your Idle Action built, it is time to add your Avatar Action. The Avatar Action should get its name from the seat node in your Furniture or Room skeleton. If you don’t know what you’ve named the seat node, then you don’t know what to name your Avatar Action. So, go to your MAX file and verify what you’ve named your seat node.
However, in short, if your seat name is ‘seat01.Bench’ then your Action name will be stance.Bench
The IMVU code sees the suffix in the seat name in your Room or Furniture skeleton and then searches for an Avatar Action with the same suffix. All this information will be visible in the right-hand panel.
Animation Type – Avatar
If you want to add an avatar Action to your room or furniture product, you can click the + button under Action and choose Avatar Trigger. This ensures that your action works with an Avatar skeleton and *NOT* the Furniture or Room skeleton.
Add Prop Action
Now that you have a fully built product and have tested that the avatar animation works, it is time to add your Prop Action. To do so, create an Action with one Ensemble. Since a Prop Action is a room or furniture animation, select Furniture Prop Action.
Seat Numbers Matter
A Prop Action corresponds with a seat number (or numbers) found in your furniture or room product. In this instance, the bench press only has one seat, seat01.BenchPress. So, the name of the prop action would be:
Please note the addition of the dash suffix at the end of the name that includes a seat number. This ‘-seat01’ tells the code that this Action should be triggered when an avatar joins seat01.
You can have multiple seats in a prop action name. For example, if the bench press was some sort of crazy, two person bench press, then the bar could be triggered by both seats 01 and 02. To make that happen, my Prop Action name would be:
Please note the addition of the comma and new seat number. This ‘,02’ tells the code that this Action should be triggered by joining either seat01 and/or seat02.
As mentioned above, sometimes, you want a prop action to work with an avatar action. Said another way, you want the prop action and the avatar action to work seamlessly together. In the case of the avatar bouncing on the pogo stick, if the avatar action played even one frame longer than the pogo stick animation, then, eventually, the avatar would go down while the pogo stick went up.
Even worse, if you want the prop action and avatar action to *end* at the same time, it is possible to have the avatar end up in the J-pose while the Action system finishes the animation that isn’t done yet.
The way to ensure that your prop action and your avatar action work perfectly together is to make sure they are both the same number of frames when they are exported. This is VERY important. If your animations are not the same length (in number of frames) then your prop action will end up looking broken.
Rooms Only – Sync All Actions
Sometimes, Prop Actions can get out of whack in Room products as chatters bounce around from seat to seat. To prevent any sort of whackiness in Room Prop Actions, IMVU Studio lets you sync the various actions in your product. This can be found at the bottom of the Action section, under Synchronize. You can choose whether to synchronize just the prop actions, all actions, or none at all.
While it is always a good idea to repeatedly test your product as you build it, testing is especially necessary for Prop Actions. Save your file and then join the seat. If you see your avatar animation and prop action move in unison, then you have been successful.
If they do not move in unison, then there is something wrong and you need to go back and verify:
Now that you know how to make a Prop Action, you are able to delight your customers. Let’s face it: we all love the pleasant surprise of a prop action. Even better, IMVU has seen a significant increase in sales of products that contain prop actions so use them wisely…and often.