S&Box DevBlog Февраль 2021 - S&box - Моддинг Игр и Серверов Jump to content
Guest

S&Box DevBlog Февраль 2021


OriginalShaman
 Share

Recommended Posts

S&Box DevBlog Февраль 2021

*Повествование ведется от первого лица, так как текст - это перевод с официального сайта разработчика игры.

 

В этом месяце мы работали над системами декалей, свойствами поверхностей, звуками и тонной других вещей.

Физика Упругости(Garry)

Возясь со свойствами поверхности, я изо всех сил старался сделать объекты упругими. Если бы я хотел сделать мяч супер упругим, я мог бы увеличить его эластичность, но если бы он ударился о что-то другое, что было упругим, он выстрелил бы со скоростью миллион миль в час.

Мне удалось подправить работу свойства эластичности, чтобы заставить упругость работать так, как мы хотим. Я не знаю, насколько это физически точно, но это позволяет нам делать упругую срань.

Декали

По соображениям производительности декали являются довольно захардкожеными, и их трудно заставить работать по пути моддинга как мы хотели. В этом месяце я придумал способ сделать их немного более модульными, и разработал API для их размещения.

Февраль 2021, изображение №1
 
 

Так что теперь декали определяются как свободные файлы, как материалы. Они могут иметь несколько текстур, и вы можете определить очевидную срань как их размер, поворот, и т.д.

Февраль 2021, изображение №2
 
 

Звуки

Подобно декалям, звуки были в очень недружелюбном виде для моддеров. Теперь они являются свободными .sound файлами и редактируются таким же образом.

Февраль 2021, изображение №3
 
 

У нас есть кое-какая работа, чтобы сделать этот интерфейс менее всратым, но вы поняли идею. Вы можете создавать и редактировать их во время работы игры, и они загружаются в горячем режиме, как и следовало ожидать.

Эти звуки также появляются по всему редактору, поэтому, когда вам нужно выбрать звук в Hammer или ModelDoc - они есть

Свойства Поверхностей

Свойства поверхностей также хранились в некотором недружелюбном для моддеров виде.

Так что теперь мы определяем свойства поверхностей в свободных файлах .surface, например так.

Февраль 2021, изображение №4
 
 

Когда вы бросаете луч в игре, вы получите столкновение от поверхности, которое даст вам всю вышеприведенную информацию. Например, чтобы воспроизвести звук шагов

Февраль 2021, изображение №5
 
 

DoFootstep - это расширение, которое живет в коде аддона. Мы помещаем его в код аддона, чтобы вы могли видеть, что он делает, и делать что-то еще, если вам это не нравится.

Февраль 2021, изображение №6
 
 

Пользовательские Типы Ассетов

Февраль 2021, изображение №7
 
 

Три вещи выше - это пользовательские ассеты. Вы сами можете задефайнить эти файлы.

Вот что внутри sound.asset.

Февраль 2021, изображение №8
 
 

Это FGD файл, который определяет структуру данных. Это позволяет вам создавать и редактировать материалы в редакторе ассетов

Февраль 2021, изображение №9
 
 

Затем в вашем коде аддона вы создаете соответствующий класс, подобный этому:

Февраль 2021, изображение №10
 
 

На этом все. Вы можете использовать их, как и любой другой ассет, и они автоматически загружаются.

Они также интегрируются в систему ассетов Source 2, так что все это ощущается как часть движка.

Февраль 2021, изображение №11
 
 

Это начиналось как только редактор для декалей, но я решил, что эти данные достаточно универсальны и легки, чтобы мы могли относиться к ним именно так, и попытаться сделать один редактор, который работает для кучи вещей.. таким образом, любые усилия, направленные на улучшение этого одного редактора, улучшают рабочий процесс тонны ресурсов.. так что это более вероятно.

Hammer(2)

На этой неделе я довольно часто пользовался Хаммером и чувствовал, как все старые тропы в моем мозгу восстанавливаются, когда я начал использовать горячие клавиши, которые никогда сознательно не помнил.

Я столкнулся с несколькими проблемами (в основном исправляя вещи, которые я сломал), но я добавил пару новых вещей.

Наши C# энтити теперь могут получать ключевые значения из карты. Для этого вы просто отмечаете одно из своих свойств с помощью [HammerProp], и оно автоматически устанавливается, когда объект создается картой.

Февраль 2021, изображение №12
 
 

Однако это было бы бесполезно без добавления энтити вашего аддона в Hammer.. итак, теперь вы можете поместить fgd в папку config/ вашего аддона, и ваши пользовательские определения энтити будут доступны!

Навмеш

Я проделал кое-какую исследовательскую работу с навмешами, чтобы убедиться, что мы можем их использовать. Хорошая новость - мы можем.

Февраль 2021, изображение №13
 
 

Большая часть навигационных путей привязана к базе сущностей NPC AI движка С++, которую мы не хотим использовать, но навмеш в основном абстрагирован. Это работает для нашего подхода, так как мы хотим связать голые основы и код как можно больше в c#.

