Action disabled: source

나무

Desktop!

유니티의 Terrain Engine에는 나무(Tree)를 위한 특별 지원사항이 있습니다. 사용자는 Terrain에 수천 개의 나무를 배치할 수 있고 실제 프레임 속도로 게임 내에서 랜더링을 할 수 있습니다. 이는 카메라 주변에 있는 나무들은 3D로 랜더링을 하고 먼 곳에 있는 나무들은 2D 빌보드(Billboard)로 옮겨서 작동 됩니다. 먼 곳에 위치한 빌보드는 그것이 보여지는 여러 각도에 따라 자동으로 방향을 바꾸며 업데이트를 합니다. 이러한 전이 시스템은 나무의 미세환경을 성능 면에서 아주 손쉽게 하여 줍니다. 사용자는 mesh-to-billboard 전이의 매개 변수들을 변경하여 완전히 컨트롤 할 수 있으며, 이렇게 하면 사용자가 필요로 하면 최상의 성능을 얻을 수 있습니다.


여기처럼 아름다운 환경을 만들기 위해 사용자는 수많은 나무를 손쉽게 페인트 할 수 있습니다

나무 추가하기

Inspector에서 Place Trees 버튼을 선택하십시오.

in the.

사용자의 terrain에 나무를 배치하기 전에, 사용자는 해당 나무를 사용가능 한 나무 라이브러리에 추가하여야 합니다. 이 작업을 하려면 Edit Trees button→Add Tree를 클릭하십시오. Add Tree 대화 창이 나타날 것 입니다.


추가 나무 대화창

사용자의 Project View에서 나무를 선택하고 그 것을 Tree 변수로 드래그합니다. 사용자가 해당 나무에 "바람에 구부러지는"동영상 효과를 약간 추가하고 싶다면 Bend Factor를 편집 할 수 있습니다. 준비가 되면 Add를 클릭하십시오. 선택된 Inspector에서 나무가 나타날 것입니다.


인스펙터에 새로이 추가된 나무가 선택된 것으로 나타납니다

사용자는 원하는 만큼 나무를 추가할 수 있습니다. 각각의 나무는 사용자의 Terrain에 배치되기 전에 인스펙터에서 선택 가능하여야 합니다.


현재 선택된 나무는 항상 푸른색으로 하이라이트 됩니다

나무 배치하기

도구를 사용하는 동안, 해당 나무를 배치하려면Terrain의 어디든 클릭하십시오. 그 나무를 지우려면 Shift 버튼을 누르고 해당 Terrain을 클릭하십시오.


페인트 브러쉬 도구를 사용하면 손쉽게 나무를 색칠할 수 있습니다

나무를 배치할 때 사용자가 택할 수 있는 몇 가지 옵션이 있습니다.

Brush Size 나무 배치 브러쉬의 미터 단위 반경.
Tree Spacing 나무 사이 나무 너비의 비율.
Color Variation 각 나무간에 허용된 색상 차이 값.
Tree Height 에셋과 비교한 각 나무의 높이 조절.
Height Variation 각 나무간에 허용된 높이 차이 값.
Tree Width 에셋과 비교한 각 나무의 넓이 조절.
Width Variation 각 나무간 허용된 넓이 차이 값.

나무 색칠 팁


각자 다른 브러쉬 크기가 다른 영역 크기를 커버합니다


사용자가 그리는 나무밀도를 조절하기 위하여 Tree Spacing조절

나무 편집하기

추가된 나무를 위해 들여온 매개변수 어느 것이라도 변경하려면, 상세 사항을 선택하고 Edit Trees button→Edit Detail을 선택하거나, 혹은 사용자가 편집하고 싶은 나무를 더블클릭 하십시오. 그러면 Edit Tree 대화 창이 뜨고, 사용자는 그 중 어느 설정이라도 변경 할 수 있습니다.

집단 배치하기

사용자가 만일 나무를 그리기 보다는 그냥 전체 숲은 생성하고 싶다면, 그냥Terrain→Mass Place Trees을 사용하면 됩니다. 여기서, 사용자는 Mass Place Trees 대화 창을 보게 될 것 입니다. 사용자는 원하는 나무의 숫자를 설정하고 즉석에서 배치 할 수 있습니다. 사용자의 Terrain 추가된 모든 나무가 해당 집단 배치에 사용될 것 입니다.


10,000 나무가 한번에 배치됨

소스 에셋 업데이트 하기(Refreshing Source Assets)

