[Archived - Mocapanimations] .Clamped .Average .Exclusive & .Additive

Posted 3 months ago by Community

Post a topic
  • Topic is Locked
Un Answered
C
Community Admin

Posted by “Mocapanimations” on April 04, 2024.

[Archived]

Hello everyone :)

 

I've created many products with morph animation, but I haven't noticed a significant difference in the suffixes, .Clamped .Average .Exclusive & .Additive, or maybe I haven't experimented with them enough. Could someone explain them to me? What exactly does it mean when it says "channel"?

 

Thanks in advance!

0 Votes


11 Comments

Sorted by
C

Community posted 3 months ago Admin

Posted by “MaxSMoke777” on April 29, 2024.

[Archived]

Yah, it does stack. The idea is to use the extension to control HOW it stacks. For instances, if you use .Exclusive, it will override all of the stacks below it. But if you want to blend in the last stack, you use .Average. If you never want that stack to go over a solid 1 value, you use .Clamp.

 

By design, you almost NEVER use a loop. So as your objects morph, they rocket up and down, animations blending into each other. You layer in a new one, it has it's time, and it burns out. So you want to be VERY careful with anything that's infinite. If it's always playing, then you need to STOMP OUT any of the older ones.

 

I do use infinite loops with, say, a sword being drawn. I want the avie to hold it until the user says for it to stop being held. So I use .Exclusive for the Hold morph target's name. When the player uses "Sheave" to put their sword away, I use another infinite loop, setting the hold to Zero.

 

Another trick (write this down it's a money maker I'm sharing here!), is to use a 0.1 value in the middle of an animation that sets the value to Zero. What this does is ALWAYS plug in a value during that infinite loop. So the value is rocketing between 0 and 0.1, which to the end user looks like zero, but it's really not. By moving between 0 and 0.1, the computer knows to keep a value *NEAR* zero, all the time.

 

This might be your problem, maybe? You set it to Zero and try to loop it during a time in the animation when it's set to zero, but you are instead seeing values well over zero? You need to keep feeding it data to keep it overriding all previous data.

 

On a sidenote, I've been requesting a "Complete Reset Animation at Start" option for commands. If the end user switches seated/standing positions, this causes such a reset, but it would be nice to trigger one in a command. I suppose that would mess with all other items as well, resetting their current animation state. That could be why that request hasn't gone anywhere. We might be stuck in a "100% in or 100% out" situation.

0 Votes

C

Community posted 3 months ago Admin

Posted by “Mocapanimations” on April 16, 2024.

[Archived]

I mean, the @MaxSMoke777​ one :)

0 Votes

C

Community posted 3 months ago Admin

Posted by “Mocapanimations” on April 16, 2024.

[Archived]

Best answer ever....

0 Votes

C

Community posted 3 months ago Admin

Posted by “Nums” on April 15, 2024.

[Archived]

Yeah sadly a lot of people can't do that method of exporting and importing anymore. Lost access to max 2016 a long time ago. Not even worldviz updates cal3d exporters anymore. Not that they ever let you export XPFs with their software anyways.

 

I appreciate the confirmation on the naming of the objects. That's basically where I"m stuck at now. Figuring out how they interact with each other. The issue I have is potentially unfixable, which is that morphs run 24/7 with no "replace" if you have it set to infinite loops. For example if you click on a morph trigger multiple times it just stacks the morphs. No matter what I name the morphs, .exclusive , .clamp, it doesn't change really change much of anything.

0 Votes

C

Community posted 3 months ago Admin

Posted by “MaxSMoke777” on April 15, 2024.

[Archived]

I have no idea what you're talking about. I'm getting the feeling you're doing this all wrong.

 

I use the Cal3D exporters, so Morphs are their own file. All of these assets are their own file. Makes it very easy to alter them. I don't use FBX at all for IMVU. FBX and XPF have nothing to do with each other. The XPF is a file, it's own file, just like an FBX would be it's own file.

 

.XSF is the Skeleton

.XMF is the Mesh

.XPF are the Morphs

.XAF are the Skeletal Animations

.XRF are the materials (but this is less important for Studio)

 

No FBX involved.

 

You make your mesh, texture it, and then you can make your Morphs from that mesh. All Morphs need to be linked to the main mesh. When naming a file, I like to name the mesh with something simple, and then each morph with a name off that. So, with linking, it's like this....

 

ObjectImMaking

->ObjectImMaking.ActionName.Exclusive

->ObjectImMaking.ActionName.Average

 

I'm not too sure if you really need to use the full item name, I think only the last "." and extension are used. The template for the avie's head only uses the action name, ".", and extension, with nothing else.

0 Votes

C

Community posted 3 months ago Admin

Posted by “Nums” on April 15, 2024.

[Archived]

Well reading Drosselmeyers post I'm guessing it's the actual mesh object that needs the same. It does look like this might get confusing at first. I will have to play around with the suffix's.

 

I think the confusing part is it sounds like every frame/keyframe it will combine all the data and output a result based on it. I honestly didn't even realize different morph names would effect the other morph names on the same keyframe.

0 Votes

C

Community posted 3 months ago Admin

Posted by “Nums” on April 15, 2024.

[Archived]

Too bad Studio auto-encrypts files. And you might say just use Classic. But the whole reason I use Studio is because classic won't import the file via FBX if the .XPF has too long of a name. And when you're doing projects with dozens of morphs, it can't be helped. So frustrating.

 

I have a question though. What is the default name it applies to morphs? I have never named my morphs .Exclusive , .Average, etc. Where would I even put those suffix's at inside 3ds max? Since I will have to do this via 3ds max rather than notepad editing sadly.

0 Votes

C

Community posted 3 months ago Admin

Posted by “MaxSMoke777” on April 11, 2024.

[Archived]

These are actually SUPER IMPORTANT when you start mixing, replaying, halting, and restarting animations.

 

Let's say you want to have a sword on the hip that you can draw. So you make one copy of the sword on your hip and another hidden in your hand, then swap them as the draw animation is played. Then you loop the holding part of the animation so the sword stays in the hand and missing on the hip. Great, you have a sword the player can hold!

 

But you ALSO want to have a draw *AND* sword swing. So all one motion without the first draw and hold.

 

If you used "Average", play the "draw the sword" animation, and then the "swing" animation, the draw animation will increase the sword in your hand by 100% AND the swing animation will increase it by another 100%, average both (I think, 150%?), so you'll get a HUGE sword. Ack! The world goes crazy. Cats and Dogs living together.

 

But let's say you "Clamp", the sword will never go over 100% of it's total size. Or, better yet, if you use "Exclusive", only the last sword morph will be engaged, resetting the sword's size to the last morph used.

 

So Average is good for things where you don't mind your actions or even idle actions, messing with your morph target. Very loosy-goosy. I believe most facial animations use this.

 

Clamp is how you stop this morph from going over 100%, such as the double-size sword issue. You CLAMP down on the craziness!

 

Exclusive is a heavy-handed, all encompassing, DO WHAT I TELL YOU TO DO extension (you might want to consider this as your default).

 

And Additive... I dunno. Never used it. Sounds TERRIBLE! Probably the work of satanic communists. Why would you want to keep inflating your item over and over again? Maybe your inflating a beach ball in some clever way?

 

You get what's happening, now? It's all math. As a side note, did you know you can edit XPF files in a text editor? Let's say you made a model, animations, completed EVERYTHING.... and then decided you wanted "Exclusive" rather then "Average" (like I did, about 100 times!!!).

 

If you have a text editor like "Notepad ++" which retains the text file structure, you can open up the XPF as text and use "Replace" to change all of the .Average to .Exclusive's. Then change the names of the morphs in your editor and re-export the model again as XMF. As long as the names of the model in the XMF line up with your edited XPF, the animations will work.

 

IMVU's original structure is actually pure genius, even if the documentation is kinda so-so. I've done a little coding in the last few years and much of things makes ALOT more sense to me then it did before I tried coding. It's all part of the hidden mechanics that make the "magic" happen. ;)

0 Votes

C

Community posted 3 months ago Admin

Posted by “Drosselmeyer” on April 10, 2024.

[Archived]

Ah! Yes, the suffixes affect how the morphs are interpreted in IMVU. To be honest I have done very little with morph animation and only used "replace". The engineer I talked to says that the descriptions in the CEC page are accurate, but I have not experimented with them. If I understand it correctly, it could get very complicated very quickly when there are mixed suffix morphs involved. Simplistically this is how I would expect it to work:

Example 1) At a frame in your animation you have the following channels and values:

Eyes.Bugged.Left.Average (3ds Max) 100% -> (result in Studio) 50%

mouth.BigSmile.Average (3ds Max) 100% -> (result in Studio) 50%

 

Example 2):

Eyes.Bugged.Left.Clamped (3ds Max) 100% -> (result in Studio) 100%

mouth.BigSmile.Clamped (3ds Max) 100% -> (result in Studio) 0%

 

Example 3):

Eyes.Bugged.Left.Additive (3ds Max) 100% -> (result in Studio) 100%

mouth.BigSmile.Additive  (3ds Max) 100% -> (result in Studio) 100%

 

Example 4):

Eyes.Bugged.Left.Exclusive (3ds Max) 100% -> (result in Studio) 0%

mouth.BigSmile.Exclusive  (3ds Max) 100% -> (result in Studio) 100%

 

But I have several questions that I would need to do investigation to provide a definitive answer to such as:

1) Are these suffixes applicable only to the current animation or do they have an effect across the playing of multiple animations, like how average and replace work for skeletal animations?

2) For "exclusive" does (the most recent one applied) refer to the channel index or morph animation played?

Answers to these questions could obviously make my examples completely wrong :D

I have it on my agenda to do some simple tests with a simple object with VERY obvious morphs and try mixing and matching suffixes and values and then between action ensembles and then between consecutive actions played.

Thanks for bring this up. It is a topic that has been on my mind quite a bit.

 

 

0 Votes

C

Community posted 3 months ago Admin

Posted by “Mocapanimations” on April 10, 2024.

[Archived]

Yes, that's in 3D Max, but when here: Avatar Morph Animation – IMVU Create explains the Avatar Morph Animation, it discusses how those suffixes affect channels differently. I don't see them having different effects in 3D Max. Does it refer to different channels in IMVU Studio? Maybe I'm getting confused. Does it mean that if all my morphs have the suffix .Exclusive, each trigger will replace the previous animation? It's just that no matter what suffix I use, the morph animations always overlap each other.

0 Votes

C

Community posted 3 months ago Admin

Posted by “Drosselmeyer” on April 09, 2024.

[Archived]

I am asking what the difference is. A channel is a specific morph target in the channel list. Each channel has a value which is the percent of effect of the morph target. These are what get keyed to produce the animation.

0 Votes