Разработчики спорят о том, какой движок лучше) Отличный сериал кстати
https://www.youtube.com/watch?v=-axORNoikkI
https://www.youtube.com/watch?v=-axORNoikkI
YouTube
Голяк, Джим хвастается тачкой
#голяк #brassic #безгроша
Инверсная кинематика
Ещё одна очень полезная штука, которую "знать надо". В ней нет концептуально ничего сложного. Это набор математических правил, которые позволяют предсказать как будут расположены связанные между собой объекты при движении отдельных. Частный пример в играх — это персонажи. Часто необходимо взяться за трубу, и так как анимацией это не всегда удобно (да и возможно сделать), то в пару к анимациям идёт инвёрсная кинематика. Назначается целевая позиция кисти руки и пальцам, а локоть и плечо уже движутся в соответствии с инвёрсной кинематикой)
В Unity есть встроенная инвёрсная кинематика и для 2д и для 3д. Правда инвёрсную кинематику встроенную в Unity удобно использовать только для персонажки, для 3д она вообще работает только для гуманоидов. Хотя скажем делать ловушки с "агрессивными растениями" и щупальцами с помощью ИК очень удобно, и выглядят они интереснее, так как могут реагировать на произвольную позицию пользователя (просто при входе в триггер выставляется таргет на кость персонажа, чтобы его "схватить") Скажем если растение не убивает пользователя сразу, а хватает его за ногу, бьёт несколько раз и отпускает. Например подобным образом :)
Алгоритмы и реализации ИК бывают разные, одну из самых крутых, как я вчера говорил, купил Apple. Поэтому она больше недоступна для покупки. Пожалуй для 2д, я бы использовал кинематику в пакете Unity, а для 3д сейчас оставшийся Final IK. С помощью ИК как можно делать анимации (хотя зачем это делать в Unity, если для этого есть специализированный софт, но ничто не мешает), но основное — это реакция на препятствия и объекты)
Ну и конечно же нельзя не вспомнить главное применение ИК — это VR. Чаще всего пользователь в VR представлен несколькими точками. Голова и два контроллера. А при этом аватар очень сильно помогает погружению и восприятию себя в VR. Инвёрсная кинематика позволяет сделать по трём точкам движение целого скелета (правда в паре с технологией Locomotion, которая так же теперь есть в виде Unity пакета) Я когда-то делал механику перемещения в невесомости цепляясь за трубы. И там как раз виртуальная рука хваталась за трубу, когда реальная проходила за неё или сквозь неё. Но так как любое "рука вошла в стену", отталкивало пользователя в невесомости, воспринималось в VR это очень прикольно)
И ещё для фильтрации шумных данных, от того же arkit в XR, так как шаг кинематики позволяет получить данные в разы аккуратнее, чем то что возвращают технологии компьютерного зрения. В том же трекинге рук достаточно 5 точек пальцев и центр кисти, а остальное уже можно построить по кинематике, её проще сгладить и отфильтровать не создавая лишних артефактов)
Ещё одна очень полезная штука, которую "знать надо". В ней нет концептуально ничего сложного. Это набор математических правил, которые позволяют предсказать как будут расположены связанные между собой объекты при движении отдельных. Частный пример в играх — это персонажи. Часто необходимо взяться за трубу, и так как анимацией это не всегда удобно (да и возможно сделать), то в пару к анимациям идёт инвёрсная кинематика. Назначается целевая позиция кисти руки и пальцам, а локоть и плечо уже движутся в соответствии с инвёрсной кинематикой)
В Unity есть встроенная инвёрсная кинематика и для 2д и для 3д. Правда инвёрсную кинематику встроенную в Unity удобно использовать только для персонажки, для 3д она вообще работает только для гуманоидов. Хотя скажем делать ловушки с "агрессивными растениями" и щупальцами с помощью ИК очень удобно, и выглядят они интереснее, так как могут реагировать на произвольную позицию пользователя (просто при входе в триггер выставляется таргет на кость персонажа, чтобы его "схватить") Скажем если растение не убивает пользователя сразу, а хватает его за ногу, бьёт несколько раз и отпускает. Например подобным образом :)
Алгоритмы и реализации ИК бывают разные, одну из самых крутых, как я вчера говорил, купил Apple. Поэтому она больше недоступна для покупки. Пожалуй для 2д, я бы использовал кинематику в пакете Unity, а для 3д сейчас оставшийся Final IK. С помощью ИК как можно делать анимации (хотя зачем это делать в Unity, если для этого есть специализированный софт, но ничто не мешает), но основное — это реакция на препятствия и объекты)
Ну и конечно же нельзя не вспомнить главное применение ИК — это VR. Чаще всего пользователь в VR представлен несколькими точками. Голова и два контроллера. А при этом аватар очень сильно помогает погружению и восприятию себя в VR. Инвёрсная кинематика позволяет сделать по трём точкам движение целого скелета (правда в паре с технологией Locomotion, которая так же теперь есть в виде Unity пакета) Я когда-то делал механику перемещения в невесомости цепляясь за трубы. И там как раз виртуальная рука хваталась за трубу, когда реальная проходила за неё или сквозь неё. Но так как любое "рука вошла в стену", отталкивало пользователя в невесомости, воспринималось в VR это очень прикольно)
И ещё для фильтрации шумных данных, от того же arkit в XR, так как шаг кинематики позволяет получить данные в разы аккуратнее, чем то что возвращают технологии компьютерного зрения. В том же трекинге рук достаточно 5 точек пальцев и центр кисти, а остальное уже можно построить по кинематике, её проще сгладить и отфильтровать не создавая лишних артефактов)
👍8
Интересная статья от Unity про профайлинг. Чарт из неё прям можно распечатать и повесить на стену :)
https://blog.unity.com/technology/profiling-in-unity-2021-lts-what-when-and-how
https://blog.unity.com/technology/profiling-in-unity-2021-lts-what-when-and-how
Unity
Profiling in Unity 2021 LTS: What, when, and how
Developing expertise with Unity’s suite of profiling tools is one of the most useful skills you can add to your game development toolbox. Thorough profiling can massively boost the performance of your game, so we want to help you get started with key tips…
👍1
Unity собирается закрыть Unity Answers
Как сделать скандал на ровном месте? Убрать инструмент у которого есть комьюнити и которым пользуются все. Unity недавно объявило, что они собираются закрыть Unity Answers, так как он не пользуется особой популярностью. Хотя многие им пользуются думаю каждый день. В итоге вроде они дали заднюю, и решили повременить с этим великолепным решением
Изучив всё по теме, чем обосновано решение. Так как моя первая мысль была "Маленькой инди-компании жалко баксов на хранение ДБ и доступа к ней?". Ладно режим ридонли с альтернативами лучше ещё можно понять. Но просто положить всю базу знаний собираемую комьюнити годами. Это уровень. Даже для Unity. Причины, что эта штука базируется на легаси платформе, которую сложно поддерживать, и что мало кто сейчас отвечает на вопросы на сервисе. Но из-за этого класть огромную базу знаний — это уровень
Вроде как получив кучу хейта ребята дали заднюю и пока думают дальше. Так как если они его всё-таки просто положат и вопросы перестанут индексироваться — ну это прям "со дна постучали". Больше всего мне понравилась в ветке шутка про "Unity убивает Unity Answers", "Unity открывает платное вики с доступом по подписке")
Как сделать скандал на ровном месте? Убрать инструмент у которого есть комьюнити и которым пользуются все. Unity недавно объявило, что они собираются закрыть Unity Answers, так как он не пользуется особой популярностью. Хотя многие им пользуются думаю каждый день. В итоге вроде они дали заднюю, и решили повременить с этим великолепным решением
Изучив всё по теме, чем обосновано решение. Так как моя первая мысль была "Маленькой инди-компании жалко баксов на хранение ДБ и доступа к ней?". Ладно режим ридонли с альтернативами лучше ещё можно понять. Но просто положить всю базу знаний собираемую комьюнити годами. Это уровень. Даже для Unity. Причины, что эта штука базируется на легаси платформе, которую сложно поддерживать, и что мало кто сейчас отвечает на вопросы на сервисе. Но из-за этого класть огромную базу знаний — это уровень
Вроде как получив кучу хейта ребята дали заднюю и пока думают дальше. Так как если они его всё-таки просто положат и вопросы перестанут индексироваться — ну это прям "со дна постучали". Больше всего мне понравилась в ветке шутка про "Unity убивает Unity Answers", "Unity открывает платное вики с доступом по подписке")
Unity Forum
Official - Unity Answers shutdown - canceled
Edit from June 15
We have canceled the plan to sunset Unity Answers by June 23 and will keep it operational.
Your feedback made it clear that many of...
We have canceled the plan to sunset Unity Answers by June 23 and will keep it operational.
Your feedback made it clear that many of...
👍5
Я пока в запаре, так что не успеваю что-то новое писать сюда) Ноооо скоро я разгребусь и вернусь. Честно-честно. Просто запуск нескольких проектов, миллиард дел, а ещё книгу нужно таки дописать, а то с меня её скоро спросят XD
А пока могу посоветовать почитать блог моего бывшего комрада по вектору 2 и в целом крутого левел дизайнера https://news.1rj.ru/str/vskobelev Если интересуетесь левелдизайном, то думаю он вам будет полезен, как минимум со статьями на хабре я бы рекомендовал ознакомиться точно. Да и если просто интересуетесь играми, то вам думаю тоже будет интересно :)
А я скоро вернусь и если соберусь с силами, то первую статью из цикла уже завтра выложу :)
А пока могу посоветовать почитать блог моего бывшего комрада по вектору 2 и в целом крутого левел дизайнера https://news.1rj.ru/str/vskobelev Если интересуетесь левелдизайном, то думаю он вам будет полезен, как минимум со статьями на хабре я бы рекомендовал ознакомиться точно. Да и если просто интересуетесь играми, то вам думаю тоже будет интересно :)
А я скоро вернусь и если соберусь с силами, то первую статью из цикла уже завтра выложу :)
Telegram
Блог Василия Скобелева
РЕКЛАМУ НЕ БЕРУ
Анализ дизайна игр от опытного разработчика. А ещё личное мнение, календарь релизов и котики =)
Личный сайт:
skobelev.su/ru
Донат:
boosty.to/vskobelev/donate
Личка:
@VasiliySkobelev
Анализ дизайна игр от опытного разработчика. А ещё личное мнение, календарь релизов и котики =)
Личный сайт:
skobelev.su/ru
Донат:
boosty.to/vskobelev/donate
Личка:
@VasiliySkobelev
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Каустика
Довольно забавный эффект про которые написано куча статей, одна из моих любимых по простейшей реализации https://www.alanzucconi.com/2019/09/13/believable-caustics-reflections/
Для разминки написал подобную версию, которая чуть-чуть более логична, так как использует не uv, а мировые координаты и ложится на поверхность как бы сверху + на URP и шейдер графе. Мало ли кому-то пригодится)
Довольно забавный эффект про которые написано куча статей, одна из моих любимых по простейшей реализации https://www.alanzucconi.com/2019/09/13/believable-caustics-reflections/
Для разминки написал подобную версию, которая чуть-чуть более логична, так как использует не uv, а мировые координаты и ложится на поверхность как бы сверху + на URP и шейдер графе. Мало ли кому-то пригодится)
👍15🔥3
Сходил на эпиккон, прикольный конвент, косплеи классные, было интересно, хотя как разработчику стендов не хватает дигитала) Ну и конечно же «За Альянс!» :)
Надо на следующей неделе таки добраться до моей статьи по ИИ :)
Надо на следующей неделе таки добраться до моей статьи по ИИ :)
Шейдертой
Один из неплохих способов разобраться в шейдерах, ковырять чужие шейдеры. И для этого есть неплохой ресурс — https://www.shadertoy.com
Он не единственный, но и там огромная коллекция интересных шейдеров. Написаны они правда на glsl, а шейдерлаб Unity используют hlsl. И часто написаны не очень хорошо, но эффекты там всё равно красивые и можно вдохновится интересными эффектами и посмотреть разные подходы)
Кроме того есть классный проект переводящий шейдертой шейдера в шейдеры для Unity https://github.com/smkplus/ShaderMan Он позволяет на основе шейдера из шейдертоя сгенерить шейдер для Unity, что бывает полезно. В общем советую попробовать поделать на основе шейдеров с шейдертоя поделать свои эффекты, пооптимизировать описанные там. Да и в целом иметь на вооружении при работе всю библиотеку шейдертоя бывает очень полезно :)
Один из неплохих способов разобраться в шейдерах, ковырять чужие шейдеры. И для этого есть неплохой ресурс — https://www.shadertoy.com
Он не единственный, но и там огромная коллекция интересных шейдеров. Написаны они правда на glsl, а шейдерлаб Unity используют hlsl. И часто написаны не очень хорошо, но эффекты там всё равно красивые и можно вдохновится интересными эффектами и посмотреть разные подходы)
Кроме того есть классный проект переводящий шейдертой шейдера в шейдеры для Unity https://github.com/smkplus/ShaderMan Он позволяет на основе шейдера из шейдертоя сгенерить шейдер для Unity, что бывает полезно. В общем советую попробовать поделать на основе шейдеров с шейдертоя поделать свои эффекты, пооптимизировать описанные там. Да и в целом иметь на вооружении при работе всю библиотеку шейдертоя бывает очень полезно :)
👍13🔥1
Хороший старый доклад с Unite по оптимизации в графике https://www.youtube.com/watch?v=JUiO64KbAHA
YouTube
Look Ma, No Jutter! Optimizing Performance Across Oculus Mobile - Unite LA
The introduction of mobile AR means the arrival of more accessible devices, and for developers, a broader range of consumers to target. The good news is that you're "already ready." A stable of universal techniques and best practices can help reduce draw…
👍3
Оптимизации — дело тонкое
На Unite в целом много крутых докладов, которые стоит посмотреть. Вот ещё один из них https://www.youtube.com/watch?v=oatF8e_PPh0 Оптимизации дело тонкое, потому что если хочется добиться графики мирового класса, то нужно оптимизировать всё в контексте проекта. Никакие общие решения и техники не дадут аналогичных результатов в визуале никогда. У вас изометрия, глупо использовать 3д. У вас 3д, но с фиксированными пролётами камеры — есть тоже ряд техник. У вас используется блюр, его можно красиво переиспользовать. У вас стилизация с фиксированным числом цветов, тогда по весу можно запихать в одну текстуру множество математикой. Техник и идей масса, и это ещё не беря что-то сложное, поэтому очень полезно смотреть доклады и учиться на чужом опыте. Причём даже не столько тому, а как у них сделано, а как нужно думать и какой логике рассуждений следовать оптимизируя тот или инной модуль)
Ну и конечно не забывать, что преждевременные оптимизации зло. Если у вас нет ресурсов и времени выжимать графику на максимум (без опыта это вообще очень долгая история), то не стоит экономить на спичках. Всегда нужно понимать помимо прочего контекст условий и задач разработки. Так как очень часто я вижу странные оптимизации там, где в этом и смысла то в принципе нет)
На Unite в целом много крутых докладов, которые стоит посмотреть. Вот ещё один из них https://www.youtube.com/watch?v=oatF8e_PPh0 Оптимизации дело тонкое, потому что если хочется добиться графики мирового класса, то нужно оптимизировать всё в контексте проекта. Никакие общие решения и техники не дадут аналогичных результатов в визуале никогда. У вас изометрия, глупо использовать 3д. У вас 3д, но с фиксированными пролётами камеры — есть тоже ряд техник. У вас используется блюр, его можно красиво переиспользовать. У вас стилизация с фиксированным числом цветов, тогда по весу можно запихать в одну текстуру множество математикой. Техник и идей масса, и это ещё не беря что-то сложное, поэтому очень полезно смотреть доклады и учиться на чужом опыте. Причём даже не столько тому, а как у них сделано, а как нужно думать и какой логике рассуждений следовать оптимизируя тот или инной модуль)
Ну и конечно не забывать, что преждевременные оптимизации зло. Если у вас нет ресурсов и времени выжимать графику на максимум (без опыта это вообще очень долгая история), то не стоит экономить на спичках. Всегда нужно понимать помимо прочего контекст условий и задач разработки. Так как очень часто я вижу странные оптимизации там, где в этом и смысла то в принципе нет)
YouTube
Unite 2016 - A Guide for Achieving World-Class Visuals on Mobile Devices
The developers of CSR Racing 2 show how they pushed the visual fidelity, making sure that their graphics pipeline would remain competitive throughout their global release window and beyond. This talk covers how the use of Unity in their vehicle rendering…
Прикольные репозитории
Юнити такой движок, что помимо самого движка есть огромное число прикольных штук сделанных комьюнити. Одна из таких система воксельного света https://github.com/sonicether/SEGI Она конечно старенькая, но всё равно рекомендую поковырять она на билд ин рендере достаточно забавна :)
Юнити такой движок, что помимо самого движка есть огромное число прикольных штук сделанных комьюнити. Одна из таких система воксельного света https://github.com/sonicether/SEGI Она конечно старенькая, но всё равно рекомендую поковырять она на билд ин рендере достаточно забавна :)
GitHub
GitHub - sonicether/SEGI: A fully-dynamic voxel-based global illumination system for Unity
A fully-dynamic voxel-based global illumination system for Unity - sonicether/SEGI
Прикольный список крутых VFX артистов :) https://80.lv/articles/real-time-vfx-artists-you-should-follow/?amp=1
80LV
Real-Time VFX Artists You Should Follow
Keith Guerrette advised on learning materials for VFX production and gathered a large list of awesome artists who you can get useful tips and inspiration from!
👍6
Курсы и обучение новичков
Я тут недавно наткнулся на забавный ролик, где человек ругает курсы и всяких ребят на ютубе за говнокод, когда составляется туториал для новичка. Ну перед сном почему бы и не глянуть, что за пример хорошего обучающего кода там будет. Увидев его код я в целом закрыл ролик моментально. Пример плохого кода, конечно если такие прям есть в скиллбоксе — это печаль. Но я не думаю, что ребята оттуда делают Find в Update. Это единственное за что сильно зацепился взгляд)
Хороший код, а точнее так, действительно хороший код, требует понимания огромного числа концепций и опыта. Плохой пример был действительно плохой, но его можно довести до нормального. А вот хороший код не будет понятен ни одному новичку и учит плохому. И вот почему)
1. Я считаю использование фреймворков в обучении, кроме базовых (типа юнити, или какого-нить плейканваса) — в целом плохим тоном. Понимание самой концепции фреймворков — высокоуровневое знание. Если за тебя всё решают ассеты, плагины и т.п. в реальной работе ты будешь в аду. Так как в сущности ты умеешь не программировать, а собирать конструктор лего. Если делается хорошее решение, это надо ещё и кастомизировать. Допустим я часто ругаюсь на использование Lean Touch в проектах. Он прекрасен, но когда нужен какой-то кастом, то переписать его гемор. А использование целого плагина, когда в билде даже Pinch не используется — ну это сильно. Тащим ассет вместо 5 строк кода. Собственно в "хорошем примере" всё базируется на фреймворке, поэтому я почти сразу закрыл видео
2. Наследование и принципы ООП — это не простые концепции. Второе что зацепило взгляд в "хорошем" примере для новичков — это наследование. Это не базовое знание, не все новички программисты в целом, а тут у нас сразу один и столпов ООП, которым то не все мидлы умеют правильно пользоваться. Сначала обучаясь нужно просто получить прикольные результаты минимальным числом знаний концепций. Так как сначала человека надо увлечь и показать, что ничё страшного тут нет, и вот ты тут написал 5 строк текста, а у тебя весёлая интерактивная фигня на экране появилась)
3. События. События — это тоже высокоуровневый концепт, который нужно долго пояснять человеку, который пока не до конца понимает концепции массивов, циклов, переменных, классов и т.п.
В общем все эти разоблачения курсов смотрятся забавно) Типа всегда нужно держать в голове что половина материалов на хабре — говнокод, половина уроков на ютубе или курсов — говнокод (ближе к нормальному, но не к хорошему), но часто у них просто другая цель и контекст создания. Я предпочитаю курсы на Udemy, так как они, на мой взгляд, полезнее и дешевле, и изучаю всё там. Но понимаю почему школы пишут именно "просто". Типа есть откровенные косяки. За файнд в апдейте можно с собеседования выйти в целом сразу) Но то, что при изучении понятия ригидбади подход не как к системе, а как отдельной выделенной точке — это нормально. У меня вообще половина кода такие, так как я последнее время компонентный подход люблю больше, чем классическое ООП из-за специфики проектов)
Я тут недавно наткнулся на забавный ролик, где человек ругает курсы и всяких ребят на ютубе за говнокод, когда составляется туториал для новичка. Ну перед сном почему бы и не глянуть, что за пример хорошего обучающего кода там будет. Увидев его код я в целом закрыл ролик моментально. Пример плохого кода, конечно если такие прям есть в скиллбоксе — это печаль. Но я не думаю, что ребята оттуда делают Find в Update. Это единственное за что сильно зацепился взгляд)
Хороший код, а точнее так, действительно хороший код, требует понимания огромного числа концепций и опыта. Плохой пример был действительно плохой, но его можно довести до нормального. А вот хороший код не будет понятен ни одному новичку и учит плохому. И вот почему)
1. Я считаю использование фреймворков в обучении, кроме базовых (типа юнити, или какого-нить плейканваса) — в целом плохим тоном. Понимание самой концепции фреймворков — высокоуровневое знание. Если за тебя всё решают ассеты, плагины и т.п. в реальной работе ты будешь в аду. Так как в сущности ты умеешь не программировать, а собирать конструктор лего. Если делается хорошее решение, это надо ещё и кастомизировать. Допустим я часто ругаюсь на использование Lean Touch в проектах. Он прекрасен, но когда нужен какой-то кастом, то переписать его гемор. А использование целого плагина, когда в билде даже Pinch не используется — ну это сильно. Тащим ассет вместо 5 строк кода. Собственно в "хорошем примере" всё базируется на фреймворке, поэтому я почти сразу закрыл видео
2. Наследование и принципы ООП — это не простые концепции. Второе что зацепило взгляд в "хорошем" примере для новичков — это наследование. Это не базовое знание, не все новички программисты в целом, а тут у нас сразу один и столпов ООП, которым то не все мидлы умеют правильно пользоваться. Сначала обучаясь нужно просто получить прикольные результаты минимальным числом знаний концепций. Так как сначала человека надо увлечь и показать, что ничё страшного тут нет, и вот ты тут написал 5 строк текста, а у тебя весёлая интерактивная фигня на экране появилась)
3. События. События — это тоже высокоуровневый концепт, который нужно долго пояснять человеку, который пока не до конца понимает концепции массивов, циклов, переменных, классов и т.п.
В общем все эти разоблачения курсов смотрятся забавно) Типа всегда нужно держать в голове что половина материалов на хабре — говнокод, половина уроков на ютубе или курсов — говнокод (ближе к нормальному, но не к хорошему), но часто у них просто другая цель и контекст создания. Я предпочитаю курсы на Udemy, так как они, на мой взгляд, полезнее и дешевле, и изучаю всё там. Но понимаю почему школы пишут именно "просто". Типа есть откровенные косяки. За файнд в апдейте можно с собеседования выйти в целом сразу) Но то, что при изучении понятия ригидбади подход не как к системе, а как отдельной выделенной точке — это нормально. У меня вообще половина кода такие, так как я последнее время компонентный подход люблю больше, чем классическое ООП из-за специфики проектов)
🔥10👍2👎1
Прикольный репозиторий с системой для паркура https://github.com/knela96/Dynamic-Parkour-System
👍6