openmw issueshttps://gitlab.com/OpenMW/openmw/-/issues2023-12-21T07:36:17Zhttps://gitlab.com/OpenMW/openmw/-/issues/7575Minor issues in Stormrider2023-12-21T07:36:17ZalefurxMinor issues in StormriderI'm using Stormrider (https://www.nexusmods.com/morrowind/mods/6050) with the Stormrider Ship Plugin OpenMW Fix (https://www.nexusmods.com/morrowind/mods/47780) and although navigation works mostly fine, there are still two issues:
1) U...I'm using Stormrider (https://www.nexusmods.com/morrowind/mods/6050) with the Stormrider Ship Plugin OpenMW Fix (https://www.nexusmods.com/morrowind/mods/47780) and although navigation works mostly fine, there are still two issues:
1) Using manual turn can make the ship/boat also increase/decrease its speed, despite it should only turn it left or right without changing speed (using auto turn - with mouse - doesn't cause the issue).
2) The ship/boat has no collision and so it can be clipped inside rocks and other obstacles on the water without damaging it.
OpenMW 0.48 Win11https://gitlab.com/OpenMW/openmw/-/issues/7570Repeated calls to SetPos make actors lose collision2023-09-07T21:15:56ZEvil EyeRepeated calls to SetPos make actors lose collisionStarting the following script on an NPC makes it possible to walk through them once they teleport back to their initial position. Affects 0.48 and master, does not affect 0.47 or Morrowind.exe. Disabling async physics doesn't change anyt...Starting the following script on an NPC makes it possible to walk through them once they teleport back to their initial position. Affects 0.48 and master, does not affect 0.47 or Morrowind.exe. Disabling async physics doesn't change anything. Happens in both exteriors and interiors.
```
Begin warp
float posX
float posY
float posZ
float timer
float tmp
if ( timer == 0 )
set posX to ( GetPos X )
set posY to ( GetPos Y )
set posZ to ( GetPos Z )
set tmp to ( posX + 130 )
SetPos X tmp
set tmp to ( posY + 130 )
SetPos Y tmp
endif
set timer to ( timer + GetSecondsPassed )
if ( timer > 5 )
SetPos X posX
SetPos Y posY
SetPos Z posZ
set timer to 0
StopScript warp
endif
End
```https://gitlab.com/OpenMW/openmw/-/issues/7386Player character doesn't slide off flying creatures that are ascending or des...2023-05-21T15:35:10ZAbdu SharifPlayer character doesn't slide off flying creatures that are ascending or descendingPart of #6120 but probably should have its own issue, this is a showcase of the issue:
![no_netch_in_the_way](/uploads/7456515c91f430ebaf8c164f0b7a12ba/no_netch_in_the_way.mp4)
When the PC tries to land/jump while above/below a flying ...Part of #6120 but probably should have its own issue, this is a showcase of the issue:
![no_netch_in_the_way](/uploads/7456515c91f430ebaf8c164f0b7a12ba/no_netch_in_the_way.mp4)
When the PC tries to land/jump while above/below a flying creature; Morrowind allows the PC to slide off them and doesn't halt the falling down or the jumping upwards, in OpenMW you go through them if they were flying downwards or upwards, and other times you may collide with them.https://gitlab.com/OpenMW/openmw/-/issues/7333Teleporting in Ultimate Galleon can spawn the player character underneath the...2023-12-22T14:06:53ZalefurxTeleporting in Ultimate Galleon can spawn the player character underneath the shipSo, as I mentioned here (https://gitlab.com/OpenMW/openmw/-/issues/6807), there are still two issues remained to fix to say Ultimate Galleon is completely fixed on OpenMW.
Previously you couldn't use the navigation controls at all, nothi...So, as I mentioned here (https://gitlab.com/OpenMW/openmw/-/issues/6807), there are still two issues remained to fix to say Ultimate Galleon is completely fixed on OpenMW.
Previously you couldn't use the navigation controls at all, nothing happened if you tried to navigate: this is now _mostly_ fixed. In particular, this is what still needs to be fixed:
1. ~~You can navigate, but you have to keep CTRL constantly pressed (in Morrowind.exe you only needed to press it once to access the navigation controls)~~. Not a real issue, it works as in vanilla Morrowind. To avoid keeping CTRL constantly pressed you just need to enable the toggle sneaking option in OpenMW settings.
2. Sometimes when you use fast travel or get out of the interior of the ship, you spawn in water underneath the ship (this doesn't happen in Morrowind.exe). This is the only issue remained.
Tested on OpenMW 0.49, Windows 11.
PS: Also, since modhistory.com is now down, I'm posting a Wayback Machine link where you can still download the mod, in order to test it: https://web.archive.org/web/20161103114752/http://mw.modhistory.com/download-53-11747
You may also want to download this little patch, which makes the acquisition of the ship way easier: https://web.archive.org/web/20161103133923/http://mw.modhistory.com/download-53-10767https://gitlab.com/OpenMW/openmw/-/issues/7328NPCs jump up and down when next to each other2023-07-13T04:16:23ZAntony VasilievNPCs jump up and down when next to each otherWhen NPCs are next to each other, they sometimes jump in place. They can even hover in the air.
Win7X64Ent OpenMW 0.48RC9 and latest 0.49 master.
I have Russian MTB and Eng GOTY. It does not depend on the version of the game.
The problem...When NPCs are next to each other, they sometimes jump in place. They can even hover in the air.
Win7X64Ent OpenMW 0.48RC9 and latest 0.49 master.
I have Russian MTB and Eng GOTY. It does not depend on the version of the game.
The problem occur in a clean vanilla install without any mods. New game or loaded save doesn't matter.
I don't see any errors related to the problem in the log.
Many thanks to the developers who fixed the issue with jumping when interacting with the player. However, the problem still exists when NPCs interact with each other.
0.48: https://www.youtube.com/watch?v=RsmHYS-o8uw
0.49: https://www.youtube.com/watch?v=g8I4-7Zn6C4
old: https://www.youtube.com/watch?v=V0XTfhRwpuc
Happens with Smooth Movement enabled.https://gitlab.com/OpenMW/openmw/-/issues/7327Enemy archers miss when the player is up close2024-02-22T00:26:11ZAntony VasilievEnemy archers miss when the player is up closeAll archers consistently miss in melee regardless of Marksman skill.
Win7X64Ent
OpenMW 0.48RC9 and latest 0.49 master.
I have Russian MTB and Eng GOTY. It does not depend on the version of the game.
The problem occur in a clean vanilla i...All archers consistently miss in melee regardless of Marksman skill.
Win7X64Ent
OpenMW 0.48RC9 and latest 0.49 master.
I have Russian MTB and Eng GOTY. It does not depend on the version of the game.
The problem occur in a clean vanilla install without any mods. New game or loaded save doesn't matter.
I don't see any errors related to the problem in the log.
https://www.youtube.com/watch?v=O0oJBRresUY
Old videos:
https://www.youtube.com/watch?v=scCZIIEgWyg
https://www.youtube.com/watch?v=Aggzr-Mt3Eg
https://www.youtube.com/watch?v=v1hgKo-Jd3ghttps://gitlab.com/OpenMW/openmw/-/issues/7218Async physics in third person affects performance without bullet multithread2023-03-25T14:00:41ZCM AugustAsync physics in third person affects performance without bullet multithreadSwitching to third person will, seemingly, cause mechanics graph to take just as much time as async physics. In busy scenes this amounts to a large increase in frame time. Easily reproducible by entering third person, and is more obvious...Switching to third person will, seemingly, cause mechanics graph to take just as much time as async physics. In busy scenes this amounts to a large increase in frame time. Easily reproducible by entering third person, and is more obvious in physics-heavy scenes or by running against complex collision meshes.
![screenshot2312](/uploads/d6832bea6e8796a58a5078cffe729c4e/screenshot2312.png)https://gitlab.com/OpenMW/openmw/-/issues/7067Make TCL work on Non-playable characters2022-12-26T11:38:47ZAbdu SharifMake TCL work on Non-playable charactersTCL can only work on the player character in OpenMW.
Morrowind: TCL works globally, this would be very prone to causing issues and may have unintended results, OpenMW doesn't have a fall fail-safe either.
Later games: apparently the co...TCL can only work on the player character in OpenMW.
Morrowind: TCL works globally, this would be very prone to causing issues and may have unintended results, OpenMW doesn't have a fall fail-safe either.
Later games: apparently the command can target NPCs, for example in Skyrim:
UESP: "Essentially, you can fly. Point in a direction and move wherever you want. You can also move through buildings and even the landscape. This command is targeted; if no actor is selected it will turn off collision for the player while keeping other actors stuck in place. It is possible to deselect any target reference by double clicking the same object or area in the landscape, which will cause "tcl" to default itself to target the player."
Aside from how complicated it is in Skyrim (and that we already have ToggleAI), there's still a benefit to having this command work on Targets (like followers) since it allows to unstuck them and can also make them move in the upwards or downwards direction (what allows to change their elevation and get them out of places they can't avoid unless they jump).https://gitlab.com/OpenMW/openmw/-/issues/7011Save and load inertial force for actors2023-07-13T05:20:44ZelsidSave and load inertial force for actorsThis is required to preserve actors movement as no save and loading is done. Also this will affect actors moving while player leaves the cell.
It should be a part of [ESM::CreatureStats](https://gitlab.com/OpenMW/openmw/-/blob/cd8b20439...This is required to preserve actors movement as no save and loading is done. Also this will affect actors moving while player leaves the cell.
It should be a part of [ESM::CreatureStats](https://gitlab.com/OpenMW/openmw/-/blob/cd8b20439ec707574826679a8f851546c78e294e/components/esm3/creaturestats.hpp#L24) and should be used to initialize [MWPhysics::Actor::mForce](https://gitlab.com/OpenMW/openmw/-/blob/cd8b20439ec707574826679a8f851546c78e294e/apps/openmw/mwphysics/actor.hpp#L199).
There is no such behaviour in the vanilla Morrowind so this is rather a feature than a bug.https://gitlab.com/OpenMW/openmw/-/issues/6950Allow custom collision shape for quadrupeds2023-12-21T07:31:16ZCM AugustAllow custom collision shape for quadrupedsQuadrupedal creatures in Morrowind are ill-served by the standard bounding box, which makes them appear to float in mid-air on any slope. This is even worse in OpenMW as it does not allow the dubious clipping of bounding boxes into geome...Quadrupedal creatures in Morrowind are ill-served by the standard bounding box, which makes them appear to float in mid-air on any slope. This is even worse in OpenMW as it does not allow the dubious clipping of bounding boxes into geometry as in vanilla.
Creatures from TES4 onward use a custom collision shape consisting of two spheres and a capsule. This allows their collision to tilt and follow the landscape in a way that, even with no IK to speak of (#5503), eliminates most of the floating altogether. This applies even to improbable creatures like mudcrabs, which are infamous for their floating on slopes. Aside from being necessary for TES4 support, this feature will allow mods to greatly improve TES3 creature visuals by the new collision shape alone.
https://streamable.com/2ocubl
https://streamable.com/402581https://gitlab.com/OpenMW/openmw/-/issues/68201.0 unit floor offset is broken2022-08-02T21:00:49Zwareya1.0 unit floor offset is brokenFresh launch of a new game, OpenMW and Morrowind.exe, the player is one unit closer to the ground than they're supposed to be.
There's a 1.0 unit offset above the floor in the movement solver that's supposed to prevent this. It seems to...Fresh launch of a new game, OpenMW and Morrowind.exe, the player is one unit closer to the ground than they're supposed to be.
There's a 1.0 unit offset above the floor in the movement solver that's supposed to prevent this. It seems to not be broken at least sometimes.
![image](/uploads/9ad31b41f8493a5469236fe1893e6dad/image.png)
![image](/uploads/d7765dc4a0c319de1cf4764c957afb0c/image.png)https://gitlab.com/OpenMW/openmw/-/issues/6426Some water pits can't be climbed out of2022-02-21T02:47:24ZwareyaSome water pits can't be climbed out of...But can in Morrowind.exe.
This is because of the strange way that Morrowind.exe lets the bottom parts of actors intersect objects, and OpenMW doesn't. And OpenMW *probably shouldn't* do what Morrowind.exe is doing, because it would b......But can in Morrowind.exe.
This is because of the strange way that Morrowind.exe lets the bottom parts of actors intersect objects, and OpenMW doesn't. And OpenMW *probably shouldn't* do what Morrowind.exe is doing, because it would be hell for bullet and overcomplicate the movement solver, but this is worth tracking either way, I think. Also you need to use `fixme` and `tcl` constantly in Morrowind.exe because of collision bugs, but only rarely in OpenMW, so rare cases like this are OK from an overall perspective, I think.
morrowind.exe: https://www.youtube.com/watch?v=n_9-iDPxNVo
openmw: https://www.youtube.com/watch?v=n-1En0tOyuEhttps://gitlab.com/OpenMW/openmw/-/issues/6410Some actors should use mesh translation for position offset2023-07-13T06:09:36ZFrederic ChardonSome actors should use mesh translation for position offsetObject and collision shape doesn't use the same origin, so we translate position in several parts of the engine before interacting with physics.
For compatibility with vanilla, we translate by the collision shape half-extent instead of ...Object and collision shape doesn't use the same origin, so we translate position in several parts of the engine before interacting with physics.
For compatibility with vanilla, we translate by the collision shape half-extent instead of the difference between origins. It seems that in some cases it is incorrect. One such example are silt strider used by abot's scenic travel. Along z axis, half extent is 50 whereas mesh translation is 1010. When we apply the usual translation, the collision shape ends into the ground or in objects near the ground (rocks, etc), that in turn makes the unstuck code push the actor higher. Since it is controlled by scripts the actor vibrate along z axis. Using the mesh translation solve the issue.https://gitlab.com/OpenMW/openmw/-/issues/6383Actors standing in the same spot is a major performance hit2023-08-30T19:28:48ZAbdu SharifActors standing in the same spot is a major performance hitIf you're spawning for example ~50 guards; you'll notice that the physics performance drops down marginally, with 100 guards it can get up to ~500ms (even with async physics on), when actors start to roam around rather than standing in t...If you're spawning for example ~50 guards; you'll notice that the physics performance drops down marginally, with 100 guards it can get up to ~500ms (even with async physics on), when actors start to roam around rather than standing in the same place, the physics performance returns to normal and the game is playable again:
![100_guards](/uploads/908f4be6f0c6c17e6b1f703b183857ba/100_guards.jpg)
This is a problem even with 0.46 and I'm not sure if there's anything that can be done about it, but it's something worth noting, also for whatever reason "World" is ~100ms in here which is very interesting.
[100_Guard.omwsave](/uploads/3d7bd390137546b9a4873ad586d8ece9/100_Guard.omwsave)https://gitlab.com/OpenMW/openmw/-/issues/6369Auto generate simple collision mesh for complex objects that do not have a co...2023-07-13T04:54:37Zpsi29aAuto generate simple collision mesh for complex objects that do not have a collision meshComing out of the discussions in #6352, #5577 and on discord internally and with TR; there is a desire to see OpenMW do the following: create a simple collision mesh for complex objects that do not have collision meshes of their own.
So...Coming out of the discussions in #6352, #5577 and on discord internally and with TR; there is a desire to see OpenMW do the following: create a simple collision mesh for complex objects that do not have collision meshes of their own.
So we go through the checklist:
* does the object not have a collision mesh
* does any part of an object's volume of 1 cubic yard (meter?) exceed 1000 triangles (or better metric?)
* warn the user about the object that is highly detailed and will cause performance issues
* create a cube/sphere/capsule collision mesh for that object based on its max x,y,z dimensions
This is a quick and dirty solution, but should it prove useful we can further refine this in another MR that segments and simplifies the meshes to feed into Bullet.
This should forgo the need for !1317, satisfy TR (and modders) that they are made aware of assets that don't have collision meshes so they can be fixed.
This does not mean we shouldn't pursue better ways of using Bullet and seeing if it can't be improved upstream as well. If we that does happen, we can make the triangle threshold higher.
If this works out well, we can probably do an additional check if the asset's collision mesh is also above some threshold to also warn about that.https://gitlab.com/OpenMW/openmw/-/issues/6352FPS drop when standing on unoptimized modded large outdoor urns2023-07-13T06:09:10ZDave CousineauFPS drop when standing on unoptimized modded large outdoor urnsBasically just standing on any urn (as found in cities; not sure about the urns that are in ancestral tombs) makes the FPS drop from ~75 all the way down to 15-20. It does not happen when standing on crates or baskets.
On the F3 graph t...Basically just standing on any urn (as found in cities; not sure about the urns that are in ancestral tombs) makes the FPS drop from ~75 all the way down to 15-20. It does not happen when standing on crates or baskets.
On the F3 graph thing, it seems to be related to "phys" which goes from about 2 to about 258.
On the F10 profiler it says, I think, that the convexSweepTest takes about 240-260ms. (When not standing on the urn it's 3-5ms.)
This does not happen in my non-OpenMW, though it's pretty far from true vanilla (MW FPS Optimizer + Code Patch).
This is OpenMW 0.46.
An example urn in Ald'ruhn:
```
Report time: 2021.10.20 05:51:44 UTC
Content file: Morrowind.esm
RefNum: 49298
RefID: urn_02
Memory address: 000001A1480EBD20
Cell: Ald-ruhn
Grid: -3 6
Coordinates: -16711.4 54538.4 2046.72
Model: meshes\o\Contain_urn_02.NIF
```
I notice that there are three different urn models here and all three cause the issue.https://gitlab.com/OpenMW/openmw/-/issues/6202MR !1085 seems to have caused some physics problems2023-07-13T06:08:50ZHristos N. TriantafillouMR !1085 seems to have caused some physics problemsWhile playing I am noticing that my player character (and all other actors) stop moving, but the scene keeps rendering (my frametime graph doesn't stop). After some time I'll begin to move again (usually), and if I pressed any movement k...While playing I am noticing that my player character (and all other actors) stop moving, but the scene keeps rendering (my frametime graph doesn't stop). After some time I'll begin to move again (usually), and if I pressed any movement keys while I was stuck, I'd suddenly "teleport" to where I would have been if moving normally.
~~I did a git bisect and found that `bd1bf4ec731dfc0e8cb50c3476361707e6b2aa23` seemed to be the bad commit.~~
cc @fr3dz10 since we talked about this on Discord.
Details on my system and how I produce the issue:
* This happens while walking around, with mods or totally vanilla Morrowind.
* I spawn in Seyda Neen and walk up the western coast to Gnaar Mok, then I walk back south. It usually happens after some time (though it has happened in the first few minutes at least once)
* The message `Error in frame: moveTo: object is not in this cell` is repeated spammed in the logs while playing.
* I'm playing on Linux and using LTO (gcc 10.2.1)
* This is my settings.cfg:
[settings.cfg](/uploads/5f04c014a75f44b0bdcba955877c06e9/settings.cfg)https://gitlab.com/OpenMW/openmw/-/issues/6160Use physics for all movement2021-10-25T20:32:49ZFrederic ChardonUse physics for all movementAt the moment, movements are handled in 4 different ways depending on the object type:
- actors position is set by the physics simulation based on velocity, which depends on game mechanics
- projectile are similar to actors, but simpler
...At the moment, movements are handled in 4 different ways depending on the object type:
- actors position is set by the physics simulation based on velocity, which depends on game mechanics
- projectile are similar to actors, but simpler
- objects position is set by game mechanics, in case of collision then the physics unstuck logic moves actors out of the way or get them stuck (https://gitlab.com/OpenMW/openmw/-/issues/5856)
- a hybrid system is used for doors: their position is set by mechanics but there is some collision detection afterwards. Actors may still get stuck inside the door (https://gitlab.com/OpenMW/openmw/-/issues/5683)
Aforementioned bugs were closed because the unstuck logic manages to hide from the player the fact that the objects are pushed through the actors, nevertheless this is backward. Also there is no guarantee that it will work in slightly different setup (faster rotation, different geometry).
My plan is to handle all objects similarly as actors, that is the mechanics set a velocity, and the physics find a correct position. For projectile this is easy as most of the job was already done, this is mostly refactoring, for objects and doors it's a little bit more complex. I'll probably split in 3-4 MR. In the end, it would look like this :
```
class MWPhysics::Door
{
/* ... */
void setRotation(osg::Quat rotation);
/* ... */
};
class MWPhysics::MovementSolver
{
/* ... */
static move(Door& actor.....);
/* ... */
};
World::rotateDoor(door)
{
/*...*/
rotateObject(door, physDoor->getSimulationResult()); // update world according to last physics run result
update(door); // what's next?
if (needRotate)
physDoor->setRotation(rotation); // and one more round
/*...*/
};
```
The benefits are:
- short term: reliable handling of movement without relying on unstuck logic (which I personally consider a stop gap: we shouldn't be stuck in the first place). Also, we can easily handle situation which are now impossible to handle due to lack of collision detection, such as stopping the bar door when it collides with an actor below
- longer term: potential for cool stuff. Now Morrowind's Laws of Physics are scattered in several not so obvious places (and are also very brittle), meaning that if we want to modify them for mods or other games, it gets hairy. Once this is done, objects behaviour will be defined in a few (I think 4) move() functions in MovementSolver, which is relatively easier to alter. There's still a long way before that, but we can start some baby steps.https://gitlab.com/OpenMW/openmw/-/issues/6138Navmesh and physics actors collision shape difference leads to reduced amount...2023-12-27T09:40:28ZelsidNavmesh and physics actors collision shape difference leads to reduced amount of available pathsRecast navigation library supports only cylinders as actors' collision shape but after https://gitlab.com/OpenMW/openmw/-/merge_requests/414 was merged mostly non-rotating boxes are used in physics movement solver. This creates following...Recast navigation library supports only cylinders as actors' collision shape but after https://gitlab.com/OpenMW/openmw/-/merge_requests/414 was merged mostly non-rotating boxes are used in physics movement solver. This creates following issues:
1. A cylinder with radius equal to box size width allows more paths than actors can walk because bounding box projection is different depending on rotation since they are non-rotating.
* Escorting Malexa during [Kidnapped by Cultists](https://en.uesp.net/wiki/Morrowind:Kidnapped_by_Cultists):
[escorting_malexa.omwsave](/uploads/b100faa552f17c0a6f6ad387f94566f4/escorting_malexa.omwsave)
![malexa_stuck](/uploads/10df04162d92cb62d67ed4287268ae58/malexa_stuck.mp4)
2. Cylinder with radius `= sqrt(2) * max(x, y)` prevents actor to find some of valid paths:
* `Suran, Desele's House of Earthly Delights`:
[bar_fight.omwsave](/uploads/2072b86b770bc07e9cf1fdeb95b7d428/bar_fight.omwsave)
![screenshot069](/uploads/ddb9fe3aa525503483bf2396319c819d/screenshot069.png)
* `Suran (6, 6)`:
[suran_rope_bridge.omwsave](/uploads/639d8361a601ff8d234afb9a3ea9819f/suran_rope_bridge.omwsave)
![screenshot070](/uploads/83ddd20e67b9198caddd799717696017/screenshot070.png)
* `New game`: ![screenshot064](/uploads/d3e83f6d5ba410cc8b8e86be4e13d703/screenshot064.png)
* Door at `Sadrith Mora (17, 4)`: https://gitlab.com/OpenMW/openmw/-/issues/6994
There are possible solutions:
1. Replace bounding box collision shape with cylinder.
2. Always rotate collision boxes. This will make a box projection to the front plane always matching the cylinder.
3. Support non-rotating collision box in recast navigation. This requires some effort to convince recast navigation developers and some time to implement without losing much performance.https://gitlab.com/OpenMW/openmw/-/issues/6104Lost Shipwreck glitches outside interiour when Water walking is active and en...2021-09-26T13:43:14ZSacha LigthertLost Shipwreck glitches outside interiour when Water walking is active and entering the lower decks. (v0.47RC3)During a modded play through (and later unmodded to verify that this is an issue) I stumbled on this wreck: https://en.uesp.net/wiki/Morrowind:Lost_Shipwreck
I had water walking active, went to the hatch and entered a ship.
![screenshot...During a modded play through (and later unmodded to verify that this is an issue) I stumbled on this wreck: https://en.uesp.net/wiki/Morrowind:Lost_Shipwreck
I had water walking active, went to the hatch and entered a ship.
![screenshot031](/uploads/8f4f6ad929fcbb4103c9c4b9ec75d060/screenshot031.png)
What I instead got was this weird nothingness and the interior of a ship.
![screenshot032](/uploads/fc79c45dd9f407a58c3f810af0ca6ca0/screenshot032.png)
To reproduce this; give yourself superpowers, jump to this ship linked above, in the console execute `player->setwaterwalking 1` and enter the hatch to the lower decks. Enjoy the glitched view of the interior.
( OS is Ubuntu 20.04 running OpenMW v0.47 RC3 )