Resource icon

EE2 Future Units Kit 2016-10-05

Deliverator

Graphical Hackificator
Joined
Feb 12, 2008
Messages
4,806
Location
London, UK
This download consists of Empire Earth 2 Future and Modern era units, the majority of which have been converted for Civilization 4 by the Coyote. The J converted the Stealth Fighter unit.

All the original EE2 models and textures are included in a separate directory from the converted units.



1. Atmospheric Fighter.
2. Disruptor (a big gun on a truck).
3. Fusion Caster (more than a little inspired by the Warhammer 40K Rhino)
4. Halo
5. Heavy Gun Helicopter
6. Heavy Missile Helicopter (could be be reskinned for the Dune Orca I saw a request for)
7. Heavy Transport Helicopter (Not yet converted)
8. HercElecWarfare (robo attack dog thing like in Neal Stephenson's Snow Crash)
9. HercRepair (a walker type unit)
10. Light Mech
11. XShip



12. Leviathan (a future ship)
13. Paladin Defense (a little defence truck with a gun)
14. Manta (another future ship, but could easily be skinned to become a spaceship)
15. Myrmidon Tank (Myrmidon - Mammoth - see what they did there?)
16. Mech (there's an animation challenge for somebody!)
17. Nuclear Bomber
18. Netfire Launcher (the missile launcher is separate and could easily be rotated up into the firing position) *
19. Orbital Bomber (they seem fond of these little triangular planes)
20. Stealth Fighter (the one in the corner - looks like modern jet)
21. Stealth Bomber
22. Smart Plane (the one with the higher quality texture).
23. Sea Archer (a future aircraft carrier)
24. StealthFighterBomber (F117):





26. RPG Striker
27. Sensor Destroyer
28. Humvee Striker
29. AA Halftrack
30. Jagdpanther
31. Self-Propelled Artillery (I am informed this is a US Army 8 inch M110 Howitzer):



DOWNLOAD FILES HERE

Notes
1. In the NIFs all the nodes beginning tag_ are redundant. They are just attachment points for EE2's animations.
2. To get the polycount down you may want to cut away some detail. You can also use the Optimise with PyFFI script - explained here.
 

Attachments

  • eefuture1.jpg
    eefuture1.jpg
    88.4 KB · Views: 25,989
  • eefuture2.jpg
    eefuture2.jpg
    104.5 KB · Views: 23,604
  • stealthfb.jpg
    stealthfb.jpg
    11.8 KB · Views: 16,038
This probably belongs in the Tutorials section, but I'll leave it here for now.

Edit:There is a quick and dirty method that can be used for planes/aircraft, as described by the Coyote:
a quick and dirty method would be (only works for planes or similar easy rigged objects):
1: import EE nif in Blender
2: export the nif as Civ4 nif (do nothing else in blender)
3: copy the exported NiTriShape to the master nif (the nif from the unit you want to use the animation), if you have an NiSkinInstance remove this before you copy
4: make your copied model child of the dummy node and scale it to match the size of the master model
5: do the rest (remove master model, change position of weapon effect and other dummy node, adjust material properties)

Disclaimer: I'm not saying this is the only way to do this or even the best way to do this, it is just a way I know works - that's worth something in modding I always think. :)

1.Open two instances of Blender. In the first, import the jetfighter NIF and in the other the EE2 Missile Chopper. In each instance, press A one or two times until the entire model is selected. Check the polycount (or number of faces labelled 'Fa:' - the jetfighter has 1760, the chopper 4136. We need to get the chopper down under 2000.

2.Right click the main chopper object and press TAB to enter mesh edit mode. Then find the Rem Double button. This will remove 'doubles' where you have duplicated vertices at a single point. Press the button and straight away we have done away with over 2000 faces. The chopper face count is now 1901. You can see that the pattern of shading has changed. Checking the texture view the model still looks OK - we'll have to see what it looks like when we get it in game.

Steps 1/2:


3. In the chopper the wheels are a separate object. To make our lives easier we'll join them with the body object before copy and pasting the mesh into our jetfighter. In object mode, RMB click on the front wheel then shift-rmb on the chopper body. Ctrl-J will then join the meshes into one. Do the same with the other set of wheels.

3. Now we need to save both blender files partly so we can revert back if anything goes wrong, and partly because it is necessary for the next step where we copy and paste the chopper. Having saved both files, press Z one or two times until both blenders are in wireframe view.

4. To copy and paste meshes between blender instances you will need this script by Mariano Hidalgo - it does not come included with Blender. Rather than upload a file I'll just post the code since it's short. Save it in a file called copyPaste.py and then you should be able to add it to your scripts set in blender. Using this script we can copy the chopper mesh to buffer and then in the jet blender instance we use Paste Object from Buffer.

Code:
#!BPY

"""
Name: 'Copy and Paste Objects'
Blender: 237
Group: 'Object'
Tooltip: 'Copies objects beetween blend files.'
"""

__author__ = "Mariano Hidalgo a.k.a. uselessdreamer"
__url__ = ("blender", "elysiun")
__version__ = "1.0"

__bpydoc__ = """\
This script copies objects between running Blender instances.

Usage:

While working in a project, open in another instance of Blender the file
wich contains the objects you want to copy, select them and run the script.
Choose [Copy object(s) to Buffer] and close this new blender instance if you want.
Go back to the other Blender instance and run the script again, this time choosing
[Paste object(s) from Buffer]. Please note they will be pasted in the same layers
the occupied in the original file, so you may no notice anything till you turn that
layers on.

It can also be used in a single instance (ie: first open the file with object, copy,
open the destination blend, paste)

Save the .blend containing the objects you want to copy first, even if it already has
a filename, only saved objects can be copied (if you had altered something, then save).
"""


import Blender
from Blender import Draw, Text, Library, Object

choice = Draw.PupMenu("Copy object(s) to buffer|Paste object(s) from buffer")
if choice == 1:
	objs = Object.GetSelected()
	if len(objs) == 0:
		Draw.PupMenu("Please select at least 1 object!")
	else:
		txt = open(Blender.Get("datadir") + "/buffer","w")
		txt.write(Blender.Get("filename") +"\n")
		for item in objs: 
			txt.write(item.getName() + "\n")  
		txt.close()       	
elif choice == 2:	
	txt = Text.Load(Blender.Get("datadir") + "/buffer")
	buffer = txt.asLines()	
	Library.Open(buffer[0])
	buffer.pop(0)
	for item in buffer:
		Library.Load(item, "Object", 0)
	Library.Update()
	Library.Close()
	Text.unlink(txt)
	Blender.Redraw()





5. Cool. Now we have a very small chopper in the middle of a much bigger jet fighter. We want to match the scale and position of the fighter with our imported mesh as much as we can. When we press S to start scaling we find the rotation of the chopper flips. (Not sure why this happens.) Immediately click left MB to stop scaling. To fix the rotation 1: press R, then Z, then type 90, then enter, 2: press R, then Y, then type 90, then enter. We have just rotated our chopper mesh 90 degrees around the Z axis and 90 degrees around the Y to get it facing in the correct direction.

6. Now we can get back to matching the scale and position - use Numpad 1,3 and 7 to constantly check the position from all directions. Use S key and drag the mouse to increase the scale - click to confirm. Then use G key - followed by X, Y or Z - then drag to move the position of the mesh along the X,Y or Z axis - click to confirm. Matching the position is slightly trial and error. I just tried to roughly match the proportion and position of the missiles. (With this unit I can be much more flexible as there are no moving parts - with something with limbs like a human unit you need to be very precise, particularly if it is holding weapons.)



7. Right click on the jet mesh. (There are two, a normal one and a 'death' version. You can tell the difference by looking at the Vertex Groups at the bottom the one with the single Vertex Group called Dummy_JetFighterBody is the one you want) Press TAB to go into mesh edit. Press A once or twice until all vertices are deselected. Ctrl drag to lasso select a couple of vertices on the fighter mesh that are no where near the chopper. Press Ctrl-I to invert the selection and then X to delete all the rest of the vertices leaving you with a single line. If the there are any remaining fighter meshes use X key to delete them being careful to leave the fighter bones in place. Tab out of edit mode back to object mode. Now using the same method we used for the wheels, join the chopper mesh to the small line. So RMB on the chopper object, then second shift-RMB on the small line. The order is important. Ctrl-J to join selected. Tab into edit mode on the joined mesh, press A to deselected all, lasso select the little line, X to delete vertices. (This whole step is a workaround to get the new mesh to the correct position in the NIF file structure).



8. Now we have our mesh and our fighter bones, but the two are not related. If we try and export our NIF at this point the script will complain that there are 'unweighted vertices' in our mesh meaning that not all vertices have been assigned to bones. TAB into edit mode, press A until all vertices are selected, make sure the Vertex Group Dummy_JetFighterBody is selected and click Assign. This will assign the whole chopper to the this bone. Nice. (If you screwed up like me and kept the 'death' version of the jet in step 7, then simply create a new Vertex Group called Dummy_JetFighterBody and assign everything to that. Now export your NIF.



9. Next the NifSkope assembly stage. Open two instances of NifSkope, one with the exported chopper NIF and one with the original jetfighter NIF - I used jetfighter_fx.nif. In the chopper NIF find the TriShape/TriStrips for the main chopper mesh - just clicking on it in the viewport should do the trick. RMB click on it in the Block List then -> Block -> Copy Branch (Ctrl-C will do the same in latest NifSkope). Switch to the jet NIF. Under Damage_Plane_Texture find the JetFighter_Body node. RMB click on it then Block -> Paste Branch. Our chopper is pasted in, but rotated 90 degrees (see above) - nevermind - we can fix that.
The final steps to a working NIF:
a) Rename the chopper's mesh to EditableMesh just like the Jet's.
b) Copy/paste the NiAlphaProperty from the Jet's EditableMesh into the chopper's. This will ensure the transparent parts are transparent in game.
c) In BlockDetails for the chopper's EditableMesh set 'Has Shader' to yes, 'Shader Name' to TCiv4SkinningNoTeamColor, and the 'Unknown Integer' beneath it to -1. (People will want to use TCiv4MechShader, gloss layers, glow layers, damage states, all that fancy stuff, but that is covered elsewhere. Let's just get it working first.)
e) (d - has been removed) Fix the rotation of the chopper mesh by setting the R rotation parameter to 90. (You can tell I didn't do these steps in this order)



f) RMB click on the Jet EditableMesh -> Block -> Remove Branch to delete it.
g)Finally, save the NIF and you're ready to try it in game. For a test I simply copied the jetfighter unit folder to my Mod tree. Overwrote jetfighter_fx.nif with my NifSkope merge one and also copied in the DDS file for the chopper. Hey presto, it works!



Some notes:
1) If I was doing this again I would make the chopper mesh much bigger than the jet and match the missile positions more precisely. You can see the sidewinders are sticking out the back a bit.
2) Also, if I was doing this for real I'd want the animations of the jet with the behavior of a gunship. Achieving this is part XML, but I'd also use KonverterFM to replace gunship animation events with jet animations.
3) I haven't covered adding damage states, gloss and glow since I think that is already well covered.
4) Another omission is replacing the death fall jet - the principle is exactly the same - you can assign the same chopper mesh to the death jet bones and then replace the death jet mesh in NifSkope.

Hopefully, this is enough to get people going on conversions. :goodjob:

I have used this same process on human units too. The copy paste script lets you do stuff like use bits of leaderheads for units or merge the top half of one unit with the bottom of another. But that's another tutorial... ;)
 

Attachments

  • finished_chopper.jpg
    finished_chopper.jpg
    83.7 KB · Views: 14,584
Nice, I sure hope someone will rebone them, even though for some (mechs) it might be difficult to find a matching animation.
 
Nice, I sure hope someone will rebone them, even though for some (mechs) it might be difficult to find a matching animation.

Is assault mech anim not good?

Excellent work, I really hope someone will give them anims!!!
 
Note: These units are not game ready. They require boning and animation before they'll work.

