鬼谷八荒资源修改教程
来源:本站整理 更新时间:2023-05-17 11:38
鬼谷八荒资源修改教程,鬼谷八荒资源修改教程主要包含了游戏中已有的资源,如技能特效、怪物模型、声音、制作UI等等内容的修改或者新增,下面还例举一些示例,不知道如何修改鬼谷八荒资源修快来看看鬼谷八荒资源修改教程吧。
一、功能简介
修改资源功能,可以修改或者新增游戏中已有的资源,如技能特效、怪物模型、声音、制作UI等等。
“Resources(资源对照)”文件夹,包含了游戏内所有资源的目录说明和资源文件名。
“ResBuildABProject”制作资源所需的unity工程模板,不用管,会自动复制到你的模组目录。制作资源必须使用unity制作,工程里面包含了部分资源的基本格式示例还有AB打包工具。
“ResBuildABProject_Example”制作资源的unity例子工程,对应文档“四、例子教程”。
Unity版本:2020.3.9
二、简单说明(必看)
AssetBundle:使用打包工具点击更新AB后,会生成AB到这个目录下。
Resources:存放资源的目录,里面的资源会打包成AB,注意预制体引用的资源(贴图、材质等等),不要放到Resources下,参考例子的资源,会存放到其他目录,因为Resources下的资源会全部打成AB。
三、制作资源教程(必看)
修改游戏里的资源,只需要路径名称保持一致,游戏中加载时会优先加载模组自定义的资源,新增资源只需要在同目录下增加资源,游戏中会自动读取,也可以自己编写代码读取资源,例如:在Effect/Battle/Skill目录下增加一个预制体,那么在BattleMissile(弹道配置表)中,就能在model字段上配置新资源,游戏会自动读取,其他资源同理。
例子:替换游戏中的绝影剑特效(新增特效同理)
1:打开教程目录,在资源对照文件夹找到绝影剑原来的特效目录以及名称。
2:打开ResBuildABProject工程,在Skill下新增同名特效jueyingjian。
注意技能特效,根目录下必须有一个Box的2D碰撞体,其他资源格式在下面会详解。
3:点击更新AB,然后回到模组编辑器主界面,点击右下角进入游戏调试即可。
AssetBundle目录下会自动生成所需的AB,模组作者不用管这个目录的内容。
注意:ResBuildABProject工程,必须在模组的ModRes目录下,因为进入游戏调试时,是通过路径:ModProject_XXXXXX\ModProject\ModRes\ResBuildABProject\Assets\AssetBundle来查找AB资源的,当然你也可以复制ResBuildABProject工程到其他地方,但是调试前记得把AssetBundle文件夹复制到上面说的目录。
四、资源例子说明(选看)
例子都有包含两个目录,其中Assets是存放例子所用到的素材,Resources和外层的Resources结构一样。
注意:制作新的预制体时,一定要复制例子中的预制,在进行修改,不要自己新建预制体,因为例子的有些预制体设置好了参数,且带有脚本。
例子1:BattleHuman(战斗小人模型示例)
注意事项:制作新部件PNG贴图时,需要复制对应部件的PNG文件,且图片宽高不能更改,PNG制作完成后,需要复制例子对应部件PNG的meta文件,因为meta包含了骨骼信息。制作新预制体时,直接复制例子部件预制体,更改贴图引用即可。
制作完成素材后,通过Posi预制体摆放位置预览,注意不能调整根对象的Transform位置,只能调整里面的图片位置。
例子2:PortraitHuman(人物部件模型示例)
注意事项:图片大小没有要求,使用Posi对照位置即可,新增“头发、衣服、背部装饰、头部装饰”,需要制作对应的战斗小人部件,否则会报错。其中“背部装饰、头部装饰”是不区分男女的。
制作完成素材后,需要在创角配置表的RoleDress增加配置。
例子3:BattleMonst(制作战斗怪物示例)
当武技配置表BattleSkillAttack的这个字段填的是1时,你的攻击动画需要添加一个广播值Attack,一般技能动画有前摇的都需要这么配置。
注意事项1:例子的刚体默认配置质量是150,小怪使用这个参数,当你制作的是BOSS时,更改质量为:1000000,防止被其他怪物推动。
注意事项2:怪物还需要配置挂点Posi,被击区域Box,大小Size,根节点的刚体和Box2D不要调整他们(除了质量设置)。
制作完成模型后,增加怪物还需要增加配置,涉及到这以下几张表。
必要的表:怪物属性配置表、武技配置表、技能底层表、弹道配置表、怪物AI默认参数配置表。
当技能比较复杂时还会涉及:效果配置表、光环配置表。
例子4:BattleScenesUnit(战斗场景部件示例)
脚本说明:
BarrierCtrl:障碍物都会包含这个脚本,如果你是草之类的就不用管这个脚本(也不能删除),如果你是石头之类会阻挡玩家的,参考104的Idle节点有BoxCollider2D和RigidBody2D,如果你不想子弹打到障碍物,去掉RigidBody2D脚本即可,BoxCollider2D的IsRiggger是false,所以玩家走上去会被阻挡。
为了让怪物也能绕过障碍物,需要增加Points的数据,鼠标在障碍物的碰撞区域旁边,按住“A”是增加,按住“D”是删除,白色的碰撞把BoxCollider2D包裹住就行。
BarrierAlpha:参考104竹子,你走到竹子后面竹子就会半透明,就是通过此脚本实现,GoBox是碰撞的区域。
BarrierEffect:参考105草,子弹把草打掉的时候会播放一个特效,DieEffectName是特效名字,对应Effect/Battle/Scenes/特效名称,路径下的特效。
其他说明:105草有两个节点,一个是Idle一个是Die,当被子弹打到的时候,会变成Die状态,如果没有Die节点,则草直接消失。
涉及的配置表:副本配置的DungeonSceneObject和DungeonSceneBase,当你的障碍物能被打掉(消失)的话,还需要配置可击打障碍物配置表的BattleBarrier。
例子5:BattleSkillEffect(战斗技能特效示例)
注意事项1:Skill目录的技能特效第一层必须包含Box,这是用来子弹击中检测使用的,IsTrigger为false。
Skill目录的特效对应配置表:弹道配置表、光环配置表。
注意事项2:Unit目录的单位特效,必须包含脚本EffectUnitNodeCtrl,例如减速,就会设置NodeType为Down,IsTarget为true,这样减速特效就会一直跟着玩家脚底。
Unit目录的特效对应配置表:效果配置表。
注意事项3:所有特效节点必须支持缩放和选择,参考下图设置。
其他说明1:PlaySoundsCtrl脚本,有时候技能还会用到这个播放音效的脚本,根据IsBG参数,读取Resources下不同目录的音效。
其他说明2:EffectLoopActivedBoxCtrl脚本,Skill目录下的特效,还可以绑此脚本,比如火焰阵,应该是持续伤害的,这个脚本的功能就是开关碰撞体,AttackCount填-1就是无限击打次数,AttackDelay填0_333就是一秒打3下,前缀固定写“0_”即可。
其他说明3:场景中,这两个圈是制作特效时做参考用的,比如技能毒沼术,配置表会配置光环大小,比如配置的是300(百分比),那么实际特效大小对应的大红圈,原理就是通过缩放transform的scale,那么你制作特效的时候,当特效scale是1时,特效大小应该对应小红圈。
提示:因为小红圈太小了,做特效按照scale为1做的话特效很难观察,可以把特效的scale设置成3,然后按照大红圈的范围来做。
其他说明4:Resources/Effect/(Map和UI),对应大地图特效和UI特效,通过此接口创建特效GameEffectTool.CreateGo,需要编写代码,才能创建其他特效,当然特效路径你也可以不放在这里。
例子6:GameNPC(剧情NPC)
制作好模型后需要到剧情配置表的DramaNpc表增加配置。
例子7:GridIcon(大地图事件图标示例)
制作好模型后,大地图元素配置表的WorldFortuitousEventBase会使用到事件模型,当你的模型是占地多个的时候,还需要在地地图元素配置表的WorldFortuitousEventIcon配置占地位置。
例子8:8.Horse(坐骑模型示例)
Horse是大地图坐骑模型,HorseUI是UI上的坐骑模型,大地图坐骑模型的Post/Top绑定了一个脚本,脚本上参数Target是人物坐在坐骑上的位置。
制作好模型后,需要增加一个坐骑道具,道具配置表的ItemBase、ItemHorse都需要配置。
例子9:MapUnit(大地图装饰部件)
大地图装饰一般不需要做新增,新增部件比较复杂,只修改游戏内部件就好,装饰配置在,大地图格子配置表的WorldTerrainDecorate,一个1920*1080屏幕,部件格子占地默认为宽16个,高9个,可以根据配置表占地格子数,修改现有的装饰模型,装饰原点在左下角。
例子10:UI(制作一个UI)
例如例子的UI为TestExample:制作UI预制体后,需要编写代码才能打开你制作的UI。
打开UI接口:g.ui.OpenUI,需要自己AddComponentn你的UI脚本,UI脚本里自己Find获取组件。
UI脚本必须继承UIBase
提示:由于模组代码项目是动态加载的DLL,在资源里自定义的Mono脚本只能在代码里手动AddComponentn。
如果你制作了非游戏目录的资源,可以编写代码通过g.res.Load接口加载自定义资源。