TGViewer
Channel Public Channel
Ленивый геймдев

Ленивый геймдев

@lazygamedev

Авторский блог
Subscribers
296
Photos
68
Videos
36
Links
24
Recent Posts 20 shown
Post #139 534
Это пивот Вадика.

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

Какой порядок выбрал, как думаете?

Еще немного мыслей.
Когда создаешь меш, ты присваиваешь его меш-фильтру объекта, который находится в нулевых координатах, что, по сути, является пивотом объекта. Так как объект скейлится относительно пивота, а пивот не находится в центре объекта, нормально анимировать скейл я не могу (а хотелось бы, чтобы осколки слегка уменьшались при падении). Пришлось каждую точку смещать относительно центра в нулевые координаты, а потом возвращать весь объект обратно к центру.
  • 👍 8
  • 🔥 5
Post #138 443
Конвейерная лента.

Наверное, самое неприятное слово, которое можно использовать в проекте — conveyor. Convoyer, conveyer, conveer — я ни разу его не написал правильно с первого раза. Хотя можно же было просто Belt.

А по поводу визуала я пока думаю.
  • 🔥 14
Post #137 478
Грязный шейдер.

Полям задаются рандомные значения на старте игры. Таким образом получаем участки с уникальной формой.
(почти уникальной)
  • 🔥 10
Post #136 445
Тыдыщ!
  • ⚡ 15
  • 🆒 4
  • 😍 3
Post #135 522
Добавляю в редактор уровней новое препятствие.

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

Сможете угадать, что это будет?
  • ⚡ 6
  • ❤‍🔥 1
  • 🔥 1
Post #134 515
Небольшой видосик «до/после».

Никогда не думал, что отрисовать лазер на светлом фоне будет так непросто.
  • 🔥 15
  • ❤‍🔥 5
  • 💅 2
Post #133 450
В продолжение предыдущего поста, делюсь еще бошочками.
  • ❤‍🔥 8
  • 🆒 3
Post #132 404
Обновленный дизайн персонажа.

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

Сначала набросал форму в фш, затем более осмысленно доработал в иллюстраторе. После скорректировал пропорции в блендере, собрал модель в юньке и снова возвращался в блендер, чтобы доработать скелет, длину и форму конечностей.
  • 🔥 10
Post #131 485
Наткнулся на нарезку из видео со стримов, где создатель игры Braid на протяжении 4 минут грубо отвечает своим зрителям.

Это вдвойне смешно, если включить яндексовый автопереводчик.
  • 🐳 4
  • 🌚 3
  • 🤣 2
Post #130 449
По шарам.

На простом примере можно увидеть как, при помощи бизьешки, можно имитировать массу объекта.

Все, конечно, звучит круче, чем есть на самом деле.
  • 🌭 5
  • ⚡ 4
  • 🍓 2
  • 🍌 1
  • 🆒 1
  • 👾 1
Post #129 404
По обрывам.

Напоминаю, что есть участки которые генерируются одним мэшом (NotCliffCut), а есть участки которые генерируются множеством отдельных мэшок (CliffCut). Все эти участки должны между собой ровно стыковаться так как теперь они имеют "рваную" форму. Можно было ограничится ровными обрывами как раньше, но меня это не устраивало.

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

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

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

private void GenerateCliffMesh(Vector3[] points, int rows, (Vector3[], Vector3[]) sharedOffsets)


Я сильно туплю когда работаю с массивами, и сумел подобрать правильные индексы лишь методом тыка, пока все не состыковалось.

В итоге — очень маленькая деталь на работу над которой ушло очень много времени и нервов.
  • 🔥 5
  • ⚡ 2
Post #128 367
Хочу поделиться классным видео, где чувак рассказывает как он работал над системой процедурной анимации для Gibbon: Beyond the Trees.

Кстати классная игра! Удивительно, как на протяжении всего сюжета, ты делаешь одно и тоже действие, но это не надоедает, а даже успокаивает.
YouTube The Procedural Animation of Gibbon: Beyond the Trees - Wolfire Games Subscribe so you don't miss our next video! - https://www.youtube.com/WolfireGames?sub_confirmation=1 Try Gibbon yourself here! - http://www.gibbongame.com/ Try David's build here! - https://github.com/David20321/ProjectGibbon/releases/download/release/P…
  • ❤‍🔥 2
