Silgrad Tower from the Ashes

Full Version: A question on morph animations
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
I've created a morph animation in 3D Studio Max. It's hard to see in the video, but if you look closely (or download hi-res) you can see how the pulley that's attached to a rope flies downward:

[youtube=center]http://www.youtube.com/v/WEcWkg5LhD8[/youtube]

The problem is that since I'm in effect elongating the faces of one rope segment, the mapping gets extremely stretched out. I tried increasing the uvw map tiling on those polygons, but they retained that tiling throughout the animation which made the mapping look not unlike an achordian.

Can anyone give me tips on how I can solve the problem?
Hmm, that's a tricky one...

All I can think of are two things, and I'm not sure about either. I list the best probable choice in #1, below:

1) Maybe have a texture animation also play on the rope, that increases the U or V mapping (whichever of those effect the lengthwise or vertical mapping of the texture on the mesh), so that the tiling of the texture increases in number, in appropriate timing coordinated with when the rope pulls down, so that it looks as seamless as possible.

I would help you with this, but I don't have very much texture animation experience. Maybe nick_op can help you more in that area.

2) Make the rope in segments like those "nesting dolls": all the segments are nested within each other, and as the rope stretches, the first segment comes out, then when it reaches the end of its length, the second segment comes out, etc. I think bones are best for this animation, however.

Koniption
Thanks for replying Koniption Smile

Oh okay I thought the solution to the problem was to "skin" it (which I know nothing about at the moment), but going by your explanation it would seem it isn't as straightforward as that. I like the idea of trying out if texture animation can solve it, because at the same time that would have the added benefit of making the rope look like it's being pulled. I think the nesting doll idea is interesting, but I can't picture how it would work. If the segments are inside of each other then each has to be smaller than the other, right, and then I'd need to scale the vertices at each step to line up with the vertices of the preceeding segment, which strikes me as being noticeable by the player.
Koniption's thinking along the right lines, either of her suggestions could work. I'll add my ideas to hers:
Quote:1) Maybe have a texture animation also play on the rope, that increases the U or V mapping (whichever of those effect the lengthwise or vertical mapping of the texture on the mesh), so that the tiling of the texture increases in number, in appropriate timing coordinated with when the rope pulls down, so that it looks as seamless as possible.
This idea seems most efficient to me. When you assign a material to an object you can specify things like U and V axis tiling (and offset). If you change these whilst you've got auto key turned on they will animate.

However, the exported effect doesn't appear the same as it does in Max - the exported .nif acts as if you changed the UV tiling via a UVW XForm modifier, wheras in Max it acts as if you changed the size of the texture (which is technically what it is doing in Max).

I'm sure that explaination was more than baffling - if you'd like to send me the .nif I can sort out the animation for you and explain how I did it.
Quote:2) Make the rope in segments like those "nesting dolls": all the segments are nested within each other, and as the rope stretches, the first segment comes out, then when it reaches the end of its length, the second segment comes out, etc. I think bones are best for this animation, however.
This would work in the same way you'd animate a telescope - each segment of rope would be very slightly smaller than the last (achieved by the push modifier). I don't think the animation would look too good though - there'd be distinct seams in the texture as each segment was moved into place.

Another option would be to use lots of seperate objects to form the segments of the mesh and use vis controllers to enable them 1 by 1. This would be a pretty horrible way of doing things, though.

Personally, I think the first option suggested by Koniption has the best chance of working convincingly, but it would require some tinkering (or maths) to get it spot on. As I said before, send me the .nif if you'd like me to take a stab at it.
Quote:Originally posted by Razorwing
Thanks for replying Koniption Smile

Oh okay I thought the solution to the problem was to "skin" it (which I know nothing about at the moment), but going by your explanation it would seem it isn't as straightforward as that. I like the idea of trying out if texture animation can solve it, because at the same time that would have the added benefit of making the rope look like it's being pulled. I think the nesting doll idea is interesting, but I can't picture how it would work. If the segments are inside of each other then each has to be smaller than the other, right, and then I'd need to scale the vertices at each step to line up with the vertices of the preceeding segment, which strikes me as being noticeable by the player.

Well, actually, I think you can do it also without scaling the different rope segments. You can have one long rope mesh and skin it to the multiple bones as usual. Then animate/move the bones to be right on and within each other - in other words all at the same level and placement - this is what it should look like without the animation having been played yet on the model.

Then if your metal pulley thing at the end of the rope is big enough, you can hide those concentrated rope segments inside of it somewhat, in case there are glitches and artifacts in the mesh from so many layers being together. As the metal pulley goes down, it lets out a bone/skinned rope segment from its top..as the bone/segment reaches the end of it's length, another segment comes out. Basically, all the segments initially are animated moving down with the metal pulley part, then as one segment is let out, it stops moving, while the still unreleased segments still move down, etc.

Koniption
I like your ideas Smile However there's no room to hide the rope, as it descends a relatively huge distance of about 384 points. Theoretically I could coil the rope around the bar but because of the distance it descends that would become very impractical and might even be too heavy for the game engine to process.

But Saiden explained an idea to me: "basically you have to make one long seamless rope (in your case) texture but only UV the base un morphed mesh to use a part of the texture then when you actiuvate the morph you have to use the TTController to roll the texture to a more dense section of the texture. The Texture has to be layed out in a very specific manner where the Top Half is 3x4 times more dense then the Bottom Half that the Un-Morphed rope is UV to. -> you can always do it left side right side as well and then just use a 1 frame TT to move from the single tiled rope to the 3-4x tiled side." I don't know much about that subject so I'm keeping my fingers crossed for a reply from him. Smile
Quote:Originally posted by Razorwing
But Saiden explained an idea to me: "basically you have to make one long seamless rope (in your case) texture but only UV the base un morphed mesh to use a part of the texture then when you actiuvate the morph you have to use the TTController to roll the texture to a more dense section of the texture. The Texture has to be layed out in a very specific manner where the Top Half is 3x4 times more dense then the Bottom Half that the Un-Morphed rope is UV to. -> you can always do it left side right side as well and then just use a 1 frame TT to move from the single tiled rope to the 3-4x tiled side." I don't know much about that subject so I'm keeping my fingers crossed for a reply from him. Smile
That's an interesting way of going about things. I still think my method might be worth trying, though.
Sorry nick_op, I didn't see that you had posted above Koniption when I replied to her!

To respond to your original post, I do happen to like your suggestion best of the alternatives that have been suggested to me. I can wrap my head around how it would work from a technical viewpoint, and unlike with Saiden's suggestion I wouldn't need to create an extra texture.

I'm going to experiment with your suggestion tonight. If I get stumped I will gladly take you up on your kind offer =)
I had a go at it but I don't think I did it right. I've attached a copy of the scene with the morph and am grateful for your help. Who knows, maybe we can work together on a tutorial of this subject too? =)
Quote:Originally posted by Razorwing
I had a go at it but I don't think I did it right. I've attached a copy of the scene with the morph and am grateful for your help. Who knows, maybe we can work together on a tutorial of this subject too? =)
Could you export it to .nif format, please? I'm unable to open that .max file due to it being from a higher version of Max than I use. Then again, I'm unsure of how well morph import might work. Export works exactly the same as any other export, though.

I guess to be on the safe side, you could export the scene in it's complete form, but also export the morph target as it's own .nif. That way I could piece the two together even if the morph import doesn't work correctly.
Pages: 1 2