meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
extend:character [2023/04/04 22:57] – 移除 - 外部编辑 (Unknown date) 127.0.0.1extend:character [2025/02/13 17:15] (当前版本) wpr
行 1: 行 1:
 +<markdown>
 +# 角色及皮肤扩展(过时)
 +[note3]
 +此页内容是过时的,仅供参考意义。
 +[/note]
  
 +在《沙盘引擎》当前版本中,暂时仅支持**导入==人形角色==自定义皮肤**,角色的扩展相当于可添加更多**人形皮肤**,包括但不限于人类身体、内衣、服装,以及一些外表人形的生物、僵尸、变异者等。
 +
 +> 简单来说,角色系统并不需要指定**它是什么**,只需要通过**增加皮肤贴图**的方式让角色看起来像什么即可,无论皮肤是服装、僵尸还是全裸的肤色贴图。
 +
 +## 皮肤贴图扩展
 +角色皮肤的扩展是非常容易的,只需要修改`Skin.png`图片内容即可完成修改,每个图片(贴图)都代表一个不同的Skin皮肤,并且可通过代码API等方式让某个角色“穿上”皮肤。
 +
 +![](asset:1683724025792.jpeg)
 +
 +这听起来确实不难,但想把一个**3D模型贴图**以常规画图的方式来修改并非易事,因为3D贴图的规范是为了适配整个模型UV,所以会不可避免的出现一些不符合常理的**贴图位置错位**,也就是看起来贴图并不那么“通俗易懂”。
 +
 +![](asset:1683724155229.png)
 +
 +如图所示,这就是上方游戏图片内对应的【角色贴图】,很难想象这张贴图放到角色身上是这样的效果。
 +
 +那么问题来了,如何**方便快捷**的对皮肤贴图进行**可视化编辑**呢?
 +
 +### 皮肤贴图修改
 +希望可视化修改《沙盘引擎》角色贴图,我们需要使用**[Blockbench工具](https://www.blockbench.net/downloads "Blockbench工具")**进行绘图编辑,虽然这是一个建模类的工具,但我们**只需要使用它【绘图功能】**即可。
 +
 +![](asset:1683724340808.png)
 +
 +当我们启动工具后,只需要**打开[《沙盘引擎》皮肤模板工程](https://230club.lanzoue.com/ibqbj0v6l2zg "打开《沙盘引擎》皮肤模板工程")**,然后**直接编辑或拷贝新的贴图**,就可以使用【绘画模式】编辑使用了,就像3D画图一样的简单**(使用画笔、油漆桶、形状绘画等工具)**。
 +
 +> 贴图修改只需**修改\拷贝**贴图Png文件即可,不需要重复拷贝`*.bbmodel(软件工程文件)`,只需要使用同一个工程文件,操作不同贴图时,**左下方贴图区域【右键——更改文件】**来替换贴图修改即可。
 +
 +当一张贴图绘画完成后,只需要打开Blockbench工程目录*(或软件左下方右键贴图——打开目录位置)*,找到刚刚编辑的贴图文件`*.png`,这就是制作完成后的贴图啦。
 +
 +**补充:因为Blockbench工具的一些小限制,使用部分功能时可能无法对“不同网格”之间的位置进行直接连续绘画,在这部分可能需要松开一下鼠标,在跨界处重新绘画。**
 +
 +### 肤色自动匹配
 +《沙盘引擎》人形角色支持动态修改肤色,因此除非有特定需求,否则应该保持角色**皮肤部分**为默认颜色(工程文件默认肤色颜色),这样即可由脚本在游戏中动态替换颜色,而不需要为每个肤色都重做一套皮肤。
 +
 +## 导入自定义皮肤
 +无论通过何种方式,当你手中已经有了一些`*.png`角色贴图后,如何将它导入到引擎模组中以供使用呢?
 +
 +只需要打开`模组目录\Store\Data\Character`文件夹,将**贴图文件**放到此目录即可,唯独要注意的是**图片文件要按照以下规范命名**。
 +
 +和大多数沙盘引擎的ID管理机制一样,角色自定义内容的ID索引同样从`10000`开始,所以一个正确的文件命名方式为`CharacterType_ID_Name.png`,正确举例`0_10000_XXXSkin.png`。
 +
 +> **注意:此处的`CharacterType`代表角色皮肤的生物种类,通常情况下应该填写`0`表示为人形角色。**
 +
 +在引擎实际加载模组后,就会根据命名ID在内部建立索引机制,如果没有出现异常情况(如ID重复是不行的),ID10000(举例)就被成功导入到角色皮肤列表了,开发者可通过API等方式将`Character.Skin = 10000;`来修改角色皮肤。
 +
 +**如果通过API等方式修改角色时没有反应,请检查是否导入时报错或者贴图格式异常。**
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +</markdown>