top of page

Tinker & Tailor: Workshop Simulator (2024)

Целью этого проекта было создание VR-игры, которая будет популярна через 30 лет. Я был единственным программистом, поэтому все механики разработал сам. Для разработки игры я использовал XR Interaction Toolkit.

GitHub_Invertocat_White_edited.jpg

Отслеживание рук и взаимодействие взглядом (Gaze Interactor)

Основной платформой проекта была Meta Quest 3, поэтому я решил использовать в игре отслеживание рук и взаимодействие взглядом (Gaze Interactor). Я сделал этот выбор с расчётом на то, что со временем эти технологии будут совершенствоваться.

Браслет

Использование стандартного пользовательского интерфейса — не лучшая идея для VR-игры, поэтому я решил сделать браслет на руке игрока, который можно открыть взглядом. На нём расположены кнопки, такие как список задач, магазин, начало дня и т.д.

Очистка

В этой игре я хотел реализовать три основные механики. Одна из них — очистка протеза: игрок берёт губку и протирает ею его поверхность.

Эффект загрязнения реализован просто: скрипт создаёт поверх исходного объекта новый объект с тем же мешем, но другим материалом. При соприкосновении губки с исходным объектом непрозрачность материала грязи уменьшается. Когда она достигает нуля, скрипт удаляет объект с грязью.

Замена деталей

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

Для реализации этой механики я использовал XR Socket Interactor и Hinge Joint. Дополнительно я написал скрипты для управления сокетами и крышками.

Покраска

Третья механика — покраска протеза. Она состоит из трёх элементов: Голограмма — показывает образец расцветки, который должен повторить игрок. Я реализовал её с помощью второй камеры и Render Texture. Генератор капсул — оснащён экраном для выбора цвета и кнопкой для создания капсулы. Краскопульт — позволяет менять цвет отдельных частей протеза.

Диалоговая система

Чтобы донести основную идею игры, мы использовали диалоги с NPC. Для этого я разработал систему диалогов на основе ScriptableObject. Объекты реплик содержат текст, озвучку и анимации. Дополнительно я создал систему реакций. Каждая реакция содержит реплику диалога и триггер, который также представляет собой ScriptableObject. Триггеры работают через систему событий, с которой я познакомился в рамках учебной программы по программированию.

Система предметов

I programmed very simple inventory and shop system. Player can equip two kinds of weapons. Shop contains a weapon and potions, which are used for healing.

bottom of page