Unreal Engine/게임클래스 - 언리얼엔진 기초 54

[22강] Enemy

22강에서는 Enemy 세팅을 다룰 예정이다. 1. Enemy Animation 세팅 2. 적과 충돌 검출 1. Enemy Animation 세팅 1) ABP Enemy 다 삭제 > ABP Player 이벤트 그래프 복사, 붙여넣기 (Ctrl 키로 연속 선택 가능) 2) 자료형 BP_Enemy "Enemy" 변수생성 밑 Player 대신으로 교체해주기. 3) Valid 에서 Speed, Direction 값 가져오는 것 제외하고 다 삭제 및 핀 제거 4) mixamo 애니메이션 가져오기 --1) great sword idle, run FRLB 다운로드 > without skin > in place --2) 컴파일 후 언리얼로 가져와서 애님인스턴스 생성 --3) "BlendSpaces" 폴더 > 애니메이션..

[21강] Animation Blending

저번시간에 이어 Attacking 애니메이션 오류를 해결할예정이다. 1. 무기가 있을때 / 없을때 상관없이 진행 2. 여러번 휘두르는 문제 3. 휘두르고 난 후 Idle (Unarmed) 로 초기화 되어 플레이 됨 이번시간에는 3번 문제를 애니메이션 블랜딩 기능을 이용하여 해결할 예정이다. - 애니메이션 두 동작 이상을 섞는 기능 - 애니메이션 몽타주의 슬롯 애니메이션이 실행된 후 idle 등이 초기화 되는 문제를 해결 가능 - "본마다 레이어로 블랜딩" 기능 사용 ex. 상하체 애니메이션을 섞음. 하체의 기본동작을 유지시키는 방법으로 공격 애니메이션을 더욱 자연스럽게 구현 Attacking Animation 오류해결 (3) 1. Upper Body 슬롯 만들기 저번시간에는 de..

[20강] Animation Montage

좋은아침이다! 하고 작업중이던 파일을 열었는데 로드에러가 뜨고 심난했다. 그냥 파일만 바꿔껴주면 되겠거니 하고 이전에 작업한 내용 살펴보면서 커피도 마시고 간식도 먹고 했다. 개선해야할 사항 두가지를 발견하고 해결했다. 1. 칼 파일 로드 에러 --1) 문제원인 파악 저번에 실수인데, 오늘 파악했다. Character 폴더에 Sword 폴더에 칼 자료, Weapon 폴더에 칼자료 이 두가지를 섞어 사용하고 Sword 폴더 칼 자료를 필요없다고 삭제했다. 뭐가 뭔지 정리가 안되고 확실치 않음 작업하다가 삭제한 쪽 자료가 사용되는 부분에서 문제가 되는거였다. --2) 확실하게 해결하기 위해 칼을 다 삭제, 다시 Weapon폴더에 넣고 칼 리임포트, 칼 블루프린트 다시 만듦 --3) BP_Play..

[19강] Spawn Actor & AttachToComponent

이번 시간에 다룰 내용 Spawn Actor : Actor 를 화면에 구현하는데 사용 AttachToComponent : Spawn 한 Actor 를 socket 에 붙이기 위한 기능 구현에 사용 1. 필요한 무기 어셋 임포트 캐릭터 파일 > 탐색기에서 표시 > Sword 임포트 다운로드 한 파일에는 다음과 같이 피직스, 스켈레톤, 메시 정보와 텍스쳐가 들어있었다. 무기는 정적 메시이기에 StaticMesh 라고 오해할 수 있지만, 손 등과 정확히 상호작용하기 위해 SkeletalMesh 구조여야 한다. (따라서 뼈대가 들어가 있다.) SkeletalMesh 이기 때문에 후에 있을 작업에서 Trail 등의 기능도 구현가능하다. 2. 무기를 구현하기 위한 A..

[18강] Anim Notify

Anim Notify 애니메이션이 플레이 되다가 특정 구역을 지나가면 호출해주는 것 * 예시 : 1. 임포트한 애니메이션 > 애니메이션바를 움직이며 원하는 프레임에 "Play Particle Effect" 노티파이추가 2. 임포트한 파티클 효과 "Fire_Exp_03" 설정 3. 플레이를 했을 경우 설정한 프레임에 "Fire_Exp_03" 파티클이 호출됨. Anim Notify 심는 방법 1. 일반 문자열로 처리하는 방식 일반 강의에서 많이 다루며 애니메이션 블루프린트에서 플레이어에게 넘겨주는 방식인데 번거로움 유지보수가 어려움 노티파이추가 > 새노티파이 2. 객체로 만들어서 처리하는 방식 노티파이 객체를 이용하는 방법으로, 유지보수가 더 간편함 노티파이추가 > 새노티파이 하단에 있는 버튼으로 추가 No..

[17강] State Machine(Draw / Sheath)

