辐射4-身形类MOD原理及结构科普性教学

如题所述


一、mod原理及结构
作为一个新人,你首先应该掌握的是“什么是mod”。一个mod不管是美化、武器、服装、功能,结构上都不会有啥区别,无非是一个ESP+textures(材质贴图)、meshes(模型/动作),脚本(scripts)等几个文件夹。目前N网下载的mod主要是.7z文件,利用winrar即可解压查看内容。
1,esp文件
其中ESP(以及ESM)是一种半索引文件,主要储存了游戏中利用的一些简单数据(比如人物的special,武器的射程、伤害),并调用一些外部资源。大部分调整参数型的mod只要一个esp即可满足需求。esp调用时,后调用的esp会覆盖先调用的esp文件的内容(举个例子,两个mod一个把猎枪伤害*2一个*3,则后调用——排序靠后的esp生效)。
2,bs2文件
另一种mod中可能出现的文件类型为bs2文件,这是B社官方使用的一种打包加密的文件格式,可以使用专用软件进行解包。bs2文件的调用顺序根据esp的优先级而定,散文件(loose files)拥有最高优先级。FO4中,材质(texture)所用的bs2文件打包方式与其他文件不同,有提高读取速度的功能,但给早期modder带来了巨大的麻烦
3,FOmod文件夹
解包某些mod时可能会发现不遵从上述介绍的文件结构,这是因为随着NMM和MO等mod管理软件的发明,modder们可以将互相冲突的mod放在一起(比如汗湿和油亮皮肤),由用户选择。这一需求就由FOmod文件加内的xml文件加以控制。
4,外部资源
除了上述3种文件和部分作者会塞在mod里的文档外,大部分就是所谓外部资源了。比如模型、动作、材质贴图、动作、语音、乃至文本等。它们随着游戏的进行逐一调入,便构成了我们所见到的精彩纷呈的游戏世界。
二、骨骼(skeleton)
1,什么是骨骼
所谓的骨骼可不是你在游戏里看到的骨头架子,而是一种你看不见摸不着,却驱动着游戏内大部分你能看到或者看不到的运动。在游戏中,你向前奔跑的动作,就是首先由游戏引擎发布命令,调用奔跑动作文件,由动作文件驱动骨骼的运动,再由骨骼带动你看得到模型,在配合坐标移动,得到一个奔跑的结果。
采用骨骼最大的好处,就在于可以将同一套动作复用给多个模型而不用再独立指定。实际上FO4中绝大部分类人生物(人类、尸鬼、超变)都用着同一套骨骼——顺带一提,男女没有区别
2,骨骼节点(bone nodes)
构成骨骼的元素称为骨骼节点(bone nodes),这些节点根据一定的规则结合就构成了骨骼。而所谓的动作文件本质上就是骨骼节点们的运动轨迹。再次世代游戏中骨骼节点还被赋予更多功能,比如纸娃娃系统(规定该节点的可动范围),动力学系统(由父节点决定自子节点的运动,乳摇就是其典型应用,当然FO4中还没有成型的RY系统),逆动力学系统(IK,子节点反过来决定父节点,膝盖、手肘、脚踝等关节上的应用比较多,所谓贴地性就是靠IK保证的,话说这方面B社还不如Illusion啊)
当然以上都是我在卖弄,对于伸手党们没有卵用。新人只要记住一件事:“如果模型蒙皮上有的节点骨骼文件里没有,你就要看桌面了”。当然这一问题目前(2015/12/27)在FO4中还没出现,大家和乐融融的用着原版骨骼(vanilla skeleton)。不过即时关注骨骼类mod的更新仍然是一个伸手党该做的功课。
3,蒙皮、权重(weight)
蒙皮概念:
三维动画术语,也用于3D游戏中。
三维动画的一种制作技术。在三维软件中创建的模型基础上,为模型添加骨骼。由于骨骼与模型是相互独立的,为了让骨骼驱动模型产生合理的运动。把模型绑定到骨骼上的技术叫做蒙皮。
上面是抄的书,举例来说,你作了个乳摇的动作,想让一对火箭奶上下抖动——问题模型哪里知道那部分是乳房那部分是胸板?那就需要我们人为给他指定,也就是给模型上的每个点挂上权重。当然这年头已经不可能靠纯手工给上千个点一一设置了,各种3d工具都提供了多种方法刷权重,也就是所谓蒙皮。
对于伸手党而言,上述知识依然是我在卖弄,你要记住的还是那句话:“如果模型蒙皮上有的节点骨骼文件里没有,你就要看桌面了”。原理很简单:模型找不到对应骨骼节点,不知道自己该长什么样,怎么办?CTD(crash to desktop)喽
这事在天际时代尤其重要,因为当年dragonfly(哈哈笑笑)大大做TBBP的时候强行给胸部增加了一对新骨骼节点(breast01),和大家原有的BBP乳摇系统的节点(breast)不兼容,结果你懂得。直到XP32搞了个最大兼容骨骼(同时有breast和breast01)两个节点才解决了问题。然而XP32最大兼容骨骼造型和TBBP原版不一样,有点垂,结果就有人吵着闹着要TBBP不要XP32,结果么,呵呵——嘛modder就是这么麻烦的东西。
而在FO4中,由于原版骨骼自带了breast和butt这两节点,也就不需要让modder们自己出马,因此暂时大家还是和乐融融的用着原版骨骼的标准。然而新人们肯定又要问了:“既然没有RY为啥B社要做胸部骨骼节点呢?”,那就和下文要提的“骨骼节点动/静态调整”有关了。
豆知识:由于TBBP的这个插曲导致天际的RY系统可以驱动两个不同节点,这带来了一个好处就是让车头灯可以和本体的摇动有所不同,在进入HDT-PE物理时代后出现了“水袋胸”的一类设定,当然这都是后话了(顺带一提,I社在RY上砸了5对节点)
4,骨骼动态/静态调整
玩过剑灵、tera、SB、3D女仆2等游戏的老绅士们相信对于“捏身体”这个概念一定不会陌生。通过几个划条便能将平胸loli变成爆乳御姐的这套系统一般有两种原理,一种称为body morph,这里按下不表,另一种就是骨骼调整了。原理当然也很简单,举个例子,把之前提到用于RY的那根胸骨scale到2倍大,那所有带RY功能的模型胸部自然也就变成了两倍大,这就是滚区著名上古mod牛奶经济学(人称日更奶)的原理。在游戏外对骨骼文件进行上述操作便是所谓静态调整,这种调整的优点自然是简单方便,缺点也很致命:所有绑定该骨骼的模型都会受到等量的影响(还记得我说过FO4男女共用一套骨骼么)。而在游戏内部,利用游戏引擎本身调整骨骼节点参数便被称为动态骨骼调整,通过该系统不仅可以让每个人物拥有独特的身材,更可以实现身材参数的平滑过渡(有什么用?嘻嘻)
在天际中,人物间的身形差异是通过对两个不同模型进行差分计算得到的(也就是所谓最大/最小身形,_0/_1),与之配合的就是“体重”参数。而在FO4,大家应该都知道身材调整变成了一个三角形,但通过拆包我们却发现游戏中每件衣服只有一个模型,而进一步的拆包表明这次B社实际上用的就是骨骼动态调整技术来调整身材,三角形的3个定点对应3套骨骼参数,3角形本身就是差分运算。至于为啥B社不肯学I社K社让玩家调整每一个骨骼的具体参数?B社脑子有坑又不是一次两次了。
豆知识:N网有名叫“busty”的mod,其功能就是更改了B社身材三角形3个定点的参数(尤其是breast和butt节点),相比于原版更配合CBBE身形。细细观察原版捏人过程就会发现在不同取值下胸部的造型会有所变化,这就是breast骨骼的功能——顺带一提,世界上第一个发现该原理并上传L网的正是不才在下,可惜当时实在是学业紧张(搞得现在就不紧张一样)
(未完待续)
温馨提示:答案为网友推荐,仅供参考
相似回答