




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山山讲堂 Maya建模教程之电话建模2009-11-17 16:30 作者:nathan 来源:eNet硅谷动力本是想通过这篇教程介绍另外一种建模方法鼎鼎大名的细分建模(Subdiv),但在录制过程中,由于惯性思维的影响,还是采用了多边形建模,不能不说是一个遗憾。为了弥补过失,我将在下一篇飞船建模的教程中与大家详细分享细分建模技术。 先来看一下最终的效果: 创建一个Cube,按照下图参数进行调整。 进入点级别,调整点的位置。 使用“Insert Edge Loop Tool”工具添加环线。 技巧:在使用Insert Edge Loop Tool工具的时候,为了一次性添加,我们可以打开改工具的设置选项,具体设置如下: 使用Extrude命令进行三次挤压,效果如下图所示。 添加环线,保留形状。 使用Extrude命令进行挤压。 添加环线,保留形状。 重复上面的方法,制作出下图所示部分。 使用Extrude挤压,并调整点的位置。 继续挤压。 使用“split polygon tool“添加线,保留形状。 挤压面,记住一定要关闭“keep faces together”选项。 添加环线,保留形状。 细分。 下面我们来制作话筒。 创建Cube,具体参数如下图所示。 F8进入点级别,调整点的位置。 添加环线,保留形状。 使用Extrude命令进行挤压。 重复上面的步骤,挤压出话筒部分。 细分。 制作电话线。这一部分比较难,但也比较简单。为什么这样说呢?如果你曾读过我前面的螺旋曲线教程的话,这里你只要写一个简单的MEL语言,就可实现我们想要的效果,如下图所示。 然后用户使用Surfaces下的Extrude命令就可实现电话线的制作。 今天换一个制作方法,我给大家提供专门制作电话线的脚本,这样更加方便快捷。 global proc phoneCord1( string $curv, float $numLoops ) int $numCvs, $i; float $p, $min, $max, $angle, $uoff, $voff; string $exp_str, $crv, $p_on_c; int $cvsPerLoop = 4; / We base the number of cvs on $numCvs = (int) ($numLoops+.5) * $cvsPerLoop; $crv = curve( -d, 3, -p, 0, 0, 0, -k, 0, -k, 0, -k, 0 ); $min = getAttr( $curv + .min ); $max = getAttr( $curv + .max ); / create a curve with the required number of cvs for( $i = 1; $i = $numCvs; $i+ ) curve -a -p (float)$i) 0 0 $crv ; / Add a loopOffset attribute to the spiral curve addAttr -sn loff -ln loopOffset -dv 1.0 -min 0 -max 10 $crv; setAttr -keyable on ($crv + .loopOffset); for( $i = 0; $i = $numCvs; $i+ ) $p = (float)$i/$numCvs; $angle = $p * $numLoops * 6.28; $uoff = -sin( $angle ); $voff = cos( $angle ); / we set the offset to zero for the start and end cvs if( $i = 0 $i = $numCvs ) $uoff = 0; $voff = 0; $p = $min + ($max -$min) * $p; / create a pointOnCurve node on the source curve $p_on_c = pointOnCurve( -ch, 1, -parameter, $p, $curv ); / Create an expression to position the spiral / cvs relative to the source curve using the / point, normal and tangent from the pointOnCurve node / A cross product is performed to give a vector perpendicular / to the normal and tangent. The 2D rotation is then mapped to / this vector and the normal. expression -s ($u = + $uoff + * + $crv + .loff;n + $v = + $voff + * + $crv + .loff;n + $nx = + $p_on_c + .nnx;n + $ny = + $p_on_c + .nny;n + $nz = + $p_on_c + .nnz;n + $tx = + $p_on_c + .ntx;n + $ty = + $p_on_c + .nty;n + $tz = + $p_on_c + .ntz;n + $crv + .cp + $i + .xv = + $p_on_c + .px + ($ny * $tz - $ty * $nz) * $u + $nx * $v;n + $crv + .cp + $i + .yv = + $p_on_c + .py + ($tx * $nz - $nx * $tz) * $u + $ny * $v;n + $crv + .cp + $i + .zv = + $p_on_c + .pz + ($nx * $ty - $tx * $ny) * $u + $nz * $v;n); global proc xyphoneCord() if ( window -exists phoneCord ) deleteUI xyphoneCord; window -maximizeButton false -resizeToFitChildren true -title phoneCord -iconName phoneCord xyphoneCord; columnLayout -columnAttach both 5 -rowSpacing 2 -columnWidth 210; intFieldGrp -label number -v1 50 -cal 1 left phoneCordnumber; button -label select a curve,make cord -c xymakecord; showWindow xyphoneCord; global proc xymakecord() int $cordnum = intFieldGrp -q -v1 phoneCordnumber; string $curveselect; $curveselect=ls -sl; phoneCord1 $curveselect0 $cordnum; xyQuickTube; createAndAssignShader blinn ; proc string tube( string $cs ) / (curve shape) string $t; if (objExists($cs) & (nodeType($cs)=nurbsCurve) string $c=createNode makeNurbCircle -n baseCircle1; string $s=createNode subCurve -n profileRange1; string $e=createNode extrude; string $r=createNode nurbsSurface -n tube1; setAttr -e -k 0 ($c+.normal); setAttr -e -k 0 ($c+.normalX); setAttr -e -k 0 ($c+.normalY); setAttr -e -k 0 ($c+.normalZ); setAttr -e -k 0 ($c+.centerZ); setAttr ($c+.radius) 0.1; setAttr ($s+.minValue) 0.0; setAttr ($s+.maxValue) 1.0; setAttr ($s+.relative) 1; setAttr ($e+.extrudeType) 2; setAttr ($e+.useComponentPivot) 1; setAttr ($e+.useProfileNormal) 1; setAttr ($e+.fixedPath) 1; setAttr -e -k 0 ($e+.directionX); setAttr -e -k 0 ($e+.directionY); setAttr -e -k 0 ($e+.directionZ); setAttr -e -k 0 ($e+.useComponentPivot); setAttr -e -k 0 ($e+.useProfileNormal); setAttr -e -k 0 ($e+.fixedPath); setAttr -e -k 0 ($e+.rotation); setAttr -e -k 0 ($e+.scale); setAttr -e -k 0 ($e+.length); connectAttr ($c+.outputCurve) ($e+.profile); connectAttr ($cs+.worldSpace) ($s+.inputCurve); connectAttr ($s+.outputCurve) ($e+.path); connectAttr ($e+.outputSurface) ($r+.create); $t=listRelatives -pa -p $r; return($t0); /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州中医药大学第一附属医院高层次人才引才13人考前自测高频考点模拟试题及答案详解(名校卷)
- 房地产市场投资风险分析
- 2025年三环集团校园招聘考前自测高频考点模拟试题及答案详解(名校卷)
- 2025贵州装备制造职业学院引进高层次人才(博士)、高技能人才模拟试卷及答案详解1套
- 童话世界里的奇遇记作文(12篇)
- 2025年青岛职业技术学院公开招聘工作人员(第二批)(33人)考前自测高频考点模拟试题完整参考答案详解
- 2025甘肃武威市古浪县八步沙林场招聘财会、水利专业人员3人考前自测高频考点模拟试题附答案详解(典型题)
- 2025年安庆职业技术学院招聘33人考前自测高频考点模拟试题及答案详解(新)
- 2025湖北恩施州宣恩狮子关旅游开发有限公司招聘7人模拟试卷附答案详解
- 2025河南中医药大学人事代理人员招聘13人模拟试卷及答案详解(典优)
- 行政事业单位固定资产培训
- T-SXPFS 0005-2024 山西省转型贷款企业方案编制手册(试行)
- 百果园加盟合同协议书
- 2025届上海市虹口区初三一模英语试卷(含答案和音频)
- 二年级下册查字典练习题
- X线检查技术各部位X线摄影检查技术上肢讲解
- 微电网经济性评估模型-洞察分析
- 半自动压痕模切机器安全操作规程
- 《山东省既有建筑改造工程消防设计审查验收技术指南》
- 《产后康复与保健》课件
- 大货车驾驶员安全教育
评论
0/150
提交评论