Toribash Русский Форум

Объявление

4бб переехал на toribash.ru. Все разделы 4бб закрыты на добавление сообщений.

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

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Toribash Русский Форум » Энциклопедия » Туториал по созданию модов


Туториал по созданию модов

Сообщений 1 страница 9 из 9

1

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

http://servut.us/DaHandy/Toribash/ToriBashBodypartsForMods.jpg
Это список всех частей тела (не суставов) с их внутреигровыми названиями. Это нам пригодится в будующем. Суставы называются также как и в игре, когда вы наводите на них, только вместо right в начало названия добавляется r_ и вместо left l_ соответственно.

А теперь начнем сам туториал :)
Для начала откройте старый добрый блокнот (если вы используете Mac или Linux, то откройте какой-нибудь простейший текстовый редактор. Нам не нужно форматирование, мы же не письмо любимой девушке пишем :D). Моды описываются в простых текстовых файлов и вы прямо сейчас можете открыть любой из папки data\mods и посмотреть как моды устроены. Если вы все поймете в структуре файлов модов, то этот туториал вам точно не нужен :P
Чтобы обучиться базовым принципам создания модов, давайте создадим что-нибудь :D
http://smages.com/i/4f/aa/4faab3bf12c26b8fc5b04ff2c42a3e69.png
Как вы можете увидеть на моей аццкой картинки из пейнта, ось X расположена по направлению от одной руки к другой, ось Z это вверх и вниз, а ось Y это к юку и от него.
Для нашего тестового мода с мечами мы модифицируем кулаки, чтобы они были длинее и были инстагибистыми (интересное слово я придумал... я имею в виду, что при прикосновении к ним других частей тела, суставы прилегающие к этим частям будут ломаться).

Вот стандартный код для правого кулака:

Код:
body r_hand
shape box
sides 0.22 0.22 0.22
alt_sides 0.3 0.11 0.16
pos -0.35 0.85 2.3
rot 0 0 0
force 0 0 0
color 1 1 1
material flesh
flag 32

Естественно нам нужно указывать только то, что мы изменяем, остальное будет установлено в значение по умолчанию. Обязательно только надо указать "body r_hand", это указывает на часть тела, которую мы редактируем. Пожалуйста, я прошу вас, умоляю даже!!!! скопируйте предыдущий код в блокнот. Просто читать и не пробовать все сделать самому никогда не кончается хорошо :D
Для начала, мы изменим размер кулака, чтобы они выглядели как мечи. Внутри кода правого кулака написано:

Код:
sides 0.22 0.22 0.22

Это означает, что кулак длиной 0.22 внутриигровых единиц длины в каждую сторону, то есть простой куб.
Мы хотим сделать мод с мечом, так что мы должны сделать кулак шире по оси Z (вверх и вниз) и тоньше по оси X.
Первое число обозначает координаты по оси X, второе по оси Y и третье по оси Z соответственно.
Так что если бы я хотел сделать кулак длинее в высоту я изменил бы

Код:
sides 0.22 0.22 0.22

например, на

Код:
sides 0.22 0.22 1

Основная часть времени при создании модов уходит на угадывание (это означает, что пока мы не сохраним мод и не откроем его в игре, мы не можем знать как он будет выглядеть) и тестирование. Так что основной цикл создания модов это изменение, тестирование и опять изменение и тестирование и так пока мы не увидим то, что мы хотели бы.
Теперь сделайте в блокноте теже изменения, какие я совершил выше, то есть 0.22 измените на 1. Теперь нажимаете Файл->Сохранить (или что там у вашего редактора) и сохраните файл под именем modtut.tbm в папку data\mod (чтобы сохранить файл с помощью виндоусовского блокнота с нестандартным расширением (в нашем случае - .tbm) выберите вмесьл "Текстовые документы (*.txt)" "Все файлы") и сохраните файл.
Теперь откройте Toribash, зайдите в одиночную игру и введите в чат команду "/lm modtut.tbm" (вы естестественно могли бы выбрать мод в меню, но так быстрее).
И вот ВАШ СОБСТВЕННЫЙ первый мод. Выглядит хреново, я прав?
Меч недостаточно длинный, так что вернемся в блокнот и изменим 1 на, например, 1.5, теперь пересохраните файл и теперь разверните окно Toribash и введите "/lm default" (если вы сразу введете "/lm modtut.tbm", то тогда игра не загрузит его, так как она подумает что вы пытаетесь второй раз один и тот же мод грузить и это как-то хреново и все такое) и теперь как обычно "/lm modtut.tbm".
Теперь меч выглядит подлиннее, мне кажется в самый раз. Если вы хотите сделать его длиннее или короче - делайте, так даже будет лучше, если вы будете сами пробовать.
Не кажется ли вам что он выглядит как просто большая палка?
Мы должны сделать наш меч намного тоньше. Измените

