15

Эффект перехода, как в SAO, сделанный на частицах Unity

Надеюсь, это поможет кому-нибудь сэкономить час или около того... Думал, что в сети полно примеров, как сделать эффект погружения Sworld Art Online, но пришлось самому париться.

Эффект перехода, как в SAO, сделанный на частицах Unity Sword Art Online, Unity3d, Визуальные эффекты, Gamedev, Гифка

Используются частицы с мешем цилиндром и Sprite шейдером. Буду не против идеи, как сделать это лучше: улучшить производительность или красоту. Я не мастер по эффектам, если что - программист скорее и жрёт такой эффект из частиц неплохо так ресурсов: ~25 треугольников и вершин...


https://github.com/KVinS/SAO-Transition-Effect/

Найдены дубликаты

+3

Однотипные объекты, разные по размеру, цвету, координатам и скорости.


Погуглите Unity Entity Component System


На днях сварганил в них волны из 3Д кубиков, со сменой цвета по высоте волны

На одновременной обработке 3600 кубиков - 30 фпс на среднем андроиде.

На 40к кубиков - 17 фпс.


Дел - на пару-тройку часов с чаепитием.

раскрыть ветку 3
0
Работаю с UE4, там есть понятие инстансов, много мешей с небольшими отличиями редрерятся за один драв колл. Очень полезно когда мешей много, они почти одинаковые и почти одновременно находятся на экране. В Unity нет аналога?
раскрыть ветку 2
0

Небольшой тред, разъясняющий общее понятие "инстанс", и в т.ч. плавно переходящий в растолковывание основ понятия "entity":

https://forum.unity.com/threads/what-is-an-instance.279537/


Вкратце, ECS в Unity - готовая высокопроизводительная система по обработке множества сложенных компонентов без определения в игровые "объекты".

В чем-то - да, те же инстансы. И да, может обрабатывать несколько тысяч одинаковых/схожих объектов за один "call".

0

В последнем варианте 3 Draw Calls

#comment_150044297

+1

Пока решил остановиться на том, что мне сделали оптимизированный цилиндр :D

В два раза меньше вершин и треугольников.

https://github.com/KVinS/SAO-Transition-Effect/blob/master/S...

0

жрёт такой эффект из частиц неплохо так ресурсов

Ты используешь частицы на CPU, а в Юнити есть система частиц на GPU:

https://www.youtube.com/watch?v=FvZNVQuLDjI

Видео немного старое, можешь поискать поновее. Так VFX Graph работает не только в HDRP, но и в LWRP.

раскрыть ветку 6
0
Ну я бы ещё минимум год пожалуй воздержался (и воздерживаюсь) от создания чего либо крупного на hdrp (в котором vfx graph) очень нестабилен.
раскрыть ветку 1
0

А в чем нестабильность выражается? Просто на LWRP (где VFX Graph тоже есть) не замечал пока ничего.

0

LWRP (HDRP наверное тоже) пока что не очень продакшн реди.

раскрыть ветку 3
0
Lwrp более чем "Реди", но само собой нужно проходиться напильником и переделывать некоторые компоненты. Но по факту там всё работает отлично. Но на то он и srp, чтоб допиливать
раскрыть ветку 1
0

Для небольшого инди не критично.

0
раскрыть ветку 1
0

Это второй эффект. Перед ним ещё есть представленный. Типа, активация интерфейса.

https://youtu.be/EjC78wnOoPQ?t=11

0

[этот комментарий -- оффтоп, к работе автора не имеет отношения]


В некоторых играх качественный геймдизайн. В других играх геймдизана нет.

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

Я бы воздержался делать что-то "как в SAO" хотя бы из-за этого. Даже загрузочный экран.

раскрыть ветку 4
+1

Я просто отсылку хотел.
P.S. Вы бы уточнили про какой именно "SAO"...

раскрыть ветку 3
-1

Я имел в виду оригинал (книги и аниме, написанные Р.К). Игру не играл.


Отсылки -- такая штука. Не всегда уместно и не всегда хорошо.

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

раскрыть ветку 2
0

я один вижу просадку фпс?

раскрыть ветку 2
0

Не вы один.

Но вообще, это не самая актуальная гифка. Эта свежее и со счётчиком:


Я писал - нагрузка там нехилая из-за мешей.

раскрыть ветку 1
0

ясно

-1

Trapcode Particular в AE, хотя это не к разработчикам, а к моушенистам

Похожие посты
28

Настройка Google Play In-App Review для Unity

Всем привет!


Мой пост будет для тех, у кого возникли трудности с вышедшим не так давно Google Play In-App Review в Unity3D.

Сам процесс интеграции SDK в проект не вызывает вопросов, однако на этапе тестирования приложения уже на смартфоне, диалог с приглашением оценить игру не появлялся.

Решение, которое помогло мне, было в использовании заказного файла Proguard.

Теперь по пунктам:


1. Заходим в настройки Player своего проекта в Unity, на вкладку Publishing Settings и ставим галку Custom Proguard File. Сразу под галкой появится путь, по которому можно найти наш файл proguard-user.txt

