Project

General

Profile

Bug #1298

Displaced silt strider caravaners

Added by Justin Morgan almost 4 years ago. Updated about 1 month ago.

Status:
Confirmed
Priority:
Normal
Assignee:
-
Category:
Animation
Target version:
Start date:
04/25/2014
% Done:

0%

Reproducibility:
Always
Operating system:
Other
Severity:
Normal

Description

I have noticed that the caravaners for the silt strider in Balmora and Ald'ruhn seem to fall off the ledge that leads up to the silt strider. In fact, the Ald'ruhn caravaner was dead when I went back to him.
The screenshot is of Balmora.

screenshot021.png View - Balmora silt strider (2.3 MB) Justin Morgan, 04/25/2014 11:19 PM

aruhn.png View - Daynas Darys (673 KB) Justin Morgan, 05/06/2014 10:34 PM

GnisisCaravaner.jpg View (162 KB) Gordon Hales, 07/30/2014 12:59 AM


Related issues

Duplicated by OpenMW - Bug #2102: Silt Strider Caravaner wrong location Rejected 11/05/2014
Duplicated by OpenMW - Bug #1902: Silt strider drivers fall off platforms and end up in weird places Rejected 09/10/2014
Duplicated by OpenMW - Bug #3129: NPC positioning issue on reloaded cells Rejected 01/05/2016
Duplicated by OpenMW - Bug #3224: Missing NPC at Balmora Rejected 03/01/2016
Duplicated by OpenMW - Bug #4315: Mage's Guild guide blocking doorway Rejected 02/01/2018

History

#1 Updated by cc 9cii almost 4 years ago

