如何在Maya中修改已经绑定后的模型的法线

news/2024/10/31 1:25:38/

前言:最近想把尼尔机械纪元的2B导入到UE中看看效果,可不知道是不是我解包的过程有问题,2B模型的裙子部分的发现有问题,而且裙子的模型还被拆分为了3个部分,直接软边是不管用的,而且已经绑定的模型就算修改了法线导出之后也没有效果,

本文分为两个部分,分别是翻译的一篇artstation上的文章和我自己的做法

一.如何在maya中给已经绑定的物体传递UV

文章出处:Transferring UVs AFTER rigging in Maya
第一段作者表示,他这篇文章也不是原创的,他在他的博客备份的主要原因是怕这个文章会消失,就像是他以前收藏的那些资源一样.并且他新添加了一些图片,他觉得一图胜千言.

然后作者讲解了为什么在绑定之后传递UV不起效果,原因就是你在绑定之后所做的操作在maya的节点堆栈中都会排在绑定节点的后面.等于并没有对原模型做出修改,不理解的话可以看下图.
在这里插入图片描述

可以看到,我们所做的操作都在绑定节点之后(说实话我也不知道为什么在绑定后的节点对mesh节点所做的操作在导出之后会不起作用)

那么该怎么做呢

作者说每个物体都有一个 shape orig节点,他代表了每一个模型在绑定之前原始的模型,我们可以在这个原始的模型上应用UV传递,就可以了

步骤

  • 选择你已经绑定好的模型,(在窗口中找到Hypergraph Hierarchy),然后在菜单中找到options|display|Shape Nodes和Hidden Nodes
    在这里插入图片描述
  • 你会看到一个隐藏的节点,它是你的原点节点,或者说这是你的模型在绑定前的样子

在这里插入图片描述

  • 选择那个原始的shape在Object Display 中找到并取消勾选Intermediate Object,然后为了方便选择,可以再选中绑定后的shape在Obejct Display中取消勾选Visibility,不然在视口中会显示两个模型
    在这里插入图片描述
  • 接着将UV传递给你的原始的模型,然后清除历史就可以了(这点,存疑我在实际操作中没有清除历史导出后也可以继承-至少法线ok)

二.如何处理法线

解决了如何修改绑定后模型属性的问题,接下来就该讨论如何修改法线了.

在这里插入图片描述
首要问题是,如何平滑两个物体间的法线,这里我想的是计算物体交界处点的法线取平均,实测下来效果还OK

# 定义获取顶点法线的函数
def getNormal(vertName):normTemp = cmds.polyNormalPerVertex(vertName, query=True, xyz=True)xAve = normTemp[0]yAve = normTemp[1] zAve = normTemp[2]    aveList = [xAve, yAve, zAve]return aveList# 简单的写一个归一化的函数
def normalize(vec):import mathlength = math.sqrt(vec[0]*vec[0]+vec[1]*vec[1]+vec[2]*vec[2])return(vec[0]/length,vec[1]/length,vec[2]/length)
selectPoints = cmds.ls(selection=True)
if len(selectPoints) == 2:normal_1 = getNormal(selectPoints[0])normal_2 = getNormal(selectPoints[1])normal = normalize([normal_1[0]+normal_2[0],normal_1[1]+normal_2[1],normal_1[2]+normal_2[2]]) #相加并归一化两个顶点的法线cmds.polyNormalPerVertex(selectPoints[0],xyz=(normal[0],normal[1],normal[2]))cmds.polyNormalPerVertex(selectPoints[1],xyz=(normal[0],normal[1],normal[2]))

接下来只需要一对一对的选择交接出的点,然后应用这个脚本即可,需要注意的是一定要应用在原始模型上面

在这里插入图片描述
在这里插入图片描述
可以看到在交界区的法线已经被平滑了.


http://www.ppmy.cn/news/275719.html

相关文章

【2018.10.10】通知

通知 最近要准备NOIP的初赛,没什么时间写博客,不好意思啊,短时间内都不会写博客了。 还有就是以后博客一般在周三,周四,周五以及周六发,平时不上课,请体谅。

我的读书清单

这个清单是我从大学以来读过的书以及简要的书评,最初是在豆瓣上写的书评,后来逐渐认同了读书对于自己各方面的好处,认认真真的读完一本好书,要比花同样时间去阅读网络上的碎知识或者鸡汤文章要有益的多。在这里先做一个整理&#…

UE4 射击游戏(游戏机制完善中)

Windows左方向键,视口贴到左边;Windows右方向键,视口贴到右边 一、视角切换:调整第一人称和第三人称的视角有两种方案, 1、双摄像机,通过使用SetActive来使能选定的相机 ​ ​ 问题是:这对第三人称动画的质量要求非常高 2、…

【基础知识整理】图的基本概念 邻接矩阵 邻接表

一、图概述 定义: 图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的; 其中,点通常被成为"顶点(vertex)“,而点与点之间的连线则被成为"边或弧”(edege)。 通常记为,G(V,E)。 图是一种重要的…

我认为ACT游戏开发必用的程序设计模式!!!

ACT游戏以它流畅的游玩体验、华丽的招式和炸裂的打击反馈被人所喜爱,那么在开发ACT游戏的时候如何做到这一点呢???这一篇博客就来说说我认为在开发ACT游戏过程中一定要用到的程序设计模式! 模式_1:状态模式…

为什么说“角色移动”看上去很简单,却需要极高的技术力与细节成本?

“角色移动”是大部分游戏的玩法基础。不过在游戏中,他看起来如此的简单自然以至于很容易被玩家所忽略掉。实际上,角色的移动涉及到动画、渲染、物理、同步等多项开发技术以及大量的美术工作。即使单从设计上讲,“角色移动”也经常会给开发者…

CSS学习笔记5CSS的三大特性与盒子模型

CSS的三大特性 CSS有三个非常重要的特性:层叠性、继承性、优先级。 层叠性 相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一种冲突的样式。层叠性主要是解决样式冲突的问题 层叠性原则: 样式冲突&…

图形 4.2 SSAO算法 屏幕空间环境光遮蔽

链接: SSAO算法 屏幕空间环境光遮蔽思维导图. SSAO算法 屏幕空间环境光遮蔽 SSAO介绍什么是AO SSAO原理详解SSAO介绍SSAO原理计算近似AO SSAO算法实现比较与分析拓展链接其他AO算法 SSAO介绍 什么是AO 链接: Unity Shader-Ambient Occlusion环境光遮蔽- puppet_master. 《尼…