Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Isometric object creation tools #720

Open
AkashaRepo opened this issue Jul 9, 2015 · 24 comments
Open

Isometric object creation tools #720

AkashaRepo opened this issue Jul 9, 2015 · 24 comments
Assignees
Labels
feature Feature request, or something should be improved sprite editor
Milestone

Comments

@AkashaRepo
Copy link

Asepirite has grids and pixel grids which are handy, but they are mostly limited to flat square things. It would be nice if there were tools for making isometic art easier, isometric angle grids, and perhaps a tool to generate perfect isometric shapes of arbitrary size like this one http://codepen.io/nosir/details/ganrh

@dacap dacap added the feature Feature request, or something should be improved label Jul 16, 2015
@axelbsa
Copy link

axelbsa commented Jun 17, 2016

+1+

@dacap
Copy link
Member

dacap commented Sep 22, 2016

From Steam forums:

Right now, even if you don't have full-on isometric-recognition mode implemented, could you at least please add (x-delta, y-delta) options for the Tiling mode? Something as simple as that would help with isometric tile editing immensely, and I don't think it should be too difficult to implement.

@dacap dacap added this to the v1.2 milestone Sep 22, 2016
@dacap dacap modified the milestones: v1.3, v1.2 Jul 19, 2017
@dacap
Copy link
Member

dacap commented Jul 19, 2017

On the community forum too.

@petracles-zz
Copy link

+1 on this, and thanks for listening! Being able to adjust the ratios of the canvas' squares would be a great solution to this.

@dacap dacap modified the milestones: v1.3, v1.4 Sep 12, 2017
@ellogwen
Copy link

ellogwen commented Jan 6, 2018

thank you very much for this :)

@dacap dacap changed the title Feature request, isometric object creation tools. Isometric object creation tools Jan 9, 2018
@dacap dacap modified the milestones: v1.4, v1.3 Jan 9, 2018
@dacap
Copy link
Member

dacap commented Apr 14, 2018

Other from the forum

@jaybill
Copy link

jaybill commented Dec 7, 2018

If no one is working on this, I'd be happy to do some mockups and then work on implementing this.

@dacap
Copy link
Member

dacap commented Dec 9, 2018

Nobody is working on this one at the moment @jaybill, if you have some mockups about this they will be welcome 👍 I think the first idea that came to my mind is the possibility to create isometric grids (like the regular grid), where snap to grid should work in those new kind of isometric grids.

@ghost
Copy link

ghost commented Dec 15, 2018

I would also like to see offsets for Tiled Mode so would be easier to make seamless isometric tiles or just make an Isometric Tiled Mode.

@dacap dacap mentioned this issue Feb 8, 2019
42 tasks
@p10tr3k
Copy link

p10tr3k commented May 4, 2019

I would be also nice to create circle in isometric mode

@ScepticDope
Copy link

@AkashaRepo maybe check out this plugin? https://darkwark.itch.io/isobox-for-aseprite It creates isometric box shapes and seems to work just fine in v1.2.11

@merijndk
Copy link

No news on this yet?

@dacap
Copy link
Member

dacap commented Oct 24, 2019

There are no news about this one yet. We're working in a tilemap editor for v1.3, we hope to be able to introduce isometric grids with tilemaps (maybe v1.3-beta2 or 3).

@l4tte
Copy link

l4tte commented Apr 20, 2020

A tilemap editor? That's going to be great! +1 to the grid but def do the tile editor first, really excited to use it

@aadamsx
Copy link

aadamsx commented Jul 17, 2020

Any update on this? How close are you guys to a 1.3 release anyhow?

@dacap

@RockyGitHub
Copy link

I, REAAALLLLYYY hope v1.3 has isometric support with the new tile features. It would be so game changing for me

@dacap
Copy link
Member

dacap commented Mar 26, 2021

Right now we are really close to release part of the tilemap editor feature #977. Isometric support will not be part of the first release, but there is an internal logic to support some kind of isometric flat tiles in the future, but we prefer to release the feature ASAP as it is. (Probably in a couple of weeks.)

@hazeled
Copy link

hazeled commented Apr 3, 2021

Now that the tilemap feature has been added, will isometric support be added soon?

@bozau
Copy link

bozau commented Jan 12, 2023

Just adding onto this so it doesn't go entirely stale, I purchased Aesprite for Isometric art (not realising that it had no support).

This would be a great selling point and probably make this one of the better tools on the market.

@ColinM94
Copy link

ColinM94 commented Mar 5, 2024