Post #127 370
Так, ну, во-первых, дело сделано!

Во-вторых, в праздники не мог не воспользоваться освободившимся от работы временем и занимался вот чем:

1. Расширил функционал меш-генератора, чтобы при осыпании поверхности создавался интересный узор.
2. С появлением обрывов нужно было решить, как будет выглядеть анимация падения.
3. Написал логику движения огромного камня, катящегося по уровню.
4. Написал логику лазеров. Да, мне 31 год, и в моей игре будут огромные лазеры!
5. Начал накидывать обновленный дизайн игры и в скором времени начну всё причесывать.

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

С новым годом короч! Вы чем порадуете?
  • ❤‍🔥 12
  • 🆒 2
Post #126 496
Две трети дела сделаны.

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

Хорошего вечера ❤️
  • 👍 5
Post #124 570
Нуу, треть дела сделано.

Редактор работает. Меш генератор игнорирует заданные точки и разбивает все на отдельные объекты. Второй этап это уже работа с зоной обрыва. Ну и, как видите, персонаж еще не знает, что его ждет.
  • 🔥 9
Post #123 535
А так должен был выглядеть атлас для чудесных коробочек.

Трехочковый в корзину!
Post #122 504
Начал работать над редактором уровней.

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

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

Не сразу, но все таки пришел вот к какому способу выделять и редактировать точки. Я размещаю объекты в виде пустых боксов (cliff). У юнити есть удобная структура Bounds метод которой проверяет находится ли определенный вектор внутри заданных позиций и размеров. При наличии таких векторов я задаю тип точки и передаю его в словарь в качестве значения.


private void SetCliffBounds()
{
if (_cliffs?.Count == 0) return;

foreach (var cliff in _cliffs)
{
Bounds bounds = new Bounds(cliff.position, cliff.localScale);

for (int i = 0; i < _path.path.localPoints.Length; i++)
{
var point = GetPoint(i);
if(bounds.Contains(point)) Points[point] = PointType.Cliff;
}
}
}


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

Если получится сделать так как я представляю это в голове, то будет улет. Я думаю получится (к старости).
  • 👍 6
  • 🤯 1
Post #121 348
Собрал все с актуальными шейдерами.

Для шторки временно использую старую кнопку. Частицы под ногами тоже пока добавлена в качестве заготовки. Не удержался и добавил стартовую анимацию коробочам.

И я уже приступил к созданию препятствий.

Давно не общались. Расскажите чем вы занимаетесь нынче?
  • 👍 7
  • 🍾 4
Post #120 500
Искал способ имитировать рисованный контур у объектов.

Хочу оставить элементы геометричными и простыми, но что бы в них была жизнь что ли.

Раньше я использовал кастомный аниматор для юайки (если помните тут). Теперь же все работает на уровне шейдера.
  • ❤‍🔥 6
  • 🔥 1
Post #119 478
Пришлось доработать генератор мэшки о котором я писал тут. Теперь платформа по которой бежит персонаж содержит в себе 2 uv канала. Первый для основной текстуры дерева, а второй для лайтмапки которая имитирует подсветку верхнего тиснения платформы.

Задача была сделать так что бы лайтмапка повторяла форму мешки, а основная текстура прожектилась поверх, не изменяя форму. Решил эту проблему следующим образом. Сначала создается ровный мэш, используя X координаты точек кривой. Таким образом, получаем ровный плейн на который прожектится первая uv. Далее смещаем все точки уже по Y координатам, подгоняя под форму кривой, и прожектим uv2 для основной текстуры. Уже в шейдере спокойно комбинируем текстуру и лайтмапку.
  • 👍 5
  • ⚡ 1
  • ❤‍🔥 1
Older posts →

About this channel

How can I read @lazygamedev without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Ленивый геймдев: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Ленивый геймдев have?
Ленивый геймдев (@lazygamedev) has 296 subscribers on Telegram, refreshed roughly every 30 minutes.
Does Ленивый геймдев know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →