본문 바로가기

블루프린팅/19. 절차적 생성

[19.절차적생성] 컨스트럭션 스크립트를 사용한 절차적 생성

1. 기본으로 새로운 프로젝트를 생성한다.

2. 콘텐츠브루아저에서 Add+ 블루프린트클래스 생성하는데 액터를 부모클래스로 선택하고 이름을 BP_ProcedualMeshes로 지정한다.

3. 내 블루프린트 변수+를 클릭 StaticMeshVar로 이름을 바꾸고 타입을 스태틱메시로 한고 오브텍트 레퍼런스를 선택한다. 인스턴스편집가능을 체크해준다.

4. 컴파일후 디폴트값을 SM_Chair를 선택한다.

5.다음 변수들을 추가해준다. 모두 인스턴스에디터블이다.

이름 타입 디폴트
InstacesForRow Integer 10
NumberOfRows Integer 10
SpaceBetweenInstaces Float 100
SpaceBetweenRows Float 150

 

6. 컴포넌트에 인스턴스스태틱메시를 추가한다.

7. Contruction 스크립트 탭을 클릭한다.

8. 플로트타입의 변수를 만든다 이름은 InstanceLocationX이다. 이건 로컬변수이다.

9. 빈곳에 우클릭후 Set Static Mesh를 추가하고 변수 StaticMeshVar GET을 New Mesh에 연결해준다. Instaced StaticMesh는 자동연결되어 있었다.

10. For Loop를 추가해주고 FirstIndex는 1 LastIndex는 NumberOfRows(GET)변수를 끌어다 연결해준다.

11. For Loop의 Index를 끌어 X(곱하기)를 추가해주고 아래는 SpaceBetweenRows(GET)을 연결해준다.

12. 변수 Instance Location X를 끌어다 SET로 추가해주고 Loop뒤에 연결해준다.

13. 두번째 루프를 연결해준다. Last Index는 IsntancesForRow를 연결해주고 index출력은 x(Mulply)노드를 추가하고 아래입력으로  SpaceBetweenInstances를 연결해준다.

14. 이제 인스턴스를 생성해주는 Add Instance를 추가한다. Target은 자동으로 연결되었고. InstanceTransform을 split해주고 

다시 Location을 split해주면 XYZ가 되는데 다음과 같이 연결한다. Loop문 2개로  x값과 Y값을 만들어 Procedual하게 인스턴스를 생성하는 과정이다.

 

15. 컴파일 저장한다.

16. 레벨에디터에서 방금만든 BP_ProcedualMeshes를 끌어 레벨에 놓는다.

17. 디테일 패널에서 Default의 Instances Per Row와 Number Of Row를 변경하거나 StaticMeshVar를 SM_BUSH변경하면서 테스트 해본다.