본문 바로가기

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

Lusiogenic: 스프링 박스

 


 

 

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

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

 

 

 


# 오늘의 주제

이번 시간의 주제는 스프링 박스(Spring Box)입니다.

 

사실, 그냥 육면체 두개를 스프링과 연결한 기구입니다.

 


# 준비물

리얼한 스프링 박스를 구현하기 위해 먼저 스프링을 제작했습니다.

1. 리깅된 스프링

 

블렌더를 이용해 제작했습니다.

 

spring.fbx
2.02MB

※참고사항

임포트 시에 아래와 같은 안내 메시지가 뜹니다. 해당 본에 할당된 버텍스가 없다는 메시지이고 의도된 것이므로 무시하고 진행합니다.

 

 

 


# 구현

1. 스프링 스켈레톤 피직스 에셋 설정

 

 

자동으로 생성되는 캡슐형 Collision Body를 모두 삭제하고 아래처럼 Multi Convex Hull 타입으로 Physics Body를 재생성합니다.

 

모두 선택 후 Multi Convex Hull 타입의 피직스 바디 생성

 

 

스프링이 위아래로 늘어날 수 있게 Linear Limits를 Z축만 Free로 설정합니다.

 

Angular Limits는 모두 Locked 처리합니다.

 

Linear Motor를 위 그림처럼 설정합니다. (스프링이 눌려있지 않고 위치를 유지하기 위한 Strength 값이 꽤 높습니다.)

 

모든 바디를 선택해서(Select All Bodies), 질량을 20Kg으로 설정합니다.

2. 액터 컴포넌트 설정

Component Structure

 

컴포넌트 구조를 위와 같이 만듭니다.

 

Physics Constraint 위치 (스프링의 위, 아래)

이번 실험에서는 피직스 컨스트레인트를 두 개 사용합니다.

 

< Top  (Static Mesh Component)> Simulate Physics: Enable

 

스프링에 연결되어 움직일 부분이므로 물리 시뮬레이션을 켜줍니다.

 

< Spring > Simulate Physics: Enable / Collision Presets: PhysicsActor

스프링도 마찬가지로 물리 시뮬레이션을 켜주고, 콜리젼 프리셋 설정까지 해줍니다.

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

두 개의 컨스트레인트는 제약 컴포넌트 설정만 다르고 나머지 설정은 똑같습니다.

 

 

컨스트레인트로 연결될 컴포넌트를 등록합니다. 이 때 위의 Constraint에는 Spring에 포함된 Bone_019를 Constraint Bone에 등록합니다. 피벗 포인트가 아닌 스프링 윗부분에 위치한 본과 연결하기 위한 작업입니다.

아래부터 공통 속성입니다.

 

상호 간섭을 방지하기 위해 Disable Collision을 켜줍니다.

 

Linear Limits 및 Angular Limits를 모두 잠급니다.

4. 테스트

 

스프링 박스 테스트

 

serviceapi.nmv.naver.com

여러번 테스트를 해보며 원하는 운동성을 띌 수 있도록 각각의 수치를 조정합니다.


# 코멘트

스프링은 생각보다 복잡한 운동을 하는 물체입니다. 의도한 대로 제어하기가 쉽지 않기 때문에 핵심 게임 플레이에는 사용하지 않는 것을 추천드립니다. 특히 캐릭터를 어딘가로 쏘아 올리고 싶을 땐 탄성체를 제작하기 보다는 Launch Character 노드를 이용하세요. 신뢰할만한 결과를 얻을 수 있습니다.

 

Launch Character

 


 

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

 

 

 

 

'비현실 연구소 > [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