首页 > 其他分享 >【COM3D2Mod制作教程】第六章:实战!制作衣服部分(上)

【COM3D2Mod制作教程】第六章:实战!制作衣服部分(上)

时间:2024-01-28 14:57:49浏览次数:33  
标签:教程 示例 模型 COM3D2Mod 身体 制作 穿模 Mod

【COM3D2Mod制作教程】第六章:实战!制作衣服部分(上)

教程介绍

隔了N个月终于迎来了第二期的Mod教程部分,这一期我们将开始制作人物的衣服部分。

因为体型适配的原因,衣服部分要比身体部分难得多,但主要也就是多了个刷权重和制作形态键的任务,只要掌握技巧,勤加练习,做起来也不会太难。

由于大量步骤和身体部分相同,这期教程的内容会有所简化,所以一定要先把前置的第一期学好,只要理解了Mod的制作原理,哪怕不看教程,自己也能举一反三。

确定目标

本期教程将使用三种装扮类型作为教学内容:“裙子”、“裤子”、“鞋子”,这三者是人物的外衣,是最能体现人物的装扮,同时对应着几种不同的制作方向,作为教程内容再适合不过了。

img

  • 裙子:

    裙子是特征点最多的衣物,并且往往还会附带配饰,要绑定的骨骼和形态键也是最多的,所以要在权重和形态键的制作上要下功夫。

  • 裤子:

    裤子由于和鞋子相连,通常无法得到完整的原始模型,但因为都长得都差不多,我们可以利用这一点,直接使用示例模型加改贴图的方式实现。

  • 鞋子:

    鞋子通常是从裤子上拆出来了,加上游戏对高跟鞋不兼容,鞋子需要额外的一些建模处理,不过因为鞋子模型比较简单又是对称的,所以可以自己改模。

导入官方身体模型

在头发部分我们确定模型是否正确的方式是:直接导入游戏,对照游戏进行修改,再重导再测试。这种方式对简单的模型来说还能接受,但对复杂的衣服部分就不再适用了。

而且除了刷权重,衣服部分还多了制作形态键,确认身体部位等工作,所以我们必须要获取官方身体的相关数据才行。

1. 获取身体模型

幸运的是官方身体也是Mod的一种,我们可以在“SybarisArcEditor”中搜索body来获取到官方的身体模型,或者我在之前的“Mod制作工具”整合中也留了一份。

和正常的Mod一样,我们将model文件导入到Blender即可。

img

2. 调整身体姿势

可以看到身体模型的默认姿势成C型的扭曲状,这种姿势适合查看人物的肌肉表现效果,但并不适合我们绘制权重和调整网格,所以我们必须先将身体姿势调整为易于使用的T型姿势。

因为之前有网友给我提供了T型姿势的动画文件,所以我们不需要再手动调整了。选中我们的身体,然后利用“Blender-CM3D2-Converter”插件导入动画的功能,导入“Mod制作工具”中的T型姿势文件即可。

注意,插件导入动画的功能只会调整你在姿势模式中选中的骨骼,所以如果通过上述方法导入姿势后,实际姿势没有发生变化或只有部分变化,那可能是因为你没有在姿势模式下选择全部骨骼。

img

3. 增加导出姿势

现在我们已经有了T型身体,但要注意的是原先官方默认的姿势是C型的,这意味着我们导出Mod时也必须保持C型,幸运的是插件提供了自定义姿势与默认姿势切换的功能。

让我们进入姿势模式,在确保当前身体姿势是T型的情况下,使用“姿势-应用-当前姿势的身体”菜单项,稍等片刻后,在骨架面板便会多出两种姿势切换的对应按钮。

img

上述的处理流程不仅对身体生效,因为我们制作Mod时要用到官方示例Mod,所以同样要对示例Mod的模型处理一边,之后我们将采用T型制作,C型导出的方式,进行Mod开发。

制作裙子Mod

