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

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

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

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

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

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

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

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Godot

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

Gamedev Godot Engine Инди Разработка Без звука Инди игра YouTube Все
204 поста сначала свежее
34
user4740118
user4740118
1 год назад

Хочу показать вам свою анимацию "блин" сделанную в программе Endorphin 2.5.2⁠⁠

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

Я создал эту анимацию задав только ключевые позы:

Хочу показать вам свою анимацию "блин" сделанную в программе Endorphin 2.5.2 Анимация, Искусственный интеллект, Разработка, Разработчики, Разработчики игр, Технологии, Игры, Компьютерные игры, Компьютерная графика, Unity, Unreal Engine, Unreal Engine 4, Unreal Engine 5, Программное обеспечение, Программа, Нейронные сети, 3D, 3D графика, Неудача, Godot, Видео, Длиннопост, Без звука
Хочу показать вам свою анимацию "блин" сделанную в программе Endorphin 2.5.2 Анимация, Искусственный интеллект, Разработка, Разработчики, Разработчики игр, Технологии, Игры, Компьютерные игры, Компьютерная графика, Unity, Unreal Engine, Unreal Engine 4, Unreal Engine 5, Программное обеспечение, Программа, Нейронные сети, 3D, 3D графика, Неудача, Godot, Видео, Длиннопост, Без звука
Хочу показать вам свою анимацию "блин" сделанную в программе Endorphin 2.5.2 Анимация, Искусственный интеллект, Разработка, Разработчики, Разработчики игр, Технологии, Игры, Компьютерные игры, Компьютерная графика, Unity, Unreal Engine, Unreal Engine 4, Unreal Engine 5, Программное обеспечение, Программа, Нейронные сети, 3D, 3D графика, Неудача, Godot, Видео, Длиннопост, Без звука

Можно добавлять окружение с которым будут взаимодействовать ваши персонажи:

Все анимации и их окружение можно сохранить и использовать в игре или в создании мультиков и фильмов.

Длина записи анимации 5 тысяч кадров.

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

Основу ходьбы вы можете увидеть слева.

Поза персонажа была этой:

Хочу показать вам свою анимацию "блин" сделанную в программе Endorphin 2.5.2 Анимация, Искусственный интеллект, Разработка, Разработчики, Разработчики игр, Технологии, Игры, Компьютерные игры, Компьютерная графика, Unity, Unreal Engine, Unreal Engine 4, Unreal Engine 5, Программное обеспечение, Программа, Нейронные сети, 3D, 3D графика, Неудача, Godot, Видео, Длиннопост, Без звука

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

Можно сделать так чтобы симуляция плавно перешла в анимацию с помощь события перехода:

Хочу показать вам свою анимацию "блин" сделанную в программе Endorphin 2.5.2 Анимация, Искусственный интеллект, Разработка, Разработчики, Разработчики игр, Технологии, Игры, Компьютерные игры, Компьютерная графика, Unity, Unreal Engine, Unreal Engine 4, Unreal Engine 5, Программное обеспечение, Программа, Нейронные сети, 3D, 3D графика, Неудача, Godot, Видео, Длиннопост, Без звука

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

Хочу показать вам свою анимацию "блин" сделанную в программе Endorphin 2.5.2 Анимация, Искусственный интеллект, Разработка, Разработчики, Разработчики игр, Технологии, Игры, Компьютерные игры, Компьютерная графика, Unity, Unreal Engine, Unreal Engine 4, Unreal Engine 5, Программное обеспечение, Программа, Нейронные сети, 3D, 3D графика, Неудача, Godot, Видео, Длиннопост, Без звука

Можно толкнуть персонажа используя стрелочку также в панели инструментов:

Хочу показать вам свою анимацию "блин" сделанную в программе Endorphin 2.5.2 Анимация, Искусственный интеллект, Разработка, Разработчики, Разработчики игр, Технологии, Игры, Компьютерные игры, Компьютерная графика, Unity, Unreal Engine, Unreal Engine 4, Unreal Engine 5, Программное обеспечение, Программа, Нейронные сети, 3D, 3D графика, Неудача, Godot, Видео, Длиннопост, Без звука

