Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Управляйте маятником, чтобы построить самую высокую (и устойчивую) башню из падающих сверху постов. Следите за временем на каждый бросок по полоске справа: если она закончится, пост упадет мимо башни.

Башня

Аркады, Строительство, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Cgi VFX + Gamedev

С этим тегом используют

Компьютерная графика VFX 3D Cinema 4d Спецэффекты Анимация YouTube Инди Разработка Инди игра Игры Unity Компьютерные игры Все
14 постов сначала свежее
13
CGAleksey
CGAleksey
3 года назад
Инди игры
Серия TOTAL RELOAD

Имитация жидкости в бутылке⁠⁠

Работаем над TReload :) Недавно закончил работу над моделированием поведения жидкости в бутылке / колбе, вот результат:

Товарищи, как оцениваете "физику" поведения?

[моё] Gamedev Игры Компьютерные игры Cgi VFX Компьютерная графика Компьютерное моделирование Компьютерная симуляция Жидкость Имитация Unity Инди игра Бутылка Видео
9
9
CGAleksey
CGAleksey
4 года назад
Инди игры
Серия TOTAL RELOAD

Немного о дематериализации в нашей игре⁠⁠

А мы все еще работаем в гараже над графической частью игры! Работа над скетчами вроде завершена! Набралась целая стопка изображений и чертежей игровых обьектов, идей по тому как это все подключается и взаимодействует, теперь осталось главное - собрать :)


Перед вами результат работы моего geometry - шейдера :

Немного о дематериализации в нашей игре Инди игра, Gamedev, Разработка, Блог, Cgi VFX, Шейдеры, Программирование, Инди, Компьютерная графика, 3D графика, Визуальные эффекты, Эффект, Видео, Игры, Длиннопост
Немного о дематериализации в нашей игре Инди игра, Gamedev, Разработка, Блог, Cgi VFX, Шейдеры, Программирование, Инди, Компьютерная графика, 3D графика, Визуальные эффекты, Эффект, Видео, Игры, Длиннопост
Немного о дематериализации в нашей игре Инди игра, Gamedev, Разработка, Блог, Cgi VFX, Шейдеры, Программирование, Инди, Компьютерная графика, 3D графика, Визуальные эффекты, Эффект, Видео, Игры, Длиннопост
Немного о дематериализации в нашей игре Инди игра, Gamedev, Разработка, Блог, Cgi VFX, Шейдеры, Программирование, Инди, Компьютерная графика, 3D графика, Визуальные эффекты, Эффект, Видео, Игры, Длиннопост

Шейдер позволяет использовать в игре эффкт дематериализации: рассыпание обьекта на кубики / исчезновения кубиками.
Как это работает в общем виде: в шейдер подается текстура - маска в которой содержатся пиксели - смещения.
Параметр _Burn смещает вершинки в зависимости от значений в текстуре и все это выглядит так, будто кубики двигаются.


А вот и обобщенное видео процесса:

В нашем мире всё (на самом деле почти всё) состоит из виртуальных кубиков, которые дематериализуются. Процесс дематериализации (наиболее приближенный к нашей игре) показан здесь:

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

Одна из версий шейдера (если кому пригодится) предсавлена здесь.
<Шейдер не должен работать на OGL и Metal>

Обновления по проекту обычно выкладываем здесь:

https://vk.com/treload
https://twitter.com/CGAleksey

https://www.instagram.com/cgaleksey/


На этом все, всем хорошего вечера :)

Показать полностью 4 2
[моё] Инди игра Gamedev Разработка Блог Cgi VFX Шейдеры Программирование Инди Компьютерная графика 3D графика Визуальные эффекты Эффект Видео Игры Длиннопост
2
55
CGAleksey
CGAleksey
4 года назад
Лига Геймеров
Серия TOTAL RELOAD

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления⁠⁠

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


На первый взгляд все кажется просто.  Вот, на самом деле, почему нельзя просто создать какую-то новую механику, даже много новых механик и улучшать их пока они не устроят? Если что, неудачные механики можно выкинуть :)


<<Для начала в игре существует только одна core-механика. И для ее реализации, поверьте, придется уйти в работу с головой. Создавать нексолько механик = создавать несколько разных игр. А это равносильно усложнению своей жизни. Вместо шлифовки одной механики вы должны распылиться на 10, а потом оставить из них только одну, а остальные выкинуть. Печально выкидывать результаты работы, правда?>>


Разработка игры с новой механикой - это примерно то же самое как работа над открытием или даже процесс поиска клада. Отлично, если вы опытный кладоискатель. Такие кладоискатели знают, что клад вряд ли спрятан в песочнице на детской площадке и не будут его там искать, тратить на это время. Потому что в свое время они уже наступали на эти грабли и ничего там не нашли. То есть существуют механики, которые заведомо неудачны / непригодны для игр. Конечно, все можно адаптировать, видоизменить, подогнать. Но все же существуют вещи которые не следует делать.


Вот рассмотрим очень простой пример такой механики на мобильной игре.

Допустим у нас есть персонаж в мобильной игре и наша задача управлять им. Мы видим персонажа сверху (2D). Как бы в сделали его управление?

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

(1) Если вы будете приказывать персонажу идти за пальцем, когда он опущен на экран, то ваша рука будет перекрывать экран и вы будете смотреть на свою руку;

(2) А если персонаж будет идти в противоположную о пальца сторону, то будет ли удобно такое интвертирование управления?

(3) Если персонаж будет идти в точку, которую вы кликнули, то сможет ли он увернуться от летящей ракеты? Не перекроется ли экран рукой, когда вы смените направляение движения персонажа? Это управление точно удобно?

(4) А если просто... Джойстик и все тут! Не перекроет ли джойстик экран? Сколько экранного пространства он занимает (допустимо ли это)? Удобен ли он? Функционален? Позволяет ли он погрузиться в атмосферу игры?


Кто-то скажет: вот вы написали столько всего, так и управления не сделаешь, если все плохои все "неочень". Сделаешь, как раз это частично задача дизайнера интерфейсов, частично дизайнера, отвечающего за управление. Но больше, конечно, задача дизайна управления.

Да, вот такими задачами и занимаются дизайнеры: сделай то, не знаю что, пойди туда, не знаю куда и чтобы все было круто и никак иначе.


Оптыный дизайнер (опытный кладоискатель) способен быстро оценить все "за" и "против" каждого из пунктов [1-4]. Новичок же, очень вероятно, будет экспериментировать и постигать тайны управления с нуля :)



Надеюсь теперь стало очевидней, что разработка новой механики - это работа.
Это работа и она не всегда увенчивается успехом. Не всегда даже опытному дизайнеру удается создать новую механику. И это часто зависит не только от дизайнера, но и от команды, от возможностей платформы для которой все разрабатывается.
Дизайнер создает тех. задание, отдает ее на реализацию дизайнерам и программистам, через какое-то время получает результат. Если результат устраивает, то это успех. Если результат не устраивает, то процесс повторяется до того момента, пока инвестору все это не надоест или пока команда не замучается "пробовать". Да, людям не нравится работать, а потом выкидывать свою работу. Особенно, когда ты старательно работаешь и не один месяц. Да, ты получаешь зарплату, но где удовлетворение от проделанной работы? Так и свихнуться недолго, если каждый день все рабочее время выкапываешь, а потом закапываешь выкопанную яму.


Вот потому-то все и идут на ухищрения. Зачем пидумывать что-то новое, когда старое хорошо работает? Возможно нужно немного изменить старое и все будет хорошо?


То, что я написал, касается многих вещей. Не только core-механики. Другие вещи могут быть подвержены этому.


//===


