Selasa, 10 November 2015

Tutorial Blender - Membuat Maze

BAB 1 : Membuat Maze 

1. Kami asumsikan anda sudah memiliki Software Blender, Jalankan Program Blender anda. Maka yang pertama tampil adalah seperti berikut.


2. Selanjutnya , adalah membesarkan Object Persegi tersebut sesuai luas Maze yang kita inginkan. Klik objek lalu tekan S (Scale) pada keyboard,  lalu geserlah kursor anda dan sesuaikan besar objek dengan luas maze yang di inginkan.


3. Langkah selanjutnya adalah membuat Persegi tersebut menjadi Pipih , pertama-tama rubah ke Edit mode dengan klik pada bagian bawah yang bertuliskan object mode , lalu rubah ke Edit Mode.


4. Setelah itu rubah seleksi dari dot ke face.  Ada 3 seleksi di dalam blender : dot , line, dan face. Ubahlah dari seleksi dot menjadi face


   

5. Selanjutnya , seleksi bagian bawah kotak tersebut. 


6. Pada blender , ada 3 sumbu : X,Y,Z . Z berwarna biru , Y berwarna Hijau, X berwarna Merah.  untuk memipihkan kotak tersebut , tarik sumbu Z ke atas . maka Kotak tersebut akan pipih seperti gambar di bawah ini.


7. Langkah selanjutnya adalah membagi-bagi Object tersebut menjadi kotak-kotak kecil . Klik object tersebut, seleksi pada bagian atas object tersebut. Seperti gambar di bawah ini.


8. Untuk menyeleksi Menjadi blok kecil kecil. Tekan CTRL + R , lalu putar scroll Mouse ke Atas sehingga terbagi menjadi garis garis yang lebih kecil lagi . 


  
9. Setelah itu , Buatlah garis dengan arah berlawanan dari arah semula. Hasilnya seperti gambar berikut.


10. Pattern dasar telah selesai , langkah selanjutnya adalah membuat maze pada pattern tersebut. 
Untuk membuat maze , seleksi face kotak kecil tersebut lalu tekan E ( Extrude) dan tarik kursor ke atas. 
  




11. Dengan Cara yang Sama , Buatlah Maze sesuai gambaran yang anda punya dengan cara yang sama seperti diatas. Seperti gambar di bawah ini.


12. Langkah selanjutnya adalah memberi warna dasar pada Maze tersebut. Kembali Ke Object mode dan select object tersebut. 


13. Pada tab Pojok kanan , Pilih material untuk merubah warna.



14. Pada tab Material  , Klik tanda Plus pada sisi kanan tab tersebut. Lalu Klik New . 


15. Setelah klik New , Ganti nama atribut tersebut dengan nama “Dasar”


16. Kemudian material dasar tersebut kita beri warna , scroll ke bawah tab material tersebut. Dan pilihlah warna di color pallete tersebut. Pada Difuse  Pilih warna Coklat untuk dasarnya. 
  


17. Setelah itu , Kembali ke Edit mode . Seleksi semua bagian object tersebut dengan menekan A. lalu Assign Warna dasar tersebut ke dalam object.


   
18. Setelah itu  kita warnai sisi- sisi tiap maze tersebut dengan seleksi face salah satu sisi maze , buatlah warna pada Material seperti cara di atas . lalu klik Assign
  




19. Ulangi Cara Di atas dan warnai maze sesuai yang anda inginkan. Seperti gambar di bawah ini.


20. Jangan lupa untuk meletakan Stage Start dan Finish pada maze tersebut sesuai yang anda inginkan.


21. Setelah maze selesai , langkah selanjutnya adalah mensetting pencahayaan pada maze tersebut. Create sebuah Lamp Area. Klik Tab Create pada sisi kanan. Lalu Pilih Lamp Area. Letakan  di ujung – ujung salah satu diagonal maze tersebut. Aturlah tinggi rendahnya dengan menekan lamp tersebut dan tarik sumbu Z nya keatas atau kebawah.
  

