본문 바로가기
UE5 : Paper 2D (Blueprint)/이동과 전투

[UE5 : Paper2D(BP) - 이동과 전투] Chapter 01. SetActorLocation

by song.ift 2024. 1. 4.

GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/212ecaae21c402fedccf94fab3943f02dc6f3e7f

 

SetActorLocation · developeSHG/UE5-Paper2D@212ecaa

hokyung.song committed Jan 4, 2024

github.com

 

 

 


 

 

언리얼 엔진은 이미 구조가 타이트하게 잡혀있기 때문에, 애당초 BP_Knight라는 것을 만들 때, 캐릭터라는 것을 상속받아서 만들었고, 그렇다는 것은 Movement Component 라는 것이 붙어있다.

이것이 캐릭터 이동과 관련된 기능을 하는 부품이기 때문에, 이것을 이용해서 제어하는게 일반적이긴 하다.

하지만 이번 단계에서는 그냥 Set Actor Location을 이용해서 코드로 일단 움직여보고, 그 다음에 개선점에 대해서 찾아보는 식으로 진행해볼것이다. 

 

 

상하좌우에 따라 Get Actor Location을 이용해 내 현재 위치를 갖고 온 다음, 내가 이동할 방향에 따른 벡터를 구해서 방향 벡터쪽으로 이동하는 코드를 작성.

 

Set Actor Location 옵션 중에서 sweep라는 boolean이 있는데, 설명을 보면 한마디로 뭔가 나를 막는 구조물이 있을 때, 그것을 처리할것인지 즉 뭔가 가다가 막힐 경우에 어떻게 처리할 것인지에 대한 부분 옵션이 있다.

 

 

Set Actor Loaction 이란 것은 직접 계산을 한 후, 좌표를 지정해준 그런 형태라고 볼 수 있다. 물론 옵션으로 중간에 가다 막는 구조가 있으면 더 이상 못간다고 하는 그런 기능이 있긴 하지만..

 

만약 물리가 많이 개입되는 게임이 있다고 가정하자.

예를 들면, 플레이어가 간단하게 이동하는 것이 아니라 이리저리 미사일이 날라오고 미사일을 맞으면 튕기는 물리가 있다고 가정했을 때, 앞 뒤 동시에 타격했다고 하면 서로 어느정도 플레이어한테 밀어주는 힘이 있을 것이고, 그게 상체되어 조금만 밀려야하든지 그런 복잡한 물리 공식이 일어나야 될 수 있다. 

 

배그처럼 차에 떨어진다던지 총알을 맞는다던지 굉장히 많은 물리작용을 할텐데 그것을 Set Actor Loaction을 사용하는 방법은 어느 정도 한계가 든다고 볼 수 있다. 물리공식을 직접 계산하는 것은 엔진을 활용하는 게 아니라 다시 만든다고 볼 수 있는 것이기 때문에, Set Actor Location은 가장 기본적으로 이동을 테스트할 때 사용할 수 있지만, 조금 더 복잡한 이동이 필요하다고 하면, 만들어진 Character Movement를 사용하도록 최대한 유도를 해줘야 된다. 

댓글