무기 Trail 구현
BP_Weapon를 상속한 BP_Sword에서 SocketOnTrailStarted / SocketOnTrailEnded 두 개의 변수에 각각 Sword의
SkeletalMesh 중 start / end 소켓을 지정해줬다.
그리고 Trail 컴포넌트의 Particle Template에 사용하고자할 파티클을 선택했다.
마찬가지로 Effect 컴포넌트의 Particle에도 원하는 파티클을 선택해준다.
그리고 해당 컴포넌트의 스케일을 통해 이펙트의 크기를 조절해줄 수 있다. (Effect 스케일 : 0.5)
Particle 컴포넌트의 Attachment의 Auto Manage Attachment를 활성화하고 소켓 이름 자동 어태치에 원하는 소켓 입력 시,
해당 파티클이 지정한 소켓에서 나오게할 수 있다. (Effect - Attachment)
Begin Trails
- In First Socket Name : Trail의 시작지점이 될 첫 소켓의 이름
- In Second Socket Name : Trail의 끝지점이 될 두번째 소켓의 이름
- In Width Mode : Trail의 너비가 어떻게 적용될지 여부
ㄴ From Centre : 센터
ㄴ From First Socket : 지정한 첫번째 소켓
ㄴ From Second Socket : 지정한 두번째 소켓
- In Width : 너비에 대한 비율(%)
Activate
- Reset : 다시 해당 함수의 기능 호출 시, Reset 여부
Teleport 스킬 이펙트 구현
BP_Teleport 이벤트그래프에서 EndAction A 이벤트 호출 후, SetActorLocation으로 순간이동 후,
Spawn Emitter Attached 함수를 추가하여 이펙트를 표현할 것이다.
Spawn Emitter Attached
지정한 컴포넌트에 따라 Emitter Template로 지정된 이펙트를 재생시켜주는 함수이다.
- Emitter Template : 본인이 지정한 파티클
- Attach to Component : Scene Component 오브젝트 레퍼런스
- Attach Point Name : 원하는 소켓에서 파티클을 붙혀서 표현할 수 있음
- Auto Destroy : 재생 끝나면 Emitter 삭제 여부
- Auto Activate : 생성 시 컴포넌트 활성화 여부
이후 BP_Character의 BeginPlay이벤트에서 스킬 생성과 동시에 캐릭터에 붙혀주어야 Teleport 이펙트가 캐릭터 위치에서
나타날 수 있다.
따라서 Skill 생성 후, AttachActorToMesh를 통해 스킬의 기본 위치를 지정해주었다.
* SocketName을 따로 지정해주지 않으면 기본으로 대상의 Root 본에 붙는다.
Teleport 이후의 카메라 무빙 수정
Camera가 조금의 딜레이를 두고 Character를 추적하는 효과를 표현하고자 한다.
BP_Player의 SpringArm에 있는 Enable Camera Lag를 활성화해주면 된다.
- Enable Camera Lag : 카메라 무빙에 조금의 딜레이를 거는 것과 비슷하다.
- Camera Lag Speed : 설정에 따라서 무빙 딜레이가 달라진다. (한 프레임마다 따라붙을 퍼센트)
- Camera Lag Max Distance : Speed를 너무 낮춰 카메라의 추적이 느려질 경우를 대비하여, 카메라와 캐릭터 사이의
거리에 최대값을 고정하는 것
Wizard 블렌드 스페이스(BS_Wizard) 적용시키기
ABP_Character에서 매 초마다 계속 스킬의 활성화 여부를 검사하기엔 비효율적이므로, BP_CharacterAnimationInterface에서 함수 SetSkillActivated를 하나 추가해주었다. (함수 입력에 bSkillActivated(Boolean) 추가)
그리고 ABP_Character 이벤트그래프에 SetSkillActivated 이벤트를 추가한 후, SkillActivated를 변수로 승격하여
만들어진 bSkillActivated 변수에 값을 저장한다.
BP_Character의 Skill 로직 부분에서 SkillNow를 결정해줌과 동시에 Mesh - Get Anim Instance - Set Skill Activated를
호출시켜준다. 여기서 받아오는 Boolean 값은 입력한 Skills와 SkillNow가 일치하는지의 결과값을 받아오게 된다.
이제 ABP_Character의 AnimGraph에서 bool로 포즈 블렌딩을 사용한다.
bSkillActivated 변수 값을 Activate Value로 가져와서, True 포즈라면 BS_Wizard를, Flase 포즈라면 기존 블렌드 포즈가
나오도록 설정하였다. (True / False 블렌드 시간 : 0.25)
'언리얼엔진' 카테고리의 다른 글
36. SetTimerbyEvent / 이벤트 생성 (0) | 2023.06.25 |
---|---|
35. FireStorm 스킬 / 삼각함수를 이용한 회전 / RotateVectorAroundAxis (0) | 2023.06.22 |
33. 텔레포트 이동 / 무기 공격 이펙트(Trail / Effect) (0) | 2023.06.20 |
32. 캐릭터 스킬 로직 / 텔레포트 / 스킬 애니메이션 (0) | 2023.06.20 |
31. Dodging, 원거리 무기 충돌 수정 / 스킬 구현 (0) | 2023.06.18 |