이 예제에서는 외계인 캐릭터의 안테나나 더듬이가 머리를 움직일 때마다 동적이고 탄력적으로 움직여야 합니다. 물론 이 예제는 머리카락, 공룡 꼬리 등에도 적용할 수 있습니다.
작업 파일 "PSD_C4D_R12_IK_Dyn_Start.c4d" 에서 공동 작업을 위한 모델링 및 텍스처링된 외계인 머리를 찾을 수 있습니다.
조인트 프레임워크의 구조
외계인 머리는 한편으로는 다각형 머리 지오메트리와 다른 한편으로는 눈용 구형 오브젝트 두 개로 구성되어 있습니다. 이후 과정에서는 모든 오브젝트를 계층적으로 또는 가중치를 통해 조인트에 바인딩하여 전체 머리가 문제없이 안테나와 함께 애니메이션화될 수 있도록 할 것입니다.
머리에 대한 첫 번째 조인트 오브젝트로 조인트 구조를 설정해 보겠습니다. 캐릭터 메뉴에서 찾을 수 있습니다.
외계인 머리는 좌표계의 원점에 정확히 위치하므로 머리 관절은 제로 위치에 유지될 수 있습니다.
새로 만든 조인트 개체를 선택한 상태로 두고 캐릭터 메뉴에서 조인트 도구를 활성화합니다. 조인트 도구의 설정 대화 상자에서 상위 루트-제로 오브젝트 생성을 비활성화합니다 . 나중에 조인트 구조에서 실제로 어떤 기능을 하는지 더 잘 이해하기 위해 직접 만들겠습니다.
대칭으로 작업할 수 있도록 대칭 영역을 확장하고 월드 YZ 레벨에서 그리기 옵션을 사용합니다 . 이 평면 또는 이 뷰에서 조인트를 그립니다.
이제 조인트 도구가 활성화된 상태에서 뷰를 클릭하고 Ctrl 키를 누르면 헤드 조인트에 종속된 조인트가 자동으로 대칭으로 생성됩니다.
두 개의 센서 또는 안테나 중 하나를 선택하고 첫 번째 하위 조인트를 머리의 센서 바닥에 직접 배치합니다. Cinema 4D는 활성화된 대칭 덕분에 다른 센서의 조인트를 자동으로 설정합니다.
이제 그림에 표시된 위치를 클릭하고 Ctrl 키를 누른 상태로 조인트 체인을 만듭니다. 조인트는 더 섬세한 곳에 조금 더 가깝게 배치해야 합니다. 이러한 조인트 위치에서만 지오메트리의 변형이나 구부러짐이 발생할 수 있으므로 조인트를 절약해서는 안 됩니다.
모든 조인트를 만들었으면 오브젝트 관리자에서 그림에 표시된 조인트 계층 구조를 찾을 수 있습니다. 헤드 조인트 오브젝트에는 각 센서 또는 안테나에 대해 하나의 체인씩 총 두 개의 조인트 체인이 하위 오브젝트로 있습니다.
측면도에서 쌍으로 이루어진 조인트의 위치를 조정하려면 오브젝트 관리자에서 조인트 쌍을 선택하고 지오메트리에서 z축을 따라 조인트를 이동합니다.
이제 센서와 안테나의 애니메이션을 위한 조인트 구조가 완성되었습니다. 안타깝게도 아직 외계인 머리에 애니메이션을 적용할 수 있는 레퍼런스가 없습니다.
이는 조인트 계층 구조를 지오메트리에 연결해야만 가능합니다. 이를 위해 먼저 오브젝트 관리자를 통해 외계인 지오메트리의 모든 조인트 오브젝트와 폴리곤 오브젝트를 선택합니다.
이제 캐릭터>명령 메뉴의 바인드 명령을 사용하여 조인트 계층 구조를 폴리곤 메시와 연결합니다.
바인드 명령은 어떤 작업을 수행하나요? 이제 외계인 지오메트리의 폴리곤 오브젝트에는 설정 대화 상자에서 외계인 머리의 지오메트리에 영향을 줄 수 있는 모든 조인트 오브젝트가 수집되는 가중치 태그가 있습니다. 이 자동 가중치는 지오메트리에 대한 조인트의 위치를 기반으로 하며 좋은 출발점이 됩니다.
조인트에 가중치 부여하기
그러나 이 가중치는 완벽하지 않으므로 약간의 재작업이 필요합니다. 기존 가중치에 대한 인상을 얻으려면 먼저 오브젝트 관리자를 통해 HyperNURBS 케이지 기능을 비활성화합니다 . 가중치도구는 지오메트리의 가중치를 평활화되지 않은 폴리곤 메시로 표시합니다. 전체 개요를 보려면 먼저 오브젝트 관리자에서 지오메트리가 있는 모든 조인트 오브젝트를 선택합니다.
가중치 도구는 캐릭터 메뉴에서 찾을 수 있습니다. 이 툴을 활성화하면 외계인 머리의 지오메트리에 색상이 지정됩니다. 각 관절에는 지오메트리에 미치는 영향을 나타내는 고유한 색이 있습니다.
조인트와 조인트가 지오메트리에 미치는 영향을 개별적으로 평가하려면 오브젝트 관리자에서 해당 조인트를 선택하기만 하면 됩니다. 이 조인트가 적용되지 않는 지오메트리의 모든 영역은 검은색으로 유지됩니다.
머리 조인트에서 코끝이 조인트 색상이 100%가 아닌 것이 눈에 띕니다. 가중치 도구를 사용하여 가중치 브러시를 사용하여 조인트의 가중치를 높여 변형이 발생할 경우 잘못된 동작을 방지할 수 있습니다.
또한 프로브나 안테나로 전환되는 부분의 헤드 지오메트리에 너무 많은 영향을 미칩니다. 기존 가중치를 줄이려면 Ctrl 키를 누른 상태에서 가중치 도구를 사용합니다.
가중치 작업을 완료하려면 오브젝트 관리자에서 모든 조인트를 다시 선택하고 가중치 색상을 단색으로 설정한 다음 전체 지오메트리에 가중치가 있는지 확인하는 것이 좋습니다. 그림에서 볼 수 있듯이 외계인 머리 전체가 흰색으로 칠해져 있어 지오메트리의 모든 부분에 가중치가 적용되었음을 알 수 있습니다.
눈의 구형 오브젝트는 가중치에서 생략되었습니다. 머리가 회전하거나 움직일 때 이러한 오브젝트도 움직이도록 하려면 오브젝트 관리자에서 헤드 조인트에 오브젝트를 할당하기만 하면 됩니다. 예를 들어 이제 머리 조인트가 회전하면 눈 오브젝트는 종속성 때문에 머리의 방향을 따릅니다.
하지만 이제 실제로 조인트 구조와 조인트에 포함된 가중치를 확인해야 할 때입니다. 이를 위해 머리 관절을 선택하고 회전 도구를 사용하여 Y축을 따라 회전합니다. 완전한 외계인 머리는 아무런 문제 없이 머리 관절의 움직임을 따라야 합니다.
역운동학에 동역학 통합하기
이제 관절이 외계인 머리의 각 영역에 원하는 대로 작동하고 있으므로 역운동학(IK) 을 사용하여 센서 또는 안테나의 애니메이션을 처리할 수 있습니다. 이를 위해서는 센서와 안테나의 두 조인트 가닥을 IK 체인으로 정의해야 합니다.
오브젝트 관리자에서 이 두 조인트 체인을 선택하면 헤드 조인트는 포함되지 않습니다!
다시 한 번, Cinema 4D는 선택한 조인트 체인을 IK 체인으로 자동 처리하는 IK 체인 생성이라는 특수 명령을 제공합니다. 캐릭터>명령 메뉴에서 찾을 수 있습니다.
IK 체인 생성 명령을 사용하여 조인트 체인에 어떤 일이 발생했는지 확인합니다. 머리의 시작 부분에 있는 두 개의 관절에 각각 IK 태그가 할당되었습니다. IK 체인의 시작과 끝은 이 태그에 자동으로 저장되었습니다.
또한 오브젝트 관리자에서 두 개의 새로운 null 오브젝트를 대상 오브젝트로 찾습니다. 이 두 개의 타깃은 조인트 체인의 끝과 유사하게 명명되었으며, 이 간단한 제어 타깃을 사용하여 전체 IK 체인에 애니메이션을 적용할 수 있습니다.
실제로는 동적 속성을 사용하여 센서나 안테나의 움직임을 완전 자동으로 제어하고 싶습니다. 하지만 센서와 안테나가 움직이고 변형될 때마다 항상 타깃에 정렬되어 자동으로 위치를 지정하므로 이 두 개의 타깃 오브젝트를 유지해도 문제가 되지 않습니다.
IK 태그의 설정 대화 상자를 보면 IK 체인의 끝 또는 대상이 어떻게 정의되는지 알 수 있습니다. 태그 영역에서 이러한 매개변수를 유지할 수 있으므로 이제 다이내믹스 설정에 더 관심이 있습니다.
이를 위해 동적 탭으로 전환하고 먼저 동적 옵션을 활성화합니다. 이제 센서나 안테나가 중력이나 움직임과 같은 영향에 이미 반응할 수 있습니다.
센서가 단순히 축 늘어지지 않고 탄력 있고 저항력이 있는 것처럼 보이도록 하기 위해 다이내믹스 강도를 약 40~45%로 낮추고 댐핑을 약 70%로 대폭 높였습니다. 센서가 원래 상태로 돌아가기 위해 더욱 노력하도록 하기 위해 홀드 각도 파라미터를 약 40~45%로 높였습니다.
이 시점에서는 파라미터를 계속 실험해 보시기만 하면 됩니다. 개별 설정이 전체 역운동학 체인에 어떤 영향을 미치는지 빠르게 배울 수 있으며, 물론 재미도 있습니다.
아웃소싱된 두 개의 타깃 오브젝트는 센서나 안테나의 동적 애니메이션에 영향을 받지 않으므로 이러한 타깃도 움직여야 한다고 IK에 알려야 합니다. 그렇지 않으면 센서가 빠르게 회전하는 동안 센서가 서로 매우 빠르게 얽히게 됩니다.
IK 태그의 고급 탭은 이를 위한 매우 우아한 기능을 제공합니다. 여기에서 대상 이동 옵션을 활성화하기만 하면 두 개의 대상 개체가 움직일 때마다 자동으로 이동합니다.
이제 센서와 안테나의 역운동학 기능도 완성되었습니다. 대상 오브 젝트와 조인트 체인의 이름을 적절히변경하여 오브젝트 관리자를 약간 정리해 보겠습니다.
머리 관절은 현재 외계인 머리 애니메이션의 핸들로 여전히 사용되고 있습니다. 안타깝게도 이 조인트는 하위 조인트 체인으로 인해 공간에서 회전하기 때문에 상대적으로 다루기 어렵습니다.
하지만 원치 않는 사전 회전 없이 외계인 머리의 회전과 움직임이 이루어지려면 실제로 각도에서 "깨끗한" 시작 위치가 필요합니다.
여기서 우리가 처음에 잠깐 만났던 루트 제로 오브젝트가 등장합니다.
이 객체는 완전히 새로운 원점 좌표계를 제공합니다. 그리고 전체 IK 체인이 고려되도록 하려면 루트 널 객체에 종속시키기만 하면 됩니다.
하지만 먼저 오브젝트 메뉴를 통해 새로운 널 오브젝트를 생성합니다. 헤드 조인트가 널 위치에 있기 때문에 새 널 객체의 위치를 변경할 필요도 없습니다.
이 새 널 오브젝트의 이름을 루트로 변경하고 오브젝트 관리자를 통해 전체 조인트 계층구조를 할당합니다.
이제 재생 버튼을 누르고 루트 널 오브젝트를 회전하여 외계인을 모든 방향으로 회전하고 애니메이션을 적용할 수 있습니다. 안테나는 중력과 우리의 움직임에 의해 동적으로 제어됩니다.
따라서 루트 0 오브젝트는 조인트 계층구조를 애니메이션할 때 실용적인 도우미입니다. 관절 구조를 만들 때 적어도 주 관절(일반적으로 엉덩이)에는 이러한 상위 0 오브젝트가 할당됩니다. 이 작업을 자동으로 수행하려면 조인트 도구의 설정 대화 상자에서 루트 널 오브젝트 옵션을 활성화하기만 하면 됩니다.