已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2004年1月国开电大专科《办公室管理》期末纸质考试试题及答案
- 充电站物联网安全解决方案创新创业项目商业计划书
- 纪检监察业务知识考试题库及答案
- 2025年白山辅警协警招聘考试备考题库及答案详解(有一套)
- 2025年肇庆辅警招聘考试题库附答案详解(基础题)
- 2025年漯河辅警协警招聘考试备考题库附答案详解(达标题)
- 2025年深圳辅警招聘考试真题附答案详解(巩固)
- 2025年秦皇岛辅警招聘考试真题附答案详解(黄金题型)
- 2025年辽宁辅警招聘考试题库含答案详解(轻巧夺冠)
- 2025年遂宁辅警协警招聘考试备考题库及参考答案详解一套
- (2024版)联通社区智家营销经理能力认证参考试题库(含答案)
- 仿真绿植合同模板
- 赠与协议书模板(2篇)
- 煤矿安全风险分级管控与隐患排查治理双重预防机制建设指南
- 浙江省温州市2023-2024学年七年级上学期语文期中考试试卷(含答案)
- MAXHUB会议平板操作说明书
- 第1章机械运动章末提升核心素养课件人教版(2024)物理八年级上册
- 邮件分拣业务外包管理服务方案
- 2024年军考英语真题历年军考真题系列
- 旅游景区游客投诉处理流程
- 24春国家开放大学《教育研究方法#》作业1-4参考答案
评论
0/150
提交评论