본문 바로가기

비현실 연구소/[1층]물리학 실험실

Lusiogenic: 레버 스위치

 


 

본 시리즈는 유튜브 Lusiogenic 채널의 콘텐츠를 원작자의 동의하에 재가공 한 것입니다.

본 포스팅은 아래 영상을 참고하였습니다.

 

 

 


# 오늘의 주제

이번 시간에 소개할 실험 장치는 레버 스위치(Lever Switch)입니다.

 

 

 


# 준비물

Blender를 이용해 레버 외형을 구현했습니다. 레버는 Base와 Handle로 나뉘어있습니다.

 

따라 만들고 싶으신 분들은 아래 첨부파일을 다운 받으세요.

 

LeverSet.fbx
0.37MB

 

임포트 옵션에서 Normal Import Method를 아래 그림처럼 설정합니다.

 

 

 


# 구현

1. 액터 컴포넌트 구성

 

Base, Handle 그리고 Physics Constraint Component로 구성된 간단한 장치입니다. (Base와 Handle 컴포넌트에 쓰인 LeverSet_Base, LeverSet_Handle 메시는 피벗 포인트가 알맞게 지정되어 있어 따로 Location을 조절해 줄 필요가 없습니다.)

 

 

Handle 컴포넌트의 Simulate Physics를 활성화 시켜줍니다.

2. 피직스 컨스트레인트 설정

 

 

Base와 Handle 컴포넌트를 결합합니다.

 

 

두 컴포넌트 간 간섭을 방지하기 위해 Disable Collision을 활성화합니다.

 

 

 

 

회전 방향에 맞는 Angular Motion을 설정하고 Limit 수치를 잡아줍니다. 모든 작업은 뷰포트의 Physics Constraint Component를 보면서 진행합니다.

 

 

Angular Limit 카테고리의 Advanced 메뉴를 켜서 Soft Constraint 옵션을 꺼줍니다. 스위치가 통통 튀거나 부드럽게 움직이는 것을 막아줍니다.

 

 

특정 상태를 유지하게 하려면 위 옵션을 설정해야합니다. X축 45도로 꺽임 + 정지하려는 성질을 부여했습니다. 회전 반경을 제한했기 때문에 SLERP를 쓰지 못하는 것에 유의하세요. Strength 수치는 몇번의 테스트를 거쳐 조정된 값입니다. 원하는 효과를 내기 위해서는 테스트를 반복해야합니다.

3. 중간 점검

 

 

레버 스위치 중간 점검

 

serviceapi.nmv.naver.com

 

제작한 대로 잘 작동하는 것을 확인할 수 있습니다. 계속해서 On/Off 두가지 상태를 유지하는 기능을 만들어 보겠습니다. (위, 아래에 고정점이 있는 스위치)

4. 블루프린트 스크립팅

 

 

실시간으로 Handle 컴포넌트의 각도를 구해서 목표 각도를 수정해주는 방식입니다. 레버가 중간보다 위로 올라가 있으면 위로 다 올리고 아래로 내려가 있으면 아래로 다 내려갑니다.

 

레버 스위치 On/Off 테스트

 

serviceapi.nmv.naver.com

5. 전력 공급 시나리오

마지막으로 조명에 전력을 공급해주는 시뮬레이션을 실행해보겠습니다.

 

 

 

레버 스위치로 전력 공급

 

serviceapi.nmv.naver.com

 

 


# 코멘트

스위치는 인터렉티브 콘텐츠에서 매우 유용하게 자주 쓰이는 장치입니다. 단순하게 애니메이션을 재생하는 스위치가 아닌 물리력에 의해 작동되는 스위치를 원하신다면 이번 포스팅의 내용을 참고하세요.

 

 


 

댓글, 피드백, 공감은 블로그 운영에 큰 힘이 됩니다.

 

 

 

 

'비현실 연구소 > [1층]물리학 실험실' 카테고리의 다른 글

Lusiogenic: 스프링 박스  (0) 2020.10.29
Lusiogenic: 여닫이 문  (0) 2020.10.29
Lusiogenic: 프로펠러  (0) 2020.10.29
Lusiogenic: 지렛대  (0) 2020.10.28
Lusiogenic: 스프링보드  (0) 2020.10.28