[E] Grayscale filter and custom sprite X positioning/movement speed

Post about what you like and dislike on AAO and suggest new features and improvements.

Moderator: EN - Forum Moderators

Post Reply
User avatar
TimeAxis
Posts: 46
Joined: Fri Jan 01, 2021 8:27 pm
Spoken languages: English

[E] Grayscale filter and custom sprite X positioning/movement speed

Post by TimeAxis »

This is actually two suggestions.

For the first, it would be nice if there were a feature to add a grayscale filter using CSS to the screen for ace attorney-like flashbacks. Currently the only way to do this is to manually add grayscale versions of all sprites and backgrounds you would want to put in flashbacks, which is extremely cumbersome. I don't think it would be particularly difficult to implement, and it would add a lot.

The second feature I'd suggest, which would probably be more difficult but would go a long way in helping replicate things like the way Sprites shift around on the screen in Ace Attorney Investigations, would be to allow sprites to have a custom X position, and also allow for us to enter a custom time-frame in milliseconds for how long it takes that X position to update from the old position to the new one.

Currently, there are several options like Right-aligned, centered, AAI duo right-aligned, etc. I wouldn't suggest removing these, but adding an additional option to the list, called "custom", which reveals a field in which we can enter the exact X position (from the left of the screen in pixels) we want the sprite to have. There would also be an additional field somewhere for transition speed. If left blank, it would use the default speed (which is unfortunately quite slow and doesn't match the one seen in Ace Attorney Investigations), but if you enter a number, it would take that amount of milliseconds for the sprite to move from its previous x position to its new one. This would also work for transitions between the different default alignments.

If the second feature is too much work, then my suggestion for a compromise would be to increase the speed that sprites move at, so that it matches AAI. Currently, trying to replicate the way characters pop forward a little bit to talk in AAI ends up looking very slow and clunky and is difficult to pull off on larger backgrounds like courtrooms.

Finally, this is just a minor suggestion but it would help a lot with QOL, but it would be nice if there was a field on frames (somewhere on the right side where all the empty space is, I'd imagine) where we could input a comment or label of some kind that's only visible in the editor, just to help organize longer, more convoluted cases.
User avatar
ThePaSch
Moderator
Posts: 1262
Joined: Sun Jun 13, 2010 5:56 pm
Gender: Male
Spoken languages: English, German (native)
Location: Germany

Re: [E] Grayscale filter and custom sprite X positioning/movement speed

Post by ThePaSch »

Your first suggestion is already in the works, though it's a bit more complicated to implement than you might think (mostly since it has a larger scope than just grayscale). Enthalpy will be able to tell you more about this, I think.

Your second suggestion certainly sounds doable - I'll have to take a closer look at where the current presets are defined and what form they actually take in the trial data, and depending on that, it might either be super easy to implement, or super hard, or anything in between. If you are familiar with JS, you are welcome to have a look yourself, since AAO is fully open-source.

I'm not a fan of comment fields as suggested, since we'd either be saving data that has zero relevance to the trial player, or we'd have to find some other place to store data that is editor-only. IIRC, it's the same reason why frame presets aren't currently saved between sessions. We could certainly add a comment field that doesn't persist between sessions, but I'm questioning the usefulness of such a feature. That's not to say "this won't be done" - just "this needs more thought and discussion before we do it, if we do it".
Part of the main AAO development team
-----
Image
User avatar
TimeAxis
Posts: 46
Joined: Fri Jan 01, 2021 8:27 pm
Spoken languages: English

Re: [E] Grayscale filter and custom sprite X positioning/movement speed

Post by TimeAxis »

Ah, good to hear grayscale is already in the works. I would think it would just be as simple as applying CSS grayscale filters to all sprites and background images, but I guess that alone isn't enough? Well, I'll trust that those working on it know what they're doing.

I'm not confident enough in my JS skills to say I'd be of much help, but I could take a look, anyway. I've glanced at the source before, and it seems like a lot to go through, but it might be worth checking out if I want to do more custom stuff.

As far as comments go, what if they optionally showed up on-screen in the trial in debug mode or something? That would add player functionality to it. Is storing extra lines of text really a huge extra burden? If so, you could implement some kind of limit on it, like 30 or 100 comments per trial max or something. Even that would help with organization a lot. Since a lot of more complicated game logic can get pretty convoluted, comments could be useful in making it clear how the game flows, especially in collaborative projects.
User avatar
ThePaSch
Moderator
Posts: 1262
Joined: Sun Jun 13, 2010 5:56 pm
Gender: Male
Spoken languages: English, German (native)
Location: Germany

Re: [E] Grayscale filter and custom sprite X positioning/movement speed

Post by ThePaSch »

TimeAxis wrote: Sat Apr 03, 2021 1:17 pm Ah, good to hear grayscale is already in the works. I would think it would just be as simple as applying CSS grayscale filters to all sprites and background images, but I guess that alone isn't enough? Well, I'll trust that those working on it know what they're doing.
Sure, but that would probably be the least customizable way to do it out of all of them. I think you'll be pleasantly surprised at the level of control, as well as the selection of appliable filters. And I can assure you that Enthalpy knows very well what they're doing.
TimeAxis wrote: Sat Apr 03, 2021 1:17 pmIs storing extra lines of text really a huge extra burden?
Well, no, not in a practical sense - but since AAO is such a massive project, it's a good idea to make sure to keep the technical debt as small as possible. In addition, trials above a certain size can already cause performance issues - it would, for instance, be difficult to explain why adding a comment in the editor would degrade player performance.

There might be a plethora of other things (one thing that instantly comes to mind is the diff engine) that might be impacted by this. As the scale of a project grows, so do the implications of even seemingly tiny changes like this. Like I said - I'm not dismissing the idea, I'm saying we'll need to take a good look at how best to integrate this into a massive, tightly designed application infrastructure without causing more work and/or headaches for later down the line.
TimeAxis wrote: Sat Apr 03, 2021 1:17 pm As far as comments go, what if they optionally showed up on-screen in the trial in debug mode or something? That would add player functionality to it.
I like that idea and could definitely get on board with it. It'd still be pointless data in a non-debug environment, though.

(Almost) all problems have a solution - one just needs to take the time to look for it. Also, if we're gonna do something, we might as well do it properly - hence why grayscale won't just be grayscale, since if we're already implementing CSS filters, then why stop there?
Part of the main AAO development team
-----
Image
User avatar
Enthalpy
Community Manager
Posts: 4989
Joined: Wed Jan 04, 2012 4:40 am
Gender: Male
Spoken languages: English, limited Spanish

Re: [E] Grayscale filter and custom sprite X positioning/movement speed

Post by Enthalpy »

There are three different suggestions here, so I'll take them in order.

1. Greyscale

A greyscale CSS filter (and CSS filters in general) is the number one thing I want as an AAO developer. Unfortunately, this keeps getting supplanted on my to-do list by more pressing projects. A QA here. Sound blips are broken and need to be fixed there. On top of planning for a move in the next couple of months, and when I want to work on my own case... It's a lot, I'm afraid. I haven't had the time to tend to this in longer than I'd care to admit.

In the terms of the technical difficulties, full screen greyscale is indeed not very difficult. The complications come when you want to ask the questions "do we want to support other filters?" and "what elements should those affect?". For example, allowing color inversion would greatly enhance psyche-locks as well, but that shouldn't affect sprites.

2. Sprite Position/Slide Customizability

I like the concept, but we'd need a clear proposal for the UI, in addition to checking whether the slides are technically feasible. I would think they would be, but the research is needed.

3. Comment Tab

Longer, more convoluted cases should be split into parts. Also, we already have a way to do this. The standard trick is to create a hidden frame, and its dialogue is the comment.
[D]isordered speech is not so much injury to the lips that give it forth, as to the disproportion and incoherence of things in themselves, so negligently expressed. ~ Ben Jonson
Current AAO Development Priority: Issue #94: Grayscale Mode
User avatar
TimeAxis
Posts: 46
Joined: Fri Jan 01, 2021 8:27 pm
Spoken languages: English

Re: [E] Grayscale filter and custom sprite X positioning/movement speed

Post by TimeAxis »

Enthalpy wrote: Sat Apr 03, 2021 11:32 pm There are three different suggestions here, so I'll take them in order.

1. Greyscale

A greyscale CSS filter (and CSS filters in general) is the number one thing I want as an AAO developer. Unfortunately, this keeps getting supplanted on my to-do list by more pressing projects. A QA here. Sound blips are broken and need to be fixed there. On top of planning for a move in the next couple of months, and when I want to work on my own case... It's a lot, I'm afraid. I haven't had the time to tend to this in longer than I'd care to admit.

In the terms of the technical difficulties, full screen greyscale is indeed not very difficult. The complications come when you want to ask the questions "do we want to support other filters?" and "what elements should those affect?". For example, allowing color inversion would greatly enhance psyche-locks as well, but that shouldn't affect sprites.
Cool, I was just bringing it up in case it hadn't been suggested yet. I didn't see it in the pinned "suggestions already made" thread, but that seems a bit outdated.
2. Sprite Position/Slide Customizability

I like the concept, but we'd need a clear proposal for the UI, in addition to checking whether the slides are technically feasible. I would think they would be, but the research is needed.
Clear proposal as in, clearly proposing where in the UI it should be? My thought was just having it as a field in the screen editor for each sprite, underneath "Appearance animation", "Disappearance animation", etc. It would be labeled "Movement Speed", or something to that effect, and then have a text field that defaults to a number equivalent to whatever the current default duration is, which could be edited by the user on a per sprite basis.
3. Comment Tab

Longer, more convoluted cases should be split into parts. Also, we already have a way to do this. The standard trick is to create a hidden frame, and its dialogue is the comment.
I guess that's an option. But it wouldn't really stand out while scrolling through a bunch of frames. I just figured having something in the empty space would help a frame to stand out more. There are some nonlinear case concepts that can't really be neatly split into parts, but I guess it's true that most people don't really push the limitations of the engine to that extent. So I can understand that idea being pretty low priority.
Post Reply