1、介于有人在看了此帖子后选择直接使用MHW CTC Editor,在此特地强调一下,能用就尽量用MHW CTC&CCL Importer插件,因为它是可视化的,方便快捷。对于MHW CTC Editor,我现在的建议是不如直接去用010Editor及其模板。
2、关于参数的含义,这个帖子拥有更全面的介绍/解释。不过很多参数可能blender的ctc插件改不了,所以要用帖子里的模板、010Editor去修改。
3、对于制作物理的工具,现在已经有适配2.93+的插件,操作更方便、功能更全面。
首先,如果你有研究过或者了解过ctc文件,那你大概率已经看过站内的ctc教程相关帖子,不过这些大都是很久之前的教程,是用010Editor进行修改的。
而现在我们既有专门化的程序MHW CTC Editor,也有blender 2.79的可视化插件MHW CTC&CCL Importer,这些都能对ctc文件进行简便、轻松的修改,没必要再学习过去这种old school式的方法。
这里默认你对ctc已经有一定的基础,能在现有的ctc文件基础上进行修改。如果没有,未来我可能会写一写,怎么从0开始编写一份自己的ctc文件。
好了,接下来是正题:
可以看到ctc文件分为Header、Chains、Bones三部分,它们分别是什么作用已经有教程讲过了,不再赘述,接下来我会直接讲解右侧栏中各种参数的作用。
这里的参数控制的都是所有物理链,一般不会对这里的参数进行修改,因为大部分参数在Chains中都有对应。
- updateTicks:刷新率(按秒),默认为0.016666,换算过来即60帧。
这个参数不建议进行修改,除非你知道你在干什么。这个东西实际上是运行帧,如果把它调高,这个部位的运动速度整体都会快一些。不建议将这个值改的过高或者过低。如果想要物理效果更顺滑一点、但又不至于让运动速度过快,0.011111,也就是90帧,是个比较合适的取值。 - poseSnapping:这个东西该怎么说,回正系数?也就是回归模型原状态的程度,但是我从来不管这个东西,都是设置成1。
- chainDamping:全局阻尼(或者说非弹性)。范围是0~1,当设为0时物理表现很像凝胶、豆腐、史莱姆,当拉到1时会进行平稳移动。
- reactionSpeed:受人物运动的影响程度。注意是受人物影响,风力、重力等外力不算在内。
- gravityMult:全局重力系数。正常来讲是1,不过可以调成负的,比如调成-1则是受反向重力。
- windMult____:Mid中等风力,Low较小风力,High较大风力。控制的是物理链受风力的影响程度。头发随风飘动效果会用到这个。注意,如果把画质里面的植被摇曳效果关闭,所有的风力效果都会失效!
绝大部分参数的调整都会发生在这里。
- Chain Length:顾名思义,链的长度,在ctc editor中这一项是没法改的;但是在blender ctc插件(仅2.79版)中,这一项是需要手动修改的。这里特地补充,是因为链的长度对于物理的表现也有很大的影响——一个链越长,其表现越柔顺、越流畅,但是代价是物理效果在链上的传递会相对变慢(因为长度长了但是传递速度不变),并且似乎受重力的影响也会更大,最终效果就是越长的链运动越不灵活。
collision:是否启用ccl碰撞。只对单个链进行判定,不同链互不影响。0是不启用,4或6都是启用,碰撞只受对应部位的ccl文件影响,并且物理链之间不会有碰撞判定。- collision:启用碰撞类型/碰撞属性标志,十六进制数。2为与其他物理链的碰撞,4为与CCL碰撞,8为与地面碰撞,这几个碰撞可以叠加,比如2+4+8=14即为启用所有以上三种类型的碰撞。
weightiness:权重。这个东西一般设置为39或7,但我也见过设置为4、2的。具体作用暂时不明,我反正没看出来修改后产生了什么区别。- weightiness:链属性标志,作用方法同碰撞属性标志。1-启用角度限制,2-启用角度限制恢复,4-启用尾节点旋转约束,8-启用反动画,16-启用自由角度,32-启用链骨伸缩,64-启用部分混合。常用的数值有7(1+2+4)、37(1+4+32)和39(1+2+4+32)。
- __Gravity:受到__轴方向的重力大小,坐标遵从左手系,即x为左右,y为上下,z为前后。一般仅修改y,而x和z是不建议修改的,因为是世界重力,受力方向始终一致,判断不在人物身上。具体单位换算的话,980=9.8m/s^2,也就是一个重力加速度g的量,然后还要注意,y设为-980才是向下的重力。
- poseSnapping/Dampening:可以理解成阻尼(非弹性)。较高会禁用物理,0会让骨骼随意弹跳甚至抽搐。头发的阻尼一般控制在0.4~0.6之间。
- coneOfMotion/ReduceSelfRate:迟滞程度/反作用力系数,可以理解成物理链随人物运动的程度,或者留在原本的绝对位置的程度(不知道能不能概括成“惯性”?)。具体来说就是数值越高,物理自身就越倾向于破坏原来的相对位置,实际表现上就是物理的运动幅度越大;数值越低,物理自身就越倾向于维持原来的相对位置。这个参数的作用在剧烈运动,比如奔跑、下落时,非常明显,如果你把值调高,物理就会像是被人物拖动一样,变成一个长长的横着的布条;如果你把值调低,物理就像是一个铁棍一样,保持原来的形状和方向跟着人物运动。将这个值调小,比如0.05,可以避免前刘海穿模头部,但是代价是刘海紧紧跟随人物运动,基本上没有自己的物理效果了。要注意这个参数是仅对人物动作进行反应,虽然有些人理解为运动角度,但这种看法并不特别准确,因为即使将其设为0,依然无法阻止风力、重力等的作用。
这个值可以是负的,产生反向的效果。
- tensionDamp/Elasiticity:刚度/弹性系数,或者说回正力度。当这个值在0.1~0.2时就已经有很高的回正速度。当这个值在0.05左右时,能够在保证回正速度的同时,保留一定的弹性,或者说灵活度,非常适合头发。
- Wind Multiplier:似乎是受风力影响程度/风力比例,但具体作用似乎并非严格如此(比如在一些CG中它会影响模型的朝向)。值一般在0~1之间,也可以写负值,比如-1代表不生效。
用到的参数不是特别多,或者说不是很好调整
- 一堆X、Y、Z相关的参数:上面写着是角度的最大值,但是我试过,说成骨骼的朝向感觉更准确一点。不过我一般都是用blender插件,那个能直接调整骨骼朝向和运动方向,所以这些参数我不是很了解。
- isParent/FixedEnd:虽然翻译成“是否是物理链的母节点”
,但是感觉理解成是否固定更直观一点。举个例子,把一个物理链的首节点和尾节点的这个参数都设为1,就会实现类似悬链的效果(不过实际效果很差,想实现悬链最好学皇后套的实现方法)。 - unknownByteSet[1]/unknownByteSetTwo001:骨骼的运动方向限制类型。0为无限制,1限制为在一个锥形范围内,2限制为仅单轴旋转。
- unknownFloatSet[1]/UnknownFloatSet000:骨骼的运动角度限制。默认值一般为0.785398(即45度),并且设为0依然是可以运动的。根据赛博龙舌兰的测试,单位是弧度制,但实际运动角度还受其他因素影响,比如Elasiticity。
接下来一篇主要是根据我的个人理解,进行的一些补充。
下一篇:对物理骨骼和ctc参数的一些补充