独立游戏吧 关注:56,929贴子:329,841

回复:又开始做游戏了,这次用UE

只看楼主收藏回复

再更一下,角色背包装备背包也搞定了。
总结一下背包和仓库的难点:
1. 由于不想同步容量和物品实例(否则Array变来变去很难预测),客户端和服务端通信采用的是格子的来源及坐标。加大了通信的难度(服务端默认不相信客户端的物品实例,其实没必要,只是练习下服务端校验)
2. UE的RPC方法只能是void(不确定,反正报错不给用,能用返回的话欢迎指正),导致有些逻辑只能依赖异步,加大了复杂度(比如客户端移动物品,点一下给一个跟随鼠标的图标,再点一下目标格子去服务端挪移,客户端在RPC发起时,就已经使用本地数据预测了结果,如果结果不对,得处理回滚)
3. 背包的数据结构没有设计好,一共六个背包格子,基本固定的,应该采用Capacity1~6六个属性,而我用了数组导致每动一个背包,一个数组的其他背包得跟着处理,即使它没动。不但容量是数组,实例也是数组,换背包得刷新整个面板,否则蓝图上得拖一大堆线去处理数组中的每个值。属实是过度设计了,结果不但没有太通用,反而更耦合了。思考了一下,正确做法可能应该分成6个独立的属性放在PlayerState上,背包通过配置绑定一个Tag,搞个被动Ability用SetByCaller设置value修改属性值,装上去触发增加的Effect,拿下去触发减少的Effect,UI上固定6个NamedSlot,有东西就展示,没东西就Hidden,然后在OnRep_中处理客户端,不敢想得有多简单,还能本地预测不依赖网络,也能很简单的刷新单个背包,哎,下一个会更好。
----
其他就跟背包仓库没关系了,都是不熟练导致的。总之存储系统的工作量和联机的工作量双双超出预期,做了小半月才搞定,不过基础框架搭好了,后续做人物装备面板,只需要拿现成的组件拼拼凑凑就成了,包括后续想做的合成面板,都会受益。
----
存储算是做完了,下一步是角色装备面板和属性
图:存储完工


