饥荒mod制作教程--特效动画制作--01

本文详细介绍使用Spriter软件创建逐帧特效动画的过程。从素材准备到动画制作,再到代码实现,一步步指导读者完成特效动画的制作。适用于游戏开发者及特效动画爱好者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先还是提供一个模板(联机版):

链接:https://pan.baidu.com/s/1OyTqa2CqpTeghma4w2NLGw 密码:swi2

需要的工具:spriter

提供一个汉化补丁(感谢老王传给我的汉化)(找到你的spriter目录,将这个exe文件覆盖进去):

链接:https://pan.baidu.com/s/1HxFCcgil91eKerAPDZzETg 密码:n89q

------------------------------------正文---------------------------------------

本篇主要讲spriter如何制作逐帧特效动画

首先依然是在\exported中新建一个文件夹myeffect_fire,然后在这个文件夹里在新建一个文件夹,名字随意,我这里叫myeffect_fire_anim

将做好的逐帧动画素材图片放进这个文件夹中,注意标序号,图片文件可以用“xxx-序号”的格式命名

打开spriter,新建一个项目


单击这个文件,点 选择文件夹,后面会说到为什么这样做

选择好后右边栏是这样的


素材面板里保证有这个文件夹,图片顺序反了没关系,点一下“Name”就正序了

下面的动画栏,一级标题写myeffect_fire(一开始就设定好了),二级标题填动画的名字,这里可以在我们设定好的名字后面加个后缀就好了,我这里就叫做myeffect_fire_fx吧 


下面开始做动画

将第一幅图拖入画布,第一帧就好了

然后找到下面的时间轴,在第一帧后面选个地方,单击,准备做第二帧(具体两帧间隔多少不用担心,到后面依然可以调整)


选好位置后,在画布中的这张图片上,按住右键,选择第二张图片,第二帧就做好了(如果上文中我们没有新建exported下的二级文件夹,这里右键就没效果了)

后面依照这个步骤全部做好后,播放几遍,自己调整调整每一帧的间隔,觉得差不多了就行了


这个地方是  现在时间轴的位置/时间轴总长度 , 我这里动画时长就是519ms,总长度我们就改为519


这里的重复播放勾上

然后保存,名字依然是myeffect_fire


这样动画部分就做好了

代码部分很简单了

简单看一下\prefabs\myeffect_fire.lua

local assets =
{
Asset("ANIM", "anim/myeffect_fire.zip"),
}
local function fn()
 local inst = CreateEntity()
 local trans = inst.entity:AddTransform()
 local anim = inst.entity:AddAnimState()
 anim:SetBank("myeffect_fire")
 anim:SetBuild("myeffect_fire")
 anim:PlayAnimation("myeffect_fire_fx",true)  --这里就是动画的名字,还记得我们设定的二级标题麽
 inst.Transform:SetScale(1, 1, 1)  --这里可以改变预设物大小
 inst:DoTaskInTime(2.595, inst.Remove) --这里是播放多长时间后,移除它
return inst
end
return Prefab("myeffect_fire", fn, assets)

其他部分不赘述了

进游戏,等待modtools给你打包好后,在游戏中控制台输入

c_spawn("myeffect_fire")

就可以看到特效效果了


具体通过什么方式来释放特效,下一篇会提到

### 关于《饥荒》天体祭坛的科技代码与MOD开发 在《Don't Starve Together》中,天体祭坛是一种特殊的建筑结构,通常用于触发特定的游戏事件或解锁特殊功能。为了实现自定义的天体祭坛及其关联的科技树,开发者可以通过修改游戏脚本文件来完成这一目标。 #### 1. **基础概念** 在游戏中,所有的物品、建筑物以及科技树都通过Lua脚本来定义。这些脚本位于`mod`目录下的相应子文件夹中。对于天体祭坛的功能实现,需要关注以下几个方面: - **预制件(Prefabs)**: 定义物体的行为和属性。 - **科技树(Tech Tree)**: 控制玩家可以解锁的内容。 - **事件系统(Event System)**: 实现交互逻辑,例如当玩家接近祭坛时触发某些效果[^1]。 --- #### 2. **创建天体祭坛的基础代码** 以下是构建一个简单的天体祭坛所需的Lua代码框架: ```lua -- 文件位置: mods/<your_mod_name>/prefab/celestial_altar.lua local assets = { Asset("ANIM", "anim/celestial_altar.zip"), -- 动画资源 } local function onbuilt(inst) inst.AnimState:PlayAnimation("idle") -- 设置初始动画状态 end local function fn() local inst = CreateEntity() inst.entity:AddTransform() -- 添加变换组件 inst.entity:AddAnimState() -- 添加动画状态组件 inst.entity:AddNetwork() -- 支持多人网络同步 MakeObstaclePhysics(inst, .5) -- 创建物理碰撞体积 inst.AnimState:SetBank("celestial_altar") -- 绑定动画库 inst.AnimState:SetBuild("celestial_altar") -- 绑定模型 inst.AnimState:PlayAnimation("idle") inst:AddComponent("inspectable") -- 可被鼠标悬停查看描述 inst.components.inspectable.nameoverride = "CELESTIAL_ALTAR" inst:AddComponent("workable") -- 工作台行为 inst.components.workable.onfinishcallback = function(inst, worker) if TheWorld.ismastersim then SpawnPrefab("lightning_strike").Transform:SetPosition(inst.Transform:GetWorldPosition()) -- 触发闪电特效 end end inst.OnBuilt = onbuilt -- 建造完成后执行的动作 return inst end return Prefab("common/prefabs/celestial_altar", fn, assets) ``` 此代码片段定义了一个名为`celestial_altar`的新实体,并为其设置了基本行为和外观[^2]。 --- #### 3. **添加到科技树** 为了让玩家能够建造这个天体祭坛,还需要将其加入科技树。这一步涉及编辑`techtree.xml`文件: ```xml <!-- 文件位置: mods/<your_mod_name>/data/science_tech_tree.xml --> <Technology name="CELESTIAL_ALTAR" cost="Goldnuggets 8 ScienceMachine 4"> <Unlock item="celestial_altar"/> </Technology> ``` 这段XML代码表示玩家需要消耗8个金块和4次科学机器的研究机会才能解锁该祭坛的建造权限[^3]。 --- #### 4. **实现互动逻辑** 如果希望天体祭坛具备更复杂的交互能力,比如在玩家点击时召唤生物或者改变天气,则可以在其脚本中引入额外的函数。例如: ```lua inst:AddComponent("activatable") inst.components.activatable.OnActivate = function(inst, activator) if TheWorld.ismastersim and math.random() < 0.5 then SpawnPrefab("deerclops").Transform:SetPosition(inst.Transform:GetWorldPosition()) elseif TheWorld.ismastersim then GetPlayer().components.talker:say("The stars align... but nothing happens.") end end ``` 以上代码实现了随机概率下召唤巨鹿的效果[^4]。 --- #### 5. **调试与测试** 完成上述步骤后,需确保所有文件路径正确无误,并重启服务器加载新模块。若遇到错误提示,可查阅日志文件定位问题所在。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值