본문 바로가기

DXWave/언리얼

BPI 인터페이스

https://www.youtube.com/watch?v=wGmlKbllPcw

레벨에 액터가 많은데

ThirdPersonCharacter가 LineTraceByChannel로 오브젝트를 얻어와 처리할 경우 

모든 BP의 종류를 캐스팅하는 불편이 있따.

이런 불편을 해소하기 위해 Interface 블루프린트가 있다. 우클릭후 만들수 있고 에디터가 열리면 펀션이름만 설정하면 끝이다. Interface 블루프린트는 글로벌 함수를 선언하는 곳이라고 생각하면 좀 편하다.

함수 이름을 OnInteract라고 하고 디테일에서 입력을 Character Type의 InteractingPlayer로 설정하면 함수명 노드에 입력이 설정된다. 

IsInteractable이라는 다른 함수를 선언하고 디테일에서 Output을 Interactable Boolean으로 설정하면 리턴노드가 자동 생선된다.

 

함수를 선언했으니 구현할곳 블루프린트로 이동 클래스세팅을 클릭하고  디테일에서 아까만든 BPI블루프린트를 선택

컴파일하면 그럼 왼쪽 마이블루프린트에 인터페이스가 생긴다. 우클릭후 Implement Event를 선택하면

이벤트그래프에 노드가 생기고

사용할 로직을 연결해준다. 플레이어와 문의 위치를 파악하여 문이 열리는 방향을 결정한다.

이제 인터페이스를 부를 블루프린트로 이동하자 아까 레이트레스 있는 곳이다.

여기서를 클래스 세팅은 필요없지만 인터페이스를 보유한 액터의 레퍼런스는 필요하다. 다행해 레이트레이스의 Hit Result에서 얻을수 있고 인터페이스 덕분에 Cast없이 사용이 가능하다.

상황에 따라 Interafce가 구현되었는지 체크해야할 경우도 있는데

이렇게 BPI를 호출해 간략화 할수 있다.

구현 BP_Door의 IsInteractable함수를 클릭해서

출력 Interactable을 체크해줘서 정보를 넘겨줄수 있다.

we

BP_Weapon으로 이동해서 같

'DXWave > 언리얼' 카테고리의 다른 글

Motion Matching  (0) 2024.12.12
Instant Mesh 메시최적화 토폴로지 블렌더  (0) 2024.11.24
메타버스 VP VFX CGI  (1) 2024.11.05
cloth simulation Flag  (0) 2024.10.22
cloth simulation  (0) 2024.10.22