2008-12-29

转贴——馒头的新作


好友馒头的新作,机械狂人一个,很牛很牛的哦,哈哈 大笑 http://vimeo.com/2651874  清晰版

2008-12-05

《花足球》预告片


年初做的一个项目,放出来晒晒,主角是我可爱的外甥。这小家伙拍片子的时候不知道有多淘气 发火 ,要不是他妈在,没人能管得了他 尴尬 ,这个片子倾注了我不少精力,我的家人也是全力配合,这小子的一身行头,从帽子到裤子,全是为了片子现买的,花了500多大洋 泪奔 。
 爽 片子前期是文字脚本,台词,手绘分镜头,到找场地,拍摄,中期就是把拍摄的素材导入电脑,进行处理,该抠像的抠像,改镜头跟踪的跟踪。
 酷 然后就是三维的部分了,按照前期设计好的足球形象(也是本人设计 害羞 ),三维建模,材质,绑定,动画,灯光,渲染,然后就是跟实际拍摄的镜头进行匹配合成。
 强 最后就是把各个做好的镜头剪辑成片,加音乐、转场、字幕什么的了,(足球的声音好听吧,是我老婆配地 偷笑 )这其中的工作量可想而知,以至于后来好友好几个镜头没有做完 发呆 。
 赞 说了这么多,上面这些东西全部都是我自己一个人完成,有些辛苦,但也蛮有意思,下面就是成片,希望大家喜欢,片子后面是制作花絮。放出来算是第二个年终总结,嘿嘿,点击 football preview 可以直接去网站看清晰的 得意 

这里下载

2008-12-03

令人惊叹的动画

看看这段动画,这才是牛人,稍后有时间我会把这动画的制作流程给翻译过来,让大家了解动画是怎样炼成的,没有安全风险,内容放心看吧大笑sohu这破博客视频也弄成不安全的东西 难过

2008-12-02

maya脚本共享 - transformToZero

下面这个是我写的一个小脚本,可以为选择的物体建立一个组,然后使组对齐物体,也就是让组的位置和旋转跟物体一直,再把物体放到组下面,这样就可以使物体的变换属性为0了,而且还保持当然的位置不变。使用方法,把下面这段代码拷贝到一个文本文件里面,然后保存 成 kz_transformToZero.mel 文件,放到 maya\2008\scripts\ 里面,启动maya即可,为完待续.............



Pixar工作环境

Pixar工作环境
pixar的环境,看看吧,动画人的圣地,点击进入相册

maya mel script - transformToZero

preserve object's transform to zero.




2008-12-01

Pixar的动画总监和指导们教你怎样做动画的Demo

Pixar的动画指导和动画总监们建议你在动画的Demo里应该放什么他们爱看。

And in an effort to hit you with even more information, below are some quotes from our Directing and Supervising Animators about what they like to see in reels:

我宁可看15秒的美妙动画,也不想看3分钟那么长的没法看的电影。如果样样不行那三分钟会非常的难熬。

"I'd rather see 15 seconds of amazing animation than 3 looooooooooong minutes of an unwatchable film. Those 3 minutes can feel like an eternity if everything isn't perfect."

你想申请动画方面职位?好——展示好的动画给我!给我看表演。展示思考。告诉我角色是活的。我不在乎灯光,模型,材质,粒子特效,或者你多聪明。给我些我没看过的东西让我折服。一个拥有独特个性的原创角色!

"You’re applying for Animation? Well--show me good animation! Show me acting. Show me thinking. Show me a character that is alive. I don't care about lighting, modeling, shading, particle effects, or how clever you are. Blow me away with something I've never seen. An original character with a distinct personality!"

你画画吗?你是个好设计师吗?很好!确保你在电脑动画中也展示这些出来!

"Do you draw? Are you a good designer? That's great! Make sure it's in your computer animation as well!"

动画。电脑。手绘。定格。玻璃下沙画。如果你的Reel超级棒,我们会要你的。不管什么介质。我们不要看只有电脑起作用的那点东西。

"Animation. Computer. Drawn. Stop Motion. Sand under glass. If your reel kicks arse, we may hire you regardless of the medium. We don't want to see only computer stuff."

