[언리얼엔진5 입문] 7. 오브젝트와 레퍼런스

ASP·2024년 3월 26일
0

언리얼엔진5 입문

목록 보기
7/41

오브젝트 : 데이터와 기능의 집합

액터 : 레벨에 투입할 수 있는 오브젝트

컴포넌트 : 액터로 들어가는 오브젝트로, 액터는 레벨에 들어가고 컴포넌트는 액터 자체에 들어감.

오브젝트에는 종종 매우 많은 데이터가 있을 수 있는데, 이러면 컴퓨터로 다루기에 너무 무거워질 수 있으며, 해당 오브젝트들을 여러 개 복사할 경우 실제로 매우 무거워짐.

그러는 대신 레퍼런스라고 하는 스마트한 구조체를 사용함. 레퍼런스를 사용하면 작업시 해당 오브젝트로 이동하지 않아도 됨.

레퍼런스 : 주소 내지는 컴퓨터의 메모리에서 이 오브젝트를 찾기 위해 가야 할 위치.

에디터에서 레벨 화면에 있고 Cube 오브젝트에 몇 가지 기능을 사용하고자 하는 경우, 씬 안에서 해다 큐브를 선택한 다음 레벨 블루프린트로 이동해 우클릭하면 위에 큐브 레퍼런스 만들기를 선택할 수 있음.

큐브 레퍼런스 만들기를 클릭하면 새 노드가 생기는데, 이 노드는 큐브의 주소를 알려주는 역할을 함. 큐브로 무언가를 하고 싶으면 이 노드에서 찾으면 됨.

데이터 핀(색깔 핀) : 노드의 input 또는 output data. ex) Chair 노드의 오른쪽 파란색 원에 해당.

실행 핀(흰색 핀) : 노드를 언제 실행할지 정함.

핀이 노드의 왼쪽에 있으면 입력이고 노드가 다룰 수 있는 데이터

핀이 노드의 오른쪽에 있으면 해당 노드가 만드는 데이터

Chair 노드의 경우 데이터 핀이 오른쪽에 있으므로 큐브 액터의 레퍼런스를 만듦.

데이터 핀은 노드로 무엇을 실행하지 정하며, 실행 핀은 언제 실행할지 정함

큐브 레퍼런스 노드의 핀을 드래그하면 큐브에 있는 모든 기능을 사용할 수 있음.

큐브에는 StaticMeshComponent가 있으므로 이 컴포넌트의 레퍼런스를 가져오고 싶음.

검색 -> get static mesh component 클릭

입력은 큐브 레퍼런스고 출력은 스태틱 메시 컴포넌트의 레퍼런스인 새로운 노드가 생성됨. 출력 핀은 드래그하면 스태틱 메시 컴포넌트의 기능을 요청할 수 있음.

출력 핀 드래그 -> get display name 검색 후 클릭

get display name 노드는 오브젝트의 디스플레이 이름을 리턴하는데, 프린트 스트링 노드를 사용해 프린트할 수 있는 스트링이나 텍스트 값을 리턴함.

드래그하고 print string 노드 생성 후 이전에 만들었던 print string 노드에 연결.

아래에 있는 노드들에는 실행 핀(흰색 핀)이 없으므로 언제 실행되는지 혼란스러울 수 있음. 언제 실행될까?

블루프린트가 적절하다고 판단할 때, 즉 실행핀이 있는 노드에서 필요할 때 실행됨.

플레이를 눌러보면 큐브 스태틱메시컴포넌트가 출력되는걸 확인할 수 있음.


Static Mesh Component : 게임 오브젝트의 시각적인 표현을 담당하는 컴포넌트 중 하나. 주로 오브젝트의 외관을 결정하는데 사용됨. 또한 stathc mesh component는 다양한 물리 특성을 설정할 수 있으며, 이를 통해 오브젝트가 충돌하거나 physics 시뮬레이션에 어떻게 반응할 지 제어할 수 있음.

따라서 physics 속성들은 오브젝트의 static mesh component의 속성, 데이터로 나타남. 따라서 mass를 다루고 싶다면 static mesh component 레퍼런스 노드를 생성해서 사용할 수 있음.

큐브의 질량을 출력하기 위해 get display name 노드를 삭제하고 get mass 노드 생성 후 print 노드와 연결.

중간에 노드가 하나 생겼는데, 이 노드는 변환노드.

Get Mass 노드의 리턴값이 float 타입이므로 Print String 노드가 입력으로 받을 수 있는 string 타입으로 변환시켜줌.

profile
언리얼엔진 개발자의 길

0개의 댓글