Files

119 lines
6.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Village Pack — RPG 图块地图与战斗美术
Village Pack 是 RPG Plus 世界背后的美术包:用来绘制地图的图块集、英雄、村民和怪物的行走图、战斗立绘和战斗背景。所有素材都采用同一种绘画风 2.5D 风格,用它搭出来的地图看起来是同一个世界。
它**只有美术**。可以行走的村庄、长老之家、森林和沙漠,是 RPG Demo 与 RPG Plus 内容模组里的地图和事件;行走、碰撞和战斗则是 RPG 引擎的事。Village Pack 提供它们所用的图片。
![夜晚的村庄地图,用 village 图块集绘制:小屋、铺着石板的广场和路灯、树木、池塘,以及用包内行走图绘制的村民。](assets/village-map.jpg)
## 里面有什么
### village 图块集
演示世界的每张地图都用 `village` 图块集。它分两部分。
物件放置在格子 上:小屋、神社拱门、洞口、树木、灌木、水井、篝火、路灯、栅栏、告示牌、木桶、宝箱(关闭和打开两种)、工作台,以及可拾取物——柴火、石块和蘑菇。最上方是小屋内部,一整张 12 × 10 的房间图,长老之家用的就是它。
![村庄物件图集:顶部是小屋内部,下方是小屋、神社拱门、洞穴和橡树,底部一排是小物件。](assets/village_objects.jpg)
表面是无缝的地面纹理,用来铺满整片区域:草地、石板路、泥土、浅色石地板、木地板、多石的林间小径和水。
![村庄的七种表面:草地、石板、泥土、浅色石板、木板、多石小径和水。](assets/village_surfaces.jpg)
部分图块带有 RPG 引擎用的额外属性:水不可通行,路灯和窗户自带光源,黄昏和夜晚会在地图上发光。
![夜晚的长老之家,由小屋内部图片构成,两扇窗透出光亮。](assets/elder-house.jpg)
### 四季植被
四个植被图块集用夏季、秋季、深秋的光秃版和落雪的冬季展示同一批树木、灌木、树桩和花:橡树、云杉、桦树、柳树、枫树和松树,圆形灌木和浆果灌木,砍断的和空心的树桩,雏菊和紫罗兰。
![同一批植被的四季,从左到右:夏、秋、光秃枝干和冬。](assets/vegetation.jpg)
一张地图只能用一个图块集,目前没有任何自带地图使用植被图块集。它们是给地图作者备好的素材。
### 沙漠与雪地
- `desert`:沙地和岩石表面加沙漠物件——土坯建筑、集市遮阳篷、棕榈、仙人掌和干草。RPG Plus 的沙漠地图 Dry March 就是用它画的。
- `snow`:新雪、冰面和两种可踩出脚印的路面(`packed_snow` 和踩得更深的 `trampled_snow`),还有小屋、马车、水井、岩石、灌木和积雪的云杉。目前没有自带地图使用它。
![四种雪地表面:新雪、冰面、带浅浅脚印的踩实雪地和深深踩烂的雪地。](assets/snow_surfaces.png)
![用 desert 图块集绘制的沙漠地图:沙地、石子路、遮阳篷、棕榈、仙人掌、蝎子和甲虫。](assets/desert-map.jpg)
### 行走图(charset)
每个行走图是一张 3 × 4 表:四个朝向(下、左、右、上)各有三帧行走画面。村庄组包含英雄、长老、村民、商人、史莱姆和狼。沙漠组增加了蝎子、甲虫,以及关闭和打开两种状态的木桶。
![村庄行走图:英雄、长老、村民、商人、史莱姆和狼,每个角色四行朝向。](assets/charsets.png)
### 战斗立绘与背景
大幅立绘展示战斗中的角色:英雄、史莱姆和狼,以及沙漠的蝎子和甲虫。
![战斗立绘:持剑持盾的英雄、史莱姆、狼、蝎子和甲虫。](assets/portraits.jpg)
三张背景——草地、森林和沙漠前哨——用作在地图上触发的战斗的背景。草地和森林带有供光照系统使用的 `_depth` 伴生图。
![战斗背景:草地、森林和沙漠前哨。](assets/backdrops.jpg)
![与史莱姆的战斗:上方是史莱姆立绘,左下是英雄立绘,背后是夜晚的草地背景。](assets/battle.jpg)
## 在哪里能看到它
Village Pack 属于 `rpg_plus` 游戏。在那个游戏里:
- 村庄、长老之家、森林和林间神社用 `village` 图块集绘制;
- 沙漠地图使用 `desert`;
- 长老、商人、村民、狼、史莱姆、蝎子和甲虫用包内行走图在地图上走动;
- 战斗会显示立绘,地图场景用 `village/meadow`、`village/forest` 或 `desert/outpost` 作战斗背景。
图块地图编辑器把选中的图块集显示为调色板。图中打开的是长老之家:小屋内部、物件和表面样块就是 village 图块集。
![打开了长老之家的 RPG 地图编辑器。左侧调色板显示 village 图块集;右侧地图属性显示“Tileset: village”。](assets/map-editor-palette.jpg)
## 在自己的 RPG 内容中使用它
1. 把 `village_pack` 加进游戏的合集。它依赖引擎模组 `rpg`。
2. 把 `village_pack>=1` 加进使用其美术的内容模组的 `depends` 列表。
3. 按名称引用美术资源:
```jsonc
// 一张地图:整张地图只用一个图块集
{ "Kind": "rpg_map", "Items": [ { "Id": "my_glade", "Tileset": "village" /* … */ } ] }
```
```jsonc
// 用行走图绘制的地图事件
{ "Id": "old_man", "X": 5, "Y": 3, "Sprite": "village/elder" }
```
```jsonc
// 角色的战斗立绘
{ "Id": "my_wolf", "Image": "characters/village/wolf" }
```
```json
{
"name": "my_glade",
"defaultBackground": "village/meadow"
}
```
图块集名称为 `village`、`vegetation_summer`、`vegetation_autumn`、`vegetation_bare`、`vegetation_winter`、`desert` 和 `snow`。行走图为 `village/<name>` 和 `desert/<name>`;战斗背景为 `village/meadow`、`village/forest` 和 `desert/outpost`。
最省事的绘制方式是 RPG 地图编辑器:把 `village` 选为地图的图块集,然后用调色板作画,不必手输图块编号。
## 限制与替换
- 一张地图一个图块集。同一张地图上不能混用 village 图块集和植被图块集。
- 美术自带烘焙好的光照和透视。它按 2.5D 视角绘制;等距渲染器复用同一批图片,因此特别高的物件会保持绘制时的角度。
- 想为自己的游戏替换某张图,在自己模组里放一个相对名称相同的文件并声明依赖 `village_pack` 即可。后加载的依赖方胜出。
- 最初的生成图、提示词和可编辑源文件都归档在游戏之外;模组里只有运行时图片和图块集定义。
## 如果画面不对劲
1. 地图缺地面或缺物件,多半是 `Tileset` 名称拼写错误或缺少依赖。
2. 角色看不见:检查 `Sprite` 名称,以及行走图表是否为 3 × 4 帧。
3. 战斗背景是纯色:地图场景没有设置 `defaultBackground`。