IP属地:浙江21楼2024-07-16 17:28
收起回复


    IP属地:四川来自iPhone客户端22楼2024-07-17 00:32
    回复
      2025-08-28 11:24:36
      广告
      不感兴趣
      开通SVIP免广告
      芜湖~GAS真是个好东西啊!!!所有属性都绑定了,测试写了最小和最大物理攻击,OJBK!~


      IP属地:浙江23楼2024-07-18 18:31
      收起回复
        更新:
        1. 属性之间的绑定(装备表,UI本地化显示、物品实例、GAS属性)
        2. 属性之间的公式(只写了物理攻击的)
        2. 穿脱装备 - 应用装备上的属性
        1335行代码,只为穿上你
        不过框架已搭好,剩下的就简单了,弄完这一大块,差不多就该考虑一下画面了
        总代码量:3558行



        IP属地:浙江24楼2024-07-19 12:30
        回复
          里程碑!
          属性和存储这块算是基本完成了。
          装备属性要求、人物加点、所有属性联动都已经实现,并且支持扩展,后续做装备强化、合成、装备掉落、加新的属性等等都会很简单。
          作为一个程序员,可以负责任的说,打了一个非常牢固的基础,剩下的属性和存储相关的工作,就只是加东西,没有任何难度了。
          搞了这么久,代码也写累了,下一步准备搞搞不熟悉的领域:
          1. 首先用MetaHuman搞个角色,去掉脸部骨骼,优化到可接受的多边形数量。
          2. 之前在Unity商店买过一些装备素材,低多边形的,用Blender修改一下,再用SP改成写实材质。
          3. 绑定到MetaHuman上,分割成头、胸、腿、手、鞋,导入UE做换装。
          以上没有一个是熟悉的领域,困难重重,但是也很开心终于到了这一步。
          再之后就是战斗部分了,加油!
          本次更新:
          1. 装备需求显示和应用。
          2. 加点。
          3. 优化交换和合并物品,合并为一次PRC。



          IP属地:浙江25楼2024-07-20 17:42
          收起回复
            总算是研究出一个工作量可以接受的模块化全流程。
            MetaHuman太丑了,自己也雕不出什么好看的,干脆就用了低模。
            低模+PBR材质,俯视角下,效果还可以接受。
            每套装备共享一张2K材质。




            IP属地:浙江26楼2024-07-22 10:32
            收起回复
              换装搞定啦!最不确定的地方,终于确定了!
              装备是拿买的素材修改的,材质是用SP重做的,也算是跑了一遍全流程了。
              更新:
              1. 一个角色+一套装备
              2. 同步换装备


              IP属地:浙江27楼2024-07-22 17:17
              回复
                还是决定走自己建模的工作流程。
                这个角色还是太丑了,在sketchfab上下载了一个免费角色,重新绑了骨骼,然后参考奇迹MU的皮装备建了个模,效果比原来的好多了。
                原来的Lowpoly模型,因为不需要烘焙(用的色卡+UV直接缩放很小移过去),上色的时候发现又很多不规整的面(重叠的,隐藏的,垃圾资源),用起来还没自己重新建一个快。
                自己建模虽然工作量多点,但是意义重大,不再被美术资源卡脖子了!
                图:下载的免费角色,胖次材质还没换,头发胡子还没贴上

                图:自己建模的两件奇迹MU皮装以及上身效果



                IP属地:浙江28楼2024-07-23 14:54
                收起回复
                  2025-08-28 11:18:36
                  广告
                  不感兴趣
                  开通SVIP免广告
                  踩了个坑。
                  还是决定替换身体,不是性能的原因,而是裤子鞋子真的包着腿和脚又不想穿模的话,得做好粗。。。看起来像穿个宇航服。
                  明天再做一版替换身体的试试效果。
                  这个流程跑熟练的话,一天能出两三套装备,而且款式随意,美术自由指日可待啊哈哈



                  IP属地:浙江29楼2024-07-23 17:34
                  收起回复
                    更新一下,不是一定要替换身体,是我上一版建模太随意了,想着测试一下流程,随便搞了搞。
                    今天认真的建了一下,虽然水平还是很烂,但是已经不显胖了,效果基本满意。
                    整个流程跑了有四五遍了,该踩的坑也踩了,装备模型的流程确定了,以我三脚猫的建模水平,基本可以覆盖所有装备了(很重要,真的很难找到那么多套自己想要的装备!)
                    接下来整理下代码,然后研究下奇迹MU最特色的发光效果,先把所有可能的拦路虎都干掉!好耶!
                    图:还挺还原



                    IP属地:浙江30楼2024-07-24 16:00
                    回复
                      更新:光污染系统(奇迹玩家狂喜)效果有待调整,但是至少发光了

                      看看奇迹原图,有内味了


                      IP属地:浙江31楼2024-07-25 17:14
                      回复
                        联机测试,满地金装


                        IP属地:浙江32楼2024-07-25 17:27
                        回复
                          更新:
                          1. 选择了一个能够接受(性能和工作量)方式,生成装备图标。本来想使用SceneCapture2D的,但测试了一下,这玩意儿太耗性能了,图标只能手搓。写了个小工具,每件装备生成7个图标,分别是+0+3+5+7+9+11+13,然后让AI填表,一套装备(5件)大概10分钟工作量,有些地方必须得人工,还是比较麻烦的,适合装备确定后生成,修改的图标也得改。
                          2. 预览信息加了一个SceneCapture2D实时显示模型(旋转、特效)。这里取了个巧,相机fov设置到40,取物体的宽和高相加,再乘以3,设置为SpringArm的距离,刚好差不多都能最大化显示,就是这么凑巧,能用。



                          IP属地:浙江33楼2024-07-26 15:57
                          回复
                            更新:
                            1. 做了个简单的HUD,本来找了素材,怎么弄都不满意,最后还是用系统素材搓了个和背包等风格差不多的,如果有合适的素材再更换。
                            2. 绑定了属性做联动(图上是加点后影响最大生命和魔法)
                            下一步:
                            磨磨蹭蹭的又搞了好久UI,现阶段实在没啥东西了搞了,不能再磨叽了,继续前进!
                            1. 加一个怪(相关:怪物属性表、模型、动画)
                            2. 怪物攻击玩家(相关:扣血飘字、死亡重生)
                            3. 玩家攻击怪物(相关:加经验、升级、掉落)
                            4. 范围刷怪
                            离最小游戏循环就差4条了,加油干!!!


                            IP属地:浙江34楼2024-07-27 16:58
                            回复
                              2025-08-28 11:12:36
                              广告
                              不感兴趣
                              开通SVIP免广告
                              更新:
                              1. 加了一个怪,用的以前教程的一个模型(相关:怪物属性表、模型、动画)
                              2. 怪物血条(绑定怪物表属性)
                              3. 怪物攻击玩家(走完整个攻击流程:AI、Ability、Effect、根据双方属性计算伤害)
                              4. 扣血飘字
                              联机测试通过,伤害是在服务端计算的,然后GAS同步属性到客户端,使用PRC显示伤害,哪个客户端受伤就在哪个客户端显示数字




                              IP属地:浙江35楼2024-07-29 17:20
                              收起回复