XLIVE99 / AutoGrid

Autotile system for gridmap in godot engine
MIT License
55 stars 3 forks source link

Minimal 3x3 autotiling #3

Closed pixelipy closed 3 years ago

pixelipy commented 3 years ago

Hi!! First of all I want to say AMAZING plugin, it's a lifesaver, really!!

I've been trying to create a 2D tileset in a 3D plane for a while, and your plugin seems to be the solution! But unfortunately, the 3x3 minimum autotiling does not seem to work as it does on the tilemap 2D.

autogrid

It seems your 3x3 minimum autotiling will only update a tile if its neighboors are EXACTLY as we bitmask them. if there are any neighboors that are not bitmasked in there, the bitmask wont work properly and wont generate those corners as it should. It also generates the tiles according to the order we put them. In the left of the image above, there are two pieces of the same tile that should look the same, but look different due to the order I put the tiles in the scene. in the left you can see how it works using the 2D tilemap.

Do you know how I can fix it? I tried to make it both with the perfomance mode on and off. I'm also pretty sure I mapped everything right, I checked and re-checked it. Thank you and congratulations for the amazing plugin!

XLIVE99 commented 3 years ago

Actually I coded minimal 3x3 exactly same as Godot engine's source code. Can you show me bitmask of the tiles? Edit: Okay I got the same result in my example project, I will look into it. Thanks for reporting! Edit2: Can you make sure you are painting with "Minimal 3x3" option. In my demo project bridges doesn't have any bitmask but if I paint near them to bridges then autotile works as expected (as in the shown below). Left side of the photo is painted first then bridges painted then right side of the image is painted. That's why right side of the image has autotile while left side of the image doesn't has autotile. autotile_bridge the only bug I occur is if I paint over already painted tile then autotile not works.

pixelipy commented 3 years ago

I tested your DEMO file, and it works as intended! I don't know what I'm doing wrong. I'm pretty sure I'm using 3x3 minimum.

This is how I bitmasked the texture:

autogrid 2

Just in case I'm also sending to you my project https://drive.google.com/drive/folders/1jZzswWp0JR9ALYJcdpmJSmmn32FHpYOL?usp=sharing

it seems that the last tile I put is not updating correctly causing corner issues.

Oh, in the test project you'll also see I made a texture to meshInstance generator script. It gets a tileset texture and some parameters, and generates each tile for you. it generates the tiles with just a click, so you can make a meshlibrary. I hope it helps you in some way.

thank you!

XLIVE99 commented 3 years ago

I might have found the problem. The problem is AutoGrid is always checks on Y axis instead of Z axis (or whatever you choose in autotile axis option). I don't know how I missed that but I will fix it as soon as possible. Thanks for reporting!

pixelipy commented 3 years ago

OH IS THAT SO. I'm glad you figured it out!! I'll be patiently waiting for your fix then. Thank you for responding so quickly!

XLIVE99 commented 3 years ago

I think I fixed the problem. I added new option "Autotile Scan Axis", you need to select it as "Only Z". Here's a small gif: scanAxis I will close this issue if there won't any problem in the next 10 days.

pixelipy commented 3 years ago

It's actually working wonderfully now!! Thank you for your hard work!