본문 바로가기
프로그래밍 이야기/GameDev

[게임이론] 힘과 가속도

by Mulder5 2021. 1. 10.
반응형

힘이란?

힘은 질량을 가지고 있는 물체를 빨라지거나 느려지게 한다. 즉, "힘을 받은 물체는 가속한다"라는 것이다.


가속도란?

속도를 점점 빠르게 또는 느리게 한다. 가속은 가속과 감속을 포함하는 의미이다.


F = ma ?

Force = Mass * Acceleration  -> 힘 = 질량 * 속도의 변화(가속도)

속도 : 시간당 얼마나 이동했는가? -> m/s
가속도 : 속도의 변화 -> 시간당 얼마나 속도가 변했는가? -> 속도를 시간으로 나눠준다. -> ( m/s ) / s  -> m/s2 (s의 제곱)


F = m*a 에 의해 F가 일정한 값이라면 m과 a의 관계는 다음과 같다.

m이 커지면 a는 작아지고, m이 작아지면 a는 커진다. 


중력 (g) = -9.8 m/s2
물체의 무게(힘) = m(질량) * g(중력) 


위 그림과 같이 물체 두개가 있고, m2는 m1 보다 질량이 크다.  [ m1 < m2 ]
이 둘은 동일한 중력 g를 받는 다고 가정하면 이 두 물체의 무게를 비교해보면 [ m1g < m2g ]이다.
이 두 물체에 대한 낙하시의 저항력이 없다고 가정한다면, 속도는 동일하다. [ v1 = v2 ]

속도는 질량과는 무관하고, 가속도의 값에 따라 달라진다. 위의 예에서는 동일한 가속도를 받고 있다.
그러므로 물체 m1과 m2의 속도는 같다. -> 자유낙하 운동의 법칙


위와 같이 질량이 다른 물체 m1, m2가 있다. [ m1 < m2 ]
이 물체에 동일한 힘 F가 주어진다면, 이 물체의 속도는 [ v1 > v2 ] 이다.
m1에 받는 가속도 값이 더 크기 때문이다.

F = m1a1 = m2a2  이고, m1 < m2 이므로 a1 > a2 이다. 

그런데 가속도 a도 두 물체에 동일하게 작용한다면? ( a1 = a2 ) ==> [v1 = v2] 
v1과 v2는 동일하다.


충격력과 충격량

두 물체가 충돌할 때, 물체가 찌그러졌다가 다시 펴지면서 반대 방향으로 튕겨져나가는 것을 볼 수 있다.
이를 그래프로 표현한다면 아래와 같다.

시간 s1에서 힘(충격력)은 f1이고, 시간 s2에서의 힘(충격력)은 s2이다.
이러한 충격력의 모든 합이 충격량이다.


Unity에서 AddForce를 호출할때, Force, Impulse 속성을 사용하는데,

충격력 - Force : 질량 * 거리 / 시간2 (시간의 제곱)
충격량 - Impulse : 질량 * 거리 / 시간

보통 짧은 시간안에 큰 힘을 주고 싶을 떄 주로 Impulse를 사용한다.

AddForce는 내부적으로 충격량과 충격력에 의해서 동작한다.

반응형