Бюджет: 7500 UAH Срок: 6 дней
Здравствуйте.
Категории указаны абсолютно правильно: для реализации механики прицеливания и смены оружия необходимо написание кастомных C# скриптов и глубокая настройка анимационных систем Unity.
Задача понятна. Использование готового контроллера от Synty для базового передвижения (ходьба, бег) — это правильный подход, который сэкономит время. Главный акцент в работе будет сделан на систему Inverse Kinematics (IK) для точного наведения инструмента и взгляда на цель.
Техническое решение
Система прицеливания (Animation Rigging):
Интегрирую официальный пакет Unity Animation Rigging.
Настрою Multi-Aim Constraint для костей позвоночника, шеи и головы, чтобы верхняя часть тела персонажа плавно и естественно поворачивалась туда, куда указывает курсор.
Добавлю Two-Bone IK для рук. Это гарантирует, что кисти всегда точно будут лежать на рукоятках оружия, куда бы персонаж ни целился.
Камера и Raycasting (Cinemachine):
Настрою две виртуальные камеры Cinemachine: базовую (для перемещения) и камеру прицеливания (с меньшим полем зрения и смещением ближе к плечу).
При нажатии кнопки прицеливания (например, ПКМ) будет происходить плавный переход (Blend) между камерами. В это время C# скрипт будет запускать невидимый луч (Raycast) из центра экрана в 3D-мир, создавая динамическую точку (Target), за которой будет следить IK-система персонажа.
Логика смены инструментов:
Напишу скрипт-менеджер экипировки. При выборе одного из трех инструментов скрипт будет изменять параметр (например, WeaponType типа int) в вашем Synty Animator Controller, чтобы персонаж переключал базовую стойку с двуручной на одноручную.
Скрипт автоматически переназначит точки крепления для левой и правой руки (IK Targets), поскольку хват двуручного инструмента отличается от маленького одноручного.
Лазерный инструмент:
Создам визуализацию луча с помощью компонента LineRenderer. Он динамически будет соединять «дуло» инструмента и точку столкновения Raycast-луча с поверхностью (ресурсом).
Что необходимо для старта:
Архив с вашим текущим проектом (или .unitypackage) с настроенным Synty контроллером, 3D-моделью персонажа и моделями трех инструментов.
Информация о том, какую именно версию Unity вы используете.
Готов обсудить детали и начать настройку вашего персонажа.