Game Engine/Unity

[Unity] 물리 머티리얼 (Physics Material)

양양줘 2025. 4. 8. 14:54

물리 머티리얼(Physics Material)


물리 머티리얼(Physics Material)은 충돌하는 오브젝트의 마찰 또는 바운스 효과를 조정하는데 사용된다. 물리 머티리얼을 만들고, 물리 오브젝트의 Collider에 넣으면 오브젝트에 마찰, 탄력성을 구현할 수 있다.

물리 머티리얼 만들기 :   Assets > Create > Physic Material

 

📌 프로퍼티

  • Dynamic Friction (동적 마찰) : 오브젝트가 움직이고 있을때 사용되는 마찰력으로 0~1 사이의 값.
    (0이면 얼음처럼 미끄러워지고, 1이면 오브젝트가 큰 힘이나 중력에 밀리지 않는 한 빨리 정지한다.)
  • Static Friction (정적 마찰) : 오브젝트가 움직이지 않고 표면 위에 가만히 놓여있을 때 사용되는 마찰력으로 0~1사이의 값.
    (0이면 얼음처럼 미끄러워지고, 1이면 경사진 곳에 놓여있어도 오브젝트가 미끄러지지 않는다.)
  • Bounciness (탄력성) : 표면의 탄력성으로 0~1 사이의 값.
    (0이면 오브젝트가 바운스하지 않고 1이면 오브젝트가 에너지 손실 없이 바운스한다.)
  • Friction Combine (마찰 결합) : 충돌하는 두 오브젝트의 마찰력을 합치는 방법
    -> Average, Minimum, Maximum, Multiply
  • Bounce Combine (탄력 결합) : 충돌하는 두 오브젝트의 탄력성을 합치는 방법
    -> Average, Minimum, Maximum, Multiply

📌 Combine 우선순위

물리 머티리얼 수치값이 다른 두 오브젝트가 충돌했을 때 한 오브젝트는 Average방식, 다른 한 오브젝트는 Maximum이라면 과연 두 오브젝트의 마찰, 탄력값은 Combine 우선순위에 따라 결정된다.

Average < Minimum < Multiply < Maximum

maximum의 우선순위가 가장 높으며 Average의 우선순위가 가장 낮다.

따라서 위 경우에는 Maximum의 값이 마찰, 탄력을 계산하는데 사용된다.

 

 

 

 

💡 직접 테스트 해보기

 

Q. 경사진 곳에서 가만히 있는 오브젝트가 미끄러져 내려가게 하려면?

A. Dynamic Friction과  Static Friction을 0 또는 0에 가깝게 설정한다.

Static Friction은 아직 움직이기 전, 버티는 힘이기 때문에 오브젝트가 미끄러지기 시작할 수 있도록 0 또는 0에 가깝게 지정하고, 움직이기 시작한 오브젝트의 마찰(Dynamic Friction)도 낮게 설정하여 오브젝트가 계속해서 미끄러질 수 있도록 한다.

 

 

 

Q. 오브젝트의 바운스를 구현하려면?

A. Bounciness를 0보다 큰 값으로 설정하면 된다. 1에 가까울 수록 에너지 손실이 적은 바운스가 구현된다.

 

 

 

 

 

끝!

 


 

 

물리 머티리얼 - Unity 매뉴얼

Physic Material 은 충돌하는 오브젝트의 마찰 또는 바운스 효과를 조정하는 데 사용합니다.

docs.unity3d.com

 

wooj22 - Overview

🎮 Game Programmer. wooj22 has 22 repositories available. Follow their code on GitHub.

github.com

 

양우정

 

www.youtube.com