Sleep sistema

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

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

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

Estados de sono

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

Acordado

Uma montagem acordada está se movendo ou acelerando e, portanto, é simulada.Assemblies entram neste estado a partir de situações descritas em verificação de sono e sono, bem como situações adicionais de vigília.

Verificação de sono

Uma montagem não móvel que compartilha uma restrição com pelo menos uma montagem vizinha acordada é colocada no estado de verificação de sono e não é simulada.Em cada etapa mundial, uma montagem de verificação de sono verifica se:

Se alguma dessas condições for verdadeira ou estiver sob qualquer uma das situações de vigília adicionais , a montagem de verificação de sono entra no estado acordado .

Dormindo

Uma montagem dormindo não está se movendo nem acelerando e, portanto, não está sendo simulada.

Uma montagem é determinada a não se mover verificando sua deviação de posição , calculada como a maior deviação da posição média do ponto mais distante de seu centro de massa sobre o conjunto mais recente de passos mundiais.Se essa deviação for maior que o limite de Disposição, a montagem entra no estado acordado.

Em alguns casos, simplesmente verificar se não há movimento faria com que uma montagem entrasse incorretamente no estado de sono.Por exemplo, se uma bola for jogada diretamente para cima, sua posição quase não muda por uma série de passos mundiais à medida que se aproxima de sua altura máxima, tornando-a candidata a dormir e nunca cair de volta.Para lidar com esses casos, o motor monitora se o produto da aceleração e do tamanho do passo atual da montagem excede o limite de Velocidade Linear e/ou Velocidade Angular.

Referência de limite

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

CritérioValorMudança de estado
Disposição do Vizinho0.01 metrosverificação de sonoacordado
Velocidade linear do vizinho0,2 metros/sverificação de sonoacordado
Velocidade angular do vizinho0,2 radianos/sverificação de sonoacordado
Deslocamento0.001 metrosdormindoacordado
Velocidade Linear0,1 metros/sdormindoacordado
Velocidade Angular0,1 radianos/segundodormindoacordado

Situações de despertar adicionais

Além das situações descritas em verificação de sono e sono, uma montagem entra no estado acordado quando:

Visualização de depuração

Durante o teste de jogo, você pode visualizar estados de sono de montagem alternando em peças acordadas a partir do 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, as peças simuladas serão delineadas pelo seu estado de sono atual, com peças acordadas delineadas em vermelho, peças de verificação de sono delineadas em laranja e peças de sono não delineadas.

Peças simuladas delineadas pela cor que representa seu estado de sono atual