This also happens in vanilla, but only after a long period of playtime. Usually the console command 'ra' fixes that (but I'm not sure if that works in openmw yet).

#2 Updated by scrawl . almost 4 years ago

We should probably disable movement accumulation on the turning and idle animations.

#3 Updated by scrawl . almost 4 years ago

  • Target version set to openmw-0.41

#4 Updated by cc 9cii almost 4 years ago

I can't replicate this issue (testing with rev 72b4945128). I added some console outputs and observed the positions after several cycles of save/load, exit/restart, silt strider travel, mage's guild travel, walking into/out of houses, etc. After about 1 hour of wall clock their positions are unchanged:

name "Selvil Sareloth" 
pos "-21226.648438, -18292.150391" 

name "Navam Veran" 
pos "-17654.550781, 54770.058594" 

#5 Updated by cc 9cii almost 4 years ago

If anyone else wants to verify, this is the code used in aiwander.cpp:

              if(!checkIdle(actor, mPlayedIdle) && playerDistSqr > helloDistance*helloDistance)
              {
                  mPlayedIdle = 0;
                  mIdleNow = false;
                  mChooseAction = true;

                  if("Selvil Sareloth" == actor.getClass().getName(actor) || "Navam Veran" == actor.getClass().getName(actor))
                  {
                      std::cout << "name \""<<actor.getClass().getName(actor)<<"\"" << std::endl;
                      std::cout << "pos \"" 
                                <<std::to_string(pos.pos[0])+", "+
                                  std::to_string(pos.pos[1]) <<"\"" << std::endl;
                  }

              }

#6 Updated by Jeffrey Haines almost 4 years ago

I think this might also relate to the issue where NPCs will walk off edges when using the aicombat package. This should be included in the re factored aipackage.

#7 Updated by Justin Morgan almost 4 years ago

My testing was in version 0.29.

The boat man in Tel Aruhn actually went into the water as shown in screenshot. I could still talk to him and travel though.

#8 Updated by Gordon Hales over 3 years ago

This is still a problem in 0.31. Attached is a screenshot of the Gnisis caravaner standing under his platform.

#9 Updated by scrawl . over 3 years ago

  • Duplicated by Bug #2102: Silt Strider Caravaner wrong location added

#10 Updated by scrawl . about 3 years ago

  • Target version changed from openmw-0.41 to openmw-future

Since this is an issue in the animation files that also affects vanilla MW, and is very difficult to fix, I am removing it from the 1.0 milestone.

#11 Updated by scrawl . about 3 years ago

  • Duplicated by Bug #1902: Silt strider drivers fall off platforms and end up in weird places added

#12 Updated by scrawl . over 2 years ago

  • Duplicated by Bug #3129: NPC positioning issue on reloaded cells added

#13 Updated by scrawl . about 2 years ago

  • Duplicated by Bug #3224: Missing NPC at Balmora added

#14 Updated by P M 11 months ago

This is something that is fixed by the Idle Animation Fix by Greatness7. It's an issue of the animation files (more specifically Idle, Idle2, Idle3, Idle4, Idle5, Idle6, Idle7, Idle8, Idle9 and IdleStorm). This doesn't seem as something that needs OpenMW's attention if you ask me.

#15 Updated by Alexei Dobrohotov 11 months ago

  • Category set to Animation
  • Reproducibility changed from Have not tried to Always
  • Operating system changed from Linux to Other

Thing is, there is a way to walk around this apparent resource issue, as noted by scrawl three years ago.

#16 Updated by scrawl . 7 months ago

  • Status changed from New to Confirmed

#17 Updated by Alexei Dobrohotov about 1 month ago

  • Duplicated by Bug #4315: Mage's Guild guide blocking doorway added

#18 Updated by Dark Locq about 1 month ago

Using ResetActors (RA) to fix this or anything else is an awful last resort, since it can undo hard player work to move people around with CommandHumanoid, and it'll also send companions back to where ever they were first found (possibly even a now-inaccessible place, depending on the mod).

#19 Updated by Andrei Kortunov about 1 month ago

We should probably disable movement accumulation on the turning and idle animations.

But it can break case when the idle movement is valid, e.g. for Almalexia in Sotha Sil.
IMO, fixing animations itself is a right way to fix this issue.

#20 Updated by scrawl . about 1 month ago

But it can break case when the idle movement is valid, e.g. for Almalexia in Sotha Sil.

Yes, and I think the dancers in suran have a lot of idle animation movement, too.

disable movement accumulation on the turning and idle animations.

There are two ways one could do that. Either apply the movement visually, but not apply it to the physics controller. Or totally ignore the movement.

Either way does not seem very practical. In the first case you can get NPCs glitching through walls. In the second case they will do awkward in-place animations.

Would it make sense for AIWander in exteriors to just move back to its initial position when it's slightly strayed from it? We have a field for the initial (editor-placed) position in CellRef, so at least that should work for NPCs that never moved from there.

Alternatively, when the "navmesh"https://github.com/OpenMW/openmw/pull/1633 feature is finished and merged, it might be easier to write an AI that can realize when it's dangerously close to a cliff and which way to back off from it.

#21 Updated by Andrei Kortunov about 1 month ago

Would it make sense for AIWander in exteriors to just move back to its initial position when it's slightly strayed from it?

Actually, we have a similar implementation, but for interiors too. It breaks Almalexia, RA and teleported actors.
PR https://github.com/OpenMW/openmw/pull/1477 was created to replicate vanilla behaviour - return back only after combat.

#22 Updated by scrawl . about 1 month ago

breaks Almalexia

Will Almalexia still break if the return-to-start code only runs after an idle animation has completed its cycle?

teleported actors

I suggested that the AI move back only if it's slightly strayed from it. If it's totally somewhere else now, then it wouldn't go back.

RA

Not sure what breaks there. The CellRef's position is the same position that RA resets to, anyway.

#23 Updated by Chris Robinson about 1 month ago

Would it be possible to give NPCs an AIWander package that has a very small radius around around their intended position, so that they would always attempt to stay within that area if they move away too far? Since the caravaners are legitimately moving, but there's nothing to tell them to stay in that spot and there's no guardrails to prevent them from moving off the edge, it feels to me like a content file problem. Particularly when considering they can move for other reasons, such as combat/flee AI or Command Humanoid, the NPC should know to go back to their service post when possible.

Also available in: Atom PDF