BAB IV IMPLEMENTASI DAN PENGUJIAN
4.2 Pengujian
4.2.3 Pengujian Perbandingan Volume
Pengujian perbandingan volume adalah pengamatan dari nilai volume dari tiap-tiap karakter yang sudah diberikan rigging dengan prinsip squash and stretch. Tiap-tiap karakter akan di-scaling dengan skala diperbesar dan diperkecil, lalu nantinya akan diamati perubahan dari volume tiap-tiap karakter tersebut. Pengujian dilakukan dengan mengamati hasil dari volume akhir dibagi volume akhir dan dibandingkan dengan besar dari perubahan skala.
a. Kacang
Berikut adalah perubahan volume jika skala diperkecil pada karakter kacang
Tabel 13 Perubahan Volume Karakter Kacang Skala Diperkecil
No Perbandingan Skala Volume Awal Volume Akhir V.akhir/V.awal
1 X=0.9 Z=0.1 0.09 91.3383 91.3383 56.7861 0.6217 2 X=0.6 Z=0.3 0.18 55.8643 0.6116 3 X=0.5 Z=0.5 0.25 58.8919 0.6447 4 X=0.7 Z=0.7 0.49 70.9677 0.7769 5 X=0.2 Z=0.7 0.14 54.9075 0.6011
Berikut adalah perubahan volume jika skala diperbesar pada karakter kacang
Tabel 14 Perubahan Volume Karakter Kacang Skala Diperbesar
No Perbandingan Skala Volume Awal Volume Akhir V.akhir/V.awal
1 X=1.1 Z=1.9 2.09 128.6409 1.40 2 X=1.3 Z=1.7 130.621 1.43
3 X=1.5 Z=1.5 2.25 131.3871 1.43 4 X=1.7 Z=1.3 2.21 130.956 1.43 5 X=1.9 Z=1.1 2.09 129.2562 1.41
Untuk tampilan grafik antara skala diperkecil dan diperbesar pada karakter kacang bisa dilihat pada gambar 28 dibawah ini
Gambar 28 Grafik Perbandingan Skala dengan Perubahan Volume pada
Karakter Kacang (Sumber: dok. Pribadi)
b. Kapur
Berikut adalah perubahan volume jika skala diperkecil pada karakter kapur
Tabel 15 Perubahan Volume Karakter Kapur Skala Diperkecil
No Perbandingan Skala Volume Awal Volume Akhir V.akhir/V.awal
1 X=0.1 Z=0.1 0.01 38.9218 38.9218 20.7759 0.5337 2 X=0.8 Z=0.8 0.64 34.23 0.8794 3 X=0.5 Z=0.5 0.25 27.8988 0.7167 4 X=0.4 Z=0.6 0.24 27.8248 0.7148 5 X=0.2 Z=0.8 0.16 27.3858 0.7036
Berikut adalah perubahan volume jika skala diperbesar pada karakter kapur
Tabel 16 Perubahan Volume Karakter Kapur Skala Diperbesar
No Perbandingan Skala Volume Awal Volume Akhir V.akhir/V.awal
1 X=1.1 Z=1.9 2.09 51.4271 1.3212 2 X=1.3 Z=1.7 2.21 52.0518 1.3373
Z=1.5 2.25 38.9218 4 X=1.7 Z=1.3 2.21 52.0521 1.3373 5 X=1.9 Z=1.1 2.09 51.4273 1.3212
Untuk tampilan grafik antara skala diperkecil dan diperbesar pada karakter kapur bisa dilihat pada gambar 29 dibawah ini
Gambar 29 Grafik Perbandingan Skala dengan Perubahan Volume pada Karakter Kapur
(Sumber: dok. Pribadi)
c. Paku
Tabel 17 Perubahan Volume Karakter Paku Skala Diperkecil
No Perbandingan Skala Volume Awal Volume Akhir V.akhir/V.awal
1 X=0.1 Z=0.1 0.01 10.3222 10.3222 8.5147 0.8248 2 X=0.9 Z=0.3 0.27 9.4216 0.9127 3 X=0.5 Z=0.5 0.25 9.2555 0.8966 4 X=0.2 Z=0.7 0.14 9.1324 0.8847 5 X=0.9 Z=0.8 0.72 9.9838 0.9672
Berikut adalah perubahan volume jika skala diperbesar pada karakter paku
Tabel 18 Perubahan Volume Karakter Paku Skala Diperbesar
No Perbandingan Skala Volume Awal Volume Akhir V.akhir/V.awal
1 X=1.3 Z=1.3 1.69 10.3222 11.0372 1.0692 2 X=1.9 Z=1.2 2.28 11.629 1.1266 3 X=1.5 Z=1.5 2.25 11.5451 1.1184 4 X=1.2 Z=1.7 11.3903 1.1034
2.04
5 X=1.9
Z=1.8
3.42
12.4921 1.2102
Untuk tampilan grafik antara skala diperkecil dan diperbesar pada karakter paku bisa dilihat pada gambar 30 dibawah ini
Gambar 30 Grafik Perbandingan Skala dengan Perubahan Volume pada Karakter Paku
(Sumber: dok. Pribadi)
d. Cangkul
Berikut adalah perubahan volume jika skala diperkecil pada karakter cangkul
Tabel 19 Perubahan Volume Karakter Cangkul Skala Diperkecil
No Perbandingan Skala Volume Awal Volume Akhir V.akhir/V.awal
1 X=0.1 Z=0.1 0.01 1.1193 1.1193 0.6143 0.5488 2 X=0.5 Z=0.3 0.15 0.7568 0.6761 3 X=0.5 Z=0.5 0.25 0.8113 0.7248 4 X=0.4 Z=0.9 0.36 0.8877 0.7930 5 X=0.9 Z=0.9 0.81 1.0521 0.9399
Berikut adalah perubahan volume jika skala diperbesar pada karakter cangkul
Tabel 20 Perubahan Volume Karakter Cangkul Skala Diperbesar
No Perbandingan Skala Volume Awal Volume Akhir V.akhir/V.awal
1 X=1.2 Z=1.2 1.44 1.1193 1.2616 1.1271 2 X=1.9 Z=1.5 2.85 1.6599 1.4829 3 X=1.5 Z=1.5 2.25 1.4955 1.3361 4 X=1.4 Z=1.8 1.5731 1.4054
5 X=1.9 Z=1.9
3.61
1.8457 1.6489
Untuk tampilan grafik antara skala diperkecil dan diperbesar pada karakter cangkul bisa dilihat pada gambar 31 dibawah ini
Gambar 31 Grafik Perbandingan Skala dengan Perubahan Volume pada Karakter Cangkul
(Sumber: dok. Pribadi)
Dari hasil perubahan volume dengan mengubah skala dengan cara diperbesar maupun diperkecil dari keempat karakter yang telah diberi rigging dengan prinsip squash and stretch tersebut, setelah diamati bahwa setiap karakter jika volume diperbesar dan diperkecil, hasil dari perubahan volume tersebut tidak selalu sama dibandingkan dengan skala yang dilakukan.
Jika skala diperkecil maka hasil dari perubahan volume selalu lebih besar, akan tetapi jika skala diperbesar akan terjadi kebalikannya, hasil perubahan volume selalu lebih kecil dibandingkan dengan skala yang diperbesar. Bisa dilihat pada setiap grafik yang ada pada setiap karakter, bahwa semua hasil perubahan volume selalu berada diantara perubahan skala pada karakter.
Dengan begitu, dapat diambil kesimpulan bahwa setiap karakter/objek yang di-bending/di-scaling maka nilai volume selalu tidak sesuai dengan nilai dari perubahan scaling. Ini menandakan bahwa mesh dari sebuah objek selalu mempertahankan volumenya walaupun terjadi perubahan scaling.
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil analisa dari beberapa pengujian yang dilakukan dan diimplementasikan, terdapat beberapa kesimpulan yaitu:
a. Penggunaan MEL script dapat mempercepat proses pengerjaan rigging dengan prinsip squash and stretch sebanyak 44 kali lebih cepat dibandingkan dengan tidak menggunakan MEL script atau bisa dibilang memiliki rasio kecepatan 44:1
b. Kekurangan dari metode MEL script ini adalah diperlukan sumber daya manusianya yang harus memahami bahasa dari program Autodesk Maya ini yaitu MEL (Maya Embedded Language), agar script yang dibuat dapat berfungsi dengan baik
c. Berdasarkan analisa dari pengamatan selisih dari titik controller yang ada pada setiap karakter yang telah dikerjakan, selalu terdapat selisih pada setiap sumbu, yaitu sumbu X, Y dan Z dari controller yang ada pada semua karakter. Dengan kata lain, penerapan metode MEL script sudah cukup baik untuk mendekati hasil pengerjaan yang menjaga kestabilan dari karakter dengan prinsip squash and stretch
d. Berdasarkan pengujian dan pengamatan kestabilan karakter, terdapat 1 karakter yang menggunakan pengerjaan tanpa MEL yang terjadi error yaitu kesalahan pada salah satu binding pada karakter. Dapat diambil kesimpulan bahwa penerapan metode MEL script sudah cukup baik dibandingkan tanpa menggunakan MEL script untuk membuat karakter menjadi lebih stabil dan mengurangi kesalahan yang dapat terjadi.
e. Berdasarkan analisa perubahan volume, didapatkan kesimpulan bahwa perubahan volume selalu tidak sesuai dengan nilai scaling pada karakter/objek. Karena mesh dari suatu objek memiliki sifat untuk mempertahankan volume nya.
Dari beberapa kesimpulan diatas, dapat diambil kesimpulan bahwa metode penggunaan MEL script dapat diimplementasikan pada karakter di film animasi 3D Jati Diri si Kacang sangat membantu dalam proses pengerjaan animasi menjadi lebih efektif, menjaga kestabilan karakter hingga mengurangi tingkat human error yang dapat terjadi.
5.2 Saran
Sebagai langkah pengembangan nantinya, saran yang dapat diberikan untuk penelitian selanjutnya adalah meneliti lebih dalam lagi Bahasa MEL script di Autodesk Maya sehingga MEL script tidak hanya bisa digunakan untuk rigging dengan prinsip squash dan stretch saja, bisa dikembangkan ke dalam rigging dalam bentuk manusia dan juga mengambil aspek lain seperti modelling, texturing, dan lain-lain.
DAFTAR PUSTAKA
Gunawan, Bami Bambang. 2012. Nganimasi bersama Mas Be!. PT. Elex Media Komputindo: Jakarta
Keller, Erik. 2009. Mastering Maya 2009. Wiley Publishing
Palamar, Todd, dkk. 2012. Mastering Autodesk Maya 2013. Syblex : USA.
Pramudia, Rangga. 2016. Analisis Dan Implementasi Mel Script Untuk Lighting Dan Rendering Pada Film Animasi 3d Robocube. Tugas Akhir Teknik Multimedia dan Jaringan Politeknik Negeri Batam
Prayudi, Yudi dan Iwan Aprizal. 2004. Pemodelan Wajah 3d Berbasis Foto Diri Menggunakan Maya Embedded Language (Mel) Script. Jurnal Media Informatika, Vol. 2, No. 2, Desember 2004, 33-45.
Ramonda, Febrian, dkk. 2016. Perancangan Film Animasi 3D Jati Diri si Kacang. Proyek Akhir 3. Teknik Multimedia dan Jaringan Politeknik Negeri Batam Villani, Nicoletta Adamo dan Gerardo Beni. 2004. Automated finger spelling by
highly realistic 3D animation. British Journal of Educational Technology, Vol 35 No 3, 2004, 345–36
Autodesk. 2013. Maya Overview : Comprehensive 3D animation software. http://www.autodesk.com/products/maya/overview (diakses pada 15 Mei 2017)
Autodesk. 2016. Maya User Guide : Cluster Deformers.
https://knowledge.autodesk.com/support/maya/learn-
explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-B7C96FEA-C415-4927-8E02-396F0E837DE2-htm.html (diakses pada 15 Mei 2017)
Maya Academy of Advanced Cinematics. 2015. 2D & 3D Animation. http://www.maacindia.com/blog/index.php/2d-vs-3d-animation/ (diakses pada 1 September 2016)
Titan Media Internusa. 2007. Animasi. http://mediainternusa.com/animasi/ (diakses pada 10 April 2017).
Top Ten Reviews. 2011. Autodesk Maya 2014 Review. http://3d-animationsoftware-review.toptenreviews.com/autodesk-maya-review.html (diakses pada 10 April 2017)
Source Code MEL Script untuk Rigging dengan Prinsip Squash and Stretch
proc kacang_squash() {
//create lattice
select -r BADAN_KACANG ;
lattice -divisions 2 3 2 -objectCentered true ;
//create cluster
select -r ffd1Lattice.pt[0:1][1][0] ffd1Lattice.pt[0:1][1][1] ; newCluster " -envelope 1"; //create joint select -d; joint -p -2.570616 9.4831 3.214888 ; setAttr "joint1.radius" 0.1; select -d; joint -p 2.570616 9.4831 3.214888 ; setAttr "joint2.radius" 0.1; select -d; joint -p 2.570616 10.342767 -1.047794 ; setAttr "joint3.radius" 0.1; select -d; joint -p -2.570616 10.342767 -1.047794 ; setAttr "joint4.radius" 0.1; select -d; joint -p -2.570616 1.239668 -2.883641 ; setAttr "joint5.radius" 0.1; select -d; joint -p 2.570616 1.239668 -2.883641 ; setAttr "joint6.radius" 0.1; select -d; joint -p 2.570616 0.380001 1.379041 ;
select -d;
joint -p -2.570616 0.380001 1.379041 ; setAttr "joint8.radius" 0.1;
//SmoothBindSkin
select -r ffd1Lattice.pt[0][2][1] joint1 ; SmoothBindSkin;
select -r ffd1Lattice.pt[1][2][1] joint2 ; SmoothBindSkin;
select -tgl ffd1Lattice.pt[1][2][0] joint3 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][2][0] joint4 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][0][0] joint5 ; SmoothBindSkin;
select -tgl ffd1Lattice.pt[1][0][0] joint6 ; SmoothBindSkin;
select -r ffd1Lattice.pt[1][0][1] joint7 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][0][1] joint8 ; SmoothBindSkin; //create controller circle -ch on -o on -nr 0 1 0 -r 0.45609 ; move -rpr -2.570616 9.4831 3.214888 ; duplicate -rr; move -rpr 2.570616 9.4831 3.214888 ; duplicate -rr;
move -rpr 2.570616 10.342767 -1.047794 ; duplicate -rr; move -rpr -2.570616 10.342767 -1.047794 ; duplicate -rr; move -rpr -2.570616 1.239668 -2.883641 ; duplicate -rr; move -rpr 2.570616 1.239668 -2.883641 ; duplicate -rr; move -rpr 2.570616 0.380001 1.379041 ; duplicate -rr; move -rpr -2.570616 0.380001 1.379041 ;
//parent joint ke controller select -r joint1 nurbsCircle1 ; parent;
select -r joint2 nurbsCircle2 ; parent;
select -r joint3 nurbsCircle3 ; parent;
select -r joint4 nurbsCircle4 ; parent;
select -r joint5 nurbsCircle5 ; parent;
select -r joint6 nurbsCircle6 ; parent;
parent;
select -r joint8 nurbsCircle8 ; parent;
//create controller atas dan bawah
circle -ch on -o on -nr 0 1 0 -r 3.731697 ; setAttr "nurbsCircle9.translateX" 0.07; setAttr "nurbsCircle9.translateY" 9.986; setAttr "nurbsCircle9.translateZ" 1.154; setAttr "nurbsCircle9.rotateX" 9.823; select -r nurbsCircle9 ; duplicate -rr; setAttr "nurbsCircle10.translateY" 0.766; setAttr "nurbsCircle10.translateZ" -0.669;
//parent tiap-tiap controller dengan main controller atas dan bawah
select -r nurbsCircle1 nurbsCircle2 nurbsCircle3 nurbsCircle4 nurbsCircle9 ; parent;
select -r nurbsCircle5 nurbsCircle6 nurbsCircle7 nurbsCircle8 nurbsCircle10 ; parent;
//create distanceDimension
distanceDimension -sp -2.570616 0.380001 1.379041 -ep -2.570616 9.4831 3.214888 ;
//parent locator ke controller select -r locator2 nurbsCircle9 ; parent;
select -r locator1 nurbsCircle10 ; parent;
//create expression
expression -s "cluster1Handle.scaleX =
9.286374/distanceDimensionShape1.distance;\ncluster1Handle.scaleZ =
9.286374/distanceDimensionShape1.distance;" -o cluster1Handle -ae 1 -uc all ;
select -r BADAN_KACANG ;
createDisplayLayer -name "layer1" -number 1 -nr;
select -r nurbsCircle9 cluster1Handle ;
doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" }; parentConstraint -mo -weight 1;
select -r nurbsCircle10 cluster1Handle ;
doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" }; parentConstraint -mo -weight 1;
//create controller kacang
circle -ch on -o on -nr 0 1 0 -r 5.71938 ; group cluster1Handle;
select BADAN_KACANG ffd1Base group1 nurbsCircle9 nurbsCircle10 nurbsCircle11; parent;
select -r nurbsCircle11 ;
rename "nurbsCircle11" "CNTRL_KACANG";
select -r nurbsCircle9 ;
rename "nurbsCircle9" "CNTRL_UP";
select -r nurbsCircle10 ;
rename "nurbsCircle10" "CNTRL_DOWN"; }
proc kapur_squash() {
//create lattice
select -r BADAN_KAPUR ;
//create cluster
select -r ffd1Lattice.pt[0:1][1][0] ffd1Lattice.pt[0:1][1][1] ; newCluster "-envelope 1"; //create joint select -d; joint -p 2.025325 9.968448 -1.448438 ; setAttr "joint1.radius" 0.1; select -d; joint -p 2.025325 9.968448 0.811875 ; setAttr "joint2.radius" 0.1; select -d; joint -p -0.364681 9.968448 0.811875 ; setAttr "joint3.radius" 0.1; select -d; joint -p -0.364681 9.968448 -1.448438 ; setAttr "joint4.radius" 0.1; select -d; joint -p 2.025325 0.0454148 -1.448438 ; setAttr "joint5.radius" 0.1; select -d; joint -p 2.025325 0.0454148 0.811875 ; setAttr "joint6.radius" 0.1; select -d; joint -p -0.364681 0.0454148 0.811875 ; setAttr "joint7.radius" 0.1; select -d; joint -p -0.364681 0.0454148 -1.448438 ; setAttr "joint8.radius" 0.1; //SmoothBindSkin
select -r ffd1Lattice.pt[1][2][0] joint1 ; SmoothBindSkin;
select -r ffd1Lattice.pt[1][2][1] joint2 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][2][1] joint3 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][2][0] joint4 ; SmoothBindSkin;
select -r ffd1Lattice.pt[1][0][0] joint5 ; SmoothBindSkin;
select -r ffd1Lattice.pt[1][0][1] joint6 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][0][1] joint7 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][0][0] joint8 ; SmoothBindSkin; //create controller circle -ch on -o on -nr 0 1 0 -r 0.45609 ; move -rpr 2.025325 9.968448 -1.448438 ; duplicate -rr; move -rpr 2.025325 9.968448 0.811875 ; duplicate -rr; move -rpr -0.364681 9.968448 0.811875 ; duplicate -rr; move -rpr -0.364681 9.968448 -1.448438 ;
duplicate -rr; move -rpr 2.025325 0.0454148 -1.448438 ; duplicate -rr; move -rpr 2.025325 0.0454148 0.811875 ; duplicate -rr; move -rpr -0.364681 0.0454148 0.811875 ; duplicate -rr; move -rpr -0.364681 0.0454148 -1.448438;
//parent joint ke controller select -r joint1 nurbsCircle1 ; parent;
select -r joint2 nurbsCircle2 ; parent;
select -r joint3 nurbsCircle3 ; parent;
select -r joint4 nurbsCircle4 ; parent;
select -r joint5 nurbsCircle5 ; parent;
select -r joint6 nurbsCircle6 ; parent;
select -r joint7 nurbsCircle7 ; parent;
select -r joint8 nurbsCircle8 ; parent;
//create controller atas dan bawah
circle -ch on -o on -nr 0 1 0 -r 1.84249 ; setAttr "nurbsCircle9.translateX" 0.814; setAttr "nurbsCircle9.translateY" 9.988;
setAttr "nurbsCircle9.translateZ" -0.398;
duplicate -rr;
setAttr "nurbsCircle10.translateY" 0;
//parent tiap-tiap controller dengan main controller atas dan bawah
select -r nurbsCircle1 nurbsCircle2 nurbsCircle3 nurbsCircle4 nurbsCircle9 ; parent;
select -r nurbsCircle5 nurbsCircle6 nurbsCircle7 nurbsCircle8 nurbsCircle10 ; parent;
//create distanceDimension
distanceDimension sp 0.364681 0.0454148 1.448438 ep 0.364681 9.968448 -1.448438 ;
//parent locator ke controller select -r locator2 nurbsCircle9 ; parent;
select -r locator1 nurbsCircle10 ; parent;
//create expression
select -r cluster1Handle ;
expression -s "cluster1Handle.scaleX =
9.923033/distanceDimensionShape1.distance;\ncluster1Handle.scaleZ =
9.923033/distanceDimensionShape1.distance;" -o cluster1Handle -ae 1 -uc all ;
select -r BADAN_KAPUR ;
createDisplayLayer -name "layer1" -number 1 -nr;
select -r nurbsCircle9 cluster1Handle ;
doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" }; parentConstraint -mo -weight 1;
doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" }; parentConstraint -mo -weight 1;
//create controller kacang
circle -ch on -o on -nr 0 1 0 -r 2.989227 ; setAttr "nurbsCircle11.translateX" 0.8; setAttr "nurbsCircle11.translateZ" -0.4; group cluster1Handle;
select BADAN_KAPUR ffd1Base group1 nurbsCircle9 nurbsCircle10 nurbsCircle11; parent;
select -r nurbsCircle11 ;
rename "nurbsCircle11" "CNTRL_KAPUR";
select -r nurbsCircle9 ;
rename "nurbsCircle9" "CNTRL_UP";
select -r nurbsCircle10 ;
rename "nurbsCircle10" "CNTRL_DOWN"; }
proc cangkul_squash() {
//create lattice
select -r BADAN_CANGKUL ;
lattice -divisions 2 3 2 -objectCentered true ;
//create cluster
select -r ffd1Lattice.pt[0:1][1][0] ffd1Lattice.pt[0:1][1][1] ; newCluster " -envelope 1"; //create joint select -d; joint -p -0.823434 4.20559 -0.316544 ; setAttr "joint1.radius" 0.1; select -d; joint -p 0.811391 4.20559 -0.316544 ; setAttr "joint2.radius" 0.1;
select -d; joint -p 0.811391 4.20559 2.088017 ; setAttr "joint3.radius" 0.1; select -d; joint -p -0.823434 4.20559 2.088017 ; setAttr "joint4.radius" 0.1; select -d; joint -p -0.823434 0.225305 -0.316544 ; setAttr "joint5.radius" 0.1; select -d; joint -p 0.811391 0.225305 -0.316544 ; setAttr "joint6.radius" 0.1; select -d; joint -p 0.811391 0.225305 2.088017 ; setAttr "joint7.radius" 0.1; select -d; joint -p -0.823434 0.225305 2.088017 ; setAttr "joint8.radius" 0.1; //SmoothBindSkin
select -r ffd1Lattice.pt[0][2][0] joint1 ; SmoothBindSkin;
select -r ffd1Lattice.pt[1][2][0] joint2 ; SmoothBindSkin;
select -r ffd1Lattice.pt[1][2][1] joint3 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][2][1] joint4 ; SmoothBindSkin;
SmoothBindSkin;
select -tgl ffd1Lattice.pt[1][0][0] joint6 ; SmoothBindSkin;
select -r ffd1Lattice.pt[1][0][1] joint7 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][0][1] joint8 ; SmoothBindSkin; //create controller circle -ch on -o on -nr 0 1 0 -r 0.147497 ; move -rpr -0.823434 4.20559 -0.316544; duplicate -rr; move -rpr 0.811391 4.20559 -0.316544; duplicate -rr; move -rpr 0.811391 4.20559 2.088017; duplicate -rr; move -rpr -0.823434 4.20559 2.088017; select -r nurbsCircle4 ; duplicate -rr; move -rpr -0.823434 0.225305 -0.316544; duplicate -rr; move -rpr 0.811391 0.225305 -0.316544; duplicate -rr; move -rpr 0.811391 0.225305 2.088017; duplicate -rr;
move -rpr -0.823434 0.225305 2.088017;
//parent joint ke controller select -r joint1 nurbsCircle1 ; parent;
select -r joint2 nurbsCircle2 ; parent;
select -r joint3 nurbsCircle3 ; parent;
select -r joint4 nurbsCircle4 ; parent;
select -r joint5 nurbsCircle5 ; parent;
select -r joint6 nurbsCircle6 ; parent;
select -r joint7 nurbsCircle7 ; parent;
select -r joint8 nurbsCircle8 ; parent;
//create controller atas dan bawah
circle -ch on -o on -nr 0 1 0 -r 1.523897 ; setAttr "nurbsCircle9.translateX" -0.015; setAttr "nurbsCircle9.translateY" 4.216; setAttr "nurbsCircle9.translateZ" 0.84; duplicate -rr; setAttr "nurbsCircle10.translateY" 0.252;
//parent tiap-tiap controller dengan main controller atas dan bawah
parent;
select -r nurbsCircle5 nurbsCircle6 nurbsCircle7 nurbsCircle8 nurbsCircle10 ; parent;
//create distanceDimension
distanceDimension sp 0.823434 0.225305 0.316544 ep 0.823434 4.20559 -0.316544 ;
//parent locator ke controller select -r locator2 nurbsCircle9 ; parent;
select -r locator1 nurbsCircle10 ; parent;
//create expression
select -r cluster1Handle ;
expression -s "cluster1Handle.scaleX =
3.980285/distanceDimensionShape1.distance;\ncluster1Handle.scaleZ =
3.980258/distanceDimensionShape1.distance;" -o cluster1Handle -ae 1 -uc all ;
select -r BADAN_CANGKUL ;
createDisplayLayer -name "layer1" -number 1 -nr;
select -r nurbsCircle9 cluster1Handle ;
doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" }; parentConstraint -mo -weight 1;
select -r nurbsCircle10 cluster1Handle ;
doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" }; parentConstraint -mo -weight 1;
//create controller kacang
circle -ch on -o on -nr 0 1 0 -r 2.380477 ; group cluster1Handle;
parent;
select -r nurbsCircle11 ;
rename "nurbsCircle11" "CNTRL_Cangkul";
select -r nurbsCircle9 ;
rename "nurbsCircle9" "CNTRL_UP";
select -r nurbsCircle10 ;
rename "nurbsCircle10" "CNTRL_DOWN"; }
proc paku_squash() {
//create lattice select -r BADAN_PAKU ;
lattice -divisions 2 3 2 -objectCentered true ;
//create cluster
select -r ffd1Lattice.pt[0:1][1][0] ffd1Lattice.pt[0:1][1][1] ; newCluster " -envelope 1"; //create joint select -d; joint -p 2.52853 7.559539 2.602002 ; setAttr "joint1.radius" 0.1; select -d; joint -p -2.647989 7.559539 2.602002 ; setAttr "joint2.radius" 0.1; select -d; joint -p -2.647989 7.559539 -2.574516 ; setAttr "joint3.radius" 0.1; select -d; joint -p 2.52853 7.559539 -2.574516 ; setAttr "joint4.radius" 0.1;
joint -p 2.52853 -0.194395 2.602002 ; setAttr "joint5.radius" 0.1; select -d; joint -p -2.647989 -0.194395 2.602002 ; setAttr "joint6.radius" 0.1; select -d; joint -p -2.647989 -0.194395 -2.574516 ; setAttr "joint7.radius" 0.1; select -d; joint -p 2.52853 -0.194395 -2.574516 ; setAttr "joint8.radius" 0.1; //SmoothBindSkin
select -r ffd1Lattice.pt[1][2][1] joint1 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][2][1] joint2 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][2][0] joint3 ; SmoothBindSkin;
select -r ffd1Lattice.pt[1][2][0] joint4 ; SmoothBindSkin;
select -r ffd1Lattice.pt[1][0][1] joint5 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][0][1] joint6 ; SmoothBindSkin;
select -r ffd1Lattice.pt[0][0][0] joint7 ; SmoothBindSkin;
select -r ffd1Lattice.pt[1][0][0] joint8 ; SmoothBindSkin;
//create controller circle -ch on -o on -nr 0 1 0 -r 0.339442 ; move -rpr 2.52853 7.559539 2.602002; duplicate -rr; move -rpr -2.647989 7.559539 2.602002; duplicate -rr; move -rpr -2.647989 7.559539 -2.574516; duplicate -rr; move -rpr 2.52853 7.559539 -2.574516; duplicate -rr; move -rpr 2.52853 -0.194395 2.602002; duplicate -rr; move -rpr -2.647989 -0.194395 2.602002; duplicate -rr; move -rpr -2.647989 -0.194395 -2.574516; duplicate -rr; move -rpr 2.52853 -0.194395 -2.574516;
//parent joint ke controller select -r joint1 nurbsCircle1 ; parent;
select -r joint2 nurbsCircle2 ; parent;
select -r joint3 nurbsCircle3 ; parent;
select -r joint4 nurbsCircle4 ; parent;
select -r joint5 nurbsCircle5 ; parent;
select -r joint6 nurbsCircle6 ; parent;
select -r joint7 nurbsCircle7 ; parent;
select -r joint8 nurbsCircle8 ; parent;
//create controller atas dan bawah
circle -ch on -o on -nr 0 1 0 -r 3.700452 ; setAttr "nurbsCircle9.translateX" -0.05; setAttr "nurbsCircle9.translateY" 7.569; setAttr "nurbsCircle9.translateZ" -0.037; duplicate -rr; setAttr "nurbsCircle10.translateY" -0.177;
//parent tiap-tiap controller dengan main controller atas dan bawah
select -r nurbsCircle1 nurbsCircle2 nurbsCircle3 nurbsCircle4 nurbsCircle9 ; parent;
select -r nurbsCircle5 nurbsCircle6 nurbsCircle7 nurbsCircle8 nurbsCircle10 ; parent;
//create distanceDimension
distanceDimension -sp 2.52853 -0.194395 -2.574516 -ep 2.52853 7.559539 -2.574516 ;
//parent locator ke controller select -r locator2 nurbsCircle9 ; parent;
select -r locator1 nurbsCircle10 ; parent; //create expression select -r cluster1Handle ; expression -s "cluster1Handle.scaleX = 7.753934/distanceDimensionShape1.distance;\ncluster1Handle.scaleZ =
7.753934/distanceDimensionShape1.distance;" -o cluster1Handle -ae 1 -uc all ;
select -r BADAN_PAKU ;
createDisplayLayer -name "layer1" -number 1 -nr;
select -r nurbsCircle9 cluster1Handle ;
doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" }; parentConstraint -mo -weight 1;
select -r nurbsCircle10 cluster1Handle ;
doCreateParentConstraintArgList 1 { "1","0","0","0","0","0","0","1","","1" }; parentConstraint -mo -weight 1;
//create controller paku
circle -ch on -o on -nr 0 1 0 -r 5.281281 ; group cluster1Handle;
select BADAN_PAKU ffd1Base group1 nurbsCircle9 nurbsCircle10 nurbsCircle11; parent;
select -r nurbsCircle11 ;
rename "nurbsCircle11" "CNTRL_PAKU";
select -r nurbsCircle9 ;
rename "nurbsCircle9" "CNTRL_UP";
select -r nurbsCircle10 ;
rename "nurbsCircle10" "CNTRL_DOWN"; }
//GUI layout
window -title "Squash and Stretch" -widthHeight 324 350 -s false -tlb false RigWindow;
columnLayout adj false columnAttach "both" 8 rowSpacing 0 columnWidth 320 -height 350 -cal "center";
separator -w 240 -h 15;
text -l "Squash Rigging For Jati Diri si Kacang" -ww true -rs true -fn "boldLabelFont";
separator -w 240 -h 15;
//frame
frameLayout -label "Karakter For Squash" -fn "boldLabelFont" -bs "out";
columnLayout adj true columnAttach "both" 10 rowSpacing 4 columnWidth 320 -height 150 -cal "center";
gridLayout -numberOfColumns 1 -cellWidthHeight 280 35;
button -label "KACANG" -height 35 -command "kacang_squash" btn1; setParent ..;
gridLayout -numberOfColumns 1 -cellWidthHeight 280 35;
button -label "KAPUR" -height 35 -command "kapur_squash" btn2; setParent ..;
gridLayout -numberOfColumns 1 -cellWidthHeight 280 35;
button -label "CANGKUL" -height 35 -command "cangkul_squash" btn3; setParent ..;
gridLayout -numberOfColumns 1 -cellWidthHeight 280 35; button -label "PAKU" -height 35 -command "paku_squash" btn4; setParent ..;
separator -w 240 -h 15; showWindow RigWindow;
BIODATA PENULIS
Penulis diharikan di Batam, pada tanggal 14 Februari 1994, merupakan anak kedua dari 4 bersaudara. Penulis telah menempuh Pendidikan formal di TK Baitul Maghfirah, SDN 002 Batu Aji, SMPN 11 Batam, kemudian melanjutkan ke SMKN 4 Batam. Setelah lulus dari SMK, penulis memilih melanjutkan kuliah D4 dan diterima di Teknik Multimedia dan Jaringan, Politeknik Negeri Batam, pada tahun 2013 dan terdaftar dengan NIM 4311301047. Di Teknik Multimedia dan Jaringan, penulis memfokuskan diri di bidang desain grafis dan animasi. Pada bangku kuliah penulis aktif sebagai anggota di divisi pendidikan di Himpunan Mahasiswa Teknik Informatika (HMTI) tahun 2014 - 2015 dan anggota English Class di Polibatam English Club tahun 2014. Penulis juga mengikuti kegiatan organisasi di luar kampus dan menjabat sebagai anggota Pendidikan di Forum Mahasiswa Informatika se-Batam tahun 2015.