Григорий Дядиченко – Telegram
Григорий Дядиченко
2.82K subscribers
395 photos
160 videos
7 files
1.2K links
Разработчик игр, интерактивных стендов и интерактивной рекламы. Эксперт в области интерактивов и XR.

100+ проектов за 5 лет.

По вопросам сотрудничества писать: @it_bizdev
Реклама в канале: https://vk.cc/cNhGLE
Download Telegram
Дагестан

Недавно по работе я ездил в Дагестан. Многие почему-то боятся туда ездить) Ну хотя в Москве иногда бывает понятно почему. Что я могу сказать проведя там неделю :) Там шикарно с поправкой на горы)

1. Люди

Добрые, отзывчивые, часто могут что-то подсказать :) ГАИ в целом когда мы повернули куда-то не туда, показало нам куда ехать, чтобы мы не заблудились)

2. Еда

Очень много всякого вкусного и очень недорого :)

3. Красота

Много красивых мест, в горах в целом красиво, и на море. Салтинский водопад, Гамсутль, Эргонай, ну и в целом можно просто ехать и залипать на горы :)

Но могу сказать одно. Без машины там делать нечего) Конечно машину я бы брал в аренду прям там, это в целом недорого :) А так, классно, красиво :) Хотя из-за гор, как я понял от местных, летом днём там будет супер жарко :) Ну и несколько фотографий :)
🔥12
Прикольная тулза для визуального дебага, очень прикольно нарисованы сферкасты и т.п. :) https://github.com/vertxxyz/Vertx.Debugging
Астрологи объявили неделю дебаг инструментов. Число инструментов для дебага выросло на 100%

Иногда хочется просто протестировать запрос, но лезть в Postman или в Swagger лень, или писать кастомную кнопку в инспекторе :) Есть такой репозиторий https://github.com/ErnSur/Unity-Http-Debugger

Постман на минималках, но зато в Unity :)
👍2
Меняйте иногда парадигму

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

Но теперь история. Я учился в МИЭМ ВШЭ и там один из преподавателей на курсе программирования решил показать ассемблер. Из идеи как раз того, что мы будем писать ассемблерные вставки. С этим он конечно не угадал, в коммерции я буду первым, кто за такие приколы людям руки отрывать будет, но это было круто с другой точки зрения. У меня просто ломался мозг после С++, и я ничего не понимал. Так как всё работает по-другому. Когда я разобрался в ассемблере, тогда конечно всё стало просто, да и он в разы проще, чем те же плюсы на самом деле, если писать на нём, а не вкуривать скомпилированную программу, ну и писать что-то небольшое)

Так же я решил в прошлом году, что для полной кроссплатформенности мне не хватает веб экспертизы, и тут я решил изучить react.js и реактивную парадигму) И это прошло примерно так же. Это интересно тем, что изучая разноплановые вещи ты начинаешь вообще мыслить в другом ключе, понимать почему скажем кто-то так любит функциональный подход, а кто-то объектно-ориентированный. И когда ты знаешь что-то одно, ты замкнут рамками своего инструмента) И иногда решаешь задачи сложнее, чем скажем просто кусок программы написать чистой функцией (а не всю), чтобы она вообще не имела состояния)

Почему это не только про программирование? Я обожаю графику и VFX, и после этого видео https://www.youtube.com/watch?v=NH1TLyiJVHU я в целом стал по-другому смотреть на заклинания, и на то, как рисуется правильное свечение чего-либо, что мне очень понравилось. А так же на то, как лучше крутить пост процессинг) И когда это понимаешь, то ты уже знаешь "куда смотреть", когда делаешь какой-то визуал или эффект :)
👍5
Продолжаем ковырять разные технологии WebAR — MindAR https://hiukim.github.io/mind-ar-js-doc

Фейсмаски в паре с айфреймом работают прям кул :) Работает весьма достойно и красиво) https://hiukim.github.io/mind-ar-js-doc/face-tracking-samples/minimal.html

Image Tracking — как и на всём бесплатном работает отвратительно. Автор проделал большую работу, но на мой взгляд просто перемудрил с фильтрами. Если что-то, что прям ну совсем "около летает" сделать можно, то сравнивая с самым простым AR трекингом на мобилках — фигня. Как и AR.js. У меня уже руки чешутся самому сесть и написать свой велосипед)

Но в целом всегда любопытно ковырять чьё-то опенсорс сдк :)
Камера на гироскопе

