[실전 게임제작으로 배우는 언리얼 엔진 4] 를 통해 언리얼 툴의 기본 사용법 & 블루프린트 실습을 모두 완료하였습니다.

제가 주로 사용했던 툴인 유니티 보다 장점은

1. 월드 아웃라이너를 레벨에 따라 락이 가능하다는 점입니다. 대형 맵을 여러 사람과 함께 작업할 때 유용할 것 같습니다. 

2. 인공지능 기능이 더 강력합니다. 특히 비헤비어 트리는 직관적이라 디버깅 할때 유용합니다.

3. 블루프린트를 통한 비주얼 스크립팅이 생각했던 것보다 자유도가 높습니다. 익숙해지면 프로토타입 굉장히 빠르게 만들 수 있습니다.

(하지만 C++로 작성하는 것보다 속도가 상당히 느립니다!)

4. xyz 좌표계가 z-up 방식이라 유니티와 다릅니다.

5. 유니티 메카님 보다 애니메이션 컨트롤러 UI가 가독성이 좋고, 애니메이션 몽타주나 블렌더 같은 모션 합성 기능을 지원해줘서 굉장히 편리했습니다. 

 

해당 교재의 경우 모든 스크립트 작성을 블루프린트로 구현되어 있습니다.

하지만 3번의 이유 때문에 실제로 언리얼 엔진으로 개발 시 UI와 일부분을 제외하고는 C++로 작업한다고 합니다.

그래서 C++ 클래스로 개발하는 법을 공부하기 위해 TPS게임을 마들어 보고 있습니다.

언리얼 홈페이지의 기술 문서와 포럼 및 구글링을 하면서 조금씩 만들어가고 있습니다.

 

1. 주인공 이동 모션 처리

1) 애니메이션 인스턴스 클래스를 생성하여 주인공 입력값(전, 후, 좌, 우)을 읽어오게 작성합니다.

2) 각 축 값에 맞는 애니메이션 시퀀스를 대입하여 2차원 애니메이션 블렌딩을 하여 자연스러운 이동 모션을 구현합니다.

3) 애니메이션 인스턴스를 상속받은 애니메이션 컨트롤러에 반영해줍니다.

 

2. 적 AI 구현

1) 비헤비어 트리를 통해 구현합니다. (주인공이 인식 범위 안 -> 쫓아간다 -> 공격한다(동시에 주인공 쪽으로 회전))

2) 비헤이비어 트리안의 각 테스크, 데코레이터, 서비스는 각 클래스를 상속받아 C++ 로 구현하였습니다.

공격 중 회전을 하는 태스크 구현 예

3. 무기 구현

샷건의 발사 부분 입니다. 샷건은 한번 발사로 여러 구슬(펠렛)이 나가므로, 설정된 범위 안에서 랜덤으로 분사가 되도록 구현하였습니다.

Posted by Haedo
,