饥荒联机版Mod开发——准备工具(一)

饥荒联机版Mod开发——准备工具

  • 前言
  • 工具下载
  • 工具功能和使用
    • 动画
      • c_start:反解压动画
      • Sprite:制作动画
      • 打包工具:把动画再打包回去
    • 贴图
      • TEXTool:查找/反解压tex
      • texcreator:把常规图片转为tex
    • XML
      • XmlNotepad:查看,修改XML
    • 搜索
      • 检索文件升级版:查找关键词
    • 练习Lua
      • ZeroBraneStudio
      • 其他软件
      • FMOD、Sound:音频制作
      • Tiled:地皮
  • 传送门

前言

本系列教程讲一步步指引你进行饥荒联机版Mod的开发,首先你要有饥荒联机版,推荐是steam的,有自动打包工具。如果没有也不要紧,下面准备的工具也可以实现同样的功能。

工具下载

饥荒联机版开发
https://pan.baidu.com/s/1_-TPRdo86z8PNwK084N_3A?pwd=oc74
请添加图片描述
(TexTool,可用TexTool_new代替,那个可以当快捷打开方式)
左边的modmaker就是需要用到的工具,请把它解压到英文目录下。右边是当初群里的教程,样板和我的笔记。不懂的地方,进QQ群 557963863 交流请教大佬们。

如果是steam的,下官方的Don’t Stave Mod Tools,自动化打包,贴图转换。
在这里插入图片描述
在这里插入图片描述

工具功能和使用

steam的是Don’t Starve Together,wg是饥荒联机版,自己去对应路径找文件,下面以饥荒目录代称。

动画

c_start:反解压动画

文件位于ktools/kttos-4.4.4/c_start.bat,在运行前需要把动画相关文件放到同级目录下,然后运行c_start.bat,按Tab选择输出文件夹,回车确定。
官方动画在 饥荒目录\data\anim 下面。
请添加图片描述
在这里插入图片描述
一般播放动画的代码就是下面这些,各种对应的参数,在上图找。而文件夹名字,图片名字不影响这些代码。

    inst.AnimState:SetBank("beardhair") --sprite打开第一层名字,绿字旁边的红字inst.AnimState:SetBuild("beardhair")    --scml名字,顶部inst.AnimState:PlayAnimation("idle")    --播放动画,sprite打开第二层名字名字,绿字

同时,坐标的x, y对应图片的位置,就算那个图片红色的锚点改变了,只要x,y不变还是会出现在同样的地方,哪怕图片变了。物品栏的x,y设为0。angle随便改就行。

Sprite:制作动画

文件在Spriter/Spriter.exe
建个文件夹,名字叫rootname,在里面建个文件夹叫foldername,在里面放图片,图片大小任意。(这些名字其实无所谓,不影响到代码。而且rootname,foldername一般和prefab名字一样。图片名是 xxx-序号)
打开Sprite,点击 File->New Project,选择rootname文件夹。遇弹窗直接Ok就行。
在这里插入图片描述
首先,先设置图片的锚点,双击右侧的文件夹里面的图片。选择合适的锚点位置。
在这里插入图片描述
同理设置第二张图的锚点,当然用上面的复制粘贴锚点更快
在这里插入图片描述
把第一张图拖进屏幕,坐标的x,y设为0(其实就是锚点的坐标)
在这里插入图片描述
到这里静止的物品放地上的动画就完成了。
在这里插入图片描述
保存为想要的名字就行。
在这里插入图片描述
刚才的的 scmlname,对应 inst.AnimState:SetBuild的参数
右边的entity_000,对应 inst.AnimState:SetBank的参数
下面的NewAnimation,对应inst.AnimState:PlayAnimation的参数

一般scmlname、entity_000都和prefab名同,NewAnimation一般是idle

    inst.AnimState:SetBank("entity_000") --sprite打开第一层名字inst.AnimState:SetBuild("scmlname")    --scml名字inst.AnimState:PlayAnimation("NewAnimation")    --播放动画,sprite打开第二层名字名字

如果做“会动”的动画,改变动画总长度。单位:毫秒
在这里插入图片描述

在下面时间轴选择另一个时间点
在这里插入图片描述
或者改这个也行
在这里插入图片描述

在图片上长按右键,选择图片二,或者移动/旋转图片一,都行。看想做什么动画

在这里插入图片描述
点播放看看效果,合适就保存。
在这里插入图片描述

打包工具:把动画再打包回去

文件在打包工具/打包工具.exe
我们之前的rootname文件夹,复制到打包工具\mods\mymod\exported在这里插入图片描述

运行打包工具,勾选mymod,然后打包,当提示打包成功时,去到打包工具\mods\mymod\anim 文件夹下就可以看见打包好的压缩包了。
在这里插入图片描述

如果是steam的官方工具,把文件夹放到 exported 文件夹里,会帮你自动打包并保存在anim文件夹里,当修改后也会重新生成。

贴图

TEXTool:查找/反解压tex

文件夹在Textool 1.4.1/TEXTool.exe。双击打开TEXTool.exe,点击左上角的Open,来到饥荒目录/data下,随便找张tex打开就行。这里为方便后面讲解,打开data/image/anr_sihouetees.tex
![在这里插入图片描述](https://img-blog.csdnimg.cn/61e845b35220406794ee778d85e36bb6.png

然后点击Save,输入文件名和后缀(如: anr_sihouetees.png),转成常见的图片格式(一般我们都转png)
同时,最下面有相关参数
在这里插入图片描述

texcreator:把常规图片转为tex

文件在Textool 1.4.1/texcreator.exe

有大多数图片有尺寸要求的,如 modicon、inventoryimages等,可以先用TEXTool把官方/其他mod的tex转为常规图片(一般是png),用ps等软件修改后,再texcreator转回去。

观察TEXTool下面的参数,发现Minmaps基本都大于1的,所以这里要第一个选项勾上
在这里插入图片描述

这样我们就得到了tex,不过我们还需要个xml文件来说明tex(看下一步)

如果下了steam的官方工具,直接把 .png 文件放到文件夹里面,会自动生成tex和xml,当修改时也会重新生成。

XML

XmlNotepad:查看,修改XML

文件在XML NOtepad 2007/XmlNotepad.exe
在上一步我们得到了tex,但我们还需要个xml。有些tex是把一堆图放到一张图里的,所以对应的xml也比较复杂(就像这个例子一样)。
打开饥荒目录/data/images/anr_silhouettes.xml(xml名字和tex名字对应)
在这里插入图片描述
代码中常见的texname就是Element中的name,而xml就是对应的xml。其中
左下角是坐标原点
0.0 <= u1 <= u2 <= 1.0,表示x轴 (→)
0.0 <= v1 <= v12 <= 1.0,表示y轴(↑)
在这里插入图片描述
这四条直线框起来的就是对应的图。
不过一般我们都是一张图而已,把对应的xml复制一份,重命名xml后,打开xml,把里面的filename和name改了就行。

搜索

检索文件升级版:查找关键词

文件在搜索文件升级版/检索文件升级版.exe
下一期会出用VS Code的来配置代码开发环境,那里也有全局搜索和这个软件看情况来配合用。

在使用前要先配置下地址.txt。首先我们去到饥荒目录/data/databundles中把scripts.zip解压,然后修改地址.txt里对应地址就行。

然后运行软件,类型选 lua ,输入要查找的内容即可。

如果要直接修改代码来改变游戏,把scripts.zip解压到饥荒目录/data中,形成饥荒目录/data/scripts, 而不是饥荒目录/data/scripts/scripts。并把饥荒目录/data/databundles中的script.zip重命名,我们就可以直接修改里面的代码来改变游戏。不过不建议新手这么干,容易暴毙。

练习Lua

ZeroBraneStudio

文件在ZeroBraneStudio/zbstudio.exe
在此之前推荐先看*【MOD制作教程及材料】/lua_语言说明(非常重要).docLua程序设计(第2版)中文(全).pdf*

打开软件,输入下面代码,按F6运行。
print(“Hello World”)

其他软件

FMOD、Sound:音频制作

Tiled:地皮

传送门

→饥荒联机版Mod开发——配置代码环境(二)

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注