Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Обучающие статьи (https://forum.zone-game.info/forumdisplay.php?f=180)
-   -   Создание своего UKX файла (https://forum.zone-game.info/showthread.php?t=34849)

OneThunder 21.04.2014 17:11

Создание своего UKX файла
 
В прошлом уроке мы научились создавать UTX файл текстурных данных. Теперь мы сделаем простенькую модельку [баннерная доска], сделаем ей разврестку затекстурим и запихнем все это дело в игру как НПС персонажа (увы) .

Данный урок расчитан для тех людей которые УЖЕ имеют БАЗОВЫЕ познания

-3Ds Max
-Photoshop
-Unreal Engine 2 (UT2004)

Что нам нужно для достижение цели


-3Ds Max
-Adobe Photoshop
-Патч от гилдора (купите у разработчика)
-ActorX Exporter for 3Ds Max
-UT2004
-l2FileEdit
-Melkosoft Excell:D
-Усидчивость терпение



1)Создание мэша

1.1)Моделирование
INTRODUCTION:
По сути дело самая легкая и креативная часть всего процесса, мануалов по данной теме очень много но я в краце опишу всю процедуру с начало до конца когда вы видите биллборд в игре. Я лишь опишу все что сделал я, на самой простой модели.


Представляем как наш мэш(модель) будет выглядить.


Нарисовали на бумашке? Приступаем к примитивному моделингу

Используя вкладку

http://imghost.in/img/2014-04/22/ziz...g5d0l1xejk.jpg

Начинаем с простых форм.




Манипулируем объект в пространстве



Используя простые утлиты начинаем менять мэш



Заканчиваем форму
http://imghost.in/img/2014-04/22/sjq...lmpzxzw2jb.jpg


Важная ремарка. Перед тем как перейти к пункту (2)Разверстка не объеденяйте объекты(если их множество) в 1 меш путем
http://imghost.in/img/2014-04/22/s4h...uiu20lolqy.jpg





2)Разверстка

2.1)Общие принципы
Если коротко, UV Mapping, или UVW Unwrapping, это процесс разверстки который необходим для преобразование соответствии между координатами на поверхности трёхмерного объекта (X, Y, Z) и координатами на текстуре (U, V, W)

Если еще короче ХД Разверстка процесс который определяет координаты будующих текстур, и без данного процесса нельзя перейти дальше.

http://imghost.in/img/2014-04/22/78e...12dm9e3uhz.jpg


2.2)Подготовка

Самое легкое для вас найти туториалы в ютубе. Но я опишу некоторые функции на базе наипростейших форм.


Вот мы имеем базовую форму.

http://imghost.in/img/2014-04/22/gqc...srf4mste56.jpg


Для детальной проверки правильности текстурных координат создаем и применяем материал Standart с данной текстурой.

http://imghost.in/img/2014-04/22/vgp...a502f1dswc.jpg

Для того чтобы применить материал жмем M выбираем любой свободный слот. Во вкладке Diffuse.

http://imghost.in/img/2014-04/22/xan...lostvrizw2.jpg

Далее выбираем тип открываемого файла

http://imghost.in/img/2014-04/22/l14...nx84ifxzif.jpg

И ставим галочку сюда чтобы материал был виден во Viewport'e

http://imghost.in/img/2014-04/22/ema...cqh70o1k1a.jpg

И перетаскиваем материал на сам объект

http://imghost.in/img/2014-04/22/gsn...9x2ydicrtz.jpg





2.3)Создание UV

И так, даже не вооруженным взглядом можно увидеть что UV разверстка не правильна в некоторых частах, и неполная в общем.

http://imghost.in/img/2014-04/22/05m...46hstmhy0d.jpg

Применяем модификатор Unwrap UVW

http://imghost.in/img/2014-04/22/f37...olmc1n1t8s.jpg


Открываем UV Editor

http://imghost.in/img/2014-04/22/8pm...vestlmgjzp.jpg

Переходим в режим выбора полигонов.

http://imghost.in/img/2014-04/22/1gu...8vnlz9r4vy.jpg

Выбираем все CTRL - A

И применяем самый простой метод разверстки примитивных объектов.