Я потихоньку разрабатываю свой продукт (пока WIP, запуск на следующей неделе) И довольно забавное открытие, как в Unity сделать гироскопическую камеру на WebGL для этой штуки https://whitelabelgames.ru/game/ar-bow

Оставлю тут #сниппет вдруг кому пригодится

Для работы нужно 4 шага:

1. Сайт обязательно должен быть на HTTPS
2. На айос нужно запросить разрешение, причём обязательно через клик по кнопке
3. Нужно в Unity сделать Input.gyro.enabled = true;
4. Сам сниппет https://gist.github.com/Nox7atra/e9f61e7ac4f37e8cd1190ac63875cfc7

Ещё кстати забавный факт про Mi телефоны. Редми считает, что он не Android, а Linux, поэтому считается десктопом в юнити проверке Application.isMobilePlatform. Более полная проверка правильно определяющая телефоны Mi выглядит так (потом прокину себе через jslib в Unity) https://gist.github.com/Nox7atra/9706c77b94d870502c8f01870fe516a0 То есть в андроид в проверку юзерагента надо добавить navigator.userAgent.match(/Miui/i) :)

Мало ли вдруг кому пригодится, чтобы время не тратить :)
👍2
Это было вчера и я как-то пропустил) Тени в URP и визуальное программирование конечно выглядят весьма любопытно) Надо их поковырять :)

https://www.youtube.com/watch?v=7NkpMU47-b8
Асинхронная загрузка и инстанцирование префабов

Вообще это довольно глубокая тема, так как что такое префаб? По сути это ямлевый конфиг и основной вес там занимают ассеты, на которые он ссылается. Эти ассеты можно грузить асинхронно сделав кастомные парсеры ресурсов, которые работают хоть в отдельном потоке. Я когда-то писал такой для 3д моделей, чтобы асинхронно и прогрессивно грузить модели по несколько gb. Работает правда только с Obj, но надо будет тоже оформить и выложить в опенсорс :)

Что-то там работает через Addressables, но на трёх проектах адресаблы так зарекомендовали себя, что к ним я ближайший год не подойду. Так как там очень много неочевидного поведения или же просто неудобного, на мой взгляд. Может я просто не умею их готовить :)

Но допустим у вас задача ставить 10000 юнитов в кадр (зачем-то, хотя допустим пример вокселизации более понятен и прогрузки воксельной модели) или просто много однотипных объектов, а фризить игру не хочется. Я написал довольно общий пример, как это можно делать :) https://github.com/Nox7atra/AsyncPrefabLoader Может кому-то будет полезно :) На дженериках, чин по чину :)

В целом тут стоит вспомнить паттерн Команда (https://news.1rj.ru/str/dyadichenkoga/76) потому что принцип примерно такой же, и он показывает насколько удобно с помощью команды делать асинхронные или отложенные операции вообще на любую тему, какая вам только вздумается :)
👍2
Сайт с экспериментами https://noxatra.ru

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

Туда я буду публиковать всякие вещи, которые можно показать веб билдами. VFX, графику, упражнения и многое другое :) Плюс есть пару идей сделать несколько прикольных интерактивов на тот же ИИ

Кроме того хочется делать больше мелкого опенсорса, каких-то туториалов и продуктов. На этот год у меня много планов :)

Ну и как подарок на др поделитесь каналом со знакомыми. Больше подписчиков богам подписчиков)
🔥9
О, новые покемоны + тамагочи в AR :) https://www.playperidot.com/en

Зачем в механике тамагочи AR мне не совсем понятно, но будем посмотреть) Вдруг Niantic придумали что-то интересное :)
This media is not supported in your browser
VIEW IN TELEGRAM
Мини анонс, что для канала WIP

Я подумал, что будет прикольно на сайте оформлять сниппеты сразу с WebGL визуализацией того, что он делает + текстовым описанием

Так можно будет оформлять шейдера (правда не все в вебе будут работать конечно, поэтому надо наверное предусмотреть замену на видео), оформить так паттерны и многое другое. Осталось собрать удобный веб тимплейт :) И написать пост процессор билда, который по конфигу будет генерировать это) Потому что пихать C# ход в html или hlsl руками — это дико неудобно

Если считаете, что так будет полезно и наглядно — ставьте 👍 или 🔥 :) Просто объяснения паттернов в телеге простым языком — это конечно хорошо, но наверное где-то должна быть их компиляция с возможностью посмотреть и в интерактивной форме лучше вкурить о чём речь :) На видео так сказать "начало вёрстки того, как это будет выглядеть"
👍19
Роадмап Unity 2022 на GDC

