⇒ 루트 컴포넌트는 월드와 똑같아 상대적 좌표를 줄 수 없음. 그래서 상대적 위치 좌표를 줬는데도 액터가 월드좌표를 기준으로 움직인다면 해당 컴포넌트가 루트 컴포넌트로 되어 있지는 않은지 확인.
BPI 방법 사용
⇒ 블루프린트 인터페이스를 사용하여 상속과 같은 기능 구현. → 공용으로 사용하는 특정 소켓을 만든다는 느낌. 원하는 인터페이스를 계속해서 추가하여 사용할 수 있음. 하나의 상속만을 받을 수 없는 블루프린트에서 사용가능한 좋은 방법
1. 원하는 블루프린트 클래스의 클래스 세팅에서 구현된 인터페이스에 생성한 블루프린트 인터페이스를 선택
2. 선택하면 컴포넌트 창에서 인터페이스 탭이 생기고 그 안에 블루프린트 인터페이스의 함수가 생성된다.
⇒ 한 BPI안에서 두 개의 함수 생성 가능.
⇒ 액터 배열의 Element가 해당 BPI를 가지고 있을 경우를 판별하는 함수 사용
⇒ 해당 BPI를 가지고 있을 경우, 해당 BPI에 있는 함수를 실행.
⇒ 컴포넌트 오버랩 종료 시에는 BPI에 DoStop이라는 함수를 하나 더 만들어 위와 같은 방법으로 사용.
좌측: MoveLeftRight에서의 사용 방법
우측: TimelineLeftRight, MoveRact, Timer에서의 사용 방법.
매크로는 상속해도 사용 불가능. 이벤트 디스패처 사용. BPI 필요 없음
1. 이벤트 디스패처 생성
2. 입력 변수 추가 후 이벤트 디스패처 호출
⇒ 이벤트 디스패처를 받는 변수 생성. 이때 눈을 뜬 상태(Public)로 만들어서 레벨 에디터에서 수정 가능하도록 설정.
⇒ 레벨 에디터에서 디폴트 값을 선택할 수 있음
⇒ 이벤트 디스패처 호출 시 실행할 BP_Class에서 변수 생성 후 만든 이벤트 디스패처 바인딩→ 호출은 이벤트 디스패처 생성 BP_Class에서만
⇒ 이벤트를 따와서 EventDispatchers 이벤트 생성. 이벤트 생성 후 모습
이벤트 디스패처에서 입력 변수 추가.
⇒ 입력값의 형태와 개수, 위치, 순서가 같아야 함수 호출 가능(입, 출력 모두) → 일치하는 함수 또는 이벤트 생성으로 쉽게 생성 가능
⇒ 이벤트 디스패처를 이용한 최종 이벤트 그래프
1. 각 BP_Class에서 이벤트 디스패처 바인딩 방법
2. BP_MoveLeftRight에서 바인딩한 이벤트 함수 그래프
3. 나머지 BP_Class에서 바인딩한 이벤트 함수 그래프
⇒ BreakPoint. 디버깅 시 사용
⇒ 어디서부터 이벤트가 들어왔는지 경로를 다 알 수 있다.
액터 컴포넌트 블루프린트 사용
액터 컴포넌트 BP 생성, 액터 컴포넌트 BP 내부에서 함수와 이벤트 디스패처 생성
해당 액터 컴포넌트 BP를 임의의 BP_Class에 추가하면 오른쪽처럼 생성된 이벤트 디스패처 이벤트를 사용할 수 있다.
디테일 창의 이벤트 탭에서 +로 이벤트 생성 가능
⇒ 액터 컴포넌트를 활용한 이벤트 처리 결과
⇒ SwitchBox에서 GetAllActorsofClass로 모든 액터 BP를 가져온 뒤, 해당 액터가 액터 컴포넌트 BP를 가지고 있다면 액터 컴포넌트 BP의 함수를 실행. IsValid는 ReturnValue가 null값인지 아닌지 확인. IsValid는 값을 가지고 있다는 뜻 → 함수 실행.
총알 발사 로직
⇒ Get Actor ~ Vector: 해당 방향으로 움직임, 단위 벡터.
⇒ normalize: 다신 단위 벡터로.
⇒ make는 한번 만들고 사라짐
⇒ 벡터를 0으로 두면 길이가 짧아짐(3차원 → 2차원). 따라서 단위벡터로 만들어줘야 함
SpawnActor BP_Class → 액터 스포너
⇒ 변수로 만들어 여러 가지 액터로도 설정 가능
⇒ 캐릭터가 충돌 시 밀려남. 방향을 반대로 밀어주기 위해 NormalImpulse에 -1을 곱하여 사용. 속도가 너무 빠르면 콜리전을 뚫고 지나가기 때문에 속도 설정이 중요.
렉돌
→ ThirdPersonMap
⇒ 이벤트 그래프
⇒ DoGetUp
⇒ DoRegdoll
'UnrealEngine' 카테고리의 다른 글
[UE] AI 생성, 블랙보드와 비헤이비어 트리 (0) | 2023.07.11 |
---|---|
[UE] 액터 블루프린트, 블루프린트 상속 후 이벤트 처리 (0) | 2023.07.11 |
[UE] 애니메이션 출력, 애님 블루프린트 (0) | 2023.07.11 |
[UE] 언리얼 콘솔 명령어, UI와 HUD, UMG UI 디자이너 (0) | 2023.07.11 |
[UE] 형변환, 블루프린트 인터페이스, 오버랩, 게임플레이 인터페이스, 입력, 라인 트레이스 (0) | 2023.07.10 |