RSS
Меню сайта

Наш опрос
Навигация в "Файлах"
Всего ответов: 20

Copyright C4TNT© 2008

Главная » Файлы » Примеры » Карты

Разрушаемые объекты (Doom3)
21.04.2009, 15:30
Воспользовавшись ссылкой вы можете скачать этот пример, а тут будут необходимые комментарии к нему.

Сам пример состоит из трёх разрушаемых объектов:

  1. HL2 - style разрушаемый объект. Деревянная баррикада, разваливающаяся на куски после получения повреждений.
  2. Breakable light - разрушаемый источник света. На первый взгляд это просто, но для обхода всех недоработок ID пришлось строить специальную конструкцию.
  3. Multimodel destructable - Решётка, которую можно выбить тремя ударами. При этом она постепенно гнётся. В этом примере это происходит единственным образом, но процесс разрушения решётки можно разнообразить.
HL2 style

Объект устроен просто. Нарисуйте брашами нужную вам конструкцию и преобразуйте браши (по одиночке) в moveable_domino. Установите у этих брашей следующие поля:

  • nodrop "1"
  • noimpact "1"
После этого создайте браш и примените к нему текстуру nodraw (это важно!) или collide. Если вы используете nodraw, то преграду можно будет разрушить только взрывом. Если collide, то любым оружием. Преобразуйте браш в func_damagable
и установите поле health в необходимое вам число (сколько жизней у преграды)

Соедините func_damagable со всеми moveable. Сделать это можно так: очистить выделенные браши (esc), выбрать func_damagable и после этого дополнительно выбрать все moveable (выбирать с шифтом). Если выбрали что-то лишнее - начинайте сначала. После этого нажать Ctrl-k (connect entities).

Если вы использовали текстуру collide, то дополнительно нужно создать func_remove, присоединить к нему func_damagable перекрёстно. (func_remove подсоединён к func_damagable, а func_damagable подсоединён к func_remove) В результате после срабатывания func_damagable удалит себя.

Breakable light

Для начала создайте все лампочки в разрушенном состоянии. После этого дорисуйте брашами или патчами вашу лампу до нормального состояния. Дорисованную часть нужно преобразовать в func_damagable. (В примере разбитые лампочки просто закрыты патчем с нормальной текстурой лампы, этот патч и является func_damagable). Настройте его, как и в предыдущем случае. Добавьте func_remove. Так же перекрёстно соедините его с func_damagable. Кроме этого создайте источник света, который присоедините к func_damagable.

Multimodel destructable

Вам нужно нарисовать несколько вариантов разрушаемого объекта. Каждый из вариантов группируйте при помощи func_static. Уже готовые варианты можно пртать кнопкой H, показать всё спрятанное - shift+H
В примере последний вариант решётки (окончательно сломанный) выполнен в виде movуable_domino. Это сделано для того, чтобы выбитая решётка упала по законам физики.

Так же вам нужно создать func_damagable со специальной текстурой (всё как в hl2 style). Установите у этого объекта свойство cycles меньшим на 1, чем количество моделей разной побитости. (У меня четыре модели, включая moveable. По этой причине cycles = 3). Всем моделям, кроме самой первой, нужно установить свойство hide "1". Теперь нужно правильно прописать триггеры. Создайте нескоько trigger_count (столько, сколько написано в count у func_damagable)
Создайте в них поля count и заполните их цифрами от одного и до количества trigger_count-ов. Должны получится trigger_count-ы с полями count = 1, count = 2 и т.д.

Каждый из этих триггеров подсоединяется к func_damagable. Теперь для каждого из count-ов создайте func_remove  и сразу присоедините его к count-у. А теперь самое запутанное - подсоединить это к моделям.

Принцип простой:
  1. К count-у подсоединяем модель, которая должна появиться count + 1-ой по порядку. То есть смотрим на поле count у этого триггера, прибавляем единичку и цепляем к нему модель с этим "номером". К триггеру с count = 1 должна быть присоединена вторая модель, к count = 2 - третья и далее таким же образом.
  2. У каждого trigger_count-а есть прикреплённый к нему func_remove. К этому func_remove нужно присоединить модель с номером count. То есть если у триггера count = 1, то к его ремуверу присоединяем первую модель.
Кроме этого к последнему из func_remove-ов нужно присоединить сам func_damagable.


Категория: Карты | Добавил: c4tnt
Просмотров: 832 | Загрузок: 243 | Комментарии: 2 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Вход:

Поиск

Ссылки


Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Работаем на керосине