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

[32강] Sword Trail (Material)

이번에는 Trail System (Particle Trail) 을 이용하여 칼의 궤적 표현을 구현할 예정이다.다음 글에서는 Trail 이 대략 어떻게 동작하는지 Trail 을 대략 어떻게 사용할 수 있는지에 대해 다루고, 이번 글에서는 Trail에 들어갈 머터리얼을 제작하며 머터리얼에 대한 가벼운 이론정리를 간단하게 나마 진행할 것이다.  Particle Trail 만들기 1. "Weapon" > "M_Trail" Material 생성 (파티클 색을 표현하기 위한 머터리얼 생성)  머터리얼 기본 설명 - 베이스 컬러 : 기본 색상 - 메탈릭 : 금속 재질 표현하기, 반사정도 - 스페큘러 : 하이라이팅되는 반사되는 부분 - 러프니스 : 얼마나 거칠게 표현될지, 거칠기 정도 - 이미시브 컬러 : 외곽선 표현..

[31강] Particle Effect

이번 강의에서는 번개 효과를 작업할 예정인데, 이미 만들어진 어셋을 어떻게 가져오고 편집하는지에 대해 다룰것이다.  그리고 콤보 공격 마지막 타격에서 번개 효과가 플레이 되도록 구현할 것이다.  * Particle Effect : 입자를 플레이시켜 효과를 내는 시스템사실 파티클을 제대로 만드는 것은 디자인팀의 영역이긴 하지만, 이번시간에는 편집하고 사용하는 법에 대해 다루고 다음시간에는 "Sword Trail" 이라는 파티클을 만들며 익혀보도록 할 예정이다.  이펙트 가져오기 1. Infinity Blade Effects > Maps > "Overview" map 열기 " Infinity Blade Effects "는 저번에 다른거 진행할때 가져왔던 무료 콘텐츠인데, 이걸 활용하여 작업을 해 줄 예정이다..

[30강] Player Combo - 4

콤보 동작 퀄리티 높이기동작이 뚝뚝 끊기는 이유는 "EndAttacking" 노티파이에서 콤보가 있는지 체크해서 이기 때문에, 그 앞에 Combo가 있는지 체크하는 Notify를 하나 더 생성할 예정이다. 그래서 Call이 되면 "End Attacking" 보다 빠르게 더 먼저 다음 동작을 처리할 수 있도록 할 예정이다. 따라서 콤보 입력이 있었다면 다음 동작(CheckNextCombo) 로 넘어가고, 없었다면 "End Attacking" 이 처리될 수 있도록 해야한다.  1. Nofity > "AN_CheckNextCombo" 생성 후 다음과 같이 세팅하여 준다. 1) GetNotifyName2) Received_NotifyBP_Player > Attacking Event > CustomEvent "C..

[29강] Player Combo - 3

콤보구현 지금까지 콤보 들어가는 입력을 열었는데, 이 구현을 기반으로 콤보 입력 액션 진행시 콤보 카운트를 올려주고, 콤보 카운트에 따라 다음 콤보 애니메이션을 플레이 해 주는 작업을 진행하도록 하겠다. 현재는 Attacking 입력 액션이 일어났을때 첫번째에서 Enable Next Combo가 무조건 Flase고 Can Attack 은 True가 되어 들어와 Attacking이 일어난다. 그리고 애니메이션 몽타주가 플레이 되게끔 되어있다.이제 Animation Notify 에 의해서 Enable Next Combo가 True가 되어있었다면, True 로 빠져서 진행이 될 것이기 때문에 이 부분을 구현하여 주면 된다!  1. Integer변수 "SwordComboCount" 를 추가개수만 카운트 되어 질..

[28강] Player Combo - 2

이번시간에는 콤보를 구현하고, 더 자연스럽게 만드는 방법에 대해 다룰 예정이다.이 단계를 진행함에 앞서서 저번시간에 다루었던 "구조체" 에 관한 내용을 다시 정리하자면 다음과 같다. 구조체 : 여러개의 변수를 묶어서 관리하기 위해 사용, Break 명령어를 써서 구조체의 변수 각각 하나씩을 다룰 수 있으며 식별이 쉽게 하기 위해 접두사 f를 붙여 사용한다. 또, 본격적으로 구현을 진행하기에 앞서 "열거형" 을 사용하여 이전에 작성해두었던 코드들을 정리하도록 하겠다. 회피 등 다양한 플레이어 콤보를 구현함에 있어 여러가지 "상태" 가 등장하는데, Boolean변수(불 변수)가 너무 많아지면 처리가 어렵기 때문에 열거형을 사용하여 상태를 정리하도록 하겠다.  * 불 변수들 열거형은 접두사로 알파벳 "E" 를..

[27강] Player Combo - 1

