스플라인은 곡선을 정의하는 특수 수학함수이다. 블루프린트 스플라인 컴포넌트는 레벨에서 액터가 이동하는 경로를 정의하는 데 사용할 수 있다. 또한 인스턴스를 배치하기 위한 경로를 따라 위치를 얻을 수 있다. 스플라인 포인트를 추가, 변화및 회전해서 레벨 에디터에서 스플라인을 편집할 수 있다.
스플라인 컴포넌트는 일반적으로 세가지 기능이 있다.
Get Spline Length :
Get Location at Distance Along Spline :
Get Rotation at Distance Along Spline :
예제를 한번 만들어 보겠다.
1. 콘텐츠브라우저에서 블루프린트를 만들자 부모는 액터이고 이름은 BP_SplinePlacement로 저장하고 에디터를 연다.
2. StaticMeshVar변수를 생성하고 타입은 스태틱메시로 한고 오브젝터레퍼런스를 선택하고 눈아이콘을 클릭한다.
3.컴파일후 디폴트를 SM_FieldArrow를 선택한다.
4. SpaceBetweenInstances이름의 변수를 만들고 타입은 플로트로 하고 컴파일후 디폴트값은 100으로 세팅한다
5. 컴포넌트패널 +Add를 클릭후 Spline을 추가한다. (SplineMesh가 아님)
6. DefaultSceneRoot를 선택하고 인스턴스드스태택메시 컴포넌트를 추가한다.
7. 컨스트럭션 스크립트 그래피를 단순화하는 매트로를 생성한다. 매크로+를 클릭해 이름을 CalculateNumberOfInstances라는 매크로를 만든다.
8. 디테일 패널에서 NumberOfInstances라는 인티저 타입의 출력 파리미터를 생성한다.
9. 다음과 같이 노드를 연결한다. 나누가 연산자와 Outputs을 연결하면 Trancate는 자동으로 생성된다. 매크로는 인스턴스의 개수로 Spline의 길이를 나눈 값을 출력한다.
10. 컨스트럭션 스크립트를 탭하고
11. 우클릭후 Set Static Mesh노드를 추가하고 StaticMeshVar(GET)을 추가해준다.
12. For Loop를 추가하고 Last Index로 매크로를 끌어다 연결해주고 Index출력은 Mulply노드를 끌어주고 입력으로 SpaceBetweenInstances를 연결해준다.
13. For Loop뒤에 Add Instance를 추가해준다. InstanceTransform입력을 Split해준다.
14. 빈곳에 Get Spline을 추가해주고 파란출력핀을 끌어 GetLocation at distance Along Spline을 추가하고 Add Instance Location에 연결해준다.
15. 아래쪽 빈곳에 Get Spline을 추가해주고 파란출력핀을 끌어 Get Rotation at distance Along Spline을 추가하고 Add Instance Rotation에 연결해준다. Multiply 출력핀을 끌어 위아래 Along Apline Distance에 연결해준다.
16. 컴파일후 레벨에디터로 끌어다 놓는다.
17. 앞쪽 화살표 흰색점을 클릭후 X축을 끌어주면 화살표가 여러개 생겼다. 이건 매크로에서 처리할듯 하다.
18. 맨앞의 스플라인점을 선택하고 위치를 변경하면
19. 전체 스플라인이 변경된다.
17. 또 스플라인 인스턴스는 흰색점으로 표시되는 포인트가 있다. 변환 회전 시킬수 있다.
18. 스플라인 포인트를 추가하려면 우클릭후 SokubeGenerationPanel을 선택한다. 팝업메뉴에서 Line을 선택하면 스플라인이 추가된다. 여러모양이 있으니 테스트 해보시기 바랍니다.
19. 매뉴얼에서는 Add Spline이 있다고 했는데 화살표 보다는 스플라인 포인트를 추가해주는 듯 했다.
20. 스플라인 메시 컴포넌트라는 스플라인을 사용하는 컴포넌트가 도 있다. 이 컴포넌트는 2점 스플라인을 따라 스태틱 메시를 변형하는데 사용된다. 레벨에디터에서 스플라인 포인트를 편집하거나 블루프린트 함수를 이용해 세팅할 수 있다.
21. 교재가 뒤쪽에는 설명이 소개수준이어서 활용할 수준이 아니다. 따로 공부해야겠다. ㅠㅠ.
'블루프린팅 > 19. 절차적 생성' 카테고리의 다른 글
[19.절차적생성] 컨스트럭션 스크립트를 사용한 절차적 생성 (0) | 2023.06.21 |
---|