akortunov Опубликовано 4 апреля, 2018 Жалоба Поделиться Опубликовано 4 апреля, 2018 (изменено) Официальный сайт OpenMW Страница загрузки Ссылка на загрузку актуального билда для Win64 (обновляется ежедневно) Баг-трекер Wiki Список задач до релиза 1.0 Репозиторий с исходным кодом на GitLab Discord: OpenMW (в наличии русскоязычный канал) IRC: #openmw на irc.freenode.net Полезные ссылки: Реестр популярных модов для OpenMW с гайдами по установке Руководство по портированию ретекстуров в OpenMW OpenMW на Youtube OpenMW на GitLab Диздоки планов развития после 1.0 Сторонние проекты, основанные на OpenMW: TES3MP - реализация мультиплеера для OpenMW. Тема OpenMW на 4PDA - здесь можно найти сборки OpenMW для Android 5+ и гайды по решению проблем. OpenMW для VR - основан на OpenXR, готовые сборки (устаревшие) есть только для Windows. Порт на Switch - к сожалению, в настоящее время им никто не занимается. Что такое OpenMW? OpenMW - это попытка воссоздать игровой движок для популярной RPG TES3 Morrowind, полноценную реализацию всех особенностей игры с открытым исходным кодом. Для того, чтобы вы имели более полное представление о проекте, вот ключевые особенности OpenMW: Кроссплатформенность - запуск на Windows (7 или новее), Linux, MacOS X, Android (платформы x86 не поддерживаются). Виртуальная файловая система, позволяющая устанавливать моды в отдельные директории, а не засорять Data Files. Поддержка сжатых BSA-архивов для экономии места на диске. Исправление ошибок системного проектирования: "грязные" GMST записи в плагинах, проблема "удвоения" в сейвах, лимит на 255 плагинов и т.д. Улучшенный поиск пути - с помощью статического или динамического (на выбор) построения навигационной сетки на основе геометрии локаций (вместо использования вручную расставленных дизайнерами локаций маркеров). Улучшение интерфейса (поддержка TrueType-шрифтов, масштабирования интерфейса и миникарты, поддержка текстур высокого разрешения для элементов интерфейса, редактирования разметки интерфейса с помощью XML-файлов, клавиатурной навигации, поворота камеры с помощью гироскопов и т.д.). Улучшение графики (поддержка шейдеров постобработки, динамические тени от объектов, Distant Land (хоть и без генератора LOD-ов), анимированная трава, шейдер воды с поддержкой отражений в реальном времени, улучшенная система освещения без лимита в 8 источников света на объект, улучшенная система тумана и многое другое). Улучшенная поддержка анимаций (возможность использовать отдельные файлы для отдельных групп анимаций, возможность добавлять кастомные кости в скелеты, возможность задать новые анимации для топоров, булав и кинжалов, поддержка анимаций открытия-закрытия контейнеров). Начальная поддержка Lua-скриптов для расширения возможностей плагиностроения. Поддержка ICU для локализации Lua-скриптов, шейдеров постобработки и элементов интерфейса. Использование дополнительных ядер процессора для фоновых задач (например, для предварительной загрузки локаций для бесшовного перемещения по игровому миру или для обработки коллизий объектов). Отсутствие лимита 4Гб на адресуемую процессом игры память из-за поддержки 64-битных архитектур. Намного меньшее количество вылетов в сравнении с оригинальным движком. Возможность модификации движка под свои нужды (например, довольно популярен TES3MP - форк OpenMW с поддержкой мультиплеера). OpenMW выпущен под лицензией GPLv3, весь исходный код написан с нуля. Нужен ли оригинальный Morrowind для OpenMW? И да, и нет. ДА. Прежде чем использовать OpenMW, вы должны легально приобрести и установить Morrowind на ваш компьютер. OpenMW воcпроизводит только техническую сторону игры, и не содержит в себе каких-то материалов, защищенных авторским правом. Используются только данные уже установленной игры, либо с установочных файлов с диска или цифровой копии игры. НЕТ. OpenMW - самостоятельный игровой движок. Он может быть базой для тотальных конверсий, не использующих файлы Morrowind. В качестве примеров можно привести Robowind Construct и StarWind. Каково текущее состояние проекта? Статус OpenMW уже находится в состоянии "бета": основные функции реализованы, идет работа по оптимизации и паритету с MGE и MWSE. Кроме этого есть ряд проблем, в основном с физикой и поддержкой модов, использующих баги и недокументированные возможности оригинального движка. OpenMW играбелен (можно нормально пройти сюжет игры и аддонов, ветки гильдий и т.д.), хотя и местами уступает MGE в качестве графики, но выигрывает по стабильности, а на многих машинах и по производительности и скорости загрузки локаций. Какие технологии вы используете? OpenMW построен с использованием различных библиотек и инструментов с открытым исходным кодом: Языки программирования: C++ (стандарт C++17 с частичной поддержкой C++20), GLSL, Lua Графика: OpenSceneGraph Физика: Bullet Звук: OpenAL Ввод-вывод: SDL2 Интерфейс: MyGUI Поиск пути для ИИ: Recast & Detour Я не программист, как я могу помочь проекту? 1. Можно просто играть и отсылать багрепорты 2. Можно тестировать разрабатываемый код, до того, как он попадёт в основную ветку. Там же можно вести обсуждение и предлагать изменения. 3. Можно тестировать моды. Основная цель - выявить проблемы с совместимостью. 4. Можно исследовать механики оригинального движка, особенно актуально в области тонкостей работы скриптов. 5. Можно обновлять Wiki. 6. PR тоже не помешает, особенно если он позволит привлечь тестировщиков и плагиностроителей. 7. Можно донатить разработчикам на Patreon'е: psi29 — проджект лид, поможете закрыть траты на хостинг Capostrophic — тысяча и один фикс + вагон фич AnyOldName3 — тени в OpenMW David Cernat — работа над TES3MP Изменено 30 мая, 2023 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
Capostrophic Опубликовано 7 августа, 2018 Жалоба Поделиться Опубликовано 7 августа, 2018 скравл выковырял osganimation в сентябре прошлого года, но одну ссылку на библиотеку из cmakelists не убрал Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Там positioncell принимает переменные?Выжгли ли напалмом ограничения на количество ifов в скриптах? Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Там positioncell принимает переменные?Выжгли ли напалмом ограничения на количество ifов в скриптах?Да кто такие тонкости знает? Проверьте.Вроде обработка переменных у всех команд в OpenMW единообразна, переменные должны поддерживаться.Про ограничение на if-ы в вообще не слышал, но в теории его быть и не должно, т.к. OpenMW ванильный байт-код не загружает.Кстати, из-за этого не работают переносы строк в MessageBox'ах, которые в оригинале вообще через НЕХ-редактор проставляли, т.к TES CS скрипты с ними не компилирует.Из-за этого квест с театром в Морнхолде до сих пор сломан в версии от 1С. Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Ещё че хотел, говорили что в openmw в кадре сначала локальные скрипты потом глобальные исполняются, но в оригинале то наоборот. Ссылка на комментарий Поделиться на другие сайты Поделиться
Capostrophic Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 но в оригинале то наоборот.Чтобы было наоборот, нужно две строчки поменять местами в engine.cpp (на строках 119-123). Но хз, вдруг что сломается С 3 августаАндрей:Редактор научился делать нормально логи и использует тот же код, что и опенмвИсправлена пачка косяков, найденных CoverityForceGreeting теперь невозможно использовать на неживых объектахИсправлена зависимость от регистра функции, которая использовалась для проверки имени узла на зарезервированность в оптимизаторе -- позволяет нормально отображаться некоторым перчаткам, надетым в единственном экземпляреФиксы регрессийя:Существа больше не будут от ликантропов убегать (похоже, что в оригинале так)Автозавершение в консоли теперь работает с явными вызовами объектовРасположение торговца, измененное в сделках, теперь опционально сохраняется и после закрытия диалога с нимНулевое максимальное/минимальное расстояние записей звуков теперь по отдельности на дефолтное заменяется, а не только когда оба равны нулю. При нулевом расстоянии уменьшение громкости звука на расстоянии не работает.Специальное поведение теперь используется для любого топика, который назван, как специальный (сравнивается название с сооветствующей GMST), в том числе находящегося под сепараторомШейпы без текстур теперь всегда скрыты (раньше они отображались, используя назначенный им материал). Better flora Моранар теперь нормально будет выглядеть.Когда ИИ выбирает оружие, он будет оценивать реальный шанс им попасть, а не просто навык.Аналогично ИИ будет оценивать реальный урон, который зависит от атрибута силы, а не базовыйИИ будет предпочитать оружие дальнего боя с бонусом в 50% к базовому рейтингу, если противник не может его достать текущим оружием. Раньше был простой бонус в 1.5, который применялся невзирая на расстояние до супостата. По-хорошему бонус должен меняться в зависимости от расстояния, но пока пофигАссасины ТБ и предполагаемые борцы на кулаках продолжат тупить: если первые чаще всего не будут швыряться своими дротиками, то тот же Кай Косадес предпочтет своей технике кулачного боя использование заклинания, которое не может нормально скастовать. Я слепил на коленке что-то, что позволяет исправить второй косяк -- правда, когда дело доходит до урона здоровью, Кай снова будет пытаться давить своими навыками колдунства, и само это решение нужно тщательно протестировать. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Кай Косадес предпочтет своей технике кулачного боя использование заклинания, которое не может нормально скастовать.Что вполне ожидаемо: кулачный бой в OpenMW имеет низший приоритет (0) независимо от навыка рукопашного боя и значения силы.В Морровинде вроде тоже: я специально увеличивал персонажам навык рукопашного боя и давал им железный кинжал, которым они не умели пользоваться. В результате они пытались атаковать кинжалом. Ссылка на комментарий Поделиться на другие сайты Поделиться
R-Zero Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Шейпы без текстур теперь всегда скрыты (раньше они отображались, используя назначенный им материал). Better flora Моранар теперь нормально будет выглядеть.Оставили бы лучше как есть - некоторые моды используют шейпы без текстур, ТР например. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Оставили бы лучше как есть - некоторые моды используют шейпы без текстур, ТР например.А Better Flora как тогда работает? Ссылка на комментарий Поделиться на другие сайты Поделиться
R-Zero Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 А Better Flora как тогда работает?А где там шейпы без текстур? Я вижу только коллизии. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 А где там шейпы без текстур? Я вижу только коллизии.В моделях, вестимо. Иначе их не требовалось бы скрывать.Там сейчас в одном месте два разных шейпа должно быть - один с текстурой, один без.OpenMW в этом случае может показать тот, который без текстуры, в зависимости от расстояния.Подозреваю, что это тупо z-fighting. Ссылка на комментарий Поделиться на другие сайты Поделиться
R-Zero Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Можешь прикрепить пример меша? В упор не могу найти такой. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Можешь прикрепить пример меша? В упор не могу найти такой.Этим багом Capostrophic занимался. Сам багрепорт здесь. Объект "flora_tree_ai_05", значит, модель "flora_tree_ai_05.nif". Отдельный вопрос по анимациям есть - как эти несчастные комплекты доспехов вообще работают? Там у анимаций в Text Key время неправильное выставлено. Ссылка на комментарий Поделиться на другие сайты Поделиться
R-Zero Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Этим багом Capostrophic занимался. Сам багрепорт здесь. Объект "flora_tree_ai_05", значит, модель "flora_tree_ai_05.nif".Посмотрел, так то ошибка в самом меше, получается? Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Посмотрел, так то ошибка в самом меше, получается?Ага. Там где-то два шейпа в одном и том же месте, и движок не знает, что ему выбрать. Ссылка на комментарий Поделиться на другие сайты Поделиться
R-Zero Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Ага. Там где-то два шейпа в одном и том же месте, и движок не знает, что ему выбрать.Ну так, значит надо сам меш пофиксить, а не сам опенмв, при этом поломав некоторые меши в других модах? Ссылка на комментарий Поделиться на другие сайты Поделиться
Capostrophic Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 (изменено) Ну так, значит надо сам меш пофиксить, а не сам опенмв, при этом поломав некоторые меши в других модах?Ну так млин, никто так и не сказал, что это фича. Кроме меня самого, но нет, решили, что будем скрывать -- значит будем скрывать. Meh. Изменено 8 августа, 2018 пользователем Capostrophic Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 9 августа, 2018 Жалоба Поделиться Опубликовано 9 августа, 2018 Ну так млин, никто так и не сказал, что это фича. Кроме меня самого, но нет, решили, что будем скрывать -- значит будем скрывать. Meh.Да ладно тебе расстраиваться. Обычный рабочий момент - мы сделали предположение, которое оказалось неверным. Откатили, проехали, забыли. Ссылка на комментарий Поделиться на другие сайты Поделиться
Capostrophic Опубликовано 9 августа, 2018 Жалоба Поделиться Опубликовано 9 августа, 2018 Запуск локальных скриптов раньше глобальных — это фича. Где бы нормальную спецификацию по таким вещам достать... Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 10 августа, 2018 Жалоба Поделиться Опубликовано 10 августа, 2018 (изменено) Вопрос есть по моделированию. Допустим, у модели есть RootCollisionNode и она анимированная (через KeyFrameController'ы). В этом случае для коллизий надо RootCollisionNode использовать, или все-таки генерировать коллизии на основе шейпов? Изменено 10 августа, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
CemKey Опубликовано 10 августа, 2018 Жалоба Поделиться Опубликовано 10 августа, 2018 Вопрос есть по моделированию. Допустим, у модели есть RootCollisionNode и она анимированная (через KeyFrameController'ы). В этом случае для коллизий надо RootCollisionNode использовать, или все-таки генерировать коллизии на основе шейпов?А в чем надобность то? И есть ли у тебя под боком такая модель? Я попробовал анимировать коллизию через скининг. В Морре вроде сработало, по крайней мере, когда включил отображение коллизии, она была, но вот работала ли реально не смог проверить. А вот в OpenMW не сработало. Поразбираюсь дальше. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 11 августа, 2018 Жалоба Поделиться Опубликовано 11 августа, 2018 (изменено) А в чем надобность то? И есть ли у тебя под боком такая модель? Я попробовал анимировать коллизию через скининг. В Морре вроде сработало, по крайней мере, когда включил отображение коллизии, она была, но вот работала ли реально не смог проверить. А вот в OpenMW не сработало. Поразбираюсь дальше. Я приложил модели корабля из Abot's Boats. Там в OpenMW вообще треш, угар и содомия творится.С парусами я более-менее разобрался - там надо трансформации всех родительских узлов при скиннинге учитывать.Сам я только в скинниге не разбираюсь и не знаю, в каком порядке там матрицы перемножать надо.А вот с коллизиями вообще ерунда какая-то творится (проверял на корабле из упомянутого мода, стоящего возле Сейда Нин - ab01boship21act).Там в модели куча всего: и Bounding Box, и RootCollisionNode (в глубине иерархии), да еще и автосгенерированная коллизия (работающая криво).Как я понял, этот корабль - активатор, и игнорирует BoundingBox.ship.zip Изменено 11 августа, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
Alius Опубликовано 14 августа, 2018 Жалоба Поделиться Опубликовано 14 августа, 2018 Приветствую. А можно как-нибудь импортировать старые сейвы из оригинального морровинда в openmw? Если, да, то как? Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 14 августа, 2018 Жалоба Поделиться Опубликовано 14 августа, 2018 Приветствую. А можно как-нибудь импортировать старые сейвы из оригинального морровинда в openmw? Если, да, то как?В комплекте с OpenMW идет программа для импорта сохранений, но она не доделана, так как никому нафиг не сдалась.Так что лучше начать новую игру. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alius Опубликовано 14 августа, 2018 Жалоба Поделиться Опубликовано 14 августа, 2018 Ну, я так и понял. Нашел ветку на их форуме и там чего-то у людей полно траблов при переносе сейвов через этот скрипт. Но все равно спросил. Думаю, мало, вдруг кто из наших нашел еще какой-то способ. Но нет, так нет :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Capostrophic Опубликовано 15 августа, 2018 Жалоба Поделиться Опубликовано 15 августа, 2018 С 9 августа. Андрей:Из-за ошибки в коде дальность тумана под водой не была ограничена 6666 единицами.В виде от первого лица персонаж игрока головой не следит за другими персонажами. Это значит, что при переходе в режим от третьего лица персонаж повернет голову к ближайшему персонажу, а не изначально будет глядеть на такового. Ваниль такого не делает и это эдакий костыль, который предотвращает спонтанное движение камеры, которая, в отличие от мурокрыла, пока что закреплена на узле камеры, а не в одной точке.Коренным узлом в мешах с точки зрения RootCollisionNode теперь считается первый узел, у которого в детях есть что-то, кроме другого узла. Если RootCollisionNode не подключена к такому узлу, печатается предупреждение.Анимации перезагрузки только у арбалетов будут проигрываться только у верхней части тела.Идл не будет начат заново, если игрок не может скастовать заклинание или выстрелить из лука. При совершении движений он пока что будет начинаться заново.Оружейные анимации в виде от первого лица и у непрямоходящей живности будут проигрываться только у верхней части тела.При повороте игрока будет проигрываться часть анимации поворота ("шаг"), а не маленькая её часть.Логирование переделано, теперь поддерживает цвета (не на венде) и уровни отладки, и предотвращено возникновение ситуаций, когда при логировании из двух потоков логи получаются кривые. Пока мало чем используется.Немедленно применяющиеся заклинания теперь на один кадр добавляются в список активных заклинаний, что позволяет некоторым модам работать правильно.Непрямоходящие существа, у которых включен флаг Weapon & Shield теперь и в самом деле могут правильно пользоваться своим оружием, даже если у них нет для этого анимаций (используются стандартные анимации атаки, а если нет анимации экипировки, то экипируется немедленно) и даже если это самое оружие некуда закрепить.elsid:Добавлены юнит-тесты для физической части загрузчика nif'ов.Исправлен race condition в коде ландшафта.я:Откатил правки рендеринга бестекстурных шейпов.Как оказалось, Морровинд для того, чтобы определить, за что отвечает фасттревельный непись, использует не класс (что было бы логично, но это ж беседка), а тип его ячейки, то есть интерьерные NPC -- это проводники гильдии, и соответственно используется цена-константа и звуки каста телепортирующего заклинания, а экстерьерные -- это погонщики силт страйдеров и капитаны кораблей, и у них цена зависит от расстояния до цели. В опенмв же для определения цены использовался тип ячейки цели путешествия, и в итоге проводники гильдии магов, у которых направление вело в экстерьер, требовали кол-во денег, зависящее от расстояния до таковой экстерьерной ячейки, хотя scrawl, когда добавил звук каста заклинания, использовал правильную проверку. Короче, интерьерные NPC теперь строго гильдгайды, а экстерьерные строго погонщики, и цены будут соответствующие.Исправлено прицеливание NPC магическими фугасами — использовалась неправильная скорость снаряда в вычислениях направления при движущейся цели и они не могли толком в игрока попасть.Yohaulticetl:Добавлена опция, которая позволяет Силе влиять на урон в безоружном бою, как в MCP. В одном её режиме оборотни учитываются, в другом нет.Allofich (старый-старый PR):Эффекты восстановления/отнятия здоровья/магии/усталости применяются до вычислений атрибутов, а не наоборот (позволяет больным крысам в одном из квестов трибунала не терять сознание)Много фиксов магических эффектов восстановления и отнятия в целом (например, постоянные эффекты отнятия будут постоянно же отнимать соответствующую стату, а кроме того, отнимаемые статы можно восстанавливать положительными магическими эффектами (не только уменьшенные)). Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти