Tamir_TG

Tamir_TG 

Графический художник, 2Д и 3Д художник

2subscribers

94posts

goals4
$0 of $12 551 raised
на работу над проектом "Небесный Альбион" в Unreal Engine 5.6.1 над которым работаю периодами начиная с 2021 года
$0 of $327 raised
хочу добавить реалистичную, умопомрачительную воду в свой проект: ассет для Uneral Engine 5 - "Fluid Flux" в маркетплейсе Epic Games.
$0 of $155 raised
на покушать, т.к. в 2025 году ем только в долг
$0 of $628 raised
на ремонт ПК за год работы начали греться чипы VRM на материнке GIGABYTE B550M DS3H материнка под замену, в пранах приобрести материнку серии B750

Разработка механики переключения камеры и персонажа в Heavenly Albion

🎯 Что хотел получить
В основе проекта Heavenly Albion лежит идея: игрок управляет не только персонажем, но и летающей камерой, которая может исследовать мир независимо. Эта механика необходима для:
Фото режим
Режим создания фотографий и запись видео в файл
Осмотра локаций с разных ракурсов
Кинематографичных моментов
Будущих систем наблюдения и разведки
Использование нескольких камер для ведения наблюдения и записи
🧱 На чём основано решение
За основу взят ассет Game Animation Sample (GAS) от Epic Games — 500+ примеров игровой анимации с готовой системой движения, прыжков, приседаний и сетевой репликации.
Архитектура:
SandboxCharacter_CMC (базовый персонаж GAS) → BP_GAS_57 (наш персонаж)
PC_Sandbox (базовый контроллер GAS) → PC_GAS_57 → GAS_PlayerController (C++)
GM_Sandbox (базовый Game Mode) → GM_GAS_57 → GAS_GameMode (C++)
Ключевое решение: новый C++ класс FlyingCamera (летающая камера) со своей системой управления: WASD, мышь, крен Q/E, сброс крена R, регулировка скорости колёсиком мыши, рывок вверх пробелом.
🐛 С какими проблемами столкнулись
1️⃣ Ошибка наследования: C++ не может наследоваться от Blueprint
Проблема: Попытка написать class AGAS_PlayerController : public APC_Sandbox (где PC_Sandbox — Blueprint).
Решение: Наследоваться от базовых C++ классов: APlayerController, AGameModeBase, ACharacter.
2️⃣ Файлы не перемещались через Visual Studio
Проблема: Перетаскивание файлов в Solution Explorer не меняло их физическое расположение на диске.
Решение: Перемещение через Total Commander/проводник с последующей перегенерацией проекта (Generate Visual Studio project files).
3️⃣ Камера спавнилась, но управление не переключалось
Проблема: После нажатия Tab камера появлялась, но персонаж продолжал двигаться — контроллер оставался привязан к нему.
Решение: Добавлен вызов Possess(CurrentFlyingCamera) и UnPossess() для персонажа.
4️⃣ Камера "улетала" и зависала при удалении
Проблема: Таймер удаления камеры срабатывал хаотично, иногда удалял самого персонажа.
Решение: Внедрена система ID камеры (уникальный идентификатор) и чёткая логика таймера:
Таймер запускается только при переключении с камеры на персонажа
Таймер сбрасывается при переключении обратно на камеру
Камера удаляется только если она неактивна более 20 секунд
5️⃣ Конфликты с родительским управлением GAS
Проблема: Колёсико мыши управляло Zoom'ом камеры от третьего лица, что мешало управлению скоростью летающей камеры.
Решение: Отключение ненужных Input Actions в BP_GAS_57.
⏱️ Сколько времени заняло
Этап Время
Анализ структуры GAS и написание документации 2 дня
Создание C++ классов и настройка структуры папок 1 день
Перенос логики FlyingCamera 1 день
Настройка переключения между персонажем и камерой 2 дня
Отладка таймеров и ID камеры 1 день
Компиляция и исправление ошибок 1 день
Итого: ~9 дней активной разработки
✅ Что получилось в итоге
🎮 Управление персонажем
WASD — движение
Пробел — прыжок
C — приседание
J - телепортация по прямой
L.Ctrl - идти пешком
L.Shift - быстрый бег
Мышь — поворот
📷 Управление камерой
Действие Клавиша
Движение вперёд/назад W / S
Движение влево/вправо A / D
Подъём / спуск Shift / Ctrl
Поворот мышью Mouse X / Y
Крен Q / E
Сброс крена R
Рывок вверх Пробел
Скорость Колёсико мыши
Переключение на/с камеры Tab
Принудительное удаление камеры 0
🔧 Технические характеристики
✅ Уникальный ID камеры (готовность к сети)
✅ Таймер автоматического удаления (20 секунд бездействия при переключении на персонажа)
✅ Принудительное удаление по кнопке
✅ Полное переключение управления (Possess/UnPossess)
✅ Сохранение позиции и вращения персонажа
✅ Полная совместимость с GAS (движение, прыжки, анимации)
📊 Текущий статус
Механика Статус
Движение персонажа ✅
Движение камеры ✅
Переключение Tab ✅
Крен Q/E ✅
Сброс крена R ✅
Скорость колёсиком ✅
Авто-удаление камеры ✅
Принудительное удаление (0) ✅
Уникальный ID камеры ✅
Подготовка к сетевой игре ⏳
🚀 Что дальше
Подключение к MySQL и сайту
Система авторизации
Создание комнат (до 64 игроков)
Множественные камеры (до 5 штук)
UI интерфейс со списком камер
ссылка на мини видео обзор механики
https://youtu.be/6vslakZZJ4I
ссылка на видео на ВК
https://vkvideo.ru/video-177404869_456239204
Subscription levels3

гостевой

$0.17 per month
На этом уровне можно предложить просто подписаться на новый закрытый контент в блоге

Наблюдатель

$1.64 per month
для подписчиков, и деятелей комьюнити в сфере 2D и 3D графики

Почетный наблюдатель

$25.2 per month
доступ к уникальному контенту, ранний доступ к альфа и бетта тесту проекта "Небесный Альбион"
шанс увидеть необычный виртуальный мир в том виде, который его может уже никто не увидеть т.к. мир постоянно меняется, растет. развивается, эволюционирует и преображается
Go up