Version: 2023.2
언어: 한국어
브러시
SpeedTree

나무

하이트맵과 텍스처를 페인팅하는 것과 유사한 방식으로 나무를 터레인에 페인팅할 수 있습니다. 하지만 나무는 표면에서 뻗어나오는 견고한 3D 오브젝트입니다. Unity 에디터는 최적화(예: 멀리 있는 나무를 빌보드로 처리)를 사용하여 렌더링 퍼포먼스를 유지하므로, 수천 그루의 나무로 이루어진 울창한 숲을 만들어도 적당한 프레임 속도를 유지할 수 있습니다.

나무가 있는 터레인
나무가 있는 터레인

나무 페인팅

툴바의 Paint Trees 버튼으로 나무 페인팅을 활성화합니다.

Paint Trees 버튼
Paint Trees 버튼

오버레이에서 Paint Trees 툴에 액세스하려면 다음과 같이 하십시오.

  1. Terrain Tools 오버레이에서 Foliage ModeFoliage Mode Menu를 선택합니다. Foliage Mode 툴은 Terrain Tools 오버레이 끝에 표시됩니다.
  2. Terrain Tools 오버레이에 있는 사용 가능한 Foliage Mode 툴에서 Paint Trees Paint Trees button를 선택합니다.

처음에는 터레인에 아무 나무 프로토타입도 없습니다. 터레인에 페인팅하려면 나무 프로토타입을 추가해야 합니다. Edit Trees 버튼을 클릭한 후 Add Tree 를 선택하십시오. 여기에서 프로젝트의 나무 에셋을 선택한 후 Tree Prefab 으로 추가하여 브러시로 사용할 수 있습니다.

나무 추가 창
나무 추가 창

프로토타이핑에 도움이 되도록 SpeedTree는 에셋 스토어의 무료 Unity 터레인 - HDRP 데모 씬에서 6개의 SpeedTree 모델을 제공합니다.또는 자체 트리를 만들 수도 있습니다.

임포트하는 나무 프리팹이 Bend Factor 를 지원하면 Add Tree 창에 바람 반응성을 조정하기 위한 Bend Factor 프로퍼티가 표시됩니다. Bend Factor 는 SpeedTree 모델러를 사용하여 만든 나무에는 없고, 트리 에디터를 통해 만든 나무에만 있습니다. 아래의 바람에 휘어지는 나무 만들기 섹션을 참조하십시오.

아래에 설명된 대로 설정을 마치고 나면 텍스처나 하이트맵을 페인팅하는 것과 동일한 방식으로 터레인에 나무를 페인팅할 수 있습니다. 영역에서 나무를 제거하려면 Shift 키를 길게 누른 채로 페인팅하십시오. 현재 선택된 나무 타입만 제거하려면 Ctrl 키를 길게 누른 채로 페인팅하십시오.

설정

배치할 나무를 선택한 후 해당 설정을 조정하여 나무 배치 및 특징을 커스터마이즈하십시오.

