Вдруг попалось твоё видео. Алилуйя! Я тут пытаюсь по словарю (grammaly template rnd gen) что то-то приемлемое построить, пока получается только полная дичь или примитивизмЪ. Но просто посмотрев твой ролик, где ты очень ясно излагаешь свои мысли, я придумал еще один вариант. Код - ничто. Идея - всё! Но идея без понимания, как это реализовать - тоже ничто! Рабочий код - это всё! Но рабочий код без понимания почему и как он работает - это опять ничто. Спасибо тебе за отличный ролик! Тут и идея и реализация.
Это конечно интересно все(без иронии), но как сделать облака в HDRP как динамический skybox -это да-это та тема видоса которую я хочу увидеть. И вообще хочу и жду видосы с HDRP
@@EmeraldPowder я вконтакте пишу, отдельный мелкий паблик завёл, "Процедурный Вестник". Статья называется "Не так страшен, как звучит: Коллапс волновой функции" В основном там сверхпростым языком объясняются какие-то вещи из процедурной генерации. Поскольку я продаю софт тем людям, которые не сильно понимают, как это всё вообще работает, нужно как-то повышать образованность населения, так сказать) На самом деле я собирался даже сделать видос про коллапс волновой функции, ибо видео про город зашло на ура вопреки низкому качеству, но раз уж ты(вы?) всё равно сделаешь видео на эту тему, и оно гарантированно будет лучше моего, то я выберу что-нибудь другое:D
бро, извини, что лезу в твою песочницу, но не мог бы ты объединять видео по этой теме в один плейлист пожалуйста и в описании под видео оставлять ссылку на плейлист. я знаю, что их пока всего 2 на данный момент, но мне кажется зрителям так было бы удобней. это очень скромная просьба, я не настаиваю
Сейчас они все в одном большом плейлисте про процедурную генерацию, наверное чуть позже сделаю отдельный для этой серии про тайлы и оставлю ссылку, спасибо за совет
Привет, смотрю с интересом, и дальше буду смотреть части. Но есть пару моментов. 1) Не кажется ли тебе, что многовато хардкода с UV координатами? То что там не более 256 пикселей, то что смотрим только на x? 2) У тебя функция с рейкастом возвращает номер пикселя, и если не находит, вернет 0. Мне кажется, это не очень хорошо, ведь если точки на uv координате будет стоять в самом центре первого пикселя, то при усножении на 256 все равно даст 0. И тогда можно возникнуть путаница. Можно конечно сделать возвращать -1, если ничего не нашлось, но ещё лучше возвращать null(для этого нужно преобразовать тип возвращаемого значения в нулебл тайп, private !int...) 3) не очень хорошая идея сравнивать вектора. Дело в том, что они состоят из float, а сравнивать их опасно. Под сравнеием Я имею ввиду только операции == и != . Это из-за того, что float может в люой момент скакнуть с 1 на 0.99999 или 1.00001, и тогда == выдаст false. Так что, Я бы тут лучше сделал enum 4) Это уже мелочь совсем, но все же. Не думаю, что эта экономия на спичках с байтами, даст хоть какой-то прирост в производительности. А вот проблемы потенциально создать может.
Привет. Спасибо за замечания! Все по существу Хардкода немало, да, но если модельки из MagicaVoxel то эти вещи не будут меняться. А если какие-то другие - то в принципе несложно зайти и поменять. Хардкода в видосах вообще получается больше чем в обычном коде, чтобы не тратить время видео на вынос всех переменных Про 0 - да, наверное стоило об этом в видео сказать. Я нулевой цвет не использую, но можно поменять на int и сделать -1 для пустого цвета, если нужны все 256 из палитры. Nullable тоже можно, но он потяжелее будет. byte vs int - на 10 тайлов будет 2.5KB vs 10KB, в любом случае совсем не страшно С векторами тоже сделал бы enum, но в видосе торопился и сделал так. Работать будет, они скачат только если с ними математические операции выполнять, если просто записать (0,1,0) то там всегда (0,1,0) и будет. Но если вот разделить на 2 и потом умножить то скакнёт, или вычесть и прибавить одно и то же число
@@EmeraldPowder Я понимаю, что эти замечания актуальны скорее для реального кода, чем для туториала. А про флоат - это просто личная боль, и Я уже просто боюсь его сравнивать напрямую) Кстати, в MagicaVoxel нельзя выставить, чтобы она экспортировала не 1*256, а 16*16?
float дает погрешность непредсказуемо. Даже не на очень то больших или маленьких числах. Поэтому... Кстати причина такого поведения флоата кроется в его реализации, а не в "размерности", это никак не связано с переполнением битового пространства отведенного под хранение.
Несколько замечаний. 2) В целом верно, но вместо возврата null лучше использовать Try Pattern 3) float сам по себе не может скакнуть с 1 на соседнее число. Енам тут, очевидно, стоит делать, но ваше утверждение насчёт float не совсем верно, просто есть числа, которые невозможно представить типом float, соответственно там может возникнуть погрешность, но само по себе это не происходит)
Во время видео. - 8? Б** откуда 8? А это площадь стороны! - 0.5 откуда? ААА Это размер вокса на 2 деленое. - Тайл? Что за тайл такой? ААА я все забыл. А это квадратик в моделе.) Спасибо. С отречества так мозг не напрягал. Удачи, и не останавливайся )
Наверное, странный вопрос, я переписывал код по видео, у меня появлялись ошибки с названием переменных. Решил скопировать код скрипта. Но теперь почему-то не видно лучей
0:27 - «о коллапсе волновой функции много говорят» Где говорят?) Собственно вопрос что/кого читать чтоб быть в курсе? Посоветуй плиз источники, где всякие такие штуки обсуждают, ну или вообще что-нить интересное.
разве не лучше получать самые крайние точки меша чем пускать кучу рейкастов? да и оно будет странно работать если тайлы вплотную будут стоять друг к другу. а так спасибо за урок) очень понятно и доступно объясняешь материал
Про крайним точкам меша цвет средних вокселей не определишь так просто, а если тайл 8*8 то они важны. Если вплотную то да, но я их тут расставляю сам, и потом скорее всего этот код будет вызываться только в редакторе, а массив цветов сохраняться где-нибудь в тайле
Отличные уроки, отличный контент! Я правильно понял, что после сбора цветовой информации по сторонам, ты хочешь вставить этот рассчитаный массив уже в префаб? Чтобы каждый раз не вычислять цвета?
Спасибо! Да, можно этот массив сохранить в префаб чтобы потом не считать, думаю в одном из следующих видео добавлю это. Но вообще эти вычисления не такие сложные, можно оставить в процессе загрузки сцены, то есть в Start'e, если конечно тайлов не под сотню и оно не тормозит
Если при установке скриптом магнитились - делить координаты на размер клетки, округлять к целому, и обратно умножать. Если в редакторе - удерживать ctrl при перемещении, в Edit->Snap Settings настраивается размер сетки
Если набор тайлов один, то не так сложно. Сервер или хост генерирует карту, и рассылает всем двумерный массив из номеров тайлов. В реальной игре конечно сложнее будет, со всякими поворотами и дополнительными параметрами для тайлов, но в целом идея такая
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
@@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?
Привет! Не замерял, насколько требователен такой подход к генерации уровня к системе? Почему для генерации ты выбрал рейкасты для определения цветов и соответствий тайлов вместо преднастроенной матрицы соответствия + правила размещения?
По хорошему надо отдельным кодом, который выполняется при разработке игры, а не уже при запуске, посчитать и сохранить это всё куда-то чтобы потом использовалось. Но я до оптимизации уже не дошёл, и так было много всего. Точно не замерял, рейкасты не такие дорогие, но их там довольно много так что всё таки в готовой игре я бы не стал оставлять так
256 рейкастов на тайл это совсем не критично, учитывая что это один раз происходит на старте. Главное это не количество циклов в коде, а сколько раз код внутри них в итоге выполняется
Мagic voxtel это конечно крутой конструктор но мне интересно сколько эта карта будет жрать ресурсов устройства на котором все это будет запускаться. А то я про magic voxtel слышал что там куева туча полигонов получается в простой модельке, и это вроде бы подтверждается. Ну если конечно все модельки не импортировать в какой либо редактор и не доводить до ума убрав лишние полигоны.
Получается больше чем если бы знающий человек моделлил тоже самое вручную, но все таки не прям на несколько порядков, так что можно и такие модельки использовать. Тем более в таком воксельном стиле вообще полигонов не так много. Но можно и довести до ума, если критична производительность на слабых телефонах, или каких-то тайлов на сцене тысячи спаунятся
Я не пробовал, но могу предположить, что это дело можно прям в юнити доводить до ума тулзой ProBuilder. Ну то есть открывать на редактирование модель и объединять/удалять полигоны. Раньше от этой же команды была тулза QuickEdit, не знаю, жива ли она сейчас.
Мудрота. Офтопный вопрос, что за текстовой редактор? Никак не привыкну к VS, оч хотелось бы что-то еще попробовать адекватное, с поддержкой Юнити-подсказок.
Тоже самое, но брать цвет крайних пикселей. Можно облегчить алгоритм, задав для всех возможных типов сторон свое значение, тогда не придется сканировать пиксели.
Где находится воксель знаю, но чтобы понять в какой треугольник он экспортировался нужно либо делать рейкаст, либо можно перебрать все треугольники и посмотреть какие лежат на сторонах модели - но по сути это и есть переписать physics.raycast самому. Насчёт производительности эта часть физики не слишком затратная, тем более один раз при инициализации
@@EmeraldPowder если один раз, то можно наверно и в эдитор вообще вынести и сохранять в каком-нибудь поле префаба. Правда, не уверен насчёт физики в эдиторе.
Привет, очень крутые видео! Но, очень не хватает толкового урока, как сделать всё "K P A C U B O", то есть, НОРМАЛЬНО настроить пост обработку, освещение, сделать эффекты и т.д.
Чуть мозг не бомбанул) Обязательно посмотрю продолжение. На уровне Sebastian Lague канал, только по русски. Даёшь ликбез в массы! Процветания каналу.
Это как минимум, контент Бомба :)
ТРЕБУЮ ЗАКРЕПИТЬ КОМЕНТ!!!
Я: кто такой Sebastian Lague?
* вбиваю в поиск *
Мне показывает канал с надписью: вы подписаны.
Если что, я мало на какие каналы подписан.
pro tip: watch series on Flixzone. Me and my gf have been using it for watching a lot of movies lately.
@Jamie Aryan Yea, have been watching on Flixzone for years myself :D
Наконец-то! Годный и качественный канал по Unity. Где разбираются интересные задачи. А не миллионный раз создают платформер.
Огромное спасибо, сегодня сделал свои моделки в воксели и настроил генерацию с помощью вашего канала и проекта! Теперь хочется строить города)
В юнити совсем не бум-бум, но каждый твой ролик помогает мне узнать что-то новое. Спасибо
Очень интересная и актуальная для меня тема. Спасибо за подробную информацию!
Блин, прям в точности то, что меня интересует последние время, словно мысли прочитали.) Будем смотреть.)
Кстати генерация майна наверно такая же
@@maldok4087, нет
@@maldok4087 нет, там не заготовленые тайлы, а рандомная генерация
@@maldok4087 Там шум Перлина используется
прекрасный канал с интересными задачами и таким же интересным решением
Очень крутое видео, ты лучший разработчик на юнити на всем ютубе)))
Спасибо что продолжаешь выпускать классные видео)
Мне эта генерация даже не нужна была, но видео прям затянуло. Мало ли, поможет когда-то, спасибо большое.
Парень ты вывел меня на другой уровень представления)) Спасибо, что ты есть)
Спасибо тебе за такие полезные видео! Продолжай снимать, многим этим помогаешь) Удачи в развитии канала!
Какой шустрый
Спасибо большое!
Вдруг попалось твоё видео. Алилуйя! Я тут пытаюсь по словарю (grammaly template rnd gen) что то-то приемлемое построить, пока получается только полная дичь или примитивизмЪ.
Но просто посмотрев твой ролик, где ты очень ясно излагаешь свои мысли, я придумал еще один вариант. Код - ничто. Идея - всё! Но идея без понимания, как это реализовать - тоже ничто! Рабочий код - это всё! Но рабочий код без понимания почему и как он работает - это опять ничто. Спасибо тебе за отличный ролик! Тут и идея и реализация.
Пожалуйста, сделай больше шрифт кода!
Генератор уникального контента!
Если чесно,то ничего в программировании не смыслю но коммент пишу для продвижения в масы) лайк тоже поставил
Это конечно интересно все(без иронии), но как сделать облака в HDRP как динамический skybox -это да-это та тема видоса которую я хочу увидеть. И вообще хочу и жду видосы с HDRP
Спасибо большое автору !!!
Коллапс волновой функции! Буквально пару недель назад про него статью писал!)
Спасибо за видос, как всегда информативно)
Что за статью? Я что-то про эту тему уже статьи четыре на хабре прочитал, вот и решил что точно нужно самому разобраться и другим рассказать)
@@EmeraldPowder я вконтакте пишу, отдельный мелкий паблик завёл, "Процедурный Вестник".
Статья называется "Не так страшен, как звучит: Коллапс волновой функции"
В основном там сверхпростым языком объясняются какие-то вещи из процедурной генерации. Поскольку я продаю софт тем людям, которые не сильно понимают, как это всё вообще работает, нужно как-то повышать образованность населения, так сказать)
На самом деле я собирался даже сделать видос про коллапс волновой функции, ибо видео про город зашло на ура вопреки низкому качеству, но раз уж ты(вы?) всё равно сделаешь видео на эту тему, и оно гарантированно будет лучше моего, то я выберу что-нибудь другое:D
@@EmeraldPowder upd:
только что проверил, паблик по поиску не бьётся, ибо мелкий, нужно смотреть по адресу /procedural_herald
Очень интересно увидеть вторую часть
Спасбио, в следующее воскресенье выйдет
Отдельное спасибо за шорткаты в райдере :)
просто лучший спасибо за туториал
Все впитал, спасибо за контент !
Однозначно лайк
оч круто🙂
Спасибо!)
Ну лайк!
хорошее видео, толково говорите
Спасибо ты гений
Получаю базовые знания о программировании из этих видео, языки прийдется учить самому но зато механики узнаю
Спасибо огромное! Продолжай!
Лайк, это интересно
Лучший
Ничего не понял, но очень интересно :)
0:00 похоже на настольную игру "Каркасон". Что-то типа домино, но с дорогами, стенами, полями и т.п.
Как здесь 0:01 короче.
Да, есть небольшое сходство. Настолка кстати неплохая, играл)
Я спустился в комменты только чтобы найти комментарий о каркассоне
@@Какое-тосущество-г4ц Копец)
Лайк не глядя))
круто, но ведь соседние тайлы не обязательно могут быть одинаковые чтобы похходить друг другу.
Для поиска совпадения можно же использовать нижний (невидимый) слой тайла, так же тоже можно)
Круть!
я афигел спасибо
Ну ты крутой блин блинский!!
бро, извини, что лезу в твою песочницу, но не мог бы ты объединять видео по этой теме в один плейлист пожалуйста и в описании под видео оставлять ссылку на плейлист. я знаю, что их пока всего 2 на данный момент, но мне кажется зрителям так было бы удобней.
это очень скромная просьба, я не настаиваю
Сейчас они все в одном большом плейлисте про процедурную генерацию, наверное чуть позже сделаю отдельный для этой серии про тайлы и оставлю ссылку, спасибо за совет
@@EmeraldPowder На каком языке писал игру?
@@BlackWhite-gp8oz на Юнити только c#
@@zandkcsgo1040 мог сказать "на c#", я бы понял, а так у тебя не правильно сформулированное предложение
@@BlackWhite-gp8oz я бы так не сказал. Автор работает в юнити, а юнити поддерживает только язык с#
Привет, смотрю с интересом, и дальше буду смотреть части. Но есть пару моментов.
1) Не кажется ли тебе, что многовато хардкода с UV координатами? То что там не более 256 пикселей, то что смотрим только на x?
2) У тебя функция с рейкастом возвращает номер пикселя, и если не находит, вернет 0. Мне кажется, это не очень хорошо, ведь если точки на uv координате будет стоять в самом центре первого пикселя, то при усножении на 256 все равно даст 0. И тогда можно возникнуть путаница. Можно конечно сделать возвращать -1, если ничего не нашлось, но ещё лучше возвращать null(для этого нужно преобразовать тип возвращаемого значения в нулебл тайп, private !int...)
3) не очень хорошая идея сравнивать вектора. Дело в том, что они состоят из float, а сравнивать их опасно. Под сравнеием Я имею ввиду только операции == и != . Это из-за того, что float может в люой момент скакнуть с 1 на 0.99999 или 1.00001, и тогда == выдаст false. Так что, Я бы тут лучше сделал enum
4) Это уже мелочь совсем, но все же. Не думаю, что эта экономия на спичках с байтами, даст хоть какой-то прирост в производительности. А вот проблемы потенциально создать может.
Привет. Спасибо за замечания! Все по существу
Хардкода немало, да, но если модельки из MagicaVoxel то эти вещи не будут меняться. А если какие-то другие - то в принципе несложно зайти и поменять. Хардкода в видосах вообще получается больше чем в обычном коде, чтобы не тратить время видео на вынос всех переменных
Про 0 - да, наверное стоило об этом в видео сказать. Я нулевой цвет не использую, но можно поменять на int и сделать -1 для пустого цвета, если нужны все 256 из палитры. Nullable тоже можно, но он потяжелее будет. byte vs int - на 10 тайлов будет 2.5KB vs 10KB, в любом случае совсем не страшно
С векторами тоже сделал бы enum, но в видосе торопился и сделал так. Работать будет, они скачат только если с ними математические операции выполнять, если просто записать (0,1,0) то там всегда (0,1,0) и будет. Но если вот разделить на 2 и потом умножить то скакнёт, или вычесть и прибавить одно и то же число
@@EmeraldPowder Я понимаю, что эти замечания актуальны скорее для реального кода, чем для туториала. А про флоат - это просто личная боль, и Я уже просто боюсь его сравнивать напрямую) Кстати, в MagicaVoxel нельзя выставить, чтобы она экспортировала не 1*256, а 16*16?
float дает погрешность непредсказуемо. Даже не на очень то больших или маленьких числах. Поэтому... Кстати причина такого поведения флоата кроется в его реализации, а не в "размерности", это никак не связано с переполнением битового пространства отведенного под хранение.
Несколько замечаний.
2) В целом верно, но вместо возврата null лучше использовать Try Pattern
3) float сам по себе не может скакнуть с 1 на соседнее число. Енам тут, очевидно, стоит делать, но ваше утверждение насчёт float не совсем верно, просто есть числа, которые невозможно представить типом float, соответственно там может возникнуть погрешность, но само по себе это не происходит)
На порядок сложнее лабиринтов и чанков из прошлых видео.) Убил часа 3, наверное, но разобрался что в этих 20 минутах творится.)
Супер!!! Только шрифт мелковат.
Как сделать процедурную генерацию леревьев на этих обьектах??
Why was this recommended to me? Video looks cool though even if a can't understand it.
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
Зачем я твои видео смотрю все до конца аааа, я ведь даже на юните ничего дельного не сделпю
Во время видео.
- 8? Б** откуда 8? А это площадь стороны!
- 0.5 откуда? ААА Это размер вокса на 2 деленое.
- Тайл? Что за тайл такой? ААА я все забыл. А это квадратик в моделе.)
Спасибо. С отречества так мозг не напрягал. Удачи, и не останавливайся )
А как сделать большую разницу в высотах??
Наверное, странный вопрос, я переписывал код по видео, у меня появлялись ошибки с названием переменных. Решил скопировать код скрипта. Но теперь почему-то не видно лучей
меджикт воксель где ее лучше скачать?
0:27 - «о коллапсе волновой функции много говорят» Где говорят?) Собственно вопрос что/кого читать чтоб быть в курсе? Посоветуй плиз источники, где всякие такие штуки обсуждают, ну или вообще что-нить интересное.
Я в основном много статей на хабре видел:
habr.com/ru/post/475188/
habr.com/ru/post/437604/
habr.com/ru/post/461323/
habr.com/ru/post/488336/
@@EmeraldPowder Благодарствую
что за хоткей в 8:30?
а то не могу так сделать
прийдетсья переписовать?
:(😟
не какой скрипт нормально не могу сделать(
что за хот кей?
Вопрос, а можно это делать с не воксельными элементами
ого, всего лишь 8к подписчиков, я нашёл тебя
разве не лучше получать самые крайние точки меша чем пускать кучу рейкастов? да и оно будет странно работать если тайлы вплотную будут стоять друг к другу.
а так спасибо за урок) очень понятно и доступно объясняешь материал
Про крайним точкам меша цвет средних вокселей не определишь так просто, а если тайл 8*8 то они важны. Если вплотную то да, но я их тут расставляю сам, и потом скорее всего этот код будет вызываться только в редакторе, а массив цветов сохраняться где-нибудь в тайле
@@EmeraldPowder а как сделать рзменение высоты???
Отличные уроки, отличный контент! Я правильно понял, что после сбора цветовой информации по сторонам, ты хочешь вставить этот рассчитаный массив уже в префаб? Чтобы каждый раз не вычислять цвета?
Спасибо!
Да, можно этот массив сохранить в префаб чтобы потом не считать, думаю в одном из следующих видео добавлю это. Но вообще эти вычисления не такие сложные, можно оставить в процессе загрузки сцены, то есть в Start'e, если конечно тайлов не под сотню и оно не тормозит
Как сделать сетку? Чтобы объекты магнитились на центр каждой клетки?
Если при установке скриптом магнитились - делить координаты на размер клетки, округлять к целому, и обратно умножать. Если в редакторе - удерживать ctrl при перемещении, в Edit->Snap Settings настраивается размер сетки
@@EmeraldPowder Хорошо, спасибо!
Мне вот интересно как это синхронизировать в мультиплеерной игре
Если набор тайлов один, то не так сложно. Сервер или хост генерирует карту, и рассылает всем двумерный массив из номеров тайлов. В реальной игре конечно сложнее будет, со всякими поворотами и дополнительными параметрами для тайлов, но в целом идея такая
Hi emerald, great tutorial again! I am wondering why the raycasthit's tetuxreCoord.x gives the colorIndex.
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
@@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?
Привет!
Не замерял, насколько требователен такой подход к генерации уровня к системе?
Почему для генерации ты выбрал рейкасты для определения цветов и соответствий тайлов вместо преднастроенной матрицы соответствия + правила размещения?
По хорошему надо отдельным кодом, который выполняется при разработке игры, а не уже при запуске, посчитать и сохранить это всё куда-то чтобы потом использовалось. Но я до оптимизации уже не дошёл, и так было много всего. Точно не замерял, рейкасты не такие дорогие, но их там довольно много так что всё таки в готовой игре я бы не стал оставлять так
Чувак, где и как обучится программированию, я сколько не пытаюсь, не понимаю структуру
а почему ты используешь старую версию блендера? Ведь уже есть 2.83 версия
Привет, будут видосики "Все о DOTS" ?
А зачем тебе DOTS? ПишЫ мне на почту, я тебе курс скину.
А как по нагрузке?
Столько циклов и проверок
256 рейкастов на тайл это совсем не критично, учитывая что это один раз происходит на старте. Главное это не количество циклов в коде, а сколько раз код внутри них в итоге выполняется
Как изменить размер сетки для CTRL? Я искал, нигде не нашел, пишут невозможно
В верхнем меню Edit - Snap settings
Привет, помоги мне пожалуйста, как экспортировать анимацию в unity , а я делал в MagicalVoxel
Привет, карта будет генерироваться безконесно?
Привет, в моем проекте только заданного размера, но можно его расширить, и когда игрок двигается к краю генерировать следующий кусок
ты можешь сделать материал невидимка который скрывает даже часть модель? Я понятия не имею, как это сделать!
Мagic voxtel это конечно крутой конструктор но мне интересно сколько эта карта будет жрать ресурсов устройства на котором все это будет запускаться. А то я про magic voxtel слышал что там куева туча полигонов получается в простой модельке, и это вроде бы подтверждается. Ну если конечно все модельки не импортировать в какой либо редактор и не доводить до ума убрав лишние полигоны.
Получается больше чем если бы знающий человек моделлил тоже самое вручную, но все таки не прям на несколько порядков, так что можно и такие модельки использовать. Тем более в таком воксельном стиле вообще полигонов не так много. Но можно и довести до ума, если критична производительность на слабых телефонах, или каких-то тайлов на сцене тысячи спаунятся
Я не пробовал, но могу предположить, что это дело можно прям в юнити доводить до ума тулзой ProBuilder. Ну то есть открывать на редактирование модель и объединять/удалять полигоны. Раньше от этой же команды была тулза QuickEdit, не знаю, жива ли она сейчас.
почему 8*8 а не 10 * 10 , чтобы в юнити был размером 1*1 ?
Мудрота.
Офтопный вопрос, что за текстовой редактор? Никак не привыкну к VS, оч хотелось бы что-то еще попробовать адекватное, с поддержкой Юнити-подсказок.
Jetbrains Rider
А что за коллапс волновой функции?
Очень умно звучащее название алгоритма генерации, который будет в следующих частях видео. Там чуть ниже есть ссылки на статейки про него
а как это в 2д реализовать?
Тоже самое, но брать цвет крайних пикселей. Можно облегчить алгоритм, задав для всех возможных типов сторон свое значение, тогда не придется сканировать пиксели.
можешь исходный код скинуть на диск, а не на сайт, куда платить надо?
Я обычно на GitHub заливаю проекты, там все бесплатно. Когда доделаю оставшиеся видео обязательно выложу!
А нельзя этот цвет как-то без физики определять? Тут же фиксированные размеры и ты знаешь, где каждый воксель находится.
Где находится воксель знаю, но чтобы понять в какой треугольник он экспортировался нужно либо делать рейкаст, либо можно перебрать все треугольники и посмотреть какие лежат на сторонах модели - но по сути это и есть переписать physics.raycast самому. Насчёт производительности эта часть физики не слишком затратная, тем более один раз при инициализации
@@EmeraldPowder если один раз, то можно наверно и в эдитор вообще вынести и сохранять в каком-нибудь поле префаба. Правда, не уверен насчёт физики в эдиторе.
жду 2 часть. Поэтому сделал свой TileMap - ua-cam.com/video/-s_cwjTdibE/v-deo.html
Классная идея ) но есть же textureCoord у хита ua-cam.com/video/iG_n23W952Y/v-deo.html , зачем так все усложнять ))
Хм, а ведь и правда. Я когда искал как получить координаты как-то эту фичу проглядел)
Шрифт побольше
О
у меня этот код тупо выдаёт несколько критических ошибок
No entiendo como terminó viendo estas cosas
я программирую 3 дня я ещё язык не знаю только до циклов дошёл. зачем я это смотрю
Сделай туториал, как сделать мульте плеер в 3D игре ПЖ
Что за скриптовый редактор юзаеш?
Jetbrains Rider, всем советую
@@EmeraldPowder никак не могу найти крякнутую версию. Раньше стояла, после переустановки винды не могу снова найти и не помню где брал
Ж*
Привет, очень крутые видео! Но, очень не хватает толкового урока, как сделать всё "K P A C U B O", то есть, НОРМАЛЬНО настроить пост обработку, освещение, сделать эффекты и т.д.
Д
На каком языке пишешь?
В юнити сейчас все на C# пишут
В
Н
Е
И
Видео я слишком глуп для такого, как не пытался всё ровно ничего не понял...
why is this in my recommended
П
Р
Достаточно проверять три цвета: два угловых и центральный, вместо того, чтобы писать всю строку.
Д
Е