Pico Developer
264 subscribers
13 photos
1 video
28 links
Канал с информацией и интегрированной болталкой про разработку под Pico VR
Download Telegram
Появилась возможность и для Pico 3 использовать самый последний SDK.
(под прошивку 5.4.0)

Ссылка на APK файл (нужно только установить на шлем)
В чате уже проверили работоспособность, огромное спасибо за это Komandor 15

Пока что без OpenXR фикса
(да и ставится под сомнение вообще данный фикс, если честно. Это можно увидеть на примере трекинга рук)

У нас умудрились поставить OpenXR fix Pico 4 на Pico 3, лишь с этим появилась полная работоспособность... Но помечу, что OpenXR fix под Pico 3 не был еще предоставлен группой PP Stuff, потому, на свой страх и риск.
Пока разбирались что вообще происходит с Pico 3 при OpenSDK fix в PP Stuff...

В тестовом виде, релизнули и OpenXR fix под Pico 3 (Прошивка 5.4.0)
Ссылка на скачивание
Ссылка на скачивание в ТГ

Установка через компьютер, аналогично и для Pico 4
Антивирус ругается, Python довольно некрасиво взаимодействует с adb для установки необходимых компонентов в шлем.

Удалите предыдущий OpenXR fix, перед тем как ставить этот!!! (если ставили, конечно)
На фоне скандалов по поводу требования доплачивать разработчикам движка за каждую установку приложения, сделанного в Unity, весьма забавно продолжать постигать его дальше. (Godot меж тем все ближе...)

Мы уже знаем как обращаться к контроллерам, чтобы закрыть тему с ними, остается лишь познать прелести в-В-вибрРрации!
Пользуемся документацией SDK.
В отличии от Input Manager, тут все делается уже через код, т.к. обращаемся к Pico SDK

Первое что нужно в коде - пометить что используете данный SDK. Если SDK уже в проекте, то достаточно в начале кода подписать
using Unity.XR.PXR;

Существует 2 варианта вибраций - (не) буферный. не-буферный - базовый (Pico 4&3 поддерживает) (буферный - только Pico 4) Вот пример (SDK 2.1.4):
PXR_Input.SendHapticImpulse(PXR_Input.VibrateType.RightController, 0.5f, 500, 100);
- Создает ивент вибрации на правый контроллер с средней силой (0.5f), на 500мс, с частотой 100Гц

Значения силы варьируются от 0 до 1 (float данные)
Время задается в мс (1 сек = 1000 мс)
Частоту, которую могут выдать контроллеры - от 50 до 500Гц (по заверению Pico), однако я не рекомендую идти дальше 300, ибо выше контроллеры напоминают пищалку, нежели контроллеры с вибрацией.
Крайне приятно когда есть примеры, какие значения подходят под какие ситуации. Оставлю это также тут.
И вновь, на фоне уже извинений Unity по поводу всего его скандала, а также с дополнительным подарком в виде включении в Personal версию движка (т.е. бесплатной) функцию смены Splash экрана (начальная заставка), мы продолжаем постигать в-В-вибрРрацию!

Теперь мы говорим про буферный режим вибрации.
Как указано из документации, он поддерживается только на Pico 4, и представляет из себя более сложную систему, которая направлена на более интересные тактильные ощущения. Особенность - взаимодействие с аудио-файлами\шаблонами PHF.

С PHF файлами не так интересно, шаблон есть в документации. Если кратко, то также как и с не буферным вариантом, только задаете более детально как и что в какое время.