22. Setelah itu , Kita Append Object Ufo yang Telah dibuat. Klik File >> Append . setelah itu pilih file blender yang tersimpan object Ufo tersebut.  Double click pada file tersebut lalu masuk ke folder Object dan pilih Sphere. Lalu klik Append from library.




23. Maka Object Tersebut telah berhasil di masukan kedalam File Maze yang telah di buat. Langkah selanjutnya adalah memperkecil ukuran Ufo tersebut. Tekan S ( Scale) lalu kecilkan sesuai dengan jarak antar maze yang anda buat , agar ufo tersebut dapat bergerak melalui maze anda.  



24. Selanjutnya ubah mode Default menjadi mode Game ,  dan mode render ubah ke blender game. Ubahlah pada toolbar bagian atas.



25. Klik Object kamera pada Ufo tersebut , lalu Add Property pada bagian pojok kiri. Isikan dengan nama dan Isi variable sebagai berikut.


26. Masih dengan Object Kamera , Klik Add Sensor , dan pilih mouse. Dan beri nama Sensor tersebut dengan nama MouseLook. Dan pada Mouse Event ganti dengan Movement.


27. Langkah selanjutnya adalah membuat Controlers pada Project yang kita buat. Pilih object kamera tersebut dan Klik Add Controler dan pilih Python.


Lalu , kita ketikan script Python pada blender tersebut. Klik Text Editor pada Editor. Dan Klik New.
               
Selanjutnya ketikan Script berikut ke dalam Text Editor tersebut.
# define main program
def main():

# set default values
Sensitivity =  0.0005
Invert = 1
Capped = False

# get controller
controller = bge.logic.getCurrentController()

# get the object this script is attached to
obj = controller.owner

# get the size of the game screen
gameScreen = gameWindow()

# get mouse movement
move = mouseMove(gameScreen, controller, obj)

# change mouse sensitivity?
sensitivity =  mouseSen(Sensitivity, obj)

# invert mouse pitch?
invert = mousePitch(Invert, obj)

# upDown mouse capped?
capped = mouseCap(Capped, move, invert, obj)

# use mouse look
useMouseLook(controller, capped, move, invert, sensitivity)

# Center mouse in game window
centerCursor(controller, gameScreen)

#####################################################

# define game window
def gameWindow():

# get width and height of game window
width = bge.render.getWindowWidth()
height = bge.render.getWindowHeight()

return (width, height)

#######################################################

# define mouse movement function
def mouseMove(gameScreen, controller, obj):

# Get sensor named MouseLook
mouse = controller.sensors["MouseLook"]

# extract width and height from gameScreen
width = gameScreen[0]
height = gameScreen[1]

# distance moved from screen center
x = width/2 - mouse.position[0]
y = height/2 - mouse.position[1]

# initialize mouse so it doesn't jerk first time
if not 'mouseInit' in obj:
obj['mouseInit'] = True
x = 0
y = 0

######### stops drifting on mac osx
   
# if sensor is deactivated don't move
if not mouse.positive:
x = 0
y = 0

#########  -- mac fix contributed by Pelle Johnsen
   
# return mouse movement
return (x, y)


######################################################

# define Mouse Sensitivity
def mouseSen(sensitivity, obj):

# check so see if property named Adjust was added
if 'Adjust' in obj:

# Don't want Negative values
if obj['Adjust'] < 0.0:
obj['Adjust'] = 0.0

# adjust the sensitivity
sensitivity = obj['Adjust'] * sensitivity

# return sensitivity
return sensitivity

#########################################################

# define Invert mouse pitch
def mousePitch(invert, obj):

# check to see if property named Invert was added
if 'Invert'in obj:

# pitch to be inverted?
if obj['Invert'] == True:
invert = -1
else:
invert = 1

# return mouse pitch
return invert

#####################################################

# define Cap vertical mouselook
def mouseCap(capped, move, invert, obj):

# check to see if property named Cap was added
if 'Cap' in obj:

# import mathutils
import mathutils

# limit cap to 0 - 180 degrees
if obj['Cap'] > 180:
obj['Cap'] = 180
if obj['Cap'] < 0:
obj['Cap'] = 0

# get the orientation of the camera to parent
camOrient = obj.localOrientation

# get camera Z axis vector
camZ = [camOrient[0][2], camOrient[1][2], camOrient[2][2]]

# create a mathutils vector 
vec1 = mathutils.Vector(camZ)

# get camera parent
camParent = obj.parent

# use Parent z axis 
parentZ = [ 0.0, 0.0, 1.0]

# create a mathutils vector
vec2 = mathutils.Vector(parentZ)

# find angle in radians between two vectors
rads = mathutils.Vector.angle(vec2, vec1)

# convert to degrees (approximate)
angle = rads * ( 180.00 / 3.14) 

# get amount to limit mouselook
capAngle = obj['Cap']

# get mouse up down movement
moveY = move[1] * invert

# check capped angle against against camera z-axis and mouse y movement
if (angle > (90 + capAngle/2) and moveY > 0)   or (angle < (90 - capAngle/2) and moveY < 0)  == True:

# no movement
capped = True

# return capped
return capped

###############################################

# define useMouseLook
def useMouseLook(controller, capped, move, invert, sensitivity):

# get up/down movement
if capped == True:
upDown = 0
else:
upDown = move[1] * sensitivity * invert 

# get left/right movement
leftRight = move[0] * sensitivity * invert 

# Get the actuators
act_LeftRight = controller.actuators["LeftRight"]
act_UpDown = controller.actuators["UpDown"]  

# set the values
act_LeftRight.dRot = [ 0.0, 0.0, leftRight]
act_LeftRight.useLocalDRot = False  

act_UpDown.dRot = [ upDown, 0.0, 0.0]
act_UpDown.useLocalDRot = True

# Use the actuators 
controller.activate(act_LeftRight)
controller.activate(act_UpDown) 

#############################################

# define center mouse cursor
def centerCursor(controller, gameScreen):

# extract width and height from gameScreen
width = gameScreen[0]
height = gameScreen[1]

# Get sensor named MouseLook
mouse = controller.sensors["MouseLook"]

# get cursor position
pos = mouse.position

# if cursor needs to be centered
if pos != [int(width/2), int(height/2)]:

# Center mouse in game window
bge.render.setMousePosition(int(width/2), int(height/2))

# already centered.  Turn off actuators
else:
# Get the actuators
act_LeftRight = controller.actuators["LeftRight"]
act_UpDown = controller.actuators["UpDown"]  

# turn off the actuators 
controller.deactivate(act_LeftRight)
controller.deactivate(act_UpDown) 

##############################################

#import GameLogic
import bge

# Run program
main()




28. Setelah itu Simpan file tersebut dengan nama MouseLook.py

29. Langkah selanjutnya adalah memilih script tersebut sebagai main Control pada kamera tersebut.





30. Lalu pada object kamera , Add Actuator dan pilih Motion. Dan namakan Action tersebut dengan nama UpDown.


31. Selanjutnya klik object Ufo , dengan CTRL + Klik Object ufo tersebut lalu masukan pada ufo tersebut Motion dengan nama LeftRight


32. Setelah itu , sambungkan semua Action tersebut


33. Cara selanjutnya adalah membuat agar si Object Ufo tersebut dapat bergerak ke depan,Belakang,Kanan ,Kiri.  Tekan object ufo tersebut , lalu add sensor sebagai Keyboard.
Untuk Action maju , Gunakan Tombol W. maka isikan pada Keys dengan huruf W. lalu Add Controler dengan “And” dan Add Actuator dengan Motion.



   

Ulangi langkah tadi untuk tombol A(Kiri),D(Kanan),S(Mundur). Agar object dapat bergerak , maka ada atribute dalam Motion tersebut yang harus dirubah, isikan data berikut ini pada tab Motion.

Untuk W , Y = 0.20
Untuk S , Y = - 0.20
Untuk A, X = -0.20
Untuk D , X = 0.20

34. Modul Game telah selesai di inputkan , langkah selanjutnya adalah mensetting Body Maze,dan Ufo tersebut. Klik Physics dan setting Physics Type menjadi Dynamic.


35. Lakukan hal yang sama dengan Maze , tetapi Physics type nya ganti dengan Static










Tidak ada komentar:

Posting Komentar