Пропы · 3 мин чтения

Как превратить GLB в проп FiveM без Blender

Читать на:: English · Español · Français · Deutsch · Português · Italiano · Polski · Türkçe

GLB to Prop с загруженной моделью прицепа: 3D-вид с размером в метрах и панели трансформации, габаритов и точки опоры

Вы нашли идеальную модель на Sketchfab, сделали её в Blender или сгенерировали ИИ-инструментом и хотите видеть её на сервере FiveM как проп, который можно заспавнить. Обычный путь — Blender, аддон Sollumz и CodeWalker, и немалый объём обучения. Но то же самое можно сделать онлайн за пару минут.

Из чего состоит проп FiveM

Проп, который игра может заспавнить по имени, — это три файла в папке stream ресурса и одна строка в fxmanifest:

  • .ydr: сама модель, с её шейдерами и коллизией.
  • .ytd: её текстуры (они могут быть и внутри .ydr).
  • .ytyp: её архетип — запись, которая делает проп размещаемым объектом: имя, размер, дальность отрисовки, словарь текстур и физика. (Подробнее о .ytyp.)
lua
data_file 'DLC_ITYP_REQUEST' 'stream/my_prop.ytyp'

.glb хранит модель и её текстуры в одном файле, поэтому с него проще всего начать. Экспортируйте его из Blender как glTF Binary (.glb); .gltf с отдельными файлами не подойдёт.

Проверьте лицензию модели перед использованием. CC Attribution означает, что нужно указать автора, а некоторые лицензии запрещают коммерческое использование.

Преобразуйте пошагово

Откройте GLB to Prop и перетащите ваш .glb (или нажмите Try a 1 m test cube (попробовать тестовый куб 1 м), чтобы сначала посмотреть, как это работает). Сжатые GLB (Draco, meshopt, текстуры KTX2 или WebP) распаковываются в браузере, прежде чем что-либо отправляется.

  1. Задайте размер. Рядом стоит freemode-пед. Если модель пришла в сантиметрах или миллиметрах, выберите File units (единицы файла); или введите нужный размер в метрах.
  2. Поверните. Модель, лежащая на боку, нужно повернуть на четверть оборота: X +90°. Drop (G) ставит её на пол.
  3. Задайте точку опоры. По умолчанию Bottom centre (низ по центру): CreateObject ставит эту точку по заданным координатам, поэтому проп стоит на земле там, где его спавнят.
  4. Назовите его строчными буквами, цифрами и _. Используйте собственный префикс: имена, начинающиеся как у игры (prop_, v_, p_…), получают предупреждение, потому что могут конфликтовать с моделями GTA.
  5. Выберите коллизию: Fitted (convex hull) (выпуклая оболочка) подходит большинству пропов, Its own triangles (собственные треугольники) — пропам, в которые можно войти, и полам, Box around it (коробка вокруг) — ящикам и блокам, None (нет) — декору. Выберите также Surface (поверхность), например бетон, металл или дерево, для правильных звуков и следов от пуль.
  6. Нажмите Download the FiveM resource (.zip) (скачать ресурс FiveM, .zip).

В разделе Advanced (дополнительно) можно оставить текстуры внутри .ydr, сделать грани двусторонними, задать максимальный размер текстуры (по умолчанию 1024 px) и дальность отрисовки (Seen up to, по умолчанию 100 м). Отметьте Static (can't be pushed) (статичный, нельзя сдвинуть) для пропов, которые никогда не должны двигаться.

Поставьте на сервер

Архив содержит папку с именем вашего пропа, с его fxmanifest.lua и .ydr, .ytd, .ytyp в stream/. Положите эту папку в resources, добавьте ensure my_prop в server.cfg и перезапустите. Страница покажет код, чтобы заспавнить его перед вами:

lua
local model = `my_prop`
RequestModel(model)
while not HasModelLoaded(model) do Wait(0) end
local c = GetEntityCoords(PlayerPedId())
local obj = CreateObject(model, c.x, c.y + 1.0, c.z - 1.0, true, true, false)

Видеоурок делает всё это с бесплатной моделью Sketchfab, от скачивания до пропа в игре.

Что это пока не умеет

  • Один уровень детализации. Проп рисуется с полной детализацией на всём расстоянии, на котором он вообще виден. Позже добавьте более низкие LOD в Prop LOD Builder.
  • Одна поверхность на проп. Для пропа, который с одной стороны металл, а с другой дерево, или для коллизии, созданной вручную, откройте результат в Prop Collision Editor.
  • Нет подвижных частей и света. YDR Animation делает пропы, которые двигаются сами; Prop Lights ставит в проп настоящие источники света.

Очень тяжёлые модели (больше 150 000 треугольников) получают предупреждение: игроки это почувствуют. Модели, созданные ИИ, часто намного тяжелее, чем нужно.

Вопросы

Можно ли конвертировать FBX или OBJ?
Сначала откройте его в Blender (или другом 3D-приложении) и экспортируйте как .glb. GLB to Prop принимает только .glb.
Работает ли это с ESX, QBCore и QBox?
Да. Проп — это стримируемый ассет, а не скрипт: любой фреймворк спавнит его по имени.
Почему мой проп парит или проваливается?
Его точка опоры не там, где вы думаете. При Bottom centre точка опоры — низ модели, поэтому проп стоит на месте, где вы его спавните. Подробнее в руководстве по коллизии.

Инструмент для этого

GLB to Prop

Перетащите ваш .glb, задайте размер рядом с freemode-педом, выберите коллизию и скачайте ресурс FiveM с .ydr, .ytd и .ytyp.

Открыть GLB to Prop

Пригодится также: Prop LOD Builder · Prop Collision Editor

Другие руководства

Все руководства →

Каждый инструмент можно попробовать бесплатно: 5 экспортов в день. Войдите через Discord, чтобы пользоваться ими.