Настройка Google Play In-App Review для Unity Unity, Unity3d, Gamedev, Google Play, Разработка, Длиннопост

2. Далее в файловом менеджере заходим в наш проект и находим там папку PackageCache. Выглядеть будет примерно так:


Настройка Google Play In-App Review для Unity Unity, Unity3d, Gamedev, Google Play, Разработка, Длиннопост

3. Теперь в каждой папке ищем подпапку Proguard, в которой будет один TXT файл, содержимое которого надо скопировать в наш новый файл proguard-user.txt. Повторить такое копирование для всех найденных файлов в папках Proguard, у меня было таких 4 штуки.

Настройка Google Play In-App Review для Unity Unity, Unity3d, Gamedev, Google Play, Разработка, Длиннопост

4. После того как закончили, добавить в конец файла proguard-user.txt, строку:

-keep class com.google.android.play.core.** { *; }


Всё! Собираем aab или apk, загружаем в гуглплей и тестируем. Важно, чтобы тестирующий еще не оценил игру, иначе окно не появится.


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

Показать полностью 3
35

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

История нашей игры началась в 2016 году с покупки приставки Apple TV. Это был очень желанный девайс, на котором я обнаружил несколько игр, в том числе детских. Одна из них была от знаменитой студии, и она настолько мне понравилась, что я сказал своей супруге и музе: «Дорогая, я хочу сделать игру для нашей дочери!» Она меня поддержала.

Мысль о создании своей игры или приложения появлялась у меня и раньше, но мне казалось это нереальным, просто запредельным. А в тот момент загорелся огонь, и я решил идти только вперед. «Нужны ведь деньги и единомышленники, чтобы создать игру», - скажете вы. Да, все верно. На тот момент я был топовым видеографом и хорошо зарабатывал, поэтому наивно думал, что мы с супругой найдем команду и будем просто финансировать и руководить проектом.

Сценарий игры


Первым делом мы должны были найти сценариста. Нам повезло, поиск был недолгим. Мы объяснили автору свои цели и задачи, рассказали, какие игры нам импонируют и стали с нетерпением ждать результат. Получив на руки текст, мы были удивлены супер кратким содержанием написанного. Оказалось, что вместо ожидаемого сценария, нам сделали так называемую «Библию» игры, в которой были описаны 6 характеров персонажей, игровой мир и практически тезисно игровой процесс, можно сказать, идея игровой механики. Так как, оформляя заказ на «библию», в тот момент мы не понимали, чем она отличается от сценария, это стало хорошим уроком для нас впредь обговаривать до мелочей за что мы платим деньги.

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

Первые депрессии


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

При дальнейшем общении с разными исполнителями мы слышали много негатива и пессимизма по поводу наших планов, целей, многие люди говорили нам: «Вы ничего не знаете, у вас ничего не выйдет, игры не делаются за короткие сроки (к слову, мы рассчитывали уложиться в 6 месяцев), на детском сегменте не заработаешь» и т.д. Слыша подобные разговоры, мы понимали, что с такими людьми работать не имеет смысла, ничего творческого они нам не предложат. Все это вгоняло в депрессию, и меня стали посещать мысли, типа: кто я такой, куда я полез, это мне не под силу, нужно остановиться. Не знаю можно ли верить в гороскопы, которые говорят, что овны очень упрямые и целеустремленные, но такие черты в моем характере есть, поэтому, поразмыслив несколько дней, я решил послать всех подальше и предложил супруге самим расписать дизайн-документ, как мы расписывали сценарии для съемок.

Диздок и поиск референсов


Основываясь на сеттинге игры и характерах персонажей, мы приступили к написанию дизайн-документа, создав в нем 3 категории: визуальный ряд, механика, действия героя. Мы не знали, как это делают профи, но найденные в интернете образцы диздоков показались нам не совсем понятными для исполнителей, поэтому решили остановиться на своей схеме. Шаг за шагом мы перебирали в голове идеи как насытить игровой мир незаурядной механикой, пересмотрели много игр детской тематики, нашли в них минусы и попытались избавиться от этих минусов в сценарии своей будущей игры.

Вдохновляясь «Зеленой шапочкой», «Спокойной ночи, цирк», сериями игр Sago Mini, «Cut the rope», мы хотели сделать что-то простое в исполнении, но при этом функциональное и красивое. Помимо анализа игр, мы нашли множество референсов для исполнителей. Выбор был сложным, попадалось много иллюстраций бэкграундов и персонажей как во flat стиле, так и full, предпочтение отдали flat стилю, потому что его можно было быстрее отрисовать.

Диздок разрастался страница за страницей, все больше менялась и дополнялась первоначальная концепция, чтобы игра была еще интереснее и сложнее на фоне других игр из детской категории. Нашей фишкой было придумать такую механику, которая позволила бы ребенку понять что нужно делать без голосовых и текстовых подсказок, плюс это позволяло сделать локализацию универсальной. Бывали ситуации, когда механика была настолько непонятной, что приходилось делать зарисовки или аппликации, и «играть» на бумаге.

