[Blender] Rigid Body, Constraint 기초 정리, 충돌(Collision) 애니메이션, 톱니바퀴(Gear) Rigid Body로 움직이기

최예린·2022년 11월 17일
2

Blender

목록 보기
31/31

Rigid Body란?

Physics Properties


✔ 속성알아보기

Type: Active vs Passive

  • Active : 움직이는것 -> 중력의 영향을 받아 Play Animation을 누르면 아래로 떨어짐
  • Passive : 안움직이는것 -> 떨어지지않음. 다른 rigid body와 충돌을 표현하기위해 필요함

👀그럼 collision의 역할은?
액체, 옷감, 파티클 등 soft body 계열 물체의 충돌을 표현할때 사용함.
(rigid body에는 collision 기능이 포함되어있음)

Settings

✔ Animated Rigid Body가 적용된 물체에 키프레임 애니메이션을 적용하기위해서는
이 옵션이 체크✔ 되어있어야합니다.

Collision

✔ Shape

  • Convex Hull : 아주 복잡한 물체의 경우 자동으로 물체를 단순화시켜서 collision을 감지하기위한 센서 범위로 만들어냅니다.

ex) Box

✔ Source

  • Base/Deform : 둘은 비슷함. 형태의 변화가 있을 때 Apply를 해주지않으면 원형을 기준으로 collision을 감지합니다.

  • Final : 최종적인 형태를 기준으로 collision을 감지합니다.

Surface Response

✔ Friction : 마찰
✔ Bounciness : 탄성

Sensitivity

✔ Margin: 마진(테두리)를 줄 수 있습니다.

Dynamics

✔ De-activation: Start Deactivated를 체크✔하면 Rigid body가 처음부터 작동하지는 않음. 다른 rigid body가 와서 부딪히면 작동하기 시작함


충돌 애니메이션


여러개의 상자를 만들거기때문에 구별하기쉽게 color를 random으로 지정해줍니다.

Cube하나를 만들어서 ★★Rigid body를 추가해준뒤★★ Array Modifier를 통해 x,y,z축으로 큐브를 복제해서 쌓아줍니다.

Edit Mode에 들어가서 전체 선택후 P > Separate By Loose Parts

그러면 이렇게 큐브 하나하나가 다 다른 객체로 분리됩니다. 지금 상태로는 origin이 오른쪽 구석으로 맞춰져있어서 play하면 우르르 상자가 쏟아집니다.
이를 막기위해 origin을 변경해주겠습니다.

Object Mode > Set Origin > Origin to Geometry


그러면 이렇게 각각의 큐브마다 자기의 중심으로 origin이 설정되는것을 볼수있습니다.

이제 충돌 애니메이션을 실험할 준비가 끝났습니다.

애니메이션 1

Rigid Body를 설정한 뒤 공을 날리려고하면 예상과다르게 잘 날아가지않습니다.
Rigid body를 원하는대로 움직이기위해서는 위에서 설명했던 Animated 설정을 체크해야합니다.

그래서 공을 날리는 동안에는 Animated를 체크하고, 충돌 바로 전에 Animated체크를 끄면 날아가던 관성의 힘 그대로 공이 큐브에 부딪히게됩니다.

정말 물체에 부딪혀서 공이 힘을 잃고 떨어지는 것처럼 자연스럽게보이네요.
(임팩트 직전에 갑자기 느려진듯한 느낌이 드는건 시뮬레이션을 돌리면서 노트북이 버벅여서 그런것같습니다.)

애니메이션2

두번째 방법은 Animated를 끄지않고 큐브를 쭉 통과하는 위치까지 키프레임을 설정하는 것입니다. 좀더 강력하게 뚫고 지나가는 듯 보이네요.


Rigid Body Constraint

세팅

👀 Empty Sphere의 origin의 위치가 Mesh Sphere의 origin과 일치해야합니다.

Rigid Body Constraint


