Найти в Дзене
Поддержите автораПеревод на любую сумму
Закреплено автором
Игровой движок Godot engine
Список статей в хронологическом порядке.
4005 · 4 года назад
№230. Доступ к свойствам через set.
Статья для новичков и тех кто только начинает своё знакомство с движком. Обычно, когда мы пишем код годо сам предлагает нам список доступных свойств. К примеру у нас есть сцена в которой лежит лейбл. Мы пишем $Label.te… и годо нам предложит всё что связано с text. Логично предположить что все свойства будут доступны подобным образом. Просто начинаем писать их имя. Но , что если пойти чуть дальше , к примеру попробовать поменять свойство font_color Начинаем писать font_ и … ничего похожего Ок. Можно догадаться, что это свойство вложено, и попробовать написать в начале theme_override...
17 часов назад
Долгожданный релиз Godot 4.5 ! По ссылке огромная статья презентация.
3 недели назад
№229. Dithering \ Дизеринг. Часть №2
Приветствую ! В этой статье будем развивать тему дальше. В итоге получим шейдер который будет делать вот такую обработку изображения. Я буду препарировать фотку Арни. Надеюсь он не в обиде, всё-таки у нас такая около ностальгическая тематика =) Фотка у меня размерами 710 х 370. Закидываем её в TextureRect (это необязательно, можно и в Sprite2D), подключаем шейдер и начинаем набрасывать код. Как и в прошлый раз сразу подключаем нашу матрицу. В этот раз у меня она будет 8 х 8. И выводим текстуры Арни и матрицы в переменные base и gridt соответственно...
2 месяца назад
№228. Dithering \ Дизеринг.
Приветствую тебя камрад!. В этой статье покажу как собрать шейдер , чтобы получить эффект вот такой а-ля однобитной графики : Статья не будет супер подробной, подразумевается что ты в курсе как писать и подключать шейдеры, в группе есть куча материалов на эту тему. ------- На самом деле тут нет ничего сложного, и сам шейдер пишется буквально в две строки! Всё что нам потребуется это спрайт, который несёт в себе некую матрицу пикселей с разной «яркостью». При взаимодействии с оригинальным изображением, пиксели исходя из своей яркости либо остаются на экране , либо исчезают...
2 месяца назад
№227. 3D. Перенос трансформаций через RemoteTransform3D
Нода RemoteTransform3D позволяет переносить трансформации одного объекта на другой. Для примера я собрал вот такую сценку. Соответственно у нас есть два меша, и я хочу перенести трансформации с MeshInstance3D на getter. Для этого под MeshInstance3D кладем ноду RemoteTransform3D , и в настройках указываем наш getter. В моем случае я хочу переносить только поворот...
3 месяца назад
№226. Ультра простой шейдер для отражения.
В данной статье покажу как быстро собрать шейдер, который будет имитировать зеркальное отражение. По сути своей это просто перевернутое оригинальное изображение и небольшие модификации размера и цвета. Сцена выглядит вот так : Так как мы будем работать со всей видимой областью экрана - добавляем в сцену Canvas Layer + ColorRect. ColorRect растягиваем на весь экран Подключаем к нему материал New ShaderMaterial И создаем новый шейдер В шейдере сразу накидываем переменные : текстура всего экрана, позиция по оси Y , размер по оси Y , и цвет...
3 месяца назад
№225. 3D. Отрисовка модели поверх всей сцены.
Совсем коротенькая заметка про то как рисовать модель поверх всей сцены. В демо сцене два куба. Повращаем камеру, убедимся что каждый рисуется правильно ) А теперь, у куба который мы хотим рисовать поверх всего поставим галочку в материале возле No depth test И вуаля Обычно используется для отрисовки оружия в играх «от первого лица» --------- в грядущем Godot 4...
4 месяца назад
№224. 3D. Декали (Decals).
Для проецирования каких либо рисунков на поверхности меша можем использовать декали. В Godot они представлены нодой Decal. Добавляем в сцену меш, навешиваем текстуру для красоты. Добавляем Decal ноду. И перетаскиваем текстуру в соотвествующий слот По умолчанию декаль «смотрит» вниз, поэтому в моем случае ноду надо повернуть Таким нехитрым образом можем расположить так, как нам нужно. Как вы могли заметить, текстуру можно «растягивать» внутри бокса...
4 месяца назад
№223. 3D. Ориентируем объект в сторону курсора.
Рано или поздно вы захотите что-бы ваш персонаж, или какая то часть окружения, реагировала на курсор. В моем случае это выглядит вот так : Решается это всё с помощью рейкаста, или проецирования луча если вам так ближе. Для начала определяем положение курсора во вьюпорте. После этого мы высчитываем положение курсора относительно камеры и подаем эту точку в look_at Думаю всем понятно, что курсор имеет только две координаты, и никак не связан с 3Д сценой. Поэтому последняя цифра в target_point (2...
4 месяца назад
№222. 3D.Look_at() и экспорт из Blender .
Наверное первое, на что вы обратите внимание - отличия направления осей в координатной сетке Godot и Blender. Если внимательно присмотреться - ось Z в блендере это вертикальная ось. А в годо - горизонтальная. В принципе этот факт не должен доставить вам больших проблем, если вы правильно экспортируете 3Д модель. Я буду работать с OBJ форматом. На нём и рассмотрим основные моменты. Давайте создадим в блендере объект , допустим в виде стрелочки, и попробуем перебросить его в годо. Обратите внимание на локальные координаты - расположил я стрелку вдоль оси Z...
4 месяца назад
№221. 3D. CSG. Конструктивная твердотельная геометрия.
CSG (Constructive Solid Geometry) примитивы обычно используются для прототипирования уровней. Понять где и что лучше расположить на сцене и сразу протестировать. После чего можем скинуть это всё отдельным файлом своему другу, крутому трёхмерщику, как основу для дальнейшей проработки. В этой небольшой статье пробежимся по основным моментам. Создаем 3Д сцену,и находим в объектах отдел с CSG примитивами: Как видим есть все основные типы, но мы остановимся на сфере и кубе. Добавляем в сцену Box и две Sphere...
4 месяца назад
№220. 3D. Управление персонажем от первого лица.
Хоть годо и представляет нам некое подобие базового скрипта для этих целей, я всё же предлагаю собрать его с нуля. Вариантов реализации управления само собой есть огромное количество. В этой статье рассмотрим самый простой и базовый пример. В сцену добавляем в качестве пола CSGbox : В качестве «персонажа» добавляем CharacterBody. Внутри добавляем CollisionShape и выбираем форму CapsuleShape. Незнаю, случайно или нет, но по умолчанию у «капсулы» высота равна двум метрам. Для того чтобы мы могли визуально видеть где наша капсула, мы можем добавить в сцену соответствующий CSG меш...
4 месяца назад