А вот с аудио... ;)
Пример:
1. Сначала нужно задать AudioClip:
[SerializeField] private AudioClip audioVibration;
2. Нам потребуется некая переменная, которая будет использоваться как ссылка к нашей вибрации. Что там - нам особо не важно, это уникальный ID для обращении к вибрации.
int vibration_SourceID = 404;
3. Создаем буферную вибрацию:
PXR_Input.SendHapticBuffer(PXR_Input.VibrateType.BothController, audioVibration, PXR_Input.ChannelFlip.No, ref vibration_SourceID, PXR_Input.CacheType.CacheAndVibrate);
Посылаем в буфер вибраций нашу аудиодорожку, на оба контроллера, без инверсии правого и левого канала, с заданной ссылкой vibration_SourceID, и говорим сохранить и запустить вибрацию (CacheAndVibrate).
4. Если у нас, например, PXR_Input.CacheType.CacheNoVibrate, или если мы хотим поставить на паузу или остановить
Мы не можем как к AudioClip просто взять и обратится к объекту и остановить... но мы же не просто так оставляли ссылку)
PXR_Input.PauseHapticBuffer(vibration_SourceID); // ставим на паузу нашу аудиодорожку\вибрацию
PXR_Input.ResumeHapticBuffer(vibration_SourceID); // возобновляем
PXR_Input.StopHapticBuffer(vibration_SourceID); // останавливаем.

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

У нас тут хештеги появились... #ищукомпаньона. Заходите в наш чат, и ищите по данному хештегу людей, или сами оставляйте запись... собирайтесь, творите!)

Люди потихоньку что-то творят, и это то, в чем смысл данного места - подталкивать к изучению нашего любимого шлема, и в работе с VR. Мы все - не эксперты, такие же новички, так что бояться идти на контакт точно не надо. Вместе изучать - веселее!)
Коллаж на фоне - кадры проектов различных людей в чате...
Да простят меня эти люди, что я без спроса их контент заюзал, аминь

Ссылка на чат
Pico, совместно с Intel стартанула 2023 Pico Dev Jam. Для тех кто хочет испытать свои силы, ну или посмотреть уровень участвующих там, рекомендую к изучению.

Доступен Jam для EMEA регионов (РФ включена), для Азии и США.

За первое место обещают $8.000, 2-ое - $3.000, 3-ье - $1.500, 4-ое - $500, и 5-ое - $300 соответственно.
Также, есть награды в определенных категориях:
- Best Game App (игровой) - $1.000
- Best Non-Game App (не игровой) - $1.000
- Best Hand Tracking (приложение, что использует трекинг рук) - $600
- Best MR Design (насколько удачно приложение в смешанной реальности?) - $600

Особенность данного Jam - данный Jam не обязательно предполагает готовый проект. Под данный Jam в требованиях указан и простой диз. док (Design Doc), так что... это весьма любопытно.

Оставлю вам также критерии данного Jam:
- Насколько ваш проект подходит под тему данного Jam (Переосмысление XR: За гранью воображения - к инновациям) (20 баллов)
- Насколько ваш проект\идея оригинальна (30 баллов)
- Техническое исполнение (есть особенность, в случае если ваш проект - диз. док. Подробнее тут) (30 очков)
- Насколько вы хорошо показали свой проект (10 очков)
- Насколько проект полезен (10 очков)
- Как хорошо вы интегрировали все модули Pico (20 очков)

Дата проведения:
Регистрация уже открыта, и продлится она до 10 ноября.
Сдача проектов открывается с 2 октября. Дедлайн - 10 ноября
С 13 по 30 ноября судейство, и в районе 10 декабря - результаты данного Jam.

Более подробно по времени смотрите на сайте Jam'a.
Огромное спасибо за новость Lokus Kus
🔥4👍21
Небольшое дополнение:

Если зайти в правила данного Jam'a можно увидеть небольшое расхождение по участвующим странам.

Где-то указан как EMEA, а где-то более ограниченный список стран участников. Чему верить - хз ;)
UPD: да, вариант с жестким ограничением стран - истинный, варианта с РФ там нет.

Ориентируемся в вариантах, во время регистрации.

Логично предположить, что активен Jam там, где официально есть шлем (а он есть в США?)
В чате задали вопрос по поводу представлений контроллеров как кисти рук, которые бы могли хватать предметы. Что-ж, давайте разбираться. Приведу пример с использованием XR Toolkit, который по умолчанию стоит в шаблоне VR проекта Unity, а также проставлен в зависимостях PICO SDK Unity

После базовой настройки с созданием проекта и добавлении SDK и настройки проекта под Pico, первое что мы делаем - добавляем руки.
Я упущу момент с нулевой реализацией, в виду большого кол-во текста (у меня тут ограничения :D), так что воспользуемся доступной заготовкой Oculus.

