입자 생태계 행동 합성기는 종 간 인력과 척력을 편집하여 군집·추격 움직임을 관찰하는 브라우저 실험 도구입니다. 게임 개발자가 엔진 코드를 작성하기 전에 간단한 행동 규칙의 시각적 결과를 비교하고, 설정 파일로 실험 조건을 보관할 수 있습니다.
실제로 조절할 수 있는 기능
4종 입자와 방향성 상호작용
- 민트, 아이리스, 코랄, 앰버의 네 종이 같은 공간에서 움직입니다. 각 종의 개체 수는 균등합니다.
- 4×4 행렬의 각 셀은 행의 종이 열의 종에 반응하는 힘을 뜻합니다. -1은 강한 척력, 0은 중립, +1은 강한 인력입니다.
- A가 B를 끌어당기는 규칙과 B가 A를 밀어내는 규칙을 따로 설정할 수 있습니다. 아주 가까운 거리에서는 겹침을 줄이는 공통 척력이 우선 적용됩니다.
- 군집 형성, 순환 추격, 혼합 생태계 프리셋과 행렬 무작위 생성으로 서로 다른 시작 조건을 비교합니다.
환경, 관찰 및 저장
- 입자 수 100~1,200개, 상호작용 반경, 힘의 세기, 감쇠를 조절합니다.
- 가장자리를 넘어 반대편으로 이동하는 순환 공간과 벽 반사 중에서 선택합니다.
- 잔상과 좌표 그리드를 켜거나 끄고, 일시정지와 한 스텝 진행으로 순간 움직임을 관찰합니다.
- 입자 수, 렌더링 FPS, 평균 속도, 시뮬레이션 시간과 평균 속도 변화 그래프를 확인합니다.
- 설정 JSON에는 행렬, 환경 값, 시드가 담깁니다. 현재 캔버스는 PNG 이미지로 저장할 수 있습니다.
사용 방법
- 왼쪽 패널에서 행동 프리셋을 선택합니다. 프리셋 선택은 현재 시드의 초기 배치를 다시 생성합니다.
- 오른쪽 상호작용 행렬에서 셀을 선택하고 아래 슬라이더로 값을 바꿉니다. 슬라이더에 포커스를 두면 방향키로도 조절할 수 있습니다.
- 반경과 감쇠를 조절하면서 패턴을 관찰합니다. 입자 수 또는 시드를 변경하면 초기 상태부터 다시 시작합니다.
- 캔버스를 누르거나 드래그하여 입자를 끌어당깁니다. 포인터 메뉴를 밀어내기로 바꾸거나 Shift를 함께 누르면 힘의 방향을 반전할 수 있습니다. 터치 조작도 지원합니다.
- 원하는 규칙을 찾으면 설정 JSON 내보내기를 누릅니다. 나중에 불러오면 저장된 설정과 시드로 초기 상태를 복원합니다.
키보드 단축키
- Space: 재생 또는 일시정지
- R: 현재 시드와 규칙으로 재시작
- .: 일시정지하고 한 스텝 진행
- H: 단축키 도움말 열기 또는 닫기
- Escape: 열린 도움말 닫기
입력 필드와 버튼에 포커스가 있으면 해당 컨트롤의 키보드 조작을 우선합니다. 전역 단축키를 사용하려면 캔버스에 포커스를 두세요. 모바일에서는 캔버스 아래에 환경 설정과 행렬이 이어집니다.
대상 사용자와 활용 사례
- 인디 게임 개발자: 군집형 적, 미생물 세계, 추격 관계의 움직임 아이디어를 비교합니다.
- 테크니컬 아티스트: 인력·척력에 따라 생기는 입자 배열을 관찰하고 PNG로 시각적 참고 자료를 남깁니다.
- 게임 디자인 학습자: 비대칭 규칙과 감쇠가 집단 움직임에 주는 영향을 실험합니다.
제한 사항
이 도구는 단순한 2D 입자 규칙 실험기이며, 실제 생물의 번식·진화·에너지 소비를 모델링하지 않습니다. 게임 엔진용 코드, 영상, 개별 입자 궤적을 내보내는 기능은 없습니다. JSON은 현재 위치나 진행 시간을 저장하는 스냅샷이 아니며, 자동 저장도 제공하지 않습니다. 페이지를 떠나기 전에 설정을 내보내세요.
같은 설정과 시드, 같은 스텝 수에서는 초기 실험을 재현할 수 있지만 포인터 개입이나 실행 중 설정 변경 이력은 기록하지 않습니다. 기기 성능에 따라 렌더링 속도가 달라지며, 느린 환경에서는 시뮬레이션 시간이 실제 시간보다 천천히 흐를 수 있습니다. 캔버스는 고정된 1,200×800 가상 공간을 화면에 맞춰 표시합니다. 썸네일은 앱의 주제를 표현한 생성형 일러스트이며 실제 출력 화면과 다릅니다.
FAQ
입자 생태계의 인력과 척력은 어떻게 설정하나요?
행렬에서 반응할 종과 대상 종의 셀을 선택한 뒤 슬라이더를 조절하세요. 양수는 인력, 음수는 척력입니다. 매우 가까운 입자 사이에는 공통 척력이 적용됩니다.
같은 입자 움직임을 다시 볼 수 있나요?
네. 설정과 시드를 유지하고 R 또는 재시작을 누르세요. 포인터 개입 없이 같은 스텝 수까지 진행하면 같은 실험 조건을 비교할 수 있습니다.
Unity나 Unreal Engine에 바로 가져올 수 있나요?
직접 연동은 지원하지 않습니다. 내보낸 JSON을 참고하여 해당 엔진에서 힘의 규칙과 환경 설정을 별도로 구현해야 합니다.
설정 파일이 서버에 업로드되나요?
아니요. 이 앱의 설정 JSON은 브라우저에서 읽고 다운로드하며 서버로 전송하지 않습니다.
스마트폰에서도 행렬을 편집할 수 있나요?
네. 화면 아래로 스크롤하여 행렬과 환경 설정을 편집하고, 포인터 메뉴에서 끌어당기기나 밀어내기를 선택해 캔버스를 터치하면 됩니다.
WebMiniApps