В итоге мы написали дизайн документ на 40 страниц. Это было «вау!», мы преодолели еще одну полосу препятствий. Моя упёртость меня не подвела)))

Поиск исполнителей и снова трудности


Первым этапом мы решили найти иллюстратора «персонажника». Базой для поиска служили сайты Behance, Illustrator.ru и Artstation. На 2016 год таких специалистов было не очень много на постсоветском пространстве, а из тех, кто нравился, многие были заняты или не походили под наш бюджет.

Наконец, мы остановились на одной армянской студии, которая предложила полный цикл разработки персонажей, начиная от скетчей до финального цветного рисунка, а также создание бэкграундов и анимацию. От них мы узнали про среду разработки Unity 3D и замечательный пакет Spine 2D для анимации будущей игры. В ходе переговоров оказалось, что их цены слишком высоки для нас, и мы остановились на паре других исполнителей. Ребята нарисовали несколько вариантов пробного персонажа и бэкраунд, но это было не то, что нам хотелось. Мы заплатили за работу, хотя по договору могли этого не делать, но сами исполнители настолько мне импонировали, что хотелось отблагодарить их за труд. В последующем я понял, что помимо отличного результата мне нужны люди, с которыми будет комфортно работать, ведь у меня появился опыт взаимодействия с разными ребятами, и, бывало, я чувствовал себя дискомфортно из-за того, что мои хотелки рубили на корню или демонстрировали звездный характер.

Мы решили снова переговорить с армянской студией и пересмотреть их полный цикл, в итоге успешно договорились на разработку персонажей и setup их в Spine 2D без анимации. С этого момента началось все самое интересное. Ребята очень понравились мне в работе и общении, мы стали получать первые скетчи слоненка и это было словно появление ребенка на свет. Скетчи были нарисованы разными художниками одной студии, и перед нами встал выбор стилистики персонажа.

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

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

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

Итак, художник приступил рисовать скетчи остальных персонажей на основе выбранной стилистики. Их нужно было править, и я понял, что совсем не мог объяснить чего хочу, пришлось подключать свои «способности» и дорисовывать те детали, которые нужно было откорректировать. Это был интересный опыт, было скомкано очень много бумаги, потому что скетчи я поправлял карандашом. Работа была очень вдохновляющей, и мы порхали от счастья, глядя на своих милашек в карандашной технике.

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

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

Первые цветные персонажи

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

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

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

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

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

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

Работа над героями была закончена в конце августа, художником за лето я не стал, но со своей задачей справился. В октябре мы, наконец, нашли иллюстратора игрового мира (тоже не с первой попытки), а еще через месяц - аниматора, который должен был приступить к своей работе в январе 2017. Параллельно я изучал Spine 2D, начал анимировать персонажей и предметы, но не планировал дальше этим заниматься, мне просто было интересно. К тому же эти знания помогали понять процесс работы в Spine 2D и интеграцию с Unity 3D, чтобы в дальнейшем я мог общаться с аниматором на понятном языке и ставить ему правильные задачи.

Январь 2017. Работа шла полным ходом, я продолжал заниматься бизнесом, зарабатывая деньги на игру, и параллельно был на связи с ребятами, ставя задачи и контролируя процесс.

С художником Антоном мы сразу нашли общий язык, он проникся нашим проектом и пообещал нарисовать фоны за 3-4 месяца, но, к сожалению, из-за имеющейся у него параллельной работы все растянулось примерно на 14 месяцев. Конечно, это не входило в мои планы, но работать с ним было комфортно, поэтому я решил проигнорировать этот момент. Та же самая история повторилась и с аниматором Андреем. Ох уж этот фриланс! Как легко все может выйти из под контроля! Время, к сожалению, беспощадно, и все планы закончить игру как можно скорее рушились на глазах.

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

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

По стилистике персонажей игра должна была быть во Flat стиле, но бэкграунды получились сложнее, и, на мой взгляд, Антону удалось гармонично совместить два разных стиля. UI решили нарисовать тоже во Flat и сделать его очень простым. С подсказками пришлось помучиться, изначально предполагалось лишь графически изобразить задание в отдельном окошке, но, как оказалось, найти и вызвать подсказку было затруднительно для игрока, поэтому решили добавить стрелочки и пальчики. В некоторых моментах и этого оказалось недостаточно, так родилась мысль добавить лампочку «Эврика!», поэтому в нашей игре много самых разнообразных подсказок.

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост
Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

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

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

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

3 состояния ожидания действий игрока - idle;

1 анимация наблюдения за действием игрока - look;

1 реакция на правильное действие - correctly;

1 реакция на неправильное действие - wrong;

3 состояния радостных эмоций при завершении каждого задания - emotion;

около 5 анимаций, связанных с заданиями, интро, финальным мультфильмом.

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост
Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

