Project

General

Profile

Bug #2594

1st person view uses wrong body texture with Better bodies

Added by Jan Štěpánek over 2 years ago. Updated 4 months ago.

Status:
Closed
Priority:
Normal
Category:
General
Target version:
Start date:
05/31/2015
% Done:

100%

Reproducibility:
Always
Operating system:
Linux
Severity:
Normal

Description

- first person view uses wrong body texture with Better bodies since openmw version 0.35
- for 3rd person view everything seems to be ok (see attached screenshots)
- tested also without any other mods

screenshot000.jpg View - 1st view - wrong low res body texture (564 KB) Jan Štěpánek, 05/31/2015 05:45 PM

screenshot001.jpg View - 3rd person view of the same character (467 KB) Jan Štěpánek, 05/31/2015 05:45 PM

1st_view_Glitch.jpg View (470 KB) Jan Štěpánek, 09/21/2015 09:53 PM

3rd_view_OK.jpg View (461 KB) Jan Štěpánek, 09/21/2015 09:54 PM

1st_male_deleted.jpg View (676 KB) Jan Štěpánek, 09/27/2015 08:53 PM

3rd_ok.jpg View (605 KB) Jan Štěpánek, 09/27/2015 08:53 PM

Fixed.png View - With gender check (1.11 MB) Andrei Kortunov, 03/29/2017 09:41 PM

Wrong_bodypart.png View - Current behaviour (1.11 MB) Andrei Kortunov, 03/29/2017 09:41 PM

Associated revisions

Revision 4544caf7 (diff)
Added by Andrei Kortunov 7 months ago

Improved bodypart select fallback (fixes #2594)

History

#1 Updated by Jan Štěpánek over 2 years ago

This occurs also in the OSG branch v0.36.0

#2 Updated by Jan Štěpánek about 2 years ago

Still occurs in OSG v0.36.1 (compiled on 9/19/2015)
Nothing related in the log file.

#3 Updated by Jan Štěpánek about 2 years ago

Finally, I have found where is the problem. I have deleted all male better bodies textures. In openmw all male textures were missing after load my save game (female character), but also my body texture in 1st view disappeared. So I think, that 1st view uses male body textures for female characters, but up to version 0.35 everything was alright. See attached screenshots

#4 Updated by Jan Štěpánek 11 months ago

It is still present in version 0.41. Can anyone confirm this strange behavior?

#5 Updated by R. D. 11 months ago

I know that in morrowind.esm some characters use textures for the opposite sex for certain body parts, particularly the hands in first-person view. That might be the issue here, in which case this is a content bug, not an OpenMW one.

To the reporter, try checking the body part textures for the race/sex combination of your character. You may be able to make an .esp to fix it that way. I think it's also in the unofficial patch.

#6 Updated by R. D. 11 months ago

use textures for the opposite sex for certain body parts

Actually not textures but .nif files, which includes the textures.

Also I realized it may not be obvious where to look for the problems. To the reporter, open TES Construction Set and go to the Body Part tab, and look for the part with a name ending in hands.1st that matches the race/sex combination of your character.

#7 Updated by Jan Štěpánek 11 months ago

I checked all races in the game. But the question is, why this bug is present since osq switch? Is some reason for this?
I also tried "unofficial" better bodies derivates with the same result.

#8 Updated by Miroslav Remák 11 months ago

The problem seems to be the bodypart fallback logic in NpcAnimation::getBodyParts(...). When a 1st-person bodypart is missing (which is the case for Better Bodies), it could fall back to a 3rd-person bodypart of the opposite gender or the same gender, depending on the bodypart iteration order. Not sure how exactly vanilla handles these fallbacks...

#9 Updated by Jan Štěpánek 11 months ago

Ok, but up to version 0.35 this fallback was handled correctly also with openmw. Is reason for this osg switch or something else?

#10 Updated by Miroslav Remák 11 months ago

0.35 was before the OSG switch, so probably not. The fallback code as it is now appears to be identical to that of 0.34.

Doesn't look like this ever worked correctly, perhaps just by coincidence.

#11 Updated by Jan Štěpánek 11 months ago

Sorry, including 0.35.
Ok, so I/We will wait for some handy modder...

#12 Updated by Miroslav Remák 11 months ago

Jan Štěpánek wrote:

Sorry, including 0.35.

That does not match your original description. In any case, screenshot000.jpg is definitely before the OSG switch (judging by the FPS counter).

#13 Updated by Jan Štěpánek 11 months ago

Oh, you're right. Sorry, my mistake.

#14 Updated by Andrei Kortunov 8 months ago

I think, I found an issue. See file npcanimation.cpp, line 1113.
OpenMW current fallback

while(bIt != sBodyPartMap.end() && bIt->first == bodypart.mData.mPart)
{
    if(!parts[bIt->second])
        parts[bIt->second] = &*it;
    ++bIt;
}

takes first bodypart by race and suitable type (ESM::BodyPart) without gender check.
We need to add it. Something like:

while(bIt != sBodyPartMap.end() && bIt->first == bodypart.mData.mPart)
{
    if (female != (bodypart.mData.mFlags & ESM::BodyPart::BPF_Female))
    {
        ++bIt;
        continue;
    }

    if(!parts[bIt->second])
        parts[bIt->second] = &*it;
    ++bIt;
}

This patch needs for some additional testing.

#15 Updated by Alexei Dobrohotov 7 months ago

  • Category set to General
  • Status changed from New to Resolved
  • Target version set to openmw-0.43

#16 Updated by Andrei Kortunov 7 months ago

  • Status changed from Resolved to Closed
  • % Done changed from 0 to 100

#17 Updated by Alexei Dobrohotov 4 months ago

  • Assignee set to Andrei Kortunov

Also available in: Atom PDF