공부 기록

[Unity 3D] Configurable joint - 줄에 매달린 흔들림 구현 본문

Unity

[Unity 3D] Configurable joint - 줄에 매달린 흔들림 구현

혜멘 2021. 2. 20. 01:06

유니티에서 제공하는 joint는 여러가지가 있는데, 그 중 오늘 사용할 것은 configurable joint 이다.

이 조인트를 한마디로 설명하자면... 유니티의 모든 joint를 합친 기능이라고 할 수 있다. (아마도)

 

#1 조인트 컴포넌트 추가

우선 add conponent에서 joint를 검색하여 사용할 joint를 추가해준다.

이때, [흔들릴 물체]와 [물체를 고정할 곳]  중 흔들릴 물체에 조인트를 추가해야 한다.   

 

종류도 겁나 많다.

줄에 매달린 듯한 흔들림을 구현하고 싶다면 그림에 선택된 configurable joint 를 추가한다.

 

옵션도 겁나 많다. 이것도 잘린거임

나는 cube가 흔들리게 할 예정이므로 큐브에 조인트 컴포넌트를 추가했고 옵션의 connected body에는 큐브를 매달 틀을 넣어줬다. 

앞에 언급해서 알겠지만 흔들릴 물체에 조인트 컴포넌트를 추가하고 그 옵션인 connected body에 이 물체가 매달릴 오브젝트를 넣어주면 된다.

 

 

#2 옵션 설정 - Motion, Angular motion

 

configurable joint 를 추가해줬으면, 이제 수많은 옵션을 설정해줘야 한다.

사실 나도 아직 완벽하게 공부한 입장은 아니라서 구글링 해서 얻은 오브젝트의 옵션을 빼다 받아온거긴 한데 일단은 설명을 해보긴 하겠다.

 

connected anchor 빼고 이대로 따라 설정하면 된다.

먼저 Anchor는 joint의 중심이라고 할 수 있는데, 나는 물체의 윗부분이 줄에 매달린 형식으로 구현할 예정이므로 물체의 수직방향 즉 y 축을 중심으로 잡았다.

 

Axis는 물체의 회전축이라고 보면 된다. 이것도 당연히 y 축으로 주었다. 

secondary axis는 axis와 함께 물체의 로컬 좌표계를 정의한다고 하는데 사실 잘 모르겠어서 이것도 그냥 y축으로 했다.

 

그리고 XYZ 모션은 무조건 locked로 해줘야 한다. 그렇게 해두지 않으면 중력의 영향을 받아 그대로 낙하하기 때문이다. 나는 "매달린" 물체 구현이 목적이므로 모두 잠가주었다.

 

Angular 모션은 해당 축으로 회전하게 둘지 말지를 결정하는 옵션인데 이건 각자의 사정에 맞게 하면 될듯하다.

 

전통악기를 닮은 무언가...

이렇게 하면, 짠! 줄에 매달린 물체의 흔들림 구현 완성!

아직 질량이나 마찰력, 흔들리는 각도 등의 섬세한 조절은 하지 못했지만 어쨌든 매달기는 성공...

 

 

Comments