Doom3.ru





















    •  Главная

  •  Doom3-форум   •  Прислать новости




  •  Doom3-info



  



  •  Doom3: RoE



  



  •  Статьи



  



  •  Quake4



  



  •  Quake Wars



  




Реклама




Мапинг в Doom3. Разъяснение деталей. Часть II

 25.09.2004  01:44  Автор: iMiceman

Доброго всем времени суток, уважаемые господа. Поскольку на белом свете остались еще такие люди, которые не могут делать двери, лифты, и слово "func" у них вызывает нецензурную ассоциацию, я буду продолжать писать статьи, где буду разъяснять, что к чему. Как вы поняли, сегодня я поведаю о функциях, а вернее о главных функциях (или можно сказать самых нужных) и некоторых мелочах.

Функции или "func". Что же мы называем функциями (только не пугаться, сорить терминами никто не собирается)? В редакторе Doom Edit это просто класс объектов и этого нам хватит. Функции помогают нам создавать такие прекрасные вещи как двери, лифты, землетрясения, телепорты, платформы (типа тех, что в Quake), и т.д. Так, приступим с самого начала...

Дверь [func_door]: Простая функция двери, все двери в думе скролируют, то бишь, когда мы заходим в зону активации открытия двери, она плавно скролирует в заданном направлении и скрывается на 90% (этот параметр можно изменить, см. [lip]) в стене, мы имеем в распоряжении следующие параметры для настройки поведения/внешнего вида двери:
1) [time] - [время в секундах] = время, за которое открывается/закрывается дверь;
2) [speed] - [цифровое знач.] = скорость перемещения двери, с параметром [time] несовместим;
3) [angle] - [знач. от 0 до 360] = угол открытия двери (рекомендуется использовать вместо [movedir]);
4) [movedir] - [малые  знач.] = направление открытия, не совместим с [angle];
5) [model] - [назв. модели] = модель двери, находятся в папке [models/mapobjects/doors];
6) [wait] - [время_в_секундах] = сколько времени ждать перед возвращением;
7) [snd_СОСТОЯНИЕ] - [имя звука] = имя звука, используемого в определенном состоянии двери;
8) [triggerСОСТОЯНИЕ] - [имя объекта] = какой объект нужно активировать в определенном состоянии двери;
9) [triggersize] - [знач.] = размер триггера активации открытия (то есть, на сколько он простирается возле двери);
10) [dmg] - [знач.] = какое повреждение причинять во время блокировки двери;
11) [start_open] - [знач. 1 или 0] = респавнить дверь в открытом состоянии;
12) [toggle] - [знач. 1 или 0] = ждать в каждой позиции пока снова не подействует триггер;
13) [crusher] - [знач. 1 или 0] = дверь не реверсирует, если заблокирована;
14) [no_touch] - [знач. 1 или 0] = некасаема, нужно затриггерить для открытия;
15) [locked] - [знач. 1 или 2] = параметр работает вместе с [no_touch], что делаем после триггера:
1 - открывать;
2 - дать двери статус 'открытая';
16) [lip] - [знач.] = какой участок двери останется видимым после завершения движения.

ПРИМЕЧАНИЕ: Дверь также может иметь GUI для управления, нужно просто выбрать модель с поддержкой GUI, и потом выставить в параметр "gui" имя файла GUI. Дополнительные опции по управлению с определенного GUI зависит лишь от GUI, ничего конкретно сказать не могу, для ознакомления с управлением дверью от GUI изучайте карты от ID. Пример двери можно скачать тут: doors.zip

