콘텐츠로 이동

월드 로직

월드 로직은 맵에 게임 동작을 넣는 규칙 목록입니다. 코드를 쓰지 않습니다. 에디터가 규칙을 데이터(scene.json)로 내보내면 서버 플러그인 NP Scene 이 그대로 실행합니다.

규칙 하나는 다음 순서로 실행됩니다.

순서부분뜻예
1트리거규칙이 시작되는 일(하나)구역에 들어올 때 · 액터 우클릭 · 블록을 부술 때 · 타이머
2거르기규칙 제한전체에서 한 번만 · 사람마다 한 번 · 쿨다운 · 권한
3조건모두 참일 때만 계속시간대 = 밤 · 손에 든 것 · 확률
4동작위에서부터 차례로 실행소리 · 화면 제목 · 액터 보이기 · 기다리기 · 순간이동

동작 「기다리기」(wait)를 넣으면 그 뒤 동작은 정한 초만큼 늦게 실행됩니다. 기다리는 동안 같은 규칙이 다시 일어나면 따로 하나 더 돕니다.

트리거 · 조건 · 동작의 전체 목록과 칸은 월드 로직 type 목록에 있습니다.

무엇어디서
월드 로직 패널도구 › 월드 로직 (아래 도킹 영역의 「월드 로직」 탭. 창 메뉴에서도 켭니다)
구역 트리거 마법사Ctrl+Shift+T · 도구 › 구역 트리거 만들기… · 패널의 「구역 트리거」 · 「추가」 › 구역 트리거 (마법사)
같은 규칙을 노드로 보기도구 › 로직 그래프 — 로직 그래프

구역 트리거 마법사로 「들어가면 소리 + 제목」 규칙을 만듭니다.

  1. Ctrl+Shift+T 를 누릅니다.
  2. 뷰포트 바닥을 끌어 구역을 그립니다. 그냥 클릭하면 4×4 구역입니다. Esc 는 그리기를 취소합니다.
  3. 마법사 창의 「이름」에 입구 를 씁니다.
  4. 「언제」는 「플레이어가 들어가면」으로 둡니다.
  5. 「할 일」에서 「소리 재생」과 「제목 띄우기」를 누릅니다. 줄이 아래에 생깁니다.
  6. 「결과」 칸의 한 줄 설명(예: 「플레이어가 「입구」에 들어가면 → …」)을 확인합니다.
  7. 「만들기」를 누릅니다. 구역 액터와 규칙이 함께 생깁니다(Ctrl+Z 한 번에 되돌림).
  8. 바로 확인하려면 「만들고 바로 시험」을 누릅니다. 플레이가 시작됩니다.

패널은 왼쪽 규칙 목록과 오른쪽 속성 칸으로 나뉩니다.

요소하는 일
「구역 트리거」구역 트리거 마법사를 시작합니다(뷰포트에서 끌어 새 구역).
「변수」변수 · enum · 데이터타입 창을 엽니다 — 변수 · 함수 · 데이터타입
+새 규칙(구역 진입 → 메시지)을 만듭니다.
복제 · 지우기고른 규칙을 복제하거나 지웁니다.
위로 · 아래로규칙 순서를 바꿉니다. 같은 순간에 걸린 규칙은 목록 순서대로 실행됩니다.
규칙 줄켜기 아이콘 · 트리거 아이콘 · 이름 · 한 줄 설명 · 오류/주의 아이콘
「발동」(줄 끝)손으로만 일으키는 트리거의 규칙에 붙습니다. 플레이에서 그 일이 일어난 것처럼 실행합니다.

목록 아래에는 세 칸이 더 있습니다.

칸내용
구역「뷰포트에 구역·막는 상자 보기」 · 고른 구역 안내 · 구역 검사
시뮬레이션시간대(대기 미리보기 시각 · 낮 · 밤) · 날씨(맑음 · 비 · 뇌우) · 권한 모두 있음
기록「플레이로 시험」 단추와 발동 · 건너뜀 · 동작 기록(시각 초)

뷰포트나 아웃라이너에서 구역을 고르면 그 구역을 쓰는 규칙이 목록에서 강조되고 첫 규칙이 열립니다. 쓰는 규칙이 없으면 「「이름」에 할 일 붙이기」 단추가 나옵니다.

