主要工具
mod tools(steam工具库可找到,用来上传mod,自动打包Spriter制作的动画文件为***.zip,转换PNG图片为***.tex图片)
spriter(用于制作动画包括静态图片)
FMOD Designer (用于制作音效等)(非必需)
Tiled (制作地图)(非必需)
sublime或者notepad++(喜欢前者)
TEXTOOL(tex与png转化,方便改图,最好还要有个ps,textool1.3下载地址:链接:http://pan.baidu.com/s/1mittdUC 密码:0e23)(非必需)
KTOOL(下载地址 链接:http://pan.baidu.com/s/1c14i8Qs 密码:lkrh)
(暂无提供mod tools和spriter下载,<正版spriter在工具库的Mod Tools里面,如上图>)
下面是一个食物mod的模板
链接:http://pan.baidu.com/s/1i46GeeL 密码:bzcn
打开模板
1.首先添加一个物品栏的食物图片(一张64*64大小(满足长宽相等,以及数字为2的整数次方的条件即可)的png图片)
可以自己用textool转成.tex
记得打勾
或者不手动转,让饥荒自己帮你转
图片做好放在\images\inventoryimages
在这个文件夹下,新建一个myfood.xml文件(.xml文件是用来控制切割图片的)。(模板已经准备好了)输入以下内容并保存 <Atlas>
<Texture filename="myfood.tex" />
<Elements>
<Element name="myfood.tex" u1="0" u2="1" v1="0" v2="1" />
</Elements>
</Atlas>
(images文件夹就算ok了)
2.物品栏图片做好了,下面准备一个放在地上的图片(由于懒癌,图片还是采用了物品栏的那个,所以看起来比较小,建议勤快点重新准备一张大点的,)
在exported文件夹下新建一个myfood文件夹,myfood下新建一个ground_myfood文件夹,(其实名称无所谓,只是方便识别)
把做好的图片ground_myfood.png放在里面
打开spriter
新建工程
选择文件夹
拖放进入场景并调整(十字是人物拾取的部位)
右下角也改一下
为myfood为名保存
第二步就这样吧
3.代码部分
modinfo不再赘述
modmain
PrefabFiles = {
"myfood", ''新设定的prefab都必须在这里注册
}
local assets =
{
Asset("ANIM", "anim/myfood.zip"),
Asset("ATLAS", "images/inventoryimages/myfood.xml"),
Asset("IMAGE", "images/inventoryimages/myfood.tex"),
}
local prefabs =
{
}
local function fn()
local inst = CreateEntity()
inst.entity:AddTransform()
inst.entity:AddAnimState()
inst.entity:AddNetwork()
MakeInventoryPhysics(inst)
inst.AnimState:SetBank("myfood")
inst.AnimState:SetBuild("myfood")
inst.AnimState:PlayAnimation("idle")
inst.entity:SetPristine()
if not TheWorld.ismastersim then
return inst
end
inst:AddComponent("inspectable")
inst:AddComponent("stackable") ''可堆叠
inst.components.stackable.maxsize = TUNING.STACK_SIZE_SMALLITEM
inst:AddComponent("perishable") ''有保质期
inst.components.perishable:SetPerishTime(TUNING.PERISH_SUPERSLOW)
inst.components.perishable:StartPerishing()
inst.components.perishable.onperishreplacement = "spoiled_food"
inst:AddComponent("inventoryitem") ''是物品栏物品
inst.components.inventoryitem.imagename = "myfood"
inst.components.inventoryitem.atlasname = "images/inventoryimages/myfood.xml"
inst:AddComponent("edible") ''可食用
inst.components.edible.healthvalue = 6
inst.components.edible.hungervalue = 30
inst.components.edible.sanityvalue = 5
return inst
end
return Prefab("myfood", fn, assets, prefabs)
没有modtools 是不会有这一步的,所以还是买个正版安逸
进游戏界面后,在看\anim文件夹下多了一个myfood.zip