DarklightGames / io_scene_psk_psa

A Blender extension for importing and exporting Unreal PSK and PSA files
GNU General Public License v3.0
402 stars 25 forks source link

Importing PSAs always orients one and only one bone incorrectly? #107

Closed ariannadiangelo closed 2 months ago

ariannadiangelo commented 2 months ago

Versions Blender: 4.1.1 io_scene_psk_psa: 7.0.0

Describe the bug This is very bizarre, but it happens consistently with the .PSAs I import from this game (Deceive Inc). For whatever reason, the left ear bones (always called l_ear_int across all .PSKs from the game) are always rotated in the total wrong direction. To fix it, I have to copy and paste the pose from r_ear_int flipped on the X axis. Multiple poses and multiple meshes always yield this result.

To Reproduce Steps to reproduce the behavior:

  1. Import .psk and .psa from game
  2. Go to Action Editor to view the .psa on the related armature
  3. Go back to layout; the left ear will be visibly flipped and in the wrong position
  4. To correct its position, copy and paste the pose from the right ear flipped on the X-axis

Expected behavior The .PSAs import with all bones oriented in the correct direction for the pose to work.

Screenshots image Armature with .PSA applied to it; left ear is visibly inverted image Corrected left ear position by copying and pasting right ear's position image Different mesh using different .psa, same issue

Files Any .psk and .psa from Deceive Inc should yield this issue.

Additional context The .PSKs and .PSAs are extracted directly from the game using FModel; UModel is not used.

cmbasnett commented 2 months ago

Please provide the PSK and PSA files so I can reproduce the issue.

ariannadiangelo commented 2 months ago

files.zip Here you go. If you need more .PSKs/.PSAs, let me know, but every intro pose (.PSA) I've tried so far has done this.

cmbasnett commented 2 months ago

@ariannadiangelo Is there maybe a .config file that should be coming along with this as well? As far as I can tell there should be no reason for the ear to be animated at all so I'm wondering if there's a .config file that may be excluding the ear.

ariannadiangelo commented 2 months ago

Nope, here's what the path in FModel looks like: image I click the AssetPathName to get to the animation, right click to get "Save as Animation", and then it is exported as a .PSA. There is no .config file. The way intro poses work in the game is that they are either low rarity and thus "static" (small movement that loops), or high rarity that involves a ton of movement. Regardless of type, I think all the bones do technically get "animated" in the process (i.e. they have a location where they need to be, even if they don't "move"). Some of the poses HAVE imported just fine (I've only found two so far), but I cannot figure out why certain poses import with just the one ear flipped. It's unclear to me if it's limited to certain characters' skeletons only or certain types of poses.

ariannadiangelo commented 2 months ago

For example, so far, every .psa I've imported for the character Ace has imported correctly oriented. But every pose I've imported for the characters Red and Sasori has had the issue with the ear. I tried the poses with two different .psks for Red (two different outfits), and both had the issue with the ear. I'm completely lost as to what could be causing this.

cmbasnett commented 2 months ago

Are the names of the ear bones the same in the working PSKs?

Its very possible that the issue is coming from FModel itself and not the addon.

One thing to test would be to try the import into blender using the legacy addon (Beffz). If that one has the same issue then it points more towards something being wrong in FModel.

ariannadiangelo commented 2 months ago

Yep, the names of the ear bones are the same on both PSKs. The ears also are oriented the same way when imported on both PSKs. Here is Red (breaks): image And here is Ace (does not break): image When importing with the legacy addon, Red still has the same issue with her ear, and Ace is still fine. The problem seems to be that rotation is getting applied to the left ear at all; even though there are keyframes for the right ear, I don't think anything is actually happening during them. Interestingly, applying Ace's intro poses to Red fixes the problem with the ear, so it seems to be something with how her specific intro poses are getting exported, maybe?

cmbasnett commented 2 months ago

Yea, unfortunately it looks like it may be an issue with how FModel is exporting the file.

The add-on is fundamentally very simple, it will just dump the data as-is from the PSA. There's no special handling outside of the config files, so I think this is an upstream data issue. I recommend posting your issue on FModel's GitHub discussion board (though their Discord is probably a better place to get faster answers).

Going to close this as not an issue (with the add-on). Please create another issue if there's a compelling reason to believe it's the add-on that is at fault here.