Want a detailed guide.
The new guide is not detailed,there are not many tips.And when uesing,I found the problem that the material name and the object's name are same,but not meshswap.
Hi there, thanks for the feedback. I am actually working on a tutorial series that should help on these more tips and detailed use cases, in the form of short but to the point videos on each feature.
Can you share which previous guide you were referring to? The readme page, or just older video tutorials?
As for the naming: Meshswap names are changed so that they match vanilla Minecraft texture names, instead of the names of jmc2obj and MIneways (which themselves are different). This shouldn't cause an issue when meshswapping if you are using either program, but if you are trying to make your own edits or custom meshswap assets, let me know and I can help give advice. Basically, let me know some more details about what you are having trouble with.
Updated after,when using first,can not meshswap Grass,but renamed the meshswap's "grass" to "Grass",it is OK.But some can't,such as the "Command_Block".And can't meshswap the redstong lamp,by texting,no "()" is OK.The guide is theduckcow.com/dev/blender/mcprep/mcprep-spawner/,"add your own assets" step 4 is not enough detailed.
Great, thank you for providing this feedback. It will take me some time to create the tutorial content and associated docs, so let me try and help best I can here in the meantime:
Meshswap works by looking at collection or object names in the meshswap file that comes with MCprep. My best advice is to directly edit this file (maybe copy and move to another location though, so it is not overwritten on the next MCprep update, which will also update the meshswap file). This file is used for two purposes:
- Meshswap spawner: This is simply a quick way to append collections (blender 2.8) or groups (blender 2.7) from the meshswap file into your active scene. It does not import individual objects that are not part of a collection. The primary use case is to custom add blocks like animated enchanting tables or light emitting torches in a scene you are building out. This is found under the "spawner" tab of MCprep
- Meshswapping: This is an operator under the world import panel, and is used to run through an imported Minecraft world (from jmc2obj or Mineways) and replace blocks generated by these programs with assets from the meshswap file. This will replace either objects or collections found in the meshswap file, if a match is found. The way MCprep knows whether a "block" in the imported world is eligible for meshswapping, is based on the name of the material in the world import. This material name (chopping off any .001's) is used to see if there is a direct Collection name or if not, an object name matching in the Meshswap file. Note that because jmc2obj, Mineways, and Minecraft itself have different naming conventions for materials, MCprep uses this file to do a "lookup" to test for a matching material.
Additional steps explaining how Meshswap knows what to import/swap:
- Press "meshswap" with a lillypad blender object selected, imported from a jmc2obj world
- MCprep sees that jmc2obj named the material as "lilypad", and looks at this file to see it translates to the canonical Minecraft name "lily_pad" via this file (notice the underscore, I will refer to this as the "canonical" name).
- Then, MCprep checks to If the original object's material name (note: not the canonical name) matches either a collection (preferred) or object (fallback) by the same name in the meshswap file. In this case, there is not object or collection named "lillypad" so continue to the next step.
- If step 3 fails, then MCprep then uses the canonical name to looks up if there is a collection named "lily_pad" in the meshswap file (there is not)
- If step 4 fails, MCprep tries to use the canonical name to see if there is an object named "lily_pad" in the meshswap file (there is!)
- If meshswap found matching collection or object to import from steps 3, 4, or 5, It then imports this collection/object, and then goes around placing an instance of it in every block location found in the originally selected objects.
The code where this mapping check is done is mostly here, if that is helpful.
If you are trying to edit the meshswap file, please let me know if it is for purpose 1) or 2) above, as that will help tailor further help. I will also call out that grass is tricky, because Mineways, jmc2obj, and Minecraft itself use that word to mean different things (tall grass? double tall grass? or the grass that is just the top texture for dirt blocks?), so in that example do let me know which you mean - screenshots could help.
Finally, if you are trying to use the recently updated MCprep, try fully removing the addon, then closing blender, and opening blender and installing it again fresh. If you simply install over the existing adodn, you won't get important updates to the meshswap file.
"Command_Bloack" also is not OK,but if rename the material and the meshswap's Command_Block,no "_" is OK.And meshswap "Furnace" or "Burning_Furnace" is not ture,if meshswap "Burning_Furnace",it will place "Burning_Furnace",if meshswap "Burning_Furnace",it will "Furnace".
Can you share what you used to export your world to an obj? Was it mineways or jmc2obj? If Mineways, do you have all textures all in one single image, or a separate image for every material? This will help me troubleshoot the name clashing issues.
Mineways.There are all files. test.zip