TMTK Tools: A Blender Addon for TMTK Creators

I was going to make some static mesh templet walls with holes poked in them for the mesh importer. Ones like the gram cracker walls in game, and the ones similar to the ones in planet zoo but then thought. Those should be more customizable scents it just a boolen. At any rate its all good no worries.

Oh 1 thing I discovered, mostly with the static mesh set ups. Any object with a offset origin which is every wall for planco. The hit check is rotated 180 degrees on the Z axis. can you add a check box on your exporter that will rotate the highcheck_01-5 before export and maybe add it to the hints. Its only an issue when the object has a Origin that isn't centered at 0,0,0. Which I forget about all the time, Im sure there is others that forget about this fact as well.
 
Last edited:
Hello,

I know with TMTK existing for 4 years now I am very late to the party, but I still figured some of you folks might find this useful. Every since creating My Blender 2.8 Guide in 2020 I thought there must be a better way of doing this, but while I was aware of Blender's programming API and myself being able to program, I never really cared really looking into it. The last few days however I was sitting at home sick and receiving yet another request at looking at someone's .blend file to see what's wrong with the animation (which I still gladly do btw), I returned to my original thought of automating some of the annoying stuff away.

What I ended up with is a small Blender addon which I creatively named TMTK Tools. You can grab it at https://tmtk.gohax.eu/tmtktools or on Github. What it boils down to is that you can use any Blender version 2.8 or newer (I tested it with every major Version up to 3.3.1) and not worry about TMTKs peculiarities when it comes to preparing the object or animation for export to TMTK.

It currently has the following features:
  • FBX export for TMTK: Sets all the correct parameters for the FBX export and optionally also takes care of eventually necessary adjustments so animations are exported correctly as well. No need to tinker with any Blender Project- or Export-Settings anymore.
  • TMTK animation fix: While built-in to the FBX exporter, this is also available as separate function in case you want to use the default FBX export.
  • LOD creation: Creating LODs is not generally hard, but creating the copies just gets repetitive. This function creates the LOD copies for you, optionally adding pre-configured decimate modifiers as well.
  • Bone Weight Normalization: This is a more precise version of Blender's built-in Normalize All feature for vertex group weights. This sometimes fixes TMTK's ugcArtifactNotFound error for animated items.
  • TMTK Hints: Targeted mainly at new TMTK creators, this function gives basic hints about the currently active object, such as informing about the the presence of LODs, looking for unapplied object mode transformations and checking the object's dimensions for TMTK compliance.
I also created a roughly 5 minute video where I demo the addon by creating a simple animation:

If you have any feedback or suggestions, please do not hesitate to comment this thread or the video linked above. Please do keep in mind that I as a single person can not thoroughly test it in all situations, so I'd recommend keeping a copy of your .blend file around when starting to use the addon so you don't lose your work in case it misbehaves.

If you are using the addon, make sure to check the website for updates once in a while.
Gohax...first, thank you for all that you've done for Planet Coaster users. I'm new to this and your videos and explanations have been invaluable. I installed Blender 2.80 and your TMTK Tools Addon. I wanted to create a block of 3D text for a sign but the TMTK Tools Addon doesn't seems to work with text. The only option that shows up is "Export as FBX". I tried the "monkey head" experiment and all the options show up in your addon with that object...just not with text. Am I doing something wrong, or am I correct that it doesn't work with a text object?
 
Gohax...first, thank you for all that you've done for Planet Coaster users. I'm new to this and your videos and explanations have been invaluable. I installed Blender 2.80 and your TMTK Tools Addon. I wanted to create a block of 3D text for a sign but the TMTK Tools Addon doesn't seems to work with text. The only option that shows up is "Export as FBX". I tried the "monkey head" experiment and all the options show up in your addon with that object...just not with text. Am I doing something wrong, or am I correct that it doesn't work with a text object?
Thank you for your feedback! Always glad when it proves helpful.

