Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Explosion - разрушение кораблей | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 1
 
Поиск в этой теме:
Канал Freelancer » МОДовый отсек: «Explosion - разрушение кораблей»
Jeider
 570 EGP


Рейтинг канала: 5(198)
Репутация: 49
Сообщения: 2803
Откуда: Пенза
Зарегистрирован: 17.08.2009
Взрывы. Они в игре везде. Все что когда-либо уничтожает имеет свои параметры разрушения. Что может разрушаться? Крупные объекты в виде кораблей, соларов, астероидов и мелкие объекты в виде оборудования и частей модели этих крупных объектов. Крупные объекты имеют в своих описаниях параметр explosion_arch. Он ссылается на FX\explosions.ini. Оборудование и т.п. имеют специальный набор параметров, которые описывают их уникальный ход разрушения. Начнем с самого простого.

Разрушаемость оборудования.
Открываем инишку, например, с описанием орудий кораблей (weapon_equip.ini). Находим код:
Код:
explosion_resistance = 1.000000 <- Сопротивление разрушению. Оно же "время жизни" детали после события hit_pts = 0
debris_type = debris_turret_large <- ссылка на тип в explosions.ini
parent_impulse = 20 <- скорость начальная
child_impulse = 80 <- скорость конечная
Свободно манипулируя этими параметрами можно настроить разрушение турели/пушки/контреты/щитов... в общем всего того, что можно нацепить на ваш корабль когда вы его изменяете на базе.

Разрушаемость частей корабля/солара.
Теперь вспоминаем параметр [CollisionGroup] в shiparch и solararch после описания корабля. Он имеет 2 функции - описание разрушаемости и описание характеристик взрыва части модели корабля/солара. Находим код разрушаемость первой части патриота (он в самом верху стоит в инишке):
Код:
[CollisionGroup]
obj = port fin_lod1
separable = true <- параметр указывает, что модель можно разбить во время боя. Заменится на указанный ниже Simple
parent_impulse = 240.000000 <-скорость начальная
child_impulse = 7.000000 <-скорость конечная
dmg_hp = DpPortfin
dmg_obj = li_fighter_dmg_portfin_cap
mass = 5.000000 <-масса детали когда она будет в космосе бороздить пространства
debris_type = debris_small_ship <-ссылка на тип в explosions.ini
separation_explosion = explosion_small_ship_breakoff <-ссылка на разрушение в explosions.ini при наступления момента hit_pts = 0
type = Port_Fin
hit_pts = 500
root_health_proxy = true
Взрывается корабль и крыло отлетает от корабля с указанными параметрами. Если часть просто отсреливается, то просто загружается separation_explosion.

Теперь пошли к самым главным баранам - кораблям и прочей всякой всячине. У них все просто - ссылка через параметр explosion_arch. Поэтому сразу переходим к explosions.ini.

Так, возьмем Дефендер для примера. Его архетип ссылается на eplosion_li_elite:
Код:
[explosion]
nickname = explosion_li_elite <-ссылка идет на этот никнейм
lifetime = 0.000000, 0.150000 <-время... почему параметра 2 не знаю, но второй должен быть больше. Может итоговое число идет случайно
process = shatter <-тип процесса. Разницы не знаю
num_child_pieces = 20 <-ограничение на число [CollisionGroup]
debris_type = debris_small_ship, 0.330000 <-тип вылетаемых частей
debris_type = debris_small_ship_short, 0.330000
debris_type = debris_small_ship_long, 0.330000
innards_debris_start_time = 0.100000 <-время старта дополненных частей
debris_impulse = 10000 <-импульс вылета дополненных частей
effect = explosion_li_elite, 0.000000 <-визуальный ALE-эффект
Вроде бы все понятно кроме... дополнительных частей. Ага, именно они нам нужны тут больше всего. Теперь я покажу то как я поиздевался над эффектом взрыва валькирии(rh_elite):
Код:
[explosion]
nickname = explosion_rh_elite
lifetime = 0.000000
process = shatter
debris_type = debris_small_ship, 5.330000
debris_type = debris_small_ship_short, 5.330000
debris_type = debris_small_ship_long, 5.330000
innards_debris_start_time = 0.000000
effect = explosion_rh_elite, 0.000000
debris_impulse = 50
num_child_pieces = 40
innards_debris_num = 20 <-число доп.частей
innards_debris_radius = 1 <-радиус их вылета от центра
innards_debris_object = simple_trail_parent <-ссылка на объект

