Hello,
during the past couple of days, i was banging my head against Blender 2.83 until i got an animated model working correctly ingame. As i couldn't find a complete compilation of this knowledge anywhere, i decided to make my own short guide for this most recent Blender version. To be exact, i was using 2.83.4. My workflow might not be the easiest one, but after i got it working i didn't want to do any more trial-and-error as waiting for the TMTK compilation process gets pretty tedious.
Update (22.10.2022): In case you missed it: I released a Blender Addon which makes the process much easier.
Update (06.09.2020): I now also tested this workflow with Blender 2.90 and this guide still seems to be perfectly applicable. The relevant export options have stayed the same.
Update (07.09.2020): On multiple occasions the .fbx file i exported from Blender 2.90 did not contain the animation as i exported it (rotations or scaling were missing). To spare yourself some trouble, i recommend reimporting the .fbx into Blender directly after exporting and checking if the animation looks exactly as you exported it. If it doesn't, just reloading the project and exporting it again fixed it for me everytime so far.
Update (09.09.2020): There appears to be a discrepancy in the interpretation of the Hitcheck_XX meshes when using custom hitchecks. If you are using custom hitcheck objects and the collision seems incorrect ingame, try rotating your Hitcheck_XX meshes by 180° around the Z axis (pivot point must be world origin as always). This problem can of course only occur if your Hitcheck_XX is not symmetric to the Z axis anyway.
Update (05.12.2021): This workflow still works the same in Blender 3.0
The guide is targeted at an audience with a bit Blender knowledge as well as knowledge about the basic TMTK-Workflow, yet i still tried to include all mandatory steps.
Here are some key properties which will be achieved:
Timestamps are provided on Youtube.
RAW Youtube URL
Since i (ironically) hate when only a video is posted, i'm also giving you the TL;DW here in case you are familiar with earlier Blender versions:
Step 0: Create the model and the animation just like you are used to. For animations, you must use the armature-modifier. If you use the parent-type "armature" or parent-type "Bone" instead, it will most likely not export correctly to .fbx (the armature and the mesh become unlinked).
The following steps assume a unit scale of 1 (meters). If you have no animation, you only need step 2 and 3.
Step 0.5 Optional: If your animation contains translations, you must scale up these animations in the graph editor by a factor of 100 around Y. This fixes the issue described here: https://forums.frontier.co.uk/threads/animation-tmtk-problem.546376/. If you only have rotation-type animations, you can skip this step.
Step 1: Select the armature only, go into edit mode. Then rotate by -90° around the X axis, and scale by a factor of 100. The pivot point for both must the origin (0,0,0). This, together with step 0.5, will of course completely destroy your animation in Blender. Ingame it will show correctly again.
Step 2: Apply all object-transforms (CTRL+A in object mode).
Step 3: Export to fbx using the default-settings (-Z forward, Y up), but activate the "!EXPERIMENTAL! Apply Transform" option (in Blender 2.90, this option is just called "Apply Transform"). This is necessary even if all transforms are already applied and serves to fix this bug: https://forums.frontier.co.uk/threads/lighting-weirdness.497698/
Step 4 Optional: Reimport your fbx file into Blender to see if your animation looks exactly the way you exported it. If it doesn't, reloading your project (including the above transforms) and exporting again should solve the issue.
I also want to thank these creators, whose youtube-tutorials gave me some vital insights: MsRedNebula, LucasUp, Pixelated and Daddy Poe.
If you got any concerns or comments, please let me know.
during the past couple of days, i was banging my head against Blender 2.83 until i got an animated model working correctly ingame. As i couldn't find a complete compilation of this knowledge anywhere, i decided to make my own short guide for this most recent Blender version. To be exact, i was using 2.83.4. My workflow might not be the easiest one, but after i got it working i didn't want to do any more trial-and-error as waiting for the TMTK compilation process gets pretty tedious.
Update (22.10.2022): In case you missed it: I released a Blender Addon which makes the process much easier.
Update (06.09.2020): I now also tested this workflow with Blender 2.90 and this guide still seems to be perfectly applicable. The relevant export options have stayed the same.
Update (07.09.2020): On multiple occasions the .fbx file i exported from Blender 2.90 did not contain the animation as i exported it (rotations or scaling were missing). To spare yourself some trouble, i recommend reimporting the .fbx into Blender directly after exporting and checking if the animation looks exactly as you exported it. If it doesn't, just reloading the project and exporting it again fixed it for me everytime so far.
Update (09.09.2020): There appears to be a discrepancy in the interpretation of the Hitcheck_XX meshes when using custom hitchecks. If you are using custom hitcheck objects and the collision seems incorrect ingame, try rotating your Hitcheck_XX meshes by 180° around the Z axis (pivot point must be world origin as always). This problem can of course only occur if your Hitcheck_XX is not symmetric to the Z axis anyway.
Update (05.12.2021): This workflow still works the same in Blender 3.0
The guide is targeted at an audience with a bit Blender knowledge as well as knowledge about the basic TMTK-Workflow, yet i still tried to include all mandatory steps.
Here are some key properties which will be achieved:
- Lighting ingame is correct
- Rotation ingame is correct (no more manual 90° rotation of animated assets required ingame)
- It works for animations including translations as well (many current guides only do rotations). See this unanswered forum thread for the issue related to this: https://forums.frontier.co.uk/threads/animation-tmtk-problem.546376/
Timestamps are provided on Youtube.
Since i (ironically) hate when only a video is posted, i'm also giving you the TL;DW here in case you are familiar with earlier Blender versions:
Step 0: Create the model and the animation just like you are used to. For animations, you must use the armature-modifier. If you use the parent-type "armature" or parent-type "Bone" instead, it will most likely not export correctly to .fbx (the armature and the mesh become unlinked).
The following steps assume a unit scale of 1 (meters). If you have no animation, you only need step 2 and 3.
Step 0.5 Optional: If your animation contains translations, you must scale up these animations in the graph editor by a factor of 100 around Y. This fixes the issue described here: https://forums.frontier.co.uk/threads/animation-tmtk-problem.546376/. If you only have rotation-type animations, you can skip this step.
Step 1: Select the armature only, go into edit mode. Then rotate by -90° around the X axis, and scale by a factor of 100. The pivot point for both must the origin (0,0,0). This, together with step 0.5, will of course completely destroy your animation in Blender. Ingame it will show correctly again.
Step 2: Apply all object-transforms (CTRL+A in object mode).
Step 3: Export to fbx using the default-settings (-Z forward, Y up), but activate the "!EXPERIMENTAL! Apply Transform" option (in Blender 2.90, this option is just called "Apply Transform"). This is necessary even if all transforms are already applied and serves to fix this bug: https://forums.frontier.co.uk/threads/lighting-weirdness.497698/
Step 4 Optional: Reimport your fbx file into Blender to see if your animation looks exactly the way you exported it. If it doesn't, reloading your project (including the above transforms) and exporting again should solve the issue.
I also want to thank these creators, whose youtube-tutorials gave me some vital insights: MsRedNebula, LucasUp, Pixelated and Daddy Poe.
If you got any concerns or comments, please let me know.
Last edited: