월드 로직
월드 로직은 맵에 게임 동작을 넣는 규칙 목록입니다. 코드를 쓰지 않습니다. 에디터가 규칙을 데이터(scene.json)로 내보내면 서버 플러그인 NP Scene 이 그대로 실행합니다.
규칙 하나는 다음 순서로 실행됩니다.
| 순서 | 부분 | 뜻 | 예 |
|---|---|---|---|
| 1 | 트리거 | 규칙이 시작되는 일(하나) | 구역에 들어올 때 · 액터 우클릭 · 블록을 부술 때 · 타이머 |
| 2 | 거르기 | 규칙 제한 | 전체에서 한 번만 · 사람마다 한 번 · 쿨다운 · 권한 |
| 3 | 조건 | 모두 참일 때만 계속 | 시간대 = 밤 · 손에 든 것 · 확률 |
| 4 | 동작 | 위에서부터 차례로 실행 | 소리 · 화면 제목 · 액터 보이기 · 기다리기 · 순간이동 |
동작 「기다리기」(wait)를 넣으면 그 뒤 동작은 정한 초만큼 늦게 실행됩니다. 기다리는 동안 같은 규칙이 다시 일어나면 따로 하나 더 돕니다.
트리거 · 조건 · 동작의 전체 목록과 칸은 월드 로직 type 목록에 있습니다.
여는 방법
섹션 제목: “여는 방법”| 무엇 | 어디서 |
|---|---|
| 월드 로직 패널 | 도구 › 월드 로직 (아래 도킹 영역의 「월드 로직」 탭. 창 메뉴에서도 켭니다) |
| 구역 트리거 마법사 | Ctrl+Shift+T · 도구 › 구역 트리거 만들기… · 패널의 「구역 트리거」 · 「추가」 › 구역 트리거 (마법사) |
| 같은 규칙을 노드로 보기 | 도구 › 로직 그래프 — 로직 그래프 |
빠른 사용
섹션 제목: “빠른 사용”구역 트리거 마법사로 「들어가면 소리 + 제목」 규칙을 만듭니다.
- Ctrl+Shift+T 를 누릅니다.
- 뷰포트 바닥을 끌어 구역을 그립니다. 그냥 클릭하면 4×4 구역입니다. Esc 는 그리기를 취소합니다.
- 마법사 창의 「이름」에
입구를 씁니다. - 「언제」는 「플레이어가 들어가면」으로 둡니다.
- 「할 일」에서 「소리 재생」과 「제목 띄우기」를 누릅니다. 줄이 아래에 생깁니다.
- 「결과」 칸의 한 줄 설명(예: 「플레이어가 「입구」에 들어가면 → …」)을 확인합니다.
- 「만들기」를 누릅니다. 구역 액터와 규칙이 함께 생깁니다(Ctrl+Z 한 번에 되돌림).
- 바로 확인하려면 「만들고 바로 시험」을 누릅니다. 플레이가 시작됩니다.
월드 로직 패널
섹션 제목: “월드 로직 패널”패널은 왼쪽 규칙 목록과 오른쪽 속성 칸으로 나뉩니다.
왼쪽: 규칙 목록
섹션 제목: “왼쪽: 규칙 목록”| 요소 | 하는 일 |
|---|---|
| 「구역 트리거」 | 구역 트리거 마법사를 시작합니다(뷰포트에서 끌어 새 구역). |
| 「변수」 | 변수 · enum · 데이터타입 창을 엽니다 — 변수 · 함수 · 데이터타입 |
| + | 새 규칙(구역 진입 → 메시지)을 만듭니다. |
| 복제 · 지우기 | 고른 규칙을 복제하거나 지웁니다. |
| 위로 · 아래로 | 규칙 순서를 바꿉니다. 같은 순간에 걸린 규칙은 목록 순서대로 실행됩니다. |
| 규칙 줄 | 켜기 아이콘 · 트리거 아이콘 · 이름 · 한 줄 설명 · 오류/주의 아이콘 |
| 「발동」(줄 끝) | 손으로만 일으키는 트리거의 규칙에 붙습니다. 플레이에서 그 일이 일어난 것처럼 실행합니다. |
목록 아래에는 세 칸이 더 있습니다.
| 칸 | 내용 |
|---|---|
| 구역 | 「뷰포트에 구역·막는 상자 보기」 · 고른 구역 안내 · 구역 검사 |
| 시뮬레이션 | 시간대(대기 미리보기 시각 · 낮 · 밤) · 날씨(맑음 · 비 · 뇌우) · 권한 모두 있음 |
| 기록 | 「플레이로 시험」 단추와 발동 · 건너뜀 · 동작 기록(시각 초) |
뷰포트나 아웃라이너에서 구역을 고르면 그 구역을 쓰는 규칙이 목록에서 강조되고 첫 규칙이 열립니다. 쓰는 규칙이 없으면 「「이름」에 할 일 붙이기」 단추가 나옵니다.
오른쪽: 속성 칸
섹션 제목: “오른쪽: 속성 칸”| 부분 | 내용 |
|---|---|
| 머리 | 사용 체크 · 트리거 아이콘 · 규칙 이름 · 「발동」(손으로만 일으키는 트리거) · 마법사로 고치기 |
| 한 줄 설명 | → 로 시작하는 평이한 설명입니다. 고칠 때마다 바뀝니다. |
| id | scene.json 의 규칙 id 입니다. 영문 · 숫자 · _ . - 만 씁니다. Enter 로 바꿉니다. |
| 트리거 | type 단추 + 칸 |
| 조건 | 조건 카드 목록 + 「조건 추가」 |
| 동작 | 동작 카드 목록 + 「동작 추가」 |
| 거르기 | 전체에서 한 번만 · 사람마다 한 번 · 쿨다운 · 권한 |
- type 단추를 누르면 묶음(구역 · 흐름 · 월드 · 화면 · 액터 · 충돌 · 블록 · 전투 · 변수 · 함수)별 메뉴가 열립니다.
- 손으로만 일으키는 트리거는 메뉴에 「(발동 버튼)」이 붙습니다.
- type 을 바꾸면 같은 이름의 액터 · 글 칸 값은 그대로 들고 갑니다.
- 조건 · 동작 카드에는 번호 · 위로 · 아래로 · 복제 · 지우기 단추가 있습니다.
- 필수 칸은 이름 뒤에
*가 붙습니다. - 액터 칸은 그 칸에 맞는 종류의 액터만 고르기 목록에 나옵니다.
- 검사 글(오류 · 주의)은 그 칸 바로 아래에 나옵니다.
거르기
섹션 제목: “거르기”| 칸 | scene.json | 뜻 |
|---|---|---|
| 전체에서 한 번만 | once | 서버 전체에서 한 번만 실행합니다. |
| 사람마다 한 번 | once_per_player | 한 사람당 한 번 실행합니다. 「전체에서 한 번만」이 켜져 있으면 쓰이지 않습니다. |
| 쿨다운 | cooldown | 같은 사람이 다시 실행하려면 기다릴 초입니다. |
| 권한 | permission | 이 권한 노드가 있는 사람만 실행합니다(예: noplatea.vip). |
조건이 거짓이면 발동 기록(한 번만 · 쿨다운)을 남기지 않습니다.
구역 트리거 마법사
섹션 제목: “구역 트리거 마법사”바닥을 끌어 구역을 그리면 마법사 창이 열립니다. 노란 초안 상자가 뷰포트에 보입니다.
| 칸 | 선택지 |
|---|---|
| 이름 | 구역(또는 막는 상자) 액터 이름 |
| 크기 | X(가로) · Z(세로) · Y(높이) 칸 수. 바닥 가운데를 지키며 바뀝니다. |
| 언제 | 플레이어가 들어가면 · 플레이어가 나가면 · 충돌하면 (막는 상자에 부딪힘) · 블록을 부수면 |
| 부술 블록 | 「블록을 부수면」일 때. 비면 아무 블록, #minecraft:logs 같은 태그도 됩니다. |
| 누가 | 아무나 · 처음 한 명만 (서버 전체에서 한 번) |
| 반복 | 매번 · 한 번만 (사람마다) |
「할 일」 단추를 누르면 줄이 생깁니다. 줄은 위에서부터 차례로 실행됩니다.
| 할 일 | 만드는 동작 |
|---|---|
| 소리 재생 | 소리 |
| 제목 띄우기 | 화면 제목 |
| 채팅 메시지 | 채팅 메시지 |
| 액터 나타나기 | 액터 보이기 — 새 글을 고르면 숨긴 글 액터를 구역 위에 만듭니다. |
| 블록 나타나기 | 블록 채우기 — 선택 도구(4)로 고른 영역을 범위로 씁니다. |
| 애니메이션 재생 | 애니메이션 재생 |
| 순간이동 | 순간이동 — 새 도착점을 고르면 스폰 액터를 만듭니다. |
| 문 열기 | 문 범위를 공기로 바꾸고, 정한 초 뒤에 되돌립니다(여닫는 소리 선택). |
| 체크포인트 | 액션바 글 + 체크포인트 — 되살아날 자리(스폰 액터)를 정합니다. |
- 「만들기」는 구역 · 필요한 액터 · 규칙을 한 번에 만듭니다.
- 이미 있는 규칙을 마법사로 고치면 단추가 「저장」 · 「저장하고 바로 시험」으로 바뀝니다.
- 마법사가 모르는 동작은 「그 밖 동작」 줄로 그대로 남깁니다. 조건 · 쿨다운 · 권한도 그대로 둡니다.
- 「충돌하면」을 고르면 구역 대신 막는 상자를 만듭니다.
블록 트리거의 「어디서」
섹션 제목: “블록 트리거의 「어디서」”0.9.11 부터: 「블록을 부술 때」 · 「블록을 놓을 때」 · 「블록을 우클릭할 때」 트리거에 「어디서」 칸이 생겼습니다.
| 「어디서」 | area | 판정 |
|---|---|---|
| 구역 | zone | 트리거 구역 액터 안의 블록(지금까지와 같음) |
| 고른 블록 | blocks | 뷰포트에서 고른 블록 칸만 |
| 어디서나 | anywhere | 월드 전체. 구역이 필요 없습니다. |
「고른 블록」을 쓰는 순서입니다.
- 뷰포트에서 선택 도구로 블록을 고릅니다.
- 「고른 블록」 칸의 「선택 영역으로」를 누릅니다. 공기를 뺀 칸이 들어갑니다.
- 눈 단추를 누르면 그 칸들을 뷰포트에서 다시 선택해 보여 줍니다.
- 고른 블록은 4,096칸까지입니다. 넓으면 구역 액터를 씁니다.
- 「어디서」가 없는 옛 규칙은 「구역」으로 읽습니다.
- 「블록」 칸으로 블록 종류를 거를 수 있습니다(비면 아무 블록).
규칙을 고칠 때마다 검사합니다. 목록 줄에는 오류 · 주의 아이콘이, 속성 칸에는 그 칸 아래 글이 나옵니다.
| 종류 | 예 |
|---|---|
| 오류 | 없는 액터 · 맞지 않는 종류의 액터 · 없는 클립 · 틀린 소리 id · 블록에 묻혀 들어갈 수 없는 구역 · 같은 이름의 함수 규칙 |
| 주의 | 소리 라이브러리 · 바닐라에 없는 소리 · 받는 규칙이 없는 신호 · wait 없는 신호 고리 · 쓰는 규칙이 없는 구역 · 규칙이 모두 꺼진 구역 · 모르는 type |
모르는 type(이 에디터에 없는 이벤트 플러그인의 type)은 읽기 전용 칸으로 보이고 그대로 보존됩니다. 서버에 그 플러그인이 있으면 실행됩니다.
콘솔 명령 logic 은 규칙 · 클립 목록과 검사 결과를 글로 보여 줍니다.
서버에서 실행
섹션 제목: “서버에서 실행”- 내보내기 창에서
.npbuild를 만들 때 「씬 포함」을 켭니다(기본 켬).scene.json이.npbuild안에 들어갑니다 — 내보내기와 가져오기 - 서버에
.npbuild를 설치하면 회전 · 반전 · 위치를 적용해 서버 좌표로 바꿉니다. - 서버 플러그인 NP Scene 이 규칙을 실행합니다. 코드를 새로 만들지 않습니다.
- 좌표는 건물 최소 모서리(origin) 기준으로 나갑니다. 형식은 scene.json 형식에 있습니다.
- 「한 번만」 기록 · 플래그 같은 상태는 서버가
state.json에 저장합니다. - 동작 「서버 명령」은 서버 설정에서 운영자가 켜야 실행됩니다. 에디터는 실행하지 않습니다.
| 옵션 | 위치 | 기본값 | 뜻 |
|---|---|---|---|
| 뷰포트에 구역·막는 상자 보기 | 패널 「구역」 | 켬 | 트리거 구역 반투명 상자 + 이름 · 규칙 한 줄, 막는 상자(빗금) |
| 시간대 | 패널 「시뮬레이션」 | 대기 미리보기 시각 | 플레이에서 「시간대」 조건이 보는 때 |
| 날씨 | 패널 「시뮬레이션」 | 맑음 | 플레이에서 「날씨」 조건이 보는 날씨 |
| 권한 모두 있음 | 패널 「시뮬레이션」 | 켬 | 끄면 플레이에서 권한 거르기 · 조건이 거짓 |
| 씬 포함 | 내보내기 창 | 켬 | .npbuild 에 scene.json 을 넣음 |
단축키
섹션 제목: “단축키”| 키 | 동작 |
|---|---|
| Ctrl+Shift+T | 구역 트리거 만들기(끌어서 구역 → 마법사) |
| Esc | 구역 그리기 취소 · 마법사 창 닫기 |
| Ctrl+Z | 규칙 변경 되돌리기(글 입력은 한 단계로 합침) |
| 1~9 | 플레이 중 「발동」 목록의 규칙 실행 |
팁 / 주의
섹션 제목: “팁 / 주의”- 규칙이 많아지면 로직 그래프로 흐름을 한눈에 봅니다. 같은 데이터라 어느 쪽에서 고쳐도 됩니다.
- 플레이 중에 규칙을 고치면 다음 플레이부터 반영됩니다. 플레이는 시작할 때 규칙을 복사해 씁니다.
- 「블록을 부술 때」 · 「피해를 입을 때」 같은 트리거는 플레이가 스스로 일으키지 않습니다. 「발동」 단추나 숫자 키로 시험합니다.
- 「이벤트 취소」 동작은 규칙의 맨 앞 동작일 때만 뜻이 있습니다(
wait전). - 「신호 보내기」는 그 이름을 받는 규칙을 그 자리에서 바로 실행합니다. 받는 규칙이 여럿이면 모두 실행합니다.