Код:
sides 0.22 0.22 1.5

на примерно

Код:
sides 0.005 0.22 1.5

Теперь у нас должно получиться примерно следующее:
[реклама вместо картинки]
Вроде бы размер правильный. Теперь мы должны исправить позицию. Кто же держит меч за середину лезвия :D
Найдите строку содержащую

Код:
pos -0.35 0.85 2.3

Это позиция кулака, как вы уже наверно поняли :D Естественно X, Y и Z.
Такс, мы хотим сделать его выше, чтобы это выглядело, как игрок держит меч за низ.
Попробуйте изменить

Код:
pos -0.25 0.85 2.3

на

Код:
pos -0.25 0.85 3

пересохраните, перезагрузите :)
немного высоковато, опустите до 2.9, так должно быть в самый раз.
Теперь вроде бы все хорошо, но здесь есть промежуток между мечом и суставом, который раньше был запястьем по оси X. Попробуйте изменить -0.35 на 0.2.
Теперь это выглядит как будто он держит меч!
[реклама вместо картинки]
Что еще мы можем сделать? А давайте-ка добавим инстагиб, как мы и хотели.
Инстагиб устанавливается с помощью флагов (параметр flag). Вот их список:
1 = стандартно
2 = при ударе по этой части тела противник не получает очков
6 = инстагиб и антиинстагиб (другие инстагибирующие вещи не будут ломать)
8 = статический объект (только для объектов, не относящихся к игрокам)
12 = инстагиб
16 = невозможно грабнуть
32 = недисквалифируема (как на кулаках и ступнях)
Небольшой комментарий: я не очень уверен на счет этих флагов, хотя везде именно их указывают. Просто обычно должно это быть, как отдельные битовые флаги (числа с только одним битом установленым в единицу... двоичная система счисления...)
Если вы хотите указать несколько флагов, то вы должны сложить требуемые числа, то есть, например, вы хотите сделать часть тела, которую невозможно заграбить и которая не будет дисквалифицироваться, то вы должны сложить 16 и 32 и написать 48 во флагах.
МЫ хотим сделать наш меч инстагибирующим и чтобы противник не мог сломать руку, когда он коснется своим мечом нашего, значит нам нужен флаг 6 (инстагиб и антиинстагиб), теперь исправьте флаг 32 на флаг 38 (инстагиб + недисквалифицируемость), сохраните мод и протестируйте в игре, коснувшись юка!
[реклама вместо картинки]
Но мечи же делают из металла, не из мяса, да? Изменим-ка

Код:
material flesh

на

Код:
material steel

Никаких видимых изменений, но это делает тяжелее и меняет звуки при ударе
Теперь у вас должно получиться что-то типа такого:

Код:
body r_hand 
shape box 
sides 0.005 0.15 1.5 
alt_sides 0.3 0.11 0.16 
pos -0.2 0.85 2.9 
rot 0 0 0 
force 0 0 0 
color 1 1 1 
material steel
flag 38

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

Код:
sides 0.005 0.15 1.5

так что вы должны написать

Код:
alt_sides 0.004 0.14 1.4

или что-то типа такого, не особо важно, если быть честным.
Давайте теперь повернем наш меч, а то он стоит как-то слишком прямо, не бывает так
Чтобы это сделам нам потребуется команда rot. Работает точно также как и pos, то есть X, Y, Z и все такое, только здесь уже углы в градусах. Так, мы хотим, чтобы меч был повернут немного назад и в бок, поэтому сделаем что-то типа такого:

Код:
rot -10 20 0

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

Код:
rot 10 20 0

И теперь должно быть как надо.
Теперь можно замутить еще какую-нить хрень. Например, добавим цвет. Цвета естественно указываются в формате RGB, только разница в том что максимум каждого цвета обозначается 1, а минимум 0. То есть чтобы перевести из стандартного формата RGB нам нужно каждую циферку разделить на 255 и должно то что надо получиться. Можете тестировать цвета в пейнте (если знаете как ;P).
Например, я в своем моде сделал меч желтым, то есть rgb 1 1 0
И вот что у меня получилось:
[реклама вместо картинки]
Давайте теперь сделаем для прикола ЦИЛИНДРИЧЕСКИЕ БОТИНКИ МВАХАХА. Хм.
Для начала нам потребуется стандартный код для левой ступни...

Код:
body l_foot
shape box
sides 0.2 0.5 0.08
pos 1.2 0.9 0.1
rot 0 0 0
force 0 0 0
color 1 1 1
material flesh
flag 32

...и для правой...

Код:
body r_foot
shape box
sides 0.2 0.5 0.08
pos 0.8 0.9 0.1
rot 0 0 0
force 0 0 0
color 1 1 1
material flesh
flag 32