Лифт [func_elevator]: Это лифт, назвать его простой функцией сложно, поскольку нужно определенное количество умения (и смекалки), для того чтоб сделать работоспособный лифт.
Как он делается? - Чтобы сделать лифт, нужно сначала создать "func_elevator", выставить параметр "model", выбрать GUI, выставить параметры GUI, сделать и забиндить двери, согласовать звуки со временем перемещения. В принципе все, но это простой лифт, есть много опций для его настройки, но я перечислю лишь те, которые на мой взгляд самые необходимые (почти все, лишь некоторые опущены):
1) [model] - [имя модели] = название модели лифта [models/mapobjects/elevators];
2) [move_time] - [время сек] = время перемещения между этажами;
3) [move_speed] - [точек/сек] = скорость перемещения между этажами, востребован при использовании loop звука - просто не нужно будет согласовывать движение со звуком;
4) [*cel_time] - [время сек] = время ускорения/притормаживания лифта;
5) [innerdoorХ] - [имя двери] = дверь, прикрепленная к лифту, если она одна, то параметр без значения Х, если две или более, то первая дверь без Х, следующая с Х (например, innerdoor1);
6) [floorPos_Х] - [X Y Z] = положения пола, значение Х в параметре - номер этажа, собственно от того, сколько мы выставим таких параметров, и какой GUI мы выберем, будет зависеть сколько этажей;
7) [floorDoor_X] - [имя двери] = имя внешней двери, Х - на каком этаже;
8) [floor] - [номер этажа] = этаж, на котором изначально должен быть лифт;
9) [pauseOnFloor] - [номер этажа] = этаж, на котором сделать паузу перед открытием двери;
10) [pauseTime] - [время сек] = время паузы из предыдущего параметра;
11) [snd_СОСТОЯНИЕ] - [имя звука] = звук, который будет проигрываться в определенном состоянии лифта;
12) [gui] - [назв. файла gui] = GUI, используемый для управления лифтом, обычно можно два определить - первый параметром [gui], второй [gui1], первый - внутри лифта в виде дисплея управления, второй - подсветка вверху номера этажа или типа того (если не сможете найти нормальный файл GUI, то ищите в папке guis/doors/elevator*);
13) [gui_parmX] - [знач.] = параметр GUI (далее следуют описания параметров дефолтного двухэтажного GUI);
а) [gui_parm2] - [1] = с этажа 1 на 2, или [2] = с 2 на 3;
б) [gui_parm3] - имя верхнего этажа (можно мультистрочное через БЭКСЛЕШ);
в) [gui_parm4] - имя нижнего этажа (можно мультистрочное через БЭКСЛЕШ);
г) [gui_parm5] - цвет GUI. [0] - дефолтный, [1] - красный, [2] - желтый, [3] - голубой, [4] - зеленый цвет;
  
ПРИМЕЧАНИЕ: Рекомендую сделать внутри лифта следующие вещи и прибиндить их к модели лифта - свет, в местах, где нужна подсветка - браш с текстурой "sfx/flare", возможно прибить какую-то модель снизу, если мы не делаем внешнюю дверь. Пример лифта/анимации (это так, оффтоп слегка, но с подобными анимациями карта выглядит живенько) можно скачать тут: elevator.zip

Землетрясение [func_earthquake]: Землетрясения собственной персоной. Создаем эту функцию, выставляем параметры, цепляем на триггер и как качнёт, что хоть прячься, а теперь о параметрах подробнее:
1) [playerOriented] - [1 или 0] = откуда будет трясти, от положения объекта (0), или от положения игрока (1), то есть близь места, где будет триггер;
2) [wait] - [знач. или -1] = сколько ждать перед тем как жахнуть снова, [-1] - только раз;
3) [randomDelay] - [знач. интенсивности] = разнообразие пауз;
4) [triggered] - [1_или_0] = объект будет ждать триггера, перед тем как тряхануть;
5) [snd_quake] - [имя звука] = определяет какой звук играть при землетрясении;

Телепорт [func_teleporter]: Ничего примечательного, триггерный телепорт, создаем объект, цепляем к триггеру и при активации триггера перемещаемся на позицию нашего объекта-телепорта. Вынужден сказать, что телепорт глючная штука, при паршивой сборке карты и неправильной компиляции может и не заработать.
1) [angle] - [знач. угол] = направление к лицу;
2) [wipe] - [имя звука] = звук, который использовать при телепортировании;

Платформа [func_plat]: Летающая платформа, типа тех, что мы можем наблюдать в Quake. Нужно создать объект, выставить конечное положение и высоту, на которую платформа должна переместиться. Все просто.
1) [height] - [точки] = высота, на которую поднимется платформа, по дефолту - высота модели;
2) [model] - [имя модели] = модель платформы;
3) [lip] - [точки] = такое же описание, что и у дверей;
4) [speed] - [точек/сек] = скорость перемещения;
5) [dmg] - [знач. поврежд] = какое повреждение давать при блокировке (например,  зажало);
6) [no_touch] - [1_или_0] = работать только через триггер;
7) [snd_СОСТОЯНИЕ] - [имя звука] = какой звук издавать в определенном состоянии;

ПРИМЕЧАНИЕ: Координаты модели на карте и есть координаты конечной позиции, в изначальном состоянии уже на карте платформа будет находиться на тех же координатах, минус от Z параметра [height]. Пример платформы: plat.zip

Вот собственно перечень функций, которые могут показаться сложными для изучения методом «тыка» (кроме телепорта), остальные достаточно просты. Если вы хотите узнать больше информации о функциях, то могу порекомендовать следующее - зайдите в папку Doom3/base/def (или Doom3/base/pak000.pk4/def, если игра изначально сжата), откройте файл func.def в Блокноте (или в более приличном редакторе), и посмотрите список всех функций. Как ориентироваться в файле? Ответ прост, строки, на которые стоит обратить внимание:

entityDef func_НАЗВАНИЕ_ФУНКЦИИ {...тело_функции...} //Тело функции, то есть все, что в нее напичкано

"editor_usage" "ОПИСАНИЕ" //Описание действия функции на англ. языке

"editor_var ПАРАМЕТР" //Описание параметра функции на англ. языке

"ПАРАМЕТР" "ЗНАЧЕНИЕ ПО-УМОЛЧАНИЮ" //Дефолтные значения

Как использовать эту информацию? Во-первых, вы будете знать дефолт, и избежите повторения параметров, во-вторых, узнаете описания и сможете их, например, если вы не знаете английского, скопировать и отправить в переводчик, в-третьих, сможете также поменять дефолтные значения на те, которые будут удобны вам. На этом все. Спасибо за внимание.





Другие материалы рубрики:




Комментарии

#1  Timm (-----.225.85)   02:01  25.09.2004
Просто в тему: http://q3radiant.by.ru/

#2  regenerated (-----.80.106)   15:48  25.09.2004
Спасибо за статью!

#3  avco (-----.rol.ru)   20:28  25.09.2004
Вот этого мы и добивались. Молодца!)
Я, кстати, как раз из тех людей, про которых ты пишешь. А слово function я воспринимаю в принципе довольно адекватно. Продолжение надеюсь будет?

#4  iMiceman (-----.com.ua)   20:53  25.09.2004
Продолжение?
Зачем?
Все и так ясно...

#5  Zental (-----.ostrov.net)   21:24  25.09.2004
Э... "примеры" не качаются. :(

#6  iMiceman (-----.com.ua)   21:29  25.09.2004
2Zental
Видимо WhiteFox поленился выложить. :(
Если сильно нужны то могу выслать на мыло - кинь свое мыло мне на мыло, а я те на мыло (извини за тофтологию)...

#7  Zental (-----.ostrov.net)   00:27  26.09.2004
твое мыло я не знаю..
вот мое: zental@nm.ru

#8  iMiceman (-----.com.ua)   16:18  26.09.2004
...твое мыло я не знаю...
Щютник. Сверху ссыла "iMiceman", возле "Автор:". Хуморист. :D

...вот мое: zental@nm.ru...
Без надобности. Всё уже исправили.

#9  sub97zl (-----.hitv.ru)   18:25  26.09.2004
Не могу представить, КАКИМ ДЕТЯМ предназначены эти статьи...
Помню, еще во времена альфы, когда состояние всего инструментария было совсем плачевным, мною писались намного более детальные и серьезные статьи по левелдизайну.
Кому надо - найдет людей, задаст вопросы и научится,но ПОДОБНЫЕ(а-ля, как же юзать func_door) статьи можно было читать только во времена ку1.
Я не думаю, что если человек сам не может разобраться с параметрами func_door'а и тд, то он сможет что-то успеть сделать к выходу, скажем, дум4... :)
У меня с 20 человек в контакт листе, желающих научиться левелдизайну... Только вот, ребят, учиться -то, поздновато уже, пора уже мод делать, чем и занимаюсь я сотоварыщи,а не пишу простые статьи...
Мой совет - хочешь выделиться - пиши действительно серьезные статьи по скриптам в частности и по КуСи в целом.
Честно скажу - те, кто уже что-то творит(мод и тп) эти статьи могут заменить какой-нить там Аншлаг, чесснослово.

#10  iMiceman (-----.com.ua)   18:37  26.09.2004
2sub97zl
Ну что? Выпендрился? :D
А теперь по делу - что за мод делаешь?

#11  sub97zl (-----.hitv.ru)   19:06  26.09.2004
Выпендрился.:)
Мод как мод.
Надо показать буржуям, кокой они ацтой делают (хое и генетик)

#12  sub97zl (-----.hitv.ru)   19:06  26.09.2004
вот тебе ася чела, может, он сейчас онлайн
197951973

#13  sub97zl (-----.hitv.ru)   19:14  26.09.2004
Если спросит, кто такой, скажи, от меня по теме мода для д3...

#14  avco (-----.rol.ru)   19:25  26.09.2004
2 sub97zl
Лучше поздно чем никогда.)

