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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
Spacer.NET - редактор миров [G1 & G2NR]

Готика 2: НВ Spacer.NET - редактор миров [G1 / G2NR] 1.31

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.736
Благодарности
2.640
Баллы
450
  • Первое сообщение
  • #1
Spacer.NET (G1 / G2NR)

Версия игры: "Готика 1 (1.08k_mod), Готика 2 Ночь Ворона"
Страна разработчика:
Россия
Тип: Плагин для Union
Рабочее название: Spacer.NET
Версия: стабильная
Язык: Русский, English, German, Polish, Czech
Размер: ~2 МБ
Автор: LikerGothic
Разработчики: LikerGothic, Patrix, Haart, Saturas, Gratt, Jr13San
Тестеры: Haart, Adept, Jr13San
Статус: выходят обновления
Требования: .NET Framework 4.0, Union 1.0l+

Исходный код:


Уроки по SpacerNET: Ссылка

Основные цели:
  • Максимальная автоматизация процесса вобинга
  • Удобство в работе
  • Нелагающий интерфейс
Основные фишки:
  • Максимально похожий по виду интерфейс на старый спейсер
  • Иерархичное копирование вобов (дети-вобы копируются вместе с родителем)
  • Удобная манипуляция вобом (коллизии не мешают его перемещать и вращать)
  • Изменение родителя для воба
  • Некоторые настройки "под себя"
  • Предпросмотр моделей, PFX-эффектов, итемов
  • Поддержка VobTree
  • Поддержка extended-классов (можно через Юнион создать воб нового типа, и он будет здесь работать)
  • Удобное редактирование содержимого сундуков
  • Настройки отображения FPS, кол-ва вобов и т.д.
  • Поддержка dx11 Ссылка (spacer_net требует особой версии dx11, она по ссылке)
  • Новые возможности, по сравнению со старым спейсером
1.JPG
2.JPG
3.JPG
4.JPG
5.JPG
6.JPG
7.JPG
8.JPG
9.JPG
10.JPG
11.JPG
12.JPG
13.JPG
14.JPG

Управление можно настроить под себя в специальном окне.

Камера:

Зажать ПКМ (правая кнопка мыши) + WASD перемещение, вверх - пробел, вниз - X, перемещать мышь для вращения камеры.
Колесико мышки - быстрое перемещение в направлении взгляда (не работает на готике 1)

Управление выделенным вобом:
  • Выделение воба : ЛКМ, расширенное выделение: левый ctrl+ЛКМ (выделение vobAnimate, некоторой травы)
  • Клавиша 1 - режим перемещения воба (WASD)
  • Клавиша 2 - режим вращения воба (WASD)
  • Клавиша 3 - соединить/разъединить два вейпоинта (один выделяется через shift+ЛКМ, второй просто выделяется, всё как в старом спейсере)
  • Клавиша 4 - снять выделение с воба
  • Клавиша 5 - переместить выделенный воб перед камерой
  • Клавиша 6 - выбрать режим редактирование bbox объекта (для муверов, зон музыки и тд)
  • Клавиши Q/E - вращение воба вокруг вертикальной оси
Модификаторы:
  • LShift - ускорение перемещения/вращения в 10 раз
  • LControl- замедление перемещения/вращения в 10 раз
Сочетания клавиш:
  • Shift+F прижать воб к поверхности (работает через динамическую коллизию)
  • Shift+R сбросить поворот воба по трем осям, нажимать можно несколько раз
  • Control+C, Control+V - скопировать воб и вставить
  • Control+Z, Control+V - вставить выделенный воб в нового родителя (изменение родителя)
Прочее:
  • ПКМ на выбранной модельке в окне поиска визуалов: скопировать имя модели в буфер
  • ПКМ на списке вобов: удалить воб, сохранить vobTree, вставить vobTree
  • F1 - собрать вобы в vobContainer в выбранном радиусе...
  • F2 - вставить вейпоинт со сгенерированным именем (должен быть выделен другой вейпоинт)
  • F3 - скрыть/показать окна
  • После загрузки в Спейсере черное окно и ничего нет. Ответ: скорее всего вы установили dx11 от обычной игры. Удалите файл ddraw.dll из папки system или установите dx11 для Спейсера. Однако, компилировать миры и свет с dx11 нельзя, поэтому легче тупо удалить его при работе со спейсером.
  • После загрузки спейсера ничего не нажимается, меню неактивно. Ответ: зайти в gothic.ini и проставить там ваше разрешение экрана вручную. zVidResFullscreenX=1920, zVidResFullscreenY=1080 (как пример)
  • Зажимаю правую клавишу мыши, камера не летит/не вертится. Ответ: зайдите 1 раз в игру (до главного меню), чтобы в systempack.ini записались нужные строки и выйдите. Всё заработает
  • В глобальный список вобов локации самостоятельно добавляются какие-то вобы. Зачем? Ответ: это дочерние вобы от PFX-эффектов. Они добавляются, когда камера подлетает к ним или вы делаете предпросмотр некоторых эффектов из меню, и pfx-эффект активируется. Они не сохраняются в ZEN, так что они не опасны.
  • Как сбросить управление на "по умолчанию"? Ответ: зайти в меню с кнопками и нажать "сбросить по умолчанию"
  • Что за звук падения оружия на землю? Ответ: когда мир загрузился или скомпилился, воспроизводится такой звук-оповещение, потом заменим, если не понравится.
  • После загрузки мира вылет. Ответ: скорее всего ваши скрипты используют Lego/Ikarus, выключите пункт "Отключать музыку при загрузке" в окне звуков.
  • Спейсер вылетает при каких-то действиях: отписать в тему, но скорее всего, у вас используются другие плагины Union/Ninja, которые мешает работе спейсера.

  1. Установить Готику 2 Ночь Ворона
  2. Установить gothic2_playerkit-2.6f/g2mdk-2.6_FULL с распаковкой нужных ресурсов для спейсера
  3. Установить Union 1.0l из Resource manager
  4. Поместить spacer_net.ini в папку system (это нужно сделать только один раз, при обновлении заменять его не нужно)
  5. Поместить SpacerNET.mod в папку Data/ModVDF (при обновлении версий, просто закидывать этот обновленный файл с заменой)
  6. Запустить игру один раз, чтобы появились нужные строки в ини-файлах игры (после установки юниона)
  7. Запустить GothicStarter.exe и там выбрать Spacer.NET
Скачать: По кнопке сверху (Ссылка)

Уроки и решение проблем по SpacerNET: Ссылка

Наш товарищ Jr написал плагин, который добавляет тень для текста. Для спейсера будет очень удобно
Скачать: google drive
Оба файла поместить в system/autorun, в файле spsTextShadow_Params.d можно поменять настройки под себя, там есть описание
 
Последнее редактирование:

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
486
Благодарности
323
Баллы
230
Прикрепил файл к сообщению.
1) Ок. Первое, что бросилось в глаза - это кол-во полигонов на твоей локации (~ 4 млн). Мне кажется это очень много. В оригинале - около 476 тыс.
Не знаю сколько сейчас норма, но нужно не забывать про оптимизацию числа полигонов в кадре, иначе такая красота, при сильном падении fps, может только испортить настроение у любого эмоционального человека.

2) По поводу ошибки "zCMesh::ShareFeatures()". Проблема всё-таки заключалась в разыменовывании нулевого указателя.
Подтверждение:
ShareFeatures.png

C++:
START oCWorld::Archive(this = 301506120, worldName = 'CLASSIC_NEWWORLD_2025_02_A')
   START zCWorld::Archive(this = 301506120, s_wasCompiled = 0, bspTree.mesh = '309951576', s_worldSaveMode = 1, W:IsCompiled = 1, compiledEditorMode = 0)
      START zCMesh::ShareFeatures(this = 309951576, meshName = '', objectName = '', visualName = ''
         featArray = 0, featList = 0
         after CreateListsFromArrays()
         after delete featList
         after ResetVertexTransforms()
         enumerating vertices (numVert = 277422)
         after enumerating vertices
         numPoly = 3946001, numFeat = 11846701
         featArray_ptr = -336650208
         vertex_To_VertFeature_ptr = 460566564
         Cleaning up...
         after memcpy(featArray, fl, ...)
         after last loop
         after delete[] fl
         after delete[] oldFeatures
         after delete[] vertex_To_VertFeature
         Shared 11075055 of a total of 11846701 vertex features. Memory conservation: 354401760 bytes.
         Conservation from avoiding pointer boards: 19980276 bytes.
      END zCMesh::ShareFeatures()
      START zCBspTree::SaveBIN(this = 301506548, file = '\_WORK\DATA\WORLDS\NEWWORLD\CLASSIC_NEWWORLD_2025_DROP_ME.ZEN')
         Sort merging... Elements: 3946001
         Sort merging... Elements: 277422
         Sort merging... Elements: 771646
         START zCMesh::SaveMSH(this = 309951576, file = '\_WORK\DATA\WORLDS\NEWWORLD\CLASSIC_NEWWORLD_2025_DROP_ME.ZEN', meshName = '', objectName = '', visualName = '', numPoly = 3946001, polyList = 901771296
         END zCMesh::SaveMSH(this = 309951576)
      END zCBspTree::SaveBIN(this = 301506548)
   END zCWorld::Archive(this = 301506120)
END oCWorld::Archive(this = 301506120)
C#: Saving ZEN time... (00:00:23.711)

В общем. Большое число полигонов требует выделения большого числа памяти на свойства вертексов.
В нашем случае было 11 846 701 свойств * sizeof(zCVertFeature) = 11 млн * 28 байт = 331 707 628 Б ~ 316 МБ.
Система действительно, несколько раз, выделяет такой объём памяти, но в какой-то момент, она может "устать" и отказать в этой просьбе.
По этой причине образуется null-указатель и ошибка обращения к памяти.

Я не знаю, я не профи в этом, но возможно эта "усталость" может быть как-то связана с утечками памяти в процессе сохранения локации.
Потому что я заметил, что на DX11 как расходы памяти, так и утечки больше, чем на DX7. Поэтому на DX11 шанс вылета с ошибкой выше.
Т.е. когда выделенная память освобождается не полностью, а частично, и образ в оперативке постоянно возрастает.
У меня есть такая статистика:
Код:
DX7:
Mem after load zen = 800 MB
Mem after save zen = 1276 MB
17 Saves -> froze process...
Leak mem: 1276... 1674 MB


DX11:
Mem after load zen = 1785 MB
Mem after save = 2230 MB
2330...2350... 2378... 2403... 2466 -> Drop
Safe saves = 4..10
Leak mem ~ 20..25 MB (sometimes ~ 80 MB) after save every process

KirTheSeeker, могу предложить некий модуль, который будет предупреждать в консоль Спейсера о том, что следующий сейв будет неудачным.
Принцип простой. После каждого сохранения, запоминаем сколько требовалось памяти. Затем пытаемся выделить, если неудачно, то выводим мессадж.
Всё. Предупреждён = вооружён.
Spc_Msg.jpg

После сохранения, тебе нужно будет полностью выйти из редактора и вновь открыть последний сохранённый zen. Так ты спасёшь свою творческую работу.
Да, несколько неудобно, но у меня пока нет никаких других мыслей, как можно было бы исправить эту аллокацию памяти, для таких вот объёмных локаций.
Если интересует, то допишу на днях. Возможно будет хватать на 4-7 сохранений. Возможно, что для маленьких локаций это не нужно совсем.
 
Последнее редактирование:

KirTheSeeker

Участник форума
Регистрация
18 Авг 2017
Сообщения
1.953
Благодарности
568
Баллы
275
1) Ок. Первое, что бросилось в глаза - это кол-во полигонов на твоей локации (~ 4 млн). Мне кажется это очень много.
Согласен полностью. И не особо понимаю откуда их там столько взялось, поскольку объектов я добавил максимум на ~100k полигонов.
 

SevenCaravan

Участник форума
Регистрация
16 Ноя 2024
Сообщения
8
Благодарности
3
Баллы
20
Доброе время суток! Как импортировать мэш zen-файла вместе с вобами ну или хотя бы отдельно только вобы в blender? Нажимаю "Сохранить Vobs", но в KrxImpExp полученный Zen-файл не открывается. Сначала подумал что нужно открыть этот полученный файл в Zen-файл с вобами и отдельно сохранить в виде мэша, но к сожалению получаю ошибку.

Неактивна кнопка "Компиляция мира", нельзя нажать (она серым цветом. Ещё при попытке сохранить визуал для импорта в blender файл не сохраняется и появляется надпись: "NO G1 SUPPORT!"
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
10.146
Благодарности
7.015
Баллы
1.850
Доброе время суток! Как импортировать мэш zen-файла вместе с вобами ну или хотя бы отдельно только вобы в blender? Нажимаю "Сохранить Vobs", но в KrxImpExp полученный Zen-файл не открывается. Сначала подумал что нужно открыть этот полученный файл в Zen-файл с вобами и отдельно сохранить в виде мэша, но к сожалению получаю ошибку.
Ни как, каждый воб - отдельная 3д модель, и выгружается она из исходников.

Неактивна кнопка "Компиляция мира", нельзя нажать (она серым цветом. Ещё при попытке сохранить визуал для импорта в blender файл не сохраняется и появляется надпись: "NO G1 SUPPORT!"
Подробности? Прям по шагам, с самого начала, когда открываешь спейсер.
Не понятно ничего
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.736
Благодарности
2.640
Баллы
450
SevenCaravan, файл вобов = это вобы локации, их нужно соединять с мешем потом, они к Блендеру не относятся.

Под г1 нет функции перенос модели воба в 3d mesh для 3д-редактора, запишу, но видимо там или функции нет в движке или что-то еще.

Компиляция мира доступна когда ты загрузил сырой меш локации, чтобы потом соединить его с вобами.
Все уроки по spacer_net в шапке темы.
 

KirTheSeeker

Участник форума
Регистрация
18 Авг 2017
Сообщения
1.953
Благодарности
568
Баллы
275

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.736
Благодарности
2.640
Баллы
450
LikerGothic обновил(а) ресурс Spacer.NET - редактор миров [G1 & G2NR] новой записью:

1.31

  1. Добавлена проверка на Waypoint не соединенный в WP сеть (окно поиска ошибок)
  2. Добавлена проверка на 2 находящихся друг с другом zCVobLight (для поиска дубликатов) (окно поиска ошибок)
  3. Добавлена проверка отсутствие динамической коллизии у oCMob и всех дочерних объектов (окно поиска ошибок)
  4. Добавлена проверка на динамическую коллизию у zCVobLight (окно поиска ошибок)
  5. Добавлена проверка на lightStatic TRUE у zCVobLight, который находится вне портала (окно поиска...

Узнать больше об этом обновлении...
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.736
Благодарности
2.640
Баллы
450
Новый плагин для Спейсера. (в шапку темы добавил тоже)

1742541445626.png

Наш товарищ Jr написал плагин, который добавляет тень для текста. Для спейсера будет очень удобно
Скачать: google drive
Оба файла поместить в system/autorun, в файле spsTextShadow_Params.d можно поменять настройки под себя, там есть описание
 

SevenCaravan

Участник форума
Регистрация
16 Ноя 2024
Сообщения
8
Благодарности
3
Баллы
20
Почему-то при сохранении world'а Old Camp из G1 в Mesh, при импорте в Blender некоторые места выглядят довольно странно:
МЕГАСмотрим правила форума 4.18
 

Вложения

  • 1742564469712.png
    1742564469712.png
    1,8 MB · Просмотры: 37
Последнее редактирование модератором:

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.736
Благодарности
2.640
Баллы
450
SevenCaravan, я тоже проверил, большая локация криво сохраняется. На г2 функция работает лучше.
А зачем сохранять меш из зена? Ведь в Г1 вроде бы 3ds файлы от локации есть, грузи их сразу в блендер.
 
Последнее редактирование:

SevenCaravan

Участник форума
Регистрация
16 Ноя 2024
Сообщения
8
Благодарности
3
Баллы
20
SevenCaravan, я тоже проверил, большая локация криво сохраняется. На г2 функция работает лучше.
А зачем сохранять меш из зена? Ведь в Г1 вроде бы 3ds файлы от локации есть, грузи их сразу в блендер.
у меня при импорте этого же мира в формате Zen всё отображается точно также криво. Причем с другими мирами вроде такого нет. Именно Старый лагерь
 

SevenCaravan

Участник форума
Регистрация
16 Ноя 2024
Сообщения
8
Благодарности
3
Баллы
20
SevenCaravan, да, такое бывает. Поэтому бери сразу 3DS файлы Долины рудников исходные, они вроде идут когда ресурсы распаковываешь первый раз.
и правда есть 3ds файлы, которые нормально отображаются. Спасибо!
 
Сверху Снизу