SSUNBORI Archive

3d Generalist를 꿈꾸는 Modeler ssunbori 입니다. 생성형 ai, 모델링 툴, 게임 엔진을 주로 공부하고 있습니다.

Artstation 자세히보기

BLENDER/STUDY

[Blender] 게임 엔진을 위한 리깅 스터디① - 개요, 기본 리깅

ssunbori 2023. 8. 4. 14:00

목차

    개요

    오늘은 Blender에서 Game Engine으로 내보낼 수 있는 Rig의 종류에 대해 공부하고, Unity, Unreal Engine 등 게임 엔진에서 사용하기 위한 Rig를 생성하는 방법을 정리해보려고 합니다. 해당 글은 아래 튜토리얼을 참고해 작성했습니다.


    Rig의 구성 요소

    우리가 블렌더를 이용해 캐릭터를 제작, 리깅할 때 주로 3가지의 요소를 사용한다. 간단하게 설명하자면

    1. 캐릭터 메쉬 : 캐릭터의 몸통. 여기에 뼈(Deform Bones)를 붙여서 캐릭터를 움직인다.
    2. Deform Bones : 캐릭터의 뼈대. 우리가 논리적으로 알고 있는 뼈 구조에 맞게 계층화되어 있다.
      예를 들면 종아리 뼈는 허벅지 뼈에 붙어있는 것처럼, Deform Bone에서도 종아리 뼈가 허벅지 뼈에 종속되어 있다.
    3. Control Rig : 위의 Deform Bone을 일일이 움직이지 않고 한꺼번에 움직일 수 있도록 해준다.
      예를 들어 손 쪽 Control Rig를 움직이면 팔 전체가 움직인다.

    게임 엔진에 불러올 수 있는 오브젝트

    1. 캐릭터 메쉬
    2. Deform Bones(과 그것의 계층)
      = Game Rig, Export Rig, Deform Rig
      컨트롤 리그(Control Rig)도 불러올 수는 있지만 내보내면 기존 기능을 잃어버리고 armature의 hierarchy를 어지럽히므로 권장하지 X
    3. Vertex Weight
      (메쉬의 각 점 하나하나가 얼마만큼 뼈의 영향을 받을 것인지 결정.)
    4. Shape Keys
      (엔진과 내보내기 형식에 따라 달라짐. 가능할 수도 있고, 아닐 수도 있다)

    Game-Ready 리그를 만드는 것

    우리가 게임으로 넘겨야 하는 것은 캐릭터 메쉬(Character), 게임 리그(Game Rig), 컨트롤 리그(Control Rig) 중 메쉬와 게임 리그

    Character/ Game Rig / Control Rig

    캐릭터 → (버텍스 웨이트) → 게임 리그 로 연결되어 있다.

    즉, 버텍스 웨이트 값을 기준으로 게임리그의 움직임을 따라간다고 보면 됨

    게임 리그는 컨트롤 리그에 Constraint 형태로 연결되어 있기 때문에, 서로의 Hierarchy에 영향을 주지 않고 조작할 수 있음

    그래서 이 튜토리얼에서는 Game Rig와  Control Rig, 두 가지 리그를 같이 사용해서 Game-Ready Rig로 내보낼 예정.

    [출처] CGDive Game-ready Rigs 튜토리얼 (https://youtu.be/hdGkKbtQxE0)

    1. Armature 생성

    [출처] CGDive Game-ready Rigs 튜토리얼 (https://youtu.be/hdGkKbtQxE0)

    원하는 캐릭터 메쉬를 불러온 후, Shift+A > Armature > Single Bone을 선택해 뼈를 만들어준다.

    그 다음, 캐릭터의 뼈대 위치에 맞게 뼈를 생성해 줌.

    (이 때, 좌/우로 분리되는 뼈들은 한쪽만 만들어주고, parenting 후 뼈 이름 마지막에 .L 혹은 .R 등을 붙여준 뒤 Symmetrize해주면 된다.)

    **자세한 리깅 과정은 영상 6~10분 참고

    2. Armature Parenting

    그 다음, 생성한 뼈들을 Parenting 시켜주는 작업이 필요하다.

    • 위쪽 다리(허벅지 뼈), 맨 아래 척추뼈, 꼬리뼈 선택 후 맨 아래 척추뼈에 Parent
    • 어깨뼈는 척추 맨 윗뼈(Chest)에 Parent
    • 귀 뼈는 머리뼈에 Parent

    [출처] CGDive Game-ready Rig

    3. 각 뼈 이름 바꾸기

    Symmetrize를 해주려면 각 뼈의 부위별로 이름을 알맞게 지어주고, 이름 맨 끝에 .R/.r 혹은 .L/.l을 붙여 줘야 한다.

    이름을 모두 바꾸었으면 전체 선택 후 우클릭 > Symmetrize 클릭하면 대칭으로 만들어 줄 수 있다.

    4. Mesh를 Armature에 Parent 시키기

    이제 캐릭터 메쉬를 Armature에 Parent 시킨다.

    이때, 메쉬의 각 점이 얼마만큼 뼈의 영향을 받을지 결정하는 vertex weight 값이 필요한데, 우선 parent with automaic weight 옵션을 선택해준다.

    메쉬 선택 > Shift 누른 채 Armature 선택 > Ctrl+P 누르고 With Automatic Weights 선택

    나중에 좀 더 디테일하게 Weight Paint에 대해 공부하고 싶다면, 해당 채널의 다른 영상 참고