[Simple]
nickname = simple_trail_parent <-ссылка чуть выше
DA_archetype = Equipment\models\weapons\no_fighter_gun.cmp <-один полигон
Mass = 10 <-масса
Так, это дополнительные части. С ними все нормально - описаны. А теперь про эффект трейла. Нам надо посмотреть то, куда ссылается debris_type. Вот код:
Код:
[Debris]
nickname = debris_small_ship <-ссылаемся сюды
death_method = exploding <-метод взрыва = разрушение О_о
lifetime = 2.00000, 7.000000 <- время. Видимо случайность от 2 до 7
linear_drag = 0.010000 <-линейный противовес. Т.е. это как на круиз встаешь на КЭ и тебя останавливает потихоньку
angular_drag = 0.000000, 0.000000, 0.000000 <- вращение по осям X Y Z. У нас модель вообще один полигон, так что... ну понятно))
trail = gf_explosion_debris_trail01 <-эффект трейла огонька
explosion = explosion_small_debris <- ссылка на другой взрыв

[Debris]
nickname = debris_small_ship_short
death_method = exploding
lifetime = 2.000000, 5.500000
linear_drag = 0.010000
angular_drag = 0.000000, 0.000000, 0.000000
trail = gf_explosion_debris_trail01
explosion = explosion_small_debris

[Debris]
nickname = debris_small_ship_long
death_method = exploding
lifetime = 5.000000, 15.000000
linear_drag = 0.010000
angular_drag = 0.000000, 0.000000, 0.000000
trail = gf_explosion_debris_trail01
explosion = explosion_small_debris
А теперь я вам покажу прикол, который я еще не изменял. Гы-гы Видите параметр explosion у [Debris]? Находим код:
Код:
[explosion]
nickname = explosion_small_debris
lifetime = 0.000000, 0
process = disappear
debris_type = debris_small_ship, 1.000000
innards_debris_start_time = 0.000000
debris_impulse = 500
effect = explosion_small_debris, 0.000000
Ни на что не смахивает? Так ведь это наш же основной взрыв! Т.е. можно сделать так, что разрушаемая часть еще ДАЛЬШЕ делится на менее разрушаемые. Я еще не пробовал, но уже пальцы сильно чешутся. Гы-гы Гы-гы Гы-гы

Видео примеров:
http://www.youtube.com/watch?v=cTJP-J8KbhI
http://www.youtube.com/watch?v=gfNnAf09pgQ

Последний раз редактировалось: Jeider (22:12 09-08-2011), всего редактировалось 1 раз
    Добавлено: 21:32 09-08-2011   
goshadiamo
 155 EGP


Рейтинг канала: 3(38)
Репутация: 14
Сообщения: 775
Откуда: Nemiroff
Зарегистрирован: 05.04.2010
Поделюсь своими наблюдениями
у большенства кораблей стоит
fuse = intermed_damage_smallship01, 0.000000, 400
fuse = intermed_damage_smallship02, 0.000000, 200
fuse = intermed_damage_smallship03, 0.000000, 133
и при таких фюзах параметры Simple как бэ пропускаются. В том смысле что если в Simple изменить модель обломка, то всёравно будут обломки не изменятся. Например поставить тому же дефендеру в Simple обломки от другого корабля, то при взрыве всёравно будут лететь обломки дефендера.
А у кораблей для которых есть специально написаный фюз уже учитываются параметры из Simple
Вот крузер либерти например
fuse = li_cruiser_body_fuse, 0.000000, 1
fuse = li_cruiser_burning_fuse01, 0.000000, 10825
fuse = li_cruiser_burning_fuse02, 0.000000, 5413
То сменив модель в Simple мы уже увидим другие осколки после взрыва.

