본문 바로가기

로블록스 개발 중급

자연스럽게 열리는 문 만들기(2)

Constraint 추가하기

constraint는 두 개의 attachment를 연결해서 특정한 방식으로 움직이게 해주는 역할을 한다. 이 도어에서는 사용할 Constraint는 HingeConstraint 인데, 이름에서도 알 수 있듯이 두 개의 attachment를 연결해서 경첩의 움직임과 같은 기능을 가지고 있다. 

DoorFrame 파트에 HingeConstraint를 추가한다.

 

HingeConstraint의 속성들 중에서 Attahcment0을 찾고 그 안에 DoorAttachment를 넣는다. 같은 방법으로 Attachment1을 찾아서 FrameAttachment를 넣는다. 속성창을 보면 아래의 이미지와 같을 것이다.

 

플레이를 하여 테스트해보자.  본인도 테스트를 해보니 아래의 동영상처럼 도어가 움직였다.

 

도어의 꺾임 제한하기

도어의 움직임의 그 자체는 문제가 없지만, 도어가 프레임을 막 통과해서 지나가 버리는 문제가 있다. 이런 문제는 HingeConstraint의 속성으로 해결할 수 있다.

먼저, HingeConstraint의 속성중에서 LimitsEnabled 을 찾아서 활성화 시키자. 이 속성을 활성화시켜줘야 회전 범위를 제한해 줄 수 있다. 이 속성값을 활성화 해야 Limits라는 속성이 나오니 참고 바란다.

 

값을 변경하기에 앞서서, 먼저 설정을 다시 한번 확인하자. 도어의 attachment위에 마우스를 놓자. 그러면 노란색 X축과 주황색 Y축이 보일 것이다. HingeConstraint에 의해 노란색 X축은 회전축을 담당하게 되고, 주황색 Y축은 범위를 담당하게 된다. Door의 attachment의 주황색축과 Frame의 attachment의 주황색축이 같은 방향을 가리키고 있어야 한다.

Limits 속성 섹션안에 LowerAngle 은 -90, UpperAngle 은 90로 변경하자. 이 값은 아래의 이미지와 같은 제한을 가지게 해준다.

테스트를 해보고 올바르게 작동하는지 확인하자. 

 

제대로 작동하지 않을 때 확인해야 할 한가지.

아래의 이미지처럼 DoorAttachment의 녹색선 테두리가 문쪽을 향해 있는지를 확인해 봐야 한다. 

 

 모델을 직접 만들었을 때의 팁.

본인은 위의 도어 모델의 링크를 찾을 수 없어서 두개의 파트를 사용하여 도어 모델을 만들어서 사용하였다. 다 만들어서 사용해보니 이 튜토리얼의 Door와 Frame의 방향이 반대로 되어 있어서 attachment 들을 구성할 때도 반대로 구성을 했어야 제대로 움직이는 것을 확인할 수 있었다.

모델을 스튜디오내에서 직접 만들때에는 게임편집창에서 "Back" 인 상태에서 만들어야 제대로 된 방향으로 만들 수 있다.

본인이 Front 방향으로 만든 Door. 제대로 만들었다고 생각했지만.

사실은 프레임과 문이 반대방향이었다. Back인 상태에서 보면 알 수 있다.

그러니 실수하기 싫다면 Back 인 상태에서 모델을 만들자.