나무 설정
나무 설정
프로퍼티 기능
Mass Place Trees 전체 랜드스케이프를 색칠할 필요 없이 전체를 나무로 덮을 수 있습니다. 대량 배치 후에도 색칠하기를 사용하여 나무를 추가하거나 제거하여 더 울창하거나 듬성듬성한 영역을 만들 수 있습니다.
Brush Size 나무를 추가할 수 있는 영역의 크기를 제어합니다.
Tree Density Tree DensityBrush Size에 따라 정의된 영역에 페인팅할 평균 나무 수를 제어합니다.
Tree Height 슬라이더를 사용하여 나무의 최소 높이와 최대 높이를 제어합니다. 슬라이더를 왼쪽으로 드래그하면 나무가 짧아지고 오른쪽으로 드래그하면 나무가 길어집니다. Random을 선택 해제하면 새로 페인팅하는 모든 나무의 정확한 높이 스케일을 0.01–2 범위 내에서 지정할 수 있습니다.
Lock Width to Height 기본적으로 나무의 너비는 나무가 항상 일관되게 스케일링되도록 높이에 고정됩니다. 하지만 Lock Width to Height 옵션을 비활성화한 후 너비를 별도로 지정할 수도 있습니다.
Tree Width 나무의 너비가 높이에 비례하도록 고정되지 않은 경우 슬라이더를 사용하여 나무의 최소 너비와 최대 너비를 제어할 수 있습니다. 슬라이더를 왼쪽으로 드래그하면 나무가 가늘어지고 오른쪽으로 드래그하면 나무가 두꺼워집니다. Random을 선택 해제하면 새로 페인팅하는 모든 나무의 정확한 너비 스케일을 0.01–2 범위 내에서 지정할 수 있습니다.
Random Tree Rotation LOD Group을 사용하여 나무를 설정하려는 경우 Random Tree Rotation 설정을 사용하면 무작위적이고 자연스러운 숲의 느낌을 쉽게 구현할 수 있습니다. 고정되고 동일한 회전을 가진 나무를 배치하려면 이 옵션을 선택 해제하십시오.
Color Variation 나무에 적용되는 무작위 셰이딩 양입니다. 셰이더가 _TreeInstanceColor 프로퍼티를 읽을 때에만 동작합니다. 트리 에디터를 사용하여 만드는 모든 나무의 셰이더가 _TreeInstanceColor 프로퍼티를 읽을 때를 예로 들 수 있습니다.
Tree Contribute Global Illumination 이 체크박스를 선택하면 나무가 전역 조명 계산에 영향을 미친다고 Unity에 알립니다.

나무 생성

새로운 나무 모델을 만드는 방법은 두 가지가 있습니다. IDV, Inc.의 SpeedTree 모델러를 사용하여 부드러운 LOD 전환, 빠른 빌보딩, 자연스러운 바람 애니메이션 등과 같은 고급 시각 효과가 적용된 나무를 만들 수 있습니다. 자세한 내용은 SpeedTree Modeler 문서를 참조하십시오. 또는 트리 에디터를 사용하여 나무 모델을 만들 수도 있습니다.

내부적으로 터레인 엔진은 나무 프리팹의 루트 게임 오브젝트에 LOD Group이 있는지 여부를 판단함으로써 두 타입의 모델을 구분합니다. SpeedTree 프리팹에는 LODGroup 컴포넌트가 있지만, 트리 에디터 프리팹에는 없습니다.

나무를 만들 때는 나무가 지면에서 솟아나오는 나무의 아래 지점에 앵커 포인트를 배치하십시오. 나무 모델의 폴리곤 수에 따라 성능이 달라지므로, 원하는 플랫폼에서 테스트해야 합니다. 또한 가능한 한 단순한 나무를 생성하는 것이 좋습니다. 또한 트리 에디터 나무의 경우 각 메시에는 항상 정확히 두 개의 머티리얼(하나는 나무 몸체, 또 다른 하나는 나뭇잎에 대한 머티리얼)이 있습니다.

트리 에디터를 사용하여 만드는 나무에는 Nature/Soft Occlusion LeavesNature/Soft Occlusion Bark 셰이더를 사용해야 합니다. 이러한 셰이더를 사용하기 위해서는 Ambient-Occlusion 이라는 이름이 포함된 특정 폴더 안에 나무를 위치시켜야 합니다. 그렇지 않으면 나무가 제대로 렌더링되지 않습니다. 이 폴더에 모델을 넣고 다시 임포트하면 Unity가 나무용으로 특별히 설계된 방식으로 소프트 앰비언트 오클루전 을 계산합니다.

별도 3D 모델링 애플리케이션에서 임포트한 나무 에셋을 변경하는 경우 에디터의 Refresh 버튼을 클릭해야만 업데이트된 나무가 터레인에 표시됩니다.

새로고침 버튼 위치
새로고침 버튼 위치

