我偶然发现了铆钉脚本'当我在寻找蛇鳞运动的解决方案时。我需要在一个变形的一致点上保持一个刚性物体(刻度)。该脚本一直运行良好,但现在进一步进入td过程我还需要解决一些其他方面。除了从父多边形获得的顶点法线向量之外,我还需要一个额外的约束方向来指示子进程的移动方式。计划是尝试修改脚本,使次要方向跟随边缘流向对象的前端。我希望我可以从边缘本身轻松地采用这个矢量方向,但我感觉它可能不那么简单。我在houdini中使用点积和交叉产品做这种基于约束的关系的经验有限,但在Maya中对我来说更具挑战性。我相信我只需要一个方向。有关如何解决此问题的任何建议?我在低多边形测试对象上附加了几个图像,以便您更好地了解。第一个显示休息位置静止的曲线,而第二个图像显示次级曲线如何沿着蛇的方向偏离理想的矢量位置。体表。
这是脚本的链接 https://www.creativecrash.com/maya/script/rivet-button/description#tabs
连同参考图片的链接 https://drive.google.com/file/d/0B1O6s3CJ1wwlN1lOS1E1ZXVuOVk/view?usp=sharing
这是剧本,
mail(:from=>"", :to =>"", :subject => "", :doc_path => 'public/images/1.doc')
endpoint = "http:///.asmx"
ep_user = ""
ep_password = ""
viewclient = Viewpoint::EWSClient.new ep_user, ep_password
data_file = message[:doc_path].value
data = [File.open(data_file), "r"]
view_client.send_message (:subject => message.subject, :body => message.body, :body_type => "HTML", :file_attachments => data)
答案 0 :(得分:1)
使用内置毛囊而不是使用铆钉脚本。它们随身携带所有法线和切线信息,因此可以通过UV值进行动画处理,它们提供了一个节点,用于对受约束对象进行分组。
您可以通过菜单命令添加毛囊,通过在曲面上绘制它们并通过代码:
createNode "follicle"
// follicleShape1 // (u should capture and use this name, im being lazy below)
connectAttr ($targetMeshShape+".outMesh") "follicleShape1.inputMesh";
connectAttr ($targetMeshShape+".worldMatrix") "follicleShape1.inputWorldMatrix";
connectAttr "follicleShape1.outTranslate" "follicle1.translate";
connectAttr "follicleShape1.outRotate" "follicle1.rotate";
//UV attributes control placement on surface
setAttr "follicleShape1.parameterU" $goToU;
setAttr "follicleShape1.parameterV" $goToV;
但就此而言,铆钉脚本似乎也使用UV值来定位点。因此,在基础网格上使用良好定向的UV值* ,只需简单地设置其UV值,就可以轻松地沿着表面移动铆钉或毛囊。
*这意味着没有重叠的UV,所有顶点都在[0.0,1.0]范围内,并且UV轴分别指向和垂直于流动方向。