블루프린트
블루프린트
시스템은 언리얼을 위한 노드 기반 비주얼 코딩 언어입니다.
블루프린트는 바이트코드의 변형으로 컴파일되어
언리얼 블루프린트 가상 머신에서 실행됩니다.
블루프린트 시스템의 몇 가지 측면을 살펴보겠지만, 더 알고 싶다면 언리얼의 문서 페이지를 참고하십시오.
바이트코드는 가상 머신에서 실행되는 특수한 가짜 머신 코드입니다. 이를 통해 각 플랫폼에 대해 코드를 개별적으로 컴파일할 필요 없이 크로스 플랫폼 호환이 가능합니다. |
언리얼 블루프린트 가상 머신
이 "블루프린트-바이트코드"는 일반적인 머신인 CPU가 이해할 수 없는 코드이기 때문에 커스텀 머신에서 실행되어야 합니다. 언리얼 블루프린트 가상머신은 가상 머신에서 실행되는 그 머신입니다.
이로 인해 문제가 발생합니다. 블루프린트 코드는 GPU로 렌더링과 같은 시스템 함수를 사용할 수 없습니다. 이러한 함수는 이 VM을 통해 격리되기 때문입니다. 그러나 이러한 것에 대한 통신은 필수적이며, 언리얼은 이를 위해 자체 반사 시스템인 UObject-System을 사용합니다.
연결선
노드는 어떤 출력이 어떤 입력에 사용되는지, 주어진 노드가 실행된 후에 무엇이 발생해야 하는지를 설명하기 위해 선으로 연결됩니다. 연결선에는 두 가지 유형이 있습니다.
-
- 실행선
-
이전 노드가 실행을 마친 후 어떤 노드가 명시적으로 실행되어야 하는지를 설명합니다. 여러 출력이 하나의 입력에 연결될 수 있지만, 하나의 출력이 여러 입력에 연결될 수는 없습니다. 블루프린트는 실제 멀티스레딩을 지원하지 않아 흐름 실행을 여러 스레드로 나눌 수 없기 때문입니다.
-
- 데이터선
-
단순한 실수형 값과 같은 데이터의 흐름을 설명합니다. 하나의 출력 선을 여러 입력에 연결할 수 있으며, (덜 일반적으로) 여러 출력을 하나의 입력에 연결할 수 있습니다.
데이터 유형
블루프린트에는 여러 데이터 유형이 있습니다.
표준 유형
표준 유형은 종종 계산에 직접 사용되는 유형입니다.
-
- 불리언 (bool 8비트)
-
불리언 값은 참과 거짓, 두 가지 상태를 저장할 수 있습니다. 주로 논리 비교에 사용됩니다.
-
- 정수 (int 32비트)
-
정수는 음수를 포함한 (하나의) 셀 수 있는 숫자입니다(-2,147,483,647, …, -2, -1, 0, 1, 2, …, 2,147,483,647).
-
- 실수 (float 32비트)
-
실수는 정수 사이의 모든 값을 포함한 셀 수 있는 숫자입니다(-1.0, 0.5, 0.0125, 0.3, 75.0).
-
- 문자열
-
문자열은 텍스트를 형성하는 문자 시퀀스입니다.
-
- 이름
-
이름은 문자열과 유사하지만 문자가 전역적으로 저장되어 최적화되고 이름 변경이 더 쉬워집니다.
-
- 벡터
-
벡터는 벡터 수학을 위한 3개의 실수로 구성됩니다.
-
- 리스트
-
여러 값의 목록으로, 실제 값에 따라 정렬됩니다. 새 값을 추가하면 목록의 순서가 변경될 수 있습니다.
-
- 배열
-
주어진 유형의 여러 값의 목록이지만, 각 항목은 인덱스에 해당하므로 값의 순서는 변경되지 않습니다.
-
- 맵
-
배열과 유사하지만 숫자를 인덱스로 사용하는 대신 주어진 유형을 키로 사용하여 값에 "연결"됩니다.
구조체
구조체는 여러 유형이 함께 그룹화된 것입니다.
구조체는 서로 다른 유형의 수에 관계없이 만들 수 있습니다.
구조체를 생성하려면 설명이 필요합니다.
그런 다음 설명을 데이터 유형으로 사용하고 인스턴스를 값 선
을 통해 값으로 사용할 수 있습니다.
클래스
클래스는 구조체와 유사하지만 훨씬 더 복잡합니다. 클래스는 메서드, 이벤트, 델리게이트를 가질 수 있습니다. 클래스는 단순히 값을 설명하며, 실제 값을 얻으려면 해당 클래스의 인스턴스인 객체를 얻기 위해 특별한 함수를 사용해야 합니다. 이러한 객체는 최종적으로 속성의 값이나 델리게이트의 바인딩된 함수와 같은 정보를 포함합니다. 클래스를 유형으로 사용하고 객체를 값으로 사용할 때, 이러한 값은 객체에 대한 참조일 뿐입니다. 즉, 값을 복사하고 해당 객체의 속성을 변경하면 "모든 다른 값에서도 변경됩니다".
함수는 순수로 표시될 수 있으며, 정상 함수처럼 작동하지만 사용 시 순수 노드가 됩니다. |