[게임수학] 17. 캐릭터: 게임에 생기를 불어넣는 기술

    17.1 스켈레탈 애니메이션

    스켈레탈 애니메이션(Skeletal animation) : 가상의 뼈대인 본(Bone)을 캐릭터 메시에 심은 후, 해당 본의 움직임에 맞춰 캐릭터 메시가 변형되는 방식을 사용

    본을 구성하는 3가지 정보

    • 이름 : 본을 식별할 수 있는 고유한 이름
    • 트랜스폼 : 캐릭터 메시에 본이 심어질 때 본의 배치 정보 (현재의 정보)
    • 바인드포즈(Bindpose) : 최초의 배치 정보, 향후 본이 움직일 때 상대적인 변화량을 파악하는데 사용
    • 리깅(Rigging) : 메시에 본 정보를 추가한 후 본의 움직임에 따라 메시의 정점이 움직이도록 본과 정점을 연결하는 작업
    • 웨이트(Weight) : 한 정점에 영향을 주는 본들의 연결 정보
    • 게임 엔진은 시간에 따라 값의 변화를 저장한 키프레임(Keyframe) 데이터를 사용한다.

    17-1 실습

    스켈레탈 애니메이션의 구현

    17.2 트랜스폼 계층 구조

    부모 트랜스폼과 자식 트랜스폼이 가져야 하는 규칙

    • 부모가 움직이면 부모의 움직임만큼 자식도 움직인다.
    • 자식이 움직여도 부모는 영향을 받지 않는다.
    • 하나의 부모는 여러 자식을 가질 수 있다.
    • 자식은 하나의 부모만 가질 수 있다.

    루트 트랜스폼 (Root Transform) : 계층 구조에서 부모가 없는 최상단 트랜스폼
    월드 트랜스폼 (World transform) : 계층 구조와 상관없이 자식이 속한 공간에서의 트랜스폼. 절대 트랜스폼(Absolute transform)
    로컬 트랜스폼 (Local transform) : 부모로 부터 상대적인 트랜스폼. 상대 트랜스폼(Relative transform)

    트랜스폼 계층 구조의 변환

    부모 - 나 - 자식 의 구조에서 사례별 정리

    • 부모의 월드 트랜스폼이 변경된 경우
      • 부모의 월드 트랜스폼, 나의 월드 트랜스폼, 자식의 월드 트랜스폼 순서대로 계산
      • 나의 로컬 트랜스폼과 자식의 로컬 트랜스폼은 변경되지 않음
    • 나의 로컬 트랜스폼이 변경된 경우
      • 나의 로컬 트랜스폼, 나의 원월드 트랜스폼, 자식의 월드 트랜스폼 순서대로 계산
      • 부모의 월드 트랜스폼과 자식의 로컬 트랜스폼은 변경되지 않음
    • 나의 월드 트랜스폼이 변경된 경우
      • 나의 월드 트랜스폼, 나의 로컬 트랜스폼, 자식의 월드 트랜스폼 순서대로 계산
      • 부모의 월드 트랜스폼과 자식의 로컬 트랜스폼은 변경되지 않음
    • 기존에 설정된 부모를 버리고 새로운 부모로 편입하는 경우
      • 나의 로컬 트랜스폼을 월드 트랜스 폼으로 변경하고 새로운 부모로 부터의 로컬 트랜스폼을 계산

    로컬 트랜스폼으로부터 월드 트랜스폼의 계산

    부모의 월드 트랜스폼과 내 로컬 트랜스폼을 사용해 내 월드 트랜스폼을 구하는 방법

    크기
    S'_world = s-> * s'->

    회전
    q'_world = q' · q

    이동
    M_world = M_parent · M_local
    t'_world = (q · t'->) * s-> + t

    월드 트랜스폼으로부터 로컬 트랜스폼의 계산

    부모의 월드 트랜스폼 정보와 나의 월드 트랜스폼 정보를 비교해 나의 로컬 트랜스폼을 계산하는 방법

    크기
    S^-1-> = (1/s_x, 1/s_y, 1/s_z)

    회전
    q*

    이동
    t^-1-> = (q* · t->) * s^-1->

    17-2 실습

    계층 구조를 활용한 태양계 시스템

    캐릭터 메시와 애니메이션

    캐릭터를 구성하는 본의 계층 구조

    • Root
      • Plevis
        • Spine
          • LeftArm
          • RightArm
          • Neck
        • LeftLeg
        • RightLeg

    17-3 실습

    캐릭터 애니메이션의 구현

    17.4 정리

    • 스켈레탈 애니메이션의 구현 원리
    • 트랜스폼의 계층구조
    반응형

    댓글

    Designed by JB FACTORY