But will they work if you disregard the lack of animations??

I noticed some nifs have a large file size. Is file size an indication of polycount? If so, many should be reduced to a third of their current size. Anyone interested in doing so.

For the record, I could use these for Planetfall, in order of importance:

11. XShip
14. Manta (another future ship
12. Leviathan (a future ship)
10. Light Mech
23. Sea Archer
15. Myrmidon Tank (this one gives me purple tracks when viewed in Scene Viewer btw - anyone else having this?)
3. Fusion Caster (more than a little inspired by the Warhammer 40K Rhino)
2. Disruptor (a big gun on a truck).
18. Netfire Launcher
 
I would love it if someone went through the trouble of animating these things. Its above my pay-grade though. Particularly the Mech (#16) I've been looking for something like that for a while now.
 
5, 6 (the helis), 9,10 (two-legged mechs) and 16 (4-legged mech) are my favorites.

The helis probably just need weapon animation as they have little moving parts. The two legged mechs might go with the NextWar mech anim, but for the 4 legged one I wonder if someone is up for the challenge. I sure hope someone is :) Maybe an existing animation can be used though, there is a giant spider around, that certainly had enough legs :D
 
D***, f***, now is my time really gone :mad:.

With the hint from The_Coyote for the one tutorial, i hope, i can try to add...maybe the mobile infantry animations to #3.
I hope, i can figure out, how blender really works, the mechs would be really great.
 
Nice post of Future Units....maybe I'll play with them a bit! Unfortunately, I was making a set of future units from scratch and I'll probably use these for a little inspiration. (Yes, that one vehicle does resemble a WH40K Rhino! The similarity is almost annoying if you've played DOW, but it is easy to see what inspired it.)
 
But will they work if you disregard the lack of animations??

I noticed some nifs have a large file size. Is file size an indication of polycount? If so, many should be reduced to a third of their current size. Anyone interested in doing so.

Polycount is an issue, but there are ways of tackling that. The Optimise with PyFFI script that I linked to can make a huge difference to filesize/polycount . I've been working on the late sailing ships (which is why I started looking at EE2 units) and I manage to half the polycount without any discernable impact. In some cases it may be very hard to get an acceptable polycount without sacrificing a bit of detail.

Although I am OK with blender I know very little about animating. There are guys around who are able to do custom skeletons and animations. I intend to use the second post for a little guide on putting the meshes onto existing skeletons using Blender/NifSkope so that existing animations can be used. I'd rather share the little that I know and have people learn to do things themselves than just plough through the conversions myself. I have plenty to do already. Tomorrow, I'll put together a little guide using one of the Choppers as an example maybe.
 
Looking great, now got to hope a skinner can do a bit of magic with these units. Specifically, I would like the StealthFighterBomber which is an F-117 Nighthawk done in US Naval or Russian Navy Camoflague for carrier operation at stealth. Hell the carrier also looks cool as a post Supercarrier option. So many potential good units there. Just now got to hope someone makes them useable...
 
As promised, I've updated the second post with a (no so) little tutorial on getting these units into the game. I'm hoping this will be enough for people to help themselves. There are plenty of blender tutorials out there to get you started with Blender. It's a great tool for freeware, but it does take a little bit of getting into.

The units with no moving parts are clearly the easiest. I would see the order of difficulty goes like this:

1) Aircraft (generally fewer moving parts)
2) Ships (generally just turrets)
3) Tanks with moving treads and wheeled vehicles (the vanilla units - mech inf, tank, modern armor, panzer - have moving treads - if you can find one that matches the shape of the treads of these tanks then it should be possible to just replace the tank body.)
4) Two legged Mechs.
5) Four legged Mechs.

With any of these it depends on finding a skeleton and animation set that matches the unit. Then you can just use the process I've set out to swap in the new mesh. You don't have to get everything right first time - you can keep refining until you've got a good result. Whenever you get a working unit - keep a backup because it really easy to break it in NifSkope.

Regarding the Myrmidon I think I missed the tread texture there - I'll replace the file at some point to resolve this.
 
A quick Hue/Saturation/Brightness/Contrast reskin and...



Not a million miles away. You could always make adjustments to the model if you wanted. I've realised I missed the wheels off, but it probably looks better without them. This is still very incomplete, so I'll attach the files and see if someone takes up the challenge.
 
As promised, I've updated the second post with a (no so) little tutorial on getting these units into the game. I'm hoping this will be enough for people to help themselves.

Nice :goodjob:.


Just for my planing: How long did it take to do, what you describe in the post?
 
A couple of hours maybe, but I was slowed down by taking screenshots and typing up the tutorial. It might take you a while if you are newish to blender. In the end, there's no substitute for practice and experience.
 
11. XShip
12. Leviathan (a future ship)

should work, but not tested in game, btw made a small mistake with the levi (uses destroyer animation, no new eapon effect so far [would need in game test for rotation]). Also should have damage stats and smoke if damaged ... (to much 'shoulds' if you ask me)

Just for my planing: How long did it take to do, what you describe in the post

for both i needed one a half hours, but i think i was a bit slow. But i depends on the amount of rigging and the wanted base animation. For the beginning i would recommend to start with the plane (no turrets so only one part to rig) to get familar wiht the process

Edi: btw i would recommend to import the model nif in blender and than also the animation base nif in the same blender instance, not sure, but should (again a should :crazyeye:) save a samll amount of time
 

Attachments

  • xi.zip
    53.8 KB · Views: 265
  • levi.zip
    50.5 KB · Views: 273
Top Bottom