保持你的Reel简短凝练。我们在Reel中看很多东西,所以如果奇怪的,老套的,不太好的东西在开始,我们可能会在你的好动画出现前退出带子!我们不管你从哪来——我们需要知道你现在有多棒。最好的放最前面。

"Keep your reel short n' sweet. We watch a lot of these things in reel review so if there's weird, older, not-so-good stuff at the beginning we might pull the tape out before your great stuff! We don't need to see where you came from--we need to know how good you are right now. Edit down to your best stuff."

传统动画师受现实生活的启发,还有所有他们周围的电影。你也一样。我们不要动画书呆子。我们要那些从他们自身的经历中,从真人影片,还有当然从动画泰斗们那里汲取养料做动画的人!

" The classic animators were inspired by real life and all of the other films around them. And so are we. We're not looking to hire Animation Nerds. We want people who draw from their own other experiences, from live action, and yes, from the Old Masters!"


转载自: Victor Luo's Animation Space

2008-11-30

两年的绑定学习过程日志


这个是这两年来学绑定的日志,现在发出来算是个年终总结吧。日志是从去年10月份开始的,不过学习绑定早就开始了,只不过开始没有这个习惯呢。目的很明确,自己记性不好,有些原来解决过的问题后以后再遇到就忘了,写了这个就OK了,嘿嘿。回头看看也比较有成就感,每走一步的记录在案,看看自己的学习进程,从最开始不知道绑定动画应该是分开的专人负责(其实我原本是想学动画地 馋 ),到现在写自动绑定系统、表情系统,速度非常慢,进步也很慢,困难无奇数,但从来没动摇,市场不好我等,工资不高我认,我只相信实力,我用实力说话,或许我现在的能力还不够高,或许我的经验还不够多,只要坚持就有希望,只要不放弃就有机会,继续蛰伏,蓄势待发。我此生注定为动画而生,此生注定为动画而狂,不管前面是康庄大道还是荆棘密布,我要一如既往的继续走我的动画梦之路,谱写我的动画人生!

OOO*** 要先做水平的骨骼然后直接添加ik,才能保证添加ik的时候骨骼不旋转,然后再调整骨骼的位置和旋转

2007.10.3
可開關的拉伸彈性手臂ik完成
用两个condition和一个multiply节点完成对骨骼的缩放控制
??? IK/FK切換有問題,不能跟隨ik進行延長
@@@ 需要在drv的x scale上面添加condition控制他的縮放屬性,跟隨ik的時候由ik控制,跟隨fk的時候由fk控制縮放
jEdit調試好了,嘿嘿
2007.10.4
@@@ 右側手臂控制器可以實現跟骨胳一樣的對稱旋轉,身體其它部分的控制器都需要重新做,右腳ik control
@@@ Arm's ik/fk switch and stretchy are finish.
@@@ Arm ik/fk mel switch finish,互相隱藏其他類型的控制器
2007.10.5
@@@ make spine ribbon skeleton
2007.10.6
@@@ finish ik fk spine. first add parent constrain, and then createNode md, make new group x and z axis is negative
2007.10.7
@@@ 優化了mySelectMM.mel,只是用一個快捷鍵就可以完成兩個MM,使用鼠標左右鍵來切換同一個物體的不同MM
2007.10.9
OOO make foot skeleton
OOO drv scaleX follow ik/fk
2007.10.10
OOO inverse foot skeleton
OOO start make leg ik/fk switch and stretchy
2007.10.11
===========================
*** Mirror Control:
1) 複製控制器的所在組,然後繼續成組,把新組的X軸設置為-1
2) Unparent new group,here original group scale Z is -1, and then Freeze it, change to positive 1.
3) X axis rotate 原来的值 + 180 degree,Y axis is negative of original.
4) and then adjust curve control CVs,relative scale x = -1 y = -1.
===========================
OOO set up right leg drv's bone scale follow ik or fk.
OOO finish leg ribbon setup
@@@ 在設置腳部旋轉的時候,要跟隨fk/ik旋轉,複製兩個inverseFoot_con
成爲fk/ik控制器的子物體,用這兩個骨骼來orient inverseFoot_con
OOO hands and foots fk/ik orient finish
SSS setup foot control.
2007.10.13
??? 反轉腳于腳部的ik控制器有衝突
@@@ 腳部bone全部完成,並完成foot 與ik/fk變換跟隨

