본문 바로가기

게임프로그래밍/실습1

[언리얼 실습] 35. 필드 시스템 액터


목차

  1. Field System Actors

1. Field System Actors

 

이번에는 매시를 단순히 떨어뜨리는 것이 아닌 다른 방식으로 부셔보려고 한다.

 

필드시스템으로 부시는 것을 볼 것인데 추후에는 공격시 무기에서 이것과 방식으로 액터를 부실 것이다.

 

 

필드시스템 액터를 기반으로 블루프린트 클래스를 만들어보자.

 

 

그러면 이렇게 필드시스템 컴포넌트를 가지고 있는 클래스가 만들어진다.

 

필드시스템 컴포넌트는 게임물리학에 영향을 끼칠 수 있는 필드를 생성할 수 있는 컴포넌트라고 한다.

 

 

필드 시스템 컴포넌트를 가지고 와 컴포넌트와 Add Transient Field 함수를 연결하자.

 


연결 되었으면 Enable Field 에 체크를 하고 피직스 타입을 External Strain으로 바꾼다.

 

이렇게만 한다고 끝이 아니다. 힘들 어느 정도로 줘야하는지등의 정보도 주어야 한다.

 

방사형의 힘을 주려고 한다. External Strain 타입에 힘을 주려면 Radial Falloff를 통해 힘을 주어야 한다고 한다.

 

 

radial falloff를 검색해 추가하자.

 

 

이벤트 그래프로 가져온 뒤 방사형 감쇠를 설정할 수 있다.

 

 

Magnitude 는 힘의 세기를 말한다. 부실 수 있는 매시는 상당히 강한 힘을 주어야 부실 수 있고 그렇기에 100만의 힘을 주었다.

 

Range는 힘을  주기 전 해당 범위의 숫자 중 랜덤한 숫자를 곱해서 힘을 준다.

 

Sphere Radius는 힘을 뻐칠 수 있는 거리를 말한다.

 

Falloff Type은 감쇠를 적용할 경우 어느 방식으로 감쇠를 적용할지를 지정한다.

 

 

이제 이런식으로 노드들을 연결해주면 된다.

 

이제 이 필드시스템 액터를 부실 수 있는 매시 근처에 배치하면 매시가 부서지는 것을 볼 수 있다.

 

현재는 조각이 눈사람 무너지듯 스르륵 무너지는 것을 볼 수 있는데 스르륵 무너지는 것이 아닌 한쪽 방향으로 힘을 받으며 날라가게 해보고 싶다.

 

그럼 힘들 한번 더 주면 된다.

 

 

이런 식으로 노드를 하나 더 추가하자. 외부 힘을 준 후 선형 힘을 주어 날라가게 할 것이다.

 

선형 힘의 경우도 물론 어느정도로 힘을 줄것인지등을 지정해주어야 한다.

 

 

선형으로 주기위해서는 falloff가 아닌 백터의 값이 필요하다.

 

 

이제 이런 식으로 값을 연결하자. 백터의 경우 더 단순히 지정할 수 있는 것을 볼 수 있다. 이렇게만 하고 재생을 하면 재생이 되지 않는다. 이유는 모르겠지만 처음 외부힘을 주고 약간의 딜레이를 주어야 한다.

 

 

중간에 약간의 시간을 주고 이어서 작동시켜보았다.

 

 

 

선형 힘도 정상적으로 받는 것을 볼 수 있다. 현재 강도가 너무 쌔 강도를 낮춰야 할 것 같다.

 

강도를 낮추고 하나 더 설정할 것이 있다.

 

현재 딱히 영향은 없지만 그래도 만약을 대비해 이 필드 시스템이 플레이어에 영향을 끼치면 안될 것이다.

 

 

메타데이터 필터를 만들자.

 

 

필터를 설정하면 해당 필터에 해당하는 타입만 영향을 줄 수 있다. 파괴가능한 물체에만 영향을 끼쳐야하니 Destuction으로 타입을 바꾸자.

 

 

이제 이제 이 필터를 meta data랑 연결해놓자.

 

이렇게 해서 필드시스템액터를 만들었고 이를 통해 매시를 부실 수 있게 되었다.

 

이어서 공격을 할때 이러한 기능을 구현해볼 것이다.