want toi know how to edit skeletons without fudging the animations?

New Member
★ Black Lounger ★
💻 Oldtimer
Joined
Apr 23, 2003
Messages
3,913
Best answers
0
Location
Texas
kk, i was recently asked by the BTL team to assign a few of their models. skiwan was worried that the tail on his ssj4 goku would be stuck in a static position due to the fact that under normal conditions you cannot add new bones to an existing skeleton without it messing with some other part of it, (within milkshape anyways) and screwing up all the animations associated with said skeleton.

there are many released models now that would benefit from new bones (cloth movement, facial movement etc, with minor editting to the animations of course for said movemet but the base animation will still be there)

so i had to find a way to modify a skeleton whilst keeping it compatible with all of the animations it originaly had, i had to use an old trick that is sometimes more trouble than its worth,... TEXT EDITTING. ive only had to do this once before, and i cheaped out on it way back then and not until recently did i master it ^^.

doing this you literally open the model up in notepad, (you can either open the reference smd or a ms3d ASCII file) and add the bones manually. while doing this you cannot see where the bones are being placed. so you have to save and import the model after every change



first step,
A) if its an SMD file you dont need to do anything else, just import it for reference for when you add your bones
B)if its an ms3d or other, export it to .smd or MS3D ASCII

second,
scroll down you will see some lines like this, (note im using an smd file for this, the ascii layout is different but the numbers are the same IIRC)

0 "Bip01" -1
1 "Bip01 Pelvis" 0
2 "Bip01 L Leg" 1
3 "Bip01 L Leg1" 2
4 "Bip01 L Foot" 3
5 "Bip01 R Leg" 1
6 "Bip01 R Leg1" 5
7 "Bip01 R Foot" 6
8 "Bip01 Spine" 1
9 "Bip01 Spine1" 8
10 "Bip01 Spine2" 9
11 "Bip01 Spine3" 10
12 "Bip01 Neck" 11
13 "Bip01 Head" 12
14 "Bip01 L Arm" 12
15 "Bip01 L Arm1" 14
16 "Bip01 L Arm2" 15
17 "Bip01 L Hand" 16
18 "Bip01 R Arm" 12
19 "Bip01 R Arm1" 18
20 "Bip01 R Arm2" 19
21 "Bip01 R Hand" 20
22 "Bip01 Tail 0" 1
23 "Bip01 Tail 1" 22
24 "Bip01 Tail 2" 23
25 "Bip01 Tail 3" 24
26 "Bip01 Hair0" 13
27 "Bip01 Hair1" 26
28 "Bip01 Hair2" 27
29 "Bip01 Hair3" 28
end
obviously this is the list of the bones in the model, (note the bottom 8 which were added by me for skiwans goku, this is how you should add them) the # in front is what determines where the bone is on the list, the 2nd # at the end determines its parent bone, (where the new bone comes from, like the head bones parent bone is the neck bone, etc) BUT this is only half the battle, you still have to tell milkshape where to put the bones

next you will see some lines like this
0 0.058462 0.092041 9.881530 1.570796 0.000000 0.000000
1 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2 0.928314 -0.000001 0.000000 -1.537008 0.882286 3.141592
3 0.000000 0.000000 4.511430 -0.077307 0.093828 0.000000
4 0.000000 0.000000 4.399392 -0.598513 1.036417 3.141592
5 -0.928314 0.000001 0.000002 1.540815 0.617424 0.000000
6 0.000000 0.000000 4.511431 0.104110 0.073825 0.000000
7 0.000000 0.000000 4.399399 0.823419 0.908307 3.141592
8 0.000000 0.323418 0.171119 -1.457333 0.000114 0.000000
9 0.000000 0.000000 1.327421 -0.070007 0.000000 0.000000
10 0.000000 0.000000 1.206698 -0.095908 0.000199 0.000000
11 0.000000 0.000000 1.448192 0.018141 0.000000 0.000000
12 0.000000 0.000000 1.665579 0.000000 0.000000 0.000000
13 -0.000117 -0.232318 0.455974 0.058126 0.000539 0.000000
14 1.085646 0.015078 -0.865206 -3.141353 1.370989 3.141592
15 0.000000 0.000000 1.206808 -0.034167 1.262015 0.000000
16 0.000000 0.000000 2.784940 0.199998 0.000714 0.000000
17 0.000000 0.000000 2.578650 0.000000 0.000000 0.000000
18 -1.034948 0.014067 -0.798331 -3.141583 1.370604 0.000000
19 0.000000 0.000000 1.243013 0.034149 1.270743 0.000000
20 0.000000 0.000000 2.896338 -0.199999 0.000687 0.000000
21 0.000000 0.000000 2.531763 0.000000 0.000000 0.000000
22 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
23 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
24 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
25 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
26 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
27 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
28 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
29 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
this is what tells milkshape where to put the bones, note that the bottom 8 (the new bones) are all zeros. this will result in all 8 of those bones being in the exact same position, clearly this isnt your goal but save the file and reimport it to verify that the bones actually exist on the model.

