이제 남은 e스킬 현재 각성과 비각성의 차이가 없고 스킬이 너무 심심하다
컨셉은 던전앤파이터의 화룡강림이라는 스킬처럼 큰 둔기가 내려찍도록 해본다
칼이 필요하니 actor클래스인 GreatSword 액터를 하나 만들어준다
사용할 둔기이다
문제가 있다 현재 피벗이 무기에서 벗어나서 밑에 있다 피벗을 한번 맞춰보도록 해주자
모델링 모드를 클릭후에
xForm의 EditPivot
마우스 휠을 누른상태로 이동시켜준다
손잡이 부분에 옮겨주고 저장 그러면 피벗이 영구 변경된다
부모역할을 해줄 scene컴포넌트와 칼로사용할 스태틱메시컴포넌트를 선언해준다
씬 컴포넌트를 만들고 루트컴포넌트로 바꾼다음
swordComp이라는 스태틱메시 컴포넌트를 만든뒤 루트컴포넌트에 붙히고
컨스트럭터헬퍼로 에셋을 지정해주는 코드이다
씬 컴포넌트가 루트컴포넌트로 하지않고 스태틱메시컴포넌트가 루트컴포넌트면
블루프린트내에서 이상하게 scale만 변경가능하고 rotation이나 location값들을 바꿀수없다
그래서 루트컴포넌트는 씬컴포넌트 그리고 그 밑에 붙혀주도록 했다
잘들어간 모습을 확인할수있다
그럼 이제 이 칼날을 피벗(손잡이) 기준으로 회전시켜보자
회전을 할려면 rotation을 변경하면된다
기초적인 180도 회전시키는 코드이다
AddLocalRotation으로 rotStep만큼 회전하는 코드이다
회전은 잘 된다 그런데 보통 칼을 내려찍을떄 점점 가속도가 붙어서 점점 빨리 내려찍는게 맞다고생각
회전을 InterpEaseIn 즉 느리게 시작해서 점점 빨라지게(InterpEaseOut은 빨리시작해서 느리게)
InterpEaseIn을 사용해서 느리게시작해서 빨리로 바꿔보도록 하자
간단하게 지금 코드의 회전속도를 점점 빨라지게 하면된다
변수를 선언해주도록 하자
currentRot = 현재까지 회전한 각도이다
bIsRotatingNow = 회전중인지 나타내는 플래그이다
totalRot = 최종으로 회전할 각도이다 (지금은 180도)
rotationDuration = 회전에 걸리는 총 시간 (초 단위)이다
elapsedTime = 회전이 시작된 이후로 흐른 시간이다
slowExponent = 회전,속도의 가속도를 조절하는 계수이다
180도만 회전할꺼기때문에 bIsRotatingNow플래그 변수를 확인뒤
elapsedTime에 tick의 Deltatime을 누적
alphaTime에 전체 회전 시간에 대한 지금 시간의 비율 그런데 0에서 ~ 1로 제한
moveAlphaTime에 InterpEaseIn함수를 사용해서 0부터 1까지 점점 빨라지는 보간이동 계산
targetRot 은 목표 회전량계산한다 총 회전각에 보간값 즉 slowExponent계수를 곱하면됨
rotStep 은 목표회전량에서 현재회전량을 빼줘서 한 프레임 회전값을 가져옴
swodComp에 로컬 회전을 적용시켜준다 pitch방향으로!
회전량을 업뎃하고 회전이 끝나면 회전을 종료한다
이런 코드이다
임시값을 두고 3초(rotationDuration)동안 slowExponent 4의 계수로 EaseIn 이동을 확인해보자
비긴플레이할때 해당값으로 초기화하게 해줬다
EaseIn설정값 때문에 점점 가속하며 빨라지는걸 확인할수있다
이제 값을 좀더 강하게 줘보자
0.7초동안 1
0초의 보간계수값으로 이동하는걸로 값을 줘봤다
(전 움짤은 피벗이 오류로 다시 롤백되버려서 다시 피벗을 수정후 값을 수정해줬다)
괜찮은 값을 찾은거같다
그러면 만든 칼을 플레이어에게서 나가게 해보자
일단 만든 칼이 플레이어한테 부딪히면 안되니 해당 둔기는 NoCollision으로 바꿔주도록 하겠다
NoCollision으로 설정해주어 아무데도 충돌이 일어나지않게 설정해준뒤
(캐릭터와칼이 충돌하면 안됨, 또한 내려찍는 임팩트는 따로 처리를 해줄 예정)
캐릭터의 e스킬 점프했을때 스폰시켜보자
역시 노티파이로 돌아가보자
이미 ESkillJumpStart라는 노티파이를 만들어놨다
(캐릭터 발사이동 할때 썻었던 노티파이)
다시 캐릭터로 돌아와
TSubclassOf로 액터를 들고오고
스폰시킬 함수도 만들어준다
바닥 60 그리고 캐릭터 앞 방향에서 SpawnActor함수로 스폰시킨뒤
라이프스폰을 1.5초로 주어서 1.5초뒤 없어지도록 한다
워낙 칼의 움직임이 짧으니 gif의 짧은 프레임만으로는 다 못담아내 영상도 넣어본다
그러면 이제 알맞은 카메라 쉐이크도 추가해주자
파티클/나이아가라도 추가해주자
이제 각성모드폼을 만들어보자
좀더 크게 전기 이펙트로
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
Unreal 적 - 피격 리액션(경직) 구현하기 (0) | 2025.04.08 |
---|---|
Unreal 캐릭터 - Overlap이벤트, 공격위치 판별하기 (0) | 2025.04.06 |
Unreal UI - 프로그래스바 모양 변경하기 (1) | 2025.04.05 |
Unreal 캐릭터 - AOE 스킬범위 (0) | 2025.04.04 |
Unreal 캐릭터 - 인디케이터/스킬범위, 데칼 (0) | 2025.04.04 |