https://file.garden/ZlrJr4gXzRtJW4yO/magic/duck.mp4
Major thanks to Mr. Doon who wrote the meshcache importer! I mainly just wrote this post...
For basics: Mineimator does support meshes, but they're not supported in the way you'd want to use them.
The way that custom meshes got achieved in Mineimator is very hacky and kind of clunky, but it does work.
Mineimator does not have a way to directly import meshes in-program, you'll have to go through a bunch of steps first.
We shall also note that Mineimator does not support meshes with bones. No mesh skinning, no whatever.
All imported meshes are just gonna be as still as a prop...
Finally, please note this converter was an afternoon project and has problems. This program does not import normals properly, so shading will be rather off and may not look right. I have included the source code if you want to try and fix it...
First download the converter, which I have included as a file right here. Place it in whatever place.
Along with the converter is the source code, written in C.
Converter: https://file.garden/ZlrJr4gXzRtJW4yO/magic/converter.exe
Source code: https://file.garden/ZlrJr4gXzRtJW4yO/magic/converter.c
Note: Windows may flag converter.exe as malware which is a false positive. I don't really know how to solve this though sorry... If you find yourself sufficiently scared by the false positive anyways you can skip to step 4 and try and compile it yourself using the C source code I also linked here.
(edit: it was written in C, not C++)
1: Meshcache Files
Mineimator 2.0.'s terrain is stored in ".meshcache" files, which are 3D models of the terrain that has been imported.
It is important to note here that these are not collections of blocks, but actual 3D models of the terrain.
I made a whole thread about this here:
so I won't go too in depth about it here.
2: Manipulating Meshcaches
To import a mesh, we will first have to get ready first.
Firstly, you import an schematic with no moving parts (no doors, no levers, no buttons) and put it into the program, which will cause Mineimator to generate a meshcache from that schematic. Luckily, Mineimator already has a couple of these. To prevent Mineimator from randomly re-importing the original meshcache over the custom meshcache, I suggest using only the terrain pre-packaged with Mineimator, as terrain imported from other worlds will be linked to that world and Mineimator will re-import that meshcache if it detects changes in that world. With Mineimator's default terrain props, there is no world and your meshcaches can remain untampered with. Let's use the lamp post schematic file.
3: Making a Model and Importing it
For this next part we have to get a mesh in blender, specifically Blender 4.0. Firstly, the mesh's texture has to be a single texture, and as I mentioned before, the mesh will pretty much just be completely stationary. If you want multiple moving parts or multiple textures, you're going to have to import additional meshes!
Since I don't feel like modeling, let's just grab a model off of https://www.models-resource.com/. This is a tutorial anyways...
The model I'll use for this demonstration is this model. https://www.models-resource.com/playstation_2/crashbandicootwrathofcortex/model/20863/
As we import the mesh into Blender, make sure to triangulate it first! And apply the modifier! That will be important.
Next, we SPECIFICALLY export the model as Stanford PLY .ply.
Next part, make sure that you have the settings on the right! You can uncheck Selected Only if the mesh is the only thing in the scene... Don't use Blender's Triangulated Mesh feature for exporting PLY files, half the time it doesn't seem to work right, for whatever reason.
Next, refer to the following image:
Next part:
Next, we delete the schematic file for the lamp post in our mineimator project directory as well as the meshcache file. But now, you drag the meshcache file you just made into your project directory and rename it to have the same file name as the lamp post's meshcache file.
Now we get into Mineimator, and although it may still look like a lamp post that is because it's not immediate! Re-open the project file and the lamp post will become Crash's head! Kind of. We still need to get the texture in:
Since this is still scenery we use the mineimator scenery texture. This is why I said it must be a single texture earlier.
We take that scenery texture and slap it onto that scenery and now we have a mesh in mineimator I guess! Since the converter doesn't import normals properly because of a bug with it (they DO get imported, they're kinda just weird) the shading is a bit off but it is indeed a mesh in mineimator!
Here's the mineimator project in this tutorial: https://file.garden/ZlrJr4gXzRtJW4yO/magic/project.7z
Also, you cannot export the terrain/mesh thing as .miobject unfortunately as Mineimator won't include the meshcache in the miobject no matter how you select it or try to export it. So if you're trying to share meshes through this, you're pretty much forced to share it through sharing the project itself and you can't use .miobjects for this. Remember - this is pretty hacky!
4: Compiling the thing
If you're wondering how to compile this program you need GCC, it's written in C. The method I used to compile it was following the MinGW tutorial here: https://www.wikihow.com/Compile-a-C-Program-Using-the-GNU-Compiler-(GCC) and using the GCC 14.10 build for Win32 here: https://winlibs.com/