#15  iMiceman (-----.com.ua)   19:26  26.09.2004
Черт, ася погибла, наотрез запускаться отказывается - пишет критическую ошибку - облом. :(

#16  iMiceman (-----.com.ua)   19:28  26.09.2004
2avco
Ниче страшного. ;) Начать действительно никогда не поздно. Ведь когда-то я тоже ничерта не знал и носил гордое призвание - ламер. :D

#17  avco (-----.rol.ru)   22:58  26.09.2004
2 iMiceman
Ну зачем же так.
Я действительно раньше никогда не пытался ничего такого мутить...
Кстати "призвание", это типа, навсегда ;-)

#18  Ben (-----.50.164)   13:31  27.09.2004
:)

#19  iMiceman (-----.com.ua)   19:25  27.09.2004
2avco
Ща завалю щютника! :D
Призвание... понимаете-ли. %)

#20  Max Snake (-----.ufacom.ru)   21:08  27.09.2004
2 Timm не http://q3radiant.by.ru/ а http://quake3radiant.by.ru/ сейчас он сменил хост и находится здесь http://q3mapping.on.ufanet.ru/


#21  avco (-----.rol.ru)   22:03  28.09.2004
;-)))

#22  Arthut (-----.mtc.md)   22:17  29.09.2004
запрос
помоги мне с кодаим открытия некоторых дверей и шкафов

#23  Rost (-----.ac.ru)   11:21  07.10.2004
2iMiceman

Нужен совет. При компиляции карты консоль говорит, что, мол reached outside entity #такой-то. Этой энтитей оказывается любой монстр. Так продолжается пока не удалишь всех монстрей с карты. Как с этим справиться?

#24  ???? (-----.200.114)   15:08  05.11.2004
????
kr4 kak delatj modeli dlja doom3 dopustim ja ha4u zdelatj svojo sredstvo peredvizenija ili svoj personaz dapustim svoego monstra

#25  (BOT) Killer @Roma@ (-----.mogilev.by)   00:02  16.06.2005
У меня Intel p4 3000 мегагерц шина 800 кеш
паметь 1024 опер 512 вида встройная !!
Где достать нормальный autoexec.cfg????
Тормоза на мини треб.??????????pleas!!!

#26  iLaN (-----.mtu-net.ru)   23:51  26.03.2007
Людт где не в тему конечно но где мона в едиторе огонь найти???????????или его там нет.......

#27  stalker X (-----.vnet.ee)   11:15  02.06.2007
О чём тут вообще

#28  Начинающий маппер (-----.119.4)   12:52  08.04.2008
Поезд
Люди, подскажите, ну мне просто не сильно хочется лезть в карту monorail, потому что знаю, что там много каких-то трюков, вместо этого спрошу у вас - поезд с уровня монорельс - это func_mover какой-нить, который управляется скриптом или.....кароче можно ли задать свой маршрут поезду. Ну очень просто хочется увидеть его на свое карте...очень.

И кстати, если некий iLaN до сих пор не догадался, огонь - это всего-навсего спецэффект, который можно задать func_static в качестве мобели(в разделе Entity выбераем Particles и ищим огонь)

#29  WarlorD69 (-----.147.9)   01:32  06.06.2008
Похоже, тема умерла, но все же... Может кто-нибудь подсказать, как соорудить телепорт?.
И было бы неплохо, чтоб он активировался только после смерти всеж демонов в зале, где он находится.
Сам что-то не въеду, это моя первая карта))).

#30  Зарок Некромант (-----.volia.net)   20:10  18.04.2009
А трюки с дверями (ну и прочими func-ми) можно проделать не с моделью, а со стеной (или другим брашем)?..



Добавить комментарий
Имя - заполнять обязательно

Е-майл

Заголовок

Текст комментария - заполнять обязательно

Введите эти цифры в это поле.






Розовый





















Valuehost.Ru


Яндекс цитированияRambler's Top100Rambler's Top100
DOOM3 is a registered trademark of id'Software
Copyright 2002-2017 © Doom3.ru