Shadowth117 / PSO2-Salon-Tool

A program to edit and convert between PSO2 .xxp and .cml files.
GNU General Public License v3.0
22 stars 3 forks source link

Accessory anchor points + positioning #11

Closed God-damnit-all closed 2 years ago

God-damnit-all commented 3 years ago

One of the most troublesome aspects of editing characters deals with placing the accessories, since the in-game UI has you use sliders that you can't just manually edit the value of.

Implementing this would require determining whether the accessory supports anchor points. I believe all base game accessories do support them, while all NGS accessories don't, but there may be exceptions in both cases? I can't say I've looked into it since I haven't been super-motivated to spend a lot of time in the salon since NGS's release.

Though, an early implementation could just make it the user's responsibility to figure out whether anchor points are supported on the accessory themself, I certainly wouldn't have a problem with that.

Being able to edit these things with PSO2 Salon Tool would really help me get excited to work on character designs again.

Shadowth117 commented 3 years ago

I see. Yeah, I just kind of figured that parts of this might be better to leave up to the user to edit in the ingame editor.

Based on the .cmx data for accessories, we can kind of surmise default attach points at least. No idea whether that's where enabling the anchor point option is enabled though. The .cmx contains a lot of data similar to that, but doesn't have everything the client would know (I realized this working on costumes. Linking or disabling a 'head' model for full body suits is handled elsewhere). Those structs have like 0x90+ bytes of unknown data though so who even knows though.

I will say right off though that whether they have it or not has 0 to do with their game version. You can find attach point enabled and blocked on both types, usually depending on if they must attach to multiple parts or not (perhaps that in itself is the enabling/disabling factor?). That said, I did isolate those areas for parsing and conversion purposes. I feel like when I tried things before the game just handled it intelligently and didn't move it, but I'd have to check again.

As far as sliders in general, that's something I thought about and just left for now, thinking it could be done ingame. Basically, a lot of the stuff I left out was for the reason that it'd be fairly unclear without ingame views anyways. But it's something I was thinking of doing at some point.

Tldr though: Can probably look into this at some point here.

God-damnit-all commented 3 years ago

As far as sliders in general, that's something I thought about and just left for now, thinking it could be done ingame. Basically, a lot of the stuff I left out was for the reason that it'd be fairly unclear without ingame views anyways. But it's something I was thinking of doing at some point.

Sure, it's not really an issue if you only have one character. But if you want to port accessory positioning data from one character on your account to another, it becomes a pain in the ass. When you import data, ALL of it is imported.

You can use the base game's bookmarking system to help you out when it comes to other people's characters (making sure to equip it as an outfit before entering the salon), but since you can't bookmark yourself, you either have to painstakingly replicate everything using screenshots, or do something weird like have someone else bookmark the character, equip it, update their profile, bookmark their profile, then equip.

Shadowth117 commented 3 years ago

Sure, it's not really an issue if you only have one character. But if you want to port accessory positioning data from one character on your account to another, it becomes a pain in the ass. When you import data, ALL of it is imported.

You can use the base game's bookmarking system to help you out when it comes to other people's characters (making sure to equip it as an outfit before entering the salon), but since you can't bookmark yourself, you either have to painstakingly replicate everything using screenshots, or do something weird like have someone else bookmark the character, equip it, update their profile, bookmark their profile, then equip.

Hmm, so something I had considered at a point was a struct copier (importer?) from one file to another. I feel like that would be a better solution in general for some of that. It would be nice if it wasn't the only thing though, yes.

God-damnit-all commented 3 years ago

Hmm, so something I had considered at a point was a struct copier (importer?) from one file to another. I feel like that would be a better solution in general for some of that. It would be nice if it wasn't the only thing though, yes.

That wouldn't really cover every single use-case, though. While it would be more convenient for the use-case I listed above, I'd really rather just have the manual anchor point / positioning values exposed in a way that can be hand-edited.

God-damnit-all commented 2 years ago

Another use-case I just considered: When I'm trying to line up an accessory just right by 90 degrees, (i.e. the mid-point between the where the slider is by default and either the start or end of the slider) I have trouble discerning where that is because the in-game UI doesn't make it clear. But if it was represented in PSO2 Salon Tool with numerals, it'd be easy.

MetalSpork commented 2 years ago

i could really use this too, the 90 degree thing is a bitch to do