언리얼에 CSV 데이터시트 불러오기 1. "Plyaer" 폴더에 블루프린트 > 구조체 "FComboTable" 생성* 구조체 : 변수들을 묶어서 다시 변수 취급해줄수 있도록 하는 기능  2. CSV 파일의 변수이름을 참고하여 다음과 같이 생성 - AnimMontage형 "Montage"  - Float형 "PlayRate"- Name형 "StartSectionName"- Boolean형 "CanMove" * 자료형 Name : 이름을 지정할 때 사용(대소문자 구분 없음)String : 글자 두자 이상의 문자열을 변수로 다룰 때 사용Text : 현지화 가능 텍스트(잘 사용하지는 않음) 3. Player > 데이터 테이블 임포트 1) 임포트 > 이전에 넣어두었던 파일 찾기  2) 임포트 > 데이터 테이블 C..

[26강] Damaged Enemy - 4

이번 강의를 통해서는 최종적인 사망 처리를 완료하고, Enemy가 피격당한 후 맞는 동작을 처리할 예정이다. 그 후 데이트 시트 (플레이어 콤보에 사용할 데이터를 만드는 작업) 을 진행할 예정이다.  사망처리 현재 구현에는 버그가 있는데, 이미 사망한 상태에서 맞았을때 계속 사망을 처리한다는 것이다. 사망에 한번 들어갔다면, 더 이상 사망을 반복할 필요가 없다. 사망에 한번 들어간 후 이를 반복하지 않게 처리하여 주어야 한다. 예를들어, 변수를 활용해 처리하는 방법이 있다.  지금 사용할 방법은 흐름을 제어하는 것이다. Google 에 언리얼 흐름제어 관련해 써치를 진행하면 Do any / While / Sequence / For each / Gate 등이 뜬다. 이런것들이 프로그래밍에서는 그냥 구현하면..

[25강] Damaged Enemy - 3

색을 변경 한 후 일정시간 뒤에 색이 원래대로 돌아오는 것을 구현  1. 다음과 같이 그래프를 연결함 - Delay 함수를 이용하고, Duration 값을 0.1을 주어 0.1초 뒤에 "Change Material" 함수 실행  2. "Color" 값에 Enemy Material 의 원래 16진 선형 값을 복사, 붙여넣기 해 설정해줌   플레이를 해 보면 0.1초뒤에 원래 색으로 돌아오는것이 정상적으로 확인된다.  3. 새로 만든 부분을 다음과 같이 "Change Color" 로 정리하여 둔다   1. 사망처리를 위해서는 애니메이션 몽타주가 필요하다. 믹사모에서 애니메이션을 다운받아 변환하여 탐색기에서 표시 > 엔진에 넣어준다.  2. 생성 > 애님몽타주생성 Montage 파일로 옮기기 3. 몽타주에 넣..

[24강] Damaged Enemy - 2

이번 강의에서는 저번에 다루었던 피격처리를 이어서 진행하고, 저번시간에 하다 말았던 HP바 시스템을 완성할 예정이다.  또한, 적(Enemy)이 공격당했을 경우 공격한 플레이어(Attacker)를 바라보도록 하고, 피격 후 붉은 색으로 바뀌었다가 돌아오는 것을 작업할 예정이다.    저번 강의에서 Progress Bar 의 설정을 마쳤는데 HealthBar로 Rename 하여 준다 Enemy 폴더 > WB_HealthBar* Rename 단축키 : F2컨트롤을 선택했을 때 오른쪽 위의 IsVariable이 체크되어 있다면 변수로 취급되며 "그래프" 탭으로 넘어갔을 때 입력을 받을 수 있는 컨트롤들이 자동으로 변수로 등록이 된다.  그래프 탭에서 다음과 같이 "HealthBar" 변수가 등록되어 있는 것을..

[23강] Damaged Enemy - 1

"Damaged Enemy" 강의를 통해서 다음과 같이 데미지 처리에 대해 익힐 예정이다. - 데미지를 전달하고 받는것 - HP를 경감시키고 경감시킨 HP를 출력 첫 단계로서 오늘은 적에게 칼을 쥐고, 피격 처리를 진행할 예정이다. 적인 Enemy "Skel_Mannequin" 에 칼을 쥐게 할 건데, Enemy 의 경우 칼을 계속 쥐고 있을 것이기 때문에 Right hand에 다음과 같은 방법으로 에셋을 추가할 것이다.  1. Sword 에 붙어있는 asset을 제거 (Player 작업을 하며 생성됨) 2. Hand 아래에서 소켓 추가  > "GreatSword" 로 이름 변경   플레이어보다 칼 크기를 크게 진행 할 예정이므로 다음과 같이 설정하여 준다.   미리 보기를 위해 아까 제작한 GreatS..