I also purchased this to do isometric art. I just assumed it would support this feature. But unfortunately not.

@Liebranca
Copy link
Collaborator

As an experiment, I hacked together some logic to rotate the grid in 7b03dc4 last week, including an option for enabling and disabling it:

screencap

It's only modifying how the grid is drawn, and nothing else, so it's just a visual guide. I have to rework a few details too. But because it's done through a spatial transform, doing operations with the displaced grid points should be about the same, plus inverting or applying said transform. Also, modifying the angles used for rotation gets you a different type of grid, so variations on isometric could perhaps be added with relative ease.

Adding support for tiles is a trickier question though, as rotating the grid doesn't make sense in that scenario (just think of subdividing a square or rectangular image into diamonds, as opposed to smaller squares or rectangles). Both guides may be needed in that case, I am not entirely sure. Anyway, it's an interesting feature to work on, so I'll look at it a little more.

@dacap
Copy link
Member

dacap commented Oct 1, 2024

@Liebranca that looks great! I was just testing your patch and there are a couple of things I'd like to notice:

  • I'm not sure where the origin of the isometric grid should be located, but probably this (?):

    image

    I'm not sure if the grid dimensions should indicate the dimension of the grid in isometric view or in orthogonal view. E.g. from https://tips.clip-studio.com/en-us/articles/4969

    image

  • The pixel grid should not be isometric, they should be always orthogonal:

    image

  • When we zoom in, the isometric grid should show the boundaries of each isometric grid with pixel precision:

    image

    We have an utility class to create segments/boundaries from a bitmap mask:

    class MaskBoundaries {
    This is used to draw the boundaries of the active selection, which is similar to the kind of work we need here. I think that we could create a mini template of one tile boundaries (a gfx::Path to paint just one tile), and draw the same path repeatedly over the whole editor canvas to draw the whole grid.

  • The doc::Grid type has some special properties that are not fully used but were created for isometric (and other projections) tilemaps in a future, like m_oddRowOffset and m_oddColOffset. Although these might be useless right now for this feature.

As a first version it would be nice to have the possibility to specify an isometric grid as you have created. I think the segments should be displayed as we zoom in. And there are several variations of isometric grids that probably we could support, e.g. from https://tips.clip-studio.com/en-us/articles/4969:

image

@dacap
Copy link
Member

dacap commented Oct 2, 2024

Some alternatives about what a 32x16 isometric grid should look like, from: https://mastodon.art/@eishiya/113235611218123023

image

image

image

@Liebranca
Copy link
Collaborator

Hi @dacap! Thank you for the references and notes, they've been very helpful!

I've mostly rewritten the approach for 89595af, as drawing can be done accurately without rotations, and this in turn makes it easier to think about the grid points themselves. The new implementation simply interprets the dimentions to be those of the orthogonal grid, and fits the isometric one within that space, so the line angle depends on the ratio (say 2:1 for 26.5º or 1:1 for 45º).

I've also fixed the pixel grid issue and added logic for drawing a pixel-precise version of the isometric grid according to the zoom scale (hardcoded to use pixel-precise grid if >8 for now).

pixel-grid

There are a few of things I still need to do:

  • Drawing a pixel-precise grid for ratios other that 2:1.
  • Handling other ratios in general, my method is currently not drawing the lower half 100% correctly for 1:1 for instance.
  • Taking the grid offset into account. This one simply slipped my mind.

Small note to myself for the future: snap to grid should be something along the lines of transforming coordinates to orthogonal space, finding the nearest point normally, and then transforming back to isometric. So in essence it's still adding a conditional prologue and epilogue to already existing code. But what I'd need to look into is building a matrix for this, from the grid bounds themselves. Anyway this is something for later on.

@dacap dacap modified the milestones: v1.3.11-beta, v1.3.10-beta Oct 7, 2024
@dacap dacap moved this from Todo to In Progress in Aseprite v1.3.x Oct 7, 2024
Liebranca added a commit to Liebranca/aseprite that referenced this issue Oct 14, 2024
Liebranca added a commit to Liebranca/aseprite that referenced this issue Nov 11, 2024
@dacap dacap modified the milestones: v1.3.11-beta, v1.3.12-beta Nov 20, 2024
Liebranca added a commit to Liebranca/aseprite that referenced this issue Nov 21, 2024
Liebranca added a commit to Liebranca/aseprite that referenced this issue Nov 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Feature request, or something should be improved sprite editor
Projects
Status: In Progress
Development

No branches or pull requests