现在让我们正式进入教学内容,根据身体部分的制作经验,此时你应该知道如何预处理模型,以及导入官方示例模型了,所以我将跳过这部分,假定你已经拆好了模型,并准备好了官方示例模型。

和以往的帽子Mod之类不同的是,这次我们先制作裙子Mod的model文件,最后再制作menu文件,因为menu文件的部分参数必须要根据具体的模型情况填写。

一、制作model文件

model文件是制作最为复杂的文件,我将挨个写出我的制作流程,并将该流程中的一些注意事项或技巧写在下面。

1. 匹配模型姿态体型

源模型和身体模型在姿态和体型上一般都有所差别,首先我们要减少这些差异。这一步可以不处理太细致穿模问题,但要保证两模型基本相符。良好的初始状态有利于我们后续的制作,现在做越贴合后面进一步的细节调整就越少。

在这一步我们选择利用源模型本身骨架进行模型调节,调节完后应用骨架修改器完成网格编辑,因为本身就是按身体结构绑定的,所以当我们想调整特定身体部位时会很方便,这样子对齐模型的效果又快又好。

提示
  • 对于部分骨骼可以先在编辑模式中进行拆分再使用,从而避免影响到子骨骼。
  • 匹配时建议稍微往外偏一些,这样可以减少穿模发生的概率,但也别偏多。
  • 如果发现骨骼调不动,可以确认一下变换属性是不是被锁上了。
  • 留意胸部、裙子等区域是否和示例Mod的骨骼匹配,不然会影响后续的权重刷取。
示例

和身体以及裙子进行了匹配,裙子确保在示例模型的外面(做完了才发现错了,和示例模型的裙子差不多最好,不然前面的裙子和手会穿模,好在最后用衰减编辑救了下);身体部分略有穿模,后续简单调一下网格即可。

img

2. 匹配模型面大小

移植Mod的源模型大多是一些游戏模型,面的精度较低,做出的蒙皮网格容易出现穿模的情况,提高面数可以方便解决这一问题,而且还可以提高权重、形态键转移的精度。

所以源模型和示例模型的面大小应尽可能匹配,可以更精细,但一定不能少,对于一些特殊部位还可以根据情况再加面

示例

利用边的细分功能,我在不影响模型形状的情况下将源模型的面精度增加了一倍,从而使得源模型和示例模型的面大小基本匹配。

img

3. 解决模型穿模问题

现在我们的模型与示例模型基本一致,即将进入骨骼绑定阶段。但对比身体模型,仍有部分穿模情况,我们需要调整网格解决这些。

提示
  • 适时调整身体模型的视图显示方式,便于对比或选点。
  • 先选身体模型再选源模型编辑,这样身体模型将有特殊的颜色标记,便于区分。
  • 打开显示叠加层中的线框,方便查看顶点位置。
  • 利用雕刻模式调整网格。
  • 利用选择菜单、顶点组、隐藏等功能调整网格选区。
  • 利用法向坐标系、变换轴心点、法向缩放工具调整网格。
  • 利用衰减编辑来调整网格,这样可以批量处理且效果也更平滑。
  • 利用平滑顶点功能修复调整后网格可能过尖锐的问题。
  • 上述方法不仅是该阶段,后续的所有网格处理都可使用。
示例

利用上述提示中的方法,我轻松解决了穿模问题。

img

4. 制作骨骼权重

现在模型已完美贴合在身体模型上,直接利用之前的“权重转移”功能,进行我们的初始权重刷取。

但自动刷取的权重肯定是不完美的,我们要按具体情况进一步优化。

接着借助身体模型确认不会发生穿模。

提示
  • 将身体和源模型所用骨架共用为衣服骨架,并调整衣服骨架姿势,检修穿模情况。
  • 检查衣服上的装饰,确保符合其物理性质。
  • 利用“权重”菜单中的处理功能调整权重,如快速实现权重区域扩大平滑。
  • 利用直接编辑“顶点组”的方式调整权重,如快速移除错误权重区域。
  • 将骨架修改器的罩体和编辑模式显示打开,继续利用“解决模型穿模问题”环节的方式解决穿模。
  • 增大骨骼间公共的权重区域可以有效解决过渡生硬的问题。
  • 想重算或专门绘制部分区域的权重时,可分离物体再编辑然后合并或借助数据传递修改器实现。