만일 사용자가 사용자의 나무 에셋 소스파일을 업데이트 하였다면, 수동으로 이를 Terrain에 다시 들여오기를 실행하여야 합니다. 이렇게 하려면 Terrain→Refresh Tree and Detail Prototypes을 실행 합니다. 이것은 사용자가 소스 에셋을 변경하고 저장한 후에 실행되며, 사용자 Terrain의 나무들을 즉시 변경 할 것 입니다.

나무 생성하기

나무들은 두 가지 방법으로 terrain engine에 생성 될 수 있습니다:

첫 번째 방법은 유니티에 내장된 Tree creator을 사용하는 것이고 두 번째 방법은 유니티와 호환되는 제3업체의 모델링 프로그램을 사용하는 것 인데 이 경우에는 모든 나무는 두 개의 Materials을 가진 하나의 메쉬(mesh)로 이루어져야 합니다. 하나는 나무 기둥(trunk)이고 하나는 잎(leaves)을 위해서 입니다.

성능을 높이려면, 평균 나무 하나 당 triangle 개수는 2000개 이하로 유지하여야 합니다. Triangle이 작을수록 성능은 더 좋아집니다. 나무 메쉬의 pivot point는 정확하게 나무의 루트이어야 하며, 그것은 나무가 배치되면 표면과 만나는 지점이 됩니다.

나무들은 Nature/Soft Occlusion LeavesNature/Soft Occlusion Bark shader를 사용하여야 합니다. 이러한 쉐이더(shaders)를 사용하려면 사용자는 해당 나무를 "Ambient-Occlusion"이라는 이름을 포함한 특수 폴더에 두어야 합니다. 사용자가 해당 폴더에 모델을 넣고 다시 들여오기(reimport)를 실행하면, 유니티가 그 나무를 위한 부드러운 주변 오클루젼(soft ambient occlusion)을 계산합니다. "Nature/Soft Occlusion" 폴더가 이 정보를 필요합니다. 이를 따르지 않으면 나무가 검은 부분이 나와서 이상해 보입니다.

또한 유니티는 "Terrain Demo.unitypackage"에 몇 개의 고품질의 나무들은 같이 출시하였습니다. 사용자는 이 나무들의 바로 사용자 게임에 활용 할 수 있습니다.

로 폴리(Low Poly) 나무 사용하기

하나의 나무에 잎들을 만들려면 단 6개의 triangles 로 이루어져 있고 꽤 많은 만곡을(curvature) 보이고 있습니다. 더 많은 만곡을 원한다면 더 많은 triangles을 추가 할 수 있습니다. 하지만 중요한 것은, 나무를 만들 때는 quads가 아니라 triangles을 가지고 만들어야 합니다. 만일 사용자가 quads을 사용하면 가지에 똑 같은 만곡을 얻으려면 기본 두 배수의 triangles이 필요하다는 것 입니다. 나무는 많은 수의 다각형으로 인해 그 자체로 많은 fillrate을 소비하며 거의 모든 것은 알파(alpha)로 인해 보이지 않습니다. 성능 저하를 막기 위하여 이러한 것은 피해야 하나 물론 목표는 밀집한 나무들을 만드는 것입니다. 이것이 바로 Oblivion의 나무가 진가를 발휘하는 이유 중 하나 입니다. 이 나무들은 너무나 밀집하여 잎 사이로 볼 수 조차 없습니다.

나무의 충돌 설정

사용자의 나무가 콜라이더(collider)를 활용하게 하고 싶다면 그것은 쉽습니다. 사용자가 나무 에셋 파일을 들여올 때, Scene View 내에서 인스턴스화 하고Capsule Collider를 추가하여 변경한 후, 해당 GameObject을 새 Prefab로 만들면 됩니다. 그런 후 사용자 Terrain에 나무들을 추가할 때, 사용자는 Capsule Collider가 부착된 해당 나무 Prefab을 추가하면 됩니다. 사용자는 나무와의 충돌을 추가할 경우에만 Capsule Colliders을 사용할 수 있습니다.

나무를 충돌하게 하기.


Terrain 콜라이더 인스펙터

사용자의 나무를 리지드바디와(rigid bodies) 충돌하게 하고 싶다면, 반드시Create Tree Colliders 박스를 확인하여야 합니다. 아니면 사용자 오브젝트는 사용자가 생성한 나무들을 관통해 버릴 것 입니다.

iOS!

이 기능들은 현재는 iOS 타깃에는 사용할 수 없습니다.

Android!

< 이 기능들은 현재는 안드로이드 타깃에는 사용할 수 없습니다.

역링크