本帖最后由 _ginko 于 2013-1-18 13:00 编辑
首先非常感谢教程作者的详细的解说,不得不说真的很详细……简直跟论文一样啊。然后我个人觉得还是在理解的基础上学起东西来比较快所以也翻译的比较啰嗦,有些地方添了一点解释,自己回顾起来也比较方便。赶时间的话原理解释可以不看。英文和语文水平有限……见谅。 希望能帮到想学习做拉杆的同学~
这个第【一】篇中讲的拉杆,是相对大范围的、大规模的身体和脸部的拉杆。细枝末节的脸部细节的拉杆请戳第【二】篇。
(本文未经同意请勿转载)
【本文全文下载】
【用到的小软件+人体模型下载】(不包含milkshape和S3PE)
================================================================================================== 制作骨骼自定义拉杆教程 原文来自Sims维基百科,地址: http://simswiki.info/wiki.php?title=Tutorial:Creating_a_Bone-Based_Custom_Slider 原文作者:whiterider 翻译:ginko
目录 1.介绍 1.1 基于骨骼和基于表面几何网格的拉杆的区别 2.开始前的准备 3.制作拉杆 3.1选取一个骨骼 3.2 创建package文件 3.3 导出骨骼数据 3.4 编辑骨骼数据 3.5 导入骨骼数据 3.6 测试
介绍
此教程将会教你制作拉杆来操作sim人物的节点,包括身体和面部,男小人和女小人。这个过程在教程里看起来很简单,但是为了达到理想效果需要多次修改调整,所以做好花费大量时间和多次进游戏测试的觉悟吧!
基于骨骼和基于表面几何网格的拉杆的区别
有以下两种拉杆:基于骨骼(原文bone-based)和基于表面几何网格(暂译,原文GEOM-based)。他们效果类似但是本质有区别。(简要的说就是前者的改动的范围、幅度比较大、后者比较精确) 1.基于骨骼的拉杆:通过移动、旋转、缩放一个关节点来调整人体。所有附着在该骨骼(bone)的点(vertices)会和骨骼节点一起动。骨骼拉杆可用于身体和面部,但是网格拉杆通常用于面部,原因下文会提到。但是基于骨骼的拉杆有时候会发生不可预料的事情,特别是有的衣服绑定在出人意料的地方。(有的骨骼拉杆会让衣服变形穿越) 2.基于表面几何网格的拉杆:通过选取特殊的点(vertices)来移动,这意味着用网格拉杆能进行更细微的调整。毕竟没有“屁股下巴的骨骼”这种东西,只可能用选取网格的点来使下巴中间凹陷。几何网格拉杆只能用于脸部,因为只有一种人脸网格模型,所以点也是一样的,最重要的是同样地方的顶点的ID是一样的,这一点和衣服不一样,所以几何网格拉杆只能在特定的服装上起作用。
开始前的准备
在我们开始之前,有些准备工作: 首先,下载安装如下软件: l CAS SliderTemplate Creator 和 BoneDelta Editor(作者Delphy) l S3PE(作者Inge和Peter Jones) l Milkshape或者Blender(教程中用的是前者) l 人体模型 有一个非常重要的步骤:移除你用的拉杆效果多倍MOD!!你需要测试确定你的拉杆的最大和最小数值,保证它在“看起来好看”和“看起来像外星人”之间的底线,如果你不移除多倍效果MOD,会在误判拉杆的实际效果。(单纯破解拉杆数量上限的MOD是可以用的,或者你可以试试用超级电脑只破解上限。) 当然你最好也尽可能的移除其他自定义,加载游戏的时候就不会那么痛苦了,括弧笑。
制作拉杆
步骤一:选取一个骨骼 如果你之前没有用milkshape倒腾过骨骼和骨架之类的,打开milkshape点击左上角的file----Preference,在弹出的窗口中的Misc面板,设置Joint Size为0.008000,点OK,然后关掉并重新打开milkshape。 打开你下载的人体模型的其中一个,模型性别和年龄段无所谓,区别不大。但是如果你用的是儿童模型的话要注意相比成人模型,你要做的是小规模的变化。在milkshape里点Joints面板,勾选show skeleton(显示骨架)选项。 现在我们看到的应该是类似这样的: 灰色的是人体,蓝色的是骨架(skeleton)。上面的小圈圈是节点(joint)。在Model面板点select(并且在下面Select Options的四个按钮里点Joint)就可以选中节点。点击右下角的Anim按钮,根据你要做的拉杆的种类,选择节点,然后移动或者旋转他们来看最终的效果。在本教程里,我想要缩放一个骨骼节点来调整小人脖子的粗细,不幸的是用这种方法在milkshape里不能预览骨骼节点缩放的效果。
用这个打开的骨架文件你可以找出你想要做出变动的骨骼节点。在Joints面板有小人的骨骼节点的列表,双击节点的名称,这个节点就会在模型上高亮显示。我想要缩放脖子的骨骼节点,所以在这儿我双击b_Neck选中它: 就可以看到我选中的这个骨骼节点被高亮成红色。被高亮成绿色的节点是这个红色节点的分支,无论你对脖子节点做了什么,分支的节点也会产生同样的效果。也就是说,如果我放大这个脖子节点,整个头部也都会放大。不想让头部也跟着变化的步骤在后面会提到。 如果你想要对细小部位的节点做拉杆的话,(比如脸和手)你可以在Joints面板勾选Draw vertices with bone colours(显示骨骼权重赋值颜色)。这样表面的点会变成和它所附着的骨骼节点一样的颜色,可以更容易的看出哪一段部位与哪个骨骼节点有联系。 一旦你选好了你的节点,记下它的名称,也记下离它最近的分支节点的名称。(也就是离红色节点最近的那个绿色节点) 步骤二:创建package文件 接着,打开CAS SliderTemplate Creator这个软件。这是个相当简单的软件,我们能修改它生成的基础拉杆。 把以下信息填满: Slider name拉杆名称:这是你的拉杆的“代码名称”。用来给游戏识别,也许你想把你的名字也写进去,也许你无所谓,这个你看着办。 String to display显示行: 这是你的拉杆在CAS里显示的名称。 Generate Male&Female/Link Male&Female to same生成男性&女性/男女关联为一样:之前提到过,拉杆类别是:只能男用、只能女用、两者通用。你也可以把他们关联在一起,这样男用拉杆和女用拉杆会用一样的数值,或者不要选关联,这样你可以分性别设置不同的数值。是否选关联,取决于你做的拉杆:有时候选了关联可以正常使用,有时候需要根据男女身体模型的不同设置不同的数值。在这里我没有勾选“关联”,只是为了以防万一。这样只增加了0.5KB的文件大小,但可以避免后面出现问题。 CAS Panel在CAS里的分类:你的拉杆在“外形”的面板的下列子选项出现。 Subgroup细分类:“外形”面板里的子选项里面的细分类,我也不知道数字几分别对应哪一块,但是数值2是通用的(就是脸部“细节调整”里点击示意图右下角那个点会出现的拉杆列表) Region区域:选个适当的区域。 一旦你把这些填完了,点击GO,然后选个文件夹生成你的拉杆文件。
步骤三:导出骨骼数据 找到你在上一步中生成的package文件,用S3PE打开。如果你是第一次用S3PE,记得在窗口的底部勾选“Names”和“Tags”。这样再上面就能显示这两列。(点上面的Tag栏可以让这一列排序) 如果在上一步你没有选Link Male&Female to same(设置性别关联)的话,每个性别会有两个对应的BOND文件(BOND是骨骼数据BoneDelta的缩写)。这些文件包含了拉杆的初始数值,也就是拉杆数值为零,滑块在正中间时候的状态。名称为[<你的拉杆名称>Right<性别>]的BOND文件控制滑块向右拉所产生的效果,名称为[<你的拉杆名称>Left<性别>]的控制向左拉的。你可以随心所欲的创造你想要的效果。不过在这里我想要让它往右是放大,往左是缩小。 选中所有的BOND文件,右键,选Export---To file导出它们。
步骤四:编辑骨骼数据 先从一种性别开始,我选择了女性。然后选一个方向,我选择了向右,因为放大比缩小简单点。一开始的时候为了试验,大幅度的修改数值,等到多试几次心里有数了之后就能比较准确的得到想要的效果了。 用BoneDelta Editor打开上一步中导出的后缀为.bonedelta的文件。首先选中左边框里的Head条目,把它换成我们想要变动的节点——就是之前让你记下名字的那个节点(在右边的列表里选出它)。然后在中间的区域设置各种数值。Offset是位移,Scale是缩放,关于Quatemion(四元数?)的解释,你非要知道它是啥的话可以看这个教程 CMarNYC's Pet body slider的“Advanced stuff”章节。此处提醒一下,最好把数值控制在-1到1之前,太高或者太低可能在游戏里会造成非常诡异的效果。 然后,你还记得那些绿色的节点吗?之前提到说改动一个节点也会改动所有有关联的子节点,当然这不是我们想要的。在这里我设置我的骨骼数据为:neck节点在X轴和Z轴的缩放值为0.2,当然,我不想让整个头部也跟着缩放。所以,单击左边框下方的Add Entry增加一个条目。(你需要给每一个直接连接主节点的子节点创建一个条目),此处的直接子节点只有head节点。在右侧的列表选出head。然后设置数值,我们要在放大整个部分的同时缩小头部,这样头部就看起来没有受拉杆的影响。 算出子节点的数值具体应该是多少,很不幸这个没有捷径。不过可以试试把原始数值除以二再变一下正负号,比如说neck部分是+2,head部分就是-1。或者neck部分是-0.4,head部分就是+0.2。 在这里我给女性、向右,设置了如下的数值: 注意了,每次你给一个节点设置数值之后,记得点右下角的Commit键,如果你没点这个就开始设置下一个节点,之前的设置就没了! 对向左的和另一种性别的文件重复上述操作,记得保存.bonedelta后缀的文件。
步骤五:导入骨骼数据 当你完成了上一步骤的所有设置,回到之前用S3PE打开的package,选中BOND文件,右键——replace,然后选对应的BOND文件来替换它。注意一定要用修改过的文件替换原来的对应的文件,如果搞错了的话结果会很崩坏的!全部替换完了之后保存你的package文件。
步骤六:测试 现在你可以把这个package放进你的Mods/Packages文件夹,进游戏看看效果。你的第一次尝试可能是像下图这幅样子…… 不过别担心,括弧笑。只要重复步骤四和五,调整你的数值,直到到达你满意的效果——拉杆起作用并且没有影响身体的其他部分。 渐渐地你可以得到更像下图的效果:
然后就全部完成啦!! |