이번시간에는 이전에 임포트 했던 애니메이션들을 활용하여 만든 BS_Sword 를 통해 칼을 넣고 빼는 것을 구현하여 볼 예정이다. 1. Player > ABP_Player "BS_Unarmed" 에서 칼을 뽑기1, 2를 통해 "BS_Sword" 에 연결된 후 칼을 넣기 1, 2를 진행해 원래대로 돌아가는 형식으로 짠다. 이후 "Drawing", "Sheathing" 변수를 생성한다. 생성한 변수를 이용해 다음과 같이 조건을 넣어준다. 마지막으로 칼을 넣고 빼고 하는 시간을 자연스럽게 맞추기 위해 블렌드 세팅 > 기간 을 다음과 같이 조절하여준다. 빨간박스로 체크한 주황 - 0.1 하양 -0.05 추가로 모드변경을 해 주는데, 맨 마지막은 Linear 로 연결해준다. 애니메이션 키는 같고 선 연결되는 스타..

[16강] Animation Retargeting - 문제해결

강사님이 알려주신 방법이 Git 을 통해 배포된 Blender Plugin 을 통해 Mixamo 애니메이션을 Unreal Engine 으로 컨버트 해 사용하는 거였는데 발 부분에 애니메이션이 jittering 되는 문제가 있었다. 최근 몸이 좋지않아 몇주 보내다가 내가 찾은 해결법은 다른 컨버터를 사용하는 것이였다. 강사님의 방법과 비교했을때의 장단점은 이하이다. 장점 1. 블렌더를 다운받을 필요가 없다. 2. Git 을 다운받고, 플러그인 사용법을 익힐 필요가 없다. 3. 전용 프로그램이라 포즈 과장, fps, 속도등을 변경가능하다. (내가 사용할 부분만 대충 봤지만 기능이 훨씬 풍부하다) 단점 1. 컨버터 프로그램을 다운받고 사용법을 익혀야 한다. 2. 한번에 4개씩만 변환이 가능한 듯 해 보인다. ..

[16강] Animation Retargeting - 2

이전에 했던 작업 정리 1) Ybot fbx 다운로드 후 Blender 플러그인을 통해서 언리얼 구조에 맞게 변환 2) 키 포즈 맞추기 : 언리얼 마네킹 기본포즈 변경, Ybot 인간형 릭 셋업, Ybot 애니메이션 프리뷰 씬 셋업 > 어셋에 적용 3) Ybot 캐릭터를 기반으로 한 애니메이션을 다운로드 해 오고, 애님 어셋 리타게팅 > 복제 후 리타겟팅 *** 저번 시간에 손가락 설정 ("Ignore Leaf Bones") 까먹었기 때문에 수정해서 다시 임포트 해야 함 이번 시간에는 필요한 애니메이션을 몇가지 더 가져올 예정이다. 그러면서 방향이 있는 애니메이션을 가져올 때 어떤식으로 작업하면 좋은지에 대해 배울 예정이다. 1. Mixamo > 캐릭터 ybot 선택 > "Sword and Shield ..

[15강] Animation Retargeting - 1

15~16강을 통해서는 전투 시스템을 다룰 예정인데 플레이어가 칼을 빼고 넣는 애니메이션을 연출 해 볼 것이다. 애니메이션 어셋은 "Mixamo (https://www.mixamo.com)" 웹사이트를 통해 구할 예정이다. Retargeting 캐릭터 어셋에 따라 내부 skeleton 구조와 명칭이 다르지만, Retargeting 과정을 통해 전환하여 사용할 수 있다. 이 과정을 이해한다면, 다양한 자료를 변환하여 자유롭게 제작에 사용할 수 있다. ex. 어떤 파일은 시작 bone 파일의 이름이 Root 이고 어떤것은 Hips 이다. 1. "Combat" 맵 생성 및 정리 1) Collision 맵을 복사해 Combat 맵을 생성한다. 2) 스타트 맵 다음과 같이 변경 이제부터 새로운 맵에서 주로 작업할..

[14강] Multi Sphere Trace

이번 시간에는 특정 공간안에 있는 물체들을 찾아내고 힘을 줘서 효과(폭발) 을 연출 1. BP_06_Explosion 블루프린트 설정 1) Custom Event 생성, rename "Explosion" 2) Spawn Emitter at Location 함수 생성 및 설정 - Emitter Template : 어셋선택에서 아까 가져왔던 폭발 효과 "Fire_Exp_03을 선택" - Location : BP_06_Explosion 위치여야 하니 "Get Actor Location" 함수 생성 및 연결 - Auto Destory : 자동 제거 할거냐는 의미, 활성화 * Spawn Emitter at Location : 파티클, 폭발 등의 입자 효과를 플레이 해주는 함수, 해당 위치에서 파티클 시스템을 등장..