Форум » ЛИТЕРАТУРА » Создаем большой взрыв » Ответить

Создаем большой взрыв

warr11r: Думаю, ты со мной согласишься, что ломать – не строить. И гораздо веселей в какой-то момент прохождения подорвать весь уровень к чертовой бабушке и носиться по дотлевающим остаткам зданий, чем скучать без этого, + это обязательный элемент любого боевика. Итак, как же нам устроить огромный взрыв? Сражу сразу: для создания красивого взрыва одним скриптом не обойдешься. Еще нужно создать подходящую деколь, и даже не одну, а несколько штук. Также нам понадобится собственно детонатор, в роли которого можно взять любой компонент. Этап 1.Создание детонатора. Я объясню ситуацию, как сделать детонатор невидимым, ведь возможен вариант, что взрыв происходит просто в воздухе (с видимым проще и не так интересно). Упростим себе задачу и возьмем бочку. Поставим ее в эпицентре будущего взрыва. Какие настройки нужны бочке? Открывай правой кнопкой настройки и смотри: Static Mode – обязательно No, Spawn at start – Yes (не страшно, мы сделаем такой скрипт, что игрок не будет замечать ее присутствия с начала игры), Strenght – неважно, лишь бы не ноль (при нуле бочка бессметрная), раздел настроек Physics очень важен, в нем, где только возможно, изменяем значения параметров на Yes, Physics Weight и Physics Friction ставим побольше, в несколько тысяч, Physics Force Damage и Explode Damage – процентные значения, поэтому их вписываем как 100. Текстуру для объекта нужно сделать альфаканалом, то есть прозрачной. На форуме обсуждалось как сделать такую текстуру, но повторюсь, что, открыв Paint.NET, нажимаем комбинацию Ctrl-A и Del, затем Ctrl-S, указываем .dds, в настройках DXT-3, и в конце имени текстуры нужно дописать _D2 (пример: alpha_d2.dds). Путь к текстуре прописываем в поле Texture наших настроек. Этап 2.Создание деколей взрыва. В паках достаточно нужных деколей, но они все недостаточно большого размера. Поэтому мы возьмем существующие деколи и поменяем им их масштаб. Нам нужны три деколи: 1-собственно взрыв, 2-огонь, который остается после него, 3-дым от огня. Добавим их с центром в эпицентре взрыва. Более красиво и правильнее будет, если деколи будут фиксированные, собственно, в скрипте мы это оговорим. Так, что сразу рассчитывай, если не хочешь, чтобы у тебя огонь вопреки всем законам физики горел горизонтально, то направляй синие стрелки вверх, зеленые в предполагаемое место нахождения игрока в момент взрыва, ну а красные – уж куда останется (можешь попробовать их изогнуть в любимую сторону, если выйдет ). Теперь изменим сами деколи. Правой кнопкою открой настройки 1 деколи (взрыв) и запомни значение поля Decal – это имя той деколи, какую ты используешь. Кликни на три точки справа и выбери папку с именем твоей деколи. Открой файл decalspec.txt – файл с настройками деколи. Видишь параметр scale? – измени его значение, допустим, на 1500 (это мы сейчас устанавливаем размер взрыва). Сильно не увеличивай, иначе придется поднимать деколь на несколько этажей вверх и тогда скрипт уже не будет правильно работать (тогда придется под деколью расставлять хертзоны). Если параметра нет – создай и установи нужное значение. Пересохрани. Если что, эти папочки лежат не в entitybank\generic\decals, где ты бы стал наверняка их искать, а в gamecore\decals. Повтори эту операцию и для двух других деколей, только им уж параметр scale сделай немногим меньше, например, 800 или 1000 – взрыв будет выглядеть как-то правильней. Этап 3.Создание скриптов. Теперь самое сложное – правильные скрипты. Нам нужны будут три штуки – один для деколи взрыва, еще один для деколей огня и дыма. Ах, да, и еще для компонента, который выступает детонатором. Вот примеры скриптов, которые я набросал. Можешь их немного поправить или дополнить. Первый скрипт (первая строка запускает таймер, вторая через 5 секунд (timergreater=5000) включает деколь взрыва и ее звук, третья убивает ГГ, если он находится в точке взрыва): [more] ;Artificial Intelligence Script ;Header desc = Bum! by warr11r ;Triggers :state=0:timerstart,state=1 :state=1,timergreater=5000:sound=audiobank\smash\concrete.wav,rundecal=0,triggerforce=100,forcebounce=50,state=2 :state=2,plrdistwithin=300:state=3,plraddhealth=-500 ;End of Script [/more] Второй скрипт (похожий на первый, вторая строка чуть больше, чем через 5 секунд (timergreater=5200) начинает проигрывать деколь взрыва и ее звук (в отличие от первого скрипта, где взрыв единоразовый), третья ежесекундно забирает хитпоинты у ГГ, если он находится в зоне огня): [more] ;Artificial Intelligence Script ;Header desc = Bum! - fire by warr11r ;Triggers :state=0:state=1 :state=1,timergreater=5200:loopsound=audiobank\atmos\firehum.wav,forcebounce=50,rundecal=3,state=2 :state=2,plrdistwithin=100:plraddhealth=-1 ;End of Script[/more] Третий скрипт (первая строка отключает возможные столкновения игрока с детонатором, вторая через 5 секунд (timergreater=5000) уничтожает бочку, чем провоцирует взрыв): [more] ;Artificial Intelligence Script ;Header desc = Bum! - force by warr11r ;Triggers :state=0:coloff,state=1 :state=1,timergreater=5000:destroy ;End of Script[/more] Опять же, условия можно сделать разнообразные, просто всего лишь заменив строку timergreater=5000 во всех скриптах на необходимую. Взрыв через 5 секунд после запуска уровня сделан просто для демонстрации. Скрипты ставим деколям и детонатору в поле Main. Для создания красивого эффекта сделай динамические компоненты, которые будут находится вокруг взрыва, более легкими – пусть они разлетятся во все стороны куда подальше… Еще можно сделать воронку, тогда просто при расположении сегментов оставь яму под будущим взрывом и закрой ее какой-нибудь динамической ентитей со скриптом, что мы ставим детонатору (доской, например, хотя можно просто однополигональной текстурой пола) - при взрыве она исчезнет и мы увидим дыру (чтобы она не была квадратной, можна использовать наклонные мешы из romhub pack. Хотя написано довольно мнго, это просто расписано подробно, на самом деле мы ставим бочку, ставим три деколи и всм им ставим нужные скрипты. Все! У тебя нет деколей взрыва? Тебе сюда: Обсуждение декольпака, где есть анимация взрывов Создание своих деколей У тебя нет наклонных мешей для воронки? Тема про romhub На ту же тему скрипты от Никиты: Про существования темы не знал, теорию развинул параллельно, перед публикацией своей тоько увидел - ну что же, альтернатива всегда есть гуд Демонстрация скрипта Пример деколей и детонатора (те, что на видео)

Ответов - 5

Undertaker: круто выглядит!

Монстр: Ну все... Тема почищена от лишних деталей и недоразумений. По мне, так урок отличный (незря ждали)! А главное, что таким макаром можно устроить не только взрыв, но и, например, прорыв воды, гейзеры и что-нибудь еще :)

Никита: warr11r пишет: forcebounce=50 Что это команда делает? warr11r пишет: starttimer И это шо за команда? Разве не timerstart?


warr11r: Никита пишет: warr11r пишет: цитата: forcebounce=50 Что это команда делает? Вроде как усиляет эффект triggerforce=100 Никита пишет: warr11r пишет: цитата: starttimer И это шо за команда? Разве не timerstart? Это новая модная вариация. Улучшенный таймер На самом деле таймер глобальный. Это мусор остался. Сейчас приберусь.

bart: Спасибо за твои старания !



полная версия страницы