INTRO.
Unreal Engine 4, Blue Print (비주얼 스크립팅)에 대한 이벤트 정리글.
UE4 이벤트 정리 공식문서
알아야 할 점.
- 변수 를 노드로 끌어오면 변수 값을 설정할 수 있는 Setter 노드와 Getter 노드를 선택해서 만들수있다.
- Self 자기 자신(이 블루프린트가 붙어있는 Actor/Object)을 노드로 만들 수 있다. Self 검색하면 나오는 '자기 자신 레퍼런스' 선택.
- 커스텀 이벤트는 해당 커스텀 이벤트를 호출해주는 함수 노드를 추가해 주어야 이벤트를 발생시킬 수 있다.
Event
Begin Play
Tick
- 매 프레임마다 발생하는 이벤트.
- Delta seconds를 출력한다. (프레임간의 경과된 시간을 초 단위로 출력한다. 첫번째 프레임과 두번째 프레임 사이에 20ms가 경과 되었다면, Delta Seconds는 0.02로 출력된다.)
Actor Begin Overlap
- Trigget 충돌 이벤트 처럼 이 액터가 다른 액터와 겹칠때 발생하는 이벤트. (Collision 설정하여 캐릭터가 버튼을 밟는다던지, 특정 공간에 할당되어있을때 발생하는 이벤트.)
Any Damage
- 나 자신에게 어떤 데미지를 가하는 이벤트가 들어왔을 때
- Damage => 들어온 데미지의 양을 나타냄.
Keyboard / Mouse 입력 이벤트
- Left Shift: 이 블루프린트로 만든 액터를 입력 및 조작할 때 Shift 키보드 입력이 들어올 때 발생하는 이벤트.
- Forward Backward: 이 블루프린트로 만든 액터를 입력 및 조작할 때, 매 프레임마다 액터의 Forward Backward 방향 축의 값(float) 을 리턴함.
- Left Right: 이 블루프린트로 만든 액터를 입력 및 조작할 때 매 프레임마다 액터의 Left Right 방향 축의 값을 리턴.
- Left Mouse Button: 이 블루프린트로 만든 액터를 입력 및 조작할 때 마우스 좌클릭 입력시 발생하는 이벤트
Character Only
- 땅에 착지한다던지 등등 Character 항목 참조.
컴포넌트 이벤트
Collision
- Overlapped Actor: 해당 Collision components 를 가진 액터.
- Other Actor: 충동한 다른 액터.
- On Component Begin Overlap: 호출한 콜리전 컴포넌트에 다른 액터가 겹치는 순간 "한번" 발생하는 이벤트.
- On Component End Overlap: 호출한 콜리전 컴포너틑에 다른 액터가 더 이상 겹치지않고 빠져나가는 순간에 "한번" 발생하는 이벤트
Keyboard Event: 예를들어 A 노드를 추가하면 A 키에 대한 레퍼런스 노드가 생성됨.
Enable Input: 기본적으로 언리얼엔진은 액터가 Input 을 받아들이는게 비활성화 되어있는 상태라, 키보드 입력을 받으려면 이 노드를 추가해 주어야 한다. Controller로 Get Player Controller 리턴값을 연결.
Disable Input: 'Target' 으로 들어온 Actor 의 Player Controller에 대하여 입력을 비활성화 한다.
이 노드를 연결해주면 해당 액터는 더 이상 키보드, 마우스 입력을 받을수 없다.
사용자 지정 입력 축(Axis Mapping)
- Axis Mapping 추가하기
Add Movement Input
- 캐릭터 같은 Pawn 의 경우 SetActorLocation 처럼 Transform Vertor 위치 값을 변경해주는 방식이 아닌, 이 노드를 사용하여 이동해야 액터끼리의 충돌 처리가 된다. 타켓은 Pawn 만 연결가능.
- 입력 값을 리턴하는 핀과 Scale Value 핀과 연결해주면 입력에 따라 움직일 수 있게된다.
현재 위치로 부터 Scale Vlue (float)의 크기만큼 World Direction 방향으로 이동하게 된다.
보통 World Direction에 Nomalized 한 방향 벡터를 연결해준다.
String
- Print String
노드에 적힌 메세지를 화면에 출력한다.
- Build String
문자열로 변환해주고 또한 이를 Append To 문자열에 이를 붙여준다.
Append To + Prefix + (문자열로 변환하고자 하는 데이터) + Suffix 순으로 붙여진 하나의 문자열을 리턴.
- Set Actor Location
액터의 트랜스폼 위치를 지정한다
타겟의 위치를 New Location 위치로 지정한다.
- Set Actor Rotation
액터의 트랜스폼 회전 값을 지정한다.
타겟의 회전값을 New Rotation 값으로 지정한다.
-
Get Actor Location
액터의 현재 위치를 리턴한다.
-
Add Actor World Rotation
해당 값만큼 더하여 회전한다.
-
Make Transform
트랜스폼을 생성한다. (Location, Rotation, Scale)을 입력으로 받아 하나의 Transform으로 생성 및 리턴
-
Get World Location
입력 받은 컴포넌트의 위치를 리턴
Utility
-
Delay
지연 시간을 둔다.
-
Branch
IF 문과 같다. Return Boolean Type (True False 에 따라 실행시킬 노드에 핀 연결)
-
Cast (형 변환)
입력으로 들어온 오브젝트를 해당 유형으로 형 변환하여 리턴할 수 있다.
-
Print String
입력받은 String 을 화면에 출력한다. (Debugging 에 유용)
-
Get Display Name
입력받은 Object의 이름을 리턴.
-
Destroy Actor
입력받은 액터를 삭제한다.
-
Actor Has Tag
입력 받은 액터의 Tag 배열에 해당 원소가 있다면 True 리턴, 없다면 False 리턴.
-
Get All Actors with Tag
해당 액터 Tag를 가진 모든 액터들을 배열에 담아 리턴.
-
IsValid
오브젝트 레퍼런스를 입력 받은 후, 이 레퍼런스가 유효할때의 출력 실행 핀, 유효하지 않을때, 출력 실행 핀.
유효하다 => 레퍼런스가 참조하는 모든 오브젝트가 존재한다.
유효하지 않는다 => 레퍼런스가 아무것도 참조하지 않는다.
-
스위치
입력으로 들어온 Enum 변수의 값ㄷ에 따라 이 Enumeration 에 속한 Enum 상태들 중, 입력으로 들어온 Enum 변수의 값과 일치하는 상태와 연결된 실행 핀 와이어를 실행한다.
-
배열 만들기
입력 핀으로 원소들을 각각 지정한다.
입력 받은 원소들로 배열을 만든 후 Array 출력 핀으로 이를 출력한다
-
ForEach
For문 돌릴 배열을 입력 받는다.
입력 받은 배열의 모든 원소들 하나 하나에 대해 반복을 진행한다. 배열의 모든 원소 순회가 끝나면 자연스레 종료 됨.
- Loop Body : 일반 실행 핀과 동일. foreach 문이 돌건 말건 반복 시켜 놓고 바로 다음 실행.
- Array Element : 매 반복의 원소
- Array Index : 매 반복의 인덱스
- Completed : foreach 문이 다 끝나면 실행 되는 핀
Set Timer by Event
시간(float)과 호출 시킬 이벤트를 입력 받는다.
시간(Float)을 입력 받아, 해당 시간을 타이머로 하여 이 시간이 지나고난 후에 입력 받은 이벤트를 호출한다.
Set Timer by Function
입력 받은 시간이 지나고 난 후에 입력 받은 이름을 가진 함수를 실행한다.
Looping에 체크 했다면 입력 받은 시간 주기마다 해당 함수를 실행시킨다.
Clear Timer by Function Name
Timer 를 중지시킨다.
돌아가고 있는 Timer가 있는 Object를 입력으로 받고(안 주면 기본적으로 self. 같은 블루프린트) 입력으로 받은 함수 Timer 를 더 이상 돌지 않게 한다.
-
Get All Actors of Class
해당 레벨의 특정 클래스 타입인, 혹은 그 특정 클래스의 자식 타입인 모든 Actor 들을 찾아 배열에 담아 리턴한다.
따라서 레벨에 액터가 많다면 성능에 부하가 생길 것이다.
유니티의 FindObjectOfType 같은 함수인듯 하다.
-
Set Actor Tick Enabled
입력 받은 액터의 Tick 이벤트를 활성화/비활성화 할 수 있다.
즉, 입력 받은 액터들이 매 프레임마다 하는 기능들을 정지시킬 수 있다
Physics
- Set Simulate Physics
중력, 마찰력 같은 물리 효과를 적용한다. (Static Mesh Component 에만 적용할 수 있음)
Collision