New animation
-
Q’plaH! BJ was right, the problem was that my baydoors were refered to in both the Rev and Fix nodes
ah, same thought there but Bejaymac was faster.
since I can’t delete subnodes, I had to find a ship with a Fix node with two subnodes fewer than what I had.
run your cmp through utf2xml and look at the generated xml.
have fun editing, then do the other way xml2utf.Now, the animation itself is screwed up, but that’s a matter of origins, axises, and whatnot.
as mentioned on page 3, the pivot point of rotation is the 3d origin in milkshape.
lets assume you have a box shape, align the bottom left with the origin, then the box will turn around its bottom left.
the position of the box relative to the rest of the model is defined by “origin”, when you click edit rev data in utf editor.
“rotation matrix” is like the orientation of hardpoints, shouldnt worry about this if the orientation is ok on export.
“axis rotate” is the other important thing, should be easy enough to figure out. the axis the animation is applied, values of the frames node. -
since I can’t delete subnodes, I had to find a ship with a Fix node with two subnodes fewer than what I had.
You can delete them MK, but you need to do it using “interpret data”, using “float” you will find something like this.
75879931235666218000000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 78682151728776971000000000000000000.000000 4740101122411936900000000000000.000000 15270985670545095000000000000.000000 70366722061431311000000.000000 17666323175581866000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 75879931235666218000000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 78682151728776971000000000000000000.000000 4740101122411936900000000000000.000000 16273113490958152000000000.000000 0.000000 73153541666658487000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 75879931235666218000000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 78682151728776971000000000000000000.000000 4740101122411936900000000000000.000000 16273113490958152000000000.000000 0.000000 73153546389024969000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 75879931235666218000000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 78682151728776971000000000000000000.000000 281688317150816630000.000000 15270983309361854000000000000.000000 70366722061431311000000.000000 17666323175581866000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 75879931235666218000000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 78682151728776971000000000000000000.000000 281688317150816630000.000000 16273111185115143000000000.000000 0.000000 73153541666658487000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 75879931235666218000000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 78682151728776971000000000000000000.000000 281688317150816630000.000000 16273111185115143000000000.000000 0.000000 73153546389024969000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 75879931235666218000000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 78682151728776971000000000000000000.000000 17025421289908726000000000.000000 73153820286280976000000000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 ```This is the Fix node from my copy of the Fury, minus the baydoors. From the first "75879931235666218000000000000000.000000" (Root) to the next one is the data for the first component, it's a simple case of counting down till you find the data for your baydoors (as listed under the Cmpnd node), not sure if it's a v4 problem but you will have to alter the Child names in the Fix after you've deleted some of the data, as the part of the remaining names are missing. You can also do the same with the Rev, but you'll need v3 to fix the Parent & Child names.
-
@BJ
Thanks for UTFEdit v3, that should help on future animation.
@Everyone
The Fury’s baydoors work perfectly now. It was actually very simple to do. I’m not sure if these are the steps everyone else did:
1. I moved the baydoors as a pair to the origin by selecting both baydoors in Milkshape, clicking on move, selecting absolute from the dropdown menu, and setting the coordinates 0, 0, 0.
2. I put a hardpoint where I wanted the joint to be (I called the triangle I made Hp|Fixed|Jointy). I exported the file as I did for the original ship.
3. I checked the new CMP and moved my baydoors by an amount equal in magnitude but opposite in direction to the x-coordinate of the joint hardpoint. For example, the joint for the port bay door had x-coordinate -0.781855, so I moved the port bay door 0.781855 in Milkshape, and the same for the starboard bay door. I had to do this because my baydoors were like this: BAYDOOR|HULL|CARGO|HULL|BAYDOOR instead of HULL|BAYDOOR|CARGO|BAYDOOR|HULL. I reexported to save the positions of the baydoors.
3. I copied the VMeshData from this exported ship and put it into the one I’d been working on (it already had hardpoints, animation data, etc. and I didn’t want to copy/paste). Since I only moved two groups and did nothing with vertices, that was the only change I had to make.
4. In the Rev node, I changed the origin to the values in HardCMP of my joint hardpoints. For example, the joint for baydoor1 had an x-coordinate of -0.781855, just as it does in HardCMP.
This was all I had to do. It took only about ten minutes. Since I was using the Fury, I was able to copy all of the angles and whatnot from the Valkyrie, though in a custom ship I’d have to find the angles seperately. I’d post a video, but a) I don’t know how and b) it’s not that impressive.
MK
-
Well, I’ve been a busy beaver since my last post. The Fury now has a fully functional BayDoor animation. As does the Serpentail. And a Blood Dragon Serpantail. And the Testudo. And the Hellhound.
In fact, the Hellhound in 100% Vanilla. It has a custom SUR, custom wireframe, destroyed components, and now a BayDoor animation.
Please excuse me while I go cackle like a madman.
MK
-
No, I didn’t get that detailed. And in fact all of the ships with a baydoor animation also have a custom SUR. As for a wireframe though… the Hellhound was my test ship, it was the first I made a SUR for and also a wireframe. I’m in no hurry to repeat the steps to make a wireframe though, that was just ridiculous. I’m going to wait for LS to come up with something to help.
MK
-
off topic question
whats so special about that new utfeditor?
and where to get it?Yeah good question
-
The new UTF editor, v4, is God. It allows you to open multiple files, and you can click and drag nodes from one UTF file to another, no more having to add it manually. Change around a CMP? Now you don’t have to readd the hardpoints, you just drag it from the old to the new and voila! It still has a few bugs (such as the aformentioned inability to change names on the Rev and Pris nodes), which is why it hasn’t been released to the public. BJ sent me a copy, although I’m not sure if I’m supposed to send it to others. BJ?
MK
-
Know it’s a bit late, but Wolfie? Any chance you want to help me break into M$ Headquarters and get the FL Source Code? I want the stuff in that trailer. XD
Anyway, Good work guys… I’d never even thought about this function of FL. Now I come to think about it, it makes sense to have had it. Why they didn’t have folding stuff in cruise for the Original thing I don’t know. Any chance this’ll be released as a standalone thing? I’d play the campaign again if all the ships did that. -
Just an update / side note on this: If you’‘’'re making new Animation scripts, be sure to drag-copy over the related “Header” section from a similar vanilla animation. Using the simple data editor “float array” will corrupt the data in this section otherwise. Frames, Parent, and Child can still be edited as usual though.
Animated parts can also be “chained” off each other; a rotating part can have another rotating part moving around it, or a sliding part. This opens up some fun prospects for looped animations -extend arm, “collector” dish swivels out of arm, then dish pieces rotate to fully form the dish. Conveyor belts, etc. Just have to offset the start times of each animation sequence properly
Alternatively, you can edit the Header data as an integer array (edit only the 1st value to change frame count -which is the pair of time and radians).
Note; Header consists of three 4 byte sections:
- a Long INT value for frame count
- animation type as IEEE single (float)
- a Long INT value of 1 (every one I’ve looked at is 1, and that’s it)
If you really feel like it, you can edit #2 as a float array, click update, then go back and edit #1 and #3 as int array back to their previous values.
-
this is very cool!! we are looking at this at freeworlds and thinking of implementing it for the s-foils on the star wars ships!!!
-
Only downer is so far there’s only been one “trigger” available for ships; jettison cargo. And for stations, the docking animation. Both can still have constant animations attached via the methods listed in this thread (select_equip.ini), but it would be nice to be able to tie animations to other state changes like Cruise Charge, strafe right / left, etc. Just have yet to find a way to accomplish that
-
that would be cool, hopefully someone will be able to figure that out. i would love to see it linked to the cruise function or even the docking function.
-
Thing is though without a trigger, the ship would look a bit more like a bird trying to take flight, or would only spread the wings when dropping cargo.
Let us know if adding an Sc_open dock script works on a ship though if you do try that Zaxx Workin on a SUR for my lil habitat, otherwise I’d give it a run a couple different ways to try it.
Oh, forgot about the Sc_fire on the Liberty Cruiser. That’s one more, though I can’t remember if it was triggered in its weapon entry or the ship. That part may be mentioned somewhere in this thread.
-
<winces>Oh dear, I forgot about the SUR file. Assuming you’re making a custom SUR (and if you aren’t, for shame ;D), well, having the wing SURs move with the model might be a wee bit more difficult. I didn’t do it for the bay doors on my ships because the doors are so small, but the wings make up a significant portion of the ship. That certainly changes things a bit.
I wonder if somebody could look into the DLLs, see…. you know what, I’ll take a looksie myself.
MK
edit
Hmm, interesting. I find it odd that nobody put this together before, or looked in common.dll before now, but I’ve found a few interesting things that should be brought up. First of all, there is another type of animation, one that plays even in Vanilla. That would be the jump gate/docking ring opening up (actually, that might be the same as for docking bay doors opening, not sure). Common.dll contains three promising entries: anim, bay_door_anim, and open_anim. It might be… try adding the anim to engine_equip.ini, set it equal to an animation in a CMP… you know what, I’ll test this too.
edit2
Well, that did jack-diddly. I’m out of ideas :(</winces>
-
assuming that the animated component has the same name in both CMP & SUR, then the SUR component should follow the movement of the CMP component.
Creating the trigger to start the animation is the only stumbling block as I have no idea how to do that.
-
is there any way to make a dummy command, like for instance one that is linked to the cruise or the jumpgate and then dummies the cargo drop without actually dropping anything? the default for us would be wings open, then closed during jumps and cruise, if that idea has any merit.