17 Сентября 2021
32

Godot путь новичка. Первый Enemy и первый Шейдер

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


Создам новый проект, основную сцену неважно, как назвать. Создам ещё одну сцену, назову её Enemy, сцена наследуется от Node2d скриншоты каждого шага делать не буду, их уже показывал ранее. На сцену Enemy добавляем ноду Sprite.

Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост

После того как спрайт выбрали, добавляем ноду TexturedButton, по размеру делаем её со спрайт, текстур к ней никаких не добавляем.

Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост

Для Enemy создаем новый скрипт, для кнопки соединяем сигнал pressed со скриптом Enemy.

Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост
Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост

Если на прошлом этапе никаких проблем не возникло, то значит все идет как надо, теперь немножко модифицируем скрипт Enemy.

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

Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост

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


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

Сделаем сначала очень простенькую штуку. А именно при смерти моба, будем уменьшать его прозрачность до нуля, как только прозрачность опустится до нуля, тогда будем вызывать destroy()

Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост

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

Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост

скину ссылки которые вам могут очень пригодится.
https://docs.godotengine.org/en/latest/tutorials/shaders/you...
https://docs.godotengine.org/en/latest/tutorials/shaders/sha...
https://godotshaders.com/
https://thebookofshaders.com/
Для понимания предыдущего, суперского туториала, нужно сказать пару слов, там используется GLSL, в godot свой язык шейдеров, но глобально это тот же самый GLSL. По следующей ссылке, детально расписано, как конвертить GLSL в godot'овский ну и так же обратно.
https://docs.godotengine.org/en/latest/tutorials/shaders/con...


функцию рандома взял отсюда https://godotshaders.com/snippet/random-value/
вообще черная магия какая-то и очень мне непонятная ещё местами, ну типа почему так сложно и где встроенная функция random(),
Генерит псевдослучайное значение между 0.0 и 1.0

Ладно погнали, назовем наш новый шейдер - desintegrate.

Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост

Тут не успеешь создать, уже сразу начинает ругаться, тут вобще на все подряд будет ругаться, можно забывать теперь про неявное указание типов данных и прочие радости, за каждую точку с запятой будет ругаться) Сучек, какой строгий) Ну сейчас он ругается, что не указали тип шейдера, использовать будем сейчас canvas_item, он для спрайтов.  spatial для 3d моделек, до particles ещё не добрался пока.

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

self_modulate.

Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост

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

Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост
Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост
Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост

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

Теперь идем в скрипт Enemy.

Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост

Все можно проверять, работает точно так же как и до этого, но механика принципиально разная) Что уже круто, вставлять видяшку не буду и так пост огромный получается.
Ладно, чтобы немножко было отличий, модифицируем ещё разочек шейдер, не зря же его Desintegrate называли.

float random (vec2 uv) {

return fract(sin(dot(uv.xy,

vec2(12.9898,78.233))) * 43758.5453123);

}

берем эту функцию из сниппетов на https://godotshaders.com/snippet/random-value/
Godot путь новичка. Первый Enemy и первый Шейдер Godot Engine, Godot, Шейдеры, Туториал, Видео, Длиннопост

Ну и результат.

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

Показать полностью 14 2
82

HITMAN 3 + DLC Access Pass: HITMAN 1 GOTY Edition1

0₽ 699₽

HITMAN 3 + DLC Access Pass: HITMAN 1 GOTY Edition Компьютерные игры, Халява, Epic Games Store, Hitman 3

HITMAN 3 Access Pass: HITMAN 1 GOTY Edition


Система HITMAN 3 Access Pass позволяет получить доступ к локациям HITMAN 1 и HITMAN 2 в HITMAN 3, что дает возможность играть во все локации трилогии World of Assassination в HITMAN 3.

Приобретение или выкуп данного пропуска доступа открывает доступ к локациям из "HITMAN 1 - GOTY Edition" в HITMAN 3.

Вы должны владеть игрой HITMAN 3, чтобы получить доступ к этому контенту.


1) HITMAN 3: бесплатный начальный набор
https://www.epicgames.com/store/ru/p/hitman-3--free-starter-...

2) DLC
https://www.epicgames.com/store/ru/p/hitman-3--access-pass-h...


доступно до 1/20/2099
Показать полностью
87

Календарь оружейника 17 сентября

Календарь оружейника 17 сентября Оружие, Календарь, ЖЗЛ, Длиннопост

17 сентября 1919 года в деревне Ярославка Ефремовского района Тульской области родился Петр Герасимович Якушев. В 1937 году Петр Герасимович окончил среднюю Ефремовскую школу и поступил в Московский институт стали и сплавов, а в 1938 году перевелся в Тульский механический институт.

В июле 1941 года студенты пятого курса, включая и Петра Якушева, были направлены на работы в Златоуст на завод №54. Петр Герасимович был назначен на должность технолога и налаживал серийное производство авиационных пулеметов УБ-12,7 и пушек ВЯ-23. В сентябре 1945 года вернулся в Тулу для завершения обучения.

В 1947 году, после защиты дипломного проекта, Якушев был распределен на работу инженером-конструктором в ЦКБ-14, в конструкторскую группу Николая Михайловича Афанасьева, где занимался разработкой документации, испытаниями и доработкой пулемета А-12,7.

В начале 50-х годов были начаты работы по созданию 23-мм зенитных автоматов 2А14 и 2А7 для поражения самолетов на малых высотах полета. Конструктивная схема автоматики была аналогична 12,7-мм пулемету Н.М. Афанасьева. Ведущим конструктором по отработке автоматов стал Петр Герасимович. Автомат 2А14 предназначался для спаренной зенитной установки ЗУ-23, имевшей индекс ГРАУ 2А13 и принятой на вооружение Советской Армии 22 марта 1960 года Постановлением СМ № 313– 125. В комплекте 2А14 поставлялись два быстросъемных взаимозаменяемых ствола с пламегасителями и механическим устройством спускового механизма со специальным блокирующим элементом. Второй автомат 2А7, также разрабатываемый конструкторами Афанасьевым и Якушевым, предназначался для счетверенной самоходной зенитной установки ЗСУ-23-4. Его отличительные особенности - ствол с жидкостным охлаждением для обеспечения интенсивного режима стрельбы.

В 1961 году Петр Герасимович был переведен в ЦКИБ СОО, где проработал до конца своей жизни. Им сконструированы опытные образцы одноствольной 30-мм пушки ТКБ-529, 73-мм револьверной танковой пушки 2А35, 23-мм многоствольной пушки ТКБ-577.

В 1967 году Петр Герасимович возглавлял работы по разработке 4-х ствольного скорострельного пулемета ЯкБ-12,7 с темпом стрельбы 4500 выстрелов в минуту. В должности главного конструктора проекта он разрабатывал основную конструкцию пулемета совместно с Борзовым Б.А., все этапы отработки изделия проходили под его чутким руководством, вплоть до государственных испытаний, которые прошли в сентябре 1972 года с положительными результатами. В марте 1976 года пулемет был принят на вооружение совместно с вертолетом Ми-24.

Календарь оружейника 17 сентября Оружие, Календарь, ЖЗЛ, Длиннопост

В 1969 году Петр Герасимович Якушев защитил диссертацию кандидата технических наук. Всю жизнь помимо конструкторской деятельности, он вел активную общественную жизнь - в период с 1959 г. по 1967 г. избирался депутатом Тульского городского и областного Совета депутатов трудящихся.

17 февраля 1973 года Петр Герасимович Якушев скончался, его выдающийся вклад был оценен правительственными наградами – в 1962 году орден «Знак Почета» и премия имени С.И. Мосина , в 1968 году лауреат Государственной премии СССР и в 1984 году премия имени С.И. Мосина.

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

Механизм парадокса дружбы

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

Механизм парадокса дружбы Дружба, Друзья, Популярность

Математики объяснили механизм парадокса дружбы / ©Getty images


Работа опубликована в Journal of Complex Networks. Парадоксом дружбы называют феномен, суть которого заключается в том, что у большинства людей друзей меньше, чем в среднем у их приятелей. Этот эффект работает и для соцсетей, что в 2012 году подтвердили ученые из Корнелльского университета (США), которые проанализировали 721 миллион пользователей на Facebook. То же оказалось верным для 98 процентов пользователей Twitter.


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


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


Математики из Института Санта-Фе и Мичиганского университета (США) провели собственное исследование феномена. Они пришли к выводу, что популярные люди с большей вероятностью будут дружить друг с другом, тогда как менее популярные — с менее популярными. У одних всего парочка друзей, а других — десятки. Тем не менее, в целом друзья кажутся нам успешными, если сообщество их неоднородно.


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

Источник: Naked Science


Читайте также:

Возрождение мамонтов не нужно: России лучше снова стать родиной слонов;

«Буря» за голову хана: как возник скандал вокруг «Бурана» и можно ли спасти корабль;

Эксперт по кибербезопасности: «Суверенный Рунет не отрежет нас от остального мира».

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

Как я из гусеницы бабочку выращивала

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

Как я из гусеницы бабочку выращивала Бабочка, Мотылек, Гусеница, Длиннопост

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

Как я из гусеницы бабочку выращивала Бабочка, Мотылек, Гусеница, Длиннопост

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

Как я из гусеницы бабочку выращивала Бабочка, Мотылек, Гусеница, Длиннопост

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

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

Отличная работа, все прочитано! Выберите