Интерактивная ночная лесная сцена у костра в стиле voxel на Three.js: процедурно созданный рыцарь, костёр, выбор действий рыцаря, пресеты камеры, ретро-HUD и синтезированный атмосферный звук. Автор публикации утверждает, что передал GPT-6 Astra этот промпт и изображение.
Вы — старший разработчик интерактивной графики WebGL и Three.js. Ваша задача — создать полноценную интерактивную 3D-сцену, готовую к использованию в продакшене и полностью размещённую в одном автономном HTML-файле (index.html) с использованием Three.js и webgl
### 1. Визуальная тема и художественное направление
- Атмосфера: тёмный ночной лес, уютно мерцающий костёр, одинокий уставший рыцарь, отдыхающий у стоянки (эстетика костра из Dark Souls / классической ретро-RPG).
- Эстетика: 3D-пиксель-арт / voxel / low-poly.
- Шейдинг и постобработка: интегрируйте постобработку Three.js (RenderPixelatedPass или эквивалентный эффект пикселизации/дизеринга в низком разрешении), чтобы добиться аутентичного ретро-вида в духе 16- и 32-битной графики.
### 2. Геометрия сцены и ассеты (100% процедурная генерация — без внешних файлов .gltf/.obj)
Все ассеты должны создаваться процедурно с помощью геометрических примитивов Three.js (BoxGeometry, CylinderGeometry и т. д.) и базовых материалов, чтобы файл запускался локально без проблем с CORS.
1. Лесное окружение:
- Земля: стилизованный тёмный ландшафт с процедурными voxel-камнями, грибами и низкополигональной растительностью.
- Деревья: процедурные сосны/ели или деревья с блочной кроной, окружающие поляну и создающие ощущение глубины и уединённости.
- Небо и освещение: глубокое полуночное небо с мерцающими voxel-звёздами и холодным лунным светом от DirectionalLight, отбрасывающим мягкие тени.
- Глубина: THREE.FogExp2 с тёмным атмосферным цветом для слияния горизонта с окружением.
2. Костёр:
- Круг из камней вокруг тлеющих брёвен и процедурно создаваемых угольков.
- Система огня: анимированные пиксельные частицы (Points или пульсирующие voxel-меши), поднимающиеся вверх.
- Динамическое освещение: тёплый оранжево-красный PointLight с непрерывным естественным мерцанием (на основе Math.sin, шума или псевдослучайных вариаций).
3. Рыцарь:
- Иерархический граф сцены (группы для головы, торса, верхних и нижних частей рук, ног, плаща и меча), собранный из вокселизированных примитивов.
- Визуальные детали: шлем с прорезями, нагрудная броня, наплечники, латные перчатки и ножны/меч.
- Точки вращения должны быть правильно выровнены по суставам (плечам, локтям, бёдрам, коленям) для корректной процедурной анимации вращения.
### 3. Машина состояний интерактивного рыцаря
Реализуйте плавные процедурные анимации с помощью линейной интерполяции (lerp) или тригонометрических кривых внутри цикла рендеринга для следующих выбираемых состояний:
- Сидеть у костра (состояние по умолчанию): сидит, скрестив ноги, или присев, слегка дышит и греет руки у пламени.
- Подбросить дрова: рыцарь встаёт, берёт полено и бросает его в костёр. Огонь заметно разгорается, радиус освещения временно увеличивается, появляется всплеск искр.
- Тренировка с мечом: встаёт, вынимает меч, выполняет чёткую трёхчастную связку атаки и парирования, затем возвращается в боевую стойку.
- Взгляд вдаль: идёт к краю поляны, вонзает меч в землю и смотрит в темноту; плащ колышется на ветру.
- Сон: ложится на лежанку рядом с костром; над шлемом вверх поднимаются анимированные пиксельные частицы «Z z z».
- Жарить мясо: держит палку с едой над пламенем; появляются лёгкие процедурные частицы дыма/пара.
### 4. Система камеры
Добавьте переключение между пресетами камеры с плавной интерполяцией перехода (интерполяцией позиции и цели):
- Уютный крупный план: средний план с фокусом на рыцаре и свете костра.
- Изометрическая RPG: классический тактический обзор поляны сверху под углом 45 градусов.
- Кинематографичный ракурс с земли: эффектный план с нижнего угла, направленный вверх на рыцаря на фоне звёздного неба и крон сосен.
- Свободное вращение: плавное переключение на стандартный OrbitControls для интерактивного осмотра.
### 5. Интерфейс и звук
- Стиль интерфейса: ретро-HUD в духе 8- и 16-битных RPG — полупрозрачные тёмные панели с пиксельными рамками и встроенным шрифтом Google (например, 'Press Start 2P').
- Нижняя панель: интерактивные кнопки действий, запускающие каждое состояние рыцаря.
- Панель в правом верхнем углу: кнопки переключения ракурса камеры.
- Счётчик дров: отслеживает количество добавленных брёвен и текущую интенсивность огня.
- Звук (Web Audio API): процедурно синтезируемые потрескивание костра и атмосферные звуки ночного ветра и сверчков, а также кнопка включения/выключения звука.
### 6. Технические требования
- Один автономный файл index.html.
- Используйте ES-модули, загружаемые через CDN (https://t.co/W8o3SZwkCj или unpkg).
- Модульная, хорошо прокомментированная структура кода (initScene, buildEnvironment, buildKnight, buildCampfire, setupUI, setupAudio, animate).
- Полностью адаптивный обработчик изменения размера окна, обновляющий соотношение сторон камеры и разрешение прохода пикселизации.
Как использовать этот промпт
01
Начните с подходящего инструмента
Откройте привычного помощника для программирования или 3D-инструмент. Попробуйте модель, указанную в примере, и изучите инструкции по настройке в связанных проектах.
02
Выберите одно изменение
Замените объект, художественный стиль или окружение. Чётко опишите камеру и взаимодействие. Сначала создайте небольшую версию, затем улучшайте по одной детали.
03
Добавьте собственные объекты в сцену
Для своего персонажа или реквизита создайте 3D-модель по короткому описанию предмета или референсу, затем импортируйте её в проект.
Права на превью принадлежат соответствующим авторам. Перед повторным использованием кода или материалов проверьте первоисточник и лицензию проекта.