"Deform Model" Problems and Explanations

Started by Wammbo, January 03, 2016, 08:22:45 PM

Previous topic - Next topic

Wammbo

Thanks for moving the thread in the right Forum.

Aloha dear WW Community,

I am realy new to all this modeling stuff, but i have several years of experiance in source-engine-mapping. I am actual realy interested to learn how to make animated Models, because you can archive a lot with it. But i have several questions and problem to understand the prosses of it, like to know waht happens in certain actions from animating to exporting in to source.

So here waht i still learned and tested, before somebody says i didn't try anythink by my self before i ask here.

1. I accomplished this tutorial and it works fine for me.
The Video: https://www.youtube.com/watch?v=pxCiL8Io2YE

2. I watched the other Animation tutorial from 2013. It was realy informative for me.
The Video: https://www.youtube.com/watch?v=fY6UF7lB1T4

3. I watch in the documentations and the best Topic that Comes realy close waht i want was this here:
The Documentation i mean: http://dev.wallworm.com/document/76/making_facial_animations.html

4. I also took a look to this here:
https://davewortley.wordpress.com/2013/08/06/lesson-13-its-all-a-matter-of-scale-not-just-for-maxscripters/

Waht i want to accomplish is this here.

you can see it's a simple Box who is bouncing up and down. My question is how can i get it to Source-Engine!? I Keyframe it, but wehn i export it to Source-Engine and watch in the modelviewer i CAN see the Sequence i add BUT nothing happend.

Waht i have done so far:



In the picture you can see  all 3 polys i use with the following Modifier:


Main Model: "Morpher"


Sequence 01: "FFD 3x3x3"


Sequence 02: "FFD 3x3x3"

I add both Sequence-Polys to the "Morpher" and started to AutoKeyFrame it, but wehn i want to Export it and open in modelviewer i see the Sequents but nothing happen wehn i try to Play animation. Maybe am to dump for it.... i need help because i dont know how to get on with it.

I scale the model without Sub/OBJ mode
Yes i know.... Never Scale the model, but why and how can i archive it with out editing all vertex manualy!?
I also know "XForm" is to reset Scaling. Why is normal scaling not allowed for source-engine?
I mean how can i Deform save models in a easy way, because in the Video, also in the documentation is no example or maybe am to dump to read correct tahts a factor too.


I hope my english is not to bad and you can understand waht my Problem is.
Greetings from Germany!

Thanks in advance!

best regards Wammbo

wallworm

Most Source model animations is only skeletal. What you are looking for is a vertex animation, which is done with VTA/DMX and flexes. The only video I've made on this so far is some in the Wrinklemaps video, which applies to WW Pro.

https://www.youtube.com/watch?v=sQouaIZVcRc

I don't have time at the moment to explain it in more detail. The bottom line is that special work must be done to get vertex animations.

K@rt

Basically in Source you need bones (or nodes) to make models animate. Each single vertex in your mesh will be weighted to a bone or bones... Weighting is basically information telling how much the vertex will be influenced by a particular bones movement, ranging from 0% (not effected at all) to 100% (completely effected). A single vertex can be weighted to multiple bones in percentages.

Lets say you have a vertex weighted to 3 different bones. It is weighted 50% to Bone01, 25% to Bone02 and 25% to Bone03. If Bone01 moves 10 units in the x-axis then the vertex will move 5 units in the x-axis... If Bone02 moves 4 units in the z-axis then the vertex will move 1 unit in the z-axis... and so on.

In your box example I think you would require 6 bones to make the animation work. You need one bone as a fixed base that doesn't move (this can often be the model node itself). Then you need 4 bones, one for each face that must push in and out (effecting the vertexes in the middle of the faces more than those at the top and bottom) and finally you need a bone that will stretch up and down providing the height.

Wammbo

#3
Thank you for your fast reply Guys!
I am so pleased for taht help. I will work with this new informations and let you know how it's being going.

K@rt

#4
Hey. Here is a link to a quick example file I made showing what I was explaining. Basically using six bones, four to squash the four sides in and out, one to control the height and one as a static base. The animation itself is very crude but it was just to give you an idea. I moved the bones directly and keyframed them manually, however you can also use controllers to move the bones if you prefer.

https://www.dropbox.com/s/kujxp5li0radwj5/box_anim_example.rar?dl=0

You then export to Source the model with the skin modifier and the bones. The weighting information for each vertex is compiled with the model and saved into the vvd file (I believe) and with most models the sequences are compiled directly into the .mdl file (except with characters or models using a LOT of animations)

Wammbo

#5
@wallworm
thanks for this Video i can't belive i didn't watch it before...

@ K@rt
Am realy thankfull for your example K@rt it helps me a lot to understand more the technique of bones (all so called "nodes").
I watched all so this tutorial here to get a sence of bones: https://www.youtube.com/watch?
v=63oHpOItVug
and i think this is realy waht you want to explane to me yea? Also i think i understand waht you mean with the "weighting"
Thanks for your example but i can't open it because i am working with "3ds max 2013"
Am trying to get "2015" hope it will work with taht.




So am i right wehn i say there are 2 ways to get it done?

1. I can accomplish it with Flex-Animation (via VTA / DMX).

2. Or i can attach Bones (or all so called skelatel mesh) to the Model.

I'am realy confused waht technique is the Youtube-Tutorial "Animated Props for Source" ?
Is it just the simplest Animation with out both methods i list in Point 1 and 2 or got that a special Name to this technique?

Thanks in advance.

best reagrds Wammbo

wallworm

Quote from: Wammbo on January 04, 2016, 03:09:16 PM
Am trying to get "2015" hope it will work with taht.


Quote from: Wammbo on January 04, 2016, 03:09:16 PM
Am realy confused waht technique is the Youtube-Tutorial "Animated Props for Source" ?
Is it just the simplest Animation with out both methods i list in Point 1 and 2 or got that a special Name to this technique?

"Animated Props for Source" uses Bones and skeletal animations. Note it didn't use a skin modifier because you don't need a skin modifier if all the verts in a node are being weighted 100% to that node.

Wammbo

#7
Quote from: wallworm on January 04, 2016, 03:14:47 PM
Note it didn't use a skin modifier because you don't need a skin modifier if all the verts in a node are being weighted 100% to that node.

Ahhh.....  okey. like a "permanence"? Wehre can i check the Weighting? Sorry wehn this is a stupid question....


You say every time "bones AND skeletal" for me in my head it's the same, the only difference is:

one bone = bone

multiply bones = skeletal

Thanks a lot Mr. Olson.

best regards Wammbo

wallworm

#8
Technically, all Nodes export as a bone. And all the vertices in that node are implicitly weighted 100% to that bone. You only need to use skin if vertices are not all controlled by the node they belong to or the parent of that node. All of this, whether a skin or not, is skeletal (think of each bone as part of a Skeleton). The Skin modifier is how you control bone weights on vertices.

