New animation
-
@mknote:
did you copy+paste the header+frames data in utf editor?
if so, try using the export+import buttons instead.
also, mismatching parent references in rev node / animation node lead to a ctd on game exit.
its been a while tho, hope my memory is correct… -
**Well, from my work over the past week, the Pris node is for your baydoors. The Fix is for fixed hardpoints, the Pris is usually used for the baydoors and the Rev is for your Revolute hardpoints.
The layout of the Fix node is different than the other two, the Rev and Pris follow the same format.
There is other bugs in that version, I do not use it to do any editing with because it have a string problem.**
-
Look at the Liberty Dreadnaught, that is where it is used for baydoors. Rev and Pris are the exact same format so it would stand to reason both can be used.
-
I used Pris for the baydoors on the sleepership, a copy from the Rheinland Battleship. I’ve also witnessed the problem that it almost seems that the node is “write-protected” (even though it actually isn’t, of course) - but you simply can’t modify it.
I once fooled it into working by making a copy of the Rh battleship cmp, and continuously replacing it with the data of my own CMP. That is why the baydoor of my sleepership is called baydr-l1_lod1 (that is the object name, the file name is baydoor_lod1.3db).
-
Curiouser and curiouser…
Well, I changed Rev to Pris on a hunch, no change whatsoever. But I noticed something odd in-game. On the base, before the launch-and-crash, I noticed that my ship components had all… dissappeared. Only the Root and the two baydoors were visible, an understandable mistake given that that compomises 80% of the ship. In addition, the baydoors were above where they should be, and slightly offset to the left and right. When I open HardCMP, well, the baydoors are in that position and also where they’re supposed to be! That’s right, two sets of the same mesh in different locations. Wiskey Tango Foxtrot? I changed the origin on the Rev (I changed it back from Pris for no reason) and nothing happened; in-game, the baydoors were still in the same spot, and HardCMP showed exactly the same thing. I’m confused.
MK
edit
Please excuse the blood, but it’s because my head is bloody because I banged it so hard against the keyboard for being stupid. The reason changing the origin didn’t do anything is because I forgot to save The baydoors are now in the right position, though their angle is off, but the crash remains.
edit2
Huh. I set the angles to zero and it now appears in the right position in HardCMP… and doesn’t appear at all in-game. Also, when I clicked on the equipment dealer, the camera went up, but right when the equipment window was supposed to come up, CRASH!
-
@&$# Now I remember why I stopped doing animations, with UTF v4 you can edit the Fix node to your hearts content, but neither the Rev or Pris will save, I had to butcher the Rev using “float” and gave myself a right good headache, I’ll dig out v3 later and see if it’s the same.
The Fix, Rev & Pris nodes are basically joint locations with Parent & Child assignments.
Fix = This is how the Components (Child) are attached to the Root (Parent), the offset is the location of the “joint”.
Rev = As “Fix” but is used for animation, generally used for models with multiple joints.
Pris = As above, but is generally only used on models with one joint.
MK check the Fix & Rev/Pris nodes, are your baydoors listed in both, generally non animation components are only listed in the Fix, and animated components should only be in the Rev/Pris, this might explain why you have two sets showing.
-
As it dont save, cant you do it in hex and manually go in that way? (search and replace etc :))
-
Q’plaH! BJ was right, the problem was that my baydoors were refered to in both the Rev and Fix nodes; since I can’t delete subnodes, I had to find a ship with a Fix node with two subnodes fewer than what I had. Once I renamed everything, it worked peachy. Now, the animation itself is screwed up, but that’s a matter of origins, axises, and whatnot. Help there would be appreciated, but I’m just about to begin so I don’t know what to ask for.
MK
-
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.