Action

Como animar peças de ferramentas (armas, facas etc.)

Compartilhar:

1: Crie um Dummy animável:
Vá até a aba “Avatar” na parte superior do Roblox Studio e clique em “Rig Builder”. Em seguida, escolha o tipo de rig que você deseja criar e animar, como R6 ou R15. O modelo R6 possui uma estrutura mais simples, com menos partes no corpo, sendo ideal para animações básicas e mais fáceis de editar. Já o R15 conta com mais articulações e permite movimentos mais detalhados e naturais, sendo recomendado para animações mais complexas. Depois de selecionar o tipo desejado, o Dummy será inserido na cena e poderá ser usado como base para criar, testar e ajustar suas animações. Certifique-se de posicioná-lo em um local visível no mapa para facilitar o processo de edição.

Para esta demonstração, vou animar em R6 com o “Block Rig”.

image

2: Criando uma parte raiz para a ferramenta

Sua arma e o dummy precisam de um Rig para que possam ser animados corretamente dentro do projeto. Em outras palavras, é necessário adicionar uma estrutura de ossos, controles ou pontos de referência que permitam movimentar cada parte do modelo de forma organizada e previsível. No caso da arma, o Rig ajuda a controlar elementos como o corpo principal, o gatilho, o carregador ou qualquer peça móvel. Já no dummy, ele permite animar braços, pernas, cabeça e outras partes do personagem com mais facilidade. Não se preocupe se isso parecer complicado à primeira vista. Apesar do nome técnico, criar ou configurar um Rig costuma ser um processo bem mais simples do que parece, especialmente quando você entende a função básica dele: transformar um modelo estático em algo que pode se mover. Com a estrutura certa, você poderá criar animações, poses e movimentos de maneira muito mais prática, mantendo tudo alinhado e funcionando corretamente.

Crie uma nova parte e nomeie-a como “BodyAttach”. Esta parte é essencialmente a raiz da ferramenta. Você pode colocá-la em qualquer lugar dentro da ferramenta. Pessoalmente, coloco perto do gatilho da arma, ou onde o braço do personagem segura.

Agrupe TUDO, incluindo o BodyAttach, sob um modelo.
E coloque o modelo DEBAIXO do dummy animável.

image

3. Soldagem
A soldagem consiste em unir as partes no interior da ferramenta, garantindo uma conexão firme e precisa entre os componentes.

Antes de prosseguir, você precisa instalar este plugin: https://www.roblox.com/library/804263305/Constraint-Editor
É um plugin indispensável quando se trata de soldagem.

Como usar o plugin:

1: Selecione o BodyAttach (a parte raiz criada na etapa anterior)
2: MANTENHA O CONTROLE e CLIQUE para selecionar as partes que precisam ser soldadas. (demonstrado no vídeo abaixo)
3: Para partes que precisam ser ANIMADAS (como carregadores de armas, ferrolhos, etc.), clique em New Motor6D. Para TODAS as partes restantes, clique em New Weld.

Para partes que precisam ser ANIMADAS:

Para TODAS as outras partes restantes:

Seu BodyAttach deve ter essas soldas e Motor6Ds após esta etapa:
Elas conectam cada parte da sua ferramenta ao BodyAttach, e o BodyAttach mantém todas juntas.
Certifique-se de que CADA PARTE dentro do modelo tenha OU uma Solda / Motor6D!!!

image

4: Conectando o dummy à ferramenta:

Aqui você deve escolher ONDE deseja que a ferramenta se conecte ao personagem.

Braço Esquerdo / Direito: Se você deseja que a ferramenta se mova junto com um dos braços, escolha Braço Esquerdo / Direito. Isso se comporta de maneira semelhante a uma ferramenta típica do Roblox.

NOTA: A ferramenta se move DE ACORDO com o braço se você escolher este método. O que significa que sempre que o braço direito SE MOVE em uma animação, a ferramenta SE MOVERÁ de acordo.

Soldar ao Braço Direito:


Torso: Se você deseja que a ferramenta NÃO seja restringida pelos braços, ou seja, que ela possa se mover livremente durante a animação, escolha a opção Torso. Essa configuração é indicada quando o movimento do objeto ou da ferramenta deve acompanhar a região central do corpo do personagem, sem sofrer limitações causadas pela posição, rotação ou alcance dos braços. Dessa forma, ao animar, você terá mais liberdade para ajustar a movimentação de maneira independente, permitindo criar ações mais fluidas, naturais e flexíveis, especialmente em situações em que a ferramenta não precisa permanecer presa às mãos ou seguir diretamente os movimentos dos membros superiores.

No entanto, se você escolher este método, a ferramenta NÃO se moverá quando você animar o braço direito. O que significa que o personagem não está mais “segurando” a ferramenta. Este método é altamente sugerido para pessoas que animam no Blender. já que as restrições do Blender podem resolver esse problema.

Soldar ao Torso:

 Benefícios de soldar ao Torso: (Clique aqui para ver)

Depois de decidir em qual parte do personagem soldar, clique neste ícone “+” ao lado da parte do dummy que você decidiu. (Torso / Braço / Outros)

image

Então, procure por Motor6D e insira um.

image

Após inserir o Motor6D, certifique-se de que tudo sob sua ferramenta esteja completamente DESANEXADO! Verifique com atenção se nenhuma peça, acessório ou componente ainda está preso por Welds, Constraints, Joints ou qualquer outro tipo de conexão indesejada. Isso é importante para evitar conflitos no funcionamento do Motor6D, impedir movimentos incorretos e garantir que a ferramenta seja animada ou posicionada corretamente. Antes de continuar, revise a hierarquia da sua ferramenta e confirme que apenas as conexões necessárias foram mantidas.

Então, conecte os Motor6Ds:

  • Part0 à parte decidida (Torso / Braço Direito / Outros).
  • Part1 ao BodyAttach.

Após conectar, sua ferramenta deve estar grudada ao dummy.

image

Se algumas partes da sua ferramenta estiverem faltando após esta etapa, pode ser que:

  • Algumas partes da sua ferramenta estavam anexadas
  • Algumas partes da sua ferramenta não estavam rigadas (consulte a etapa anterior)

6: Você pode começar a animar!
Abra o Editor de Animação do Roblox e então você pode começar a animar!
O rig também pode ser exportado e animado no Blender.

image
image

7: Parte essencial: No jogo

Você descobrirá que isso não funcionará no jogo se você apenas colocá-lo como uma ferramenta típica, há alguns passos essenciais a serem feitos antes de colocá-lo no jogo e fazer a ferramenta funcionar como esperado.

Primeiro, certifique-se de que a opção RequireHandles está DESATIVADA como ferramenta.

image

Então, alguma programação precisa ser feita com cuidado e organização, levando em conta as necessidades do projeto, os prazos disponíveis e os recursos que serão utilizados para que tudo funcione corretamente.

Enquanto animava, a ferramenta estava soldada ao torso do personagem (ou à parte que você decidiu), a mesma regra se aplica no jogo!

Primeiro, quando o personagem do jogador estava sendo adicionado, conceda a ele um Motor6D inicial para que possa ser usado para conectar o jogador e a ferramenta.

Então, quando um jogador equipa a ferramenta, você precisa conectar o Motor6D à Parte do Personagem do Jogador para que a ferramenta não caia.

Então, como podemos abordar essa questão?

Podemos usar ChildAdded para acompanhar quando uma ferramenta está sendo equipada. Quando a ferramenta está sendo equipada, conecte o Motor6D ao personagem.

-- Script do Servidor
game.Players.PlayerAdded:Connect(function(plr)			
	plr.CharacterAdded:Connect(function(char)		
		local M6D = Instance.new("Motor6D", char.Torso) -- ou a parte que você decidiu
		M6D.Name = "ToolGrip"

		char.ChildAdded:Connect(function(child)
			if child:IsA("Tool") and child:FindFirstChild("BodyAttach") then
				M6D.Part1 = child.BodyAttach
			end
		end)
	end)
end)

Você também pode conectar o Motor6D no cliente para que, quando uma ferramenta é equipada, o cliente não precise esperar o servidor para conectá-la e o Motor6D será imediatamente conectado na visão do cliente.

-- LocalScript, variáveis NÃO definidas.
char.ChildAdded:Connect(function(child)
	if child:IsA("Tool") and child:FindFirstChild("BodyAttach") then
		char.Torso.ToolGrip.Part1 = child.BodyAttach
	end
end)

Você também pode querer tocar a animação da ferramenta quando a ferramenta está sendo equipada.

-- LocalScript sob a ferramenta:
-- Reproduzindo animação
local anim = Instance.new("Animation", script.Parent)
anim.AnimationId = "" -- id aqui

local char = game.Players.LocalPlayer.Character or game.Players.LocalPlayer.CharacterAdded:Wait()
local load = char:WaitForChild("Humanoid"):LoadAnimation(anim)
script.Parent.Equipped:Connect(function()
	anim:Play()		
end)

script.Parent.Unequipped:Connect(function()
	anim:Stop()
end)

-- Conectando Motor6D localmente

local anim = Instance.new("Animation", script.Parent)
anim.AnimationId = "" -- id aqui

local char = game.Players.LocalPlayer.Character or game.Players.LocalPlayer.CharacterAdded:Wait()
local load = char:WaitForChild("Humanoid"):LoadAnimation(anim)

script.Parent.Equipped:Connect(function()
	anim:Play()		
end)

script.Parent.Unequipped:Connect(function()
	anim:Stop()
end)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *