Roblox Studio

Aprenda nesse post como fazer objetos em movimento no Roblox Studio.

Para entender como mover objetos no Roblox Studio, precisamos observar como esses movimentos são executados na vida real.

Por exemplo, é necessário compreender o conceito de movimento linear. O movimento linear é o movimento realizado ao longo de um eixo. Sendo assim, quando uma part apresenta um movimento linear, significa que ela está se movimentando ao longo de um determinado eixo.

O movimento linear não existe sem forças físicas externas empurrando ou puxando os objetos que se movem.

De acordo com a 1ª Lei de Newton, um corpo em repouso ou em movimento uniforme em linha reta tende a permanecer nesse estado, a menos que uma força externa atue sobre ele. Nesse caso, imaginemos uma part parada no mundo, ela permanecerá assim até que uma força física, por exemplo, o vento, a empurre até que se movimente.

Já a força é a medida da direção e magnitude de um empurrão ou puxão físico que faz com que os objetos mudem sua velocidade linear ao longo de um eixo. Uma mudança na velocidade é conhecida como aceleração. Ou seja, quanto mais força aplicarmos em um objeto, mais rapidamente ele acelera.

Então, precisamos recordar que a força precisa ser maior que qualquer força física que esteja empurrando o objeto, como a gravidade ou atrito.

No Roblox Studio, a Linear Velocity é a medida de movimento de um objeto ou a rapidez com que o objeto muda sua posição ao longo de um eixo durante um determinado período de tempo. O Roblox Studio mede a velocidade linear de acordo com quantos studs um objeto se move por segundo. O stud é a principal unidade física do Roblox para medir comprimento e cada stud equivale a 28 centímetros do mundo real.

Mantendo a velocidade linear constante

Para que um objeto alcance e mantenha uma velocidade linear constante, ele precisa de uma força para superar quaisquer forças físicas opostas que desaceleram a velocidade linear do objeto ou façam com que ele permaneça estacionário. Além disso, a massa do objeto também influenciará a quantidade de força que deve ser aplicado sobre o mesmo para gerar algum movimento.

Usando a restrição LinearVelocity

Um objeto do tipo LinearVelocity é um tipo de restrição de movimento que aplica força em um bloco para manter uma velocidade linear constante. Ao não bloquear a posição desse bloco em um eixo durante o movimento, o bloco ficará livre para se movimentar à medida que colide com outros objetos no espaço 3D. Isso torna o jogo mais interativo e imprevisível para os jogadores.

Para usar a restrição, é necessário ter conhecimento:

  • O ponto e a direção, positiva ou negativa, para aplicar uma força.
  • A quantidade de studs que você deseja que o bloco se movimente por segundo.
  • A quantidade máxima de força que o motor pode aplicar para que o bloco atinja a velocidade linear constante.

Vamos usar como exemplo, um bloco que vai se movimentar livremente pelo mundo a 5 studs por segundo ao longo do eixo x negativo a uma velocidade linear constante.

Objetos em Movimento no Roblox Studio
Objetos em Movimento no Roblox Studio

Criamos uma part em forma de cilindro e nela adicionamos um Attachment, conforme destacado na imagem acima. O renomeamos para MoveAttachment. O Attachment tem um recurso visual que nos ajuda a observar seus eixos de movimento. A seta amarela se refere ao eixo primário e a seta laranja se refere ao eixo secundário.

Agora, precisamos adicionar uma restrição chamada LinearVelocity, clicando no sinal de + ao lado da part chamada disc, como na figura acima. E nessa restrição vamos configurar a direção e magnitude da velocidade linear, a quantidade de studs que o objeto se moverá por segundo e o máximo de quantidade de força que o motor pode aplicar sobre a part para que ela alcance uma velocidade linear constante. No Roblox, o Rowton é a unidade física primária para se medir força.

Sendo assim, vamos configurar o LinearVelocity da seguinte forma:

  • Definir Attachment para MoveAttachment, atribuindo assim o Attachment para a restrição LinearVelocity.
  • Definir MaxForce para 5000, aplicando 5000 Rowtons de força constante para adquirir a velocidade que desejamos, no caso 20 studs por segundo.
  • Definir RelativeTo como World para movimentar o disco de acordo com a orientação e posição do mundo.
  • Definir VelocityConstraint para Line para restringir a força ao longo de uma linha do Attachment.
  • Definir LineDirection para -1,0,0 para mover o disco ao longo do eixo X negativo do mundo.
  • Definir LineVelocity para 20 a fim de mover o disco 20 studs por segundo.