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

Update GUI Pose Views for Dawntrail #1369

Merged
merged 11 commits into from
Aug 24, 2024

Conversation

ergoxiv
Copy link
Collaborator

@ergoxiv ergoxiv commented Aug 11, 2024

This pull request updates the existing GUI Pose View to align with Dawntrail’s bone changes and introduces a new view for extended face manipulation. As the change is significant, I created two mockups to base my implementation's UI layout on.

Mockups:
anam-2d-panel-body-mockup
anam-2d-panel-face-mockup-v2

Changes:

  • Replaced old graphic components with new ones.
    • Reasoning: The old components will look out of place when the new face pose panel is added and I cannot replicate the art style of the old elements.
  • Moved all bone positions within the Body GUI View to align with the new assets.
  • Removed non-existent face bones.
  • Fixed broken bone links (e.g. jaw bone).
  • Replaced legacy bone names with modern ones.
    • Reasoning: I believe it would be best to deprecate and remove the converter. It is unnecessary overhead for an insignificant maintenance effort increase.
  • Removed Viera ear posing component.
    • Reasoning: No longer necessary. The ear bones are now part of the updated face component for Viera.
  • Updated hair bone retrieval logic to prioritize hairstyle-specific bones over generic ones (j_kami_a, j_kami_b, j_kami_f_l, j_kami_f_r).
    • Reasoning: Nowadays, a lot of the hairstyles cannot be moved using the generic bones. That's why I believe it would be much better to prioritize the hairstyle-specific bones whenever they are present (i.e. part of the skeleton).

Status:

  • [In review] Update the existing GUI Pose View.
  • [In review] Create new Face GUI Pose View.
    • [Resolved] Drawn lines between bones do not align correctly possibly due to numerical rounding in the calculation.
    • [Won't fix] The face asset in the Body GUI Pose View does not change immediately when you change race. It only updates once you press on the toggle pose state.

@ergoxiv ergoxiv force-pushed the feature/updated-2d-pose-panels branch from 9206e59 to c512b27 Compare August 12, 2024 18:37
@ergoxiv
Copy link
Collaborator Author

ergoxiv commented Aug 13, 2024

After carrying out some testing, I believe that the features are in a good state and ready for review.

The following images are showcases of the layout and visuals of the two panels:

Miqo'te:

anam-showcase-miqo-body
anam-showcase-miqo-face


Standard Faces (Hyur, Lalafell, Elezen, Au'Ra, Roegadyn):

anam-showcase-hyur-body
anam-showcase-hyur-face


Hrothgar:

anam-showcase-hroth-body
anam-showcase-hroth-face


Viera - Straight Ears (M: 1, 3, 4 | F: 1, 2, 4):

anam-showcase-viera-body
anam-showcase-viera-face


Viera - Floppy Ears (M: 2 | F: 3):

anam-showcase-floppy-viera-body
anam-showcase-floppy-viera-face

@ergoxiv ergoxiv marked this pull request as ready for review August 13, 2024 23:30
@StoiaCode
Copy link
Contributor

In your Miqo'te Previews you have a line going from center mouth to detail view, thats not present in the others (and doesnt appear to be present in the build).

Is this intended? For what its worth, I dont think the line is needed, I just want to make sure theres intent behind it.

@ergoxiv
Copy link
Collaborator Author

ergoxiv commented Aug 14, 2024

In your Miqo'te Previews you have a line going from center mouth to detail view, thats not present in the others (and doesnt appear to be present in the build).

Is this intended? For what its worth, I dont think the line is needed, I just want to make sure theres intent behind it.

It is present on all face types. It should appear once you hover within the mouth selectors' background. I can remove it if you believe its unnecessary as I don't feel strongly about it. The reason behind adding it in the first place is to showcase what part of the face you're editing since its detached from the main component.

@StoiaCode
Copy link
Contributor

AH! You are absolutely right, I did not pay attention to that lmao. Nah thats actually neat, goes out of the way when not needed but may help some people figure out what exactly it is.

@StoiaCode
Copy link
Contributor

One request I would make, to avoid the same situation we have now; How did you edit these screenshots you used for the 2D View.
If you used Photoediting software I would ask you to include the .psd (or equivalent) into the Repo itself. That way we could later go in and reuse these files if we ever need to edit them again, instead of changing everything once more.
They would probably belong in a new folder inside Asset called "Templates" or similar? Open for input on this one.

@ergoxiv
Copy link
Collaborator Author

ergoxiv commented Aug 14, 2024

Good idea. I will push a new commit later today with the .psd source files for all of the new images. I can also share the step-by-step process of how I created them if you think it would be useful.

Concerning the directory name, I can call it "SourceFiles" or "RawAssets" but I think "Templates" is suitable as well.

@StoiaCode
Copy link
Contributor

I like RawAssets! Not sure where such a step by step write up would go, potentially in the same folder as Readme? Nur sure where such things usually go...

@ergoxiv
Copy link
Collaborator Author

ergoxiv commented Aug 14, 2024

After some consideration, I believe that a step-by-step guidelines file is an overkill as all important aspects can be inherently understood by examining the .psd files.

  1. In short, in-game photos are taken with a transparent background. This can be achieved by using Chromakey, a ReShade shader, preferably using Alpha transparency as a key color (Don't forget to untoggle "Clear alpha channel" in the settings).
  2. The in-game screenshot is converted into grayscale and used as a shading layer to add depth to the images.
  3. The shading layer's contrast is adjusted to reach a balance, possibly to highlight some aspects of the object.
  4. A cut-out of the object is created, and layered on top.
  5. Then, you can either decrease opacity or use a blend mode.

Notes:

  • In the current assets, a "base" layer is used, placed under the shading layer to ensure that the image does not transparent spots as a result of the edits.
  • To create the fade-out on the face assets, you can use the gradient tool on a layer mask.
  • As a rule of thumb, the role of background assets is to provide visual context without being distracting.

@ergoxiv ergoxiv force-pushed the feature/updated-2d-pose-panels branch from ee0f6aa to 1839367 Compare August 16, 2024 00:24
@ergoxiv
Copy link
Collaborator Author

ergoxiv commented Aug 16, 2024

As the pull request has not yet been fully approved and merged, I thought it would be a good opportunity to push in a hotfix regarding my initial auto hair bone selection logic as I realized there was a significant flaw to it - it forces the conversion on all bones, in all views, including the Matrix View and the 3D View. In other words, it made the generic bones inaccessible as the BoneView would point to the hairstyle-specific bone whenever present. There are a handful of hairstyles that seem to utilize both the unique hair bones and the generic ones, so this is not desired.

I revised the code (commit 1839367) by creating custom bone names that will only be used in the GUI Views. Essentially, the GUI Views will try to automatically select the best hair bones for you. In the occasions where the unique bones do not work or are not what you're looking for, you will now be able to switch to either the Matrix View or the 3D View to manually select them.

@ergoxiv ergoxiv requested a review from StoiaCode August 16, 2024 00:40
@StoiaCode
Copy link
Contributor

Good catch on that. I will go through one final time on the changes today and unless @chirpxiv has any objections I'd merge it sometime tonight or tomorrow.

@StoiaCode
Copy link
Contributor

This is basically tomorrow, right?

@StoiaCode StoiaCode merged commit 50ac5ea into imchillin:master Aug 24, 2024
@ergoxiv ergoxiv deleted the feature/updated-2d-pose-panels branch September 4, 2024 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants