• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
Иконка ресурса

Готика ½ Gothic World Editor 0.0.3

DEDROIT


Модостроитель
Регистрация
8 Ноя 2005
Сообщения
425
Благодарности
997
Баллы
235
  • Первое сообщение
  • #1
gwe_logo.png

О редакторе Нововведения Медиа


  • Ресурсы портала: World of Gothic.ru
    Страна разработчика: РФ
    Платформа игры: "Готика 1", "Готика 2", "Готика 2 - Ночь Ворона"
    Тип обновления: Пакет
    Рабочее название: Редактор миров
    Версия: alpha
    Язык: Русский, Английский
    Вес: ~20 МБ

    Автор/разработчик: DEDROIT

    Статус: Тестирование (99% в разработке)
    Дата релиза: февраль 2021 г. (бета версия)
    Версия 1.0: разработка приостановлена до 05.08.2021
    Дата обновления:

    Описание:

    Gothic World Editor — графический редактор миров, который дополнительно в себя включает инструменты по работе с моделями, текстурами и vdf томами (для игр: 'Готика 1', 'Готика 2', 'Готика 2 - Ночь Ворона', модов и аддонов на их основе).

    У программы свой собственный рендерный движок, свои парсеры форматов игр 'Готика' и своя логика работы с теми или иными объектами. Она является полностью независимой и не требует наличия установленной игры.


    Основные цели и задачи:

    • Добавление удобных инструментов при работе с ZEN
    • Поддержка современных OC
    • Объединение всех доступных инструментов в одной программе
    • Обеспечение независимости от движка и от ресурсов игры
    • Обеспечение отказоустойчивости

    Системные требования и ПО:
    Оптимальные системные требования:
    • Windows 7/8/8.1/10
    • Платформа x32/x64
    • Видео карта с поддержкой OpenGL 3.3 +
    • 50MB свободного места на жёстком диске
    • 2 ГБ ОЗУ
    Используемые технологии:
    • Visual Studio 2017
    • Основной язык разработки - c#(.Net 4.6.1)
    • OpenTK 2.0 - wrapper for OpenGL (OpenTK)
    • OpenGL 3.3 - 4.5 (в зависимости от видео карты) + шейдеры
    • MetroFramework - WinForms 1.4.0 (MetroFramework)
    • FreeImage 3.17.0 (FreeImage)

    Необходимое ПО:
    • Microsoft .NET Framework 4.6.1
    • C++2013 x64

    Информация по установке:
    Инструкция по установке:
    1. Установите Microsoft .NET Framework 4.6.1 или выше (Framework 4.6.1).
    2. Обновите драйвера видео-карты.
    3. C++2013 x64,
    4. Установите G1MDK и/или G2MDK в полной версии:
    для Г1 (g1mdk-1.08k и обновление файлов)
    для Г2 (g2mdk-2.6)

    Примечание: Игры - Г1, Г2, Г2:НВ, можно вообще не устанавливать. Редактору важен только каталог со структурой ресурсов игры:
    "..\data\Anims", "..\data\Meshes", "..\data\Textures" и т.д.


    Возможные проблемы и пути их решения:

    1. Не запускается редактор. Решение: необходимо установить .Net 4.6.1/C++2013 x64 и проверить поддерживает ли ваша видео карта OpenGL 3.3. Попробуйте в Spacer.xml поменять значение в теге glcontrol (например, на ForwardCompatible, т.е. установить значение = 2).
    2. Не загружаются ресурсы игры (запускается редактор, но в нём ничего нет). Решение: проверьте путь к игре (он должен быть такого вида - "C:\Gothic2\_work\data\"). Поменять его можно либо в GWE.xml в теге resources или в настройках редактора. Если путь указан верно, тогда проверьте наличие установленного полного GMDK.
    3. Редактор загружается, но почему-то не отображается небо или некорректно отображаются загруженные миры(zen). Решение: обновите драйвер для вашей видео карты. Если это не помогло, то зайдите в GWE-> Tools->Log и посмотрите какая у вас поддерживается версия OpenGL (версия должна быть >=3.3)


    Управление:

    Передвижение - WSDA
    Вверх/вниз - Q/E
    Обзор - движение мышкой
    Приближение/увеличении - колёсико мышки
    Удаление объектов - delete
    Клонирование объектов - ctrl+c/ctrl+v
    Ускорение и выделение нескольких объектов - зажатый shift/shift + click

    Есть ещё ряд комбинаций.



  • Нововведения и возможности:
    • Визуальный просмотр моделей в формате *.3DS
    • Визуальный просмотр моделей в формате *.MRM
    • Визуальный просмотр моделей в формате *.ASC
    • Визуальный просмотр текстур в формате -C.TEX/TGA/PNG/JPG/BMP
    • Экспорт текстур в формат DDS/JPEG/BMP/PNG
    • Распаковка и просмотр содержимого VDF архива
    • Экспорт данных из VDF
    • Загрузка ZEN (BinSafe, ASCII)
    • Просмотр свойств объектов
    • Камера (свободное движение по всем осям, движение вдоль одной оси)
    • Изменение позиции, угла поворота, направления камеры
    • Масштабирование, вращение, перемещение объектов мышкой
    • Инструменты Gizmo
    • Zoom, Hand
    • Добавление объектов в ZEN из любого места(из дерева, и VDF архва) с помощью drag and drop
    • Отображение/редактирование/добавление freepoint
    • Отображение waypoint и маршрутов
    • Импорт OBJ моделей
    • Визуальный просмотр текстур загруженных объектов
    • Визуальный список всех объектов с возможностью переноса во viewport
    • Поддержка *.WAV
    • Визуальный просмотр расстояния от выделенного объекта на указанное расстояние
    • Поддержка форматов Готики 1
    • Bullet physics
    • Поддержка *.DAT
    • Поддержка MDL, MDM, MDH
    • Логирование
    • Отчёты (количество объектов, текстур, моделей, анимаций)
    • OCtree (разбиение локаций на небольшие "участки", каждый из которых может включать ещё 8 зон)
    • Gizmo (вращение/масштабирование/перемещение с возможностью выбора Pivot и локали(Wold/Local))
    • Поддержка выделения сразу нескольких объектов
    • Инструменты для работы с сеткой путей
    • Гибкая настройка


  • Видео:



    Графика:

    01.png02.png03.png04.png05.png06.png07.png08.png09.png10.pngWay.pngWay02.pnglight1.pngminiImages.pngItems.pngsound.pngbbox.pngruler01.pngg1.pngitems.pngscripts.pngsky.pnghero.pngPhys.gifdragon.pngasc.gifMDL.gif106725_MusicZone.gif112545_Octree2.pnggizmo_1.png
    76816
    76817
    76818
    76819

 

Вложения

  • GWE.0.55(x64).zip
    6,5 MB · Просмотры: 2.742
  • GWE.0.5.7(net.4.7.2x64).msi
    7 MB · Просмотры: 267
  • GWE.0.5.7(net4.6.1x64).msi
    7 MB · Просмотры: 112
  • GWE.0.5.7(net4x64).msi
    7 MB · Просмотры: 455
Последнее редактирование:

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Бео, если есть возможность редактить скрипты в нем напрямую, то и с прописью итемов вопросов не возникнет, все только зависит от юзера и прямоты его рук..
 

DEDROIT


Модостроитель
Регистрация
8 Ноя 2005
Сообщения
425
Благодарности
997
Баллы
235
В чем пишешь, студия, на сисях шарпее или нсиське ?
c++ WIX (этим вопросом занимаются другие люди. Я занят разработкой чисто редактора)
А если будут новые инстанции предметов? Дефолтная картинка в этом случае только будет или будет возможность в какой-то каталог загрузить свои изображения новых предметов для удобства?
По умолчанию есть все предметы, которые есть в оригинале. Вы можете подключить скрипты своего мода, тогда у вас будет описание и ваших новых предметов или изменённых старых. С картинками нужно подумать.. У меня есть функционал рендера предметов с сохранением в изображение (возможно, я его как-то применю).

  • Доработан парсер ZEN в части получения информации о самом мире (т.е. не нужны будут исходники локаций для загрузки ZEN)
  • Добавлено сглаживание (можно настроить)
  • Добавлена возможность в интерфейсе менять расстояние видимости объектов
  • Модифицировано логирование
  • Исправления/рефакторинг
 

Вложения

  • VobVisible.gif
    VobVisible.gif
    5,6 MB · Просмотры: 307

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Ден, есть еще мысль, сделать обработчик который будет генерировать в тхт-файл инфу о всех используемых в мире: анимах, моделях и текстурах.. Чтобы можно было иногда понять что в том или ином мод файле мусор, а что используется игрой..
 

Adanos Gotoman

Участник форума
Регистрация
16 Мар 2017
Сообщения
232
Благодарности
86
Баллы
195
Блин, эт всё прикольно, но я уже на CryEngine пересел)
 

DEDROIT


Модостроитель
Регистрация
8 Ноя 2005
Сообщения
425
Благодарности
997
Баллы
235
  • Оптимизирован процесс загрузки zen (ASCII)
  • Убраны некоторые проблемные места
  • Добавлена база sqlite для хранение некоторой информации из оригинальной Готики (для того, чтобы каждый раз не декомпилировать Gothic.DAT, Music.DAT и.т.д). Базу можно обновлять (для этого есть специальный функционал)
  • Практически решены все проблемы с форматами MDL, MDM (если модель составная, то root объект находится не на своём месте :) уже голову сломал, как root вернуть на положенное место :) Например, у скелета, больше 20 костей. Все кости располагаются нормально, кроме root
  • Добавлено отображение музыкальной зоны
  • Добавлена возможность прослушивать звук музыкальной зоны
  • Добавлена возможность менять радиус музыкальной зоны (может быть стоит добавить возможность мышкой менять радиус зоны ?)
На очереди решение следующих задач:
  • BSP Tree или может OC tree (для быстрого рендера локаций)
  • Сохранение в ZEN(ASCII)
  • Полностью решить все нюансы с форматами MDL/MDM
Как только будут решены выше перечисленные задачи, тогда появится первая версия программы.
 

Вложения

  • MusicZone.gif
    MusicZone.gif
    4,2 MB · Просмотры: 209

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Ништяки подъехали.. отличные новости Дед.. *thumbs up*