Импортируйте ее в проект, разместите префабы рук в контроллеры на сцене. Нужно будет немного повернуть по оси Z для совпадений в размещении.
В аниматоре префабов нужно будет указать контроллер аниматора, вы сможете это найти в папке Oculus Hands -> Animations -> Left\Right Hand Animator.
Дальше пишем код для того чтобы сделать имитацию движений захватов, из значений Trigger и Grip в контроллерах. Файл с комментариями.

Размещаем скрипт на префабах в сцене, вписываем значения из Input Manager, устанавливаем является ли контроллер правой\левой рукой, и проставляем аниматор из этого префаба в скрипт, путем перетаскивания.

Итак, у нас есть руки, что могут делать захваты. Как же, собственно, ими хватать?
Объект, который мы хотим хватать, должен содержать:
- Коллайдер.
- Физику (Rigidbody)
- XR Grab Interaction

Способы взаимодействия у XR Grab три (переключаются в Movement Type):
- Instantaneous (привязка по положению, кривое решение :D)
- Kinematic (физика отрабатывается лучше, но игнорируется при вытягивании предмета сквозь другой объект)
- Velocity Tracking (лучшее решение, предмет не проходит насквозь, при попытке сквозь объект тащить, предмет не будет проходить мимо него)

После чего у нас все Grab события отрабатываются, и можно спокойно хватать объект.
Есть особенности, например если нужно сделать определённый хват объекта то можно создать определенные правила. Но базовая реализация выглядит как-то так.
❤‍🔥5👍1
В процессе обнаружения использований касаний на триггерах и кнопке большим пальцем в Unity, неожиданно обнаружил что в Preview формате вновь доступен OpenXR SDK для Pico.

Ну, лучше поздно чем никогда ;)

Для тех кто не в курсе что это такое. OpenXR - универсальная стандартизация разработки VR приложений под различное VR оборудование. По идее, все что является уникальным для разработки под Pico, теперь обобщается до единого инструментария. Вам достаточно разрабатывать VR приложение как OpenXR приложение, и нужно лишь задать профиль Pico, или Quest, или любого иного VR устройства для работоспособности вашего приложения.

...и лишь там, в документации указано что-то про считывания касания указательным\большим пальцем. Буду тестировать на нем тогда.
👍3
У Pico есть своя страница в Github, где она публикуют различные демонстрационные проекты под свой VR шлем, в различных движках. Один из наиболее ёмких проектов - MicroWar, компиляция многих наработок в виде одной простой игры под Unity.

И в этом проекте кроется весьма странная деталь (спасибо за находку Алексею) - проект использует последний Pico Unity SDK 2.3.0, но при этом спокойно работает на прошивке 5.4.0 без ухищрений в виде OpenXR fix, который бы давал поддержку запуска последних приложений. Вполне вероятно, что у SDK нет прямой зависимости с версией ПО на шлеме. Давайте разбираться.

Все вылеты которые происходят в стандартных шаблонах всегда касаются лишь одного элемента - OpenXR. Pico не с самого начала решила дружить с стандартами, а потому шла по своему пути, интегрировалась в процессы своим SDK. Под давлением внешних разработчиков, начиная с ~5.7.0 ПО, SDK все более начало быть похожим на OpenXR реализацию. Соответственно, если же ваше ПО ниже, а приложение использует последние наработки в ВР, вы столкнетесь с проблемой вылета приложения, т.к. он не может найти необходимые библиотеки. Лечится это или пиратским OpenXR fix, или... составить проект с теми зависимостями, которые бы SDK Pico смог справится без сильной связки с OpenXR.

Под Unity 2022 весьма маловероятно можно добиться работы приложения, т.к. есть минимально доступная версия OpenXR элементов там, и те версии что доступны в Unity - мешают работе, ибо обращаются к элементам, которые отсутствуют в старых прошивках. И даже если установить принудительно через Package Manager -> + -> Add package by name, он установит XR Core Utilities, который помешает работе. Там сильная зависимость и потому избавиться от него не представляет возможности. Возможно он есть и в 2021 версии, но его в списке явно нет. Если узнать версию у 2021ого, и попытаться установить принудительно в 2022... то можно в теории решить вопрос

