FCB - Blueprints

JUSTICE_DER·2023년 2월 18일
0

🌵UNREAL

목록 보기
10/42

Unreal Engine 5 – Full Course for Beginners
https://www.youtube.com/watch?v=6UlU_FsicK8

Blueprints

  • Blueprint를 생성하기 위해서 다양한 클래스가 존재한다.

  • 가장 기본이 되는 Blueprint는 Level의 blueprint일 것이고, 아래처럼 접근한다.

  • 레벨 청사진은 아래처럼 존재하고, begin play이벤트라는 것은,
    게임을 시작하면 활성화되는 것이 아니라, 해당 레벨이 처음 로드될 때만 실행되는 것이라고 한다.
    유니티로 치면 해당 Scene의 Start 개념일 것이다

  • 레벨에 표시할 수 있는 모든 것을 Actor라고 부르고, Actor를 추가하면, blueprint에서 해당 Actor의 포인터를 가져올 수 있게 된다.
    point light는 미리 레벨에 추가해두었다

  • point light에 대한 getter, setter 설정
    뭔가 레고처럼, 파란색은 파란색에 연결하도록 만들어져 있다.
    그리고 시작하면 set함수가 동작하여, point light의 위치가
    0,0,0으로 맞춰지게 된다.

  • 변화를 보기 위해 정육면체 Actor를 추가하였고,
    아래처럼 진행하는데, getLocation에서 해당 cube의 Location을 가져온 뒤,텍스트
    오른쪽에 노드하나를 +로 추가하는 함수를 두어, z를 200만큼 추가하고,
    해당값을 setter에서 new location으로 설정하도록 하였다.

  • 이동하는 모습을 보인다.
    주의할 것은, static Actor를 이동하려고 하면 안된다는 것이다.
    movable 설정 필수

  • 몇초후에 실행하도록 할 수도 있다.

  • 해당 노드에 붙은 색표시들을 핀이라고 한다.
    하얀색 삼각형은, execution pin이라고 부른다.
    삼각형 모양처럼 왼쪽에서 오른쪽으로만 실행되고,
    왼쪽이 실행되어야만 오른쪽 것이 실행된다.

  • 노드에 f가 붙은것들은 다 함수이고, 그러면 아래처럼 하양이 없는것은 실행되지 않는가?
    해당 함수들을 pure function이라고 하고, 즉각적인 리턴이 있는 함수의 역할을 한다.
    해당 pure function은, 혼자서는 실행을 못하고, execute pin이 붙은 함수와 연결되어 사용되는데,
    연결된 excute pin function이 실행될 때마다 실행이 된다.

  • getter의 목적으로 쓴 위의 Get Actor Location 함수의 경우,
    그냥 실행이 되어버린다면, 해당 location값은, 이전의 location값일 것이다.
    그러므로, 해당 함수가 호출될 때마다 실행되어야 하는 것이고,
    실시간으로 Actor의 위치를 그때그때 다르게 받아올 수 있게되는 것이다.
    실시간 데이터를 받아오고 싶다면 pure function을 쓰는 것이다.

  • Tick Event는 매 프레임마다 실행된다는 의미이다.
    유니티의 Update문과 비슷한 개념같다


Blueprint: Variables

  • 어떤 언어든 데이터를 담을 변수가 존재한다.
    blueprint에선, 왼쪽 탭에서 선언이 가능하고,
    C++ 자료형에 기반한 타입을 가지고 있다.

  • 아래처럼 해당 bool 변수를 getter로 생성하고
    빨강 화살표를 끌어서 branch라는 if문의 함수와 연결시켜주면,
    해당 oneStep 변수의 true false여부에 따라 분기할 수 있다.
    해당 변수는 setter로 어딘가에서 값을 바꾸던가 하겠지

  • 한글 번역이 너무 별로인거같다. 오히려 헷갈린다.
    자료형에서 int64는, 64비트라는 의미로,
    정말로 큰 정수까지 표현하기 위해 사용하는데, 특수한 경우에만 사용 한다고 함.

  • 네임, 스트링, 텍스트는 모두 문자형 타입인데,
    왠만하면 대부분의 상황에서 string을 사용할 것이라고 한다.
    name은 tag를 위한 것이라고 하고,
    text는 UI같은 것에 쓰인다고 한다.

  • 벡터는 x,y,z를 가진 벡터를 의미한다. 자료구조아님

  • 로테이터는 x,y,z를 가지고 회전을 의미한다.
    0~360까지의 값만 유효하다.

  • 트랜스폼은 Location, Rotation, Scale값을 한번에 가진 자료형이다.

  • 그 외에 구조체, 인터페이스, 오브젝트 등이 존재하지만, 거의 써볼일이 없을거라고 하고,
    그 중 많이 쓰이는게 아래의 hit result 결과 히트라고 한다.

  • 변수의 자료형 중 오브젝트는 Actor를 의미하고,
    해당 Actor는 C++상에서 포인터로 구현이 된다고 한다.
    즉 해당 oneStep은 주소는 아직 받지 않은 Actor포인터인 것이다.
    유효하지 않은 포인터라고 오류가 뜬다고 한다.
    정확히 이해한건지 모르겠지만, 앞으로 계속 설명할거니 차근차근 익히라고 함
profile
Time Waits for No One

0개의 댓글