2007.10.14
@@@ 開始設置ik/fk自動捕捉匹配
OOO objExists 可以判斷場景中是否存在某個物體的名稱
2007.10.15
OOO 解決ik switch to fk問題 使用一個locator成爲l_arm01_fk的子物體,然後
l_armPoleVec01_ctl捕捉到上面就可以了
2007.10.16
@@@ 繼續完善fk/ik auto snap mel
OOO 基本完成L arm fk/ik auto snap 還差ik scale有點問題
??? iK拉長以後,再切換回fk還有點問題
OOO 全部完成左右手臂的 arm fk/ik auto snap 歐也!!!
2007.10.17
OOO 繼續完成其他部位的 ik/fk auto snap
2007.10.18
OOO 右侧手臂骨骼的 transformX 為負數, fk to ik mode 要注意,把長度數值變爲負數
OOO 左右手臂的fk/ik auto snap全部完成 歐也!
OOo 右臂drv skeleton ScaleX Ik mode 要跟每段的fk/ik骨骼相匹配
2007.10.19
??? they are not orient match of foot ik control and fk control
*** Leg drv skeleton 每一個scaleX都要用單獨的cnd運算連接
OOO 完成左腿的ik/fk auto snap

2007.10.20
OOO 全部完成四肢的 ik/fk auto snap操作,帶縮放可控制的 :)
*** 做雙關節骨骼兩個要素,才能保證ik變化時候2和3的角度一致
(1) 1根3段的骨骼長度要一致
(2) 2根3段骨骼默認的Joint Orient要一致
(感謝manitou的靈感)
2007.10.21
@@@ 開始製作腳部控制器
2007.10.22
OOO 修改腳設計,把反轉腳改稱層級控制,簡化腳部骨骼,用CSik來控制骨骼
2007.10.23
??? 發現了一條骨骼鏈的ik fk seamless switch 測試一下
2007.10.24
@@@ 重新製作limb骨骼系統,使用單獨一套骨骼,重新優化mel,繼續使用雙關節骨骼
按照雙關節要素來做
*** 夢工場那人的mel使用了下面這種命名方式,可以使用IkFk_switch( "giant01", "_l_", "arm" );這種調用方式,場景中的任意角色都可以使用通一段mel來實現ikfk_switch
global proc IkFk_switch( string $nameSpace, string $side, string $limb )
而不用不同的角色使用不同的mel,而且還大大的簡化了mel數量,牛逼阿
不愧是greamwork的

2007.10.25
OOo 完成左臂的新獨立骨骼ik/fk轉換
??? 左臂還有問題,切換到fk的時候,ik控制器位置不變,身體移動,長度發生變化,影響骨骼長度,需要在切換fk的時候就把骨骼的長度修改,縮放值恢復到1,然後關閉縮放功能即可
OOO 左右臂的ikfk切换全部完成,注意控制其和骨骼的Rotate Order is xzy, not xyz
2007.10.26
OOO 完成左右手的跟隨設置,復制兩個手部根部con骨骼,分別命名為ori,然后設置orient約束到手部,并且指定給ik fk子物體
@@@ start modify leg skeleton
OOo left leg finish
OOO 四肢的新的独立骨骼的ik/fk切换完成,同一段mel,實現左右自動切換
2007.11.2
arclen -ch 1 這個節點返回曲線的長度值
pow 2 6;的意思是2的6次冪 (乘方,冪power)
sqrt 是平方根 square root
*** 做stretchy ik 用expression 比節點連接要方便許多***不愧是牛人
1) Stretchy the spine chain
2) Twisting the spine chain
4) Enhancing the Stretch
2007.11.3
OOO frameCache的用法:
stream給定一個動畫曲線,然后通過vary time來返回一個數值。
for example, stream是一段1-6幀的弧形曲線,當vary time為1的時候,返回就是曲線第一幀的數值,當vary time為3的時候,返回的就是曲線在第三幀時候的數值,以此類推,可以通過動畫曲線來控制一個幾個物體屬性的變化值。又弄明白一個節點
2007.11.4
OOO 按住ctrl鍵可以在outliner里面添加ik

2007.11.8
2007.11.9
@@@ 繼續制作右腳rigging
優化mel,規范制作流程,命令規則,把制作量減小到最少,代碼盡量能夠少修改,重復使用
OOO 右腳rigging完成,使用層級控制方法
沒有必要保持transform為0的物體就不用加group
2007.11.11
*** ribbon原始場景有嚴重重名,所有物體包括組都不要重名,否則experssion會有問題
2007.11.12
OOO orient 各骨骼鏈條
2007.11.13
@@@ 繼續orient bone chain
OOO 設置fk根部控制器Follow
*** 設置關節鏈跟隨的時候,把復制的兩個組的屬性全部 hide and lock,然后再進行約束,和parent
OOO 四肢 Follow設置完成
2007.11.14
OOO head ik/fk ok
OOO head fk/ik switch finish(include mel)
*** mel里面設置約束的時候,需要先設置關鍵幀再刪除約束,這樣位置才不會有變化
OOo 基本完成骨骼設置
@@@ 開始skin
??? 新問題,膝關節大腿部骨骼有反轉現象
OOO 把大腿下端的segRibbon方向約束到leg01_drv上,使其方向與上面一致
2007.11.17
@@@ 開始制作character Selection GUI (感謝夢工廠的牛人)
OOO Giant01 GUI v0.1界面完成
@@@ GUI 0.2 鏈接代碼生成 內部命名規范化
2007.11.18
OOO \为mel的转义符(escape character),在后面可以添加一些特殊的符號,如"
2007.11.19
OOO 腿部反轉問題解決,修改頭部控制器歸零,然后完成右手控制器,開始skin

*** sdk = set driven key
2007.11.26
??? 大問題啊,切換ik/fk做動畫的時候,互相的動作不能顯示,調ik的時候,fk的動畫就沒有了,fk的時候ik的動畫也沒有了,弄了一大天,弄出來一個垃圾rigging,呵呵
2007.11.29
@@@ 開始解決骨骼問題,關鍵幀和ik手臂旋轉問題
*** mel里刪除臨時約束的時候要先key幀,然后再刪除,不然控制器會跳回上一個關鍵幀的位置
找到問題了,物體的visibility屬性也要打關鍵幀,然后kz_ikFkSwitch里面,armIk01_con的orient約束沒有setKey,愚蠢的錯誤
OOO OK,mel問題解決了
??? finger bone scale is not assign
OOO GUI里面加了Head IK/FK Switch控制v0.23 :)
2007.11.30
OOO GUI的mel基本上調節完畢了(還應該改成四根手指和五根手指可調的效果,以后再弄)
OOO clavicle_con用移動方式來控制 clavicle bone旋轉,更直觀
2007.12.1
OOO 修改GUI mel,設置了Reset Selection效果,很實用,人家設計的牛逼啊
2007.12.2
OOO Create autoClavicle feature.
*** Create autoClavicle attribute on shoulder control.
OOO MirrorBlendShape update mel
2007.12.3
OOO 優化了GUI,設置了四根手指的界面
OOO 手指的骨骼上級再添加一個joint, 就可以作為驅動幀來使用了,不用在制作額外的控制器
擴展名用 _sdk means set driven key
*** zero group must clear attributes to preserve position and rotate state.
OOO all button 的作用是用來選擇所有控制器然后歸零的
2007.12.8
OOO 弄好了卡通眼球材質
2007.12.10
_arm ribbon rotate must set rotate decay,跟随arm01_drv骨骼就可以,像前臂一样
2007.12.15
OOO enum控制兩個約束的開關更方便,blendcolor來控制三套骨骼比約束更方便
2007.12.16
OOO hide object visibility attribute will be hide all child objects, but hide object shape visibility attribute to only hide himself.
OOO it is very cool that use expression to control objects visibility.
OOO fk/ik切換,只要把切換屬性設置關鍵幀就好,其他fk/ik控制器顯示屬性不用打關鍵幀
OOO 手指不用特殊的控制器,把selection handle打開就好了,有干凈有方便
2007.12.20
*** emnu屬性,fk始終為零,也就是第一個屬性,ik為1
2007.12.23
@@@ hand setup
2008.1.1
@@@ 第二次重新rig,用新方法做fk/ik,重寫mel
2008.1.2
*** 制作好骨骼以后一定要調整 local rotation axis,使其與上級控制器一致
2008.1.4
OOO 修改了segRibbon模板,可以squash stretch,globalScale也沒問題了
2008.1.5
OOO 模型又改了,手部修改一下
2008.1.8
OOO 手部rig完成
??? 發現segRibbon的旋轉有問題,超過90度上部關節后兩個jnt會有反轉問題
XXX 使segRibbon里面的nurbs Surface法線朝向骨骼的旋轉方向即可解決,旋轉根部組即可
2008.1.9
OOO 優化了segRibbon模板,解決了旋轉的時候反轉問題,為segPos01_geo制作四個cluster
然后兩個兩個分組,在重新給他們約束,用parent約束,但是要只選擇幾個旋轉軸可以達到
理想的過度旋轉效果
2008.1.10
@@@ 應該做l_leg 方向約束了
2008.3.1
*** min为最小值返回命令,返回后面给定的两个数值中最小的数值;
2008.3.2
*** linstep(0, 10, 5) // Result: 0.5 //
linstep 1 3 2.5; // Result: 0.75 //
linstep返回一个浮点数值 =(第三变量 - 第一变量)/(第二变量 - 第一变量)
第一个变量为最小值,第二个变量为最大值,如果第三个变量小于第一个变量,则返回0,如果第三个变量大于第二个变量则返回1.
l_ball_loc.rotateX = (linstep(0,$toeLift,$roll)) * (1-(linstep( $toeLift,$toeStraight,$roll))) * $roll;
这行可以让ball关节的度数这样变化,随着roll的在0到45的时候,ball也从0到45,也就做到了脚跟抬起脚掌不动
在roll从45到90的时候,ball会从45返回到0,也就做到了向前走步的时候,脚掌抬起,但脚变成了直的了
@@@ 腿部的绑定分为fk、ik驱动drv骨骼,
ik由noFlip和poleVector互相驱动,noFlip也是RP Solver,只不过把vector控制器放到了旁边,这样就能实现环绕无翻转了,然后通过knee spin属性来控制膝盖的方向。
pv骨骼就是正常的RP Solver来控制,添加一个Pole Vector控制器来控制膝盖方向。
这种方法更加灵活,提供了多样的控制方式,动画师可以根据自己的喜好进行选择;牛人,怎么想出来的呢,佩服啊
2008.3.4
OOO 解决blendshape in-between 模型问题,使用animToBlend脚本命令直接产生,把目标删除就好了
2008.3.27
hand controls name:
curl thumb_curl scrunch thumb_scrunch relax cup spread mid_spread thumb_spread twist lean
finger controls
curl scrunch spread twist lean bend_1 bend_2 bend_3 bend_4 length
thumb controls
curl scrunch spread orbit twist bend_1 bend_2 bend_3 length
2008.3.29
OOO 足球形象二次修改,比较满意,继续rig四肢
2008.3.30
@@@ start football rig leg
2008.3.31
use low res model hen split segment.
2008.4.28
l_arm01_drv and l_arm02_drv的scale也要跟fk和ik_drv blend上,这样在fk 切换到ik的时候才能匹配长度
在l_armIk01_drv和02_drv上要加上length,默认长度的时候等于1,以此倍增。
2008.4.29
fk ik切换调试完成,fk拉伸,ik拉伸相互切换,之后reset都没有问题了
###开始做 switching spaces
2008.5.3
Char GUI优化基本完毕,fk/ik switch mel分离出来了 v0.91a
添加一些新功能:
只有选择了控制器才能允许弹出界面,不选择物体的话会出现提示按钮。
优化了mel里面的命名方式,全部以变量的名称进行命名,方便修改。
优化resetSelection,不会出现找不到物体的错误提示了
添加了手部 r01AllBttn l01AllBttn 按钮,可以选择全部三个手指的后三节骨骼
手部只做一个控制器就好,不用添加太多的手指形状控制,对手指控制用控制器倒不太方便,可以后面用poseLib来做