Вода + Плавание

В коде есть много случаев, когда вам нужно проверить, находитесь ли вы в воде, и сделать что-то другое. По этой причине я хотел сделать это как можно скорее, чтобы нам не пришлось менять тонну кода после того, как мы его добавили.

Физические объекты должны взаимодействовать с водой по-разному, некоторые вещи должны плавать, некоторые вещи должны тонуть, все движение должно быть смочено.

Пули должны попасть в поверхность воды и продолжить свой путь. Под водой пули обычно действуют по-разному.

Игроки должны двигаться под водой также по - разному. Они должны уметь плавать. Их вид нуждается в куче постобработки и тумана, звук на выходе должен быть более приглушенным.

Source 2 не имеет ничего из этого, поэтому мы начинаем с нуля. В этом месяце я сделал все самое важное. Есть еще много вещей, которые нужно сделать, но я не хотел тратить целый месяц на создание идеальной воды.

Эффекты от Выстрелов

Свойства поверхностей позволяют определить, какие партикли должны появляться при попадании пули на определенную поверхность.

Бесшовные Кубмапы (Sam)

Отражения от карт окружающей среды(envmap) теперь рассматриваются скорее как непрямые источники света, а не назначаются каждому объекту, это позволяет нам сделать их незаметный переход не зависимо от того сколько их пересекается.

Это не идеально, но это убедительное решение для игроков, художникам не нужно беспокоиться об их настройке.

Шум(Garry)

Я связал кучу шумовых функций, и мне захотелось посмотреть, что они делают, поэтому я быстро создал энтити, чтобы визуализировать их. Это довольно бесполезно для всех, но это выглядело круто.

 

Улучшения Инструментов (Layla)

Эти инструменты - огромный шаг вперед по сравнению с Source1, но я уверен, что есть еще много улучшений качества жизни, которые мы можем добавить, чтобы сделать их еще лучше.

Вот некоторые изменения, которые облегчили нам жизнь в этом месяце.

Теперь можно переносить fbx файлы из проводника в ModelDoc и добавлять их как «Render Meshes»
 
Теперь можно переносить fbx файлы из проводника в ModelDoc и добавлять их как «Render Meshes»
Легкое создание материала с помощью ПКМ по картинке в браузере ассетов
 
Легкое создание материала с помощью ПКМ по картинке в браузере ассетов
Импортируя меш в ModelDoc теперь можно выровнять его по min/max/center границам на каждой оси. Это полезно для тех случаев когда вы ходите чтобы ось модели находился в центре меша, но не был экспортирован таким образом
 
Импортируя меш в ModelDoc теперь можно выровнять его по min/max/center границам на каждой оси. Это полезно для тех случаев когда вы ходите чтобы ось модели находился в центре меша, но не был экспортирован таким образом
Фильтр по типу в поиске браузера ассетов
 
Фильтр по типу в поиске браузера ассетов
Вы можете принудительно поменять/применить веса Render Mesh к какой либо кости в ModelDoc
 
Вы можете принудительно поменять/применить веса Render Mesh к какой либо кости в ModelDoc

Эксперименты с Транспортом

Февраль 2021, изображение №19
 
 

Я запилил базовую физику транспорта. Она работает, прослеживая вниз на колесах и применяя пружинные усилия для подвески. Затем я могу приложить силы к телу, чтобы заставить его двигаться. Я портировал модульные транспортные ассеты из rust. Это не идеально, но это одна из многих попыток. Все это на C#, на уровне аддона, так что вы сможете создать свою собственную физику автомобиля.

Сейчас нет хорошего способа водить машины, так что это то, над чем мы будем работать.

Глубина Резкости (Sam)

Я также реализовал настраиваемый эффект глубины резкости, сейчас он немного медленный и в некоторых случаях поломан, но результаты, которые мы получили с ним до сих пор действительно впечатляют.

Февраль 2021, изображение №20
 
 

Если вы программист игрового режима, вы можете просто включить его, изменив значения диафрагмы в объекте камеры, как вы сделали бы это с любой физической камерой, и так же просто, как изменить FoV.

 

Deathmatch(Garry)

Февраль 2021, изображение №21
 
 

Я работал над игровым режимом deathmatch, добавляя новое оружие и решая, что еще нужно сделать. Конечная цель для этого - быть играбельным, чтобы быть хорошим тестом для всей системы аддонов gamemode.

У меня есть код на Github. Я пытаюсь разрабатывать его как обычный разработчик, чтобы найти и исправить любые шероховатости в этом процессе

За каждую вещь, которую мне удается запилить из моего списка, я нахожу еще 3, чтобы добавить к нему. Но это делает хороший прогресс, даже несмотря на то, что сам режим deathmatch, кажется, не движется вперед, он двигает все остальное вперед вокруг него.

Link to comment
Share on other sites

 Share

Подписывайтесь на нас во Вконтакте!

×
×
  • Create New...
Search In
  • More options...
Find results that contain...
Find results in...

Write what you are looking for and press enter or click the search icon to begin your search