В процессе работы над персонажем всплыло множество моментов, которые требовали такой хорошей  и основательной проработки как со стороны дизайнера-программиста, так и со стороны дизайнера по механикам.



В процессе разаработки, было принято решение показыват игроку тело персонажа, чтобы он мог видеть себя своими глазами. Почему нет? Это добавляет атмосферы, смотрится круто.


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


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

Мы справились с этой задачей, сбоку это выглядит так (скрины специально не содержат текстур, дабы не наспойлерить):

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

По части влияния смещения тела на механику движения: удалось добиться стабильности и минимизировать влияние анимации ног на перемещение игрока.


Ноги опускаются процедурно. Пришлось водключить инверсную кинематику и совместить ее с процедурной анимацией движения всего персонажа. О том как мы анимировали персонажа можно ознакомиться здесь: Процедурная анимация движения персонажа


Получилось весьма недурно :)



Руки.

C руками, как и со всем остальным, отдельная история. И она длинная.

Что требуется от рук? Чтобы они не пересекали стены, чтобы держали пушку. И чтобы это все выглядело нормально. Бывшый мой босс всегда ставил задачу примерно так. Он перечислял все требования до мельчайших и в конце добавлял: "И да, сделайте все это так, чтобы выглядело круто. Просто сделайте так, чтобы все было круто и не заставляйте меня говорить что получился отстой."


Руки персонажа эволюционировали и прошли очень долгий путь развития. Сперва мы работали над встроенной в руку "спец.пушкой". Всячески безуспешно пытались совместить то, что совместить трудно, да и нужно ли совмещать: руку + пушку + возможность изменения рукой гравитационного поля. Вот пара каких-то ранних скетчей "спец.пушки":

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

Подключенные первые варианты рук/манипуляторов выглядел примерно так:

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

Здесь один из вариантов ранних анимаций. Главное не внешний вид, а принцип работы:

Пробовали такие варианты:

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

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

Тесты инверсной кинематики. Чисто математика:

А здесь искусственный интеллект нечеловеческими способами учился взаимодействию рукой. Короче, робот как ребенок учился двигать рукой, а на видео некоторые промежуточные результаты, причем неуспешные XD

Инверсная кинематика  в чистом виде (IK):

Еще немного инверсной кинематики для тех кому понравились видео:

Здесь эксперименты того как смотрится перемещение обьекта манипуляторами (как манипуляторы ведут себя при перемещении аюстрактного куба):

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

Манипулятор мы разделили, условно, на руку (манипулятор) и пушку. Пушка выполняет свои функции, а рука дополняет пушку. Не в воздухе же ей висеть.


Пришлось прописат анимации обхвата пушки рукой и то как рука двигается за пушкой (законы движения, которые позволяют руке не пересекать пушку).

Так же рука может быть и без пушки. Для этого случая мы научили кисть немног взаимодействовать с окружением: если игрок вплотную подходит к стене, то рука как бы занимает промежуточную позицию между стеной и телом игрока. не дает игроку лицом воткнуться в стену. Классно, правда? Так же рука может огибать предметы, если игрок захочет как-то повести себя нестандартно и влезть рукой во что-то.


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


Некоторые скетчи из процесса разработки игры выкладываю здесь:

https://twitter.com/CGAleksey

https://www.instagram.com/cgaleksey/



--

Надеюсь статья понравилась и вы почерпнули из нее что-то новое.

На сегодня у меня все.

Спасибо за внимание!

Показать полностью 17 8
[моё] Анимация 3D анимация Процедурная анимация Gamedev Руки Робот Дрон Модели Скетч Инди Инди игра Видеоигра Игры Программирование Дизайн Game Art Создание персонажа Компьютерные игры Дневник разработки Cgi VFX Видео Длиннопост
12
22
CGAleksey
CGAleksey
4 года назад
Лига Геймеров
Серия TOTAL RELOAD

Как артист делал оптимальные лазерные лучи⁠⁠

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост

Настало время оптимизации нашей иры-головоломки от первого лица. В посте будет много картинок, видео и НЕ БУДЕТ математики / программирования. Вся "математика" будет описана на пальцах, показаны только общие идеи. Итак, под оптимизацию попали лазерные лучи.
До этого в grayBox мы использовали юнитевский LineRendere.

Достоинства:

- берется из коробки

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


Недостатки:

- работает неоптимально.


Неоптимальность незаметна на одном, 2-х и даже на десяти лучах. Но вот если у вас в игре лазер, который отражается от зеркал, делится на несколько лучей при прохождении через призму, имеет несколько цветов... то тут уже стоит прикинуть сколько +drawCalls накинут сверху только лучи. Ну, у нас могло набегать 4, 8 и даже 30 drawCalls.


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


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


3/4, сбоку, вразрезе, чтобы моделлер лучше понял конструкцию:

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост

Первые наброски:

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост

Наброски приемника луча:

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост
Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост
Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост
Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост
Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост

Работает в целом так: луч попадает в приемник и применик передает сигнал о том, что в него попали. На основе этого разворачивается одна из игровых механик.


Больше скетчей, если интересно, выкладываю сюда:

https://twitter.com/CGAleksey

https://www.instagram.com/cgaleksey/

На https://vk.com/dronesgame пока ничего не выкладываю, но если добавятся больше 1.5 человека XD, то и туда начну скидывать.


По коду.

Почему не взял какой-то готовый плагин. Взял, результат не понравился. Пробовал Vectosity. Вот я, пишу несамый читабельный код. Но код мой и пишу так, что я могу его понять так как проект делаю для себя. А вот создатель Vectosity я бы сказал накрутил каких-то неральных сложностей. В его коде я так и не смог разобраться чтобы устранить баг, который мне мешал. Вот баг, тектсура как-то деформируется или хз что с ней:

Написал разработчику Vectosity чтобы узнать в чем проблема, когда исправит. С его слов это неисправимый косяк GPU. Короче нафиг-нафиг-нафиг... потом буду заикаться от него из-за того что будут вспоминать добрым словом.


Итак поехали. Что нужно:

- система рисования всех лучей на GPU за 1drawCall;

- возможность задавать разные текстуры и прочие параметры лучам.


Для решения этой задачи придется писать код не только на стороне процессора, но и на стороне GPU. Идея такая: рейкастим на пути луча все что видим, отражаем луч от предметов, которые отражаю. В итоге получаем набор координат. Этот набор координа - это начала и концы сегментов лазерного луча.

Этот набор параметров (array) мы подаем в шейдер при генерации меша на GPU.

Так же мы подаем на GPU набор параметров (тоже array): цвет, индек текстуры, толщина луча и всего чего вам еще вздумается.


И да, лучше чтобы эти параметры подавал какой-то менеджер. То есть в менеджер мы подаем какие лучи нарисовать, а он собирает данные и передает их на GPU.


Сам лазерный луч будем рисовать так:

1) на концах луч должен быть светлее так как это выглядит естественно. Используем grayscale-маск текстуру для этого;

2) переход от центра луча к перифирии (цвет и прозрачность) задаются grayscale-маской;

3) ну и добавим какой-нибудь шум, типа cloud и будем анимировать его, чтобы имитировать туман или движение воздуха.


И да, желательно склеить маски и все на свете в одну текстуру, не цари чтобы баиндами разбрасыватья.


Как по точкам на GPU нарисовать линию. Идея такая:

- в шейдере линия имеет вектор направления (начало-конец)

- есть доступ к позиции камеры.


Ну и все, делаем в шейдере сross(lineDir, camDir) и получаем направление вектора толщины линии. Передаем в шейдер параметром толщины и им можем регулировать толщину линии.

На словах все просто, на деле ушло много времени. Вот рисую линии на GPU по координатам:

