Rock (바위)
Icosphere 를 바탕으로 노이즈 · 비대칭 · 패싯 · 리지 · 바닥 평탄화를 쌓아 만드는 절차적 바위 쉐이프입니다.
Rock 은 Icosphere 에서 생성되는 절차적 바위입니다. 구 위에 노이즈 · 비대칭 · 신축 · 압축 · 패싯 · 리지 · 바닥 평탄화가 차례로 쌓이므로, Seed 값 하나만 바꿔도 서로 다른 바위를 얼마든지 얻을 수 있습니다. 손으로 조각할 필요가 없습니다.
생성은 결정적(deterministic) 입니다 — 같은 설정이면 언제나 같은 바위가 나옵니다. 씬 파일에 굳어 들어가는 것은 설정값뿐이라, 바위는 계속 편집 가능한 상태로 남습니다.
형태
기본 형상은 Subdivision 단계만큼 분할한 Icosphere 입니다. 각 정점 방향은 아래 순서로 고정된 파이프라인을 거칩니다.
- Asymmetry —
Asymmetry Direction방향으로 반지름을 늘리고 반대쪽은 줄여 한쪽으로 기울입니다. - Lobes — 방향 · 반지름 · 세기 · 날카로움을 각각 가진 선택적 돌출부입니다.
- Ridge —
Ridge Normal이 정의하는 평면 주변에 능선을 세우거나(음수면) 홈을 팝니다.Ridge Sharpness가 폭을 정합니다. - Noise — Large · Medium · Small 세 층이 더해집니다. 결과 반지름은 0.2 ~ 2.5 로 클램프됩니다.
- Stretch → Compression → Facets → Top / Bottom Flatten 순으로 적용됩니다.
- Ground — 바닥을 평평하게 다듬고, 전체를
Ground Embed만큼 아래로 내립니다.
마지막으로 단위 형상이 Width · Height · Depth 박스 크기로 스케일됩니다. 피벗은 바닥면 중앙이므로 y = 0 에 둔 바위는 지면에 놓입니다.
파라미터
크기
| 라벨 | 스크립트 키 | 기본값 | 범위 | 설명 |
|---|---|---|---|---|
| Width | w | 3 | 0.01 ~ 10000 | 로컬 X 방향 크기 (m) |
| Depth | d | 2.5 | 0.01 ~ 10000 | 로컬 Z 방향 크기 (m) |
| Height | h | 1.8 | 0.01 ~ 10000 | 로컬 Y 방향 크기 (m) |
| Subdivision | ord | 2 | 0 ~ 4 | Icosphere 분할 단계. 베이크 후의 최종 밀도 |
Rock Settings
아래 항목은 모두 인스펙터의 Rock Settings 그룹 안에 있습니다.
| 라벨 | 스크립트 키 | 기본값 | 범위 | 설명 |
|---|---|---|---|---|
| Seed | seed | 1 | 정수 | 마스터 시드. 바꾸면 모든 노이즈 층이 다시 섞입니다 |
| Asymmetry Direction | rockasymmetrydirection | (1, 0.25, 0) | 벡터 | 바위가 기우는 방향 |
| Asymmetry Amount | rockasymmetry | 0.12 | 0 ~ 1 | 기우는 정도. 0 이면 완전 대칭 |
| Stretch Direction | rockstretchdirection | (1, 0, 0) | 벡터 | 늘일 축 |
| Stretch Amount | rockstretch | 0 | -0.9 ~ 3 | 양수면 늘이고 음수면 납작하게 누릅니다 |
| Compression Direction | rockcompressiondirection | (1, 0, 0) | 벡터 | 평평하게 자를 방향 |
| Compression Amount | rockcompression | 0 | 0 ~ 1 | 자르는 세기. 0 이면 적용하지 않습니다 |
| Compression Distance | — | 0.75 | -1 ~ 1.5 | 자르는 평면의 위치 |
| Compression Blend Distance | — | 0.2 | 0.001 ~ 1 | 절단면이 몸체로 섞여 드는 부드러움 |
| Flatten Top | rockflattentop | 0 | 0 ~ 1 | 윗면을 평평하게 만듭니다 |
| Flatten Bottom | rockflattenbottom | 0 | 0 ~ 1 | 아랫면을 평평하게 만듭니다 |
| Ground Flatten | rockgroundflatten | 0.55 | 0 ~ 1 | 접지면을 다듬어 지면과 뜨지 않게 합니다 |
| Ground Embed | rockgroundembed | 0.05 | 0 ~ 10 | 피벗 평면 아래로 바위를 묻습니다 (m) |
| Angularity | rockangularity | 0.15 | 0 ~ 1 | 패싯이 파고드는 날카로움. 높이면 깎아낸 듯한 느낌이 됩니다 |
| Automatic Facet Count | rockfacetcount | 4 | 0 ~ 24 | 자동으로 생성할 패싯 평면 개수 |
| Facet Strength | rockfacetstrength | 0.25 | 0 ~ 1 | 패싯이 파고드는 깊이 |
| Facet Size Variation | — | 0.25 | 0 ~ 1 | 패싯 크기 편차 |
| Ridge Normal | rockridgenormal | (0, 0, 1) | 벡터 | 능선이 지나는 평면의 노멀 |
| Ridge Strength | rockridgestrength | 0 | -1 ~ 1 | 양수면 능선을 세우고 음수면 홈을 팝니다 |
| Ridge Sharpness | rockridgesharpness | 6 | 0.1 ~ 32 | 높일수록 능선이 좁아집니다 |
| Flat Shading | rockflatshading | off | on / off | 페이스별로 정점을 분리해 각진 로우폴리 느낌을 냅니다 |
| Write Vertex Masks | rockmasks | off | on / off | 쉐이더용 마스크를 버텍스 컬러에 기록합니다 |
Noise 세 층(Large · Medium · Small)은 모두 같은 항목을 가집니다.
| 라벨 | 기본값 (Large / Medium / Small) | 범위 | 설명 |
|---|---|---|---|
| Enabled | on / on / off | on / off | 이 층을 반영할지 여부 |
| Frequency | 0.8 / 2.1 / 5.0 | 0 초과 | 굴곡의 크기. 높을수록 잘게 |
| Amplitude | 0.16 / 0.07 / 0.025 | 0 ~ 1 | 표면을 밀어내는 정도 |
| Octaves | 2 / 2 / 1 | 1 ~ 6 | 프랙탈 층 수 |
| Lacunarity | 2.0 | 1 ~ 4 | 옥타브마다 주파수 배율 |
| Persistence | 0.5 | 0 ~ 1 | 옥타브마다 진폭 감쇠 |
| Offset | (0, 0, 0) | 벡터 | 노이즈 필드를 이동시킵니다 |
| Seed | 11 / 29 / 47 | 정수 | 층별 시드. 마스터 Seed 와 조합됩니다 |
버텍스 마스크
Write Vertex Masks 를 켜면 버텍스 컬러에 쉐이더가 읽을 수 있는 마스크가 담깁니다.
| 채널 | 의미 |
|---|---|
| R | Variation (변화량) |
| G | Moss (이끼) |
| B | Dirt (흙) |
| A | Wetness (젖음) |
마스크는 경사와 높이에서 계산되므로 이끼는 위를 향한 면에, 흙은 밑동 근처에 모입니다. 머티리얼이 쓰지 않는다면 꺼 두세요 — 켜 두면 버텍스 데이터만 늘어납니다.
콜라이더
| 라벨 | 기본값 | 설명 |
|---|---|---|
| Collider Mode | None | None · MeshCollider · SimplifiedMeshCollider |
| Collider Subdivision | 1 | 콜라이더 메시에 쓸 분할 단계 (0 ~ 4) |
Simplified Mesh Collider 는 보이는 메시보다 낮은 분할로 콜라이더를 만듭니다. 바위에는 대개 이쪽이 맞습니다.
프리셋
Preset 드롭다운에서 고르고 Apply Preset 을 누릅니다. Rock Settings 전체를 덮어쓰므로, 프리셋을 먼저 적용한 뒤 세부 조정을 하세요.
| 프리셋 | 스크립트 값 | 성격 |
|---|---|---|
| Rounded River Rock | river | 물에 깎인 둥근 강돌. 패싯이 약하고 바닥 평탄화가 강합니다 |
| Mountain Boulder | boulder | 크고 각진 바위. 패싯이 깊고 노이즈가 거칩니다 |
| Flat Rock | flat | 위아래가 눌린 형태 — 디딤돌이나 판석 |
| Vertical Rock | vertical | 위로 늘어난 선돌 · 기둥 형태 |
| Low Poly Rock | lowpoly | 플랫 셰이딩 + 각진 패싯. 스타일라이즈드 룩 |
미리보기와 베이크
바위는 기본적으로 Preview Mode 로 만들어집니다. 이때 분할은 Preview Subdivision(기본 1)으로 제한되어 슬라이더를 드래그해도 반응이 빠릅니다.
- Generate Preview — 가벼운 미리보기 메시로 되돌립니다.
- Bake Rock — 전체 Subdivision 으로 다시 만들고 콜라이더를 생성합니다.
Preview Mode 는 표시 상한일 뿐 설정값은 건드리지 않으므로 자유롭게 오갈 수 있습니다. 씬을 넘기기 전에는 반드시 베이크하세요. 그러지 않으면 바위가 미리보기 밀도로 남습니다.
만드는 방법
-
빈 공간에서 드래그해 바닥 사각형 — Width 와 Depth 를 정합니다.
-
마우스를 위로 올려 Height 를 정합니다.
-
클릭하면 완성됩니다. 마음에 드는 실루엣이 나올 때까지 Seed 를 바꾼 뒤 베이크하세요.
씬뷰 편집
±X · ±Y · ±Z 핸들이 Width · Height · Depth 를 조정합니다. 나머지는 모두 인스펙터에서 편집합니다.
활용 팁
새 쉐이프가 아니라 Seed 로 흩뿌리세요. 바위 하나를 복제하고 Seed 만 바꾸면 크기와 밀도는 같으면서 실루엣은 전혀 다른 바위가 됩니다.
Width · Depth · Height 를 서로 다르게 주는 것이 가장 값싼 변형입니다 — 같은 시드라도 납작하게 누르거나 길게 늘이면 다른 바위로 읽힙니다.
절벽면에는 Ridge Strength 를 올리고 Ridge Normal 을 벽면을 따라 두세요. 잔해 · 파편에는 낮은 Subdivision 의 Flat Rock 이 어울립니다.
Ground Embed 를 0 보다 조금 크게 유지하면 울퉁불퉁한 지형에서도 바위가 뜨지 않습니다.
스타일라이즈드 씬에서는 Flat Shading 을 켜세요 — 낮은 Subdivision 이 어설퍼 보이는 대신 의도된 표현으로 읽힙니다.
스크립트
스크립트에서는 rock 으로 지정합니다 (별칭 boulder).
rock "RiverStone" w=1.2 d=1 h=0.6 preset=river seed=7 @0,0,0
rock "Boulder" w=4 d=3.5 h=3 preset=boulder ord=3 seed=21 @5,0,0
rock "Menhir" w=1 d=1 h=4 preset=vertical seed=3 @10,0,0
rock "Stylized" w=2 d=2 h=1.4 preset=lowpoly rockflatshading=1 @15,0,0
preset 과 seed 외에 개별 설정도 rockasymmetry, rockstretch, rockangularity, rockfacetcount, rockfacetstrength, rockridgestrength, rockgroundflatten 등으로 지정할 수 있습니다. 스크립트에서 베이크하려면 preview=0 을 쓰세요.
