分享到           

本帖最后由 羽·凌风 于 2023-12-23 16:37 编辑
回复 43#  @红峡青灿

原来如此,看来加了奶和蔬菜的获取但忽略了鸡蛋,懂了,现在小型龙类、鸟类、虫类、鲸鱼之外的海族,都有概率掉落蛋了
话说有第一只战宠就能叫后期了吗!我还以为现版本的后期再怎么也要打过几个高级历战耶!(炸)WWWWWWWW
之后的版本动物的机制可以不怎么动了,会再加入一些探险、装备和BOSS方面的内容,到时候得到第一只宠物仅仅只是冒险的开始


目前进度,写出来了自定义触发条件的成就!


这样通过观察/击杀/驯服等等接触(?)的方式解锁动物图鉴的方案也可以实施了




这些动物Json文件都通过JAVA自动生成,还好,虽然数量很多,但并不累 (X)
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


本帖最后由 羽·凌风 于 2023-12-24 18:46 编辑
一直在被时不时的卡顿问题困扰,昨天一通排查发现是攻击AI的问题,因为攻击AI涉及到一直寻路(需要不停靠近目标),而寻路代码中又是计算某个位置是否可以通行的部分加载次数非常多、最卡
但苦于不知道从哪里入手,本以为按照原版重写一遍攻击AI就行了,结果放大型龙出来打架的时候还是会明显卡顿
直到我研究AI机制的时候看见了这个东西:https://www.bilibili.com/read/cv23090029/
啊?啥意思?大体型的动物在检测寻路的时候会把整个体型范围内的方块全部检测一遍?
难怪我每次都是大型动物一多就开始卡!也难怪每次卡都是卡在寻路和通行检测上,原来是因为这个啊!毕竟我走龙4*4的体型不就等于16个僵尸的通行检测量,这能不卡吗!
但是寻路算法我可不会改,也不敢改,这东西一改就出事,那……就把攻击AI里面会加载到寻路的那段代码改一改吧!
毕竟现在有了Geckolib模型,在做动画的时候其实是不需要寻路的,把这段时间的寻路关掉,果然一下子就流畅多了~

但是我总觉得,大型MOD要靠作者自己优化总归还是不太现实,毕竟JAVA和MC源码的性能是人尽皆知的差,而市面上大型MOD卡也是很正常的(XXX)
那么,还是得需要一点辅助MOD来帮助优化比较好,目前我测试了一款叫泡沫修复的(https://www.mcmod.cn/class/978.html
我去,优化效果非常好!好到什么程度呢?就是刷30+骨顶龙和10+爪暴龙出来还能斗兽!


打得跟方舟牛龙VS霸王龙似的,真有意思(X)
总之,玩MOD如果感觉到卡顿,建议安装这个优化,当然如果各位玩家发现更好的选择也欢迎提出
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


今日进度,扒了冰火传说的代码(X),把骑乘自动进入第三人称+视角变大写出来了!


原来有事件是可以专门用来调整摄像机位置的啊,舒服,这下真舒服
摄像机位置是根据动物体型计算的,所以基本上都在屁股偏后的位置,再大都没问题


本来还想学一学冰火传说里控制模型角度的代码,就是龙会在天上飞得很自由(?)、尾巴会很自然地摆动那种代码
结果……发现……完全看不懂
emmmm,那就还是先这样吧(XXX)
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


修了好几天的BUG、优化代码、整理之前的代码屎山(?)后,现在成果喜人,整个MOD丝滑程度提升300%!

一件一件来,首先是把动画关键帧需要调用的代码(比如某个关键帧发出声音、某个关键帧攻击)优化了!
之前的屎山是在代码里写死动画帧数来做的,实际运行中如果游戏卡顿就很容易错位,游戏中出现动物攻击和伤害时间不一致、叫声和嘴部动画不一致、甚至动画做完模型卡住没有复位之类的BUG全都是这个屎山造成的
但现在我学会了直接在 Blockbench 模型里面设置每个关键帧需要加载的方法,代码里只需要监听目前运行到的帧是否使用方法,然后直接调用就行了,同步率max,再也不会出现动画卡顿的问题了!
具体实现其实也很简单,先通过Geckolib教程提到的方法监听到关键帧:https://github.com/bernie-g/geck ... riggers-(Geckolib3)
然后因为这个监听方法只在客户端运行,那就把监听结果通过Packet传递到服务端去,再运行相应的方法,就行了
感觉 Blockbench 和 Geckolib 这块我已经逐渐理解了一切,似乎可以写个Java版加载基岩版关键帧动画模型的手把手完全教程了

接下来,因为发现冰火传说龙的部位小碰撞箱非常舒服,不会出现像我的部位碰撞箱那样丢帧、老是点不到打不到的问题,于是拿了!
冰火传说的前置是LLibrary,小碰撞箱是这个前置提供的功能,于是直接去前置那里把多部位实体相关的代码拿走:https://github.com/iLexiconn/LLi ... er/entity/multipart
经过一番整合调试,完美解决!现在我的生物也可以指哪儿打哪儿了!基本不会再出现明明对着大型生物按下了右键,但却总是骑不上去或者打不开包的问题了!远远攻击大型生物的尾巴也不会出现明明射中了碰撞箱却打不中的问题了!
需要注意的是这个碰撞箱的右键互动好像也只在客户端运行,所以也需要在 PartEntity 的右键互动代码下加一个Packet把数据传递到服务端去,就行了

然后还有些什么动物骑乘状态下使用球类魔法打击感很迷离,那个球的起点和准心很难把握的BUG也修复了
还有些什么骑乘飞行动物的飞行曲线和视角准心不一致,也修复了,现在亲测骑着飞行动物可以轻松又准确地降落在村庄的屋顶甚至路灯上面!
顺道一提我还拿走了一个老牌优质生物MOD里非常好看的地面震荡技能给大型动物用,效果真的超级酷炫
总之整个游戏的操作流畅丝滑程度绝赞UP↑!

接下来大概再尝试啃一啃装备物品在动物身上的显示吧,如果能把这个搞定,MOD的流畅度就几近完美了
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


1.12.2的功能更新差不多结束了,还想要的新功能基本全都是1.16.5才有的了,于是……我还是……决定,升级1.16.5!
之后计划1.12版作为试玩版(?)先免费上架,然后1.16.5版再作为以后会持续更新的正式版吧~
在1.12.2啃了那么久,我想我的代码水平肯定有进步,这次一定要更新过去!

然后啃了两天后发现——之前卡在实体注册、渲染和多层贴图的位置,现在都成功迈过去了!

通过哈希表实现自动化的实体渲染和属性注册,通过 LayerRender 完成多层贴图的展示
我的代码水平,果然有进步啊!
很好,第一个难关过去了,但距离整体更新还远得很,继续加油


【发帖际遇】 羽·凌风 正在悠閒浏览龙洋城的夜间风光,忽然青光一闪,被割破的口袋成为龙洋第一杀手留下的独一无二纪念礼物。哦不!那好像用是 164F卡币 换来的。

际遇事件仅作娱乐,正式设定请见【DL故事集】
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


本帖最后由 羽·凌风 于 2024-1-20 20:25 编辑
经过几日一边搞升级、一边写教程词条的奋战,我终于把所有动物的一句话简介、以及介绍游戏玩法的约莫10个主词条都写完啦!
说好的1.12.2只差把教程写好就能上架,那么……上架!


说好的审核是三个工作日内给答复,这怎么周六上传一个多小时就过了,原来网易也是加班狗(X)
正如之前计划的,1.12版先上免费的,等1.16.5出来了我再考虑考虑新版本怎么上 (XXX)

那么继续1.16.5版的升级进度:
动物物品栏和装备属性,DONE

BUFF显示,DONE

发光图层,DONE,1.16的这才叫发光嘛!1.12的发光纯属需要认真看才能看到一点点的,还会导致模型轮廓出BUG,果然还是高版本好啊WWWWWW

大型生物的部位小碰撞箱,DONE


以及两个我最想要但只有高版本Geckolib才有的功能:
装备固定显示在特定的位置,DONE!也就是说无论动物做什么动作,装备都会乖乖地贴在脑门上!
而且尺寸和玩家拿在手上的时候是差不多的,不会说动物越大物品就越大,也就是说小动物有装备了就会显得带不动很累(不是)WWWWW


立兽状态下的武器也是一样,会乖乖地贴在手上!

骑手也固定显示在特定的位置,DONE!同样无论动物做什么动作,骑手都会乖乖地贴在鞍上!

像这样骨顶龙抬腿跺地板的时候人物也会跟着龙的动作倾斜!

目前升级进度大概动物部分差不多都还原了,然后是GUI和两个方块实体还有问题
唔,感觉方块实体会很头大,当初做1.12版的食槽和旗帜的时候就很头大
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


结果……方块实体比我预想的简单很多啊,新版Forge的代码结构清晰明了了不少,挺容易就还原了



包括之前1.12版鼓搞了老半天的部落旗帜区块加载器,也只用了几行代码就做回来了
怎么有一种年前就可以出1.16内测版的感觉(?)

顺道一提望远镜之前也弄好了,顺便加上了显示血量数值和BUFF的功能,能够更加明确地看到你和野生动物的差距(XXX)


看看现在……好像就只剩猎人手册还没还原了,那东西尽都是客户端贴图贴文,还原起来应该没啥难度
倒是我想再优化一下布局,让显示文字的地方更多点,感觉会更好看些
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


本帖最后由 羽·凌风 于 2024-1-25 15:15 编辑
回复 54#  @红峡青灿

为什么是插件啊?这不是贴纸吗?WWWWWWWWW
反正1.12没恶性BUG也不管了,全力搞1.16和接下来的更新内容!
羽·凌风 于 2024-1-25 15:05 补充以下内容
之前说好的精灵球功能,说到做到!


和方舟的球一样,会通过颜色显示雌雄,详细信息里面还会显示鞍具和装备
用起来超级丝滑,还能显示已存放动物的立绘,太可爱了

接下来优化一下魔法的特效,增加一点配得上1.16.5的高级感 (?)
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


魔法美化,全面完成!
球类魔法现在真的是个球了

吐息的效果也更明确,更像是吐出来的(?)

加护魔法是魔法阵从下而上包裹全身的效果,好看

领域魔法从意义不明的一大片粒子改成了魔法元素从地下冒出来


粒子也全部重新搞了一遍,因为我发现原版的粒子效果自带持续时间和位置,导致控制粒子位置的代码对有些原版粒子无效,典型的就是原版的水花粒子出现后会瞬间消失、原版的暴击粒子(原本地系魔法用的)也会无法控制位置
但自定义粒子效果这里有个大坑,目前网上的教程一般都是这一套:https://boson.v2mcdev.com/paticles/intro.html
可我实操下来发现并不好用,这个教程里的粒子虽然可以在指令中正常使用,但压根无法在forge里面用,就算Data继承了IParticleData,拿去给 world.addParticle 用,还是会报错说这个粒子不是IParticleData
于是,我找到了一个更简便的方法,那就是不重写Data,而是直接继承原版的 BasicParticleType,而且还只需要写一个super,比教程简便多了
public class MagicParticleType extends BasicParticleType {
    public MagicParticleType() {
        super(false);
    }
}

然后在注册的时候把 RegistryObject<ParticleType<ObsidianParticleData>> 改成 RegistryObject<BasicParticleType>,就行了
public class ParticleLoader {
    public static final DeferredRegister<ParticleType<?>> PARTICLE_TYPES = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, Dragicland.MOD_ID);
    public static final RegistryObject<BasicParticleType> MagicParticle_Soul = PARTICLE_TYPES.register("magic_soul", MagicParticleType::new);
}

最后注册Factory的时候随便选一个原版的Factory,我这里选的是火焰粒子,因为自带发光,很方便(X)
    @SubscribeEvent
    public static void onParticleFactoryRegistry(ParticleFactoryRegisterEvent event) {
        Minecraft.getInstance().particles.registerFactory(ParticleLoader.MagicParticle_Soul.get(), FlameParticle.Factory::new);
    }

如此一来,就可以用 world.addParticle( ParticleLoader.MagicParticle_Soul.get(), ……………) 愉快地加载这个新的粒子效果了,省去了教程里一大堆重写的部分
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


回复 57#  @红峡青灿

本来一开始计划叫什么灵魂球(方舟警告)保育箱之类的名字,结果做好材质后拿手上一看……这不就是养蛇经常用的塑料盒子吗!
所以,叫饲养箱,最合适(X)WWWWWWWWW
岂止九个,MC的物品栏有四排!(X),不过空箱子占物品栏还是有点不方便,我得看看有没有办法像方舟那样空的能堆叠起来WWWWWWWWW


继续做优化,继续增加MOD的完成度和高级感

先是宠物AI重做,像那些真正的成熟大型MOD(比如冰火传说)一样,给AI设定了三种模式,等待(被动)、跟随(中立)和巡逻(主动),放弃了犬笛和眼罩这些复杂又容易出BUG还占装备栏的操作,直接可以在动物的物品栏里切换模式

眼罩没用了就删除了,犬笛改成只保留瞬移功能

然后动物图鉴加页,显示骑乘技能,以后会做键位了就可以把技能表更新到这里(?)

书的尺寸也改大了一点,之前用的原版书的尺寸,感觉太逼仄了(X)

最后,继魔法之后,全部的盔甲也都值得拥有史诗级美化!
正好每套盔甲的外观对应一个种族,神族的就等更新云洲的时候再做啦~


盔甲上的小耳朵小翅膀小尾巴还都是会动的哦,巨可爱!
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


新年继续更新MOD,争取在节后出1.16.5版!
这次再做点成熟度(?)更新,给MOD增加了一个便捷的修改配置文件的方式,可以直接在初始界面》MOD》配置里面调整MOD相关的配置内容



比如把历战几率调成100%,就会变成这样(害怕.jpg)


接口做好了再添加其他配置内容就方便了,之后再考虑要不要像方舟那样把各种难度相关配置全都下放吧 (X)
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


1.16.5的寻路应该确实没啥问题了……应该(?)
顺便还加了一个大型动物会把树、树叶、竹子、仙人掌等等植物撞烂(?)的功能,妈妈再也不用担心我骑着大型动物进森林会被卡得动弹不得了!但森林会不会因此秃掉这就是另一回事了(X)

飞行动物的骑乘优化、模型动态也都基本搞定了
跟随银角烈焰龙的银角火飞蜥有一种天伦之乐的感觉,太可爱了所以我要专门放个图(X)


yes,银角烈焰龙和脊冠火龙的新模型、新贴图、新动画已经搞定!


招式比大地走龙略少,但也是精心制作的!

应该基本上可以进入内测阶段了(?)
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


既然1.16.5第一版也发布了,那就继续往后更新了!2预计还有两个更新内容,立兽工作模式和骑乘按键技能,搞好之后就能进入下一个大版本了!

先做立兽工作模式,基础功能已经搞定!
立兽的装备栏可以放工具类物品,护石栏可以放方块,如果放入的方块和工具是对应的话,就会激活工作模式,显示蓝色背景(一种蓝领的概念(X)

记得调成巡逻模式,这样立兽就会自己去周围找对应的方块进行采集啦,对没错,给它圆石的话它是会采集石头的


手上采集满了就会寻找附近的箱子,把方块放进箱子里

比如一般方块都是64堆叠数量,立兽就会采集满64个方块之后,寻找到一个附近的箱子,把63个方块放进箱子里,自己手上留下一个用于继续保持工作模式,继续再去采集
动物都是一次攻击破坏一个方块,所以,效率蛮高的

头顶的粒子效果用于显示工作状态,稿子就是采集中,绿镐是已发现目标,红镐则是附近没有可以采集的方块
箱子图标也是一样,东西满了需要找箱子的时候就会出现箱子图标,绿箱是附近存在有空位的箱子,红箱是找不到箱子
红图标状态下动物就会啥都不干,立马开始原地摸鱼(XXX)

下一步来想想农田怎么操作,只有两个物品位,收获和播种有点没法同时判定啊
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


本帖最后由 羽·凌风 于 2024-3-10 18:57 编辑
农田差不多也搞定了!
有种子的就上面放种子、下面放成品(?),没种子的(种本体)的就上面放锄头、下面放成品就行了!


和采集一样,也是搭配正确就会显示蓝色底色,进入工作模式
顺道一提只有植食性的动物会种地,你让一个纯肉食性的动物来种地听起来也不太合适对吧

然后动物就会自己种植种子

自己等待成熟

自己收获啦!

收满一身后也是会跑去找箱子把东西放好

不过农作物因为考虑到要种植,所以种子满了只会放一半进去,自己身上留下一半继续种

到点儿了动物还会自己睡觉,我们这是良心企业,不加班(XXX)


测试的时候还出现了兔子速度太快,窜到山猪的地盘去抢对方的空地种的事故

喂我给你们用栅栏隔开是为了啥啦(X)
羽·凌风 于 2024-3-10 19:00 补充以下内容
顺道一提做工作AI的时候顺便优化了一下之前动物遍历周边方块的算法(比如觅食就经常用到这个算法)
优化之前我测试一只虎猫挖矿,基本上挖三五个就要卡一下,卡顿挺严重的
但优化之后,我就算测试的时候同时放三只立兽出来工作,也没卡过一次
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP


勤奋如我,2.9工作帕鲁更新好之后,立即又来开发骑乘技能啦!
动物装备鞍具后,界面上会增加一个标签,用于自定义骑乘技能

所有动物自带三个天生技能:普攻、魔攻和威吓(吓跑附近营养级低于自己的动物)
点击技能后可以从技能库中选择别的技能替换上

游戏界面也会同步显示各技能的按键提示


不喜欢默认按键的话,也可以去配置里修改

可以随便改成自己喜欢的键位,完美


我敢说没几个宠物类MOD有我这功能吧
接下来想想怎么通过卷轴让动物学习新魔法,扩充技能库(?)


【发帖际遇】:羽·凌风 走在大街上摔了一跤,竟然发现地上躺着 18F卡币 ,赶紧捡起来!

际遇事件仅作娱乐,正式设定请见【DL故事集】
欢迎来到Dragicland,【总版规】请记得要看哦,还有这个也是好东西→如何回复?

TOP

分享到