Artoke

로봇 팔은 어떻게 움직일까? 포워드 키네매틱스와 인버스 키네매틱스

로봇 팔은 어떻게 움직일까? 포워드 키네매틱스와 인버스 키네매틱스

여러분, 팔을 뻗어서 책상 위의 연필을 잡아 보세요. 아주 쉽죠? 그런데 게임 속 캐릭터나 로봇에게는 이게 정말 어려운 숙제예요. 오늘은 컴퓨터가 팔과 다리를 움직이는 두 가지 방법, 포워드 키네매틱스(FK)인버스 키네매틱스(IK)를 알아볼 거예요.

1. 관절이 이어진 사슬

사람의 팔을 생각해 봐요. 어깨가 있고, 팔꿈치가 있고, 손목이 있어요. 그리고 맨 끝에 손이 있죠. 이렇게 관절이 줄줄이 이어진 모양을 키네매틱 체인, 우리말로 "관절 사슬"이라고 불러요.

게임 캐릭터의 뼈대(리그)도 똑같아요. 어깨 뼈에 팔뚝 뼈가 붙고, 팔뚝 뼈에 손 뼈가 붙어요. 앞 관절이 움직이면 뒤에 붙은 뼈들이 다 같이 따라 움직여요. 마치 기차처럼요. 맨 앞 기관차가 방향을 틀면 뒤에 달린 칸들이 전부 따라가죠?

2. 포워드 키네매틱스: 앞에서부터 차례대로

포워드(Forward)는 "앞으로"라는 뜻이에요. 포워드 키네매틱스는 이렇게 물어봐요.

"어깨를 30도 돌리고, 팔꿈치를 45도 굽히면… 손은 어디에 가 있을까?"

즉, 관절의 각도를 먼저 정하고, 그 결과로 손이 어디에 도착하는지 계산하는 방법이에요. 계산 방향이 어깨 → 팔꿈치 → 손, 이렇게 앞으로 쭉 흘러가서 "포워드"예요.

비유하자면 요리 레시피와 같아요. "밀가루 두 컵, 설탕 한 컵, 오븐 30분" 이렇게 순서대로 따라 하면 어떤 빵이 나올지 정해져요. 재료와 순서(관절 각도)를 넣으면 결과(손의 위치)가 하나로 딱 나오죠. 그래서 계산이 쉽고 빨라요. 삼각형 계산(삼각법)만 몇 번 하면 끝이에요.

3. 인버스 키네매틱스: 목표에서 거꾸로

인버스(Inverse)는 "거꾸로"라는 뜻이에요. 인버스 키네매틱스는 반대로 물어봐요.

"손을 저기 컵 위에 두고 싶어. 그러려면 어깨와 팔꿈치를 몇 도씩 돌려야 하지?"

즉, 손이 가야 할 목표 지점을 먼저 정하고, 거기에 맞는 관절 각도를 거꾸로 찾아내는 방법이에요.

이건 훨씬 어려운 문제예요. 왜 그럴까요? 직접 해 보면 알아요. 손끝을 코에 대 보세요. 팔꿈치를 위로 올려도 되고, 옆으로 벌려도 되고, 아래로 내려도 돼요. 손끝은 그대로 코에 있는데 팔의 모양은 여러 가지죠? 이렇게 답이 하나가 아니라 여러 개일 수 있어요. 반대로 너무 멀리 있는 물건은 팔이 안 닿아서 답이 아예 없을 수도 있고요. 그래서 컴퓨터는 여러 답 중에 가장 자연스러운 것을 골라야 하고, 계산도 FK보다 훨씬 복잡해져요.

로봇 팔은 어떻게 움직일까? 포워드 키네매틱스와 인버스 키네매틱스 도식

4. 언제 무엇을 쓸까?

둘 중 하나만 좋은 게 아니에요. 상황에 따라 골라 써요.

  • FK가 좋은 경우: 팔을 크게 휘두르는 동작처럼, 관절 하나하나의 움직임 자체가 중요할 때예요. 애니메이터가 "어깨는 이만큼, 팔꿈치는 저만큼" 하고 직접 정해 주면 돼요. 걷기에서 팔을 흔드는 동작이 좋은 예예요.
  • IK가 좋은 경우: 손이나 발이 정확한 곳에 닿아야 할 때예요. 사다리를 잡는 손, 계단을 밟는 발, 문 손잡이를 잡는 손처럼요. "여기에 닿아!"라고 목표만 주면 컴퓨터가 관절 각도를 알아서 찾아 줘요.

로봇 공학에서도 똑같아요. 공장 로봇 팔에게 "부품을 이 자리에 놓아"라고 시키는 것이 바로 IK 문제를 푸는 일이에요.

5. 언리얼 엔진에서는 어떻게 쓸까?

언리얼 엔진으로 게임을 만들 때는 애님 블루프린트컨트롤 릭이라는 도구에서 FK와 IK를 만나게 돼요.

애님 블루프린트는 캐릭터의 움직임을 조립하는 상자예요. 그 안에는 "Two Bone IK(투 본 IK)"라는 부품이 있어요. 뼈 두 개짜리 사슬, 그러니까 팔(팔뚝+아래팔)이나 다리(허벅지+종아리)에 딱 맞는 IK 계산기예요. 목표 지점만 알려 주면 팔꿈치와 어깨 각도를 스스로 구해요. 캐릭터의 발이 울퉁불퉁한 언덕 바닥에 착 붙게 만드는 "풋 IK"가 대표적인 사용법이에요.

컨트롤 릭은 캐릭터의 뼈대를 언리얼 안에서 직접 조종하는 리모컨 세트예요. 여기에는 "Basic IK"나 "FABRIK(패브릭)" 같은 IK 부품이 들어 있어요. 애니메이터는 손 컨트롤 하나만 끌어당기면 돼요. 그러면 팔 전체가 자연스럽게 따라 움직이죠. 반대로 관절을 하나씩 세밀하게 다듬고 싶을 때는 FK 컨트롤로 바꿔서 작업해요. 그래서 좋은 리그는 FK와 IK를 스위치처럼 바꿔 가며 쓸 수 있게 만들어요.

6. 오늘 배운 것 정리

  • 관절이 줄줄이 이어진 것을 관절 사슬(키네매틱 체인)이라고 해요.
  • FK(포워드 키네매틱스): 관절 각도를 정하면 손의 위치가 나와요. 계산이 쉽고 답이 하나예요.
  • IK(인버스 키네매틱스): 손의 목표 위치를 정하면 관절 각도를 거꾸로 찾아요. 답이 여러 개거나 없을 수도 있어서 계산이 훨씬 복잡해요.
  • 큰 동작은 FK, 정확히 닿아야 하는 동작은 IK가 어울려요.
  • 언리얼에서는 애님 블루프린트의 Two Bone IK, 컨트롤 릭의 Basic IK와 FABRIK으로 IK를 쓸 수 있어요.

다음에 게임 캐릭터가 계단을 밟거나 벽을 짚는 장면을 보면 떠올려 보세요. "아, 지금 컴퓨터가 IK 문제를 풀고 있구나!" 하고요.

출처

광고

리깅 파이프라인 자동화 도구

반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.

리깅 도구 보기