Добавление интерактивности интерьеру SVOYA (Playcanvas/WebGL). Часть 4

Vasyl Lukianenko
Vasyl Lukianenko
3D Artist and Technical Author
Вы читаете часть: 1 2 3 4 5

Вступление

Это часть 4 из 5 серии уроков по добавлению интерактивности интерьеру SVOYA Apartment.

Доступ к материалам, такие как: модели в формате "FBX", запеченные текстуры, скрипты и другое, вы можете получить оформив подписку на Patreon.

Patreon

Посмотреть Playcanvas проект онлайн.

View Playcanvas Project Online

Добавление Joystick

playcanvas interior first person movement with joysitck
Loading...

Практика показывает, что на мобильных устройствах для ориентации и передвижения в 3D пространстве самым удобным и эффективным способом является использование виртуального джойстика. Не верите? Попробуйте сами!

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

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

За основу был взят джойстик из примера урока на официальном сайте Playcanvas.

Touchscreen Joypad Controls

Единственная сложность была в том, что скрипты виртуального джойстика были адаптированы для Third Person, а нам необходимо было для First Person. Поэтому чтобы уже ничего не менять в текущем проекте, я доработал скрипты из урока и адаптировал для такого типа проектов как SVOYA Apartment.

Настройка UI элементов

Для создания джойстика был использована система Playcanvas UI.
Все графические элементы были взяты из Playcanvas Manual.

Touchscreen Joypad Controls

Для этого перейдите в сцену этого урока.

Scene - Touchscreen Joypad Controls
touchscreen joypad controls lesson
Loading...

И скопируйте в свой проект папку “touch-joypad”. Если вы являетесь подписчиком Patreon и у вас есть доступ к проекту SVOYA Apartment, рекомендую скопировать папку оттуда.

Далее создайте в “Hierarchy” в папке “UI” новый “Entity - 2D Screen”.

create new ui 2d screen
Loading...

Затем из “Assets” из папки “touch-joypad/templates” перенесите два элемента шаблонов джойстика: “Left Fixed Touch Joystick” и “Right Fixed Touch Joystick”.

Пример показан ниже на скриншоте.

add joystick ui elements to scene
Loading...

Все, это все графические элементы, которые необходимо было добавить. Если вы сейчас запустите проект (“Play”), вы увидите, что даже на Desktop версии присутствуют данные виртуальные джойстики.

Применение и настройка скриптов

Добавьте следующие скрипты в папку  “touch-joypad/scripts” с заменой.

Скрипт “joystick-camera-orbit.js”.



Скрипт “joystick-player-movement.js”.



Измененный “touch-joystick.js”.



Скрипты “joystick-camera-orbit.js” и “joystick-player-movement.js” были полностью написаны мной, чтобы адаптировать виртуальный джойстик под текущий “firstPersonMovement” скрипт для “Player”.

Примените скрипты “joystickPlayerMovement” и “JoystickCameraOrbit” к нашему “Player” со следующими настройками, показанных на скриншоте ниже.

add joystick scripts to player
Loading...
Важно!
Применяйте скрипты только к “Player”. НЕ применяйте скрипты к “Camera”!

Выделите наш “Right Fixed Touch Joystick” и примените скрипт “touchJoystick”, со следующими настройками.

apply script to left joystick
Loading...

Теперь выделите “Left Fixed Touch Joystick” и также примените  “touchJoystick” скрипт со следующими настройками.

apply script to another joystick
Loading...

Готово! Вы можете запустить проект (“Play”) и наслаждаться виртуальным джойстиком для мобильной версии проекта.

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

Я надеюсь, что вы оценили мои старания и подписались на мой Patreon.

Patreon
playcanvas interior project with joystick
Loading...

Адаптация под мобильные устройства

rotate your phone to horisontal
Loading...

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

Добавьте в “2D Screen” новый “Layout Group”. Назовите его “RotatePhone”.

add group layout to 2d screen
Loading...

Затем добавьте в “RotatePhone” новый UI элемент “Button”, назовите “Background”.

rotate phone entity
Loading...

Настройки кнопки “Background”.

backround settings for rotate phone entity
Loading...

В качестве текстуры для “RotateImage” загрузите и выберите следующую картинку.

rotate phone
Loading...

Со следующими настройками.

image rotate phone settings
Loading...

