starfield吧 关注:76,185贴子:1,981,349
  • 10回复贴,共1

作为一个菜鸡mod作者来谈谈这次装备掉落的问题,以及我个人推测

取消只看楼主收藏回复

事先说明,本帖的观点以及推测均基于Creationkit1.0,不保证CK2.0在NPC构筑的底层逻辑方面大改,一切都要等到游戏正式发售,esm等文件解包之后才能有定论。
我在辐射4与老滚5中是一个做NPC类mod(基于FCOM和Conquest of Skyrim)的小modder,希望用自己对于CK1.0引擎的一些知识来推测一下星空目前的这个掉落问题,先用自己的mod来镇楼吧:





IP属地:黑龙江1楼2023-08-26 15:18回复
    在BGS以往的游戏中,一个NPC的最终装备是如何决定的?NPC的穿着装备又是如何反馈到“物品掉落所见即所得”?要谈论首先BGS在CK1.0的老滚5和辐射4的NPC外观构成。
    我们可以分为两个部分:底层外观+携带物品
    先从底层外观说起。
    首先:Race种族,确定NPC最基本的特性以及骨骼动作;对于外貌最重要的一点:定义一个NPC的部件模型以及贴图,CBBE此类mod就是通过修改与Race关联的文件来进行美化的,很多肤色特异的独立随从也会单独为自己的NPC创建一个race,以方便贴图以及肤色的修改。

    Actor,Race的子层,将Race落实到一个实体NPC之上,我们在游戏中见到的大部分NPC都是一个NPC Actor。
    以看起来差不多情况的老滚5魔人来举例(击杀魔人后无法从他身上获取魔族铠甲),一个魔人杂兵的race就叫“魔人”,Race中定义的身体数据如下:

    这里我们可以看到,魔人与暗精灵其实是公用一个模型的,现在我们有了一个穿着兜裆布的魔人素体。
    动物里还会有一个叫Worn Armor的东西来实现动物的变体,比如这两个尸鬼:


    很明显,通过修改worn armor,可以做到尸鬼的变体(一个有肩甲,一个没肩甲),但是也很明显,你在原版游戏中不能把他们的铠甲扒下来卖钱。我个人猜测,星空中的很多动物也会采用类似的方式进行变体,来达到扩充生物库的目的。


    IP属地:黑龙江2楼2023-08-26 15:21
    收起回复
      2026-08-06 15:53:54
      广告
      不感兴趣
      开通SVIP免广告
      通过以上一些词条,我们拥有了一个最基本的NPC:有最基本的皮肤,有一些变体外貌,这也就完成了一个NPC最底层的外貌,那么下面我们就来到“装备掉落”环节。
      Items:NPC所携带的物品,由levelitem组成,以纳齐姆为例:

      除了100%携带基本武器/弓箭之外,一个特殊NPC还会带着他家的钥匙,以及符合身份的一些小玩意,这些小玩意由选定范围内的道具随即构成:

      这里的75表示75%的概率有饮料,75%的概率有随机的两个戒指(顺带一提,游戏中的各种宝箱也是这个形式的随机得到的)因此也存在一定的随机性。在击杀NPC之前,这些库存可以通过偷窃获得,在击杀NPC之后,NPC中库存的Items物品也会随之掉落。


      IP属地:黑龙江5楼2023-08-26 15:25
      回复
        DeathItems:NPC的被判定死亡后所掉落的物品,死亡之外不会出现在它的库存之中,以鹿为例,一头鹿被刷新出来之后并不携带任何东西(你把它换成一个可偷窃的人形NPC也是一样),但是死亡物品中存在100%掉落的鹿肉与鹿皮,以及一些10%概率的小玩意,这也就是我们看到的鹿死亡之后的掉落物品。


        一些任务中的关键道具需要通过击杀NPC获得(比如辐射4中的克罗格、各种传奇武器),那些物品的掉落便是通过这个机制来实现的。


        IP属地:黑龙江7楼2023-08-26 15:27
        回复
          Outfit:NPC所穿的装备,也是今天谈论的重点,这一部分就是我们所说的“扒装备”
          没有例外的话你看到的NPC所穿着的东西都是Outfit里面的,并且击杀他们之后可以获取这些装备随从同伴、NPC的装备都是通过这个词条来完成的。这个词条由一系列的levelitem组成,比如这个强盗头目的outfit:

          这个list里面罗列了一系列的盔甲,Outfit词条会从中抽选出一件为这个NPC进行装备,抽选也是存在概率与等级限制的,这也就是为什么老滚5中每一个强盗的装备(头、身、手、鞋)都不太一样的原因。
          而盔甲这套系统在辐射4之中又进行了升级,每一个盔甲/武器,甚至是机器人,都有着自己的omod(改装),所以在辐射4之中你可以看到一个掠夺者饭桶带着不一样的改装的武器,更丰富了装备的随机性,这套逻辑不出意外的话应该也用进了星空之中。


          IP属地:黑龙江12楼2023-08-26 15:31
          收起回复
            另外有人提到了动力甲这个东西,辐射4之中的动力甲其实也是一件armor,但是极为特殊,这个armor在代码的作用下会直接更换穿戴者的骨骼与race,目前尚不清楚星空中的太空服是否也属于这类物品。
            已知的是:辐射4中穿戴动力甲的NPC也是依靠outfit这个词条进行的


            IP属地:黑龙江13楼2023-08-26 15:32
            回复
              有的动物也会有自己的Outfit(比如马铠),我们刚才提到的魔人也是由Outfit提供的魔族护甲,因此通过代码你可以移除魔人身上的装甲,让他变成擦菠萝猛男。

              那么为什么魔人不像其他人形NPC那样不掉落自己的装备呢?原因在此:
              B社鸡贼的做了两套魔族护甲,但有一套是Non-playable,玩家在道具栏里压根看不到它,而没有Non-playable词条的那套护甲则是我们才能获得的。同理,米拉克的一套护甲也是这样存在的,一些玩家无法获取装备也都带有这个词条。
              当然我并不认识魔人的情况适用与星空的NPC,这是反常理的,谁会把常服做成NPC一套玩家一套?这样的工作量未免过于重复了。


              IP属地:黑龙江15楼2023-08-26 15:35
              收起回复
                好了,基于Race(基本外貌) + Worn(变体) + Item(魔族长剑/弓箭以及一些随机的小玩意) + Deathitem(魔族之心)+ outfit(魔族护甲一套),我们已经有了一个完备的魔人NPC。
                其中race和worn定义的外貌是我们玩家无法进行获取的,而后面item+deathitem+outfit组成了我们对于一个战利品掉落的最基本认知。
                那么基于CK1.0的装备掉落特性,我有以下几个推断:
                1. CK2.0将NPC的底层逻辑全部推倒重做:这种情况=我上面几千字完全白写,但我认为可能性不大,这一套逻辑bgs用了几十年,而且非常完善,我并不认为会完全重写。
                2. Bgs采用了一些环境设定锁死了outfit的直接掉落,目前看到的装备掉落其实是从deathitem中随机roll出来的:前半部分解释了“没有所见即所得”以及“perk与装备掉落无关”,而半部分则解释了为什么同一个NPC掉落的物品并不相同。假设NPC的底层逻辑变化不大的话,modder想要还原前作那种所见即所得的战利品掉落难度应该并不高。
                3. NPC的装备从outfit退化成了worn:这一点可以用于解释“拿走NPC的装备但是NPC外貌仍然无变化”,简单来说就是这种大量的生成类NPC为了节约存档空间,以及防止outfit分发出现问题(你经常会发现一些NPC丢失衣服的原因就是因为加载出了问题),集体变成了尸鬼,是一种取巧的做法,但是并不影响NPC衣服里面的素体(你明白我在说什么),右侧那个女性尸鬼就相当于没有worn,尸鬼的素体。

                总之,我个人觉得从原版来看,这个无法“所见即所得”的问题的确是一个退步,也可能归于大量NPC的运算导致的各种问题(比如存档膨胀、服装刷新不及时),也可能归于BGS糟糕的经济系统(一件宇航服价格=两个飞船主炮,这哪个大聪明填的数据),我作为一个modder在游戏发售之前能分析的东西只能这么多的,还请各位一起静待9月1日星空的正式发售。


                IP属地:黑龙江21楼2023-08-26 15:43
                收起回复
                  2026-08-06 15:47:54
                  广告
                  不感兴趣
                  开通SVIP免广告
                  补充:b社创建一个NPC的逻辑
                  B社的NPC分为两种,一种是重要NPC(带保护),另一种是刷新类NPC。
                  不管那种NPC,首先都会有一个race,这个race决定了npc最里面的样子(嗯就是你们担心的那个),然后在身体的基础上进行捏脸,所以这就是刷bodyslide的时候基础身形,装备都是无头怪,因为那个身形才是最基础的。
                  重要NPC会单独用一个formid专门捏他,刷新类NPC就比较复杂了。除了用race的那个基础身形之外,b社首先先会捏4-8个脸模,来确定头的那部分:

                  脸模+身子组合之后我们得到了一个完整的素体,这还不够,这些脸模会被整合到一个list之中,用于一个随机npc 的生成,这些脸模被我们称之为Template模版,同样的,一个人物属性、道具、AI都可以采用template的形式最终汇总到一个NPC之上。

                  所以在这里的vampireboss,其实就有8种随机的面貌,引用了另一个吸血鬼boss的数据,在这种template套娃之下,捏一个NPC很快的同时又可以保证这些随机出来的NPC有着截然不同的外貌和装备。
                  B社捏人的逻辑一向如此,所以我不太担心星空会有NPC没有果体的情况,真要出现这个问题那我该怀疑todd是不是被人夺舍了


                  IP属地:黑龙江37楼2023-08-26 16:09
                  收起回复
                    啊对,现在有没有PC偷跑的,xsx上因为开不了控制台所以看不到NPC的一些细节,比如:现在路人NPC还有没有自己独立的reference id了?


                    IP属地:黑龙江43楼2023-08-26 16:29
                    收起回复

                      worn和outfit的结构应该还没变


                      IP属地:黑龙江93楼2023-09-01 08:29
                      收起回复