생물 팩 작성하기
생물 팩은 Game Mode가 싸우는 생물을 위한 그림입니다. 팩을 고르면 팩에 그림이 있는 적은 전투 보드에서 둥근 토큰 대신 그 그림으로 그려집니다. 그림은 적이 마지막으로 움직인 방향을 바라보며, 생물 자신의 크기로 그려집니다. 팩에 그림이 없는 적은 토큰을 그대로 사용합니다. 플레이 중 모습은 전술 전투와 지형을 참고하세요.
팩은 JSON 파일 하나(.creatures.json)입니다. 가장 쉽게 만드는 방법은 Pixelforge의 Creatures(생물) 탭입니다. Pixelforge는 생물마다 그림 한 장씩을 받아 파일을 만들어 주는 외부 도구입니다. 이 가이드에서는 다른 방법으로 팩을 만드는 분을 위해 파일 자체를 설명합니다.
팩 사용하기
시작하기 전에 .creatures.json 파일을 만들거나 다운로드하세요. Pixelforge는 Marinara에 포함되지 않은 별도의 제작 앱입니다.
- Pixelforge에서 Creatures 탭을 여세요.
- 파일을 불러오려면 Import a creature pack file(생물 팩 파일 가져오기)을 선택하세요. Pixelforge에서 만든 팩이라면 Save to the library(라이브러리에 저장)를 선택하세요.
- Use for fights(전투에 사용)를 선택하세요.
팩 하나가 모든 전투를 그립니다. 다시 토큰으로 돌아가려면 선택한 팩을 제거하거나 Use tokens instead(대신 토큰 사용)를 선택하세요.
파일
{
"creaturePackVersion": 1,
"id": "my-monsters",
"name": "My monsters",
"version": 1,
"author": "Robin",
"tileSize": 48,
"sheets": [{ "id": "s1", "png": "data:image/png;base64,iVBORw0KGgo...", "width": 2048, "height": 1536 }],
"creatures": [
{
"id": "goblin",
"match": ["5e-2014/creatures/goblin", "Goblin"],
"size": "small",
"w": 1,
"h": 2,
"frames": 1,
"variants": [
{ "sheet": "s1", "x": 0, "y": 0 },
{ "sheet": "s1", "x": 1, "y": 0 }
]
}
]
}| 필드 | 내용 |
creaturePackVersion | 1이며, 비행 그림이 있는 팩은 2입니다(Capability API 1.352). |
id | 소문자, 숫자, _, -를 사용합니다. 라이브러리는 가져온 팩을 local/<id> 아래에 보관합니다. |
name, author | 라이브러리에 표시됩니다. author는 선택 사항입니다. |
version | 정수입니다. 한 번 쓴 버전은 다시 쓰지 않으므로 팩을 바꾸려면 버전을 올리세요. 같은 파일을 다시 가져오면 아무것도 바뀌지 않습니다. |
tileSize | 한 칸의 픽셀 크기로, 16에서 96 사이의 16의 배수입니다. Game Mode의 격자는 48입니다. |
sheets | 그림 최대 64장이며, 각 그림은 한 변이 최대 8192픽셀입니다. |
creatures | 생물 최대 2000개입니다. |
| 파일 크기 | 최대 32 MB입니다. |
시트
시트의 png는 PNG data URL이어야 합니다. data:image/png;base64, 뒤에 base64만 오고 다른 것은 없어야 합니다. 다른 곳의 이미지를 가리키는 링크는 거부되며, base64 뒤에 무엇이 붙어 있어도 거부됩니다. 그래서 팩은 언제나 자신의 그림만 보여 줄 수 있습니다. width와 height는 PNG의 실제 크기여야 합니다. Engine은 그림의 헤더에서 크기를 읽고, 시트에 적힌 크기가 다르면 팩을 거부합니다.
생물 항목
| 필드 | 내용 |
id | 팩 안에서 쓰는 생물 ID이며 고유해야 합니다. |
match | 그림을 적용할 대상으로, 1~16개 항목입니다. 항목은 규칙 집합 생물이나 이름이며, 두 종류를 나란히 쓸 수도 있습니다. |
size | tiny, small, medium, large, huge, gargantuan 중 하나입니다. 보이는 모습에만 영향을 주며, 모든 유닛은 여전히 한 칸을 차지합니다. |
w, h | 한 프레임의 크기를 칸 단위로 적으며, 각각 1~6입니다. |
frames | 가만히 있는 생물은 1, 걷는 생물은 3(한 걸음, 서기, 한 걸음)입니다. |
variants | 생물의 외형으로 1~8개이며, 각 외형은 시트에서 블록이 시작하는 위치입니다. sheet와 왼쪽 위 칸 x, y를 적습니다. |
fly | 선택 사항이며 creaturePackVersion 2가 필요합니다. 비행 블록으로, 걷기 블록처럼 가로 세 프레임, 세로 네 방향으로 배치하며 위치는 variants와 같은 방식으로 지정합니다. 모든 외형이 함께 쓰는 하나를 두거나, 외형마다 같은 순서로 하나씩 둡니다. |
비행
fly가 있는 생물은 전투에서 공중에 있는 것으로 표시되는 동안 비행 블록으로 그리며, 프레임을 0, 1, 2, 1 순서로 재생합니다. 다음 중 하나에 해당하면 공중에 있는 것으로 표시됩니다.
- 비행 속도가 있고 걷기 속도가 없음
- 공중에 떠 있음
- 지면 위로 올라가 있음
- 이번 턴에 비행으로 이동함(물 위를 지나는 것처럼 비행으로만 가능한 이동)
그 밖에는 이전처럼 외형 블록으로 그립니다.
생물 팩에 비행 그림이 있는 Experience 지도 팩에는 Capability API 1.352가 필요합니다.
match가 가리키는 대상
- 규칙 집합 생물:
<catalog>/<entry>(예:creatures/goblin)는 모든 규칙 집합에서 그 생물 도감 항목과 일치합니다.<ruleset>/<catalog>/<entry>(예:5e-2014/creatures/goblin)는 그 규칙 집합에서만 일치합니다. - 이름: 적의 이름과 일치합니다. 대소문자와 문장 부호는 무시하며 끝에 붙은 숫자도 무시하므로 "Goblin 2"도 고블린입니다.
규칙 집합의 생물 도감에서 나온 전투원은 먼저 항목으로, 그다음 이름으로 찾습니다. 두 생물이 같은 대상과 일치하면 팩에서 먼저 나열된 생물이 우선합니다. Engine은 팩을 가져올 때 이 사실을 알려 줍니다.
크기
프레임은 칸 단위로 세며, 생물은 자기 칸의 아랫변 가운데에 서 있도록 그려지므로 큰 생물은 주변 칸까지 걸쳐 서 있습니다. 48픽셀 격자에서는 다음 크기가 잘 어울립니다.
| 생물 | 프레임(w × h) |
| 초소형 생물, 또는 네 발로 걷는 소형이나 중형 생물 | 1×1 |
| 똑바로 서는 소형이나 중형 생물 | 1×2 |
| 대형 | 2×2, 똑바로 서는 생물(오우거, 골렘)은 2×3 |
| 거대형 | 3×3, 똑바로 서는 생물(거인)은 3×4 |
| 초거대형 | 4×4 |
블록: 행과 프레임
각 외형은 시트 위의 블록 하나입니다. 블록은 가로로 프레임 frames개, 세로로 4행이며, 각 프레임은 가로 w칸, 세로 h칸입니다. 각 행은 바라보는 방향이며 순서는 다음과 같습니다.
- 아래(보는 사람 쪽)
- 왼쪽
- 오른쪽
- 위(뒤에서 본 모습)
가만히 있는 생물(frames: 1)은 네 방향이 한 열로 놓입니다. 걷는 생물(frames: 3)은 일반적인 걷기 스프라이트 시트처럼 각 행에 한 걸음, 서기, 한 걸음이 가로로 놓입니다. 모든 블록은 시트 안에 완전히 들어가야 하며, 가장자리를 넘는 블록이 있으면 Engine이 어느 블록인지 알려 줍니다.
외형
외형이 여러 개(다른 옷, 색, 무기)인 생물은 그 생물로 나오는 전투원마다 외형을 하나씩 줍니다. 전투원은 그려질 때마다 같은 외형을 유지하며, 한 전투에 나온 고블린 둘이 서로 다르게 보일 수 있습니다. 한 생물의 외형은 모두 크기가 같습니다.
Pixelforge의 Creatures 탭에서 생물 옆의 Add looks(외형 추가)는 첫 그림과 같은 크기의 그림을 더 추가하며, 모두 합쳐 최대 8장까지 넣을 수 있습니다.