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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык
Spacer.NET - редактор миров [G1 & G2NR]

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

LikerGothic


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

Версия игры: "Готика 1 (1.08k_mod), Готика 2 Ночь Ворона"
Страна разработчика:
Россия
Тип: Плагин для Union
Рабочее название: Spacer.NET
Версия: стабильная
Язык: Русский, English, German, Polish
Вес: ~2 МБ

Автор: LikerGothic
Разработчики: LikerGothic, Patrix, Haart, Saturas, Gratt, Jr13San
Тестеры: Haart, Adept, Jr13San


Статус: выходят обновления
Требования: .NET Framework 4.0, Union 1.0l+

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

Описание: Что, еще один спейсер? Да, еще один :) Данный спейсер в первую очередь предназначен для вобинга, т.е. наполнения локаций предметами.

Основные цели:
  • Максимальная автоматизация процесса вобинга
  • Удобство в работе
  • Нелагающий интерфейс
Основные фишки:
  • Максимально похожий по виду интерфейс на старый спейсер
  • Иерархичное копирование вобов (дети-вобы копируются вместе с родителем)
  • Удобная манипуляция вобом (коллизии не мешают его перемещать и вращать)
  • Изменение родителя для воба
  • Некоторые настройки "под себя"
  • Предпросмотр моделей, 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 - скрыть/показать окна
  • После загрузки спейсера ничего не нажимается, меню неактивно. Ответ: зайти в 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
Скачать: По кнопке сверху (Ссылка)
Макросы позволяют немного автоматизировать компиляцию/загрузку миров.
  • Принцип работы макроса: 1 строка - 1 команда
  • SpacerNET хранит макросы в файле _work/tools/macros_spacernet.txt
  • Оригинальный Spacer хранит макросы в файле _work/tools/Macros.zmf
  • 123.jpg
Таблица с командами

КомандаЧто делает ПримерКомментарий
RESETсбрасывает мирRESETобязательно идет первым, если дальше вы хотите что-то загрузить
LOAD MESH <Путь до файла 3DS>загружает 3DS файл мешаLOAD MESH ADDON5.3DS
LOAD MESH TESTFOLDER\WORLD7.3DS
файл ищется в папке _work\data\Meshes\
Также можно указывать подпапки
Можно использовать несколько таких команд друг за другом
LOAD WORLD <Путь до файла ZEN>загружает ZEN файл в любом форматеLOAD WORLD TEST_MAP.ZEN
LOAD WORLD FOLDERS/TEST_17.ZEN
файл ищется в папке _work\data\world\
Также можно указывать подпапки
Можно использовать несколько таких команд друг за другом
COMPILE WORLD <TYPE>компилирует мир, доступны две опции INDOOR, OUTDOORCOMPILE WORLD OUTDOOR
COMPILE WORLD INDOOR
доступны две опции INDOOR, OUTDOOR
COMPILE LIGHT <TYPE>Компилирует свет, доступны 4 опции (3-й аргумент): VERTEX, LOW, MID, HIGHCOMPILE LIGHT MIDКомпилирует свет, доступны 4 опции (3-й аргумент): VERTEX, LOW, MID, HIGH
SAVE MESH <Путь до файла <MSH>Сохраняет меш локации в отдельный файлSAVE MESH LOC.MSHфайл сохраняет в папке _work\data\Meshes\
Также можно указывать подпапки
Сохраняет меш локации в отдельный файл, этот файл потом можно импортировать в 3d-редактор
SAVE WORLD <TYPE> <Путь до файла>Сохраняет мир (ZEN) отдельный файл. Доступны две опции BIN, ASCII, UNC
ASCII - полноценный мир
UNC - только вобы
SAVE WORLD ASCII 5.ZEN
SAVE WORLD UNC 7_VOBS.ZEN
файл ищется в папке _work\data\world\
Также можно указывать подпапки
Можно использовать несколько таких команд друг за другом

Примеры макросов
МакросКомментарий

RESET
LOAD WORLD ADDON\ADDON_PART_BANDITSCAMP_01.ZEN
COMPILE WORLD OUTDOOR
COMPILE LIGHT LOW
SAVE MESH FOLDER\ADDON_TEST_SPACER.MSH
//что-то написано
1231232dSDA1232123
COMPILE WORLD
LOAD MESH

