블루프린트 코드 참고와 함수노드 제작

후이재·2021년 1월 31일
0

엔진의 코드?

  • 언리얼엔진은 모든 코드가 오픈되어있다.
  • 그렇기 때문에 사용하는 곳마다 프로젝트에 맞게 엔진을 수정하여 작업한다고 한다.
  • 그렇다면 엔진의 코드는 어떻게 볼 수 있는가?

엔진 코드 확인하기

  • 대학생시절에는 엔진의 코드를 볼 생각조차 하지않았다.
  • 주어진 것을 최대한 활용하자!의 마음가짐이었기 때문인건가 싶다.
  • 다르게말하자면 그런것을 돌아볼 여유가 없었다랄까?
  • 우선 C++프로젝트를 생성해야한다. 그러기 위해서는 Visual Studio가 필수
  • 그 후에, C++프로젝트열기를 통해 프로젝트를 열도록 한다.
  • 나의 언리얼 프로젝트말고 위쪽에 Engin부분을 열어보면 모든 라이브러리에 대한 코드를 확인할 수 있다.
  • 집에서 해보니 회사컴퓨터가 진짜 빠르다. 집에서 해볼 엄두가 안난다
  • 비쥬얼의 인텔리센스도 엄청 느리게 동작한다. 이 때문에 Visual Assistant를 사용하곤 한다고 한다.

블루프린트 함수노드 제작

  • 블프 노드를 통해 쉽게 비주얼 스크립팅이 가능하지만, 필요한 기능을 수행하는데 한계가 있을 수 있다.
  • 이럴 때는 C++ 클래스를 추가하여 함수를 제작하면 된다.
  • 블프 함수를 만드는데 베이스가 될 Blueprint Function Library를 선택하여 클래스를 만들면 된다.

함수를 만들어보자

  • 기본적으로 .cpp 와 .h 파일이 생성된다.
  • 항상 그렇듯 .cpp파일에는 함수 몸체가 들어가고, .h에는 클래스 정의와 함수정의가 들어가면 된다.

함수 몸체

  • Input은 *를 사용하고, Output은 &을 사용한다.
void Foo(UCurveTable* CurveTable, FName& Name)
{
	--- 이 안에 내용이 들어간다 ---
}

정의

  • Class는 UBlueprintFuctionLibrary를 상속받게 되어있다. 그렇게되면 여러 클래스에서 사용하기 쉬워진다.
  • UFUNCTION Decaration의 사용으로 해당 함수가 블루프린트 노드로 노출될 수 있게 할 수 있다.
  • UFUNCTION에는 여러 옵션이 있는데 BlueprintPure옵션이 가장 많이 사용된다. BlueprintCallable을 사용하면 실행 핀이 같이 붙어나온다.(가급적 추천한다고 한다.)
  • 아래처럼 함수에 const 마킹을 해도 블루트린트에 실행 핀이 생기지 않는다. 즉 실행핀이 없다는것은 object에 아무 영향을 주지않는 함수라는것.
UFUNCTION(BlueprintCallable, Category= "Utilities|Transformation")
FTransform GetTransform() cost;
  • 함수 지정자가 그 외에도 많아서, 찬찬히 읽어보며 사용해 봐야할 것 같다.
profile
공부를 위한 벨로그

0개의 댓글