Генерация уровня из 3D тайлов: часть 1

  Рет қаралды 118,636

Emerald Powder

Emerald Powder

4 жыл бұрын

Существует много идей и алгоритмов для процедурной генерации различных уровней и миров, в этом видео я начну разбирать алгоритмы связанные с созданием мира из воксельных тайлов. Особенность этого генератора будет в том что для создания уровня не нужно будет настраивать никаких правил, только нарисовать в воксельном стиле 3D модели тайлов, из которых будет автоматически генерироваться уровень. В этой первой части мы разбираемся с основной системой для генератора - автоматическим определением можно ли поставить тайлы рядом друг с другом по цветам вокселей края каждого тайла
Плейлист про генерацию из тайлов: • Генерация мира из тайлов
Следующее видео: • Генерация мира из 3D т...
Patreon канала - / emeraldpowder (там уже есть проект из этого видео)
Наш Discord - / discord
Готовый проект из всех пяти видео: github.com/emeraldpowder/Voxe...
На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!
Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео

Пікірлер: 164
@T1m0the0S
@T1m0the0S 4 жыл бұрын
Чуть мозг не бомбанул) Обязательно посмотрю продолжение. На уровне Sebastian Lague канал, только по русски. Даёшь ликбез в массы! Процветания каналу.
@adamlain5979
@adamlain5979 4 жыл бұрын
Это как минимум, контент Бомба :)
@istpmncrft
@istpmncrft 4 жыл бұрын
ТРЕБУЮ ЗАКРЕПИТЬ КОМЕНТ!!!
@user-vr4fc1rb7e
@user-vr4fc1rb7e 3 жыл бұрын
Я: кто такой Sebastian Lague? * вбиваю в поиск * Мне показывает канал с надписью: вы подписаны. Если что, я мало на какие каналы подписан.
@jamiearyan9058
@jamiearyan9058 3 жыл бұрын
pro tip: watch series on Flixzone. Me and my gf have been using it for watching a lot of movies lately.
@majorkeanu3882
@majorkeanu3882 3 жыл бұрын
@Jamie Aryan Yea, have been watching on Flixzone for years myself :D
@Koaalla
@Koaalla 4 жыл бұрын
Наконец-то! Годный и качественный канал по Unity. Где разбираются интересные задачи. А не миллионный раз создают платформер.
@stasonick
@stasonick 3 жыл бұрын
Очень интересная и актуальная для меня тема. Спасибо за подробную информацию!
@akstis4183
@akstis4183 4 жыл бұрын
В юнити совсем не бум-бум, но каждый твой ролик помогает мне узнать что-то новое. Спасибо
@brudanin
@brudanin 4 жыл бұрын
Огромное спасибо, сегодня сделал свои моделки в воксели и настроил генерацию с помощью вашего канала и проекта! Теперь хочется строить города)
@petrhelbin8183
@petrhelbin8183 3 жыл бұрын
прекрасный канал с интересными задачами и таким же интересным решением
@user-lf4uo1lq9e
@user-lf4uo1lq9e 2 жыл бұрын
Парень ты вывел меня на другой уровень представления)) Спасибо, что ты есть)
@PawaPepeGemabody
@PawaPepeGemabody 4 жыл бұрын
Очень крутое видео, ты лучший разработчик на юнити на всем ютубе))) Спасибо что продолжаешь выпускать классные видео)
@5_funger
@5_funger 4 жыл бұрын
Генератор уникального контента!
@Koaalla
@Koaalla 4 жыл бұрын
Спасибо огромное! Продолжай!
@mrminecrafter3829
@mrminecrafter3829 3 жыл бұрын
Спасибо большое автору !!!
@zotovvr
@zotovvr 3 жыл бұрын
Все впитал, спасибо за контент !
@grimseal
@grimseal 4 жыл бұрын
Отдельное спасибо за шорткаты в райдере :)
@WannaSleap
@WannaSleap 3 жыл бұрын
просто лучший спасибо за туториал
@marvincolex9237
@marvincolex9237 4 жыл бұрын
Лайк, это интересно
@andrexxelles
@andrexxelles Жыл бұрын
Спасибо большое!
@HeroPancake
@HeroPancake 4 жыл бұрын
Очень интересно увидеть вторую часть
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Спасбио, в следующее воскресенье выйдет
@Martix181
@Martix181 4 жыл бұрын
Мне эта генерация даже не нужна была, но видео прям затянуло. Мало ли, поможет когда-то, спасибо большое.
@inetto84
@inetto84 4 жыл бұрын
Блин, прям в точности то, что меня интересует последние время, словно мысли прочитали.) Будем смотреть.)
@maldok4087
@maldok4087 3 жыл бұрын
Кстати генерация майна наверно такая же
@user-wj5xb2eo6s
@user-wj5xb2eo6s 3 жыл бұрын
@@maldok4087, нет
@sefo0ks
@sefo0ks 3 жыл бұрын
@@maldok4087 нет, там не заготовленые тайлы, а рандомная генерация
@bebezyanovi4
@bebezyanovi4 10 ай бұрын
@@maldok4087 Там шум Перлина используется
@itzhellcod3r-developer609
@itzhellcod3r-developer609 4 жыл бұрын
Спасибо!)
@lerstq4132
@lerstq4132 2 жыл бұрын
оч круто🙂
@user-vi2qp5um3f
@user-vi2qp5um3f 4 жыл бұрын
Однозначно лайк
@a_and_s9964
@a_and_s9964 4 жыл бұрын
Ну лайк!
@user-hk1lk6ty6v
@user-hk1lk6ty6v 4 жыл бұрын
Лайк не глядя))
@spasatilex-1280
@spasatilex-1280 4 жыл бұрын
Пожалуйста, сделай больше шрифт кода!
@manro_2780
@manro_2780 4 жыл бұрын
Спасибо ты гений
@user-lx1vg9hv8g
@user-lx1vg9hv8g 4 жыл бұрын
Спасибо тебе за такие полезные видео! Продолжай снимать, многим этим помогаешь) Удачи в развитии канала!
@kellerkey
@kellerkey 4 жыл бұрын
Какой шустрый
@OnTheWayToTheDirection
@OnTheWayToTheDirection 3 ай бұрын
Лучший
@nikto5878
@nikto5878 4 жыл бұрын
Круть!
@KoliaBoroda
@KoliaBoroda 2 жыл бұрын
хорошее видео, толково говорите
@DeadRabbitCanDance
@DeadRabbitCanDance 3 жыл бұрын
Вдруг попалось твоё видео. Алилуйя! Я тут пытаюсь по словарю (grammaly template rnd gen) что то-то приемлемое построить, пока получается только полная дичь или примитивизмЪ. Но просто посмотрев твой ролик, где ты очень ясно излагаешь свои мысли, я придумал еще один вариант. Код - ничто. Идея - всё! Но идея без понимания, как это реализовать - тоже ничто! Рабочий код - это всё! Но рабочий код без понимания почему и как он работает - это опять ничто. Спасибо тебе за отличный ролик! Тут и идея и реализация.
@alexeyrival
@alexeyrival 4 жыл бұрын
Коллапс волновой функции! Буквально пару недель назад про него статью писал!) Спасибо за видос, как всегда информативно)
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Что за статью? Я что-то про эту тему уже статьи четыре на хабре прочитал, вот и решил что точно нужно самому разобраться и другим рассказать)
@alexeyrival
@alexeyrival 4 жыл бұрын
@@EmeraldPowder я вконтакте пишу, отдельный мелкий паблик завёл, "Процедурный Вестник". Статья называется "Не так страшен, как звучит: Коллапс волновой функции" В основном там сверхпростым языком объясняются какие-то вещи из процедурной генерации. Поскольку я продаю софт тем людям, которые не сильно понимают, как это всё вообще работает, нужно как-то повышать образованность населения, так сказать) На самом деле я собирался даже сделать видос про коллапс волновой функции, ибо видео про город зашло на ура вопреки низкому качеству, но раз уж ты(вы?) всё равно сделаешь видео на эту тему, и оно гарантированно будет лучше моего, то я выберу что-нибудь другое:D
@alexeyrival
@alexeyrival 4 жыл бұрын
@@EmeraldPowder upd: только что проверил, паблик по поиску не бьётся, ибо мелкий, нужно смотреть по адресу /procedural_herald
@minvotto1262
@minvotto1262 4 жыл бұрын
Если чесно,то ничего в программировании не смыслю но коммент пишу для продвижения в масы) лайк тоже поставил
@finerace
@finerace 4 жыл бұрын
Ну ты крутой блин блинский!!
@yura-hh6be
@yura-hh6be 4 жыл бұрын
я афигел спасибо
@user-wv8vz6kt7z
@user-wv8vz6kt7z 4 жыл бұрын
Это конечно интересно все(без иронии), но как сделать облака в HDRP как динамический skybox -это да-это та тема видоса которую я хочу увидеть. И вообще хочу и жду видосы с HDRP
@captaincross980
@captaincross980 4 жыл бұрын
Ничего не понял, но очень интересно :)
@unPhine
@unPhine 3 жыл бұрын
Получаю базовые знания о программировании из этих видео, языки прийдется учить самому но зато механики узнаю
@silentage6310
@silentage6310 3 жыл бұрын
круто, но ведь соседние тайлы не обязательно могут быть одинаковые чтобы похходить друг другу.
@user-di6gh8oq1p
@user-di6gh8oq1p 3 жыл бұрын
Для поиска совпадения можно же использовать нижний (невидимый) слой тайла, так же тоже можно)
@nivalius
@nivalius 4 жыл бұрын
бро, извини, что лезу в твою песочницу, но не мог бы ты объединять видео по этой теме в один плейлист пожалуйста и в описании под видео оставлять ссылку на плейлист. я знаю, что их пока всего 2 на данный момент, но мне кажется зрителям так было бы удобней. это очень скромная просьба, я не настаиваю
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Сейчас они все в одном большом плейлисте про процедурную генерацию, наверное чуть позже сделаю отдельный для этой серии про тайлы и оставлю ссылку, спасибо за совет
@BlackWhite-gp8oz
@BlackWhite-gp8oz 3 жыл бұрын
@@EmeraldPowder На каком языке писал игру?
@zandkcsgo1040
@zandkcsgo1040 3 жыл бұрын
@@BlackWhite-gp8oz на Юнити только c#
@BlackWhite-gp8oz
@BlackWhite-gp8oz 3 жыл бұрын
@@zandkcsgo1040 мог сказать "на c#", я бы понял, а так у тебя не правильно сформулированное предложение
@user-ck2re9ex5v
@user-ck2re9ex5v 3 жыл бұрын
@@BlackWhite-gp8oz я бы так не сказал. Автор работает в юнити, а юнити поддерживает только язык с#
@useruuuuuuyyy
@useruuuuuuyyy 3 жыл бұрын
Зачем я твои видео смотрю все до конца аааа, я ведь даже на юните ничего дельного не сделпю
@iamskoi
@iamskoi 4 жыл бұрын
Отличные уроки, отличный контент! Я правильно понял, что после сбора цветовой информации по сторонам, ты хочешь вставить этот рассчитаный массив уже в префаб? Чтобы каждый раз не вычислять цвета?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Спасибо! Да, можно этот массив сохранить в префаб чтобы потом не считать, думаю в одном из следующих видео добавлю это. Но вообще эти вычисления не такие сложные, можно оставить в процессе загрузки сцены, то есть в Start'e, если конечно тайлов не под сотню и оно не тормозит
@user-op4hi1uk3q
@user-op4hi1uk3q 4 жыл бұрын
ого, всего лишь 8к подписчиков, я нашёл тебя
@TANDEROIDandMrBasterTheTAB
@TANDEROIDandMrBasterTheTAB 4 жыл бұрын
Привет, смотрю с интересом, и дальше буду смотреть части. Но есть пару моментов. 1) Не кажется ли тебе, что многовато хардкода с UV координатами? То что там не более 256 пикселей, то что смотрим только на x? 2) У тебя функция с рейкастом возвращает номер пикселя, и если не находит, вернет 0. Мне кажется, это не очень хорошо, ведь если точки на uv координате будет стоять в самом центре первого пикселя, то при усножении на 256 все равно даст 0. И тогда можно возникнуть путаница. Можно конечно сделать возвращать -1, если ничего не нашлось, но ещё лучше возвращать null(для этого нужно преобразовать тип возвращаемого значения в нулебл тайп, private !int...) 3) не очень хорошая идея сравнивать вектора. Дело в том, что они состоят из float, а сравнивать их опасно. Под сравнеием Я имею ввиду только операции == и != . Это из-за того, что float может в люой момент скакнуть с 1 на 0.99999 или 1.00001, и тогда == выдаст false. Так что, Я бы тут лучше сделал enum 4) Это уже мелочь совсем, но все же. Не думаю, что эта экономия на спичках с байтами, даст хоть какой-то прирост в производительности. А вот проблемы потенциально создать может.
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Привет. Спасибо за замечания! Все по существу Хардкода немало, да, но если модельки из MagicaVoxel то эти вещи не будут меняться. А если какие-то другие - то в принципе несложно зайти и поменять. Хардкода в видосах вообще получается больше чем в обычном коде, чтобы не тратить время видео на вынос всех переменных Про 0 - да, наверное стоило об этом в видео сказать. Я нулевой цвет не использую, но можно поменять на int и сделать -1 для пустого цвета, если нужны все 256 из палитры. Nullable тоже можно, но он потяжелее будет. byte vs int - на 10 тайлов будет 2.5KB vs 10KB, в любом случае совсем не страшно С векторами тоже сделал бы enum, но в видосе торопился и сделал так. Работать будет, они скачат только если с ними математические операции выполнять, если просто записать (0,1,0) то там всегда (0,1,0) и будет. Но если вот разделить на 2 и потом умножить то скакнёт, или вычесть и прибавить одно и то же число
@TANDEROIDandMrBasterTheTAB
@TANDEROIDandMrBasterTheTAB 4 жыл бұрын
@@EmeraldPowder Я понимаю, что эти замечания актуальны скорее для реального кода, чем для туториала. А про флоат - это просто личная боль, и Я уже просто боюсь его сравнивать напрямую) Кстати, в MagicaVoxel нельзя выставить, чтобы она экспортировала не 1*256, а 16*16?
@DeadRabbitCanDance
@DeadRabbitCanDance 3 жыл бұрын
float дает погрешность непредсказуемо. Даже не на очень то больших или маленьких числах. Поэтому... Кстати причина такого поведения флоата кроется в его реализации, а не в "размерности", это никак не связано с переполнением битового пространства отведенного под хранение.
@TheC418
@TheC418 3 жыл бұрын
Несколько замечаний. 2) В целом верно, но вместо возврата null лучше использовать Try Pattern 3) float сам по себе не может скакнуть с 1 на соседнее число. Енам тут, очевидно, стоит делать, но ваше утверждение насчёт float не совсем верно, просто есть числа, которые невозможно представить типом float, соответственно там может возникнуть погрешность, но само по себе это не происходит)
@jusii458
@jusii458 3 жыл бұрын
Супер!!! Только шрифт мелковат.
@glimpixels
@glimpixels 4 жыл бұрын
0:00 похоже на настольную игру "Каркасон". Что-то типа домино, но с дорогами, стенами, полями и т.п.
@glimpixels
@glimpixels 4 жыл бұрын
Как здесь 0:01 короче.
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Да, есть небольшое сходство. Настолка кстати неплохая, играл)
@user-wj5xb2eo6s
@user-wj5xb2eo6s 3 жыл бұрын
Я спустился в комменты только чтобы найти комментарий о каркассоне
@glimpixels
@glimpixels 3 жыл бұрын
@@user-wj5xb2eo6s Копец)
@jasonbrain1585
@jasonbrain1585 3 жыл бұрын
Вопрос, а можно это делать с не воксельными элементами
@stepanshnder1850
@stepanshnder1850 11 ай бұрын
Как сделать процедурную генерацию леревьев на этих обьектах??
@leastexpected3115
@leastexpected3115 4 жыл бұрын
а почему ты используешь старую версию блендера? Ведь уже есть 2.83 версия
@user-tw9oz4ee9v
@user-tw9oz4ee9v 3 жыл бұрын
На порядок сложнее лабиринтов и чанков из прошлых видео.) Убил часа 3, наверное, но разобрался что в этих 20 минутах творится.)
@user-wy6ly1sr3c
@user-wy6ly1sr3c 4 жыл бұрын
Привет, помоги мне пожалуйста, как экспортировать анимацию в unity , а я делал в MagicalVoxel
@Totallygeekdom
@Totallygeekdom 3 жыл бұрын
Why was this recommended to me? Video looks cool though even if a can't understand it.
@rayhansatrio7475
@rayhansatrio7475 3 жыл бұрын
i think this is that algorithm where world tiles have certain rules, like a beach tile has to be between sea and land, not 100% sure tho
@manro_2780
@manro_2780 4 жыл бұрын
ты можешь сделать материал невидимка который скрывает даже часть модель? Я понятия не имею, как это сделать!
@stepanshnder1850
@stepanshnder1850 11 ай бұрын
А как сделать большую разницу в высотах??
@SevarJer
@SevarJer 4 жыл бұрын
Во время видео. - 8? Б** откуда 8? А это площадь стороны! - 0.5 откуда? ААА Это размер вокса на 2 деленое. - Тайл? Что за тайл такой? ААА я все забыл. А это квадратик в моделе.) Спасибо. С отречества так мозг не напрягал. Удачи, и не останавливайся )
@esnaglfar4437
@esnaglfar4437 3 жыл бұрын
Привет! Не замерял, насколько требователен такой подход к генерации уровня к системе? Почему для генерации ты выбрал рейкасты для определения цветов и соответствий тайлов вместо преднастроенной матрицы соответствия + правила размещения?
@EmeraldPowder
@EmeraldPowder 3 жыл бұрын
По хорошему надо отдельным кодом, который выполняется при разработке игры, а не уже при запуске, посчитать и сохранить это всё куда-то чтобы потом использовалось. Но я до оптимизации уже не дошёл, и так было много всего. Точно не замерял, рейкасты не такие дорогие, но их там довольно много так что всё таки в готовой игре я бы не стал оставлять так
@bigwhiskey9380
@bigwhiskey9380 3 жыл бұрын
меджикт воксель где ее лучше скачать?
@shellypeng8855
@shellypeng8855 4 жыл бұрын
Hi emerald, great tutorial again! I am wondering why the raycasthit's tetuxreCoord.x gives the colorIndex.
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Hi, thanks! You can see the texture used on my meshes around 7:37, that's the way MagicaVoxel exports all textures. basically it's 256px*1px line, where each pixel is one color from palette. As the X coordinate in UV changes from 0 to 1, if we multiply it by 256, then values from 0 to 1 means it is first pixel, and hence first color from palette. 1 to 2 is second pixel-color, and so on
@shellypeng8855
@shellypeng8855 4 жыл бұрын
@@EmeraldPowder I am also wondering why the ray to get the pixel of the right side is shooting from the left(rayStart: -half on the x axis) to the left side of the tile, doesn't this give the left side pixels?
@inji4579
@inji4579 4 жыл бұрын
Мудрота. Офтопный вопрос, что за текстовой редактор? Никак не привыкну к VS, оч хотелось бы что-то еще попробовать адекватное, с поддержкой Юнити-подсказок.
@MrNekitfr
@MrNekitfr 4 жыл бұрын
Jetbrains Rider
@anatoliy9696
@anatoliy9696 4 жыл бұрын
Привет, будут видосики "Все о DOTS" ?
@DeadRabbitCanDance
@DeadRabbitCanDance 3 жыл бұрын
А зачем тебе DOTS? ПишЫ мне на почту, я тебе курс скину.
@styrbo
@styrbo 4 жыл бұрын
разве не лучше получать самые крайние точки меша чем пускать кучу рейкастов? да и оно будет странно работать если тайлы вплотную будут стоять друг к другу. а так спасибо за урок) очень понятно и доступно объясняешь материал
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Про крайним точкам меша цвет средних вокселей не определишь так просто, а если тайл 8*8 то они важны. Если вплотную то да, но я их тут расставляю сам, и потом скорее всего этот код будет вызываться только в редакторе, а массив цветов сохраняться где-нибудь в тайле
@stepanshnder1850
@stepanshnder1850 11 ай бұрын
@@EmeraldPowder а как сделать рзменение высоты???
@user-zm4sz1vz5f
@user-zm4sz1vz5f 3 жыл бұрын
Чувак, где и как обучится программированию, я сколько не пытаюсь, не понимаю структуру
@konstantinpavlov7100
@konstantinpavlov7100 4 жыл бұрын
0:27 - «о коллапсе волновой функции много говорят» Где говорят?) Собственно вопрос что/кого читать чтоб быть в курсе? Посоветуй плиз источники, где всякие такие штуки обсуждают, ну или вообще что-нить интересное.
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Я в основном много статей на хабре видел: habr.com/ru/post/475188/ habr.com/ru/post/437604/ habr.com/ru/post/461323/ habr.com/ru/post/488336/
@konstantinpavlov7100
@konstantinpavlov7100 4 жыл бұрын
@@EmeraldPowder Благодарствую
@JorgeGrapa
@JorgeGrapa 2 жыл бұрын
Наверное, странный вопрос, я переписывал код по видео, у меня появлялись ошибки с названием переменных. Решил скопировать код скрипта. Но теперь почему-то не видно лучей
@user-uc5wn3nu1i
@user-uc5wn3nu1i 3 жыл бұрын
Привет, карта будет генерироваться безконесно?
@EmeraldPowder
@EmeraldPowder 3 жыл бұрын
Привет, в моем проекте только заданного размера, но можно его расширить, и когда игрок двигается к краю генерировать следующий кусок
@--.--
@--.-- 4 жыл бұрын
Как изменить размер сетки для CTRL? Я искал, нигде не нашел, пишут невозможно
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
В верхнем меню Edit - Snap settings
@iceshott8506
@iceshott8506 2 жыл бұрын
Мне вот интересно как это синхронизировать в мультиплеерной игре
@EmeraldPowder
@EmeraldPowder 2 жыл бұрын
Если набор тайлов один, то не так сложно. Сервер или хост генерирует карту, и рассылает всем двумерный массив из номеров тайлов. В реальной игре конечно сложнее будет, со всякими поворотами и дополнительными параметрами для тайлов, но в целом идея такая
@jackgreen9917
@jackgreen9917 4 жыл бұрын
А что за коллапс волновой функции?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Очень умно звучащее название алгоритма генерации, который будет в следующих частях видео. Там чуть ниже есть ссылки на статейки про него
@istpmncrft
@istpmncrft 4 жыл бұрын
О
@user-bo5eb1ou4r
@user-bo5eb1ou4r 4 жыл бұрын
Как сделать сетку? Чтобы объекты магнитились на центр каждой клетки?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Если при установке скриптом магнитились - делить координаты на размер клетки, округлять к целому, и обратно умножать. Если в редакторе - удерживать ctrl при перемещении, в Edit->Snap Settings настраивается размер сетки
@user-bo5eb1ou4r
@user-bo5eb1ou4r 4 жыл бұрын
@@EmeraldPowder Хорошо, спасибо!
@user-pm2ru6ir6n
@user-pm2ru6ir6n 4 жыл бұрын
Классная идея ) но есть же textureCoord у хита kzbin.info/www/bejne/n3jCn2VpjJ5oaLs , зачем так все усложнять ))
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Хм, а ведь и правда. Я когда искал как получить координаты как-то эту фичу проглядел)
@neem_off
@neem_off 4 жыл бұрын
жду 2 часть. Поэтому сделал свой TileMap - kzbin.info/www/bejne/Y6TClKqgicmcmKc
@user-hp2cg6px8c
@user-hp2cg6px8c 4 жыл бұрын
А как по нагрузке? Столько циклов и проверок
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
256 рейкастов на тайл это совсем не критично, учитывая что это один раз происходит на старте. Главное это не количество циклов в коде, а сколько раз код внутри них в итоге выполняется
@MILANZERG
@MILANZERG 4 жыл бұрын
можешь исходный код скинуть на диск, а не на сайт, куда платить надо?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Я обычно на GitHub заливаю проекты, там все бесплатно. Когда доделаю оставшиеся видео обязательно выложу!
@user-ng2wm3ti1o
@user-ng2wm3ti1o 4 жыл бұрын
Мagic voxtel это конечно крутой конструктор но мне интересно сколько эта карта будет жрать ресурсов устройства на котором все это будет запускаться. А то я про magic voxtel слышал что там куева туча полигонов получается в простой модельке, и это вроде бы подтверждается. Ну если конечно все модельки не импортировать в какой либо редактор и не доводить до ума убрав лишние полигоны.
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Получается больше чем если бы знающий человек моделлил тоже самое вручную, но все таки не прям на несколько порядков, так что можно и такие модельки использовать. Тем более в таком воксельном стиле вообще полигонов не так много. Но можно и довести до ума, если критична производительность на слабых телефонах, или каких-то тайлов на сцене тысячи спаунятся
@evggg
@evggg 4 жыл бұрын
Я не пробовал, но могу предположить, что это дело можно прям в юнити доводить до ума тулзой ProBuilder. Ну то есть открывать на редактирование модель и объединять/удалять полигоны. Раньше от этой же команды была тулза QuickEdit, не знаю, жива ли она сейчас.
@KrutaMan
@KrutaMan Жыл бұрын
почему 8*8 а не 10 * 10 , чтобы в юнити был размером 1*1 ?
@lordjamesf6644
@lordjamesf6644 3 жыл бұрын
а как это в 2д реализовать?
@user-dz7ep4oe4l
@user-dz7ep4oe4l 3 жыл бұрын
Тоже самое, но брать цвет крайних пикселей. Можно облегчить алгоритм, задав для всех возможных типов сторон свое значение, тогда не придется сканировать пиксели.
@admenmod
@admenmod 4 жыл бұрын
Шрифт побольше
@istpmncrft
@istpmncrft 4 жыл бұрын
Д
@daskmc4444
@daskmc4444 4 жыл бұрын
No entiendo como terminó viendo estas cosas
@fingerboard79
@fingerboard79 Жыл бұрын
что за хоткей в 8:30?
@fingerboard79
@fingerboard79 Жыл бұрын
а то не могу так сделать
@fingerboard79
@fingerboard79 Жыл бұрын
прийдетсья переписовать?
@fingerboard79
@fingerboard79 Жыл бұрын
:(😟
@fingerboard79
@fingerboard79 Жыл бұрын
не какой скрипт нормально не могу сделать(
@fingerboard79
@fingerboard79 Жыл бұрын
что за хот кей?
@istpmncrft
@istpmncrft 4 жыл бұрын
Н
@istpmncrft
@istpmncrft 4 жыл бұрын
Ж*
@istpmncrft
@istpmncrft 4 жыл бұрын
В
@ximikTVshow
@ximikTVshow 4 жыл бұрын
Что за скриптовый редактор юзаеш?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Jetbrains Rider, всем советую
@TrupDaVinci
@TrupDaVinci 4 жыл бұрын
@@EmeraldPowder никак не могу найти крякнутую версию. Раньше стояла, после переустановки винды не могу снова найти и не помню где брал
@evggg
@evggg 4 жыл бұрын
А нельзя этот цвет как-то без физики определять? Тут же фиксированные размеры и ты знаешь, где каждый воксель находится.
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Где находится воксель знаю, но чтобы понять в какой треугольник он экспортировался нужно либо делать рейкаст, либо можно перебрать все треугольники и посмотреть какие лежат на сторонах модели - но по сути это и есть переписать physics.raycast самому. Насчёт производительности эта часть физики не слишком затратная, тем более один раз при инициализации
@evggg
@evggg 4 жыл бұрын
@@EmeraldPowder если один раз, то можно наверно и в эдитор вообще вынести и сохранять в каком-нибудь поле префаба. Правда, не уверен насчёт физики в эдиторе.
@istpmncrft
@istpmncrft 4 жыл бұрын
П
@istpmncrft
@istpmncrft 4 жыл бұрын
Р
@istpmncrft
@istpmncrft 4 жыл бұрын
Е
@istpmncrft
@istpmncrft 4 жыл бұрын
И
@mr.antonder9170
@mr.antonder9170 4 жыл бұрын
Сделай туториал, как сделать мульте плеер в 3D игре ПЖ
@RunBull
@RunBull 2 жыл бұрын
я программирую 3 дня я ещё язык не знаю только до циклов дошёл. зачем я это смотрю
@boing30000
@boing30000 10 ай бұрын
у меня этот код тупо выдаёт несколько критических ошибок
@_axe_4374
@_axe_4374 4 жыл бұрын
Привет, очень крутые видео! Но, очень не хватает толкового урока, как сделать всё "K P A C U B O", то есть, НОРМАЛЬНО настроить пост обработку, освещение, сделать эффекты и т.д.
@BlackWhite-gp8oz
@BlackWhite-gp8oz 3 жыл бұрын
На каком языке пишешь?
@EmeraldPowder
@EmeraldPowder 3 жыл бұрын
В юнити сейчас все на C# пишут
@igorgrischenko6518
@igorgrischenko6518 4 жыл бұрын
Достаточно проверять три цвета: два угловых и центральный, вместо того, чтобы писать всю строку.
@grevel1376
@grevel1376 3 жыл бұрын
why is this in my recommended
@user-ys6ud4bk5n
@user-ys6ud4bk5n 2 жыл бұрын
Видео я слишком глуп для такого, как не пытался всё ровно ничего не понял...
@istpmncrft
@istpmncrft 4 жыл бұрын
Д
@istpmncrft
@istpmncrft 4 жыл бұрын
Е
Генерация мира из 3D тайлов: часть 2
22:01
Emerald Powder
Рет қаралды 33 М.
Делаю процедурную генерацию в Unity
13:15
Happy 4th of July 😂
00:12
Pink Shirt Girl
Рет қаралды 58 МЛН
Полная теория процедурной генерации
18:51
Лучшие моменты в Истории Minecraft
14:37
dren
Рет қаралды 1,3 МЛН
Создание качественного USB-C микрофона
21:30
Студия озвучки "Acting"
Рет қаралды 109 М.
Happy 4th of July 😂
00:12
Pink Shirt Girl
Рет қаралды 58 МЛН