Cave: Руководство по началу работы
Cave: Руководство по началу работы
Lesson 12 of 19 • 50 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Cave — это игровой движок, который позволяет превращать ваши идеи в настоящие видеоигры. Он предназначен для того, чтобы вы могли объединить все вместе, создавать дизайн уровней, интерфейсы и логику. Но для непосредственного создания арта, такого как текстуры, 3D-модели, анимации, звуки и музыка, вам, вероятно, удобнее использовать специализированные инструменты. Инструменты, такие как Blender, 3Ds Max, Maya, Sketchup для 3D, Adobe Photoshop, GIMP, Krita для обработки изображений или Audacity для звука. Конечно, вы можете использовать любые другие внешние инструменты для этого. Важный момент здесь:
Большинство игр используют контент, созданный вне движка.
В Cave это не исключение. Это значит, что вам нужно импортировать эти файлы в движок, поэтому важно понимать, как это делать и какие существуют правильные и неправильные практики. Импорт — это этап, который переносит файлы в Cave, чтобы они стали частью вашего проекта.
Этот урок знакомит с базовым рабочим процессом импорта.
Вы узнаете:
- Какие типы файлов Cave может импортировать.
- Чем становятся импортированные файлы внутри Cave.
- Почему лучше начинать с простых импортов, а не с огромных пакетов ассетов.
- Как импорт моделей может порождать различные типы ассетов.
- Что проверять после импорта.
Цель — помочь вам понять, что происходит, когда внешние файлы становятся ассетами Cave.
Что можно импортировать?
Cave может импортировать несколько типов внешнего контента.
| Тип импортируемого файла | Становится |
|---|---|
| Изображения (различные форматы) | Текстурными ассетами. |
| Аудиофайлы OGG | Аудиоассетами. |
| Шрифты TTF | Фонтовыми ассетами. |
Файлы .cavePkg |
Импортированными пакетами ассетов Cave. |
| 3D-модели | Мешами, материалами, текстурами, скелетами, анимациями и шаблонами, в зависимости от файла. |
После импорта файлы становятся ассетами Cave в Asset Browser.
Это значит, что их можно использовать в Сценах, Материалах, Сущностях и Шаблонах Сущностей, UI, аудиосистемах, скриптах, логике — везде! Импортированные файлы перестают быть просто файлами на диске. Они превращаются в содержимое проекта, к которому Cave может обращаться, сохранять, организовывать и повторно использовать.
Cave использует собственные форматы
При импорте ЛЮБОГО файла в Cave (изображения, текстуры, аудио, 3D-модели и т. д.) ассет преобразуется во внутренний, собственный формат Cave Engine. Это важно, потому что такой формат гораздо быстрее парсится и используется движком для обеспечения наилучшей производительности вашей игры. Движок автоматически выполняет множество внутренних оптимизаций и кеширования, чтобы ваши ассеты были готовы к производству игр.
> Все это происходит внутри, и вам не нужно беспокоиться об этом, но важно понимать, что этот процесс происходит и как он влияет на вас (и почему это хорошо).
Если вы импортируете в Cave файл изображения .png, движок не будет использовать исходный файл PNG в вашей финальной игре. Сразу после добавления он проходит быструю конвертацию, и вместо png используется формат Cave. То же происходит с импортом аудио или 3D-моделей. Эта информация особенно важна для 3D-ассетов: Cave не использует сырьевые DCC-форматы, такие как .fbx, .obj, .glb. Их можно импортировать, но они конвертируются во внутренний формат движка.
Причина в том, что хотя эти форматы популярны, парсить, например, fbx или даже png во время работы игры дорого и снижает производительность. Поэтому Cave извлекает необходимые данные, такие как Меши, Материалы, Анимации, Текстуры, и сохраняет их в собственном формате.
Это имеет три важные последствия:
- Ваша игра будет работать быстрее и занимать меньше места на диске.
- Импорт ассетов является деструктивным: Cave не хранит оригинальную ссылку на ваш исходный файл, поэтому если вы измените его вне движка, нужно будет импортировать заново.
- Некоторые функции могут быть недоступны: хотя форматы поддерживаются, некоторые особенности исходного формата могут не поддерживаться Cave. В таких случаях вас уведомят, а соответствующий контент не попадет в ассеты.
Теперь, когда вы знакомы с процессом импорта, давайте рассмотрим его подробнее.
Импорт изображений путем перетаскивания
Изображения можно импортировать, просто перетащив их в Asset Browser.
Cave поддерживает большинство популярных форматов изображений:
- PNG.
- JPG и JPEG.
- TGA.
- BMP.
- HDR.
- PSD.
- PNM.
- GIF.
- PIC.
- DDS.
Импортированные изображения становятся Texture Assets и могут использоваться в материалах, элементах UI, настройках неба и других системах, которым нужны данные изображений. Например, текстура может стать цветовой картой материала камня, иконкой в UI или картинкой для скайбокса сцены.
Для первичного теста сделайте просто: импортируйте одну текстуру, назначьте её материалу, примените этот материал к мешу в Сцене и посмотрите результат в 3D View.
Импорт аудио
Аудио также можно импортировать перетаскиванием в проект. В настоящий момент Cave импортирует аудио в формате OGG. Если у вас аудио в другом формате, конвертируйте его в OGG перед импортом. В интернете есть инструменты для конвертации, а мы рекомендуем бесплатную и простую программу Audacity, которая очень удобна для сохранения аудио в ogg.
Формат OGG — это бесплатный мультимедийный контейнер с открытым исходным кодом, разработанный Xiph.Org Foundation. Он посвящён потоковой передаче и хранению высококачественного цифрового аудио, часто обеспечивая лучшее качество при меньшем размере файла по сравнению с традиционным MP3. ref
Импортированное аудио становится аудиоассетом, который можно использовать где угодно в движке — например, в компонентах Audio Player, логических кирпичах или вызывать через Python-код. Пример:
cave.playSound("My Audio File")
Хорошие первые аудио для импорта — короткие и простые для теста:
- Поднятие монеты.
- Клик по кнопке.
- Открытие двери.
- Простой цикл амбиента.
- Музыка для саундтрека вашей игры.
Импорт шрифтов и пакетов Cave
Cave может импортировать файлы шрифтов TTF. TTF (TrueType Font) — это формат файлов шрифтов, изначально разработанный Apple и принятый Microsoft, ставший одним из основных форматов для масштабируемого цифрового текста сегодня.
Шрифты используются, главным образом, в UI Element Component, что позволяет создавать HUD игры, текст, меню, кнопки, субтитры, титры, диалоговые интерфейсы и т.д. Выбор шрифта может сильно влиять, даже в простом меню.
Импорт пакетов Cave
Cave также может импортировать файлы .cavePkg. Пакет Cave — это пакет ассетов Cave, который можно импортировать в другой проект.
Если вы откроете Asset Browser и кликните правой кнопкой на папку или файл, то сможете экспортировать его как пакет Cave. При экспорте можно будет позже импортировать этот пакет в другие проекты. Это очень удобно для совместного использования общей логики между проектами. Помните, что при экспорте пакета попадет только то, что в выбранной папке или ассете. Если, например, вы хотите экспортировать материал с набором текстур, важно собрать их все в одну папку и затем экспортировать эту папку. Если вы экспортируете только материал, текстуры не попадут в пакет.
При перетаскивании пакета cavePkg в Asset Browser Cave Engine пакет импортируется, и оригинальная структура папок будет восстановлена в вашем проекте. Это удобно для совместного использования повторно используемых ассетов, добавления контента по умолчанию в новый проект или переноса частей проектов между проектами.
Импорт 3D-моделей
Теперь мы подошли к одному из самых важных этапов в 3D-игровом движке — импорту 3D-моделей. Cave использует assimp для поддержки множества форматов 3D-моделей через импортёр моделей.
Он поддерживает множество форматов моделей, но FBX — основной рекомендуемый формат для Cave.
Импорт моделей может породить сразу несколько типов ассетов:
- Меши.
- Материалы.
- Текстуры.
- Оружия (скелеты).
- Анимации.
- Шаблоны сущностей.
Точный набор зависит от исходного файла.
Простой ящик может породить только меш, материал, текстуру и шаблон. Анимированный персонаж — меши, скелет, анимации, материалы, текстуры и сложный шаблон.
Рекомендуемые первые импорты
Для первых тестов используйте простые, аккуратные ассеты. Kenney Asset Packs (CC0) — хороший выбор для начинающих, поскольку они обычно хорошо организованы, легки и понятны. Можно также посмотреть Quaternius Assets (CC0) или обозреть FAB Asset Store.
Для первых импортов подойдут ящик, камень, низкополигональное дерево, простое здание или персонаж. Избегайте огромных сетов персонажей или крупных окружений. Простой ассет легче понять — какие ассеты создаёт Cave, какие настройки важны и как выглядит импортированный контент в Asset Browser. После этого можно переходить к более сложным ситуациям.
Импорт модели шаг за шагом
При перетаскивании ассета (например, FBX) в Asset Browser Cave вы увидите окно вроде этого:

Поддерживается одновременное перетаскивание нескольких файлов — для каждого создаётся вкладка. Для каждой вкладки можно выбрать, какие ассеты импортировать. Здесь отображаются типы ассетов и если развернуть заголовок каждого типа, можно увидеть, какие ассеты были распознаны и конвертированы импортёром Cave. Также доступен выбор отдельных ассетов для импорта и возможность переименовывать файлы. Названия импортированных ассетов можно изменить и позже.
Вверху, перед каждой вкладкой файла, вы найдете две глобальные опции (на один импортируемый ассет):
- Settings, которые позволяют выбрать, хотите ли вы создать подпапку для импортируемого ассета или нет, а также хотите ли вы автоматически сгенерировать физику в Entity Template, который будет сгенерирован движком.
- А также опции Filters, которые полезны, когда вы импортируете десятки ассетов и нодов, и вас интересует только определённый элемент в файле, например, меш.
Обычный импорт модели выглядит примерно так:
- Создайте или выберите папку в Asset Browser.
- Перетащите файл модели в эту папку.
- Дождитесь, пока Cave распарсит файл.
- Проверьте опции импорта.
- Выберите, какие сгенерированные ассеты следует импортировать.
- При необходимости отрегулируйте масштаб импорта.
- Подтвердите импорт.
- Осмотрите сгенерированные ассеты в Asset Browser.
Опции импорта могут отображать сгенерированные ассеты, сгруппированные по типу.
Это позволяет решить, что именно должно быть импортировано, вместо того, чтобы принимать все без разбора. Это полезно, так как файлы моделей могут содержать больше данных, чем вам действительно нужно.
ВАЖНЫЙ СОВЕТ:
Если вы скачиваете сотни ассетов или ассет-пак, такой как Kenney или Quaternius, вы заметите, что эти паки обычно содержат по одному отдельному FBX-файлу на объект, и внутри каждого FBX-файла есть копия материала, а иногда и текстуры, которые используются во всех этих ассетах.
Если вы перетащите все эти ассеты с копиями одного и того же материала в каждый файл, Cave, как и ожидалось, импортирует все копии, создавая множество ненужных данных в вашем проекте, что со временем ухудшит производительность вашей игры. Это не ошибка движка, просто в каждом FBX-файле есть копия материалов.
Лучшей практикой в таком случае является сначала импортировать один FBX-файл в движок, посмотреть, что внутри него, убедиться в правильности материала. После того как этот файл импортирован и материал есть в вашем проекте, импортируйте остальные, используя фильтры, чтобы отключить импорт материалов и текстур, поскольку они уже импортированы движком для первого файла. Тогда при импорте Cave постарается найти уже импортированный материал по имени и использовать его.
Понимание импортированных мешей
Импортированная модель может содержать один меш или несколько мешей. Это зависит от того, как модель была построена в исходном DCC-инструменте.
Например:
| Исходная модель | Возможный результат импорта |
|---|---|
| Простой ящик | Один меш, один материал, один Entity Template. |
| Объект с отдельными частями | Несколько мешей и материалов, один Entity Template. |
| Анимированный персонаж | Меши, арматура и анимации, один Entity Template. |
После импорта просмотрите сгенерированные меш-ассеты и сгенерированный Entity Template.
Обратите внимание, что при каждом импорте создается Entity Template.
Entity Template старается воспроизвести сценическую конфигурацию, сделанную вами в вашем DCC-инструменте, например, Blender. Если вы создали расположение объектов в вашем редакторе моделей, разместили объекты в определённых местах и так далее, это будет отражено в Entity Template. Обычно вы не будете использовать «сырой» Entity Template, но он полезен, чтобы быстро добавить объекты в вашу сцену или сделать их локальными вместо использования шаблона и начать редактирование в Cave.
После импорта вашего ассета проверьте распространённые проблемы:
- Объект слишком маленький?
- Слишком большой?
- Неправильно повернут?
- Был неожиданно разделен?
- Сгенерированный шаблон выглядит правильно?
Лучше выявить эти проблемы сразу, а не после того, как ассет уже использован в уровне.
Если вы находите проблемы с импортированными ассетами, стоит открыть их в Blender или другом DCC, чтобы проверить правильность. Мы также рекомендуем триангулировать меши вашего ассета перед импортом в Cave.
ВАЖНО: При импорте 3D-модели в Cave движок автоматически старается триангулировать полигоны. Но иногда триангуляция может быть некорректной, из-за чего у модели появляются "дырки" или неправильно построенные полигоны. Чтобы избежать этого, мы всегда рекомендуем самостоятельно триангулировать полигоны в вашем DCC-инструменте перед импортом.
Понимание материалов и текстур
Импортированные модели могут также содержать материалы и текстуры.
Материал контролирует, как выглядит поверхность. Текстура предоставляет данные изображения, которые использует материал.
После импорта всегда проверяйте материал:
- Назначена ли текстура альбедо?
- Корректно ли назначены нормали?
- Импортировались ли карты шероховатости или металличности?
- Выглядит ли материал правильно в вьюпорте?
Импорт полезен, но не является магией.
Нормально подстраивать материалы после импорта. Например, вам может потребоваться отрегулировать шероховатость, исправить отсутствующую текстуру или выбрать более подходящую настройку материала под визуальный стиль вашей игры.
Мультиматериальные меши
В Cave меш использует один материал. Если объект в вашем DCC-инструменте использует несколько материалов, Cave представляет это как несколько мешей.
Один Entity всё равно может иметь несколько Mesh Components, так что итоговый объект выглядит так же в сцене. Структура просто другая:
Объект с несколькими материалами
Mesh Component с материалом A
Mesh Component с материалом B
Mesh Component с материалом C
Это дает Cave чистое отображение один меш — один материал, при этом сложные объекты отображаются корректно.
Из-за работы Cave, если вы импортируете мультиматериальный меш, то в Asset Browser меш будет разделён на разные части. Но Cave попытается воссоздать итоговый Entity Template с объединением всех мешей.
Импортированный Entity Template
При импорте модели Cave создаёт Entity Template, который представляет исходную настройку. Этот шаблон полезен тем, что максимально сохраняет задуманную композицию.
Например, импортированное здание может сгенерировать:
- Несколько меш-ассетов.
- Несколько материалов.
- Текстурные ассеты.
- Один Entity Template, объединяющий части.
Этот шаблон обычно самый удобный для перетаскивания в сцену.
Если импортированный объект выглядит правильно как шаблон, вы можете использовать его так же, как и любой другой Cave template. Задача — использовать ассеты в сценах и создавать играбельные пространства.
Основные советы по импорту
Соблюдайте чистоту при импорте:
- Предпочитайте FBX для моделей.
- Триангулируйте полигоны заранее.
- Для аудио используйте формат OGG.
- Используйте читаемые имена ассетов.
- Предпочитайте имена с пробелами или PascalCase.
- Импортируйте в организованные папки.
- Проверьте масштаб импорта.
- Проверьте сгенерированные материалы.
- Тестируйте импортированный шаблон в вьюпорте.
- Сохраняйте проект после импорта.
Импорт — нормальная часть разработки.
Делайте это небольшими шагами, проверяйте результат и дальше стройте проект. Чистый и организованный рабочий процесс импорта сэкономит вам много времени, когда проект начнёт использовать больше собственного контента.