Flatten Mapping - Берет все лица (стороны) объекта и "делит" их по плоскости.

http://imghost.in/img/2014-04/22/unr...lx847fz0nb.jpg

С такими параметрами

http://imghost.in/img/2014-04/22/8fw...bw0q4ld1ea.jpg

Вот что мы получаем


http://imghost.in/img/2014-04/22/xkz...r31ka37ajz.jpg

Дальше это по сути процесс создание для себя удобство чтоб в будующем легче было текстурировать, крутить вертить стороны в анрвап едиторе до тех пор пока ты не будешь знать четко какая где стоит сторона.

Вот что получил я

http://imghost.in/img/2014-04/22/bhn...6vw0x3e56i.jpg

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

http://imghost.in/img/2014-04/22/vq7...fzi5phvnuj.jpg

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

NOTE

Cтоит знать что все элементы должны подчинятся некоторым правилам

1) No Overlaping UVS Не должно быть пересекающих частей разверстки
Проверять тут с активным режимом выбора ПОЛИГОНОВ

http://imghost.in/img/2014-04/22/sv3...mk73w1p2xk.jpg
Если красным ничего не показывает значит все гуд

2) No Out Of Bounds UVS Не должно быть элементов пересекающих данную зону когда уже меш готов к экспорту в игру, в едиторе же в процессе настройки UV эту черту можно сводобно использовать, т.е к примеру для систематизации UV или просто на время передвинуть не нужные элементы за черту чтоб не мешали.

http://imghost.in/img/2014-04/22/t2n...sf7mjv5sqw.jpg



2.4)Сохранение. Рендеринг
Для рендера нашей разверстки в нужный нам формат TGA нажимаем как на картинке ниже
http://imghost.in/img/2014-04/21/sp1...idsge8290b.jpg

С данными параметрами

http://imghost.in/img/2014-04/21/pro...jk30s7szbp.jpg

Сохраняем

http://imghost.in/img/2014-04/21/sne...m8y3zu2gz2.jpg

Такие параметры

http://imghost.in/img/2014-04/21/7g3...4pgi13uxqn.jpg

Результат.

http://imghost.in/img/2014-04/21/2fx...aovw4hkrsm.jpg

DONE!



Промежуточная эстетика

Перед экспортом в PSK файл. Необходимо настроить и перепроверить мэш дабы не возникло непредвиденных проблем.


Грац!:
Свернуть ↑Развернуть ↓



1.1)Настройка пивот пойнта

http://imghost.in/img/2014-04/22/g0c...2h8b3wawtq.jpg
а потом перетаскиваем пивот к основанию объекта по Z координате (вниз)

http://imghost.in/img/2014-04/22/1zg...i3tehcr6pn.jpg

DONE


1.2)Центрирование

Перед экспортом необходимо сам мэш центрировать к визуальной сетки в максе, для этого в режиме объекта

http://imghost.in/img/2014-04/22/d4c...chvzqyhzt4.jpg

правый клик суды и суды потом
http://imghost.in/img/2014-04/22/9my...kgwh4z7da4.jpg

DONE теперь мэш в центре
http://imghost.in/img/2014-04/22/iy1...iect8rk831.jpg



1.3) Присвоение материала
@TODO

1.4) Проверка Material ID's
В данной части урока где используется лишь 1 слот для текстур убедитесь что все части и стороны объекта имеют лишь 1 Material ID для этого выберите все стороны объекта CTRL+A и как на картинке присвойте 1.

http://imghost.in/img/2014-04/22/u3i...qi2txev6zv.jpg





3)Создание текстуры

3.1)Выбор текстур

Выбираем текстуры...

3.2)Текстурирование

Тут писать много не буду, как запомнили или проверили какая часть UV за что отвечает, вот и наносим на нее нужные нам картинки, шаманим, благо есть много туториалов по дизайну и текстурированию, углублятся не буду.

Данный рендер загружаем в фотошоп и поверх него начинаем наносить нужные нам текстуры

http://imghost.in/img/2014-04/21/2fx...aovw4hkrsm.jpg


http://imghost.in/img/2014-04/21/eaz...2vtypkgti7.jpg
DONE!


