cataclysmdda吧 关注:21,768贴子:338,189

大家关注过cdda的消化系统模拟吗

只看楼主收藏回复

感觉很多人对消化过程有误解


IP属地:陕西1楼2024-11-25 11:45回复
    只在调试里看见了有胃和肠的区别


    IP属地:浙江来自Android客户端2楼2024-11-25 11:46
    回复
      消化能力除了各种不耐受难道还有别的影响吗


      IP属地:浙江来自Android客户端3楼2024-11-25 11:47
      收起回复
        之前提过,角色的等效(湿)体重由脂肪体重和非脂肪体重两部分组成。这里说(湿)体重,是和游戏内体重秤的读数相区别,那个除了包括随身物品装备,还包括cbm之类的重量,只有等效(湿)体重会参与角色的生化过程模拟。
        脂肪体重会体现在角色面板的体重一栏,即8个胖瘦等级,这个胖瘦等级是根据玩家当前的积累热量水平换算的。
        那么积累热量水平是如何变化的呢?我们从热量这个指标开始,浅析一下cdda的消化系统模拟。


        IP属地:陕西4楼2024-11-25 15:44
        回复
          每个角色都有三个热量指标,胃内容物热量水平、肠内容物热量水平以及代表脂肪体重的积累热量水平。
          玩家吃的食物都标注了卡路里,比如肉干的卡路里是348 kcal。每当玩家食用了某种食物,这个食物会进入胃部,立刻让胃内容物热量水平上升相应的数值。



          (图1:未进食;图2:进食肉干后,667+348=1015;图3:消化1次后)
          胃内容物热量水平以半个小时为周期进行一次更新,胃内的物质经过节点后就会被消化进入肠道。
          肠内容物热量水平同样以半个小时为周期进行消化,经肠道吸收后,玩家的积累热量水平得以提升。


          IP属地:陕西5楼2024-11-25 15:54
          回复
            不过cdda的消化过程模拟当然不是单纯的口→胃→肠→血液依次传递这么简单,下面更为具体地描述一下。
            首先消化系统分别模拟三组参数,固形物、水和营养物质,固形物和水的体积之和即为胃内物质总体积。
            水和另外二者不同,其更新频率是5分钟,且在胃和肠均以固定速率(250ml/5分钟)进行吸收。
            然后这个更新频率,也就是这个5分钟和30分钟是怎么算的呢?特别注意,不是计算从你进食动作开始,或者食物进入胃/肠之后经过的时间,而是是否经过了整点时刻!如果更新频率是一小时,那么你在07:59:59分吃完一个肉干,08:00:01的时候就会进行一次消化。



            (图1:等待至8点29分;图2:进食肉干;图3:8点31分时的消化情况。作为对比,上一层是同一角色8点1分进食,可以看到两次消化后的热量水平相同)
            也就是说,系统在钟表指向5/10/15……分钟时,会检测胃/肠中是否有水,如果有则向下一系统传递最大250ml。如果时刻指向的是30分钟或整点,还将继续固形物和营养成分的消化。


            IP属地:陕西6楼2024-11-25 16:02
            收起回复
              对于固形物,胃每次消化的上限是最大胃容量的1/6,而肠道设定了一个和吸收水一样的250ml(仅占位符,无实际意义,因为肠道内固形物这个参数不影响任何代谢过程)。
              对于热量,胃有一个5kcal的消化基准,当内容物少到不足5kcal时,会全部吸收转移至肠道,在内容物为5-30kcal之间时会转移5kcal,而在大于30kcal时是当前胃内容物热量水平的1/6(如上面的例子,1次消化后,胃内热量由1015减少至846,169/1015=1/6);
              肠道吸收热量的机制类似,只不过其消化系数基于新陈代谢速率变化,基准是(当日总热量消耗/24)*实时有效新陈代谢速率的kcal,肠内容物热量足够高时是肠内容物热量水平*5%*实时有效新陈代谢速率的kcal。


              IP属地:陕西7楼2024-11-25 16:07
              收起回复
                新陈代谢速率我在上一贴提到过,游戏有一个平衡参数PLAYER_HUNGER_RATE(默认为1),玩家通过变异、cbm及魔法获取METABOLISM系数,加算/乘算后得到基础的metabolic_rate,然后计算基础代谢率bmr:每100g等效体重参数+1,每1cm身高参数+6.25,每1岁参数-5,再加上默认的5点参数,以上四项相加的和乘以metabolic_rate,就是bmr(默认角色的bmr大约是1000)。而实时有效新陈代谢速率在这个基础上,再通过有效饥饿进行加权。这里还有一点需要注意,那就是速度越快的角色,饥饿惩罚越高。


                IP属地:陕西8楼2024-11-25 16:10
                收起回复
                  细心的人应该注意到了,我开始说的是“营养物质”,但上面替换成了“热量”,漏掉了“维生素”,这是因为维生素的有特别之处。
                  游戏里的“维生素”是一个大类,除了vitamin子类(钙、铁和维c),还有toxin、counter和drug三种子类。
                  对于钙、铁和维c,系统使用和热量类似的胃→肠→血液吸收模式以30分钟为周期吸收,只不过具体参数不同,胃的基准是1mg,肠的基准是(100/24)*实时有效新陈代谢速率mg。另外,食物json里记录的不是mg,而是RDA参考量,需要换算成实际物质数量生效。
                  toxin类目前只有变异肉的毒素,counter类则是各类诱变剂、血、人肉、过敏原及寄生蜂卵,其吸收方式目前和上面的vitamin子类一样。
                  最后是drug,目前只有三种,β-受体阻滞剂(美托洛尔)、抗凝血剂(阿司匹林)和布洛芬(布洛芬和萘普生)。这类“药物维他命”的生效方式是口→胃→血液,在经过1次5分钟周期后,胃里的“药物维他命”就会直接被吸收而不需要经过肠道周期。
                  同时维生素这一大类物质的生效也比较复杂,本质上摄取得到维生素不会产生直接的效果,只是相当于一种标志物。


                  IP属地:陕西9楼2024-11-25 16:52
                  回复
                    维生素生效的第一种方式是“缺乏症”,钙、铁和维c摄入不足的负面效果即属于此类。
                    第二种方式是“过量症状”,变异肉的毒素和各类诱变剂引物的效果属于此类。
                    第三种方式是“转化”,比如诱变剂泥浆和诱变螯合剂,会衰变并增减诱变剂和特定种类引物。
                    第四种是“标志物”,代表是各类过敏原,无关数量只要存在即会生效。
                    最后一种是基于EOC的效果,寄生蜂孵化就是根据寄生蜂卵的维生素水平进行math脚本计算来实现的。


                    IP属地:陕西10楼2024-11-25 17:11
                    收起回复
                      下班了,明天估计也没时间摸鱼码字,有空再补完饥饿/口渴值的变化


                      IP属地:陕西11楼2024-11-25 17:59
                      回复
                        另外补充一点,玩家是每轮(每秒)都会更新一次胃部状态,而NPC则可能因为不在现实气泡内,间隔较长时间才更新一次


                        IP属地:陕西12楼2024-11-25 18:10
                        回复
                          看晕了😵💫


                          IP属地:北京来自Android客户端13楼2024-11-25 18:28
                          回复
                            也就是说同体积食物液体消化速度比固体快?


                            IP属地:浙江来自Android客户端15楼2024-11-25 18:44
                            收起回复
                              这么详细,楼主辛苦了


                              IP属地:四川来自Android客户端16楼2024-11-25 19:38
                              收起回复