Sistema de Controle de Dormir

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

Cada montagem no motor do Roblox corresponde a um único corpo rígido. A posição e velocidade de cada corpo rígido são descritas onde ele está localizado e quão rápido ele está se movendo, e uma das tarefas principais do motor é atualizar as posições e velocidades de cada montagem.

Assemblies podem ser conectados juntos com restrições mecânicas e restrições de mover para formar mecanismos, como carros ou aviões. À medida que o número de assemblies e restrições em um mecanismo aumenta, o tempo necessário para simular o mecanismo também aumenta. Felizmente, esse aumento é um deslocamento quando o sistema de sono determina que o motor pode pular a simula

Estados de sono

Cada montagem pode estar em um dos três estados: acordado, verificando o sono ou dormindo.

Despertar

Uma montagem de despertar está se movendo ou acelerando, e por isso é simulada. Montagens entram nesse estado a partir de situações descritas em verificação de sono e 2>snooping2>, bem como 5>situações de despertar adicional5>.

Check-de-Sleep

Uma montagem não móvel que compartilha um limite com pelo menos uma montagem acordada vizinha é colocada no estado de sono e não é simulada. Em cada passo de mundo, uma montagem de sono verifica se:

  • A variação de posição de uma montagem vizinha é maior que o Número de Deslocamento limite.
  • O produto da aceleração de uma montagem vizinha e do tamanho atual do passo de tempo é maior que o Velocidade Angular do Vizinho e/ou Velocidade Linial do Vizinho limite.

Se uma dessas condições for verdadeira ou sob qualquer uma das situações de acordo adicional, a instalação de rastreamento de sono entra no estado acordado.

Sleeping

Uma montagem de sono não se move nem acelera, e por isso não é simulada.

Uma montagem é determinada para ser não móvel verificando sua desvinculação de posição , calculada como a maior deviação da posição média do ponto mais distante de sua centro de massa sobre o mais recente conjunto de etapas mundiais. Se esta deviação for maior que o deslocamento threshold, a montagem entra no estado acordado.

Em alguns casos, simplesmente verificar se não há movimento causaria uma montagem para entrar inesperadamente no estado de sono. Por exemplo, se uma bola for jogada direto para cima, sua posição quase não muda para um número de passos de linha enquanto se aproxima de sua máxima altura, fazendo-a um candidato para dormir e nunca cair de volta. Para lidar com tais

Referência de Subida

A tabela a seguir fornece os vários limites de deslocamento e velocidade usados para determinar se uma montagem está se movendo ou acelerando.

LimiteValorMudança de Estado
Deslocamento de Vizinho0.01 metrosverificação de sono >, acordado
Velocidade Linar Vizinho0,2 metros/sverificação de sono >, acordado
Velocidade Angular do Vizinho0,2 r$/sverificação de sono >, acordado
Deslocamento0.001 metrosdormindo >, acordado
Velocidade Linear0,1 metros/sdormindo >, acordado
Velocidade Angular0.1 radianos/sdormindo >, acordado

Situações de Despertar Adicionais

Além de situações descritas em cheque de sono e dormir, uma montagem entra no estado de vigia quando:

Visualização de Depuração

Durante o teste do jogo, você pode visualizar estados de sono de montagem ativando Awake parts no widget Opções de Visualização no canto superior direito da janela de visualização 3D.

A close up view of the 3D viewport with the Visualization Options button indicated in the upper-right corner.

Uma vez ativado, peças simuladas serão contornadas pelo estado de sono atual delas, com ake peças contornadas em vermelho, check-in peças contornadas em laranja e sleep peças não contornadas.

Peças simuladas contornoadas pelo color representando seu estado de sono atual