简介 Edgeflow Mirror是一个工具,主要镜像 -skinCluster权重, -多边形几何和组件选择 基于对象的Edgeflow 更加稳定。 为了找到相反的顶点,此工具使用一种算法,该算法仅查看组件(边,顶点和面)连接在一起的方式,因此忽略位置。 这意味着,即使顶点的位置不对称或者角色的 姿势与默认姿势不同,该工具也可以使用。 如何使用? 将文件复制到磁盘上的某个位置,打开edgeFlowMirrorUI.py并更改以下行 edgeFlowMirrorPluginFile = ‘myFileLocation/edgeFlowMirror.py’; SkinCluster: 重量影响会根据关节的名称进行镜像。需要在用户界面中设置正确的前缀。 例如,左关节前缀 “ l_”和右关节前缀 “ r _”,l_elbow是r_elbow的相反关节。 名称中没有这些前缀的关节将作为中间关节处理。这意味着,在这种影响下,来自此关节的影响值会在一侧镜像到另一侧,而不是将其应用于相反的影响。这些中间影响已记录在脚本编辑器中。 几何: 对于“翻转”或“镜像”,请首先设置“基础网格”。基础网格是默认网格。在将要被镜像的任何多边形对象上, 相对于基础网格物体位置的位置将被镜像,而不是绝对位置。 我的角色需要看起来如何,这样工具才能起作用? 尽管顶点的位置无关紧要,但边缘流在左侧和右侧必须相同。并且需要一个Edge Loop贯穿整个中轴。 如果角色以前是对称的(使用任何类似的选项创建,例如“网格->镜像几何”(Mesh-> Mirror Geometry)),则仅 修改了顶点位置,在正常情况下,该工具应该可以正常工作。 我如何确定该算法适用于我的角色? 设置MiddleEdge,然后在Geometry中,按一下Symmetry Mesh旁边的按钮(重要:这将更改您的对象,请 确保在此之后保存/使用undo)。 该插件尝试创建一个镜面形状-如果显示“为每个选定对象找到了mirrorPoint,点”,并且该对象看起来非常 对称,可以很好地进行操作,在正常情况下,所有镜像都应工作良好。 如果插件显示“警告:某些点无法镜像(请参见选择)”,请查看选定的顶点,因为那些顶点没有被镜像。尝试给他一个不同的中间边缘(中间循环的任何边缘)并比较结果-镜像可能仍然有效,但是应格外小心! 算法: 一个非常重要的输入是中间边缘,这是每个任务所需的。中间边缘仅 是字符垂直中间行的边缘之一。(请参见上图) 如果边缘的流动(即,它们将面连接在一起并将顶点连接在一起的方式)是对称的,则不要紧,我们使用行的哪个边缘。 然后,该工具看上去是哪个面在右侧,哪个面在左侧。然后它会自动知道, 右面的顶点与左面的相反的镜面顶点,并将它们添加到镜面阵列中。 在下一步中,它将查找左侧顶点的第一个顶点的相邻顶点,以及右侧顶点(我们之前找到的)的相邻顶点。这些顶点再次被声明为mirrorvertices并放入数组中。 然后,它查找左面的相邻顶点的相邻 顶点和右面的相邻顶点的相邻顶点,依此类推…… 对于开发人员: 该插件也可以轻松地用于创建其他任何对象。带有MEL(或Python)的镜像工具 这是2条MEL行,为您提供2个数组(mapArray,sideArray),这些数组保存顶点的镜像映射。您可以使用这些数组来编写反映其他内容(例如选择或任何权重图)的MEL / Python代码。 int $ mapArray [] =`edgeFlowMirror -task“ getMapArray” -middleEdge myObject.e [15]`; int $ sideArray [] =`edgeFlowMirror -task“ getSideArray” -middleEdge myObject.e [15]`; 运行这些命令后, $ mapArray如下所示:25、10、5、8,... 这是一个数组,具有模型的顶点数的大小。在此示例中,顶点0是顶点25的相反镜像顶点,顶点1是顶点10的相反顶点,顶点2是顶点5的相反顶点, 以此类推... $ sideArray看起来像这样:1,1,1,0, 2,2,2 ,... 由于$ mapArray仅映射顶点,但没有告诉我们顶点实际在哪一侧,因此$ sideArray会处理它。1表示左侧,2表示右侧,0表示中间。 |