참고 3D 모델링 프로그램에서 SpeedTree 모델을 임포트하여 변경한 후 .fbx 또는 .obj 파일 확장자로 다시 익스포트하면 SpeedTree 모델의 자연스러운 바람 애니메이션 기능이 사라질 수 있습니다.

나무에 콜라이더 사용

캡슐 콜라이더를 나무 에셋에 추가할 수 있습니다. 먼저 나무 에셋 옆에 있는 > 을 클릭하여 프리팹을 여십시오.

그런 다음 Add Component > Physics > Capsule Collider 를 선택하여 콜라이더를 추가할 수 있습니다. 씬으로 되돌아가려면 프리팹 이름 옆의 < 을 클릭하십시오.

Terrain Collider 컴포넌트의 Enable Tree Colliders 도 선택해야 합니다.

바람에 휘어지는 나무 만들기

윈드 존은 나무를 구부려 바람의 직접 효과를 시뮬레이션할 수 있습니다. 이 기능은 터레인 메뉴를 통해 배치한 나무에만 사용할 수 있습니다. 이렇게 하려면 터레인을 선택하고, 인스펙터에서 Paint Trees 버튼을 클릭한 후 Edit Trees > Add Tree 를 선택하고 나무 프리팹을 선택하십시오. Unity에 나무를 생성하지 않았다면 Bend Factor 를 1로 설정하십시오. 터레인을 클릭하면 선택한 나무가 배치됩니다.

Bend Factor 가 있는 터레인 기반 나무는 윈드 존의 TurbulenceMain 프로퍼티의 값에 따라 구부러지거나 흔들림으로써 윈드 존에 반응합니다. Turbulence 설정은 잎사귀의 퍼덕거림을 제어합니다. 이 값을 낮추면 퍼덕거리는 효과가 약해집니다. Main 값은 바람의 메인 포스를 제어합니다. 윈드 존을 생성하려면 GameObject > 3D Object > Wind Zone 을 선택하십시오.

윈드 존의 ModeDirectional 이면 나무를 기준으로 한 포지션은 중요하지 않습니다. 나무는 윈드 존의 방향에 따라 흔들립니다. 하지만 윈드 존의 ModeSpherical 이면 해당 Radius 가 나무의 반지름과 겹쳐져야 합니다. 이렇게 하면 여러 방향의 돌풍이 생성되고 중심의 감쇠가 모서리 쪽을 향합니다.

기본 설정을 사용하면 Broadleaf 프리팹(스탠다드 에셋 환경 팩에서 제공됨) 등과 같은 나무가 부드럽고 실감나게 흔들립니다. 하지만 자체 나무 프리팹을 사용 중인 경우에는 Wind Zone 프로퍼티 값을 조정해야 할 수 있습니다. 나무 프리팹 몸통이 한쪽으로 끝까지 구부러지면 Main 값을 낮춰보십시오. 또는 나무 프리팹의 가지가 과도하게 구부러지거나 휜다면 Turbulence 값을 낮출 수 있습니다.

나무 디테일 수준(LOD) 전환 존

트리 에디터 나무의 경우 Unity의 LOD 시스템은 2D - 3D 전환 영역을 사용하여 2D 빌보드를 3D 나무 모델과 원활하게 블렌딩합니다. 이렇게 하면 2D 및 3D 나무의 갑작스러운 파핑을 방지합니다(VR에서 특히 중요함). 빌보드 나무는 점 광원 및 스폿 광원과 같은 로컬 조명을 받지 않습니다. 방향 광원과 함께 작동하지만 빌보드의 조명은 카메라를 회전할 때만 업데이트됩니다.

SpeedTree 나무의 경우 LOD 컴포넌트에 관한 자세한 내용은 LODLOD Group 문서를 참조하십시오.


  • 2020–02–19 페이지 수정됨

  • 트리 에디터 나무에 대한 빌보드 제한 사항 추가됨

브러시
SpeedTree