Open Poikilos opened 2 years ago
Ok i will upload them in the next days
If you want to try to fix them, they and all my other models can be found here: https://github.com/Skandarella/b3dfiles
I have uploaded the .blend files in a seperate folder. The models where created in block bench, also the textures. The animations where made in blender, but the "wrong" way i do it. I am not able to create vertex groups and often tried it, but i am not smart enough to lear it :/ I watched many learning videos, but often the menus are not the same in the blender versions and i find it very confusing. Doing textures with blender is a horror for me too, i dont understand it, too complicated. I hope that minetest will support minecraft models in the near future, it is very easy to create models and textures with minecraft editors like blockbench, but a horror with blender.
There is no separate folder in the b3dfiles repo nor in the new b3dfiles branch of this animalworld repo. If I pull the repository or switch to the remote b3dfiles branch, there is no ".blend" file of any model, only b3d files which are the ones I can't edit. In fact, the b3dfiles branch of animalworld is identical to the main branch other than the git directory since it describes the branch:
The b3dfiles repo is also unchanged, and contains no ".blend" files.
Are you sure you uploaded ".blend" files? Where?
I fixed it in my fork :-) I just added 20 textures for each... seems to work with 5.4.1
-BobOmbuzal (on https://github.com/Skandarella/b3dfiles/issues/1)
@BobOmbuzal: You have to have 30 for trex, so probably there are other model files with more than 20 meshes.
Just the monkey and fox and seahorse should use random textures i guess, but i don't know how... https://github.com/BobOmbuzal/animalworld
-BobOmbuzal (on https://github.com/Skandarella/b3dfiles/issues/1)
@BobOmbuzal:
local variant_textures = {"textureseahorse.png", "textureseahorse2.png"}
local multimesh_textures = {}
local multimesh_variants = {}
local texture_filename = nil
for variant_i = 1,#variant_textures,1
do
multimesh_variants[variant_i] = {}
multimesh_textures = multimesh_variants[variant_i]
texture_filename = variant_textures[variant_i]
for multimesh_texture_i = 1,dup_texture_count,1
do
multimesh_textures[multimesh_texture_i] = texture_filename
end
end
-- If there are no variants, just remove the lines with the word "variants"
-- and change `texture_filename = variant_textures[variant_i]` to texture_filename = some filename.
Then in the mob def do:
textures = multimesh_variants,
-- or for non-random textures: textures = multimesh_textures,
Hi, thanks for fixing it ! :) I will need some time to integrate the new models etc.
Ah i see that it works now all like it should even if shaders are deactivated. So i can upload an update with the fixed models right?
Following mobs are still bugged in texture: Spider, Crab, Losbter, Notoptera, Scorpion, Spider Male,
I also dont understand why random textures dont work now anymore. And what is a nested table and what should i do to build one?
When i am changing the texture names like:
textures = {
"texturemonkey2.png", "texturemonkey2.png", "texturemonkey2.png", "texturemonkey2.png", "texturemonkey2.png",
"texturemonkey.png", "texturemonkey.png", "texturemonkey.png", "texturemonkey.png", "texturemonkey.png",
"texturemonkey.png", "texturemonkey.png", "texturemonkey.png", "texturemonkey.png", "texturemonkey.png",
"texturemonkey.png", "texturemonkey.png", "texturemonkey.png", "texturemonkey.png", "texturemonkey.png"
},
they only appear with mixed textured limbs and body parts. How to fix that?
I'm almost done a patch with a function I created for this. Variant (random) textures work. The problem with the code you show above is that it isn't nested. My function will create a table like:
textures = {
{"texturemonkey.png", "texturemonkey.png", "texturemonkey.png", "texturemonkey.png", "texturemonkey.png",}
{"texturemonkey2.png", "texturemonkey2.png", "texturemonkey2.png", "texturemonkey2.png", "texturemonkey2.png"}
},
and so on for any number of variants (listed in rows) and number of meshes in the model (listed in columns). The function will be much nicer that expanding the example code above to 20x for each row.
Note that https://github.com/Skandarella/animalworld/pull/7 will only fix it for mobs that spawn after the fix (See screenshot), because the world saves the texture. In other words, you must kill off mobs with the glitch to fully solve the issue in an existing world. All mobs that are spawned after the update will be textured correctly on basically any version of Minetest. .
Great work, @poikilos i just tested #7 and it worked! I was looking for a .b3d object counter too, didn't find one so i just tried it with 20 :-) Good to know that random textures are done with tables-in-tables, i couldn't find any info about this.
Note1: If you want to fix older mobs /giveme mobs:mob_reset_stick
and hit them with the stick
Note2: Since #7 is just needed for 5.4 we won't need it in Skandarella:main
maybe a new branch for it would be a good idea? Or a note/link to compatible-texture-tables
Great work, @poikilos i just tested #7 and it worked! I was looking for a .b3d object counter too, didn't find one so i just tried it with 20 :-) Good to know that random textures are done with tables-in-tables, i couldn't find any info about this.
Note1: If you want to fix older mobs
/giveme mobs:mob_reset_stick
and hit them with the stick
WOW! I didn't know about mob_reset_stick, thanks.
Note2: Since #7 is just needed for 5.4 we won't need it in
Skandarella:main
maybe a new branch for it would be a good idea? Or a note/link to compatible-texture-tables
Uhh, I know the direction you are suggesting is "common," let's say, in Minetest, but the idea of taking a stick (a metaphorical one, not the mobs one :) ) to people for not upgrading is not something I'm fond of at all. There is no harm in keeping mods compatible, and I forked several to make them compatible: animalmaterials, farming_redo, birthstones, plantlife_modpack, and others. In many cases, just run my compatiblizemod.py, lol. With core devs suggesting to fork minetest_game, well, I think we have to think for ourselves what will make Minetest maintainable.
The b3d files use a separate model for each object. If you join them and use bones for vertex groups instead of separate models, the problem will be solved, probably. I've seen this issue in Minetest before and fixed it.