are we good? if not you messed something up, (if your working from ASCII you have to make sure the # of bones matches up, theres a value for it somewhere)

now is the fun part, (im only gonna show the values from the new bones from now on). your going to need to modify each one of those bones until they are in the proper position, (this could take you up to an hour)

ya know what im just gonna cheap out on this part cuz im not 100% sure which values control what, i just changed a number saved and imported each time to verify that it was going in the right direction ^^.


(i should note that you should give each extension off of the main skeleton its own parent bone, and leave the parent bone where it is, makes animating from it alot easier)

change one of the main numbers, (leave the numbers behing the decimal alone until you know what your doing)

29 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
try this

29 4.000000 0.000000 0.000000 0.000000 0.000000 0.000000
and see which way it moves it. and keep doing that to every bone til it everything is in its proper place.

if the bone is not in the proper position DO NOT try to move it there within milkshape, this will adjust the rest of the skeleton and screw up its compatibility with all the existing animations

now just assign the model to the skeleton just as you normally would, (it still keeps the assignments as well but only for the old bone setup)

if you did everything properly, you should have a model in milkshape that has all of its required bones and is 100% compatible with all of its original animations, (short of the animations applied for the new bones, but anybody that can understand even half of this tutorial probabaly knows how to edit animations to include said movement)

a few things you should know before calling it finished

when you compile a half life model it deletes ALL bones that do not have any verts assigned to them, unless its child bone (a bone that came from it) has something assigned to it as well. keep that in mind if you NEED that extra bone for anything else

example, if you have a 3 section tail, and you only have stuff assigned to the first 2 sections it will delete the third automatically. and though this wont effect the model's animations, if you should decide you want that bone back later your gonna wish you had it else you will have to go through all this craop again ^^.


there are ways to keep a bone there without seemingly assigning anything to it, (well you will, you just wont see it)

create a cube, delete all but 1 side of it. and assign that side to the bone you want to keep, then collapse it, assign a material to it so it will export and compile, the bone will still be there and the faces assigned to that bone will be so small you cant see them ^^.

(i may have forgotten a few things so pop me some questions if you have any),
 
New Member
Joined
Dec 10, 2002
Messages
793
Best answers
0
Why not make the bones in MS3d, export it in SMD format, open it with editor, copy the thing with the numbers/coordinates/whatever and paste the text/numbers into the REAL MODEL-SMD you want the tail-bones to be? That would save the whole 1 hour work =D. I tried it out, it worked well for me =).
 
New Member
★ Black Lounger ★
💻 Oldtimer
Joined
Apr 23, 2003
Messages
3,913
Best answers
0
Location
Texas
lets say if you created 5 bones in milkshape off of the pelvis, it would rotate the pelvis bone slightly. when you put the pelvis back to its original posistion when you pasted its coords back in would it not rotate the new bones with it back to its original rotation?

thats what iw as thinking before i went out of my way to do it the long way.
 
New Member
💻 Oldtimer
Joined
Jul 9, 2003
Messages
1,388
Best answers
0
Work Miricles you do. :yes:

This should be stickied
 
New Member
Joined
Dec 10, 2002
Messages
793
Best answers
0
nuttzy said:
lets say if you created 5 bones in milkshape off of the pelvis, it would rotate the pelvis bone slightly. when you put the pelvis back to its original posistion when you pasted its coords back in would it not rotate the new bones with it back to its original rotation?

thats what iw as thinking before i went out of my way to do it the long way.
hmmm.... I only copy and paste the coordinates of the NEW bones I added and it worked very fine... I also tested it with importing anis and so on, all worked well =).
And, yEAH thx nuttzy, now i can make some anis for the tails of my SSJ4-models^^. And that VERY VERY EASY and FAST =).
 
Senior Member
💻 Oldtimer
Joined
Oct 21, 2003
Messages
2,706
Best answers
0
I got a question. Is there a way to move an exsisting bone to fit the model without fudging the animations? That would be really helpful atm, cause im compiling my gorilla model and his proportions are strange.
 
New Member
★ Black Lounger ★
💻 Oldtimer
Joined
Apr 23, 2003
Messages
3,913
Best answers
0
Location
Texas
not that i know of no,

cuz each animation keeps information regarding the original skeleton, adding new bones doesnt effect the old skeleton so the animations still fit, but changing the actual skeleton will mess w/ it.

if your not too attached to the model as is i could give it a go, i may have to scale bits and peices of it but ill try to keep the "character" intact.
 

Users who are viewing this thread

Top Bottom