선회 벤치

선회 벤치

procedural mesh · vertex bend
Blender 생성 · 셰이더 구동

AI-ASSISTED GAME R&D · HTML PROTOTYPE

반복해서 누르는 재미에서, 물고기를 지켜보는 재미로

HTML 버전을 반복해서 만들고 직접 플레이하며 물고기의 움직임과 찌 배치의 반응을 다듬었습니다. 찌를 놓은 뒤 지켜보세요. 물고기가 물면 자동으로 회수되고, 먼저 탭해서 회수할 수도 있습니다.

움직임 비교: 아래 프리셋에서 ‘머리 감쇠 → 슬립 상한 → 사행 주기 2배’를 차례로 선택해 머리 방향과 이동 방향의 차이를 관찰하세요.

행동 비교: 오른쪽 옵션을 하나씩 바꿔볼 수 있습니다. 먹이 경쟁을 비교할 때는 ‘Bite Commitment · 경쟁’을 켜 둡니다.

이 페이지는 현재 버전에 남아 있는 비교 도구를 안내합니다. 당시의 모든 개발을 Toggle 실험으로 진행했다는 뜻은 아닙니다. 프리셋 설명의 수치는 당시 기록이며, 현재 플레이 결과를 보장하지 않습니다.

0
수면을 클릭하면 찌가 떨어지고, 근처 물고기가 몸을 틀어 다가옵니다
프레임
fps
개체
삼각형
최대 선회
°/s
카메라
0° 기울임

어획

물면 손을 놓아도 2.6초 뒤 자동으로 채입니다. 그 전에 화면을 탭하면 즉시 채집니다. 집계는 바구니에 들어간 순간 올라갑니다.

끄면 지금 스프라이트 버전과 같은 상태가 됩니다 — 몸이 굳은 채로 미끄러집니다.

유영 파동0.16
파동 속도1.00
선회 굽힘 계수0.85

생동감 (v0.5)

하나씩 꺼보면 각각이 뭘 하는지 보입니다. 전부 끄면 이전 버전입니다.

오징어는 돌진 직전 옆폭이 부풀고, 분사 순간 진행축에 수직인 폭이 확 줄며 몸이 길어집니다. 돌진 뒤에는 빠르게 원형으로 복원됩니다.

기울여 보세요(아래 카메라 기울임). 끄면 납작한 종이처럼 보입니다.

끄면 사인파가 일정해서 메트로놈이 됩니다.

다리 위상 분산5.4

0 이면 다리 8가닥이 한 몸으로 움직여 갈퀴가 됩니다.

느릴수록 크게 젓고 빠를수록 몸에 붙입니다. 머무는 중내달리는 중이 지느러미만 봐도 구분됩니다.

끄면 주둥이가 축이 되어 몸 전체가 좌우로 까닥입니다. 켜면 무게중심이 축이 되고 머리가 꼬리와 반대로 돕니다.

이 둘을 따로 껐다 켜보세요. 까닥거림과 드드득은 원인이 다릅니다 — 까닥은 휨의 축, 드드득은 회피가 위치를 흔들어 머리 방향이 튀는 것입니다.

고정 V 대형을 목표 슬롯으로만 사용합니다. 추종자는 늦게 따라오고, 가까워지면 서로 비키며, 무리 폭이 천천히 숨 쉬듯 변합니다.

같은 경로라도 추진 박자 · 활강 · 멈칫 · 선회 준비를 어종별로 다르게 만듭니다.

찌를 봤을 때의 판단 시간 · 감속량 · 접근 기세 · 머무름이 달라집니다. 무리 어종은 한 마리가 발견하면 짧은 시간차로 같이 반응합니다.

접근 중에도 계속 판단합니다. 확신하면 마지막 돌진, 관심이 떨어지면 빠져나가며, 다른 개체가 먼저 붙으면 어종 성격에 따라 경쟁하거나 오히려 물러납니다.

경쟁이 숫자로만 오르지 않습니다. 소극적인 개체는 바깥으로 양보하고, 공격적인 개체는 옆으로 파고들거나 선두를 압박한 뒤 다시 찌를 노립니다.

현재 위치가 아니라 약 0.2초 뒤 예상 위치를 보고 미리 옆으로 흘립니다. Steal은 차선을 유지하고, Chase는 너무 붙으면 먼저 감속해 몸통 관통을 막습니다.

실제 접촉 순간에 찌 당김 · 잠김 · 수면 링이 발생하고, 가까운 소어는 짧은 시간차로 약하게 놀랍니다.

먹은 뒤 바로 서성이지 않습니다. 소어는 무리로 복귀, 참치는 관성 통과, 오징어는 짧게 제트 이탈하는 식으로 어종별 후속 동작을 실행합니다.

큰 물고기가 빠르게 스치거나 한 마리가 놀라면 주변 개체가 0.05~0.30초 늦게 따라 반응합니다. 같은 무리는 잠깐 흩어졌다 다시 모입니다.

찌를 물고기 바로 옆에 던져보세요. 몸을 C 로 접었다 펴며 튕겨나갑니다. 끄면 그냥 빨라지기만 해서 '재생 속도를 올린 것'으로 보입니다.

움직임

시간 배속1.00×
머리 추종0.35
사행 폭1.00×
사행 주기1.00×
슬립 상한18°

머리 추종을 1.0 으로 올리면 머리가 진행 방향에 딱 붙습니다 — 순항 중에도 좌우로 흔들립니다. 낮추면 머리는 침로를 유지하고 몸만 사행합니다. 사행 폭은 좌우 진폭(=물고기가 지나는 자리)이고, 사행 주기는 같은 폭을 더 길게 늘여 곡률만 낮춥니다 — 지나는 자리는 그대로입니다.

접근 방식

최소 선회 반경0.55
근접 선회 보정0.40

몸길이 배수입니다. 선회율을 ω = 속도 / 반경 으로 뽑기 때문에 느린 물고기도 제자리에서 돌지 않습니다. 0.05 로 내리면 예전처럼 팽이가 됩니다.
근접 보정은 목표 코앞에서만 반경을 조입니다(기획서 §11).
속도 적합을 끄면 가까운 찌에서 소용돌이가 돌아옵니다 — 특히 학공치. 선회 반경은 v/ω 라 빠른 물고기일수록 크게 돕니다.

이전 동작과 비교

개별 스위치입니다. 통째로 비교하려면 화면 위 프리셋을 쓰세요 — 1~5 키로도 넘길 수 있습니다.

카메라 · 표시

기울임

평상시엔 천천히 오르내리고, 찌에 관심을 가지면 수면 쪽으로 올라옵니다. 깊은 개체는 실제 World Z가 낮아지고 푸르게 보이며, 그림자는 광원 방향으로 바닥에 실제 투영됩니다.

어종 · 타입

독립 성향1.00×

무리 성향은 어종이 아니라 개체의 성질입니다. 소어도 15%는 혼자 다니고, 잡어도 30%는 둘셋이 몰려다닙니다. 올리면 전부 흩어집니다.

같은 타입끼리 묶어놨습니다. Lane 2종이 서로 다른 물고기로 읽히는지, 무리 × Hover가 성립하는지가 이 실험의 전부입니다.

보는 법

프리셋 1 → 5 를 순서대로 눌러보세요. 고친 순서 그대로입니다. 개체는 안 바뀌고 값만 바뀌므로 같은 물고기로 A/B 가 됩니다. 3번에서 대물을 보세요 — 게걸음이 거기서 나옵니다. 그다음 수면을 클릭해 찌를 던지고, 오른쪽 접근 방식을 하나씩 눌러보세요.

세 가지 시험

Lane 2종 — 잡어와 학공치가 같은 수식으로 다른 물고기가 되는가. Loop 2종 — 8자 파라미터만으로 대물과 접시고기가 갈리는가. 무리 × Hover — 무리가 Lane 밖의 법칙 위에도 얹히는가.

휨은 애니메이션이 아닙니다

본도 클립도 없습니다. 정점 셰이더가 매 프레임 sin(phase)turnRate 로 몸통을 굽힙니다. Blender 는 메시만 만들었습니다.