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

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

Комментарии • 164

  • @Koaalla
    @Koaalla 4 года назад +21

    Наконец-то! Годный и качественный канал по Unity. Где разбираются интересные задачи. А не миллионный раз создают платформер.

  • @T1m0the0S
    @T1m0the0S 4 года назад +111

    Чуть мозг не бомбанул) Обязательно посмотрю продолжение. На уровне Sebastian Lague канал, только по русски. Даёшь ликбез в массы! Процветания каналу.

    • @adamlain5979
      @adamlain5979 4 года назад +7

      Это как минимум, контент Бомба :)

    • @istpmncrft
      @istpmncrft 4 года назад +2

      ТРЕБУЮ ЗАКРЕПИТЬ КОМЕНТ!!!

    • @user-vr4fc1rb7e
      @user-vr4fc1rb7e 3 года назад +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

  • @akstis4183
    @akstis4183 4 года назад +9

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

  • @brudanin
    @brudanin 4 года назад +11

    Огромное спасибо, сегодня сделал свои моделки в воксели и настроил генерацию с помощью вашего канала и проекта! Теперь хочется строить города)

  • @stasonick
    @stasonick 3 года назад +1

    Очень интересная и актуальная для меня тема. Спасибо за подробную информацию!

  • @petrhelbin8183
    @petrhelbin8183 3 года назад

    прекрасный канал с интересными задачами и таким же интересным решением

  • @user-lf4uo1lq9e
    @user-lf4uo1lq9e 2 года назад

    Парень ты вывел меня на другой уровень представления)) Спасибо, что ты есть)

  • @PawaPepeGemabody
    @PawaPepeGemabody 4 года назад +12

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

  • @inetto84
    @inetto84 4 года назад +26

    Блин, прям в точности то, что меня интересует последние время, словно мысли прочитали.) Будем смотреть.)

    • @maldok4087
      @maldok4087 3 года назад +1

      Кстати генерация майна наверно такая же

    • @user-wj5xb2eo6s
      @user-wj5xb2eo6s 3 года назад +5

      @@maldok4087, нет

    • @sefo0ks
      @sefo0ks 3 года назад +1

      @@maldok4087 нет, там не заготовленые тайлы, а рандомная генерация

    • @bebezyanovi4
      @bebezyanovi4 9 месяцев назад

      @@maldok4087 Там шум Перлина используется

  • @5_funger
    @5_funger 4 года назад +1

    Генератор уникального контента!

  • @Martix181
    @Martix181 4 года назад +1

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

  • @grimseal
    @grimseal 4 года назад

    Отдельное спасибо за шорткаты в райдере :)

  • @user-lx1vg9hv8g
    @user-lx1vg9hv8g 4 года назад +26

    Спасибо тебе за такие полезные видео! Продолжай снимать, многим этим помогаешь) Удачи в развитии канала!

    • @kellerkey
      @kellerkey 4 года назад

      Какой шустрый

  • @mrminecrafter3829
    @mrminecrafter3829 3 года назад

    Спасибо большое автору !!!

  • @spasatilex-1280
    @spasatilex-1280 4 года назад +11

    Пожалуйста, сделай больше шрифт кода!

  • @Koaalla
    @Koaalla 4 года назад

    Спасибо огромное! Продолжай!

  • @WannaSleap
    @WannaSleap 3 года назад

    просто лучший спасибо за туториал

  • @zotovvr
    @zotovvr 3 года назад

    Все впитал, спасибо за контент !

  • @andrexxelles
    @andrexxelles Год назад

    Спасибо большое!

  • @HeroPancake
    @HeroPancake 4 года назад

    Очень интересно увидеть вторую часть

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +1

      Спасбио, в следующее воскресенье выйдет

  • @itzhellcod3r-developer609
    @itzhellcod3r-developer609 4 года назад +1

    Спасибо!)

  • @marvincolex9237
    @marvincolex9237 4 года назад

    Лайк, это интересно

  • @minvotto1262
    @minvotto1262 4 года назад +20

    Если чесно,то ничего в программировании не смыслю но коммент пишу для продвижения в масы) лайк тоже поставил

  • @a_and_s9964
    @a_and_s9964 4 года назад +2

    Ну лайк!

  • @manro_2780
    @manro_2780 4 года назад

    Спасибо ты гений

  • @user-hk1lk6ty6v
    @user-hk1lk6ty6v 4 года назад

    Лайк не глядя))

  • @user-vi2qp5um3f
    @user-vi2qp5um3f 4 года назад

    Однозначно лайк

  • @DeadRabbitCanDance
    @DeadRabbitCanDance 3 года назад

    Вдруг попалось твоё видео. Алилуйя! Я тут пытаюсь по словарю (grammaly template rnd gen) что то-то приемлемое построить, пока получается только полная дичь или примитивизмЪ.
    Но просто посмотрев твой ролик, где ты очень ясно излагаешь свои мысли, я придумал еще один вариант. Код - ничто. Идея - всё! Но идея без понимания, как это реализовать - тоже ничто! Рабочий код - это всё! Но рабочий код без понимания почему и как он работает - это опять ничто. Спасибо тебе за отличный ролик! Тут и идея и реализация.

  • @lerstq4132
    @lerstq4132 Год назад

    оч круто🙂

  • @KoliaBoroda
    @KoliaBoroda 2 года назад

    хорошее видео, толково говорите

  • @user-wv8vz6kt7z
    @user-wv8vz6kt7z 4 года назад +13

    Это конечно интересно все(без иронии), но как сделать облака в HDRP как динамический skybox -это да-это та тема видоса которую я хочу увидеть. И вообще хочу и жду видосы с HDRP

  • @OnTheWayToTheDirection
    @OnTheWayToTheDirection 2 месяца назад

    Лучший

  • @alexeyrival
    @alexeyrival 4 года назад

    Коллапс волновой функции! Буквально пару недель назад про него статью писал!)
    Спасибо за видос, как всегда информативно)

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      Что за статью? Я что-то про эту тему уже статьи четыре на хабре прочитал, вот и решил что точно нужно самому разобраться и другим рассказать)

    • @alexeyrival
      @alexeyrival 4 года назад

      @@EmeraldPowder я вконтакте пишу, отдельный мелкий паблик завёл, "Процедурный Вестник".
      Статья называется "Не так страшен, как звучит: Коллапс волновой функции"
      В основном там сверхпростым языком объясняются какие-то вещи из процедурной генерации. Поскольку я продаю софт тем людям, которые не сильно понимают, как это всё вообще работает, нужно как-то повышать образованность населения, так сказать)
      На самом деле я собирался даже сделать видос про коллапс волновой функции, ибо видео про город зашло на ура вопреки низкому качеству, но раз уж ты(вы?) всё равно сделаешь видео на эту тему, и оно гарантированно будет лучше моего, то я выберу что-нибудь другое:D

    • @alexeyrival
      @alexeyrival 4 года назад

      @@EmeraldPowder upd:
      только что проверил, паблик по поиску не бьётся, ибо мелкий, нужно смотреть по адресу /procedural_herald

  • @nikto5878
    @nikto5878 4 года назад

    Круть!

  • @finerace
    @finerace 4 года назад +1

    Ну ты крутой блин блинский!!

  • @unPhine
    @unPhine 3 года назад

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

  • @captaincross980
    @captaincross980 4 года назад +2

    Ничего не понял, но очень интересно :)

  • @yura-hh6be
    @yura-hh6be 4 года назад

    я афигел спасибо

  • @silentage6310
    @silentage6310 3 года назад +6

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

    • @user-di6gh8oq1p
      @user-di6gh8oq1p 3 года назад +1

      Для поиска совпадения можно же использовать нижний (невидимый) слой тайла, так же тоже можно)

  • @iamskoi
    @iamskoi 4 года назад

    Отличные уроки, отличный контент! Я правильно понял, что после сбора цветовой информации по сторонам, ты хочешь вставить этот рассчитаный массив уже в префаб? Чтобы каждый раз не вычислять цвета?

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      Спасибо!
      Да, можно этот массив сохранить в префаб чтобы потом не считать, думаю в одном из следующих видео добавлю это. Но вообще эти вычисления не такие сложные, можно оставить в процессе загрузки сцены, то есть в Start'e, если конечно тайлов не под сотню и оно не тормозит

  • @nivalius
    @nivalius 4 года назад +22

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

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +7

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

    • @BlackWhite-gp8oz
      @BlackWhite-gp8oz 3 года назад

      @@EmeraldPowder На каком языке писал игру?

    • @zandkcsgo1040
      @zandkcsgo1040 3 года назад

      @@BlackWhite-gp8oz на Юнити только c#

    • @BlackWhite-gp8oz
      @BlackWhite-gp8oz 3 года назад

      @@zandkcsgo1040 мог сказать "на c#", я бы понял, а так у тебя не правильно сформулированное предложение

    • @user-ck2re9ex5v
      @user-ck2re9ex5v 3 года назад +2

      @@BlackWhite-gp8oz я бы так не сказал. Автор работает в юнити, а юнити поддерживает только язык с#

  • @useruuuuuuyyy
    @useruuuuuuyyy 3 года назад +1

    Зачем я твои видео смотрю все до конца аааа, я ведь даже на юните ничего дельного не сделпю

  • @glimpixels
    @glimpixels 4 года назад +3

    0:00 похоже на настольную игру "Каркасон". Что-то типа домино, но с дорогами, стенами, полями и т.п.

    • @glimpixels
      @glimpixels 4 года назад +1

      Как здесь 0:01 короче.

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +2

      Да, есть небольшое сходство. Настолка кстати неплохая, играл)

    • @user-wj5xb2eo6s
      @user-wj5xb2eo6s 3 года назад +2

      Я спустился в комменты только чтобы найти комментарий о каркассоне

    • @glimpixels
      @glimpixels 3 года назад

      @@user-wj5xb2eo6s Копец)

  • @jasonbrain1585
    @jasonbrain1585 3 года назад

    Вопрос, а можно это делать с не воксельными элементами

  • @stepanshnder1850
    @stepanshnder1850 10 месяцев назад

    Как сделать процедурную генерацию леревьев на этих обьектах??

  • @jusii458
    @jusii458 3 года назад

    Супер!!! Только шрифт мелковат.

  • @TANDEROIDandMrBasterTheTAB
    @TANDEROIDandMrBasterTheTAB 4 года назад +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 года назад +2

      Привет. Спасибо за замечания! Все по существу
      Хардкода немало, да, но если модельки из 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 года назад +1

      @@EmeraldPowder Я понимаю, что эти замечания актуальны скорее для реального кода, чем для туториала. А про флоат - это просто личная боль, и Я уже просто боюсь его сравнивать напрямую) Кстати, в MagicaVoxel нельзя выставить, чтобы она экспортировала не 1*256, а 16*16?

    • @DeadRabbitCanDance
      @DeadRabbitCanDance 3 года назад

      float дает погрешность непредсказуемо. Даже не на очень то больших или маленьких числах. Поэтому... Кстати причина такого поведения флоата кроется в его реализации, а не в "размерности", это никак не связано с переполнением битового пространства отведенного под хранение.

    • @TheC418
      @TheC418 3 года назад

      Несколько замечаний.
      2) В целом верно, но вместо возврата null лучше использовать Try Pattern
      3) float сам по себе не может скакнуть с 1 на соседнее число. Енам тут, очевидно, стоит делать, но ваше утверждение насчёт float не совсем верно, просто есть числа, которые невозможно представить типом float, соответственно там может возникнуть погрешность, но само по себе это не происходит)

  • @esnaglfar4437
    @esnaglfar4437 3 года назад

    Привет!
    Не замерял, насколько требователен такой подход к генерации уровня к системе?
    Почему для генерации ты выбрал рейкасты для определения цветов и соответствий тайлов вместо преднастроенной матрицы соответствия + правила размещения?

    • @EmeraldPowder
      @EmeraldPowder  3 года назад +1

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

  • @leastexpected3115
    @leastexpected3115 4 года назад

    а почему ты используешь старую версию блендера? Ведь уже есть 2.83 версия

  • @Totallygeekdom
    @Totallygeekdom 3 года назад +1

    Why was this recommended to me? Video looks cool though even if a can't understand it.

    • @rayhansatrio7475
      @rayhansatrio7475 3 года назад +1

      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

  • @user-tw9oz4ee9v
    @user-tw9oz4ee9v 3 года назад

    На порядок сложнее лабиринтов и чанков из прошлых видео.) Убил часа 3, наверное, но разобрался что в этих 20 минутах творится.)

  • @stepanshnder1850
    @stepanshnder1850 10 месяцев назад

    А как сделать большую разницу в высотах??

  • @anatoliy9696
    @anatoliy9696 4 года назад +2

    Привет, будут видосики "Все о DOTS" ?

    • @DeadRabbitCanDance
      @DeadRabbitCanDance 3 года назад

      А зачем тебе DOTS? ПишЫ мне на почту, я тебе курс скину.

  • @inji4579
    @inji4579 4 года назад

    Мудрота.
    Офтопный вопрос, что за текстовой редактор? Никак не привыкну к VS, оч хотелось бы что-то еще попробовать адекватное, с поддержкой Юнити-подсказок.

  • @user-wy6ly1sr3c
    @user-wy6ly1sr3c 4 года назад +1

    Привет, помоги мне пожалуйста, как экспортировать анимацию в unity , а я делал в MagicalVoxel

  • @SevarJer
    @SevarJer 4 года назад

    Во время видео.
    - 8? Б** откуда 8? А это площадь стороны!
    - 0.5 откуда? ААА Это размер вокса на 2 деленое.
    - Тайл? Что за тайл такой? ААА я все забыл. А это квадратик в моделе.)
    Спасибо. С отречества так мозг не напрягал. Удачи, и не останавливайся )

  • @manro_2780
    @manro_2780 4 года назад

    ты можешь сделать материал невидимка который скрывает даже часть модель? Я понятия не имею, как это сделать!

  • @bigwhiskey9380
    @bigwhiskey9380 2 года назад

    меджикт воксель где ее лучше скачать?

  • @user-op4hi1uk3q
    @user-op4hi1uk3q 4 года назад +2

    ого, всего лишь 8к подписчиков, я нашёл тебя

  • @shellypeng8855
    @shellypeng8855 3 года назад

    Hi emerald, great tutorial again! I am wondering why the raycasthit's tetuxreCoord.x gives the colorIndex.

    • @EmeraldPowder
      @EmeraldPowder  3 года назад +1

      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 3 года назад

      @@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?

  • @JorgeGrapa
    @JorgeGrapa 2 года назад

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

  • @styrbo
    @styrbo 4 года назад

    разве не лучше получать самые крайние точки меша чем пускать кучу рейкастов? да и оно будет странно работать если тайлы вплотную будут стоять друг к другу.
    а так спасибо за урок) очень понятно и доступно объясняешь материал

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +1

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

    • @stepanshnder1850
      @stepanshnder1850 10 месяцев назад

      @@EmeraldPowder а как сделать рзменение высоты???

  • @user-zm4sz1vz5f
    @user-zm4sz1vz5f 3 года назад

    Чувак, где и как обучится программированию, я сколько не пытаюсь, не понимаю структуру

  • @--.--
    @--.-- 4 года назад

    Как изменить размер сетки для CTRL? Я искал, нигде не нашел, пишут невозможно

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      В верхнем меню Edit - Snap settings

  • @user-uc5wn3nu1i
    @user-uc5wn3nu1i 3 года назад

    Привет, карта будет генерироваться безконесно?

    • @EmeraldPowder
      @EmeraldPowder  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 Благодарствую

  • @jackgreen9917
    @jackgreen9917 4 года назад

    А что за коллапс волновой функции?

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

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

  • @user-bo5eb1ou4r
    @user-bo5eb1ou4r 4 года назад

    Как сделать сетку? Чтобы объекты магнитились на центр каждой клетки?

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      Если при установке скриптом магнитились - делить координаты на размер клетки, округлять к целому, и обратно умножать. Если в редакторе - удерживать ctrl при перемещении, в Edit->Snap Settings настраивается размер сетки

    • @user-bo5eb1ou4r
      @user-bo5eb1ou4r 4 года назад

      @@EmeraldPowder Хорошо, спасибо!

  • @iceshott8506
    @iceshott8506 2 года назад

    Мне вот интересно как это синхронизировать в мультиплеерной игре

    • @EmeraldPowder
      @EmeraldPowder  2 года назад

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

  • @user-hp2cg6px8c
    @user-hp2cg6px8c 4 года назад

    А как по нагрузке?
    Столько циклов и проверок

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      256 рейкастов на тайл это совсем не критично, учитывая что это один раз происходит на старте. Главное это не количество циклов в коде, а сколько раз код внутри них в итоге выполняется

  • @MILANZERG
    @MILANZERG 4 года назад

    можешь исходный код скинуть на диск, а не на сайт, куда платить надо?

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      Я обычно на GitHub заливаю проекты, там все бесплатно. Когда доделаю оставшиеся видео обязательно выложу!

  • @istpmncrft
    @istpmncrft 4 года назад

    О

  • @user-ng2wm3ti1o
    @user-ng2wm3ti1o 4 года назад

    Мagic voxtel это конечно крутой конструктор но мне интересно сколько эта карта будет жрать ресурсов устройства на котором все это будет запускаться. А то я про magic voxtel слышал что там куева туча полигонов получается в простой модельке, и это вроде бы подтверждается. Ну если конечно все модельки не импортировать в какой либо редактор и не доводить до ума убрав лишние полигоны.

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

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

    • @evggg
      @evggg 4 года назад +1

      Я не пробовал, но могу предположить, что это дело можно прям в юнити доводить до ума тулзой ProBuilder. Ну то есть открывать на редактирование модель и объединять/удалять полигоны. Раньше от этой же команды была тулза QuickEdit, не знаю, жива ли она сейчас.

  • @neem_off
    @neem_off 4 года назад

    жду 2 часть. Поэтому сделал свой TileMap - ruclips.net/video/-s_cwjTdibE/видео.html

  • @user-pm2ru6ir6n
    @user-pm2ru6ir6n 4 года назад +1

    Классная идея ) но есть же textureCoord у хита ruclips.net/video/iG_n23W952Y/видео.html , зачем так все усложнять ))

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +1

      Хм, а ведь и правда. Я когда искал как получить координаты как-то эту фичу проглядел)

  • @KrutaMan
    @KrutaMan Год назад

    почему 8*8 а не 10 * 10 , чтобы в юнити был размером 1*1 ?

  • @lordjamesf6644
    @lordjamesf6644 3 года назад

    а как это в 2д реализовать?

    • @user-dz7ep4oe4l
      @user-dz7ep4oe4l 3 года назад

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

  • @daskmc4444
    @daskmc4444 4 года назад

    No entiendo como terminó viendo estas cosas

  • @fingerboard79
    @fingerboard79 Год назад +1

    что за хоткей в 8:30?

    • @fingerboard79
      @fingerboard79 Год назад +1

      а то не могу так сделать

    • @fingerboard79
      @fingerboard79 Год назад +1

      прийдетсья переписовать?

    • @fingerboard79
      @fingerboard79 Год назад +1

      :(😟

    • @fingerboard79
      @fingerboard79 Год назад +1

      не какой скрипт нормально не могу сделать(

    • @fingerboard79
      @fingerboard79 Год назад +1

      что за хот кей?

  • @admenmod
    @admenmod 4 года назад

    Шрифт побольше

  • @evggg
    @evggg 4 года назад

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

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +1

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

    • @evggg
      @evggg 4 года назад

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

  • @istpmncrft
    @istpmncrft 4 года назад

    Д

  • @istpmncrft
    @istpmncrft 4 года назад

    Е

  • @istpmncrft
    @istpmncrft 4 года назад

    В

  • @istpmncrft
    @istpmncrft 4 года назад

    Н

  • @istpmncrft
    @istpmncrft 4 года назад

    Ж*

  • @ximikTVshow
    @ximikTVshow 4 года назад +1

    Что за скриптовый редактор юзаеш?

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +1

      Jetbrains Rider, всем советую

    • @TrupDaVinci
      @TrupDaVinci 4 года назад

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

  • @istpmncrft
    @istpmncrft 4 года назад

    И

  • @istpmncrft
    @istpmncrft 4 года назад

    Р

  • @istpmncrft
    @istpmncrft 4 года назад

    П

  • @mr.antonder9170
    @mr.antonder9170 4 года назад +2

    Сделай туториал, как сделать мульте плеер в 3D игре ПЖ

  • @RunBull
    @RunBull 2 года назад

    я программирую 3 дня я ещё язык не знаю только до циклов дошёл. зачем я это смотрю

  • @boing30000
    @boing30000 9 месяцев назад

    у меня этот код тупо выдаёт несколько критических ошибок

  • @BlackWhite-gp8oz
    @BlackWhite-gp8oz 3 года назад

    На каком языке пишешь?

    • @EmeraldPowder
      @EmeraldPowder  3 года назад

      В юнити сейчас все на C# пишут

  • @_axe_4374
    @_axe_4374 4 года назад +2

    Привет, очень крутые видео! Но, очень не хватает толкового урока, как сделать всё "K P A C U B O", то есть, НОРМАЛЬНО настроить пост обработку, освещение, сделать эффекты и т.д.

  • @grevel1376
    @grevel1376 3 года назад

    why is this in my recommended

  • @igorgrischenko6518
    @igorgrischenko6518 4 года назад

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

  • @user-ys6ud4bk5n
    @user-ys6ud4bk5n 2 года назад

    Видео я слишком глуп для такого, как не пытался всё ровно ничего не понял...

  • @istpmncrft
    @istpmncrft 4 года назад

    Д

  • @istpmncrft
    @istpmncrft 4 года назад

    Е