destruction system for fps shooter in unity 5
TRANSCRIPT
![Page 1: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/1.jpg)
Destruction System for FPS Shooter in
Unity 5Устрой Destroy!
![Page 2: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/2.jpg)
Чувак, ты кто вообще?
Слава ‘gnoblin’ Панкратов Люблю Unity 7 летvc.ru/p/problem-10081habrahabr.ru/post/112444/
![Page 3: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/3.jpg)
Кто играл в сидж?
о чем референс-игра
![Page 4: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/4.jpg)
Что хотим?
![Page 5: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/5.jpg)
Что хотим?
Разрушать уровень в Unity,
как парни из Ubisoft в Rainbow Six: Siege.
(disclaimer)
![Page 6: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/6.jpg)
Special Thanks
•Roman Chehowski•Volodymyr Dotsenko (defaxer)•Артем Нетягин
![Page 7: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/7.jpg)
Team
•Вадим Янтбелидзе (код).•Александр Горячев (арт) https://allien.carbonmade.com/.
•Слава Панкратов (просто какой-то чел)
![Page 8: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/8.jpg)
План
интро (н.у.) и сам алгоритм (в.м., с.), 20 мин, вопросы
![Page 9: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/9.jpg)
Задача
•Хотим в реалтайме из 16 стволов рушить 200-300 стен на 30-45 тысяч кусков (2-3 млн треугольников).
•Оставляем возможность задавать произвольную форму для кусков (чанков).
![Page 10: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/10.jpg)
Какие варианты (раньше)?
Конец 2014го года - на ассет сторе нету подходящих решений с прицелом на высокую производительность.
![Page 11: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/11.jpg)
Какие варианты (сейчас)?
1. Fracturing & Destruction (автонарезка) assetstore.unity3d.com/en/#!/content/9411.
2. DestroyIt (круто!) assetstore.unity3d.com/en/#!/content/18811.
3. Fragmented Objects (прикольно!) assetstore.unity3d.com/en/#!/content/25699 (но алгоритм пригодится все равно)
![Page 12: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/12.jpg)
DestroyIT
![Page 13: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/13.jpg)
Fragmented Objects
![Page 14: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/14.jpg)
Assetstore
![Page 15: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/15.jpg)
Пишем велосипед
![Page 16: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/16.jpg)
Внешний вид уровня
модульный дом, три этажа, десятки комнат
![Page 17: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/17.jpg)
Внешний вид уровня
![Page 18: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/18.jpg)
Внешний вид уровня
![Page 19: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/19.jpg)
Префаб стены
![Page 20: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/20.jpg)
Разрушение
скрины разрушенного дома
![Page 21: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/21.jpg)
Разрушение
скрины разрушенного дома
![Page 22: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/22.jpg)
Разрушение
скрины разрушенного дома
![Page 23: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/23.jpg)
Pipeline (суть)
• Художник предварительно готовит ассеты.• Хитро запекаем и прокрашиваем геометрию
эдитор скриптами.• В рантайме синкаем изменения по сети,
(передавая айди стены и айди чанка), размазываем нагрузку по кадрам, ведем себя хитро и рушим стенку способом,
похожим на прогрессивный jpeg.=> Получаем стабильный фпс и возможность
разрушать весь уровень с приемлемой детализацией.
![Page 24: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/24.jpg)
Pipeline (арт)
• Художник готовит чанки (неразрушенный вариант, 9 лоуполи чанка, 144 хайполи чанка) для каждого вида “стены” (стена, пол, дверные проемы, баррикады).
• заготовленные варианты под взрыв стены• перегородки
![Page 25: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/25.jpg)
Pipeline (Editor scripts)
• Запекаем chunkID эдитор скриптом в uv2.• Cоздаем кеш треугольников (список туплей с
информацией про чанки).• комбайним чанки в цельные меши.• одеваем везде лодгруппы с упрощенными
материалами.• Программно дублируем префаб и входящие в
него меши, прокрашиваем 14 комбинаций цветов обоев в vertex color.
• на каждую “стену” на уровне ставим закрытый портал.
![Page 26: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/26.jpg)
Pipeline (Runtime)
• uv2 chunk id для определения куда мы попали (когда есть геометрия), виртуальная сетка на кубе когда не разрушена
• два отдельных скрипта с chunk HP (под целую и покоцанную стену)
• триангл кеш, убирание треугольников• стандартный occlusion culling (закрытый портал на целой
стене, при появлении дырки портал открывается). SECTR VIS.• передаем айди стены и айди чанка в стене по сети, чтобы
засинкать изменения на других клиентах.• размазываем нагрузку по кадрам, если в один момент
времени надо разрушить много чанков.
![Page 27: Destruction System for FPS Shooter in Unity 5](https://reader038.vdocument.in/reader038/viewer/2022102811/58703a9a1a28ab4e2c8b488d/html5/thumbnails/27.jpg)
Устрой destroy!
Вопросы?
skypeid: madkust