Как видно, все ровненько и красиво и текстуру не колбасит как на предыдущем видео. И что там за проблемы с GPU у него были... Так можно отрисовать хз как много линий, зависит от того сколько вершин Unity разрешает использовать (если не ошибаюсь). Вроде 65к в последний раз было максималкой, а это куча линий, мне хватит :)



Версия сырого луча и приемника луча:

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост



Это видео с грейбокс-тестов. Ну, бокс как видно, совсем не gray XD Еще здесь нет нормальной градиентной маски на луче. Луч сильно упрощен: (нет тумана, градиент подобран на скорую руку, концы луча не засветлены... короче, артист не занимался тогда еще этим)

Качество графики у нас не такое, на видосе часть прототипа с минимальной графикой и моделями, которые используются только в процессе разработки:

В итоге линия (лазерный луч) выглядит так. Здесь уже все:

- градиенты настроены

- туман пост-процессом наложен поверх полупрозрачного луча

- концы засветлены

- есть немного анимации тумана

- вся отрисовка на стороне GPU за 1 drawCall, красота :)

Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост
Как артист делал оптимальные лазерные лучи Арт, Художник, VFX, Cgi VFX, Программист, Инди, Gamedev, Прототип, Прототипирование, Лазер, 3D моделирование, Скетч, Инди игра, Игры, Видеоигра, Видео, Длиннопост

Надеюсь кому-то пост понравился и кто-то нашел что-то полезное для себя.

Еще раз ссылки на материалы по игре:
https://twitter.com/CGAleksey

https://www.instagram.com/cgaleksey/

На https://vk.com/dronesgame


Спасибо за внимание :)
Показать полностью 10 3
[моё] Арт Художник VFX Cgi VFX Программист Инди Gamedev Прототип Прототипирование Лазер 3D моделирование Скетч Инди игра Игры Видеоигра Видео Длиннопост
5
37
CGAleksey
CGAleksey
4 года назад
Лига Геймеров
Серия TOTAL RELOAD

Как артист делал систему рисования линий для своей игры⁠⁠

Статья о том как художник/дизайнер бодался с системой рисования линий для игры и сделал ее :)

Кому будет интересна статья? Наверно всем, но не бывалым прогерам так как тут ничего нового для них нет. Читателя ждет МНОООГО видео, картинок и обьяснений "на пальцах".

Немного модного арта для затравки (который получился попутно и случайно в процессе тестов рисовалки):

Как артист делал систему рисования линий для своей игры Gamedev, Компьютерная графика, Cgi VFX, Игры, Инди, Арт, Видеоигра, Линейная алгебра, Видео, Длиннопост

В общем надоело смотреть на то как лазерный луч в нашей инди-игре не оставляет на стенах ничего. Абсолютно ничего. Пробовал trail добавлять, но он же исчезает. И смотрится trail так себе... Даже бомжам стыдно показывать.

Итак, поехали. Нужно было сделать систему рисования линий для игры. Линия должна рисоваться от лазерного луча на любой поверхности. Стал делать свою систему потому, что на AssetStore ничего такого нет. Есть одна система, но она:
1) рисование на каждом обьекте (static/dynamic) приводит к тому, что обьект вырывается из батчинга и создает +1 drawCall.
2) система рисует только точки. Ну типа как в Splatoon. Можно рисовать пятна, но не линии.
Очевидно, это мне не подходит, так что go делать что-то свое.

Это далеко неконечный вариант так как линии здесь не рисуются, рисуются "точки". За счет медленного движения мышки кисть рисуется часто и след выглядит как линия:

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

Требования к системе такие:
- линии должны рисоваться на статических обьектах, но не всех. Динамические обьекты должны не давать рисовать линию на полигонах, которые ЗА ними.
- работает максимально быстро
- работает на любом железе на котором работает Unity
- число линий неограничего
- число цветов линий - неограничено
- рисовать можно не только линии

