Trouble drawing slope / curve collision shapes in tileset

Godot 4.4

Hello, I am currently working on a 2d platformer with hand-drawn graphics. Each tile is about 120x120 pixels in size, and because of this, i am having trouble figuring out how im going to make the collision shape for slope tiles.
To elaborate, my game is going to have lots of sloped terrain, loop-dee-loops, ect. I plan on making a tileset of slope shapes to just work out the collision, and then giving that tileset a texture afterward. The issue is, making tiles with collision shapes as precise as i need them is a herculean task at high resolutions like this.
For instance, say i wanted to have a tileset with all of these slope shapes:


I would have to go into the tileset paint section and precicely put where i want the corners of the collision to be.

Doing this for every single sprite while making them seamlesly connect would literally take months to do with my workflow.
So, without further ado, my question for anyone reading this: Is there any sort of tool, shortcut, or plugin that can help with this process? If not, what’s a better way i could acheive this same effect? Thanks for reading this and for any help you may provide.

It’s quite advanced but an option is to write an EditorScript to generate the TileSet in code where you could split each tile as an Image and use the BitMap class to load that Image as a bitmap with BitMap.create_from_image_alpha() and then get the polygons with BitMap.opaque_to_polygons() that you can then use for the collision polygon by getting the TileData of the tile and setting the polygon with TileData.set_collision_polygon_points()

Another option is to not use a tileset and use an addon like SmartShape2D to draw the terrain. I think it has an option to generate the collision too.

1 Like

Wow, that is definitely advanced, thanks for your response. I’ll look into SmartShape2D too to see if that would work for my project.