Constrangimentos de Mover

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

O motor de física inclui o seguinte Constraints que aplica força ou torque para mover uma ou mais montagens.Além disso, várias restrições mecânicas estão disponíveis que se comportam como conexões mecânicas conceituais, incluindo dobradiças, molas, cordas e muito mais.

Velocidade Linear

Velocidade Linear aplica força em uma montagem para manter uma velocidade constante ao longo de um vetor 3D, linha ou plano 2D
Velocidade Angular

Velocidade Angular aplica torque em uma montagem para manter uma velocidade angular constante
Alinhe a Posição

AlinharPosição aplica força para mover dois anexos juntos ou mover um anexo para uma posição de destino
Alinhe a Orientação

Alinhamento de Orientação aplica torque para alinhar dois anexos ou alinhar um anexo com uma orientação de objetivo
Força de vetor

VectorForce aplica força linear constante em uma montagem
Torque

Torque aplica torque constante em uma montagem a partir de seu centro de massa
Força da Linha

Força de Linha aplica força ao longo da linha teórica que conecta seus dois anexos

Visualização de restrições

Para visualizar com precisão as restrições no Studio, você pode usar as seguintes opções da aba Modelo da barra de ferramentas:

Constraints tools indicated in Model tab

Mostrar soldas — Mostrar WeldConstraints, separadamente da visualização de outras restrições.

Detalhes de restrição — Mostrar detalhes visuais completos de restrições não soldadas.

Escala — Escala relativa de visualizações.

Criar restrições

As restrições de mover geralmente conectam um ou dois Attachments ou Bones.Quando conectado a Bones, a restrição usará sua posição e orientação animadas.

Para criar uma restrição de mover, você pode usar a ferramenta Criar ou a janela Explorador.

  1. Na aba Modelo , acesse o menu do seletor do botão Criar e selecione o tipo de restrição desejado, por exemplo Velocidade Angular .

    Constraint picker indicated in Studio toolbar
  2. Na janela de visualização 3D, passe o mouse sobre qualquer Part ou MeshPart e clique para adicionar um novo Attachment à peça no ponto visualizado.Alternativamente, passe o mouse sobre e clique em um existente Attachment ou Bone para usá-lo para a restrição.

  3. Algumas restrições de movimento utilizam ou suportam um anexo secundário em sua funcionalidade, então a ferramenta pode solicitar que você repita o passo anterior em outro Part, MeshPart ou Attachment, ou Bone.

    AngularVelocity using one attachment
    Velocidade Angular usando um anexo
    AlignPosition using two attachments
    AlinhePosição usando dois anexos

Simulação física

Para simular física enquanto mover ou girar peças, você pode mudar para o modo Físico na barra de ferramentas do Studio, efetivamente forçando as peças a obedecerem limitações físicas.Por exemplo, se você arrastar uma parte ao redor da cena e ela colidir com outra parte, ela vai empurrar fisicamente essa parte para fora do caminho.

Conversão de mover legado

Se a sua experiência depender de restrições baseadas em legado BodyMover -, revise as seguintes notas ao converter para restrições modernas de mover.

AlignPosition satisfaz a maioria dos casos de uso cobertos pelo mover obsoleto BodyPosition.Para sincronizar com como o movedor legado tratou cada componente de forma independente e permitiu uma força diferente ao longo de cada dimensão, a propriedade ForceLimitMode da AlignPosition permite que a restrição opere no modo Magnitude ou no modo PerAxis:

  • No modo Magnitude , o comportamento existente é preservado e MaxForce é interpretado como uma magnitude.

  • No modo PerAxis , a força ao longo de cada eixo pode ser especificada independentemente.Como a força máxima é especificada como um vetor, o quadro de referência da força também pode ser especificado através da propriedade ForceRelativeTo com World , Attachment0 e Attachment1 opções.Além disso, a formulação para o controlador interno é modificada para corresponder à de BodyPosition .

AlignOrientation satisfaz a maioria dos casos de uso cobertos pelo mover obsoleto BodyGyro.Os modos AlignType de AlignOrientation fornecem liberdade suficiente para a maioria das aplicações e a combinação de várias restrições pode replicar o limite de torque do vetor.Além disso, o modo PrimaryAxisLookAt força o eixo principal da primeira fixação da restrição ( Attachment0 ) sempre apontar para a segunda fixação ( Attachment1 ), tornando muito mais fácil adicionar coisas como câmeras de segurança de rastreamento de movimento ou mísseis guiados.

LinearVelocity satisfaz a maioria dos casos de uso cobertos pelo mover obsoleto BodyVelocity.Embora o mover legado permita um vetor MaxForce , o aplicativo típico desse vetor força foi zerar um componente específico, permitindo que a restrição seja desativada ao longo dessa dimensão.LinearVelocity alcança um efeito semelhante ao operar em modos distintos VelocityConstraintMode que corresponderam a uma ( Line ), duas ( Plane ) e três ( Vector ) dimensões.

Além disso, a propriedade ForceLimitMode com a opção de PerAxis acomoda quaisquer aplicações da força do vetor com todos os componentes negativos, como um aumento na força ao longo de um eixo para contrabalançar a gravidade.

Embora AngularVelocity tenha algumas discrepâncias com o mover obsoleto BodyAngularVelocity, casos específicos relacionados a essas discrepâncias não foram destacados pela comunidade, nem internamente.

Como melhoria separada, AngularVelocity funciona com Attachments e a propriedade RelativeTo deixa você especificar o CFrame em que a força é especificada, por exemplo World ou Attachment1 .

VectorForce satisfaz todos os casos de uso oferecidos pelos movimentadores depreciados BodyForce e BodyThrust.A restrição moderna funciona com Attachments e sua propriedade RelativeTo deixa você aplicar força a um deslocamento relativo do centro, semelhante ao modo como BodyThrust.Location funcionava.

Uma combinação de LineForce e AlignOrientation satisfaz a maioria dos casos de uso cobertos pelo mover obsoleto RocketPropulsion.No exemplo de um míssil guiado, LineForce pode ser usado para controlar o comportamento "seguir alvo" de RocketPropulsion enquanto AlignOrientation e sua propriedade LookAtPosition podem ser usados para controlar o comportamento "rosto alvo".