본문 바로가기
SOOFT RogueForge
플레이 영상 Steam에서 찜하기
개발 일지

수중 생태계 — 해저 지형, 난파선, 물고기 무리와 잠수 시야

플레이테스트 2.0 전체 기록: 캐릭터와 무기·방어구 제작, 집·가구 건설까지의 변화는 ‘플레이테스트 2.0 — 무기·방어구 제작, 건설, 지형 종합’에서 이어서 볼 수 있습니다. 이 글은 그중 수중 세계를 자세히 다룹니다.

육지에서 밭을 가꾸고 집을 짓다가 바다로 걸어 들어가면, 수면 아래에서도 둘러볼 이유가 있었으면 했습니다. 이번에는 바닷속 풍경, 그곳에서 살아가는 생물, 잠수할 때 느껴지는 물의 움직임을 함께 다듬었습니다.

이 글의 사진은 개발 중인 3D 게임에서 직접 촬영한 화면입니다. 기능 개발 기록이며, 공개 게임 실행파일의 업데이트 공지는 아닙니다.

해저에 가라앉은 반파 난파선과 주변을 헤엄치는 물고기
배의 뒷부분이 사라진 난파선. 남아 있는 골조와 흩어진 목재 사이에 새로운 서식지가 생깁니다.

평평한 모래밭 사이에, 부서진 배와 날카로운 바위

해저에 둥근 돌만 있으면 풍경이 너무 비슷해집니다. 높이가 제각각이고 파단면이 드러난 암반을 추가했습니다. 모서리는 각지게 남기고, 바위마다 기울기와 넓이를 달리해 둥근 산호초 주변과 다른 인상을 주었습니다.

난파선은 온전한 배를 물속에 내려놓는 방식으로 만들지 않았습니다. 선미 절반이 사라지고, 뜯긴 외판 사이로 늑골이 보이며, 갑판도 대부분 빠져 있습니다. 부러진 돛대와 떨어진 판재가 남은 선체 주변에 흩어져 있습니다. Blender에서 각각 세 가지 형태를 만들고, 충분히 깊고 급경사가 없는 해저에 배치했습니다.

높이와 기울기가 다른 뾰족한 해저 암반의 파단면
둥근 돌과 함께 나타나는 각진 암반. 같은 모래밭에서도 다른 실루엣을 만날 수 있습니다.

새 해저 난파선은 우선 풍경과 생물의 서식지로 연결했습니다. 기존 해변의 보물상자 난파선과는 별개이며, 이번에 새로운 난파선 보상이나 파괴 기능까지 추가한 것은 아닙니다.

무리는 함께 움직이고, 배고픈 물고기는 사냥합니다

작은 물고기는 이웃과 간격을 유지하면서 방향을 맞추고, 무리에서 너무 멀어지면 다시 모입니다. 난파선의 부서진 뒤쪽에도 정어리 떼가 머물도록 했습니다. 근처에는 게와 문어가 살고, 때때로 더 큰 물고기 떼가 바다를 가로질러 지나갑니다.

포식자는 계속 공격하지 않습니다. 배고프고 먹이가 가까이 있을 때 다가가 사냥하며, 배가 부르면 쉽니다. 작은 물고기는 위협을 피해 무리를 좁히거나 갈라져 달아납니다. 잠수부가 빠르게 다가오는지, 가만히 떠 있는지도 반응에 영향을 줍니다.

말미잘 주변에는 흰동가리, 해초 근처에는 해마와 새우, 바위 주변에는 게와 바닷가재처럼, 생물과 서식지도 연결했습니다. 바닥에 있는 불가사리는 현재 정적인 환경 모델입니다.

산호를 쪼는 나비고기, 바위굴에서 고개를 내미는 곰치

가지 산호에 주둥이를 가까이 대고 먹는 노란 나비고기
산호에 다가가 입이 닿으면 먹이를 먹습니다. 멀리서 배고픔 수치만 줄어들지 않도록 연결했습니다.

산호를 먹는 유형의 나비고기를 별도로 만들었습니다. 납작한 몸, 눈을 가로지르는 띠, 긴 주둥이를 넣고, 가지 산호를 찾아 다가가 쪼는 행동을 연결했습니다. 배가 부르면 주변에서 쉬고, 위협이 오면 피합니다.

속이 빈 바위굴 안에 몸을 숨기고 머리만 내민 곰치
곰치는 몸을 바위굴 안에 두고 머리를 내밉니다. 입을 여닫는 호흡과 먹이를 덮치는 행동은 따로 움직입니다.

곰치는 멀리 떠돌지 않고 바위굴을 집으로 삼습니다. 평소에는 머리를 내밀어 숨을 쉬고, 가까이 다가가면 안으로 물러납니다. 배고플 때 굴 앞에 작은 먹이가 지나가면 짧게 덮쳤다가 돌아옵니다. 생물마다 서로 다른 생활 모습이 보이도록 하는 것이 이번 작업의 중심입니다.

물속은 멀리까지 선명하지 않습니다

잠수하면 빛이 물을 지나며 약해지고 흩어집니다. 바닥에는 일렁이는 빛무늬가 비치고, 시야에도 약한 굴절을 넣었습니다. 해초와 말미잘은 뿌리를 고정한 채 끝부분이 흔들립니다. 단단한 바위와 가지 산호까지 함께 출렁이지는 않습니다.

잠수 중인 캐릭터 입에서 올라가는 공기방울과 멀수록 흐려지는 바닷속 풍경
입에서 나온 방울은 좌우로 흔들리며 올라가고, 먼 생물은 물빛 속으로 흐려집니다.

물의 맑기는 지역마다 다릅니다. 맑은 곳에서는 더 멀리 보이고, 탁한 곳에서는 가까운 물고기도 조금 더 다가와야 또렷해집니다. 일정한 거리에서 갑자기 나타나기보다, 다가올수록 차츰 보이도록 했습니다. 캐릭터 입에서는 주기적으로 작은 방울들이 나와, 각각 조금씩 흔들리며 수면으로 올라갑니다.

젖었다가 마르는 머리카락

물속에서 물살과 부력에 따라 퍼지는 캐릭터의 긴 머리카락
물속에서는 머리끝이 떠오르고, 움직임이 지상보다 느리고 부드럽게 가라앉습니다.

긴 머리는 물속에서 살짝 떠오르고 물살에 흔들립니다. 짧은 머리는 움직임을 작게 주었습니다. 물 밖으로 나오면 머리색이 젖은 상태로 조금 진해졌다가 서서히 원래 색으로 돌아옵니다. 잠수 후 카메라에도 물방울과 흘러내리는 자국이 잠깐 남도록 연결했습니다.

많이 살아 있어도 가볍게

바위와 난파선은 주변 해저 장식과 묶어 그립니다. 물고기들은 같은 모델과 움직임 자료를 공유하고, 먼 개체는 행동 계산 간격을 늘립니다. 물고기 한 마리마다 별도의 애니메이터를 늘리는 방식은 피했습니다.

현재 생태는 주변 풍경을 위한 시뮬레이션입니다. 개체 하나하나의 삶을 저장하거나 협동 플레이 전체에 같은 행동을 전송하는 단계는 아닙니다. 실제 생태를 모두 재현하기보다, 서식지와 먹이, 경계와 휴식이 화면에서 이어지는 바다를 만들어 가고 있습니다.

디스코드에서 의견 남기기

다른 개발 일지

RogueForge 팔로우하기