| 
| ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм.
 Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
 
 
 |  | » Explosion - разрушение кораблей | страница 1 |  
  
	|    | Страница 1 из 1 
 |  
	
		|  |  |  |  | Канал Freelancer »
МОДовый отсек: «Explosion - разрушение кораблей» |  |  |  |  |  
		| Jeider 
  570 EGP 
     Рейтинг канала: 5(198)
 Репутация: 49
 Сообщения: 2805
 Откуда: Пенза
 Зарегистрирован: 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 функции - описание разрушаемости и описание характеристик взрыва части модели корабля/солара. Находим код разрушаемость первой части патриота (он в самом верху стоит в инишке):
 
Взрывается корабль и крыло отлетает от корабля с указанными параметрами. Если часть просто отсреливается, то просто загружается separation_explosion.
	  | Код: |  
	  | [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
 |  
 Теперь пошли к самым главным баранам - кораблям и прочей всякой всячине. У них все просто - ссылка через параметр explosion_arch. Поэтому сразу переходим к explosions.ini.
 
 Так, возьмем Дефендер для примера. Его архетип ссылается на eplosion_li_elite:
 
Вроде бы все понятно кроме... дополнительных частей. Ага, именно они нам нужны тут больше всего. Теперь я покажу то как я поиздевался над эффектом взрыва валькирии(rh_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-эффект
 |  
Так, это дополнительные части. С ними все нормально - описаны. А теперь про эффект трейла. Нам надо посмотреть то, куда ссылается debris_type. Вот код:
	  | Код: |  
	  | [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] 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 раз
 |  
		|  |  |  |  
		| 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 мы уже увидим другие осколки после взрыва.
 
 зы сложно с этими осколками если свою модель запихаем в фрил. суры осколков для новых моделей ох как геморно делать, и то не всегда рабочие получаются.
 |  
		|  |  |  |  
		| Jeider 
  570 EGP 
     Рейтинг канала: 5(198)
 Репутация: 49
 Сообщения: 2805
 Откуда: Пенза
 Зарегистрирован: 17.08.2009
 
    |  | 
Ты, видимо, немного не понял принцип. Simple это всего лишь ссылки от CollisionGroup, которая заменяет модельку выбранной части корабля на поврежденную. Если фьюза нет, то игра сразу начинает запускать explosion_arch и корабль распадается. У крейсера предварительно происходит фьюз разрушения корабля. При этом все его детали получают команду "мы сдохли" и заменяются на параметры в Simple. У дефендера фьюза нет и он может получить команду "мы сдохли" только во время жизни. Т.е. принцип таков - огрызки будут отлетать только тогда, когда огрызок был получен еще во время боя. Иначе будут отлетать стандартные модели.
	  | goshadiamo : |  
	  | при таких фюзах параметры Simple как бэ пропускаются. В том смысле что если в Simple изменить модель обломка, то всёравно будут обломки не изменятся. Например поставить тому же дефендеру в Simple обломки от другого корабля, то при взрыве всёравно будут лететь обломки дефендера. А у кораблей для которых есть специально написаный фюз уже учитываются параметры из 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 раз(а)
 |  
		|  |  |  |  
		| Jeider 
  570 EGP 
     Рейтинг канала: 5(198)
 Репутация: 49
 Сообщения: 2805
 Откуда: Пенза
 Зарегистрирован: 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 раз
 |  
		|  |  |  |  |  |  
		|  |  |  |  | Канал Freelancer ->
	  МОДовый отсек: «Explosion - разрушение кораблей» |  
		|  |  
        | К списку каналов | Наверх страницы |  | Цитата не в тему:  Оставь надежду всяк сюда входящий, что выйдешь просто так - пилотом станешь ты! 
 
 |  | » Explosion - разрушение кораблей | страница 1 |  |