С помощью значка замочка можно ограничит или полностью остановить части тела персонажа:

Хочу показать вам свою анимацию "блин" сделанную в программе Endorphin 2.5.2 Анимация, Искусственный интеллект, Разработка, Разработчики, Разработчики игр, Технологии, Игры, Компьютерные игры, Компьютерная графика, Unity, Unreal Engine, Unreal Engine 4, Unreal Engine 5, Программное обеспечение, Программа, Нейронные сети, 3D, 3D графика, Неудача, Godot, Видео, Длиннопост, Без звука

А чтобы создавать объекты нужно использовать фигуры на панели иструментов серые фигуры поддаются законам физики в отличие от синих фигур которые статичны:

Хочу показать вам свою анимацию "блин" сделанную в программе Endorphin 2.5.2 Анимация, Искусственный интеллект, Разработка, Разработчики, Разработчики игр, Технологии, Игры, Компьютерные игры, Компьютерная графика, Unity, Unreal Engine, Unreal Engine 4, Unreal Engine 5, Программное обеспечение, Программа, Нейронные сети, 3D, 3D графика, Неудача, Godot, Видео, Длиннопост, Без звука

Можно изменять гравитацию используя пункт который так и называется и находится в правом углу экрана:

Хочу показать вам свою анимацию "блин" сделанную в программе Endorphin 2.5.2 Анимация, Искусственный интеллект, Разработка, Разработчики, Разработчики игр, Технологии, Игры, Компьютерные игры, Компьютерная графика, Unity, Unreal Engine, Unreal Engine 4, Unreal Engine 5, Программное обеспечение, Программа, Нейронные сети, 3D, 3D графика, Неудача, Godot, Видео, Длиннопост, Без звука

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

В этой программе можно поиздеваться над персонажами:

Сделав например из этого:

Это:

Внутри программы есть наглядные туториалы.

Программа Endorphin 2.5.2 использовалась фильмах и видеоиграх, таких как Troy , Poseidon и Tekken 5.

В основе программы лежит технология euphoria которая вам наверняка известна по серии игр GTA и Star Wars - The Force Unleashed.

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

Бесплатно скачать торрент Endorphin 2.5.2 можно по этим ссылкам:

Яндекс диск: https://disk.yandex.ru/d/rz13Hk8uAiOv1A

Google Диск: https://drive.google.com/file/d/18-ASGmz0c3dRnoE6FOkhksg9ZZT...

Показать полностью 10 7
Анимация Искусственный интеллект Разработка Разработчики Разработчики игр Технологии Игры Компьютерные игры Компьютерная графика Unity Unreal Engine Unreal Engine 4 Unreal Engine 5 Программное обеспечение Программа Нейронные сети 3D 3D графика Неудача Godot Видео Длиннопост Без звука
9
22
GoblinCave
GoblinCave
1 год назад
Лига Разработчиков Видеоигр

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика⁠⁠

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

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

● Создание сцены с персонажем:

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

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Как выглядит узел "CharacterBody2D"

● Визуальное изображение персонажа:

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

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Узел "Sprite" -> Texture -> Быстро загрузить

● Настройка зоны столкновения:

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

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Узел "CollisionShape2D" -> Shape -> Новый RectangleShape2D

● Начальные данные для физики и управления:

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

Чтобы создать константу мы пишем: const название_константы = значение

Переменные же создаются по другому: var название_переменной = значение

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

speed и acceleration - от этих значений будет зависеть скорость передвижения по оси X (влево-вправо)

jump_velocity - это значение влияющее на высоту прыжка. Ось Y в Godot перевернута с ног на голову и отрицательное значение означает вверх.

friction - значение влияющее на скорость остановки при прекращении передвижения.

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Так выглядят наши константы в коде

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

var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")

● Общая функция для управления персонажем:

