119 lines
6.7 KiB
Markdown
119 lines
6.7 KiB
Markdown
# Village Pack — RPG 图块地图与战斗美术
|
||
|
||
Village Pack 是 RPG Plus 世界背后的美术包:用来绘制地图的图块集、英雄、村民和怪物的行走图、战斗立绘和战斗背景。所有素材都采用同一种绘画风 2.5D 风格,用它搭出来的地图看起来是同一个世界。
|
||
|
||
它**只有美术**。可以行走的村庄、长老之家、森林和沙漠,是 RPG Demo 与 RPG Plus 内容模组里的地图和事件;行走、碰撞和战斗则是 RPG 引擎的事。Village Pack 提供它们所用的图片。
|
||
|
||

|
||
|
||
## 里面有什么
|
||
|
||
### village 图块集
|
||
|
||
演示世界的每张地图都用 `village` 图块集。它分两部分。
|
||
|
||
物件放置在格子 上:小屋、神社拱门、洞口、树木、灌木、水井、篝火、路灯、栅栏、告示牌、木桶、宝箱(关闭和打开两种)、工作台,以及可拾取物——柴火、石块和蘑菇。最上方是小屋内部,一整张 12 × 10 的房间图,长老之家用的就是它。
|
||
|
||

|
||
|
||
表面是无缝的地面纹理,用来铺满整片区域:草地、石板路、泥土、浅色石地板、木地板、多石的林间小径和水。
|
||
|
||

|
||
|
||
部分图块带有 RPG 引擎用的额外属性:水不可通行,路灯和窗户自带光源,黄昏和夜晚会在地图上发光。
|
||
|
||

|
||
|
||
### 四季植被
|
||
|
||
四个植被图块集用夏季、秋季、深秋的光秃版和落雪的冬季展示同一批树木、灌木、树桩和花:橡树、云杉、桦树、柳树、枫树和松树,圆形灌木和浆果灌木,砍断的和空心的树桩,雏菊和紫罗兰。
|
||
|
||

|
||
|
||
一张地图只能用一个图块集,目前没有任何自带地图使用植被图块集。它们是给地图作者备好的素材。
|
||
|
||
### 沙漠与雪地
|
||
|
||
- `desert`:沙地和岩石表面加沙漠物件——土坯建筑、集市遮阳篷、棕榈、仙人掌和干草。RPG Plus 的沙漠地图 Dry March 就是用它画的。
|
||
- `snow`:新雪、冰面和两种可踩出脚印的路面(`packed_snow` 和踩得更深的 `trampled_snow`),还有小屋、马车、水井、岩石、灌木和积雪的云杉。目前没有自带地图使用它。
|
||
|
||

|
||
|
||

|
||
|
||
### 行走图(charset)
|
||
|
||
每个行走图是一张 3 × 4 表:四个朝向(下、左、右、上)各有三帧行走画面。村庄组包含英雄、长老、村民、商人、史莱姆和狼。沙漠组增加了蝎子、甲虫,以及关闭和打开两种状态的木桶。
|
||
|
||

|
||
|
||
### 战斗立绘与背景
|
||
|
||
大幅立绘展示战斗中的角色:英雄、史莱姆和狼,以及沙漠的蝎子和甲虫。
|
||
|
||

|
||
|
||
三张背景——草地、森林和沙漠前哨——用作在地图上触发的战斗的背景。草地和森林带有供光照系统使用的 `_depth` 伴生图。
|
||
|
||

|
||
|
||

|
||
|
||
## 在哪里能看到它
|
||
|
||
Village Pack 属于 `rpg_plus` 游戏。在那个游戏里:
|
||
|
||
- 村庄、长老之家、森林和林间神社用 `village` 图块集绘制;
|
||
- 沙漠地图使用 `desert`;
|
||
- 长老、商人、村民、狼、史莱姆、蝎子和甲虫用包内行走图在地图上走动;
|
||
- 战斗会显示立绘,地图场景用 `village/meadow`、`village/forest` 或 `desert/outpost` 作战斗背景。
|
||
|
||
图块地图编辑器把选中的图块集显示为调色板。图中打开的是长老之家:小屋内部、物件和表面样块就是 village 图块集。
|
||
|
||

|
||
|
||
## 在自己的 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`。
|