Задача эта для меня новая, никогда такого еще не делал, пришлось повозиться.
Как рисуются линии в комп-графике? Есть модель и игрок проводит по модели лучем. На модели должен остаться след. Нужно найти в каком месте рисовать этот след.
1) очевидно, полигоны, которые смотрят ОТ начала рисования линии не будут содержать на себе след. Потому, что это полигоны с противоположной стороны модели. Их можно отбраковать.
2) есть полигоны, которые смотрят на игрока и которые попали в область рисования линии. На них предположительно будет след от линии.

Ну вот, для наглядности:

Как артист делал систему рисования линий для своей игры Gamedev, Компьютерная графика, Cgi VFX, Игры, Инди, Арт, Видеоигра, Линейная алгебра, Видео, Длиннопост

Красная точка - начало луча. Синие линии - это сектор в котором луч повернулся. Стрелка показывает направление поворота (хотя это неневажно).
В итоге у нас есть треугольник, которым рассекли модель. Полигоны, которые повернуты от игрока (backfaced) сразу тупо отбросились и я их не сек плоскостью в кторой орудует луч.

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

Вот фото работы этого алгоритма:

Как артист делал систему рисования линий для своей игры Gamedev, Компьютерная графика, Cgi VFX, Игры, Инди, Арт, Видеоигра, Линейная алгебра, Видео, Длиннопост

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

Здесь просто тесты алгоритма, смотрел как работает:

В сцене может быть несколько "рисователей". Вот видео. где одновременно рисуется больше одного пятна за 1 раз. Кстати, тут видно, что нужно рисовать именно линии, а не пятна. Иначе между точками есть пробелы.

Здесь видно (подсвечиваю) полигоны на модели и какие полигоны секутся лучем (рисуют линию):

Здесь наглядно видно как работает рисование линий:

Удалось сечь обьект и рисовать на нем линию. Здорово!
Осталось сделат самую малость: найти обьекты, которые будут рисовать на себе линии.Вот водишь ты лучем в пространстве и нужно знать с чем луч пересечется. Для этого есть Оctree & BVH. Первый хорош для статики, второй для динамических обьектов. Спасибо GameDev.ru (а именно крутым парням foxes и kkolyan за подсказки).

Внедряем деревянные структуры, печем, запускаем. Работает!
Это не конечный вариант, но все же. Вот как смотрится след в действии:

Спасибо за внимание. На данный момент я занимаюсь больше артом и даже на такие беглые статьи не хватает времени.

Кому интересно, вот ссылки на меня. Здесь я выкладываю некоторые результаты по игре. Пока больше скетчами делюсь. Позже больше видео начну выкладывать ;) Подписывайтесь, это сильно стимулирует работать :)

https://twitter.com/CGAleksey
https://www.instagram.com/cgaleksey/

Показать полностью 3 6
[моё] Gamedev Компьютерная графика Cgi VFX Игры Инди Арт Видеоигра Линейная алгебра Видео Длиннопост
13
3
3djobs
3djobs
7 лет назад

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV⁠⁠

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

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

Каналы:

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

CGTelegram — последние новости о CG-индустрии, 3D-программном обеспечении, уроках, видеороликах, анимации, обзорах, продуктах VFX и многом другом.

Ссылка без proxy и vpn: CGTelegram

Ссылка на tgstat.ru: CGTelegram

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

3Dpapa — канал для тридэшников. Здесь вы найдёте разного рода туториалы. Интервью с известными художниками на русском, бесплатные ассеты, литературу и много другого полезного стафа.

Ссылка без proxy и vpn: 3Dpapa

Ссылка на tgstat.ru: 3Dpapa

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

CG News — новости из мира CG графики. Все самое интересное, софт, материалы, плагины, секреты. Самое актуальное, о чем нужно знать в CG.

Ссылка без proxy и vpn: CG News

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

