브리프유 브리프유 로그인
자청의 유튜브 추출기

유튜브 영상의 자막과 AI요약을 추출해보세요

AI 채팅

BETA

Unity 6 상체 애니메이션: 런+활쏘기 동시 구현! 꿀팁 대방출!

게시일: 작성자: 자청의 유튜브 추출기

애니메이션 컨트롤러 설정 가이드 (중학생 눈높이 설명)

이 튜토리얼에서는 애니메이션 컨트롤러를 설정하는 방법을 배울 거야. 이걸 배우고 나면 캐릭터가 움직이면서 활을 겨누는 것처럼 여러 가지 애니메이션을 자연스럽게 연결할 수 있게 될 거야.

1. 준비물

  • 유니티 (Unity): 게임을 만드는 프로그램
  • Synty Base Locomotion Animation 팩: 캐릭터가 걷고, 뛰고, 앉는 등 기본적인 움직임을 담당하는 애니메이션 팩
  • Bow Combat Animation 팩: 활을 쏘는 애니메이션 팩
  • 새로운 3D URP 프로젝트: 유니티에서 새로 만든 빈 프로젝트

2. 캐릭터 불러오기

  1. 캐릭터와 타겟 배치:

    • Animation Base locomotion 폴더 > samples > prefabs 폴더에서 Target을 장면(Scene)에 끌어다 놓자. 이건 나중에 캐릭터가 바라볼 곳이야.
    • 같은 폴더에서 Psychic 캐릭터를 장면으로 끌어다 놓자. (폴리곤 캐릭터도 있지만, 여기서는 사이킥 캐릭터로 진행할 거야.)
  2. 캐릭터 설정 변경:

    • 계층(Hierarchy) 창에서 Player 게임 오브젝트를 선택하고 펼쳐서 Psychic Synty Character를 선택해.
    • 인스펙터(Inspector) 창에서 Always Strafe를 꺼줘. 이렇게 하면 카메라를 향해 걸어갈 수 있어서 캐릭터를 더 잘 볼 수 있어.
  3. 카메라 삭제:

    • 계층 창에서 Main Camera를 삭제해. 이제 캐릭터가 카메라보다 우선순위를 가지게 돼서 플레이 버튼을 눌렀을 때 캐릭터 움직임을 바로 볼 수 있어.
  4. 플레이 테스트:

    • 플레이 버튼을 누르면 캐릭터가 움직이고, 앉고, 뛰는 등 기본적인 움직임을 할 수 있을 거야. 마우스 휠 버튼을 누르면 타겟을 바라보게 돼.

3. 활 애니메이션 레이어 만들기

이제 캐릭터가 활을 쏘는 애니메이션을 추가해 볼 거야.

  1. 애니메이션 컨트롤러 열기:

    • 장면에서 Psychic Synty Character를 선택하고, 인스펙터 창에서 AC Controller를 클릭하면 애니메이션 컨트롤러가 열릴 거야.
  2. 새로운 레이어 추가:

    • 애니메이터(Animator) 창 왼쪽 상단에 있는 Layers 탭으로 가자.
    • + 버튼을 눌러서 새 레이어를 만들고 이름을 Bow aim이라고 지어줘. (이름은 나중에 쓸 스크립트와 똑같아야 해!)
  3. 활 애니메이션 넣기:

    • Animation bow Combat 폴더 > animations > Psychic > Neutral Standing > Idle 폴더로 가서 활을 들고 있는 Idle 애니메이션을 찾아서 Bow aim 레이어로 끌어다 놓자.
    • 이 애니메이션이 기본으로 재생되도록 설정돼.
  4. 레이어 활성화:

    • Bow aim 레이어 옆에 있는 톱니바퀴 아이콘을 클릭해서 설정으로 들어가.
    • Weight0에서 1로 바꿔줘. 이렇게 하면 이 레이어가 다른 모든 애니메이션을 덮어쓰게 돼.
  5. 플레이 테스트:

    • 플레이 버튼을 누르면 캐릭터가 활 애니메이션만 재생하면서 이상하게 움직일 거야. 이건 모든 애니메이션을 덮어쓰기 때문이야.

4. 상체만 애니메이션 적용하기 (Avatar Mask)