Анимированные персонажи получились очень классными, это была потрясающая работа. С предметами тоже было все хорошо, но большую часть пришлось переделывать самому при импорте в Unity 3D. Если бы работа по программированию велась одновременно с анимациями, я мог бы ставить Андрею правильные задачи, а так как работа шла «вслепую», впоследствии пришлось закрыть глаза на необходимость переделок и надеяться на то, что правок будет не так много.

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

Параллельно с художником и аниматором я планировал работать с программистом, но поняв, что работа затягивается больше, чем на год, я начал изучать Unity, в частности, интеграцию со Spine 2D. Это был кошмар, я смотрел в монитор и хлопал глазами: что? куда? зачем? Попробовал закинуть в программу один анимированный уровень, и, когда я вывел первую анимацию на телефон без программирования, просто анимацию, над моей головой образовался ангельский нимб. Это звучит смешно, но я почувствовал себя программистом)))

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост
Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

Вспомнились мои слова супруге о том, что если мы начнем делать игру, я буду только ставить задачи и контролировать процесс. И тут наступает момент, когда я говорю ей: «Представляешь, я нашел способ сделать игру в Unity без кода! Я сейчас просто попробую собрать один уровень, чтобы дальше быть умнее в глазах программиста», на что она мне ответила: «Я даже не сомневалась, что ты обязательно сделаешь что-то своими руками». Обожаю свою супругу за то, что она всегда позволяет мне двигаться вперед и творить, не тушит во мне этот огонь.

Я выбрал метод визуального программирования PlayMaker.

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

Просидел месяц и собрал в первом уровне один подуровень. Этот период чуть не сломил меня, хотелось бросить игру, все казалось очень сложным, в голове постоянно крутились страшные мысли, что я все соберу, а оно не будет работать. В итоге я собрался духом и сказал себе: «все получится, я справлюсь», к тому же ребята радовали результатом, да и мои успехи в плане анимации и программной части с каждым этапом становились все больше, и я чувствовал себя увереннее. Очень хорошо, что я начал именно с визуального программирования, потому что вся та механика, которая была расписана в диздоке, на практике очень сильно поменялась, я даже думать стал немного по-другому. Со временем мои знания подросли настолько, что я научился писать экшены для Playmaker, необходимые, по большей части, для работы со Spine 2D.


В 2018 году пришло время писать музыку для игры, и я познакомился с замечательным композитором Геннадием. Ему понравилась наша игра, и он тоже, как говорится, вложил в нее частичку своей души. Я много лет работал в продакшн с видео и музыкой непосредственно, но, честно говоря, не мог толком объяснить какая музыка мне нужна. Мы доверились Геннадию, и он написал такие классные мелодии, которые дети напевают каждый раз, играя в Jungle Town.


Следующим этапом я начал искать исполнителей по озвучке персонажей и предметов. С 4-5 раза голоса персонажей мы утвердили, а вот со звуками не сложилось, пришлось снова взять нагрузку на себя. Я не знал как подойти к этому процессу и первым делом решил записать всю игру с музыкой, а поверх записи наложить звуки, которые скачивал в виде демо с Аudiojungle. После того, как я все смонтировал в Premiere Pro, купил используемые звуки, меня ожидал сюрприз: демо звуки шли одним файлом, а купленные - отдельными файлами, пришлось искать и вручную синхронизировать нужный файл на таймлайне. Затем выяснилось, что звуки нужно экспортировать именно так, чтобы они совпадали с анимацией, иначе их не синхронизировать в Unity. Тут на моем жизненном пути повстречался еще один замечательный человек Илья, который хорошо знает C#, он помог мне написать код для Animator State в Unity. На этом эпопея со звуками не закончилась… После их тестирования на мобильном устройстве, я обнаружил, что звуки скрипят, шумят, в общем, совсем не такие классные, как на компьютере. Выяснилось, что производители телефонов срезают частоты, тем самым повышая громкость звуков. Пришлось делать контроль для прослушивания звуков из Unity в реальном времени, работать с частотами, найти приемлемый вариант и применить его ко всем звукам.


Ура! На этом долгая-долгая разработка закончилась!

Релиз и ожидания дохода


В феврале 2020 пришло время релиза. Были подготовлены версии для iOS и Android, при публикации в App Store возникли небольшие трудности с аналитикой в детских приложениях. Много раз игру отклоняли, но после всех исправлений и удаления аналитики нас, наконец, опубликовали.

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

Доходы были очень низкими, первые покупки делали наши друзья и знакомые, а потом все затихло. В апреле появились активные продажи, не так много, как хотелось бы, но они были. Оказалось, мы попали в фичеринг детской категории App We Love на iPad в США, пробыли там около двух месяцев, и снова остались почти без продаж.

Долгое время пытались понять, что происходит, настраивали ASO, меняли картинки, проводили эксперименты со скидками и бесплатной раздачей, строили и проверяли гипотезы. В итоге пришли к выводу, что модель премиум в нашем случае не работает. И что сделать продукт - это одно, а вот продать его - это совсем другое. Это целая наука, которую нам еще предстоит осваивать, прежде чем взяться за продолжение нашего замечательного Jungle Town’а…

Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру Gamedev, Game Art, Unity3d, Детские игры, Игры, Начинающий разработчик, Видео, Длиннопост