Задав исходные данные мы можем приступать к настройкам функций нашего персонажа. Для этого мы пишем стандартную функцию Godot:

func _physics_process(delta):

Для тех кто не знает - эта функция вызывается перед каждым физическим кадром, который привязан к физическому fps, он по умолчанию равен 60 раз в секунду.

var input_axis = Input.get_axis("ui_left","ui_right")

Get_axis - это функция которая присваивает переменной одно из двух значений при нажатии одной из двух кнопок. Первое значение равно -1 и задается при нажатии клавиши "влево". Второе же равно 1 и задается при нажатии клавиши "вправо". Если на момент кадра не нажата ни одна из этих кнопок, значение равно 0. Это позволяет нам определить нужное направление для изменения координат персонажа.

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Влево = -1 | Вправо = 1 | Стоим на месте = 0

● Движение по оси X (влево-вправо), создаем новую функцию:

handle_acceleration (input_axis, delta)

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

if input_axis !=0:

Если данное условие выполнено, то мы совершаем перемещение в заданном направлении. Для этого используется функция move_toward.

velocity.x = move_toward(velocity.x, speed * input_axis, acceleration * delta)

velocity.x - это переменная отвечающая за перемещение по оси X.

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

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

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

move_toward ( начальная точка, точка прибытия, расстояние шага за один кадр )

▸ А где тормоза то !?

● Как сделать остановку?

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

Копируем нашу прошлую функцию и переименовываем ее:

handle_friction (input_axis, delta):

Так же меняем заданное условие, input_axis должен быть равен нулю. Главное помнить, что знак равенства при сравнении выглядит вот так "==".

if input_axis == 0:

В функции move_toward заменяем значения. Первое остается прежним, на втором ставим ноль, а на третьем стираем acceleration и пишем friction. Все это в сумме обеспечит нам быструю остановку.

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Функции обратные друг другу

● Движение по оси Y (прыжок, гравитация), создаем новую функцию:

aplay_gravity(delta):

Если мы не на земле, то бишь в воздухе - нас должно тянуть вниз.

if not is_on_floor():

velocity.y += gravity * delta

Ставим именно "+=", так как это сделает плавное падение с нарастающим ускорением. Не забудьте умножить на delta, иначе все произойдет за долю секонды.

● Следующая функция для прыжка:

handle_jump(delta):

Для нас важны два условия - нахождение на земле в момент прыжка и нажатие нужной клавиши.

if is_on_floor() and Input.is_action_just_pressed("ui_accept"):

Если данное условие соблюдено мы приравниваем параметр оси Y к значению высоты прыжка.

velocity.y = jump_velocity

Добавляем эти функции под physics_process, а после переходим на сцену "world". Туда из общего списка ресурсов перетаскиваем сцену "player".

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

.tscn - это формат сцены в Godot

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Как выглядит наш блок с функциями

● Что у нас получилось в итоге?

✓ Если вы нажимаем клавишу влево или вправо - персонаж двигается в выбранном направлении.

✓ Если ни одна из клавиш направления не нажата - мы останавливаемся.

✓ Если мы находимся в воздухе - нас тянет вниз с каждой секундой все сильнее.

✓ Если находясь на земле, мы жмем прыжок - нас подкинет вверх.

▸ Оно живое!

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

✓ Зеленые новички - крепитесь и подписывайтесь, скоро новая статья. На очереди две темы - "анимация персонажа" или "двойные прыжки и прыжки от стены".

✓ Опытные шаманы - запасайтесь успокоительным, ибо дальше будет еще куча попыток освоить gamedev.

✓ Ну и все кто имеет свое мнение, поддержку или усмешку - пишите комменты!

Показать полностью 9 2
[моё] Gamedev Инди игра Разработка Программирование Программист Инди Unity Unreal Engine Python IT Гайд Игры Godot Godot Engine Платформер Геймеры Видео Без звука Длиннопост
14
4
nklbdev
1 год назад
Серия Importality: импорт графики и анимации в Godot 4.x

