The purpose of this thread is :
- to describe the organisation of the animation system in ETW ;
- to explain how to modify .anim files ;
The purpose of this thread is :
- to describe the organisation of the animation system in ETW ;
- to explain how to modify .anim files ;
Last edited by lolIsuck; October 28, 2015 at 03:06 PM. Reason: Removed [Tutorial] from title and added prefix.
[RESERVED] ANIMATION CONVERSION PROCESS
Right now, if converting to and from .ms3d work fine, I still have issues when converting from .fbx and .dae file formats.
Something goes wrong and model as well as animation are corrupted.
PROCESS :
- step 1 : importing animation in an ETW model
- step 2 : saving model with animation embedded as .fbx (2012)
Now, opening the .fbx model, we can see that something goes wrong during conversion :
- T-pose disappeared
- Skeleton has been modified : new bones appeared (name as mesh group), new main bone (UU3DRoot)
Result is the same using other options in Save Autodesk FBX 2012 Model window :
That's what the Transform vertices to rest pose option is for. Saving to another format like FBX,DAE may transform your model's vertices to something other than the original T-pose. Check this option to transform them back to T-pose.
And saving to another format like FBX,DAE may add new bones. These new bones must be removed before exporting to ETW. But, it is easy to remove them. Just drag and drop everything below UU3DRoot up one level and delete UU3DRoot.
Of course it is easy to remove extra joints created during conversion.
But I didn't understand why the converter create them.
I've also use this option but the result was strange.
I will post a more complete and detailed post about tests and results.
The FBX,DAE exporter may add a new bone on export to ensure that the root bone is always identity. Some game engines may use the root bone transform for special purposes, like using the translation part for walk animations. Perhaps it should be an option, but that is the default behavior at the moment.
And you should not get strange results if you follow the basic guidelines before export (e.g. all vertices should be assigned, don't add or delete bones, etc...).
Adding a root bone serves two purposes:
1. It insures the root transform is always identity. Root translation and rotation will be zero.
2. It insures that there is only one root. Having multiple roots may cause problems with some game engines. They might treat it as having multiple skeletons.
btw, do I have to have a certain number of posts before I can edit my posts? I cannot edit my posts. It would be easier for me to edit them, rather than add a new one.
BTW, you should also pay attention to the handedness of the model, just in case if it was flipped coming from MS3D or elsewhere.
One way to determine handedness is to take note which way the model is pointing, in either the Z+ or Z- direction. The UU3D exporter expects your model to point in the Z+ direction. Which is exactly how it appears when an original ETW model is loaded.
And your mesh should be perfectly aligned with your skeleton too, when facing this Z+ direction.
Yes, I always avoid to mix model converted using KE converter and UU3D.
In the example below I used :
- east_guard_cavalry_ahadis_lod1.variant_weighted_mesh model from vanilla ETW
- c_axe_charge_attack.anim animation from vanilla ETW
STEP 1 : opening the east_guard_cavalry_ahadis and importing c_axe_charge_attack animation using UU3D
STEP 2 : saving model and animation as .fbx file
First issue : if animation play, it seems that skin modifier is gone...
After starting over the same processus, I can animate model :
So, it was probably a bug.
STEP 3 : removing extra bones up to create a "clean" model
STEP 4 : saving the "clean" model as .variant_weighted_mesh and exporting .anim
The new .variant_weighted_mesh model look "bug free" after testing it with the c_axe_charge_attack anim from vanilla ETW
Then, testing the exported animation (TEST_c_axe_charge_attack), something goes wrong :
It look like skeleton was flipped
EDIT : I've tried to flip scene, but with no results
- Test 1 : .variant_weighted mesh > flip scene > convert to .fbx > .fbx > cleaning model > convert to .variant_weighted_mesh : animation corrupted
- Test 2 : .variant_weighted mesh > convert to .fbx > .fbx > cleaning model > flip scene > convert to .variant_weighted_mesh : animation corrupted
- Test 3 : .variant_weighted mesh > flip scene > convert to .fbx > .fbx > cleaning model > flip scene > convert to .variant_weighted_mesh : animation corrupted
Thanks for the feedback. Try out the new ETW plugin. It should be fixed now.
Try this:
1. Import original ETW model with original animation.
2. Export to FBX.
3. Import back into UU3D.
4. Delete any added bones. Bone count should be 41.
5. Export to ETW. Check both export options.
6. Import new ETW model with new ETW animation back into UU3D.
7. Animation should play as expected.
BTW, there's no need to flip the scene. That's only necessary if the ETW model was exported from MS3D.
BTW, when exporting a new ETW model with a new animation, it's best to write it to an empty folder. If you try to write it to the same directory, it may overwrite your old animation, as it has the same filename.
Tested and approved
Now animation export work fine.
Thank you very very much, being able to use 3ds Max to work on animation open new possibilities.
OP updated.
I will test with .dae file format and then ask to move the thread to Tools, Tutorials and Resources subforum.
EDIT : work fine with .dae too.
Yes, it works!
Very nice tutorial, thank you. I was saving some money to buy UU3D and I finally did it! One thing that I wanted to ask you: about the "special" parameter used in the fragments. We see the musket_ramrod for example, which is defined inside the equipment model, in NTW is variant_part_mesh (mesh, mesh2). Is it defined somewhere else? or is this "special" item used during animations just defined inside the fragment file? Because I tried with other items from the equipment mesh file, but it doesnt work.
It always pops up an error message like this:
I'm not sure to understand the problem.
When looking at "musket_fragment", we can read a reference to "musket_ramrod"
Equipment is "rigid_equip_gen_musket_ramrod01"Code:RELOAD_1 filename = "Animations/MEN/MUSKET/MUS_POISED/MUS_Reload_01.anim", special = musket_ramrod RELOAD_2 filename = "Animations/MEN/MUSKET/MUS_POISED/MUS_Reload_02.anim", special = musket_ramrod
But "musket_ramrod" is defined in "warscape_equipment_items" db tables as "equipment_key".
It is the same with "grenade"
Code:GRENADIER filename = "Animations/MEN/MUSKET/MUS_GRENADIER/MUS_GRENADIER.anim", blend_in_time = 0.1 special = grenade
but not for all "special" option we can find other fragments :
special : arrow_man / cannon_ramrod / cannon_ball / grenade / musket_ramrod / rocketCode:CHARGE filename = "Animations/MEN/SABRE/SAB_CHARGE/SAB_Charge.anim", blend_in_time = 0.5, primary_weapon = on, personal = off RIDER_ATTACK_1 filename = "Animations/MEN/HORSE_RIDER/C_LAN/C_LAN_LG_Thrust_Level.anim", blend_in_time = 0.25 equipment_usage = lance SMASH_WINDOW filename = "Animations/MEN/MUSKET/MUS_UNIQUE_ACTIONS/MUS_Window_Butt_Bash.anim", equipment_usage = rifle_butt ATTACK_1 filename = "Animations/MEN/SABRE/SAB_MG_STAB_KILLS/SAB_MG_STAB_KILL_01.anim", primary_weapon = off, secondary_weapon = on equipment_usage = sword ATTACK_1 filename = "Animations/MEN/MUSKET/MUS_HG_KILLS/MUS-HG_KILL_HIGH_01.anim", equipment_usage = rifle_bayonet ATTACK_1 filename = "Animations/MEN/AXE/AXE_Outside_Guard/Axe_OGuard_Cut_1.anim", equipment_usage = axe DEPLOY_WOODEN_STAKES filename = "Animations/MEN/SABRE/SAB_UNIQUE_ACTIONS/SAB_STAKE_PLANT.anim", blend_in_time = 0.25 primary_weapon = on, secondary_weapon = off, defensive = off, ambient = on, personal = off, special = wooden_stake STAND_FOR_STOKE_TO_STOKE filename = "Animations/MEN/ARTILLERY/ART_GUNNER/ART_RStand_to_Stoke.anim", special = cannon_ramrod LOAD_CANNON filename = "Animations/MEN/ARTILLERY/ART_GUNNER/ART_Load_Cannon.anim", special = cannon_ball LOAD_ROCKET filename = "Animations/MEN/ARTILLERY/ART_ROCKET/ART_Load_Rocket.anim", special = rocket WALK_1 filename = "Animations/MEN/ARCHER/ARC_WALK/ARC_walk.anim", special = arrow_man
equipment_usage : axe / lance / rifle_bayonet / rifle_butt / sword
So, special look like being warscape_equipment_items, but arrow_man isn't.
So, I'm unsure to know how and where CA defined these data
The problem is that I tried some entries from the equipment tables, as you say, and none worked except the ones you mentioned. With musket_ramrod no problem, with my custom model, properly defined, the game wont recognize it. Same with, for example, euro_knife as I stated above, which has been defined by CA. So... hardcoded maybe? I sure hope not, but it looks that way and it sucks.
I need help and advice. I created a new standard bearer for FOTS and animated it in 3DSMax 2010 (with cloth and wind force). I already know how to implement an equipment in game (with BOB). But how can I implement that new animation in game?. Is there any possibility to do it with assembly kit (if yes, how? if no, how?)? Can you explain what the steps are. I will really appreciate it?
I created a new model standard bearer from scratch + new animation (wind), I didn't use any FOTS animation.
Greets,
izzi