Теперь изменим их форму на цилиндр. Для этого изменяем

Код:
shape box

на

Код:
shape cylinder

Все очень просто ы. Всего есть 3 типа объектов: box, cylinder и sphere. Прямоугольный параллелепипед (также известный как ящик), цилиндр и сфера.
Теперь ноги появляются внутри земли и цилиндры не в ту сторону повернуты. Есть два способа заставить их смотреть в нужную сторону. Перед тем как вы прочтете ответ, попробуйте сами додуматься как это сделать.

Вы можете использовать поворот или изменить размер <- выделите это, тут ответко xD

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

body l_foot
shape cylinder
sides 0.2 1 0.08
pos 1.2 0.9 0.1
rot 90 0 0
force 0 0 0
color 1 1 1
material flesh
flag 32

body r_foot
shape cylinder
sides 0.2 1 0.08
pos 0.8 0.9 0.1
rot 90 0 0
force 0 0 0
color 1 1 1
material flesh
flag 32
^ выделите ^

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

color 0 0 0

Теперь то что у нас получилось должно выглядеть вот так:
[реклама вместо картинки]
А давайте теперь сделаем чтобы они летели друг на друга как в jousting'е...
Для этого нам нужно будет использовать force.  Если вы откройте файл jousting.tbm вы увидете что там используется force. Наш код будет немного другим. Пусть ноги пойдут вперед, это поможет нам устоять на них. Нам не нужно писать force для каждой части, примерно 5-10 частей тела в самый раз.

Код:
body stomach
force 0 20 0
body breast
force 0 20 0
body chest
force 0 20 0
body groin
force 0 20 0
body r_pecs
force 0 20 0
body l_pecs
force 0 20 0
body r_thigh
force 0 20 0
body l_thigh
force 0 20 0
body l_leg 
force 0 20 0
body r_leg
force 0 20 0

Это сделает все что нам нужно. Просто вставьте в ваш мод, помучиться с force вы можете потом :D
Но теперь мы переворачиваемся из-за двух вещей:
1) Слишком много трения
2) Ноги в самом начале внутри земли находятся
Чтобы исправить первое добавьте

Код:
friction 0

в начала вашего мода.
А чтобы исправить второе добавьте

Код:
gamerule 
engageheight 20

Это установит engageheight на 20 в игровых настройках. Тоже самое что и /set engageheight 20
Хммм... все еще не работает? Я только что понял что наши ступни слишком большие и соответственно слишком тяжелые и нам потребуется больше силы для них. Исправьте force у ног на то что хотите (120 у меня получилось в самый раз). Не забудьте сделать это для обеех ног.
Но теперь тори поворачивается в левую сторону потому что его левая рука тяжелее меча. Мы можем это исправить двумя способами: сделать меч тяжелее увеличив толщину лезвия или добавить силы на левую сторону чтобы компенсировать разницу массы.
Я выбрал добавление силы. И вот что получилось:

Код:
body stomach
force 0 20 0
body breast
force 0 20 0
body chest
force 0 20 0
body groin
force 0 20 0
body r_pecs
force 0 20 0
body l_pecs
force 0 35 0
body r_thigh
force 0 20 0
body l_thigh
force 0 35 0
body l_leg
force 0 35 0
body r_leg
force 0 20 0

Это вроде работает нормально.
А теперь сделаем чтобы правое запястье вращалось по другим осям, чтобы лучше управлять мечом.

Код:
joint r_wrist
radius 0.11
pos -0.2 0.9 2.3
axis 0 0 1
rot 0 0 0
range 2.0 -0.3
strength 2.0
velocity 60.0

^ стандартный код запястья ^
Вставьте этот код в свой мод. Теперь изменим

Код:
axis 0 0 1

на

Код:
axis 0 1 0

и измените range на

Код:
range 1 -2.5

axis устанавливает в каком направлении вращается сустав, а range на сколько сильно сустав поворачивается в стороны (небольшое примечание: что-то мне подсказывает что это угол в радианах). Видите как проще теперь управлять мечом :D
Теперь давайте превратим левую руку в сверло xD (я стараюсь охватить как можно больше в этом туториале).
Код для левого запястья:

Код:
joint l_wrist
radius 0.11
pos 2.2 0.9 2.3
axis 0 0 1
rot 0 0 0
range 2.0 -0.3
strength 2.0
velocity 60.0

Вставьте это в свой мод естественно. Мы хотим чтобы кулак вращался на 360 градусов так что сделаем range большим

Код:
range 5 -5

В самый раз. Теперь изменим axis чтобы кулак вращался в нужном направлении.

Код:
axis 1 0 0