Которая выжимка самого интересного, что рассказали:

1. Наконец-то можно будет указать, где хранить пакеты и мультиселект. Мелочь, но когда нужно пачками отключать билтин пакеты и функции — отсутствие мультиселекта бесит)

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

2. Кастомизация поиска — кайф

3. Поддержка хоткеев с мышью в редакторе — хотеть

4. Про URP вообще ничё интересного — "всё будет лучше" и "покажем как надо на нашей игре"

5. HDRP — рейтрейсинг в 4к и варианты материалов это любопытно

6. VFX Graph — улучшение инструментария, что всегда кул

7. Прикольные улучшения для энвайремент артистов

8. Adaptive Probe Volume доедет до URP

9. Деформации, спрайт свап и инвёрсная кинематика в движковом инструменте для создания 2д анимаций

10. Sprite Shader API — хотеть. Конечно шейдера и сейчас можно писать, но с плясками с бубном. Если сделают удобнее — кайф

11. Улучшения Memory Profiler — кайф

Я взял только то, что интересно мне, так что рекомендую глянуть если что) Ещё может и не зря юнити дропнули проджект тайни. Так как по тому, о чём речь, их идея сделать, чтобы Unity можно было без всяких пакетов использовать для легковесных WebGL игр. Ну поживём — увидим :)

Сам ролик:
https://www.youtube.com/watch?v=jBK4evXbsI4&list=PLX2vGYjWbI0TMJrYFmLi-inr7DiIkGO4W&index=4
👍3🔥2
А я и не знал про эту фишку в ARFoundation, теперь без плясок с бубном видимо можно переводить фрейм камеры устройства с GPU на CPU :) Это прям мегафича, потому что так в разы проще дружить те же ARKit + QRCode, ARKit + OpenCV. Ещё и с параметрами можно конвертировать чтобы откинуть инфу о цвете или же сделать даунскейл — кайф :) Просто с юнити и компьютерным зрением всегда была такая проблема, что очень тяжело нормально получить данные о кадре камеры и приходилось плясать с бубном :) А не все алгоритмы работают на GPU

https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.1/manual/cpu-camera-image.html
🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Немного экспериментов с новым доступом к камере AR Foundation :) Вокселизацию пространства стало делать в разы удобнее и элегантнее :) Буквально 200 строк кода :)

В воксельном мире даже бардак смотрится стильно :)
👍16🔥2
Не всегда нужно писать код

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

https://github.com/Nox7atra/AR-Fast-Demo я делаю такую тулзу. Она отвечает за то, чтобы простенько грузить себе бандлы с графикой, чтобы не пересобирать на каждый чих проект в билд (особенно на айос) для тестирования. И поэтому я решил локально поднимать сервачок с бандлами, и иметь простенький гуй, чтобы со всем этим работать. Изначально я думал взять свою же либу https://github.com/Nox7atra/UnitySimpleHttpServer Но её надо переписывать, а конкретно поддерживать gzip, сервер там слишком топорный)

Что же делать? Ну есть старый добрый nginx, который умеет очень много, но на базовом уровне весьма простой. И в целом его можно запускать кнопками в редакторе. Так что я положил его в проект, сделал простенькую обёртку и вуаля — работает :) И в этом плане в юнити очень удобно, что любой файл в проекте можно засунуть в инспектор, как UnityEngine.Object, и через AssetDatabase.GetAssetPath получить его путь. А остальное уже дело техники :)
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Ну и собственно It's Alive! Оно работает. Правда тут нужно уточнять все нюансы, которые я завтра напишу в Readme репозитория + может сниму видео с айфона покачественнее, так как это мой тестовый Redmi Note 8, и на нём с AR не тормозит, а вот запись скринкаста ещё как :) (Моделька и анимация со стока, поэтому с всратенькими артефактами конечно, но как же не засунуть Римуру в AR)
🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Написал по вчерашнему решению статью на habr https://habr.com/ru/post/661363/ + дописал ридми в гите https://github.com/Nox7atra/AR-Fast-Demo . Кому будет полезно — можно пользоваться :)

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

А для AR там почти коробка. Качаем редактор, делаем всё по инструкции, тестим контент :) Если кому нужен билд на андроид можно скачать тут :) https://drive.google.com/file/d/1vBwDjtaSzuWvVm3yiCV4HBD50V43Vtdw/view?usp=sharing
👍2🔥1