На данный момент игра запущена в следующих магазинах в версиях Premium и Freemium:


App Store, Mac App Store, Apple TV, Google Play, Amazone Store, HUAWEI AppGallery.


Игра работает как на десктопных так и на мобильных платформах, есть адаптация под игровые приставки. В наших планах выпустить серию игр Jungle town для детишек. Мы очень надеемся, что результат наших трудов порадует вас и ваших детей.


Продолжение следует!

Показать полностью 17 4
153

Анонс The Therapy, тот самый хоррор на Unity

Анонс The Therapy, тот самый хоррор на Unity Unity, Unity3d, Инди, Indiedev, Gamedev, Survival Horror, Ужасы, Blender, Видео


4 месяца назад я впервые написал пост на пикабу, тогда я начал рассказывать о разработке своего собственного проекта. Показывать мне было особо нечего на тот момент поэтому реакция понятна, тогда даже кто-то посмеялся: "Хоррор на Юнити? Вы не перебарщивайте с жестью!", а кто-то же просто говорил, что мой треп ни о чем, и вообще "сперва добейся".

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

Надеюсь в этот раз реакция сообщества будет более благосклонной. Немного об игре.
Движок Unity 2019.4.4.f1
Ассеты и анимации создается в Blender, текстурятся в Substance painter.

Синопсис можно прочитать в описание к видео, но на всякий случай продублирую его сюда:

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

Релиз запланирован на следующий год на PC."

Спасибо за уделенное время, если у вас есть какие-либо вопросы может спрашивать, буду рад любой обратной связи!

Показать полностью
39

Говорящие предметы или как я решил отказаться от текста в игре с глубоким сюжетом

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

Коротко об игре.

Говорящие предметы или как я решил отказаться от текста в игре с глубоким сюжетом Gamedev, Indiedev, Unity, Unity3d, Игры, Разработчики игр, Видео, Длиннопост

Cyberwinter - это изометрический Serious Sam, но с сюжетом, элементами выживания и крафта (звучит как бред сумасшедшего, но я ведь инди и мне никто не платит за здравомыслие во время разработки). На неизвестной планете с максимально недружелюбным климатом вам предстоит сразиться с монстрами изо льда, используя ручной огнемет, хитроумный ловушки и различную боевую технику, от классических танков до внушительного размера боевых роботов.


Мне всегда нравились массовые побоища в Serious Sam. Я испытывал какой-то невероятный восторг, когда стена за стеной монстры неслись на меня, а я готовился дать отпор. Но все же в этой игре в перерывах между боями мне не хватало глубины (мне лично, чисто субъективно). И вот я делаю то, во что с удовольствием буду играть.


О сюжете.


Долгое время я увлекался написанием текстовых квестов (что-то вроде рассказов с сюжетными развилками). Увлекался достаточно плотно, настолько плотно, что в какой-то момент меня буквально тошнило от одной только мысли о писательской деятельности. Так от фаната максимально детальных и объемных текстов в играх я переквалифицировался в рьяного "текстоненавистника".


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


Форма подачи сюжета.


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


В ловушке (пример).


Первая глава моей истории носит рабочий заголовок "В ловушке". На старте игры персонаж игрока появляется рядом с космическим кораблем на снежной равнине. Трап судна опущен и, скорее всего, привлечет внимание большей части игроков. Оказавшись возле трапа, игрок нажимает кнопку (руководствуясь подсказками), персонаж поднимается на борт корабля и пытается покинуть планету. Сначала, кажется, что все идет как нужно, двигатели нагреваются, судно поднимается над землей, но внезапно из одного из двигателей вырываются клубы дыма и корабль возвращается в первичное состояние на поверхность. Персонаж покидает судно. Так через взаимодействие с игровым объектом я пытался сказать, как рассказчик, что корабль сломан и тебе придется какое-то время оставаться здесь, возможно, стоит подумать над ремонтом судна.

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

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

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

А что вы думаете о подобной форме подачи сюжета?

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

Планирую до нового года выпустить демку и обкатать баги. Если будет желание, прошу добавить игру в вишлист и поучаствовать в тестировании. Страница игры в Steam: https://store.steampowered.com/app/1425030/Cyberwinter/

Надеюсь, вам было интересно. Всем спасибо за внимание и хорошего вам инди!)

Показать полностью 1
45

Романтика разработки RTS Часть 2 (Новая графика)

Я начал писать вторую часть сразу после первой части. Но потом занимался релизом игры, а после релиза 3 месяца очень активно пилил недостающие фичи.


Все про игру есть в ВК - https://vk.com/abksgn
Ссылка на GooglePlay - SiegeUp!

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

Пожалуй, еще сразу покажу трейлер, над которым я очень заморочился. Он отражает идею игры.

Почему же я решил менять графику? Причин несколько:

1. Игра выглядела блекло и не выделялась, выглядела второсортно

2. Графика далека от трендов мобильного рынка

