[UE4] Construction Script 및 Instanced Static Mesh

3916 단어 BlueprintUnrealEngine

Construction Script란 무엇입니까?



Construction Script는 액터가 인스턴스화될 때 한 번만 실행되는 스크립트입니다.
Event Graph의 Begin Play는 게임을 재생하지 않으면 스크립트는 실행되지 않지만 Construction Script는 에디터에 배치한 상태에서 실행되므로 블루프린트 내에 배치한 메쉬를 레벨 에디터에서 확인할 수 있다는 차이가 있습니다.

Construction Script를 사용하여 손쉽게 프로 시저 레벨을 만들 수 있습니다.
이번에는 심플한 메쉬를 늘어놓는 블루프린트 액터를 작성해 보겠습니다.

청사진 작성 절차



청사진 클래스를 만들고 구성 요소 추가



Instanced Static Mesh 구성 요소를 추가합니다.


메쉬 설정



Instanced Static Mesh 구성 요소에 메쉬를 설정합니다.
이번에는 스타터 콘텐츠에 들어있는 SM_Chair를 설정하고 있습니다.


Construction Script에 노드 정의



변수


  • NumInstances: Integer
  • InstanceMargin: Vector

  • 추가한 변수의 오른쪽 가장자리에 있는 눈 표시를 클릭하거나 세부 정보 패널의 인스턴스 편집 가능(InstanceEditable)을 선택하여 액터의 세부 정보 패널로 변수를 내보냅니다.



    이 블루프린트는 0 ~ NumInstances 번 index 값을 +1하면서 InstanceMargin * index를 위치로 InstancedStaticMesh를 구성 요소에 추가합니다.

    레벨에 배치



    작성한 블루프린트를 레벨에 배치하고 상세 패널의 기본 탭에서 내보낸 파라미터를 입력하면 InstanceMargin 방향으로 NumInstance 분의 의자가 배치됩니다.


    기본적으로 블루프린트로 할 수 있는 것은 Construction Script에서도 할 수 있으므로 만드는 방법에 따라 여러가지 가능하다.

    나란히


    블루프린트



    나선형으로 만들거나


    블루프린트



    Instanced Static Mesh 정보



    Instanced Static Mesh는 동일한 메쉬를 1 DrawCall로 출력합니다.
    레벨 뷰에서 Static Mesh를 복사하여 배치하면 복사한만큼 DrawCall이 증가합니다.

    DrawCall은 콘솔 명령Stat SceneRendering에서 확인할 수 있습니다.
    Stat SceneRendering 로 표시되는 Mesh draw calls 와 Static list draw calls 의 차이는 잘 모릅니다.

    정적 메쉬로 나란히 보았습니다.



    Static Mesh로 의자를 4개 늘어놓아 보았습니다.
    디폴트 레벨은, 아무것도 두지 않는 상태로 DrawCall = 4이므로, 의자의 DrawCall 는 2가 됩니다.



    의자 4개분의 DrawCall = 8가 쌓여 있는 것을 알 수 있습니다.


    Instanced Static Mesh로 대량으로 정렬했습니다.



    의자 수를 변경해도 DrawCall은 일정한 값입니다.


    요약



    Construction Script와 Instanced Static Mesh를 적극적으로 사용해 봅시다.

    좋은 웹페이지 즐겨찾기