^ это сделает так чтобы кулак вращался как сверло. Но есть одна проблема - он слишком медленно вращается. Чтобы это исправить нам нужно изменить velocity, то есть как быстро сустав вращается. Увеличьте velocity вдвое. Также нам потребуется изменить strength - "силу сустава", то есть перестанет ли вращаться сустав если вы грабните юка или у сустава будет достаточно силы чтобы вращать юка. Измените strength на 100.
Так что же мы еще не сделали... А, точно, мы еще не добавили никаких окружающих объектов. Давайте сделаем трамплин чтобы игроки сталкивались в воздухе.
Пример код объекта:

Код:
env_obj 1
shape box
pos 1 -0.125 0.73
color 0 0 0
rot 0 0 0
sides 1 1 1.48
material steel
mass 0.1
flag 24

shape как вы уже наверно поняли устанавливает форму объекта.
pos - позиция как и у всех объектов
color - цвет
rot - поворот объекта
sides - размер...
material - материал. flesh или steel, то есть плоть или металл
Но теперь появилось mass - масса объекта.
flag - такие же флаги как и раньше. Разница только в том что здесь можно использовать дополнительный флаг 8, который делает объект статичным (то есть не двигается он)
Наш трамплин должен быть тонким, немного повернутым, чтобы работал как трамплин и статичным (мы же не хотим чтобы игроки двигали трамплин. Размер у нас будет примерно такой:

Код:
sides 2 2 0.1

Теперь у нас получилось что-то типа трамплина. Запомните, что трамплин будет состоять из двух частей, так что он будет более плавным, чтобы не так сильно снизить скорость. Нам нужно добавить вращение. Сделайте, например, так:

Код:
rot 0 10 0

Мы хотим сделать 4 объекта, по 2 на каждой стороне, поэтому сделаем этот объект на стороне красного игрока, для синего потом доделаем.
Изменим

Код:
pos 1 -0.125 0.73

на... подождите-ка. Попробуйте сами разместить объект. Но я на всякий случай как всегда сохранил ответ:

pos 1 4 0.12 <- то что у меня получилось

выделите ^
Мы сделали объект немного внутри пола, чтобы ноги игрока не зацепились за угол.
Для следущей части скопируйте код для объекта и измените

Код:
env_obj 1

на

Код:
env_obj 2

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

pos 1 2.2 0.6

Теперь вы можете изменить цвет трамплина, я сделал коричневым, так что он выглядит как деревянный (что-то типа того)
[реклама вместо картинки]
Вот что у нас получилось ^
Выглядит достаточно круто :D
Для того чтобы сделать трамплин со стороны юка, просто измените знак (если не доходит: минус перед цифрами поставьте) у некоторых циферок... например позиция, поворот... Попробуйте сами это сделать (не забудьте новым объектам поменять номера, чтобы они не перезаписали друг друга)
Если вам лень самим искать ответ, вот мой:

env_obj 1
shape box
pos 1 4 0.12
color 0.3 0.1 0.05
rot 10 0 0
sides 2 2 0.1
material steel
mass 0.1
flag 24

env_obj 2
shape box
pos 1 2.2 0.6
color 0.3 0.1 0.05
rot 20 0 0
sides 2 2 0.1
material steel
mass 0.1
flag 24

env_obj 3
shape box
pos 1 -4 0.12
color 0.3 0.1 0.05
rot -10 0 0
sides 2 2 0.1
material steel
mass 0.1
flag 24

env_obj 4
shape box
pos 1 -2.2 0.6
color 0.3 0.1 0.05
rot -20 0 0
sides 2 2 0.1
material steel
mass 0.1
flag 24

Флаг 24 означает что объект невозможно грабнуть и он статический. Вы, конечно, можете изменить это если хотите.
Наконец-то! Мы сделали это! Примерный скрин того что должно было получиться:
[реклама вместо картинки]
Все. Конец...
И еще кое-что. Здесь вы можете скачать стандартные параметры всех частей тела игроков (спасибо mrpoptart'у за это).
Надеюсь вам это понравилось. Могут быть очепятки.
Оригинал
http://smages.com/i/d5/b9/d5b9840747b32b82f86460c2509e022d.png

Отредактировано SL7549 (25.04.2009 10:02:08)

+11

2

Супер! Отличный фак, +1!

0

3

умрешь пока прочтeшь :)

0

4

А я не умер. Очень круто.

0

5

Был же какой то скрипт по созданию модов

0

6

У меня лично есть скрипт,но он какой то обрезаный там мало функцый.Фак крутой +1
А есть список с материалами?

Отредактировано AleX (16.05.2009 13:17:43)

0

7

отличный фак +1

0

8

у мя на куски рвутся сделал всё по инструкции выложи плз готовый скрипт(файл)

0

9

всё ок назад ноги лезут но ок исправлю

0


Вы здесь » Toribash Русский Форум » Энциклопедия » Туториал по созданию модов