| 08-28-2004, 12:36 AM | #1 |
Hey guys, another small model question. I have currently exported the perched Raven from the ROC Orc Campaign, and am trying to use it as a single unit. However, I'm trying to give it animations... it wasn't moving in War3 Viewer, and it isn't moving now. Oinkerwinkle's Animation Transferer doesn't seem to work, and logic would declare that that's caused by the fact that this Raven is a cinematic model, and not an in-game one. I think (but I'm just guessing, I'm still a noob at modelling) that I have to name certain key points on the model before it recognises the model as parts it can animate. Like each wingtip being named 'wing', or 'wingleft' and 'wingright'. Is this the solution to my problem, and if so, how do I name such key points? Or is there another something causing this? For now, I have a nice static perched raven, but not much more. ![]() |
| 08-29-2004, 03:26 PM | #2 |
Your guess is pretty much right. You have to add bones to your model, then attach vertices to the bones. Animations are applied to bones, which then move/rotate/scale the vertices attached to them. The easiest thing to do (although it is not particularly easy) is to start with an existing bird and replace the geometry with the raven you have there. Then, the only thing you have to do is hook the vertices up to bones. To get the raven geometry to replace the old bird's copy the texture, materials, and geoset of the raven model and paste it over the same of the old bird's. Make sure that you can still convert to MDX. The next part is a lot trickier. I'll try to explain how vertices are connected to bones. Every geoset contains matrices, which are basically listings of one or more bones that are to have an affect. Vertices are linked to matrices in VertexGroups, which are also in the geoset. I'll give an example... Code:
Geoset {[b]
Vertices 5 {
{ 0, 0, 40 },
{ -20, -20, 0 },
{ 20, -20, 0 },
{ 20, 20, 0 },
{ -20, 20, 0 },
}[/b]
Normals 5 {
{ 0.816497, 0.408248, 0.408248 },
{ -0.408248, -0.816497, -0.408248 },
{ 0.666667, -0.333333, -0.666667 },
{ 0.408248, 0.816497, -0.408248 },
{ -0.666667, 0.333333, -0.666667 },
}
TVertices 5 {
{ 0.9995, 0.999501 },
{ 0.0005, 0.000499 },
{ 0.000499, 0.9995 },
{ 0.9995, 0.999501 },
{ 0.999501, 0.0005 },
}[b]
VertexGroup {
0,
1,
1,
1,
1,
}[/b]
Faces 1 36 {
Triangles {
{ 4, 3, 2, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 3, 0, 0, 0, 3, 3, 4, 0, 0, 0, 4, 4, 1, 0, 0, 0, 1, 1, 2, 0 },
}
}[b]
Groups 2 2 {
Matrices { 0 },
Matrices { 1 },
}[/b]
MinimumExtent { -20, -20, 0 },
MaximumExtent { 20, 20, 40 },
BoundsRadius 34.641,
MaterialID 0,
SelectionGroup 0,
}So, each vertex has a cooresponding vertex group. Each vertex group points to a matrix. In this example, the first vertex would be controlled by bone 0 and the rest would be controlled by bone 1. What you'll have to do is set up the matrices based on the bone names, then do the VertexGroups to point correctly. If you need more help, which you probably will, you can ask for it. The vertex modifier program has the Tools->Assign Vertex Group function, which will make matching vertices with matrices somewhat easier. |
| 08-29-2004, 08:20 PM | #3 |
-blink- Damn. I'll bookmark this page and will return once I'm more skilled. :o |
