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

[42강] Interface

이번시간에는 interface 사용방법에 대해 알아볼 것이다.- Interface 가 어떻게 "사용" 되는지- Interface 가 어떻게 "그룹" 지어지는지- Interface 가 어떻게 "호출" 되는지   BP_Player와 BP_Enemy 는 Character 라는 부모로부터 상속을 받았지만, 둘다 공통적인 역할을 Character 에 넣을수 없기 때문에 Interface 를 이용해 연관관계를 지어 줄 것이다. 인터페이스는 상속을 건드릴 수 없을때 사용한다.예를들어, 적은 Character 이고, 물체는 Actor 이고, 또 다른 애는 Pown 이고 이런상황에서도 인터페이스로 다 같이 묶어 연관관계를 지어주어 영향받에 할 수있다. 물론 Actor 에 넣을 수 도 있는데, Actor 는 건드릴 수 없..

[41강] Inherit Weapon Diagram

무기 교체시에 있던 버그 해결 Sword 나 Wizard 이벤트 진입시 Idle 상황인지를 검사하는 코드를 추가해서 버그수정 1. BP_Player > 이벤트그래프 CanSwordEquip 함수를 복사해 IsStateIdle 생성 (Ctrl + W) 2. BP_Player > 이벤트그래프 > Sword Event 다음과 같이 세팅  3. BP_Player > 이벤트그래프 > Sword Event > Equip Sword의미가 없어진 노드 제거하고, 다음과 같이 세팅  4. BP_Player > 이벤트그래프 > Sword Event > Sheath Sword마찬가지로 의미가 없어진 노드 제거하고, 다음과 같이 세팅  5. 의미가 없어진 함수 "CanSwordEquip", "CanSwordSheath" 삭제..

[40강] Attach Particle System

* 혹시 Explosion 파일이 날라갔다면 다시 불러와 파일에 문제가 없게 한다.  적이 맞았을때 칼로만든건지, 마법으로 맞은 건지 Casting 으로 확인 > 칼로맞았을때 뒤로 밀리기, 마법으로 맞았을때 불붙기. 1. BP_Enemy > 이벤트 그래프 > Actor 형 변수 "Causer" 생성 2. BP_Enemy > 이벤트 그래프 > Set Damage 입력(Input) 에 Causer 추가하고 Set Causer 하여 다음과 같이 연결  3. BP_Enemy > 이벤트 그래프 다음과 같이 세팅  4. BP_Enemy > 이벤트 그래프 > Hitted 다음과 같이 세팅  5. 파티클 생성 1) BP_Enemy > 뷰포트 > 컴포넌트 추가 > ParticleSystem 생성 > "Fire" 로 Re..

[39강] FireBall Overlap Event

이번시간에는 다음 두가지를 구현할 예정이다. 1. Static Mesh 면 폭발하고 불을 없애기 2. 캐릭터 자료형에는 폭파를 하고 없애기  그리고 다음시간에 2번에 이어 캐릭터 자료형에 불이 붙게 만드는 것을 구현 예정이다.  Static Mesh 면 폭발하고 불을 없애기 1. Outliner > Walls 에 Collision Overlap을 켜 준다. 양쪽 다 Collision Overlap 이 되어 있어야 충돌이 된다. (BP_FireBall은 켜져있는 상태이다) 2. BP_FireBall > 이벤트그래프 다음과 같이 세팅하여 충돌 체크를 해 준다. * 특정 오브젝트를 찾아내는 방법에는 세가지가 있다, 이번에는 이름으로 찾아내는 방법을 사용할예정이다. 1) 이름을 이용하여 찾아내기 2) 태그를 이..

[38강] Projectile

저번시간까지는 손에 불을 들고 있는 것까지 구현하였다.이번시간에는 Movement Component (Projectil) 을 활용하여 적에게 불을 던지는 것을 구현할 것이다.  1. 어셋 가져오기파일명이 다 같기 때문에 다음과 같이 진행하는 것이 효율적이다 : 탐색기에서 표시 > Content 폴더 > 압축 풀기 > Effect 폴더 > 덮어씌우기 임포트한 파일은 다음 두 가지이다.    1) "FireBall"- 시간당 파티클 생성 갯수 증가   - Delay 제거- Duration 길게 변경- Use Local Space 비활성화     2) "P_Attach_Fire"- 맞았을때 폭발을 하고 적에게 불이 붙도록 하는데 사용 (액터에 파티클 시스템 컴포넌트를 만든 후 Spawn 시키는 방식)* 추가로..

[37강] Wizard & Sword Mode

이번시간에는 크게 두 가지를 다룰것이다.  1. Attack 이벤트 분할 정리- Sword Mode Attack / Wizard Mode Attack 분할- End Sword Attacking / End Wizard Attacking 분할  2. Player 의 손에 불 파티클을 줘서 "마법 불"이 손에 붙어있도록 처리  Attack 이벤트 분할 정리 1. BP_Player > 이벤트그래프 > Attacking Event > Attacking 입력 액션 밑에 "End Attacking" 생성, 다음과 같이 세팅 End Attacking 이 Notify 에서 호출되고 각각 처리될 수 있도록 세팅할 예정이다.  2. AN_EndAttacking > Received Notify 다음과 같이 세팅   마법 공격..

[36강] Wizard & Sword Mode

이번시간에는 Mode Exchange 를 구현할 예정이다. - 키보드 "2" 를 입력하여 Sword Mode 에서 칼을 넣고 Wizard Mode로 전환- 키보드 "1"의 입력값에 리턴으로 Wizard Mode 에서 칼을 빼고 Sword Mode 로 전환 1. 노드정리    1) BP_Player > 다음과 같이 코멘트를 추가하여 노드 정리를 해 준다.    2) 변수이름 "Sword" 들어갔던 것들 정리하고 (차후에 구조체로 이용하는게 더 간편하니), 카테고리를 이용해 다음과 같이 보기 좋게 정리   2. 키보드 "2" 를 입력하여 Sword Mode 에서 칼을 넣고 Wizard Mode로 전환1) Boolean 형 "ChangeMagicMode" 변수 생성  2) AN_Unequipped > Rece..

[35강] Wizard Animation

이번시간을 통해서는 Wizard Mode를 구현할 예정인데, 다음과 같이 구현할 것이다. - Unarmed 에서 Wizard 모드로 들어가는 것 - Wizard Animation 을 Combat 파일에 섞는 것  마법모드로 들어가는 입력키 생성 현재 키보드 1번 입력 키로 Sword를 사용 할 때 "Sword Event" 가 사용된다. 같은 방식으로 키보드 2번을 입력했을 때 Wizard Event 도 추가를 하여 준다.  1. 프로젝트 세팅 > 입력 > Action Mappings > "Wizard" 키보드 "2" 추가현재 "Sword" 모드 전환 키가 "1" 이므로, "2"번으로 설정하여 준다.  2. "BP_Player" 에 다음과 같이 세팅해 준다.    1) Custom Event "Start ..

[34강] Wizard Mode

이번시간에는 애니메이션 도 받아서 Retargeting 도 해놓고, 단순히 칼을 쥐었냐 놓았냐가 아니라 combet type 모드를 만들어서 Unarmed, Sword, Wizard 이렇게 해서 작업을 진행할 예정이다  Wizard 모드 생성1. Mixamo에서 ybot 캐릭터가 선택된 상태에서 애니메이션을 다운받는다.   1) wizard idle 검색 Standing Idle    2) wizard walk 검색 Standing Walk Forward, Standing Walk Back, Standing Walk Left, Standing Walk Right    3) wizard Run 검색 Standing Run Forward, Standing Run Back, Standing Run Left, ..

[33강] Sword Trail (Particle & Attach)

저번시간에 만들었던 머터리얼을 파티클에 연결해서 몽타주에서 플레이 하는 방법에 대해 다룰에정이다. 그 후 애니메이션 파일을 정의해 마법사 모드 구현을 진행하겠다. 1. "M_Trail" 의 머터리얼 인스턴스를 생성한다. 2. 파티클 시스템 "P_Trail" 생성 3. 파티클 제작 1) "P_Trail" > "Particle Emitter" > "타입데이터" > "새 AnimTrail Data" 2) Required > Material "M_Trail_Inst" 선택  3) Duration > Emitter Loops "1"* Emitter Loops : 몽타주에 해당 파티클을 붙일 때 무한 루프일때는(0일 경우), 경고가 나오며 제대로 플레이가 되지 않음  4) Lifetime > Distribution..