부분내용
머리사용 체크 · 트리거 아이콘 · 규칙 이름 · 「발동」(손으로만 일으키는 트리거) · 마법사로 고치기
한 줄 설명→ 로 시작하는 평이한 설명입니다. 고칠 때마다 바뀝니다.
idscene.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월드 전체. 구역이 필요 없습니다.

「고른 블록」을 쓰는 순서입니다.

  1. 뷰포트에서 선택 도구로 블록을 고릅니다.
  2. 「고른 블록」 칸의 「선택 영역으로」를 누릅니다. 공기를 뺀 칸이 들어갑니다.
  3. 눈 단추를 누르면 그 칸들을 뷰포트에서 다시 선택해 보여 줍니다.
  • 고른 블록은 4,096칸까지입니다. 넓으면 구역 액터를 씁니다.
  • 「어디서」가 없는 옛 규칙은 「구역」으로 읽습니다.
  • 「블록」 칸으로 블록 종류를 거를 수 있습니다(비면 아무 블록).

규칙을 고칠 때마다 검사합니다. 목록 줄에는 오류 · 주의 아이콘이, 속성 칸에는 그 칸 아래 글이 나옵니다.

종류예
오류없는 액터 · 맞지 않는 종류의 액터 · 없는 클립 · 틀린 소리 id · 블록에 묻혀 들어갈 수 없는 구역 · 같은 이름의 함수 규칙
주의소리 라이브러리 · 바닐라에 없는 소리 · 받는 규칙이 없는 신호 · wait 없는 신호 고리 · 쓰는 규칙이 없는 구역 · 규칙이 모두 꺼진 구역 · 모르는 type

모르는 type(이 에디터에 없는 이벤트 플러그인의 type)은 읽기 전용 칸으로 보이고 그대로 보존됩니다. 서버에 그 플러그인이 있으면 실행됩니다.

콘솔 명령 logic 은 규칙 · 클립 목록과 검사 결과를 글로 보여 줍니다.

  1. 내보내기 창에서 .npbuild 를 만들 때 「씬 포함」을 켭니다(기본 켬). scene.json 이 .npbuild 안에 들어갑니다 — 내보내기와 가져오기
  2. 서버에 .npbuild 를 설치하면 회전 · 반전 · 위치를 적용해 서버 좌표로 바꿉니다.
  3. 서버 플러그인 NP Scene 이 규칙을 실행합니다. 코드를 새로 만들지 않습니다.
  • 좌표는 건물 최소 모서리(origin) 기준으로 나갑니다. 형식은 scene.json 형식에 있습니다.
  • 「한 번만」 기록 · 플래그 같은 상태는 서버가 state.json 에 저장합니다.
  • 동작 「서버 명령」은 서버 설정에서 운영자가 켜야 실행됩니다. 에디터는 실행하지 않습니다.
옵션위치기본값뜻
뷰포트에 구역·막는 상자 보기패널 「구역」켬트리거 구역 반투명 상자 + 이름 · 규칙 한 줄, 막는 상자(빗금)
시간대패널 「시뮬레이션」대기 미리보기 시각플레이에서 「시간대」 조건이 보는 때
날씨패널 「시뮬레이션」맑음플레이에서 「날씨」 조건이 보는 날씨
권한 모두 있음패널 「시뮬레이션」켬끄면 플레이에서 권한 거르기 · 조건이 거짓
씬 포함내보내기 창켬.npbuild 에 scene.json 을 넣음
키동작
Ctrl+Shift+T구역 트리거 만들기(끌어서 구역 → 마법사)
Esc구역 그리기 취소 · 마법사 창 닫기
Ctrl+Z규칙 변경 되돌리기(글 입력은 한 단계로 합침)
1~9플레이 중 「발동」 목록의 규칙 실행
  • 규칙이 많아지면 로직 그래프로 흐름을 한눈에 봅니다. 같은 데이터라 어느 쪽에서 고쳐도 됩니다.
  • 플레이 중에 규칙을 고치면 다음 플레이부터 반영됩니다. 플레이는 시작할 때 규칙을 복사해 씁니다.
  • 「블록을 부술 때」 · 「피해를 입을 때」 같은 트리거는 플레이가 스스로 일으키지 않습니다. 「발동」 단추나 숫자 키로 시험합니다.
  • 「이벤트 취소」 동작은 규칙의 맨 앞 동작일 때만 뜻이 있습니다(wait 전).
  • 「신호 보내기」는 그 이름을 받는 규칙을 그 자리에서 바로 실행합니다. 받는 규칙이 여럿이면 모두 실행합니다.