Top

[좀비 액션 어드벤처 게임 프로젝트로 배우는]
유니티 5 메카님 캐릭터 애니메이션

  • 원서명Unity Character Animation with Mecanim (ISBN 9781849696364)
  • 지은이제이미 딘(Jamie Dean)
  • 옮긴이최민석
  • ISBN : 9788960778177
  • 30,000원
  • 2016년 01월 20일 펴냄
  • 페이퍼백 | 328쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

책 소개

요약

이 책은 메카님 툴과 유니티의 여러 캐릭터 애니메이션 관련 툴의 핵심 개념 및 사용 방법을 배울 수 있는 유용한 기본서다. 애니메이션 시퀀싱을 결정할 때 스크립팅에 크게 의존해야 했던 기존 애니메이션 컴포넌트 기반 시스템을 대체하는 새로운 메카님의 애니메이션 툴을 집중적으로 다룬다.

이 책에서 다루는 내용

모션 캡처 데이터를 개선하고 최적화하는 효율적인 기법

다양한 캐릭터 리깅 간 애니메이션 시퀀스의 대상 재설정

인간형 캐릭터를 리깅하는 방법과 유니티에서 사용할 수 있게 내보내는 방법

두 가지 업계 표준 3D 소프트웨어 패키지에서 키프레임 기법으로 처음부터 동적 애니메이션 시퀀스를 제작하는 방법

복잡한 얼굴 리깅을 구성하는 방법

래그돌 게임오브젝트를 제작하고 게임 안에서 인스턴스로 만드는 방법

메카님을 활용한 플레이어 애니메이션과 AI로 운영되는 적 캐릭터 애니메이션의 통합

이 책의 대상 독자

이 책은 유니티를 이용한 게임 제작 과정 중에서 캐릭터 애니메이션 측면에 초점을 맞췄다.
유니티를 처음 접하는 독자는 유니티 공식 사이트에서 제공하는 기초 소개 문서를 충분히 읽고 시작하는 것이 좋다. 유니티 이전 버전을 사용해본 경험이 있다면 이 책을 진행하면서 기존 작업 과정에 메카님을 적용하는 방법을 이해할 수 있을 것이다.
애니메이션을 처음 접하는 독자라면 이 책에서 사용하는 캐릭터 애니메이션 관련 용어가 익숙하지 않을 수 있으므로, 가급적이면 용어가 새로 등장할 때마다 간단한 설명을 포함했다.
이 책은 프로그래머보다는 아티스트를 염두에 두고 쓰여졌다. 자신이 만든 아트워크를 데모나 게임으로 선보이기 위해 유니티를 이용한 캐릭터 애니메이션을 배우려는 것이라면 이 책은 여러분에게 가장 적합한 책이다!

이 책의 구성

이 책은 게임 개발에서 캐릭터 애니메이션 측면의 여러 다양한 프로세스를 독자에게 소개한다. 유니티의 기본적인 애니메이션 툴과 메카님 툴셋을 소개하고, 이러한 툴을 게임 애니메이션 제작에 이용하는 방법을 설명한다.

1장, '좀비가 온다!'에서는 메카님의 인터페이스를 소개하고 리깅된 캐릭터를 유니티로 가져와서 애니메이션을 구성하는 과정을 설명한다.

2장, '3ds 맥스와 마야에서 유니티용 캐릭터 리깅'에서는 유니티 엔진과 널리 이용되는 3D 소프트웨어 간의 관계를 설명하고 외부 소프트웨어로 준비한 캐릭터 모델을 유니티로 원활하게 가져오는 방법을 알아본다.

3장, '환경과의 상호작용'에서는 캐릭터와 환경 간의 현실적인 상호작용을 구현할 수 있는 몇 가지 다른 전략을 비교해본다.

4장, '모션 캡처 데이터 활용'에서는 메카님 툴셋을 이용해 캐릭터 애니메이션에 모션 캡처 파일의 데이터를 적용하는 방법을 배운다.