2008.5.4
Character GUI v0.91a
Features
01 根据选择不同角色的控制器来确定角色名称,里面的各项功能也都会针对相应的角色
conform character name according as selected control
02 低分辨率和高分辨率模型切换显示
03 镜像选择控制器
04 恢复选择的控制器到默认数值状态
05 可控制身体各部分的显示状态(如头、身体、左臂。。。)
06 可在面板直接选择角色各个部位的控制器
07 Fk手臂的方向无缝转换跟随
08 手臂和腿部Ik的方向位置无缝转换跟随
09 可拉伸的四肢Fk Ik.
10 手臂和腿部的Fk Ik 无缝转换,并且可以匹配各种模式下的不同的长度
11 各个手指每个方向快速选择(如食指的三个关节,或者食指中指小拇指的第一个关节)

2008.5.6
写了kz_createIkLenMdn.mel, 可以直接根据选择的节点来添加Ik骨骼的length参数和IkLen_mdn节点
2008.5.7
下午左臂完成绑定,比较顺利了
2008.5.8
??? ribbon出现新问题,global scale有问题了
OOO 在expression里面修改下面这行就可以,把golbalScale连接到##01_all_ctl上面就行了
$scale = segRibbon2008_seg_curveInfo.normalizedScale/giant01_all_con.golbalScale
修改了ribbon模板,在拉长的时候正常收缩,保持体积,在弯曲的时候不进行缩放了
优化了gui mel,在切换fk follow的时候在反馈行可以显示出跟随的不同部位,比较满意 :)
2008.5.14
优化了gui mel的reset功能
腿部的rig流程制作完成,
2008.5.15
镜像流程制作完成。
应该在镜像物体之后再清理场景,锁定和隐藏控制器属性,要不然不能镜像骨骼
2008.5.16
*** 在镜像完成以后,再统一设置控制器的可见性。
Fk腿部也可以暂不设置跟随
2008.5.17
2008.10.18
前些天写了面部表情建立系统,可以复制头部需要的表情目标,建立blendshape,建立表情控制器面板,链接控制器到blendshape。
眼皮跟随的上下效果不用单独制作blendshape目标,使用闭眼的目标即可,在控制器操作上需要特殊设置一下,控制眼球的控制器也来调节闭眼的blendshape目标
2008.10.22
优化了表情系统,现在可以随便的添加bs中间过度目标,全部可以自动加到bs里面了1.0诞生了,哈

下面是自动绑定系统的一些更新日志,直接写道mel里面了 :)
Ver 0.1 Update: Nov 12, 2008
可以建立左臂骨骼,fk ik链接完成,并自动建立设置组,显示控制组
Ver 0.2 Update: Nov 14, 2008
建立简单界面
Ver 0.3 Update: Nov 15, 2008
整合表情系统,建立界面基础分类功能
Ver 0.5 Update: Nov 18, 2008
rig leg and foot
Ver 0.51 Update: Nov 19, 2008
left foot rig finished.
Ver 0.52 Update: Nov 23, 2008
symmetrize function finished, hand guide bone.
Ver 0.53 Update: Nov 26, 2008
rigging fingers
Ver 0.54 Update: Nov 28, 2008
rigging torso

2008-11-26

人体模型布线图

http://picasaweb.google.com/animator.k/FUoNFL#

这几天弄了个google的网络相册,挺好玩,上面这个是我搜集的模型布线图,有兴趣的朋友去看看吧

2008-11-24

動畫製作流程(pipeline)就像膠水

對於一個動畫製作團隊(Animation Studio)來說,製作流程(pipeline)的重要性,很難簡單言喻,或傳達出來。只能說,大家都在說 pipeline 很重要,不管是非常有經驗的主管級人物(supervisor, manager, ...),或是在下頭苦幹實幹的作業人員(artist, TD, RD, production assistant, ...),都會一致同意 pipeline 真的很重要這個說法。但究竟它有多重要,加上又聽說它是跟行政管理、軟體工作使用方式與規則、電腦圖學相關背景知識、程式技術…等,你問每個參與製作的人,大家都有自己的一套說法。在這邊,我想分享一下,從一位從事程式設計與問題排除的 TD(Technical Director)來看,pipeline 可以怎麼解釋。

