在开始之前先让我叠个甲,本篇所有的理解和观点来自各位大佬的指点和4个月以来的做mod经验,因此观看本篇文章时请不要以“真实机制就是这样子的”的心态来看,而是以“可以试试这么做”的心态来看。本篇只涉及ccl的一些注意事项和常规的用法。关于ccl插件的使用和基础的说明可以在谛听的帖子:【教程】从零开始做物理·其三——穿模优化与CCL文件里了解。沟槽的2.79
ccl作为防穿模的一种手段,有好有坏,属于是双刃剑,不过比起创建ccl,生效才是最大的问题,我也不例外,经常会有没生效的时候,加上ccl还有些未知的地方。所以我不建议花费大量的精力和时间去调整ccl,比起精调ccl,刷好模型的权重和调整参数更有效直观。一般都是直接用空的ccl替换或者套用原版的ccl并加以修改。好了,如果文中有错误或者有更好的方法,还请指出。
①首先怪猎的外观mod本质就是替换原版对应的文件,从mod3到mrl3、ctc等等,ccl也不例外。如果你不用自己的ccl或者空的ccl替换原版的ccl,那么会自动识别并沿用原版带的ccl,如果没有做物理,那几乎没有影响,但是有做物理的话,幸运一点原版对应部位是空的ccl或者不在ccl的作用范围内就不影响,不然轻则物理链运动受影响,重则让对应的部位受到挤压变形、抽搐。甚至发现新大陆霞龙,然后调查点数加50 。
比如下面这个就是,没有替换原版的ccl,导致裙子凸起
②套用原版的ccl的话,最好在2.79里导入并检查一遍,然后根据需求进行修改,虽然说大部分原版装备对应部位的ccl的碰撞容器都相差无几,比如wst部位大部分都是014-015、015-016、018-019、019-020这四个,但在大小和位置上会有些许差异,加上原版装备的骨架不是完整的骨架,所以直接套原版的ccl不检查的话,也会发生①里所说的情况,或者完全没效果。
如下图是男性苍星之将的wst,可以看到骨架并不完整,没有015和020之后的骨骼,两个碰撞容器也只是014-015和018-019,所以想要脚有碰撞,却套了苍星之将的ccl的话,就会发现完全没效果,因为本来就没有。
③ccl的生效,实际是物理链碰到碰撞球,从而被阻挡下来,但碰撞球是球形,所以阻挡的效果大多时候都不是很可靠,常见的情况就是物理链碰到碰撞球了,但是顺着就往左右偏移到后面去了。
注意不要在物理骨骼上创建碰撞容器,除非你对应的那条物理链不启用ccl碰撞,不然,在游戏里面,会让物理链发生抽搐。
碰撞体积会根据起始球和终止球之间的距离来形成,换句话说,起始球和终止球越近,碰撞体积越像个球,越远就会像水滴或者胶囊。
①在碰撞容器的自定义属性里面,data一栏右侧的数组相当的重要,这一数组决定了碰撞是否生效,而原版装备的这一数组普遍为[1, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205] ,我们可以将这一数组称为枚举数。
如下图
我们自己创建的碰撞容器的枚举数是默认的[0,0,0...0],枚举数是默认的[0,0,0...0]情况下,基本不会有碰撞效果,所以我们一般直接复制原版装备的枚举数来替换。
如下图就是新创建的碰撞容器的枚举数,是[0,0,0...0]。
下图是苍星之将的一个碰撞容器的枚举数
②radius,机翻过来是半径,可以理解为这个当前物理节点的碰撞半径,这个数值在物理链的Frame的自定义属性里面,关于这个数值的作用,可以看我的帖子【测试】Frame参数radius与碰撞半径,可以说,radius就是节点的碰撞半径,但是因为未知原因,在2.79里面导入ctc或者创建ctc后,节点的碰撞半径实际看的是frame的尺寸大小而不是radius的数值。
如下图,按物理链旁边的+号展开,就能看到*Frame,其中在自定义属性里往下拉,可以找到radius。
原版装备里radius的这个数值有很多,1、3、5、10等等,如果是自己创建的物理链,物理链里每个Frame的这个数值都是默认为1,可以手动修改,但是在2.79里修改这个数值并没有什么作用,要调整节点的碰撞半径,得修改Frame的尺寸。
下图是苍星之将的一条物理链中的一个Frame的radius数值
③CCL Collision,这个参数在ctc里面,谛听的教程贴已经讲过了,这里就不多说了,物理链是否启用ccl碰撞的参数,不同的数值,会有不同的效果,2是链之间的碰撞,4是和ccl的碰撞,8是与地面的碰撞,14则是同时启用所有碰撞,一般来说,调成4就足够了,有特殊要求才会对此数值进行调整。
要创建一个ccl并不难,如果是要创建空的ccl,在导入mod3后,直接不做任何处理,按文件——导出ccl,就能创建一个空的ccl。
如果要创建一个自己的ccl,就得有碰撞容器、起始球和终止球。
选中两个骨骼,再点ccl插件里的Capsule from selection就能根据选择的顺序创建起始球、终止球并生成一个碰撞容器。比如下图就是,先选中014后在选015,然后单击Capsule from selection,就会生成一个碰撞容器、起始球和终止球。
ps:这里骨骼的选择没有限制。也就是说,你可以选004再选013创建一个从头到胯的碰撞容器,但实际效果想象不到的话得测试才知道。
生成的碰撞容器,下图可以看到起始球start sphere的目标是014,就是绑定的014这个骨骼,也是我们第一个选的骨骼。
单击Collision Capsule,单击物体(橙色方块),就能看到Data一栏的数组[0,0,0...0]
之后我们另外打开2.79,随便导入一个原版装备的mod3及其ccl,把碰撞容器的Data一栏的数组复制(点击Data一栏右边的编辑,点属性值,全选复制),拿来替换自己创建的碰撞容器的数组(点击Data一栏右边的编辑,点属性值,粘贴)。
最后,根据自己的需求,修改起始球、终止球的位置和大小,如果不放心,也可以把碰撞容器的名字也复制过来替换(名字并不影响,导出ccl再导入一遍,名字形式就会变成原版装备的那种形式),然后文件——导出ccl,就能创建一个自己的ccl了。接下来我会举一些我常用到碰撞容器样式,供大家参考。
PS:也可以只单选一个骨骼在创建碰撞容器,这样起始球,终止球都会绑定同一个骨骼。
顺带一提,碰撞容器在9个以上,继续创建碰撞容器,如果名字是默认的话,会是Collision Capsule.010、Collision Capsule.011这样排下去,如果是原版装备的名字形式的话,10-19就会排在1后面,而不是9后面,同理20-29就是排在2后面。
要修改Frame的尺寸也很简单,点开物理链旁边的+号展开,就能看到Frame了,物理链上有多少个骨骼就有多少个Frame。
如下图,我这里物理链有4个物理骨骼,所以有4个Frame.
要修改Frame的尺寸的话,不是在自定义属性里面,而是在物体数据(三个白色棍子标的)里面。如下图,该界面里,显示默认是箭头,下方一栏就是尺寸。
放大拉进之后就能看到,高亮的就是当前选中的Frame节点。(因为显示是箭头,所以是图中这种带方向轴的样式,我们平时调整方向,也是基于这个方向轴来调整的)
这里我们直接改尺寸大小就行,不过为了能更清楚碰撞范围,我们还需要把显示改成球形(点击显示右侧那一栏就能修改了)
改成球形后就能直观的看到碰撞的范围了。
ps:需要注意的是如果要调整方向,最好把显示改回箭头,因为在球形下比较难判断当前的朝向,而要调整Frame尺寸的话,最好把显示改成球形,以便得知碰撞的范围来进一步调整。如下图,Frame002的显示是箭头,方便我们调整方向,而Frame003显示是球形,方便我们查看碰撞的范围
①短前发,短侧发这种比较简单,以粒樱杏子为例,单个碰撞容器就能基本满足。以004骨骼来创建碰撞容器,然后根据自己的需求调整大小和位置就可以了。
没建ccl之前如下图,跑动时前发明显的穿进头里了。
这里我单选004骨骼,创建碰撞容器,调整大小,复制原版装备枚举数替换后,选择起始球再选择终止球,一起往中间移动来调整位置。如果被模型挡住不知道大小和位置的话,可以隐藏模型(在右侧点击眼睛图案就能隐藏)后再调整。
隐藏模型后的右视图如下图。
用了ccl后,游戏内效果,能看到前发被挡住了,说明成功了。
②长侧发
这个有点难度,不过可以免去大部分的穿模尤其是身体方面,让长侧发不直接穿过身体,这里以千玲为例。
可以看到两边的长侧发穿过了身体。
这里我单选002骨骼,创建2个碰撞容器,因为离身体并不远,所以将两个容器移到侧长发后方一点(差不多是胸部的位置),调整合适的大小(我这里调的是11.5)之后继续,选006再选005创建碰撞容器(005-006这块是肩膀的位置,从005到006来创建也可以),同理给另一边也一样,选010再选009创建碰撞容器,肩膀的这两个碰撞容器我不进行位置调整,只调整大小。(我这里调终止球大小为6),最后复制原版枚举数替换,导出ccl,进游戏检查效果。
最终效果如下,可以看到被挡住了,不会穿模很严重,不过实际正常行动还是会有一点点穿模的,这种是无法避免的。
长前发我还没遇到过,不过思路和短前发差不多,可以单选002骨骼创建碰撞容器,给碰撞球调整得大一点,再根据物理链和模型来调整位置,让长前发在跑动的时候碰到碰撞球从而左右偏移向身后飘去,避免直接穿过身体。
披风、后发放一起主要是这两个的思路都是差不多的,一般来说,只要骨架完整,就根据自己的需求给头及以下的骨骼创建碰撞容器就可以了,像002、013、001甚至大腿014、018都可以。不过需要注意的是,如果是只用了一条物理链,创建的碰撞容器不调整位置的话,最好和物理链在同一列上,确保物理链能碰到碰撞球。另外通过对Frame和ccl的调整,可以实现喝药时后发不穿过身体。
以校服丛雨为例,下图可以看到喝药的时候,头发会穿过身体,因为喝药这个动作会让头大幅度后仰,跟着头动的(物理链父级是004)头发自然会跟着大幅度后仰(游戏里表现是后发往前穿)而穿模。
因为长发我只做了一条链,所以这里直接调整Frame尺寸,然后分别单选002、013来创建2个碰撞容器,以002创建的碰撞容器,调整终止球的大小后,和起始球以002为中心拉开距离,013也一样,最后复制原版枚举数替换,导出ctc和ccl,进游戏查看效果。
以002为中心拉开距离,确保物理链在往身前动的时候能被档在中间。
最后效果如下,可以看到很明显的被阻挡和偏移,虽然有点难看,不过通过进一步细调可以更好一点,最好也调一下ctc的角度限制什么的。这里就不继续细调了,只做演示。
下图是我做当时给星月的披风做的ccl,现在来看只是盲目堆料了,其中大部分都不一定生效。披风思路和后发差不多,看情况调整Frame尺寸和ccl的碰撞球大小就行了。
一般胸口前的饰品也好说,这里以Serika胸前的蝴蝶结为例子。
可以看到跑动的时候蝴蝶结穿过了胸口
我这里是单选002骨骼,创建2个碰撞容器,调整大小,然后分别移动到胸口后一点(起始球和终止球一起移动),距离蝴蝶结的物理链算是比较近的了,这样一来,不用跑动也能把蝴蝶结撑起来,最后复制原版枚举数替换后导出,进游戏测试。
最后效果如下图,可以看到有一边被阻挡后偏移到一侧了,另一边则挡在中间,当然这里你可以只创建一个碰撞容器,并调到蝴蝶结后方一点,实现跑动的时候让两边朝着两侧飘从而避免直接穿过胸口。
裙子这里,怎么说呢,ccl的作用在裙子这里有时候挺尴尬的,因为只要权重刷好,物理链摆放的不离谱,参数不夸张,给前裙绑辅助骨基本就能解决90%的穿模问题,这时候ccl基本只剩下优化小部分的穿模(如膝盖处和裙子侧面),甚至都可以不用ccl(像阿克西斯的陨落大佬做的早乙女就是,权重什么的都很好,就让ccl的作用很小)。
当你ccl的碰撞球比较大的时候会把裙子撑起来,比如我最开始做的星月(如下图)和后面做的雪风就是,均被碰撞球撑起来了。
而不额外调整,不绑辅助骨,再加上角度限制,ccl对裙子的作用就很小,甚至没什么用,因为最常见的情况是物理链碰到碰撞球后直接偏移而向后面飘去造成穿模,如果把碰撞球调大,又会让裙子撑起来很多,就很难看。
如下图,可以看到,前端是被顶起来了一点,但是因为物理链的节点的碰撞体积比较小,马上就偏移离开绑定腿的碰撞球,从而穿模。
通过调整Frame尺寸,角度限制,ctc参数等等,也可以在不绑辅助骨的情况下,达到接近绑辅助骨的效果,但是那样得耗费大量的时间和精力,吃力不讨好。
单单调整了Frame尺寸和角度限制后,效果依旧不是很理想,如下,可以看到,裙子是被顶起来了,但会往中间聚拢,而迈另一条腿后,又会有穿模。想要效果好起来得费心思来调整,有时候甚至得重新刷权重、做物理。
所以这里我只讲常规的裙子的ccl是什么样子的,其实和游戏里原版装备的相差不大,都是顺着大腿来创建碰撞容器的。选择014再选015,创建碰撞容器,同理另一条腿也是选018再选019创建碰撞容器,最后再给015-016和019-020创建碰撞容器,调整大小,最后复制原版枚举数替换,再导出就完成了,这样一来能优化一点侧面和膝盖处的穿模。(也可以通过调整Frame的尺寸来优化,但要适度,不然会把裙子撑起来。)
最终的样子如下图差不多。
①旗袍要想不穿模挺难的,而二次元的旗袍大多为了涩而整得非常贴身和细,所以ccl在这里作用也比较有限,只能优化一下,大部分穿模还是不可避免的,所以不建议在这上面花太多心思。
这里以时佬的断罪和我赶工的陈为例
绑013的物理链在可爱姿势的最后一下会跟着胯往身后,虽然原本的ccl挡了一下,但最终还是穿过去了
这里我按常规裙子的方法给大腿(014-015、018-019)和小腿(015-016、019-020)创建碰撞容器,这里需要调整Frame的尺寸和节点的角度,最后根据实际情况调整碰撞球大小和位置,最后复制原版枚举数替换,导出ctc和ccl,进游戏查看结果。
ps:也可以从014-018这样子来创建碰撞容器
最终的效果勉强能看吧,跑动起来的话,该穿还是会穿的,如果要更好的效果,得去细调,可能也要对旗袍重新刷权重等等,另外可以去参考原版男性热情套和一些前摆比较长的装备来调整。也有非常规的方法来进一步优化,但是效果不多,所以有空我再说明。
ps:时佬这个前摆要是再小点,可能都可以不用考虑穿不穿模了wwww
②下后摆我也同样不推荐花费心思和精力去调整,这里一般只要调整角度和ctc参数就够了的,而且卡普空自己做的下后摆都会穿模,所以这里就以原版宫廷套的下后摆为参考思路。反着顺序来,以016-015,020-019来创建两个碰撞容器,调整后摆的Frame的尺寸,然后起始球的位置往脚后方移动一点,碰撞球的大小看着Frame的尺寸来调整。
最终的效果在游戏里不是很明显,但是跑动的时候,可以注意到下后摆是有时会被顶起来的。
外套这里是指按披风规格来做的外套(一般也没几个人会想着做外套的物理),就是物理链父级是002的,这样的外套虽然跑起来会往后飘,但是缺点也很明显,容易穿模,加上绑是的002,会跟上身旋转、运动,就会导致有些姿势下穿模明显或者比较奇怪。通过ccl和调整Frame尺寸可以优化一定程度,但仍然不推荐花费时间和精力去调整。(可以把物理链父级绑给013来缓解)
这里以谛听的夕宝和蜜蜜为例,下图可以看到蜜蜜(这里我特地绑的002,之前发的是绑的013)和夕宝在这个姿势下都会穿模
我们给每个frame的尺寸都调一下,下面的就调大点,上面的根据实际情况来调整,碰撞容器方面,分别从002、013创建,然后调整大小和位置就可以了,整体来看差不多是周围包裹着碰撞球,最后复制原版枚举数替换,导出ctc和ccl,进游戏查看效果。
最后的效果如下,可以明显的看到,虽然还有一点穿模,但是被撑开而没直接穿过裙子,剩下的右下边那点穿模要调整起来比较麻烦,所以这里就不继续细调了。
到这里差不多就结束了,其实还有一些地方能用上ccl,但是我还没做过,所以没有演示,后续如果碰到了,效果还可以的话,会进行对应的更新。关于Frame尺寸的调整,有一种思路是把大小调整到比模型对应的部位大一点,实现在对应部位穿模前,就已经碰到碰撞球而被顶开而防穿模。
有想象力的话,也可以把ccl用在意想不到的地方。
总的来说,防穿模的方法有很多种,根据实际情况来选择就好,而且有些穿模没必要纠结太多,就连卡普空自己做的都会穿模。如果文章有哪些错误的地方,或者有更好的提议,欢迎大家来指出。