Перейти к содержимому

Set440

Set440

Дата регистрации: 25 ноя 2019
Офлайн Активность: дек 15 2019 06:37
-----

OpenMW не собирается на macOS Catalina (string.h)

26 Ноябрь 2019 - 02:28

Я очень хочу наложить на сорцы патчи резиста магии (он имбалансный), но мне потом надо собрать движок.

 

Я поставил все зависимости: Пакет Qt 5.5.1 (не из brew), XCode+CommandLineTools, все сборочные утилиты из HomeBrew

 

Выкачал OpenMW-deps, поправил пути в CMake Qt (на OpenGL+AGL)

 

CMake отработал правильно:

export PATH_TO_QT_INSTALLATION="/Users/seth/Qt5.5.1/5.5/clang_64/lib/cmake/"
export PATH_TO_DEPENDENCIES_DIR=/Users/seth/openmw-deps

cmake \
    -D CMAKE_PREFIX_PATH="$PATH_TO_DEPENDENCIES_DIR;$PATH_TO_QT_INSTALLATION" \
    -D SDL2_INCLUDE_DIR="$PATH_TO_DEPENDENCIES_DIR/include/SDL2" \
    -D OPENGL_INCLUDE_DIR="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers" \
    -D OPENAL_INCLUDE_DIR="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Versions/A/Headers" \
    -D CMAKE_OSX_SYSROOT="$MAC_OS_VERSION" \
    -D DESIRED_QT_VERSION=5 \
    -D CMAKE_BUILD_TYPE=Debug \
    -D BUILD_MYGUI_PLUGIN=FALSE \
    -G"Unix Makefiles" \
    ../openmw/

Но Make завершается с ошибкой, так-как не может найти string.h в XCode-CommandLineTools

build make
[  0%] Building CXX object extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/videoplayer.cpp.o
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.cpp:1:
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.hpp:6:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:642:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:61:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string.h:61:15: fatal error:
      'string.h' file not found
#include_next <string.h>
              ^~~~~~~~~~
1 error generated.
make[2]: *** [extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/videoplayer.cpp.o] Error 1
make[1]: *** [extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/all] Error 2
make: *** [all] Error 2

Может кто подскажет, где копать?


Способ исправления падающих NPC в OpenMW

25 Ноябрь 2019 - 11:38

Все пользователи МОРРОШИНД знают наверно такую проблему, что неписи проваливаются сквозь статики даже на ОпенМВ.

 

Мне удалось выяснить подробности о причинах таких провалов.

 

ПОДРОБНОСТИ:

 

Во-первых: давайте определимся, что неписи не падают на землю или в воду, а СТАВЯТСЯ туда инициализацией. Например погонщик из Гнисиса при каждом "падении" с высоты имеет полное здоровье, а лодочница из Тель Аруна стоит под водой на земле... — всё это невозможно при ФИЗИЧЕСКОМ падении. Тоесть, баг никак не относится к физическому движку ВООБЩЕ.

 

ПРИЧИНЫ ПАДЕНИЙ:

 

Непись стоит (или инициализирован в редакторе) на неровности сложного меша, или на стыках мешей.

 

РЕШЕНИЕ ПРОБЛЕМЫ:

 

Неписей нужно передвинуть с неровности на горизонтальную плоскость, дальше от стыков (это будет работать с неписями из Вивека, и дядей из Гнисиса)

 

Тех, что передвинуть невозможно — подпереть невидимой куб-коллизией (тётю из Тель Аруна двигать некуда)

Куб-коллизия всегда находится в секции АКТИВАТОРЫ (имеет высший приоритет), а поскольку она низкополигональная, плоская и не включена в списки отрисовки — срабатывает моментально быстрее всех, и очень надёжно.

 

БЛАГОДАРНОСТИ:

 

В расследовании помогал Scarab-Phoenix

 

PS:

 

Баг связан со сложной математикой вычисления границ мешей и акторов — создатели движка его могут пофиксить ОЧЕНЬ НЕ СКОРО. К счастью, он довольно просто чинится вот-таким костылём. Потому я хочу попросить команду GFM обратить внимание на мой пост.

 

Нам очень повезло, что баг очень предсказуем и логичен, и ведёт себя скорее как фича, нежели что-то паранормальное.

 

https://drive.google...PezlWp8ber0kOFw — Фиксит погонщика в Гнисисе и лодочницу из Тель Аруна — они падают при каждом переходе локаций.


Top.Mail.Ru