源码已上传至github,并持续更新,链接请看底部。(本帖跟随github持续更新)

继先前的一篇MeshEditor之后,MeshEditor第二版发布,这次在先前的基础上加入了为模型新增顶点以及删除顶点的功能,还有多项针对顶点的操作,类似于顶点塌陷的功能将会有效的降低模型面数(目标最好是仅有材质没有贴图的模型),这次我将以一个例子来大致讲解"模型网格编辑器(高级)"的多项功能,例子是:制作一个剑痕模型。

传送门(模型破碎模型融化模型镜像

好了,我们进入正题:




第一步:


首先,我们在场景中新建一个Cube,并为其添加我们的模型网格编辑器(高级)组件,先前一版的编辑器并未移除,也并未融合,虽然先前一版只支持更改顶点的位置,但在很多情况下或许只需要这个功能。


第二步:


打开我们的模型网格编辑辅助界面,Window-> 模型网格编辑辅助界面。

创建顶点:选中两直接相连顶点之后,在两点之间新增一个顶点,注意新顶点会自动与原两点所组三角面的其他点相连,从而组成新的三角面,因为,在unity中不包含在三角面中的点和线是不能存在的。

删除顶点:选中任意一个顶点之后,删除此顶点,注意同时被删除的还有这个顶点所关联的所有三角面,请慎重操作,Ctrl + Z是不能返回的。

相交位移:选中两个顶点之后,将两个顶点以两者相对的方向移动至两者相距的中心位置。

镜像位移:选中两个顶点之后,将两个顶点的位置相对调换,注意,你如果不想制作出一些奇形怪状的东西的话,请慎用此功能。

两点塌陷:选中两个顶点之后,将第二个点合并至第一个点,多余的无依靠的面将会被删除。(此操作可以有效降低模型面数)

多点塌陷:选中两个以上顶点之后,将所有顶点合并至第一个点,多余的无依靠的面将会被删除。(此操作可以有效降低模型面数)



第三步:


选中Cube直接相连的两个顶点,在两者之间创建一个新顶点。(只有存在直接连线的顶点之间才可以新建顶点)


第四步:


将新创建的顶点往上拖,形成剑痕的一方尖角。


第五步:


我们转到模型背面,选中背向尖角的两个点,执行相交位移(或者两点塌陷)。


第六步:


我们可以看到两个点被重合为一个点了,这是剑痕的剑锋部分。


第七步:


我们再转到模型下部,再新建一个点作为剑痕的另一方尖角。


第八步:


将尖角拉出。


第九步:


再选中下部尖角背面的两个顶点,执行相交位移(或两点塌陷)。


第十步:


一个长长的两面尖的剑痕就已经有些样子了不是,我们可以调节背面让其更薄。


第十一步:


我们继续调节剑痕的背部,让他表现得更薄。


第十二步:


我们再拉长一下两端的尖角,让他表现得更长。


第十三步:


好了,接下来是重点了,我们要让他更细更薄


第十四步:


这下完成了,记得点击编辑完成,如果点击之后没效果,可以直接手动移除Cube上的模型编辑脚本。


最后的效果:


我们之前创建的Cube是不会被修改的,修改的模型会自动生成一个克隆体。

当然不止是Cube,MeshEditor针对的是任何带有网格的物体,外部导入的模型我们也可以随心所欲的进行我们想要的修改的,让我们来玩一玩龙之谷的卡拉翰吧。

我们可以微调一下人物的面部,把鼻子拉长。

或者将眼睛变得更大。

不过可别对有贴图的模型进行删除顶点的操作,你会发现被你删除的那块面直接空了,最主要的是材质会丢失,当然删除之后再选中边缘顶点塌陷就可以补全空白了,但UV可能会乱。

github源码链接:https://github.com/coding2233/MeshEditor

-----by MeshEditor

Unity插件 - MeshEditor(二) 模型网格编辑器(高级)的更多相关文章

  1. Unity插件 - MeshEditor(一) 3D线段作画 & 模型网格编辑器

    之前,因为工作需要,项目中需要动态生成很多的电线,不能事先让模型做好,更不能用LineRenderer之类的,因为画出来没有3D的效果,最主要是拐角的时候还容易破面,而我们要的是真真实实纯3D的电线, ...

  2. Unity插件 - MeshEditor(五) 网格顶点动画(变形动画)

    源码已上传至github,并持续更新,链接请看底部.(本帖跟随github持续更新) 网格顶点动画(变形动画)是针对于物体的形状可以随意变换并记录为关键帧的动画,虽然模型的顶点数据还是应该交给GPU绘 ...

  3. Unity插件 - MeshEditor(三) 面片破碎&网格破碎

    网上的unity破碎插件很多,不过想着可以以自己的方式实现也不失为一种乐趣,虽然整体的表现性上显得有些差,但也并不会影响最终的效果,接下来我大致讲解一下破碎一个物体的流程,因为用到了协程计算碎片的原因 ...

  4. Unity插件 - MeshEditor(八)模型镜像特效

    将静态模型(带MeshFilter)按指定轴向.指定距离克隆一个镜像物体出来,思路很简单,将模型的顶点坐标按指定轴取反,并累加上设定的距离值,然后就完毕了!不过,因为镜像体的顶点镜像于之前模型的顶点, ...

  5. Unity插件 - MeshEditor(四) 模型融化特效

    现在的电影里有很多妖魔在死亡后身体逐渐融化并下滑最后化为一滩黑水的情景,本次出于兴趣大致研究了这个效果,原理是控制模型的顶点向一个方向坍塌,坍塌到最低点时再根据法线方向扩散形成黑水状. 第一步: 添加 ...

  6. Unity插件 - MeshEditor(七)变形动画骨骼及蒙皮

    MeshAnimation在物体的顶点比较多的情况下,悲剧是显而可见的,我一个一个的点选顶点肯定得累死,而且对于形态的调控不是很方便,应该说是很麻烦,要知道,骨骼动画因为有了骨骼以及蒙皮信息而有了灵魂 ...

  7. Unity插件 - MeshEditor(六) 变形动画状态机

    变形动画状态机--MeshAnimator,是针对MeshAnimation的状态管理器,有大量类似Unity animator的功能,但MeshAnimator操作会更加简便,更加直观,居家旅(zh ...

  8. 无插件的大模型浏览器Autodesk Viewer开发培训-武汉-2014年8月28日 9:00 – 12:00

    武汉附近的同学们有福了,这是全球第一次关于Autodesk viewer的教室培训. :) 你可能已经在各种场合听过或看过Autodesk最新推出的大模型浏览器,这是无需插件的浏览器模型,支持几十种数 ...

  9. Fixflow引擎解析(二)(模型) - BPMN2.0读写

    Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素 Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件 Fixflow引擎解析(二)(模型) - BPMN ...

随机推荐

  1. Java 反射 Method threw 'java.lang.InstantiationException' exception.

    查看这个InstantiationException:异常的api所说的是: 当应用程序试图使用 Class 类中的 newInstance 方法创建一个类的实例,而指定的类对象无法被实例化时,抛出该 ...

  2. JVM常见问题(二)

    6. GC收集器有哪些?它们的特点是? 常见的GC收集器如下图所示,连线代表可搭配使用: 1.Serial收集器(串行收集器) 用于新生代的单线程收集器,收集时需要暂停所有工作线程(Stop the ...

  3. Mysql根据一个基库生成其他库与其不同的库升级脚本

    今天研究了一下不同数据库之间如何做同步.弄了一个升级工具类,希望以后还能有所帮助. public class UpgradeDataBase { public static void main(Str ...

  4. 模仿天猫实战【SSM版】——项目起步

    前言:现在自己的学习似乎遇到了瓶颈,感觉学习了 SSM 之后有一些迷茫,不知道接下来该往哪里去努力了,我觉得这是个很不好的状态,为了度过这段时期,我准备把天猫模仿下来(给自己找点事做)之后开始去巩固 ...

  5. Linux下常用的配置

    本文主要给出的都是一些常用的Linux配置,系统版本是基于CentOs6.3,供自己复习和新人学习,不当之处还请指正. vmware tools安装 虚拟机--->安装vmware tools ...

  6. Linux设置文件读写权限

    设置文件夹的读写权限: sudo chmod -R 777 /data 权限码描述 sudo chmod 600 ××× (只有所有者有读和写的权限)sudo chmod 644 ××× (所有者有读 ...

  7. MongoDB Limit与Skip方法

    MongoDB Limit() 方法 如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的 ...

  8. 这交互炸了(四) :一分钟让你拥有微信拖拽透明返回PhotoView

    本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发 <交互炸了>或许是一系列高端特效教程, 文中会介绍一些比较炫酷的特效,以及实现的思路.特效实现本身也许不会有太大的难度 ...

  9. Dubbo框架应用之(二)--服务治理

    Dubbo服务治理全貌图 当我们现有ITOO平台系统的业务随着用户的逐渐增大,设计的业务越来越广,系统会异常的复杂,在大规模服务之前,我们可以采用的是RMI或Hessian等工具,暴露和引用远程服务, ...

  10. Swift类中如何创建一个对外只读对内可读写的属性

    很简单用private修饰符,后面跟限制关键字set: class Day{ private(set) var rawValue:Int = 0 func showRawValue(){ print( ...