신뢰할 수 있는 ISO 인증 렌더팜으로서 저희 가라지팜은 3D 아티스트가 마감일을 준수할 수 있도록 지원하기 위해 최선을 다하고 있으며, 속도와 최적화의 중요성을 잘 이해하고 있습니다. 더 빠르게 수행할 수 있는 프로덕션 파이프라인의 모든 부분은 프로젝트를 더 빨리 렌더링할 수 있도록 적극 지원합니다.
드라이버는 처음에는 초보자들에게 어렵게 느껴질 수 있지만 애니메이션 프로젝트에서 매우 유용할 수 있는 모든 주요 3D DCC에 존재하는 기능 중 하나입니다. 이 글에서는 이 기능의 기본 개념과 드라이버가 선호하는 3D 소프트웨어를 사용해 보도록 권장할 수 있는 실제 드라이버의 몇가지 예를 살펴보겠습니다.
드라이버는 서로 다른 속성을 연결하여 애니메이션을 더 쉽고 효율적으로 만드는 편리한 도구입니다. 리그와 마찬가지로 3D 창작물을 생동감 있게 구현하는 데 도움이 되는 꼭두각시 줄과 같습니다. 그 외에도 드라이버는 키프레임아 가능한 모든 항목을 실질적으로 변경하는 데 사용될 수 있습니다.
아직 사용하지 않았다면 툴킷의 일부 도구나 플러그인에서 드라이버를 접한 적이 있을 것입니다. 드라이버는 오브젝트 및/또는 속성 간에 연결을 생성하여 하나가 다른 항목의 변경으로 구동되기 때문에 드라이버라고 불립니다. 몇 가지 사용 사례를 살펴보겠습니다. 다음 시연은 Blender에서 진행되지만 이 원리는 보편적이며 Cinema 4D, 3ds Max, Maya 또는 기타 소프트웨어에 적용될 수 있습니다!
혼합 쉐이프, 쉐이프 키, 또는 여러가지로 명명될 수도 있는 것은 메쉬를 구성하는 정점의 좌표에 대한 저장된 정보를 참조합니다. 이러한 정보를 통해 모델의 형태를 조정하고 원본 위에 "레이어"로 저장할 수 있습니다. 이렇게 저장된 정보를 사용하여 시작 양식과 조정 내용을 보간하여 두 가지를 효과적으로 혼합할 수 있습니다. 이것은 일반적으로 캐릭터의 표정 변화를 빠르게 애니메이션화 하는 데 사용됩니다. 다음 흉상을 예를 들어보겠습니다:
좌측: 중립적인 표정의 흉상 조각 우측: 눈을 감은 흉상 키. 가운데: 둘 사이의 혼합. 하단의 "깜박임(blink)"라는 강조 표시된 모양 키의 수치에 주목하십시오. 이것은 모양 키 "레이어"가 왼쪽의 0에서 0.5까지 그리고 마지막으로 오른쪽의 1까지, 원본에 영향을 미치는 정도를 결정합니다.
만약 우리가 이 캐릭터를 위해 더 많은 모양을 계속 만든다면, 결국 얼굴이 다른 방식으로 움직이게 하기 위해 거쳐야 할 모양 키의 긴 목록을 갖게 될 것입니다. 이 목적을 위해 뷰포트에서 바로 이동할 수 있는 컨트롤러가 있다면 시간이 덜 걸릴 것입니다. 바로 드라이버가 유용한 곳이 여기입니다!
Blender에서 드라이버를 추가하고 싶은 속성을 마우스 오른쪽 단추로 클릭하면 이 경우 "깜박임(blink)" 모양 키가 됩니다. 그런 다음 아래와 같이 드라이버 속성 탭에서 드라이버를 연결할 대상을 선택할 수 있습니다.
그 뒤에 "blink!"라고 쓰인 텍스트 오브젝트를 만들었으며 이 오브젝트는 모델이 위로 이동할 때 쉐이프 키와 혼합되고 텍스트를 아래로 다시 이동할 때 원래 상태로 돌아갑니다.
흉상 오른쪽 패널은 드라이버를 설정하는 방법입니다. 여기서 0.0에 추가할 변수 값을 할당하는 수학 표현식 var + 0.0을 사용하는 것을 볼 수 있습니다. 문제의 변수는 텍스트 오브젝트이고 드라이버가 텍스트 오브젝트에서 가져오는 값 유형은 3D 공간의 위쪽 축에 있는 위치입니다.
Blender에서는 "Z" 축을 사용하지만 3ds Max나 Maya와 같은 소프트웨어에서는 "Y" 축이 수직 방향을 나타냅니다.
텍스트 오브젝트가 시작 Z 위치(0)에서 위로 이동하면 Z 위치의 값이 올라가며 최대 1에서 잘라내는 모양 키(Shape Key) 값에 추가됩니다. Z 위치 값이 음의 정수가 되므로 텍스트 오브젝트는 0 위치 아래로 내려갑니다. 이는 실제로 최소값인 0.0으로 잘릴 때까지 모양 키 값을 뺍니다.
제작 준비가 완료 된 캐릭터에서 모양 키는 더 넓고 복잡한 범위의 얼굴 표정을 위해 일반적으로 얼굴 리그의 뼈에 의해 구동됩니다. 이것은 드라이버의 즉각적인 이점 중 하나를 보여주는 간단한 예시일 뿐입니다: 여러분은 드라이버를 사용하여 오브젝트의 변환 값이 다른 파라미터들에 직접적인 영향을 미치도록 만들 수 있습니다!
아래 예시에서는 "속도" 파라미터에 드라이버가 할당된 변형 modifier가 있는 평면이 있습니다. 이 파라미터는 시간이 지남에 따라 재생되는 잔물결 효과를 만들고 구 Z 위치가 평면과 일치하여 0에 도달할 때 구에 의해 트리거 됩니다.
여기에서는 조건문을 표현식으로 사용합니다: .5 var < 0 other 0
일반적으로 이것은 드라이버에게 다음과 같이 알려줍니다. "구인 변수의 Z 위치 값이 0보다 작으면 modifier의 속도 값은 .5가 됩니다. 그렇지 않으면 0을 유지해야 합니다."
이것은 향후 변형 평면의 애니메이션을 수정할 필요 없이 구의 애니메이션을 쉽게 조정할 수 있게 해줍니다. 이와 같은 조건식은 충격이나 기타 유사한 효과로 부서지는 벽을 트리거 하는 데 유용할 수 있습니다.
이 마지막 예시에서는 볼류매트릭 셰이더에서 텍스처의 "시드(seed)" 값을 구동하는 표현식만 사용하여 키프레임 없이 소용돌이치는 안개를 생성합니다:
저희는 sin(frame*10)이라는 표현식을 사용하여 값이 -1에서 1 사이의 범위에서 진동하도록 하는데, 이는 일반 사인파 속도보다 10배 빠른 속도입니다. 이 경우 값을 앞뒤로 이동하면 왼쪽 뷰포트 렌더 미리 보기에서 보이는 소용돌이 효과를 주기 때문에 Sin 함수를 사용했습니다.
이 표현을 좀 더 자세히 정리하면 다음과 같습니다:
Sin: 매끄럽고 주기적인 진동을 설명하는 수학적 함수입니다. 자연스럽게 보이는 움직임을 만들기 위해 애니메이션에서 사용됩니다.
frame: 이것은 애니메이션 타임라인의 현재 프레임 번호를 나타냅니다. 애니메이션이 재생됨에 따라 프레임이 증가하고 사인 함수가 이 새로운 값을 사용하여 진동의 다음 지점을 계산합니다.
*10: 이것은 현재의 프레임 번호에 10을 곱한 것이며 진동 속도를 높이는 방법입니다. 그것이 없다면 사인 함수는 프레임 번호를 직접 사용하여 결과적으로 웨이브 속도가 느려질 것 입니다.
드라이버가 포함된 프로젝트를 렌더팜에 업로드할 때 모든 작업이 원활하게 실행되도록 하기 위한 몇 가지 중요한 고려 사항은 다음과 같습니다:
호환성: 렌더팜에서 사용 중인 특정 3D 소프트웨어와 버전, 드라이버와 관련된 플러그인이나 사용자 지정 스크립트를 지원하는지 확인해야 합니다.
패키지: 모든 어셋, 텍스처 및 링크된 파일이 프로젝트 파일에 포함되어 있는지 확인하거나 선택한 렌더팜 서비스가 이 작업을 수행할 수 있는지 확인합니다. (팁: 가라지팜에서도 물론 가능합니다)
드라이버 기능: 모든 드라이버와 수식이 렌더팜 환경에서 올바르게 작동하는지 확인합니다. 이는 프로젝트의 작은 부분을 먼저 테스트하는 것이 포함될 수 있습니다.
스크립트 언어: 드라이버가 외부 스크립트 언어(예: Blender용 Python)를 사용하는 경우 렌더팜에 필요한 인터프리터가 설치되어 있는지 확인합니다.
설명서: 표준이 아닐 수도 있는 사용자 지정 설정이나 복잡한 드라이버 구성에 대한 명확한 설명서를 제공합니다.
테스트: 드라이버가 예상대로 작동하는지 확인하기 위해 프로젝트의 작은 부분을 사용하여 렌더팜에서 테스트 렌더링을 수행하는 것이 가장 좋습니다.
기술 지원: 렌더링 프로세스에서 드라이버에 문제가 발생할 경우에 대비해 렌더팜에서 고객 지원을 제공하는지 미리 확인합니다.
약간의 실험과 수정을 통해 워크플로우에서 드라이버를 사용하면 특정 애니메이션 작업을 더 쉽게 만들 수 있을 뿐만 아니라 프로젝트에 새로운 가능성을 열 수 있습니다. Blender용 지오메트리 노드 또는 Cinema 4D의 Mograph와 같은 다른 절차적 도구와 함께 사용하면 훨씬 더 깊은 제어 수준을 제공합니다. 이 글이 여러분에게 향후 프로젝트에서 드라이버를 사용하여 작업하는 데 최소한의 영감을 주기를 바라며 언제나 즐거운 렌더링 되시 길 바랍니다!