생각보다 물체간의 연결관계를 잡는것이 쉬운 것은 아니다.
우리가 잡아줘야할 물체의 조각들은 점점 많아질 것이다.
조각이 많아질수록, 많은 아이디어가 있어야한다.
하나의 아이디어만으로는 모든 상황을 커버할 수가 없다.
우리가 현재 해야할 작업
- Rigid body 시뮬레이션을 위한 오브젝트 세팅
- Constraint 세팅
- 첫번째 방식 - <필수적으로 할 수 있어야하는 방법> 직접 하나하나 원하는 위치에 원하는 constraint를 만들어내는 방법
- 두번째 방식 - <아이디어 훈련> (모든 상황에 다 적용되는 방식은 아니지만) Constraint의 system화
작업자가 작업을 시작하는 순간이 모든 물체가 완벽하게 정리 및 준비된 상태에서 시작되지는 않는다. 보통 시뮬레이션을 위한 자료의 준비 및 세팅은 사용자가 직접 해줘야한다.
각각의 조각을 분리하고 이름을 정리해준다.
s@prep_name으로 이름을 준비하는 이유는 시뮬레이션에서는 s@name을 사용할 것이지만, 고화질 데이터의 치환에 도움이 되기 때문에 @prep_name으로 만들어준 것이다.
Dop network에서 기본 시뮬레이션 세팅을 만들어준다.
이제 해줘야할 것은 constraint 세팅이다.
우리가 생각해봐야할 것은,
실제로 물체와 물체 사이에 연결이 될 곳은 어디일까?
물체와 물체가 맞닿는 부분에 경첩이 달려야 이쁘게 연결될 것이다.
현재 물체가 대변되는 포인트들의 위치는 각 물체의 중심에 위치하고 있다.
구체적으로 우리가 원하는 곳에 경첩을 만들 수 있어야한다.
만약 0번 포인트로 대변되는 다리(legA)와 4번 포인트로 대변되는 시트(seat)의 constraint를 만들어줘야한다면, 다리와 시트의 접합부분에 각각의 물체가 대변되는 (이름이 같은)포인트들이 위치하고 있어야한다.
다리의 윗면의 중심에 위치하는 포인트를 찾아주면 그것을 다리와 시트를 대변하는 포인트로 활용이 가능할 것이다.
다리는 현재 packing되어있으므로, unpack으로 압축을 풀어주고, 윗면을 떼어낸 뒤, bound 노드를 사용해서 중심에 위치하는 포인트를 구할 수 있다.
세팅이 어려운 것은 아니었다.
이렇게 하나하나 세팅하는 방법은 정말 기본기중의 기본기이다.
이것이 아주 당연하게 느껴져야한다.
이 방식은 constraint 세팅을 잡음에 있어서 최후의 최후의 수단으로써 '어떻게 물체간의 관계를 만들어야할지 모르겠다. 그러니까 노가다로 직접 한땀 한땀 만들어주자.' 라고 결심했을 때, 이 때 이 방법을 사용해서라도 constraint를 만들어낼 수 있어야한다.
우리는 이제 앞으로 수많은 조각들의 관계를 어떻게 만들어야할지 고민해야한다.
- 조각이 적은 물체에서부터 빌드업해보자.
- 아이디어를 스스로 내보는 연습을 많이 해보자.
허허... 왜때문에 하나의 물체를 대변하는 포인트가 하나이어야한다고 생각을 하고 있던 것일까...
강의 듣기 전에 해보려는데, 다리의 포인트는 다 접하는 부분에 위치하게 했으면서 seat을 대변하는 포인트를 원래 위치인 중심에 둔 상태로 작업을 진행하려고 하니 시뮬레이션에만 들어가면 무슨 다리에 힘없는 노루새끼마냥 후덜덜 거리면서 이상했었는데...
확실하게 머리에 못을 박아넣었다.
(꼭 다 그런것은 아닐수도 있지만) 두 물체가 맞닿아있을 경우, 닿은 면에 경첩이 만들어지도록 constraint를 만들어주는것, 그리고 A라는 물체를 대변하는 포인트는 여러 위치에 있을 수 있다는 것.
얼른 다음 강의 공부하러 가보자~
한땀 한땀 노가다보다는 시스템화가 좋지 :)