Ad Block 한번만 꺼주시면 안될까요..?
게임 개발/유니티

유니티) 마찰력, 튕기는 정도 조절하기 (Physic Material , 2D, 3D)

UniCoti(유니코티) 2024. 1. 28.

게임, 특히 3D 게임을 만들다보면 마찰력을 이용하고 싶은 경우가 한번 쯤 있을 것이다.

가장 대표적인 예시로 "얼음" 바닥을 만들 때는 물체가 미끄러져야 하기 때문에

마찰력을 낮게 설정하고 싶을 수 있다. 물론 스크립트를 통해서 눈속임으로 표현할 수도 있겠지만,

 

유니티에는 마찰력과 튕기는 정도를 조절할 수 있는 "Physic Material" 이란 개념이 있다.

이 글에서는 이 개념에 대해서 설명하고 사용법까지 소개하도록 하겠다.

 

https://docs.unity3d.com/kr/560/Manual/class-PhysicMaterial.html

 

물리 머티리얼 - Unity 매뉴얼

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

docs.unity3d.com


1. Physic Material 이란?

먼저, Physic Material이란 앞서 말했듯 튕기는 정도와 마찰력을 조절할 수 있게 해준다.

 

인스펙터
인스펙터

 

생성한 Physic Material의 인스펙터(정보)를 보면 이렇게 표현되어 있다.

 

Dynamic Friction은 말 그대로 "동적"인 상태에서의 마찰력 값이다.

움직이고 있는 상태에서의 마찰력을 의미한다고 보면 된다.

 

Static Friction은 "정적"인 상태에서의 마찰력 값으로,

정지된 상태의 물체가 갖는 마찰력이다. 더욱 쉽게 이야기 하자면

"움직임을 시작하는 것을 어렵게 만드는 힘" 이다.

 

이 부분에서 나는 관성과도 비슷하게 해석하기도 했는데,

검색해본 결과 비슷하게 해석될 수 있지만 결코 다른 개념인 것 같다.

 

아무튼 Bounciness는 알다시피 튕기는 정도이다.

이걸 1로 두면 에너지 손실 없이 무한대로 계속 튕긴다. (바운스 볼?)

 

Friction Combine은 서로 다른 두 오브젝트의 마찰이 합쳐지는 정도를 표현한다.

Bounce Combine도 마찬가지로 두 오브젝트의 튕기는 정도가 합쳐지는 정도를 표현한다.

 

두개는 그냥 평균(Average)로 두는 경우가 많다.


2. 사용하는 방법.

사용하는 방법을 알아보자. 먼저 Physic Material을 생성해줘야 사용이 가능하다.

[Create] -> [Physic Material]을 클릭해서 만들어주면 된다.

 

create 창
Create 창

 

이렇게 하고 이름을 지어주면 새로운 Physic Material이 생성되게 된다.

생성
생성

 

그 후, 이걸 클릭해서 인스펙터에서 설정값을 조절할 수 있다.

 

인스펙터 창 화면
설정 화면

 

앞서 설명했듯 자신의 상황에 맞게 조절해주면 된다.

아무튼 이렇게 설정해준 Physic Material"Collider" 컴포넌트에 넣어줄 수 있다.

 

만약 바닥이라서 Plane 오브젝트를 만들어주었다면 "Mesh Collider"가 될 것이고

Cube 오브젝트로 바닥을 만들었다면 "Box Collider"가 될 것이다.

 

collider
Collider

 

여기 보이는 Material값 부분에 Physic Material을 넣어줄 수 있다.

여기에 내가 직접 설정한 Physic Material을 넣어주면 사용법은 끝이다.

(바로 적용됨)


3. 2D 환경에서의 사용법

2D에서의 사용법도 동일하다. 하지만 따로 적어놓은 이유는 "Physic Material 2D"가 있어야 하는데

Create 창에서 찾기 어렵기 때문이다. 개인적으로 어디에 있는 지 찾기가 너무 힘들어서 매번 검색했다.

 

create -> 2D -> Physic Material 2D
create -> 2D -> Physic Material 2D

 

결론부터 말하자면, [Create] -> [2D] -> [Physic Material 2D] 안에 있다.

개인적으로 [2D] 라는 곳 안에 요소가 하나 일거면 왜 상위 폴더를 만들었나 싶다.

찾기만 어렵게 해 놓았다고 생각한다.

 

physic material 2d의 인스펙터
physic material 2d의 인스펙터

 

2D에서는 더욱 간단하게 마찰력과 튕기는 정도 두가지로 심플하게 되어 있다.

 

Box Collider 2D
예시 Box Collider 2D

 

이걸 설정해서 "Collider 2D"에 넣어주면 3D와 똑같이 작동하게 된다.

위의 사진은 예시로 가져온 Box Collider 2D이다. 저기 보이는 Material에 넣어주면 된다.


여기까지 유니티의 Physic Material, 3D, 2D의 경우의 정의와 사용법에 대해서 알아보았다.

뭐 한번쯤 사용하게 될 일이 있을것이라 확신한다. 마찰력이나 튕기는 정도에 대한

설정을 다르게 하고 싶다면 한번쯤 떠올리면 좋을 것 같다.

 

특히, 2D의 경우에는 Physic Material 2D 를 생성하는 방법은 외워두는 게 좋을 듯 하다.

나의 경우도 여러 번 만들어봤지만 한번에 찾기 어렵다.


이상으로 도움이 되었길 바라며,

 

끝.

 

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

 

Unity Pro

The complete solutions for professionals to create and operate.

unity.com

 

댓글

💲 추천 글