Unreal/TA&Development

[UE5][BP] Actor Moving, Action Mapping, Timeline

김성인 2024. 4. 9. 00:14

[UE5][BP] Actor Moving, Action Mapping, Timeline

 

 

오브젝트를 이동시켜보자.


 이 작업을 진행하기 전에 간단한 몇 가지 지식을 알고 시작하면 좋을 것 같다.

 3D 게임은 당연히 3D 공간에서 이루어진다.  그렇기 때문에 상하좌우와 앞뒤가 존재한다.

 우선 상하, 좌우에 대해서 알아보자.  상하, 좌우에 쉼표를 넣은 이유는 각 축에 대해서 하나의 값만 이용하면 되기 때문이다.  무슨 말이냐면, 상, 하가 아닌, 좌, 우가 아닌, +상, -상, +좌, -좌 이렇게 하면 두 개의 값으로 4방향을 모두 조정할 수 있다는 것이다.

 다음으로 Normalize에 대해서이다.  Normalize는 Shader 작성에서도 자주 쓰이는데, 정규화이다.  이것은 무슨 말이냐면, 벡터의 방향을 유지한 채 크기가 1단위인 벡터로 만드는 것으로 단위벡터라고도 불린다.  더욱 쉽게 이야기하면, 벡터는 방향 + 길이를 가지고 있는데, 이것을 정규화(Normalize) 시키면 방향만 생각하고 계산하면 된다.  그리고 이것은 이동 관련해서는 항상 쓰인다!

 참고로 Shader에서 Normalize를 시키지 않을 경우, 표면에 맺히는 빛의 양(빛과 표면에 대한 내적 등의 계산)이 원치 않게 틀린 값이 나오는 경우가 존재한다.

 위 작업이 끝이 나면, 방향과 이동을 곱해주고, 일정 시간마다 그 방향과 이동을 더해주면 끝이 난다.  매우 쉽다!

 추가로 일정 거리(일정 시간으로 Delay 사용)를 이동 후, 방향을 뒤집기 위하여 Filp Flop을 이용하였다.


기능을 추가해보자.

 

 내가 원하고 필요로 할 때, 캐릭터가 달리기를 한다든지의 행위를 하는 등의 기능에 대해서 생각해 보자.

 이것 역시 트리거, 이벤트, 액션의 이야기이다.  '내가 특정 키를 눌렀을 때, 달리기를 한다.', '내가 특정 키를 눌렀을 때, 스코프가 작동한다.'

 그렇다면 이번 트리거는 키보드를 누르는 행위이고, 눌렀을 때가 이벤트가 되고, 액션은 달리거나, 스코프가 작동하는 것이다.

 키 매핑(액션 매핑)의 경우 '프로젝트 세팅/입력/액션 매핑'에서 이루어진다.

 액션 매핑에 이름을 넣고, 키를 등록 후, 블루 프린트에 가면 매핑에 넣은 이름의 노드(함수)를 찾을 수 있으며, 눌렀을 때와, 땠을 때를 각각 연결해 주면 된다.  그리고 이 역시 Set 노드(함수)를 이용하여 값을 오버라이딩 한다.

 스코프의 경우 스프린트와 다른 방식인데, 스프린트의 경우 물리적으로 빠르게, 느리게를 관성 없이 Set 노드로 즉시 변경했다면, 스코프의 경우 줄어들고, 늘어나는 연출에서 뚝! 하고 줌인아웃이 되는 것보다 자연스럽게 표현하기 위하여 타임라인을 이용해 보자.

 타임라인의 경우 유니티의 타임라인과 비슷하며, 값을 애니메이션 + 트렌지션을 줄 수 있다.  동시에 값을 뒤에서부터 앞으로 돌리는 'Reverse' 옵션이 따로 나와 있어 요긴하게 쓸 수 있다.

 위와 같이 타임라인에서 트랙에 애니메이션들을 각각 지정해 줄 수 있고, 이 역시 유니티의 타임라인과 비슷하다.  

  • 타임라인의 경우 언리얼과 유니티가 다른 점이 있다면, 크게 두 가지인 것 같다.  하나는 유니티에서는 기본적으로 트랙에 올릴 수 있는 데이터의 종류가 제한적이라는 것이다.  그다음으로 유니티의 타임라인은 생각보다 직관적이고, 프리미어 툴과 같은 영상 편집 툴과 비슷하다.

 

 마지막으로 Branch노드를 사용하여 두 번 총을 맞을 경우, 오브젝트를 파괴 시켜보자.

 Branch는 분기를 뜻하며, 참과 거짓에 따라 노드의 방향을 정해준다.  변수(여기서는 Primed라는 이름으로)를 하나 만들어, 처음 총을 맞았을 때 이 변수에 값을 변경하여, 두 번째 총을 맞았을 때, 사운드와 VFX(이미터)가 스폰 되고, 엑터(오브젝트)가 파괴되도록 만들었다.


 위의 슬롯에 타깃이 되는 데이터들을 올려두면 사운드와 VFX가 나오는 것을 확인할 수 있다.

'Unreal > TA&Development' 카테고리의 다른 글

[UE5][BP] HUD 2/2  (0) 2024.04.16
[UE5][BP] HUD 1/2  (0) 2024.04.14
[UE5][BP] Change Material  (0) 2024.04.09
[최적화] RenderDoc 활성화  (1) 2024.03.27
[UE4] Near clip plane  (0) 2021.11.29