Welcome to RUSaCis - эмулятор Interlude

Присоединяйтесь к нам прямо сейчас, чтобы получить доступ ко всем нашим возможностям. После регистрации и входа в систему вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию пользователям - так же приобрести исходный код. Это также быстро, так чего же вы ждете?

[Гайд] Создание своего NPC на основе статик меша.

Tazarr

Бродяга
Регистрация
20 Сен 2025
Сообщения
11
Реакции
11
Баллы
3
RaCoin
5
Перед началом хотелось бы уточнить, что опыта в сфере моддинга клиентской части у меня очень мало. Говоря прямо - данный гайд является моим первым успехом в попытке сделать что-то рабочее в данном направлении. На лавры эксперта не претендую, делюсь тем, что сработало именно у меня.

Задача: Взять модель нужного нам статик меша линейки (staticmeshes/*.usx), преобразовать в формат *.ukx, использовать далее в npcgrp.dat
Необходимое ПО:
1) umodel - просмотр нужных мешей, преобразование .usx в .psk
2) 3ds max - редактирование меша. Я использовал 3ds max 2012, вы можете любой другой, лишь бы поддерживал плагины, о которых указано ниже
3) ActorX importer - скрипт для 3ds max, позволяет импортировать в программу модели с форматом .psk
4) ActorX plugin - плагин для 3ds max, экспортирует модель из программы в формат .psk
5) PostalED - Unreal Editor от игры Postal, позволяет редактировать модели и текстуры и сохранять их в принимаемом l2 варианте
6)l2FileEditor - для редактирование .dat файлов

Все программы есть в шаре, сложностей с поиском и установкой возникнуть не должно

Приступим.

1) Переносим нужный нам статикмеш в папку с umodel.exe.
Пишем батник: umodel.exe -export нашстатикмеш.utx
В результате получим папку с нашим статикмешом в формате .psk

2) Открываем 3ds max. Во вкладке MAXScripts - Run Script - выбираем ActorX importer.
В открывшемся окне выбираем Import PSK - указываем путь до нашего статик меша.psk

В результате программа подгружает наш статикмеш.
Теперь, чтобы преобразовать статикмеш в меш, нужно добавить кость и привязать к ней все вершины нашего статикмеша. Для этого:
Во вкладке Create - Systems - Bones IK Chain
создаем где-нибудь в центре меша кость, по умолчанию будет называться Bone001
Затем переходим во вкладу Modify, там, где написано Modifier List нажимаем на стрелочку, в выпадающем списке выбираем Skin
Открываем вкладку скин, выбираем Envelope, во вкладке Parameters ставим галочку на Vertices, во вкладке Bones нажимаем Add - выбираем нашу кость
Выделяем все вершины CTRL+А
Во вкладке Weight Properties нажимаем Weight Table, для всех вершин устанавливаем значение 1,0

Нажимаем H, выделяем наш меш и кость.
Во вкладке Utilities (молоток) жмем More - выбираем ActorX. В SkeletalMesh Exporter: output - путь, куда экспортировать новосозданный скелетмеш, Mesh file name - название меша

В результате получаем .psk файл с мешем

3) Открываем PortalED.
Заходим в Animation Tool, File - Import Mesh
В открывшемся окне: package - имя нашего .ukx, name - название меша.
Видим наш меш из 3ds max
По желанию редактируем Scale, Translation
Далее File - Save
Сохраняем с именем, указанным в package.
Результат кладем в папку animations л2
После этого в папке textures копируем файл .utx с текстурой нашего статикмеша и вставляем в папку systextures

4) Открываем L2FileEditor
В нем редактируем npcgrp.dat
Копируем для примера какую-нибудь готовую строку, вставляем в самый низ
Сама структура строки указана сверху, здесь нас интересуют:
tag class mesh cnt_tex1 tex1[0] tex1[1] tex1[2] tex1[3] tex1[4]

здесь tag - idTemplate НПЦ, class - указываем SkeletalMesh, mesh - указываем имя .ukx файла и имя меша через точку, т.е. например test.testmesh

cnt_tex1 - количество текстур, указываем цифру, не больше 4

tex1 - текстура с индексом i

здесь вставляем название нашего .utx файла в папке systextures и через . название текстуры (смотрим в umodel), например quest_worldcamp_t.q008
Вставляем столько текстур, сколько указали в cnt_tex1

Из интересного есть еще:
cnt_snd1 snd1[0] snd1[1] snd1[2] cnt_snd2 snd2[0] snd2[1] snd2[2] snd2[3] snd2[4] cnt_snd3 snd3[0] snd3[1] snd3[2]
соответственно звуки (ударов и прочего)
effect - эффекты
sound_rad sound_vol
радиус, громкость звука

Эти параметры я не редактировал, можете сами похимичить

Сохраняем и шифруем npcgrp.dat, вставляем в папку systems

5) Создаем нпц на сервере, в качестве idTemplate указываем созданный нами в npcgrp.dat
<set name="radius" val=""/> - соответственно радиус НПЦ
<set name="height" val=""/> - Высота

6) Запускаем сервер, запускаем клиент, спавним созданног нпц - радуемся.

1760197014581.png
 
Сверху Снизу