Unreal Engine 4 - движок нового поколения, который позволяет создавать игры любого жанра. Благодаря использованию C++ ваши возможности практически безграничны в разработке игры!

Ссылка без proxy и vpn: Unreal Engine 4

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

CG Live-канал о компьютерной графике, анимации и все, что с этим связано, на понятном для всех языке.

Ссылка без proxy и vpn: CG Live

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

Game Dev Porn-Интересное про геймдев.

Ссылка без proxy и vpn: Game Dev Porn

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

GameDev Architecture-Привет! На канале я делюсь своими заметками о том, как игровым компаниям строить правильные, эффективные и красивые решения, в основном на C#.От описания сложных архитектурных решений, до простых туториалов.

Ссылка без proxy и vpn: GameDev Architecture

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

Календарь событий игровой-канал информирующий о проходящих событиях игровой индустрии и крупных конференциях на территории СНГ. Если вы считаете, что какого-то мероприятия не хватает и о нём стоит написать - заполните форму

Ссылка без proxy и vpn: Календарь событий игровой

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

CG LAB-Полезный контент для современных художников и по совместительству блог Сидоровой Лины

Ссылка без proxy и vpn: CG LAB

Ссылка на tgstat.ru: CG LAB

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

I2need- Как снять и смонтировать видео?- Что происходит за кулисами съёмок.- Музыка для работы.- Графика/ Спецэффекты для видео.- Полезные материалы.- Интересные статьи.

Ссылка без proxy и vpn: I2need

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

Cgninjas-Лучшие учебные материалы по CG и VFX на русском и английском языках.

Ссылка без proxy и vpn: Cgninjas

Ссылка на tgstat.ru: Cgninjas

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

3dvis | CG Blog-CG контентная терапия из самых полезных и популярных постов +30k аудитории сообщества, посвещённого визуализации.

Терапия: 1 пост в один-два дня.Без побочных эффектов

Ссылка без proxy и vpn: 3dvis | CG Blog

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

VFX Breakdowns-самые свежие VFX брейкдауны и мейкинг оффы с ежедневным обновлением

Ссылка без proxy и vpn: VFX Breakdowns

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

VFX INSPIRATION-Этот канал является копилкой разных брейков, рилоф и мейкинофов. Все что нужно чтобы получить вдохновение перед работой. Наслаждайтесь!

Ссылка без proxy и vpn: VFX INSPIRATION

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

Houdini Lib - библиотека всего, что связано с Houdini!

Ссылка без proxy и vpn: Houdini Lib

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

Двигай пиксель!-Живем компьютерной графикой. Считаем полигоны, следим за технологиями, ищемвдохновение и даже немножечко угораем.

Ссылка без proxy и vpn: Двигай пиксель!

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

MOTION TIPS-Кладовка CG-полезностей и лучшее из чата MOTION TALK

Ссылка без proxy и vpn: MOTION TIPS

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

Nova Deep Trip-Aleksandra Nova / concept artist / N3

Ссылка без proxy и vpn: Nova Deep Trip

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

Indie Game Dev

Ссылка без proxy и vpn: Indie Game Dev

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

0101 Production (Motion Design Tips)-Peace, Love, CG and Having Кайф!

Ссылка без proxy и vpn: 0101 Production (Motion Design Tips)

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

3D craft-Пространство цифрового искусства. Приоритет Blender3D. Вакансии, новости, обзоры.

Ссылка без proxy и vpn:3D craft

Интересные Telegram каналы  о CG|3D|VFX|VR\AR|GameDEV Telegram, Telegram каналы, 3D моделирование, Cgi VFX, Gamedev, Длиннопост

Unity3D Assets-Unity assets & resources.

Ссылка без proxy и vpn:Unity3D Assets

Ссылка на tgstat.ru: Unity3D Assets

Показать полностью 22
Telegram Telegram каналы 3D моделирование Cgi VFX Gamedev Длиннопост
4
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии