243's 게임&애니메이션 Archive

unreal engine

언리얼 학습일지-4-블루프린트 기초

243 2021. 5. 6. 14:00



언리얼에서 블루프린트-새 빈 블루프린트 클래스를 클릭하면 이런 창이 나온다.

근데 부모 클래스란 게 무엇일까?



객체 지향 프로그래밍(Object Oriented Programming = OOP)

모든 데이터를 오브젝트(object;물체)로 취급하여 프로그래밍 하는 방법으로, 처리 요구를 받은 객체가 자기 자신의 안에 있는 내용을 가지고 처리하는 방식

 

   객체화              몬스터(이름, 나이, 종족, 피부색, 키, 스킬, 능력) =추상화된 클래스             

(instantiate)                                                ㅣ

               오크(이름, 나이, 종족, 피부색, 키, 스킬, 능력, 무기, 지능, 지위, 가문) =구체적인 오브젝트

 

상속이란 추상화된 클래스의 속성을 자식 개체에게 물려주는 개념이다. 

추상적인 부모 객체(클래스)의 속성에서 구체화 된 속성이 붙으면서 다양한 객체(인스턴스)를 만들어내는 원리이다.

 

언리얼에서는 이러한 상속원리를 이용해 부모 클래스를 선택하고 구체화된 프로그래밍을 할 수 있다.

 

컴포넌트 방식

 

[날개, 부리, 다리, 꼬리, 먹기, 마시기, 잠들기, 날기, 목, 뿔, 헤엄치기…]

 

새[날개, 부리, 다리, 꼬리, 먹기, 마시기, 잠들기, 날기, 목]

고양이[다리, 꼬리, 먹기, 마시기, 잠들기, 목]

 

수많은 기능을 만들어놓고 객체에 필요한 기능을 채택해서 사용한다.

컴포넌트=라이브러리

 

언리얼에서는 이러한 방식을 이용해 컴포넌트(라이브러리)에서 기능을 찾아 추가하며 프로그래밍을 할 수 있다. 



블루프린트 접두사 BP 접두사 규칙

 

Case Naming Rules

 

카멜 케이스 : CamelCase - 변수 네이밍

파스칼 케이스 : PascalCase - 블루프린트 네이밍

스네이크 스타일 : _snake_case - 변수

헝가리안 스타일 : strName - 변수



정리하면 블루프린트는 1차적으로 부모클래스를 선택함으로써 상속 원리를 사용하고

그 안에서 컴포넌트를 추가하는 방식을 채택한 것이다.




------------------------------




다시 언리얼로 돌아가서, 부모 클래스를 하나 선택하면 

이런 창이 뜬다. 이것이 블루프린트 에디터이다.

 

 

블루프린트 에디터는 크게 뷰포트, 컨스트릭션 스크립트, 이벤트그래프 탭으로 나뉘어져있다.

 

뷰포트 탭 - 우리가 아는 뷰포트의 기능

이벤트그래프 - 빨간색 노드는 입력과 이벤트를 뜻한다. 버튼을 누르면 이벤트가 시작되고, 기능을 호출한다. 

컨스트릭션 스크립트 - 액터를 월드에 추가할 때 컨스트럭션 스크립트가 스크립트를 실행한다. 




---------------------------




간단하게 블루프린트 액터를 만들어보자

스타터콘텐츠-블루프린트의  SM_Lamp_Ceiling 을 생성한다.

 

 

디테일 창에서 

밑줄 친 부분을 클릭하고 

 

 

스태틱 메쉬를 바꿔주면 원하는 메쉬로 바꿀 수 있다. 

그 외에 컴포넌트 추가 기능을 이용해 사운드, 파티클을 추가하고 설정을 조금 바꿔서 

아래와 같이 만들어보았다.







다음으로 가까이 가면 라이트가 켜지고 멀어지면 꺼지는 블루프린트를 만들어보자

 

똑같이 SM_Lamp_Ceiling 을 생성하고 블루프린트 에디터에 들어가서 box collision 컴포넌트를 생성한다. 디테일 탭에서 쭉 내리면

 

이렇게 이벤트 탭이 있는데 (창을 줄여놔서 이름이 안보이지만) On Component Begin Overlap 과 On Component End Overlap 이벤트를 생성한다. 이벤트그래프 탭으로 이동해서 Set Visibillity(PointLight) 액션을 두개 생성하고 각각의 이벤트에 연결해준다. 비긴 이벤트에는 켜져야하고 엔드 이벤트에는 꺼져야 하니까

 

 

이렇게 비긴 이벤트와 연결된 액션에만 New Visivillity를 체크해준다.

 

레벨 에디터로 돌아가 플레이를 누르고 액터에 가까이 가보면 제대로 실행되는 것을 알 수 있다.



 

이것을 응용해서 가까이 다가가면 큐브가 생기고 떨어지면 사라지는 이벤트도 만들 수 있다.

 

 

 

-----------------------------




다음은 게임플레이 프레임워크