4)Импорт в UT2004


4.1)Подготовка

После скачивание 3дмакс и Actor X Exporter, устанавливаем данный плагин на макс и тут вызываем его.

http://imghost.in/img/2014-04/22/6xn...jxjai1ak9u.jpg

Ставим поверх нашего меша модификатор скин

http://imghost.in/img/2014-04/22/4wj...1qiqfsyu64.jpg

Опять переходим в актор х и с такими параметрами

http://imghost.in/img/2014-04/22/wer...4bgq17t96o.jpg

Жмем на Save Mesh/Refpose


4.2)Импорт модели в UT2004

На патченный гилдором UT2004 импортим...
http://imghost.in/img/2014-04/22/k5p...qw68150rgs.jpg

http://imghost.in/img/2014-04/22/lom...qgzv6gi1d9.jpg

http://imghost.in/img/2014-04/22/ucq...danvj429px.jpg

Во вкладке текстур выбираем нашу текстурку переходим в Animations и нажимаем Use как на картинке ниже для превизуализации

http://imghost.in/img/2014-04/21/4nq...6rbofm0j2s.jpg


4.3)Импорт текстуры в UT2004

-читайте подробнее в уроке про UTX паки
https://forum.zone-game.info/showthread.php?t=34822



5)Экспорт модели и текстуры

Текстуру экспортим как в уроке тут
https://forum.zone-game.info/showthread.php?t=34822
К примеру пакет ZoneGameNPC_Tex
Кодируем в 121 EncDecom


А модельку сохраняем так, и пихаем в папку D:/Igri/L2/Animations

http://imghost.in/img/2014-04/22/268...qynalo28s2.jpg

6)Импорт в игру, редактирование .Dat файлов


Клиент часть


Это параметры NPC GRP npcgrp.dat
Код:

tag        class        mesh        cnt_tex1        tex1[0]        tex1[1]        tex1[2]        tex1[3]        tex1[4]        tex1[5]        tex1[6]        cnt_tex2        tex1[0]        tex1[1]        cnt_dtab1        dtab1[0]        dtab1[1]        dtab1[2]        dtab1[3]        dtab1[4]        dtab1[5]        dtab1[6]        dtab1[7]        dtab1[8]        dtab1[9]        dtab1[10]        dtab1[11]        dtab1[12]        dtab1[13]        dtab1[14]        dtab1[15]        dtab1[16]        dtab1[17]        dtab1[18]        dtab1[19]        dtab1[20]        dtab1[21]        dtab1[22]        dtab1[23]        dtab1[24]        dtab1[25]        dtab1[26]        dtab1[27]        dtab1[28]        dtab1[29]        dtab1[30]        dtab1[31]        dtab1[32]        dtab1[33]        npc_speed        UNK_0        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]        rb_effect_on        rb_effect        rb_effect_fl        unk1_cnt        unk1_tab[0]        unk1_tab[1]        unk1_tab[2]        unk1_tab[3]        unk1_tab[4]        unk1_tab[5]        unk1_tab[6]        unk1_tab[7]        unk1_tab[8]        unk1_tab[9]        unk1_tab[10]        unk1_tab[11]        unk1_tab[12]        unk1_tab[13]        unk1_tab[14]        unk1_tab[15]        unk1_tab[16]        unk1_tab[17]        unk1_tab[18]        unk1_tab[19]        unk1_tab[20]        unk1_tab[21]        unk1_tab[22]        unk1_tab[23]        unk1_tab[24]        unk1_tab[25]        unk1_tab[26]        unk1_tab[27]        unk1_tab[28]        unk1_tab[29]        unk1_tab[30]        unk1_tab[31]        unk1_tab[32]        unk1_tab[33]        unk1_tab[34]        unk1_tab[35]        unk1_tab[36]        unk1_tab[37]        unk1_tab[38]        unk1_tab[39]        unk1_tab[40]        unk1_tab[41]        unk2_cnt        unk2_tab[0]        unk2_tab[1]        unk2_tab[2]        unk2_tab[3]        unk2_tab[4]        unk2_tab[5]        unk2_tab[6]        unk2_tab[7]        unk2_tab[8]        unk2_tab[9]        unk2_tab[10]        unk2_tab[11]        unk2_tab[12]        unk2_tab[13]        unk2_tab[14]        unk2_tab[15]        unk2_tab[16]        unk2_tab[17]        unk2_tab[18]        unk2_tab[19]        unk2_tab[20]        unk2_tab[21]        unk2_tab[22]        unk2_tab[23]        unk2_tab[24]        unk2_tab[25]        unk2_tab[26]        unk2_tab[27]        unk2_tab[28]        unk2_tab[29]        unk2_tab[30]        unk2_tab[31]        unk2_tab[32]        unk2_tab[33]        unk2_tab[34]        unk2_tab[35]        unk2_tab[36]        unk2_tab[37]        unk2_tab[38]        unk2_tab[39]        unk2_tab[40]        unk2_tab[41]        effect        UNK_3        sound_rad        sound_vol        sound_rnd        quest_be        class_lim_?        npcend_cnt        npcend[0]        npcend[1]        npcend[2]        npcend[3]        npcend[4]        npcend_cnt2
Используя Excell и создал строку на основе ID Гремлина. Вот она. И присвоил в соответсвующие ечейки путь к файлом. Давайте это рассмотрим

