by the way, all the animations I did were VertexAnimations.
On 5 oct, 09:27, masterkitano <[email protected]> wrote: > hi devs, I've been searching lots of ways to do this, and after 3 lts > of coffe I finally solved it, soy I'll post the answer just in case > someone else have also this problem and just can't get to fix it. > > also I would like to ask if this is sort of bug in away3d or in my md2 > exporter (I believe is both). > > so this is the explanation: > I wanted to have a single md2 model, with all the animations, and > label each animation of the model: > idle > walk > dance > > I used qtip, it exports the md2 the best way I could found (uvmaps > works perfect), but qtip doesnt names animations, so then I used > milkshape with no luck, then like another 3 or 4 3d modeling software > 'till I found the best option 'till now: > frag motion. > > fragMotion lets you import md2, rename, split and duplicate your > animations, and export it again. > yet, after doing this, I just could get the animation in away3d (im > using away3d 3.5). > > I used the md2 Viewer 1.4 and my animations were shown just perfect. > so I had to go to the away3dsource, and I realized when I printed all > animations contained in the model, that away3d was adding it some > trash at the end of the name: > > idle¨Y%\ > walk?= > > and so on > > so the answer is in the md2 class, wich is the parser, so far I've > found there is a set of lines that reads the name of the animations, > and as I can see, the name is a 16 bytes name, so if the name of my > animation is lower than 16bytes, it compleats the name with the next > bytes (the trash). thats why I think its both awy3d and fragMotion > bugs: fragmotions add trash at the end of the animation names, and > away3d does not cleans it. > > solution: > > I went to the Md2 class, on the method parseFrames(), line 201 there > is: > > for (var j:int = 0; j < 16; j++) > { > var char:int = md2.readUnsignedByte(); > if (char != 0) { > var str:String = String.fromCharCode(char); > if (isNaN(Number(str))) > name += str; > } > > } > > --- at this point we have the 16 bytes name in "name" var. but it > contains all the garbage, so I add this line just after the for cycle: > > name = name.substr(0, name.search("_")); > > it searches in the name for a "magic" character, in this case "_", and > makes a substring from 0 to that character. > > and, back in fragMotion, I name all my animatinos this way: > walk_ > idle_ > dance_ > > so when it comes to the parser, my animations are like : idle_¨Y%\, > walk_?=, and after the sbustr() cleanup, the name is: idle, walk, > dance. and thats it, trouble solved. > > are you thinking on adding some kind of patch for this in next > realeases? or is there a better solution for fixin this?
