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

Left-handed model #809

Open
McSinyx opened this issue May 21, 2019 · 9 comments
Open

Left-handed model #809

McSinyx opened this issue May 21, 2019 · 9 comments
Labels

Comments

@McSinyx
Copy link
Contributor

McSinyx commented May 21, 2019

As a leftie, I'd appreciate if the protagonist can be appeared as left-handed. I suspect that it could be implemented simply by flipping the model.

I tried to discuss this at #793 but it was off-topic and I don't think the mod alone can handle it so I open this issue.

@dorkster dorkster transferred this issue from flareteam/flare-engine May 21, 2019
@dorkster dorkster added the art label May 21, 2019
@dorkster
Copy link
Collaborator

Moved this to the flare-game repo because it would indeed be a matter of flipping the models and rendering all the animations again. We wouldn't be able to flip the rendered images properly in the engine.

Since the animations make up most of the flare-game data's file size, I'd keep such changes as a separate mod.

@McSinyx
Copy link
Contributor Author

McSinyx commented May 21, 2019

I guess I over estimated the power of SDL. I wasn't aware that it would cause so much inconvenience; now I regret a bit for asking for it.

Speaking about animations, I just realize that the holding-shield hand is twisted when character perform melee attack, as showed in this screencast. Was this intentional or was it simply a mistake in rendering angle?

@dorkster
Copy link
Collaborator

There's a couple reasons why flipping the rasterized images doesn't work. First, the shadows would be incorrect. Second, flipping non-cardinal directions changes the way the player is facing. If the player was facing south (according to Flare's compass) and was then flipped, they would then face to the east. So the flip needs to happen pre-raster.

I believe the animation in your screencast is intentional, though you'd have to ask Clint. The shield is attached to the player's forearm, which swings back and twists a bit to counter-balance the opposite arm swinging to attack.

@McSinyx
Copy link
Contributor Author

McSinyx commented May 21, 2019

Thank you for the detailed explanation. I still wonder, though, if we can do branching to choose the right art to flip to retain the correct logic. Since this is not a high priority, I'd be happy if you can save me the pleasure of studying the codebase and experimenting with it.

As for the shield animation, I had to ask because it was inconsistant. When the character faces west, the shield face the left side of her, while she faces north west, it seems to face in front of her. @clintbellanger: could you tell us about the design since I can't see the art very clearly.

@clintbellanger
Copy link
Collaborator

I watched that screencast video a few times but I'm not quite seeing the issue. The physical animation is the same each direction so maybe there's 1) some optical illusion in play or 2) there may be a frame or two with the wrong apparent draw order. Sprite layer draw order is all the same for a facing direction (instead of a different layer order per frame) so some animations where the arms swing around a lot might break the intended order. I've seen this happen in some other situations but it's usually hard to notice. Perfect solution would be to allow per-frame layer orders but I can only imagine that being a long, difficult to edit config file. Imperfect solution is to be mindful when designing the animations so that apparent layer order doesn't change. I decided a while back this was currently too obscure an error to properly fix, unless someone created an art set that made it really necessary.

And Justin's right about Left Handed characters, because all the prerendered art has a specific shadow direction it can't easily be flipped. The engine supported way to accomplish this would be a huge mod that has left-handed versions (all animations left-right swapped) for all the prerendered character layers. This is a mountain of effort for a tiny payoff. Essentially I consider this one of the unfortunate but acceptable limitations of the art method we're using.

(I mean... unless we flip ALL the tile and character art in real time? Choosing a left handed character gives you a mirror-flipped world? Would need special mouse to map position remapping and is probably a really silly idea either way.)

There are character art styles (e.g. used in Polymorphable) where flipping a character left-to-right would look okay because directional shadows aren't an issue. Maybe we can think about this option again if a core art mod becomes popular and has a flippable style.

@clintbellanger
Copy link
Collaborator

By the way -- thanks for asking about this. I don't mean to be dismissive by saying it would be too much work. Your question gave me a chance to write up some thoughts about how this works under the hood and some consequences of engine + art decisions I made almost 10 years ago.

@McSinyx
Copy link
Contributor Author

McSinyx commented May 24, 2019

Sprite layer draw order is all the same for a facing direction (instead of a different layer order per frame) so some animations where the arms swing around a lot might break the intended order.

I think that's why I saw the arm got behind the shield. Since the resolution is quite low, it's quite hard to be noticeable anyway. However, for the upcoming HD remake, that might be an issue.

And Justin's right about Left Handed characters, because all the prerendered art has a specific shadow direction it can't easily be flipped. [...] unless we flip ALL the tile and character art in real time

I'm sorry for not getting this after you guys trying to explain it to me 3 times, but how exactly is the shadow hardcoded? Because from what I see here:

shield

and here:

arm

it seems that the shadows are attached to the model and should remain to be correct after flipping.

@clintbellanger
Copy link
Collaborator

The tiles etc. also have a lighting and shadow direction. If the player gets a shadow going left and the rest of the world has a shadow going right it'll be noticeable.

@McSinyx
Copy link
Contributor Author

McSinyx commented May 24, 2019

Thanks, I finally understand now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants