饥荒Mod 开发(三):资源工具使用

饥荒Mod 开发(二):Mod目录结构
饥荒Mod 开发(四):制作一个物品

饥荒一键打包工具

打包工具的介绍

饥荒Mod 开发最常用的资源有两个,一个是动画,一个贴图。这两种资源可以使用上面的工具自动完成,打包完了之后,工具会自动将动画拷贝到对应的目录下。如果是要制作动画需要先试用 工具包中 Spriter 制作,然后用工具一键打包。下图是工具包的目录结构
饥荒Mod 开发(三):资源工具使用_第1张图片
工具包中打包另外两个工具,一个是 Spriter,制作动画专用。 一个是Textool 1.4.1,反解纹理工具。

工具使用

  1. autocompiler.exe 使用。autocompiler.exe 会自动枚举images 目录下的png图片,转换成纹理。需要注意PNG 图片最好是32位,也就是带alpha 通道的,并且图片的尺寸有一定限制,物品栏和制作栏 64*64。工具可以打包png图片和动画,无论是动画还是图片,只需要执行一次命令就可以,会自动将图片和动画一起打包好。先介绍下png图片
    1. 先将PNG 图片放入images/inventoryimages 目录下
      饥荒Mod 开发(三):资源工具使用_第2张图片

    2. 打开命令行工具,可以使用vs code 更方便。

      # 先cd到自己Mod 目录
      cd 'D:\WeGameApps\rail_apps\饥荒:单机版(2000013)\mods\pigpet'
      # 执行命令行工具, 可以直接将exe 拖入进去
      & 'h:\Don''t Starve Mod Tools\ds_mod_tools\build\win32\mod_tools\autocompiler.exe' 'D:\WeGameApps\rail_apps\饥荒:单机版(2000013)\mods\pigpet'
      
    3. 最终结果如下图 ,打包工具会自动生成 tex和xml文件。发布的时候原始的PNG 图片可以删掉不需要了。后面会介绍这些资源如何使用。饥荒Mod 开发(三):资源工具使用_第3张图片

local function fn(Sim)
	local inst = common()
    inst.AnimState:SetBank("pigpetfood")
    inst.AnimState:SetBuild("pigpetfood")
    inst.AnimState:PlayAnimation("idle")
    inst.components.edible.healthvalue = 20
    --物品栏贴图
    inst.components.inventoryitem.atlasname = "images/inventoryimages/pigpetfood.xml" 

    inst:AddComponent("tradable") 
    
    return inst
end



local pigpetfood
if GLOBAL.IsDLCEnabled(GLOBAL.CAPY_DLC) or GLOBAL.IsDLCEnabled(GLOBAL.PORKLAND_DLC) then
    pigpetfood = GLOBAL.Recipe("pigpetfood",  {GLOBAL.Ingredient("cutgrass", 10), GLOBAL.Ingredient("twigs", 10)}, GLOBAL.RECIPETABS.SURVIVAL, GLOBAL.TECH.NONE, nil, nil, nil, nil, 10)
else
    pigpetfood = GLOBAL.Recipe("pigpetfood",   {GLOBAL.Ingredient("cutgrass", 10), GLOBAL.Ingredient("twigs", 10)}, GLOBAL.RECIPETABS.SURVIVAL, GLOBAL.TECH.NONE, nil, 10) 
end
--制作栏贴图
pigpetfood.atlas = "images/inventoryimages/pigpetfood.xml"
  1. 动画工具使用,Sprite 使用
    饥荒Mod 开发(三):资源工具使用_第4张图片
    1. 我们给每个物品建一个目录,然后这个目录下就放 和该物品相关的动画资源文件。比如我们需要给pigpetfood 做一个动画,那就在exported 目录下新建一个pigpetfood 目录就可以。双击打开工具, 选择 File->New Project, 会提示选择目录的时候就选择这个目录。饥荒Mod 开发(三):资源工具使用_第5张图片
    2. 在这个目录下再新建一个 同名的目录,放原始资源文件。饥荒Mod 开发(三):资源工具使用_第6张图片
      工具右侧的截图如下
      饥荒Mod 开发(三):资源工具使用_第7张图片
    3. 右侧面板中,将图片拖入到到中间区域,然后修改一些动画名字。下图右侧的红框和绿框中名字分别对应代码,操作完之后保存工程。
      饥荒Mod 开发(三):资源工具使用_第8张图片
local function fn(Sim)
	local inst = common()
	--红框中的名字
    inst.AnimState:SetBank("pigpetfood")
    --工程保存的scml文件的名字
    inst.AnimState:SetBuild("pigpetfood")
    --绿框中的名字
    inst.AnimState:PlayAnimation("idle")
    inst.components.edible.healthvalue = 20
    
    inst.components.inventoryitem.atlasname = "images/inventoryimages/pigpetfood.xml" 

    inst:AddComponent("tradable") 
    
    return in

保存文件名,和 物品的名字一样
饥荒Mod 开发(三):资源工具使用_第9张图片
上面有很多东西没有介绍,目前不需要关注这些,只需要记住这个工具的简单使用,随着深入学习会逐步了解这些。总结一下这里

  1. 每个动画工程可以保存一个 scml 文件,文件名是物品名字一致。对应 inst.AnimState:SetBuild(“pigpetfood”)
  2. 工程红框部分(Entity) 名字 对应 inst.AnimState:SetBank(“pigpetfood”)。一个Entity 可以包含多个动画。
  3. 绿框部分(动画名) 对应 inst.AnimState:PlayAnimation(“idle”)。
  1. 以上完成之后执行编译脚本, 和纹理的脚本是一样的,可以看上面的介绍。最后会打包动画文件。饥荒Mod 开发(三):资源工具使用_第10张图片
    这个exported 目录也是临时目录,发布的时候并不需要,真的动画文件会被自动拷贝到动画目录.下图就是自动拷贝目标目录
    饥荒Mod 开发(三):资源工具使用_第11张图片

前三篇 文章并没有实质性介绍如何制作一个Mod,简单介绍了和制作Mod 相关的知识和工具,接下来会录一个视频,总结这三篇的内容

饥荒Mod 开发(二):Mod目录结构
饥荒Mod 开发(四):制作一个物品

你可能感兴趣的:(饥荒Mod,游戏,lua,饥荒Mod,饥荒)