- Rigid Body 완전정복 - 이것저것한교수Youtube
https://youtu.be/Q4dDN-NLCeE
Physics Properties
👀그럼 collision의 역할은?
액체, 옷감, 파티클 등 soft body 계열 물체의 충돌을 표현할때 사용함.
(rigid body에는 collision 기능이 포함되어있음)
✔ Animated Rigid Body가 적용된 물체에 키프레임 애니메이션을 적용하기위해서는
이 옵션이 체크✔ 되어있어야합니다.
✔ Shape
ex) Box
✔ Source
Base/Deform
: 둘은 비슷함. 형태의 변화가 있을 때 Apply를 해주지않으면 원형을 기준으로 collision을 감지합니다.
Final
: 최종적인 형태를 기준으로 collision을 감지합니다.
✔ Friction : 마찰
✔ Bounciness : 탄성
✔ Margin: 마진(테두리)를 줄 수 있습니다.
✔ 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이 설정되는것을 볼수있습니다.
이제 충돌 애니메이션을 실험할 준비가 끝났습니다.
Rigid Body를 설정한 뒤 공을 날리려고하면 예상과다르게 잘 날아가지않습니다.
Rigid body를 원하는대로 움직이기위해서는 위에서 설명했던 Animated 설정을 체크해야합니다.
그래서 공을 날리는 동안에는 Animated를 체크하고, 충돌 바로 전에 Animated체크를 끄면 날아가던 관성의 힘 그대로 공이 큐브에 부딪히게됩니다.
정말 물체에 부딪혀서 공이 힘을 잃고 떨어지는 것처럼 자연스럽게보이네요.
(임팩트 직전에 갑자기 느려진듯한 느낌이 드는건 시뮬레이션을 돌리면서 노트북이 버벅여서 그런것같습니다.)
두번째 방법은 Animated를 끄지않고 큐브를 쭉 통과하는 위치까지 키프레임을 설정하는 것입니다. 좀더 강력하게 뚫고 지나가는 듯 보이네요.
👀 Empty Sphere의 origin의 위치가 Mesh Sphere의 origin과 일치해야합니다.
Empty Object에 Rigid Body Constraint를 추가해줍니다.
✔ Objects 선택
✔ Type
Fixed
: 두 객체가 하나인 것처럼 움직이도록 함
Point
: 객체들이 한 지점에 연결되어 어떤 방향으로든 회전하며 constraint 객체의 주변을 돌도록 합니다.
Hinge
: 개체의 Z축에 대한 회전이 허용됩니다. 제약 조건을 호스팅하는 객체의 위치와 회전을 조정하면 힌지의 앵커와 축을 제어할 수 있습니다.
Slider
: 제약 조건 개체의 X축을 따라 상대 변환을 허용하지만 상대 회전이나 다른 축을 따라 상대 변환을 허용하지 않습니다.++ 세부설정
Linear : Lower와 Upper을 설정해서 움직임의 범위를 설정할수있습니다.
source개체를 회전해서 slider의 방향을 바꿀수있습니다.
Piston
Generic
Generic Spring
Motor
- Rigid Body gear
https://youtu.be/J5oZqLpH1PU?list=LL- Smaller Gear Rotating Around A Bigger Gear
https://youtu.be/PPUGeisOm7I
- 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 강의를 먼저 듣고 만들었다면 훨씬 쉽게 작업하고 작업물도 더 만족스러웠을 것 같은 생각이 들었습니다. 역시 애니메이션을 다룰 때는 물리 속성을 잘 다루는게 중요하구나라는 생각이 들었습니다.
그리고 톱니바퀴 애니메이션을 활용하면 기계를 움직이는 애니메이션을 만들때 큰 도움이 될 것 같습니다.