3. Трудно найти ассеты, попадающие в стиль


Поэтому, я решил пойти путем инди и делать что-то low-poly. Но тогда это была лишь идея, я не был уверен что буду вообще продолжать разработку.


В конце 2018 года мы с женой переехали в Минск, для работы. Я устроился в Wargaming программистом движка WoT Blitz. И на какое-то время забросил свою игру, погрузившись с головой в новую работу.


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

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

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

Потом под стиль зданий я нашел готовый пак юнитов в AssetStore за ~20$ . Пак удобен тем, что можно комбинируя разное оружие, головы и тела, получать уникальных юнитов.

Когда я заменил юнитов и здания в игре, сначала получилось как-то не очень.

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

Тут у нас используется Standard PBR шейдер и стандартный террайн, до релиза еще 1 год и 3 месяца. Оптимизации нет, на телефоне около. 20 FPS вообще без юнитов на сцене.


Пол года я в основном совершенствовал графику, рисовал домики, работал вяло. Параллельно я пописывал свой игровой движок и сделал генератор рефлексии для C++.


Важным прорывом был переход от enum к использованию guid префабов для сохранения и загрузки юнитов. Этот же механизм позволил привязывать иконки к любым префабам игровых объектов и автоматически рендерить иконки.

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

К лету 2019 ситуация следующая:

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

2. Все иконки юнитов и домов генерируются автоматически

3. Я не смог найти надежной информации, но на сколько я помню, туториал тоже появился где-то весной 2019 года


Этот скриншот долго украшал группу ВК, так как выглядел наиболее прилично

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

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

В отпуск я поехал на малую родину в "поселок городского типа Морозовск" и там на волне вдохновения сделал следующий рывок в разработке. Во первых, появилась идея заменить террайн на воксели. Первый прототип выглядел так:

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

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

Примерно в то же время я занялся оптимизацией и отказался от использования стандартных коллайдеров для поиска пересечений объектов и полностью отключил симуляцию в настройках проекта. Хорошо помню, как на волне вдохновения от поездки выкидывал физику отовсюду, пока ждал ночной рейс из Ростова-на-Дону в Минск.

На тот момент удалось добиться стабильного FPS при ~300 юнитах на телефоне. После дальнейших оптимизаций, сейчас лимит около 600 юнитов. Однако, я не собираюсь останавливаться на достигнутом, миллионы юнитов на экране в Казаках и толпы мобов в Diplomacy is Not An Option не оставляют меня в покое ... Я планирую завезти Animation Instancing и Brust со временем, использовать Jobs для поиска столкновений.


Я продолжил заниматься графикой.

Эффектов в игре не много:
1. Мультяшные тени

2. Пенка у воды

3. Облака


На облака меня вдохновили две игры, Civilization V и Egypt: Old Kingdom. У меня облака это просто Шум Перлина с небольшим скроллингом, ничего особого.

Про тени пожалуй нужно писать отдельную статью, но они не отражают форму объекта, поэтому очень шустро работают. Пена на воде по сути тоже тени, просто на воде другой шейдер.

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

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

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

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

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


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

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

Примерно с ноября 2019 года я начал делать первые 5 демонстрационных уровней. Эти уровни должны были отобразить прогресс игрока с самого начала до самого конца. Т.е. последний уровень - был последним в игре. Сейчас в игре 20 уровней. Всего планируется 25.

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

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

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

Еще долго оставалась проблема с тем, что тени не показывались под юнитами на стенах. 18 апреля 2020 года эта проблема и был сделан этот скриншот. С этих пор графика не менялась.
На скриншоте есть абсолютно все аспекты игры и ее графики, так что я считаю его показательным.

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

Игра появилась в GooglePlay 31 мая 2020 года. Однако, на релизе работа не закончилась, я продолжаю делать обновления каждые пару недель и исправлять ошибки. Когда все миссии будут готовы, планирую релиз на iOS. Надеюсь, там игроки тоже оценят игру.


Я собираюсь сделать еще одну часть, про фичи, которые были добавлены с релиза. Когда ее ждать даже сам не знаю. Может скоро, может нет. :)


Буду рад критике и фидбеку! Спасибо! :)

Показать полностью 10
28

ТЬМА ПОГЛОТИЛА ВАС - переделываем мобильный платформер под PC

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

Многие посоветовали мне идти с данным проектом на площадку компании Valve, так как игры подобного рода намного лучше заходят именно на обычных пк.

Сегодня я расскажу о том, какие изменения я начал вносить в проект для запуска в стиме.

ТЬМА ПОГЛОТИЛА ВАС - переделываем мобильный платформер под PC Gamedev, Разработка, Инди, Игры, Компьютерные игры, Unity, Unity3d, История создания, История создания игры, Видео, Длиннопост

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

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

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

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

Сделать данный эффект в своем проекте достаточно просто, так как он входит в стандартный пакет PostFX эффектов для Unity и имеет простую документацию.Если это вас заинтересовало, то вы можете установить его в самом Unity->Window->PackageManager->PostProcessing.

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

Я решил исправить данную проблему с помощью эффекта Color Grading всё того же PostProcessing пакета. Подкрутив пару ползунков я увеличил контрастность картинки и изменил температуру в пользу теплых тонов. Хоть действие игры и происходит в тёмном подземелье, всё же хочется чтоб глазам игрока было приятно.

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

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

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

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

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

Показать полностью 5
75

Процедурная анимация движения персонажа

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


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

Ссыли на наработки по игре:

https://twitter.com/CGAleksey

https://www.instagram.com/cgaleksey


Чем не угодили mocap - анимации:

1) нужно искать наиболее подходящие анимации

2) нужно много анимаций

3) визуально анимации должны сочетаться


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


Можно брать готовые анимации с https://www.mixamo.com но есть НО:

1) анимации неуникальны

2) все же урезаный набор анимаций


Побираясь, как бездомный в чьем-то ведре, в поисках нужных анимаций в течении недели я собрал некого Франкенштейна. Именно Франкенштейна потому, что анимаций надыбал отовсюду. Ходил персонаж как офисный работник, крался как эльф 80-го уровня, приседал как человек-паук. Шучу, все было не так уж и ужасно, конечно, для обывателя может и пойдет, а вот меня все же неустраивало разношерстность анимаций. Хотя блендинг и прочие процедурные фишки сильно улучшали дело... Да и ноги не прилипали к земле как надо. Меня это жутко раздражает, когда анимация персонажа не на 100% соответствует тому, что он делает, ноги проходят сквозь пол, руки сквозь стены... ну вы поняли, 21-й век как никак.


Что важно для анимации персонажа: нужно передать ощущение того как персонаж передвигается с учетом физики. Короче, аимация нужна процедурная. Это крайне важно для нашего 3D паззла от первого лица.


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


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


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


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

Отлично, цепляем все к боди, еще немного IK и получаем что-то типа (одно из приближений):

Внимание на лодыжку ^. C ней вечно были проблеммы. Дело в том, что наш робот сделан инженерами-конструкторами и соединения должны гнуться строго по оси и никак иначе. Хотя это далеко не последний вариант робота, но в целом все примерно так. (Спойлер: соединение ложыжки мы все же переделали. Инженеры поставили его на 3 гидропривода, что дало нужное число степеней свободы).



Далее используем наш ИИ для ноги. Не зря же нога у нас обучалась ходить сама по себе без тела XD


Подключаем ИИ к ногам и говорим им болтаться:

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

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

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

Здесь экспериментирую с тем как робота придавливает плита. Робот должен корректно анимировать позицию своего тела:

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


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

В тестах использовалась модель-аналог робота Федора. Извините, это неточная копия. Чертежей не было, собрали "на глаз" XD

Показать полностью 6
56

Как сделать турбо-тоннель эффект в Unity с помощью Particle System

Я не знаю, как назвать такой эффект: дыра, пещера, турбо-тоннель, wormhole или, может, пищевод, но результат выглядит так:

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Для реализации этого эффекта подойдёт практически любой игровой движок: мой первый вариант был сделан ещё на флеше. Здесь же расскажу на примере Unity (Version 2019.2.4f1).

Я добавил такой эффект во вступительном ролике и тизере своей игры про атаку вирусов на иммунную систему «Listeria Wars».

ПОШАГОВАЯ РЕАЛИЗАЦИЯ


Создание сцены


Я использовал 2D темплейт при создании проекта, но можно использовать и 3D. В любом случае понадобится ортографическая проекция в настройках камеры и сплошной чёрный фон.

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Создание материала


Для Particle System понадобится материал со спрайтом тоннеля. Я нарисовал вот такую картинку, не особо заморачиваясь, так как эффект динамичный и мало кто успеет оценить вашу невероятную детализацию. Но всё, конечно, на ваш вкус. Изначально спрайт был красный, но для динамического цвета стоит перевести его в черно-белый режим.

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Закидываем наш спрайт в папку для спрайтов в Assets и создаём новый материал Tunnel Wall (создаём папку Materials, по ней кликаем правой кнопкой мыши → Create → Material). В настройках выбираем шейдер Mobile/Particles/Alpha Blended (в старых версиях Unity Particle/Additive). Затем в Particle Texture кликаем по нашему спрайту тоннеля.

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Добавление основной Particle System


Добавляем в сцену пустой объект и называем Tunnel. В него мы будем помещать все необходимые партиклы и контроллеры. Кликаем правой кнопкой мыши и выбираем Effects → Particle System, который назовём Tunnel Wall по аналогии с именем спрайта. Начинается самое интересное! Настройка и эксперименты.


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


Renderer

* Material: Tunnel Wall;

* Sort Mode: Oldest in Front;

* Max Particle Size: 5 (для возможности увеличения спрайта на размер больше, чем на пол экрана, где 5 — это разрешение экрана * 5).


Основные (Появляются при клике на хедер настроек, если скрыты)

* Start Lifetime 2.5 (Время жизни партикла, так же определяет скорость увеличения);

* Start Speed: 0 (Скорость не нужна);