5장, '애니메이션 대상 재설정'에서는 애니메이션 클립의 재사용에 대해 고려하고, 유니티에서 애니메이션을 다른 캐릭터 유형에 적용하는 방법을 알아본다.

6장, '말하는 머리'에서는 메카님의 얼굴 애니메이션 기능에 대해 알아보고, 게임 안에서 얼굴 애니메이션을 구현하는 데 필요한 스크립팅을 다룬다.

7장, '블렌드 트리를 이용한 플레이어 애니메이션 제어'에서는 애니메이터 패널의 고급 기능을 활용해 제한된 스크립팅으로 서로 다른 애니메이션 클립 사이를 부드럽게 블렌딩하는 방법을 자세히 살펴본다.

8장, '래그돌 피직스 구현'에서는 실세계의 물리 체계와 캐릭터 컨트롤러의 기능을 비교하고, 래그돌을 이용해 캐릭터 구성에 이러한 물리 체계를 적용하는 방법을 배운다.

9장, 'AI와 트리거를 이용한 적 애니메이션 제어'에서는 스크립팅한 행동과 유니티의 navMesh 내비게이션 시스템을 함께 이용해 게임 안에서 적 캐릭터 애니메이션을 제어하는 방법을 알아본다.

저자/역자 소개

지은이의 말

지난 몇 년간 유니티(Unity)는 게임과 다른 대화식 애플리케이션의 개발을 위한 유연하고 사용자 친화적인 플랫폼으로서 놀라운 가치를 입증했다. 유니티를 이용해 신속하게 게임 메뉴와 인터페이스를 구성하고, 레벨을 제작하며, 캐릭터 애니메이션을 구현할 수 있으며, 이러한 요소가 상호작용하는 방법을 정의할 수 있다.

유니티는 다른 개발 도구에 비해 씬 뷰포트 창을 중심으로 하는 작업 방식과 3D 소프트웨어와 비슷한 제어 방법을 가진 사용자 친화적인 툴이다. 다른 게임 엔진과 마찬가지로 복잡한 동작을 구현하려면 스크립팅이 필요하지만, 신속하게 코드를 테스트하고 조정할 수 있어 프로그래밍에 경험이 많지 않은 사용자에게도 진입 장벽이 높지 않은 편이다.

전문 개발자는 물론 아마추어 개발자도 쉽게 배우고 익숙해질 수 있는 드래그앤드롭 방식을 지원하며, 다중 플랫폼 퍼블리싱 기능으로 PC, 맥, iOS, 안드로이드, 콘솔 등 다양한 플랫폼용 게임을 만들기 위한 과정을 크게 간소화했다.

유니티 퍼스널 버전은 무료로 다운로드할 수 있어 초보 수준의 게임 개발자에게 적합하다. 자세한 온라인 매뉴얼과 스크립팅 참고서, 그리고 활발한 개발자 커뮤니티를 통해 언제든지 필요한 지원을 받고 질문의 답을 찾을 수 있다.

유니티에 추가된 메카님은 독립 게임 개발자에게 추가 소프트웨어를 사용하지 않고도 캐릭터 애니메이션 제작 프로세스의 많은 부분을 처리할 수 있는 포괄적인 툴셋을 제공한다. 메카님은 여러 애플리케이션 간에 데이터를 가져오고 내보낼 때 흔히 발생하는 문제를 걱정할 필요 없이 기존 애니메이션의 세부 수정과 대상 재설정, 타이밍 조정 등의 작업을 간단하게 처리할 수 있게 해준다.

이 책에서는 실제 게임 개발과 최대한 비슷한 현실적인 환경을 만들기 위해 PC나 콘솔, 모바일 플랫폼에서 많이 볼 수 있는 좀비 재앙 배경의 일인칭 액션 게임을 주요 프로젝트로 선택했다. 이 게임에서 플레이어는 좀비로 가득한 사무실 건물에서 무사히 탈출해야 한다. 캐릭터 애니메이션의 관점에서 보면, 우리는 이 프로젝트에서 플레이어와 적에게 필요한 다양한 유형의 이동과 움직임을 구현해야 한다.

지은이 소개

제이미 딘(Jamie Dean)

여러 게임 프로젝트에서 3D 콘텐츠를 제작하고 학생들을 가르치는 일에 7년 이상의 경험을 가진 게임 아티스트이자 개발자, 강사, 프리랜서다.

옮긴이의 말

유니티는 최근 몇 년간 게임 개발 업계에서 가장 주목받은 주제 중 하나입니다.
다만 그동안 모바일과 웹 게임 대상의 소규모 업체와 개인 개발자들이 유니티를 도입하는 데 적극적이었다면 유니티 5로 오면서 메이저 업체에서도 관심을 가질 만한 최신 기능들이 대거 추가됐습니다. 그중에서도 캐릭터 애니메이션을 상태 기반의 통합 환경으로 편리하게 제작하고 관리할 수 있는 메카님을 더 새롭고 강력한 모습으로 다시 선보였습니다.

이 책은 짜임새 있는 실용적 예제를 제작하는 단계별 과정으로, 메카님의 구조와 핵심 기능을 쉽고 재미있게 배울 수 있도록 구성됐습니다. 메카님을 기반으로 1인칭 슈팅 게임을 제작하면서 지루함 없이 진행의 만족감을 느낄 수 있게 체계적으로 설명한 책입니다. 그 과정에서 게임을 개발할 때 알아야 할 기본 개념까지 예제 안에 매끄럽게 녹여 안내하는 영리함까지 보여주고 있습니다. 오랜만에 일하는 즐거움을 느끼게 해준 책이었습니다. 독자 여러분도 같은 즐거움을 맛보시길 바랍니다.

옮긴이 소개

최민석

2005년부터 번역 회사에서 언어전문가로 일하다 독립한 후 현재는 IT 전문 번역가로 일하고 있다. 10여 년 동안 수백 건의 소프트웨어 현지화와 개발자 웹사이트 한글화 프로젝트를 진행했으며, 지금은 IT 전문 서적을 번역하는 일에 집중하고 있다. 번역한 책으로는 『엔터프라이즈 애플리케이션 아키텍처 패턴』, 『유니티와 C#으로 배우는 게임 개발 교과서』, 『자바 웹 개발 완벽 가이드』, 『시작하세요! 스프링 4 프로그래밍』, 『게임 디자인 워크숍』 등이 있다.

목차

목차
  • 1 좀비가 온다!
  • 프로젝트 설정
    • 적 캐릭터 가져오기
      • 머터리얼과 텍스처 구성
      • 가져오기 배율 조정
      • 리깅 가져오기 설정 조정과 아바타 만들기
    • 애니메이터 컨트롤러 설정
      • 상태 만들기
      • 파라미터 만들기
      • 트랜지션 추가
      • 스크립트 작성
    • 애니메이션 미리보기를 위한 씬 요소 조정
      • 게임 뷰에서 hit 애니메이션 미리보기
  • 요약

  • 2 3ds 맥스와 마야에서 유니티용 캐릭터 리깅
  • 리깅의 필요성
  • 최소 요건
  • 모델 구하기
  • 애니메이션을 위한 모델링
  • 3ds 맥스의 리깅
    • 씬 설정
    • 캐릭터 모델 가져오기
    • 바이패드 시스템 만들기
    • 바이패드의 파라미터 조정
      • 캐릭터에 맞게 바이패드 조정
      • X 레이 모드 전환, 캐릭터 메시 고정
      • 팔다리 위치 조정
      • 뼈 이름 바꾸기
      • 한쪽에서 반대쪽으로 위치, 회전, 배율 데이터 복사와 붙여넣기
    • 스킨 수정자를 이용한 캐릭터 스키닝
      • 선택 집합 만들기
      • 기본 포즈 저장
      • 테스트 포즈 만들기
      • 스킨 수정자 수정
    • 리깅된 캐릭터 내보내기
  • 마야에서의 리깅
    • 마야에서 캐릭터 모델을 리깅하기 위한 설정
      • 시스템 단위를 미터로 설정
      • 표시 격자 크기 변경
      • 모델 가져오기
      • 모델 배율 조정
      • 관절 제작을 위해 뷰포트 표시와 툴셋 조정
      • 등, 목, 머리의 관절 제작
      • 관절 이름과 위치 재설정
    • 다리 관절 만들기
    • 팔 관절 만들기
      • 손가락 관절 복제
    • 다리와 팔의 관절 체인을 반대쪽으로 복사
      • 팔과 다리의 관절 체인 연결
      • 포니테일과 턱 관절 만들기
      • 관절 변형 정렬
      • 테스트 포즈 만들기
    • 캐릭터 메시를 스켈레톤에 바인딩
    • 스킨 웨이트 조정
    • 유니티용으로 내보내기
  • 요약

  • 3 환경과의 상호작용
  • 프로젝트 애셋 패키지 가져오기
    • 플레이어 캐릭터 설정
    • 새로운 씬 만들기
    • 씬에 플레이어 캐릭터 모델 추가
    • 캐릭터 컨트롤러 추가
      • 카메라 높이 조정
    • ShootIdle 애니메이션 추가
      • 총의 추가와 관계 설정
      • 일인칭 리깅을 프리팹으로 저장
      • 사무실 레벨 추가
      • 카메라 설정 마무리
      • 애니메이터 컨트롤러 수정
      • 트랜지션 설정
    • 캐릭터 애니메이션 스크립트 작성과 구현
    • FPSAnimation 스크립트에 초기 코드 추가
    • 플레이어 캐릭터 게임 오브젝트에 스크립트 추가
  • 아이템 추가와 구현
    • 게임 레벨에 lunchBox 아이템 인스턴스 만들기
      • lunchBox 아이템의 컴포넌트 검사
    • 플레이어 캐릭터의 반응 설정
      • 애니메이터 컨트롤러에 Pickup 상태 추가
      • 픽업 카메라 만들기
      • 픽업 카메라 프리팹 마무리
      • 플레이어 상태 스크립트
      • Collectable 스크립트 수정
      • FPSAnimation 스크립트 수정
      • pickup 스크립트 수정
    • 아이템 줍기 테스트
  • 요약

  • 4 모션 캡처 데이터 활용
  • 모션 캡처 시퀀스의 특성
  • 리깅된 모델에 모션 캡처 시퀀스 적용
    • 시작하기
    • 모션 캡처 시퀀스 가져오기
      • 가져오기 설정 조정
      • Animations 탭에서 시퀀스 조정
    • 두 번째 걷기 사이클 만들기
      • 애니메이터 컨트롤러에 새 모션 클립 추가
      • 두 애니메이션 루프를 작동하는 스크립트 작성
  • 요약

  • 5 애니메이션 대상 재설정
  • 씬 로드
    • 애니메이션 추가와 미리보기
    • 대상 재설정을 위한 가져오기 설정 조정
      • 복제된 걷기 사이클 만들기
      • 모션 파라미터 조정
      • 운동 범위 제한
    • 아바타 바디 마스크
      • 새로운 씬 열기
    • 애니메이터 컨트롤러에서 두 번째 레이어 만들기
      • 마스크 레이어에 상태 만들기
      • 마스크 레이어에서 파라미터와 트랜지션 설정
      • 스크립트 편집
      • 마스킹된 애니메이션 미리 보기
  • 걷기 사이클 2개로 변형 5개 만들기
  • 아바타 마스크 추가
  • 요약

  • 6 말하는 머리
  • 으르렁거리는 얼굴 애니메이션 추가
    • 유니티에서 씬 설정
  • zombie_ready 스크립트에 코드 추가
    • TurnToPlayer 함수 추가
    • Inspector 패널에서 변수 연결
  • 애니메이터 컨트롤러에 얼굴 애니메이션 추가
    • Snarl 상태 추가
    • Null 상태 만들기
    • Null과 Snarl 상태 간 트랜지션 설정
      • IsSnarling 파라미터 만들기
      • Face 레이어 작동을 위한 스크립트 편집
      • 좀비가 천천히 회전하게 수정
  • 방향 틀기 애니메이션 구현
    • Turn 상태 추가
    • IsTurning 파라미터 구성
      • Turn 상태를 연결하는 트랜지션 만들기
    • Turn 상태의 트랜지션 설정
      • Turn 상태를 지원하게 zombie_ready 스크립트 수정
  • 애니메이터 컨트롤러에서 블렌드셰이프 애니메이션 활용
    • 유니티에서 블렌드셰이프 보기
    • 얼굴 블렌드셰이프의 키프레임 설정
    • 블렌드셰이프 애니메이터를 처리하게 애니메이터 수정
  • 요약

  • 7 블렌드 트리를 이용한 플레이어 애니메이션 제어
  • 플레이어의 기존 애니메이터 컨트롤러에 블렌드 트리 추가
    • 블렌드 트리를 이용해 좌우 이동 애니메이션 추가
    • 블렌드 트리 프로퍼티
    • 블렌드 트리에 모션 클립 추가
    • 블렌드 트리 파라미터와 임계값 추가 및 조정
    • 블렌드 트리를 사용하도록 캐릭터 스크립트 수정
    • 게임 뷰에서 블렌드 트리 테스트
  • 블렌드 트리를 이용한 줍기 애니메이션의 변형
    • pickup_heavy 애니메이션 시퀀스 확인
    • Pickup 상태에서 블렌드 트리 구성
      • 줍기 블렌드 트리 파라미터 설정
      • 줍기 블렌드 트리를 위한 임계값 설정
    • 캐릭터 애니메이션 스크립트에 줍기 블렌드 트리 기능 추가
    • Collectable 스크립트에 무게 변수 추가
    • objectWeight 값 전달
    • 캐릭터 애니메이션 스크립트의 Pick 함수 수정
    • 게임에서 애니메이션 블렌딩 테스트
      • 아이템 프리팹의 인스턴스 만들기
      • 블렌딩된 애니메이션 미리 보기
  • 요약

  • 8 래그돌 피직스 구현
  • 유니티의 관절
    • 테스트 씬 만들기
    • 힌지 조인트 추가
  • 래그돌 오브젝트 만들기
    • 머터리얼 할당
      • 초기 래그돌 생성
      • 충돌 오브젝트 조정
      • 캐릭터의 관절 세부 조정
      • 머리의 회전 범위 조정
      • 래그돌에 커스텀 관절 추가
      • 래그돌을 프리팹으로 저장
  • 요약

  • 9 AI와 트리거를 이용한 적 애니메이션 제어
  • 범위 감지 구현
    • 씬 살펴보기
    • 초기 AI 스크립트 추가
    • 적 AI 스크립트에 근접 감지 추가
    • 순찰 행동 구현
      • 순찰을 구현하기 위한 변수 추가
      • Update 함수에 초기 정찰 코드 추가
    • 순찰 지점 정의
    • 애니메이터 수정
    • 애니메이션 곡선 추가와 이용
      • 메카님에서 애니메이션 곡선에 접근하고 스크립트에서 이용하는 방법
    • 공격 동작 추가
      • Attack 상태 추가
      • 적과 플레이어 게임 오브젝트에 태그 할당
      • 좀비가 플레이어에게 피해를 줄 수 있게 수정
    • 좀비에 피해 입히기와 죽이기
      • 플레이어의 총 쏘기 추가
  • navMesh를 활용한 경로 탐색과 장애물 탐지
    • 방향 전환 시 내비게이션 일시 중지
    • 공격 중 내비게이션 조정
      • Attack 함수 수정
  • 좀비의 추격에 시간 만료 추가
  • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안