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

Anst/improvements #338

Merged
merged 57 commits into from
Nov 20, 2022
Merged

Anst/improvements #338

merged 57 commits into from
Nov 20, 2022

Conversation

achimmihca
Copy link
Collaborator

@achimmihca achimmihca commented Nov 19, 2022

What does this PR do?

A bunch of fixes and improvements.

Upgrade Unity

  • I upgraded to latest Unity, which is an alpha version but worked flawlessly for me.
  • This finally fixes the stupidity with backslashes being interpreted as escape character in labels
    • Thus, paths with backslash can now be entered normally and do not need to be replaced anymore.
  • This fixes ellipsis on multiline labels
    • For example, song title in song select scene are now abbreviated with ... if there is not enough space
  • This improves some of Unity's tooling, e.g., the UI Builder

Song issue dialog

  • The The SongLibraryOptionsScene has a new button to open a song issues dialog.
  • The dialog lists issues in song files. Errors and warnings are listed separately.
    • Errors are issues where the song could not be loaded and will not be shown in song select. For example: unsupported audio file, missing required tag in song file
  • The SongMetaManager collects all song issues. The parse method etc. have been extended accordingly.
  • If there are song issues, then this is also shown as hint on the settings button

Song parsing

  • An empty tag value does not count as issue anymore. Instead, it is treated as empty string or 0 value.
  • Spaced around tag key and tag value is now trimmed.
  • I added tests for this new behaviour.

Song folder checks

  • A warning is shown when a song folder is a duplicate of another folder
    • This can also be the case, when they differ syntactically, e.g. by using ../ in the path or a trailing slash
  • A warning is shown when a song folder is a subfolder of another song folder

Simpler download scene UI

  • The download scene UI has a dropdown button which opens an overlay with available song archive urls.
    • A short description is shown for each url.
  • The song archive urls are loaded from JSON file.

UltraStar song info

  • The SongLibraryOptionsScene options has a new button to open a help dialog.
  • The dialog explains most important info about the song format, how to add, create, and download songs.
    • This is the stuff from our FAQ that is asked the most.

Font Icons

  • instead of svg files, the Material Design Icons and Bootstrap Icons have been integrated as font file
  • Therefor, new VisualElements named FontIcon (base class) MaterialIcon and BootstrapIcon have been added.
    • Icons can be changed just by setting their icon property.
    • For example, "help_outline" can be used to show this icon.
  • Besides being much easier too use, this also fixes the problem of missing anti-aliasing SVG images do not use anti-aliasing #337
  • I tried to replace all pixel icons with these font icons or svg icons.
  • Further, I replaced the leading-player-icon with this one. Before, the icon was boring.

Layout and styles

  • I refactored some styling.
    • For example, buttons do not always apply a fix width, margin, padding. Instead, this can be done manually where needed.
    • In the future, I want to integrate something like Bootstrap or TailwindCSS, which provide a set of reusable styling classes.
  • Buttons use --control-width as min-width now. This has the advantage that they can grow large if needed (depending on translated text)
  • The artist label and song title label have a more dynamic size. If there is a long name, the label gets smaller.

New logo

  • The new logo is used and also shown in the main scene.

Particle effect when hitting golden notes

  • When the player hits golden notes, then some silver stars are spawned.
    • I took inspiration for this from Vocaluxe.

Lyrics are not cropped anymore

Show static lyrics with scrolling note stream

  • The lyrics box at the top/bottom can now be shown together with the scrolling note stream lyrics
  • "lyrics on note" vs. "lyrics in top/bottom box" can be configured independently
    • This replaces the dedicated lyrics bar at the bottom of each player's UI when using the scrolling note stream

"bad" sentence rating is not shown anymore

  • I think positive feedback when players are good is better than negative feedback when they are bad.
    • Thus, the "bad" sentence rating is not shown anymore, no sentence rating is shown in this case. The other, positive sentence ratings are shown as before.
  • relates to Reduce number of sentence ratings #304

Song started statistic

  • A song counts as started only if it is played for some seconds or half of the song.
  • I made the experience that I start a song only to notice that I don't like it (either the music or the notes are not well placed).
    • In such a case, I do not want to count this as "started" or "canceled", it should just be ignored.

Show up to 3 player notes in time bar

  • The time bar is at the bottom of the sing scene. It shows where players have lyrics.
  • For up to 3 players, their lyrics positions are shown individually.
  • For more than 3 players there is not enough space in the time bar. In this case all lyrics are shown together in a neutral color.

Kickstarter info dialog

  • The main scene shows a dialog with info about the upcoming Kickstarter.
  • The dialog is shown once per start, until the Kickstarter ended.
  • This will be removed after the Kickstarter.

Closes Issue(s)

close #337
close #324

Additional Notes

Sorry for the hugeness of this PR. I just wanted to fix all this stuff before the upcoming Kickstarter.

@achimmihca
Copy link
Collaborator Author

Screenshots:
2022-11-19 18_16_37-UltraStar Play
2022-11-19 18_16_51-UltraStar Play
2022-11-19 18_17_02-UltraStar Play
2022-11-19 18_17_10-UltraStar Play
2022-11-19 18_17_48-UltraStar Play
2022-11-19 18_19_17-UltraStar Play
2022-11-19 18_23_21-UltraStar Play
2022-11-19 18_23_52-UltraStar Play
golden-note-hit-effect

2022-11-19 18_14_29-UltraStar Play

@achimmihca
Copy link
Collaborator Author

I just noticed that there are no docker images for Unity alpha versions. Thus, the GitHub action cannot be upgraded to the newest version...
But maybe the tests will work with both versions.

@achimmihca achimmihca marked this pull request as ready for review November 19, 2022 17:50
@achimmihca
Copy link
Collaborator Author

@basisbit , I want to merge this stuff monday to have a more polished version for the Kickstarter.
So it would be nice if you could review this soon.
Again, sorry for the hugeness of this PR.

…ently asked questions

- therefor, added an AccordionItemControl that shows/hides content chapters
… with icon

PlayerProfileOptions: delete button red with icon
- therefor, collect song issues in SongMetaManager
…ight.

- for more players, the notes are shown in the TimeBar independently of the specific player
- ScrollingNoteStreamDisplayer shows no dedicated lyrics bar. Instead, lyrics on notes can be used.
- use new placeholder property for search TextField
- dialog is shown until end of 2022 only once per start
- MaterialIcon and BootstrapIcon both extend new common base class FontIcon
- load codepoints of font icons from TextAsset
…er song folder

- created own class for SongFolderListEntryControl
…me and tag value.

- missing tag value is handled like empty string or 0
- space around colon is trimmed
- added tests for this
no implicit width, margin, and padding on a button
@achimmihca
Copy link
Collaborator Author

There is now also a help dialog for mic configuration:

2022-11-20 21_13_46-UltraStar Play

Copy link
Member

@basisbit basisbit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was a lot. thanks for your continuous work!

@basisbit basisbit merged commit 386f749 into master Nov 20, 2022
@basisbit basisbit deleted the anst/improvements branch November 20, 2022 21:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

SVG images do not use anti-aliasing Lyrics are cropped on Android (Google Pixel 6)
2 participants