Этот сайт предназначен, прежде всего, людям, ностальгирующим по ушедшим РУССКОМУ СЛОВУ, Windows 3.1, ФОТОНУ, процессорам 486SX и иже с ними.
Конечно, времена должны идти вперед, но почему они обязательно должны уходить?
StuhlbergR 2007-2008 ©
|
"Why are there monsters?" (DOOM - Infernal Sky)
"Кровищи, кровищи побольше..." или еще раз о детализации в мапинге DOOM 3 (продолжение)
Входить и выходить в наш коридор через обычный проем не интересно. Так что давайте-ка соорудим дверь. А с чего начинается любая дверь? Правильно, с дверного косяка. Ну да у нас косяков не будет (в смысле, дверных... в смысле, не только дверных... в смысле, никаких косяков не будет, а не только дверных не будет... хм... ну да ладно); в общем, не принято называть на Марсе doorframe косяком. А будет у нас вот что:
Вставляется как обычная модель models/mapobjects/doors/mcitydoorframe.lwo. Если хотите, сделайте другой проем. Можно и вовсе без него обойтись, врезав дверь непосредственно в отверстие в стене. Правда, с точки зрения дизайна такой подход будет оправдан лишь для второстепенных проходов и всевозможных люков. Обратите внимание также на размеры проема и э-э-э... косяка; doorframe, короче. Они должны совпадать и точно вписываться по краям друг друга. Иные двери имеют щели в своих моделях, а дыры на карте нам ни к чему.
Теперь делаем непосредственно дверь. Она представляет собой, опять же, браш (как видим, без брашей и тут никуда) с присвоенной функцией func_door, которому назначена модель какой-либо двери. Впрочем, можно и без моделей, обойтись брашем. Тогда нужно будет залить его текстурой двери и растянуть текстуру кнопкой Fit. Но сейчас мы сделаем именно моделью.
Выбираем MOUSE2 - func_door:
В инспекторе Entity жмем кнопку Model... и выбираем нужную. Имеется несколько вариантов и они сгруппированы по стилю и размерам, так что лучше не выбирать дверь, не подходящую к своему проему (фрейму). В нашем случае подходит дверь models/mapobjects/doors/mcitydoor_glass.lwo. Но можно и не стеклянную - под данный проем подходит несколько моделей.
Совместим фрейм и дверь по красным точкам, которые имеются в окне проекции моделей. Причем, точки нужно совместить не только по плоскости, но и по высоте. Тогда вы гарантированно будете иметь рабочую дверь без перекосов.
Параметров у Entity func_door много, но обычно изменяют только один - movedir, который указывает, в каком направлении будет открываться дверь. Если выставить -1, то вверх, если, скажем, -2, то вниз. Можно поэкспериментировать с этим параметром, особенно если у вас нестандартная геометрия комнаты, но мы выставим 180 (без минуса!), чтобы дверь открывалась вправо от начального нашего положения (и влево, соответствено, когда мы будем по ту сторону двери).
Лично я еще иногда экспериментирую с параметрами speed (скорость открытия/закрытия двери - удобно имитировать заевшую или поломанную дверь, из которой пачками сыплются искры), triggersize (расстояние, на котором дверь "узнает" игрока и открывается) и wait (если выставить -1, дверь откроется только один раз и будет продолжать оставаться открытой все время). Для "адских" карт (и не только) пригодятся параметры snd_locked (звук, показывающий, что дверь заперта; электронный писк ну совсем не вписывается в "адскую" атмосферу), snd_opened (звук при открытии двери; например, скрежет трущихся камней), snd_close (звук при закрытии) и snd_open (показывает, что дверь открыта, в нее можно войти; например, если открывается дистанционно).
Словом, дверь получилась знатная, открывается и закрывается, еще и пищит в придачу. Красота :) Когда я соорудил первую свою дверь - еще для DOOM 2 - то бегал мимо нее минут пять, наверное. Входил и выходил, выходил и входил - так вот радовался :) Походите и вы ;)
Только вот незадача: какая-то она дырявая, без стекол... На помощь нам, опять же, поспешит он - браш.
Нарисуем его, немного меньше размеров модели двери, но так, чтобы он закрывал собой все отверстия. Заливаем текстурой Textures/textures/glass/glass2 (не возбраняется использовать glass1 или какую-либо иную из "стеклянного" набора) и растягиваем уже знакомым нам Fit'ом. Пожалуйста, стекло готово. Но пройти через такую дверь у вас все же пока не получится. Дверь-то отъедет в сторону, как ей и полагается, а вот "стеклянный" браш так и останется стоять на месте. Мы, естественно, в это не заинтересованы и потому прикрепляем (прибиндиваем, биндим) этот браш к двери, выставив в свойствах браша ключ bind: func_door_1//имя_двери.
Если хотите получить разбивающееся стекло - можете реализовать его через браш func_fracture с присвоением ключа health ("здоровье") по вкусу. Если health равно 1 - стекло разбить очень легко даже кулаком.
Теперь наша дверь не только работает, но и имеет некоторую интерактивность (можно разбить стекло).
Да, и еще. Если у вас дверь отперта, то у модели doorframe пропишите ключ ShaderParm7: 1 - это чтобы огоньки горели изначально зеленым, а не красным цветом (как известно, красный сигнализирует, что дверь заперта).
[1] [2] [3] [4] [5] [6] [7] [8] [9]
Ветка DOOM-ностальгияСтатьи о DOOM
|
Большинство предоставленного здесь материала является цитированием со старых номеров компьютерных журналов, таких, как
"Мир ПК" или "Весь Компьютерный Мир". К сожалению, все мои попытки связаться с этими изданиями по поводу вопроса о цитировании были безуспешны.
Издания упорно хранили молчание. Что я разрешил себе расценивать как знак согласия, указывая, тем не менее, повсюду как выходные данные
издания (с работающей ссылкой на Интернет-представительство), так и автора публикации. Тем более, что, в силу срока давности этих публикаций, вряд ли материал можно рассматривать как коммерческий или рекламный,
пусть даже названия фирм здесь и присутствуют (уж без этого никуда).
Ежели появятся какие претензии по оному поводу, прошу
издания связаться со мной
Райво Штулберг |