Skip to content
This repository has been archived by the owner on Aug 13, 2024. It is now read-only.

Misc Feature Updates #149

Draft
wants to merge 44 commits into
base: main
Choose a base branch
from
Draft

Misc Feature Updates #149

wants to merge 44 commits into from

Conversation

dendr01d
Copy link
Contributor

@dendr01d dendr01d commented Jun 30, 2023

Stuff that's (mostly) in this PR:

  • Faux-root editing
  • Rudimentary bone-parenting
  • A-pose editing mode
  • Weapon bone editing

Stuff that's still weird:

  • The way the game handles parenting of weapons is somewhat oblique, and because of that none of the above work flawlessly, or at least not the way people would probably expect
  • Earrings don't seem to be parented to the head region like you'd logically expect, so they can require independent finagling
  • UI doesn't always behave? Sometimes when closing imgui windows it seems like they get hidden without actually closing, and then they can't be opened again without restarting the plugin
  • The edit window specifically has some weirdness wrt saving changes. Probably an oversight somewhere in the process of how profiles get "checked out" for editing and then checked back "in" depending on how the user saves them
  • Would probably be beneficial to add some new hooks that prompt skeletons to rebuild themselves from game data. I'm thinking primarily job/gear/zone changes, but maybe more
  • Probably more than what's listed here that I don't know about. As ever, since I play as a male highlander, there's a whole host of character features and attributes I have no testing feedback for

Stuff that this PR doesn't have:

  • Freeform selection of reference frames in which to perform edits. Right now everything is locked solely into local or model space, which can occasionally be frustrating
  • Graphical overlay indicating which direction is which on a bone-by-bone basis, so you don't have to guess which number moves which bone in which direction
  • Most of the tertiary information from the Data/BoneData class is no longer needed (right now we really only care about human-readable bone names and their overarching categories), and the rest would probably work better as a JSON or some other external resource file

dendr01d added 30 commits June 14, 2023 18:51
…nsform instead of application through render object properties
…tion on the bone edit window and associated functions.
…ct vectors for all cases relating to game geometry (ie everything but where required by Imgui) Update vector extension methods accordingly
…es. Split aliased bones into two separate kinds of subbone that can be checked for individually via pattern matching.
…tract resolver to keep the serialized information from blowing up with redundant data from the ffxivclientstruct vector3 class
@StoiaCode
Copy link
Collaborator

Oh damn, hella lotta stuff right here nice job!
Couple things:

  • Faux-root editing: Faux because its what we discussed, not actual root but still does what we expect root to do?
  • Does this include the addition Chirp did for Gpose? I remember you had some WIP there that didn't get merged yet UwU

@dendr01d
Copy link
Contributor Author

  • Yeah, it modifies the whole player model at once, but without actually touching the root bones, same as before
  • Those specific changes should be somewhere in the pile of commits. I don't make extensive use of gpose though so it's possible it doesn't handle it perfectly

@StoiaCode
Copy link
Collaborator

Am I correct that with this the Movement hook basically does nothing anymore entirely?
Looking good, I like the split of weapon and character armatures.

@dendr01d
Copy link
Contributor Author

Whoops, yeah. Didn't delete it in the moment because I didn't feel like cleaning up all the related bits and then I just forgot.

@StoiaCode
Copy link
Collaborator

All cool! Its nice that I noticed this way instead of "wait, that was there just recently where did it go" haha

@StoiaCode
Copy link
Collaborator

It has a build error for me in GameDataHelper.cs line 87, FindModelByName doesnt exist.

@AlexCSDev
Copy link
Contributor

AlexCSDev commented Jun 30, 2023

I'm pretty sure that's because of the last commit where structurerework was merged into it. FindModelByName was removed as part of c238b15. FindGameObjectByName will probably work.

@StoiaCode
Copy link
Collaborator

Ah thats where I read it recently, will test

@StoiaCode
Copy link
Collaborator

StoiaCode commented Jun 30, 2023

For this ill propose we put the Parenting parts in Debug only mode for now, and the rest should be good to go then?
For a full release actually? (once the mentioned issues that are Non Parenting related have been fixed, mainly the window not closing thing is a bit weird)

Hmm, Posing mode does not appear to be fully compatible now....

@AlexCSDev
Copy link
Contributor

NPCs/retainers are broken. Only works after toggling profile on and off, reloading customize+ breaks it again.
image

@StoiaCode
Copy link
Collaborator

Hmm as more things crop up, could we extract the Root Bone fix from this into its own PR, merge that and then release it in testing into hopefully a full release?
Mare is waiting for our update due to the API bump

@AlexCSDev
Copy link
Contributor

AlexCSDev commented Jul 2, 2023

I think chirp's gpose fix is still not a part of structureRework, so that's something that needs to be cherry picked out of this PR as well if we are going that route.

@StoiaCode StoiaCode marked this pull request as draft September 10, 2023 11:42
@StoiaCode
Copy link
Collaborator

Converted this to draft, hope thats okay with you! Doesnt really change anything just because of the fixes we had to do to get the previous version launch ready this will need some fixes, if you still want to work on it at all that is!

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

Successfully merging this pull request may close these issues.

3 participants