Complex vertex animations (like morphs and animations not controlled by bone animations ((Bend modifier changes, taper modifier changes, etc)) require flexfiles or DMX flexing. That kind of animation is predominantly for facial animations, but in theory can be applied to anything. I don't know how to control them via entity I/O scripting but you can see the results in HLMV model flexes. If there is entity I/O that controls them, then you could implement directly in scenes; if not, you may need to work with some of the more complex animation tools in Source which are not necessarily user friendly (creating animation scripts and using Faceposer to script your flexes).

Wammbo

#9
Quote from: wallworm on January 04, 2016, 06:08:59 PM
Technically, all Nodes export as a bone. And all the vertices in that node are implicitly weighted 100% to that bone. You only need to use skin if vertices are not all controlled by the node they belong to or the parent of that node. All of this, whether a skin or not, is skeletal (think of each bone as part of a Skeleton). The Skin modifier is how you control bone weights on vertices.

Complex vertex animations (like morphs and animations not controlled by bone animations ((Bend modifier changes, taper modifier changes, etc)) require flexfiles or DMX flexing. That kind of animation is predominantly for facial animations, but in theory can be applied to anything. I don't know how to control them via entity I/O scripting but you can see the results in HLMV model flexes. If there is entity I/O that controls them, then you could implement directly in scenes; if not, you may need to work with some of the more complex animation tools in Source which are not necessarily user friendly (creating animation scripts and using Faceposer to script your flexes).

Thank you Mr. Olson surely but slowly i receive an impression in conjunction with bones, skeletal, weight etc.

There is one more question i actual have:

Can you define "Nodes" for me please? (Technically i think so...)

As a Node i understand a Box or Teacup i place with the "Create" category inside 3ds max.
I mean that the node is the Model it self or i am rong?



wallworm

Quote from: Wammbo on January 04, 2016, 08:14:55 PM
Can you define "Nodes" for me please?

Yes :) Every Object in the Max viewport is a node. So I could also say Object.

Anything that you can select in the viewport is a node/object.

Any object that is assigned to a WWMT helper will export as a Bone whether is a bone (in Max) or another kind of object. This means that if you create a WWMT Helper and assign 5 box primitives to the WWMT Helper, then the SMD that exports will include 5 Bones along with the mesh (with positions and orientations matching those of the boxes). When the WWMT Helper is set to $staticprop, all these bones are destroyed by the compiler. If not $staticprop, HLMV will show you 5 bones when you tell it to show bones.

K@rt

Here you go, I re-saved the scene with 2013 compatibility.

https://www.dropbox.com/s/5aw7rlrqphrbwv5/box_anim_example2013.rar?dl=0

As you have seen there are different animation techniques available in Source. Shawn obviously posted the video about wrinkle maps and also mentioned flexing/morphing, however all these are fairly specific techniques, usually concerned it smaller more subtle mesh manipulation that is too fiddly to be controlled with bones. I am not 100% sure but I think that the flex morphing that Shawns wrinklemap video shows can only be applied to models that are already rigged with a skin modifier.

For the majority of your day to day animation needs you will still be working with bones/skeletons and skin modifiers, so imo you need to get to grips with that first.

As Shawn says, each object will be considered a node... using $staticprop will effectively crush all the bones down into one single bone (which is usually the origin of the base node or object). When making models it is worth remembering this - different objects will each have their own bone whereas elements of one object will not... if you are making a character model with a skeleton it is worth bearing this in mind.


wallworm

Quote from: K@rt on January 04, 2016, 10:05:20 PM
Shawn obviously posted the video about wrinkle maps and also mentioned flexing/morphing, however all these are fairly specific techniques, usually concerned it smaller more subtle mesh manipulation that is too fiddly to be controlled with bones. I am not 100% sure but I think that the flex morphing that Shawns wrinklemap video shows can only be applied to models that are already rigged with a skin modifier.

In all practical examples I've ever seen there is a skin modifier involved. However, technically, there is no requirement of this. I've compiled many dozens of models with flexes that don't use Skin while building the DMX exporter. Whether it is of value to prop artists and level designers, however, is something I have not yet explored. (Controlling flexes via entity I/O or binding them to sequences inside the QC are two aspects I have intended to explore at some point). In fact, using the DMX exporter, I've made some highly complex and not-at-all subtle vertex animations that the game accepts; so if it's practical to integrate control into a level, it has a lot of creative possibilities.

When I explore it more I'll share the findings.

K@rt

I never used Flexs myself, as I understand it they are normally separate from sequences in the sense that they are not bound to any specific sequence and can be overlayed on any sequence at any time... giving a wider variety of combinations of movement/expressions. But I always assumed they had to be called by the engine directly depending on the specific animation needs, but I didn't think they could be called via the entity I/O system...

Sadly Valve have never been great about documenting their systems, there are some good articles about as well as some huge holes!

SMF spam blocked by CleanTalk