(может быть стоит добавить возможность мышкой менять радиус зоны ?)
Чем больше вариантов управления, тем лучше.. *right*

Как только будут решены выше перечисленные задачи, тогда появится первая версия программы.
Отлично.. :)
Когда тесты начнутся, еще предложек накидаем по мере работы с софтом..

Зы, а прочие хотелки свистелки и перделки о которых писалось в теме тоже уже реализованы ?! ::)
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
Практически решены все проблемы с форматами MDL, MDM (если модель составная, то root объект находится не на своём месте :) уже голову сломал, как root вернуть на положенное место :) Например, у скелета, больше 20 костей. Все кости располагаются нормально, кроме root
конкретнее
 

DEDROIT


Модостроитель
Регистрация
8 Ноя 2005
Сообщения
425
Благодарности
997
Баллы
235
Когда тесты начнутся, еще предложек накидаем по мере работы с софтом..
Не сомневаюсь :) и на это расчитываю :)

Зы, а прочие хотелки свистелки и перделки о которых писалось в теме тоже уже реализованы ?!
Ещё не успел, но сделаю ;) очень много времени убил на MDM. Объекты нормально обрабатываются, даже составные, а люди/монстры не совсем.

Может идеи у кого есть ? Все кости нормально собираются, кроме root. Точнее наверное нужно все кости сдвинуть относительно root, но на какую позицию? Я разные варианты попробовал. Но где-то начинает работать, где-то наоборот хуже становится.

@Gratt может ты что подскажешь ?
 