Под Unity 2021 уже интереснее - меньше зависимостей у проекта к XR элементам, да и сам оригинальный проект MicroWar - проект под Unity 2021 LTS. Проблема запуска проекта с простым шаблоном VR была в том, что в Package Manager были прописаны пакеты, которые внедряли OpenXR части из-за Quest. Достаточно удалить Package Manager -> VR 2 пакета, и настроить проект с зависимостями, которые я опишу ниже.

Лучше всего базироваться на MicroWar зависимостях. Для этого надо добавить в проект следующие пакеты с следующими версиями:
(устанавливаем через Package Manager -> + -> Add package by name)
com.unity.xr.interaction.toolkit | 2.4.3
com.unity.xr.hands
| 1.2.1
(кликом копируется текст)

И устанавливаем обычный Pico Unity SDK 2.3.0

В итоге ваш Package Manager должен выглядеть так как на скриншоте, что я скину в комментариях. В этом случае ваш проект спокойно заработает на 5.4 ПО (и даже ниже, вроде проверяли под 5.2.7), хотя и указано что для 2.3.0 минимальная прошивка 5.7.0.
👍6
Ух, месяц работы и болячек - страшное дело ;)

За это время у нас и череда страшных новостей по краху Pico, активная борьба с пиратством, открытие VR Chat под Pico, а следовательно и новый виток в разработке, ну и конкурс о котором говорилось ранее тоже подошел к концу, почти 700 участников. Неплохо. Ждем результаты, а пока можно взглянуть на ролик этого мероприятия.

И... еще недавно вышел новый SDK Unity под Pico 2.4.0

Рекомендуемое ПО - 5.8.0 и выше.

Нововведение:
- Добавлено суперразрешение - технология повышения разрешения изображения от низкого (LR) до высокого (HR).
- Повышение резкости - технология обработки изображений, позволяющая усилить высокочастотную информацию в изображении, улучшить края и контуры изображения.
- Добавлена функция Equi-Angular Cubemap (EAC), которая представляет собой проекционную технику, используемую для отображения панорамных изображений или видеороликов с углом обзора 180 или 360 градусов.
- Поддержка импорта бинауральных аудиосигналов в Unity Audio Mixer.

Более подробно смотрите на сайте.

Скачать можно на сайте или из ТГ.
👍4🔥2🎉1
Эпопея рук не заканчивается.

В чате задали вопрос по работе с руками, а именно:
- Как сделать так, чтобы можно было взять руками "корректно" предмет, т.е. с предустановленной позой (например, если мы берем меч)

Опишу это решение с позиции контроллеров.

Текста будет много, потому статья будет по ссылке тут.

Если будут какие-то вопросы - задавайте в чате\комментариях, я и другие участники постараются ответить.
Помечу, что данная группа нацелена в первую очередь обозначить сообщество людей что хотят работать с VR и с Pico в частности. Потому важнее больше чат, сама группа скорее архив, и статьи - не регулярная вещь ;)
❤‍🔥2
Судя по времени... результаты 2023 PICO Dev Jam должны быть уже опубликованы.
Но это не точно, ибо это запланированное сообщение ко времени когда должны по идее назвать финалистов.

Надеюсь что материал оттуда будет полезным, сам я лишь по прилету обратно домой смогу оценить :D

Ссылка на данный Dev Jam.
👍1
Что-ж, потихоньку пора и прощаться с этим годом. Впереди, надеюсь, дракон из Растишки, что будет максимально дружелюбным к нам)

В этом году появилось наше сообщество. Люди творят, решают проблемы, и постигают VR, и Pico в частности. Чего только не было.
Кто-то использует VR как интерактивный музей, с общественным использованием. Кто-то создает приложения для изучения ПДД. Кто-то делает свою трехмерную факторио\йорг.ио\майнкрафт, кто-то лениво пишет статьи и продолжает страдать в Beat Saber OST VI (не тыкаем :D), кто-то воплощает идеи объединения физических объектов с виртуальным, а кто-то только начинает постигать VR-игропром.

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

До встречи в новом году, да прибудет с вами сила ;)
4🔥1
Надеюсь все отошли от новогодних салатов и готовы дальше разрабатывать ;)