Код:

93002        LineageNPC.black_market_trader_MDwarf_set        ZoneGameNPC.TableProjection        1        ZoneGameNPC_Tex.TableProjection_Diffuse                                                        0                        2        4416        18                                                                                                                                                                                                                                                                        1.00000000        0        3        ItemSound.fist_1        ItemSound.fist_2        ItemSound.fist_3        5        ItemSound.armor_leather_1        ItemSound.armor_leather_2        ItemSound.armor_leather_5        ItemSound.armor_leather_7        ItemSound.armor_leather_8        3        ChrSound.MNpc_Old_Dmg_1        ChrSound.MNpc_Old_Dmg_2        ChrSound.MNpc_Old_Dmg_3        0                        1        0                                                                                                                                                                                                                                                                                                                                                1        0                                                                                                                                                                                                                                                                                                                                                LineageEffect.p_u002_a        0        50.00000000        250.00000000        70.00000000        1        0        3        a,ssq_mammon_greeting_1\0        a,ssq_mammon_greeting_2\0        a,ssq_mammon_greeting_3\0                        0

tag class mesh cnt_tex1 tex1[0]

Tag = Id NPC
Class= по сути любой)
Mesh= Путь к мешу в Animations. ZoneGameNPC.TableProjection
cnt_tex1 = 1 это значит что слотов для текстуры будет 1. максимум 7. используются в основном на комплексных мешей где есть на 1 предмете разные типы материалов к примеру разврестка 1, но материалов этих слотов 3, дерево, метал пластик...и т.д.
tex1[0]= слот первый. И внтутри него надо прописывать путь к текстуре
пример. ZoneGameNPC_Tex.TableProjection_Diffuse



Серверная часть
Создаем своего нпса.
Код:

<npc id="93002" name="." title=".">
                <set name="aggroRange" value="0" />
                <set name="ai_type" value="CharacterAI" />
                <set name="baseAtkRange" value="40" />
                <set name="baseCON" value="43" />
                <set name="baseCritRate" value="40" />
                <set name="baseDEX" value="30" />
                <set name="baseHpMax" value="1673.055" />
                <set name="baseHpRate" value="1" />
                <set name="baseHpReg" value="6.5" />
                <set name="baseINT" value="21" />
                <set name="baseMAtk" value="361" />
                <set name="baseMAtkSpd" value="500" />
                <set name="baseMDef" value="262" />
                <set name="baseMEN" value="25" />
                <set name="baseMpMax" value="889.8" />
                <set name="baseMpReg" value="2.4" />
                <set name="basePAtk" value="665" />
                <set name="basePAtkSpd" value="253" />
                <set name="basePDef" value="322" />
                <set name="baseRunSpd" value="120" />
                <set name="baseSTR" value="40" />
                <set name="baseShldDef" value="0" />
                <set name="baseShldRate" value="0" />
                <set name="baseWIT" value="20" />
                <set name="baseWalkSpd" value="30" />
                <set name="collision_height" value="0.0" />
                <set name="collision_radius" value="1.5" />
                <set name="level" value="55" />
                <set name="rewardExp" value="0" />
                <set name="rewardRp" value="0" />
                <set name="rewardSp" value="0" />
                <set name="shots" value="NONE" />
                <set name="texture" value="" />
                <set name="type" value="Merchant" />
                <attributes>
                        <defence attribute="fire" value="20" />
                        <defence attribute="water" value="20" />
                        <defence attribute="wind" value="20" />
                        <defence attribute="earth" value="20" />
                        <defence attribute="holy" value="20" />
                        <defence attribute="unholy" value="20" />
                </attributes>
        </npc>

Спавним нпса в игре.

9)PROOFIT!
http://imghost.in/img/2014-04/22/elz...6fj0nxyg5p.jpg

Свои результаты выкладывайте в теме, мне будет очень интерестно на них посмотреть

И за огромного количество скриншотов информации я ели доделал данный туториал :D
Тему буду иногда дополнять.
ваши пожелания или вопросы, проблемы с которыми вы сталкиваетесь все это очень приветствуется, пишите.

mishut 21.04.2014 19:45

Re: Создание своего UKX файла
 
бла бла особо познавательно :) Ждем пока допишешь )

OneThunder 21.04.2014 21:03

Re: Создание своего UKX файла
 
Кстати заметил баг чтоле, видел ктот тыкнул спасибо, после редактирование оно исчезает лол:D

Добавлено через 1 час 6 минут
Так ладно завтро допишу а то спать хочу.

GOODPower 22.04.2014 12:05

Re: Создание своего UKX файла
 
Считаю, что такое можно и закрепить и выделить ему отдельный раздел как по SAMP :D Только в его разделе будет больше нужного, чем Г по samp

Ashe 22.04.2014 12:09

Re: Создание своего UKX файла
 
GOODPower, скорее всего так и произойдёт, если мануалов накопится достаточное количество для раздела. Во всяком случае, Temptation, может рассчитывать на мою поддержку в этом вопросе.

OneThunder 22.04.2014 12:51

Re: Создание своего UKX файла
 
Делаем анимационный баннер используя примитивную анимацию с использованием мультислотов и мультитекстур(Multi-Sub Object Material)

1)Установка материала в 3D Max и PS
1)Присваиваем MultiSubObjectMaterial в 3Д Макс.

http://imghost.in/img/2014-04/23/xn4...ljpous41qb.jpg

Збрасываем старый материал оставляя полностью пустые слоты

http://imghost.in/img/2014-04/23/qgn...ps9zjk9yzt.jpg

устанавливаем нужное нам количество слотов

http://imghost.in/img/2014-04/23/hsj...n740nirm91.jpg


Именуем наши материалы и присваиваем обоим тип под материала Standart

http://imghost.in/img/2014-04/23/w8p...z82m2rzxky.jpg

Далее делим нашу первую текстуру с урока выше на 2 части. +1



Текстуру рамки в соотвествующий слот Border, Текстуру баннера соотвествено.
http://imghost.in/img/2014-04/23/aku...v6i7cr9a6x.jpg

В полигональном режиме выделяем всю рамку предмета и перетаскиваем как на картинке

http://imghost.in/img/2014-04/23/ve5...o9m0mecb08.jpg

Также делаем с логотипом

http://imghost.in/img/2014-04/23/l2b...bmt2j9zvkz.jpg


NOTE: как вы можете заметить теперь во вкладке Material ID's стоит 2 ID т.е 2 слота, 1 для рамки и 1 для баннера




2)Импортируем все это в UT2004

http://imghost.in/img/2014-04/23/5it...5oq54fkhi9.jpg


3)перепроверка

Текстурирование, сохраняем 3 текстуры.

Материал 1( текстура для рамки)

Материал 2 ( текстура для логотипа 1, текстура для логотипа 2)

Экспорт

Импорт в UT2004

Делаем анимацию

Выбираем последующаю текстуру
Выбираем фреймрейт

Экспорт в игру.

Анимация

Текстуры.

Клиент Часть

Датники


Текущее время: 05:57. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot