HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Two different translation types ?

05-30-2004, 02:29 PM#1
Armel
Is there a way I could have two different types of rotation or translation types in a bone. To transform a unit (blood elf lieutenant) into a hero, I transfered this unit the dissipate animation of the paladin. The problem is that the bone_root of the paladin uses Bezier translation and the one of the lieutenant uses Hermite. So when I paste the dissipate part of the bone from the paladin to the lieutenant, it plays a dissipate anim, but instead of going in the air in one graceful movement it does it in several short movements, which is very painful for the eyes. Is there a way I can say to the bone : use Bezier for these rotations and Hermite for these ones. I tried to do it in several ways (the dissipate anim corresponds to the {73333, 75333} interval):

1/
Translation 100 {
Hermite,
167: { 0, 0, -5.02639 },
InTan { 0, 0, -5.02639 },
OutTan { 0, 0, -0.925821 },
...
24367: { -23.1504, 0, -43.2207 },
InTan { 0, 0, 0 },
OutTan { 0, 0, 0 },
Bezier,
73333: { 3.82993, 23.44, -52.7773 },
InTan { 3.8296, 23.4396, -52.8493 },
OutTan { 3.83025, 23.4404, -52.7052 },
...
75333: { 3.83012, 23.44, 474.097 },
InTan { 3.83012, 23.44, 473.779 },
OutTan { 3.83012, 23.44, 474.203 },
Hermite,
92200: { 3.54941, 0, -8.11238 },
InTan { 26.6999, 0, 65.3485 },
OutTan { -5.49511, 0, -0.340656 },
...
93200: { 3.54941, 0, -8.11238 },
InTan { -0.448439, 0, 1.13797 },
OutTan { -3.54941, 0, 3.08599 },
}

It wouldn't work

2/
Translation 100 {
Hermite,
167: { 0, 0, -5.02639 },
InTan { 0, 0, -5.02639 },
OutTan { 0, 0, -0.925821 },
...
93200: { 3.54941, 0, -8.11238 },
InTan { -0.448439, 0, 1.13797 },
OutTan { -3.54941, 0, 3.08599 },
Bezier,
73333: { 3.82993, 23.44, -52.7773 },
InTan { 3.8296, 23.4396, -52.8493 },
OutTan { 3.83025, 23.4404, -52.7052 },
...
75333: { 3.83012, 23.44, 474.097 },
InTan { 3.83012, 23.44, 473.779 },
OutTan { 3.83012, 23.44, 474.203 },
}

Doesn't work either.

3/
Translation 83 {
Hermite,
167: { 0, 0, -5.02639 },
InTan { 0, 0, -5.02639 },
OutTan { 0, 0, -0.925821 },
...
93200: { 3.54941, 0, -8.11238 },
InTan { -0.448439, 0, 1.13797 },
OutTan { -3.54941, 0, 3.08599 },
}
Translation 13 {
Bezier,
73333: { 3.82993, 23.44, -52.7773 },
InTan { 3.8296, 23.4396, -52.8493 },
OutTan { 3.83025, 23.4404, -52.7052 },
...
75333: { 3.83012, 23.44, 474.097 },
InTan { 3.83012, 23.44, 473.779 },
OutTan { 3.83012, 23.44, 474.203 },
}

Still not working.

I thought I could also create a second bone_root using Bezier, that would be used only in the dissipate animation, but I guess it would not work because many objects and matrices use the bone_root, and I could not make them refer to two bones instead of one.


EDIT : I've solved my problem by taking for this bone the dissipate anim of a hero that uses Hermite for the root bone (the BladeMaster), so there is no problem anymore. Still if someone could tell me how to do what I asked in the first place that would be cool.
05-30-2004, 04:09 PM#2
Oinkerwinkle
I pretty sure that you literally can't have two types in on set of keys.

Your second idea about having a second root bone would be workable. You would set the new root to be the old root's parent. Then, you could just remove the keys in that area for the old root and add them to the new root. Effectively, one would be inactive during the dissipate and the other during the rest of the animations.
05-30-2004, 05:07 PM#3
Armel
Thanks for the answer. Actually, I managed to find an easy solution to my problem, but I still wanted to have the answer (last time I asked you said you were not sure).
Concerning the two bones solution, the problem is that in the matrices and the parents you refer to a bone for one animation and to another one for another animation, so to me you'd actually have to duplicate the bones that have this bone as parent, and their parents, and so on, then duplicate every single geoset that uses one of the duplicated bones, and make the first version of each geoset visible in all animations except dissipate and the second one (the one using the duplicated bones in its matrices) invisible in all animations except dissipate. That would maybe work, but I think there would be a graphic bug between the death anim and dissipate, since one geoset would become invisible while on the ground and the other one would begin the dissipate anim from a "no anim" configuration. Besides, all these modifs would almost double the file's size.
I hope this is not too unclear, but it explains why I prefered to search for hero models whose root bone would use Hermite in the dissipate anim rather than trying to create a new bone.
05-30-2004, 05:35 PM#4
Oinkerwinkle
Doing what you did was definately the best, but I think the second-bone idea would work pretty easily too.

Original:
Root
--Pelvis
----Arm

New:
Root2
--Root
----Pelvis
------Arm

The Root2 would just sit there for the majority of the time; things would happen as before the modification. You would only add keys during the dissipate. The root would not have keys during that time. However, the Root2, being the parent, would move the root... Using its different rotation type. I think I'm thinking clearly here, but I could be missing something,
05-30-2004, 05:52 PM#5
Armel
You might be right, things could be easier than I first thought. In fact I lack the 3D perspective of modelling, since all I can do is MDL edition. But yeah this idea would work I think. I'll try it if I ever get this problem again. Thanks.