게임 물리 - 마찰력과 저항력) 복습을 위해 작성하는 글 2023-04-05

rizz·2023년 4월 5일
0

물리

목록 보기
3/5

📒 갈무리 - 마찰력과 저항력

📌 마찰력이란?

마찰력(f=uN) : 두 물체의 접촉면 사이에서 물체의 운동을 방해하는 힘

수직항력(N) : 표면에서 물체에 수직으로 작용하는 접촉힘

마찰계수(u) : 두 물체 간의 접촉면에 작용하는 마찰력의 크기를 결정하는 값

- 마찰계수가 높아진다면 마찰력도 높아지게 된다.

- 최대 정지마찰력을 넘어가게 되면 운동하기 시작하는데, 그것을 운동 마찰력이라 한다.

- 운동 마찰력이 되기 직전의 마찰력의 크기를 최대 정지 마찰력이라 한다.

- 움직이는 물체에 힘을 가할 때 더 쉽게 움직인다.

- 최대 정지 마찰력과 운동 마찰력을 비교했을 때, 최대 정지 마찰력이 더 크기 때문에 정지되어 있는 물체를 이동시키는 게 더 어렵다.

m·g·sinΘ(물체가 나아가려는 힘) > Ns·m·g·cosΘ(마찰력)

Ns = 최대 정지 마찰계수

m : 물체의 질량

g : 중력

- 위 식을 만족해야 경사면에서 물체가 내려갈 수 있다.

F= m·g·sinΘ - Nk·m·g·cosΘ

Nk = 운동 마찰 계수

 

📌 저항력이란?

저항력 : 물체가 유체 내를 움직일 때 이 움직임에 저항하는 힘

Fd(항력) = 1/2·ρ·v²·Cd·A

ρ : 유체의 밀도

v : 속도

Cd : 항력계수

A : 단면적(물체가 나아가는 방향과 수직한 단면적)

 

🎯 그렇다면 게임에서 어떻게 활용할 수 있을까?

3D에서는 정지 마찰력과 운동 마찰력을 구분지어 사용함

2D에서는 정지 마찰력과 운동 마찰력의 구분이 없이 마찰력으로 통일하여 사용함

유니티 내서의 저항력은 Rigidbody의 Drag라는 값으로 사용한다.

Drag = V = V(1 - D·dt)로 적용된다.

D : 항력계수 값

dt : 경과 시간

2D 게임에서는 마찰력이 더 작은 쪽을 따라가게 된다.

 

💡 TIP

유니티의 Project setting -> Physics 2D에서 Linear Sleep Tolerance 값은 설정해 놓은 값 보다 속도가 낮다면 0으로 처리하는 기능이다.

profile
복습하기 위해 쓰는 글

0개의 댓글