UE4 Event

hareguu·2021년 5월 31일
0

Unreal Engine 4

목록 보기
2/2
post-thumbnail

INTRO.

Unreal Engine 4, Blue Print (비주얼 스크립팅)에 대한 이벤트 정리글.

UE4 이벤트 정리 공식문서

알아야 할 점.

  1. 변수 를 노드로 끌어오면 변수 값을 설정할 수 있는 Setter 노드와 Getter 노드를 선택해서 만들수있다.
  2. Self 자기 자신(이 블루프린트가 붙어있는 Actor/Object)을 노드로 만들 수 있다. Self 검색하면 나오는 '자기 자신 레퍼런스' 선택.
  3. 커스텀 이벤트는 해당 커스텀 이벤트를 호출해주는 함수 노드를 추가해 주어야 이벤트를 발생시킬 수 있다.

Event

Begin Play

  • 게임이 실행되자마자 가장 먼서 실행됨.
  • 1회

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

  1. Overlapped Actor: 해당 Collision components 를 가진 액터.
  2. Other Actor: 충동한 다른 액터.
  3. On Component Begin Overlap: 호출한 콜리전 컴포넌트에 다른 액터가 겹치는 순간 "한번" 발생하는 이벤트.
  4. On Component End Overlap: 호출한 콜리전 컴포너틑에 다른 액터가 더 이상 겹치지않고 빠져나가는 순간에 "한번" 발생하는 이벤트

Input Event

Keyboard Event: 예를들어 A 노드를 추가하면 A 키에 대한 레퍼런스 노드가 생성됨.

Enable Input: 기본적으로 언리얼엔진은 액터가 Input 을 받아들이는게 비활성화 되어있는 상태라, 키보드 입력을 받으려면 이 노드를 추가해 주어야 한다. ControllerGet 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 순으로 붙여진 하나의 문자열을 리턴.

Transform

  • 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문 돌릴 배열을 입력 받는다.

입력 받은 배열의 모든 원소들 하나 하나에 대해 반복을 진행한다. 배열의 모든 원소 순회가 끝나면 자연스레 종료 됨.

  1. Loop Body : 일반 실행 핀과 동일. foreach 문이 돌건 말건 반복 시켜 놓고 바로 다음 실행.
  2. Array Element : 매 반복의 원소
  3. Array Index : 매 반복의 인덱스
  4. 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

  • Set Collision Enabled
    타겟으로 들어온 Collision 컴포넌트를 끌건지 활성화시킬건지 노드에서 결정할 수 있다.

  • Set Actor Enable Collision
    타겟으로 들어온 액터의 모든 컴포넌트를 활성화할건지 비활성화할건지 boolean 타입 입력을 받는다.

profile
Who wanna be a programming nerd.

0개의 댓글