Вложения

  • bagMDL.png
    bagMDL.png
    214,5 KB · Просмотры: 196

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
@Gratt может ты что подскажешь ?
Если root который bip01, то в asc формате он является точкой 0 координат, все остальные кости - смещения и вектора ротации. Если речь идет конкретно о НПС, они центруются в мир через поля C_GILVALUES::step_height[GIL_MAX] ( нижняя точка земли + step_height[GIL_PAL] например ).
С анимацией аналогично. Фреймы указывают смещение относительно предыдущего кадра, а не явно передают координату.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.190
Благодарности
3.373
Баллы
485
Добавлена возможность менять радиус музыкальной зоны
А можно ли будет вращать эти и другие зоны вокруг своей оси? Сейчас, например, таверна Корагона расположена под некоторым углом, музыкальную зону вращать нельзя, и поэтому её углы торчат на улице, вызывая сброс текущей музыки, если пройти рядом.
Untitled.jpg
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
А можно ли будет вращать эти и другие зоны вокруг своей оси? Сейчас, например, таверна Корагона расположена под некоторым углом, музыкальную зону вращать нельзя, и поэтому её углы торчат на улице, вызывая сброс текущей музыки, если пройти рядом.
Посмотреть вложение 63623
Зона же это bbox вдоль глобальных XYZ. Ее поворот повлечет тупо расширение области соответственно min/max координатам, а не изменение углов векторов.
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
В педантичную немецкую голову так и не пришла мысль, что музыкальную зону в помещении можно было ограничить размерами портала, это помещение охватывающим.


Если root который bip01, то в asc формате он является точкой 0 координат, все остальные кости - смещения и вектора ротации.
В некоторых 3D пакетах root будет в нулевой координате сидеть. А условный центр масс Bip01 уже прицеплен к этому главному центру. Но не в Caracter Studio, в котором все монстры и персонажи игры изготовлены.
 
Последнее редактирование:

DEDROIT


Модостроитель
Регистрация
8 Ноя 2005
Сообщения
425
Благодарности
997
Баллы
235
@Gratt,
Берём за пример SKE_BODY2.MDL

Данная модель содержит 28 костей: BIP01, BIP01 PELVIS, BIP01 SPINE, BIP01 SPINE1 и.т.д
BIP01 - является root элементом.

Каждая кость представляет из себя следующую структуру
C++:
struct Node
{
     ushort parentIndex; // Кто родитель. Если значение = 0xFFFF, то это root
     string name;            // Наименование кости
     Matrix4 transformLocal; // Матрица трансформация(scale*rotate*position)
     List<ushort> childIndices; // Список детей
}

Чтобы получить итоговую матрицу трансформации для каждой кости, я делаю следующее:

C++:
transformLocal = Nodes[i].transformLocal * BindPoseTransforms[Nodes[i].parentIndex].transformLocal
Т.е если это не root элемент, то перемножаю матрицу трансформации текущей кости на матрицу родителя.

В итоге я получаю список костей и окончательные матрицы трансформации(модели) для каждой из них.

Дальше у нас идёт загрузка самих моделей, которые прикреплены к этим "костям".

Я получаю список костей, у которых есть какая-то визуализация(модель). У скелета - это 20 моделей. Я загружая последовательно 20 моделей и каждой модели присваиваю матрицу трансформации, соответствующую кости. В результате чего получаю модель, которая состоит из 20 моделей, у каждой из которых своя матрица трансформации. И собираются все модели правильно. Проблема только в root элементе, у которого позиция всегда (0,0,0), а если нет, то я присваиваю (0,0,0) (не видел ещё такого root, у которого position не в 0).

Но центр root почти всегда находится не в 0!! Т.е position = (0,0,0), а координаты самих вертексов сдвинуты.

Я пробовал сам рассчитывать его центр и сдвигать в центр,пробовал, чтобы минимальное значение точки находилось в 0, пробовал ещё много вариаций, но это не помогло. Я не знаю на какие координаты нужно сдвинуть root к остальным моделям или модели к root

Помимо всего прочего в этом файле есть ещё:
C++:
BBox(Vector3),BBoxCollision(Vector3),RootNodeTranslation(Vector3).

Я подумал, вот оно RootNodeTranslation, то, что мне надо, но нет!! Я посчитал, что RootNodeTranslation - это позиция, на которую сдвинут root от центра. Но подставив в RootNodeTranslation в позицию root стало чуть лучше, но не до конца.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
Ты мне вот что скажи, какие действия предпринимались над костями что тело у тебя уехало наверх, а все остальные осталось в центре?
Получил матрицу рута, транслировал на позицию RootNodeTranslation и довычислил все остальные кости? Какой индекс рута при просчете всей иерархии? На вид там еще за рут зацепились кости спины - pelvis, spine1, spine2.
http://s.worldofplayers.ru/2018/08/106727_bagMDL.png
 
Последнее редактирование:

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
Не надо двигать никакие кости относительно root. В локальной системе координат, центром которой является root, они и должны располагаться четко относительно этого локального нуля, как и в редакторе. Двигать можно сам root как дерево иерархии в целом. Чтобы модель в нуле не сидела, надо root поднимать по оси Z, а за ним и все остальное. Скелет в нуле задницей правильно сидит.

Вот дерево:
_sc.JPG

А вот модель в нулевой мировой координате:
_sc2.JPG
При работе root смещен по оси Z относительно нуля мировых координат. Очевидно, в игре это как-то так:
( нижняя точка земли + step_height[GIL_PAL] например ).

В Unity 5, кстати, вообще нет проблем. Даже такая модель четко на ноги становится, хотя root у нее выше уровня условной земли.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
Не надо двигать никакие кости относительно root. В локальной системе координат, центром которой является root, они и должны располагаться четко относительно этого локального нуля, как и в редакторе. Двигать можно сам root как дерево иерархии в целом. Чтобы модель в нуле не сидела, надо root поднимать по оси Z, а за ним и все остальное. Скелет в нуле задницей правильно сидит.
Первоначальное положение рута действительно должно быть нулевым, тогда и матрицы остальных костей встанут корректно. Но вопрос в другом. Существующее смещение центра сдвигает только Bip01 (возможно и pelbis, Spine1, Spine2, но это не точно). Такое может быть если, например, транслировать Root уже после перемножения всех матриц. Прибавь RootNodeTranslation ко всем остальным костям и модель встанет на ноги.
upload_2018-8-11_12-59-51.png
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Народ а кто помнит какая из координат была изменена в двиге РВ, про это Вам писал или ВСА, а может Керракс, не помню уже точно ?! ::)
 

DEDROIT


Модостроитель
Регистрация
8 Ноя 2005
Сообщения
425
Благодарности
997
Баллы
235
@Gratt, @alex_draven,
Была одна ошибка. Координаты брались из BBox вместо RootNodeTranslation. Теперь у скелетов всё хорошо. Я прошёлся по всем моделям. С человеко подобными моделями всё хорошо. Все кости соединяются как надо.

Остались 2 проблемы с MDL.
1. Если я у монстров прибавляю к позиции RootNodeTranslation, то кости не правильно сдвигаются. Первоначально они тоже не правильно расположены.
2. Сундуки. У сундуков проблема с замком. У сундука 4 кости - BIP01 CHEST_BIG_0(root), BIP01 CHEST_BIG_1, BIP01 CHESTLOCK, ZM_CHEST_LOCK. У всех костей родитель BIP01 CHEST_BIG_0. BIP01 CHEST_BIG_1(крышка от сундука) всегда располагается правильно), а вот остальные 2 кости(BIP01 CHESTLOCK, ZM_CHEST_LOCK) 50/50. У части сундуков всё хорошо, у другой какие-то проблемы с rotate. Может с ZM какие-то нюансы есть?
 

Вложения

  • fixMDL01.png
    fixMDL01.png
    248,4 KB · Просмотры: 122
  • fixMDL02.png
    fixMDL02.png
    207,6 KB · Просмотры: 117
  • bagMDL02.png
    bagMDL02.png
    363,3 KB · Просмотры: 131
  • bagMDL03.png
    bagMDL03.png
    427,9 KB · Просмотры: 109
  • bagChest01.png
    bagChest01.png
    277,2 KB · Просмотры: 114
  • bagChest02.png
    bagChest02.png
    465,9 KB · Просмотры: 60

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
1. Если я у монстров прибавляю к позиции RootNodeTranslation, то кости не правильно сдвигаются. Первоначально они тоже не правильно расположены.
С костями все ок, некорректно сдвинуты элементы меша привязанные к ним без модификаторов - напрямую линковкой. Попробуй приравнять их матрицу к матрице кости-предка. Заодно скажи поменяется ли что-то с сундуком.
 
Последнее редактирование:
Сверху Снизу