Working with text/curve objects is not something I considered when creating the addon to be honest. I quickly created an experimental version where I add support for text objects for most of the features. This is very much untested, but at first glance it seems to work. If you wanna try the experimental version, just install the addon from the link and restart Blender (otherwise the changes won't take effect).

The other workaround is converting the text to a mesh:
  1. Create the text object, edit the text to your liking.
  2. (Optional) Make a copy of the text object as a backup (e.g. by using Shift+D in object mode)
  3. Convert the text object to a mesh. You can do this by rightclicking the text in object mode and choose "Convert To --> Mesh". The same option can be found in the menu "Object --> Convert". After this step, you won't be able to edit the object as text anymore.This is why I recommend step 2 so you do not have to restart from scratch if you want to change the text.
  4. Your text is now a normal mesh, just like the monkeyhead. Proceed as usual (create LODs etc.). When exporting, make sure to not accidentally export the backup object from step 2 as well.
You will probably have to do the conversion anyway as it is recommend to apply transformations before exporting, which Blender does not support for Text objects (only scale). I have no experience with this though, maybe it will be fine either way.
 
Last edited:
Thank you for your feedback! Always glad when it proves helpful.

Working with text/curve objects is not something I considered when creating the addon to be honest. I quickly created an experimental version where I add support for text objects for most of the features. This is very much untested, but at first glance it seems to work. If you wanna try the experimental version, just install the addon from the link and restart Blender (otherwise the changes won't take effect).

The other workaround is converting the text to a mesh:
  1. Create the text object, edit the text to your liking.
  2. (Optional) Make a copy of the text object as a backup (e.g. by using Shift+D in object mode)
  3. Convert the text object to a mesh. You can do this by rightclicking the text in object mode and choose "Convert To --> Mesh". The same option can be found in the menu "Object --> Convert". After this step, you won't be able to edit the object as text anymore.This is why I recommend step 2 so you do not have to restart from scratch if you want to change the text.
  4. Your text is now a normal mesh, just like the monkeyhead. Proceed as usual (create LODs etc.). When exporting, make sure to not accidentally export the backup object from step 2 as well.
You will probably have to do the conversion anyway as it is recommend to apply transformations before exporting, which Blender does not support for Text objects (only scale). I have no experience with this though, maybe it will be fine either way.
Wow! Thank you so much for the explanation and the opportunity to try the "experimental version". I'm going to install it tonight and check it out!

So, to your knowledge I 'should' be able to bring in a text object without having to convert to a mesh? I tried converting it to a mesh last night and it introduced a whole host of new problems. So, if I could just keep it as a text object that would be my preference.

I'm hoping you can help with one other issue...no matter how many videos I watch and no matter how many articles I read, I can't find any concrete answers on how to export the materials. Everybody shows it in it's finished export, but not how to do it. What sayest thou?
 
These questions are somewhat offtopic. I will do my best to answer them here, but should you have further questions I recommend you open a separate topic for these.
So, to your knowledge I 'should' be able to bring in a text object without having to convert to a mesh? I tried converting it to a mesh last night and it introduced a whole host of new problems. So, if I could just keep it as a text object that would be my preference.
"Text objects" do not exist outside of Blender. When Blender exports a text or curve object to FBX (or almost any other format), it will internally convert the text to a mesh before exporting. You can easily confirm this by exporting to FBX and then importing from the FBX. The thing contained in an FBX is always a mesh, that is a number of vertices (dots in 3D space) with the corresponding triangles spanned by them (the surfaces of the object). However, I'd be interested what this host of new problems could be that you speak of. Despite losing the text-specific controls, the object should behave similarly.
I'm hoping you can help with one other issue...no matter how many videos I watch and no matter how many articles I read, I can't find any concrete answers on how to export the materials. Everybody shows it in it's finished export, but not how to do it. What sayest thou?
Materials also do not really exist inside the FBX in the same sense as in Blender. What is contained in the FBX is the material name associated with each triangle (see previous paragraph) as well as the UV coordinates, which determine how each 3D triangle is mapped to the 2D texture space (the texture being a PNG image). In Blender, the process of creating these UV coordinates is called "UV-Unwrapping", which is accessible with the U key in Edit mode as well as the "UV Editing" workspace at the top. The names for your texture files are suggested by the addon's hints:

1702460221460.png


For creating these texture PNGs, there is no universal solution. I can only give you these hints:
  • For testing purposes, you could create a solid-colored _BC.png with a color of your choice.
  • TMTK uses the term "Material" too. A material in TMTK is composed from one or multiple PNG files (the textures), each serving a different purpose. If you want to see the effects of them in action, I can recommend Ms.RedNebula's Tutorial (the videos with "Material" in their name). Especially the first part of this tutorial gives you same valuable basics.
  • If you have a Blender Node Material setup, you can save it to PNG files with a feature called "Baking". This is unfortunately notoriously user-unfriendly in Blender, but it is possible. Basically, baking renders the object to an image file (based on the UV coordinates) instead of rendering it into the 3D scene.
  • Instead of baking can also create the texture PNGs completely in an image editor of your choice.
  • Text/Curve objects do not allow for UV unwrapping. If you want to do anything more complicated than a single color, you will probably have to convert the text object to a mesh and perform the UV unwrapping. When directly exporting a text object to FBX, Blender's autogenerated UVs will map each letter to the size of the whole texture, making it impossible to e.g. give each letter a different color.
If you are really stuck, you can always add me on Steam. However, I think our online-times are rather disjoint.
 
Last edited:
These questions are somewhat offtopic. I will do my best to answer them here, but should you have further questions I recommend you open a separate topic for these.

"Text objects" do not exist outside of Blender. When Blender exports a text or curve object to FBX (or almost any other format), it will internally convert the text to a mesh before exporting. You can easily confirm this by exporting to FBX and then importing from the FBX. The thing contained in an FBX is always a mesh, that is a number of vertices (dots in 3D space) with the corresponding triangles spanned by them (the surfaces of the object). However, I'd be interested what this host of new problems could be that you speak of. Despite losing the text-specific controls, the object should behave similarly.

Materials also do not really exist inside the FBX in the same sense as in Blender. What is contained in the FBX is the material name associated with each triangle (see previous paragraph) as well as the UV coordinates, which determine how each 3D triangle is mapped to the 2D texture space (the texture being a PNG image). In Blender, the process of creating these UV coordinates is called "UV-Unwrapping", which is accessible with the U key in Edit mode as well as the "UV Editing" workspace at the top. The names for your texture files are suggested by the addon's hints:

View attachment 377950

For creating these texture PNGs, there is no universal solution. I can only give you these hints:
  • For testing purposes, you could create a solid-colored _BC.png with a color of your choice.
  • TMTK uses the term "Material" too. A material in TMTK is composed from one or multiple PNG files (the textures), each serving a different purpose. If you want to see the effects of them in action, I can recommend Ms.RedNebula's Tutorial (the videos with "Material" in their name). Especially the first part of this tutorial gives you same valuable basics.
  • If you have a Blender Node Material setup, you can save it to PNG files with a feature called "Baking". This is unfortunately notoriously user-unfriendly in Blender, but it is possible. Basically, baking renders the object to an image file (based on the UV coordinates) instead of rendering it into the 3D scene.
  • Instead of baking can also create the texture PNGs completely in an image editor of your choice.
  • Text/Curve objects do not allow for UV unwrapping. If you want to do anything more complicated than a single color, you will probably have to convert the text object to a mesh and perform the UV unwrapping. When directly exporting a text object to FBX, Blender's autogenerated UVs will map each letter to the size of the whole texture, making it impossible to e.g. give each letter a different color.
If you are really stuck, you can always add me on Steam. However, I think our online-times are rather disjoint.
I'm truly sorry if I broke any rules asking those questions. As I said, I'm new to this, but I will be more careful in the future. I did send you a 'friend' request through Steam, if that makes this any easier. I appreciate your tips in dealing with the 'Materials'. All I've seen are people showing the .png files in their folder they're going to zip and upload to Frontier, but I can never find how they got to those .png file. I'm used to working in Cinema 4D, LightWave, Bryce, Poser, etc.. Blender seems to be a very unwieldy program to work in. Anyway, I feel as though I'm 'going off topic again'. I'll play around with things a bit more and if I just can't get it I may plague you with some more questions on Steam. Oh, to answer your question about my 'host of new problems'...once I converted the text object to a mesh (it's just the words "Legend City") I got a warning from your addon that told me I had exceeded the 8,000 triangle limit and it was 17,760. I tried a variety of the methods for reducing the count, but every one just made the mesh of my text look warped and strange. Thank you again for all your help!
 
You did not brake any rules per se, but as your remaining question do not pertain the addon, I'd rather not clutter this topic with their discussion any longer.

Regarding the triangle limit though: The updated addon I linked earlier should also report the same number of triangles for your text object before and after conversion. This means that by not converting the object, you do not avoid this problem, you just make it a problem for the future (i.e. inside the FBX; because as I said, the conversion to mesh then happens at export time). But I will contact you on Steam with more info.
 
After playing around with it a bit, I added the support for text/curve objects to the main version of the addon. The update also introduces some compatibility fixes for older (2.8 - 2.9) and very new (4.x) Blender versions.
 
After playing around with it a bit, I added the support for text/curve objects to the main version of the addon. The update also introduces some compatibility fixes for older (2.8 - 2.9) and very new (4.x) Blender versions.
To say that you've gone above and beyond is an understatement. I'm off to download and give it a spin. Thank you for doing this!!!
 
Top Bottom