第四代宝可梦地图制作入门
本页面旨在帮助你了解与第四代任天堂DS宝可梦游戏(钻石、珍珠、白金、心金、魂银版本)地图定义相关的组件,并理解如何与这些组件交互以创建和编辑自定义地图。
概念、约束、结构与指导
层级/结构
与第四代宝可梦ROM改版的许多元素一样,数据结构始于标头,此层级内的项目会继承和/或共享信息。
概要
结构的简单轮廓如下:
-
标头
-
区域数据
-
地图纹理包 (.nsbtx)
-
建筑纹理包 (.nsbtx)
-
全局动画文件 (.nsbta)*
-
矩阵
-
地图 (.nsbmd)
-
地形数据 (.bdhc)
-
通行数据 (.per)
-
背景声音数据 (.bgs)*
-
建筑数据 (.bld)
-
-
其他各种与地图不直接相关的数据和文件
-
(仅限心金魂银)*
-
这些数据中,有些在更高层级中是唯一的(例如,每个地图文件必须存在且仅存在一套通行数据),而其他数据则具有不同的关系(一个矩阵可能包含一个或多个地图文件的一个或多个实例,反之,任意数量的标头可能使用同一个地图纹理包)。
地图
第四代宝可梦游戏中的地图模型是单一的3D模型,在概念上可划分为1024个网格方块(32×32)的网格。每个网格方块在3D建模软件(如Blender)中查看时相当于16米,因此地图名义尺寸为512米见方。然而,大多数常用的ROM改版工具会应用0.0625的比例因子(例如,此比例在DSPRE地图编辑器的“建筑”选项卡中可见)。
为简单起见,本指南将每个1/32的分区称为一个“单位”距离;因此,一个地图名义上是32个单位宽乘32个单位深,每个网格方块是一个单位宽乘一个单位深。
地图模型可以扩展到32×32单位的方形区域之外,但“地图”层级以下的数据不能。实际上,这可能用于在地图边界之外提供额外的纯视觉效果元素,或让模型元素/几何体跨越相邻地图之间的边界。
一个单位(一个网格方块的宽度)大致相当于:
-
玩家行走图的宽度。
-
玩家或其他行走图在游戏中能完成的最小完整移动距离。
每个地图网格方块都附有来自较低层级(低于“地图”层级)的一些数据点:
| 属性 | 文件扩展名 | 详情 |
|---|---|---|
| 地形数据 | .bdhc | 每个地形“板块”可能与一个网格方块相交零次或多次。这些板块代表玩家和其他主世界精灵可以在(每个网格方块上)横向移动的Z轴高度,它们可能与“地面”平行,也可能倾斜以允许上升或下降。地形板块的边界在水平方向上(X和Y轴)必须遵循网格方块边界,但在垂直方向上(Z轴)可以设置为更小的距离分割。 |
| 移动权限 | .per | 每个网格方块必须包含以下各项的数据: |
| –> 碰撞 | 一小部分值,用于确定对主世界精灵移动的重大限制,以及一些相关声音(例如,在心金魂银中,值04允许移动,并在玩家精灵在此网格方块上移动时产生草丛沙沙声;而值80则阻止任何主世界精灵在此网格方块上移动,无论地形数据如何)。 | |
| –> 类型 | 更大的值集,提供游戏内的附加功能(例如,在心金魂银中,02是在玩家与网格方块相交时触发高草动画以及(如果填充了相应的遭遇表和遭遇率)触发野生宝可梦遭遇所需的权限类型)。 | |
| 背景声音 | .bgs | 每个声音“板块”可能与一个网格方块相交零次或多次。这些板块决定了当玩家精灵位于该网格方块上时,是否会播放特定的背景声音。仅限心金魂银。 |
编辑地图与工具抽象
如上所述,在这些游戏中,每个地图都是一个独立的3D模型,并为该模型及其内部的1024个网格方块分配了各种附加属性。特别重要的是,除了每个地图的单个3D模型之外,常用的(且通常更复杂的)3D模型也可以“放置”在此之上,这些被称为“建筑”(无论它们是否实际代表一个建筑物)。
可以通过多种方式改变原始(或“原版”)地图模型:
-
编辑3D模型:从游戏中导出完整的3D模型,在3D建模软件(如Blender)中进行修改,然后重新导入。
-
放置附加建筑:通过使用DSPRE工具在地图上放置更多建筑实例(无论是来自原版游戏的建筑还是自定义建筑),进行增量更改(添加以前不存在的东西,例如一片高草或一个悬崖)。
-
重建地图:使用PDSMS工具,利用其基于图块的资产放置系统,重建地图(对原始地图进行小幅或大幅更改),然后重新导入。
-
重新贴图:仅替换模型的纹理,而不改变几何体,可以通过更改.nsbtx中的图像纹理(同时保留相同的名称)来实现。
选项三通常是对地图进行重大更改(或涉及移除地图某些元素的更改)的最容易上手的方法。选项一可能适合有这些工具使用经验的人,但也有限制(因为更改仅应用于该地图模型的特定实例,此处投入的努力不能直接惠及其他地图)。
值得注意的是,在某些情况下,原始地图难以在PDSMS中原样重建,因为某些元素无法与基于图块的资产放置系统很好地配合。
图块
为了在PDSMS中创建地图,必须创建组件模型,这些是可重用的组件,包含整体地图的某个(通常较小的)方面,例如:一棵树。这些组件通常被称为图块,由两个文件组成,扩展名为.obj和.mtl。重要的是要记住,图块是PDSMS中的一个完全抽象的概念,在原始游戏中没有任何意义:原版ROM中没有现成的图块可供提取和使用。
一些基本图块的示例如下所示(来自PDSMS附带的“图块集2 – 主世界”图块集),显示的白色网格代表地图的32×32细分,其中每个网格方块为一个单位乘一个单位。