Pipeline to a 3D/CG production is like glues everywhere between different softwares, departments and people.

對一個 3D/CG 專案來說,在不同的軟體之間、部門之間,甚或人之間,隨處可見到製作流程(pipeline)的影子,它就像膠水一樣,把這些不同的東西緊緊黏在一塊兒。


(上圖摘錄自 accad( the Advanced Computing Center for the Arts and Design)的 Animation Production 這門課。)

做 3d 模型的部門叫建模( modeling),畫材質(texture)與拉 UV 的部門叫材質(texturing)。當一個 3d 模型要從 modeling 進 texturing 時,需要一些程式或工具,用來檢驗這個模型的好與壞。檢驗的內容可以是:

  • 它是不是  2-manifold。
  • 模型裏頭的每個面的面數是否都少於或等於 4,或是沒有凹多邊型的存在。
  • 法向量是否有反了的情況發生。
  • 模型的佈線是否均勻,而且有做上應有的倒角(bevel)。
  • 是否有 T-junction 的點存在。

做好這樣的檢查,才可以保證日後的部門在使用這個模型時,不會發生問題,導致退貨,尤其在專案進行到後頭時,退貨的代價就會愈來愈高,像是可能導致有很多卡都要拿出來修正,或是要投入大量的技術人員…等。其中,模型的「好壞」,大大地決定了日後打燈算圖的品質

做動畫,安排角色表演的是動畫部門(animation),接手開始打燈光,營造氣氛的是燈光部門(lighting)。當一卡,從 animation 進入 lighting 部門時,可能會發生如下的一些問題:

  • 燈光師拿到的卡,一開起來,有些東西走位掉了,或是燈光師自己不小心動到,於是和動畫師調好的樣子不一樣。
  • 動畫師工作時,用的是面數比較少的角色模型,而燈光師需要的是高精細度的模型。
  • 動畫師不小心設定了鏡頭的一些參數,導致打燈時,一些依靠鏡頭的效果(像是動態模糊 motion blur、景深 depth of field、立體效果 sterescopic effect、…)有問題。

這裏比較有趣的是,動畫師在拉動作時,最最關切的因素之一「穿幫」,與燈光師看到的「穿幫」,有時是不一樣的,結果就是,動畫師也很傷腦筋,因為他們看不出燈光師看得到的「穿幫」;而燈光師也很傷腦筋,因為處理這個問題,可能會佔去他們非常多的調燈光與算圖時間。這時,程式技術人員(或說是打雜人員也行)就介入,他們使出神的右手(有人是左手?),飛快地在鍵盤上敲敲打打,找出問題,解決,然後想想要開發點什麼工具,或是想個怎通的法子,避免這個問題重覆出現,並把結論傳承下去,供後人勉懷…

負責把燈光師打的燈光且算好的圖,拿來重整、微調與補救的部門叫合成(comp),接手的部門是把這些片段合起來,加入聲音與一些修正的是剪輯(editing)部門。他們之間的差別,在於一個是處理個別的動畫段落(卡、scene?),一個是處理一整串的動畫,所以在資料上來看,兩邊的差別是資料量的大小。剪輯需要的是合成把段落放好,方便供他快速取用,且隨時會被通知有更新的一卡出來,而且可能還得知會是否要做一些,像是 gamma correction/encoding、film grain 調整、影片品質與影片檔格式變更…等。

這時,我們可愛的技術指導又出現了,他們可能會寫一些小 script 來加快流程,或是做一些研究,報告說,在什麼階段,我們需要什麼影片檔格式比較優(ex, mpeg4 with mpeg 1 layer 3 audio on .avi, h.264 on quicktime movie, ...)。

這些技術指導跑出來協助的工作,寫的小程式(有的慢慢就變大程式),就是我說的「膠水」了。


转载自 Drake's blog

原文链接:    http://drakeguan.org/animation_pipeline_is_like_a_glue_everywhere