Чуть меньше месяца назад на Pico под UE и Unity вышло обновление OpenXR SDK 1.2.0. Данная версия уже не Preview, а стабильная.

Скачать вы можете на официальном сайте, или же в Telegram (Unity)
Архив SDK также обновлен.
❤‍🔥4
Unreal Engine и Pico - с чего начать? Длительное время уже штурмует этот вопрос в нашем чате ;)

Инструкция базируется на последней версии UE 5.3.2 на момент написания.

Первым делом устанавливаем сам UE 5.3.2, это можно сделать через лаунчер Epic Games в разделе Unreal Engine. Как только вы запустили его, давайте создадим на основе шаблона Games -> Virtual Reality. Данный проект базируется уже на OpenXR реализации VR в приложении. А как мы знаем, уже давно есть и OpenXR Pico библиотека. Пока что с ней поработаем.

Дальнейшие действия идут ровно по базовой настройке в документации, а именно:
1) Переходим во вкладку Edit -> Plugins, в поиске набираем Pico и находим Pico for OpenXR (убедитесь что вы перед этим добавили его в свою библиотеку [ссылка на него]), включаем галочку, внизу выбираем перезапустить проект для инициализации нашего Pico for OpenXR
2) Затем нам надо настроить билд проекта, переходим в Edit -> Project Settings, ищем слева Platforms, выбираем Android SDK
Тут важно пояснить. В отличии от Unity, UE не установит необходимые библиотеки для построения проекта под Android. Вам нужно будет самостоятельно это сделать, нам нужно будет скачать Android Studio. Помимо этого, есть некоторые доп. условия, такие как использование OpenJDK, например. Все важные условия для билда проекта можно прочитать тут

Тут море подводных камней. Более детально о настройке UE под Android билд можно почитать тут. Лично для меня длительное время было проблемой то что SDK он неправильно воспринимал. Здесь нам поможет чтение с 3 пункта в руководстве (3. Set up Command-Line Tools for Android), ибо без него UE не знает как работать с SDK. Насчет версии 8 для 5.3.2 можно не заострять внимание, 9ая версия Command-Line подходит (она считается на момент написания последней)

Ну и инициализация всего нужного через SetupAndroid скрипт выполнять надо, который я также длительное время искал) Вам нужно перейти по пути *путь до вашего движка UE*\Engine\Extras\Android, и запустите SetupAndroid.bat\.sh\.command (в зависимости от платформы)

В комментарии прикреплю скрин настроек путей Android SDK\NDK (обратите внимание на NDK версию, у меня было несколько но через SetupAndroid до установилась определенная, ее и надо выбирать, требования можно прочитать тут

Буду крайне признателен если в комментариях под постом другие отпишутся по поводу UE работы с Pico) Мое тестовое приложение, например, запустилось, но были проблемы с контроллерами. Сам я на Unity сижу)
7
Неожиданные (и очень приятные) новости от PICO! Источник

Разработчики PICO анонсировали будущие изменения магазина приложений:
1. Отныне загружать свои приложения напрямую в магазин станет проще (правда, пункты про проверки внутри платформы остаются в силе...)
2. Появления категорий "Выбор редакторов", более удобный поиск приложений, их продвижений.
3. PICO Labs -> Early Access. Ожидается функционал раннего доступа, как это существует на платформах Steam
4. Инди-разработчики смогут получать выплаты за свои приложения (на данный момент это доступно лишь корпоративному аккаунту).

Ну и... очень греет душу следующие слова: Магазин приложений PICO скоро будет принимать ВСЕХ разработчиков без каких-либо барьеров. Насколько ВСЕ разработчики покажет время.

На данный момент есть серьезные проблемы у разработчиков из РФ завести учетную запись с возможностью опубликовывать приложения в магазине, т.к. магазин весьма специфичную соблюдает политику над пользователями вне определенных стран. Также помечу проблемы - региональные разделения, очень ручная публикация приложений (приложения публикуются месяцами, т.к. требуют от PICO его просмотра), и сбои с публикациями (был случай, когда в системе приложение отображалось опубликованным, однако в магазине оно не отображалось)
👍7👏2❤‍🔥1🤔1