Dasar Menggunakan Python di Blender

Menggunakan Script Python untuk Blender

Perhatian! Karena Blender terbaru sudah menggunakan python terbaru,  dan adanya banyak perubahan dari updatenya, dan masih adanya pengunjung yang melihat konten lama ini, maka isi konten ini sudah tidak relevan jika menggunakan Blender versi terbaru. 






Untuk mencoba dasar-dasar mengunakan python di Blender, sekarang uji coba bikin script python untuk Blender. Yaah namanya uji coba, kadang berhasil, kadang tidak. Dan ini juga untuk catatan biar tidak lupa, soalnya juga masih belajar python. So, wilujeng sumping...

Kalau blender sudah dibuka, add - mesh - cube. Nah switch ke text editor, trus pilih new...

Ketik kode berikut:

import Blender as B

for i in range(0,10,1):
B.Object.Duplicate()
newObj = B.Object.GetSelected()
newObj[0].LocZ += 2.5
newObj[0].RotZ += 0.15

Sebelum execute, select dulu cube yang tadi sudah di bikin. Baru execute scriptnya. Hasilnya... cube tadi akan di duplikasi 10 kali dan digeser posisinya keatas sambil di rotate dikit. Kenapa begitu?

Nah... di line pertama:
import Blender as B

Ini maksudnya untuk mengimport modul2 python yang spesifik untuk blender dengan alias "B". Jadi perintah-perintah python untuk blender akan di load supaya bisa di akses. Untuk import ini biasanya cukup sekali saja. Ada juga perintah import seperti ini:
import BlenderFungsinya sama saja, tapi waktu penulisan perintahnya nanti jadi lebih panjang.

Contohnya setelah di import tanpa alias, saat ingin memanggil perintah GetSelected:

import Blender
tmpObj = Blender.Object.GetSelected()
Nah bandingkan dengan ini:
import Blender as B
tmpObj = B.Object.GetSelected()



Lebih pendek mengetiknya bukan. Dua-duanya hasilnya sama. Setelah modul Blender di import, perintah-perintah spesifik untuk blender di python akan di load. Untuk bisa liat apa aja yang ada di dalam modul Blender tadi, ketik:

print dir(Blender)

Hasilnya dilihat di console window akan ada banyak perintah untuk blender.

Misalnya disitu ada perintah Object , untuk tau isinya ketik lagi :

 print dir(Blender.Object)

Di console window keluar lagi list perintah yang ada di dalamnya. Nah disitu ada salah satunya GetSelected , yang akan digunakan di contoh script diatas. Biarpun di print dir() untuk GetSelected , tidak akan menampilkan apa-apa karena perintah GetSelected , ini berada pada tingkat hirarki paling bawah dalam hirahki perintah Object.

Kembali ke script awal:
import Blender as B # Line ke 1

for i in range(0,10,1): # Line ke 3 B.Object.Duplicate() # Line ke 4 dengan indent(tab)
newObj = B.Object.GetSelected()
newObj[0].LocZ += 2.5
newObj[0].RotZ += 0.15 # Line ke 7 juga dengan indent(tab)

Line pertama untuk import modul Blender seperti dijealskan di atas.
Line kedua kosong tidak ada apa-apa
Line ketiga perintah for loop. Di line ke-3 ini, akan terjadi pengulangan untuk variable i dengan pengulangan sebanyak 10 kali, yang diawali dari 0 (nol), dengan increment 1 kali. Contoh for loop:
for i in range(nilai Awal loop, nilai akhir loop, increment)
i adalah variable.
Nilai awal loop adalah nilai untuk mulai loop dari angka berapa.
Nilai akhir loop adalah nilai maksimum pengulangan loop di angka berapa.
Increment adalah kenaikan loop tiap n kali. Kalau nilainya 1 nilai awal 0, maka nilai i pada loop pertama adalah 0, selanjutnya 1, selanjutnya 2... dst. Kalau nilai increment 2, dan nilai awal 0, maka loop selanjutnya nilai i adalah 2, selanjutnya 4, selanjutnya 6 dst...

Nah penulisan for loop di sini adalah:
for i in range(0,10,1): B.Object.Duplicate()
newObj = B.Object.GetSelected()
newObj[0].LocZ += 2.5
newObj[0].RotZ += 0.15

Diakhir ada tanda titik dua. Itu artinya python akan membaca line setelahnya sebagai lanjutan dari perintah for. Dan di line selanjutnya, kalau di blender otomatis akan di kasi indent atau kalau kelupaan tinggal tekan tombol tab di keyboard. Maksudnya indent ini adalah, semua perintah yang ditulis setelah tanda titik dua, dan kemudian di berikan indent, maka line-line yang di indent tadi akan di masukan ke dalam blok perintah for loop.

Jadi line-line perintah:
B.Object.Duplicate()
newObj = B.Object.GetSelected()
newObj[0].LocZ += 2.5
newObj[0].RotZ += 0.15
... akan di loop sebanyak 10 kali.

Line ini untuk menduplikasi objek yang di select (tadi di awal disebutkan sebelum execute, select dulu cubenya baru execute script):
B.Object.Duplicate()

Line ini untuk memasukan objek hasil duplikasi ke dalam variable baru bernama newObj: newObj = B.Object.GetSelected()

Line ini untuk mengeser posisi Z dari objek yang ada di variable newObj[0]. Kenafa tuliasnnya jadi ada [0]? Karena hasil dari GetSelected yang menghasilkan array. Dan karena awalnya hanya cube yang terpilih, dengan kata lain hanya satu objek yang terpilih, maka dalam array tersebut akan dimasukan secara default ke index pertama yaitu newObj[0]: newObj[0].LocZ += 2.5Line terakhir untuk merotate objek yang ada di variable newObj[0].Penjelasannya kurang lebih sama dengan line sebelumnya:
newObj[0].RotZ += 0.15Untuk penulisan RotZ += 0.15 itu maksudnya nilai RotZ = RotZ + 0.15. Contoh lain misalnya:
x += 5. Ini sama aja dengan x = x + 5.



Nah loh...?

Komentar

  1. sapa disitu? blh kenal?
    punya contoh game yg pake plugin python ini ga? please, help me :)

    contact me : phiew_sapphi (YM)

    BalasHapus
  2. Hi, gw ferdi. gw dah add ymnya bos.
    btw kl untuk game pk python.. gw masih blm sampe situ bos. gw masih belajar2 jg nih python jd masih basic2 aja hehe

    BalasHapus
  3. wah...makasih gan..
    sangat membantu..

    jangan lupa kunjungan baliknya..
    :D

    BalasHapus

Posting Komentar

Monggo komennya