활 애니메이션을 캐릭터의 상체에만 적용해서 하체는 움직이고 상체는 활을 쏘는 것처럼 보이게 할 거야.

  1. Avatar Mask 만들기:

    • 애셋 브라우저(Asset Browser)에서 마우스 오른쪽 버튼을 누르고 Create > Animation > Avatar Mask를 선택해.
    • 이름을 mask_upper_body라고 지어줘.
  2. 마스크 설정:

    • mask_upper_body를 선택하면 오른쪽에 캐릭터가 보일 거야.
    • 다리(Legs), 발(Feet IK), 그리고 맨 아래 동그라미(Root)를 클릭해서 비활성화시켜. (초록색이 아닌 회색으로 만들어)
    • 이제 상체만 초록색으로 보일 거야.
  3. 마스크 적용:

    • 다시 애니메이터 창에서 Bow aim 레이어의 톱니바퀴 아이콘을 클릭해.
    • Mask 슬롯에 방금 만든 mask_upper_body를 끌어다 놓자.
  4. 플레이 테스트:

    • 플레이 버튼을 누르면 캐릭터의 하체는 움직이고 상체는 활 애니메이션을 재생하는 걸 볼 수 있을 거야.

5. 스크립트로 애니메이션 제어하기

이제 실제로 활을 겨누고 쏘는 동작을 제어할 스크립트를 추가할 거야.

  1. 스크립트 생성 및 복사:

    • Animation Base locomotion 폴더 > samples > scripts 폴더로 가.
    • 마우스 오른쪽 버튼을 누르고 Create > Scripting > New Mono Behavior Script를 선택해.
    • 스크립트 이름을 Bow aim layer controller라고 지어줘.
    • 스크립트를 열어서 제공된 코드를 전부 복사해서 붙여넣어. (스크립트 내용은 설명란에 있어.)
    • 이 스크립트는 오른쪽 클릭으로 겨누고, 왼쪽 클릭으로 쏘는 기능을 추가해 줄 거야.
  2. 스크립트 컴포넌트 추가:

    • 계층 창에서 Psychic Synty Character를 선택해.
    • Add Component 버튼을 누르고 Bow aim layer controller 스크립트를 추가해.
  3. 스크립트 설정:

    • 스크립트에 필요한 정보들을 채워줘야 해.
      • Input Reader: 캐릭터의 Input Reader를 끌어다 놓아.
      • Animator: 캐릭터의 Animator 컴포넌트를 끌어다 놓아.
      • Camera Transform: Main Camera를 끌어다 놓아.
  4. 애니메이션 컨트롤러 파라미터 추가:

    • 애니메이터 창에서 Parameters 탭으로 가.
    • + 버튼을 눌러서 다음 파라미터들을 추가해줘.
      • Boolean: is aiming
      • Boolean: is drawing
      • Trigger: fire
  5. 활 애니메이션 추가 (Equip):

    • Animation bow Combat 폴더 > animations > Psychic > Neutral Standing > Idle 폴더에서 활을 장착하는 Bow equip 애니메이션을 찾아서 애니메이터의 Bow aim 레이어에 추가하고 equip이라고 이름을 지어줘.
    • equip 애니메이션에서 Idle 애니메이션으로 넘어가는 전환(Transition)을 만들고, Exit Time을 켜줘.
  6. 활 장착하기:

    • 장면에서 다른 캐릭터가 들고 있는 활을 복사해서 (Ctrl+C) 캐릭터의 Prop_L 뼈에 붙여넣기 (Ctrl+V) 해.
    • 붙여넣은 활의 위치와 회전을 모두 0으로 맞춰줘.
    • Psychic Synty CharacterBow aim layer controller 스크립트에서 Equipment Visuals에 방금 붙여넣은 활을 끌어다 놓아. Blend Equip Speed10으로 바꿔주면 활이 더 부드럽게 나타날 거야.
  7. 플레이 테스트:

    • 플레이 버튼을 누르고 F 키를 누르면 활이 나타나고 equip 애니메이션이 재생된 후 Idle 애니메이션으로 전환될 거야.

6. 활 겨누고 쏘는 애니메이션 설정

이제 실제로 활을 겨누고 쏘는 애니메이션들을 연결해 보자.

  1. 애니메이션 추가:

    • Animation bow Combat 폴더 > Animations > Psychic > Neutral Standing > Aim 폴더에서 다음 애니메이션들을 Bow aim 레이어에 추가하고 이름을 지어줘.
      • Aiming Undrawn -> aim idle
      • Aiming to Drawn -> draw
      • Aiming Drawn -> drawn
      • Aiming Drawn Shaking -> shake
  2. 애니메이션 전환 설정:

    • aim idle로 전환:
      • bow idle에서 aim idle로 전환할 때 is aimingtrue일 때 (오른쪽 클릭 시)
      • has Exit Time을 꺼줘.
    • bow idle로 복귀:
      • aim idle에서 bow idle로 전환할 때 is aimingfalse일 때 (오른쪽 클릭 떼기)
      • has Exit Time을 꺼줘.
    • draw로 전환:
      • aim idle에서 draw로 전환할 때 is drawingtrue일 때 (왼쪽 클릭 시)
      • has Exit Time을 꺼줘.
    • drawn으로 전환:
      • draw에서 drawn으로 전환할 때 has Exit Time을 켜줘. (draw 애니메이션이 끝나야 다음으로 넘어감)
    • shake로 전환:
      • drawn에서 shake로 전환할 때 has Exit Time을 켜줘.
    • bow idle로 복귀 (임시):
      • shake에서 bow idle로 전환할 때 is drawingfalse일 때
      • has Exit Time을 꺼줘.
  3. 카메라 설정 변경:

    • Player > PF_Synty Camera에서 Camera Horizontal Offset0.3으로, Hide Cursor를 체크해줘.
  4. 플레이 테스트:

    • 플레이 버튼을 누르고 F 키로 활을 장착하고, 오른쪽 클릭으로 겨누고, 왼쪽 클릭을 누르고 있으면 활을 당기는 애니메이션이 재생될 거야.

7. 활 쏘는 애니메이션 추가

이제 실제로 활을 쏘는 애니메이션을 연결해 보자.

  1. 쏘는 애니메이션 추가:

    • Animation bow Combat 폴더 > animations > Shoot 폴더에서 Bow Stand shoot to aiming 애니메이션을 찾아서 Bow aim 레이어에 추가하고 shoot이라고 이름을 지어줘.
  2. 애니메이션 전환 설정:

    • shoot으로 전환:
      • shake에서 shoot으로 전환할 때 fire 트리거가 발생하면
      • has Exit Time을 꺼줘.
      • drawn에서도 shoot으로 전환할 수 있도록 설정해줘. (이건 선택 사항이지만, 더 빠르게 쏠 수 있게 해줘.)
    • aim idle로 복귀:
      • shoot에서 aim idle로 전환할 때 has Exit Time을 켜줘. (shoot 애니메이션이 끝나야 다음으로 넘어감)
  3. 플레이 테스트:

    • 플레이 버튼을 누르고 F 키로 활을 장착하고, 오른쪽 클릭으로 겨눈 상태에서 왼쪽 클릭을 누르고 있다가 떼면 활을 쏘는 애니메이션이 재생될 거야.

8. 캐릭터 교체 및 프리팹 만들기

이제 우리가 만든 캐릭터를 다른 캐릭터로 바꾸고, 이걸 프리팹으로 만들어 재사용하는 방법을 알아보자.

  1. 캐릭터 교체:

    • Synty Psychic Character Creator 툴로 만든 엘프 궁수 캐릭터를 장면으로 끌어다 놓자.
    • 기존 캐릭터를 삭제하고, 새로 가져온 캐릭터의 메쉬와 스켈레톤을 기존 캐릭터의 위치에 맞게 옮겨줘.
    • 활이 기존 캐릭터에 붙어있었으니, 활을 다시 새 캐릭터의 Prop_L 뼈에 붙여줘야 해.
    • Bow aim layer controller 스크립트의 Equipment Visuals에 새 캐릭터의 활을 다시 연결해줘.
  2. 프리팹 만들기:

    • 계층 창에서 완성된 캐릭터를 애셋 브라우저로 끌어다 놓으면 프리팹이 만들어져.
    • 이제 이 프리팹을 다른 장면에서도 쉽게 사용할 수 있어.

마무리

이제 캐릭터 애니메이션 컨트롤러 설정, 상태 머신, 그리고 Avatar Mask를 사용해서 상체 애니메이션을 블렌딩하는 방법을 배웠어. 이걸로 캐릭터가 움직이면서 활을 겨누고 쏘는 등 다양한 동작을 자연스럽게 만들 수 있게 되었지!

혹시 활과 화살을 실제로 날아가게 하는 방법이나, 더 많은 애니메이션을 추가하는 방법에 대해 알고 싶다면 댓글로 알려줘!

최근 검색 기록