зы сложно с этими осколками если свою модель запихаем в фрил. суры осколков для новых моделей ох как геморно делать, и то не всегда рабочие получаются.
    Добавлено: 22:30 09-08-2011   
Jeider
 570 EGP


Рейтинг канала: 5(198)
Репутация: 49
Сообщения: 2803
Откуда: Пенза
Зарегистрирован: 17.08.2009
goshadiamo :
при таких фюзах параметры Simple как бэ пропускаются. В том смысле что если в Simple изменить модель обломка, то всёравно будут обломки не изменятся. Например поставить тому же дефендеру в Simple обломки от другого корабля, то при взрыве всёравно будут лететь обломки дефендера.
А у кораблей для которых есть специально написаный фюз уже учитываются параметры из Simple
Ты, видимо, немного не понял принцип. Simple это всего лишь ссылки от CollisionGroup, которая заменяет модельку выбранной части корабля на поврежденную. Если фьюза нет, то игра сразу начинает запускать explosion_arch и корабль распадается. У крейсера предварительно происходит фьюз разрушения корабля. При этом все его детали получают команду "мы сдохли" и заменяются на параметры в Simple. У дефендера фьюза нет и он может получить команду "мы сдохли" только во время жизни. Т.е. принцип таков - огрызки будут отлетать только тогда, когда огрызок был получен еще во время боя. Иначе будут отлетать стандартные модели.

добавлено спустя 47 секунд:
Попробуй замени Simple дефендера, но в начале отбей эту часть во время боя и ты увидишь нужный тебе результат.

добавлено спустя 35 минут:
Тестирование многоуровневых взрывов.
http://www.youtube.com/watch?v=dyzNCoowP6w

Сделал исключительно в показательных целях. Очевидная бесполезность на лицо, да еще и если постараться, то даже кор ай семь от этих взрывов поперхнется. Гы-гы

добавлено спустя 1 минуту:
1 астероид делится на 10 частей, потом еще на 5 частей, а потом еще на 5 частей (я так до этого вынес свой проц).
1 * 10 * 5 * 5 = 250
Если убить одновременно 3 астероида? 250 * 3 = 750, а это уже жесть.

Последний раз редактировалось: Jeider (10:45 10-08-2011), всего редактировалось 4 раз(а)
    Добавлено: 10:42 10-08-2011   
Jeider
 570 EGP


Рейтинг канала: 5(198)
Репутация: 49
Сообщения: 2803
Откуда: Пенза
Зарегистрирован: 17.08.2009
Создание повреждений от разрушений

В общем это даже обучалкой назвать нельзя. Просто полезная информация.

Тот, кто лазял по инихам пушек заметил, что мины и ракеты имеют раздел [Explosion] для взрыва ракеты/мины. Открываем код:
Код:
effect = rh_mine02_blast25
lifetime = 0.000000, 0.000000
process = disappear
strength = 100
radius = 25
hull_damage = 5000
energy_damage = 2500
impulse = 100
Тихо мирно частично переносим во взрыв корабля и получаем:
http://www.youtube.com/watch?v=aCGtKQuqQPI

ЗЫ: на корабле игрока при этом щита нет, поэтому и взрыв.
ЗЗЫ: можно не тупо взрывать, а повреждать взрывом. Типа мелкие осколки из корабля взрываемого.

Последний раз редактировалось: Jeider (08:18 15-08-2011), всего редактировалось 1 раз
    Добавлено: 08:17 15-08-2011   
Канал Freelancer -> МОДовый отсек: «Explosion - разрушение кораблей»
 
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Мандалай - лучший брелок для вашей Орки!

  » Explosion - разрушение кораблей | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18