* Start Size: 100 (Зависит от размера спрайта, выбираем на глаз, регулируем вместе с Size over Lifetime);

* Start Rotation: от 0 до 360 (Выбираем Random Between Two Constants, крутим партиклы как хотим);

* Start Color: Выбираем на вкус, если спрайт Tunnel Wall чёрно-белый. Осторожно, со слегка оранжевым цветом турбо тоннель рискует превратиться в задний проход;

* Gravity modifier: 0.02 (Партиклы будут слегка падать, задаём немного динамики в движении);

* Simulation Space: World (Мы будем двигать точку создания партиклов, чтобы не перемещалась вся конструкция, ставим World);

* Max Particles: 10 (Смотрим итоговое количество партиклов в панели Particle Effect и устанавливаем столько же).


Emission: Rate over Lifetime: 4 (на вкус)


Shape (форма, которая спавнит партиклы)

* Shape: Circle;

* Radius: 0.05 (Чем меньше радиус, тем более ровными получаются стенки. Выбираем на вкус).


Color over Lifetime

* Я выставил такие настройки для плавного появления и менее плавного ухода

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Size over Lifetime

* Размер должен увеличиваться примерно по экспоненте, но не с самого нуля

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Результат на текущий момент

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Другие партиклы


По аналогии я добавил другие частицы в виде клеток и вен. Расписывать подробно не буду, так как работу я проделал примерно аналогичную — настройки отличались лишь слегка. Следует учесть, что частицы должны быть поверх стен. Для этого необходимо задать Order in Layer в Renderer. Ещё я использовал Velocity over Lifetime, с этим тоже можно поиграться. Ну и добавил виньетку. Получилось так:

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Немного динамики


Простым перемещением объекта Tunnel мы получим нелинейный тоннель. Добавим компонент Mover к Tunnel и удивимся результату

using UnityEngine;
public class Mover: MonoBehaviour {
public float rangeX = 2;
float rangeY = 1.5f;
public float timeDelimiterX = 4f;
public float timeDelimiterY = 3f;
void Update() {
transform.position = new Vector3(
Mathf.SmoothStep(-rangeX, rangeX, Mathf.PingPong(Time.time / timeDelimiterX, 1)),
Mathf.SmoothStep(-rangeY, rangeY, Mathf.PingPong(Time.time / timeDelimiterY, 1)),
0
);
}
}
Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Так же в коде можно менять каждый из параметров. Цвет, плавное вращение, скорость, да всё что угодно. Вот пример динамического света. Добавляем компонент и прикручиваем наши партиклы к аргументам.

using UnityEngine;
public class Colorizer: MonoBehaviour {
public ParticleSystem tunnelWall;
public ParticleSystem cellBig;
public ParticleSystem cellSmall;
public ParticleSystem cellVessel;
void Update() {
Color color = new Color(
Mathf.SmoothStep(1, 0.5f, Mathf.PingPong(Time.time / 10f, 1)),
Mathf.SmoothStep(0, 1, Mathf.PingPong(Time.time / 15f, 1)),
Mathf.SmoothStep(0, 1, Mathf.PingPong(Time.time / 5f, 1))
);
var tunnelWallMainSettings = tunnelWall.main;
tunnelWallMainSettings.startColor = color;
var cellBigMainSettings = cellBig.main;
cellBigMainSettings.startColor = color;
var cellSmallMainSettings = cellSmall.main;
cellSmallMainSettings.startColor = color;
var cellVesselMainSettings = cellVessel.main;
cellVesselMainSettings.startColor = color;
}
}
Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Залипательно!


Весь код и ассеты тут: Github


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


Страница игры в Steam: https://store.steampowered.com/app/1183010/Listeria_Wars/

Добавляйте игру в вишлисты!

Показать полностью 9
145

Туториалы по FX в Unreal Engine 4

Туториалы по FX в Unreal Engine 4 Unreal Engine 4, Ue, VFX, Видеоуроки, Визуальные эффекты, YouTube, Gamedev, Туториал

Представляю вашему вниманию серию видеоуроков по визуальным эффектам в игровом движке Unreal Engine 4. Уроки без лишней воды покажут основы производства эффектов в UE4 (желательно хотя бы минимально ориентироваться в движке). На канале не только уроки по движку, но и по видеопроизводству: монтаж, риггинг, моушен дизайн, анимация персонажей. В данный момент в производстве находится 2 сезон видеоуроков, а также перевод некоторых на английский язык. Видео прикреплять не могу, так как рейтинг не тот, поэтому чисто ссылками на ютуб.

Введение в FX в Unreal Engine 4


Экспорт эффектов из AE в UE4


Создание простого эффекта в UE4

Взрывы в UE4

Маззл флеши в UE4

Приёмы и хитрости при создании эфектов

Огненное торнадо в UE4

Лазеры и параметры в UE4

Туториалы по FX в Unreal Engine 4 Unreal Engine 4, Ue, VFX, Видеоуроки, Визуальные эффекты, YouTube, Gamedev, Туториал
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: