Força da gravidade em jogos em primeira pessoa

11

Em nosso jogo, ajustamos a aceleração devido à gravidade ao valor apropriado de 9,8 m / s ^ 2. Embora fisicamente correto, parece mais um movimento na lua. Parece certo no valor de 16 m / s ^ 2. Alguém mais experimentou isso? É apenas porque não temos desfoque de movimento ou som para dar a aparente sensação de velocidade? Tudo bem configurá-lo para 16 m / s ^ 2 se parecer certo?

Hannesh
fonte
Boa pergunta, a propósito, muito comum ver isso, um monte de gente assumir que eles têm para mudar a gravidade quando se deparam com esse
Brandon
Algo que parece ter sido assumido - suas massas de objetos estão corretas?
DrDeth 4/11/11
5
massa não deve ser levada em consideração, a menos que você esteja simulando planetas. Um mármore cai com a mesma aceleração como uma resistência do vento bola de boliche ignorando
Brandon
2
A sua velocidade de salto também é realista? Se você tem 9,8m / s ^ 2 de gravidade, mas um humano que salta 100x mais alto, a gravidade parecerá muito errada. Além disso, você tem certeza de que está aplicando a aceleração na escala de tempo apropriada?
Gregory Avery-Weir

Respostas:

12

Pode ser que sua balança esteja desativada. Se você estiver olhando para um tijolo e ele parecer cair mais devagar do que deveria, você pode apenas ter uma escala maior do que deveria. Eu tive esse problema quando estava trabalhando no mecanismo physX. Toda a minha cena era 3x demais, então eu a reduzi e funcionou.

Se 16 parece melhor que 9.8, mas você deseja usar 9.8. Apenas multiplique o tamanho do objeto caindo em 0,61. O que deve escaloná-lo para onde 9.8 fornece o efeito desejado.

Editar: para corrigir isso. Eu fiz um objeto que deveria ter 1 metro de altura. Eu escalo até que pareça cair na velocidade certa. O que quer que as unidades mundiais sejam comparadas à nova escala, me dá a minha nova escala de unidades. Exemplo. Se o objeto foi dimensionado para 0,14, isso representa 1 metro no mundo do jogo. Crie um objeto de régua com 0,14 de altura e, ao projetar o nível, você poderá usá-la para dimensionar tudo corretamente. Isso fará com que tudo pareça estar caindo corretamente em 9,8 m / ss.

brandon
fonte
Isso não parece certo. Se você usar unidades consistentes, um objeto com 1 metro de altura deve cair no chão em 0,45 segundos. Escalar sua cena inteira não deve importar. Talvez você estivesse comunicando sua escala de tempo incorretamente ao seu mecanismo de física.
Kasper
5
Não estou falando da altura em que você a solta. Eu estou falando sobre dimensionar o próprio objeto. Se você é um homem de 100 pés e pula a 20% da sua altura. Levará mais tempo e você sentirá como se estivesse na lua. O outro lado é que, se você é um homem de um metro e oitenta e pula a 20% da sua altura, vai pular muito mais baixo e atingir o chão muito mais cedo. É definitivamente uma questão de escala.
Brandon
2

Eu diria que vai com o que sente e toca direito. No entanto, seria melhor se você estivesse usando o valor correto - se você ou outros desenvolvedores não tiverem um momento WTF ao revisitar o código 6 meses depois.

Não esqueça que sua implementação física será apenas uma aproximação do mundo real e que, às vezes, aproximar as coisas "muito perto" da realidade torna o jogo impossível de jogar. Também pode haver algo mais na sua simulação que está "desativado". Verifique isso também.

Há alguns anos, estive envolvido com um simulador de helicóptero e o cliente queria que os controles fossem "realistas". Falhou porque não era jogável. A simplificação dos controles tornou o jogo jogável.

ChrisF
fonte
1

Modelando tudo no sistema métrico, observei também que a gravidade parece fraca demais em relação ao jogador pulando (em um jogo de plataforma). Muito parecido com "na lua", "geléia", "muita física", não "arcade" o suficiente. Por outro lado, os jogadores nos jogos também costumam pular para grandes alturas irreais.

TLDR: a alta gravidade parece muito rápida e de arcada; a gravidade realista às vezes pode não proporcionar a experiência de jogo desejada.

Jonas Bötel
fonte