Unreal 캐릭터 - AOE 스킬범위

2025. 4. 4. 22:29·Unreal 프로젝트 다이어리/첫번째 프로젝트

 

스킬가능범위인 aoe를 만들어보자

스킬범위를 보여줄 원 이미지를 하나 구하고

저번에 만들어놓은 인디케이터 메테리얼을 복사후 이미지를 변경해준다

노드연결!

 

이렇게 나온다

그리고 안쪽을 채워줄 원을 구한다

중앙원을 차지할 이미지또한 구하고

데칼 메테리얼로 바꿔준다

메테리얼 파라미터컬렉션도 늘려준다

아우터 바깥쪽의 경계선 원 테두리를 좀더 빛나고 진한색으로 하기위해

이미시브컬러에 multiply해줬다

색상도변경해주고

좌측은 바깥쪽테두리 outer

우측은 안쪽을 채워줄 center

이렇게 두개가 준비되었다

역시 이 aoe원도 사용을 많이 할 예정이기때문에 c++클래스로 제작해준다

역시 decalActor으로 제작을 해준다

블루프린트클래스로 만들어주고

데칼을 추가후

블루프린트내에서 center와 outer를 합쳐준다

데칼 센터의 크기를 조절해서 딱 outer의 크기와 맞춰준다

지금보면 center의 색이 너무 짙은거같다 이러면 인디케이터원이 나와도 보이지않으니 수정하자

투명도는 opacity값을 수정하면된다

오파시티값에 0.01을 곱해줘서 더욱더 연하게 만들어줬다

이제 괜찮아졌으니 r스킬에 적용해보자

추가해주고

 

참조할 skillAOEDecal과

스폰시키고 없애줄 함수와 스폰시킬 aoe원을 정의해준다

그리고 플레이어컨트롤에서

선언후플레이어 컨트롤러에서의

문장을 추가해주고

플레이어틱에서

계속 위치를 바꿔줄코드를 작성

이렇게만들면

원이 잘 나온다

움직여도 잘 따라오는 모습을 확인할수있다

이제 원 안에서만 인디케이터가 파란색이고 원밖에서는 인디케이터가 빨간색으로 바뀌는걸 해보겠다

그럼 aoe의 원 범위를 먼저 구해야했다

aoe의 x축 y축만 계산하면되고 우측 좌측이든 위쪽 밑쪽이든 절대값을 구해서

정해둔 aoe크기보다크면Cursor is inside the AOE!로그 작으면 Cursor is outside the AOE!로그를 출력해서

확인해보도록했다

aoeRadius구하는건 로그를 보면서 조금씩 수정했다

이제 원의 범위도 구했으니 원의 범위를 따라 인디케이터원의 색을 변경해보도록하겠다

인디케이터원의 색은 미리만들어둔 메테리얼 파라미터 컬렉션의 color값에 따라 바뀌니 원밖으로 나가면

색을 바꿔주도록 하겠다

파라미터컬렉션 값을 추가해줬다

0번인덱스를 파랑 1번인덱스를 빨강으로 설정해주고

내가만든 인디케이터 C++에 추가하자

setMPCScalar1Value는 1번째 인덱스 즉 빨강색으로 변경하는함수

setMPCScalar0Value는 0번째 인덱스 즉 파란색으로 변경하는함수 이다

빨강색으로 변하게하는 함수이다

mpcLoad에

레퍼런스복사한 주소를 넣고

내가 지금 첫번째 파란색벡터일때 ->SetVectorParameterValue로 빨간색으로 바꿔준다는 코드이다

 

잘바뀌는걸 확인할수있다

이렇게 전역변수로 고정된 색을 저장하기위에 하나 선언후

파랑에서 빨강되는 함수에

이렇게 getvectorparametervalue해서 지정된값을 넣어주고

빨강에서 파랑가는 코드는 복원만 해주면된다

그러면 이제 원밖으로 나갔을때 함수만 호출하면 된다

조건문에 넣어주면완성

사거리안일때는 파라미터컬렉션의 0번인덱스값인 파란색 값으로 바뀌고

사거리밖일때는 파라미터컬렉션의 1번인덱스값인 빨간색 값으로 바뀐다

그런데 문제가있다

이런식으로 계산을 하면 모서리의 경계선에서 값이 애매해줄수있으니 dist로 거리를 재는 방식으로 바꿔주겠다

이렇게 Dist로 계산하는방식으로 변경

이제 경계선을 칼같이 구분한다

파랑->빨강 갈때가 아니고 빨강인 상태에서 끝나면 계속 빨강인 문제가있다

여기서 좀 많이 해맸던거같다

조건의 위치를 찾는게 진짜 힘든거같다 ㅋㅋ..

디스트로이 되고난뒤에 setmpcscalar0value를 하니깐 튕겼었던것이다

이거때문에 꽤나 애먹었지만 이젠 괜찮다

이러면 이제 r을 땟을때 초기 파란상태로 돌아와서 바깥에서 빨간상태로 종료되도 다시 파란색 원초로 돌아가서

코드는 잘 돌아간다

 

그러면 파란색일때만 공격가능하도록 바꿔보겠다

이렇게 조건을 넣어주면

짜잔 이러면 잘 작동한다

이제 다음에는비각성모드일때는 지금사거리 각성모드일때는 사거리가 늘어나게 만들어보자

spawnAOEDecal에 매개변수 spawnSize를 추가해줘서 매개변수로 크기를 제어한다

플레이어 컨트롤러에 있는

r키 홀딩할때의 전제에서 매개변수값을 변동시켜주고

원의 크기를 변경한다

각성모드를 키면 스킬범위가 넓어지고 원래 로직대로 잘 작동하는걸 확인할수있다 

몇몇 나이아가라는 애니메이션 몽타쥬에서 스폰해주고 마지막 검격베기는 카메라쉐이크와 나이아가라를

직접스폰해야하니 애님노티파이에서 작성해줬다

#include "NiagaraFunctionLibrary.h"

#include "NiagaraSystem.h"

를 꼭 인클루드 해주고

 

 

나이아가라 이펙트가 기본적으로 뒤를 베는거라 180도 돌려주었고 앞방향 50으로 바꿔준뒤

1.6의 크기로 UNiagaraFunctionLibrary에서 SpawnSystemAtLocation으로 나이아가라 스폰을 해주었다

카메라쉐이크도

연동해주면

'Unreal 프로젝트 다이어리 > 첫번째 프로젝트' 카테고리의 다른 글

Unreal 캐릭터 - 물체 가속회전(EaseIn),피벗 위치변경, 액터스폰  (0) 2025.04.06
Unreal UI - 프로그래스바 모양 변경하기  (0) 2025.04.05
Unreal 캐릭터 - 인디케이터/스킬범위, 데칼  (0) 2025.04.04
Unreal 캐릭터 - 비네트효과  (0) 2025.04.04
Unreal 캐릭터 - 줌인/줌아웃, 타임딜레이션, 번개 나이아가라  (0) 2025.04.04
'Unreal 프로젝트 다이어리/첫번째 프로젝트' 카테고리의 다른 글
  • Unreal 캐릭터 - 물체 가속회전(EaseIn),피벗 위치변경, 액터스폰
  • Unreal UI - 프로그래스바 모양 변경하기
  • Unreal 캐릭터 - 인디케이터/스킬범위, 데칼
  • Unreal 캐릭터 - 비네트효과
lucodev
lucodev
언리얼 포폴개발 일기
  • lucodev
    루코 개발테이블
    lucodev
  • 전체
    오늘
    어제
    • 분류 전체보기 (212) N
      • Unreal 프로젝트 다이어리 (109) N
        • 첫번째 프로젝트 (73)
        • 두번째 프로젝트 (36) N
      • Unreal 팁 (8)
      • Unreal 디버깅 (8)
      • C++ 프로그래머스 (52)
        • Stack,Queue (7)
        • Hash (4)
        • Heap (2)
        • Sort (5)
        • Exhaustive search (5)
        • Greedy (2)
        • BFS , DFS (7)
        • Graph (2)
        • Dynamic Programming (1)
        • C++ Math (2)
        • 기타 문제 (14)
      • C++ 백준 (4)
      • C++ 팁 (1)
      • 개인 코테 & 스타디 <비공개> (29)
        • 코드 개인보관함 (9)
        • 코딩테스트+@ (11)
        • 알고리즘 스타디 (6)
        • 알고리즘 스타디 과제 (3)
        • 비공개 (0)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 링크

  • 공지사항

  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 태그

    언리얼 컷씬
    unreal 모션매칭
    언리얼 parkour
    언리얼 인벤토리
    unreal 시퀀스
    언리얼 ui
    unreal
    unreal 인벤토리
    언리얼 시퀀스
    unreal 파쿠르
    Unreal Parkour
    언리얼 파쿠르
    unreal inventory
    언리얼 behavior tree
    언리얼 모션매칭
    언리얼 motionmatching
    언리얼 비헤이비어트리
    언리얼 프로그래스바
    언리얼
    언리얼 behaviortree
  • hELLO· Designed By정상우.v4.10.3
lucodev
Unreal 캐릭터 - AOE 스킬범위
상단으로

티스토리툴바