Como criar um carro em movimento realista no Roblox Studio: passo a passo

Como criar um carro em movimento realista no Roblox Studio

Para criar um carro dirigível no Roblox Studio, construa um chassi, conecte cada roda com HingeConstraints corretamente alinhadas , use um VehicleSeat para entrada do jogador e deixe um script no servidor transformar essa entrada em torque e direção das rodas. Essa configuração permite que você tenha rodas giratórias, direção nas rodas dianteiras e colisões físicas sem depender do VehicleSeat para controlar os motores das dobradiças automaticamente.

As imagens abaixo são guias no estilo Studio para posicionamento de objetos, não capturas de tela exatas do editor atual. Siga os nomes, configurações e código nas instruções. Esta construção para iniciantes é de tração traseira com chassi rígido; não inclui suspensão nem diferencial.

O que você precisa antes de construir

  • Roblox Studio e um projeto Baseplate em branco.
  • Conhecimento básico dos painéis Explorer e Properties.
  • Oito etapas de construção simples. Mantenha o carro virado para o eixo Z negativo (a direção para frente no Roblox) para que o sinal de direção no script corresponda.

A ideia central é importante: uma HingeConstraint une dois Attachments em um ponto e eixo compartilhados. Uma dobradiça motorizada controla a velocidade angular; uma dobradiça servo-controlada controla um ângulo. A documentação do VehicleSeat do Roblox também explica que seu mecanismo de movimento integrado detecta apenas motores conectados diretamente ao assento ou por meio de conexões rígidas. Como as rodas ficam além das dobradiças, o script do controlador lê as entradas do assento e atualiza as dobradiças automaticamente.

Passo 1: Crie o chassi e o modelo do carro.

No Workspace, crie um Modelo chamado Car. Adicione uma Peça chamada Chassise defina seu Tamanho para aproximadamente (6, 1, 10). Posicione-a um pouco acima da Placa Base, centralizada aproximadamente em (0, 2.3, 0). Defina a Parte Primária do modelo como Chassi. A escala exata pode variar; as dimensões aqui são proporções iniciais, não limites do motor.

Um chassi retangular de carro centralizado em uma base do Roblox Studio, pronto para receber as rodas.
Um chassi retangular baixo fornece uma estrutura rígida única para as restrições das rodas e os painéis da carroceria.

Passo 2: Adicione a carroceria e as quatro rodas.

Adicione peças simples para o capô, a cabine e a carroceria traseira. Posicione-as acima do chassi e conecte cada peça decorativa ao chassi com uma restrição de solda . Defina as peças decorativas como `true` CanCollide = falsee, se forem apenas visuais, defina-as como Massless = true`false`. Mantenha o chassi como a principal estrutura de colisão.

Crie quatro peças cilíndricas denominadas WheelFL, WheelFR, WheelRL, e WheelRR. Gire cada cilindro de lado para que seu eixo fique na horizontal. Posicione os centros das rodas nos seguintes deslocamentos em relação ao centro do chassi:

RodaDeslocamento do ChassiPosição
WheelFLFrente esquerda(-3,5, -1, -3,2)
WheelFRFrente direita(3,5, -1, -3,2)
WheelRLTraseira esquerda(-3,5, -1, 3,2)
RodaRRTraseiro direito(3.5, -1, 3.2)

Para rodas com 2,6 furos de fixação, esses deslocamentos posicionam a parte inferior do pneu próxima à placa de base quando o centro do chassi estiver próximo de Y = 2,3. Ajuste as rodas CanCollidepara que fiquem alinhadas. Não solde as rodas ao chassi; elas precisam girar em suas dobradiças.

Uma carroceria simples no estilo Roblox, com quatro rodas cilíndricas posicionadas nos cantos do chassi.
Os painéis da carroceria são fixados rigidamente à estrutura, enquanto as quatro rodas permanecem como peças móveis separadas.

Etapa 3: Posicione os suportes das rodas e os cubos de direção.

Adicione um ponto de fixação Attachmentno centro de cada roda e nomeie-o como AxleAttachment. Adicione conexões de eixo correspondentes ao chassi nos centros das rodas. As duas conexões de qualquer dobradiça de roda devem ocupar a mesma posição no mapa e suas setas amarelas de eixo devem apontar na mesma direção. Para as juntas das rodas, alinhe esse eixo horizontalmente ao longo do carro.

Para as rodas dianteiras, adicione pequenas peças de cubo nomeadas HubFLe HubFRespaçadas no mesmo centro das rodas dianteiras. Defina-as como transparentes, não colidíveis e sem massa. Cada cubo precisa de duas conexões: uma conexão de pivô de direção alinhada verticalmente e uma conexão de eixo alinhada lateralmente. Use a visualização de restrições do Studio para confirmar os eixos antes dos testes; uma dobradiça torcida ou desalinhada travará ou oscilará.

Conjuntos de quatro rodas e cubos com eixos de fixação coloridos visíveis em seus centros.
Alinhe os eixos de fixação antes de adicionar as restrições; o eixo da roda atravessa o carro.

Passo 4: Motorize as rodas traseiras

Adicione dois HingeConstraintobjetos ao modelo do carro: MotorRLe MotorRR. Para cada um, conecte o eixo do chassi correspondente à roda traseira AxleAttachment. Defina ActuatorTypecomo Motore inicie com MotorMaxTorque = 8000e MotorMaxAcceleration = 60. O controlador definirá AngularVelocityenquanto o jogador dirige.

Esses valores de torque são pontos de partida para o ajuste deste pequeno protótipo. Se os pneus girarem em falso sem que o carro se mova, verifique se o chassi está solto, se as rodas traseiras tocam o chão e se ambas as dobradiças estão alinhadas. Não adicione uma restrição de solda (WeldConstraint) sobre uma dobradiça do motor.

Vista aproximada de uma roda traseira unida ao chassi por meio de uma dobradiça.
A roda permanece livre para girar porque sua conexão com a estrutura é uma dobradiça, e não uma solda.

Etapa 5: Adicione direção dianteira e rodas de giro livre.

Para cada lado frontal, conecte o chassi ao seu cubo com uma direção HingeConstraintchamada SteerFLou SteerFR. Defina-a ActuatorTypepara Servo, habilite os limites e defina os ângulos inferior e superior para cerca de -25 e 25 graus. Defina ServoMaxTorquepara um valor inicial próximo de 8000.

Em seguida, adicione uma segunda dobradiça de cada cubo à sua roda dianteira, nomeada como SpinFLe SpinFR. Defina ActuatorTypecomo None, para que as rodas dianteiras possam girar livremente enquanto as rodas traseiras empurram o carro. Para as dobradiças de direção, ambos os eixos de pivô devem apontar verticalmente. O script usa um sinal negativo para a direção à direita porque o modelo está voltado para -Z; se os pivôs das suas rodas girarem para o lado errado, inverta esse sinal.

Um cubo de roda dianteira com pivô de direção vertical e fixação do eixo lateral.
O cubo gira para a esquerda e para a direita, enquanto uma dobradiça separada permite que a roda gire.

Passo 6: Instale o assento veicular e desprenda-o do carro.

Insira um assento VehicleSeatno modelo do carro e posicione-o acima do chassi, onde o motorista deve se sentar. Conecte-o rigidamente ao chassi com um conector WeldConstraint. O assento fornece os comandos de aceleração e direção do jogador; o script personalizado abaixo passa esses valores para os motores e servos das dobradiças.

Ao organizar as peças, mantenha-as ancoradas se isso facilitar o posicionamento. Antes de executar o carro, defina Anchored = falseo Chassi, o assento, as partes da carroceria, os cubos e as rodas. Certifique-se de que todas as partes móveis e restrições estejam vinculadas ao modelo do Carro. Use VehicleSeato nome exato do assento.

Um VehicleSeat selecionado pairando sobre um chassi de quatro rodas com o dispositivo Studio Move visível.
Posicione o assento sobre o chassi e, em seguida, solde-o à estrutura antes de testar o jogo.

Passo 7: Adicione o controlador de carro do lado do servidor

Insira um objeto regular Scriptno modelo do carro, nomeie-o CarControllere cole este código. Ele lê ThrottleFloatos SteerFloatdados do banco, controla as duas dobradiças do motor traseiro e ajusta a direção dos servos dianteiros. Mantenha este script como um script de servidor, não como um script local, para que a lógica do veículo não seja executada apenas no cliente do motorista.

local RunService = game:GetService("RunService")

local car = script.Parent
local seat = car:WaitForChild("VehicleSeat")

local driveMotors = {
    car:WaitForChild("MotorRL"),
    car:WaitForChild("MotorRR"),
}

local steeringServos = {
    car:WaitForChild("SteerFL"),
    car:WaitForChild("SteerFR"),
}

local MAX_WHEEL_ANGULAR_SPEED = 28 -- radians per second
local MAX_STEERING_ANGLE = 25 -- degrees

RunService.Heartbeat:Connect(function()
    local occupied = seat.Occupant ~= nil
    local throttle = occupied and seat.ThrottleFloat or 0
    local steer = occupied and seat.SteerFloat or 0

    for _, hinge in ipairs(driveMotors) do
        hinge.AngularVelocity = throttle * MAX_WHEEL_ANGULAR_SPEED
    end

    for _, hinge in ipairs(steeringServos) do
        -- The car faces -Z; reverse this sign if your axes turn the other way.
        hinge.TargetAngle = -steer * MAX_STEERING_ANGLE
    end
end)

Certifique-se de que os nomes das quatro dobradiças no Explorer correspondam exatamente aos nomes no script. As dobradiças do motor devem ser definidas como "Motor" e as dobradiças da direção como "Servo" nas Propriedades. Para garantir a responsividade em partidas multiplayer, o Roblox atribui a propriedade da rede de física automaticamente por padrão. Você pode atribuir a propriedade ao piloto de um conjunto de veículos, se necessário, mas a física controlada pelo cliente pode ser manipulada; valide qualquer movimento do veículo que afete os resultados ou recompensas da competição.

Editor de scripts no estilo Roblox Studio ao lado do modelo de carro finalizado em uma viewport.
Use o bloco de código acima como fonte de referência; esta visualização em estilo de editor serve apenas como guia de posicionamento.

Etapa 8: Teste, ajuste e finalize.

Inicie um teste de jogo, sente-se no banco e use os controles de movimento normais. No computador, a entrada padrão do veículo geralmente é W/S para frente e para trás e A/D para direção, dependendo das configurações de controle da sua experiência. Observe a rotação das rodas, a direção, as curvas e as colisões em uma grande área plana de teste. Altere uma configuração por vez:

  • O carro se move para trás: inverta o sinal da velocidade angular do motor traseiro ou inverta os dois eixos de fixação do eixo traseiro simultaneamente.
  • A direção está invertida: remova o sinal de menos anterior steerno script.
  • As rodas giram, mas a carroceria permanece imóvel: verifique se o chassi não está ancorado, se as dobradiças traseiras estão alinhadas com as peças corretas e se os pneus tocam o chão.
  • O carro treme ou capota: abaixe a carroceria, reduza o torque ou o ângulo de direção e faça com que os painéis decorativos não sejam colisíveis, para que não se prendam no chassi.
  • A parte dianteira não esterça: verifique se cada articulação do servo está usando o ponto de articulação vertical do cubo, e não o ponto de articulação do eixo da roda.

Depois que o veículo base estiver funcionando, adicione peças para faróis e lanternas traseiras, um objeto de som para o loop do motor ou um emissor de partículas para o escapamento. Uma verdadeira melhoria na suspensão requer molas ou restrições de suspensão e mais ajustes; este carro inicial do Roblox Studio se concentra em um chassi estável, rodas giratórias e direção responsiva.

Um carro de quatro rodas construído com blocos no Roblox, transportando um avatar sentado durante um teste em pista plana.
Um teste de funcionamento verifica se o veículo se move para a frente, vira e mantém os pneus na estrada.

Por que essa configuração funciona

A antiga abordagem de soldar cada roda ao chassi impede a rotação da roda, e um assento de veículo (VehicleSeat) sozinho não garante o controle de rodas articuladas. Este projeto separa as funções: as restrições de solda (WeldConstraints) mantêm a carroceria e o assento rigidamente no lugar, as restrições de articulação (HingeConstraints) fornecem rotação e direção, e um script de servidor mapeia a entrada do jogador para esses atuadores. Comece com a geometria e as configurações aqui e, em seguida, ajuste o torque do motor e o ângulo de direção para corresponder à massa e à escala do seu carro.

Referências oficiais do Roblox

Deixar um comentário

Como verificar a latência do servidor em tempo real no HUD do PUBG

Como verificar a latência do servidor em tempo real no HUD do PUBG

Ative a interface de estatísticas de rede do PUBG para monitorar o ping e a perda de pacotes durante uma partida. Veja onde encontrá-la, o que os números significam e o que ela não permite diagnosticar.

Domine a Rota do Meio: Como Carregar o Jogo em League of Legends

Domine a Rota do Meio: Como Carregar o Jogo em League of Legends

Aprenda como carregar o jogo na rota do meio em League of Legends, organizando as ondas de minions, escolhendo janelas seguras para movimentação, lendo as rotas laterais e convertendo a pressão em objetivos.

Como corrigir o erro da magia Evocador no Minecraft em mundos modificados

Como corrigir o erro da magia Evocador no Minecraft em mundos modificados

Corrija problemas com a magia Evoker do Minecraft com um teste seguro no jogo base, verificação de versões, análise de logs e um método passo a passo para isolar conflitos de mods ou datapacks.

Melhores configurações de filtro visual de Dead by Daylight para detectar sobreviventes em mapas escuros.

Melhores configurações de filtro visual de Dead by Daylight para detectar sobreviventes em mapas escuros.

As melhores configurações de filtro visual para Dead by Daylight começam com um pequeno aumento de gama, cores e contraste neutros e uma rápida verificação de cantos escuros, neblina e luzes brilhantes.

Como resolver o problema do Brawl Stars travado em 92% de carregamento

Como resolver o problema do Brawl Stars travado em 92% de carregamento

Corrija o problema de Brawl Stars travado em 92% de carregamento com uma lista de verificação em ordem para avisos de serviço, testes de rede, atualizações seguras, cache do Android e reinstalação segura da conta.

Como ativar as opções de inicialização do Autoexec no Apex Legends

Como ativar as opções de inicialização do Autoexec no Apex Legends

Encontre os campos de aplicativos Steam e EA para as opções de inicialização do Apex Legends, use o comando FPS documentado da EA e veja por que +exec autoexec.cfg permanece não verificado.

Como reduzir o atraso de entrada em um Nintendo Switch conectado à TV para Smash Ultimate

Como reduzir o atraso de entrada em um Nintendo Switch conectado à TV para Smash Ultimate

Reduza o atraso de entrada no dock do Nintendo Switch para Smash Ultimate com o Modo Jogo para TV, um teste HDMI direto, verificações de controle e solução de problemas de latência online.

Melhores configurações de áudio para ouvir o apito do árbitro com clareza no EA SPORTS FC

Melhores configurações de áudio para ouvir o apito do árbitro com clareza no EA SPORTS FC

Encontre as melhores configurações de áudio do EA SPORTS FC para um apito do árbitro mais nítido: ajuste o Ambiente do Estádio e os Comentários e, em seguida, resolva problemas de saída ou sincronização.

Melhor configuração de proporção de tela para tablet para visão nítida da ponte no Clash Royale

Melhor configuração de proporção de tela para tablet para visão nítida da ponte no Clash Royale

Encontre a melhor configuração de proporção de tela para Clash Royale em tablets, compare as opções de ajuste de tela do Android e verifique o enquadramento em tela cheia no iPad sem cortar a arena.

Como corrigir o erro 6068 do desenvolvedor do Warzone ao iniciar o jogo

Como corrigir o erro 6068 do desenvolvedor do Warzone ao iniciar o jogo

Corrija o erro 6068 do Warzone Dev na inicialização com verificações seguras do PC para atualizações, overlays, drivers gráficos, reparo de arquivos do jogo e solução de problemas de inicialização limpa.