Выберите “Left Fixed Touch Joystick”, и в скрипте “touchJoystick” примените “RotatePhone” в качестве “Entity” в настройке “Rotate Phone UI Entity”.

apply image rotate phone in script settings
Loading...

Запустите проект на мобильном телефоне. Теперь вы будете видеть картинку показывающую повернуть телефон в горизонтальное положение.

rotate your phone to horisontal
Loading...

А в горизонтальном положении вы сможете перемещаться по сцене при помощи джойстика.

horisontal mobile joystick player
Loading...

И вот, конечный результат.

View Playcanvas Project Online

Заключение

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

Для подписчиков Patreon будет возможность просматривать проект SVOYA Apartment в режиме чтения, а также быстрое копирование-вставка необходимых ассетов и скриптов в свой личный проект.

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

Patreon
Вы читаете часть: 1 2 3 4 5

FAQ

1. О чём эта статья?
Статья продолжает работу над проектом SVOYA Apartment в PlayCanvas и посвящена добавлению новых интерактивных возможностей, улучшению удобства использования и расширению функциональности WebGL-презентации.
2. Что рассматривается в Part 4?
В четвёртой части демонстрируются новые интерактивные функции, улучшения рабочих процессов и доработка интерфейса, которые делают проект более завершённым и удобным для пользователей.
3. Нужно ли проходить предыдущие части перед Part 4?
Да. Part 4 основывается на функциональности и решениях, реализованных в предыдущих частях серии.
4. Почему интерактивность важна для архитектурной визуализации?
Интерактивность позволяет пользователям активно исследовать проект вместо просмотра только статичных изображений, делая презентацию более интересной и информативной.
5. Можно ли использовать эти решения в других PlayCanvas-проектах?
Да. Большинство показанных подходов легко адаптируются для различных интерактивных WebGL-проектов.
6. Сосредоточена ли Part 4 на улучшении пользовательского опыта?
Да. Одна из главных задач этого этапа — сделать взаимодействие со сценой более понятным, удобным и интуитивным.
7. Можно ли добавлять собственные элементы интерфейса?
Да. PlayCanvas позволяет создавать собственные кнопки, меню, панели и другие элементы управления для улучшения взаимодействия пользователя со сценой.
8. Можно ли расширять функциональность проекта со временем?
Да. Одним из преимуществ PlayCanvas является возможность постепенно добавлять новые функции и улучшать уже существующие системы.
9. Могут ли пользователи взаимодействовать с объектами в реальном времени?
Да. Интерактивные проекты позволяют изменять материалы, цвета, конфигурации и другие параметры объектов непосредственно во время просмотра сцены.
10. Насколько важна оптимизация на этом этапе?
Оптимизация остаётся крайне важной, поскольку дополнительный функционал увеличивает нагрузку на процессор, видеокарту и память.
11. Можно ли сохранить совместимость с мобильными устройствами?
Да. При правильной оптимизации и продуманном интерфейсе проекты PlayCanvas могут эффективно работать на смартфонах и планшетах.
12. Подходит ли PlayCanvas для коммерческих презентаций?
Да. Платформа широко используется для презентации недвижимости, создания конфигураторов продуктов, виртуальных шоурумов и интерактивных маркетинговых проектов.
13. Требуются ли знания программирования для создания сложных функций?
Да. Для реализации сложной логики и нестандартных интерактивных возможностей обычно требуются знания JavaScript и PlayCanvas API.
14. Можно ли обновлять проект после его публикации?
Да. В проект можно добавлять новый контент, функции и улучшения без необходимости полностью перерабатывать приложение.
15. Какие преимущества дают интерактивные WebGL-презентации?
Они позволяют пользователям исследовать пространство, настраивать параметры, взаимодействовать с контентом и лучше понимать проект по сравнению со статичными рендерами.
16. Для кого будет полезна эта статья?
Для разработчиков PlayCanvas, технических художников, архитектурных визуализаторов, дизайнеров интерьеров и всех, кто занимается созданием интерактивных 3D-проектов для браузера.
Vasyl Lukianenko
Vasyl Lukianenko
3D Artist and Technical Author
Vasyl Lukianenko is a 3D artist and technical author focused on practical workflows, optimization, and production-ready techniques. He publishes tutorials, courses, and tools to help artists work faster and get cleaner results.
{{commentsMsg}}
  

Никто не оставил комментариев
{{comment.lastname}} {{comment.name}} {{comment.date}}
{{comment.text}}
Sponsored content