图块集
图块集是图块的分组,还包括许多其他属性,例如纹理和材质数据,以及一些PDSMS特定功能的属性和定义(例如“智能绘制”)。
PDSMS工具附带了一些常用的图块集,其他图块集则在ROM改版社区(如Kingdom of DS ROM Hacking Discord服务器)中创建和共享。
有关地图和建筑模型以及图块和图块集的更多详细信息,请参阅以下页面。
纹理、材质与动画
纹理和材质
3D模型的几何体或“网格”是第四代宝可梦游戏中所有地图的基础,但如果没有不同的纹理应用于几何体的面/多边形,地图的颜色将完全统一(忽略顶点颜色等属性)。
-
纹理是可以“映射”到网格表面的图像文件。
-
UV贴图是图像纹理到网格每个面的精确映射。
-
材质是纹理的一个实例,带有多个其他属性(范围从定义UV超出图像纹理边界时发生什么的“越界”选项,到16色板或A3I5等颜色格式)。
在第四代宝可梦游戏改版中,必须遵守一些规则(有些来自游戏限制,有些来自工具限制):
-
每个面/多边形必须分配一个材质,该材质必须关联到一个图像纹理。
-
要作为图块导入PDSMS的每个图块.obj不得有未使用的材质。
-
(PDSMS中的)每个图块.obj不得有超过一个材质使用任何给定的图像纹理。
![[NDS教程]四代地图制作指南1 – 介绍-宝可梦营地](https://pokedream.cn/wp-content/uploads/2026/03/hgss_new_bark_town_pdsms-9d15081b20ed36f653b75c3d538e7c1c-1.png)




![[NDS中文]宝可梦白2加强v1.0.1测试版-宝可梦营地](https://pokedream.cn/wp-content/uploads/2025/12/pokew2.png)

![[NDS]心金魂银自用debug内置修改器-宝可梦营地](https://pokedream.cn/wp-content/uploads/2026/01/game_patched__13041.png)
![[GBA教程]pokeemerald实现动态地图色板功能-宝可梦营地](https://pokedream.cn/wp-content/uploads/2025/12/LittlerootTown.png)
![[记录]GBA反编译上踩过的一些坑-宝可梦营地](https://pokedream.cn/wp-content/uploads/2025/12/water.jpg)
![[GBA教程]pokeemerald实现播放gif/mp4动态图片-宝可梦营地](https://pokedream.cn/wp-content/uploads/2025/12/1.gif)

![[GBA教程]pokeemerald新增NPC头像显示,并支持镜像翻转-宝可梦营地](https://pokedream.cn/wp-content/uploads/2026/01/QQ20260114-144714.png)
暂无评论内容