Мы создали игру "Осада замка" с GPT-6 Astra!
Для прототипа осады замка требуется маршрут, по которому игрок может идти, действия, которые ощущаются связанными с персонажем, и ясная причина двигаться, когда битва меняется. Это руководство показывает, как планировать и тестировать эти элементы с помощником по кодированию AI, Blender, Godot и сгенерированными изображениями. Стремитесь к одной играбельной главе: защищать стену, реагировать на новую угрозу, отступать и достигать крепости.
Рассмотренный пример: Ashfall: Последние ворота, созданный с помощью GPT-6 Astra, Higgsfield, Blender и Godot. На видео показан работающий первый глава и внесённые в неё исправления. Он не предоставляет полный проект или сборку, воспроизводимую одним запросом. Процедуры ниже объединяют показанный рабочий процесс с текущими инструкциями по импорту в Godot; тестовые задания являются примерами, которые вы можете адаптировать под свой проект.
Прежде чем начать: создайте небольшую играбельную базу
Убедитесь, что у вас есть проект в Godot, который открывается и запускается, Blender для изменения 3D-ассетов, и ассистент, способный работать над этим проектом. Сохраняйте копию или контрольную версию перед изменением замка или персонажа. Запишите используемую версию Godot, чтобы ассистент обращался к соответствующей документации, а не смешивал версии движка.
Если у вас ещё нет работающего 3D-проекта, пройдите руководство Godot по Ваша первая 3D игра сначала учебник. Он предоставляет небольшую основу для передвижения, столкновений, появления объектов и работы с интерфейсом. Он не создает Ashfall, но эти основы облегчают осмотр и ремонт прототипа осады.
Для рабочего процесса с искусством подготовьте бриф персонажа и несколько ссылок на окружение. Доступ к Higgsfield нужен только для этапов генерации, которые вы решите использовать. Играбельная игра запускается в Godot; генератор изображений автоматически не предоставляет правила боя, столкновения, подгонку анимации или цели.
Определите первый играбельный фрагмент перед тем, как запрашивать большое поле битвы:
| Деталь | Первый контроль приемки |
|---|---|
| Внешняя стена | Игрок может перемещаться, прицеливаться и стрелять с удобной позиции |
| Надвигающаяся угроза | Игрок может определить, что требует внимания |
| Смена фазы | Цель меняется один раз по понятной причине |
| Отступление | Проходимый маршрут соединяет стену с крепостью |
| Конец главы | Достижение цели дает явный результат |
Украшение крепости подчиняется этому маршруту. Первая попытка Ашафолла создать горную крепость имела стену и слишком много пустого пространства. Тестирование с позиции игрока показало отсутствие крепости яснее, чем первоначальное описание.
Превратите краткое описание крепости в наблюдаемые изменения
Начните с прохождения маршрута в беговой игре. От стены найдите место назначения. Из двора найдите лестницу. В цитадели оглянитесь назад к полю боя. Зафиксируйте эти виды, прежде чем запрашивать изменения, чтобы у помощника была общая пространственная ориентация.
Поправки Ashfall требовали большего размера цитадели, более высоких укреплений справа, гор сзади и правильно изогнутой дороги к воротам. Большая часть отзывов использовала скриншоты с жёлтыми кругами: переместите этот объект, поднимите ту стену, поставьте лестницу сюда. После каждого изменения Рон заново открывал среду в Godot и снова её проверял.
Дайте инструкцию, которая содержит местоположение, изменение и тест. Например:
На прикрепленном виде двора перенесите вход на лестницу на уровень земли рядом с замком. Постройте верхнюю часть лестницы в сторону замка, при этом гора должна быть сразу рядом с ней. Сохраните непрерывный проходимый маршрут к донжону. После изменений определите отредактированную сцену и протестируйте маршрут от двора.
Это предлагаемый краткий проект изменений, а не восстановленная инструкция по строительству. Он делает предполагаемую геометрию более понятной, чем «сделайте крепость более впечатляющей». Сохраните скриншот и соответствующий вид после изменений, чтобы можно было определить, переместилась ли лестница или просто изменилась камера.
Лестница потребовала нескольких исправлений в Ashfall. Изначально она начиналась от стены, хотя планировалось, чтобы маршрут начинался с земли; другая версия стояла отдельно от замка. Поздняя версия была ближе к желаемой интеграции с замком и горой. Успешная визуальная корректировка всё ещё требует проверки проходимости: пройти по лестнице, повернуть на площадке и убедиться, что вход соединяется с следующим пространством.
Проверьте также интерьер. Меньшие лестницы и дворы должны вести к большому залу, не заставляя игрока угадывать, какая дверь доступна. Ранее пустой интерьер Ashfall стал частью убежища. Это придаёт замку смысл после первой обороны, а не оставляет его лишь дальним фоном.
Утвердите персонажа перед превращением его в игровой актив
Лучник из Ashfall, Кэйд, начал с изображения персонажа. Краткое задание требовало высокого темнокожего мужчину с короткими волосами, щетиной и средневековыми доспехами. Одна из попыток дала современную стеганую куртку и была отклонена. Одобренное направление использовало красную тунику и кожаную броню, после чего продолжили создание 3D-модели, подбор в Blender и интеграцию в Godot.
Просмотрите концепт в масштабе и под углом, которые важны в игре. В третьем лицевом осадном бою игрок постоянно видит спину, лук и колчан. Хороший портрет спереди не показывает, правильно ли будет расположено снаряжение при прицеливании или беге.
Используйте три проверки перед продолжением:
- Дизайн: одежда, материалы и силуэт соответствуют описанию персонажа.
- Модель: 3D-ресурс имеет форму и детали, необходимые для предполагаемого использования.
- Компоновка в игре: лук, стрелы и колчан остаются выровненными при выполнении игроком различных действий.
Держите одобренный эталон рядом с моделью во время проверки. Исправляйте куртку современного вида уже на концептуальном этапе; исправление после анимации и примерки снаряжения добавляет лишнюю работу. Напротив, колчан, плавающий на бедрах, — это проблема размещения, которую следует изучить в 3D-настройке, а не обязательно причина для создания персонажа заново.
Для надежного формата обмена Godot рекомендует glTF 2.0 и поддерживает .gltf и .glb. Direct .blend импорт вызывает Blender для конвертации файла, поэтому Blender должен быть установлен на машине, выполняющей импорт. Для проекта, который используется на нескольких машинах, экспортированный .glb может избежать этой зависимости. Проверьте поддерживаемые 3D форматы в соответствии с вашими активами и версией движка.
Разместите экспортированный актив в проекте Godot, затем просмотрите его через панель FileSystem. Выберите его для панели импорта, или дважды щелкните для расширенных настроек импорта, где можно предварительно просмотреть модели и анимации. Предпочтительно исправлять исходный актив для изменений геометрии. Используйте унаследованную сцену Godot для локальных дополнений, которые должны сохраняться при повторном импорте, а не рассматривать импортированный файл как обычную редактируемую сцену. Руководство по настройке импорта объясняет эти рабочие процессы.
Успешная проверка точки сохранения означает, что модель видна в игре в нужном масштабе и ориентации, с присутствующими необходимыми материалами и данными анимации. Успешный импорт сам по себе не проверяет эти детали.
Подгоняйте снаряжение и проверяйте движение по одному действию за раз.
Ранний Кэйд из Ashfall не держал лук правильно. Стрела промахивалась мимо намеченной цели при прицеливании, а колчан плавал вокруг его бедер. Работа в Blender улучшила подгонку снаряжения, а движение использовало анимацию, адаптированную из демонстрационных ассетов Godot. Колчан оказался на его спине, но анимация бега всё ещё требовала доработки.
Используйте небольшую повторяемую последовательность действий для каждого изменения: бездействие, поворот, начало бега, остановка, натяжение лука, удержание прицеливания и выпуск стрелы. Осматривайте как игровую камеру, так и боковой вид. Сохраняйте короткую запись до и после, чтобы можно было сравнить одно и то же движение поворота или натяжение лука, а не полагаться на память.
Разделите три вида дефектов. Объект, который остаётся не на месте даже в состоянии покоя, указывает на проблему с расположением или креплением. Рука, которая отклоняется во время натягивания, указывает на проблему с анимацией или посадкой. Персонаж, который выглядит нормально при прицеливании, но неуклюже при беге, требует работы, специфичной для движения. Попросите помощника определить соответствующий ресурс или сцену перед изменением всех трёх сразу.
При совместном использовании анимаций между скелетами недостаточно совпадения имён костей: важны также исходные трансформации. Документированной отправной точкой в Godot является узел Skeleton3D в Advanced Import Settings, затем Retarget, a BoneMapи соответствующий профиль скелета. Для гуманоидов, SkeletonProfileHumanoid может автоматически сопоставлять кости; проверьте и исправьте сопоставление вместо того, чтобы предполагать, что оно прошло успешно. Предупреждения о пропущенных, дублирующихся или неправильных связях могут сосуществовать с завершённым импортом. Следуйте Переназначение 3D-скелетов для оставшихся решений, специфичных для рига.
Не применяйте каждую опцию исправления покоя как универсальное средство. Персонажу с аксессуарами или намеренно отличной позой покоя могут потребоваться разные решения. Повторно протестируйте лук и колчан после изменений анимации, потому что улучшение бега недостаточно, если это ломает натяжение.
Источник использует движения, адаптированные из демо Godot Third Person Shooter, © 2018 Хуан Линиетски и Фернандо Мигель Калабро, CC BY 3.0, переназначен для персонажа и адаптирован для движения на месте и стрельбы из лука. Сохраняйте это упоминание при описании этой сборки и проверяйте фактические лицензии на ресурсы при выборе материалов для собственных проектов.
Для каждой фазы осады предусмотрите разное решение игрока
Демонстрируемая глава проходит через защиту внешней стены, штурм лестницей, подход факелов к коллектору и отступление к замку. Каждая фаза меняет то, на что игроку следует обращать внимание.
На внешней стене удерживание правой кнопки мыши натягивает лук; удерживание натянутого тетивы даёт время прицелиться для более мощного дальнего выстрела. Стрельба без прицеливания быстрее. Друзья-защитники могут блокировать стрелы, поэтому перемещайтесь на видимую линию огня. Это наблюдаемые элементы управления и поведение Ashfall, а не стандартные привязки ввода Godot.
Когда прибывают лестницы, угроза делит узкую дорожку. У игрока меньше времени на целеуказание, и ему нужно проверять вдоль стены. Более сильные реакции от попадания стрелой сделали бы бой легче для понимания; Рон отмечает это как незавершённую работу.
Фаза с факелоносцем предоставляет более конкретный приоритет. Бегуны, направляющиеся к коллектору, могут ускорить прорыв, поэтому стрельба по ним выигрывает время. Теперь у игрока есть причина выбирать цели вместо того, чтобы стрелять в самую большую толпу.
Ashfall добавил таймер к каждой фазе, потому что более ранняя версия оставляла игрока в неуверенности: ждать или убивать всех. Теперь цель и обратный отсчет отображаются во время игры. В вашем прототипе определите, что означает каждый таймер: оставшееся время защиты, время до прорыва или время, отведенное на побег. Эти значения не должны быть взаимозаменяемыми ярлыками для одного и того же необъясненного числа.
Для простой реализации тайминга в Godot, узел Timer предоставляет wait_time, time_left, one_shot и а timeout сигнал. Настройте таймер фазы, запускайте его при начале этой фазы и подключайте его срабатывание к соответствующему переходу в логике вашей игры. Отображайте оставшееся время из того же источника. Справка по Timer документирует узел; правила и интерфейс главы все еще требуют вашей собственной реализации.
Попросите помощника предоставить явный план перехода до внесения изменений в код. Например: «Войти в защиту факелоносца после фазы с лестницей, показать новую цель и перейти к отступлению, когда сработает условие пролома. Убедитесь, что переход не может выполняться дважды». Это предложенный проверяемый дизайн, а не утверждение о внутреннем коде Ashfall.
Пройдите игру один раз, не предпринимая полезных действий, затем снова, отдавая приоритет бегунам. Наблюдайте, отличается ли ожидаемое время и продвигается ли глава. Тестируйте пути неудачи и перезапуска, а также успешный прогон. Таймер, видимый на скриншоте, не доказывает, что каждый переход работает.
Протестируйте отступление в рамках уровня
Когда стена падает, Эшфолл просит игрока прикрыть отступающих защитников и добраться до замка. Полезный ритм такой: остановиться для выстрела там, где есть место, а затем снова двигаться. Коридор для отступления должен поддерживать этот ритм: достаточно места, чтобы повернуться и стрелять, видимая следующая цель и отсутствие случайного тупика.
Сначала пройдите маршрут без боя. Затем пройдите его повторно уже с врагами и присутствующими дружественными защитниками. Проверьте, не мешают ли тела, столкновения или размещение толпы использованию лестницы. Осмотрите, насколько маршрут читаем, когда камера повернута обратно к битве, а не только при движении вперед в пустой среде.
Пеплопад достигает крепости и заканчивает главу. Более оживленный отход с большим числом защитников и более громким преследованием остается предложенным улучшением. Также предлагаются лучше скоординированные защитники, которые удерживают участок, отступают и перегруппировываются. Держите эти стремления отдельно от уже продемонстрированного поведения.
Дайте следующей редакции одну измеримую цель. «Сделать отступление более захватывающим» может привести к появлению большего числа врагов без улучшения игрового процесса. «Держать вход на лестницу свободным, показать двух защитников, движущихся к нему, и сделать следующую цель видимой с двора» — пример краткого задания, результат которого вы можете оценить. Число является предложенным начальным ограничением, а не задокументированной настройкой Пеплопада.
Используйте звук и сгенерированные реквизиты для решения конкретных задач
Ранее в Ashfall под действием происходящего постоянно слышался шипящий звук. Команда убрала этот нежелательный слой звука и сосредоточила следующий проход аудио на шаги, стрелы и близлежащие сражения. Увеличение громкости повсюду не решит исходную проблему.
Тестируйте звук, выполняя соответствующее действие. Идите, останавливайтесь, стреляйте и уходите с поля боя. Проверьте, слышите ли вы соответствующее событие и не заглушает ли его непрерывный цикл. Предупреждение, когда несущий факел приближается, могло бы помочь игроку, сосредоточенному через лук; это желаемое дополнение в исходном материале, а не реализованное предупреждение, показанное здесь.
Пример закрывающего щита показывает отдельный запрос на арт: тёмное железо, кожаные ремни и медная шеврон. Астра подготавливает генерацию, смета проверяется, а результат открывается на Хиггсфилде. Рассматривайте это как этап утверждения концепта. Изображению щита всё ещё требуется модель, примерка и проверки в игре, соответствующие его предполагаемому использованию.
Для текущего подключения ChatGPT следуйте официальному руководству по подключению Хиггсфилда: добавьте плагин Higgsfield из каталога плагинов, войдите в систему и авторизуйтесь. Документированный маршрут требует активной платной подписки на Higgsfield и не требует ключа API. Проверьте это с помощью запроса баланса или запроса последних поколений и убедитесь, что помощник действительно вызывает инструменты перед тем, как просить его генерировать. Это текущая процедура работы с плагином; зафиксированная демонстрация вызывает его соединение MCP.
Держите решение по искусству небольшим: утвердите форму и материалы щита перед созданием 3D-объекта. Если вашей следующей задачей является организация кадров трейлера вместо игровых объектов, то Руководство по библиотеке кадров API Higgsfield охватывает этот отдельный рабочий процесс.
Устраните неисправную часть, затем повторите главу
Крепость выглядит великолепно, но уровень кажется пустым. Проверь маршрут от позиции игрока. Добавь значимую цель и соединения между используемыми пространствами перед тем, как запрашивать больше декораций. Ashfall нужна была крепость, которую стоит защищать, и интерьер для использования во время отступления.
Лестница сдвинулась, но всё ещё не работает. Сравни её вход, площадку и соединение с замком с аннотированным скриншотом. Затем пройди её в Godot. Исправленный силуэт всё ещё может оставить сломанную коллизию или несоединённую дверь.
Персонаж импортирован, но прицеливание выглядит неправильно. Пересмотри выравнивание снаряжения и конкретную анимацию прицеливания. Просмотри риг, проверь сопоставление костей там, где используется ретаргетинг, и повтори тот же тест с натягиванием и отпусканием. Не принимай позу ожидания как доказательство того, что лук работает.
Игрок не может понять, что делать. Попросите тестера назвать текущую цель и следующее место назначения без объяснений. Уточните обозначение фазы, значение времени или приоритет цели, если они сомневаются. Обратный отсчёт Ashfall помог, но дополнительные предупреждения для бегунов и более сильные реакции на удары остаются полезными для следующих проверок.
Прототип технически работает, но кажется незавершённым. Выберите между движением, обратной связью от ударов и поведением защитника на основе наблюдаемой проблемы. Следующими приоритетами Рона были бои у стен и движение Кейда. Завершённая первая глава позволяет играть от начальной защиты до крепости; это не означает, что бой или анимация готовы к выпуску.
Сделайте следующую задачу достаточно короткой, чтобы можно было проверить за один проход. Сохраните изменённый ресурс или сцену, точный тест и доказательства до и после. Так повторяющиеся исправления в этом проекте превращаются в рабочий процесс, который можно использовать в другой игре.
