XSI模拟各种布料

修改
鏉ユ簮: zhangbei 浏览 1588 日期 2012-11-03 0

本教程将演示如何使用的布料模拟在XSI 3.0 

介绍

SOFTIMAGE XSI已经得到了一个不好的名声位,它的布料模拟不是很好。但本教程将告诉你,你可以真正达到逼真的效果。我们将介绍各类布匹,窗帘,桌布,以更先进的设置,如衣服布。

XSI模拟各种布料开始

首先,将创建一个基本的网格,将在重力作用下,交互的基本对象-一个球体。首先,我们需要创建的布,这将是一个简单的网格平面。开始>原始多边形网格- >网格。随着电网仍处于选中状态,去模拟菜单(按4在键盘上),然后创建- >- >从选择。一个对话框弹出时,你可以忽略,现在,我们将在稍后介绍。下一步,我们要移动的布。由于布从来没有进入自己的(在现实世界中是),它通常是一些外力,风,重力,碰撞等, 我们将开始与重力的影响。>- >重力。选择你的网格/布上,然后修改- >环境- >使用武力和选择的重力图标(右键单击结束采摘)。如果你点击播放,你会看到布在重力作用下。下一步,我们将介绍的碰撞。- >原始多边形网格- >球。将球体下方的布。选择布和修改- >“环境” - >“设置障碍。

XSI模拟各种布料单击球体。现在布被设置碰撞球体。现在一个新的对话框弹出 此窗口显示参数的布球碰撞。在我们试图微调布,先播放动画和,布球碰撞是如何工作的。您可能需要让你的布模拟运行的时间更长,默认时间是100帧。要做到这一点,选择的布料,和选择和点击ClothOp,这将带来的布设置对话框。 在变化范围的结束帧号,所以布料模拟将持续较长时间。 现在再次播放动画,和你会看到布球体上的布将土地成球形形状变形。但是,你会发现,你看到的领域,通过布。 有许多不同的方式来尝试解决这个问题。一个是增加在网格中的多边形的数量和球体,所以模拟有更多的点来计算,是更准确的。另一种方法是增加每帧的迭代,这个数目确定了多少次的碰撞检查每帧。

XSI模拟各种布料所以,如果布经历球体,它会尝试并重新计算和球体的顶部移动布回。某些情况下,这些技术有时是很不错的,但需要更长的时间来计算。对于一个快速的结果,你可以改变一个参数,称为推长度。这控制的布和球体的表面之间的偏移量。因此,例如,作为布想球体,通过增加Push长度说0.2,现在布碰撞0.2个单位以上的球体。这导致布不经过领域。 正如我上面提到的,在你的衣服,你可以增加数量的多边形,这将使你的衣服动画更流畅,看起来更逼真。此动画显示了一个布悬垂在两个领域。 我已经调整了摩擦的设置,所以布不滑落如此之快,但是这可能是好的,如果你要模拟材料,如丝绸。 接下来,我将创建一个窗帘。这引入了新的技术,如风力和指甲(非常类似于重力)。在这里,我创建了一个基本的墙上有一个洞一个窗口,一个简单的网格窗帘的。有两个方法可以让钉在墙上的窗帘顶部。

XSI模拟各种布料一种方法是用指甲或使用群集的设置。首先,我们将覆盖钉技术。这是作为群集技术基本上是相同的,它们两个重叠真的。首先,选择网格/窗帘创建- >- >从选择。然后到脚在墙上,进入标签/点模式(按'T'),并选择最上面一排引脚连接到墙上的点,你想。创建- >- >本地布集群将适用于不同的布参数的顶行。然后,您可以选择美甲参数, 这意味着,这顶行不会移动,无论是什么力量被应用到它,但其余的布,因为它有它自己的独立的布料模拟它。要做到这一点同样的效果而不使用钉子,你可以选择所有的的布excpect顶行上的点,适用的布simualtion,这意味着大幕将像布,除了最上面一行将保持静止的,它有没有simualtion的应用到它。现在的窗帘在风中吹,我们要申请一个风力。> - >力风。风布中的应用是相同的,施加重力。布,然后选择修改- >“环境” - >使用武力和选择风图标。

XSI模拟各种布料如果动画风的力量,你可以得到的布拍打。动画显示了一个布在风中飘扬。 接下来,我们将着眼于创造更先进的布料模拟,如服装的字符。这是出现问题的时候开始蔓延到模拟(看我以前的单向工作-笑)。调整时所涉及的衣服,因为有很多要考虑的因素很多。有更大量的碰撞和更复杂的模型。例如,如果你创建了一件外套就一个人,是永远无法相交的模型和布大量的碰撞测试。此外,人类的武器可以将许多不同的方向围了很多,所以能够流在各个方向上的身体碰撞适当的布。 有一对夫妇的方法来创建一个字符一件衣服。多边形或NURBS曲面。我个人比较喜欢,因为他们是那么容易在XSI模型的多边形。另外,我喜欢在XSI的细分。您可以细分布料对象,它不会采取任何更长的时间来计算。用NURBS,您可以使用模拟布的拼接工具。

XSI模拟各种布料这可让您连接两个NURBS曲面在一起,他们会提出像一块布。这是特别有用的,如果你想加入一个套一个jacket.To开始,我们将创建一个基本的套在手臂上。这将显示如何布可以与动画对象(ARM)。首先,创建手臂的基本缸。- >原始多边形网格- >缸。我增加了细分了一下,只是为了使气缸内有一些更多的多边形,所以用布互动。我还搬了几更靠近气缸的中心的点,因为这将成为一个臂,它需要在中间弯曲。点越多,在中间-漂亮的弯曲。(但是,说这句话的,的布将覆盖它,所以你永远不会看到的-笑)。视频教程

XSI模拟各种布料接下来,创建一个基本的骨架臂缸和信封。动画工具栏- >骨骼>绘制三维链。在你的汽缸,液压缸中间作为一肘一个共同的中心位置,是。选择圆柱体,变形- >信封>设置信封。中东在资源管理器视图中选择的骨架。现在,如果你移动空,你的手臂弯曲。基本臂的设置,现在我们来建立的布套。我创建了一个基本的气缸,这是略大于的手臂,然后我删除了关闭气缸两端的多边形,所以这将是空洞的像一个真正的套。 下一步,添加布的SIM卡。我想保持固定到本体的套筒的结束-使套筒可以实际上没有脱落的臂。所以,我仅适用于世界各地的SIM卡布袖子上除终点。这样的布将工作-但始终保持固定的一端 转到模拟工具栏创建- >- >入选的。

XSI模拟各种布料您的套筒现在流动,但保持固定的根。现在添加的力量和碰撞。修改- >“环境” - >施加压力。选择比重图标。如果您现在播放动画,你会看到布落向下 为了使布交互的手臂-修改- >“环境” - >“设置障碍,选择手臂。来了一个新的对话框。设置障碍类型的实际形状,这将提供一个更为现实的互动。如果播放动画,你会看布秋天,停止当它击中手臂。正如在上面的第一实施例,也有一些方法来阻止臂通过布戳。如果你改变了Push长度为0.2,这将导致布的碰撞与的手臂提前了0.2个单位,停止通过的手臂打个招呼。 要使它成为一个更有趣的现在,我们将动画的手臂,看布正常工作。一个基本的动画的手臂弯曲的动画,然后播放。你会发现,布的手臂交互。你会发现,有很多的布料模拟的参数,你可以改变。进去一看,你是在一个简单的方法是使用预设选项卡。

XSI模拟各种布料在这里,你可以选择以前安装类型的布之间的范围。您也可以更改的布和手臂之间的摩擦。改变这可以使布幻灯片如丝,还是坚持到手臂。改变质量是一个非常有用的参数,这样可以使你的衣服看起来像一个沉重的一块地毯或在风中飘逸的丝绸光片。 现在,我们将创建一个字符的衣服,从一个简单的裙子,夹克。 下面的图片是布模拟的裙子,这是非常东部设置。它是相同于上述的例子(套筒)。的裙部是由从汽缸删除与它的上限。的顶部被限制到人类的腰部。重力作用和裙部是设置与人体碰撞。唯一真正的问题,这个模拟的裙子所需的方式移动。它不是过重和流量很好。这 适用于它的布料模拟动画显示的裙子。3d视频教程

现在我们来看一个字符一个完整的外衣。这就是事情开始出错,涉及大量的调整。但是,一旦你掌握了它,你可以得到一些好的结果。

XSI模拟各种布料首先,你将需要你的性格。根据他的形状/大小,你可以建立一个外套在他周围。请确保你的外套是空心的,这样的碰撞会工作。如果武器的上限等,碰撞将无法正常工作。 一旦你塑造你的外套,检查有没有重叠点。例如,身体不戳通过任何地方的大衣,这将导致错误的碰撞。在此设置中,我制约了顶部的大衣,脖子上,以防万一外套以往任何时候都滑下来,这样一来,他的外套应该总是呆在家里, 要做到这一点,我选择了最上面一行点左右领的大衣。我创建了一个聚类的中心。这给了我一个空的集群控制,我的脖子制约了空。所以,每当脖子上移动,顶部的大衣将随之而来。现在,为了得到外套遵循身体的其他部分,我们设置一个布料模拟。选择的大衣剩下的点(领)。

XSI模拟各种布料一旦重力作用,并身体建立一个collsion,上衣要移动的性格,因为他的动画。但是,有可能会是我们需要解决的一些问题。 首先,你会发现,身体可能会捅在一些地区的外衣。现在,你可以增加你的网格和反复多次,这可以解决这个问题,但会消耗你的CPU。最好的办法是在上面的例子中所讨论的,只是增加了Push长度。这应该解决冲突问题。 您可能会注意到,你的外套是非常有弹性的,也许反弹的地方。这是因为一些设置需要微调。首先,降低公差设置,这将增加衣服的准确性。我想要一个较重的大衣,目前这是太“flowy”,因此增加的重量可以帮助。但调整的主要参数是根据硬度-... -这些设置可以极大地影响你的衣服的外观。的抗剪因素,使布的四保持不变形,保持尽可能多尽可能到原来的形状。设置折弯系数高的,布皮革等行为是这件大衣的理想选择,较低的值创造一个更加绸缎/丝绸的外观。最后,增加拉伸值,防止布有弹性。较低的值允许的布变形,无阻力。有很多因素要考虑,但我已经涵盖了主要的,更重要的。下面的动画显示了一个快速测试的外衣变形的字符动画。有问题吗?E-mail给我在duncan_burch@hotmail.com,我会看,如果我能帮助!

 

评论

{{ username ? username.charAt(0).toUpperCase() : '?' }}
Ctrl+Enter 发布
{{ (c.username || c.author_name || '?').charAt(0).toUpperCase() }}
{{ c.username || c.author_name }} {{ Utils.formatDate(c.created_at) }}