Importality теперь поддерживает middle- и post-import скрипты⁠⁠

Не так давно я публиковал пост про мой плагин Importality для Godot 4.x для импорта графики и анимации прямо из исходных файлов в ресурсы движка.

Importality теперь поддерживает middle- и post-import скрипты Gamedev, Разработка, Инди, Pixel Art, Анимация, Godot Engine, Godot, Полезное, Krita, Aseprite, Piskel, Indiedev, Разработчики игр

Теперь я добавил в него поддержку скриптов, которые можно внедрять в процесс импорта. Осторожно, с помощью них можно "выстрелить себе в ногу"!

Один из них (middle-import script) внедряется в середине импорта, когда данные считаны в промежуточную структуру данных. Он может ее изменять как угодно.

Второй (post-import script) внедряется перед самым сохранением готового ресурса, и позволяет изменить его, или флаги его сохранения.

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

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

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

Importality теперь поддерживает middle- и post-import скрипты Gamedev, Разработка, Инди, Pixel Art, Анимация, Godot Engine, Godot, Полезное, Krita, Aseprite, Piskel, Indiedev, Разработчики игр

Сейчас в Godot Asset Library пока опубликована предыдущая версия, но скоро я заменю ее на эту. Так же вы можете скачать плагин с GitHub.

Показать полностью 1
[моё] Gamedev Разработка Инди Pixel Art Анимация Godot Engine Godot Полезное Krita Aseprite Piskel Indiedev Разработчики игр
2
22
GoblinCave
GoblinCave
1 год назад
Лига Разработчиков Видеоигр

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты⁠⁠

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

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

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

● Узлы, сцены и прочие слова не связанные с BDSM - это интерфейс Godot 4:

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸Наглядно показываю что и где

Основа движка Godot - это узлы и их древо. Блоки могут быть самого разного назначения, от визуального изображения, до настроек звука. Сцена - это отдельная группа узлов. Она нужна чтобы структурировать элементы и не путаться. Например, можно создать отдельную сцену с узлами нашего персонажа, а после добавлять эту сцену как узел в другую.

Создадим сцену нашей карты и назовем ее World. Для этого выбираем "2D сцена" как на скрине выше. Теперь можем добавить к сцене дочерний узел, нажав на плюсик. В поиске ищем TileMap - это узел для работы с тайл-сетами будущей карты.

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

● Что такое TileMap:

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

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸Шаблон для создания тайл-сета

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

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

● Настройка рисования карты в TileMap:

В правом блоке узла TileMap вы найдете вкладку "Terrain Sets" (набор местности). В ней мы нажимаем "Добавить элемент" и в открывшемся блоке снова жмем "Добавить элемент". Теперь в центральном блоке выбираем вкладку "Рисовать" -> "Свойства рисования" - > Terrains.

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸Настройка местности

В обоих выделенных вкладках выбираем созданный нами элемент Terrain. С его помощью мы настраиваем области тайл-сета. Именно по ним Godot определяет какой кусок ставить следующим.

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸Настроенный TileMap

● Зоны столкновения для TileMap:

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

Теперь другие объекты будут видеть нашу карту и воспринимать ее как физическое препятствие.

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

● Как работает настроенный TileMap:

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸Рисуем что хотим

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

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸А вот это уже что-то похожее на элемент игры

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

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

✓ Зеленые новички - крепитесь и подписывайтесь, скоро новая статья.

✓ Опытные шаманы - запасайтесь успокоительным, ибо дальше будет еще куча попыток освоить gamedev.

✓ Ну и все кто имеет свое мнение, поддержку или усмешку - пишите комменты!

Показать полностью 9
[моё] Разработка Gamedev Инди игра Программирование Программист Godot Godot Engine Indiedev Инди Игры Android разработка Геймеры Код Текстуры Pixel Art Стратегия Unity Unreal Engine Новичок Длиннопост
0
14
nklbdev
1 год назад
Лига Разработчиков Видеоигр
Серия Importality: импорт графики и анимации в Godot 4.x

IMPORTALITY - импорт графики и анимации в Godot 4.x⁠⁠

Ох, ребята, это были трудные полгода разработки!

Importality - это аддон для Godot 4.x, содержащий набор плагинов для импорта растровой графики и анимаций из популярных форматов. Если вы замучились после каждой правки графики экспортировать её в промежуточные форматы, а потом заново настраивать импорт в Godot, то это аддон сделает это за вас!

IMPORTALITY - импорт графики и анимации в Godot 4.x Полезное, Разработка, Godot Engine, Godot, Анимация, Developer tools, Game Makers Toolkit, Gamedev, Krita, Aseprite, Piskel, GIMP, Видео, YouTube, Инди, Indiedev, Разработчики игр

Он может извлекать данные из файлов:

  • Aseprite/LibreSprite (с помощью интеграции с приложением)

  • Krita (с помощью интеграции с приложением)

  • Pencil2D (с помощью интеграции с приложением)

  • Piskel (с помощью собственного парсера)

  • Pixelorama (с помощью собственного парсера)

И импортировать их как:

  • Обычные изображения

  • Sprite Sheet (ресурс JSON без хранимого текста, но со всеми данными о спрайтах и анимациях в свойстве "data", а так же изображение-атлас рядом с ним)

  • Ресурс SpriteFrames

  • AnimatedSprite2D/3D

  • Sprite2D/3D и TextureRect, анимированные с помощью дочернего узла AnimationPlayer

А ещё он может импортировать любые другие графические форматы как обычные изображения с помощью внешних утилит командной строки. Теперь вы сможете легко управляться с файлами PaintNET (*.pdn), GIMP (*.xcf) и многими другими!

Аддон доступен на:

  • Godot Asset Library

  • GitHub

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

Показать полностью 1
[моё] Полезное Разработка Godot Engine Godot Анимация Developer tools Game Makers Toolkit Gamedev Krita Aseprite Piskel GIMP Видео YouTube Инди Indiedev Разработчики игр
0
4
Boogernator
Boogernator
1 год назад
Свидетели Godot'овы

Godot. Как живется на ЗП⁠⁠

Привет подписчикам. Было дело исполнял, просил отписаться, пара человек отписалась, но внезапно ещё подписалось. Ну немножко расскажу.

Для случайных читателей, краткий экскурс. 12 лет опыта программистом в игровой индустрии, сейчас примерно полтора-месяца работаю Junior Technical VFX Artist, сначала я прям на воодушевлении не считал себя Junior, сейчас осознаю что скорее даже Trainee. Не пройду скорее всего испытательный, но профессия мне прям нравится теперь) Буду в ней развиваться)

Что хочу сказать, Godot для 3D ну просто забудьте, это помоечная сырая помойка, все сложно, криво неудобно, пздц полный. Люблю Godot, для 2D, для прототипов идеальное, 3D нет, реферы-туторы использую для UE и Unity, ну небо и земля. VFXGraph, ShaderGraph офигенные, на Godot, ну просто базовый GradientMap, во всех редакторах есть базовая вещь, на Godot пришлось писать свой шейдер под него, а у меня всего опыта-то кот наплакал в этой сфере и просто понимаю, насколько мой шейдер выдает гавенный результат в отличии от базового инструментария в SubstanceDesigner например. Прям боль каждый день.
Картиночкой хоть разбавлю, ну вот практикуюсь рисую такие текстурки, не кистями конечно, нодами, но процесс идет, через годик прям удивитесь, гарантирую это. Это одна из текстурок, которая для эффекта EarthCrack нужна.

Godot. Как живется на ЗП Gamedev, Инди, Godot, Godot Engine, Мат, Видео, Без звука, Длиннопост

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

Godot. Как живется на ЗП Gamedev, Инди, Godot, Godot Engine, Мат, Видео, Без звука, Длиннопост

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

Согласен профи VFXер засмеет, но я нормально к критике отношусь, мне главное что базу понимать начал, сам могу и текстурку сделать и маску к ней для шейдера, а динамику потом подтюню, ну и с партиклами, да с объектом оно гармоничнее смотрится.

Что ещё сказать, ебало мне набили крепко с неделю назад, нос сломали, все лицо синеё, так что если раздражаю кого, не переживайте мне все прилетело стократ, как говорится))

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

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

Так что закончу на позитивной ноте, заниматься надо, если развиваться, учиться, практиковаться, то все получится. Верить надо в себя и возраст не причина для отмазок, мне через 3 дня 40 лет исполнится, ну вот решил сменить профиль, возможно ещё пожалею, но в любом случае буду в этом направлении двигаться, единственное что возможно с Godot на UE переключусь, ну это если для 3D.
А для инди 2D Godot топчик!!!!

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

p.s. По релизам на Яндексе, организационные моменты возникли, но Борщ как копейки приносил ожидаемо, так и приносит рублей 30 что-ли)) хотя фичеринг прошли CTR иконки адекватный, ну проверили попробовали, любопытный опыт)
Вот этот шедевр игровой индустрии, ну показательный вариант, что если в голове народился треш и кажется, что он интересен будет людям, скорее всего это не так))
https://yandex.ru/games/app/240717


Зато мы теперь сработались хоть, полноценная команда из 5 программистов, во всем есть плюсы, жаль что из-за работы теперь вообще нет времени на инди свое, но все ещё будет)
Теперь зато я уже точно решил, что следующая моя игра это будет хардкорная тактика, по выходным иногда дописываю базу, боевка аля BattleBrothers будет, логика у меня почти вся готова, движение по гексам осталось допилить, никак решиться не могу)

Пардон, что отнял время, захотелось что-то пографоманить о бытие) Всем удачи!

Показать полностью 2 1
[моё] Gamedev Инди Godot Godot Engine Мат Видео Без звука Длиннопост
5
5
GoblinCave
GoblinCave
1 год назад

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера!⁠⁠

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

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

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

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Пока что у нас есть вот это нечто...

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

Этот гад способен менять свое направление прямо в воздухе и к примеру развернутся на пол пути к пропасти. В каких то платформерах это нормально и является частью игровой механики, но у нас игрок будет СТРАДАТЬ!

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

"Игрок может двигаться по оси X (влево-вправо) только находясь на земле"

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

func handle_acceleration (input_axis, delta):

if is_on_floor() and input_axis !=0 :

velocity.x = move_toward(velocity.x, SPEED * input_axis, ACCELERATION * delta)

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

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

Казалось бы, на этом можно закончить, но есть нюанс.

Игроку нужно сначала взять хотя бы минимальный разбег в нужную сторону, чтобы избежать прыжка на одном месте. Грубо говоря, он должен сперва нажать клавишу "ВПРАВО", а уже потом "ПРОБЕЛ" иначе не сработает. Это неудобно, особенно когда нам нужно запрыгнуть на выступ находясь у стены. Дело поправимое, залазим обратно в эту же функцию и дополняем ее.

func handle_acceleration (input_axis, delta):

if is_on_floor() and input_axis !=0 :

velocity.x = move_toward(velocity.x, SPEED * input_axis, ACCELERATION * delta)

elif not is_on_floor() and input_axis != 0 and velocity.x == 0:

velocity.x = move_toward(velocity.x, SPEED * input_axis, ACCELERATION * 10 * delta)

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

Передвижение влево-вправо доступно только при нахождении на земле. Если игрок нажал сначала "ПРОБЕЛ", то произойдет прыжок на месте. Сдвинуться по оси X (влево-вправо) он уже не сможет, так как находится не на земле.

Нам нужно определить, находится ли персонаж в состоянии прыжка - это not_is_on_floor()

Раз происходит прыжок на месте, то ось X остается неизменной - это velocity.x == 0

Наша попытка передвижения вызывается нажатием клавиши направления - это input_axis !=0

Если все три условия соблюдены, то мы позволяем совершить передвижение по оси X, однако произойдет оно только один раз и только в одном из выбранных направлений. Все потому, что в следующем кадре значение velocity.x уже не будет равно нулю и данное условие перестает работать. Чтобы этот одноразовый рывок имел смысл, нам нужно увеличить значение ACCELERATION. Можем сделать для этого отдельную переменную, но я обошелся простым умножением на 10.

Что мы получили по итогу?

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

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

Самое популярное препятствие в платформерах - это пики точеные!

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Рисуем пики 16 х 16 в любом удобном графическом редакторе...

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Путь: Рендеринг - Текстуры - Default Texture Filter;

Нарисовав препятствие - загружаем его в ресурсы проекта. Создаем новую сцену "Spikes" и добавляем дочерний узел "Sprite2D". Как подцеплять к нему текстуру мы проходили в первой статье - советую почитать если еще незнаком. Чтобы наша картинка не замылилась ввиду ее пиксельного стиля - поменяем текстурный фильтр на Nearest.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Узел "Area2D" и раздел "Collision"...

Area2D - куда тебя ведать?

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

Для того, чтобы было проще понять - объясню на примере:

Слой - это область, где данный объект МОГУТ увидеть другие объекты и взаимодействовать с ним.

Маска - это область, где данный объект МОЖЕТ увидеть другие объекты и взаимодействовать с ними.

Например, мы поставим объект "StaticBody2D" из которого состоит наша карта на первый слой. "CharterBody2D" который является нашим игроком мы поместим на второй слой.

Если у "CharterBody2D" в разделе маска мы укажем второй слой вместо первого, на котором находится "StaticBody2D" - наш персонаж его просто не увидит. А это значит, что игрок просто провалится в пол.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Объект World находится на первом слое, объект Player на втором. Маска Player видит объекты лишь на втором слое.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Из-за этого зоны столкновения у объектов Player и World не взаимодействуют и мы проваливаемся вниз. 

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Если выставить у Player маску первого слоя - он начнет его видеть и взаимодействовать с ним. По этой причине мы вновь твердо стоим на поверхности.

Теперь, когда мы знаем для чего нужен данный узел - пора сделать точеные пики действительно опасными. Заходим в сцену и выбрав узел Area2D переименовываем в "HazardArea". В разделе "Collision" выставляем третий слой, а вот маску оставляем пустой. Наши пики никого не должны искать - они сами выступают объектом поиска.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Теперь переходим в сцену Spikes и нажимаем на кнопку добавления дочерней сцены. Она находится рядом с кнопкой добавления узла. Выбираем нашу сцену "HazardArea2D". Добавляем для "HazardArea2D" два дочерних узла "CollisionPolygon", определяя область столкновения.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Можно создать область для одной пики и просто скопировать ее...

Теперь мы переходим в сцену "Player" и создаем дочерний узел "Area2D", называем его "HazardDetecter". Уже к этой области привязываем дочерний"CollisionShape". В узле "HazardDetecter" выбираем раздел "Collision" и оставляем графу слоя пустой. Но в разделе маски и выбираем третий слой - именно в нем мы будем искать область опасности "HazardArea".

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост
Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Графа слоя - пустая, графа маски - выставлена на третий слой...

Осталось настроить сигналы... вы еще не знакомы с ними?

У многих узлов есть доступные сигналы и узел Area2D - не исключение. Посмотреть доступные сигналы можно в колонке справа, перейдя в раздел "Узел". Нас в первую очередь интересует сигнал "area_entered", что в переводе на человеческий означает "Обнаружена область".

В графе маска указан третий слой и именно на нем находится "HazardArea". Когда наш узел "HazardDetecter" обнаружит другой узел типа Area2D - сигнал сработает. Но что нам делать с полученным сигналом?

Сделаем простенькую систему смерти и возрождения!

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Свет, камера - мотор!

Для начала добавим камеру, которая будет следовать за нашим персонажем. В разделе "PositionSmoothing" выставим "Speed" на 5 пикселей в секунду. Эта небольшая задержка сделает движение камеры более плавным.

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

@onready var starting_position = global_position

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Теперь переходим в узел "HazardDetecter" к разделу сигналов и ищем "entered_area". Нажимаем правой кнопкой мыши, тыкаем присоединить и выбираем наш объект "Player".

Это создаст в скрипте новую функцию, под которой мы пишем всего одну строку.

global_position = starting_position

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Присоединение сигнала к узлу...

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

"Если будет обнаружена Area2D - позиция игрока вернется на стартовую"

Остается только расставить наши точеные пики по карте и мы можем смело отлетать на стартовую точку при столкновении с ними!

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Вот они слева направо - пик, кол, штык, клык и острие...

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Разбежавшись прыгну со скалы...

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Вот я был и вот я у респауна...

Остался чисто косметический момент, а именно - анимация персонажа. 2D сеты анимации вы можете легко откапать на просторах интернета, я же расскажу вам как их правильно настроить.

Заменяем узел спрайта на "AnimatedSprite2D" и в разделе "Sprite Frames" создаем новый. Перед вами откроется окно кадровой анимации, куда вы и будете загружать кадры.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост
Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Стой, прыгай и беги...

Создаем три анимации - "idle", "jump" и "run". Первые две состоят из одиночных спрайтов, так как это статичные позиции. А вот для бега я решил добавить три спрайта. В окошке с FPS мы устанавливаем частоту кадров при анимации, в нашем случае поставили 12.

Теперь переносим зажав ctrl узел "AnimatedSprite2D" в наш код в виде переменной и создаем функцию update_animation.

func update_animation (input_axis, delta):
if velocity.x == 0:
animated_sprite_2d.play("idle")
if input_axis !=0:
animated_sprite_2d.flip_h = (input_axis < 0)
animated_sprite_2d.play("run")
if not is_on_floor():
animated_sprite_2d.play("jump")

Снова переведу для вас на человечий язык:

Если мы стоим на месте - запустить анимацию стоячего положения;

Если нажата одна из кнопок движения, то мы проверяем направление. Если нажата кнопка "влево" - то зеркально разворачиваем объект анимации. Проигрываем анимацию бега.

Если мы не на земле - запускаем анимацию прыжка.

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Добавьте готовую функцию в список под phisics_process

Молодой гоблин щупает движок Godot за всякое... Продолжаем изучение Godot на примере 2D платформера! Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Godot, Godot Engine, Разработчики, Разработчики игр, Indiedev, Платформер, Длиннопост

Теперь наш персонаж действительно ожил...

Наконец-то мы получили подобие игры!

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

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

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

Показать полностью 24
[моё] Gamedev Разработка Инди игра Программирование Программист Инди Godot Godot Engine Разработчики Разработчики игр Indiedev Платформер Длиннопост
0
5
Boogernator
Boogernator
1 год назад
Свидетели Godot'овы

Godot4. Пятничный VisualShader и немножко треша)⁠⁠

Всем добрый вечер и немножко больше, очень благодушное настроение наконец-то))
Жена с сыном вернулись с отпуска, как-то попустило сразу)
Записал видосик как сделать dissolve шейдер, ну как и обещал))

Отлично все, гляньте скока заработали за три дня после релиза))

Godot4. Пятничный VisualShader и немножко треша) Godot, Godot Engine, Инди, Gamedev, Видео, YouTube, Длиннопост

Жизнь теплится, 11 копеек ARPU, это больше чем Теоден даже ожидал, на яндекс играх можно заработать))
Ладно я в телеге своей уже размотал почему это нормально, тут мне пофигу, топовая аналитика будет уже только там))
По инерции пытаюсь что-то на пикабу писать, но сам не понимаю зачем, хейт только ловить) Все кому нравится мой подход уже давно и так со мной или лично познакомились или просто переподписались)

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

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

Показать полностью 1
[моё] Godot Godot Engine Инди Gamedev Видео YouTube Длиннопост
0
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии