Criando Objetos Giratórios

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

Objetos giratórios são objetos que giram em mais um eixo dentro do espaço 3D. Usando o poder interno do motor de simulação do Roblox, você pode fazer com que os objetos girem e interajam com seu ambiente de uma maneira que emula o comportamento físico do mundo real que é familiar e intuitivo para os jogadores, como gravidade, aerodinâmica e atrito.

Usando o arquivo Spinning Objects.rbxl como referência, este tutorial explica como as forças físicas impactam o movimento angular no Studio e mostra várias técnicas para girar objetos em suas experiências com diferentes comportamentos de rotação, incluindo orientação sobre:

  • Usando uma restrição de movimento AngularVelocity para girar um conjunto inteiro a uma velocidade angular constante.
  • Usando uma restrição mecânica HingeConstraint para girar uma parte dentro de um conjunto a uma velocidade angular constante, pois o resto do conjunto permanece estacionário.
  • Usando o ApplyAngularImpulse método para girar um conjunto com uma força angular inicial que desacelera lentamente ao longo do tempo.

Movimento Angular e Forças Físicas

O Roblox Studio é um motor de simulação do mundo real que emula o comportamento físico em tempo real, portanto, para prever o comportamento dos objetos girando em experiências, é importante ter um entendimento de alto nível de como os objetos giram na vida real com movimento angular. O movimento angular , ou movimento rotacional, é o movimento em torno de um ponto ou eixo fixo. Por exemplo, quando uma hélice tem movimento angular, ela gira em torno de seu eixo rotacional no meio da hélice.

O movimento angular não pode existir sem forças físicas externas empurrando ou puxando objetos para girar. De acordo com a primeira lei de movimento de Newton, os objetos estacionários permanecem estacionários e os objetos em movimento permanecem em movimento, a menos que sejam acionados por uma força externa. Por exemplo, uma hélice estacionária permanece estacionária, a menos que uma força física como o vento a empurre para girar.

Torque é a medida da força física que faz com que os objetos girem, e é responsável por fazer com que os objetos obtenham aceleração angular. Este conceito é especialmente importante para os objetos rodarem no Studio; quanto mais torque você aplicar aos objetos, mais rápido eles podem girar.

Isso ocorre porque o torque precisa ser maior do que qualquer força física direcional que empurra contra o Objeto, como a gravidade ou a fricção. Por exemplo, se você colocasse a hélice na terra, a força física do vento precisa superar a quantidade de fricção da terra para continuar girando a hélice. Se a força do vento não for muito maior do que a fricção da terra, a hélice girará, apenas mais lentamente do que o exemplo anterior.

A velocidade angular é a medida da avaliarde rotação de um Objeto, ou a velocidade com que o objeto gira em torno de um ponto fixo ou eixo durante um período de tempo. O Studio mede a velocidade angular de acordo com quantos radianos um objeto gira por segundo. Existem 2π radianos (6.283) em uma rotação, então, para que um objeto faça uma rotação completa por segundo, ele deve ter torque suficiente para girar cerca de 6 radianos. Compreender a velocidade angular é importante para projetar a jogabilidade em suas experiências, pois ajuda a determinar quanto torque você precisa para alcançar uma velocidade específica para seus objetos girando.

As seções a seguir mergulham mais profundamente nesses conceitos à medida que você aprende a girar objetos em uma velocidade angular constante ou inicial com o torque necessário para superar quaisquer forças físicas opostas. À medida que você revisa esses conceitos de física com as técnicas futuras, você pode prever com mais precisão como ajustar os valores das propriedades para alcançar qualquer comportamento de rotação ideal no Studio.

Manutenção de uma força angular constante

Para que um objeto alcance e mantenha uma velocidade angular constante, ele precisa de uma força angular para superar qualquer força física opositora que desacelere a rotação do Objetoou faça com que o objeto permaneça estacionário. Por exemplo, se você quiser que um objeto tenha uma velocidade angular de [0, 12, 0] no Studio, você precisa de torque suficiente para que o objeto gire 12 radianos por segundo ao longo do eixo Y em seu ambiente, ou cerca de duas rotações completas.

A quantidade de torque que você aplica aos seus objetos não só depende das forças físicas opostas dentro do próprio ambiente, como gravidade e fricção, mas também do próprio objeto. Por exemplo, se você tem dois objetos da mesma forma que estão girando no mesmo eixo, o objeto com a maior quantidade de massa requer mais força para girar seu peso.

A pequena parte triangular tem uma pequena quantidade de massa, então precisa de menos força angular para girar.
A grande parte triangular tem uma grande quantidade de massa, então precisa de mais força angular para girar.

As subseções a seguir usam conjuntos de diferentes formas e tamanhos para ensinar como girar um objeto inteiro ou apenas uma parte do objeto a uma velocidade angular constante. À medida que você experimenta com diferentes valores de propriedade, você aprenderá a estimar a quantidade máxima de torque necessária para os conjuntos em suas próprias experiências.

Usando restrições de velocidade angular

AngularVelocity objetos são um tipo de restrição de movimento que aplica torque em um conjunto inteiro para manter uma velocidade angular constante. Para começar a girar o conjunto, a restrição AngularVelocity precisa saber:

  • O ponto e direção fixos do movimento rotacional para girar o conjunto.
  • O eixo ou eixos para aplicar uma velocidade angular constante ao alvo.
  • A quantidade de radianos que você quer que o conjunto gire por segundo.
  • A quantidade máxima de torque que o motor pode aplicar para que o conjunto atinja uma velocidade angular constante.

Para demonstrar este processo, você adicionará um bloco à sua área de trabalho com uma referência de restrição AngularVelocity para girar o bloco 6 radianos por segundo ao longo do eixo Y a uma velocidade angular constante, ou cerca de uma rotação completa.

Adicionar anexo

Você pode especificar o ponto fixo para girar um conjunto adicionando um objeto Attachment ao conjunto e configurando a posição do anexo no espaço 3D. A experiência de exemplo Spinning Objects coloca um anexo no centro de uma peça de bloco para que a restrição possa girar a peça no sentido anti-horário ao redor do centro de si mesma.

Os anexos incluem ajudas visuais para ajudá-lo a visualizar seus eixos de rotação. A seta amarela denota o eixo primário de rotação e a seta laranja denota o eixo secundario de rotação. Embora nenhum eixo de rotação influencie a rotação do bloco nas etapas desta técnica, é importante entender essas ajudas visuais para referência futura, pois elas podem ajudá-lo a determinar o comportamento ideal para diferentes tipos de restrições.

Para adicionar um anexo:

  1. Na janela Explorer , insira um bloco parte no Workspace .

  2. Insira um acessório na nova peça.

    1. Na janela Explorer , passe o mouse sobre a peça e clique no botão ⊕. Um menu contextual é exibido.
    2. Do menu, insira um anexo . O anexo é exibido no centro da peça.
    3. Renomeie o anexo para SpinAttachment .

Configurar Restrição

Agora que seu bloco tem um ponto fixo para girar o bloco, você pode configurar as propriedades de uma restrição AngularVelocity para especificar a direção de rotação, eixos ou eixos para aplicar uma velocidade angular constante ao alvo, a quantidade de radianos que você deseja que o bloco gire por segundo e a quantidade máxima de torque que o motor pode aplicar ao bloco para alcançar uma velocidade angular constante.

A experiência Spinning Objects aplica até 1000 Rowton-studs por segundo para girar o bloco 6 radianos por segundo ao longo do eixo Y a uma velocidade angular constante. Rowton-studs são as principais unidades físicas do Roblox para medir torque. Para referência às unidades físicas do Roblox e como elas se convertem em unidades métricas, consulte Unidades do Roblox .

Para configurar uma restrição AngularVelocity:

  1. (Opcional) Faça a restrição visível no espaço 3D para que você possa consultar sua direção de rotação.

    1. Na barra de menus, navegue até a guia Modelo e, em seguida, a seção Restrições .
    2. Se não estiver habilitado no momento, clique em Detalhes da restrição para exibir uma ajuda visual de restrição.
  2. Insira uma restrição AngularVelocity na peça.

    1. Na janela Explorer , passe o mouse sobre a peça e clique no ícone ⊕. Um menu contextual é exibido.
    2. Do menu contextual, insira AngularVelocity . A ajuda visual da restrição é exibida com uma seta rotacional que denota em qual direção a restrição girará a peça.
  3. Atribua o acessório da peça à nova restrição.

    1. Na janela Explorer , selecione a restrição.
    2. Na janela Properties ,
      1. Defina Attachment0 para SpinAttachment .
      2. Defina AngularVelocity para 0, 6, 0 para girar a parte 6 radianos por segundo ao longo do eixo Y.
      3. Defina MaxTorque para 1000 para aplicar até 1000 Rowton-studs de uma força angular por segundo para alcançar a velocidade angular alvo.
      4. Mantenha RelativeTo para World para girar o bloco de acordo com a posição e orientação do mundo. Por padrão, ele girará o bloco no sentido anti-horário.
  4. Verifique a quantidade de torque que você definiu que gira o bloco 6 radianos por segundo ao longo do eixo Y.

    1. Na barra de menus, navegue até a guia Teste .

    2. Na seção Simulação , clique no Seletor de Modo **** . Um menu suspenso é exibido.

      Rapid playtest options in Test tab of Studio
    3. Selecione Run . O Studio simula a experiência na posição da câmera atual sem o seu avatar no espaço 3D.

Você pode precisar ajustar seu torque dependendo da escala do seu bloco e de quaisquer forças físicas opostas em seu ambiente. Por exemplo, as propriedades da restrição AngularVelocity na experiência de amostra funcionam para uma peça de bloco com um tamanho padrão de 4, 1, 2 em uma plataforma plana com um material plástico e um ambiente com a gravidade pré-definida clássica.

No entanto, se o seu bloco é de um tamanho maior e em terreno de grama, você precisa aumentar sua propriedade AngularVelocity.MaxTorque porque a força angular precisa superar tanto a massa do bloco quanto a fricção do ambiente. Por exemplo, a grande parte do bloco que é quatro vezes o tamanho da parte da amostra precisa de pelo menos 300000 Rowton-studs por segundo para alcançar a velocidade angular definida!

Usando Restrições de Dobradiça

HingeConstraint Os objetos são um tipo de restrição mecânica que permite que dois anexos girem em torno de um eixo, restringindo os anexos à mesma posição e seus eixos primários na mesma direção. Quando você define HingeConstraint.ActuatorType como Motor , essa restrição aplica torque aos dois anexos com o objetivo de os anexos alcançarem e manterem uma velocidade angular constante.

Além disso, quando você coloca anexos em um conjunto com dois objetos, os objetos se bloqueiam e tentam girar juntos de acordo com o eixo primário fixo do anexo. Se você ancorar um desses objetos, a força angular continua a girar o outro objeto a uma velocidade angular constante, enquanto o resto do conjunto permanece estacionário.

Por exemplo, para começar a girar um objeto específico dentro de um conjunto, a restrição HingeConstraint precisa saber:

  • A posição onde você deseja que os anexos se sobreponham.
  • A direção do movimento rotacional para girar os anexos.
  • O eixo ou eixos para aplicar uma velocidade angular constante ao alvo.
  • A quantidade de radianos que você quer que os anexos girem por segundo.
  • A quantidade máxima de torque que o motor pode aplicar aos anexos para alcançar uma velocidade angular constante.

Para demonstrar este processo, você adicionará um conjunto de hélice com dois objetos à sua área de trabalho com anexos em ambos os objetos que HingeConstraint referências de restrição para girar a hélice 3 radianos por segundo (cerca de metade de uma rotação completa) ao longo do eixo Y a uma velocidade angular constante, enquanto a base da hélice permanece estacionária.

Obtenha Propeller Asset

A Loja do Criador é uma guia da Caixa de Ferramentas que você pode usar para encontrar todos os ativos feitos pelo Roblox e pela comunidade Roblox para uso em seus projetos, incluindo modelos, imagens, malhas, áudio, plugins, vídeos e fontes. Você pode usar a Loja do Criador para adicionar um ativo ou biblioteca de ativos diretamente em uma experiência aberta.

Este tutorial faz referência a um modelo de hélice que você pode usar ao replicar cada etapa da técnica HingeConstraint de objetos giratórios. Você pode adicionar este modelo ao seu inventário no Studio clicando no link Adicionar ao Inventário no componente a seguir. Depois que os ativos estiverem dentro do seu inventário, você poderá reutilizá-los em qualquer projeto na plataforma.

Para obter este ativo de hélice do seu inventário na sua experiência:

  1. Na barra de menus, selecione a guia View .

  2. Na seção Mostrar , clique em Caixa de ferramentas . A janela Caixa de ferramentas é exibida.

  3. Na janela Caixa de ferramentas , clique na guia Inventário . A classificação Meus modelos é exibida.

  4. Clique no ladrilho Propeller . O modelo é exibido na sua tijolode visualização.

Configurar Acessórios

Você pode especificar tanto a posição de onde você quer que os anexos se sobreponham quanto a direção do movimento rotacional para girar um objeto específico dentro de um conjunto, adicionando dois Attachment objetos ao conjunto e configurando seu alinhamento e orientação no espaço 3D.

A experiência de exemplo Spinning Objects alinha dois anexos perto da posição em que a hélice não ancorada se sobrepõe à base ancorada e orienta seu eixo principal de rotação para cima para que gire no sentido anti-horário. O acessório da base não pode girar neste exemplo porque a base está ancorada.

Para configurar anexos para a restrição da dobradiça:

  1. Insira um objeto Attachment em Cabeça e Base .

    1. Na janela Explorer , passe o mouse sobre Head e clique no botão ⊕. Um menu contextual é exibido.
    2. Do menu, insira um anexo .
    3. Repita este processo para Base .
    4. Renomeie ambos os anexos HeadAttachment e BaseAttachment , respectivamente.
  2. Gire HeadAttachment e BaseAttachment para que a seta amarela de cada anexo aponte para cima no eixo Y. Isso diz ao Studio para girar os anexos no sentido anti-horário.

  3. Mova BaseAttachment para a parte superior de Base e HeadAttachment para a borda inferior de Propeller . Isso diz ao Studio onde conectar a própria dobradiça e sobrepor ambos os anexos no tempo de execução.

Configurar Restrição

Agora que seus anexos têm uma posição para se sobrepor e uma direção de movimento rotacional, você pode configurar as propriedades de um constrangimento HingeConstraint para especificar o eixo ou os eixos para aplicar uma velocidade angular constante ao alvo, a quantidade de radianos que você deseja que os anexos girem por segundo e a quantidade máxima de torque que o motor pode aplicar aos anexos para alcançar uma velocidade angular constante.

Semelhante à técnica anterior, a experiência de amostra Spinning Objects aplica até 1000 Rowton-studs por segundo para girar os anexos 3 radianos por segundo ao longo do eixo Y a uma velocidade angular constante. No entanto, porque o acessório de base está em um Objetoancorado, apenas o acessório da hélice pode girar.

Para configurar uma restrição de dobradiça:

  1. Insira um objeto HingeConstraint no cabeçalho **** .

    1. Na janela Explorer , passe o mouse sobre Head e clique no ícone ⊕. Um menu contextual é exibido.
    2. Do menu contextual, insira uma HingeConstraint .
  2. Atribua os anexos da hélice à nova restrição.

    1. Na janela Explorer , selecione a restrição.
    2. Na janela Properties ,
      1. Defina Attachment0 para HeadAttachment .
      2. Defina Attachment1 para BaseAttachment . A dobradiça é exibida no janela.
  3. Na janela Explorer , selecione a restrição e, em seguida, na janela Properties ,

    1. Defina ActuatorType para Motor . Novos campos de propriedade são exibidos.
    2. Defina MotorMaxTorque para 1000 para aplicar até 1000 Rowton-studs de uma força angular constante por segundo para alcançar a velocidade angular alvo.
    3. Defina AngularVelocity para 3 para girar a cabeça da hélice 3 radianos por segundo.
  4. Verifique a quantidade de torque que você definiu. A hélice gira 3 radianos por segundo ao longo do eixo Y.

    1. Na barra de menus, navegue até a guia Teste .

    2. Na seção Simulação , clique no Seletor de Modo **** . Um menu suspenso é exibido.

      Rapid playtest options in Test tab of Studio
    3. Selecione Run . O Studio simula a experiência na posição da câmera atual sem o seu avatar no espaço 3D.

Aplicando uma Força Angular Inicial

Para que um objeto atinja uma velocidade angular inicial, ele precisa de um impulso de força angular para superar quaisquer forças físicas opostas que façam com que o objeto permaneça estacionário. Após o impulso de força angular, o objeto desacelera lentamente até ficar estacionário novamente, porque não há torque suficiente para manter o objeto girando com as forças físicas opostas no ambiente.

Esta técnica é útil para girar objetos após um evento significativo do jogo, como uma explosão ou uma colisão de impacto, porque fornece comentário/retornoinstantâneo aos jogadores. Para demonstrar, a subsecção a seguir ensina como girar um conjunto com uma força angular aleatória inicial que você pode adaptar com novos valores para atender aos seus próprios requisitos de jogo.

Usando ApplyAngularImpulse

O ApplyAngularImpulse método aplica torque em um conjunto inteiro para obter uma velocidade angular inicial antes de desacelerar para uma parada. Para começar a girar o conjunto, o método precisa saber:

  • O conjunto para girar.
  • O eixo ou eixos para aplicar torque para alcançar uma velocidade angular inicial.
  • A quantidade de torque a ser aplicada a cada eixo.

Você pode definir todos esses valores em um script. Por exemplo, o script de exemplo define o conjunto para girar como o pai do script, então aplica uma força angular aleatória entre 0 e 100 Rowton-studs no eixo Y.

Para girar um conjunto usando ApplyAngularImpulse:

  1. Insira uma esfera parte no Workspace . A amostra usa uma esfera com MaterialVariant para que você possa visualizar claramente o movimento da esfera.

  2. Insira um script na nova parte.

    1. Na janela Explorer , passe o mouse sobre a peça e clique no botão ⊕. Um menu contextual é exibido.
    2. Do menu, insira um Script .
  3. Substitua o código padrão com o seguinte código:


local part = script.Parent
local function spinPart()
local impulse = Vector3.new(0, math.random(0, 100), 0)
part.AssemblyAngularVelocity = impulse
end
spinPart()