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

[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 : 파티클, 폭발 등의 입자 효과를 플레이 해주는 함수, 해당 위치에서 파티클 시스템을 등장..

[13강] Asset Migration

머터리얼 처리 Line Trace에서 color를 랜덤으로 변화시키는 방법 1. 기존에 연결된 컬러가 Linear Color 였기 때문에 "Make Linear Color" 함수를 생성한다. * Linear Color : Range가 0~1 이다. (RGB는 컬러, 알파값을 뜻하는 A는 반투명이다) * 현재 불투명 처리를 해 놨기 때문에 A값은 의미가 없다. 2. "Random Float In Range" 함수를 생성한 후 다음과 같이 연결 해 준다. * Random Float In Range : 랜덤한 범위 내에서 Float 형의 난수를 만든다. - Linear Color 의 Range가 0~1이기 때문에 Min 값에 0을, Max값에 1.0을 넣어 준다. - 각각의 RGB값을 다 변화시켜야 하기 때문..

[12강] Line Trace와 Material

Line Trace 실습 1. 저번에 제작해두었던 Actor Class 블루프린트인 "BP_05_LineTrace" 로 들어간다 2. 기존에 제작해두었던 "Draw Line"을 Delet 하고, 라인을 추적하기 위한 "LineTraceForObjects" 함수를 만들어 준다. 제거해야할 기존의 DrawLine 3. 라인을 추적할 시점이 기존 것과 같기 때문에 이전에 만들어둔 자료에 들어가서 위치 값을 복사해온다. 4. Tick 이벤트 함수를 다음과 같이 연결한다. 1) 0번은 시작 위치에 연결 2) 1번은 끝나는 위치에 연결 5. 자료형 연결 추적할 오브젝트타입이 Pawn (Character) 이기 때문에 Object Types 를 끌어서 다음과 같이 배열 자료형에 대한 자료형을 불러온 후, Pawn 으..

[11강] 객체 찾기와 반복문

객체화 복습 1. 작업중인 "BP_04_Trigger_Light" 를 화면에서 3개 복제한다. * 복사 단축 키 : Alt + drag 2. "BP_04_Trigger_Light" 블루프린트 변수에 "Light Color", Linear Color 변수를 추가한다. * Color 자료형 : 0~255, 빨간색이면 255, 0, 0 이런식으로 정의 * Linear Color : 0~1, 빨간색이면 1, 0, 0 이런식으로 정의 Linear Color 형이 비율을 맞추기가 더 쉬워서 라이트라던지 대부분의 컬러의 변수로 사용됨 3. 컴파일 후 빨간색(1, 0, 0) 지정 4. 만들어 둔 Light Color 변수를 가져오고, "Set Light Color" 함수를 불러와 다음과 같이 이벤트 함수 업데이트 * ..

[10강] Collision (Overlap / Hit)

기본 세팅 설정 프로젝트세팅 > 프로젝트 맵&모드 > StartupMap > "Collision" 당분간 충돌체크 맵 관련해서 작업을 할 것이기 때문에 작업에 용이하게 변경 이벤트 작성 3번째 작성해 두었던 블루프린트를 활용해 Collision의 두가지 종류를 정의할 수 있는 이벤트를 작성 1. Overlap (겹침) 1) "Generate Overlap Events" 가 체크되어 있는지 검토 기본적으로 Collision은 이 탭에서 관리를 하는데, "Generate Overlap Events" 가 켜져 있어야 Overlap 이벤트를 작동시킬 수 있음 2) "On Component Begin Overlap" 이벤트 함수 생성 On Component Begin Overlap : 겹침 시작 On Compon..