Props · 4 min de leitura

Como converter um GLB em prop do FiveM sem Blender

Ler em: English · Español · Français · Deutsch · Italiano · Polski · Türkçe · Русский

GLB to Prop com um modelo de reboque carregado: a visão 3D com o tamanho em metros, e os painéis de transformação, dimensões e origem

Você achou o modelo perfeito no Sketchfab, fez um no Blender ou gerou um com uma ferramenta de IA, e quer tê-lo no seu servidor do FiveM como um prop que dá para spawnar. O caminho usual é o Blender, o add-on Sollumz e o CodeWalker, com bastante aprendizado no meio. Também dá para fazer online em poucos minutos.

Do que é feito um prop do FiveM

Um prop que o jogo consegue spawnar pelo nome são três arquivos na pasta stream de um recurso, mais uma linha no fxmanifest dele:

  • .ydr: o modelo em si, com os shaders e a colisão.
  • .ytd: as texturas dele (podem estar dentro do .ydr).
  • .ytyp: o archetype dele, a entrada que faz dele um objeto colocável: nome, tamanho, distância de desenho, dicionário de texturas e física. (Mais sobre o .ytyp.)
lua
data_file 'DLC_ITYP_REQUEST' 'stream/my_prop.ytyp'

Um .glb guarda o modelo e as texturas num só arquivo, por isso é o formato mais fácil para começar. Exporte do Blender como glTF Binary (.glb); um .gltf com arquivos separados não serve.

Confira a licença do modelo antes de usá-lo. CC Attribution significa que você precisa creditar o autor, e algumas licenças não permitem uso comercial.

Converta passo a passo

Abra o GLB to Prop e arraste o seu .glb (ou clique em Try a 1 m test cube para ver como funciona antes). GLBs comprimidos (Draco, meshopt, texturas KTX2 ou WebP) são descomprimidos no seu navegador antes de qualquer envio.

  1. Ajuste o tamanho. O ped freemode fica ao lado do seu modelo. Se o modelo veio em centímetros ou milímetros, defina File units (unidades do arquivo); ou digite o tamanho que quer em metros.
  2. Gire. Um modelo deitado de lado precisa de um quarto de volta: X +90°. Drop (G) o coloca no chão.
  3. Defina a origem. Bottom centre (centro inferior) é o padrão: o CreateObject coloca esse ponto nas coordenadas que você informar, então o prop fica de pé no chão onde você o spawna.
  4. Dê um nome em letras minúsculas, dígitos e _. Use um prefixo seu: nomes que começam como os do jogo (prop_, v_, p_…) recebem um aviso, porque podem colidir com os modelos do GTA.
  5. Escolha a colisão: Fitted (convex hull) (envoltória convexa ajustada) serve para a maioria dos props, Its own triangles (os próprios triângulos) para props e pisos por onde se anda, Box around it (caixa ao redor) para caixas e blocos, None (nenhuma) para decorações. Escolha também a Surface (superfície: concreto, metal, madeira…) para os sons e as marcas de bala certos.
  6. Clique em Download the FiveM resource (.zip) (baixar o recurso do FiveM).

Em Advanced você também pode manter as texturas dentro do .ydr, deixar as faces de dois lados, definir o tamanho máximo da textura (1024 px por padrão) e até onde o prop é desenhado (Seen up to, 100 m por padrão). Marque Static (can't be pushed) (estático, não pode ser empurrado) nos props que nunca devem se mover.

Coloque no seu servidor

O zip traz uma pasta com o nome do prop, com o fxmanifest.lua e os .ydr, .ytd e .ytyp dentro de stream/. Coloque essa pasta no seu resources, adicione ensure my_prop ao server.cfg e reinicie. A página mostra então o código para spawná-lo na sua frente:

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)

O vídeo tutorial faz tudo com um modelo gratuito do Sketchfab, do download ao prop no jogo.

O que ele não faz (ainda)

  • Um só nível de detalhe. O prop é desenhado inteiro enquanto é desenhado. Dê a ele LODs mais leves depois com o Prop LOD Builder.
  • Uma superfície por prop. Para um prop que é metal de um lado e madeira do outro, ou uma colisão desenhada à mão, abra o resultado no Prop Collision Editor.
  • Sem partes móveis nem luzes. O YDR Animation cria props que se movem sozinhos; o Prop Lights coloca luzes reais em um.

Modelos muito pesados (acima de 150.000 triângulos) recebem um aviso: os jogadores vão sentir. Modelos gerados por IA costumam ser bem mais pesados do que precisam.

Perguntas

Posso converter um FBX ou OBJ?
Abra no Blender (ou qualquer app 3D) e exporte primeiro como .glb. O GLB to Prop aceita só .glb.
Funciona com ESX, QBCore e QBox?
Sim. Um prop é um asset em streaming, não um script: qualquer framework o spawna pelo nome.
Por que meu prop convertido flutua ou afunda?
A origem dele não está onde você imagina. Com Bottom centre a origem é a base do modelo, então o prop fica apoiado no ponto onde você o spawna. Mais em o guia de colisão.

A ferramenta para isso

GLB to Prop

Arraste seu .glb, ajuste o tamanho ao lado do ped freemode, escolha a colisão e baixe um recurso do FiveM com o .ydr, o .ytd e o .ytyp.

Abrir GLB to Prop

Também útil aqui: Prop LOD Builder · Prop Collision Editor

Todas as ferramentas são grátis para testar, com 5 exportações por dia. Entre com o Discord para usá-las.