主要工具
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