Empty Object에 Rigid Body Constraint를 추가해줍니다.

✔ Objects 선택

  • First : Source
  • Second : 움직일 부분

✔ Type

  • Fixed: 두 객체가 하나인 것처럼 움직이도록 함

  • Point : 객체들이 한 지점에 연결되어 어떤 방향으로든 회전하며 constraint 객체의 주변을 돌도록 합니다.

  • Hinge : 개체의 Z축에 대한 회전이 허용됩니다. 제약 조건을 호스팅하는 객체의 위치와 회전을 조정하면 힌지의 앵커와 축을 제어할 수 있습니다.

  • Slider : 제약 조건 개체의 X축을 따라 상대 변환을 허용하지만 상대 회전이나 다른 축을 따라 상대 변환을 허용하지 않습니다.

++ 세부설정

  • Linear : Lower와 Upper을 설정해서 움직임의 범위를 설정할수있습니다.

  • source개체를 회전해서 slider의 방향을 바꿀수있습니다.

  • Piston
  • Generic
  • Generic Spring
  • Motor

Rigid Body Gear

✔ 톱니바퀴로 맞물려있는 다른 톱니바퀴 움직이기

  • gear와 cylinder mesh를 추가해서 위 사진처럼 배치해줍니다.(gear는 edit 모드에서 위 아래 면을 채웠습니다. 단축키 F)
  • 그리고 두개의 객체 모두에게 Rigid Body를 추가해줍니다.
    ★gear는 active, cylinder는 passive로 설정합니다.★

gear를 선택한 뒤 cylinder를 선택 > Object > Rigid Body > Connect > X, Y, Z 축을 가진 constraint가 새로 생성됩니다.

  • 이 constraint는 gear를 회전시키기위한 것으로 Type을 Motor로 설정하고 Angular에 체크✔ 해줍니다.

회전하는 축을 설정하기위해 constraint를 위 사진처럼 Y축으로 rotate 시켜줍니다.

그리고 play시키면 active인 톱니바퀴가 그대로 아래로 떨어집니다.
이를 막기위해 톱니바퀴를 붙잡아둘 또 다른 constraint가 필요합니다.

위와 같은 방법으로 constraint를 추가하고 이번에는 Type을 Hinge 로 설정해줍니다.


그리고 play를 누르면 톱니바퀴가 정상적으로 작동하는 것을 볼 수 있습니다.

두개의 톱니바퀴 맞물리기


Motor Type의 constraint를 제외한 모든 객체를 복제해서 또 다른 톱니바퀴를 만들어줍니다. 이 톱니바퀴는 동력이 없습니다. 하지만 동력이 있는 또 다른 톱니바퀴에 맞물려 돌아가게 만들겁니다.

여기서 부드럽게 톱니바퀴가 돌아가려면 두 톱니바퀴의 margin을 모두 0으로 꼭 설정해줘야합니다.


적절히 톱니바퀴를 배치해준뒤 play를 누르면 왼쪽 톱니바퀴가 돌아가면서 오른쪽 톱니바퀴도 함께 돌게됩니다.


느낀점

예전에 애니메이션 부분을 공부할 때 스스로 바닥에 충돌하는 애니메이션을 만들었는데
바닥을 자꾸 통과하기도하고 바닥에 닿는 모션이 어색해서 작업물이 아쉬웠던 경험이있습니다. Rigid Body 강의를 먼저 듣고 만들었다면 훨씬 쉽게 작업하고 작업물도 더 만족스러웠을 것 같은 생각이 들었습니다. 역시 애니메이션을 다룰 때는 물리 속성을 잘 다루는게 중요하구나라는 생각이 들었습니다.

그리고 톱니바퀴 애니메이션을 활용하면 기계를 움직이는 애니메이션을 만들때 큰 도움이 될 것 같습니다.

profile
경북대학교 글로벌소프트웨어융합전공/미디어아트연계전공

0개의 댓글