示例

按上述说明,给骨架摆了些检查姿势,第二次解决穿模问题,并修复了一些不符合实际的蒙皮效果。

img

6. 制作形态键

形态键和绑骨非常类似,并且插件也支持形态键的转移功能,所以我们可以先用插件制作初始的形态键。

但同样,自动形态键也是不能直接用的,部分可能还得自己重做。

最后一样利用身体模型检验结果,并且要混合绑骨效果进一步检查。

提示
  • 前两个环节的很多提示在该环节也适用。
  • 注意确定选的是要编辑的形态键,别做完发现搞错形态键或搞到基态上去了。
  • 可以把形态键有问题的部分分离出来单独做,然后再合并回去,特别是一些装饰品。
  • 衰减编辑不仅是用于平滑调整的工具,还可以让我们拉出特定形状,做胸部很实用。
  • 胸下垂的形态键在胸大小形态键的基础上制作会更方便,此时可以打开形态键编辑模式选项。
  • 如果怕麻烦,部分形态键可不做或不百分百匹配,但这也会导致可适配的体型变少。
示例

上半身形态键就5个,一个凹陷效果的形态键我感觉对衣服没用就没做,肚子和手臂的形态键用自动转移的改改就OK了,胸部形态键用衰减编辑自己做了下,身上的金属挂饰拆下来单独做了形态键。

最后再组合一下权重和多形态键,大致处理了下穿模问题,还是有部分穿模但想着触发概率较低,就不搞那么严格了。

img

二、制作mate文件

哎,我又犯了个错误,在过去的教学中我声称mate和model是引用关系,然而我现在才发现实际上它们是包含关系,model文件中包含了mate文件的信息,这也解释了以往修改mate文件后还得重导model的原因。

这样一来的话,因为我们没有中途变更材质的需求,所以可以完全不导出mate文件,这样可以省下很多时间,而且因为mate的使用成本就此下降,我们可以更加自由的使用mate来为每件装扮做出定制化的效果。

所以从新的视角来看,mate文件不再是工作负担,而将是我们用于简化美化Mod开发的便利工具,例如以下几种常见用法:

  • 利用半透明效果消除人物皮肤

    我们做的是衣服,但源模型是连带人体部分的,所以做出来衣服上会带有皮肤,显然这是不应该出现的。所以我们要使用半透明类材质,接着改贴图,使皮肤部分透明度为0,即可消除。

    但注意半透明类材质有pmat问题,如果多个半透明材质叠加就可能需要制作额外的pmat文件。

    或者你也可以故意留着,这样可以帮你遮挡因为Node

  • 解决衣服单面导致背面不可见的问题

    这个我之前也有说过,只要利用轮廓线类材质的双面特性,就可以让模型背面也能显示出颜色。

    但注意双面衣服就不要使用了,因为两个面间距过小可能导致背面效果穿模,从而产生异常的黑斑。

  • 解决衣服拐角处角度过大导致高光的问题

    默认材质会在模型边缘添加高光效果,而拐角处的权重比较难刷,容易出现不平滑导致误识别为边缘的情况,这是可以通过直接修改材质中的“_RimColor”属性,降低高光亮度,这样玩家看到的差异感会小很多。

  • 多类材质混合使用

    一个model是可以同时使用多个材质的,所以可以根据面的不同情况使用不同的材质,比如部分区域半透明,配饰加上轮廓线等。

    因为mate文件不再需要手动导出,所以可以放心搭配,利用这种方式甚至可以解决pmat的问题,因为半透明材质将不再被滥用。

示例

裙子自带正反面,所以没有双面问题;背面是用的半透明材质,但因为有正面遮挡,所以虽然面积较大,但应该也不需要编写pmat文件;其他部位就是正常的颜色贴图,修改了下高光亮度,解决胳膊下不平滑的问题;皮肤部分和裙子背面可以共用贴图,所以也共用了透明材质,后续再将贴图的皮肤部分扣掉,隐藏显示。

img

三、制作tex文件

虽然mate文件不再需要导出,但所使用tex文件还是需要的,但tex文件基本就那几个,导出也很简单,甚至在制作身体部分时可能就已经把所需的tex都导好了。

我们目前所用的两张贴图之前已经导出过了,只有一个衣服贴图要把皮肤扣一下,可以直接用Blender的绘图工具扣,扣完重导一下就行。

img

四、制作menu文件

终于解决model文件了,现在让我们观察一下示例Mod的menu文件......

前面的部分基本上和之前的帽子Mod等一样,但后面较多的出现了些新的带Item和Node的菜单项。

img

认识关键词

首先让我补充一些有关Item和Node的知识点,这两个关键词其实都有着明确的特殊含义,很有必要认识它们。

  • Item

    代表装扮部件,如:头发、上衣、鞋子。

    装扮部件很容易理解,因为我们现在就是做装扮部件,玩家使用的也是装扮部件,每一次都必须要带的条目“Add Item”就是把指定模型设置为装扮部件的意思。

    如何知道想要的Item所对应的部件名?我们可以利用之前说过的“M-O-D”快捷键打开的信息面板查看,比如下图就可以判断出“连衣裙”的部件名即“onepiece”

    img

  • Node

    代表身体部位,如:颈椎、胸部、脚趾。

    Node在游戏中没有直接的查看方式,但从原理上讲它是通过识别骨骼名称和权重实现的,如控制胸部有专门的骨骼,而它的这些骨骼所会影响的顶点构成的面就将被认为是胸部范围。

    所以如果想知道一个Node的具体名称和范围,只需要在Blender中查看相关骨骼的名称及其顶点组即可:

    img

对应的新增条目

了解了这些知识后再回头看menu文件,很多条目就能看懂了,且在衣服部分的制作中,我们也将经常用到这些条目。

  • Mask Item

    隐藏目标装扮部件。

    衣服是一层一层穿上的,当穿上外套时内衣自然就会不可见,而这个菜单项就是用来实现这个效果的,通常我们也不需要调节这个项,因为示例Mod的菜单项一般都够用。

  • Node Hide/Display

    目标部位及其子部位标记隐藏/显示。

    我们的衣服要做的贴合身体,但贴合又会容易导致穿模的发生,而该项可以将目标身体部位变的不可见,这样就能从根本上解决部分身体部位的穿模问题,可以说是非常实用的一项功能。

    但注意该项在用法上还比较特别,首先它的作用范围不仅是目标部位还包括它的子部位,而且名为标记的作用方式也很可疑。

    • 什么叫子部位?

      了解Node的含义后可以容易的想到骨骼的层级关系,没用错,目标部位的子部位其实就是目标部位所对应骨骼的子骨骼范围而已。

      img

    • 什么叫标记?

      标记意味着这项功能不会立即生效,而是记录一个信息,表示在之后的某个时间要把该部位隐藏/显示。这种延迟的特性使得标记在真正生效前能够被多次修改,这样我们就可以利用多个“Node Display”和“Node Hide”联动,抵消子部位的隐藏。

    • 其他细节

      • 填写Node名称时只要包含关键词即可,这样我们便可以只用一个Node同时作用两边的部位。
      • 身体部位默认显示,结算时只负责隐藏,所以如果一个区域同时被多根骨骼影响,优先隐藏。

示例

裙子的menu文件中除去上述的几项外,因为有了之前的Mod制作经验,我想你应该都会填写了,那这谈到的几项该如何填呢?

  • Mask Item

    首先“Mask Item”我们基本用示例Mod自带的就好,因为裙子都是差不多的,所以需要隐藏的东西也差不多,比如一样都要隐藏内衣这些,除非你做的是半透明的衣服。

    这次我们的模型是常见的裙子款式,所以“Mask Item”直接使用了示例参数。

  • Node Hide/Display

    再者“Node Hide/Display”则需要我们手动填一下,因为我们的模型不像官方模型有严格的部位遮蔽标准,所以要根据实际的能覆盖的身体部位进行隐藏。

    不过暂时不想处理这个,因为主要还是为防穿模准备的,如果不穿模可以不弄,所以先继续用默认值,后续再看。

五、完善裙子Mod

最后我们将上述制作的文件导入到我们的游戏中,由于有些文件被简化或已被制作过,结果裙子Mod就只多了个model和menu文件,重导了张tex文件而已。

穿上衣服摆几个姿势,确认一下Mod没有问题......果然有问题啊。

img

  1. 手穿到裙子里了

    之前做模型匹配时我故意把裙子做在了示例Mod外面,因为放里面会导致腿穿模,结果现在发现放外面也不行,会手穿模。( ╯□╰ )

    解决方法就是把裙子的前面部分用衰减编辑往后拉一些,确保和示例裙子差不多位置,即恰好互相穿模,不能多太多。

    img

  2. 背后的飘带不见了

    发现因为飘带没有自带正反面模型,解决方法就是给它单独设置了一个轮廓线材质,这样我不需要建模,处理起来比较简单。另外为了和衣服匹配,将它的轮廓线宽度设为了0,只要双面效果,背面的颜色也没用默认值。

    img

  3. 部分人物身体破面

    因为这部分利用“Hide Node”隐藏了,而我们的模型又不能完全遮盖这个区域,解决方法就是让这个部位显示,即去掉对应的“Hide Node”。

    看了下肚子和脖子下都是会破面的,所以这些部分不再隐藏,只隐藏了手臂和胸部,手臂靠肩和手的区域也不能隐藏,胸部的上半也是。

    //新编写的菜单项及其内容如下
    
    node消去 Mune //隐藏整个胸部
    node消去 UpperArm //隐藏整个手臂
    node表示 Hand //取消手的隐藏
    node表示 Foretwist_ //取消手腕的隐藏
    node表示 Uppertwist_ //取消肩膀的隐藏
    node表示 Mune_L_sub //取消左上半胸的隐藏
    node表示 Mune_R_sub //取消右上半胸的隐藏
    
    //Mune_L_sub是Mune的子部位,所以标记隐藏时会连带。但Mune_L_sub是全部胸部,而我们只要Mnue代表的上半胸,所以后面要取消Mune_L_sub的隐藏,其他取消隐藏的部位基本也是同样原因。
    
    //大部分部位可以利用模糊匹配的规则,不需要名称写全,但Mune_L_sub等因为L和R的区别恰好卡在文字中间,所以只能分别写明。
    
  4. 肚子上有一条缝

    图上看不出来,但通过摆姿势时看到了,原因是模型预处理没做好,那个地方是断面。利用“网格-合并”功能融并了两边的顶点来解决了,很庆幸这功能没有影响到形态键这些。

  5. 部分权重不自然和少许穿模

    用之前的制作方法继续完善即可。

  6. 在大体型中衣服扭曲

    说明权重或者形态键没做好,当时只想着别穿模,却忘了考虑衣服的线条布局是否正确。

    嘛,这个就不管了,反正我更喜欢幼的( ̄▽ ̄)*

六、完成裙子Mod制作

其他就基本没啥问题了,把上述这些小问题修好后,我宣布“衣服部分最难的裙子Mod制作成功!”

太棒了,差点一命通关,我甚至感觉时间还能缩,踩完了坑,掌握了技巧,做起来真的好简单。\o/

img

标签:教程,示例,模型,COM3D2Mod,身体,制作,穿模,Mod
From: https://www.cnblogs.com/BDFFZI/p/17982886

