본 시리즈는 유튜브 Lusiogenic 채널의 콘텐츠를 원작자의 동의하에 재가공 한 것입니다.
본 포스팅은 아래 영상을 참고하였습니다.
# 오늘의 주제
이번 시간의 주제는 그네(Swing)입니다.
# 준비물
이번 장치는 언리얼 엔진에서 기본으로 제공하는 에셋을 이용해 만듭니다.
# 구현
컴포넌트 구조는 위와 같습니다.
1. 스태틱 메시 컴포넌트
1) Base
베이스 컴포넌트는 공중에 매달아 놓을 막대기 모양의 메시입니다.
Cube 메시를 위와 같이 스케일링 해서 만들었습니다.
중력과 상관없이 공중에 매달려 있어야 하기 때문에 Simulate Physics는 꺼줍니다.
2) Board
보드 컴포넌트는 그네의 앉는 부분입니다. Physics Constraint에 의해 정해진 범위 안에서 자유롭게 운동합니다.
Cube 메시를 위와 같이 스케일링 해서 만들었습니다.
위치는 원점에서 -10uu(cm) 만큼 아래에 잡아줍니다.
물리 시뮬레이션은 켜줍니다.
2. 피직스 컨스트레인트
피직스 컨스트레인트 두 개를 Base의 좌우 양 끝에 배치합니다.
Base와 Board를 연결해줍니다.
Linear Limits를 X, Y, Z에 대해서 모두 150으로 맞춰줍니다. 제한된 길이를 어느정도는 벗어나게 허용해주는 Soft Constraint를 활성화 하고 Stiffness(강성)를 2000, Damping(제동)을 10으로 설정합니다. 이 값들은 꼭 이렇게 설정해야 되는 것은 아닙니다. 원하는 물성을 가질때 까지 조정합니다.
Linear Motor 중 Velocity Target을 (0, 0, 0)에 대해 0.5만큼 줍니다. 흔들리다가 멈추는 데 까지 걸리는 시간이 줄어듭니다.
Angular Motor의 Drive Mode를 SLERP로 설정합니다. (Angular Limits에서 어떤 축에도 Locked 체크를 하지 않아야 가능한 옵션입니다.) Target Velocity를 (0, 0, 0)에 대해 0.5만큼 줍니다. 이 옵션도 그네가 빠르게 멈추는 것을 도와줍니다.
3. 케이블 컴포넌트
케이블 컴포넌트는 그네의 줄을 렌더링합니다. (그네의 줄로 Base와 Board가 연결 된 것은 아닙니다. 연결된 것 처럼 보이는 것입니다.)
두개의 Cable Component를 Board의 하위에 배치합니다.
두 Cable의 Location에서 Z 축 값을 -10으로 맞춥니다.(Board와 높이가 맞아야 합니다.)
Attach End To > Component Property에 Base를 적습니다.
End Location에서 X 값은 각각 -50과 50입니다. Cable Length(길이) 및 Num Segments(몇 조각으로 분절되는지), Solver Iterations(이 값에 비례해서 강성이 증가함)은 원하는 운동형태와 물성에 따라 조절합니다. Enable Stiffness(강성 활성화)을 체크합니다.
렌더링 옵션도 원하는 대로 만들어줍니다. Cable Width는 케이블 두께, Num Sides는 둘레를 이루는 면의 개수입니다. 값이 높을 수록 동그란 모양이 됩니다.
4. 테스트
투석기 같은거 만들다가 그네 만드니까 심심..
# 코멘트
제 조카가 참 좋아하는 놀이기구인 그네를 만들어 보았습니다.
댓글, 피드백, 공감은 블로그 운영에 큰 힘이 됩니다.
'비현실 연구소 > [1층]물리학 실험실' 카테고리의 다른 글
Lusiogenic: 헬륨 풍선 (0) | 2020.10.29 |
---|---|
Lusiogenic: 피스톤 휠 (0) | 2020.10.29 |
Lusiogenic: 트레뷰셋 (0) | 2020.10.29 |
Lusiogenic: 투석기 (0) | 2020.10.29 |
Lusiogenic: 스프링 박스 (0) | 2020.10.29 |