Project

General

Profile

Bug #3783

[Mod] Abot's Silt Striders 1.16 - silt strider "falls" to ground and glides on floor during travel

Added by R C about 1 year ago. Updated 4 months ago.

Status:
Closed
Priority:
Normal
Category:
Scripting
Target version:
Start date:
03/12/2017
% Done:

100%

Reproducibility:
Always
Operating system:
Other
Severity:
Normal

Description

I'm aware Abot's mods have many issues with OpenMW - simply reporting a bug I haven't seen reported here yet. To replicate, simply use the mod and attempt scenic travel on a silt strider. This bug was experienced traveling from Balmora to Vivec.

Mod: http://www.nexusmods.com/morrowind/mods/42267/

So to describe the bug again: on selecting, "scenic travel" the player is placed in a silt strider, which then "drops" down to the ground (the legs seem to be missing) and just glides along the floor until reaching the destination, often clipping through the landscape.

This video showcases how the mod is supposed to function: https://www.youtube.com/watch?v=wtzei5ECwd4

When I asked Abot what the issue could be, they said it's likely that the "strider collision is not working."

Screenshot_20170314_221400.png View (130 KB) Andrei Kortunov, 03/14/2017 07:14 PM

Screenshot_20170314_221333.png View (142 KB) Andrei Kortunov, 03/14/2017 07:14 PM

Screenshot_20170314_220145.png View (1.12 MB) Andrei Kortunov, 03/14/2017 07:15 PM

Screenshot_20170314_215817.png View (1.13 MB) Andrei Kortunov, 03/14/2017 07:15 PM

meches_abot_ss.zip - meches (5.36 MB) Yar Kirillov, 03/24/2017 08:17 PM

screenshot003.png View (2.12 MB) Yar Kirillov, 03/24/2017 08:22 PM

screenshot004.png View (1.86 MB) Yar Kirillov, 03/24/2017 08:22 PM

Associated revisions

Revision c908ad2f (diff)
Added by Andrei Kortunov 4 months ago

Do not allow to place actors underground via SetPos (bug #3783)

History

#1 Updated by Andrei Kortunov about 1 year ago

Silt strider models in Abot's plugin have strange bounding boxes (without legs). It seems to be related to bug https://bugs.openmw.org/issues/2787

Maybe vanilla engine uses actual mesh dimensions rather than bounding boxes?

#2 Updated by Yar Kirillov about 1 year ago

Change bounding box via nifskope. Doesn't help.
Animation works.

#3 Updated by Andrei Kortunov about 1 year ago

I found a bug in SetPos function.
Vanilla SetPos has some kind of collision detection.

In OpenMW
SetPoz Z [pos]
places pc at [pos] Z position.
In vanilla Morrowind
SetPoz Z [pos]
places NPC at [pos] Z position only if [pos] is higher than terrain position.

Try to select any NPC in console mode and type something like:
SetPos Z -1000
in OpenMW NPC falls through the ground, in vanilla game NPC is placed on the terrain.

Abot uses this trick to emulate collision detection:

elseif ( z1 > -1000 )
set z1 to ( z1 - 10 ) ; stay on the floor
endif

and SetPos z1 is called in every frame.

Result:
In vanilla game silt strider stays on the ground.
OpenMW sets siltstrider Z position to near -1000 after few seconds of travelling.

#4 Updated by Andrei Kortunov 8 months ago

  • Status changed from New to Confirmed
  • Reproducibility changed from Have not tried to Always
  • Operating system changed from MacOS to Other

FYI: I tried to add this code to SetPos function handler

float terrainHeight = -std::numeric_limits<float>::max();
if (ptr.getCell()->isExterior())
    terrainHeight = MWBase::Environment::get().getWorld()->getTerrainHeightAt(osg::Vec3f(ax, ay, az));

if (az < terrainHeight)
    az = terrainHeight;

Looks like it works, but silt strider is rotating repeatedly (I have no idea why).

#5 Updated by R C 8 months ago

Andrei Kortunov wrote:

Looks like it works, but silt strider is rotating repeatedly (I have no idea why).

Just letting you know that this seems to happen with another of Abot's mods as well - maybe it'll help with figuring out the issue?

Abot'S Gondoliers: http://www.nexusmods.com/morrowind/mods/43291/?

When using that mod, not only does the character float above the gondolier, but the boat rotates weirdly repeatedly.

#6 Updated by R C 8 months ago

To clarify: it happens with another of Abot's mods when using OpenMW . In vanilla it works without issues.

#7 Updated by Alexei Dobrohotov 7 months ago

  • Category set to Physics

#8 Updated by Andrei Kortunov 4 months ago

When using that mod, not only does the character float above the gondolier, but the boat rotates weirdly repeatedly.

Looks like something wrong with the Face function handling.

#9 Updated by Andrei Kortunov 4 months ago

Gondolier's scripts calling Face function too often. It seems goldolier have several conflicting AiFace packages, which force him to rotate in different directions.
We can cancel previous AiFace package when add a new one.

#10 Updated by Andrei Kortunov 4 months ago

From other hand, gondoliers and Silt Striders from mod have AiWander packages, despite they have no AI packages in the editor. A default fallback?

#11 Updated by Andrei Kortunov 4 months ago

A small correction: AiWander packages with the 0 wandering distance, so they just try to return to their spawn position.

#12 Updated by Andrei Kortunov 4 months ago

But anyway PR 1477 fixes rotation issue.

#13 Updated by Andrei Kortunov 4 months ago

  • Category changed from Physics to Scripting
  • Status changed from Confirmed to Resolved
  • Assignee set to Andrei Kortunov
  • Target version set to openmw-0.44
  • % Done changed from 0 to 100

#14 Updated by Andrei Kortunov 4 months ago

  • Subject changed from [Mod] Abot's Silt Striders 1.16 - silt strider collision not functioning, silt strider "falls" to ground and glides on floor during travel to [Mod] Abot's Silt Striders 1.16 - silt strider "falls" to ground and glides on floor during travel

#15 Updated by Andrei Kortunov 4 months ago

the character float above the gondolier

That's because one actor can not stand on other actor. Morrowind has a quirk: do not update collisions for non-moving actors (#3803).

#16 Updated by Alexei Dobrohotov 4 months ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF