Подскажите, как достать элементы из tilemap? То есть все тайлы которые были нарисованы. Чтобы потом поставить на определённые тайлы какие-нибудь сооружения
Ты очень крут. То как ведешь повествование, речь, тембр и громкость голоса, музыкальное сопровождение и внимание к деталям сделал тебя одним из лучших в преподнесении материала на ютабчике в тематике геймдева. Большое тебе спасибо и так держать!)
Недавно решил заняться этим движком. Собираю вот годные уроки и обучалски. Этот, пожалуй, один из лучших. Конкретно по 4 версии пока еще маловато ресурсов. Так что, пили, пожалуйста. Это ценный контент.
если не появляется сетка - важны не габариты тайлов. Надо проверить в какой вкладке вы находитесь, для рисования. Внизу надо выбрать не "Набор тайлов", а TileMap. Убедиться, что выбран инструмент карандаш
Здравствуйте, хочу попросить вас о помощи. Сами понимаете - мало людей которые кодируют в годот на c#. Я делаю свою игру ПВП, где есть персонаж, карта и несколько типов мобов. Мне надо сделать так, чтобы моб сам появлялся в определённых координатах с определённым промежутком времени, но совсем не знаю как это сделать. Мог ли бы пожалуйста чуть чуть помочь?
Тут не имеет значения на чем писать. Алгоритм действий будет одинаков: таймер для появления монстров у какого нибудь объекта, условно, MobSpawner, ждать ивента о завершении отсчёта таймера и сравнить моба в определённой координате. Либо я не понял сути вопроса
@@oktopusskills дело в том, что я не могу связать все в один код. Я не знаю как месту спавна придать координаты и поставить промуток времени. Просто не получается написать код из-за очень маленького опыта в программировании
@@Tolik12385 откройте в документации годо раздел "ваша первая игра", пройдите все шаги. У вас сложится, во-первых, мнение о движке, во-вторых, подобные вопросы отпадут, заодно, узнаете нравится ли вам всё это)
@@oktopusskills хорошо, попробую посмотреть документацию, но это всё точно нравится) Весь год смотрел онлайн курсы, просто в некоторых моментах нам всё таки не донесли информацию
Спасибо за туториал. Созрел вопрос. Как реализуются рампы и наклоны ландшафта на многоуровневых картах в 2d, 2.5d играх? Или проще будет не морочить голову и это реализовывать в 3d?
Наложение достигается за счёт многослойности тайлмэп, сортировки по оси Y, коллизия на скосах, где игрок должен упираться в "стену". Если нужен прыжок - отключается коллизия на время прыжка. Иной раз, можно проверить направление прыжка и на какой высоте располагается тайл, куда игрок должен "приземлиться". А высоту можно указать через слои, data самих тайлов, если с высотой они меняются, иными способами. Разумеется в 2D такие вещи делаются, можно сказать, "костыльно", ведь мы искусственно будто бы добавляем третью ось в двухмерном пространстве. Но это не так сложно, как кажется. Изометрию немного сложнее в этом плане делать, на мой взгляд, лучше сначала попробовать в обычном 2D, а потом уже со знанием дела в 2.5D
@@oktopusskills в голове образ 2d это карта рельефа без перепадов как в Warcraft 2, а в 2.5d перепады как в red alert 2, age of empires 2. 2.5 d без перепадов, наверное, heroes 4 или Majesty. Состенами понял. Наклоны как задавать - не понял.
Годный туториал.. У меня один вопрос.. Звучит смешно.. Я хочу попробовать сделать типа что то вроде старбоунда/террария на годоте. Но не понимаю как делать некоторые вещи. Толи спавнить чанки, а они уже блоки.. Или весь мир можно зарегенить в одну тайловую карту через скрипт (наделе 2 ибо задник)? Или в варианте с тайловой картой придется резать ее на чанки что бы оптимизировать? (хотя я пока не понимаю как "шуп перлина" из "белого шума" со всякой обработкой образует террайны и биомы и разделяется на чанки.)
@@oktopusskills Давай я уточню ибо не понял. .Ибо я реально не понимаю может ли это осилить годо. стандартный мир в терарии 8400х2400 блоков. как такое переваривает годо? Тоесть я просто к примеру беру и рисуют на тайловой карте от 0 и до 8400 координаты тайлами нужное.. или мне же придется это как то оптимизировать..или это уже умеет сам годо? ну да.. по сути про танцы с шумом логично.. мучать отдельно.. я тока знаю что там вроде на коком то этапе это все превращается в текстуру.
Привет, подскажи пожалуйста, как делать генерацию Tilemap прямо в коде? Сейчас у меня скрипт привязанный к Node2D и там что-то вроде этого: for x in max_x: for y in max_y: var tile_id = generate_id(noise.get_noise_2d(x, y)) if (tile_id != -1): $TileMap.set_cell(1, (x, y), 0, (0, 1)) Я делаю процедурную генерацию и функция generate_id будет генерировать тип тайла, это заготовка на будущее, пока она просто говорит есть тайл или нет. А видос очень полезный, просто и понятно объяснено, спасибо
Приветствую! А в чём конкретно вопрос? Как будто бы решение уже пишется, а сам вопрос максимально абстрактный, даже нет инфы будет ли автотайлинг или нет. В целом, по работе с тайлмеп из кода - тоже будет видео, сложно сказать насколько скоро, учитывая, что следующие видео уже определены по тематике. Если будет конкретная проблема и вопрос - добро пожаловать в дискорд сервер (ссылка в описании), там коммуницировать проще, да и помочь через голосовые чаты с демонстрациями экрана. Удачи с проектом!
Хм, я не знаю что я сделал, но все починилось. Я просто пересоздал проект, со всеми теми же настройками. И все работает. Раньше при запуске был просто серый экран. А в новом проекте все генерируется
@@lorein_4368 не забывайте о локальном центре координат тайлов и игрока. Попробуйте персонажа на слой выше поставить и посмотреть, исчезнет ли проблема
@@oktopusskills Вот только что посмотрел англоязычный гайд, потом прочитал доки, но всё равно разобраться не смог :/ Мне нужно простейшую 3х3 сетку сделать, но всегда получается какая-то каша из тайлов Возможно дело в том, что у меня лишь 8 из 9 ячеек имеют тайл (пустота по середине) Но в любом случае я уже больше часа пытаюсь решить эту маленькую проблему и ничего не получается :)
@@oktopusskills а добавить файл через код можно? Допустим я хочу чтобы по нажатию левой кнопки Миши в зоне где мог бы быть тайл добавить определённый тайл если его нету
@_1mrscool11_9 Можно всё что угодно) проверяете позицию тыка мыши, конвертируете в координату на тайловой сетке tilemap.local_to_map(позиция мыши) Получаете тайл из этой позиции, а дальше крутите им как хотите, ставите новый и тд.
Сделал уровень с помощью тайлсета. Но когда персонаж двигается, периодически видны зазоры между ними. Тайлы хорошие, рисовал сам, все 32х32. В редакторе все ок. Но вот когда камера движется, появляются зазоры в 1 пиксель. Кто-то сталкивался с подобным? Экспериментальным путем выяснил что такое происходит только когда включено плавное следование камеры за игроком.
Вообще, проблема встречалась постоянно в Godot 3 версии. Но если столкнулись, лучшее, что можно сделать - добавить по пикселю со всех сторон, а в тайлмэп указать зазор через offset
Почему ты в качестве полноценного примера не создал изометрическую 2д рпг игру с персонажем и его прокачкой, инвентарем, ящиками, сундуками, бочками, мобами, боссами и т д?
Люди, помогите, как сделать эффект слоумо? Просто я делаю игру где основной механикой будет замедлять или останавливать время, но я не знаю как это сделать. Буду крайне признателен, если скажите как это сделать
@@oktopusskills задача была такой, чтоб когда игрок находился за деревом то дерево становилось прозрачным, и я нечего не придумал как сделать новую сцену и добавить ее в TileMape
@@javanana54 можно сделать по разному. Можно добавить в сцену дерева area2d и при ивенте пересечения с игроком добавлять прозрачности. Можно сделать шейдером для спрайта в сцене дерева. А можно вообще простым способом в лоб, так сказать. К ноде спрайта персонажа добавляем ноду PointLight2D, ей в Texture запихиваем спрайт персонажа (будет нашей маской для силуэта). В Range выставляем маску Item Cull Mask только 5ую, например. У Спрайта наших деревьев и других объектов, которые должны будут просвечивать персонажа ставим в Visibility -> Light Mask помимо уже выбранной 1ой еще 5ую (короче, ту же, что выставляли у PointLight2D. Всё. Можем покрутить у PointLight2D blend mode и energy. Как нибудь встрою такую штуку в видео
По шарпу, если и будет, то не в ближайшее время, по той причине, что сейчася веду очные занятия по годо на gds, а ближайшие видео будут и для канала, и для закрепления материала ученикам) А так - к шарпу с удовольствием вернусь как нибудь
отличный туториал, всё понятно и доходчиво объяснено, помогло невероятно. Не понятно правда за что 2 человека дизлайк поставили, но это уже их проблема скорее
Отличный урок!!! Ещё толком не использовал новые тайлмапы, но это видео поможет быстрее разобраться, спасибо! Кстати, может быть, ты и без меня знаешь, но здесь 12:56, вместо двух get_axis, можно использовать один get_vector, который даже нормализуется по умолчанию!
13:50. Я всё включил, но у меня пропали все деревья, а персонаж становиться невидимым когда к ним подходит, что делать?
Имба, спасибо)
Отличный гайд!
Подскажите, как достать элементы из tilemap? То есть все тайлы которые были нарисованы. Чтобы потом поставить на определённые тайлы какие-нибудь сооружения
Вообще супер видео спасибо огромное!
And canvas layer with bar?
Годный туториал. Наконец-то у многих исчезнут проблемы с новой TileMap. Спасибо за труд.
У вас тоже не плохие гайды... очень даже не плохие я бы сказал)))
@@m0h49 Но я не делал никакие гайды...
Нобади это действительно ты? я в шоке
@@_1mrscool11_9 да это я
5:05 шикарный переход, просто вырезано - и теперь включай оракула где что и куда ты залез.
После этой минуты можно закрывать видео таким успехом...
Ты очень крут. То как ведешь повествование, речь, тембр и громкость голоса, музыкальное сопровождение и внимание к деталям сделал тебя одним из лучших в преподнесении материала на ютабчике в тематике геймдева. Большое тебе спасибо и так держать!)
Недавно решил заняться этим движком. Собираю вот годные уроки и обучалски. Этот, пожалуй, один из лучших. Конкретно по 4 версии пока еще маловато ресурсов. Так что, пили, пожалуйста. Это ценный контент.
Поему когда я добавляю коллизию текстурка становиться синей?
может просто колизия своим цветом перекрывает текстуру?
что делать если когда я создаю тайл сет и пишу габариты то не появляются оранжевые клетки на сцене в которых нужно рисовать атласами?
если не появляется сетка - важны не габариты тайлов. Надо проверить в какой вкладке вы находитесь, для рисования. Внизу надо выбрать не "Набор тайлов", а TileMap. Убедиться, что выбран инструмент карандаш
Здравствуйте, хочу попросить вас о помощи. Сами понимаете - мало людей которые кодируют в годот на c#. Я делаю свою игру ПВП, где есть персонаж, карта и несколько типов мобов. Мне надо сделать так, чтобы моб сам появлялся в определённых координатах с определённым промежутком времени, но совсем не знаю как это сделать. Мог ли бы пожалуйста чуть чуть помочь?
Тут не имеет значения на чем писать. Алгоритм действий будет одинаков: таймер для появления монстров у какого нибудь объекта, условно, MobSpawner, ждать ивента о завершении отсчёта таймера и сравнить моба в определённой координате. Либо я не понял сути вопроса
@@oktopusskills дело в том, что я не могу связать все в один код. Я не знаю как месту спавна придать координаты и поставить промуток времени. Просто не получается написать код из-за очень маленького опыта в программировании
@@Tolik12385 откройте в документации годо раздел "ваша первая игра", пройдите все шаги. У вас сложится, во-первых, мнение о движке, во-вторых, подобные вопросы отпадут, заодно, узнаете нравится ли вам всё это)
@@oktopusskills хорошо, попробую посмотреть документацию, но это всё точно нравится) Весь год смотрел онлайн курсы, просто в некоторых моментах нам всё таки не донесли информацию
Это лучший урок по TileMap2D. Жду урок по динамической навигации)
Добрый день!
Туториал по рандомной генерации мира из тайлов!
Спасибо за туториал. Созрел вопрос. Как реализуются рампы и наклоны ландшафта на многоуровневых картах в 2d, 2.5d играх? Или проще будет не морочить голову и это реализовывать в 3d?
Наложение достигается за счёт многослойности тайлмэп, сортировки по оси Y, коллизия на скосах, где игрок должен упираться в "стену". Если нужен прыжок - отключается коллизия на время прыжка. Иной раз, можно проверить направление прыжка и на какой высоте располагается тайл, куда игрок должен "приземлиться". А высоту можно указать через слои, data самих тайлов, если с высотой они меняются, иными способами. Разумеется в 2D такие вещи делаются, можно сказать, "костыльно", ведь мы искусственно будто бы добавляем третью ось в двухмерном пространстве. Но это не так сложно, как кажется. Изометрию немного сложнее в этом плане делать, на мой взгляд, лучше сначала попробовать в обычном 2D, а потом уже со знанием дела в 2.5D
@@oktopusskills в голове образ 2d это карта рельефа без перепадов как в Warcraft 2, а в 2.5d перепады как в red alert 2, age of empires 2. 2.5 d без перепадов, наверное, heroes 4 или Majesty.
Состенами понял. Наклоны как задавать - не понял.
Где новые захватывающие туториалы ?
Годный туториал.. У меня один вопрос..
Звучит смешно.. Я хочу попробовать сделать типа что то вроде старбоунда/террария на годоте. Но не понимаю как делать некоторые вещи.
Толи спавнить чанки, а они уже блоки.. Или весь мир можно зарегенить в одну тайловую карту через скрипт (наделе 2 ибо задник)? Или в варианте с тайловой картой придется резать ее на чанки что бы оптимизировать?
(хотя я пока не понимаю как "шуп перлина" из "белого шума" со всякой обработкой образует террайны и биомы и разделяется на чанки.)
В годо тайлмепа довольно серьзно обросла функционалом, можно на ней всё это завязать. С шумом сначала лучше разобраться отдельно, а потом совместить
@@oktopusskills Давай я уточню ибо не понял. .Ибо я реально не понимаю может ли это осилить годо.
стандартный мир в терарии 8400х2400 блоков.
как такое переваривает годо? Тоесть я просто к примеру беру и рисуют на тайловой карте от 0 и до 8400 координаты тайлами нужное.. или мне же придется это как то оптимизировать..или это уже умеет сам годо?
ну да.. по сути про танцы с шумом логично.. мучать отдельно.. я тока знаю что там вроде на коком то этапе это все превращается в текстуру.
мне одному это напоминает терарию
жду новый ролик
Привет, подскажи пожалуйста, как делать генерацию Tilemap прямо в коде?
Сейчас у меня скрипт привязанный к Node2D и там что-то вроде этого:
for x in max_x:
for y in max_y:
var tile_id = generate_id(noise.get_noise_2d(x, y))
if (tile_id != -1):
$TileMap.set_cell(1, (x, y), 0, (0, 1))
Я делаю процедурную генерацию и функция generate_id будет генерировать тип тайла, это заготовка на будущее, пока она просто говорит есть тайл или нет.
А видос очень полезный, просто и понятно объяснено, спасибо
Приветствую! А в чём конкретно вопрос? Как будто бы решение уже пишется, а сам вопрос максимально абстрактный, даже нет инфы будет ли автотайлинг или нет. В целом, по работе с тайлмеп из кода - тоже будет видео, сложно сказать насколько скоро, учитывая, что следующие видео уже определены по тематике. Если будет конкретная проблема и вопрос - добро пожаловать в дискорд сервер (ссылка в описании), там коммуницировать проще, да и помочь через голосовые чаты с демонстрациями экрана. Удачи с проектом!
@@oktopusskills Да, точно, самое главное я забыл сказать. Я затупил, извини. Я тогда в дискорде более подробно опишу проблему. Но все равно спасибо
Хм, я не знаю что я сделал, но все починилось. Я просто пересоздал проект, со всеми теми же настройками. И все работает. Раньше при запуске был просто серый экран. А в новом проекте все генерируется
@@ВадимТимошин-ш7ъ из-за того, что не видел проекта, не могу сказать наверняка, может быть много причин, вплоть до отсутствия скрипта на ноде)
А если y-sort надо сделать для нескольких слоев в карте с разными z индексами? Это возможно?
Для каждого слоя включаете y_sort_enabled и указываете z_index там же
@@oktopusskills Просто персонаж исчезает и появляется (делает y-sort?) только со слоем с одинаковым с ним индексом
@@lorein_4368 не забывайте о локальном центре координат тайлов и игрока. Попробуйте персонажа на слой выше поставить и посмотреть, исчезнет ли проблема
👍класс
Зря перестал ролики записывать, хорошо получилось.
Пипец, ты вернулся🎉
Пока Рома возвращался, перешёл на Unreal, но следить за Octopus не перестану :)
Очень крутой туториал, я столько нового узнал, спасибо
Не совсем понял, как маска для автотайлинга работает :(
Да, автотайлинг тянет на отдельный экскурс. Пока можете в доке глянуть, потом, возможно, запишу отдельно про это
@@oktopusskills Вот только что посмотрел англоязычный гайд, потом прочитал доки, но всё равно разобраться не смог :/
Мне нужно простейшую 3х3 сетку сделать, но всегда получается какая-то каша из тайлов
Возможно дело в том, что у меня лишь 8 из 9 ячеек имеют тайл (пустота по середине)
Но в любом случае я уже больше часа пытаюсь решить эту маленькую проблему и ничего не получается :)
Гайд, достойный подписки с колокольчиком и уважения)
Все норм только музыка говняная мешает
В годоте конечно тайлмапы супер пиздатые
есть ли способ добавить тайл на любое свободное на слое место в процесе игры?
@@_1mrscool11_9 вы можете получить информацию о тайле в указанной позиции на конкретном слое. Если get_cell() вернёт null -значит тайла в клетке нет
@@oktopusskills а добавить файл через код можно? Допустим я хочу чтобы по нажатию левой кнопки Миши в зоне где мог бы быть тайл добавить определённый тайл если его нету
@_1mrscool11_9 Можно всё что угодно) проверяете позицию тыка мыши, конвертируете в координату на тайловой сетке tilemap.local_to_map(позиция мыши)
Получаете тайл из этой позиции, а дальше крутите им как хотите, ставите новый и тд.
@@oktopusskills спасибо, вы очень помогли!
Отличный видос! Но... не все же любят рок))
Лучше использовать какую-то нейтральную музыку
👌
Сделал уровень с помощью тайлсета. Но когда персонаж двигается, периодически видны зазоры между ними. Тайлы хорошие, рисовал сам, все 32х32. В редакторе все ок. Но вот когда камера движется, появляются зазоры в 1 пиксель. Кто-то сталкивался с подобным? Экспериментальным путем выяснил что такое происходит только когда включено плавное следование камеры за игроком.
Вообще, проблема встречалась постоянно в Godot 3 версии. Но если столкнулись, лучшее, что можно сделать - добавить по пикселю со всех сторон, а в тайлмэп указать зазор через offset
Подписался на дзен ради Годо! Спасибо.
Почему ты в качестве полноценного примера не создал изометрическую 2д рпг игру с персонажем и его прокачкой, инвентарем, ящиками, сундуками, бочками, мобами, боссами и т д?
Вопрос, зачем ему это делать? Он вроде рассказал ровно то, что было заявлено в названии видео.
Спасибо. помогли очень.
Фоновая музыка мешает воспринимать информацию
Я вот только первый раз решил создать игру скачал годом, ничего не понимаю, было круто увидеть туториал по годо 4😅😅😅
Будут)
отличный гайдик
Что такое Tilemap
🎩
🥸
Моё почтение
Спасибо
Ты вернулся!!!
Жду ещё уроки
Люди, помогите, как сделать эффект слоумо? Просто я делаю игру где основной механикой будет замедлять или останавливать время, но я не знаю как это сделать. Буду крайне признателен, если скажите как это сделать
Есть несколько способов. Самый простой - заюзать у класса Engine метод time_scale(ваш_множитель)
@@oktopusskills СПААСИБОО, ТЫ ОЧЕНЬ СИЛЬНО ПОМОГ, ПРЯМ ОТ ДУШИ
Спасибо
Ты бомба❤
Довольно подробно и понятливо, в самый раз для ознакомления👍
С возвращением в эфир
Ты ожил, невероятно!
Очень полезный урок. Спасибо
сказали, что бесплатные ассеты, а в итоге один из них платный) 2 доллара просит
при скачивании вам нужно нажать "no thanks". Частая практика в ассетсторах - предложить условный донат)
@@oktopusskills Не заметил этой надписи, спасибо :)
Надеюсь будут новые видео по годот?
👍
а можно ли как то в Tilemape в сцене изменить локальный центр )?
локальный центр ноды, которая в сцене, а сцена - часть тайлмап?)
@@oktopusskills задача была такой, чтоб когда игрок находился за деревом то дерево становилось прозрачным, и я нечего не придумал как сделать новую сцену и добавить ее в TileMape
@@javanana54 можно сделать по разному. Можно добавить в сцену дерева area2d и при ивенте пересечения с игроком добавлять прозрачности. Можно сделать шейдером для спрайта в сцене дерева. А можно вообще простым способом в лоб, так сказать. К ноде спрайта персонажа добавляем ноду PointLight2D, ей в Texture запихиваем спрайт персонажа (будет нашей маской для силуэта). В Range выставляем маску Item Cull Mask только 5ую, например. У Спрайта наших деревьев и других объектов, которые должны будут просвечивать персонажа ставим в Visibility -> Light Mask помимо уже выбранной 1ой еще 5ую (короче, ту же, что выставляли у PointLight2D. Всё. Можем покрутить у PointLight2D blend mode и energy. Как нибудь встрою такую штуку в видео
Го новые полный тутор по godot на C# пожалуйста
По шарпу, если и будет, то не в ближайшее время, по той причине, что сейчася веду очные занятия по годо на gds, а ближайшие видео будут и для канала, и для закрепления материала ученикам) А так - к шарпу с удовольствием вернусь как нибудь
опять же, api один и тот же, и адаптировать любое будущее видео под шарп не составит труда
Спасибо, очень отличный туториал!👍
спасибо что делаешь такие качественные туториалы))))
Хочу намутить какую нибудь халтуру по гайдам, еще, но времени никак нет, семья и прочее))
оо нормальное обьяснение что же происходит в тайл мап))👍
отличный туториал, всё понятно и доходчиво объяснено, помогло невероятно. Не понятно правда за что 2 человека дизлайк поставили, но это уже их проблема скорее
Очень крутой урок получился, хотелось б большо по Godot 4👍👍
Ура, вернулся. Жду обучающих видосов каждый день
Наконец объяснили нормально , а то куча проблем намутил от не знания
Отличный видос! Определенно лайк
Большое спасибо за подробный туториал
Спасибо большое за такое полезное видео!
Круто спасибо всё чётко и понятно
Отличный урок!!! Ещё толком не использовал новые тайлмапы, но это видео поможет быстрее разобраться, спасибо! Кстати, может быть, ты и без меня знаешь, но здесь 12:56, вместо двух get_axis, можно использовать один get_vector, который даже нормализуется по умолчанию!
Спасибо! Да, уже после записи заметил про get_vector)
@@oktopusskillsпривет брат а как создать свой TileMep??? Но бесплатно