Сброс всего
Загружает ZEN-мир ADDON_PART_BANDITSCAMP_01.ZEN
Компилирует мир в OUTDOOR
Компилирует свет в LOW
Сохраняет меш локации в файл ADDON_TEST_SPACER.MSH
Комментарий
Какая-то строка, не будет выполнена
Нет имени мира, не будет выполнено
Нет имени файла, не будет выполнено
Фильтр материалов - окно, в котором вы можете настраивать свойства материалов, используемые готикой. Эти свойства находятся в движке готики и не могут быть заданы в 3d редакторе (3dmax/blender). Именно поэтому, материалы нужно 1 раз настроить дополнительно для движка готики в этом инструменте.

Работа с фильтром материалов:
  1. Загрузите любой мир (3ds или ZEN)
  2. Откройте окно материалов (иконка с горизонтальными полосками)
    filter1.jpg

  3. Есть 2 пути работы с фильтром:
    а) или заранее создать материалы (до компиляции мира или воба), настроить их, и при компиляции они подхватятся. Имя материала в фильтре строго равно имени в 3d-редакторе.
    б) или загрузить мир или воб, найти его материал (он появится во вкладке [TRASH], если он не был до этого уже добавлен), настроить, скомпилировать снова
Возможности фильтра и основные функции:
  • Файлы Фильтра материалов хранятся в work\tools\data\
  • При первом сохранении конкретного фильтра (файла), SpacerNET создает резервную копию фильтра в папке spacernet_backups, которая будет там же

Работа с библиотекой (списком) фильтров:
libFilter.jpg

  1. Библиотека фильтров (список подгружается из файла matlib.ini, 1 фильтр = 1 файл PML, в котором хранятся свойства материалов)
  2. Создает новый фильтр
  3. Переименовывает выбранный фильтр
  4. Удаляет фильтр (если в нем нет материалов, т.е. пустой)
  5. Сохраняет файл с библиотекой фильтров (сохранение вызывается также автоматически при закрытии программы)
Работа с выбранным фильтром:
filterSelected.jpg


  1. Здесь показывается материалы конкретного выбранного фильтра, а также их кол-во
  2. Поиск материала, здесь можно ввести имя интересующего материала, поиск по всем загруженным в данный момент в движок материалам, т.е. глобальный
  3. Информация о текстуре выбранного материала (или цвет, если текстуры нет)
  4. Настройки предпросмотра текстуры, показывать ли альфа-канал, центровать картинку по центру и т.д.
Изменение свойств материала:
filterChange.jpg

  1. Задает фильтр для выбранного материала (изменился фильтр -> материал попадает туда)
  2. Задает группу для выбранного материала (тип поверхности, WATER/METAL/WOOD...)
  3. Если активно, то при применении свойств [и если материал переместится в новый фильтр] выделение останется на материале, иначе выделение останется в текущем фильтре (может не совсем понятно описано, но поймете на практие)
  4. Если активно, то последний выбранный фильтр будет выбираться для любых выбранных материалов (удобно, если нужно переместить в один и тот же фильтр много материалов)
  5. Применяет изменение для материала (но не сохраняет изменение фильтре на диск)
Сохранение изменений:
filterSaveMisc.jpg

  1. Чтобы сохранить изменения в файлы фильтров, нажмите кнопку "Сохранить изменений". Её не нужно жать после изменения каждого материала, система следит за изменением в любом из фильтров и сохраняет все изменения за один раз. Т.е. можно поменять 10-20 материалов, и потом 1 раз нажать.
  2. Создает новый материал, полезно, когда вы хотите настроить материал заранее
  3. "Окно свойств" синхронизировано с "Фильтром материалов", в нем вы также можете настраивать свойства материала.
  4. Инструмент выделения полигонов (пипетка) также синхронизирован с Фильтром материалов и окном свойств. Можно выбирать полигоны на локации и менять свойства их материалов
Чтобы добавить эффект в Редактор частиц выберите его и откройте окно редактора (значок молнии). После этого вы можете менять эффект и после изменений сохранить его в текстовый файл.
После этого вы можете вставить измененый эффект в скрипты и скомпилировать снова

PartEditorGuide.jpg
 
Последнее редактирование:

Lev-Lion


Модостроитель
Регистрация
25 Апр 2006
Сообщения
178
Благодарности
273
Баллы
230
7-8) а в старом спейсере работало или нет?
Конечно работало. Без этого никак!

1) А разве такая операция очень частая? Я имею в виду если ты создаешь новый воб, то визуал ты в при создании выбираешь, а если заменяет уже готовый визуал, то легче сделать конвертацию вобов в старом спейсере, или же вписать имя строкой.
Ну я имел ввиду не только замену готового визуала (и его тоже), но также и пустую строку. Кликнул два раз и готово.

6) вроде такое было опцией, не всем зашло.
И тем не менее в качестве опции лучше реализовать. Очень удобная вещь.

2) Никак, массового выделения вобов в обычном режиме нет.
Это жаль. Наверное я перепутал с другим спайсером от Грата. Там это вроде можно было делать.

1) Как соединять/отсоединять вайпоинты?
2) Что по будет по не отвеченным пунктам выше?

ПС: Упс в пунтке 8 замечаний я также не указал класс zCMessageFilter.
Тоесть для этих классов должна быть активация команд из списка. В старом спайсере была кнопка Send, которая активировала одну из команд из списка ниже.

А еще я сегодня заметил что вкладка Triggers не показывает targets ни для каких триггер классов. Как минимум это должны быть классы: zCTrigger, zCTriggerList и zCMessageFilter. Можно также включить и oCMobInter, ZCTriggerTeleport и zCTriggerWorldStrat. Ну и соответственно чтобы все прописанные таргеты показывались не зависимо от того какого они класса.
 
Последнее редактирование:

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
674
Благодарности
655
Баллы
245
neromont, а где это может точно до градуса понадобится?
Я обычно сбрасываю оси shift+R и потом поворачиваю где надо. Че тока народ не придумает)
Это вокруг локальных осей поворот или глобально в пространстве?
Не заморачивайся. Я просто извращенец :) У тебя шикарный инструментарий. Привыкаешь моментально.
В предпоследней версии почему-то не мог выделить Item после вставки.
Выделял через список.
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.490
Благодарности
2.100
Баллы
365
Lev-Lion,
1) Соединять WP Как и раньше, выделил Wp, выделил через второй WP и нажал кнопку соединить в панели, либо кнопка "3" дублирует. Я обычно делаю авто-генерацию, просто летаю по карте, жму F2 и он новый WP ставит и соединяет сам.
2) я пока не планирую серьезно заниматься SpacerNet, если будет время, я простые пункты сделаю, которые делать не долго. По триггерам посмотрю на днях.

Хотелось бы, чтобы при выделении воба из абстрактоного класса zCTriggerBase и zCPFXController, включалась вкладка Triggers в object window - имеется в виду в окне создания воба? Потому что воб абстрактного класса создать нельзя.

neromont, да там баг походу был, вроде в 0.36 исправил.
 

Lev-Lion


Модостроитель
Регистрация
25 Апр 2006
Сообщения
178
Благодарности
273
Баллы
230
Хотелось бы, чтобы при выделении воба из абстрактоного класса zCTriggerBase и zCPFXController, включалась вкладка Triggers в object window - имеется в виду в окне создания воба? Потому что воб абстрактного класса создать нельзя.
Да нет, тут все просто. Например у тебя выделена вкладка all classes. Но летая по карте ты выделил любой триггер воб из абстрактного класса (имееться ввиду все подклассы) или создал его. После этого тут же переключается вкладка Triggers в object window.
 

DB95

Участник форума
Регистрация
21 Дек 2021
Сообщения
4
Благодарности
0
Баллы
35
Что этот спейсер, что старый выдают одну и ту же ошибку, когда пытаюсь открыть меш
 

Вложения

  • 2023-03-02_16-16-10.png
    2023-03-02_16-16-10.png
    13,3 KB · Просмотры: 14

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
674
Благодарности
655
Баллы
245
А нельзя ли как-то сделать опцию "Отключить выделение PFX" клавишей. А то они иногда вымораживают. Вечно их выделяешь.
Но тут видимо нужно не по классу, а по visual *.pfx.

Вроде фильтра выделения что-то.
 
Последнее редактирование:

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.490
Благодарности
2.100
Баллы
365
neromont, если через ctrl выделять, то они игнорируются. Посмотрим.
DB95, значит меш с ошибкой, ты же открываешь 3ds формат? Значит при импорте где-то ошибка. Открывает меш функция в движке, она общая.
 

DB95

Участник форума
Регистрация
21 Дек 2021
Сообщения
4
Благодарности
0
Баллы
35
neromont, если через ctrl выделять, то они игнорируются. Посмотрим.
DB95, значит меш с ошибкой, ты же открываешь 3ds формат? Значит при импорте где-то ошибка. Открывает меш функция в движке, она общая.
Дело в том, что если удалить текстуры из папки Textures, то спейсер нормально открывает меш, но с крашнутыми текстурами, что логично.
Но когда я пытаюсь открыть меш с текстурами (с ними все норм, 512х512, TGA), то спейсер выдает мне эту ошибку

P.S. Попробовал сейчас ради теста создать обычный куб, натянул на него текстуру HUM_BODY_NAKED_V3_C0-C (текстура черного тела), экспортировал куб из бленедера, добавил в спейсер, но спейсер открывает этот куб с текстурой HUM_BODY_NAKED_V0_C0_C (текстура белого тела)
С чего он вообще решил, что открыть меш нужно именно с этой текстурой, если я использовал другую?
 
Последнее редактирование:

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.490
Благодарности
2.100
Баллы
365
DB95, а в материале прописана эта текстура? Имя материала должно быть уникально + модель должна быть из треугольников + каждый раз вручную нужно удалять скомпилированную модель и закрывать спейсер, чтобы в след раз снова скомпилить модель)
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
674
Благодарности
655
Баллы
245
А можно как-то прописать в Spacer мир загружаемый по умолчанию?

И хорошо бы сохранение позиции камеры в том месте где остановился :)
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.490
Благодарности
2.100
Баллы
365
neromont, там была автозагрузка последнего зена, но функция багала часто, если файл переименовать или тчо-то еще, то спейсер просто вылетал. Ну в будущем мб добавлю)
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
674
Благодарности
655
Баллы
245
Сейчас редактирую области zCTrigger. Нельзя как-нибудь сделать чтобы подобные зоны ограничивались не только красными линиями, а использовался какой-нибудь полупрозрачный куб.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.172
Благодарности
6.153
Баллы
1.565
LikerGothic, один баг нашел, который не мешает, но вводи в заблуждение.
Когда открываешь зен как не компилированный, спейсер говорит, что мир не загружен, хотя он на самом деле загружен, и при компиляции - все видно.
Второй баг: при копировании вобов, новый воб встает на теже координаты по оси Z. Надо сделать, чтобы новый воб появлялся непосредственно перед камерой.
И третий: наверно уже говорили. Когда окна закрываешь крестиком, то на панели, кнопки все равно остаются нажатыми.
4 хотелки:
1) сделать доступной всегда компиляцию мира.
2) сделать кнопку: "переместить ВОБ к камере"
3) вращение вобов и их перемещение сделать доступным вместе, чтобы не переключаться между этими режимами.
4) добавить еще один режим вращения/перемещения воба, как от первого лица, как это сделано в оригинале на клавише T.
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.490
Благодарности
2.100
Баллы
365
MEG@VOLT,
1) есть скрытая опция в ини, в ченжлоге посмотри
2) так она есть, "5" по умолчанию
3) в будущем сделаю, хотя мне лично не понятно зачем эта одновременность, это же разные типы движения
4) а что это даст нового?
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.490
Благодарности
2.100
Баллы
365

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.172
Благодарности
6.153
Баллы
1.565
1) есть скрытая опция в ини, в ченжлоге посмотри
А он где? ))
2) так она есть, "5" по умолчанию
Клавиша "5". Без нее никак. )
Не совсем понятно было, видимо при чтении пропустил...
3) в будущем сделаю, хотя мне лично не понятно зачем эта одновременность, это же разные типы движения
4) а что это даст нового?
Удобство и привычка))
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.490
Благодарности
2.100
Баллы
365
MEG@VOLT, я не работал со старым спейсером (к счастью) и многих вещей там не знаю. По поводу 4 пункта не уверет, даже не знаю что это такое.
  1. Компиляция мира снова доступна на уже скомпилированном мире, но только через настройку. Поставьте в раздел [SPACER] canCompileWorldAgain=1 в spacer_net.ini, чтобы это было доступно
 
Сверху Снизу