相关文章

  • 无涯教程-Swift - 可选项
    Swift4还引入了Optionals类型,用于处理缺少值的情况,可选的选项是"有一个值,它等于x"或"根本没有值"。Optional是一种类型,实际上是Swift4的新函数枚举之一,它有两个可能的值,None和Some(T),其中T是Swift4中可用的正确数据类型关联值。这是一个可选的Integer整数声明-varper......
  • [office] 如何用excel制作考勤表的方法
    Excel除了数据录入外,还可以制作考勤表进行对员工的考勤,下面是小编为大家带来的如何用excel制作考勤表的方法,相信对你会有帮助的。如何用excel制作考勤表的方法1:新建空白表格,将工作表sheet2和sheet3删除,将sheet1命名为“X月员工考勤记录”如何用excel制作考勤表的方法2:......
  • [office] excel使用公式编辑器的教程
    Excel中经常需要使用到公式编辑器对公式进行编辑,公式编辑器具体该如何使用呢?下面是由小编分享的excel使用公式编辑器的教程,以供大家阅读和学习。excel使用公式编辑器的教程:公式编辑器使用步骤1:打开Excel文件,在excel2007的插入栏位点击插入-对象!公式编辑器使用步......
  • 无涯教程-Swift - 变量声明
    变量为我们提供了程序可以操纵的命名存储,Swift4中的每个变量都有一个特定的类型,该类型确定变量的内存大小和布局。Swift4支持以下基本类型的变量-Int或UInt  - 用于整数。更具体地说,可以使用Int32,Int64定义32或64位有符号整数,而UInt32或UInt64定义32或64位无符号整数......
  • [office] excel中数据透视表建立教程
    Excel中的数据透视表该如何建立呢?接下来是小编为大家带来的excel中数据透视表建立教程,供大家参考。excel中数据透视表建立教程:建立数据透视表步骤1:打开数据透视表:如下图,“插入”——“数据透视表”——“数据透视表(T)”,建立数据透视表步骤2:选择透视数据区域,如......
  • 无涯教程-Swift - 环境
    Swift4为学习目的提供了一个运行平台,我们将对其进行设置。您需要xCode软件才能在运行中启动Swift4编码。一旦熟悉了Swift4的概念,就可以使用xCodeIDE进行iOS/OSx应用程序开发。首先,我们认为您已经在AppleDeveloper网站上拥有一个帐户。登录后,请转到以下链接-Downloadf......
  • 无涯教程-Socket.IO - 聊天示例
    现在我们已经很熟悉Socket.IO,让我们编写一个聊天应用程序,可以在不同的聊天室中使用它进行聊天,我们将允许用户选择用户名,并允许他们使用他们聊天。因此,首先,让我们设置HTML文件以请求用户名-<!DOCTYPEhtml><html><head><title>HelloLearnfk</title></head><......
  • [office] Excel2003中制作有色立体感的单元格
    ①启动Excel2003,右击单元格,设置对象格式。②切换到图案标签,选择一款颜色。③然后点击边框选项卡,样式选为双线,边框效果设置为下图样子。④将颜色设为白色,取消上和左线条,如下图。⑤确定之后,返回主界面看看,是不是有一些立体效果了呢?......
  • 无涯教程-Swift - 简介
    Swift编程语言,支持多编程范式和编译式,用来撰写基于macOS/OSX、iOS、iPadOS、watchOS和tvOS的软件。苹果公司于2014年在苹果开发者年会(WWDC)发布了Swift编程语言。从设计上苹果公司让Swift与Objective-C共存在苹果公司的操作系统上。2010年7月,苹果开发者工具部门总监克里斯·......
  • STM32CubeMX教程27 SDIO - 读写SD卡
    1、准备材料正点原子stm32f407探索者开发板V2.4STM32CubeMX软件(Version6.10.0)keilµVision5IDE(MDK-Arm)ST-LINK/V2驱动逻辑分析仪nanoDLA野火DAP仿真器XCOMV2.6串口助手2、实验目标使用STM32CubeMX软件配置STM32F407开发板SDIO读写4线SD卡,实现轮询方式读写SD卡、以中......